RISC-VマイコンK210搭載『Sipeed MAix』『M5StickV』
今、話題のRISC-Vコア、AIアクセラレータKPU内蔵マイコンK210搭載
Sipeed MAix、M5StickVの話題を扱います
64bit 400MHz RV64GCのRISC-Vコアを2コア搭載
RV64GCなので単精度、倍精度浮動小数点演算もOK
AIアクセラレータのKPU内蔵
MicroPython環境のMaixPyやArduino IDEでの開発が可能です >>176をPlatformIO IDE、Arduino IDEどちらでもビルドできるように修正しました
Sipeed MaixシリーズのArduino用のRISC-V RV64GCインラインアセンブラ デモプログラム(PlatformIO IDE対応版)
https://pastebin.com/Yih6K59b
PlatformIO IDEでビルドする場合はplatformio.iniに
下記オプションのいずれかを指定してください
build_unflags = -march=rv64imafc
build_flags = -mabi=lp64f -march=rv64gc
build_unflags = -Os -march=rv64imafc
build_flags = -O2 -mabi=lp64f -march=rv64gc
build_unflags = -Os -march=rv64imafc
build_flags = -O3 -mabi=lp64f -march=rv64gc
Arduino IDEでビルドする場合は下記のやり方でオプションを変更してください
(オプション変更に関しては自己責任でお願いします)
https://pastebin.com/E66j9e7f MaixシリーズのArduinoでBME280をI2Cで使ってみました
SparkFunのBME280ライブラリがそのまま使えます
SparkFunのBME280ライブラリはここにあります
https://github.com/sparkfun/SparkFun_BME280_Arduino_Library
単にLCDとSeralに温度、湿度、気圧を表示するだけのものです
BME280のサンプルスケッチ
https://pastebin.com/bFk36iGX
スケッチではBME280のI2Cアドレスは0x76にしてあります
BME280のI2Cアドレスに合わせて変更してください
ADT7410ではkendryte-standalone-sdkのI2Cのライブラリを
直接叩く必要がありましたが
BME280は一般的なArduinoと全く同じやり方で扱えます
たいていのI2CデバイスはBME280と同様に一般的なArduinoと同じ方法で使えると思います
MaixduinoではSDA、SCLと書かれてるピン
Maixduino以外の機種ではSDAが31番ピン、SCLが30番ピンです >>176,>>177のプログラムでオプションを変更したくないという方のために
RISC-Vのインライン アセンブラの命令を倍精度浮動小数点命令を使っていたところを
すべて単精度浮動小数点命令にしたバージョンを作ってみました
これならArduino IDEやPlatformIOでオプションを変更せずに
デフォルトのオプションでビルドできます
Sipeed MaixシリーズのArduino用のRISC-V RV64GCインラインアセンブラ デモプログラム(単精度浮動小数点版)
https://pastebin.com/sKqhdLq1 >>176,177,179の修正版をつくりました
プログラムがdummy_func01を呼ばないと動作しないという変な挙動を示していたのは
アセンブラのプログラムが悪かったようです
gccのインラインアセンブラの入力オペランドで割り当てられるレジスタが
関数呼び出しで保存されないレジスタだったため
関数呼び出しで破壊されてしまうのが原因の一つでした
また、call擬似命令で暗黙的に使われるraレジスタを
インラインアセンブラで破壊されるレジスタのリストに加えてなかったのがもう一つの原因でした
これらが原因で変な挙動を示していたようです
これらを修正したバージョンを作ってみました
インラインアセンブラの入力オペランドに割り当てられるレジスタの内容は
アセンブラプログラムの最初のところで
スタックに確保したメモリに保存するようにしました
また、インラインアセンブラの入力オペランドに指定した変数は
割り当てられたレジスタに値を戻してからインラインアセンブラを終了しないと
インラインアセンブラの後に同じ関数内でその変数が使えないようなので
(これもインラインアセンブラ内の関数呼び出しでレジスタの内容が破壊されるのが原因)
アセンブラプログラムの最後に入力オペランドに割り当てられたレジスタに値を戻すようにしました
そしてインラインアセンブラで破壊されるレジスタのリストにra (x1の別名)レジスタを追加しました >>176,>>177
これらの修正版はこちらです(Arduino IDEとPlatformIO IDEに対応してます)
Sipeed MaixシリーズのArduino用のRISC-V RV64IMAFCインラインアセンブラ デモプログラム(単精度浮動小数点修正版)
https://pastebin.com/LSG7pGwb
こちらは倍精度浮動小数点命令を使用せず単精度浮動小数点命令のみなので
Arduino IDEやPlatformIO IDEでオプションを変更しなくてもビルドできます >>179の修正版はこちらです(こちらもArduino IDEとPlatformIO IDEに対応してます)
Sipeed MaixシリーズのArduino用のRISC-V RV64GCインラインアセンブラ デモプログラム(倍精度浮動小数点修正版)
https://pastebin.com/gvsybiG0
こちらは倍精度浮動小数点命令を使用するのでオプションの変更が必要です
(Arduino IDE、PlatformIO IDEともにデフォルトのオプションが-march=rv64imafcなため
アセンブラが倍精度浮動小数点命令でエラーを出すため。
-march=rv64imafdcもしくは-march=rv64gcを指定する)
PlatformIO IDEでビルドする場合はplatformio.iniに
下記オプションのいずれかを指定してください
build_unflags = -march=rv64imafc
build_flags = -mabi=lp64f -march=rv64gc
build_unflags = -Os -march=rv64imafc
build_flags = -O2 -mabi=lp64f -march=rv64gc
build_unflags = -Os -march=rv64imafc
build_flags = -O3 -mabi=lp64f -march=rv64gc
Arduino IDEでビルドする場合は下記のやり方でオプションを変更してください
(オプション変更に関しては自己責任でお願いします)
https://pastebin.com/E66j9e7f >>178に関してですが
Windowsの場合のArduino IDEのライブラリフォルダは下記になります
メニューのツール→ライブラリの管理で入れるとカスタムライブラリに入ります
カスタムライブラリ
C:\Users\username\Documents\Arduino\libraries
あらゆるボード用のライブラリ
C:\Program Files (x86)\Arduino\libraries
Maixシリーズ用のライブラリ
C:\Users\username\AppData\Local\Arduino15\packages\Maixduino\hardware\k210\0.3.11\libraries
usernameの部分は各自のユーザ名に読み替えてください M5 Stack Core2の話題ってここでいいの? >>186
M5Stack Core 2はESP32というマイコンモジュールを使ってるのでこっちでは?
格安wifiモジュール「esp8266」「esp32」 5個目
http://rio2016.5ch.net/test/read.cgi/denki/1594364030/ >>185の追記
Microsoft StoreからArduino IDEを入れた人のMaixシリーズ用のライブラリはここ
C:\Users\username\Documents\ArduinoData\packages\Maixduino\hardware\k210\0.3.11\libraries
Microsoft StoreからArduino IDEを入れた人のコンパイラオプション変更のためのplatform.txtはここです
(コンパイラオプション変更は自己責任でお願いします)
C:\Users\username\Documents\ArduinoData\packages\Maixduino\hardware\k210\0.3.11\platform.txt IOエクスパンダのMCP23017をArduinoで使ってみました
ICは秋月で110円で買えます
https://akizukidenshi.com/catalog/g/gI-09486/
ボードはスイッチサイエンスで990円で買えます
https://www.switch-science.com/catalog/1650/
MCP23017はI2Cで制御します。
接続はMaixduinoではSDA、SCLと書かれてるピン
Maixduino以外の機種ではSDAが31番ピン、SCLが30番ピンです
https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library
AdafruitのMCP23017用のライブラリを一部修正することで
Maixシリーズでそのまま使えます
Adafruit_MCP23017.cppの25行目から30行目を変更する
#ifdef __AVR
#include <avr/pgmspace.h>
#elif defined(ESP8266)
#include <pgmspace.h>
#endif
#include "Adafruit_MCP23017.h"
この部分を下記のように修正する
#ifdef __AVR
#include <avr/pgmspace.h>
#elif defined(ESP8266)
#include <pgmspace.h>
//#endif
#elif defined(K210)
#include <avr/pgmspace.h>
#endif
#include "Adafruit_MCP23017.h"
Adafruitのこのライブラリを使うことで
ArduinoのdigitalWriteやdigitalReadのような関数で操作できます。
Adafruitのライブラリを使ったMaixシリーズのMCP23017用の簡単なLチカです
GPA0とGPB0にLED、GPA7にタクトスイッチを接続してあることを想定してます
アドレスは0x21になってますが自分の設定に合わせて変更してください
https://pastebin.com/iaHfktTf
ライブラリは上記URLからダウンロードできます。
緑色のCodeと書かれてる部分をクリックすると
一番下に「Download ZIP」と出てくるのでそれをダウンロードすればいいです
上記のように修正して手動で下記フォルダにフォルダごとコピーしてください。
C:\Users\username\Documents\Arduino\libraries
(usernameの部分は自分のユーザ名に読み替えてください)
ライブラリはArduino IDEの「ツール」→「ライブラリ」の管理からも入れられます
Adafruit MCP23017 Arduino Libraryを検索してください。
その場合、ライブラリは下記フォルダに入ります
上記のようにそれを修正します
C:\Users\username\Documents\Arduino\libraries
(usernameの部分は自分のユーザ名に読み替えてください) 16ch、12bitのPWMコントローラーのPCA9685をArduinoで使ってみました
秋月やスイッチサイエンスでモジュールキットが購入できます
I2C接続16チャンネル サーボ&PWM駆動キット
https://akizukidenshi.com/catalog/g/gK-10350/
PCA9685搭載16チャネル PWM/サーボ ドライバー (I2C接続)
https://www.switch-science.com/catalog/961/
https://github.com/adafruit/Adafruit-PWM-Servo-Driver-Library
ここのAdafruitのPCA9685用のライブラリがそのまま使えます
MaixduinoはSDA、SCLと書かれてるピンに接続
Maixduino以外では31ピンにSDA、30ピンにSCLを接続します
簡単なLチカのデモプログラムを作ってみました
全チャンネルにLEDがシンク接続されていることを想定しています
(setPWMが使いにくいのでデューティ比で指定できる関数を作ってみました)
PCA9685のI2Cアドレスは0x40に設定されているので自分のものに合わせて変更してください
https://pastebin.com/Ceq6EjTW
このようにMaixシリーズでも簡単にI2Cデバイスが使えます
ADT7410のようなkendryte-standalone-sdkを
使わないといけなくなるケースはまれなケースのようです。
I2CデバイスはSCL、SDAとGND、電源を接続するだけで扱えるのが便利ですね MaixduinoのオンボードのESP32に間違ってESP32のArduinoのスケッチなどを書き込んでしまった場合
下記のサイトからMaixduinoのESP32用のファームウエアをダウンロードできます
書き込み方法も書かれてますので参照してください
https://github.com/sipeed/Maixduino_esp32_fimware/releases m5stackについて質問したいけど、誘導していただけませんか? RISC-Vが過疎ってるからって関係ない板にまでコピペしまくるなよな。 ここは別にRISC-Vのスレじゃないぞ
K210のスレ
K210がRISC-Vコアを使ってるというだけ
SipeedやM5Stackの話が出るのはわかるが全然関係ないこと書き込まないで ESP8266とPin互換のマイコンがespressifから出るから
もう少ししたらRISC-Vマイコンのスレ立てた方がいいかな
SipeedからもDebianが走るAllwinnerのRISC-VのSoC載ったボード出るようだし >>201 踏み台になれ
ttps://www.espressif.com/sites/default/files/Screenshot%202020-11-27%20at%2009.10.15.png GD32VF103もあるしRISC-Vスレがないのが不思議 粘着MIPS君といい、キチガイRISC-V厨といい他の板で暴れる馬鹿はなんだろうな。
ここでやればいいのに。 MaixシリーズのArduinoでインラインアセンブラではなく
アセンブラソースファイルを含むプログラムを
ビルドできるか試してみました
結論から言うとMaixシリーズのArduinoではArduino IDEでビルドをしても
アセンブラソースファイルがアセンブルされないようでビルドに失敗しました
MaixシリーズのArduinoではPlatform IO IDEを使うと
アセンブラソースファイルを含むプログラムをビルドできます
アセンブラソースファイルはmain.cppと同じsrcフォルダに入れるだけでアセンブルされます
以下はPlatform IO IDEのArduino用のアセンブラデモプログラムです
以前の>>181、>>182のインラインアセンブラで書いたものを少し変更しただけのものです
関数の中の大部分をアセンブラで書く場合はその関数だけ別ソースファイルに分けて
関数全体をアセンブラで書いた方が場合によってはインラインアセンブラを使うよりも簡単かもしれません
Sipeed MaixシリーズのArduino用のRISC-V RV64IMAFCアセンブラ デモプログラム(単精度浮動小数点版)
Platform IOでArduinoのプロジェクトを作成して
main.cpp、asm_int32_float32.sをsrcフォルダに置いてビルドするだけです
main.cpp
https://pastebin.com/fdWr2QJp
asm_int32_float32.s
https://pastebin.com/nw4KyE8B
Sipeed MaixシリーズのArduino用のRISC-V RV64GCアセンブラ デモプログラム(倍精度浮動小数点版)
Platform IOでArduinoのプロジェクトを作成して
main.cpp、asm_int32_double.sをsrcフォルダに置いてビルドするだけです
main.cpp
https://pastebin.com/hRK8jmss
asm_int32_double.s
https://pastebin.com/4La0G7XY
注意:倍精度浮動小数点命令を使うプログラムをビルドする場合は
platformio.iniに下記オプションのいずれかを指定してください
デフォルトのオプションが-march=rv64imafcなので
倍精度浮動小数点命令を使うとエラーが出てビルドできません
build_unflags = -march=rv64imafc
build_flags = -mabi=lp64f -march=rv64gc
build_unflags = -Os -march=rv64imafc
build_flags = -O2 -mabi=lp64f -march=rv64gc
build_unflags = -Os -march=rv64imafc
build_flags = -O3 -mabi=lp64f -march=rv64gc ろくに遊ぶ前にstickV電源入らなくなった
鞄に入れたまま玄関置きっぱが悪かったか?
最近氷点下続いてたし >>208
>結論から言うとMaixシリーズのArduinoではArduino IDEでビルドをしても
>アセンブラソースファイルがアセンブルされないようでビルドに失敗しました
アセンブラソースファイルの拡張子を.s(小文字のs)ではなくて
.S(大文字のS)にしたら正常にビルドできました IDEのEclipseもアセンブラの拡張子は大文字の.Sじゃないとアセンブルしてくれないね Maix BitでSipeed RISC-Vデバッガーを使ってデバッグを試したけど
安定しなくてステップ実行するとMaix Bitがすぐフリーズする
やっぱり、デバッガはつかえないが無線LANが使えるMaixduinoの方がいいね
>>159の方法でArduinoでMaixduinoのオンボードのWiFi使えるし Maixduinoの液晶が壊れたけど、また同じの買うしかないのかな?
液晶目的だけならMaixbit買った方がやすいかな 新チップきたな
世界に先駆けて、64ビットRISC-V CPUコア搭載の汎用MPU「RZ/Five」を発表 | Renesas
ttps://www.renesas.com/jp/ja/about/press-room/renesas-pioneers-risc-v-technology-rzfive-general-purpose-mpus-based-64-bit-risc-v-cpu-core シナ製品はシナの中だけで使ってろ。
露中の侵略を応援する気はない。 >>220 うーん・・・チャイナで今現在進行中の方々への侵略行為は許しがたい暴挙だけれど、
今回のウクライナに限ればロシア側にまったく道理が無いというわけでもないらしくてなぁ・・・
ぼくはゆーちゅーぶで、「ウクライナ・オン・ファイヤー 日本語字幕(字幕改正版)」てのを
見て、状況への評価が、だいぶ変わりましたぞ。 第三次世界大戦を起こしたい側がウクライナ問題を煽っているから M5StickV MaixPy MicroPython serial 接続で遊んでたら急に文字化けが増えて
可笑しくなって数十分後に勝手に切断された
再起動しても USB が不明なデバイスになってしまった
PC 再起動したら治るんかこれ
https://www.youtube.com/watch?v=BVaC_OXGt9k >>221
オリバーストーンって名手だろ。
そんな人の映像を見て考え方変えているようじゃまずいのでは。
どうすれば見る人が考え方を変えるかをよく知ってる人だよ。 JDSC AIの活用で、この国は変えられる、(株)JDSC/4418 テンバガー候補
https://jdsc.ai/news/ シニアマーケティングのゆこゆこ、DM等による販促サポートサービスへ JDSCのAIを導入CVRが平均2.4倍 長野県松本市 電力データとAIによるフレイル検知の実証を開始/中部電力
//dime.jp/genre/1380420/ AIであれば知床半島観光船事故の出航判断を誤ることはなかったかもしれない 2022.05.08 @DIME
https://jimin.jp-east-2.storage.api.nifcloud.com/pdf/news/policy/203427_1.pdf デジタル・ニッポン 2022~デジタルによる新しい資本主義への挑戦~ !! 自民党デジタル社会推進本部
//www.smbcnikko.co.jp/products/inv/toshin_lab/column/002.html AI通信 投資対象として「AI」をどう見るか? AI関連企業の成長物語はまだ始まったばかり 官民の積極的な取り組みが加速する 日興
//www.meti.go.jp/policy/it_policy/jinzai/AIutilization.html 中小企業のDXに役立つ「手引き」と「AI導入ガイドブック」0408 経産省
//www.riken.jp/research/labs/aip/#h2Anchor1220421 理研 革新知能統合研究センター 革新的な人工知能基盤技術を開発し、それらを応用する
//special.nikkeibp.co.jp/atclh/NXT/22/laboro_ai0428/ 中長期的に企業価値を高めることに貢献する 株Laboro.AI 日経BP
//cloud.watch.impress.co.jp/docs/special/1405135.html AIにとっては必然のもの? 東芝が推進するMLOps活用の取り組み 大河原克行 0502 機械学習を活用したシステムを開発して運用を開始したあとも、継続的にモニタリングを行い、システム運用や市場環境の変化を通じて再学習や改良、改善を実施し、品質を保つ
//www.okinawatimes.co.jp/articles/-/953511 InnodiskがエッジAIコンピューティング市場に焦点を当てた新ビジネスを発表 220505 沖縄タイムス
//www.nikkei.com/article/DGXZQOUC186WY0Y2A410C2000000/ 熟練者の技をデジタル化 ALGO ARTIS 220503
//www.jcer.or.jp/economic-forecast/2021127.html DX社会の構築なければ、30年代はマイナス成長に 日本経済研究センタ
//www.nikkei.com/article/DGXZQOUC130YI0T10C22A3000000/ ソフトバンク、全社員1.8万人にAI・統計スキル習得求める 0327
//www.nikkei.com/article/DGXZQOUC11C8C0R10C22A4000000/ デジタル人材の育成 日本は7カ国平均の29%を大幅に下回った AWS調査 0419