「mbed のボードに書き込む」はなし
ここのところ、ARM の CPUを使ったボードで開発する案件を手がけています。
初めはPIC で開発したのですが、メーカーのライブラリが 64Bit 演算に対応していないといけないらしく、PIC16F1シリーズではコンパイラが対応してなかったので、急遽 PIC24F シリーズに変えたのですが、どうも演算ライブラリが ARM に依存している部分があるようで、結局「ARM でやった方がスピードの点でも早い」ということで、慣れない開発環境で始めました。
NXP(旧モトローラ)が提供する開発環境で MCUXpresso IDE というものですが、古くは LPCXpresso といった開発環境で書籍にはこちらの紹介は多くあります。トラ技の トラ技ARM ライター なども LPCXpresso の記事があって参考になったのですが、デバッグ時の記事ばかりで、実際に Flash ROM に焼いてスタンドアロンで書き込む記事があまりないのです。
仕方が無いので、英文の MCUXpresso IDE User Manual や、Help とかみて、release 用にコンパイルしないといけないとか、ライブラリも Debug と Release 両方に登録しないといけないとか、色々面倒ですが解決してやっとビルドが通るようになりました。
しかしながら、RUN すれば自動で書き込んでくれて、それでいいだろうと思って動かしてもダメで(私の操作、ライターの選択が悪かったかも知れませんが)、RUN出来ないのです。
UserGuideを見ると、どうやらFlash Programmer なる機能があるようで、これを起動して、releaseフォルダにできた xxxx.axf というファイルを指定すれば良いようです。これで、やっと書き込めました。
そして、最終的に開発基板でなく量産用に似ているCPUを使った mbed 用の小型ボードに書き込み、動作確認することになりました。説明では mbed ボードの2つのスイッチを押しながら、PCの USBポートに接続し、RSET SW の方を離すとPCにUSBメモリーとして認識されるということで、そこまではあっけなく行きました。
しかしながら、他の情報にあった xxx.axf ファイルから xxx.bin ファイルに変換してから書き込む。という手順に則って書いたのですが、RESET SW を離しても USB メモリー認識状態のまま。一向に動こうとしないのです。試しにサンプルファイルの xxx.bin というやつをダウンロードして書いてみると、動くんですね LED チカチカプログラム。
ネットで検索してもなかなか解決法が出てこないときに、ふとトラ技の古い記事を見つけました。
2014年5月号の 「トラ技ARMライタ用デバッガファームウェアができるまで」という記事です。このトラ技ARMライタというのは、ほぼ mbed ボードなので、書き込みも同じようにして書くことは判っていました。この記事の最後の部分。
●作り方⑭...チェックサムを加える にありました。
...認識させて正常に動かすためには、チェックサムを付加する必要があります。チェックサムを付加するときは、
checksum.exe-p LPC11U35-d firmware.bin
とコマンドラインで実行すれば大丈夫です。
とありました。
実際には checksum.exe をユーザーフォルダにコピーして、作った xxx.bin も同じフォルダに入れて、コマンドプロンプトを起動して
checksum-p LPC11U35-d firmware.bin
で書けました。
昔のトラ技って役に立ちますね。
| 固定リンク
「ソフト」カテゴリの記事
- BLACK FRIDAY セールの話(2023.11.20)
- PIC18FQ MCC で I2C(2023.10.25)
- 「mbed のボードに書き込む」はなし(2019.10.10)
- How To C [ else]のはなし(2019.04.18)
- How To C if() のはなし(2019.04.09)
コメント