RAテンプレート仕組み

ルネサスRAファミリテンプレート(ベアメタル編)を3月末目標に開発中です。サンプルコード活用・流用によるアプリケーション開発が容易なことが、弊社テンプレートの特徴です。このテンプレート仕組みを “少しだけ(!?)” 説明します。

全部説明すると、読者ご自身でテンプレートを開発し、購入者数が減るかもしれないからです😂。

仕組みまとめ

MCU開発者の最初の壁に穴をあけるテンプレート
MCU開発者の最初の壁に穴をあけるテンプレート

テンプレートの仕組みを “少し” しか説明しないので、まとめを最初に示します。

MCUアプリケーション早期開発は、ベンダ提供の公式サンプルコード活用・流用が王道です。しかし、単機能の利用例を判り易く示すことが目的のサンプルコードでは、複数機能の並列実装が困難です。

MCU開発の最初の壁が、この「サンプルコードを、どのように実開発へ利用するか」です。

既に弊社テンプレートの購入者様、または上級者は、この壁を突破し効果的サンプルコード活用アプリケーション開発方法を知っています。Know-how(ノウハウ)です。

サンプルコード利用時の課題は、「無限ループ」です。

この課題に、弊社テンプレートは時分割で対応しました。説明を更に加えると、読者がご自分でテンプレート相当を開発される危険性がありますので、仕組み説明はここまでにします。

以降の章は、サンプルコード課題の具体例を示します。また、この課題が生じる原因、特にRAファミリ開発でFSPサンプルコードが重要である訳を説明、最後にテンプレートのメリットを示します。

RAファミリに限らずプロトタイプ開発や早期アプリケーション開発が目的の弊社テンプレートにご興味がある方は、テンプレートサイトに主要ベンダテンプレートが各1000円で販売中、概要は無料ダウンロード可能です。

※RAファミリテンプレート(ベアメタル編)も1000円予定。FreeRTOS対応アプリケーションテンプレートのみ2000円。RAファミリテンプレートもV2以降でRTOS対応予定。

販売テンプレートには、本稿で説明できない多くの工夫も実装済みです。ダウンロード概要を読んで、自作されるよりも、弊社から是非ご購入ください😌。

サンプルコード課題の具体例

評価ボードテストプログラム構造(FPB-RA6E1の例)
評価ボードテストプログラム構造(FPB-RA6E1の例)

サンプルコードを実開発へ利用する時の課題、具体例を示します。

RAファミリ評価ボードのテストプログラム:TPです(プロジェクト名:quickstart_fpb_re6e1_ep)。電源投入後、搭載LEDが点滅し、SW押下げで点滅間隔が変わり、評価ボードの正常性をテストします。

このTPのuser_main部分を抜粋しました。評価ボードにより多少異なりますが、基本動作は同じです。

LED点滅間隔は、無限ループ内のR_BSP_SoftwareDelay(g_delay)が決めます。このR_BSP_SoftwareDelay処理中は、MCUを独占するため、他の処理はできません(割込み処理は除く)。

MCUの並列処理は、RTOS利用が常套手段ですが、RTOS理解やベアメタル比大きな処理能力とRAMが必要です。

そこで、RTOSを使わずにベアメタルで並列処理をするため、LED点滅を時分割処理し、空き時間に別処理を実行するのが、テンプレートの仕組みです。

テンプレートの仕組み
テンプレートの仕組み

サンプルコード課題の原因

サンプルコードの構造は、基本的な「初期設定」+「無限ループ処理」です(基本のキ:組込み処理参照)。

この構造で、①内蔵周辺回路の初期設定 → ②周辺回路の監視(時間消費も含む)→ ③監視結果の処理実行を行います。②と③を、無限ループ内で繰返します。

①初期設定と③結果処理は、開発アプリケーションへそのまま流用ができます。問題は、結果処理以外の無限ループ内が全て監視(時間消費)になる点です。監視中は、他の処理はありません。

つまり、周辺回路のMCU「専用」利用例という訳です。専用ですから、監視結果の処理実行が有ろうが無かろうが問題はありません。

ところが、1つの無限ループ内へ、単純に別周辺回路の「②監視と③結果処理」を入れると、無限ループは、周辺回路「専用」から「共用」へ変ります。

共用する他の周辺回路の監視結果処理の実行有無に応じて、もう1つの周辺回路の監視結果起動間隔も変わります。起動間隔が変わっても問題ない場合もありますが、多くの場合、問題でこれが課題です。

例えば、ウオッチドックタイマ定時リセットや、前章のLED点滅間隔などです。

共用無限ループ内の別サンプルコード処理有無により、当該サンプルコード処理間隔が変わるという問題は、開発初心者には簡単に解決できない大きな壁:課題です。

FSPサンプルコードが重要な訳

FSP構成とGUI設定の様子
FSP構成とGUI設定の様子

RAファミリ共通のHAL API生成ツールがFSPです。FSPのBoard Support Package (BSP)とHardware Abstraction Layer (HAL)Driversが、評価ボードとRA MCU差を隠蔽し、RAファミリ共通APIをGUIで生成します。

Boardは、評価ボードを指しますが、ユーザ独自開発ボードでも、BSPだけを変更すれば、評価ボードを使って開発したソフトウェアが、そのまま独自開発ボード上でも動作します。

つまり、FSPは、プロトタイピング開発に適したツールです。RAファミリアプリケーションの早期開発ポイントは、FSP活用です。但し、FSPソフトウェア開発者は、知っておくべき作法があります。

例えば、2章で示したGPIO制御前後のR_BSP_PinAccessEnable()やR_BSP_PinAccessDisable()などです。これらは、BSP GPIOレジスタの電圧レベルアクセス制御許可/禁止を設定します。

仮に、R_BSP_PinAccessEnable()をコメントアウトすると、ビルドは成功しますがLEDは点滅しません。ワーニングなどもありませんから、作法を知らないと点滅しない原因は、まったく不明になります。

これらは、GPIOアクセスとセットで知るべき作法です。このような作法は、分厚いFSPユーザマニュアルのどこかに記載されているハズですが、ルネサスエキスパートが提供するサンプルコードからセットで抜き出し、そのまま利用する方が簡単です。

※BSP GPIOアクセスの代わりに、上記許可/禁止追記不要なHAL GPIOアクセスもあります。コレも作法の1つです。

また、ルネサス独自内蔵周辺回路:イベントリンクコントローラのサンプルコードなども、同一MCUコア利用の競合他社差別化に役立つかもしれません。
※イベントリンクコントローラは、MCUを介さずに周辺回路間の連携動作が可能なハードウエア。

マニュアルよりもサンプルコードを読み、評価ボードで試す、“習うより慣れよ” です。

FSPサンプルコードは、このような作法や差別化ヒントが詰まった宝庫です。RAファミリアプリケーション開発には、必読書です。

FSP開発例はコチラ、評価ボードサンプルコードは、コチラの関連投稿も参照ください。

テンプレートメリット

本稿では、しばしば “そのまま” という太字キーワードがでてきます。MCUアプリケーション開発は、ベンダ公式サンプルコードが、そのまま利用・活用する部分と、開発者が “工夫を加える部分” とを、素早く見極める目:Know-howも必要です。

Know-how獲得には、弊社テンプレートとMCU評価ボード+Baseboardが、お役に立てると思います。テンプレートもアプリケーションの1つなので、テンプレートへ追記した豊富な日本語コメントで、そのまま流用している部分と、工夫を加えた部分がソースコード上で確認できるからです。

テンプレートを活用し、アプリケーションをプロトタイピング、次ステップでプロトタイプアプリをチューニングし、完成度を上げます。

プロト目的は、アプリ早期開発、この目的に、ベンダ公式サンプルコード流用・活用と弊社テンプレートを利用します。

既製品の流用・活用・利用は、物足りなく感じる方もいるかもしれません。しかし、弊社テンプレートは、チューニング時、開発者が工夫を追加できる余地がいくらでもあります。アプリ完成度向上には、ご購入者独自の工夫も大切ですので、ご安心ください😁。

LibreOffice 7.3 WriterとWord 2019互換性

Interoperability of Office Word and LibreOffice Writer
Interoperability of Office Word and LibreOffice Writer

2022年2月2日、LibreOffice 7.2 Communityが7.3へ改版されました。Microsoft Officeとの互換性重視の改版です。そこで、Word 2019 → LibreOffice 7.3 Writer読込み、LibreOffice 7.3 Writer → Word 2019読込みの試行結果を示します。

Word ⇋ Writer相互運用性は、かなり向上しました。

互換性試行条件

Microsoft Office Word 2019をWord、LibreOffice 7.3 Community WriterをWriterと略します。

試行条件(OSは、Windows 10 Pro 21H2使用)
1) Wordで原稿作成(作成拡張子docx)
2) Word原稿文書を、Writerで編集保存(保存拡張子docx、またはodt)
3) Writer編集文書を、Wordで再編集(拡張子docx)

拡張子の違いは、まとめ章の後に説明します。また、Word原稿は、前投稿メタバースとIoTを例文として流用します。

Word原稿 → Writer読込み

Word文書をWriterで開く(拡張子docx)
Word文書をWriterで開く(拡張子docx)

1行当たりの表示文字数が異なりますが文章(テキスト)は、Writer読込みに問題はありません。改行も正しく読込まれています。

図のレイアウト崩れは、「図の上下折返し」がWordデフォルト、Writerデフォルト「左右動的折返し」と異なるためです。Writer側の図を選択後、【 H2 】インターネット進化版…の後へ移動し、図の大きさを段落間に調整するとWord原稿と同じレイアウトになります。

試行では、このWriter調整後保存します。ファイル形式の確認は、Word形式を選択します。なお、ODF形式で保存すると、ファイルサイズが992KBから521KBへ小さくなります。

ファイル形式の確認でWord形式を選択
ファイル形式の確認でWord形式を選択

Writer編集 → Word読込み

Writer編集保存ファイル拡張子は、docxです。保存ファイルをWordで開くと、最初のWord原稿と同じものが、表示文字数も含め再現されます。文章や図表のレイアウト崩れなどもありません。

Writerのdocxファイル出力は、Word互換性が高いことが判ります。

まとめ:互換性評価結果

完成した文書の配布は、PDFが基本です。しかし、文書の開発中は、異なるアプリケーションやOS環境での相互運用もあり得ます。相互運用時、異種環境でも100%文書互換性があると便利です。

本稿は、Word作成docxファイルを、Writerで編集後docxファイルへ保存、最後にWord再編集を試行し、従来比、LibreOffice 7.3 Writerは、Word相互運用性が高まったことを示しました。ファイル拡張子は、全てdocxを使いました。

WordのdocxファイルをWriter読込み時、テキスト読込みは改行含め問題無し、図表レイアウト崩れは手動での修正が容易です。一方、Writerのdocxファイル出力におけるWord読込みは、テキスト図表ともに問題ありません。

従って、Word ⇋ Writer相互運用ができるレベルに達したと評価します。

大サイズWord文書、Excel/PowerPoint文書のLibreOffice運用については未調査です。

まとめは、以上です。

 

補足として、ODFファイル拡張子と相互運用向上Tipsを示します。

Open Document Format(ODF)拡張子

ODFは、完全オープンなISO標準ファイル形式です。異種アプリケーション/OS間のファイル相互運用が、ODFの目的です。

Windows/Mac/Linuxマルチプラットフォーム対応のLibreOfficeは、デフォルトでこのODFファイルを扱い、拡張子が下記です。

・odt(LibreOffice Writer文書ファイル)
・ods(LibreOffice Calc表計算ファイル)
・odp(LibreOffice Impressプレゼンテーションファイル)

各ODFファイルは、Google Workspaceも対応済み、また、Microsoft Officeも自社独自ファイル形式(docx/xlsx/pptx)に加え、ODF形式へも対応しました。

相互運用性は、アプリケーションや実装ODFバージョンなどにより100%互換には至っておりません。不足分は、本稿で示したような手動での対応が必要です。不足分の程度により相互運用可否が決まります。

少なくともベンダ囲い込みや、ライセンス使用料を気にせずに運用できるメリットが、ODFにはあります。

相互運用向上Tips

2章でdocxファイルよりもodtファイルの方が、保存サイズが小さいことを示しました。そこで、初めからWord原稿をodtファイルとして保存 → Writer編集 → Word再編集の相互運用性を、2章docxファイル原稿時と比較しました。

odtファイルは、Word再編集の読込み時、図表に加え文書もレイアウト崩れが生じました。Tipsは、以下です。

・Word ⇋ Writer相互運用文書は、docxファイル編集保存が良い
・相互運用文書レイアウト崩れを避けるには、文書(テキスト)と図表を分離、最終稿のみで図表レイアウトが良い
・Wordでは苦手な日本語文字数取得が、Writerは容易

文字数取得は、要約作成時に便利です。複数範囲をカーソルで囲むと、Writer下段ステータスバーにトータル文字数が表示されます。弊社ツイッターの要約作成に活用中です。

LibreOffice 7系の更新は、Officeと相互運用性を更に高めるよう予定されています。これにより、例示したWriter側の図表レイアウト崩れなども解消すると思います。GUIなどのアプリ操作性は、単なる慣れの問題です。

Windows/Mac/Linuxマルチプラットフォーム動作、相互運用性も向上中の無償LibreOfficeを、Microsoft Office代替Plan Bとして気軽に活用してはいかがでしょう。

弊社LibreOffice関連投稿は、コチラを参照ください。

メタバースとIoT

コロナ過での海外出張、特に日本帰国時が大変です。(少し長い!)出国時帰国時記事で良く判ります。デジタル達人でさえこうですから、一般人の肉体的、精神的負担は計り知れません。

COVID-19が生んだコンタクトレス・テクノロジ、メタバースやアバターは、パンデミック社会生活の負担解消が目的です。また、IoTとも無関係ではありません。

インターネット進化版メタバース

インターネット進化版メタバース構成
インターネット進化版メタバース構成

電子メールやウェブサイトを生んだインターネット、その進化版がメタバースです。世界中のコンピュータやネットワーク内で構築される3次元仮想空間とその提供サービスです(Wikipediaより)。

SNSのMeta(旧Facebook)やMicrosoftが、メタバースに注力するのは、必然です。巨大インターネット企業GAFAMの次の収入源、ビジネス領域だからです。
※Metaverseは、meta(超)+universe(宇宙)の造語。
※GAFAMは、Google、Apple、Facebook、Amazon、Microsoftのこと。Big Fiveとも呼ばれる。

これら企業のメタバースは、「現実」の人の移動や接触無しに、安全でより効率的な社会生活ができる「仮想空間」をリアルに提供します。仮想空間内の「本人」が、アバターです。

インターネット進化版メタバースは、COVID-19パンデミック規制が例え終息したとしても、ウイルス耐性を持つ仮想空間による新しい社会生活基盤を全世界に与え、経済活動もこの中で行われます。電子メールやSNS、ウェブサイト同様、生活必需基盤となるでしょう。

メタバース内のなりすまし防止、安全性や本人を保証する要素技術がセキュリティです。メタバース入口のWindows 11のTPMもその1つと言えそうです(Windows 11 TPMは、コチラの関連投稿を参照)。

デジタル後進国日本

江戸時代の鎖国や国民性も影響しているデジタル後進国日本は、最新情報の海外調達でも障害や人的負担が大きいことが、最初の2記事から判ります。

アジア唯一のG7国:日本も、最新情報を遅延なく入手し続けないと、後進化に拍車がかかるかもしれません。※劣化日本の傾向と対策は、お時間があればコチラの関連投稿も参照ください。

AI翻訳も身近になりましたが、IoT MCU開発者は、和訳に拘らず英文による情報入手が効率的なのは明らかです。

IoT進化

全てのモノがインターネット接続するIoTも、メタバースにより進化します。

現在は、主に自動車や産業機器などの「人間以外」のモノが対象です。メタバースでは、これら対象に「人間」も加わります。例えば、2~3年後実現の舐めると味がするテレビ。人間の味覚もネットで繋がります。

IoTデバイスは、モノのセンサデータAD化とネット登り方向への送信が主でした。メタバースにより、人間相手の下りデータDA化やGUIなども重要になりそうです。上下データ同時制御や高度GUIには、IoT MCU高性能化も必要です。

ゲームヘッドセットの視覚、聴覚の仮想化
ゲームヘッドセットの視覚、聴覚の仮想化

現在のゲームヘッドセットが提供する視覚、聴覚の仮想化に加え、触覚、味覚、嗅覚などの五感も仮想化できれば、より人間が使いやすいメタバースになります。

更に、エッジ/クラウドAIやロボット技術も加えれば、モノ対人間、人間(アバター含む)同士、人間対モノの繋がり実現のメタバースは、無限の可能性をIoTデバイスへ与えます。

同様に、

・熱さ・冷たさを判断する感覚
・空間の中で、自分の体がどこにあるのかを把握する感覚
・身体のバランスをとるための平衡感覚

など、五感に加えメタバースとの相性が良い三感覚の研究もあります。これらは、IoTデバイスとも相性が良さそうです。

メタバースは、モノから人間を対象に加えたIoTデバイスへ、多大なインパクトを与えると思います。

RAファミリ開発環境Tips

ルネサス統合開発環境:e2 studioが、2022-01へバージョンアップされました(2022年1月16日号TOOL NEWS)。RAファミリは、「ソフトウェアパッケージ(=FSP)が同梱されたインストーラをダウンロードしインストールを行うこと」と、アップデート方法に注意書きがあります。

ところが、リンク先インストーラのe2 studioバージョンは、本日時点で昨年12月9日のFSP v3.5.0更新時、2021-10のままです。e2 studioは旧バージョンのため、2022-01へ手動にてアップグレートが必要です。

RAファミリ開発環境 GitHub状況

上記のように、RAファミリ開発環境は

・統合開発環境:e2 studio
・FSP(Flexible Software Package)とFSP版数に対応した評価ボードサンプルコード

の2種類、サンプルコードを含めると3種類が、それぞれ別タイミングでバージョンアップします。

また、ダウンロード先がGitHub内にあるため、RAファミリ開発環境の全体像と役割を把握していないと、混乱が生じます。そこで本稿で、整理します。

ちなみに、本日時点のRAファミリ開発環境GitHub状況が下図です。

GitHub上のRAファミリ開発環境のFSPとe2 studio(橙色がニュースリンク先)
GitHub上のRAファミリ開発環境のFSPとe2 studio(橙色がニュースリンク先)
GitHub上のRAファミリ評価ボードのサンプルコード
GitHub上のRAファミリ評価ボードのサンプルコード

RAファミリ開発環境 全体像と役割

「主役はFSP、e2 studioは脇役」、これがRAファミリ開発環境の役割です。

従って、FSPバージョンアップ時は、新FSP用ワークスペースを作成し、ここへ、旧FSP開発アプリケーションをコピー(インポート)、新FSPワークスペースでRAアプリケーション開発を継続するのがお勧めの開発手法です。

※HAL API生成ツールがFSPです。つまり、HAL(Hardware Abstraction Layer)より上位のRAアプリケーションは、FSP版数に依存しないのが本来の姿です。現状のFSPは、HAL API自体も変わる可能性があり「下位互換性」が未保証のため、安全策をとります。

もちろんe2 studioバージョンアップ時も別フォルダへインストールすれば、新旧両e2 studioの併用が可能です。但し、脇役e2 studioは、主役FSPほどの安全策は不要です。

例えば、前章のFSP v3.5.0インストーラのe2 studio 2021-10を手動更新(e2 studio>ヘルプ(H)>更新の検査クリック)し、2021-10へ上書きインストールした場合は、初めにインストールしたC:\Renesas\RA\e2studio_v2021-10_fsp_v3.5.0フォルダへ、e2 studio 2022-01が上書き更新されます(赤字v2021-10部分は不変)。

手動更新が成功したかを確認するには、e2 studio>ヘルプ(H)>e2 studioについて(A)をクリックし、下記ダイアログVersion:2021-10部分が、2022-01へ変わったことを目視確認します。

e2 studio 2021-10の手動2022-01更新確認方法
e2 studio 2021-10の手動2022-01更新確認方法

主役FSP更新、脇役e2 studio同一版対処

e2 studioはバージョンアップなし、FSPのみバージョンアップする場合は、GitHubからFSP_Packs_<version>.zipをダウンロードしインストールすれば、FSPのみの更新も可能です。この場合は、e2 studio内で新旧FSPが選択可能です。

この場合も、新旧FSPで開発アプリケーションのワークスペース分離が無難です。

理由は、プロジェクトのFSP設定ファイル:configuration.xmlにFSP利用版数が記述されており、旧FSPを新FSPへ変更する場合、下記ワーニングが表示されるからです。OKクリックで新FSPがアプリケーションへ適用されます。

アップグレートFSPへの変更方法とワーニング表示(FSP v3.4.0→v3.5.0の例)
アップグレートFSPへの変更方法とワーニング表示(FSP v3.4.0→v3.5.0の例)

利用FSP変更後、Generate Project Contentをクリックし新FSPでのHAL APIを再生成、当該プロジェクトクリーン、再ビルドでコンパイル成功すれば、同じアプリケーションで新旧FSPが使えます。

FSPアップグレートは、新規RAファミリ追加、新規周辺回路追加など、「旧FSP提供以外の新規追加」が主な内容ですので、基本的に旧FSP開発アプリケーションは、新FSPでもコンパイル成功するハズです。

評価ボードサンプルコードがFSP版数対応なのは、これら「新規追加の使用例」を示すためです。(もちろん、旧FSPバグ修正も含む)。

※但し、RTOS関連アップデートもFSP更新に含まれることには注意してください。RAベアメタル開発では、新旧FSPコンパイル成功確率は高いハズですが、RTOS開発時は、新FSPリリースノートに目を通し、RTOS関連の変更有無確認が必要です。

コンパイル不成功の時は、新FSP環境で当該プロジェクト再設計が必要になります。

まとめ

RAファミリ開発環境は、新旧版が全てGitHub内にあり、統合開発環境e2 studio、FSP、評価ボードサンプルコードのアップグレートがそれぞれ別タイミング、付属説明も簡易なため混乱します。混乱回避のためにRAファミリ開発環境の役割とFSP更新Tipsを示しました。

FSPが主役、e2 studioは脇役、これがRAファミリ開発環境の役割です。FSPアップグレート時は、新旧FSPワークスペースを分離し、新FSPワークスペース内で再度HAL APIを生成、生成HAL APIがそのまま旧アプリケーション上でコンパイル成功すれば、安全にFSP更新ができます。

おまけ:Windows 11アップグレート

WIndows 11アップグレート可能通知
WIndows 11アップグレート可能通知

弊社Windows 10 21H2に、Windows 11アップグレートOK通知が届きました。

弊社のPCは、IoTベンダのMCU開発ツールが主役、Windowsは脇役です。今すぐの11アップグレードはNGですので、「今はWindows 10の使用を継続します」をクリックし対処しました(なお、Windows 10 21H2大型更新方法は、コチラの関連投稿を参照)。

多くのIoT MCU開発ツールの公式推薦Windows OSは、未だWindows 10です。

公式推薦OSが、Windows 11に変った後に11化しても遅くはありません。今秋の11大型更新に向け11も進化中ですので、状況観察します。

Cortex-MとRISC-V

NVIDIA買収先で成立見通しが未だに不透明なARM社Cortex-Mと非営利団体運営のRISC-V、両MCUコアの顧客利用動向記事が公開されました(2022年1月14日、ITmedia)。

極簡単に要約すると、ARM顧客の多くが現在NVIDIAと競合関係にあるため、買収成立時、Cortex-M利用の顧客将来製品の代替コア用意(=Plan B)が必要で、代替コアにRISC-Vが急浮上している、という内容です。

ARM顧客とは、エッジAIや車載半導体製品を供給中のMCUベンダ(Renesas、NXP、STマイクロなど)を指します。Plan Bは、代替案と訳されます。これは、実行案Aのトラブル時、Aの次のBが、第2の案という意味です。

半導体業界は常に変化し、これに伴い案A達成に何らトラブルが無くても、その将来性に変化が生じる可能性もあります。“Backup”としてのPlan B必要性を感じた記事です。

オープンアーキテクチャRISC-V

Cortex-M代替として急浮上のRISC-V
Cortex-M代替として急浮上のRISC-V

RISV-Vは、カルフォルニア大学バークレイ校開発のオープンアーキテクチャMCUコアで、Cortex-MのようなCISC(Complex Instruction Set Computer)命令系を、より縮小した命令系(Reduce Instruction Set Computer)へ変え、低電力動作に適すなどの特徴を持ちます。

Cなどの高級言語ソフトウェア開発者にとっては、CISC/RISC差はあまり気になりませんが、コンパイラを開発するMCUベンダにとっては、他社差別化を生む重要なパラメタです。

MCU性能の支配項は、

・MCUコア(CISC or RISC)
・コンパイラ
・製造プロセス(≒最高動作周波数)
・内蔵周辺回路

の4項目で、ARM Cortex-M使用中ベンダなら、MCUコアとコンパイラはARM供給品なので各社共通です。つまり、製造プロセスと内蔵周辺回路でしか他社差別化手段がありません。

NVIDIAがARMを買収した場合、競合他社へのMCUコアやコンパイラ供給に、自社利用品と差を付ける可能性もあります。Cortex-M使用中のMCUベンダ各社が、ARM買収成立を嫌う理由が、これです。

そこで、オープンアーキテクチャでコンパイラ開発自由度も高いRISC-Vコアが、競合他社のCortex-M将来製品コアのPlan Bとして急浮上した訳です。

ARMコアMCU開発で出遅れたRenesasは、早々とRISC-V対応MCU開発を発表しました。NXPやSTマイクロのRISC-Vコア利用は不明ですが、Renesas同様、Plan Bを持っているのは確実です。

我々開発者が、今すぐRISC-V開発を始める必要性は低いと思います。むしろ、Cortex-M代替に、低価格高性能無線機能付きESP-WROOM-32を習得した方が役立つと個人的には思います。RISC-VESP-WROOM-32の関連投稿は、リンク先を参照してください。

MicrosoftのOffice、Windows分離売却可能性

Microsoftが買収を発表した大手ゲーム会社Activision Blizzard
Microsoftが買収を発表した大手ゲーム会社Activision Blizzard

半導体業界の大きな一角を占めるMicrosoftの大手ゲーム会社Activision Blizzard買収ニュースが1月19日発表されました。買収理由は、コチラの記事が示すメタバースです。COVID-19が大きく影響しているコンタクトレス・テクノロジのメタバースは、関連投稿の3章を参照してください。

Microsoft動向で気になるのは、確定内容ではありませんが「OfficeとWindowsを売却すべき」という1月17日発表記事です。Microsoftは営利団体です。Windows 11不具合の多さ、新機能の魅力無さなど、最近のWindowsに対するMicrosoftの力の入れようの低下とも符合します。

OfficeやWindows(特にGUI)は、既に製品完成の域に達しています。手間暇が掛かるDOS-VベースのコンシューマーOS企業と、最新コンタクトレス・テクノロジやAzure、高度セキュリティ投資との親和性も高いパブリッククラウド企業とは、別会社の方が、利用者、投資家にとっても判り易いと思います。

エンタープライズ顧客重視で将来性も高いパブリッククラウド企業地位を、MicrosoftがAmazonやGoogleよりも高めたいなら、足枷の可能性もあるOffice、Windows分離売却も可能性ありと思います。

Plan B評価の違い

M&A:Mergers(合併)and Acquisitions(買収)は、半導体業界では当たり前です。激変する半導体業界のMCUベンダとMicrosoft動向記事を紹介しました。

日本社会では、Plan B評価がまだ低いのですが、MCU開発者として、「個人レベルのPlan B必要性」を感じた記事でした。日本人と外国人上司のPlan B評価の違いは、コチラの記事を参照してください。

TPM SoC Microsoft Plutonプロセサ搭載PC 5月発売

Microsoft Plutonプロセサとは、Windows 11アップグレート要件のTPMとCPUをSoCで一体化し、より強固なセキュリティを実現したWindows PCのことで、2022年5月発売予定のRenovo ThinkPad Z16/Z13が初のPlutonプロセサ搭載PCです。

Microsoft Plutonプロセサ

Microsoft Pluton(出展:Microsoft News Centor)
Microsoft Pluton(出展:Microsoft News Centor)

現行のTPMは、CPUとは別チップです。このため、TPMセキュリティを破る方法が公開されています。

この対策にMicrosoftは、TPMをSoC(System on Chip)でCPUと一体化した「Microsoft Plutonプロセサ」を、AMD、Intel、Qualcommと共同開発すると2020年11月に発表しました。

Microsoft Plutonプロセサ搭載PCのSoCセキュリティサブシステムの更新は、Windows Updateと連動しており、定期的なシステムセキュリティ更新が実行されます。

スマホ、Xbox標準のセキュリティ一体化プロセサ

SoCでセキュリティ機能を一体化したプロセサは、スマホでは標準的、ゲーム機のMicrosoft Xbox Oneでも2013年に既に導入済みです。また、コチラの関連投稿4章:TrustZone内蔵Cortex-M33にも近づいた感じがします。

スマホやXboxに遅れること約10年目の2022年、一般的なPCへもMicrosoft Plutonプロセサ(Ryzen PROシリーズ+SoC TPM)が、Renovo ThinkPad Z16/Z13へ導入されました。終わりが無くエンドレスなセキュリティ対策の実例です。

ThinkPad Z13(出展:PC Watch記事)
ThinkPad Z13(出展:PC Watch記事)

Pluton PCの今後

気になるのは2点。1つは、Microsoft Plutonプロセサが、Windows 11以降(例えばWindows 12)の一般PC要件になるかもしれない点😥、もう1つが、自己責任で「TPM 2.0回避アップグレート」したTPM無しWindows 11のTPM更新(Windows Update)はどうなるか、という点です。

2つ目に関しては、昨年TPM 2.0を回避して11アップグレートした先進ユーザが、様々な情報をネットに投稿してくれると思いますので期待しています。

仮にTPM以外の月例セキュリティUpdateは成功、今年秋のWindows 11大型更新もTPM 2.0装着PC同様成功するなら、2025年10月サポート終了Windows 10の後継OSとして、11の選択もあり得ます。OSアップグレードに対しPCハードウエアの著しい性能向上をMicrosoftが求めなかった過去経緯ともマッチするのは、このアップグレード方法です。

もちろん、TPM 2.0非搭載リスクは、自己責任です。このリクスを根底から無くすには、PCのPluton PC化が必須です。Windows 11は、PC Pluton化への過渡期用OSで、だからこそ、TPM回避Windows 11インストールをMicrosoftが公式発表したのかもしれません。

セキュリティ起因のPluton PCが一般PCに普及すれば、次期Windowsは、Pluton PCを要件とするでしょう。今後もMicrosoft動向とWindows 11改良、TPM回避先進ユーザ情報に注視したいと思います。

組込み開発 基本のキ:RTOS vs. ベアメタル

RTOS vs. BareMetal
RTOS vs. BareMetal

2022年最初の投稿は、RTOSとベアメタルを比較します。RTOSを使わないベアメタルMCU開発者が多いと思いますので、RTOS開発メリット/デメリットをベアメタル側から評価、RTOSデバッグツール紹介とベアメタル開発の意味を考えました。

RTOS目的

Flexible Software Package構成
Flexible Software Package構成

ルネサスRAファミリのFlexible Software Package構成です。左上Azure RTOSやFreeRTOSの中に、ConnectivityやUSBがあります。これらMCU共有資源を管理するシステムソフトウェアがOSで、PCのWindowsやMac、Linuxと機能的には同じです。

Real-Time性が必要な組込み用OSをRTOSと呼び、FreeRTOSやAzure RTOSが代表的です。これは、IoT MCU接続先が、Amazon Web Services(AWS)クラウドならばFreeRTOSライブラリ、Microsoft AzureクラウドならAzure RTOSライブラリ(図のConnectivity)利用が前提だからです。

※2021年のIoTクラウドシェアは、コチラの関連投稿からAWS>Azure>GCPの順です。

RAファミリに限らず、クラウド接続のIoT MCUは、これらRTOSライブラリを使ったRTOS開発になります。

RTOSメリット/デメリット

例えば、ベアメタルでUSB制御を自作する場合は、USB 2.0/3.0などの種類や速度に応じた作り分けが必要です。ライブラリがあるRTOSなら、USBポートへの入出力記述だけで利用可能です。RTOSが共有資源ハードウェア差を吸収し、アプリケーションが使い易いAPIを提供するからです。

RTOSの資源管理とは、MCUコア/Flash/RAM/周辺回路/セキュリティなどの共有資源を、アプリケーション側から隠蔽(≒ブラックボックス化)すること、とも言えます。

RTOSアプリケーションは、複数タスク(スレッドと呼ぶ場合もあり)から構成され、タスク間の優先制御もRTOSが行います。開発者は、単体処理タスクを複数開発し、それらを組み合わせてアプリケーションを構成します。RTOSアプリケーション例が下図、灰色が開発部分、コチラが関連投稿です。

Data flow diagram for a smart thermostat(出展:JACOB'S Blog)
Data flow diagram for a smart thermostat(出展:JACOB’S Blog)

RTOS利用メリット/デメリットをまとめます。

メリットは、

・RTOSライブラリ利用により共有資源活用タスク開発が容易
・移植性の高いタスク、RTOSアプリケーション開発が可能
・多人数開発に向いている

デメリットは、

・複数タスク分割や優先順位設定など、ベアメタルと異なる作り方が必要
・共有資源、特にRAM使用量がタスク数に応じて増える
・RTOS自身にもバグの可能性がある

簡単に言うと、RTOSとベアメタルは、「開発作法が異なり」ます。

ソフトウェア開発者は、RTOS利用と引換えに、自己流ベアメタル作法を、RTOS作法へ変えることが求められます。RTOS作法は、標準的なので多人数での共同開発が可能です。もちろん、ベアメタルよりもオーバーヘッドは増えます。このため、RTOS利用に相応しい十分なMCUコア能力も必要です。

RTOSタスク開発 vs. ベアメタルアプリケーション開発

最も効果的なRTOS作法の習得は、評価ボードを使って実際にRTOSタスク開発をすることです。弊社FreeRTOSアプリケーションテンプレートは、この例です。

それでも、RTOSタスク開発作法を文章で記述すると、以下のようになります。

開発対象がアプリケーションからタスク(スレッド)へ変わることが、ベアメタルとの一番の違いです。Windowsタスクバーにあるフィルダ表示や、ペイントなどと同様、タスクは、単機能の小さいアプリケーションとも言えます。

このタスクを複数開発し、複数タスクを使ってRTOSアプリケーションを開発します。タスクには、それぞれ優先順位があり、他のタスクとの相対順位で実行タスクがRTOSにより決まります。タスクの状態遷移が、RTOSへの備え:第2回、タスク管理で示した下図です。

FreeRTOS Task States
FreeRTOS Task States

ベアメタルアプリケーションとは異なり、優先順位に応じてタスクが実行(Running)され、その実行も、定期的に実行可能状態(Ready)や待ち状態(Suspended)、停止状態(Blocked)へRTOSが変えます。これは、リアルタイムかつマルチタスク処理が、RTOSの役目だからです。遷移間隔などは、RTOS動作パラメタが決めます。

ベアメタル開発は、開発者が記述した通りに処理が実行されますが、RTOS開発のタスク実行は、RTOS任せです。RTOS開発難易度の上がる点が、ここです。

一般的なIoT MCUは、シングルコアですので、実行タスク数は1個、多くの他タスクは、Not Running(super state)状態です。RTOSがタスクを実行/停止/復活させるため、スタックやRAM使用量が急増します。

これら文章を、頭の中だけで理解できる開発者は、天才でしょう。やはり、実際にRTOSタスクを開発し、頭の中と実動作の一致/不一致、タスク優先順位やRTOS動作パラメタ変更結果の評価を繰返すことで、RTOS理解ができると凡人筆者は思います。

ベアメタル開発者が手早くRTOSを理解するには、既にデバッグ済みの複数RTOSタスク活用が便利で、FreeRTOSアプリケーションテンプレートは、この要求を満たしています。概要は、リンク先から無料ダウンロードできます。

文章でまとめたFreeRTOS解説が、コチラの弊社専用ページにあります。また、本ブログ検索窓にFreeRTOSと入力すると、タスク開発例などが参照できます。

RTOSデバッグツール

percepio tracealyzer
percepio tracealyzer

さて、RTOS作法に則ってタスク開発し、RTOS動作パラメタも適切に設定しても、思ったように開発タスクが動作しない時は、ブラックボックスRTOS自身のバグを疑う開発者も多いでしょう。RTOSのバグ可能性もありえます。

この疑問に対して強力にRTOS動作を解析できるFreeRTOSデバッグツールがあります。資料が無料でダウンロードできますので、紹介します。

※このツールを使うまでもなく、弊社FreeRTOSアプリケーションテンプレートは、正常動作を確認済みです。

まとめ:RTOS vs. ベアメタル

IoT MCUのクラウド接続 → 接続クラウド先のRTOSライブラリ必要 → RTOSライブラリ利用のRTOS開発が必要、という関係です。

RTOS開発は、ベアメタルと開発作法が異なる複数タスク開発です。タスクは、優先順位に応じてRTOSがMCU処理を割当てます。また、MCU共有資源がRTOSアプリケーションから隠蔽されるため、移植性が高く多人数での大規模開発にも向いています。

一方で、RTOSオーバーヘッドのため、ベアメタルよりも高いMCU能力が必要です。

シングルコアMCUでは、RTOSとベアメタルのハイブリッド開発は困難です。開発者がRTOSを利用するなら、慣れたベアメタル開発から、RTOSタスク開発への移行が必要です。

ベアメタル開発経験者が、効果的にRTOSタスク開発を習得するには、評価ボードと複数RTOSタスクが実装済みの弊社RTOSアプリケーションテンプレートの活用をお勧めします。

ベアメタル開発意味

RTOSのタスク処理待ち(セマフォ/Queue)を使うと、ベアメタルよりも排他/同期制御が簡単に記述できます。それでも、全てのMCU開発がRTOSへ移行することは無いと思います。様々なセンサデータをAD変換するエッジMCUは、ベアメタル開発、エッジMCUを複数個束ねクラウドへ接続するIoT MCUは、RTOS開発などがその例です。

MCU開発の基本は、やはりRTOS無しの「ベアメタル開発」です。

IoT MCU開発者スキルの階層構造
IoT MCU開発者スキルの階層構造

ベアメタル開発スキルを基にRTOSを利用してこそ、RTOSメリットを活かしたタスクやアプリケーション開発ができます。共有資源ブラックボック化、多人数開発のReal-Time OSは、「ベアメタル開発の補完」が起源です。

PC OSとは全く逆のこの生い立ちを理解していないと、効果的なRTOS利用はできません。近年MCU性能向上は著しいのですが、向上分をRTOSだけに振り分けられる程余裕はなく、IoTセキュリティなどへも配分する必要があります。

この難しい配分やRTOS起因トラブルを解決するのが、ベアメタル開発スキルです。弊社マイコンテンプレートは、主要ベンダのベアメタル開発テンプレートも販売中、概要ダウンロード可能です。

組込み開発 基本のキ:バックナンバー

2022年最初の投稿に、筆者にしては長文すぎる(!?)のRTOS vs. ベアメタルを投稿したのは、今年以降、RTOS開発が急速に普及する可能性があるからです。

クラウド接続からRTOS必要性を示しましたが、セキュリティなど高度化・大規模化するIoT MCU開発には、移植性の高さや多人数開発のRTOSメリットが効いてきます。

また、半導体不足が落ち着けば、RTOS向き高性能MCUの新しいデバイスが、各ベンダから一気に発売される可能性もあります。スマホ → 車載 → IoT MCUが、半導体製造トレンドです。

※現状のMCUコア関連投稿が下記です。
Cortex-M33とCortex-M0+/M4の差分
Cortex-M0からCortex-M0+変化
Cortex-M0/M0+/M3比較とコア選択

IoT MCU開発が複雑化、高度化すればする程、前章のベアメタル開発や、組込み開発の基礎技術:基本のキの把握が、開発者にとって益々重要になります。

組込み開発、基本のキ:バックナンバーを示します。年頭、基本を再確認するのはいかがでしょう?
組込み開発 基本のキ:組込み処理
組込み開発 基本のキ:IoT MCUセキュリティ



傾向と対策:日本低下

 

世界第2位から降下傾向の日本
世界第2位から降下傾向の日本

年内最後の投稿に、“日本の半導体産業はどうしてダメになったのか? 今だから分かる3つのターニングポイント”(@IT、2021年12月17日)を紹介し、国際地位低下傾向の日本と、IoT MCU日本開発者の対策を示します。

半導体と通信業界から見る日本低下傾向

半導体の研究・開発者から見た日本地位低下を、3度のターニングポイント失策から分析し、現状の日本半導体は、脇役へ滑り落ちていて、名脇役の存在感を示せるかは、「舵取り」(おそらく政治家や官僚)にかかっていると結論しています。

筆者、Massa POP Izumida氏は、もちろん日本人で、本ブログ筆者と同世代だと思います。80年代に就職、90年代世界第2位の経済大国日本で中堅現役、そして、総合順位31位へ低下した現状日本を実感されている技術者だと推測します。

ATM(Asynchronous Transfer Mode)通信の研究・開発者だった本ブログ筆者も、同じような経験があります。90年代、米国、欧州、日本のATM規格競争が勃発した時、日本案が世界規格になっていれば、現状と異なるネットワーク、通信業界になっていたでしょう。“たられば”の話です。

日本人特性

周囲の意見に「同調意識が強い」日本人の性格や特性は、コチラの記事にまとまっています。「単一民族島国の中」で、上手く生きていくための特性は、必然です。

ただ、舵取りや国際競争の時に、この特性が裏目に出たのが、日本地位低下原因の1つでしょう。現状も変わらない官僚主義は、コチラの記事でも判ります。

一般国民も含めた日本人の特性変化(≒国際化)には、「数世代に渡る長い時間」が必要です。

つまり、今の日本人特性は、「ボーダレスネットワークでワールドワイドに急変した世界の中」の日本低下傾向を、スグに阻止し復帰するには適していない訳です。

日本IoT MCU開発者対策(私案)

IoT MCU日本開発者が生き残るには、「日本人以外の第2の視点とPlan B」が必要です。

日本IoT MCU開発者の対策
日本IoT MCU開発者の対策

日本開発者の現役期間が50年としても、DNAに染み込んだ同調意識もまた簡単には変わりません。

対策は、一時的にせよ、欧米人の特性で自身のIoT MCU状況を捉えることです。欧米人特性は、ネット検索で見つかります。また、欧米に限らず、アジア人特性も日本人とは大きく異なります。

これら日本人外の特性・視点で現状把握を試すと、自分との差分が判り、対策に何をすべきかが見えてきます。これは、個人キャリアプランの中で、Plan Bの1つに相当します。

具体策は、個人により異なります。私の場合は、米語です。幸い、IoT MCU関連ドキュメントやセミナーは、殆どが米語ですので、材料は豊富です。敬語の利用が少ない米語は、効率的情報伝達と取得に優れています。

別策は、国際競争下で最後に生き残っている日本自動車業界の視点を借りることです。自動車業界は、ワールドワイドな視点で、研究開発を実践中です。生き残った主因です。その取組みや視点で、Plan Bを考えるのも良いと思います。

年末年始は、現状から少し距離を取れる時期です。日本人外の視点とPlan B検討は、いかがでしょう。

次回金曜投稿:1月7日

各種メンテナンスのため大晦日投稿はなし、年内は本稿が最後、次回金曜投稿は、来年1月7日です。

弊社サイトは、年中無休です。本年も弊社のご利用、誠にありがとうございました😌。
皆様、良いお年をお迎えください。

RAファミリFSP v3.5.0更新

ルネサスRAファミリのFSP(Flexible Development Package)が、12月9日、v3.5.0へ更新されました。RAファミリの特徴は、コチラの3章に投稿済みです。下記が、抜粋した2項目です。

・ARM Cortex-M33/M23/M4コア採用でIoTセキュリティ強化
・Eclipse IDEベースのKeilやIARなどのARM Ecosystemと無償GNUコンパイラ利用可能

RAファミリヒットの予感!

筆者は、RAファミリが、IoT MCU日本人開発者にヒットする予感がします。

Arduinoシールドコネクタ付き+外付けエミュレータ無しで開発できる低価格評価ボード、コンパイラ容量制限無し、CMSIS開発などは、競合他社に追いついた感じですが、FreeRTOS/Azure RTOS両RTOSへの早い対応、オリジナル内蔵周辺回路や買収各社のフロントエンド化、SOTBなどの製造プロセスは、多くのルネサス開発経験者を引き付ける魅力を持つからです。

この魅力を最大限引出すツールが、FSPです。簡単に言うと、HAL(Hardware Abstraction Layer)API生成SDK(Software Development Kit)です。ルネサスは、Smart Configuratorと呼んでいますが…。

RA開発ポイントFSP構成

FSP v3.5.0の詳細は、ユーザーズマニュアル:UM(英文、全3206ページ)を参照してください(ページ数が多いのは、Chapter 4以降がAPIレファレンスだからです)。FSP構成を示します。

Flexible Software Package構成
Flexible Software Package構成

FSP生成HAL APIを利用すると、RAファミリ共通のアプリケーション開発ができます。また、FSPは、例えばREファミリなど、他のCortex-M系ファミリへ発展する可能性もあります。HALが、コア差を隠蔽できるからです。

※図からRenesas版CMSISと考えると判り易く、CMSISは、コチラの関連投稿3章を参照。

IoT MCUでは、アプリケーションの流用性、移植性は重要です。従来よりも開発規模が大きく、しかも、セキュリティなどのIoT技術適用には、業界標準インターフェースでの機能流用が効率的だからです。既存アプリケーションを出来るだけ流用し、顧客の新規追加開発部分を最小化することで早期開発を実現します。

RAファミリの開発ポイントは、FSPです。

UMの2.3 Tutorial: Your First RA MCU Project – Blinkyと2.4 Tutorial: Using HAL Driversを読んで解る方は、2.5 Primer: ARM TrustZone Project Developmentで、IoT MCUポイント:TrustZoneの理解をお勧めします。具体的なTrustZoneサンプルコードは、検索中です。見つかりましたら、本ブログで投稿します。

2.3や2.4が不明な方は、コチラの関連投稿を参考にしてください。

日本語FSP解説

RAファミリビギナーズガイド
RAファミリビギナーズガイド

日本語FSP解説が欲しい方は、RAファミリビギナーズガイド(全114ページ)の2~3章が役立ちます。但し、掲載サンプルコードは、UMに比べ少数です。

このガイドで注目して頂きたいのが、P98の下記です。

“セキュリティは重要です。また、それは後で追加することはできないため、初期段階から考える必要があります。少なくとも、コストのかかる再設計があれば、それに基づいてアプリケーション全体を破棄することも必要になるかもしれません。これは建物の土台と考えてください。それ自体は……。
それでも、この接続された世界の全てのアプリケーションにはセキュリティが不可欠なのです。”

IoT MCUのセキュリティ土台には、Cortex-M33のTrustZoneが業界標準です。Cortex-M33のRAファミリをプロトタイプ開発に使う理由は、後で追加できないTrustZoneが土台に内蔵のためです。

プロトタイプ開発初期は、TrustZone未使用でも構いません。後でIoTセキュティを追加する際に、プロトタイプ開発で使った土台を変更せずに内蔵TrustZoneを使えること、これがRAファミリをIoTプロトタイプ開発に使う最大メリットです。

FSP活用RAテンプレート構想

RAテンプレートは、FPB-RA6E1とFPB-RA4E1両方で動作確認
RAテンプレートは、FPB-RA6E1とFPB-RA4E1両方で動作確認

FSPには、多くのサンプルコードが掲載されています。弊社は、これら複数サンプルコードを簡単に流用し、早期プロトタイプ開発に使えるRAテンプレートv 1.0を、来年1Q目途に開発、RAファミリ中核MCUのRA6/4シリーズ評価ボードRA6E1/RA4E1の両方で動作確認し、販売を予定しています。

※既に販売中の各種テンプレートは、コチラをご覧ください。

最初にリリースするRAテンプレートv 1.0は、UM 2.3/2.4理解や基礎的なRA習得に役立つ初心者向けベアメタルプロトタイプ開発テンプレートとし、中級以上の開発者向けRTOS関連やTrustZoneは、v2.0以降で対応予定です。

RAテンプレートを使えば、FSP掲載の複数サンプルコードを流用したIoTプロトタイプ開発が、早期にできます。

IoTスキル獲得最適RAファミリ

全てのモノがネットへ接続するIoT時代は、開発対象が増えますが、“競合”開発者も増えます。本ブログ読者には、スキルを活かした更なる効率的開発が求められます。

読者個人によるIoTキーポイントのスキル習得は、自分への先行投資です。キーポイントとは、現行MCU開発スキルに加え、IoTセキュティとRTOSです。

個人レベルでこれらセキュティとRTOSスキル獲得に、Cortex-M33のRAファミリは最適です。前章の低コストの評価ボードと業界標準Eclipse IDEベース“無償”ARM Ecosystem(=e2 studio+FSP)が、ルネサスサイトから簡単に入手でき、入手後、スグに開発着手できるからです。コンパイラ容量制限もありません。

また、初心者はもちろん、中級以上のIoTスキル習得意欲を満たすルネサス公式情報も豊富です。コチラが、公式RAファミリ動画です。短い動画が多数ありますので、すきま時間でのチェックに適しています。

e2 studio日本語メニュー vs. 英語メニュー

e2 studio日本語メニュー化
e2 studio日本語メニュー化

日本語メニューのe2 studioを使うには、インストール時、カスタマイズ機能でJapanese Language Supportコンポーネントの手動追加が必要です。筆者は、英語メニューを愛用していますが、FSP v3.5.0更新を期に、試しに日本語化してみました。

日本語メニューは、横幅が広くなりますがショートカットキー付きです。また、全メニューが日本語訳になる訳ではありません。好みの問題ですが、競合他社Eclipse IDE同様、英語の方が使いやすいと筆者は感じました。

WindowsのTPM使い方

Windows 11アップグレート要件のTPM 2.0の使われ方を調査しました。WindowsがどのようにTPMを使っているかを知れば、11アップグレート足切り要件を筆者が納得し、加えて、IoT MCUセキュリティのTrustZone開発工数を顧客へ説明する時、参考になるかもしれないからです。

WindowsのTPM

Windows 10から追加・変更された現行Windows 11の機能は、生産性や弊社ビジネス向上に直結するものは無いと思っています。対処法などは、最悪Windows 11へアップグレードする際に備え収集中です。

アップグレード要件で最も不満な点が、TPM 2.0です。このTPMで何を行い、なぜ要件になったのかを整理してみます。

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

その結果、TPM 2.0は、11アップグレード要件というよりも、国際標準規格制定団体:Trusted Computing Group(TCG)が2014年10月にリリースし、TPM 2.0としてISO/IEC標準セキュリティ規格となったPCの普及が目的、と結論しました。

来年秋のWindows 11大型更新後、弊社PCの11アップグレート状況が変わるか楽しみです。

TPM利用Windows HelloとBitLocker

暗号化、乱数⽣成、暗号鍵⽣成と保存、デジタル署名がWindowsのTPM 2.0チップ利用箇所で、MacのBoot CampでもWindows 11が動作しない理由は、コチラに良くまとまっています。

ちなみに、TrustZone対象も、TPM 2.0と同様になる可能性も高く、特に、暗号化アルゴリズム可変の機能は、優れています。アルゴリズムを変更するWindowsのOTA相当にも注目しています。

Windowsは、これらTPM機能を利用し、パスワードを使わずにWindowsへサインインする「Windows Hello」や、内部ストレージ暗号化の「BitLocker」を実行します。また、「Microsoft Azure Attestation」(MAA)などにも使うようです。

WindowsのTPM使い方例(出典:セパゴのITブログ)
WindowsのTPM使い方例(出典:セパゴのITブログ:https://www.sepago.de/)

BitLockerやWindows Helloは、Windows 10でも利用した企業向けノートPCユーザもいるかもしれません。ただ、個人ノートPCや自宅PCユーザは、Microsoftアカウントを使うWindows HelloやPINの代わりに、ローカルアカウントの利用者が多いハズです。手間が掛からないことや、PC使用履歴をクラウド記録されるのが嫌だからです。

Windows 11は、Microsoftアカウント利用が基本ですが、アプリケーション個人認証にスマホ併用も必須になりつつあります。例えば、Googleログインも、スマホ2段階認証が有効に変わりました。

Googleログインの2段階認証プロセス
Googleログインの2段階認証プロセス

従って、例えWindows 11でTPMパスワードレス認証後でも、Googleログイン2段階認証は必要になる訳です。一方、TPM 2.0未搭載Windows 10でも、BitLockerやWindows Helloは利用でき、スマホ2段階認証などで様々なアプリケーションのセキュリティにも対応可能です。

つまり、TPMは、Windows 11の技術的アップグレード要件ではなく、OSセキュリティ強化が目的、というのが筆者TPM評価です。

ちなみに、ローカルアカウントによるWindows 11セットアップ方法は、コチラにまとまっています。

TPM理由

Microsoftが強調するOSセキュリティ強化には、TPMと手間暇、処理能力が必要です。処理能力要件が、Windows11対応CPUです。Windows 10が正常に動作するCPUでも、この能力要件を満たさないCPUも多数あります。理由は不明ですが、今回はTPMにフォーカスするため追求しません。

さて、筆者のようなセキュリティ素人には、TPMセキュリティ強化分と便益(手間暇)比を、ゲーム/個人/企業などのPCユースケース毎に評価、公表してほしいです。現行Windows 11は、最強セキュリティを求める企業向けユーザのみを対象にしている気がします。

仮に、Windows 11普及にTPMセキュリティ強化が障害になっているとMicrosoftが判断すれば、コチラの関連投稿2章のユーザアカウント制御のようなセキュリティを弱める対策を打出すと思います。

ユーザアカウント制御の設定
ユーザアカウント制御の設定

好みのセキュリティレベル設定は、個人ユーザに歓迎されるハズです。既に、TPM回避Windows 11インストール公式発表などがその現れです。これは、Windows 10サポート終了2025年10月14日が近づけば、より効果を発揮します。

しかし、Windows 11の魅力が現行のままなら、2025年10月以降は、Mac/Linuxなどの別OSやWindows 365などに乗換えるユーザも少なくないと思います。11乗換魅力の無さが、普及を妨げているからです。

TPM の理由は、最もセキュリティに敏感で、新PC購入/入替えも容易な企業向けPCユーザへ、ISO/IEC標準セキュリティ規格PCへの買換え動機付けだと思います。

TrustZone Cortex-M33はM4比2倍説明応用

TrustZoneとTPMの類似性
TrustZoneとTPMの類似性

IoT MCU顧客へ、Cortex-M33 TrustZone活用開発工数は、Cortex-M4比2倍となる説明が必要と前稿で書きました。

2倍根拠は、Cortex-M33/M4動作周波数比、Secureと通常の2プロジェクト同時開発必須などです。これらは、目に見える差分です。しかし、セキュリティに関しては、リスクが増減という話ばかりで、数値で表せないセキュリティ差分を、顧客に納得してもらえるかは、正直分かりません。

しかも、TrustZone活用には、通常の開発スキルに加え、セキュリティスキルも必要です。組込み開発は、1人で全て担当することも多いので、セキュリティ知識は持てても、利用スキル:暗号化ライブラリ選択やAPI利用法などに限定したいハズです。

セキュリティの詳細内容は、一般的なIoT MCU開発者には背景知識が少ないため、根本理解は困難でしょう。この状況で、セキュリティ利用スキルも必要となるTrustZone活用開発の差分を、顧客に上手く納得してもらうには、開発者として何らかの工夫も有効かもしれません。

Windows 11のTPMも、上記TrustZoneと全く同じ状況だと思います。そこで、現時点のTPMを整理しました。

今後Microsoftが、どのようにTPMの理由をユーザへ説明(12/4更新)していくかを、IoT MCU顧客へのTrustZone Cortex-M33開発工数が、M4比、2倍の説明にも応用したいと考えています。

実務的には、セキュリティの根本理解よりも、この方法の方が近道の気がします😅