ARM7mon
ARM LPCUSB
interface 2009-05付録基板用のHIDブートローダー兼モニター
armon/armboot 移植済みの基板リスト(LPC2388用はSTM32からバックポートしました)
アーキテクチャー | CPU(ベンダー) | 基板名 | FLASH容量 | SRAM容量 |
Cortex-M3 | STM32(STMicro) | STM8S-DiscoveryのSTM32側 | 64kB | 20kB |
| | CQ-STARM DesignWave 2008-05付録 | 128kB | 20kB |
| | STBEE ストロベリーリナックス | 512kB | 64kB |
| | STBEE Mini | 128kB | 20kB |
| LPC1343(NXP) | LPCXpresso NXPセミコンダクターズ | 32kB | 8kB |
| | TRZ1010N トラ技増刊「ARMマイコン パーフェクト学習基板」 | 32kB | 8kB |
ARM7TDMI | LPC2388(NXP) | CQ-FRK-NXP-ARM(*これ) | 512kB | 64kB |
CPUクロックは全て72MHz
特徴
- 各ブートローダーのサイズはいずれも8kB(未満)です。
- HIDデバイスなのでドライバーソフトの組み込み不要で、すぐ使えます。
- ブートローダーと同じソースのアプリケーションが用意されていて、ユーザー定義関数が簡単に実行できます。
- (printf関数の結果をPCのコンソールに表示できます)
- ブートローダーとアプリケーションの間を自由に行き来できます(bootコマンドにて)
- アプリケーションモードの状態からでも、そのまま更新されたプログラムの再書き込みと実行がすぐ出来ます。(コマンドラインツールarmboot)
- メモリーダンプ、GPIOポートやI/Oレジスタの内容表示が可能です(現在はシンボルは使えません。番地を与える形式)
- 任意番地からの実行も可能です。
- 逆アセンブラ内蔵です。(armon.exe側が処理します)
弱点
- (CPU内部)レジスタダンプ機能はありません。(実装してもあまり意味は無いかも。)
- (CPU内部)レジスタはPIC版やAVR版ではRAMメモリー空間にマップされているため表示が可能ですが、ARM版では出来ません。
- printfデバッグは可能ですがトレース実行機能などはありません。
- HID以外のデバイスを書いてテストする場合はprintfは自分で実装する必要があります。(場合によってはシリアル側へ吐くなど)
利点
ダウンロード
アプリケーション・サンプルソース
- 今回のLPC2388版は、STM32/LPC1343版からバックポートしました。
逆アセンブラの表示がややおかしいです。 --- 直しました。
- FLASHへの書き込み機能はあります
が、アプリケーションのブートがまだうまくいきません。 -- OKになりました。
- Thumbコードを逆アセンブルしたいときは、'l'コマンドに与える番地を奇数に(LSBを1)してください。
ビルド環境の構築方法
ビルド環境の注意など
- WinARMはlibgccのfloat関数が抜けているので、一部差し替えの必要があります。
- また、libc.aの_sbrk_rや_open_r,_read_rなども抜けています。(組み込み用途でファイルオープンは普通しませんが)
- CodeSourcery_G++_Liteはコマンドライン版ですが無償で使用できます。また、gccのバージョンが新しい(4.4.1)ためか、生成コードサイズが小さくなります。
- CodeSourcery_G++_Liteには makeやls,catといったunix標準コマンドがあまり含まれていません(cs_make.exeは付いています)ので、WinAVRを別途インストールされている方は、そちら(C:\WinAVR\utils\bin\)にもPATHを通しておいたほうが良いでしょう。