オプション沼(25) gcc、Wmultistatement-macros、うかつな奴?

MultMacros
Joseph Halfmoon

前回はmultichar定数への警告でした。今回はmultiつながり?で multistatementマクロに対する警告の発出です。C++ならテンプレートというものがあるのでそれに任すのも手なのでしょうが、Cのマクロには多くを期待しない方が良いように思ってます(個人の感想です。)たまに人様の超絶マクロに感動しますが。

“オプション沼(25) gcc、Wmultistatement-macros、うかつな奴?” の続きを読む

モダンOSのお砂場(63) UNO R4、ルネサスRA4M1でFreeRTOS、OSタイマ

UNOR4_softtimerA
Joseph Halfmoon

前回まではマルチタスクLチカするのに複数のタスクを作ってました。各タスク毎に遅延時間を指定するというシングルタスク同様の構造です。しかし定周期で何かを実行するというのはRTOS環境下ではアリガチな作業です。FreeRTOSはそのための「軽い」仕組みもしっかり実装されてます。今回はこのTimerタスクを使ってみます。
“モダンOSのお砂場(63) UNO R4、ルネサスRA4M1でFreeRTOS、OSタイマ” の続きを読む

データのお砂場(91) R言語、acme、超過収益、bootパッケージ

plotAcme_market
Joseph Halfmoon

R言語のサンプルデータセットという覗き穴から世界を眺めております。今回から bootパッケージに含まれるサンプルデータセットを見て回りたいと思います。その初回はacmeとな。何じゃらほい?と思ったら実在した会社のお名前でした。ACME-CLEVELAND社とな。どうも他社に買収される数年前の会社の「成績表」みたいっす。

“データのお砂場(91) R言語、acme、超過収益、bootパッケージ” の続きを読む

小ピンマイコンの酷暑(1) CH32V003、8ピンマイコンからのHelloWorld

CH32V003_AQM1602
Joseph Halfmoon

別シリーズ記事にて、大変お求めやすい価格の32ビットRISC-VマイコンCH32Vの吉例Lチカ成功(先達の方のお陰です。)それに気をよくしてCH32Vの各種機能を使ってみることにいたしました。Lチカの次はHelloWorldだな、と勝手に目標設定。HelloWorldしてみましたが、8ピンマイコンです。これが結構難物。 “小ピンマイコンの酷暑(1) CH32V003、8ピンマイコンからのHelloWorld” の続きを読む

鳥なき里のマイコン屋(174) マイコンでLISP、吉例Lチカ、Wio Terminal

uLispBlink
Joseph Halfmoon

下手の横好きということで、トートツにLispはじめました。といってPC上のLispではなく、マイクロコントローラ(マイコン)上の uLisp という処理系です。各種マイコンに「広く」移植されている小さなLisp処理系です。勿論Lispらしいコードが実行できるだけでなく、吉例Lチカなどマイコンハードも制御可能。ハマるな。 “鳥なき里のマイコン屋(174) マイコンでLISP、吉例Lチカ、Wio Terminal” の続きを読む

ブロックを積みながら(123) Node-RED、contribの地図表示機能を使ってみる

Tokyo
Joseph Halfmoon

前回までで自前のノードを作れそうな気がしてきました。入れ込む前に、まずは既存のコントリビューションの中で面白そうなもの(独断と偏見デス)を少し経めぐってみることにいたしました。今回は、Node-REDダッシュボードに地図表示ができるnode-red-contrib-web-worldmapを使わせていただきます。

“ブロックを積みながら(123) Node-RED、contribの地図表示機能を使ってみる” の続きを読む

GoにいればGoに従え(25) TinyGo Drivers便利。なんでも簡単接続。

LIS3DHmodule
Joseph Halfmoon

前回使用したTinyGo Driversというドライバセットは超便利っす。非常に簡単な手順で、定番物の周辺デバイス約100種に対するドライバをTinyGoのコードから使えるようになります。Arduinoなどで人気のデバイスは網羅している感じです。今回はLIS3DH、MEMS加速度センサとの接続を実験。 “GoにいればGoに従え(25) TinyGo Drivers便利。なんでも簡単接続。” の続きを読む

手習ひデジタル信号処理(93) Scilab、デシメーション処理、実データで動作確認

decimated
Joseph Halfmoon

前回はアリガチなサンプルデータを「でっち上げ」、Scilab上でデシメーション処理をば行ってみました。できて当然?今回はPythonを使ってソフトウエア無線受信USBドングルRTL-SDRから得た「実データ(Tokyo FM様の瞬間的な音声)」についてScilab上でデシメーション処理してみようと思います。大丈夫か?

“手習ひデジタル信号処理(93) Scilab、デシメーション処理、実データで動作確認” の続きを読む

ソフトな忘却力(34) MD5ハッシュを計算してみる、OpenSSL

md5c
Joseph Halfmoon

別シリーズ記事(ESP32版MicroPython)にてMD5がサポートされてなかったです。もったいなくもSHA256ハッシュの計算を実施。別にMD5に何か格別の思い入れがあるわけではないのですが、一応計算方法を確認しておくかと。Linux上での作業なので大仰にもOpenSSLを利用です。あるもんは何でも使え?
“ソフトな忘却力(34) MD5ハッシュを計算してみる、OpenSSL” の続きを読む

MicroPython的午睡(113) ESP32版、hashlib使ってsha256を計算

ImportHashlib
Joseph Halfmoon

MicroPython上でも使えるCPython(フルのPython実装)のサブセット・モジュールを見てます。今回はhashlibとな。この年寄はMD5計算できればいいんじゃね、くらいのいい加減さ。ESP32版のMicroPythonみたらばMD5は割愛されてました。SHA256使え(SHA1もある)ということみたい。
“MicroPython的午睡(113) ESP32版、hashlib使ってsha256を計算” の続きを読む

ぐだぐだ低レベルプログラミング(123)ARM64(AArach64)LD1、ベクトルロード

fld1_EC
Joseph Halfmoon

ついにSIMDレジスタへのベクトルロード命令へと進出?いたしました。4命令LD1、LD2、LD3、LD4と並んでいるうち、今回は最初のLD1を動かしてみたいと思います。「1」なんて簡単だろ~と思うなかれ。相手はベクトルっす。メンドイ奴らです。その上、ロードされた様子を観察するだけでも一苦労(特に老眼の目には) “ぐだぐだ低レベルプログラミング(123)ARM64(AArach64)LD1、ベクトルロード” の続きを読む

PIC三昧(4) まずはEXT_INTを使ってみる。PIC16F18855

EXT_INT_DUT
Joseph Halfmoon

モダーンなPIC16F1xxx マイコンは外部割り込みも2系統の方法をサポートしてます。IOCと呼ばれる方はカッコよく複雑な条件で割り込み処理が開始できます。一方、単にINT Pinとか、EXT_INTと呼ばれる方は「昔ながらの」割り込みピンのようです。まず今回は「昔ながらの」方法で外部割込みをかけてみたいと思います。

“PIC三昧(4) まずはEXT_INTを使ってみる。PIC16F18855” の続きを読む

忘却の微分方程式(104) 反復練習67、二重積分その2、Maxima

integrateE80_1
Joseph Halfmoon

今回は前回の続きの二重積分です。前回よりも「微妙に」ムツカシくなっているのは、積分領域Dが「マルでも三角でもないちょっと複雑な形」になっているうえに、単なる数値じゃなく文字定数で記されているところです。文字のままではグラフが描けんな。とはいえ解くのはMaxima様なので、そんなことは知ったこっちゃね~。大丈夫か?

“忘却の微分方程式(104) 反復練習67、二重積分その2、Maxima” の続きを読む

モダンOSのお砂場(62) UNO R4、ルネサスRA4M1でFreeRTOS、タスク生成

FreeRTOS_Arduino
Joseph Halfmoon

Arduino UNO R4登場。ルネサスのArmマイコン搭載。32ビット機なのでArduino IDE環境を使いつつ、FreeRTOSベースで使ってみようかと思います。別シリーズでFreeRTOSでLチカのサンプルコードを動かしているので、今回はその構造のおさらいから。まずはタスク2つ作ってダブルLチカ。ありがち。

“モダンOSのお砂場(62) UNO R4、ルネサスRA4M1でFreeRTOS、タスク生成” の続きを読む