
以前から気になっていた「うさちゃん印」のチップを遂に入手、インストールして動作確認するところまでやって見ました。Digi international社傘下に入った元Rabbit semiconductorのRabbit 4000チップです。最新機種のRabbit 6000と比べると2世代前とは言え、Z80テイストの8ビット機としてはなかなか強力。
デバイス作る人>>デバイス使う人>>デバイスおたく
今回は前回と以下同文でラクチンなどと呟いていたら、前回コードにしょうもないバグ発見。天網恢恢疎にして漏らさず、違うか。お詫びして前回分をさきほど修正させていただきました。今回は前回一種しかやらなかった積和演算命令、実は全部で4種もあったという話であります。
ラズパイPicoのinterpユニットを使ってみる4回目は、Clampモードです。前回Blendモードを使ってみましたが、これは各コアに2個づつあるinterpのうち「0」のみの機能でした。じゃ「1」の方は何かないの?というとClampモードを持っているのです。上下の境界を超える値を「クランプ」してくれる機能です。
前回WatchDogタイマを使ってみたのは、M5ATOMLite用の「環境測定&MQTT報告」スクリプトを長時間走らせているとハングする現象の対策のためでした。しかしWatchDogで復旧を試みるまえに原因に当たりをつけておきたいです。そこで「ダイイングメッセージ」が残るようにスクリプトを改変。
前回はスレッドを使って2つの仕事を並行処理でした。今回は外部端子割り込みを使ってみます。Mbed OS6での割り込み処理の流儀は、FreeRTOSの割り込みの流儀とはちょっと違う感じがいたします。OSとして割り込みやIOなどを「仕切る」Mbed OS6と、他のフレームワークに乗っかってRTOS機能を提供するFreeRTOSと(個人の感想です。)
前回、浮動小数点の加減算をやりました。その前に例外を「味わう」ために浮動小数点の除算をやっています。そこで今回は必然の乗算です。ただ掛け算が出来たと喜んでも芸がありませぬ。RISC-Vには、普通の掛け算命令だけでなく、積和演算命令もあります。信号処理(積分)などするときはこちらの方が「普通」。今回はこの2つを比べてみる、と。
前回はEventQueueを使った2つの仕事の並行処理例でした。今回はThreadを使ってほぼ同じ仕事を書き直してみます。プライオリティがないEventQueueと比べると、Threadはプラオリティ制御もできて、クリティカルな制御が可能なのだと思います。RTOSのカーネルのお陰。RTOS的にはこちらの方が「本流」でしょうか。
前回までに浮動小数点の例外とか丸めとかのメンドイ部分を調べました。今回からは実際に計算していきたいと思います。まずは浮動小数の加算と減算からですな。ただ足し算が出来たと喜ぶのでは芸が無いので、皆さんご存じな「駄目」ケースの計算をあえてやって、バイナリで結果を見て行きたいと思います。