Lichee Pi nanoにLEDが付かなかったので、手近にあったZ111xP(the0.net)にRT-Threadを載せて試していた、というのがここ数日の話。
とりあえず京东(book.jd.com)から二冊の本、「RT-Thread内核实现与应用开发实战指南 基于STM32」と「嵌入式实时操作系统 RT-Thread设计与实现」を購入してみましたが、あんまり読まずに(って中国語のスキルが無いので読む以前に眺めることしかできない)移植していたりします。なんとなく動くものができたので、とりあえずGitHubに上げてpull requestも投げてみました。さて、これからどうなることやら…
この作業を行っている際に見つけたのですが、OpenBSD-6.5のportsに入っているARMツールチェイン(arm-none-eabi-gcc-linaro-6.3.2017.02p3他)には問題がありますね。-mcpu=cortex-m0を指定して除算や剰余を求めるコードを書くと、何故かThumbではなくARM側のlibgcc(に入っている__aeabi_idivや__aeabi_idivmod等)をリンクしてしまいます。こちらもopenbsd-portsにメールしておいたので直してもらえることを期待したいのですが、OpenBSDが動くプラットフォーム向けのU-Bootがビルドできれば困らない等の理由で放置される可能性もあるかもしれません。
OpenBSDで得た証拠物件はこちら、という訳で今回はDebian9に入っているarm-none-eabi-gcc(5.4.1 20160919)で作業しています。
開発環境に問題があるとは知らなかったため、移植作業には思っていた以上に時間がかかってしまいました。動くはずのコードが動かないとか、rt_kprintf("%x")が動くのにrt_kprintf("%d")は動かないとか、普通に「何なのコレ…?何が起きている…??」ってなりますよ。58.80kg(17:50)