質問: Spresense の Arduino 環境で、NuttX の task_create を使って複数スレッドでプログラムを書いていますが、いくつか疑問がありますので質問をさせてください。質問は二点あります。 (1)task_create 関数で指定するプライオリティは値が大きいほうがプライオリティが高いという理解で正しいでしょうか? (2)Arduino の loop 関数のプライオリティが分かりません。いろいろ試してみたところ 120 位ということまで分かりましたが、正確な値を教えていただけないでしょうか? 以上2点について、ご教示のほど、どうぞよろしくお願いいたします。
回答: ソニーのSPRESENSEサポート担当です。 ご質問の件について回答をさせていただきます。 (1)について、ご推察のとおり大きい値が高いプライオリティとなります。 (2)について、loop関数のプライオリティは"100"となります。 また、プライオリティは1から255までの値を設定することができます。 *プライオリティに関するNuttXの定義(nuttx/include/sys/types.h)* ``` #define SCHED_PRIORITY_MAX 255 #define SCHED_PRIORITY_DEFAULT 100 #define SCHED_PRIORITY_MIN 1 #define SCHED_PRIORITY_IDLE 0 ``` 以上、ご参考になれば幸いです。 今後ともSPRESENSEをどうぞよろしくお願いいたします。 SPRESENSEサポートチーム