/home/tnishinaga/TechMEMO

日々行ったこと、面白かったことを書き留めます。

mbedのオフラインコンパイル環境を作った

mbedとは、お手軽マイコン開発ツール群であるArduinoのARM版のようなものである。 オンラインのIDEを用い、mbedライブラリとユーザーの公開しているライブラリを用いてお手軽に開発を行うことができる。

しかし、デバッグはオンラインでは行えない。 デバッグを行いたい場合は、ソースコードのエクスポートを行い、オフライン環境でコンパイルし、オフラインのデバッガツールを用いて行わねばならない。

オフライン環境としては、MDK ARMというARM社謹製の開発ツールを使うのが一番である。 なぜなら、mbedのライブラリなどはすべてMDK ARMでコンパイルされているからだ。

しかしこのツールは1年で50万のライセンス料が必要で、個人は手の届かないシロモノであった。 しかたがないのでフリーなコンパイル環境(GCC)を用意することにした。

フリーな開発環境のインストール

mbedのオフラインコンパイル環境にはnewlib-nanoという標準Cライブラリが必要である。 そのため得意のcrosstool-ngを使った環境構築ができない。

代わりにこれらの問題を解消したツール群が公開されていたので、作者に感謝しつつ使うことにした。

インストール方法は以下のように、ソースをとってきたあと mac_install を実行し、パスを通すだけ。

$ mkdir -p ~/src && cd ~/src
$ git clone https://github.com/adamgreen/gcc4mbed
$ cd gcc4mbed
$ ./mac_install
$ echo 'export PATH=$PATH:~/src/gcc4mbed/gcc-arm-none-eabi/bin'

デバッグ方法(簡易説明)

PyOCDを用いる。インストール方法は省略。

mbedデバイスをつなげて test/gdb_server.py を起動するとgdbサーバーが立ち上がる。

$ python2.7 gdb_server.py

あとはarm-none-eabi-gdbを立ち上げて、リモート接続してデバッグする。

$ arm-none-eabi-gdb hoge.elf
(gdb) target remote localhost:3333

進捗

だめです。