2015年6月7日日曜日

mbed のプロジェクトを Em::Blocks で コンパイル しターゲットに書き込む

オンラインツール ARMmbed で開発(え?笑)したプロジェクトをローカルの HDDにダウンロードしてPC 環境で、コンパイル、ビルドしてターゲットに書き込む。 Gcc 使えます。

オンラインであっけなくできた .bin ファイル。同じソースファイルをもとに PC でコンパイルし同じ結果を得たい。同様のことは先人 va009039 さんがおられ解決済みでしたので、フォローします。 .elf ファイルから .bin ファイルを作る post-process を追加しました。基本はこちらの記事です。本当にありがとうございます。

IAR も Keil も持っていませんから、Em::Blocks が何か調べたところ、とてもよさそうなので使うことにしました。J-link も持っていませんので JTAG デバッグアダプタはまだ正確に設定、確認されていません、それはまた後ほどがんばりましょう < ネットで調べるだけでいけますねー

  • mbed のプロジェクトを Export します。
    商用コンパイラを持っていないので、GCC, CooCox, EmBlocks の選択肢 
  • Em::Blocks をインストールします
    別途 Gcc をインストールする必要も無く、バッテリー同梱。で 40MB?
  • mbed で Export したプロジェクトを Em::Blocks で Import しコンパイル
  1. mbed からプロジェクトを emblocks オプションで export。ダウンロードし zip を展開
  2. EmBlocks から File Open Project では無く Import Project - EmblocksIX で import
  3. リンカーセッティングの変更
    Build option - Linker settings - Libralies にて mbed を上に持ってくるのが大事だそうです。
  4. .bin ファイルを自動生成する post build steps を追記。
    FAQ の How do I create a binary file from the output? に従いコピペします。
    Build option - Pre/post build steps - Post
  5. コンパイル、ビルド で .bin ファイルが \build フォルダにできます。
  • .bin ファイルを ターゲットに書き込み動作を確認
    FRDM-KL25Z の Open-SDA は、昨日書き換えた mbed ファームウェアのままなので、フラッシュドライブ mbed ドライブに .bin ファイルをドロップ。ターゲットをボタンでリセット
  • ソースを変更し、再コンパイル、ビルド、書き込み、リセットすると機能が変わることを確認します。
びっくりです。
面倒なデバイス設定ファイル、ピンファイル等の生成は mbed に任せて自動生成です。しかもそれは行儀良く標準的 なニーモニックに名付けられますから、面倒も無し。


追記 --- 18 June 2015

Em::blocks で FRDM-KL25Z のUSB デバッガの認識は完了していません。
FRDM- USBデバッガは標準のメニューに無いのでマニュアルで設定し認識させないといけないようです。

本来であれば FRDM ボード、もしくは FRDM インターフェース、P&E micro インターフェース か CMSIS-DAP インターフェース と KL25Z ターゲット と選べればよかったのですが、なにやらプロプラエあたりの大人の事情があるみたいです。G 系の人のこういうビーガンベジタリアンみたいな態度にはつくづく... ともあれ、まだ途中なのですが、できる人の助けになればと思い、現状を記録



他集めた情報から、OpenOCD の設定を以下のように設定すると途中までうまくいきました(笑





もうちょっと!

あとは、ターゲット。cfg ファイル内容とか、ターゲットの Reset や Holt のシーケンスをうまくすれば何とかなりそうです。というのも、かたや同じ Gcc ツールチェインを利用する Cross Works がまったく同じファーム、ハードウェアできちっとデバッガを動かしていますから、絶対に何とかなるはずです。



0 件のコメント: