モダンOSのお砂場(66) UNO R4、ルネサスRA4M1でFreeRTOS、Queue

UNOR4_FreeRTOS_queue_diagram
Joseph Halfmoon

今回はArm Cortex-M4コアのルネサスマイコンRA4M1を搭載したArduino UNO R4上で、FreeRTOSのQueueを使ってみたいと思います。複数のタスク間で安全にデータを受け渡しできる便利な構造です。データの送受ができることは当たり前なので、今回は送受にどのくらいの時間がかかるのだが目安を観察。 “モダンOSのお砂場(66) UNO R4、ルネサスRA4M1でFreeRTOS、Queue” の続きを読む

小ピンマイコンの酷暑(3) CH32V003、外部端子から割り込みをかけてみる

CH32V_EXTINTR_SCHEMATIC
Joseph Halfmoon

酷暑にもめげず、RISC-V搭載の超お求めやすい32ビットマイコンCH32V003を触っています。今回はGPIO端子から割り込みをかけてみます。Arduino IDE環境での作業なので「いつものやり方でOK」かというと微妙に違うんだこれが。前回のようにCH32V用の低レベルなAPIを呼びだす必要はないのですが。

“小ピンマイコンの酷暑(3) CH32V003、外部端子から割り込みをかけてみる” の続きを読む

Lispと一緒(3) uLisp、Wio Terminalのボタンをセンスする

button1EC
Joseph Halfmoon

前回は中身ばかりで外まで手が伸びませなんだ。今回はマイコンで走るuLispならではの外部入力も含めてみます。まずはWio Terminalの上端面に3つならんでいる「青いユーザーボタン」をセンスできるようにしてみます。LCDパネルに向かって右からボタン1,ボタン2、ボタン3であります。でも端子名は何?

“Lispと一緒(3) uLisp、Wio Terminalのボタンをセンスする” の続きを読む

GoにいればGoに従え(28) container/listをTinyGoで使ってみる

mb20listSRC
Joseph Halfmoon

前回はTinyGoでも「フルの」Goの標準ライブラリが立派に使える、ということで「値によって順番をつけて」データを格納してくれるheapを使ってみました。さて今回はその流れで container/list を使ってみます。順番を管理できるデータ構造です。それにどんな型のデータを入れても良いし。よくあるリスト構造だね。 “GoにいればGoに従え(28) container/listをTinyGoで使ってみる” の続きを読む

MicroPython的午睡(116) ESP32版、mip動かんぜよ?

testFunctoolsReduceResults
Joseph Halfmoon

前回はmpy-crossツールでmpyファイル化したスクリプトを、ストレージに置いて使ってみました。今回は外部のリポジトリからモジュールをダウンロード&インストールしてみる1回目デス。MicroPythonにもモジュール管理ツールあり、ということで mip 試してみたんですけど手元のESP32版では試行錯誤中、トホホ。

“MicroPython的午睡(116) ESP32版、mip動かんぜよ?” の続きを読む

PIC三昧(7) Zero-Cross Detection(ZCD)、PIC16F18855

PIC16F18855_ZCD_DUT
Joseph Halfmoon

前回は小規模なデジタル・ロジックを構築できるCLC機能でした。今回はアナログです、といっても軽いアナログ。ゼロ(グランド)通過を検出するゼロクロス検出機能です。マイコンでは時々必要になるんじゃないかと思います。それこそ商用電源をゼロクロスすれば、50Hz(あるいは60Hz)のタイミングが取り出せるっと。 “PIC三昧(7) Zero-Cross Detection(ZCD)、PIC16F18855” の続きを読む

モダンOSのお砂場(65) FreeRTOSのコルーチン、Deprecatedとな!

coroutineNOTE
Joseph Halfmoon

ソフトウエアは何時か滅びるとの理に思いはせる今回です。前回、Arduino UNO R4にてFreeRTOSのコルーチン動かしてみました。Configいじったりしてチョイ面倒だったです。しかしFreeRTOSのドキュメントを見たならば Deprecatedと表示がでてました。いつの間に?よく読んでなかった私が悪い。

“モダンOSのお砂場(65) FreeRTOSのコルーチン、Deprecatedとな!” の続きを読む

Lispと一緒(2) uLisp、Lispのリハビリその1、ループを回す

rectdemos
Joseph Halfmoon

組み込みマイコン向けのuLispを浮かれて始めたのは良いものの、元よりLisp素人、過去の記憶も忘却の彼方ということで、リハビリを行って少しずつ動けるようにいたしてまいりたいと存じます。折角グラフィックスが使えるWio Terminal機なので、動作が見た目に分かりやすいようにLispで描画してみると。

“Lispと一緒(2) uLisp、Lispのリハビリその1、ループを回す” の続きを読む

GoにいればGoに従え(27) container/heapをTinyGoで使ってみる

Defineiheap
Joseph Halfmoon

インタプリタ処理系のMicroPythonとコンパイラのTinyGoを比べるのもどうかと思うのですが。MicroPythonは「フルセットのPythonのライブラリのサブセット」を実装、一方TinyGoは「フルセットのGoのライブラリの一部」を使用可能というスタンスみたいっす。今回は乱雑な順に乱雑な値を入れても出すときは順番にならんでいるヒープ構造をTinyGoで使ってみます。 “GoにいればGoに従え(27) container/heapをTinyGoで使ってみる” の続きを読む

MicroPython的午睡(115) ESP32版、mpy-crossの利用

ESP32supportedMPY
Joseph Halfmoon

前回はヒープ・メモリの使用状況をちょいと観察しました。上限が小さいRAM領域は貴重。ターゲット機のESP32DevKitCの場合、まだFlash領域の方が余裕があるのでなるべくFlashに「追い出したい」デス。そこで今回はMicroPythonの中間コードにクロスコンパイルしてくれるmpy-crossを使用してみます。

“MicroPython的午睡(115) ESP32版、mpy-crossの利用” の続きを読む

PIC三昧(6) Configurable Logic Cell、PIC16F18855

CLC0imageS
Joseph Halfmoon

前回は複数の外部入力端子を組み合わせて割り込みをかけることもできるIOC機能でした。今回は複数の外部入力端子を含む各種信号を使ってロジックを作り、結果を外部出力したり内部回路で使ったりできるCIC機能を使ってみます。FPGAとはいかないですが、ごく小さなPLDみたいな感じ。外付けロジックIC数個分くらいの規模感。
“PIC三昧(6) Configurable Logic Cell、PIC16F18855” の続きを読む

モダンOSのお砂場(64) UNO R4、ルネサスRA4M1でFreeRTOSのコルーチン

ArduinoUNOR4corEC
Joseph Halfmoon

前回はOSタイマ前々回はTask(プリエンプティブな)、並行処理を行う方法はもうお腹一杯な気がしないでもないです。しかし、FreeRTOSにはもう一つあり。CoRoutineです。本格的なTaskが使えるFreeRTOSでわざわざコルーチンする意味があるのか不明ですが、今回は「あるものは使ってみる」ということで。
“モダンOSのお砂場(64) UNO R4、ルネサスRA4M1でFreeRTOSのコルーチン” の続きを読む

小ピンマイコンの酷暑(2) CH32V003、8ピンマイコンのSYSCLKを外部出力

MCO_WAVE
Joseph Halfmoon

前回うかつにUART使ったらFlash再書き込みが出来なくなったと書きました。すると「のる@KHloCSIavYLAiKZ」様からご指摘あり、「Ryo Mukai@uCOM80」様の記事の中に復活方法が書いてあると。ありがとうございます。やってみました復活しました。今回は復活したチップ使ってMCO信号を外部出力とな。
“小ピンマイコンの酷暑(2) CH32V003、8ピンマイコンのSYSCLKを外部出力” の続きを読む

Lispと一緒(1) uLisp、Seeeduino Wio Terminal+VScodeで快適?

demoGraphicsEC
Joseph Halfmoon

組み込みマイコン向けのuLispをArduino IDE環境からWio Terminalへインストール、吉例Lチカ成功しました。久しぶりのLISPに熱狂、今回は『Lispと一緒』その初回であります。ともあれuLispでコード書く環境を決めないと。結局いつものVScode環境にいたしましたが、まあまあ快適。

“Lispと一緒(1) uLisp、Seeeduino Wio Terminal+VScodeで快適?” の続きを読む