今回はRTOSでは避けて通れない排他制御を実験してみます。それも「排他制御無」だとこんなに動作が「ボロボロだ」と実感できるサンプルを作ってそこに排他制御(mutex)を導入し、「解決できた」ところを見ようという野望です。タイミングとかいろいろあるし、そんなに上手くサンプルプログラムを作れるのか。
モダンOSのお砂場(20) FreeRTOS、キュー構造。でも別件が気になってしまうっ!
CQ出版インタフェース誌に「触発」されてFreeRTOSネタに戻った筈が、ついつい蝶ネクタイのHymel先生(DigiKey)のYouTubeビデオを真似してみる私です。今回はキューのビデオを見たのですが、ビデオ見てたらキューより気になる図があるのです。ふんわかした例だと思ってやり過ごせばいいのですが、気になってやり過ごせない。。。
モダンOSのお砂場(19) FreeRTOS、メモリのアロケーション
前回、ESP32をターゲットにしたとき、ArduinoIDEで「includeの一つもせず」即座にFreeRTOSの関数を呼び出して使えることが分かり驚きました(気付いてなかったのは私だけ?)今回は動的にメモリを確保してもいいんだ、ということに再び気付いてまた驚く、と。FreeRTOSのマルチタスク環境下では勿論、実はArduinoスタイルの「シングルタスク」でも最初から使えていたのでした。
モダンOSのお砂場(18) FreeRTOS、ArduinoIDEでビルドできたんだ
CQ出版社Interface誌の2021年4月号を読ませていただいたために、FreeRTOSのお勉強を再開。ついては実習はどのボードでどの開発環境でやろうかしらと考えました。いつかの候補の中から穴馬出現。予想していませんでしたArduinoIDE、それも既にインストール済の環境でFreeRTOSのコードがビルドできる、というのです。
モダンOSのお砂場(17) Zephyr RTOS、VS Codeでサンプル・ビルド
唐突にMicroPythonネタを別シリーズとしたので、こちらは「純粋OS」?で進めて行きたい(どこへ?)と思います。仕切り直しの初回は気になっていたRTOS、”Zephyr” であります。サンプル・プログラムをビルドして走らせ、デバッガ起動して中身を覗くところまでやってみました。VS CodeとPlatformIOの威力であまり考えずにできてしまう。。。
モダンOSのお砂場(16) FreeRTOS, BLEサンプルコードを読む
コの字のお陰で、やる気が出ないだけでなく、夢見も悪いです。毎日、毎日「カンセンカクダイ」のニュースばかり見ているためかも。まあ、ボチボチ慣れていかねばね。前回動かしたサンプルプログラムを読みながら、ESP-IDF上のFreeRTOS環境でのESP-32の使い方を学んでいきたいと思います。 “モダンOSのお砂場(16) FreeRTOS, BLEサンプルコードを読む” の続きを読む
モダンOSのお砂場(15) FreeRTOSでBLEアドバタイズ
太陽の周りに輝くものでもあった筈の「コロナ」が、いまや迫りくる病魔の名となり重苦しい世の中となりました。それでもモダンOSのお砂場で戯れる、と。今回は、大分前に途中で止まっていた FreeRTOS へと戻ってみたいと思います。理由は、こちらのシリーズとは関係なく、FreeRTOSの開発ができる環境が出来てしまったから。 “モダンOSのお砂場(15) FreeRTOSでBLEアドバタイズ” の続きを読む
モダンOSのお砂場(14) M5StickC、MicroPython REPL
前回、Webベースでグラフィカルな開発環境、UIFlowを使ってM5StickC上のMicroPythonのプログラムを作り、シリアルポートからMicroPythonのREPLに接続できることを確かめました。今回は、そのREPLを使ってターミナルエミュレータからMicroPythonのプログラムを直接流し込んで動かしてみます。 “モダンOSのお砂場(14) M5StickC、MicroPython REPL” の続きを読む
モダンOSのお砂場(13) M5StickC、UIFlowとprint()
前回、グラフィカルでWebベースの開発環境、UIFlowを使用してM5StickCのプログラミングを始めてみました。プログラムそのものを走らせるのは楽ちんで良いのですが、デバッグなど考えると pdb(Pythonの標準デバッガ)使えないとはいえ、print()くらい使えないものかな?と思いました。
モダンOSのお砂場(12) M5StickC、UIFlowとMicroPython
このところKendryte K210搭載のM5StickVの上でMicryoPythonしておりましたが、実は同時期に、ESP32搭載のM5StickCも購入しておったのです。同じM5Stickのシリーズなので兄弟というべきか?プロセッサSoCが違い、CPUコアも違いで開発環境も似ていても違う、従兄弟くらいか、それとも腹違い?の兄弟か? “モダンOSのお砂場(12) M5StickC、UIFlowとMicroPython” の続きを読む
モダンOSのお砂場(11) MicroPython、GPIO入出力
AIカメラと銘打って販売されているM5StickV(RISC-Vコア+AIアクセラレータKPU搭載のKendryte K210搭載機)ですが、カメラの横にはかなり強力なLEDが搭載されています。近くのものならこれで照明しながら撮影できそうです。このLED、色が変えられます。照明の光の波長を変えて撮影すると何かいいことあるかも。LED点灯色など制御しているのがGPIOの端子群です。ついでにキー入力もやってしまいましょう。 “モダンOSのお砂場(11) MicroPython、GPIO入出力” の続きを読む
モダンOSのお砂場(10) MicroPython、モジュールとhelp
皆さまは、PythonのREPL(Read-Eval-Print Loop)使っておられますか?実を申せば、私はPC上のPythonではまず使いません。ほとんどバッチでPythonスクリプトを走らせているから。インタラクティブなデバッグしたいときはpdb起動しているし… でも今回K210をCPUに頂くM5StickV上のMicroPythonを使うにあたってREPL使うことにいたしました。help()関数、使わねばね。 “モダンOSのお砂場(10) MicroPython、モジュールとhelp” の続きを読む
モダンOSのお砂場(9) MicroPython、ファイルにアクセス
前回に引きつづき、M5StickVのMicroPythonのREPL環境で「遊んで」おります。M5StickVの場合、内蔵Flash以外にSDカードも使用できるので、スクリプトやデータの格納場所に困るということはなかなか無さそうです。その分、いろいろファイル操作したくなる局面も多くなると思います。そこで、ちょこっとユーティリティ的なスクリプトを書いて「お手軽化」してみました。 “モダンOSのお砂場(9) MicroPython、ファイルにアクセス” の続きを読む
モダンOSのお砂場(8) M5StickV、micropython
micropythonは言語処理系であってOSではないとお叱りを受けそうですが、このモダンOSのお砂場シリーズでは、Interface 2019年5月号の特集にならいmicropythonも「マイコンを制御するためのOS的な要素含む」としてモダンOSに含めております。ま、実際はM5Stack、M5Stick系の実装では、根本にFreeRTOSというモダンOSがいて、その上でmicropythonが走っているという階層構造ですが。 “モダンOSのお砂場(8) M5StickV、micropython” の続きを読む