思い立ったきっかけ
ちょっと仕事もひと段落してきて、家で何か電子工作したいなと思っていた今日この頃。どうせなからさわったことがないマルチコアのマイコンでいろいろやってみたいな~と思ったのがきっかけです。
手軽なマルチコアマイコンは何があるか?
組み込み開発の世界では、特にESP32とラズピコ(Raspberry Pi Pico)が有名なマルチコアマイコンとして知られています。価格と機能、情報を比較検討した結果、ラズベリーパイPicoが条件に最も合致していることがわかりました。
■ESP-wroom-32(S3)の特徴
Socのコアは、XtensaLX7(Tensillica)。(現在ケイデンス・デザインシステムに統合。)
デュアルコアだが、命令用のメモリとデータ用のメモリのメモリ空間が分離しており、各々のコアからアクセスできる領域が決まっている。
■ラズベリーパイPicoの特徴
Socのコアは、ARM Cortex-M0+。
この2つのコアは、同じROM,RAM領域にアクセスできる「ホモジニアス(同質)」構成。
Interface誌 2023年7月2024年11月掲載のRTOS trykernel
仕事でもFreeRTOSやITRONを使っており、今回もRTOSありきで作っていきたいと思っていました。ラズベリーパイPicoでもFreeRTOSを使用したサンプルはたくさんありますので、FreeRTOSかな~と思ってたそんな中、不定期購入しているinterface誌で面白い記事を見つけました。
特集「ゼロから作るマルチコアOS」で紹介されていたμT-Kernelベースで作られた豊山 祐一先生作のOSである「try-kernel」です。
TRON系OSのT-Kernelは、OSの仕様書が公開されているため、フルスクラッチでの設計が可能です。try-kernelは、μT-Kernel2.0に準拠しつつ、コード自体はフルスクラッチで作成されており、RTOSの細部まで理解できるのが魅力です。
ライセンスについて
try-kernelの大きな利点の一つは、そのライセンス形態です。MITライセンスの下でオープンソースとして公開されているため、自由に再配布や公開を行うことができます。
一方、オリジナルのμT-Kernelを利用するには、T-Licenseへの契約が必要です。FreeRTOSもMITライセンスですが、try-kernelを選択することで、TRON系OSの学習とオープンな利用の両立が可能になると考えています。
標準規格への準拠
μT-Kernel2.0は「小規模な組込みシステム向けリアルタイムOSのIEEE標準規格」(IEEE 2050-2018)として国際標準規格になっているようです。try-kernelもこれに準拠しているため、標準的な設計思想に基づいたOSを学ぶことができます。この開発過程をGitHubなどで公開する際には、Interface誌2024年11月号の特集「ゼロから作るマルチコアOS」で紹介されたtry-kernelをベースに設計していることを明記する予定です。