コンパイラ,リンカ,デバッガ等は
http://cu.rious.org/make/compiling-the-arm-cortex-m4-toolchain-yourself/
のオプションそのままでより新しい binutils-2.22, gcc-4.7.1, newlib-1.20.0, gdb-7.5 でビルド.
ボード組み込みの ST-Link/V2 を使うためのコマンド st-link/flash by jnosky を
http://cu.rious.org/make/stm32f4-discovery-board-examples-on-linux-and-mac-os-x/
にしたがってインストール.libusb-1.0 ほか pkgconfig, automake, autoconf 等が必要なので mac port で入れる.使うのが libusb だけなら Xcode の llvm gcc でも stutil はビルドできた.
make コマンドでのコンパイル,バイナリイメージの作成はできるようになったが,Eclipse の GNU Cross ツールでのマネージドビルドがなかなかうまくいかず苦労する.
理由は
1)ライブラリのディレクトリ構造が単純でなく,USB のコードなどは HOST か Device かでソースコードを選ぶ(同じ構造体でもメンバが入れ替わる)必要があったり,ユーザーコードのヘッダをライブラリのヘッダファイル側からインクルードしたりするので,Makefile を参考にちまちま選ばねばならず,IDE で便利になっていない気が.
2)スタートアップ(ブートストラップ?)用のアセンブラコード stm32f4xx_start.s がアセンブルされず正しいイメージファイルができない.理由は,拡張子が大文字 .S でないと GNU assembler のコードとして認識されないからだった.手動で *.S を登録しようとしても拒否される.しかたないのでファイル名の .s を .S か .asm に変更すると,アセンブルされ動作した.ファイル名の大文字小文字を区別しない OS の関係なのか,バグのようだ.
Makefile を使うのであれば,Eclipse はプログラミング用テキストエディタでしかない...なにも考えずデバッガまで動く IAR の試用版でしばらくやったほうがいい気が...
デバッガを使わないレベルが対象とはいえ Arduino/Arduino IDE の優れている点がよく理解できる.
一方 LPCxpresso ボードと IDE 無償版は,Linux, Mac OS X 対応.
デバッガもそのまま動き,作れるコードサイズもそこそこ大きくいいのだが,C++ はサポートしないしプラグイン等使えないので Eclipse ベースである魅力が半減.
がんばって C++ を使えるようにしたり Arduino 互換を目差したライブラリが作られていたりするようだが,これも Eclipse の設定で結構疲れそう.すでに少なくない自家製 Arduino ライブラリコードを使い回すのがむつかしそう.LPCxpresso は秋月で購入できリーズナブルで Ethernet もトランスコネクタだけでつけられて(LPCxpresso 1769)よかったのだが..
Cortex-M3 だが STBee/STBee-mini は DFU 書き込み(dfu-util).その他 DIP 版 LPC1114 (Cortex-M0)等でおすすめされる USART 書き込みなどは,普通にターミナルの shell 上で make するのとかわらないので,使う必要があるときに使うことにする.
LeafLab Maple はライブラリ,IDE のアップデートが Arduino 0023 相当でとまっている.自家製ライブラリは Arduino 1.0 系で書きなおしているので,今後のアップデートを期待する.
make コマンドでのコンパイル,バイナリイメージの作成はできるようになったが,Eclipse の GNU Cross ツールでのマネージドビルドがなかなかうまくいかず苦労する.
理由は
1)ライブラリのディレクトリ構造が単純でなく,USB のコードなどは HOST か Device かでソースコードを選ぶ(同じ構造体でもメンバが入れ替わる)必要があったり,ユーザーコードのヘッダをライブラリのヘッダファイル側からインクルードしたりするので,Makefile を参考にちまちま選ばねばならず,IDE で便利になっていない気が.
2)スタートアップ(ブートストラップ?)用のアセンブラコード stm32f4xx_start.s がアセンブルされず正しいイメージファイルができない.理由は,拡張子が大文字 .S でないと GNU assembler のコードとして認識されないからだった.手動で *.S を登録しようとしても拒否される.しかたないのでファイル名の .s を .S か .asm に変更すると,アセンブルされ動作した.ファイル名の大文字小文字を区別しない OS の関係なのか,バグのようだ.
Makefile を使うのであれば,Eclipse はプログラミング用テキストエディタでしかない...なにも考えずデバッガまで動く IAR の試用版でしばらくやったほうがいい気が...
デバッガを使わないレベルが対象とはいえ Arduino/Arduino IDE の優れている点がよく理解できる.
一方 LPCxpresso ボードと IDE 無償版は,Linux, Mac OS X 対応.
デバッガもそのまま動き,作れるコードサイズもそこそこ大きくいいのだが,C++ はサポートしないしプラグイン等使えないので Eclipse ベースである魅力が半減.
がんばって C++ を使えるようにしたり Arduino 互換を目差したライブラリが作られていたりするようだが,これも Eclipse の設定で結構疲れそう.すでに少なくない自家製 Arduino ライブラリコードを使い回すのがむつかしそう.LPCxpresso は秋月で購入できリーズナブルで Ethernet もトランスコネクタだけでつけられて(LPCxpresso 1769)よかったのだが..
Cortex-M3 だが STBee/STBee-mini は DFU 書き込み(dfu-util).その他 DIP 版 LPC1114 (Cortex-M0)等でおすすめされる USART 書き込みなどは,普通にターミナルの shell 上で make するのとかわらないので,使う必要があるときに使うことにする.
LeafLab Maple はライブラリ,IDE のアップデートが Arduino 0023 相当でとまっている.自家製ライブラリは Arduino 1.0 系で書きなおしているので,今後のアップデートを期待する.
0 件のコメント:
コメントを投稿