ぐだぐだ低レベルプログラミング(21) GD32VF103のサイクルカウンタ辺の実装

Joseph Halfmoon

「RISC-V原典」を読んだので(といって全部きちんとじゃないですが)、再び、RISC-Vのアセンブラと戯れてみたいと思います。最初の疑問は、「図3.3 ゼロ・レジスタであるx0を利用したRISC-Vの32個の疑似命令」という表に掲げられている rdinstret, rdcycle, rdtimeという3つの「疑似命令」についてです。x86の場合の rdtsc と似たもの共、と言えば「アセンブラ関係者」の方はお分かりと思います。 “ぐだぐだ低レベルプログラミング(21) GD32VF103のサイクルカウンタ辺の実装” の続きを読む

Literature watch returns(20) RISC-V 原典

Joseph Halfmoon

各種「業界」毎、これを読んでないとモグリだ、という類の定番の教科書などがございます。「RISC-V業界」におけるそのようなご本は “THE RISC-V READER” でないでしょうか。寄る年波で原著を読む元気などありませんが、幸いなことに邦訳も出ています。「RISC-V 原典」というタイトル。しかし、この手の御本は重くて分厚いことが通例、とても読む気になれなかったので「モグリ」のまま避けてました。しかし、実際に購入して目から鱗。 “Literature watch returns(20) RISC-V 原典” の続きを読む

鳥なき里のマイコン屋(103) GD32VF103、バッテリバックアップ

Joseph Halfmoon

RISC-V搭載のMCU、GD32VF103にも当然ですが複数の電源ドメインというものあり、です。今回は、バッテリでバックアップ可能なドメインに入ります。ここにあるのは、RTC(実時間時計)と小容量のメモリなどです。PCなどではCMOSなどと通称される設定を記憶しておくためのもの。実際にバッテリを繋いで、主電源を切っても記憶が保持されることを確かめてみたいと思います。 “鳥なき里のマイコン屋(103) GD32VF103、バッテリバックアップ” の続きを読む

鳥なき里のマイコン屋(102) GD32VF103、タイマ、インプットキャプチャ

Joseph Halfmoon

前回は、超小型お手軽価格のRISC-V搭載GD32VF103開発ボード、Sipeed社Longan nanoを使って「ありがちな」PWM出力をやってみました。出力やったのだから、次は入力ということで、今回はPWM波形をTIMER3に入力し、その周波数とデューティを測定するサンプルを動かしてみます。 “鳥なき里のマイコン屋(102) GD32VF103、タイマ、インプットキャプチャ” の続きを読む

鳥なき里のマイコン屋(101) GD32VF103、タイマ PWM出力

Joseph Halfmoon

RISC-V搭載の「お求めやすい」マイコン、GigaDevice社GD32VF103の機能を一通り触ってみるべく「活動」しておりますが、まだまだ題材は尽きる気配はありません。今回は、ありがちな、タイマをつかったPWM出力をやってみたいと思います。使用する開発ボードは、久しぶり、Sipeed社のLongan nanoであります。

“鳥なき里のマイコン屋(101) GD32VF103、タイマ PWM出力” の続きを読む

鳥なき里のマイコン屋(100) GD32VF103、Standbyモード

JosephHalfmoon

RISC-V搭載のGigaDevice社の32ビットマイクロコントローラ(MCU)、GD32VF103のあれこれを体験してきておりますが、今回は「Standbyモード」を使ってみます。当面マイコンがやる仕事が無い時に消費電力を下げるために、大抵のMCUがもっている「あれ」です。ただ、手元の環境ではあまり真面目な測定もできそうにありません。ま、だいたい雰囲気を把握でければ。。。 “鳥なき里のマイコン屋(100) GD32VF103、Standbyモード” の続きを読む

鳥なき里のマイコン屋(99) GD32でAT24C02、EEPROM

JosephHalfmoon

このところSeeed Studio社製のGD32VF103VBT6ボードをSipeed社Longan nanoと見立てて動かしてきています。まったく問題なし。しかし、Seeed社製のボードにはLongan nanoには搭載されていないデバイスも搭載されとります。その一つがAT24C02、EEPROMです。今回は、このシリアルEEPROMの読み書きをやってみました。 “鳥なき里のマイコン屋(99) GD32でAT24C02、EEPROM” の続きを読む

鳥なき里のマイコン屋(98) GD32VF103の素性?

JosephHalfmoon

最初はSipeed社Longan nanoで、続いてSeeed社GD32VF103VBT6ボードでGiga Device社GD32VF103を触ってきました。ペリフェラルを操作している程度ならSDKのAPIを使えれば十分かと思っておりましたが、このところRISC-Vのアセンブラなども触ってみるにいたり、もう少しGD32のコアに「理解を深める」必要あり、と認めました。泥縄。 “鳥なき里のマイコン屋(98) GD32VF103の素性?” の続きを読む

鳥なき里のマイコン屋(97) GD32開発ボードにRISC-Vデバッガ接続

JosephHalfmoon

前回は、SeeedStudio製GD32VF103VBT6開発ボード(以下「開発ボード」)をPlatformIO上の設定ではLongan nanoとしておいても、問題なくビルドおよびDFU経由のダウンロードが出来ることを確かめました。今回はSipeed製のRISC-Vデバッガ(JTAG)を開発ボードに接続してみたいと思います。 “鳥なき里のマイコン屋(97) GD32開発ボードにRISC-Vデバッガ接続” の続きを読む

鳥なき里のマイコン屋(96) GD32VF103VBT6開発ボード

JosephHalfmoon

前回までRISC-V搭載の小型で「お求めやすい」マイコンボード、Longan nanoをいじってきました。最大の不満と言えば、ボードも小さければ搭載MCUも小ピンで、全部の機能は取り出せないことです。そんな折、Longan nanoと同じGD32VF103、しかし100ピン版でほぼ全端子を使用可能に見える開発ボードを見つけてしまいました。思わず購入。 “鳥なき里のマイコン屋(96) GD32VF103VBT6開発ボード” の続きを読む

ぐだぐだ低レベルプログラミング(20) RISC-V、nop、mv、li??

JosephHalfmoon

別シリーズに (93) (94) (95) とRISC-Vのアセンブラねたを仕込んでしまいました。一応、アセンブラは「こちら」というこで引っ越しをすることにいたしました。今後はRISC-Vのアセンブラねたはこちらということでお願いいたします。ま、どちらでも大した違いはないんでありますが。しかし、何か月ぶりのシリーズ再開だ? “ぐだぐだ低レベルプログラミング(20) RISC-V、nop、mv、li??” の続きを読む

鳥なき里のマイコン屋(95) Longan nano、RISC-Vデバッガ

JosephHalfmoon

前回前々回とLongan nano上でアセンブラなど触り始めると、欲しくなるのがデバッガであります。大したプログラム書くわけではないので、Cであれば「伝統の」printfデバッグでもなんとかなりますが、アセンブラだと、やはり「止めて」レジスタなど見たくなる。そこでこれまたお手頃価格のデバッガ購入。

“鳥なき里のマイコン屋(95) Longan nano、RISC-Vデバッガ” の続きを読む

鳥なき里のマイコン屋(94) Longan nano、アセンブラその2

JosephHalfmoon

前回、何もしないで「行って来い」だけのアセンブラ関数を書いて、生成されたオブジェクトコードを眺めてみたときに、ちと気になったことがありました。RISC-V用のツールチェーンのobjdumpがディスアセンブルしたコード、16ビット幅でした。その辺に転がっている資料をみるとRISC-Vの命令は32ビット幅の筈。なぜ?

“鳥なき里のマイコン屋(94) Longan nano、アセンブラその2” の続きを読む

鳥なき里のマイコン屋(93) Longan nano、アセンブラ関数を呼び出す

JosephHalfmoon

前回、割り込みを使うにあたって、Longan nanoはRISC-Vコアといいながら、RISC-Vのことなんぞ、ちーとも勉強しないまま、漫然とCでコーディングしている具合の悪さを痛感いたしました。やはりコアを知るべきでしょう。そのためにはアセンブラで書いてみるのが一番。つらつら本を読んでも右から左に忘れてしまいますが、コーディングしてバグったことは忘れない?

“鳥なき里のマイコン屋(93) Longan nano、アセンブラ関数を呼び出す” の続きを読む