前々回、デフォルトでインストール済であったlldb (LLVM系?のデバッガ)を使ってみましたが、アセンブラレベルの表示がちょいと思うような感じと違っておりました。gdbとほぼほぼ互換とはいいつつも違うところはあるみたいです。そこで本家gdbをインストールし、TUIモードで動作させてみました。この感じかね。
ブロックを積みながら(64) Node-RED、外部プログラムの実行ができるexecノード
今回は execノード、出力が3個ある太っちょ(人のことは言えませんが)のノードです。外部プログラムを起動してその結果をとりこむことができるもの。テスト用の外部プログラムとしてはPythonのスクリプトを使用いたしました。標準出力、標準エラー出力、戻り値の3通りの方法で結果を受け取ることができます。
やっつけな日常(12) スマホでGo! 1.26186…次元から染み出すコッホ曲線
スマホの上でGo言語を勉強しております。前回タートルグラフィクスを実装?したので、早速その応用ということで定番?「コッホ」曲線を描いてみましたぞ。フォン・コッホ先生ご考案による有限の面積の中に納まる無限の長さの線であります。フラクタル次元は 1.26186…
忘却の微分方程式(45) 反復練習9、係数行列、拡大係数行列、rank、階段、maxima
連立一次方程式に入るために関係するmaximaの関数を調べて置こうと思います。教科書見ると「クラメルの公式」使ってとか「掃出し法」つかってとかいろいろありますが、Maximaの場合solve一発で解けてしまいます。解く前にRankとか確認して、解けるんだか解けないんだか当たっておく感じ?
データのお砂場(27) Python、Titanic、前回データの別な切り口
前回、R言語所蔵のTitanicデータセットを処理。事故のデータなのであまり気色の良いものではないな、などと思っていたら、痛ましい海難事故発生。人間はそういうことに「因果関係」を感じてしまうものであり、私も例外ではないです。が、因果は無いのであります。そうしたら別口でTitanicデータをまた発見。何かあるのか?
やっつけな日常(11) スマホでGo!再帰で飛び込む頭山。懐かしのタートルグラフィクス
Go言語をスマホ上で勉強し始めて約2週間、いまだfmt.Printに頼っております。前回、画像ファイルに直線を引けるようになったので、今回はその上に懐かしい、最近あまり聞かない、タートルグラフィクス命令を「被せて」みます。タートルグラフィクスといえば再帰的(あるいは頭山的)なやつですな。描いてみました。
手習ひデジタル信号処理(33) sin関数とFastSin関数の実行サイクル数測定
前回は正弦波を計算で生成するためにミニマックス近似を使ったFastSin関数を使わせていただきました。12ビットの精度なら十分使えて「速い」と三上先生の御本にはあるのです。しかしどのくらい速いのだか気になります。今回は実機(Arm Cortex-M4F)上でどのくらい速いのだか測定してみたいと思います。
MLのお砂場(6) Classifier comparison例題をしげしげと眺めるの巻
冒頭に掲げましたClassifier comparison例題の図、多くの分類器の結果が比較できるようにならんでいて壮観。印象深いものがあります。しかし「分類してるんでしょ」ということは分かるんですが、細かいことはサッパリ。まあ実際に動かして、ソースコードを読んで、説明ページも読むと。読んだら分かるようになりますかね?
やっつけな日常(10) スマホでGo! Line描画機能をppmパッケージに追加
スマホの上でGo言語を勉強しております。前回、どうにかファイルシステム上にローカルなモジュールを配置できるようになりました。今回はモジュール内のパッケージに別ファイルで機能追加をしてみます。斜め線が描ける単なる Draw Line コマンドなのですが、最近はそういうプリミティブな関数を作ったりしないので苦戦。
モダンOSのお砂場(44) Mbed OS6、SemaphoreでISRの中から排他制御
前回Mutex(2つあるうちのRTOS Mutexと呼ばれている方)を使ってみました。スレッド間の同期には有効なAPIですが、残念ながらISR(割り込みサービスルーチン)との間では使用できません。そこで今回はSemaphoreを使って、ISRとThreadの間で排他制御を行ってみます。
ぐだぐだ低レベルプログラミング(60) ARM64(AArch64)、レジスタ一覧描いてみた
前回スマホ上でアセンブラとデバッガを動かし、ARM64(AArch64)のレジスタなど眺めてみました。ARM64はARM32と大分様子が違うので主要なレジスタだけでも一覧しておくべしと図を作り始めてハマリました。調べて図を描いているだけで時間がたちます。レジスタ多すぎ?
やっつけな日常(9) スマホでGo! なんとかローカルなモジュールを利用。go 1.18
Go言語を使い始めてちょっと困ったのが、ライブラリ的なものを別ファイルに置いて共用したいのだけれどどうしたら良いのかという点です。Goのマニュアルをつらつら見るにパッケージとかモジュールとかいろいろあるのですが、どう設定したら良いのかサッパリです。まあなんとか動くようになったのでメモ。
ブロックを積みながら(63) Node-RED、流量制限ができる、delayノード
今回の delay ノードは、本来到着した msg を一定時間遅延させて送り出すものです。しかしこの遅延機能を使ってメッセージの流量制限もできると。時間あたりのmsgの「流量」を決めると、それを超えるmsgはため込まれ流量制限の範囲で下流に流しだされます。フローの中のまさにダムみたいなもの?
手習ひデジタル信号処理(32) 正弦波の信号発生器、sin関数計算編その1
今回から信号の発生に入るのですが最初は正弦波の発生です。音を作るにせよ、無線にせよ、何が無くても正弦波。デジタルな計算で波形を作るのに私のような素人でも思いつくのがsin()関数を使うことです。しかしsin()のような関数の計算には時間がかかる、そこで信号処理の人はいろいろテクを使うんでありますな。