ChibiOS
Real Tiem Kernelの一種. 仲間としてFreeRTOSが挙げられる. VESCのファームにも使われている.
- ChibiOS/RT 高性能
- ChibiOS/NIL RTの機能縮小版,コードサイズもコンパクトらしい
SourceForgeからファームはダウンロード可能.GitHubにリポジトリもある.
ChibiOS/HAL Hardware Abstraction Layer (HAL)というのがあるが,STのHALドライバと似たようなもの?でペリフェラル系の関数を抽象化したドライバ郡
ChibiOS/HALはRTOSなしでも動く.OSAL(Operating System Abstraction Layerという部分のおかげで,どのRTOSでも実装可能.
ChibiOS/RT,ChibiOS/NILに関してはそのままで実装可能
動作フローについて
いくらリアルタイムOSと言っても、CPUは一つで、順次実行していくので、そのタスクを実行する関数の内部をいじっても、実質的動くのはすぐその瞬間では無いことに気をつける。RS485などで送信時にGPIOをいじって、送信関数を呼んでその後にGPIOをいじってもその間にすぐ送信されるわけでな無い。 送信完了割り込みとかでGPIOをいじってやる必要がある。
スレッド(Thread)の作り方
ChibiOS/RTでは、
- 静的スレッド
- 動的スレッド
の2種類があるらしく、静的スレッドはコンパイル時にメモリ領域を確保する。動的スレッドは実行中にヒープ領域やメモリプールから確保する。
How to create a thread
Eclipseでビルド,デバッグ
Makefileプロジェクトとしてインポートできる.
OpenOCDでデバッグもできた.
要GNU MCU Eclipse Plugin