(toppers-etrobo 89) Re: サンプルプログラムにおけるタスクの優先度について
Yutaka MATSUBARA
yutaka @ ertl.jp
2017年 4月 25日 (火) 11:58:57 JST
山本様
名古屋大学の松原です。
ご質問ありがとうございます。
> 今回は,サンプルプログラムに関する質問です.
> 前から気にはなっていたのですが,実用上は,とくに問題にならないので,そ
> のままにしていました.
> サンプルプログラムのコンフィグレーション・ファイルを見ると,タスクを定
> 義する場合に,その優先度を(TMIN_APP_TPRIではなく)TMIN_APP_TPRI + 1か
> ら割り当てているのがあります(たとえば,β7でも提供されている
> hwbrickbench,linetrace,test-cpp,test-cycなど).
> これは,何か意図があるのでしょうか.
> たとえば,後で,初期化タスクなどが必要になり,それを追加する場合のこと
> を考えて,そのために,最高の優先度TMIN_APP_TPRIは,空けてあるのだとか.
> ご教示のほど,よろしくお願いします.
特に意図はありません。
あえて言えば,上記で推測されているように,後から別の高優先度タスクを追
加できるようにするということもありますが,優先度は相対的な値として意味
を持ちますので,アプリケーション内のタスク間で適切に優先度の大小を設定
して頂ければ問題ありません。
ちなみに,TMIN_APP_TPRI 自体も,TOPPERSの仕様として決めているものでは
なく,EV3RT独自のマクロになっています。
./target/ev3_gcc/ev3.h
#define TPRI_INIT_TASK (TMIN_TPRI)
#define TPRI_USBMSC (TMIN_TPRI + 1)
#define TPRI_BLUETOOTH_QOS (TMIN_TPRI + 1)
#define TPRI_BLUETOOTH_HIGH (TMIN_TPRI + 2)
#define TPRI_APP_TERM_TASK (TMIN_TPRI + 3)
#define TPRI_EV3_LCD_TASK (TMIN_TPRI + 3)
#define TPRI_EV3_MONITOR (TMIN_TPRI + 4)
#define TPRI_PLATFORM_BUSY (TMIN_TPRI + 5)
#define TPRI_APP_INIT_TASK (TMIN_TPRI + 6)
#define TPRI_EV3_CYC (TMIN_TPRI + 7)
#define TMIN_APP_TPRI (TMIN_TPRI + 8)
※TMIN_TPRI は1
ご参考になれば幸いです。
--
松原豊/名古屋大学