FreeRTOSはその名の通り、フリーのリアルタイムOSです。
shuzo-kino.hateblo.jp
前回導入したボードコンフィグArduino-STM32には、これの動作サンプルがついてます。
Arduino IDEの環境だけで実験できるのは喜楽でいいですね。
Lチカさせるだけなら、ここまでの単純さです。
これだと何のありがたみもありませんが、
重要な処理と、まぁ落としても良い処理を同じループでぶん回して不具合がある場合なんかは有効ですね。
//#include <wirish/wirish.h> //#include "libraries/FreeRTOS/MapleFreeRTOS.h" #include <MapleFreeRTOS821.h> static void vLEDFlashTask(void *pvParameters) { for (;;) { vTaskDelay(1000); digitalWrite(PIC13, HIGH); vTaskDelay(50); digitalWrite(PC13, LOW); } } void setup() { // initialize the digital pin as an output: pinMode(PC13, OUTPUT); xTaskCreate(vLEDFlashTask, "Task1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY + 2, NULL); vTaskStartScheduler(); } void loop() { // Insert background code here }
注意点としてライセンスがGPLである事が挙げられます。
商用等々で公開したくない場合は兄弟プロジェクトのOpenRTOSを使う必要があるようです。