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ご購入者様は、本稿修正をお願い致します。また、この場を借りて、お詫び申し上げます。ご迷惑をおかけし、申し訳ございません。