ARMの開発環境
デザインウェーブのARM基板で実験するための私の開発環境を紹介します。
まずコンパイラが必要になります。ARM用のGCCを使うには、GCC自体をコンパイルしたり、リンカやライブラリ自体をコンパイルするといった作業から始まります。それはとても大変で長い時間を要する作業です。
そこで私は、「日本の組み込み情報」というサイトにある、GNUWingというツールを利用させていただいています。GNUWingというのは、アップウィンドテクノロジー・インコーポレイテッドさんが開発した、組み込み用開発環境のディストリビューションです。
現在は、ARM用、SH用、MIPS用、PowerPC用の4種類があり、プラットフォームはCygwin用とRedhatLinux用の2種類で、計8種類のものがリリースされています。
GNUWingは、GCCやGDBやリンカなどの開発環境一式をセットにしたものです。GCCなどの難しいことを全く知らなくても簡単にインストールできて、その瞬間からARM用の開発環境を使うことができるようになります。とてもおすすめです。
私は、間発環境サーバとしてRedhatLinux9を24時間動かしていて、そのRedhatにはGNUWingをインストールしています。Linuxのサーバは、SambaとWindowsのファイル共有でWindows環境からアクセスできるようにしています。
ソースコードの編集はネットワーク越しにWindows用のテキストエディタで行います。Linuxにログインするのは、GCCでコンパイルする時だけです。ソースコードの編集や出来上がったアセンブラコードのチェックなど、頭を使う作業は使いやすいWindows環境から行えるので、開発効率が低下する心配もありません。
パソコンとARM基板はJTAGを使って接続しています。シリアルのコネクタは使用していません。プログラムはRAMにダウンロードしています。
ADうC7026に内蔵されたフラッシュROMは使用していません。ADuC7026は、JTAGバウンダリスキャンでフラッシュROMに書き込むということが(たぶん)できないと思われます。したがって、ARM7に内蔵されたEmbeddedICE機能を使って、作成したプログラム(ELFファイル)をダウンロードすることになります。
JTAGのツールは、もちろんMITOUJTAGです。
MITOUJTAGは、Windows上から簡単なGUI操作で使用できます。XILINXやALTERAのパラレルケーブルや、ナヒテック製のSmartJTAG、Mobile JTAG CableといったUSB接続のものなど、いろんな方法でARMデバイスとつなぐことができます。
ケーブルをつないでボタンを押せば自動でデバイスが認識されます。
MITOUJTAGには、ARMデバッガが内蔵されています。このデバッガは、GCCが出力したLSTファイルを使って、機械語レベルで1命令ずつステップ実行させることができます。ネイティブに埋め込まれたARM用デバッガなので、GDBやInsightを使ってリモート接続するよりも、格段に高速なレスポンスが得られます。
また、MITOUJTAGのARMデバッガは、GDBやInsightのリモート接続を受け付けることもできます。ただし、TCP/IP上でGDBプロトコルを受け渡しするので、レスポンスの低下は避けられません。
ARM7用のネイティブなデバッガと、GDB/Insightを使い分けることで、デバッグの方法が広がります。
C言語に入る前のスタートアップコードなどは、昔から少しずつ付け足し付け足し使ってきた秘伝のスープのようなコードを使っています。全く高度なものではありません。cpsrとspを設定してmainにジャンプするだけです。
最近のコメント