読者です 読者をやめる 読者になる 読者になる

不確定特異点

広く深く、ところどころ超深く

STM32F4 Discovery の開発環境 (5)

ARM STM32

OpenOCD を使った Flash 書き込み

前回、stlink というソフトで Flash 書き込みをしましたが、別のオープンソースFlash ライタとして、OpenOCD を試してみました。stlink が不安定な場合はこちらを試した方がいいかも。

公式からリリース版も入手可能ですが、GitHub に公式のミラーがありました。

github.com

ビルドとインストール作業は以下の通りです。

$ cd openocd
$ ./bootstrap
$ ./configure
$ make
$ sudo make install

OpenOCD はデバッガやインシステム・プログラミングなど、いろんな機能を備えてますが、ここでは Flash への書き込みに特化した使い方をします。image という ROM データ を STM32F4 Discovery の Flash に書き込むには次のように実行します。

$ openocd -s /usr/local/share/openocd/scripts/ -f board/stm32f4discovery.cfg -c "program image verify reset exit 0x08000000"

OpenOCD は -sで指定したディレクトリを起点として、次の -f で指定されたスクリプトを読み込み、-c で指定されたコマンドを実行する、という流れのようです。-f で指定するスクリプトは代表的な基板のものがすでに用意されており、STM32F4 Discovery もありました。

programFlash 書き込み用の便利コマンドとして用意されてて、引数にバイナリデータを指定すると、書き込みを開始します。ついでに verify reset exit しておくと、書き込みした値のチェック、システムのリセット、終了処理を完了した後に、勝手に再起動するので便利です。

OpenOCD のマニュアル