hiro99ma blog

何か技術的なこと

ncs: USBでのDFU (1)

2024/12/02

前回までにやったこと。

sysbuild で MCUboot を組み込んでみたものの、今のところボタンを押したまま起動させて bootloader モード? になったことしかわからない。
DFU できるようにしておきたい。

DFU はわからないが FOTA は一般用語で携帯電話や Wi-Fi 経由でアップデートする場合も FOTA と呼ばれていた。
なのでたぶん DFU も一般用語だろう。

DevAcademy

DevAcademy の Intermediate コースに DFU などのレッスンもある。

ただ、これを書いている時点ではまだ multi-image ビルド、つまり sysbuild ではないやり方になっている。
関連するリンクは載っているのだが、初学者にはいささか厳しい。

が、違いは sysbuild くらいだから何とかなるんじゃなかろうか。
DevAcademy 以上のとっかかりも思いつかないので

以前 MCUboot のせいで起動しなかったときに DevAcademy も含めてある程度は見たことがある。
ただ、もう記憶に残っていないが。

起動しなかった原因は、nRF5340DK や Thingy:53 には搭載されている QSPI の Flash メモリが私が使っている開発ボードには載っていなかったためである。
ボード定義ファイルの QSPI 周りをそのまま使っていたため MCUboot の起動時にチェックされてエラーになっていた。
ncs v2.5 まではエラーが起きてもスルーしていたので起動していたのだが、v2.6 からはエラーによって異常終了させるようになったため起動しなくなった。

開発ボード用のボード定義ファイルが Thingy:53 ベースだったものを Raytac社ベースに(QSPI未使用)にすることで対応できた。
それだけなら Raytac社のボード定義ファイルをそのまま使えばよいのだが、LED やボタンなどが違うし、SSCI の開発ボードはそれ以外の専用ポートは USB しかないので変更できるようにしておかないと不便なのだ。 nRF Connect for VS Code に “Create a new board” という項目があるが、あれで一から作るのは難しいと思った。

DevAcademy に話を戻す。
Lesson 8 が bootloader と DFU である。
いきなり他のレッスンを飛ばすのはあまりよろしくないのだが、Intermediate コースはそれぞれが重たそうなので今回はスルーする。

以前やったとき(これ, これ)もかなりすっ飛ばしている。

nRF5340 特有のことと Exercise には至らんかった。
また後日。

< Top page