半導体の宿命と対策

今回は技術的な話から離れ、半導体とその製品開発者の宿命と対策を考えます。

Summary:半導体の宿命と対策

半導体と関連開発者の宿命と対策
半導体と関連開発者の宿命と対策

半導体は経済と安全保障に強く関わる戦略物資です。経営・投資家には、巨額が稼げる分野、政治家には権力の見せ所の集票手段となりえます。

先端技術だけでなくこのような様々な側面を持つため、半導体製品開発者は、状況変化への柔軟性と視野を広く保ち、開発デバイスの高騰や入手不能などの状況に備え、常にPlan B対策を持つことをお勧めします。

半導体の成長

日本で「産業のコメ(米)」とも呼ばれる半導体は、自国の国内経済と安全保障に強く関わる戦略物資です。下記ピックアップ記事が物語っています。

世界半導体市場の推移(出典:SIA、データ元:WSTS)
世界半導体市場の推移(出典:SIA、データ元:WSTS)

2024年9月、世界半導体売上高が、前年同月比23.2%増の553億米ドルで過去最高を更新しました(11月7日、EE Times Japan記事)。グロス変化ですが、国別や地域別の増減割合も示されています。

車載ソフトウェア市場規模推移・予測(領域別)出所:矢野経済研究所
車載ソフトウェア市場規模推移・予測(領域別)出所:矢野経済研究所

2024年10月9日、矢野経済研究所は、日本国内車載ソフトウェアの制御系と車載IT系比率とその2030年までの日本市場が、1兆円に迫る規模の拡大予測を発表しました(10月22日、MONOist記事)。

※制御系:車載ADAS(先進運転支援システム)関連。
※車載IT系:CASE(Connected、Autonomous、Shared & Service、Electric)関連。

交通事故ゼロ社会イメージ(出典:トヨタ,NTT)
交通事故ゼロ社会イメージ(出典:トヨタ,NTT)

2024年10月31日、トヨタとNTTは、ヒト、モビリティ、インフラが三位一体で協調し、交通事故ゼロ実現に向けたAI・通信基盤構築に向け2030年度までに両社折版で5000億円投資を発表しました(11月1日、MONOist記事)。

これらの記事は、半導体製造・販売の売上高は過去最高に上昇中で、その半導体を大量に使う車載技術なども順調に拡大、2030年頃には、AI活用の新しいサービスへ発展することを示しています。つまり、半導体成長は前途洋々、関連投資や得られる利益も巨額です。

天気予報で言えば快晴です。経営者や投資家にとっては、半導体関連分野は魅力的でしょう。

半導体と政治

前章記事は、いずれも今秋の日米欧政治状況が大きく変わる前に発表されたものです。来年2025年は、この政治状況が大きく変わります。果たしてこれら予測や見込みが、このまま維持・継続されるでしょうか?

選挙によって選ばれる政治家は、自分の選挙区に視野・関心が集中しがちです。半導体産業は、地域経済と結びつきが強く、工場誘致に巨額資金や地域ネゴシエーションなども必要なため、政治の力(権力)の見せ所、恰好な集票手段です。

半導体は、先端技術だけでなくこのような政治側面も持つ産業です。戦略物資半導体の宿命です。

従って、日米欧政治状況変化後の来年2025年以降、各国半導体やサプライチェーンがどう変化するかは不透明で予測しづらいでしょう。100%の快晴確率では無い訳です。

開発者の対策

半導体を使う製品開発者は、快晴確率が100%で無いことを念頭に置く必要があります。例えば、台風の発生により場所により豪雨に変わることもある訳です。

台風やCOVID-19のような緊急事態の結果、開発デバイスの高騰や入手不能などの状況に変わることもあり得ます。これらに備え、代替デバイスを考慮しておくなどPlan Bを持ちましょう。例えば、MCUなら第2第3のMCUを考え、万一のMCU交換に対応できるハードウェア構成、例えば、制御系を標準インタフェースのArduinoで交換可能にするなどです。

また、様々な状況変化に対する柔軟性も必要です。これは、半導体関係者全てに言えることです。

半導体の製品開発者は、日頃から視野を広く持ち柔軟性を鍛えることが必要です。


MCUとMPU二刀流開発#2

Visual Studio Codeを使ったRaspberry Pi Pico 2 MPU開発
Visual Studio Codeを使ったRaspberry Pi Pico 2 MPU開発

TrustZone対応Cortex-M33コアに変わったRaspberry Pi Pico 2のMCU開発者向けPico 2開発の2回目は、Visual Studio Code(VSC)でソフトウェア開発環境を構築し、最初のプロジェクトを作成します(二刀流開発背景やハードウェアは投稿#1参照)。

※MCU開発者向けPico 2開発とは、MCU開発者の視点でRaspberry Pi Pico 2 MPU開発を記述。
※本稿はMCU開発で使うEclipse IDEとVSCを比較。
※MCUは価格追及型、MPU/SBCは機能拡張型。

Visual Studio Code(VSC)

Visual Studio Codeインストール直後
Visual Studio Codeインストール直後

VSCは、Microsoftが開発したマルチプラットフォーム・多言語対応の新しいコードエディタです。上図英語版エディタへ、拡張機能をインストールして使います。

カスタマイズ性が高く人気の開発ツールです。MCU開発デファクトスタンダードのEclipse IDE代替としても普及し始めています。

MCUとMPUの二刀流開発者は、Eclipse IDEとVSCの2つの統合開発環境を使えることが必要です。そこで、Pico 2 MPU開発環境のVSCを構築します。

先に結論を言うと、見た目は違いますがVSCはMCU統合開発環境Eclipse IDEと殆ど同じ操作です。Eclipse IDEコマンドやViewがVSCにもありますので同じ感覚で操作できます。

※本稿のEclipse IDEとは、例えばブログ掲載中のNXP)MCUXpresso、ST)STM32CubeIDE、ルネサス)e2 studioなどのこと。どれもEclipse IDEをベースにAPI生成ツールが実装済みのMCU開発環境。

Pico 2 MPU開発環境のVSC構築

1. PC(Win/Mac/Linux)へVSCインストール(デフォルト設定でOK)
2. 拡張機能:Japanese Language Packのインストール(お好み言語インストール可能)
3. 拡張機能:Raspberry Pi Picoのインストール(Pico 1/2/W全て共通)

拡張機能のJapanese Language PackとRaspberry Pi Picoのインストール
拡張機能のJapanese Language PackとRaspberry Pi Picoのインストール

拡張機能は、左ツールバー上から5番目の拡張機能アイコンをクリックし、検索窓にキーワード、例えばJapaneseやPicoを入力して選びます。様々な拡張機能候補が表示されますので、概要などを見て適す機能を選びます。インストールをクリックすればVSCへのインストール完了です。

VSCは、結構な頻度で更新されます。左ツールバー一番下の歯車アイコンクリックで更新確認ができます。インストール済みの拡張機能も、歯車アイコンで様々な設定ができますが、デフォルト設定で問題は無いと思います。

このようにVSCは、英語版汎用エディタを開発者がカスタマイズして使います。一方、MCU開発は、デファクトスタンダードEclipse IDEをMCUベンダがカスタマイズし専用化したものを使います。一長一短がありますが、Pico 2 MPUだけでなく幅広い開発にも使えるVSCは人気上昇中です。

Pico 2 MPUのVSC開発準備

拡張機能の日本語表示は、VSC再起動後に有効になります。日本語に変わらない時は、View>Command Palletをクリックし、検索窓にJapaneseなどを入力すると、表示切替えコマンドが判りますので手動切替えができます。

Pico拡張機能インストール後、左ツールバーにMPUアイコンが現れます。これをクリックし、New C/C++ Projectをクリックした画面が、下図です。

拡張機能Raspberry Pi Picoインスト後、New C/C++プロジェクトクリック画面
拡張機能Raspberry Pi Picoインスト後、New C/C++プロジェクトクリック画面

MCU開発者にはお馴染みの開発プロジェクト名やデバッガ設定ができます。面白いのが、RISC-Vコアが選択できる点です。実はPico 2は、Cortex-M33とRISC-Vのディアルコア(!) MPUです。しかし、どちらか一方のみが開発に使えます。本稿は、Cortex-M33を使います。

Featuresは、追加ライブラリです。Pico 2は、機能拡張型MPUですので、SPI/I2Cなどのインタフェース経由でボード機能を拡張するためのライブラリです。

Pico 2サンプルプロジェクト作成

前章のNew C/C++ Project画面で、プロジェクト名や標準入出力(printf)の接続先UART0/USBを選択後、Createクリックで新規プロジェクトが作成できます。しかし本稿は、MCU開発者にお馴染みのサンプルコードから最初のプロジェクトを作成します。

New Project From Exampleでblink_simpleを選択
New Project From Exampleでblink_simpleを選択

New C/C++ Projectの3つ下New Project From Exampleをクリックし、Name欄にblink_simple、Board typeはPico 2を選択します。Locationに適当な保存先を入力し、これ以外はデフォルトでCreateをクリックするとサンプルコード:blink_simple.cが作成されます。

※Name右横▼から様々なサンプルコード選択可能。

最初はDownloading SDK and Toolchainなどがあるため、作成時間がかなりかかります。画面右下のステータスで状況が判ります。また、「作成者を信頼しますか」などの質問が来ることもあります。暫く待っていると、下記blink_simple.cが現れます。

Pico2サンプルプロジェクトblink_simple
Pico2サンプルプロジェクトblink_simple

gpio初期設定後に無限ループを実行し、この中でgpio出力のledを点滅します。MCUのLチカサンプルと同じ構成です。

Pico 2サンプルプロジェクトビルド&デバッグ

下段Compileクリックでビルドされ、サンプルなので成功結果がターミナルViewに示されます。Eclipse IDEと同じ画面構成です。

この後、#1投稿で購入したRaspberry Pi Pico 2、DebugProbeを下図のようにPCとUSB接続します。本サンプルは、UART0は使いませんが接続していても問題ありません。

Rapsberry Pi Pico 2とDebugProbeのPC接続
Rapsberry Pi Pico 2とDebugProbeのPC接続

左ツールバー上から4番目の実行とデバッグ(Ctrl+Shift+D)アイコンをクリックすると、オブジェクトがPico 2へダウンロードされ、変数などが確認できるデバッグ画面に変わります。また、Eclipse IDEデバッグでよく使う続行(F5)やステップインなどのデバッグツールバーも表示されます。これらを使ってデバッグします。

blink_simple以外にも、様々なサンプルプロジェクトがあります。これらでPico 2 MPU理解が進みます。

Summary:MCU開発者のPico 2開発#2

最新MPU Cortex-M33コアRaspberry Pi Pico 2を使い、MCU開発者案件をMPUへも広げること、Eclipse IDE代替可能性のあるVisual Studio Code(VSC)習得を狙った投稿2回目は、以下VSC基本操作を示しました。

  • Pico 2 MPU開発環境VSC構築と開発準備
  • Pico 2サンプルプロジェクトビルドとデバッグ

統合開発環境としてのVSC操作やプロジェクト作成手順は、当然ですがMCU開発環境Eclipse IDEと殆ど同じです。但し、コマンド配置やファイル操作は、専用Eclipse IDEに一日の長があると思います。

VSCメリットは、今後期待されるAI活用プログラミングとの連携が良いことです。生成AI牽引GOMAの一角を占めるMicrosoft製だからです。

VSC基本操作を文章で書いたので長文になりました。端的に言えば、VSC操作は、MCU開発で使うEclipse IDEと同じです。Eclipse IDEで使うアイコンやコマンドはVSC画面内にあります。Pico 2サンプルを数個試せば、VSCにも慣れると思います。

Afterword:Pico 2ピン配置

サンプルコード利用時に役立つRaspberry Pi Pico 2:RP2350ピン配置を示します。本稿blink_simpleサンプルledは、GP25と判ります。また、豊富なSPI/I2Cインタフェースを使ってPico 2 MPUの機能拡張を行うのも判ります。

Rapsberry Pi Pico 2(RP2350)のピン配置
Rapsberry Pi Pico 2(RP2350)のピン配置



 

MCUとMPU二刀流開発#1

Rapsberry Pi Pico2開発環境
Rapsberry Pi Pico2開発環境

今年8月9日、英国ラズパイ財団が新しいRaspberry Pi Pico 2(以下Pico 2)を発表しました。Pico 2は、MCU開発者向けMPUです。従来MPU/SBCが採用していたCortex-Aなどの定番MPUコアから、セキュリティTrustZone対応Cortex-M33コアに変わったからです。そこで、MCU開発者向けPico 2開発の連載を始めます。

この連載で筆者を含めたMCU開発者は、最新MPU(Pico 2)のMCU的開発とVisual Studio Code(VSC)習得ができます。狙いは、開発の幅をMCUからMPUへも広げること、Eclipse IDE代替可能性もあるVSC習得の2つです。

※MCU的開発とは、例えばPico 2(RP2350、Cortex-M33 or RISC-V/150MHz、Flash/4MB、RAM/520KB)とMCUでお馴染みの表記をするなど「MCU開発者の視点でMPUを開発」ということです。

Summary:MCU開発者のPico 2開発#1

最新MPU Cortex-M33コアRaspberry Pi Pico 2を使い、MCU開発者案件のMPUへの拡幅、Eclipse IDE代替VSC習得を狙った投稿の1回目を示しました。

投稿#1内容が以下で、投稿背景とPico 2開発ハードウェアを示しています。

・MCU側からみたMPU開発の差
・MCU開発者が最新Raspberry Pi Pico 2 MPUを使うメリット
・Pico 2 MPU開発ハードウェア入手先情報
・TrustZone Cortex-M33 MCU/MPU二刀流開発の勧め

次回は、Pico 2開発ソフトウェアのVSC構築を投稿予定です。本投稿は、今後不定期に続けます。

※MCU(Micro Controller Unit)とMPU/SBC(Micro Processor Unit/Single Board Computer)の差を極簡単に言うと、MCUは価格追及型、一方、MPU/SBCは機能拡張型です(詳細は関連投稿参照)。

MPUとMCU開発差

同じCortex-M33コアでもMCU開発者とMPU開発者は異なるアプローチ
同じCortex-M33コアでもMCU開発者とMPU開発者は異なるアプローチ

MCU開発者なら当たり前の事でも、MPU側から見ると違う事柄が、コチラの記事前半で良く判ります。記事からピックアップした具体例が下記です。

・MPUは、ネイティブコード以外の開発もある
・サンプルコードは、全MPUペリフェラルをカバーしていない
・オンチップデバッグ無しのMPUボードもありJTAG/SWDの馴染みが薄い

一方、新しいPico 2が、MCU開発者に向いている理由が下記です。

・MCU開発者に馴染みがあるTrustZone対応Cortex-M33コアMPU
・MCU標準開発環境Eclipse IDE代替可能性のあるVSCが開発環境
・Windows/Macで開発できPico 2ボードとDebug Probe価格も低い
・Cortex-M33とRISC-Vのコア切替えもでき発展性に優れる
・Pico 2でオープンソースソフト/ハード開発を体験できる

つまり、MCU開発者の知識や経験を活かし、新しいPico 2 MPU開発ができます。その結果、低い障壁でMPU開発が始められます。

また、業務とは別の自分のキャリアアップにも役立つと思います(二刀流開発の勧め章参)。

Pico 2 MPU開発ハードウェア入手先

最初の図のPico 2とDebugProbeの2つが、購入するハードウェアです。

新しいPico 2は、従来比、1.5~2倍の高性能と省電力性が特徴です。DebugProbeは、専用ケースに入っており接続ケーブルも付属で使い易いです。

秋月電子通商やスイッチサイエンスなどから購入できます。秋月の方が低価格ですが、取扱数量が少ないとサイト記述があります。

・Raspberry Pi Pico 2:秋月電子スイッチサイエンス
・Raspberry Pi DebugProbe:秋月電子スイッチサイエンス

Pico 2開発環境Visual Studio Code

前述の記事後半に、Pico 2開発環境のVSC構築方法と、従来MPUで自作したデバッガー(Picoprobe)を使ったLチカプログラミングが記述されています。

但し、本連載は市販DebugProbeを使います。また、VSC構築は、次回投稿します。先行してPico 2開発環境を構築したい方は、記事を参考にしてください。

Cortex-M33 MCU/MPU二刀流開発の勧め

MCUとMPUの二刀流でTrustZone Cortex-M33を開発
MCUとMPUの二刀流でTrustZone Cortex-M33を開発

今から10年後、2034年の日本とエンジニアの記事は興味深いです。

日本の人口減少と共にエンジニアに求められるスキルも変わり、「高度なスキルに加え、より早く開発業務をこなす能力も求められる」という趣旨です。

本稿のPico 2 MPU開発もこの記事の趣旨がベースになっています。つまり、MCU比、MPU開発は、オープンソースソフト/ハードへの対応が良く、早い業務開発に向いています。

IoTに必須のセキュリティ機能を持つTrustZone Cortex-M33を、高度スキルを活かしたMCU、オープンソースソフト/ハードを活かしたMPU、どちらでも開発できれば、顧客要求を満たすエンジニアになれます。

顧客にとって実現手段はMCUでもMPUでも構わない、開発期間とトータルコストが問題です。この問題を解ける開発者、TrustZone対応Cortex-M33のMCUとMPU二刀流開発者が目標です(ワールドチャンピオンドジャースの大谷翔平氏のように)。

Afterword:Pico 2オープンソースハード/ソフト例

MPU/SBC(小さいコンピュータ)の拡張性を支えるオープンソースハード/ソフトは、市場に数多くあります。これらを上手く使えば、MCU比、早く大規模な開発に役立ちます。ここでは、3例を挙げます。

・AI強化:Raspberry Pi AI Kit、13TOPS NPU追加。
・表示デバイス追加:Tiny2350、カラー液晶追加。
・SSD追加:Raspberry Pi SSD Kit、256GB/512GB追加。

極簡単に言うと、機能を拡張したい時は、これらRaspberry対応のオープンソースハード/ソフトを探し、それをPico 2へ組込めばOKです。正にコンピュータへボード追加のイメージです。多くの機能ボードとボードを動かすソフトが、低コストで入手できますので、MCU比、短期間で簡単に機能拡張できるのが、MPUのPico 2です。


低消費電力トレンド

MCU開発者は、消費電力に気を配りソフトウェア/ハードウェアを開発します。最近は、顧客の低電力指向が強くなり、全業界で電力不足対策がトレンドとなっています。

ドイツ、米国、日本、有力企業の電力不足対策記事を示し、低消費電力トレンドを活かしMCU開発すれば、顧客に好印象を与え他社差別化に寄与することを示します。

ドイツ)Volkswagen国内工場閉鎖示唆

ドイツ)フォルクスワーゲンの電力消費対策
ドイツ)フォルクスワーゲンの電力消費対策

2024年9月5日、ドイツ最大手の自動車企業Volkswagenが、国内工場閉鎖を検討しているニュースが発表されました。その主要因は、国内調達エネルギーコスト、つまり、電力コストの高騰です。

製造業の製品は、コストパフォーマンスで評価されます。同じパフォーマンスならより安い製品が顧客に売れるのは、当然です。

脱原発方針やロシアのウクライナ侵攻、中東情勢のため、ドイツ国内電力コストが従来比急上昇し、もはやドイツ製造では高いコスパ維持ができないのです。

ドイツ工場を閉鎖、代わりに電力コストの安い国外製造がドイツ)Volkswagenの取組みです。

米国)Microsoft向けスリーマイル原発再稼働

米国)Microsoftの電力対策
米国)Microsoftの電力対策

2024年9月21日、米大手電力コンステレーション・エナジーが、スリーマイル島原発1号機の再稼働を発表しました。Microsoft AIデータセンタへ、20年間電力安定供給のためです。

AIデータセンタ向け電力は、今後急増が予想されます。再生エネルギーやシェール天然ガス発電だけではAI電力需要にまね合わないため、米国各地で原発再稼働の検討が始まっています。

AI新電力需要に対し、既存(休止)設備の再利用で対処するのが米国)Microsoftの取組みです。

日本)NTT光電融合新デバイス開発

日本)光電融合デバイスによる電力対策(出典:NTT R&D Forum 2023)
日本)光電融合デバイスによる電力対策(出典:NTT R&D Forum 2023)

2024年9月20日、NTTは、AIデータセンタ消費電力増大の解決策として光回路と電気回路を組み合わせた、新しい光電融合デバイスの現在到達点と今後の展望公演を発表しました。

光電融合デバイスは、次世代ネットワーク:IOWNだけでなく、コンピューティングへも使えるとNTTは考えています。

AI新電力需要に対し、光電融合新技術で対処するのが日本)NTTの取組みです。

Summary:低消費電力トレンドとMCU開発

ドイツ、米国、日本、有力企業の電力不足の取組みを、最新記事からまとめました。

  • ドイツ)Volkswagen:ドイツ工場閉鎖、電力コストの安い国外拠点で代替
  • 米国)Microsoft:既存(休止)原発再稼働でAI新電力需要を補う
  • 日本)NTT:光電融合の新技術でネットワークとコンピューティング両方の電力不足解消を狙う

これら低消費電力トレンドは、MCU開発やその顧客へも影響を与えます。MCU単体の消費電力は僅かでも、IoT時代は数十億個ものMCUが稼働するからです。

開発MCU消費電力の少なさは、顧客に好印象を与え、他社差別化に大きく寄与します。

Afterword:低消費電力MCU開発

MCU IDEには、電力消費シミュレーションツールが付属しています。従来は、確認程度に使っていました。シミュレーションとはいえ、今後は顧客へのMCU低電力動作例を示すのに使えます。

また、新しい製造デバイスは、従来デバイスよりも高性能で低電力動作です。例えば、40nmプロセスのSTM32G0は、STM32F0/F1の半分以下の電力で高速動作します(弊社STM32G0xテンプレートP2参照)。MCU単体とシステム全体ハードコスト検討も必要ですが、評価価値はあります。

40nm汎用STM32G0シリーズとSTM32F0/F1シリーズの動作電力比較
40nm汎用STM32G0シリーズとSTM32F0/F1シリーズの動作電力比較

全ての弊社マイコンテンプレートは、低消費電力対策にSleep処理を組込み済みです。Sleep有無で消費電力がどの程度変わるか、コメント修正のみで実ハード確認ができます。

MCUプロトタイプ開発に最適、顧客への低電力動作アピールにも適すマイコンテンプレート、ご活用ください。


生成AI未来予測

AIが人間よりも賢くなるシンギュラリティ、2045年問題
AIが人間よりも賢くなるシンギュラリティ、2045年問題

生成AIの未来予測が良く判る記事を紹介します。弊社は、AIをMCUセキュリティコンサルタントへ活用したいと考えています。この記事のAI自動化が、活用できる確信を与えました。

2つの未来予測

AI未来予測は、2つあります。1つが、今の生成AIはバブルで幻滅期へ入る。もう1つが、生成AIはこのまま加速し、社会を激変、シンギュラリティへ入る。この2つを、発表レポートに基づいて論点整理したのが紹介記事です。

弊社は、後者予測のAI加速、シンギュラリティ実現を信じますので、以下この予測要点をまとめます。

生成AI知能レベルと2027年シンギュラリティ実現

生成AI知能レベル、シンギュラリティ、AI自動化
生成AI知能レベル、シンギュラリティ、AI自動化

記事内の今年6月発表Situation Awarenessレポートが、生成AI知能レベルをまとめています。

2019年:未就学児童
2020年:小学生
2023年:優秀な高校生
2024年:大学生(現在AI知能レベル)
2025か26年:大学院生
2027年:汎用人工知能(AGI)レベルとなりシンギュラリティ実現

※AGI(Artificial General Intelligence)は、人間の考え方、知識の「一部を機能化」した現在のAIの親玉に相当し、人間と同等か最大でも10倍程度の知能レベル。

この予測は、レポート著者Leopold Aschenbrenner⽒個⼈の⾒解ではなくAI研究者、業界の主流意⾒だそうです。今年5月の関連投稿、2045年予測よりもかなり早いです!

この予測の前提は、電力やAI半導体、AI研究者、つまりAI資源が十分に揃うことで、GOMAなどの大手AIプレーヤもAI進化へ注力中のため、Aschenbrenner⽒は2027年末AGI誕生に自信を持っています。

さらに、ソフトバンクはコチラの関連投稿で、AGIの10年後に更に高度なASI:Artificial Super Intelligenceへレベルアップすると予測しています。

AI自動化の仕組み

AGI実現を待つまでもなくAI自身が自分を改良・進化させるAI自動化は、今のAI技術でも可能だというレポートをSakana AI発表しました。そのAI自動化の仕組み(実現ステップ)です。

AI自動化の仕組み(実現ステップ)
AI自動化の仕組み(実現ステップ)
  1. アイデア⽣成:与えられたコードとタスク説明に基づいて、新しい研究アイデアを⽣成。
    ※アイデア⽣成は、⽣成AIの得意分野。
  2. 新規性チェック:そのアイデアに新規性があるかをAIが検索機能を使って調査。
  3. 実験実⾏:他に同様の論⽂が⾒当たらない場合は、そのアイデアを使った実験計画を立案。計画通りにコードを書いて、結果を確認。このような実験を繰返す。
  4. 結果の可視化と論⽂執筆:図表を作り論⽂⽣成。
  5. 論⽂レビューと改善:AIが書いた論⽂をAIが読み返し改善点提案、それを基にAIが論⽂を書き直す。

凄い仕組みです。このAI自動化による論文が既にあるそうです。現在は論文中の図表をAIが正確に読めない課題もありますが、この課題は確実に克服されるそうです。

弊社は、AI自動化によりAIをMCUセキュリティコンサルタントへ利用できると確信しました。セキュリティ全般知識とMCUセキュリティ開発の費用対効果、必要な開発レベル、開発期間などを問い合わせると、自動化AI MCUコンサルタントが、上記ステップを使って回答を出力します。

各ステップの結果を参照することで、AI回答ハルシネーション対策や信憑性確認もできると思います。

Summary:生成AI未来予測

ビジネスのAI利用は賛否あります。生成AI未来予測記事は、賛否両論の主張を整理しています。弊社は、AI進化予測の内容をまとめました。

  • 生成AI知能レベルは、電力、AI半導体、AI研究者が十分に揃い、GOMAなどAIプレーヤのおかげで進化し、2027年にAGIとなり人間知能を超えるシンギュラリティになる。
  • AIが自分自身を改良・進化させるAI自動化は、現在のAI知能レベルでも可能で、既に自動化により数件の論文を生成済み。図表の正確な読取りに課題もあるが、克服される。

Afterword:AI利用で激変するPC作業

生成AI革命がGAFAMからGOMAへ変える
生成AI革命がGAFAMからGOMAへ変える

GOMAの一角Microsoftは、AI(Copilot)のビジネスOffice文書作成にも積極的です。例えば、コチラの記事です。紹介されたCopilot機能は、文書生産性や共同作業性の向上に直結します。もはや文書作成時のCopilot利用は、当たり前で、それをいかに上手く使うかが焦点です。

AIに対する一種のアレルギーは、GeminiのGoogleサービス拡張機能やApple IntelligenceなどのAIスマホ普及により減少し、ユーザは、PCへも更なるAI機能追加を要求すると思います。

AIは、もはやInternetと同レベルの情報機器必須機能へ変化・進化しつつあるのです。


2つのTrustZone開発方法

セキュアマネジャ利用対2領域開発
セキュアマネジャ利用対2領域開発

STマイクロ)STM32H5とSTM32U5は、どちらもTrustZone対応Cortex-M33マイコンです。しかし、そのTrustZone開発方法は、STM32H5がSecure Manager利用、STM32U5がSecure/Non Secureの2領域開発など大きく異なります。

本稿は、これら2つのTrustZone開発方法の概要と特質を説明します。どちらが一般のMCU開発者向けかも示します。詳細は、STM32H5はコチラ、STM32U5はコチラのウェビナー資料を参照ください。

STM32H5とSTM32U5

STM32 TrustZome対応MCUポートフォリオ(STM32H5ウェビナー資料P3を編集)
STM32 TrustZome対応MCUポートフォリオ(STM32H5ウェビナー資料P3を編集)

STマイクロのTrustZone対応Cortex-M33コアマイコンファミリは、現在上図の4種類あります。最高動作周波数や内蔵周辺回路が想定アプリケーションにより異なりますが、どれもTrustZone対応のセキュアマイコンです。

※TrustZone基本は、コチラの投稿参照。

Cortex-M33マイコンのセキュリティ機能

STM32 Cortex-M33ハードウェアセキュリティ機能一覧(STM32U5ウェビナー資料P36を編集)
STM32 Cortex-M33ハードウェアセキュリティ機能一覧(STM32U5ウェビナー資料P36を編集)

4種セキュアマイコンのハードウェアセキュリティ機能一覧が上図です。基本機能のTrustZoneやSecure Memory利用セキュアブートは、4種マイコン共に持っています。

これらセキュリティ機能一覧から、必要性に応じて開発ユーザアプリへセキュリティ機能を追加することをセキュリティ開発、その中心がTrustZoneなのでTrustZone開発と言います。

※Secure Memory利用セキュアブートは、コチラの投稿参照。

STM32U5セキュリティ開発方法

マイコンセキュリティの目的は、ハッカー攻撃などによる開発ソフトウェアの改ざん防御です。従って、想定アプリにより多少の違いがあっても、基本となるセキュリティの開発方法は、マイコンにかかわらず同じと考えるのが普通です。

事実、STM32U5やSTM32L5、STM32WBAは、以下の同じセキュリティ開発方法です。

STM32U5セキュリティ開発方法(STM32U5ウェビナー資料P52を編集)
STM32U5セキュリティ開発方法(STM32U5ウェビナー資料P52を編集)

つまり、TrustZone基本投稿で示したように、マイコンハードウェアをSecure領域とNon Secure(Normalと図示)領域に分離、Non Secureソフトウェア(Firmwareと図示)のSecure領域直接アクセス禁止により改ざん防御を行います。

この方法は、Secure領域とNon Secure領域の2プロジェクト開発が必須です。

具体的な2領域分割や領域間アクセス方法などは、STM32U5ウェビナー資料3章に記載されています。

筆者は、開発当初からの2プロジェクト開発は、困難と考えています。最初は領域を分けず一般的な1プロジェクトアプリを開発し、動作確認後にSecure/Non Secureの2プロジェクトへ分離する手順になると思います。

STM32H5セキュリティ開発方法

STM32H5のセキュリティ開発方法は、前章とかなり異なります。

STM32H5セキュリティ機能は、STマイクロがバイナリ形式でIPを提供し、これをセキュア領域へ保存します。MCU開発者は、このIPセキュリティ機能を、Arm PSA API互換のAPI経由で、Non Secure領域のユーザアプリから利用します。

STM32H5セキュリティ開発方法(STM32H5ウェビナー資料P9を編集)
STM32H5セキュリティ開発方法(STM32H5ウェビナー資料P9を編集)

簡単に言うと、Non Secure領域の動作アプリに、必要に応じてセキュリティ機能APIを追加すればセキュリティ開発ができます。セキュア領域のセキュリティ機能は、ST提供IPのためユーザ開発不要です。

このSTM32Trust TEE Secure Managerが使えるのは、現在STM32H5のみです。しかし、今後増えるそうです。

具体的なSecure Manager利用方法や評価ボードなどが、STM32H5ウェビナー資料3章に記載されています。

筆者は、このSecure Manager利用の方が、前章の2プロジェクト開発方法よりもシンプル、かつ、セキュリティ本体コーディングも不要なため優れていると思います。PSA API利用ソフトのSTマイコン横展開が、現在STM32H5に限られるのは残念です。逆に、他ベンダマイコンへの流用は、Arm PAS API互換のため容易かもしれません。

Summary:2つのTrustZone開発方法

セキュアマネジャ利用対2領域開発
セキュアマネジャ利用対2領域開発

STマイクロのTrustZone対応Cortex-M33マイコンSTM32H5とSTM32U5の2セキュリティ開発方法と特質を示しました。

セキュリティ開発は、その用語や費用対効果などが、一般のMCU開発者に判り難い領域です。また、Cortex-M33のTrustZone理解も必要です。

このTrustZoneに対し正攻法のセキュリティ開発方法は、STM32U5ウェビナー資料方法です。STM32L5やSTM32WBAへの開発セキュリティソフト横展開も可能です。

STM32H5ウェビナー資料方法は、Arm PAS API互換APIを利用し、かつ、セキュリティソフト開発を簡素化できるなど、正攻法比、優れた方法だと思います。

Afterword:どちらが一般MCU開発者向けか?

Secure Managerは、無償利用できます。また、RTOS以外のベアメタル開発にも使えます。さらに、STM32H5ウェビナー資料P6右側の暗号化エンジンなど全12セキュリティ機能も提供します。左側が、このセキュリティ開発方法の優位性を示しています。

最適STM32セキュリティ開発を実現するセキュアマネジャ(STM32H5ウェビナー資料P6を編集)
最適STM32セキュリティ開発を実現するセキュアマネジャ(STM32H5ウェビナー資料P6を編集)

STマイクロ以外のベンダでも、無償IPとArm PAS API互換のセキュリティ開発が多くなるかもしれません。一般のMCU開発者にとって、正攻法のセキュリティ開発は、障壁がかなり高いからです。


Arm TrustZone【組込み開発 基本のキ】

MCUセキュリティの2回目は、Arm TrustZoneについて解説します。前稿解説のセキュアブートは、MCU起動ソフトウェアの信頼検証を行います。Arm TrustZoneは、MCU実行中ソフトウェアの改ざん防御技術です。

TrustZoneもベンダやMCU毎にその実装が大きく異なりますので、TrustZone基本知識を解り易く説明後、実装例を示します。

※TrustZoneはセキュアブートも包含します。本稿はセキュアブート以外の内容を解説し、Summaryでまとめます。

Arm TrustZone基本

Arm TrustZone基本
Arm TrustZone基本

セキュアブート同様、Arm TrustZone(以下TrustZone)も専用ハードウェアで実行中MCUソフトウェアの改ざん防御やセキュリティ確保を行います。

TrustZoneは、気密性の高いデータ保存や重要周辺回路、処理ソフトウェアを保存する「セキュア領域」と、それ以外の「ノンセキュア領域」にMCUハードウェアを分離します。そして、ノンセキュア領域のソフトウェアは、予め決めた手続きに従わないと、セキュア領域へのアクセスができません。

つまり、ノンセキュアソフトウェアのセキュア領域直接アクセスが禁止です。これにより、セキュア領域の改ざん防御とセキュリティを確保します。

セキュア領域は、暗号鍵や機密データ、割込みハンドラなどの重要ソフトウェアを保存します。
ノンセキュア領域は、通常の周辺回路やアプリケーションソフトウェアを保存します。

TrustZoneセキュリティ違反検出時は、セキュリティ例外処理を実行します。この処理内容は、システム設計や実装により大きく異なります。例えば、MCU動作停止やセーフモードでの最小機能動作、ネットワーク経由での違反内容通知などがあります。

このようにTrustZoneは、様々なセキュリティレベルに柔軟に対応可能です。TrustZone対応Arm Cortex-Mコア一覧が下記です。Cortex-M33など新しい設計のArmv8-M MCUコアは、TrustZone内蔵です。

TrustZone対応Arm Cortex-M_Processor_Comparison_Tableに加筆(出典:ARM)
TrustZone対応Arm Cortex-M_Processor_Comparison_Tableに加筆(出典:ARM)

※Cortex-M7は、MPUで設計も古いためTrustZoneなし。TrustZone MPUは、Cortex-A35など。

TrustZone実装例

前章でTrustZoneの基本を解説しました。しかし、実際のTrustZoneは、もっと複雑です。

例えば、STマイクロ)STM32L5/U5 MCU(Cortex-M33コア)のTrustZoneウェビナー資料が、コチラからダウンロードできます。

I2C/SPIへのハッカー攻撃例(P10)とその防御(P11)、TrustZone分離例(P20)、セキュリティ違反検出方法(P21~23)、TrustZone初期設定フロー(P29)などが示されています。

また、TrustZoneにJTAGポート無効化やMCUパッケージ開封検出(タンパ検出)などの複数セキュリティ機能を重ね、セキュリティレベルを上げていることも判ります(P17)。

複数セキュリティを重ねセキュリティレベルを上げる(出典:STマイクロSTM32L5/U5 MCU TrustZoneウェビナー資料)
複数セキュリティを重ねセキュリティレベルを上げる(出典:STマイクロSTM32L5/U5 MCU TrustZoneウェビナー資料)

この実装例は、Secure User Memory(P15)格納の暗号鍵を使ってセキュアブート後、I2Cデバイス制御とSPI無線通信制御を重要ソフトウェアセキュア領域へ格納、ハッカー攻撃などセキュリティ違反検出時でも、これらセキュアソフトウェア処理は継続、かつ、セキュリティ違反検出内容を外部無線通知するMCUアプリだと推測します。

※ウェビナー資料でファームウェアと記述の箇所は、本稿のソフトウェアと解釈してください。

TrustZone開発の難しさ

TrustZoneを使うMCU開発は、通常開発に加え、

  • 想定攻撃、脅威は何か
  • セキュリティ違反の例外処理をどうするか
  • 例外処理デバッグはどう行うか
  • セキュア領域の重要ソフトウェア、周辺回路は何か
  • セキュア/ノンセキュア分離アプリの同時開発

など、多くの課題があります。また、セキュア/ノンセキュア分離前の通常アプリにバグが無いことも必要です。さらに、セキュリティ対策効果とリスク、開発コストに対し、費用対効果を顧客と相談する必要もあります。

TrustZone MCU開発は、高度なスキルが必要になると思います。

Summary:Arm TrustZone基本知識

組込み開発基本のキとして、MCUハードウェアをセキュア領域とノンセキュア領域に分離し、ノンセキュアソフトウェアのセキュア領域直接アクセスを禁止することで、実行中のセキュア領域ソフトウェア改ざん防御とセキュリティ確保を行うArm TrustZoneの基本を示しました。

TrustZoneセキュリティ違反検出時は、セキュリティ例外処理を実行します。この例外処理内容は、システム設計や実装により大きく異なります。このセキュリティレベル多様性理解には、TrustZone基本知識が重要です。

前稿解説セキュアブートは、MCU起動ソフトウェア信頼性の検証を行います。セキュアブートとTrustZoneの併用で、起動/実行中のソフトウェア改ざん防御とセキュリティ確保ができます。TrustZoneが、セキュアブートを包含する理由がこれです。

Arm TrsutZomeまとめ
Arm TrsutZomeまとめ

Afterword1:自転車ロードレース競技中のハッキング

ワイヤレス技術利用制御系の潜在的脆弱性攻撃例が、コチラにあります。350ドル程度のソフトウェア無線機HackRFやRaspberry Piなどでも攻撃可能だそうです。本稿のTrustZone実装例が対策に使われたのかもしれません。ハッキング検出時でも、簡単に動作停止できない(しない)事例です。

Afterword2:MCUセキュリティまとめ

セキュアブートとTrustZoneから、MCUセキュリティを俯瞰したのが下記です。

  • 攻撃対象ソフトをRoot of Trust(RoT)ハードで守るのがMCUセキュリティ
  • RoTハードでセキュリティ違反検出、例外処理ソフトで違反処理
  • セキュリティ実装はアプリや運用で大きく変わる。開発費用対効果の検討必須
  • Armv8-M以後の新しいMCUコアにRoT TrustZone内蔵

費用対効果には、セキュリティ全般知識も必要です。これは、セキュリティ実装開発とは別次元の難しい課題です。対策は、AI PCを使ったセキュリティコンサルタント育成などでしょうか?

ブログ右上検索窓へ「基本のキ」と入力し検索すると、様々なMCU開発者向け基本知識が得られます。ご活用ください。


MCUセキュアブート【組込み開発 基本のキ】

ランサムウェア攻撃による企業活動停止やWindowsブルースクリーン大規模障害など、重大セキュリティインシデントが急増中です。MCU開発者にとっても、他人事ではありません。

そこで、MCUセキュリティの基礎、MCUセキュアブートとArm TrustZoneを2回に分けて解説します。セキュアブート編が本稿です。

MCUセキュリティが判り難い原因は、ベンダ、MCU毎にセキュリティレベルや実装が大きく異なるからです。そこで、個別セキュリティの前に、基本知識としてMCUセキュアブート(本稿)とArm TrustZone(次稿)を解り易く示し、その後、実装例を示す2段構えの方法で解説します。

MCUセキュリティ背景

MCUソフトウェアは、悪意を持つ第3者による改ざんやウイルス感染などで書き換わる可能性があります。一方、改ざんの可能性が無く安全なのは、MCUハードウェアです。

従来のMCU開発は、サイバー攻撃などのソフトウェア書き換えは、想定外でした。

しかし、PCセキュリティトラブルやランサムウェア被害などが増え、MCUも攻撃対象となりました。特にIoT MCUは、ネットにつながるため防御が必須です。この防御全般がIoT MCUセキュリティ(以下MCUセキュリティ)です。

セキュリティリスクを下げるには、開発コストが上がる。MCU開発者は、費用対効果バランスも考える必要がある。
セキュリティリスクを下げるには、開発コストが上がる。MCU開発者は、費用対効果バランスも考える必要がある。

今後のMCU開発では、MCUセキュリティ対策が望まれます。しかし、ソフトウェアのみでは対処できないため、セキュリティレベルに応じた追加ハードウェアが必要です。また、セキュリティオーバーヘッドのため、通常のセキュリティ無しソフトウェアに比べ処理能力も低下します。

MCUセキュリティ開発は費用対効果、つまり、これら追加効果とセキュリティリスク、セキュリティ開発コストのバランスを、どう解決するかがポイントです。

実装セキュリティがベンダやMCU毎に異なるのは、このポイントにバラツキがあるためです。顧客が、起きるか起きないか判らないMCUセキュリティインシデントに対し、どの程度開発コストを負担するか不明なのと同じです。

MCUセキュアブート基本

セキュアブート解説の前に、通常のMCUブートを簡単に説明します。

通常のMCUブートは、リセット→動作クロック設定→RAMゼロクリア→RAM初期値設定などを経て、Flash格納ユーザアプリケーションを起動します。格納ソフトウェアに、ハッカー攻撃などの改ざんが無いことが大前提です。

関連投稿3章に通常ブート説明。

MCUセキュアブートと通常ブート
MCUセキュアブートと通常ブート

一方セキュアブートでは、最初にFlash格納ソフトウェアに改ざんが無いことを、暗号化技術を使って検証します。このため暗号化アクセラレータや暗号鍵の専用ストレージが必要になります。

検証失敗時は、動作停止、またはリカバリーモードへ移行し、検証成功時のみ通常ブートを行います。つまり、起動ソフトウェアの信頼検証をハードウェアのみで行うのが、MCUセキュアブートです。

通常ブートと比べると、事前に改ざんソフトウェアの実行が防げますが、検証時間が余分に掛かります。このセキュアブートハードウェアをRoot of Trustと呼び、専用ハードウェアとしてMCUに内蔵されます。例えば、Arm Cortex-M33コアMCUなどがこれに相当します。

Root of Trust(RoT)は、最も基本的なセキュリティ領域の保証概念。ここが信頼できることを前提にセキュリティが構築されるため、信頼根と呼ばれる。

高度車載セキュアブート実装例

前章でMCUセキュアブートの基本を解説しました。しかし、実際のセキュアブートは、もっと複雑です。

例えば、ルネサス車載MCU RH850セキュアブートが、コチラです。

高度なセキュリティレベルが求められる車載MCUのセキュアブート例で、豊富な図を使って解説しています。セキュリティ専門用語も多いため、用語や略称集も添付されています。

しかし、前章基本を理解していれば、高度車載MCUセキュアブートでも掲載図だけで概ね把握できると思います。

車載ソフトウェアイメージ検証(出典:ルネサスRH850セキュアブート)
車載ソフトウェアイメージ検証(出典:ルネサスRH850セキュアブート)

Summary:MCUセキュアブート基本知識

MCUセキュリティの実装は、セキュリティ対策効果とリスク、その開発コストにより大きく変わります。Root of Trustを持つCortex-M33コアの汎用MCUでさえ、アプリケーションや顧客要求に応じ実装セキュリティは変わります。

例えばセキュアブートは、MCU起動時処理のため常時運用など再起動が少ない場合は効果も期待薄です。

MCU開発者のセキュリティ実装を困難にする原因の1つが、この多様性です。

そこで、組込み開発基本のキを示す本稿は、MCUセキュリティ基本知識として、起動時ソフトウェア信頼検証をハードウェアのみで行うMCUセキュアブートと、そのセキュアブート実現基盤のRoot of Trustを解説しました。

基本知識があれば、様々なセキュリティ実装開発にも対応できるからです。

次回は、MCU運用中セキュリティを確保するArm TrustZoneを解説します。

Afterword:Windowsブルースクリーン記事

Windowsブルースクリーン記事や解説が、ITmediaにまとまっています。業務の合間などリフレッシュを兼ねて目を通してはいかがでしょうか?


embedded world 2024 MCU要約

embedded world 2024(出典:記事)
embedded world 2024(出典:記事)

欧州最大規模の組み込み技術展示会「embedded world 2024」で見た最新トレンド記事(全14ページ)が、2024年7月30日、EE Times Japanに掲載されました。MCU/MPU関連部分を抜粋要約し、表形式にまとめました。

Summary:embedded world 2024 MCU/MPU関連要約

embedded world 2024概要:ヨーロッパ最大組込み技術イベント展示会。2024年4月9日から11日までドイツ)ニュルンベルク開催。50カ国から1,100社出展、80カ国から32,000人来場。
ハイライト:エッジAI製品とソリューションの低消費電力化、小型化、高性能化に注目。

MCU/MPUベンダ 発表内容
Infineon
(旧Cypress)
AI搭載PSOC Edge E8シリーズ(Cortex-M55+M33+NPU)発表とデモ
音声、オーディオセンシング、MLベースウェイクアップ、ビジョンベースの位置検出、顔やオブジェクト認識など高度HMI機能に対応
Armセキュリティ基準「PSA Level 4」を満たすセキュアブートなどセキュリティ機能搭載MCU
STマイクロ エッジAI機能、モーター制御、モーター異常検出リファレンス設計「EVLSPIN32G4-ACT」展示とデモ
エッジAIにかかわるハード/ソフト全てをワンストップ提供がSTの強み
NXP ワイヤレスMCU Wシリーズ発表(±0.5m精度測距可能)
Cortex-M3ベース専用2.4GHz無線サブシステム搭載(Matter、Zigbee、Bluetooth、Threadプロトコルサポート)
ルネサス 低消費電力、コスト重視アプリ対応RA)RA0シリーズ(Cortex-M23)発表
動作電圧1.6〜5.5V、レベルシフター、レギュレーター不要
アクティブ84.3μA/MHz、スリープ0.82mA、スタンバイ0.2μA、スタンバイ復帰1.6μs(競合比7分の1)
ラズパイ ソニーIMX500搭載AIカメラモジュール2024年夏頃発売予定
ラズパイZero 2 Wと接続し、物体認識や身体セグメンテーションデモ

Afterword:次回8月23日金曜投稿

次回金曜投稿は、8月23日金曜にします。連日35℃を超える猛暑と多湿のため、仕事効率は最悪です。そこで、来週と来来週、夏休みを2週間頂きブログ更新は緊急性が無い限り23日まで休みます<(_ _)>。

しかし、弊社MCUテンプレート販売は、24時間365日無休です。特にHAL利用のRAベアメタルテンプレートは、RA0シリーズ開発にも使えると思います。オーダーお待ちしております。


RA用FSP v5.4.0リリース

2024年6月27日、ルネサスRA用FSP v5.4.0同梱e2 studio 2024-04がリリースされました。セミナ参加のため、久しぶりに最新FSPへ更新したところ、弊社RAベアメタルテンプレートのFSPバージョン出力にバグを発見しましたので修正対策を示します。

Summary:FSPバージョン出力コード修正箇所

修正前:コンパイルエラ発生(RttViewer.cのL41)

APP_PRINT(“\r\n–> Current FSP version is v%d.%d.%d.”, version.major, version.minor, version.patch);

修正後:version_id_bをmajor/minor/patch前に追加

APP_PRINT(“\r\n–> Current FSP version is v%d.%d.%d.”, version.version_id_b.major, version.version_id_b.minor, version.version_id_b.patch);

修正後のJ-Link RTT ViewerによるFSPバージョン出力結果です。

J-Link RTT Viewer V7.96qのFSPバージョン出力
J-Link RTT Viewer V7.96qのFSPバージョン出力

最新RA用開発ソフトウェアツール

無償版RAファミリソフトウェア開発ツールは以下3つで、現時点の最新版が下記です。

  1. e2 studio:統合開発環境、Version 2024-04
  2. FSP:Flexible Software Package、RA用API生成ツール、Version 5.4.0
  3. SEGGER J-Link RTT Viewer:printf出力ツール、Version 7.96q

開発には、FPB-RA6E1/RA4E1などのハードウェアツールも必要です。本稿は、上記3ソフトウェアツール更新に焦点を当てます。

2022年4月30日のRAベアメタルテンプレート開発・発売から2年経過し、3ソフトウェアツールがそれぞれ更新されました。ツール更新に伴い、本稿のようなトラブルが発生する場合があります。その対策を示します。

コンパイルエラ対策

最新ツールへ更新後、以前のエラーフリーソースをコンパイルすると、以下のエラが発生します。

コンパイルエラ発生個所
コンパイルエラ発生個所

メンバ名major/minor/patchが不明なのが原因です。

対策に、version定義のfsp_pack_version_tを調べます。fsp_pack_version_tへカーソルを移動し、F3をクリックすると、fsp_pack_version_t定義箇所fsp_version.hへ自動的に移動します。

FSP Pack version構造体
FSP Pack version構造体

※F3クリックは定義検索に便利。これはEclipse IDE共通機能。

fsp_pack_version_tは、過去有った構造体が無くなっています。そこで、ソースmajor/minor/patchの前に、version_id_bを加えるとコンパイルエラは無くなります(構造体と共用体投稿はコチラ)。

e2 studioとRA用FSP更新

統合開発環境e2 studioとRA用FSPは、別々の更新タイミングです。各更新タイミングで、それぞれを最新版へ更新するのも1方法です。

しかし、これら2つを同梱し、同時に最新版へ更新できるWindowsパッケージが、FSP v5.4.0 with e2 studio 2024-04です(Mac/LinuxパッケージはリリースGitHubにあり)。同梱パッケージは、更新2度手間が省けるだけでなく、個別更新トラブルも避けられます。

同梱パッケージは、個別インストール版よりも数か月遅れてリリースされますが、お勧めの更新方法です(同梱投稿はコチラのまとめ参照)。

SEGGER J-Link RTT Viewer更新

SEGGER J-Linkダウンロードサイト
SEGGER J-Linkダウンロードサイト

RTT Viewerは、既存版が自動的に最新版へ更新されます。しかし、SEGGER社リンクから直接最新版をダウンロードするのも1方法です。古いVersionをお使いの方は、この方法も良いでしょう(RTT Viewerのprintfデバッグ関連投稿はコチラ)。

Afterword:環境依存トラブル対策

今回のような更新トラブルは、組込み開発では良くあります。開発品を顧客へ納入後、数年経ってから機能追加/修正の案件がある場合などです。納入開発環境と、最新版環境の差による「環境依存トラブル」です。

本稿は、簡単なメンバ名追加で対策できました。しかし、例えばAPI内部差によるトラブル等は、容易ではありません。安全側対策に、納入時の旧環境をそのまま使い続ける方法があります。同一MCUで新機能は使わない場合などは、有効な方法です。

一方、新機能の追加/修正やMCU変更案件は、環境依存トラブルも加味したスケジュール対策が望ましいと思います。どの程度加味するかが難しい問題ですが…。

お詫び

弊社RAベアメタルテンプレートV1ご購入者様は、本稿修正をお願い致します。また、この場を借りて、お詫び申し上げます。ご迷惑をおかけし、申し訳ございません。