12ステップで作る 組込みOS自作入門で開発している組込みOS「KOZOS」を,micro:bitに移植しました.

書籍中では12ステップに分けて開発していくのですが,12ステップぶんのソースコードをすべて移植してあるので,書籍の内容をmicro:bitでなぞることができます.

 

KOZOSのmicro:bit版を公開しました!

 

micro:bit V2 に対応しています.(Cortex-M4)

Cortex-M4の特殊機能みたいなのは使っていないので,おそらくCortex-M3でも動作します.

micro:bitって,県によっては学校で全員に配られたりとかしているようですし遊びで買ったのが家に1枚あるという人もけっこういますし買っても2500円くらいなので,手元にあるmicro:bitでちょっとした組込みOSが動いて実験できる!(しかも12ステップ本という参考書もある!)というのは,組込みシステムの学習にけっこう良いのではと思います.

 

Cortex-M3/M4はOSカーネルなども可能な限りC言語で書けるように工夫されているので,KOZOSも工夫すればアセンブリ部分をかなり削減して共通化などもしてスッキリさせられたのですが,あえてそうせずに書籍のオリジナルコードをなるべく保つようにして移植しました.(書籍の内容をなるべくそのままなぞれるようにするため)

あと,あまり Cortex-M4に依存しすぎて,他CPUに移植しにくくなるのを避けたかったというのもあります.(フツーのマイコンならたいていこういう機能はあるよね,という範囲で書いています)

 

とくに,スレッド用のスタック(PSP)とEXC_RETURNによる復帰をうまく使えば工夫できそうだったのですが,あえてそうしていません.(スタックはMSPしか使っていません)

また,割り込み優先度もすべて0として,多重割り込みの考慮を無くしています.(これはオリジナルコードもそうですが)

 

ついでに追加のステップとして,ROM化nrfx対応もしています.nrfx対応では,公式のSDKが持っているデバイスドライバを使えるようにしているので,いろんなデバイスを動かすことができるようになると思います.

 

おかげでCortex-M3/M4のことがけっこうわかってきました.

気が向いたら12ステップ本のmicro:bit版を書きたいです.