第2のRAサンプルコード

ルネサスRAファミリ開発に評価ボード毎のサンプルコードが重要であることは、過去何回か投稿済みです。今回は、これとは別の、「Stacks毎」に提供される第2のサンプルコード利用方法を説明します。

RAプロジェクトソースコード開発手順

FSPパースペクティブへ追加するLPM Stack
FSPパースペクティブへ追加するLPM Stack

ごく簡単にRAプロジェクトのソースコード開発手順を説明すると、

1) 利用「Stack」をFSPパースペクティブへ追加
2) Generate Project Contentクリック
3) 生成されたDeveloper AssistanceのStack API群から、利用APIをソースコード上へコピー&ペースト

という3手順の繰返しです。Stackとは、MCU周辺回路のことです。

評価ボードサンプルコードは、あらかじめ1)~3)をエキスパートが行い、サンプルで利用するStackとStack APIは、エキスパートが選択済みの実動作プロジェクトです。

一方、開発者自らが、1)~3)手順でソースコード開発する時は、どのStackを追加するか、利用するAPIは何か、を検討する必要があります。この検討に必要な情報は、全てFSPパースペクティブへ配置したStackのℹ️から得られます。

ℹ️をクリックすると、Stack PropertiesのAPI infoタブ相当の英文解説が読めます。内容は、Function、Overview、Exampleなどです。API info表示内容と同じですが、より詳しい説明が得られます。

「Stack毎」に提供される第2のRAサンプルコードとは、このExampleのことです。

Low Power Modes (r_lpm)の例

RAファミリの4低電力動作モード(出展:RA6E1ユーザーズマニュアル)
RAファミリの4低電力動作モード(出展:RA6E1ユーザーズマニュアル)

MCUアプリケーションに、低電力動作は必須です。RAファミリには、スリープ/ソフトウェアスタンバイ/スヌーズ/ディープソフトウェアスタンバイの4低電力動作モードがあります。例えば、RA6E1グループユーザーズマニュアルハードウェア編の10章を参照ください。

電力消費の最も大きいMCUを停止するのが、スリープモードです。スリープからの復帰時間も短く、簡単で効果的な低電力動作が可能です。

RAファミリで低電力動作を行うには、FSPパースペクティブへ、最初の図に示したLow Power Modes (r_lpm)スタックを追加します。

Stackのℹ️とサンプルコード

追加Stack ℹ️クリックで表示されるのが、LPMの詳細説明です。LPMスタック追加で増える5個全てのLPM APIが解ります。また、スリープモードプロパティがデフォルト設定済みなのも解ります。

このスリープモードのExampleが、下記LPM Sleep Exampleです。

LPM Sleep Example
LPM Sleep Example

利用APIは、R_LPM_Open()とR_LPM_LowPowerModeEnter()の2個のみです。assert(FSP_SUCCESS == err)は、次章で説明します。

注意点は、この「Stacks毎」に提供されるサンプルコードは、一般的なサンプルコード構成、つまり、初期設定と無限ループ内処理の記述形式ではないことです(一般的サンプルコード構成については、コチラの関連投稿参照)。

ここで示されているのは、LPMスリープモード時に利用するAPIとその利用順序です。

つまり、最初にR_LPM_Open()でスタックAPI利用可否を判断し、次に、R_LPM_LowPowerModeEnter()でスリープ動作OKの判断をしているだけです。

LPM以外のStack Examplesでも同様です。繰返しになりますが、Stack Exampleは、利用APIとその利用順序を示します。

従って、自分のソースコードへ取込むには、Developer Assistance内に生成された5個のLPM APIから、R_LPM_Open()を初期設定へ、次に、R_LPM_ LowPowerModeEnter()を無限ループ内の適当な個所へ、コピー&ペーストすれば、LPMスリープモードのソースコードが完成です。

assert(FSP_SUCCESS == err)

assert()は、()内が真の時は、何もしません。偽の時は、発生場所や関数名、ファイル名などをコンソール出力し、プログラムを停止します。API利用後の結果判断に活用しています。

「Stacks毎」に提供されるサンプルコードでは、多くのStack API利用箇所で使われています。

lpm_fpb_ra6e1_wpと比較

lpm_fpb_ra6e1_wpのFSPパースペクティブとhal_entry.cのMain loop部分
lpm_fpb_ra6e1_wpのFSPパースペクティブとhal_entry.cのMain loop部分

評価ボード毎のサンプルコードにも、低電力動作サンプルがありますので、前章Stack Exampleと比較します。

RA6E1の場合は、lpm_fpb_ra6e1_epです。このFSPパースペクティブとhal_entryのMain loopの一部抜粋が上図です。多くのLPM関連スタックが追加済みで、Main loopの低電力動作を解読するのも大変です。

これは、評価ボードサンプルコードが、初めに示した4低電力動作モードの状態遷移を示すプロジェクトだからです。スリープ動作のみを実装する時は、前章LPM StackのExampleを参照した方が簡単に理解できます。

勿論、評価ボードサンプルコードとStack Example、両方を参考にしてソースコードを開発する方が良いことは言うまでもありません。

Stack Exampleが、評価ボードサンプルコード理解を助ける第2のサンプルコードとして役立つことを示したかった訳です。

追加Stacks一覧

本稿は、LPM Stackを例に第2のサンプルコードを説明しました。

FSPパースペクティブへ追加可能なStackは、Stackタブを選択後、右上のNew Stack>をクリックすると一覧表示されます。

まとめ

RAファミリのソースコード開発は、FSPパースペクティブへStackを追加後、一括生成されるDeveloper Assistance内の多くのStack API群の中から、利用APIを適切な順序でソースコードへコピー&ペーストすることで進めます。

利用Stackに複数動作モードがあるなど評価ボードサンプルコードが複雑な場合や、開発者自らが利用Stack APIを検討する場合は、第2のサンプルコードとして、追加Stackのℹ️クリックで得られるExampleに示されるStack APIとその利用順序を参考に、ソースコード開発をする方法を示しました。

Windows 10、11、12

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

Windows 11リリース後、数か月が経過しました。早くもMicrosoftは、次期Windows 12開発着手の情報もあります。そこで、Windows PCの使い方をまとめます。何をどう対処すべきかの指針を、整理するためです。

Windows 11問題

筆者PCの使い方では、TPM以外のWindows 11問題は、タスクバーとMicrosoftのユーザカスタマイズを拒む姿勢です。Windows HelloやBitLockerは、使いません。が、今後セキュリティ比重は増しますので、TPM 2.0導入は我慢できます。

しかし、利用頻度が高いタスクバーがWindows 10のようにカスタマイズできない点と、それを強要するMS姿勢は、OSシェア断然トップのWindowsらしくありません。

過去アップグレード後のWindowsは、各種カスタマイズが容易でした。ところが、アップグレード時、MSアカウント必須に変われば、Hello利用やOneDrive接続、ユーザフォルダ名などもMS推薦設定になります。

10とコア共通のWindows 11リリース後、上記以外にもブラウザEdge、検索エンジンBing設定などにユーザカスタマイズを拒む姿勢変化が見られます。いずれも、Chrome、Google検索に比べ低シェアのためでしょう。

例えると、Macはクリエイター向けオートクチュール、従来Windowsはユーザがカスタマイズ容易なプレタポルテでした。ところが、Windows 11は、カスタマイズを許容しません。MSが想定した通りのメガネ(検索エンジン)と上着(タスクバー)を着なさい、と言っているようなものです。

従来Windowsユーザの生産性向上に反したMSの姿勢です。うがった見方をすれば、これはWindows 12の布石かもしれません。つまり、12は過去Windowsしがらみを切った全く新しいOSへ変わる可能性です。

解決DeadlineとOS利用形態

上記のようにカスタマイズを拒むWindows 11と10の混在利用は、効率を下げるため避けたいです。OS検討Deadlineは、Windows 10サポート終了の2025年10月です。

それまでのOS状況を整理すると、3利用形態があり得ます。

形態1:Windows 10を2025年10月まで利用

2025年10月14日まで、いかに上手くWindows 10を活用するかの特集が公開されました。

年1回へ減ったWindows 10大型更新さえ行えば、殆どのユーザが、従来の基本的OSメインテナンス実施でDeadlineまで安全に使えます。

Windows 10をサポート終了まで使う意味で、重要な記事です。Windows 10の手動による大型更新方法は、コチラの関連投稿を参照ください。

形態2:Windows 11アップグレード

未完成OSがWindows 11です。ユーザ反応をMSが見たうえで機能変更や追加を随時行っていきます。この方法も、従来新OSに無い新しいMS姿勢です。

悪評タスクバーが、改善されるかがポイントです。年1回のWindows 11大型更新は、Windows 10からのアップグレード採否を見極める機会にします。

また、使用中PC買換えタイミングもこの3年半に重なります。故障前に新PC購入が必要です。日本では、春と年末商戦時が、時期的に良いと考えています。

形態3:Windows 12アップグレード

現在のWindows 11は、Windows MeやVistaになるかもしれません。MSのWindows 12開発着手が、従来比、早いのか遅いのかも不明です。

しかし、11が不評で、中途半端なOSであることは確かです。Windows 12は、当然OSコア刷新、セキュリティもメタバース向けに強化した新世代OSになると思われます。インターネット進化版メタバースは、コチラの関連投稿を参照ください。

PCハードウェア仕様が許せば、11を飛ばして、12へアップグレートする可能性もあり得ます。

Plan B:Linux PC乗換え

Windows 10は、Deadline後は使えません。11や12アップグレートが困難な時は、WindowsからLinuxへ乗換えます。

現行PCのハードウェア仕様は、Linux化に問題ありません。詳細は、専用Linux Mint 20.3を使って評価します。Linux上でWindowsソフトを動作させるWine 7.0なども活用予定です。

まとめ:OS対策3指針

Deadline は、Windows 10サポート終了2025年10月14日、残り3年半です。PC OS対策は、保守的か革新的かで、指針が別れると思います。筆者は、以下3指針で臨みます。

指針1:11見極め・・・・・・2022年秋、23年秋、24年秋、25年秋
Windows 11初回大型更新の今秋まで現行Windows 10 21H2利用、11アップグレード採否は、大型更新内容で判断。この判断は、年1回の11大型更新毎に再検討。

指針2:12情報取集とLinux乗換リスク評価
Deadlineまでに11アップグレードを行わない場合は、Windows 12に期待するか、または、Linux PCへ乗換え。実務移行問題洗い出し専用Linux PC:Linux Mint 20.3/4/5で乗換リスク評価。

指針3:11 カスタマイズ性見極め
DeadlineまでにPCハードウェア新規購入の場合は、最新ハードウェア(Microsoft Plutonプロセサなど)搭載Win 11機とし、使い慣れたWin10カスタマイズがどの程度可能かを探る。

予定より少し早く新PCを調達し、指針3の11 カスタマイズ性の見極めを行う予定です。

RAアプリケーション開発の骨格

ルネサスRAファミリ評価ボードの動作テストプログラムと、周辺回路サンプルコードから判るRAファミリアプリケーション開発Tipsを示し、このTipsで開発したアプリケーション:App0を公開します。

評価ボードは、RA6E1を用いましたが、他のRAファミリ評価ボードでも同じです。

RAアプリケーションApp0のRTT Viewer出力
RAアプリケーションApp0のRTT Viewer出力

hal_entry.cとuser_main.c分離

RAファミリは、評価ボード毎にサンプルコードが提供されます。例えば、RA6E1の場合は、FPB-RA6E1 Example Project Bundleがそれで、この中にADCやタイマなどの周辺回路サンプルコードがあります。また、評価ボードテストプログラム:TP(quickstart_fpb_ra6e1_ep)も含まれており、他の周辺回路サンプルコード:EP(Exampleプログラム)とは少し違うファイル構造になっています。

違う原因は、EPが、コード判り易さのため、メイン処理をhal_entry.cに集中して記述するのに対し、TPは、様々な評価ボードへも対応するため、いわば汎用アプリケーション構造となっているからです。

簡単に言うと、FSPが生成するメイン処理:hal_entry.cと、ユーザ追記のメイン処理:user_main.cをファイル分離し、ユーザ開発部分の可搬性を上げた構造を持つのがTPです。

開発したMCUアプリケーションに可搬性があると効率的で生産性もあがります。TP同様、RAアプリケーションも、hal_entry.cとuser_main.cを分離した構造で開発する方法をお勧めします。

※FSP(Flexible Software Package)やサンプルコードの詳細は、コチラの関連投稿を参照ください。

SEGGER RTT Viewer利用

TPとEPには、もう1つ違いがあります。それは、EPには、PC入出力マクロが実装済みの点です。

例えば、gpt_fpb_ra6e1_ep(最初のgptが汎用PWMタイマ、fpb_ra6e1が評価ボード、epがExample Programを示す)ならば、タイマ利用例をPCへ出力し、その設定値をPCから入力できます。

対PC通信にはUSB経由Virtual COMポートを利用する評価ボードが多いのに対し、ルネサスRAファミリは、評価ボード実装デバッガのSEGGER RTT Viewerをこの役目に使います。USARTなどのMCU資産を消費しないメリットがあります。

PCでRTT Viewerを使うには、コチラからJ-Link Software and Documentation Packをダウンロードし、PCへインストール後、J-Link RTT Viewer起動で評価ボードとPC通信ができます(最初の図)。

但し、RA6/4などCortex-M33コアファミリ開発の場合は、ビルド後生成されるmapファイルからRTT Control Block Addressを探し、Viewer起動ダイアログへ入力する必要があります。

プログラム変更やFSP版数が変わると、このBlock Addressも変わるので、生成mapファイルAddress値の再入力が必要です。

RAアプリケーション開発時にも、このPC通信マクロが使えるとprintf/scanfの代用になり便利です。FSP生成プロジェクトでPC通信マクロを利用するには、生成プロジェクトのsrcフォルダへ、SEGGER_RTTとcommon_utili.hの両方を手動で追加します。

追加元のSEGGER_RTTとcommon_utili.hは、どのEPのものでも構いません。

App0特徴

以上から、RAアプリケーション開発時は、FSPが生成するオリジナルファイルに

①HAL生成メインhal_entry.cとユーザ追記メインuser_main.cを分離したファイル構造
②srcへSEGGER_RTTとcommon_utility.hの手動追加

を行うと、ユーザ開発ソースコードのRAファミリ間での可搬性が高く、PC通信も容易なアプリケーションの骨格(Skelton)が完成します。

この方法で開発したアプリケーション:App0を示します。タイトルをPCへ出力するだけのアプリケーション骨格です。この骨格に、開発ソースコードを肉付けしていけば、肉付けソースコードのRAファミリ間可搬性が高く、デバッグ効率も高いアプリケーション開発ができます。

RAファミリアプリケーション開発骨格:App0
RAファミリアプリケーション開発骨格:App0

開発したApp0プロジェクト圧縮ファイルは、コチラよりダウンロード可能です。ご自由にご利用ください。

e2 studioへのインポート方法は、インポート>既存プロジェクトをワークスペースへ>アーカイブ・ファイルの選択で、App0.zip指定です。

App0開発手順

以下にApp0プロジェクトの作成手順を示します。

1)FSPで新規Bare Metal – Minimalプロジェクト生成
2)App0 FSPパースペクティブでGenerate Project Contentクリック
3)他の周辺回路サンプルコードのsrc>SEGGER_RTTとcommon_utility.hをコピーし、App0プロジェクト>srcフォルダへペースト
4)src>hal_entry.cのL3へextern void UserMain(void)追記、L19へUserMain()追記
5)src上で新規>ソース・ファイルをクリックし、UserMain.c追加
6)src上で新規>ヘッダー・ファイルをクリックし、UserDefine.h追加
7)UserMain.cとUserDefine.hへ、前章ソースコード追記
8)ビルドし、Debug>App0.mapファイルから_SEGGER_RTTを検索、そのアドレスを、RTT Viewer起動ダイアログのRTT Control Blockへ入力後OKクリック
9)評価ボードへApp0をダウンロード、実行
10)PCのRTT Viewerで図1のタイトル出力確認

4、5、6の追加ファイル名は、UserMain.c、UserDefine.hなど先頭大文字のPascal形式を用いています。これは、プロジェクト・エクスプローラーでオリジナルのFSP生成ファイルとユーザ追加ファイルの識別が容易になるからです。

また、筆者は、Cソース・ファイル毎にヘッダー・ファイルを追加するより、ソース・ファイル内にプロトタイプ宣言を追記し、個別ヘッダー・ファイルを追加しない方が好みです。4のhal_entry.cへUserMainプロトタイプ宣言を追記したのも、このためです。

UserMain()は、初期設定と無限ループに分け、初期設定にRttInit()とUserInit()を追加しています。RttInit()でタイトルをPCへ出力し、UserIint()は、内容が何もありません。骨格ですので、利用する周辺回路に応じて、ここへ初期設定コードを追記することを想定しています。

App0のプロジェクト構成とRTT Viewerへのmapアドレス設定の様子
App0のプロジェクト構成とRTT Viewerへのmapアドレス設定の様子

まとめ

RAファミリ評価ボードテストプログラムと周辺回路サンプルコードから、hal_entry.cとuser_main.cの分離ファイル構造と、RTT Viewer利用の対PC通信マクロ実装済みのアプリケーションスケルトン(骨格):App0を示しました。

この骨格へ、開発ソースコードを追加していけば、ユーザ追加部分のRAファミリ間可搬性が高く、デバッグ効率も高い、RAファミリアプリケーションが開発できます。

もちろん、3月末を目標に開発中のRAファミリテンプレートも、このApp0へ評価ボード実装LED点滅やチャタリング対策済みSW機能などを追加します。RAファミリテンプレート構想はコチラの4章、RAテンプレートの仕組みはコチラの関連投稿を、参照ください。

最近の組込みCコード書き方

RAファミリFSP生成のBare Metal Blinkyサンプルコードの書き方が、筆者のCコード書き方と違っていて驚いた点を示します(FSP:Flexible Software Packageとは何かは、コチラの関連投稿を参照)。

変数宣言位置

FSP生成Bare Metal Blinkyサンプルコードの変数宣言
FSP生成Bare Metal Blinkyサンプルコードの変数宣言

筆者のC変数宣言は、関数の冒頭、実行文の前に全ての変数宣言を行います。しかし、Bare Metal Blinkyサンプルコードは、変数が必要になった直前で変数宣言をしています。こちらの方が、コードが読み易いですね。

これは、使うC言語規格が異なるからです。筆者は、古いC90(1990年版)、FSPは、C99(1999年版)以降の規格、書き方を採用しています(参考文献:C言語の仕様)。

C言語規格も改良や改版が進み最新規格は、C11(2011年版)です。更に、C17やC2xなどへ進化中だそうです。下位(旧版)互換性は、コンパイラが賢いので保たれています。エッジAIが導入されると、古い書き方は止めなさいとアドバイスが出たりするかもしれません😅。

IoT MCU開発では、従来比、他者が開発したコードやライブラリを読み、理解・利用する機会も格段に増えます。

独立行政法人情報処理推進機構から、組込みソフトウェア開発向けコーディング作法ガイド[C言語版]ESCR Ver. 3.0(2018年)のPDF版がダウンロード可能です。

ガイド想定利用者は、プログラマやレビュー者(P3参照)とありますので、本ブログ読者は目を通しておくのも良いと思います。

新しい規格に縛られる必要は、コンパイラのおかげでありません。しかし、FSP生成サンプルコードに習い、今後はC99以降の書き方を採用します。

いわゆるLチカサンプルコードであっても、なおざりにできない例です。そこで、基になったFSP生成のBare Metal BlinkyとMinimalスケルトン(骨格)の差をまとめます。

Bare Metal Blinky生成方法

各種周辺回路サンプルコードは、FSPとは別に評価ボード毎に提供されます。しかし、Bare Metal Blinkyだけは、FSPで生成可能です(FSPと評価ボード毎の周辺回路サンプルコードは、コチラの関連投稿を参照)。

その狙いは、筆者のような古いC記述者へ新しい記述法を知らせる、または、Blinkyと周辺回路無しのMinimalなスケルトンとの差分を知らせる、などが考えられます。

FSP生成Bare Metal Blinkyは、通常の新規プロジェクト作成方法と同じ、ファイル>新規>Renesas C/C++ Project>Renesas RAクリックが最初の手順です。ダイアログに従って手順を勧めると、最後にBare Metal – BlinkyかMinimalかの選択が可能です。

Bare Metal Blinky生成方法
Bare Metal Blinky生成方法

Blinky選択とFinishクリックで、g_ioport I/O Portスタックだけが配置済みの[Blinky]FSP Configurationパースペクティブが開きます。

[Blinky] FSP Configurationのスタック
[Blinky] FSP Configurationのスタック
念のため、Generate Project Contentをクリック後、src>hal_entry.cを開くと、1章で示したC99以降の書き方で記述したBlinkyサンプルコードが生成されます。

Bare Metal BlinkyとMinimalの差分

Bare Metal Blinky(左)とMinimal(右)の差分
Bare Metal Blinky(左)とMinimal(右)の差分

BlinkyとMinimalスケルトンの差は、hal_entry()のTODO: add your own code hereの下にBlinkyコードが有るか無いかだけです。FSP Configurationも全く同じです。

つまり、IOPORT未使用のアプリケーションは無いので、例えMinimalと言えデフォルトでg_ioport I/O Portスタックは配置済みで、そのスタック利用例がBlinkyという訳です。

FSP生成Bare Metal Blinkyに習い、筆者も今後はC99以降の新しい書き方でCソースコード記述をしていきます。

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回避先進ユーザ情報に注視したいと思います。