Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

インストールを検証する

すべてのツールが正しくインストールされたことを確認しましょう。

Linux のみ

パーミッションを確認する

USB ケーブルを使って STM32F3DISCOVERY をコンピューターに接続してください。ケーブルは必ず “USB ST-LINK” ポート、つまりボードの縁の中央にある USB ポートに接続してください。

これで STM32F3DISCOVERY が /dev/bus/usb に USB デバイス(ファイル)として現れるはずです。どのように 列挙されたかを確認してみましょう:

lsusb | grep -i stm

次のような結果になるはずです:

$ lsusb | grep -i stm
Bus 003 Device 004: ID 0483:374b STMicroelectronics ST-LINK/V2.1
$ # ^^^        ^^^

私の環境では、STM32F3DISCOVERY はバス #3 に接続され、デバイス #4 として列挙されました。これは、ファイル /dev/bus/usb/003/004 STM32F3DISCOVERY であることを意味します。そのパーミッションを確認してみましょう:

$ ls -la /dev/bus/usb/003/004
crw-rw-rw-+ 1 root root 189, 259 Feb 28 13:32 /dev/bus/usb/003/00

パーミッションは crw-rw-rw- であるはずです。そうでない場合は、udev rules を確認し、次のコマンドで再読み込みしてみてください:

sudo udevadm control --reload-rules

オプションの USB <-> FT232 ベースのシリアルモジュールを使う古いデバイスの場合

STM32F3DISCOVERY を取り外し、シリアルモジュールを接続してください。次に、対応するファイルを確認します:

$ lsusb | grep -i ft232
Bus 003 Device 005: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC

私の環境では /dev/bus/usb/003/005 でした。では、そのパーミッションを確認します:

$ ls -l /dev/bus/usb/003/005
crw-rw-rw- 1 root root 189, 21 Sep 13 00:00 /dev/bus/usb/003/005

前と同様に、パーミッションは crw-rw-rw- であるはずです。

OpenOCD 接続を確認する

USB ケーブルを使って STM32F3DISCOVERY を、ボードの縁の中央にある USB ポート、つまり “USB ST-LINK” と 表示されたポートに接続してください。

USB ケーブルをボードに接続すると、すぐに 2 つの 赤い LED が点灯するはずです。

重要 STM32F3DISCOVERY ボードには複数のハードウェアリビジョンがあります。古い リビジョンでは、“interface” 引数を -f interface/stlink-v2.cfg に変更する必要があります(注: 末尾に -1 は付きません)。あるいは、古いリビジョンでは -f board/stm32f3discovery.cfg-f interface/stlink-v2-1.cfg -f target/stm32f3x.cfg の代わりに使用できます。

注記 OpenOCD v0.11.0 では interface/stlink-v2.cfg は非推奨になり、代わりに ST-LINK/V1、ST-LINK/V2、ST-LINK/V2-1、および ST-LINK/V3 をサポートする interface/stlink.cfg が使われます。

*Nix

参考: interface ディレクトリは通常 /usr/share/openocd/scripts/ にあり、 これは OpenOCD がこれらのファイルを想定しているデフォルトの場所です。別の場所に インストールしている場合は、-s /path/to/scripts/ オプションを使ってインストールディレクトリを指定してください。

openocd -f interface/stlink-v2-1.cfg -f target/stm32f3x.cfg

または

openocd -f interface/stlink.cfg -f target/stm32f3x.cfg

Windows

以下で C:\OpenOCD と書かれている箇所は、OpenOCD がインストールされているディレクトリです。

openocd -s C:\OpenOCD\share\scripts -f interface/stlink-v2-1.cfg -f target/stm32f3x.cfg

注記 cygwin ユーザーからは -s フラグに関する問題が報告されています。その問題に遭遇した 場合は、パラメーターに C:\OpenOCD\share\scripts\ ディレクトリを追加できます。

cygwin ユーザー:

openocd -f C:\OpenOCD\share\scripts\interface\stlink-v2-1.cfg -f C:\OpenOCD\share\scripts\target\stm32f3x.cfg

共通

OpenOCD は ITM チャネルからのデバッグ情報をファイル itm.txt に転送するサービスです。そのため、 これは終了せずに動作し続け、ターミナルのプロンプトには 戻りません

OpenOCD の起動直後の出力は次のようになります:

Open On-Chip Debugger 0.10.0
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
none separate
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : clock speed 950 kHz
Info : STLINK v2 JTAG v27 API v2 SWIM v15 VID 0x0483 PID 0x374B
Info : using stlink api v2
Info : Target voltage: 2.915608
Info : stm32f3x.cpu: hardware has 6 breakpoints, 4 watchpoints

(そうならない場合は、general troubleshooting の手順を確認してください。)

また、赤い LED のうち USB ポートに最も近いものが、赤色と緑色の間で交互に点灯し始めるはずです。

以上です。正常に動作しています。これで Ctrl-c を使って OpenOCD を停止するか、ターミナルを閉じる/終了できます。