RAファミリFSP v4.3.0公開

お知らせ:3月31日金曜投稿はお休み

虫歯治療
虫歯治療

3月31日の金曜投稿は、虫歯治療のため休みます🤒。先週投稿と同じ内容です。

RAファミリFSP v4.3.0公開

RAファミリ向け最新FSP v4.3.0同梱e2 studio 2023-01
RAファミリ向け最新FSP v4.3.0同梱e2 studio 2023-01

2023年3月19日、RAファミリ最新FSP v4.3.0同梱e2 studio 2023-01が公開されました。1月16日公開の他のルネサスMCUファミリ向けe2 studio 2023-01公開から2ヶ月遅れです。

過去のRAファミリFSP更新と異なる点を説明します。

FSP v4.3.0新規インストール

過去のRAファミリFSP更新は、最新e2 studio内に複数のFSPが同居できました。例えば、1つ前のe2 studio 2022-10では、FSP version 4.2.0~3.6.0が同居しており、選択可能でした。

今回のFSP v4.3.0は、新規e2 studio 2023-01フォルダへFSP v4.3.0が新規インストールされます。従って、FSP v4.3.0は、この新規e2studio_v2023-01_fsp_v4.3.0フォルダから起動されます。

FSP v4.3.0新規インストールe2 studio 2023-01
FSP v4.3.0新規インストールe2 studio 2023-01

高密度モニタ125%~175%スケーリングのツールバー表示改善

高密度モニタとは、4K(3840×2160)など解像度が高いモニタのことで、最近流行中です。フルHD(1920×1080)に比べ、縦横2倍の表示が可能です。

但し、4K解像度では、Windows表示テキストが小さすぎて見にくいため、125%~175%の拡大表示へ変更し利用するのが一般的です。e2 studio 2023-01では、このスケーリング変更時のe2 studioツールバー表示が改善されました。

高解像度モニタ活用中の方なら表示変更が判るでしょう。筆者は、100%表示の愛好家ですので、具体的な改善内容は、残念ながら判りません。

関連投稿

MCU開発に適すモニタ解像度(1920×1080~3K)。
MCU開発に適すモニタサイズ(メインモニタ:24~27型、ノートPC:16型)。

まとめ

FSP v4.3.0同梱e2 studio 2023-01デフォルトインストール
FSP v4.3.0同梱e2 studio 2023-01デフォルトインストール

最新FSP v4.3.0同梱e2 studio 2023-01デフォルトインストールが、新規FSPインストールに変わり、これが高解像度モニタ用のツールバー起因なのかは、筆者のPC環境では判りません。

しかし、新規インストールの方が、過去開発環境をそのまま維持できるメリットもあります。デメリットは、ディスク容量など軽微です。

流行のPC環境に伴ってMCU開発環境も変化します。より効率的MCU開発環境へのステップアップ更新と考えます。


IOWN 1.0提供開始

IOWN展開(出展:NTTサイト)
IOWN展開(出展:NTTサイト)

ベストエフォートのインターネットに対し、NTT専用線による品質保証:ギャランティーサービスIOWN(Innovative Optical and Wireless Network:アイオン)1.0が2023年3月16日から開始されました。

個人利用には価格(100Gbps月額料金198万円、初期設備費3万円)が高すぎますが、2030年以降のIOWN4.0では、インターネット並みの料金で利用できるかもしれません。

IOWN対インターネット

インターネットは、多重共用ネットワークです。従って、多重されたトラフィックにより自分のデータ遅延揺らぎは不可避、さらに強固なセキュリティも必須です。

そのセキュリティ対策は、ユーザみずから行う必要があります。対して、専用線は、ネットワーク側が通信品質を保証するなどセキュリティレベルは高く、ユーザのセキュリティ対策は、インターネットに比べると楽になると思います。

問題は、利用価格です。

IOWN専用線では、共用インターネットでは困難な魅力的IOWNサービス(後述)が提供され、かつ、APNと光電融合デバイスにより価格を抑え、かつ、将来の限界を超える特徴、つまり、低遅延、大容量、低消費電力(後述)があります。

ユーザセキュリティ費用、万一のセキュリティリスクも含め、専用線IOWNと共用インターネット、どちらが安全、安心で利用価格が安いのか、費用対効果検討が必要だと思います。

IOWNサービス

IOWNで期待されるサービスの実証記事がコチラです。

ロボットや自動車の遠隔制御、遠隔医療、e-スポーツや遠隔地間を繋ぐ同時演奏会など、大容量で低遅延、揺らぎ無しのIOWNサービスが提供されます。

IOWN特徴=揺らぎ無し低遅延+大容量+低消費電力

NTT技術ジャーナル2023.1によると、IoTによるデータドリブン社会は、膨大なデータ量やデータ処理サーバの膨大な電力消費増大に対して、限界が来るそうです。

この課題にAPN(All Photonic Network)サービスと、光電融合デバイスをボード接続→チップ間→チップ内と融合度を上げ、さらに、このデバイスをサーバへも適用することで、大幅な使用電力削減が可能となります(本稿最初の図参)。

IOWN4.0の目標は、電力効率100倍、伝送容量125倍、エンドエンド遅延1/200です。

IOWN特徴(出展:NTTサイト)
IOWN特徴(出展:NTTサイト)

まとめ

2030年度以降のIOWN4.0とインターネットの利用価格がどの程度になるかは、今のところ不明です。

それでも、IOWN1.0の利用決定会社/組織の記事(2023年3月3日、EE Times)を見ると、既に多くの有力企業が参加しています。

揺らぎ無し低遅延大容量IOWNが、新しいIoTネットワークサービスを生み、メタバースを推進するのは確かだと思います。IoT MCU開発者も注目しておく必要があります。

関連投稿:世界規模の宇宙センシング次世代ネットワークIOWN

TPM 2.0脆弱性

Windows 11要件TPM 2.0に、深刻度「重要」の脆弱性が発見されました。更新プログラムの迅速な適用が必要です。

原因:バッファオーバーフロー

Windows 11アップグレード要件にもなっているTPM 2.0ライブラリ内のバッファオーバーフロー起因だそうです(CVE-2023-1017、CVE-2023-1018)。

ウィキペディアにバッファオーバーフロー具体例が示されています。MCU開発で使われるC言語でも、簡単に起こりうるバグです。

対策:更新プログラム適用

米国土安全保障省サイバーセキュリティ・インフラストラクチャセキュリティ庁
米国土安全保障省サイバーセキュリティ・インフラストラクチャセキュリティ庁

2023年2月末、このTPM 2.0脆弱性対策に、CISA:米国土安全保障省サイバーセキュリティ・インフラストラクチャセキュリティ庁は、更新プログラムの迅速な適用、場合によってはTPM工場出荷時リセットを指摘しています。

TPMには、個人情報などのWindows機密データが保存されています。

更新プログラム適用と不揮発性メモリへの機密データ再書込みが必要になりそうです。対象デバイスは、TPM 2.0実装済みのWindows PC数十億台規模になる可能性もあります。

関連投稿:WindowsのTPM使い方

TPM機能(出展:PC Watch記事)
TPM機能(出展:PC Watch記事)

懸念事項

PCベンダ対策が遅れ気味なこと、TPM 2.0更新が上手く成功するかが気になります。

一般的なWindows更新でも失敗はあります。ましてUEFI/BIOS更新と同様、TPM更新は、PCハードウェア根源レベルの更新です。万一の失敗時、PC起動不能もあり得ます。

また、TPMは、BitLockerなど普段あまり意識しないセキュリティにも関連します。TPM更新に成功した場合でも、TPM更新前ユーザファイルを確実にリカバリできる準備なども必要になるかもしれません。

関連投稿:BitLockerトラブル

安易にTPM更新を行った結果、機密データが消えるだけでなく、自分のデータも消え失せるリスクがある「重要更新」だと思います。PCベンダ対策が遅れ気味なのも、多少理解ができます。

Windows 12新要件

Windows 10、11、12、Linux?
Windows 10、11、12、Linux?

メタバースやAI活用検索などの新機能搭載やセキュリティ強化Windows 12 2024年秋リリースと予想できそうなニュースが増えてきました。

仮に今回の数十億台規模Windows 11 TPM 2.0更新が不成功なら、PCベンダやMicrosoftは、Windows 12アップグレードの新要件として、TPM 2.0の次バージョン(例えば、根源レベル更新強化TPM 3.0など)採用などへ発展する可能性のあるインシデントだと筆者は思います。



13世代と7000番台PC CPU選択

2023年春のWindows最新CPU、Intelの13世代とAMDの7000番台の特徴をまとめます。

最新PC CPUを “最高速” 処理性能で選ぶなら13世代、消費電力で選ぶなら7000番台と言えそうです。

2023年春のIntel 13世代とAMD 7000番台CPU
2023年春のIntel 13世代とAMD 7000番台CPU

2023年春PC CPUまとめ

Intel 13世代CPUは、AMDの旧6000番台に対抗すべく旧12世代よりも最大動作周波数を上げた結果、同レベルのAMD 7000番台より性能向上しています。しかし、代償として消費電力と発熱量の上昇を招いています。

AMD 7000番台は、旧6000番台よりも性能向上していますが、向上分はIntelより控えめです。その代わり消費電力や発熱が、同レベルの13世代より低めです。

※ベンチマークで徹底比較(日経XTECH、2023-01-13)、13世代は以外なほど向上(日経XTECH、2023-01-12)、その他、最新CPU情報を参考にしました。

Windows CPU進化

Windows CPUは、先行Intelを後発AMDが追う開発競争が続いています。Intelは、Windows開発元MicrosoftとWintelと言われるほど親密です。新しいWindowsとIntel CPUの親和性が、AMDより高いと言われるゆえんです。

後発AMDは、Intel CPUよりもコストパフォーマンスに優れたCPUを開発することでシェアを伸ばしてきました。特に、6000番台は、従来CPUソケットを全面変更してまで高性能化を行い、旧12世代より性能も優れました。

対抗策にIntelは、12世代の最大動作周波数を上げ、高性能化を目指したのが13世代です。

一方のAMDは、6000番台から正常進化させた7000番台を、徐々に発売していきます。今後のAMD 7000番台は、更に進化し、13世代よりも高性能化する可能性も秘めています。このIntel 13世代市場を観察した上で7000番台を順次発売するのは、AMDの販売戦略です。

なお、Intel/AMDともにCPUアーキテクチャは、新旧両世代ともほぼ同じです。

新しいCPUアーキテクチャは、例えば、メタバースなどの新しいPCの使われ方や、13世代/7000番の販売結果が反映され生まれます。CPU世代が2つ変わると、アーキテクチャが大きく変わるのは、このためです。両社ともに、今回はアーキテクチャ変更が少ない世代進化です。

2023年春のPC CPU選択

さて、2023年春現在、PC CPUを選ぶならどちらが良いでしょう?

最初に決めるのは、高性能/汎用/低消費電力などのCPU特性レベルです。Intelで言えば、高性能ならCore i9/i7、汎用ならCore i5、低消費電力ならCore i3の各シリーズです。

※MCUで例えると、STM32H/Fシリーズが高性能、STM32Gシリーズが汎用、STM32L/Uシリーズなどが低消費電力に相当します。

同じ特性レベルで現在のIntelとAMDを比較すると、処理性能は13世代、消費電力は7000番台が優れます。

注意点は、処理性能がCPU最高速ベンチマークであることです。温度センサ内蔵の最新CPUは、処理負荷が大きく高温になると、動作速度を自動的に下げCPU保護を行います。従って、CPUの冷却能力が、高性能維持に必須です。

言い換えると、Intel 13世代の高性能を活かすには、いかに上手くPCを冷却できるかがポイントになる訳です。新PCを選ぶときは、冷却能力にも注意してください。

一方、AMDなら最新7000番台ではなく、旧6000番台のCPU選択もありと言えます。6000/7000番の性能差は現在少なく、6000番搭載PCの販売価格低下も予想されるからです。

2023年春に新PCを調達予定の方は、これらCPU世代交代や価格変化も考慮すると良いと思います。

価格変化実例

前投稿で2022年10月に比べ2万円以上価格低下した特売モデル:DELL Inspiron 16 Plusは、今週、売切れのようです。このように旧CPU搭載PCはねらい目ですが、直に売切れる可能性もあります。

また、13世代Inspiron 16 (5630)12世代Inspiron 16 (5620)も、円高の反映か今週、価格が下がりました。

PC CPU選択同様、新PC購入タイミングも重要です!

関連投稿

MCU開発に適すモニタサイズ(メインモニタ:24~27型、ノートPC:16型)
MCU開発に適すモニタ解像度(1920×1080~3K)



MCU開発に適すWindows 11モニタ解像度

MCU開発に適すメインモニタサイズ(24型~27型)、ノートPCモニタサイズ(16型)を以前投稿しました。今回は、Windows 11モニタ解像度について私見を示します。

メインモニタ解像度

MCU開発時、机上に設置しても圧迫感が少なく、ノートPCとのマルチディスプレイ接続も容易なメインモニタサイズが、24型~27型でした。本稿は、その解像度を検討します。

最近は、4K(3840×2160)解像度のモニタ価格も下がってきました。4Kなどの高解像度は、写真や画像を見るのには適しています。しかし、モニタに表示される文字は、解像度に比例して小さくなります。対策は、標準の文字を、150%拡大表示などへ変更し見易くすることです。

Windows 11標準の文字を150%拡大表示する方法
Windows 11標準の文字を150%拡大表示する方法

ところが、文字拡大表示を行うと、モニタに表示可能な領域も狭くなります。つまり、MCU開発時のモニタ解像度と見易い文字表示には、最適なバランスが存在する訳です。

※モニタと目の距離は、MCU開発に適した50㎝前後、ノートPCは、メインモニタとのディアルディスプレイで利用すると仮定。

例えば、27型WQHD:3K(2560×1440)モニタを机上に設置しても、標準100%表示の文字は見易く、従って、本来の3K解像度の表示領域を狭める必要もありません。同じ設置場所でも4Kモニタに変えると、文字が小さいため150%や125%拡大表示が必要で、4K本来の表示特性は活かせません。

ここが、解像度が高ければ高いほど好まれるスマホ表示と、PCモニタの異なる点です。

16型ノートPC解像度

16型ノートPC解像度も年々高まりつつあります。例えば、Acer Swift Edgeは、4K(3840×2160、有機EL)、LG gram 16は、3K(2560×1600)などです。

※ノートPCモニタ縦横比は、16:9から16:10へ変わりつつあります。

ノートPCは、据置のメインモニタよりも移動が容易です。従って、高解像度でも、標準の100%文字表示が使える設置範囲は広いでしょう。一般的なFHD(1920×1080)でもMCU開発に何ら支障はありません。

それでも、さすがに4K解像度の場合は、150%程度へ拡大表示しないと文字が小さすぎて見にくくなります。メインモニタ同様、16型ノートPC解像度も、文字表示との兼合いで3K解像度付近にMCU開発の最適解があると思います。

メインモニタとのデュアルディスプレイのノートPC MCU開発
メインモニタとのデュアルディスプレイのノートPC MCU開発

CPU世代交代時の新PC調達

2023年春は、インテルCPUは、12世代から13世代へ、AMD CPUも、6000番台から7000番台へPC CPUの世代が交代します。

CPU世代交代時に新PCを調達する場合、ポイントは、旧12世代と6000番台CPU搭載PCの値下がりです。販売側は、旧世代の在庫を減らし、新世代の新商品の販売を促進したいハズです。このため、旧世代PCの価格が下がる傾向が見られます。

もちろん、新世代PCの方が、旧世代PCよりも高性能です。しかし、その価格差とパフォーマンスを考慮すると、安くなった旧世代PC購入もあり得ます。

例えば、2022年10月にノートPC例を示したDELL Inspiron 16 Plus(Core i7-12700H、3072×1920)などは、現在は当時より2万円以上値下がりしています。

まとめ

MCU開発に適す24型~27型メインモニタ、16型ノートPC、いずれも3K(2560×1600)付近の解像度が、ソースコードや文字が標準100%表示でも見易く、しかも、本来のモニタ高解像度を狭めない最適解であることを示しました。

検討した3K最適解は、MCU開発者の好みや目との距離など、モニタ設置条件でも変わります。4K(3840×2160)モニタであれば、より多くの解像度選択肢から最適解を探せるメリットがあります。反面、文字表示との兼合いで、モニタ本来の4K表示特性を活かすのも難しくなります。

CPU世代交代の2023年春、旧世代CPUのノートPC価格低下を利用し、高解像度モニタ導入も検討する際のご参考になれば幸いです。



世界規模の宇宙センシング技術

次世代ネットワークIOWN(アイオン)で紹介した、低軌道人工衛星と無線免許不要IoTデバイス(LPWA:Low Power Wide Area端末)の宇宙センシング実証実験が2024年度に予定されています。

この宇宙センシング技術は、世界中で低コストIoTデータの衛星センシングを可能にします。

低コストIoTデータ衛星センシングプラットフォーム

衛星センシングプラットフォームとLPWA端末(出展:NTT技術ジャーナル2022.10)
衛星センシングプラットフォームとLPWA端末(出展:NTT技術ジャーナル2022.10)

従来の世界規模データセンシングは、専用衛星や免許が必要な専用無線周波数を使うため高価です。

NTTとJAXA(宇宙航空研究開発機構)が2024年度打ち上げ予定の革新的衛星技術実証4号機は、地上用のLPWA端末の免許不要無線周波数:920MHz帯、送信電力:0.1W程度を介して低軌道衛星と通信します。

この通信により、LPWA端末の小容量データを世界規模で収集できる低コストIoT衛星センシングプラットフォームの実証実験が可能です。

LPWA端末

LPWAは、低消費電力、低ビットレート、広域カバレッジが特徴で、その端末の多くは無線免許が不要です。

この地上用LPWA端末を、通信網が無い山間部や河川、海上など世界中のあらゆる場所へ設置しても、衛星を介したグローバルなIoTデータセンシングが可能になります。

気象データ収集や防災対策など多くの新しいIoTサービスへ発展する可能性は大きいでしょう。

技術実証イメージ(出展:NTT 2023年2月10日)
技術実証イメージ(出展:NTT 2023年2月10日)

地上のLPWA端末と低軌道衛星との通信は、シンプルです。LPWA端末の測定データは、衛星搭載メモリへ一時蓄積され、衛星の基地局上空の飛来タイミングで蓄積データが一括ダウンロードされます。

LPWA端末には、衛星からのコマンドによる再起動処理などが必要になるそうです。

宇宙ビジネス

多くのIoTセンサを組込んだスマートホームICTインフラへも応用できそうです。スマホ衛星通信も可能な時代です。ソニーは、2050年50兆円市場との試算もある地球みまもりプラットフォーム向けエッジAIカメラセンサを開発しました。

地球みまもりプラットフォームコンセプト(出展:ソニーR&Dセンタ)
地球みまもりプラットフォームコンセプト(出展:ソニーR&Dセンタ)

2030年実現を目指すIOWN(Innovative Optical and Wireless Network)により、従来通信網制約や国境の枠を超えた新しいIoTサービスや宇宙ビジネスが期待できそうです。

IoT MCU開発者は、革新的衛星技術実証4号機の打ち上げも注目しましょう。



LibreOffice Community(最新版)7.5更新

LibreOffice Community 7.5
LibreOffice Community 7.5

LibreOffice Community(最新版)が7.5へ更新されました。7.5では、LibreOffice Writer/Calc/Drawアイコンがカラフルに変わり、DeepL API利用の翻訳機能追加など7.4からメジャーアップデートです。

DeepL API利用には、無料版でもクレジットカード情報が必要です。

LibreOffice Community 7.5.0.3

ほぼ1ヶ月毎に更新されるLibreOffice Community(最新版)が、7.5.0にメジャーアップデートされました。3か月毎更新の(安定版)は、7.4.5です。リリースノートには、様々な機能が追加されています。

メジャーアップデートでWriter/Calc/Drawファイル別のフィルター追加などもありますが、主要操作に大きな変化はありません。

筆者が気になった追加機能は、リリースノート8.1デザイン(アイコン変更)と2.6自動翻訳です。

LibreOffice Writer/Calc/Drawアイコン

LibreOffice 7.5でカラフルに変わったアイコン
LibreOffice 7.5でカラフルに変わったアイコン

左が、7.4までのLibreOffice Writer/Calc/Drawアイコン、右が、7.5のアイコンです。色が付き判別し易くなりました。

Windows 11スタートメニューに表示されるLibreOffice Writer/Calc/Drawアイコンも、Word/Excel/PowerPointと同様カラフルに変わりました。

OfficeアイコンとLibreOffcieアイコン比較
OfficeアイコンとLibreOffcieアイコン比較

カラフルアイコンは、選択が容易になりPC生産性も上がるので大歓迎です。

DeepL API

DeepL APIには、無料­版と有料版があります。但し、1か月500,000文字まで翻訳できる無料版でも、本人確認にクレジットカード情報の入力が必要です。

無料/無償愛好家でクレカ入力を嫌う筆者は、新機能の翻訳は使いません。

DeepL API
DeepL API

PCローカル文書作成ツール:LibreOffice

ところで、日本だけで人気が高いPCローカルで使える文書作成ツールMicrosoft Office 2019は、2025年10月、Office 2021は、2026年10月でサポート期間が終了します。代替が、クラウド利用サブスクリプションサービスのOffice 365などです。

クラウド依存は、PC文書作成に関してはリスクが高いと思います。マルチプラットフォームでPCローカル文書作成ツールLibreOfficeは重要です。少しの慣れで、誰でも使えるLibreOfficeのお勧め理由です。

関連投稿:LibreOffice使い方(総集編)でWriter/Draw無料テンプレートも提供中です。ご活用ください。



8/16ビットMCU置換えを狙う32ビットMCU

半導体不足が続いています。対策として、8/16ビットMCU置換えを狙った、汎用低コストの新しい32ビットMCUを2種紹介します。

STマイクロ:STM32C0シリーズ

STマイクロ、2023年1月12日、低価格なSTM32C0シリーズ(Cortex-M0+:48MHz、Flash:16K/32K、RAM:6K/12K)を発表。

STM32C0とSTM32G0の位置づけ(出展:STMサイト)
STM32C0とSTM32G0の位置づけ(出展:STMサイト)

ルネサス:RA2グループ

ルネサス、2021年10月13日、省スペース低消費電力向けにRA2E2グループ(Cortex-M23:48MHz、Flash:64K、RAM:8K)を、RA2シリーズへ追加。

RA2E2評価ボードのMCU基板アートワーク
RA2E2評価ボードのMCU基板アートワーク

8/16ビットMCU置換え最新32ビットMCU特徴

  • 少数ピン/小型パッケージ
  • 小容量Flash/RAM
  • 低消費電力
  • 低価格(8/16ビットMCUと同等)

8/16ビットMCU置換えを狙う32ビットMCU特徴です。置換え32ビットMCUと言えば、古くからNXP:LPC800シリーズが有名なので、本稿は省略しました。

動作周波数が高くても、Sleepなどの超低消費電力動作時間も長く、実働消費電力は驚くほど小さくなります。また、古い8/16ビットMCUよりも入手性に優れます。

置換え32ビットMCUメリット

旧MCU開発は、周辺回路ドライバなども自主開発することが多く、ドライバとアプリケーションの境界も開発者毎にバラバラでした。最新MCU開発は、ドライバはベンダHAL API生成ツールが自動生成します。

その結果、開発者は、アプリケーション開発に集中でき、ソフトウェア開発費も安くなります。

※HAL API:MCUハードウェアに依存しない(Hardware Abstraction Layer)API。シリーズ/グループが異なっても開発アプリケーション流用が容易。

既に実装済みの旧8/16ビットMCU機能を最新32ビットMCUへ置換える時も、この最新MCU開発環境が使えるため、効率的なソフトウェア開発が可能です。更に、置換えだけでなく、新機能追加、IoTやセキュリティなど高機能アップグレートも容易です。

最新汎用32ビットMCUは、半導体不足にも有効です。紹介したSTマイクロ、ルネサスいずれも、上位MCUへの置換えが可能な基板アートワークができるピン配置を採用しています。

つまり、IoT時代に合わせた開発スキルやソフトウェア発展性があり、基板ハードウェア持続性も期待できるなど、8/16ビットMCU置換え汎用32ビットMCU採用には、多くのメリットがあります。

STM32G0テンプレート、RAベアメタルテンプレート

STM32C0シリーズ開発には、STM32G0Xテンプレート、RA2グループ開発には、RAベアメタルテンプレートがお役に立てます。



FSPベアメタルサンプルのRTOSスレッド化

前投稿FSPベアメタルサンプルコード:sci_uart_fpb_ra6e1_epを、RTOSスレッド化する方法を示します。

多くのルネサスRA公式サンプルコードを活用した効率的なRTOSスレッド開発が本方法で可能です。FreeRTOS、Azure RTOS両方に使えます。

サンプルコードベースRTOSスレッド開発

RTOS開発は、複数スレッドを組合せ全体を動作させます。ベアメタルコードに比べ、個々のスレッドは、独立性や移植性が高い特徴があります。スレッド優先度やセマフォなどのRTOSオブジェクトを適切に設定すると、複数スレッド全体処理としてユーザ所望のシステム動作をします。

スレッドは、勝手に回る歯車、優先度やRTOSオブジェクトは、各歯車をシステム全体で上手く動作させる手段と考えると解りやすいと思います。

スレッドとRTOSの役目
スレッドとRTOSの役目

スレッド設計法は、機能別や処理手順別など様々あり、唯一の方法は無さそうです。しかし、先ずは、歯車となるスレッドを開発し、次に、開発スレッド優先度やRTOSオブジェクトを調整しながら、システム全体動作を仕上げるのがRTOS開発の方法です。

本稿は、スレッド単体開発の1方法として、ルネサスRAファミリ公式FSPベアメタルサンプルコードを活用したサンプルコードベースのRTOSスレッド開発法を示します。複数スレッドを組合せたRTOSオブジェクトの適切な調整や設定に関する内容は、含みません。

公式ベアメタルサンプルコードは、各ベンダエキスパートが開発し、評価ボードで動作確認済みの高信頼ソフトウェアです。また、MCU周辺機能毎に多くのサンプルコードが提供中です。

これらベアメタルコードを活用する本方法は、FreeRTOS/Azure RTOSどちらのRTOSスレッド開発へも使えます。

RTOSスレッド化方法

詳細は、後で説明しますが、先ず、ベアメタルサンプルをスレッド化する手順を簡単に示します。方法全体像が判っていると把握しやすいからです。

  1. スレッド無しで空の新規RTOSプロジェクト作成
  2. g_ioport以外のベアメタルサンプルFSPスタックを、RTOS FSPスタックへImport
  3. hal_entry.c以外のベアメタルサンプルsrcファイルを、RTOSプロジェクトsrcフォルダへコピー
  4. 新しいスレッド:MyThreadをRTOSプロジェクトへ追加後、Gegerare Project Contentクリック
  5. MyThread_entry.cへ、初期設定と無限ループ処理を追記

1で新規作成した空のRTOSプロジェクトへ、2と3で対象ベアメタルサンプルから内容を追加、4でベアメタルmain()相当の新しいMyThreadを追加後、FSPを使ってRTOSプロジェクトを自動生成します。

生成後、5でRTOSプロジェクトのMyThread_entry.c初期設定と無限ループを追記します。追記内容は、ベアメタルサンプルの初期設定と無限ループ処理です。

つまり、1~5手順全てFSPベアメタルサンプルからの単純コピーでRTOSスレッド化が可能です。

次章から、前投稿で用いたベアメタルサンプルコード:sci_uart_fpb_ra6e1_epを、FreeRTOSスレッド化する具体例を使って、各詳細手順を示します。

1. 空の新規FSP freertos_uartプロジェクト作成

スレッド無しで空の新規FreeRTOSプロジェクト作成
スレッド無しで空の新規FreeRTOSプロジェクト作成

スレッド無し空FreeRTOSプロジェクトを新規作成します。新規RTOSプロジェクト名は、freertos_uartとでもしてください。

2. sci_uart_fpb_ra6e1_epのFSPスタックImport

sci_uart_fpb_ra6e1_epのFSPスタックImport
sci_uart_fpb_ra6e1_epのFSPスタックImport

freertos_uartプロジェクトのFSPスタックへ、sci_uart_fpb_ra6e1_epのg_ioport以外のFSPスタックを全てImportします。Importした各スタックプロパティは、オリジナルプロパティと同じに手動で設定してください。

3. sci_uart_fpb_ra6e1_epのsrcファイルコピー

sci_uart_fpb_ra6e1_epのsrcフォルダファイルコピー
sci_uart_fpb_ra6e1_epのsrcフォルダファイルコピー

sci_uart_fpb_ra6e1_epのhal_entry.c以外のsrcファイルを全て、freertos_uartのsrcへコピーします。

4. freertos_uartプロジェクトへ新しいUart Thread追加後、Generate Project

新しいUart_Thread追加
新しいUart_Thread追加

新しいスレッドのSymbolは、Uart_threadとしてください。先頭を大文字にする目的は、FSPが自動生成したファイルやスレッドが使う全小文字表記とユーザ追加のそれらを、大小文字で区別するためです。

Tips:大文字利用は、好みの問題です。RTOS開発は、多数のスレッドやオブジェクトソースが、プロジェクト・エクスプローラのsrcフォルダに表示されます。自分が追加したソース(バグ有り?)と純FSP生成ソースを、一目で区別できるメリットがあります。

最後にGenerate Project Contentをクリックし、FSPによりRTOSプロジェクトを自動生成します。

5. Uart_Thread_entry.cへ初期設定と無限ループ処理追記

RTOSプロジェクトのsrcフォルダ内に、Uart_thread_entry.cが生成されます。

先頭の#include “Uart_thread.h”に、sci_uart_fpb_ra6e1_epのsrcファイルにある#include “common_utils.h”、 #include “uart_ep.h”、 #include “timer_pwm.h”を追記します。
これら4個の#include文は、freertos_uartの全srcファイルに手動で追記します。

Uart_thread_entry.cの初期設定
Uart_thread_entry.cの初期設定

RTOS初期設定は、Uart_thread_entry.c のTODO: add your own code here以下へ、sci_uart_fpb_ra6e1_epの初期設定:hal_entry.cのL41からL93までをコピーします。

sci_uart_fpb_ra6e1_epの無限ループ処理は、コピーした初期設定の後方にあるuart_ep_demo()です。

RTOS無限ループ内には、上図でコメントアウトしたコンテキストスイッチが必要です。そこで今回は、RTOSプロジェクトuart_ep.cのuart_ep_demo()内へ、直接コメントアウトしたFreeRTOSコンテキストスイッチ:vTaskDeley(1)を追記します。

uart_ep.cのuart_ep_demo()へ追記するコンテキストスイッチ
uart_ep.cのuart_ep_demo()へ追記するコンテキストスイッチ

Tips:#include “Uart_thread.h”が、FreeRTOS関連API:コンテキストスイッチ追記を可能にします。

sci_uart_fpb_ra6e1_epとfreertos_uartスレッド同一動作確認

RTOSプロジェクトをビルドし、評価ボードへダウンロード後、実行してください。前稿のベアメタルサンプルコードと全く同じ処理が、開発したfreertos_uartスレッドで確認できます。

FreeRTOS/Azure RTOSスレッド化差

本稿で示したFreeRTOSスレッド化とAzure RTOSスレッド化の差は、コンテキストスイッチのみです。FreeRTOSならvTaskDelay(1)、Azure RTOSならtx_thread_sleep(1)が、コンテキストスイッチです。

Tips:コンテキストスイッチは、FreeRTOS/Azure RTOS開発手法のRTOS処理フローなどを参照してください。

ベアメタルサンプルコードをAzure RTOSスレッド化する時は、手順1で、新規Azure RTOSプロジェクトを作成し、手順5のvTaskDelay(1)の代わりに、tx_thread_sleep(1)を使えばOKです。

Tips:FSP生成スレッドMyThread_entry.cの無限ループ内には、作成RTOSプロジェクトに応じて初めからvTaskDelay(1)、またはtx_thread_sleep(1)が実装済みです。

本方法が、FreeRTOS/Azure RTOSどちらのRTOSスレッド開発へも使えることが分かります。

補足

2023年1月16日、e2 stidioは2022-10のまま、RAファミリFSPがv4.2.0へ更新されました。本稿は、FSP v4.2.0/4.1.0両方で動作確認済みです。



FSP利用RAファミリUARTの使い方

RAファミリ評価ボードFPB-RA6E1PFB-RA4E1FPB-RA2E1などは、MCUのUARTとPCの接続に古いハードウェア知識が必要です。そこで、FPB-RA6E1のUARTとPC接続(USB UART Bridge)を解説し、FSPサンプルコードで動作確認しました。

FSPサンプルコード:sci_uart_fpb_ra6e1_ep

sci_uart_fpb_ra6e1_epのFSP Configuration
sci_uart_fpb_ra6e1_epのFSP Configuration

FPB-RA6E1(Cortex-M33/200MHz、Flash/1MB、RAM/256KB)のUARTとPC接続の公式サンプルコードが、sci_uart_fpb_ra6e1_epです。このFSP (Flexible Software Package)スタックConfigurationが上図です。

簡単に説明すると、FSP UARTスタックを使ってPCとUART(115200bps、8-Non-1)で接続し、Timerスタックを使ってPWMでLED1輝度を変えます。UART受信した1-100値が、PWM設定値です。

つまり、Tera Term経由でPCから1-100を入力すると、評価ボードLED1の輝度がPWM 1-100%で変わります。

sci_uart_fpb_ra6e1_epのreadme.txt
sci_uart_fpb_ra6e1_epのreadme.txt(一部抜粋)

サンプルコード付属readme.txtの上記は、MCUのUARTピンを、どうやってPCのUSBへ接続するかが、開発経験者でも解りにくい箇所です。Windows 7より前の古いMCU開発者なら解るかもしれません。

USB UART Bridge

シリアルポート(出展:ウィキペディア)
シリアルポート(出展:ウィキペディア)

Windows 7以前の古いPCには、RS-232Cコネクタ:シリアルポートが実装済みでした。シリアルポートの用途は、MCUとの通信や、特定アプリのライセンスキーなど多数ありました。

しかし、Windows 7以降、RS-232Cコネクタは消えUSBへと変わりました。

消えたRS-232Cの代わりにUSB経由でMCUと通信を行うのが、USB UART Bridgeです。実績あるデバイスとして、FTDI社のFT232RLが有名でした。

つまり、MCU UART入出力ピンをPCへ接続するには、USB UART Bridge(=USBシリアル変換アダプタ)が必要なことを知っている古いMCU開発者のみreadme.txtが判る訳です。

最近のMCU評価ボードは、USBシリアル変換アダプタとMCUプログラム/デバッグを、1本のUSBで共用しているものが多く、USB UART Bridgeを別途追加し開発する例は稀です。PCのUSBポート数が少なくなってきたからでしょう。

お勧めUSBシリアル変換アダプタ

「FTDI USBシリアル変換」で検索すると、USB 2/3.1や5/3.3V対応など様々なアダプタが、様々な価格で現れます。

殆どの5Vデバイスは、3.3V入力を5V High入力と認識します。それでも、MCUと接続する電圧は、5Vと3.3Vを選択できる方が無難です。High誤認識を防ぐことや、5V耐性が無いMCUピンでも接続できるからです。

低価格で入手性も良く、5/3.3V選択ができるお勧めのUSB UART Bridgeが、FTDI FT232RL USB-TTLシリアル変換アダプタ3個セットです。基板上にスルーホールがあるため、MCU UARTピンとの直接接続も簡単です。

お勧めハードウェアループバックテスト

低価格で3個入り品質に不安な方は、購入後、ハードウェアループバックテストをお勧めします。

ハードウェアループバックテストとは、デバイスの送信:TXDと受信:RXDを結線し、送信データが受信データに現れるかをハードウェア的にテストすることです。このテストにより、購入アダプタが、正常動作することを確認します。

Tera Termを接続すれば、TXD LED、RXD LED動作も確認できます。また、Windows 11 22H2は、お勧めFTDI FT232RL USB-TTLを、追加ドライバなしでUSB Serial Portと認識することも分かります。

ハードウェアループバックテスト
ハードウェアループバックテスト

sci_uart_fpb_ra6e1_ep動作確認

前章までのハードウェア知識を使って、評価ボード:FPB-RA6E1(搭載RA6E1 MCUは、VCC:2.7~3.6 V動作)とシリアル変換アダプタ:FTDI FT232RL USB-TTL(3.3V選択)、PC USBを接続しました。

サンプルコード:sci_uart_fpb_ra6e1_epが示すMCU UART入出力ピンとUSB UART Bridge TXD/RXD接続、PC Tera Termの1-100入力による評価ボードLED1の輝度変化動作が確認できます。

sci_uart_fpb_ra6e1_epの動作確認
sci_uart_fpb_ra6e1_epの動作確認
sci_uart_fpb_ra6e1_epのTera Term入力(橙)と出力(白)
sci_uart_fpb_ra6e1_epのTera Term入力(橙)と出力(白)
sci_uart_fpb_ra6e1_epのFPB-RA6E1とシリアル変換アダプタの結線
sci_uart_fpb_ra6e1_epのFPB-RA6E1とシリアル変換アダプタの結線

Tips:上記ArduinoコネクタのD1 TX (P109)、D0 RX (P110)へMCU UART使用ピンを変えるには、FSP UARTスタックの利用Channel 0をChannel 9へ変更すればOK。

ルネサスRAファミリ評価ボードは、本稿で示したMCU UART用にUSB 1本、e2 studioプログラム/デバッグ用に別のUSB 1本、合計2本のUSBが必要です(PC側もUSB 2ポート必要)。

このe2 studio プログラム/デバッグ用USBの通信ツールが、J-Link RTT Viewerです。sci_uart_fpb_ra6e1_epでは、FSPバージョンやsci_uart_fpb_ra6e1_ep操作方法が示されます。

sci_uart_fpb_ra6e1_epのJ-Link RTT Viewer
sci_uart_fpb_ra6e1_epのJ-Link RTT Viewer

次投稿:ベアメタルサンプル → RTOSタスク化

サンプルコード:sci_uart_fpb_ra6e1_epは、FSP UARTスタックのベアメタル利用例で、良くできています。ベアメタルに限らず、RTOSへの応用範囲も広いです。

そこで次回は、ベアメタルサンプルコード:sci_uart_fpb_ra6e1_epを、RTOSのタスク化する方法を投稿する予定です。この方法により、多くの公式サンプルコードを活用し、効率的にRTOS開発が行えます。

FSP利用関連投稿:FSP利用FreeRTOSアプリの作り方FSP利用FreeRTOS/ベアメタルアプリ起動方法