02-Feb-2022の続き。
WinnerMicro W806に、OpenBSD上でbinutils+gcc+newlibベースのwm-sdk-w806を構築し、wm_toolを使って書き込むことができていますが…激安中華マイコンでLチカやってみたではwm-sdk-w80xが使われているので、こちらもOpenBSDとbinutils+gcc+newlibによる開発環境が構築できるか試してみることにしました。
wm-sdk-w806と同じ修正と、wm_psram.cのビルドエラーを回避するための修正を行うことでソースコードのコンパイル自体は行えるようになります。しかし、標準入出力関連のライブラリをC-SKY標準のtoolchainに依存しているせいか、lib/w800/以下にあるライブラリは基本的に使えません(リンク時に"/lib/w800/libbtcontroller.a(btc_main.o): in function `hci_dbg_hexstring': D:\work\V1.00.04\src\bt\controller\main/btc_main.c:110: undefined reference to `_printf_d'"などのエラーが発生します)。使えそうなのはせいぜいlibdsp.a(これはwm-sdk-w806と同一のものです)とlibwmsys.aくらいです。
この問題を回避するため、gmake menuconfigのCompile Configurationにあるenable use libを無効化する必要があります。それでもlib/w800/libbtcontroller.aをリンクしようとしてエラーを起こすので、include/wm_config.hにある#define TLS_CONFIG_BLEをCFG_OFFとする必要もあります。
これでgmakeでビルドが通り、bin/w800/以下に各種オブジェクトが得られるところまでは確認できているのですが、現時点ではgmake flashを行うとcan not open serialとエラーが出て書き込めません。wm-sdk-w806では書き込みができている以上、何か些細な問題に引っかかっているようです。
なお、wm-sdk-w806ではApache-2.0ライセンスである旨がきちんと示されていますが、wm-sdk-w80xではライセンスが未定義である点には注意が必要です。56.4kg(05:20)