Arm Mbed OS support forum

Lpc55s69-evk に対して、バイナリーが書き込みできない

はじめまして。
この度、NXP社の LPCXpresso55S69 board を使って、mbedOSについて学習したいと考えております。
現在、以下のURL参考にすることで、ストレージ・ドライブ(64MB)を、PC側で認識するところまで出来ております。
https://os.mbed.com/teams/NXP/wiki/Updating-LPCXpresso-firmware

この後、下記のファイルをストレージ・ドライブに対して、ドラッグアンドドロップを実施しても、正常に書き込むことが出来ません。
https://os.mbed.com/media/uploads/mmahadevan/helloworld_lpcxpresso55s69.hex

同じ症状について、Arm Mbed OS support forum で問い合わせされてますが、2020.Febより進展していないように見受けられます。

この問題について、回避できた方がいらっしゃいましたら、ご教授頂けると助かります。

Ohishiさん、はじめまして。

手持ちのボードで試してみましたが、ポストしていただいたHEXファイルを正常に書き込むことが出来ました。
プログラムの動作も問題ないようです。

mbedlsコマンドで確認したところ、DAPLinkのバージョンは、0254でした。

| platform_name | platform_name_unique | mount_point       | serial_port              | target_id                                        | interface_version |
|---------------|----------------------|-------------------|--------------------------|--------------------------------------------------|-------------------|
| LPC55S69      | LPC55S69[0]          | /Volumes/LPC55S69 | /dev/tty.usbmodem1412302 | 02360b000608a83400000000000000000000000097969905 | 0254              |

Toyomasa Watarai さん
早速の情報ありがとうございます。
こちらのボードの DAPLinkのバージョンは、0251 でした。

| platform_name | platform_name_unique | mount_point | serial_port | target_id                                        | interface_version |
|---------------|----------------------|-------------|-------------|--------------------------------------------------|-------------------|
| LPC55S69      | LPC55S69[0]          | D:          | COM7        | 0236000006ceae0400000000000000000000000097969905 | 0251              |

上記URLより、0254_release_package_f499eb6e.zip を入手し、0254_lpc4322_lpc55s69xpresso_0x10000.bin をストレージ・ドライブにドラッグアンドドロップすることで、DAPLinkの更新を試みましたが、ボードが自動で再起動した後、ストレージ・ドライブに FAIL.TXT が残されており、正常に更新出来ていないものと思われます。
再度、DAPLinkのバージョンを確認したところ、0251 から変化しておりませんでした。

<FAIL.TXTの内容>
error: The application file format is unknown and cannot be parsed and/or processed.
type: user

DAPLinkの更新方法に誤りなどございましたら、ご教授頂けると助かります。
よろしくおねがいします。

DAPLinkファームウェアの書き込みは、ドライブ名がMAINTENANCEになっている状態でドラッグアンドドロップで書き込む必要がありますが、その点は問題ないでしょうか?

https://os.mbed.com/teams/NXP/wiki/Updating-LPCXpresso-firmware#5-extra-step-when-using-bootloader

Toyomasa Watarai さん
返答遅くなりましてすみません。
ドライブ名が、MAINTENANCE になるためには、DOS窓から、program_CMSIS.cmd lpc4322_bl_crc.bin を実施する必要があると理解しました。
そこで、 ジャンパーピンをセットし、上記のコマンドを投入し、Bootloader の更新を実施してみましたが、ドライブ名がLPC55S69 からMAINTENANCEに変わりませんでした。
手順誤り・不足などがありましたら、ご教授いただけると助かります。

LPCScrypt - CMSIS-DAP firmware programming script v2.1.2 Nov 2020.

Connect an LPC-Link2 or LPCXpresso V2/V3 Board via USB then press Space.

続行するには何かキーを押してください . . .

Booting LPCScrypt target with "LPCScrypt_240.bin.hdr"
LPCScrypt target booted
.
Programming LPCXpresso V2/V3 with "lpc4322_bl_crc.bin"

- LPCXpresso V2/V3 programmed successfully and has the unique ID: IQATBQEQ
- To use: remove DFU link and reboot.

Connect Next Board then press Space (or CTRL-C to Quit)

続行するには何かキーを押してください . . .

こんにちは。

bootloaderが正常に書き込めていれば、起動時にMAINTENANCEモードに
入れるようです。

  • USBケーブルを抜く
  • ボード上のRESETボタンを押しながら、USBケーブルをDebug Linkに挿す
  • MAINTENANCEドライブが出るので、RESETボタンを離す
  • DAPLinkバイナリをドラッグアンドドロップで書き込む
  • 書き込み後、自動的にドライブが再マウントされ、LPC55S69ドライブが出る

Toyomasa Watarai さん
ご指導頂いた手順にて、MAINTENANCEドライブに遷移し、0254_lpc4322_lpc55s69xpresso_0x10000.bin をドラッグアンドドロップすることで、DAPLinkが更新出来ました。
ありがとうございました。

| platform_name | platform_name_unique | mount_point | serial_port | target_id                                        | interface_version |
|---------------|----------------------|-------------|-------------|--------------------------------------------------|-------------------|
| LPC55S69      | LPC55S69[0]          | D:          | COM8        | 02360b0006ceae0400000000000000000000000097969905 | 0254              |

ただし、その後、LPC55S69ドライブに対して、下記のファイルをドラッグアンドドロップを実施してみましたが、以前と同様、正常に書き込むことが出来ませんでした。
https://os.mbed.com/media/uploads/mmahadevan/helloworld_lpcxpresso55s69.hex
何かお気づきの点がありましたら、ご指導よろしくお願いしします。
何度も問い合わせさせて頂きき、恐縮です。

こんにちは。

ターゲットのフラッシュメモリの全消去を一度試してみてもらえますか?

  • USBケーブルを抜いて、USBケーブルを挿す(FAIL.txtが無いのを確認)
  • erase.actという名前のファイルを作成し(中身は空でOK)、LPC55S69ドライブにドラッグアンドドロップする

正常に動作すると、ファイル転送後に再マウントされます。この状態では、ターゲットマイコンのフラッシュは全消去されているので、.hexファイルをドラッグアンドドロップして書き込めるか試してみてください。

この機能は、DAPLinkのaction commandで、こちらに説明があります。

これでも駄目な場合は、ボード上のISBボタンを押しながら.hexファイルをドラッグアンドドロップして書き込んでみてください。

Toyomasa Watarai さん
erase.actファイルを、LPC55S69ドライブにドラッグアンドドロップしてみましたが、エラーが発生しました。
そこで、転記頂いた情報を参考に、RESETボタンを押下しながら、同様に実施してみたところ、エラーが発生することなくボードが再起動し、LPC55S69ドライブにFAIL.txtが生成されなかったことから、ターゲットのフラッシュメモリを全消去出来たと思われます。
情報ありがとうございました。

ただし、その後、.hexファイルをLPC55S69ドライブにドラッグアンドドロップしてみましたが、残念ながらエラー発生となり書き込み出来ませんでした。
なお、フラッシュメモリの全消去から再度実施し、ボード上のISP(ISBというシルクは無い)ボタンを押しながら、.hexファイルをドラッグアンドドロップして書き込んでみたところ、エラー発生することなくボードが再起動しましたが、LPC55S69ドライブにFAIL.txtが生成されており、.hexファイルは、正常に書き込みが出来なかったものと思われます。

また、なにか情報がありましたら、ご教授頂けると助かります。
よろしくお願いします。