VSCodeでSTM32マイコンのデバッグ環境を構築する

Visual Studio Code (以下、VSCode)上で、STマイクロのNucleoやDiscoveryボードを使ってビルド、デバッグを行う方法を記載します。

必要なソフトウェアのインストール

VSCodeのダウンロードとインストール

使用するホストマシンに応じたインストーラをダウンロードして、インストールを行います。 https://code.visualstudio.com/Download

C/C++機能拡張のインストール

VSCodeを起動します。メニュー「表示」から「機能拡張」を選択し、C/C++機能拡張をインストールします。

OpenOCDのインストール

Macの場合

$ brew install openocd --enable_stlink

Windowsの場合
http://gnutoolchains.com/arm-eabi/openocd/

Mbed OS用ビルドツールのインストール

以下のnotebookの「Mbed CLIと関連ツールのインストール」の項目を参照してください。
https://os.mbed.com/users/MACRUM/notebook/mbed-offline-development/

Windowsの場合は、この他にmakeユーティリティのインストールが必要です。
http://gnuwin32.sourceforge.net/packages/make.htm

プロジェクトの設定

プロジェクトを作成します。ここでは、Mbed OSのサンプルコードをインポートしてみます。

$ mbed import mbed-os-example-blinky

VSCode用にプロジェクトをエクスポートします。

$ mbed export -m DISCO_L475VG_IOT01A -i vscode_gcc_arm

上記操作でビルドとデバッグに必要なファイルが生成されるので、同じディレクトリからVSCodeを開きます。

$ code .

プロジェクトファイル内の.vscode/launch.jsonを開き、以下の4箇所を変更します。


1. debugServerArgs の変更
Windows:

"debugServerArgs": "-f \"C:\\Program Files (x86)\\OpenOCD-20170821\\share\\openocd\\scripts\\board\\stm32l4discovery.cfg\" -f \"C:\\Program Files (x86)\\OpenOCD-20170821\\share\\openocd\\scripts\\interface\\stlink-v2-1.cfg\" -c init -c \"reset init\"",

Mac:

"debugServerArgs": "-f /usr/local/Cellar/open-ocd/0.10.0/share/openocd/scripts/board/stm32l4discovery.cfg -f /usr/local/Cellar/open-ocd/0.10.0/share/openocd/scripts/interface/stlink-v2-1.cfg -c init -c \"reset init\"",

Information

debugServerArgsで指定するボード用のコンフィグレーションファイルは、実際に使用するボードに搭載されたMCUまたは同じシリーズを選択してください。Windowsの場合は、パスをダブルクォーテーションで括ります。


2. serverStarted の変更

"serverStarted": "target halted due to debug-request, current mode: Thread",


3. MIDebuggerPath の変更
Windows:

"MIDebuggerPath": "C:\\Program Files (x86)\\GNU Tools ARM Embedded\\5.4 2016q3\\bin\\arm-none-eabi-gdb.exe",

Mac:

"MIDebuggerPath": "/usr/local/bin/gcc-arm-none-eabi-6-2017-q1-update/bin/arm-none-eabi-gdb",


4. debugServerPath の変更
Windows:

"debugServerPath": "C:\\Program Files (x86)\\OpenOCD-20170821\\bin\\openocd.exe",

Mac:

"debugServerPath": "/usr/local/bin/openocd"

ビルドとデバッグ

メニュー「デバッグ」から「デバッグの開始」を選択して、デバッグセッションを開始します。

/media/uploads/MACRUM/vscode.png

汎用レジスタの表示などは出来ませんが、デバッグコンソールから以下のコマンドを入力して表示可能です。

-exec info registers

/media/uploads/MACRUM/vscode_reg.png


Please log in to post comments.