前回は、RISC-Vの乗算命令と除算命令を1命令づつ動かしてみました。今回は 乗算命令 の全貌を見てみます。といっても4命令ですが。実装がシンプルになるように考慮した結果でしょうが、命令の使用方法はクセが強い、気がします(個人の感想です。)それにnucleriのツールチェーンにも制限が?
ソフトな忘却力(12) RPi3、AES、1ブロックだけのテストパターン「素の」暗号化
前回は、ATSAMD51マイコンのSHA1計算ハードを試用するプログラムを書いた後で、テストパターン生成用のプログラムを作りました。こういう泥縄ではいかん、ということで、今回はマイコンプログラムの前にテストパターン生成用のプログラムを作っておくことにいたしました。AES暗号化、1ブロック「だけ」です。
モダンOSのお砂場(27) FreeRTOS、ESP-IDFで定番のLチカをタスクで実装
ESP-EYE使いESP-IDF環境でLチカをプログラムするのを「敷居が高い」などといってMicroPythonに逃げてしまいました。そのままでは進歩がないので、手足があって分かり易いESP32-DevkitCにもどってESP-IDF環境でLチカしてみました。素のままではモダンOSにならないので、FreeRTOS機能を使う縛りでです。
ソフトな忘却力(11) RPi4、SHA1、パディング入りのテストパターンとダイジェスト
先週別件でメモリ内容のハッシュをハードウエアで計算しつづけるDMACを使ってみました。ハッシュ値を求めることにも使えますが、改竄対策?かな。とりあえずのサンプルデータで動作検証したのですが、テスト用の入力パターンの生成が手作業なのは何とも。そこでラズパイ4上でテストパターン生成プログラムを試作してみました。 “ソフトな忘却力(11) RPi4、SHA1、パディング入りのテストパターンとダイジェスト” の続きを読む
鳥なき里のマイコン屋(147) ラズパイPico、C/C++SDK、マルチコアで割り込み2
前回、マルチコアの両方にGPIO割り込みを入れてみましたが、割り込み受付後のタイマ処理が上手く行きませんでした。暫定対策したものの、実はそれもダメダメでした。今回はタイマ処理が上手く行かなかった理由を調査。対策打って「安定して動いている」ように「今のところ」見えているところまでやってみました。継続試験中。
手習ひデジタル信号処理(10) STM32F446、FIRフィルタその2、転置形
前回はFIRフィルタ「直接形」ということでその結果にちょっと感動。今回は同じことを「転置形」でやれ、との思し召しです。いくら感動の結果でも同じ筈。「カッタリ~」などと不埒な事を言っていては修行になりませんぞ(手習ひか。)前回のプログラムを書きなおし、F446に書き込んで実験いたしました。まあ、結果は変わらんケド。
忘却の微分方程式(23) 極限(limit)、MathematicaとMaxima
今回は極限(limit)です。ようやく微分の入り口近くまでたどり着きましたな。でもま、先は長いです。流石にこの辺りは、MathematicaとMaximaどちらも「できる」感じです。入力から数学的で美麗なMathematica(その代りメンドイ)、と入力は素っ気ないMaximaという感じでしょうか。出力はどちらも美麗。
MicroPython的午睡(53) ESPRESSIF、ESP-EYEでLチカを
ESP-EYE、サンプルソフトで動作確認、そしてビルド環境をセットアップと2回作業をしたのですが、未だに自分で書いたプログラムでLチカさえも動かせてません。ESP-IDFの敷居が高いです。そこで今回は極端なショートカットでLチカを動かしてみました。ご存じESP32用genericポートを使えば3分でLチカ動いてしまう。
IoT何をいまさら(101) ATSAMD51、ICM、ハッシュ計算をする専用DMAC
前々回、トラぶりながらもなんとかDMACを動かしてみました。しかし、SAMD51にはもう一つDMACがあることに気づきました。ICMというものです。ぶっちゃけメモリのある領域のハッシュ値を計算してくれるDMACです。監視対象のメモリが書き換わってしまったら割り込みをかけるなどということも可能。流石近代的。 “IoT何をいまさら(101) ATSAMD51、ICM、ハッシュ計算をする専用DMAC” の続きを読む
MicroPython的午睡(52) ATOMLite、気圧の測定結果をNode-REDへ
前回、定番の圧力センサ Bosch BMP280の補償計算をなんとかやっつけてMicroPythonで気圧と温度を測れるようになりました。今回は測った結果を、例によってMQTTに載せてNode-REDへ報告し、Dashboard上にグラフ表示してみます。まずは前回プログラムのモジュール化から。
ブロックを積みながら(45) Node-RED、Dashboard、formノード
前々回、Node-REDダッシュボードのTemplateノードを使ってみました。表示ができるだけでなくボタンを配置して入力にも使える優れものでした。今回は同じく入出力兼用のformノードを使ってみます。ユーザーとのインタフェースを作るにはバッチリ?なノードです。
鳥なき里のマイコン屋(146) ラズパイPico、C/C++SDK、マルチコアで割り込み1
折角2コア積んでいるラズパイPicoなのに、大分前にちょっと2コアで動かしただけでした。これでは宝の持ち腐れです。無理にでも2コア使う方針といたしました。ま、動かしてみないと身に染みないこともあるっと。今回は2コアで外部端子からの割り込みを受けてみました。早速のお間抜けあり。
ぐだぐだ低レベルプログラミング(38) RISC-V、mulとdiv、RV32M拡張その1
今回のRV32Mは拡張命令セットといいつつ、ほとんどの実装で採用されている筈のもの。整数掛け算と割り算であります。しかし命令が存在しても何サイクルで処理できるのかは実装依存です。まずはmulとdiv命令を使ってみて処理サイクル数を数えてみるところから始めました(前にもやったっけ?忘れているからいいか。)
手習ひデジタル信号処理(9) STM32F446、FIRフィルタその1、直接形
今回からいよいよデジタル信号処理らしい「手習ひ」に入れます。その最初はFIRフィルタです。まずは素直な「直接形」の実装でその威力をシミジミ味わえ、という感じでありましょう。アイキャッチ画像に振幅特性を示しましたが、いい感じじゃないでしょうか。こちらは書いてあるとおりにやっただけなのですが、ちょっと感動。