モダン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でサンプル・ビルド” の続きを読む

モダンOSのお砂場(16) FreeRTOS, BLEサンプルコードを読む

JosephHalfmoon

コの字のお陰で、やる気が出ないだけでなく、夢見も悪いです。毎日、毎日「カンセンカクダイ」のニュースばかり見ているためかも。まあ、ボチボチ慣れていかねばね。前回動かしたサンプルプログラムを読みながら、ESP-IDF上のFreeRTOS環境でのESP-32の使い方を学んでいきたいと思います。 “モダンOSのお砂場(16) FreeRTOS, BLEサンプルコードを読む” の続きを読む

モダンOSのお砂場(15) FreeRTOSでBLEアドバタイズ

JosephHalfmoon

太陽の周りに輝くものでもあった筈の「コロナ」が、いまや迫りくる病魔の名となり重苦しい世の中となりました。それでもモダンOSのお砂場で戯れる、と。今回は、大分前に途中で止まっていた FreeRTOS へと戻ってみたいと思います。理由は、こちらのシリーズとは関係なく、FreeRTOSの開発ができる環境が出来てしまったから。 “モダンOSのお砂場(15) FreeRTOSでBLEアドバタイズ” の続きを読む

モダンOSのお砂場(14) M5StickC、MicroPython REPL

JosephHalfmoon

前回、Webベースでグラフィカルな開発環境、UIFlowを使ってM5StickC上のMicroPythonのプログラムを作り、シリアルポートからMicroPythonのREPLに接続できることを確かめました。今回は、そのREPLを使ってターミナルエミュレータからMicroPythonのプログラムを直接流し込んで動かしてみます。 “モダンOSのお砂場(14) M5StickC、MicroPython REPL” の続きを読む

モダンOSのお砂場(13) M5StickC、UIFlowとprint()

JosephHalfmoon

前回、グラフィカルでWebベースの開発環境、UIFlowを使用してM5StickCのプログラミングを始めてみました。プログラムそのものを走らせるのは楽ちんで良いのですが、デバッグなど考えると pdb(Pythonの標準デバッガ)使えないとはいえ、print()くらい使えないものかな?と思いました。

“モダンOSのお砂場(13) M5StickC、UIFlowとprint()” の続きを読む