秋月電子でSTM32F4DISCOVERYを買ったので、Mac OS X(Maverics)上に開発環境を構築してみた。
STM32F4DISCOVERYはCPUとしてARM Cortex-M4をコアに持ったSTM42F407VGT6をもったワンボードマイコンである。1MB Flash ROMと192KBのRAMを積んで\1,650というのは安い買い物である。
開発環境構築の流れは、MacでSTM32F4-Discoveryの開発環境を構築してChibiOS/RTを動かすのサイトを参考にした。このサイトに従って、arm-none-eabi-gcc, arm-none-eabi-gdb, openocdを順にインストールしていく。
arm-none-eabi-gcc
GNU Tools for ARM Embedded Processorsより、ARMコンパイラとしてarm-none-eabi-gccを入手する。右サイドバーからgcc-arm-none-eabi-4_8-2013q4-20131218-mac.tar.bz2をダウンロードした。
適当なフォルダを作ってダウンロードしたパッケージを展開する。ここでは先のサイトのとおり、~/local以下に環境を作る。(下の方法だと既に~/localフォルダがある場合に元のフォルダを消してしまうので注意)
cd tar xjf ~/Downloads/gcc-arm-none-eabi-4_8-2013q4-20131218-mac.tar.bz2 mv gcc-arm-none-eabi-4_8-2013q4 local
arm-none-eabi-gdb (MacPorts)
MacPorts経由でデバッガであるarm-none-eabi-gdbをインストールする。今までMacPortsを使っていなかったので、インストールから行った。
MacPortsのトップページの左サイドバーにあるInstalling MacPortsをクリックした後、QuickstartからOS X 10.9 Mavericksのリンクをクリックしてパッケージをダウンロードする。後はいつもの通りにインストールすれば良い。インストールが完了したらパッケージ情報を最新のものにしておく。
sudo port selfupdate port upgrade outdated
続いてarm-none-eabi-gdbをインストールする。
sudo port install arm-none-eabi-gdb
後はインストール完了まで放っておけば良いのだが、途中のarm-none-eabi-binutilsで「—> Attempting to fetch binutils-2.23.1.tar.bz2 from http://cjj.kr.distfiles.macports.org/binutils」と言ったままウンともスンとも言わなくなったので、業を煮やして止めてしまった。
仕方がないので次のopenocdのビルド中に不足したパッケージを追加でインストールしていった。最終的に追加インストールしたのは以下の通り。
libtool autotools automake autom4 autoconf pkgconfig libusb
(2014/3/5追記: openocdのREADMEを見たら、ビルドにlibtool automake autoconf pkgconfig libusbが必要だと書いてあった)
openocd
githubよりopenocdのソースを入手する。openocdはデバッグ時にSTM32とgdbとの橋渡しを行う。
git clone git://git.code.sf.net/p/openocd/code openocd-code
入手したらビルドを行う。(~の部分はホームディレクトリの絶対パスに置き換えるように求められるかもしれない)
cd openocd-code ./bootstrap ./configure --enable-maintainer-mode --enable-stlink --prefix=~/local/ --datadir=~/local/share/ make -j3 make install
残りの作業
後は、~/.bash_profileを編集して、PATHに~/local/binを追加する。
PATH=~/local/bin:$PATH
次の記事ではSTM32F4DISCOVERYのサンプルビルド方法について説明する。