ここまでの記事では、IDEをWindowsにインストールして遊んでいました。
しかし実際の開発現場では、Linuxコマンドラインでの開発が多いかなと思います。
ということで今回は以下を紹介します。
- Ubuntu 16.04を使用
- 最初だけIDEを使う
- **(あえて)**ビルドはコマンドラインでやる
- **(あえて)**F/W書き込みもコマンドラインでやる
実際のところ
IDE立ち上げてどうのこうのは、デバッグ時以外はやらない
と思うので、理に適っているかと。。。
本編
1. 準備
まず、Ubuntuはご用意ください。笑
1-1. STM32CubeIDEのインストール
以下からどうぞ。
STM32CubeIDE - Integrated Development Environment for STM32 - STMicroelectronics
https://www.st.com/ja/development-tools/stm32cubeide.html
STM32CubeIDE installation guide - User manual
https://www.st.com/content/ccc/resource/technical/document/user_manual/group1/31/8b/03/27/25/c5/4d/ae/DM00603964/files/DM00603964.pdf/jcr:content/translations/en.DM00603964.pdf
1-2. GCC ARM Toolchain / ST-Link
@fireflower0 様の記事を参考にさせていただきました。感謝。
https://qiita.com/fireflower0/items/ce6695e4f0911d3165d7
1-3. プロジェクト設定とか
前回記事までの仕込みは済んでいるものとします。
(ビルドが通らないとか、まともに動かんとかのトラブル発生時に、改めて見返すことでもOKかと)
2. やってみよう!
2-1. 仕様
仕様というより要件ですが。
- UARTでコマンドを受ける。デリミタは改行。
- "hello"コマンドで"world"を返す。
- 数値が入力されたら、その値でLEDのトグル時間を更新する。
2-2. 最初はIDEで開発
2-2-1. 実装
今回もuser.cを用意してあります。楽ですね。笑
使用上の注意は以下です。
- myTask03をCode Generation - As Weakで追加する必要あり
- (当然ですが)user.cをコピペなりダウンロードなりでIDEに取り込む
2-2-2. ビルド・動作確認
STM32CubeIDEでビルドが通ること、LEDが点滅することを確認してください。
基本的にはWindows版と同じです。こちらの記事参照。
2-3. 以降はコマンドラインで開発
いよいよ本題です!
2-3-1. ビルド
これも最初から書くのは面倒くさかろう。という親心から、スクリプトclean_build_bin.shを用意しました。
(中身はクリーンビルドし、ビルドバイナリを作成するだけ)
実行例は以下:
$ ./clean_build_bin.sh ~/workspace/STM32CubeIDE/TestRTOS/ Debug
2-3-2. 書き込み
以下を入力するだけであっさり焼けます:
$ st-flash write 190726_TestRTOS.bin 0x08000000
2-4. 改めて動作確認
以下が確認できるかと思います。
- "hello"コマンドで"world"が返る
- 数値入力でLED点滅間隔が変わる
私はWindows / Tera Termを使いました・・・慣れているので。
3. かんたんな解説
今回は特にありません(雑)。
おわりに
何かとCUI開発は喜ばれることが多いと思います。
しかしながら、IDEを使わないと超絶面倒くさいのは間違いないので、うまく組み合わせながら進めていきたいですね。
参考
環境
- IDE: STM32CubeIDE
- 評価用ボード: STM32L4 Discovery kit IoT node - 型番はB-L475E-IOT01A