
うさちゃんRabbit4000のDynamic Cのライブラリを読んでいるとインライン・アセンブラ・コードに迷いこみます。RabbitシリーズはZ80愛に溢れているCPU、Z80上位互換です。Z80のつもりで大体読めますが、時々「知らない」レジスタなどに遭遇します。今回はCPUレジスタを図にまとめてみました。
デバイス作る人>>デバイス使う人>>デバイスおたく
前回、モジュールファイルの置き場所を決めたりして、作成済の部品を呼び出して使うのが便利になりました。すると即座に不満な点が出てきました。部品が「8ビット用」とかキメウチで応用が効かないことです。今回はシフトレジスタを題材にパラメタライズ、呼び出し時にビット幅を決められるようにしてみます。 “帰らざるMOS回路(28) Icarus Verilog、ライブラリのパラメータ化” の続きを読む
前回までのビットフィールド転送命令群と比べて今回のレジスタ抽出命令EXTRの動作は分かり易いです。エイリアスもシンプル、たった1個。ROR(右ローテイト)命令だけです。ただ、左にシフトして取り出すような操作のEXTRに対して、詰まっているデータから見ると右ローテイトに見えると。左右が時々混乱するのは私だけ? “ぐだぐだ低レベルプログラミング(77)ARM64(AArch64)、EXTR、RORでもある” の続きを読む
テキトーに書いても走る(走ったように見える)言語もあれば、走る前に阻止される言語もあります。どうもRustは後者であるようです。Rustでの文字列のとり扱いを始めましたが、Cの文字列に慣れた頭でいると、いろいろ転換せねばなりませぬ。文字列を配列とみて添え字でアクセスするような方法は禁止じゃと。 “やっつけな日常(32) Rustに入ればRustに従え、文字列操作、おっかなびっくり その1” の続きを読む
前回まで、「対角化」などを「それなりに手順」を踏んで行ってきました。今回のジョルダン標準形への変換はどうしようか迷いました。そのものズバリのJordan行列を扱うパッケージ diag をloadすれば、ほぼ1撃で変換できてしまう。まあ、出来ることをわざわざ刻むことも無し、お楽が一番。手順のみ確認させていただきます。 “忘却の微分方程式(57) 反復練習20、ジョルダン標準形への変換その1” の続きを読む
前回までに、Arm Cortex-M4コアのSTM32F446マイコンでの「ダイレクト・サンプリングSDR実験」用フロントエンド回路が出来上がりました。これからSDRのお勉強に入りますが、初回は早速AMラジオを受信してみます。なんたって三上先生のサンプルプログラムのバイナリがあるので、書き込めば動く筈。
前回は演習用の人工データでしたが、今回は自然現象の観測データです。米国カリフォルニア州内で発生した23個の地震のピーク加速度データです。古いデータのようですが比較的デカイ地震ばかり。震源までの距離とピーク加速度の間に関係性を見出すための練習データに見えます。しかし多くの日本人は知っています。地震は一筋縄ではいかねーと。
別件でdateコマンドを使って思い出したのが UNIX時間であります。Linuxでも使用の「伝統」です。そういえば昔は32ビットであったので2038年問題ってのが有った筈。手元のLinux機、ラズパイ4はようやく64ビットOSに切り替えましたが、ラズパイ3は32ビットOSのままです。time_t型の件、調べてみました。
“ソフトな忘却力(23) time_t型、64bit OS上なら64bitになっていたのね” の続きを読む
前回はI2C接続の温湿度センサAHT21Bをラズパイ上のPythonで読み取ってみました。今回は、アナログ信号出力の温度センサLM61をやはりラズパイPythonで読み取ってみます。アナログ入力を持たないラズパイのために外付けADCのMCP3421を取り付けてあるので「端子を接続するだけ」で読める筈なのですが。
前回は、Rabbit4000(モジュールはRCM4010)のオープンドレインで使用可能なピンを見つけて、16文字x2行のキャラクタディスプレイAQM1602をソフトI2C接続いたしました。今回は同じ「I2C」バスにAHT21B温湿度センサを取り付けてみます。今回はライトオンリの前回とは違って読み書き双方向が必要です。
前回は、ROMのビットパターンを外部ファイルから読み取ってシミュレーションに使用してみました。ファイルからデータを入力できるのであれば、コマンドラインからちょいとテスト値などを読み込ませて使用することもしたいです。ついでにモジュール・ファイルの置き場所も所定の場所にまとめたいです。今回はiverilog使うときの小ネタ
“帰らざるMOS回路(27) Icarus Verilog小ネタ、ライブラリ、実行時パラメータ” の続きを読む
前回は符号付きのビットフィールドMOV命令、SBFMのエクササイズでした。今回は符号無のビットフィールドMOV命令、UBFMです。これまた多くのエイリアスの名のもとにいろいろな命令に化ける命令です。似た命令であるSBFMと「対称」と思って見に行くと期待を裏切られます。SBFMであったものが無いです。でも無くても大丈夫。 “ぐだぐだ低レベルプログラミング(76)ARM64(AArch64)、UBFM命令、伸縮自在” の続きを読む