CLionからOpenOCD経由でNucleo F401REにファームウェア書き込みとデバッグが出来るようにした。
前提
STM32CubeIDEのプロジェクトをCLionで読み込んで使用しています。
使ったもの / 必要なもの
- MacBook Pro 15 (late 2016)
- CLion
- OpenOCD
- gcc-arm-embedded
- Nucleo F401RE
- オフィスのおもちゃ箱から拾ってきた
インストール
CLion, OpenOCD, gcc-arm-embeddedはHomebrewから入れる
brew install open-ocd
brew cask install clion
brew cask install gcc-arm-embedded
toolchainの設定
Default を gcc-arm-embedded という名前にコピーする。
C Compilerと C++ Compilerをgcc-arm-embeddedのものに変更する。ファイルは /usr/local/bin 以下の arm-none-eabi-gcc と arm-none-eabi-g++ とする。デバッガはBundled GDBに設定。
CMakeの設定
CMakeで使用するtoolchainを gcc-arm-embedded に切り替える。
Run / Debug Configurationの設定
CMake ApplicationとOpenOCD Download & Runを追加する。
OpenOCDの設定を行う場合、Board config fileは st_nucleo_f4.cfg を指定する。

トラブルシュート
デバッガが動かない
デバッガにGDBを指定しているにも関わらず、次のようにLLDBでは接続できないというエラーが出る。
Error running 'OCD led_blink': GDB Remote Debug using LLDB is not supported in CLion yet
次の画面のように、toolchain内でデバッガをGDBにセットしたコンフィグを一番上にする。
ST-Link/V2に接続できない
F401REには ST-Link/V2-1 が内包されている。 STM32 Debug+VCP と STM32 Debug + Mass storage + VCP という2つのバージョンがあり、この2つのFWは、USBデバイスとしてのPIDが異なる(前者が 0x374b で後者が 0x3752)。前述のBoard config fileの指定では後者のFW用のもの。






