STM32/MacでOpenOCDを使う

今回は OpenOCD(Open On-Chip Debugger) のインストール・設定手順について記述します。
Macユーザーなら Homebrew — The missing package manager for OS X をインストールしている方も多いと思います。このツールを使用すれば、OpenOCDのインストールは簡単です。

Homebrewをインストールしていない方でOpenOCDを使いたいと考えている方は、Homebrewをインストールしましょう。ターミナルから以下のコマンドを入力すれば良いです。


/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

詳細は、WEBページを検索してみてください。

OpenOCDのインストール

以下のとおりコマンドを入力すれば良いです。


brew install openocd --enable_ft2232_libftdi --enable_stlink

上記のコマンドラインの内容から察することができると思いますが、ST-LINKとFTDI社のFT2232を使用したデバッガ(JTAGKey clone)の使用を想定しています。

OpenOCDをST-LINKで使用する

環境構築

まずはST-LINKを入手しましょう。STM32 Discovery / Nucleoシリーズを購入するのが安上がり。安いものだと1500円くらいからあり、STM32シリーズのCPUとST-LINKがついてきます。商品によっては周辺機器が付属するものもあります。

Nucleoシリーズの場合、ST-LINKと本体を分離することが容易になっています。なかには NucleoとかいうST-LinkをFRISKケースに入れる - STM32 – Tokoro’s Tech-Note のように、分離してFRISKケースに入れる方もいます。

OpenOCDとST-LINK、そしてCPU(簡単なのは、Discovery / Nucleo)の準備ができたら、OpenOCDの設定ファイルを作成しましょう。CPUにより若干異なってきますので、CPUに合わせて設定しましょう。代表的な環境に対する設定ファイルは /usr/local/share/openocd/scripts/ 配下にあるので、一度参照してみると良いと思います。

当方はWEBページなどを参考にしながら、以下のようなものを用意しました。

  • stm32f3discovery.cfg

Script for connecting with the STM32F3DISCOVERY board

source [find interface/stlink-v2.cfg]
source [find target/stm32f3x_stlink.cfg]
reset_config srst_only srst_nogate

  • stm32f4nucleo.cfg

Script for connecting with the STM32F4NCLEO board

source [find interface/stlink-v2-1.cfg]

SRAM 96KB version chip

set WORKAREASIZE 0x18000
source [find target/stm32f4x_stlink.cfg]
reset_config srst_only srst_nogate

  • stm32f0discovery.cfg

This is an STM32F0 discovery board with a single STM32F051R8T6 chip.

http://www.st.com/internet/evalboard/product/253215.jsp

source [find interface/stlink-v2.cfg]
transport select hla_swd
set WORKAREASIZE 0x2000
source [find target/stm32f0x.cfg]
reset_config srst_only

動作確認

ターミナルから実行してみる。うまく動作すれば以下のとおり表示される。


$ openocd -f stm32f0discovery.cfg
:
Info : This adapter doesnt support configurable speed
Info : STLINK v2 JTAG v16 API v2 SWIM v0 VID 0x0483 PID 0x3748
Info : Target voltage: 2.892453
Info : stm32f3x.cpu: hardware has 6 breakpoints, 4 watchpoints

Eclipseから実行できるようにする

Eclipseを起動ししたら、 Run >> External Tools >> External Tools Configuration を選択します。

External Tools Configuration

上記の画像を参考にしながら、それぞれの環境に合わせて記述しましょう。その後、 Run >> External Tools から実行してみましょう。正しく動作すれば、Eclipseの Console タブに先ほどターミナルから起動した場合と同様のログが出力されます。

ここまでできれば、後はサンプルプロジェクトを作り確認するのみ。あと少しです!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください