« 2019年6月 | トップページ | 2019年11月 »

2019年10月

2019年10月10日 (木)

「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出来ないのです。

20190917-165009

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

で書けました。

昔のトラ技って役に立ちますね。

注:中古雑誌では ARM ライタ付属していないのがほとんどです。

| | コメント (0)

« 2019年6月 | トップページ | 2019年11月 »