LoginSignup
1
1

More than 3 years have passed since last update.

STM32CubeIDEで学ぶFreeRTOS (番外編) - Linuxコマンドライン開発をあえてやる

Last updated at Posted at 2019-07-26

ここまでの記事では、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. 仕様

仕様というより要件ですが。

  1. UARTでコマンドを受ける。デリミタは改行。
  2. "hello"コマンドで"world"を返す。
  3. 数値が入力されたら、その値で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を使わないと超絶面倒くさいのは間違いないので、うまく組み合わせながら進めていきたいですね。

参考

環境

1
1
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
1
1