充実の?中華部品キットKuman K4の箱に入っている部品を端から、RISC-V搭載32ビットMCU「GD32VF103で動かしてみて」おります。今回は温湿度センサーDHT-11です。これはメジャー、怪しくない。ただ、Arduinoであればライブラリあり、関数呼べば1発ですが、GD32-SDKではそうはいかないです。とりあえず簡単なドライバ関数を自作して動作を確かめます。 “部品屋根性(11) DHT11、温湿度センサ” の続きを読む
部品屋根性(9) 7セグLED、割り込みでダイナミック駆動
毎度毎度、馬鹿なバグがお約束になっておりますが、へい、今回もやってしまいました。もうデバイスを疑ったりしませんよ、みんな自分が悪いのです。自分で作ってしまうのだけれど、自分では予想していないもの、バグです。さて前回は一桁の7セグLEDでしたが、今回は四桁の7セグLEDです。タイマ割り込みでダイナミック駆動するという趣向。 “部品屋根性(9) 7セグLED、割り込みでダイナミック駆動” の続きを読む
ぐだぐだ低レベルプログラミング(26) タイマ割り込みをかけながら
前回はソフトウエアループで500Hzの波形を作ってハード的にCPUクロックの速さを「確かめ」ました。しかし、定周期で周辺装置を駆動する場合などは、ソフトでタイミング作っていたのでは他の仕事ができません。そこで今回はタイマと割り込みを使って「同じような」波形を作ってみたいと思います。 “ぐだぐだ低レベルプログラミング(26) タイマ割り込みをかけながら” の続きを読む
ぐだぐだ低レベルプログラミング(25) 低レベルプログラミングの友、オシロ
問題含みの前々回、第23回で『後で実行クロックを一応実測しておきます』と書いてしまった(?)ので、今回は測ってみました。低レベルプログラミングでは、CPU内蔵のサイクルカウンタ類は勿論、ICEなどの開発ツールが提供する時間計測機能などが活躍するシーンも多いですが、「真実の友」はオシロスコープじゃないかと思います。「見ればわかる」ことは多い。
ぐだぐだ低レベルプログラミング(24) 訂正!GD32VF103、遅かったのは私のバグ
早速の訂正であります。昨日、RISC-V搭載マイコンGD32VF103のメモリアクセス思ったより遅いじゃん、などとディスってしまいましたが、大間違いでした。申し訳ありません。私のバグです。9サイクルと書いていたところ、実際は2サイクルです。 “ぐだぐだ低レベルプログラミング(24) 訂正!GD32VF103、遅かったのは私のバグ” の続きを読む
ぐだぐだ低レベルプログラミング(23) GD32VF103、メモリアクセスを測る
前回は、RISC-Vのサイクルカウンタを使って、GD32VF103の基本的な実行性能を測ってみました。そこで印象的だったのは、コードはFlashに置かれているのに、分岐しても特に大きな性能低下もなく、毎回きっちり同じ実行時間で処理されていることでした。シングルコア(シングルハードスレッド)のマイコンとしては、良い性質じゃないかと思います。今回は、データに対するメモリアクセスを調べてみます。 “ぐだぐだ低レベルプログラミング(23) GD32VF103、メモリアクセスを測る” の続きを読む
ぐだぐだ低レベルプログラミング(22) GD32VF103、サイクルカウンタ実測例
前回、GD32VF103のRISC-Vコアのサイクルカウンタを動かせるようになったので、今回は短いコードについて測定してみて感触を確かめたいと思います。「たかが」サイクルカウンタと言っても「高等な」マシンだと、いろいろあったりするので。シンプルなシステムなので素直に使えるとよいなあ。 “ぐだぐだ低レベルプログラミング(22) GD32VF103、サイクルカウンタ実測例” の続きを読む
ぐだぐだ低レベルプログラミング(21) GD32VF103のサイクルカウンタ辺の実装
「RISC-V原典」を読んだので(といって全部きちんとじゃないですが)、再び、RISC-Vのアセンブラと戯れてみたいと思います。最初の疑問は、「図3.3 ゼロ・レジスタであるx0を利用したRISC-Vの32個の疑似命令」という表に掲げられている rdinstret, rdcycle, rdtimeという3つの「疑似命令」についてです。x86の場合の rdtsc と似たもの共、と言えば「アセンブラ関係者」の方はお分かりと思います。 “ぐだぐだ低レベルプログラミング(21) GD32VF103のサイクルカウンタ辺の実装” の続きを読む
Literature watch returns(20) RISC-V 原典
各種「業界」毎、これを読んでないとモグリだ、という類の定番の教科書などがございます。「RISC-V業界」におけるそのようなご本は “THE RISC-V READER” でないでしょうか。寄る年波で原著を読む元気などありませんが、幸いなことに邦訳も出ています。「RISC-V 原典」というタイトル。しかし、この手の御本は重くて分厚いことが通例、とても読む気になれなかったので「モグリ」のまま避けてました。しかし、実際に購入して目から鱗。 “Literature watch returns(20) RISC-V 原典” の続きを読む
鳥なき里のマイコン屋(102) GD32VF103、タイマ、インプットキャプチャ
前回は、超小型お手軽価格のRISC-V搭載GD32VF103開発ボード、Sipeed社Longan nanoを使って「ありがちな」PWM出力をやってみました。出力やったのだから、次は入力ということで、今回はPWM波形をTIMER3に入力し、その周波数とデューティを測定するサンプルを動かしてみます。 “鳥なき里のマイコン屋(102) GD32VF103、タイマ、インプットキャプチャ” の続きを読む
鳥なき里のマイコン屋(101) GD32VF103、タイマ PWM出力
RISC-V搭載の「お求めやすい」マイコン、GigaDevice社GD32VF103の機能を一通り触ってみるべく「活動」しておりますが、まだまだ題材は尽きる気配はありません。今回は、ありがちな、タイマをつかったPWM出力をやってみたいと思います。使用する開発ボードは、久しぶり、Sipeed社のLongan nanoであります。
AIの片隅で(23) M5StickV, V-Trainingその後
先週、インタフェース誌10月号のAIチップ特集を読みながら「メールが届くのを待っています」などとブーたれていたのです。M5StickVのWeb上でのAIトレーニング環境であるV-Training、ここに来て、先月何かの理由で詰まってしまっていたQueueが解消されて動き出したようです。処理完了のメールがとどき、学習済のデータセットをM5StickVにセットすれば、ちゃんと目論見どおり認識をば致しまする。待ち行列解消さえすればこんなにお手軽なものは無い? “AIの片隅で(23) M5StickV, V-Trainingその後” の続きを読む
トホホな疑問(26) Python, Windowsでのshebang行
今日は、Windows上でPython3系とPython2系、どっちのPythonが起動されるかのトホホな話です。正直、惰性で書いてましたShebang行、#!/usr/bin/python みたいな先頭行。でもね、惰性じゃイケなかった。それにまたまた PYTHONPATHが「悪さ」をしてくれるし。。。ちゃんと考えて設定しておかないとダメだ。 “トホホな疑問(26) Python, Windowsでのshebang行” の続きを読む
忘却の微分方程式(10) OpenModelica、抵抗1個のモデリング
前回は、微分方程式どころか、鶴亀算を計算しながら、実は鶴も亀もOpenModelicaの世界では「時系列的存在」であることにようやく気付きました。今回は、これまた微分方程式以前、御馴染みオームの法則を「実装」した抵抗1本、これが階層構造をもったオブジェクトなんだということを学んで行きたいと思います。ようやくモデリングの入口かも。 “忘却の微分方程式(10) OpenModelica、抵抗1個のモデリング” の続きを読む