top of page
  • GitHub
  • Qiitan
  • icon
  • Facebook
  • Instagram
  • Twitter-circle
  • Linkedin
  • Youtube
  • base_logo_vertical_black

遅ればせながらFreeRTOSとC++

26/5/5

執筆者:

C++の便利さを再確認

今まで、組み込み機器のファームウェアはC言語の自作の簡易スケジューラと、C言語を使って時間管理をしていました。

これからはFreeRTOSを使い、開発言語はC++へ移行する決意をしました🎉


タツノ在職時、STM32F407にFreeRTOSを載せて、開発言語はC言語で製品の試作をしたことがありました。

uITRONに比べて情報も多く、書籍も豊富に揃っていました。

しかし、やはりuITRONへの執着(!?)が根強く、FreeRTOSが採用されることはありませんでした。


最近、副業先に電子工作に興味を持つ小学生生徒がいたので、試しにArduinoとM5Stack BASICを購入してデモをすることにしました。


開発環境はVSCodePlatformIOという機能拡張です。

Arduino、M5Stack共に電子工作界隈では有名なArduinoフレームワークというのを使って動かすのですが、なんと

  • 実は裏でFreeRTOSが動いている

  • 開発言語がC++が標準

ということがわかりました。

M5Stack BASICはデュアルコアなのでFreeRTOSのシステムコールが拡張されていますが、基本は全く同じで、Arduino UNO R4 WiFiは純粋なFreeRTOSが使えます。


ついでに、STM32F407もC++のコンパイラは選択できるし、FreeRTOSも載せられます。


もうやらない理由はないです😏


特にSTM32F407ではFreeRTOSを使うことで、今まで実現が大変だったことが簡単になったものもあります。


例えば、家電の赤外線リモコンのデータ受信!

FreeRTOSのキューとタスクを連動させれば、簡単に信号の解析ができます。

今までもC言語で自作のキューを使ってましたが、自作のスケジューラにはタスクを待たせる機能がなかったので、結構難儀してました。

半日ほどで赤外線リモコンのデータを受信できるようになりました。


ちなみに、Arduinoならリモコン信号を解析するライブラリがあるので、一発。


写真の4つのボードはFreeRTOSとC++で動いています。


自作のスケジューラには20年以上頑張ってもらいましたが、これからはFreeRTOSでお客様の要望に応えていけるよう、鋭意勉強中です。


C++を組み込み機器で使う簡単な事例デモ動画を公開しました♪


追記:

STM32F407でC++・FreeRTOS・Lチカ(1)

STM32F407でC++・FreeRTOS・Lチカ(2)

STM32F407でC++・FreeRTOS・Lチカ(3)


最新ニュース

26/7/3

MIDIモニターのアップデート

スペインから機能追加の要望

26/6/18

STM32F407 + FreeRTOSでDMX512送受信

かなり苦労しましたが...

26/6/16

3Dプリンタ製基板ホルダーの改良

基板固定部をより強固・単純に

bottom of page