Partition Manager (1)
2024/07/27
前回、DevAcademyを見ながら新規で作っていたボード設定ファイルを変更するとビルドして動くところまで確認した。
気になっているのは Partition Manager の設定ファイルを置いていたのに読み込まれないままだったこと。
試しに評価ボードnRF5340 MDBT53-1Mモジュールピッチ変換基板のボード定義ファイルからpm_
で始まるファイルを削除してビルドしたところ 'PM_storage_partition_ID' undeclared
のようなビルドエラーが起きていた。
ファイルがあるから読み込むタイプではなく、設定ファイル読み込まないとうまくいかないけれどもファイル名に選択肢があるのでエラーにできないまま Cソースのコンパイルをしていてエラーになったということか。
Partition Managerをもう少し理解せねばなるまい。
Developing with nRF53 Seriesの目次から見ていこう。
Partition Managerのことが書いてありそうなのは「Application guide for Thingy:53」の Partition manager configuration と「External execute in place(XIP) configuration on the nRF5340 Soc」のSetting up static partition managerだ。 Trusted Firmware-M(TF-M)に Secure Partition Manager という言葉が書いてあるので、Running applications with Trusted Firmware-Mも怪しい。
“XIP”は”eXecution in Place”の略。 nRF5340にはQSPI(Quad SPI)メモリインターフェースが載っていて、QSPI flash をコードの実行に使うことができるそうだ。 普通はオンボードのNOR Flashみたいにバイト単位でアクセスできるFlashだけが対象だったり、外部メモリが使えてもデータバスとつながったメモリしか使えないと思っていたのだが、SPIでもそういうのができるのか。 データのフェッチに多少時間がかかるだろうから実行が遅くなるのかな? あるいはコード用のRAMにある程度貯めたりできるんだろうか。
DeviceTree GUIだとこれだ。
Thingy:53ではMX25R6435Fという外部メモリを使っている。
こちらを見るとnRF9160DKも同じメモリのようだ。ファイルシステムとしても使えるのか。
nRF9160DK 搭載の外部フラッシュメモリ(MX25R6435F)を使ってみる。 #nRFConnectSDK - Qiita
今回はMDBT53が外部メモリを積んでないこともあり、前者の「Application guide for Thingy:53」を見ていこう。 Partition manager configurationによると、サンプルとアプリはデフォルトでPartition Managerを使うようになっているそうだ。 それだけではわからんなあ。
Running applications with Trusted Firmware-Mを見る。
TF-M partition alignment requirementsには「Partition Managerが有効な場合」と書いてあるので、有効・無効にするなにかはあるのだろう。
あきらめて Partition Manager そのもののページを読むか。
ConfigurationにはCONFIG_SETTINGS_FCBかCONFIG_SETTINGS_NVSと書いてあるが、これは subsystem どうのこうのらしい。 また新しい言葉が。。。