Closed kamiyaowl closed 4 years ago
これは解決したのでクローズする
つもりだったが、そもそもどこでメインプログラムを動かすか決めていなかったので今日の検証メモ
簡単なアプリケーションのバインドはbindgenで出来た
mbedが吐き出したライブラリ全体のビルドはかなり大変そう
cpp側の中間ファイルの設定が良くないらしくbd format判定される問題もある
簡単なものは動かせる
structの中にrustのstructを内包したものを入れるとうまく動作しない
cbindgenがまだ完全にサポートしていないような気もしているが、こちらのほうがまだ見込みがありそう
どうあがいてもすべてrustで書かない限りは、c言語との相互運用周辺はunsafeが多くなってしまいそう cに構造体を知らせずに動作だけ返すような(wasmと同じような)方式にした場合、ヒープが使えない以上エミュ本体をstatic mutとして配置せざるを得ない(fbはcからポインタを貰う
エミュ本体の構造体サイズがわかるなら、それすらc本体に領域取らせて...とか出来はするけど、結局安全なプログラミングは壊れてしまうのね...
no_stdビルドとかそのあたりを解決する。semihosting printとかができればひとまず良しとする?