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