
前回はスレッドを使って2つの仕事を並行処理でした。今回は外部端子割り込みを使ってみます。Mbed OS6での割り込み処理の流儀は、FreeRTOSの割り込みの流儀とはちょっと違う感じがいたします。OSとして割り込みやIOなどを「仕切る」Mbed OS6と、他のフレームワークに乗っかってRTOS機能を提供するFreeRTOSと(個人の感想です。)
デバイス作る人>>デバイス使う人>>デバイスおたく

前回はスレッドを使って2つの仕事を並行処理でした。今回は外部端子割り込みを使ってみます。Mbed OS6での割り込み処理の流儀は、FreeRTOSの割り込みの流儀とはちょっと違う感じがいたします。OSとして割り込みやIOなどを「仕切る」Mbed OS6と、他のフレームワークに乗っかってRTOS機能を提供するFreeRTOSと(個人の感想です。)

前回、浮動小数点の加減算をやりました。その前に例外を「味わう」ために浮動小数点の除算をやっています。そこで今回は必然の乗算です。ただ掛け算が出来たと喜んでも芸がありませぬ。RISC-Vには、普通の掛け算命令だけでなく、積和演算命令もあります。信号処理(積分)などするときはこちらの方が「普通」。今回はこの2つを比べてみる、と。

前回はEventQueueを使った2つの仕事の並行処理例でした。今回はThreadを使ってほぼ同じ仕事を書き直してみます。プライオリティがないEventQueueと比べると、Threadはプラオリティ制御もできて、クリティカルな制御が可能なのだと思います。RTOSのカーネルのお陰。RTOS的にはこちらの方が「本流」でしょうか。

前回までに浮動小数点の例外とか丸めとかのメンドイ部分を調べました。今回からは実際に計算していきたいと思います。まずは浮動小数の加算と減算からですな。ただ足し算が出来たと喜ぶのでは芸が無いので、皆さんご存じな「駄目」ケースの計算をあえてやって、バイナリで結果を見て行きたいと思います。

前回のMbed OS6は bare metal profileでしたが、今回はRTOS部分を含むフルセットのAPIが使える状態でサンプル・プログラムをビルドしています。とはいえbare metalでも「行けそう」な小さなもの。使ってみるMbed OS機能は EventQueueです。Queueに溜まっているお仕事を取り出しては処理してくれる働き者。

今回も前回同様にRISC-Vの単精度浮動小数点除算命令を使います。今回は実際に計算をした結果として浮動小数点例外の5つのフラグを立ててみたいと思います。所望の例外を所望の場所(というかタイミングというか)で起こすというのは難しいというかメンドイです。そのくせ、起きてほしくないときに起きるんだけれども。例外ってやつは。

前回、STM32F446REに書き込んだ母音音声合成器の出力波形を、スペクトログラムなどを使って「見て」みました。しかしね、なんです、音なのでこの耳で聞かねば。ということで今回は出力信号の先に大分前に組み立ててあった秋月製のスピーカアンプを接続、「聞いて」みましたぞ。実際の音声ファイルもありです。