STM32の開発環境を構築する(わりと楽に)
STM32の開発環境についての記事をまとめようと思っていました.
ですが,僕がいろいろ調べて構築した開発環境をどうやら一発でやってしまえるシロモノがあるようです.
その名も,Sytem Workbench for STM32
Eclipseをベースとしたマルチプラットフォームの開発環境のようです.環境構築するために頑張った俺の努力を返してほしい
インストール
サイトにアクセスします.
OpenSTM32 Community Site | HomePage
このコミュニティ(OpenSTM32.org)から開発環境をダウンロードするためにユーザ登録が必要なので,面倒くさいかもしれませんが登録を行ってください.
ユーザ登録,ログインの後インストーラを入手します.
自身のOSにあったものをダウンロードしてインストールなり解凍なりしてください.
ここのインストーラを用いれば一緒にSTLinkのデバイスドライバもインストールされます.
System WorkbenchはEclipseベースのソフトウェアなのでJAVAのランタイム(JRE)をインストールしておいてください.
プロジェクト作成
アイコンをクリックして起動します.
Workspaceを適当に指定します.
projectをC/C++で作成します.
プロジェクト名を設定,今回はf4discoveryとします.
Project type:Ac6 STM32 MCU Project
Toolchains :Ac6 STM32 MCU GCC
プロジェクトのコンフィグレーションを設定します.ここはそのままでいいと思います.
このプロジェクトでのチップを選択します.公式に出ている開発ボードであればドロップダウンリストから選択します.
使う基板はstm32f4discoveryなので
Series:STM32F4
Board:STM32F4DISCOVERY
と設定します.
自分仕様の基板を作成したい時は,「Create a new custom board」から目的に合った基板の設定を作成します.
最後にファームウェアの設定をします.
- No firmware
- Standard Peripheral Library(StdPeriph)
- Hardware Abstraction Layer(Cube HAL)
から選択します.
最初はインターネットからファームウェア(最新版)をPCにダウンロードするので少々時間がかかります.
その後必要なドライバやユーティリティのオプションを確認し.これでプロジェクト作成の完了です.
ビルドとデバッグ
定番のLチカをやってみます.(firmware:Cube HAL)
sw4stm32 helloworld
プロジェクトをビルドします.(プロジェクトを右クリック→Build Projectまたは金槌アイコンをクリック)
←これ
エラーが出ずに,Build Finishedと表示されればOKです.
OpenOCDを用いてデバッグをすることが可能です.
OpenOCDの詳細はググってください.
簡単なデバッグor実行の流れ
- 虫のアイコンの右にある下矢印(🔻)をクリック
- Debug Configrations… をクリック
- AC6 STM32 Debuggingを右クリック→New
- 右下のDebugをクリック
すると一度ビルドされその後にデバッグ画面に切り替わります.
このようなボタンが現れます.
これでデバッグを実行したり停止したりすることが可能です.
さっさと実行させたい場合は,虫のアイコンの右側にある再生ボタンのようなアイコンで上記のデバッグと同様のことを行えば,書き込まれてからすぐに実行されます.
←これ
さっさと実行させるもうひとつの方法としては
- プロジェクトを右クリック→Target
- Program chip→OK
- 基板のリセットボタンを押す
これで,
stm32f4discoveryの基板のオレンジ色LED(LED3)が点滅します.
LED3~LED6に数字を変更すると,基板の点滅するLEDが変化します.
まとめ
楽なSTM32の開発環境を構築,サンプルコードを書いてLチカしました.
なにかあればコメントをよろしくお願いします.
ディスカッション
コメント一覧
ゆーくりっどさんのSTM本でつまづいてしまった点があるため質問に来ました。
LチカをやろうとしたのですがビルドをするとBSP_LED_Toggle(LED3);に赤線が引かれてLED3′ undeclaredと怒られます。どうやったら解決しますでしょうか?
よろしくお願いします。
STM32本読んで頂いてありがとうございます.
その部分ですが,僕独自の環境が入っていたまま書いていたためできない状況でした,申し訳ありません.
BSP_LED_Toggle(LED3);の部分をHAL_GPIO_TogglePin(LD3_GPIO_Port,LD3_Pin);
と書き換えてみてください.3の部分を3~6に買えることで,点灯するLEDの種類が変わるはずです.
main.h内部にそれぞれGPIOのポートとピン番号が定義されています.なお,この定義もCubeMX上で書き換えることが可能です.
ピンバック & トラックバック一覧
[…] stm32の開発環境としてこんな記事を書いたり,こんな本を頒布していました. 最近はメインとしてSystemWorkbench for STM32(SW4STM32)を用いています.インストーラ1つでツールチェインやプログラマ,デバッガのインストール.パスの設定まで一括で行ってくれます. GUIのペリフェラル設定GUIソフトウェア,「CubeMX」がSW4STM32用のプロジェクトファイルをエクスポートしてくれるので非常に楽です. […]
[…] stm32の開発環境としてこんな記事を書いたり,こんな本を頒布していました. 最近はメインとしてSystemWorkbench for STM32(SW4STM32)を用いています.インストーラ1つでツールチェインやプログラマ,デバッガのインストール.パスの設定まで一括で行ってくれます. GUIのペリフェラル設定GUIソフトウェア,「CubeMX」がSW4STM32用のプロジェクトファイルをエクスポートしてくれるので非常に楽です. […]