leOS-Arduino用のマルチタスクカーネル

イタリアの開発者Leonardo Milianiは 、Arduino用の小さなマルチタスクカーネルであるleOS(小さな組み込みオペレーティングシステム)のソースをオープンアクセスで公開しました。 彼のブログでは次のように書いています。

正直に言うと、leOSは実際にはリアルタイムオペレーティングシステム(RTOS)とスケジューラの単純なプロトタイプの中間にあるものだと言う方が正しいはずです。 [...]

leOSは、過度のCPU時間を必要としない単純なタスクを実行できますが、ユーザーがタスクをメインループから実行させたいすべての状況で役立ちます。



leOSカーネルは、指定された時間間隔に従って、ユーザー定義関数への呼び出しをディスパッチします。 これを行うために、leOSはハードウェアTimer2を使用してユーザー関数の呼び出し間隔をカウントするため、ピンD3およびD11のPWM機能へのアクセスは失われます。 カーネルは64ビットカウンターを使用するため、スケジューラは584,942,417年後にのみオーバーフローします。



leOSを使用するには、ライブラリを接続し、クラスのインスタンスを作成する必要があります。

#include "leOS.h" leOS myOS;
      
      





ユーザー定義関数をスケジューラに接続するには、 addTask()メソッドを使用します

 void setup() { myOS.begin(); myOS.addTask(myFunction, interval); .... }
      
      





詳細とleOSソースコードは、 こちらで確認できます



All Articles