• 公開日:2025年03月10日
  • | 更新日:2025年04月01日

MCUbootを用いてルネサスマイコンのファームウェアアップデートをしてみた

はじめに

ルネサスは、MCUbootを用いたファームウェアアップデートのアプリケーションノートとサンプルプログラムを提供しています。

アプリケーションノートでは、ルネサスFlexible Software Package (FSP)で提供されるMCUbootモジュールの適用方法を解説し、サンプルプログラムと合わせて、MCUbootを用いたファームウェアアップデートを実装していきます。

アプリケーションノート:MCUboot とフラッシュデュアルバンクを使用した RA6 セキュアファームウェアアップデート

サンプルプログラム:RA6 MCU Advanced Secure Bootloader Design using MCUboot and Code Flash Dualbank Mode

リンクは2025年3月のものです。

MCUboot

先ず、MCUbootとは、ソフトウェアの起動時に検証をおこなってブートをおこなう、オープンソースのセキュアなブートローダです。詳細は、MUCboot公式ウェブサイトを参照ください。https://www.MUCboot.com

次に、新しいファームウェアへの切り替え方式です。MCUbootでは主に次の切り替え方式があります。

  • Overwriteモード
  • Swapモード
  • Direct XIPモード

この内、ルネサスのアプリケーションノートとサンプルプログラムでは、コードフラッシュ(ROM)をデュアルバンクで用いた、Direct XIPモードを提供しています。このモードでは、MCUbootはブートの度にそれぞれのバンクにあるアプリケーションのバージョンを比較します。そして、新しいバージョンを見つけ、認証すると、新しいバージョンのアプリケーションで起動します。

また、デュアルバンクなので、セカンダリーアプリケーションの書き込み時にエラーが発生しても、プライマリーアプリケーションは残っていて安心です。

ファームウェアアップデートの動作

実装は、サンプルプログラムをアプリケーションノートを参照しながら、FSPでバージョンなどを入力して、ビルドするだけです。

では、手順と実装されたプログラムの動作を見ていきます。なお、繰り返しになりますが、デュアルバンクを用いた、Direct XIPモードです。

  1. 書き込みツール(Renesas Flash Programmerや、SEGGER J-Flash Liteなど)を用いて上側バンクにブートローダを書き込みます
  2. e2 studioを用いて下側バンクにブートローダを書き込み、その後、プライマリアプリケーションを書き込み、起動します。
  3. ここで一旦リセットおこないます。つまり、e2 studioに依存せず、下側バンクのブートローダと、プライマリアプリケーションが起動します。
  4. プライマリアプリケーションに実装された、ダウンロード機能を用いて、セカンダリーアプリケーションを上側バンクにダウンロードします。ダウンロードが完了すると、プライマリーアプリケーションの実装によりリセットがかかります。
  5. 下側バンクのブートローダが、プライマリーアプリケーション(下側)とセカンダリーアプリケーション(上側)のバージョンを比較します。セカンダリーアプリケーション(上側)のバージョンが新しい場合、検証を行い、認証されるとバンクアドレスのスワップ設定を行います。このスワップ設定は、その後のリセットで有効になりますので、直ちにリセットがかかります。
  6. 上側バンクのブートローダとセカンダリーアプリケーションが起動します。

5.のバージョンの比較でバージョンアップが確認できない場合は、スワップ設定は行われず、リセットもかかりませんので、現状のバージョンのままとなります。

おわりに

ここまで、ざっくりとルネサスが提供する、MCUbootを用いたファームウェアアップデートを見てきましたが、イメージはつきましたでしょうか?

このように、ルネサスではArmコアマイコンのRAファミリとFSPを用いて、MCUbootによるファームウェアアップデートの開発環境を提供しております。

また、同様の開発環境をGUIで提供するQE(Quick Effective)もあります。今後、このようなMCUbootを用いたファームウェアアップデートの開発手順は、ルネサスオリジナル コア マイコンのRL78ファミリ、RXファミリにも展開されていきます。

ルネサスマイコンでMCUbootを用いたファームウェアアップデートを実現してみませんか?

ルネサス製品をお探しの方は、メーカーページもぜひご覧ください。

【マクニカ ルネサスページはこちら】