モダンOSのお砂場(26) Zephyr RTOS、micro:bit v2でHello!

microbitV2package
Joseph Halfmoon

前回、MbedオンラインコンパイラがサポートしているBBC micro:bitはv1.3だということに気づいてしまいました。v2は勿論、v1.5すら対象外。愕然。まあ、v1.3とv1.5の差に気をつければ生成オブジェクトはv1.5ハード上でも動作することは確かめましたが。しかし大っぴらにv1.5およびv2をサポートできるRTOSとしてZephyrの利用にトライ。micro:bit v2上でZephyrのサンプルプログラムを動かしてみました。

“モダンOSのお砂場(26) Zephyr RTOS、micro:bit v2でHello!” の続きを読む

モダンOSのお砂場(25) MbedとMicroBit、threadとfiber

Joseph Halfmoon

前回は、Arm Mbedコンパイラ上で、BBC micro:bitのBluetoothサービスを起動するオブジェクトを生成し、スマホとペアリングさせてその動作を確認いたしました。しかし、例によってドキュメントもよく読まずにやっているのでペアリングにはテコずり、他にも不明な点がポロポロと。今回は一度立ち止まって文書を確認しましたです。

“モダンOSのお砂場(25) MbedとMicroBit、threadとfiber” の続きを読む

モダンOSのお砂場(24) Mbedでmicro:bit、BLEペアリング成功への道

SmartPhoneAndMicroBit
Joseph Halfmoon

前回、Arm社のMbedオンライン環境で、BBC micro:bit用のオブジェクトファイルが生成できることを確かめました。特に MicroBitクラス を使ってプログラムするとMakeCodeエディタのブロックと同等な機能を呼び出すことができるので楽ちんです。今回は早速、主題でありますBluetoothをMbed環境から使ってみましたがペアリングにちょっと手こずりました。

“モダンOSのお砂場(24) Mbedでmicro:bit、BLEペアリング成功への道” の続きを読む

モダンOSのお砂場(23) Arm MbedでBBC micro:bitプログラミング

Mbed_MB
Joseph Halfmoon

今までJavaScript(実際にはTypeScript)環境にてプログラムしていたBBC micro:bitですが、C/C++環境への移行を考えております。移行先として、Arduino環境(別シリーズ)、Arm Mbed環境、Zephyrの3候補のうち、本シリーズではMbedとZephyrの2つをやってみる所存。まずはArm Mbed環境を調べてみました。

“モダンOSのお砂場(23) Arm MbedでBBC micro:bitプログラミング” の続きを読む

モダンOSのお砂場(22) FreeRTOS、ソフトウエアタイマAPIでワンショット

FreeRTOS_SoftTimer
Joseph Halfmoon

前回はMutex排他制御でしたが、今回はソフトウエアタイマAPIであります。ソフトウエアタイマというと自前でループで回る「あれ」をつい想像してしまいますが違います。RTOSです。ちゃんとOSが面倒を見てくれる「タイマ」です。ある意味ハードウエアのリソースの制限が無い分、使いやすくもあるもの。 “モダンOSのお砂場(22) FreeRTOS、ソフトウエアタイマAPIでワンショット” の続きを読む

モダンOSのお砂場(21) FreeRTOS、Mutex排他制御の効果が「分かる」サンプル

ESP32 DevKitC on BB
Joseph Halfmoon

今回はRTOSでは避けて通れない排他制御を実験してみます。それも「排他制御無」だとこんなに動作が「ボロボロだ」と実感できるサンプルを作ってそこに排他制御(mutex)を導入し、「解決できた」ところを見ようという野望です。タイミングとかいろいろあるし、そんなに上手くサンプルプログラムを作れるのか。

“モダンOSのお砂場(21) FreeRTOS、Mutex排他制御の効果が「分かる」サンプル” の続きを読む

モダンOSのお砂場(20) FreeRTOS、キュー構造。でも別件が気になってしまうっ!

ESP32_MEMMAP
Joseph Halfmoon

CQ出版インタフェース誌に「触発」されてFreeRTOSネタに戻った筈が、ついつい蝶ネクタイのHymel先生(DigiKey)のYouTubeビデオを真似してみる私です。今回はキューのビデオを見たのですが、ビデオ見てたらキューより気になる図があるのです。ふんわかした例だと思ってやり過ごせばいいのですが、気になってやり過ごせない。。。

“モダンOSのお砂場(20) FreeRTOS、キュー構造。でも別件が気になってしまうっ!” の続きを読む

モダンOSのお砂場(19) FreeRTOS、メモリのアロケーション

ESP32runsFreeRTOS
Joseph Halfmoon

前回、ESP32をターゲットにしたとき、ArduinoIDEで「includeの一つもせず」即座にFreeRTOSの関数を呼び出して使えることが分かり驚きました(気付いてなかったのは私だけ?)今回は動的にメモリを確保してもいいんだ、ということに再び気付いてまた驚く、と。FreeRTOSのマルチタスク環境下では勿論、実はArduinoスタイルの「シングルタスク」でも最初から使えていたのでした。

“モダンOSのお砂場(19) FreeRTOS、メモリのアロケーション” の続きを読む

モダンOSのお砂場(18) FreeRTOS、ArduinoIDEでビルドできたんだ

FreeRTOS_blink_on_ESP32_DEVKITC
Joseph Halfmoon

CQ出版社Interface誌の2021年4月号を読ませていただいたために、FreeRTOSのお勉強を再開。ついては実習はどのボードでどの開発環境でやろうかしらと考えました。いつかの候補の中から穴馬出現。予想していませんでしたArduinoIDE、それも既にインストール済の環境でFreeRTOSのコードがビルドできる、というのです。

“モダンOSのお砂場(18) FreeRTOS、ArduinoIDEでビルドできたんだ” の続きを読む

モダンOSのお砂場(17) Zephyr RTOS、VS Codeでサンプル・ビルド

NucleoF401RE Zephyr Blink Running
Joseph Halfmoon

唐突にMicroPythonネタを別シリーズとしたので、こちらは「純粋OS」?で進めて行きたい(どこへ?)と思います。仕切り直しの初回は気になっていたRTOS、”Zephyr” であります。サンプル・プログラムをビルドして走らせ、デバッガ起動して中身を覗くところまでやってみました。VS CodeとPlatformIOの威力であまり考えずにできてしまう。。。

“モダンOSのお砂場(17) Zephyr RTOS、VS Codeでサンプル・ビルド” の続きを読む