LoginSignup
6
5

More than 3 years have passed since last update.

PlatformIO IDE + STM32 Nucleo で Arduino コードのデバッグをする

Last updated at Posted at 2020-02-06

昨年の ET2019 の STMicro ブースでもらった STM32 Nucleo、開発環境のインストールめんどいなと放置していたら、PlatformIO から使えるんですね。。しかも Arduino でも mbed でも書けるし、デバッガもそのままで使えるしで、とても快適。

使った(もらった)ボードはNucleo F401REです。OS は macOS です。

プロジェクトのビルド

PIO Home で New Project の作成をします

  • Name: てきとう
  • Board: ST Nucleo F401RE (手持ちのボードに合わせてください)
  • Framework: Arduino (mbed とかも選択可能)

スクリーンショット 2020-02-06 19.48.03.png

コードは適当に L チカなものを用意しました。

src/main.cpp
#include <Arduino.h>

unsigned int counter = 0;

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  delay(100);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000);
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);

  counter++;
}

てっきり Nucleo = mbed で書かないとと思い込んでいたけど、Arduino なコードも動くんですね。

初回のビルドではコンパイラやらライブラリやらのダウンロードで数分かかるようです。

デバッガ

で、ここからが本番。
F401RE には STLink というデバッガが付属しているので、そのままでステップ実行とかできるんですね。

まず、platform.ini に debug_tool = stlink を追記します:

[env:nucleo_f401re]
platform = ststm32
board = nucleo_f401re
framework = arduino
debug_tool = stlink

そして先ほどのコードにブレークポイントを設定します(行番号をクリック):
スクリーンショット 2020-02-06 20.10.41.png
この状態で デバッグ > デバッグの開始(もしくは F5)をすると、
スクリーンショット 2020-02-06 20.15.21.png
なにやら見慣れないところで止まりました。とりあえずデバッグコンソールで c (continue) を入力してみましょう。
スクリーンショット 2020-02-06 20.18.20.png
先ほどのブレークポイントで止まりました。やったね!

あとはステップインするなり、変数の値を見るなり、いつもの gdb のように使えます。

JTAG ICE を接続してデバッガをインストールして設定してー、と面倒な作業をせずとも、ふつーのプログラムのようにマウスぽちぽちでデバッグできて大変便利ですね。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5