
前回Zephyr OSのデバイスツリーの高い壁?を何とか乗り越えた?ので、今回はマルチスレッドに進みたいと思います。といっても前回作成のプログラムで2つ光らせていたLEDの片方を新設のスレッドの制御下に移すというだけのもの。なにはともあれマルチスレッド、と。
デバイス作る人>>デバイス使う人>>デバイスおたく
前回Zephyr OSのデバイスツリーの高い壁?を何とか乗り越えた?ので、今回はマルチスレッドに進みたいと思います。といっても前回作成のプログラムで2つ光らせていたLEDの片方を新設のスレッドの制御下に移すというだけのもの。なにはともあれマルチスレッド、と。
前回はArmの64ビット命令の即値Addを眺めてみました。それだけでも4形式の命令があったのですが、前回作成した命令表には、まったく同等な加算動作を行う命令Addsが隣に並んでいます。整数加算することはAddと同じですが、副作用、フラグを立てたり下ろしたりする、ということのみが違う命令です。なお演習はスマホ上です。
Go言語の処理系TinyGoを使用すると、Go言語で書いたソースをMCU向けにコンパイルしてFlashに書き込み、実行可能。別シリーズにてラズパイPicoでは成功。今回はSeeeduino Xiao(Microchip SAMD21マイコン搭載)を復活、吉例LチカをTinyGoで行ってみます。母艦はWindowsPC。
一昨年の「トランジスタ技術」を読み返していて気づいたのです。グラフに微分値(実際の計算は差分だろうけれど)も計算表示できるのだ、と。LTspiceのグラフ、シミュレーションした結果の電流とか電圧とかを計算して表示できるのは知っていたのです。さらにグラフに描いたトレースの「勾配」もグラフ表示できる、と。便利?
前回、IIRフィルタ(簡単なやつ?)のブロックダイアグラムをシミュレーションして正弦波らしきものが生成されることを観察しました。今回は実機で三上先生のサンプルプログラムを動かしてみます。折角なので外付け回路の「想定外」の周波数まで生成周波数を上げてみました。IIR凄い?
うさちゃん(Rabbit4000)相手のネットワーク通信の練習も、そろそろデータを載せてみたいです。今回は高々4文字、UDPでラズパイからうさちゃんへ、うさちゃんからラズパイへと相互にパケットを投げつけあってみたいと思います。わたしゃ止めることを全然気にしていなかったこと発覚。1つ間違えたら自分で自分にDDoS攻撃?
前回、係数行列とかrankとかを勉強した後で、今回は線形従属であることを示せとか、線形結合で表せとかいうお題。お楽しみ?の線形空間、部分空間というものに深入り?していくための練習みたいです。Maximaで1問「解ける」ことが分かりさえすれば、何題も練習問題解かなくてもよいじゃん、と。それで反復練習になるのかもし?
大分前にZephyr RTOSのサンプルをビルドした後進捗なく過ごしておりましたのは他でもありません、Device Treeの抽象度の高さにGPIOの端子をトグルさせるのもどうしてよいか分からない状態だったからです。その辺FreeRTOSもArm MbedOSも分かり易いのでZephyr避けてました。GWだし再開。
別シリーズでGo言語を勉強したりしているのですが、インタプリットもでき、バイナリにビルドもできでなかなか良いものです。マイクロコントローラでもGoのオブジェクトを走らせられるということで今回やってみましたです。ターゲットはラズパイPico。その母艦は例によってラズパイ4です。C/C++SDKと同様で実行可能。