ARM(STM32)
Linux上でSTM32のプログラミング・デバッグ環境を整える - STM32 †
概要 †
Linux上でのSTM32(ARM Cortex-M3,M4)向けツールチェインのビルドと,ST-Linkを使用するためのツール群のインストールを行う.
ツールチェインのビルド †
いろいろややこしいのでgcc-4.8.1ベースのツールチェインをビルドできるスクリプトを書いた.
tokoro10g / stm32-toolchain-builder
ツールチェインは/opt/cross/arm-none-eabi-x-toolsの中に入る.
もちろんgdbも使用可能.
この環境に対応したMakefileについては
このへん
を参考に.
Ubuntuの場合 †
$ sudo apt-get install g++ autoconf texinfo gcc-multilib g++-multilib libncurses5-dev
$ git clone https://github.com/tokoro10g/stm32-toolchain-builder
$ cd stm32-toolchain-builder
$ make && sudo make install
その他の場合 †
必要なもの(gcc,g++,texinfo,autoconf)を入れて
$ make && sudo make install
ST-Linkを使う †
texane / st-linkを使う.
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
インストールできたら,ST-Linkをつないで
$ st-util
で起動.
すると,GDBサーバがlocalhostのポート4242で立ち上がる.
(画像はSTM32VLDiscoveryを接続した際の例.)
次に,デバッグ対象のバイナリを指定してGDBを起動.
$ arm-none-eabi-gdb main.elf
接続
> target extended-remote localhost:4242
略式としてこれも可能:
> tar ext :4242
elfの書き込み
> load
実行
> continue
まとめると,
$ arm-none-eabi-gdb main.elf
> tar ext :4242
> load
> continue
GDBの使用方法については他を参照のこと.
シリアル書き込み用プログラム †
stm32flash / stm32flashを使う.
$ git clone git://gitorious.org/stm32flash/stm32flash.git
$ make && sudo make install
バージョンが新しくなって使い方が微妙に変わったので使う機会があれば使用方法を書く.
manpageも用意されているようなので,知りたい人はインストールした上で
$ man stm32flash
とでもすれば幸せになれると思う.