ぐだぐだ低レベルプログラミング(46) RISC-V、浮動小数点の丸めと例外、その2

NaN
Joseph Halfmoon

前回は柄にもなく浮動小数点の丸めを説明したところで力尽きてしまいました。今回は前回の残り、浮動小数点の例外についてです。こういうメンドイものがあるので浮動小数点演算は後回しにしたくなるのですが、実際に浮動小数点演算命令を動かすにあたっては避けていられません。それにしても面倒くさいよ。

“ぐだぐだ低レベルプログラミング(46) RISC-V、浮動小数点の丸めと例外、その2” の続きを読む

Pico三昧(6) Pico C/C++SDKでS93C46接続その2、PIO制御

Joseph Halfmoon

前回は3線式シリアルE2PROM S93C46をソフトウエア制御で読み書きしてみました。今回は、ラズパイPicoの特長であるPIO(Programmable IO)を使って同じことを行ってみます。PIOステートマシンのアセンブラを書くのも大分慣れた気もしますが、最後は波形を見ないと安心できないんだ,、これが。

“Pico三昧(6) Pico C/C++SDKでS93C46接続その2、PIO制御” の続きを読む

L.W.R.(40) 古文書編#11、マイクロコンピュータの誕生、嶋正利著、岩波1987

4004
Joseph Halfmoon

今回の御本は30年以上も前に岩波書店から出ていた本です。前回の御本の未だに派生の新刊書が出る息の長さとは異なりますが、驚いたのはAmazonで古書として購入する場合の価格です。当時の定価1700円の5倍以上の価格で売られていました。人気高いのね。「マイクロコンピュータの誕生」、サブタイトル「わが青春の4004」。

“L.W.R.(40) 古文書編#11、マイクロコンピュータの誕生、嶋正利著、岩波1987” の続きを読む

モダンOSのお砂場(32) FreeRTOS、割り込みハンドラからタスクにキュー

SeeeduinoXiao_DUT
Joseph Halfmoon

前回はタスク・リストを一覧して何故か満足してしまいました。今回は、割り込みとタスクの間の通信を試みてみたいと思います。割り込みサービスルーチン側では、処理の依頼をするだけで、時間のかかる処理はタスクにお任せするという仕組み。とりあえず動くプロトタイプを作ってみました。

“モダンOSのお砂場(32) FreeRTOS、割り込みハンドラからタスクにキュー” の続きを読む

ぐだぐだ低レベルプログラミング(45) RISC-V、浮動小数点の丸めと例外

RoungingMode
Joseph Halfmoon

RISC-Vの浮動小数点演算命令セットを実際に動かして堪能しようと思いつつ、ついつい後回しにしてきました。何でかといって難物の「丸め」と「例外」などがチラチラしていたからでございます。浮動小数点素人の私としては触りたくない「奴ら」ですが、これに触れないことには先に進みませぬ。

“ぐだぐだ低レベルプログラミング(45) RISC-V、浮動小数点の丸めと例外” の続きを読む

Pico三昧(5) Pico C/C++ SDKでS93C46接続その1、ソフト制御

S93C46
Joseph Halfmoon

以前にもシリアルEEPROMをラズパイPicoに接続したことがありましたがI2C接続でMicroPython利用でした。今回は「3線式」EEPROM、結構昔からあるタイプ、をC/C++SDKで接続してみます。「その1」はソフトウエア制御であります。簡単だろ~と思っていたら、お約束の落とし穴にハマりました。新年そうそう。

“Pico三昧(5) Pico C/C++ SDKでS93C46接続その1、ソフト制御” の続きを読む

MicroPython的午睡(58) micro:bit v2、MicroPython書込

microbitV2
Joseph Halfmoon

以前 BBC micro:bit v1上でMicroPythonを動かしてみたことがあったのです。メモリが小さな v1 では大したスクリプトを動かせなかったです。しかしメモリ容量の拡大した v2 でなら動くはず。今回、MicroPythonのビルドからやってインストールしてみたのですが、調べてみたらビルドなど不要でした。トホホ。

“MicroPython的午睡(58) micro:bit v2、MicroPython書込” の続きを読む

Pico三昧(4) Pico C/C++ SDKで74HC595接続、PIO制御編2直列

Pico_595_SER_Schematic
Joseph Halfmoon

前回、ラズパイPicoのプログラマブルIO制御で、74HC595の2個並列と2個直列、同じ回で両方やってみようとしたら、まさかの半田不良で手間取りました。結局「並列」の方のみ実施。今回は、残りの直列接続の方をやってみます。形は出来ているので、今度こそ簡単に出来る筈。

“Pico三昧(4) Pico C/C++ SDKで74HC595接続、PIO制御編2直列” の続きを読む

手習ひデジタル信号処理(15) STM32F446、IIRフィルタその4、継続型Class

FAIL_Bode
Joseph Halfmoon

前回と今回は算法的にはまったく同じ、その差はソフトウエア部品として使い易いようにクラス化するところだけ。だったら簡単じゃん、と甘くみて例のごとくにハマりました。クラス化する「エレガントな」書き方を学ぶべく、1行1行手入力したら間違えてました。ボーっとして入力しているからだ。

“手習ひデジタル信号処理(15) STM32F446、IIRフィルタその4、継続型Class” の続きを読む

IoT何をいまさら(104) ESP-EYE、ESP-IDFでSimple HTTPD

HELLO
Joseph Halfmoon

ESP-IDFのExampleをほとんどコピペしながら、ESP-EYEを一歩一歩動かしてみております。前回はWiFiアクセスポイントに接続成功。今回はシンプルなhttpdを動作させて、パソコンからアクセスしてみます。インクリメンタルに継ぎ足してきている実験用のソースファイルが膨れ上がってきました。そろそろ対処を考えないと。

“IoT何をいまさら(104) ESP-EYE、ESP-IDFでSimple HTTPD” の続きを読む

モダンOSのお砂場(31) FreeRTOS、タスク・リストを一覧する

vTaskListEC
Joseph Halfmoon

ここ数回、Seeeduino Xiaoボード(Microchip製のArmコア内蔵SAMD21マイコン搭載)上でFreeRTOSのタスクを作ってその動作を観察しています。タスク数は少ないのだけれどもタスクの一覧みたいなものが見たくなってきました。そのためのAPIがありました。組み込み用のOSなので、デバッグするとき向けの機能ですが。 “モダンOSのお砂場(31) FreeRTOS、タスク・リストを一覧する” の続きを読む

ぐだぐだ低レベルプログラミング(44) 64bit RISC-V、サイクル数と命令数の計測

DUT_EC
Joseph Halfmoon

環境を変えたのに確かめていなかった命令群があります。サイクル数と命令数の計測機能です。32bit RISC-V(GD32VF103)では、お世話になっています。64bit RISC-VのK210でも使える筈ではあるのですが、確認しておきたいと思います。しかし、前々回からFlashへの書き込みはラズパイ4機に頼り切り、そろそろなんとかしないと。

“ぐだぐだ低レベルプログラミング(44) 64bit RISC-V、サイクル数と命令数の計測” の続きを読む

Pico三昧(3) Pico C/C++ SDKで74HC595接続、PIO制御編2並列

DUT_PHOTO
Joseph Halfmoon

前回はラズパイPicoのPIO(プログラマブルIO)ステートマシンを使って単体の74HC595を制御しました。今回は2個同時制御、直列接続と並列接続を1回で済ませようとしてツボにハマりました。2個目が動かないデス。なんで?並列接続にて問題追及、動作OKとなりました。ソフトバグの裏に半田付け不良が隠れていた。何ってこったい!

“Pico三昧(3) Pico C/C++ SDKで74HC595接続、PIO制御編2並列” の続きを読む

手習ひデジタル信号処理(14) STM32F446、IIRフィルタその3、継続型

IIRdut
Joseph Halfmoon

前回は同じ構成のIIRフィルタの計算をFloat型からDouble型にするだけで問題が消える件を勉強しました。今回はFloat型のままでOKという話。だったら最初から言ってよ、とは言わず、一歩一歩手習ひいたしとうございます。なぜOKになるのか、ブロックダイアグラムを見ればどこが違うかは分かりまする。でも何故?

“手習ひデジタル信号処理(14) STM32F446、IIRフィルタその3、継続型” の続きを読む