source: rtos_arduino/trunk/asp_1.9.2/doc/rstr_task.txt@ 136

Last change on this file since 136 was 136, checked in by ertl-honda, 8 years ago

ライブラリとOS及びベーシックなサンプルの追加.

File size: 6.7 KB
Line 
1 TOPPERS Confidential
2 TOPPERSプロジェクト ディスカッションメモ
3 制約タスクの仕様に関する検討
4
5 作成者
6: 高田広章(名古屋大学)
7 最終更新: 2010年8月25日
8
9○メモの位置付け
10
11このドキュメントは,TOPPERS/ASPカーネルに制約タスクを導å…
12¥ã™ã‚‹ãŸã‚ã®ä»•æ§˜
13について検討するものである.
14
15○スタックå…
16±æœ‰ã®æ–¹é‡
17
18すべての制約タスクを1つのスタックで実行する方法もあるが,ASPカーネルに
19対する修正が大きくなるため採用せず,同じ起動時優å…
20ˆåº¦ã‚’持つ制約タスクを
21同一のスタックで実行する方針とする.
22
23○μITRON4.0仕様の制約タスクの仕様について
24
25μITRON4.0仕様における制約タスクの仕様は,次の通りである(μITRON4.0仕
26様 5.2.1節より).
27
28----------------------------------------------------------------------
29制約タスクは,タスクの持つ機能を制限することで,複数のタスクを同一のス
30タック空間を用いて動作させることを可能にし,それによりタスクのスタック
31のためのメモリ領域の削減を図るものである.å…
32·ä½“的には,制約タスクは,通
33常のタスクと比較して以下の制限を持つ.
34
35(a) 待
36ち状æ…
37‹ã«å…
38¥ã‚‹ã“とができない.
39(b) 優å…
40ˆåº¦ã‚’変更することができない.
41(c) タスク生成時の初期優å…
42ˆåº¦ã®æŒ‡å®šã«ï¼Œå¼ã‚’用いることができない.
43(d) タスクのメインルーチンからのリターン以外の方法で,タスクを終了する
44 ことはできない.
45
46タスクが制約タスクであるかどうかは,タスクの生成時に,タスク属性によっ
47て指定する.
48----------------------------------------------------------------------
49
50(a)の制限は本質的である.上の記述は,自動車制御プロファイルの範囲で記述
51してあるために「待
52ち状æ…
53‹ã€ã¨ã—てあるが,ASPカーネルに適用する場合には,
54「広義の待
55ち状æ…
56‹ã€ã¨ã™ã¹ãã§ã‚る.
57
58(b)の制限は,緩めることも可能である.å…
59·ä½“的には,制約タスクの優å…
60ˆåº¦ã‚’,
61起動時優å…
62ˆåº¦ã¨åŒã˜ã‹ï¼Œãã‚Œã‚ˆã‚Šã‚‚高い値に設定することは許してもよい.た
63だし,優å…
64ˆåº¦ã®å¤‰æ›´å¾Œã¯ï¼ŒåŒã˜å„ªå…
65ˆåº¦å†…
66で最高優å…
67ˆé †ä½ã¨ã—なければならない
68ため,chg_priサービスコールとは振舞いが異なることになる.
69
70(c)は,μITRON4.0仕様のコンフィギュレーション手順から来る制限であり,
71TOPPERS新世代カーネルでは必
72要ない.
73
74(d)の制限は,同じ起動時優å…
75ˆåº¦ã‚’持つ制約タスクを同一のスタックで実行する
76方針としたため,取り払っても問題がない.
77
78ここには記載していないが,制約タスクを含むレディキューに対するrot_rdqは,
79制限しなければならない.
80
81○ASPカーネルにおける制約タスクの仕様
82
83上述の検討をふまえて,ASPカーネルにおける制約タスクは,通常のタスクと比
84較して次の制限を持つものとする.
85
86(a) 広義の待
87ち状æ…
88‹ã«å…
89¥ã‚‹ã“とができない
90(b) chg_priによりベース優å…
91ˆåº¦ã‚’変更することができない
92(c) 自タスクのベース優å…
93ˆåº¦ã‚’(起動時優å…
94ˆåº¦ã¨åŒã˜ã‹ãã‚Œã‚ˆã‚Šé«˜ã„値に)変
95 更するサービスコールras_priを新設する
96
97また,対象優å…
98ˆåº¦ã®ä¸­ã®å…
99ˆé ­ã®ã‚¿ã‚¹ã‚¯ãŒåˆ¶ç´„タスクである場合には,rot_rdqは
100発行できないものとする.
101
102以上から仕様をå…
103·ä½“化すると,次のようになる.
104
105(1) CRE_TSKにおいて,タスク属性にTA_RSTRを指定すると,生成されるタスク
106は制約タスクとなる.制約タスクのスタック領域のå…
107ˆé ­ç•ªåœ°ã«NULLを指定した
108場合,同じ起動時優å…
109ˆåº¦ã‚’持つ制約タスクで,同一のスタック領域がå…
110±æœ‰ã•ã‚Œ
111る.
112
113(2) 制約タスクが,自タスクを待
114ち状æ…
115‹ã«ã™ã‚‹å¯èƒ½æ€§ã®ã‚るサービスコールを
116呼び出した場合,E_NOSPTエラーとなる.
117
118(3) 制約タスクを対象として,wup_tsk,iwup_tsk,can_wup,rel_wai,
119irel_wai,sus_tsk,rsm_tskを呼び出した場合,E_NOSPTエラーとなる.
120
121(4) 制約タスクを対象としてchg_priを呼び出した場合,E_NOSPTエラーとなる.
122
123(5) rot_rdq,irot_rdqは,対象優å…
124ˆåº¦ã‚’持つ実行できる状æ…
125‹ã®ã‚¿ã‚¹ã‚¯ã®ä¸­ã§æœ€
126も優å…
127ˆé †ä½ãŒé«˜ã„タスクが制約タスクである場合,E_NOSPTエラーとなる.
128
129(6) 以下の仕様のサービスコールras_priを新設する.
130
131----------------------------------------------------------------------
132ras_pri 自タスクのベース優å…
133ˆåº¦ã®å¼•ãä¸Šã’〔T〕
134
135【C言語API】
136 ER ercd = ras_pri(PRI tskpri)
137
138【パラメータ】
139 PRI tskpri ベース優å…
140ˆåº¦
141
142【リターンパラメータ】
143 ER ercd 正常終了(E_OK)またはエラーコード
144
145【エラーコード】
146 E_CTX コンテキストエラー(非タスクコンテキストからの呼出
147 し,CPUロック状æ…
148‹ã‹ã‚‰ã®å‘¼å‡ºã—)
149 E_PAR パラメータエラー(tskpriが不正)
150 E_ILUSE サービスコール不正使用(tskpriが,自タスクの起動時
151 優å…
152ˆåº¦ã‚ˆã‚Šã‚‚低い場合.tskpriが,自タスクがロックし
153 ているかロックを待
154っている優å…
155ˆåº¦ä¸Šé™ãƒŸãƒ¥ãƒ¼ãƒ†ãƒƒã‚¯ã‚¹
156 の上限優å…
157ˆåº¦ã‚ˆã‚Šã‚‚高い場合)
158
159【機能】
160
161自タスクのベース優å…
162ˆåº¦ã‚’,tskpriで指定した優å…
163ˆåº¦ã«å¤‰æ›´ã™ã‚‹ï¼Žå…
164·ä½“的な振
165舞いは以下の通り.
166
167自タスクのベース優å…
168ˆåº¦ãŒï¼Œtskpriで指定した優å…
169ˆåº¦ã«å¤‰æ›´ã•ã‚Œã‚‹ï¼Žãã‚Œã«ä¼´ã£
170て,自タスクの現在優å…
171ˆåº¦ã‚‚変更される.
172
173自タスクが,優å…
174ˆåº¦ä¸Šé™ãƒŸãƒ¥ãƒ¼ãƒ†ãƒƒã‚¯ã‚¹ã‚’ロックしていない場合には,同じ優
175å…
176ˆåº¦ã®ã‚¿ã‚¹ã‚¯ã®ä¸­ã§æœ€é«˜å„ªå…
177ˆé †ä½ã¨ãªã‚‹ï¼Žè‡ªã‚¿ã‚¹ã‚¯ãŒï¼Œå„ªå…
178ˆåº¦ä¸Šé™ãƒŸãƒ¥ãƒ¼ãƒ†ãƒƒ
179クスをロックしている場合には,自タスクの現在優å…
180ˆåº¦ãŒå¤‰æ›´ã•ã‚Œã‚‹ã“とはな
181く,優å…
182ˆé †ä½ã‚‚変更されない.
183
184tskpriにTPRI_INI(=0)を指定すると,自タスクのベース優å…
185ˆåº¦ãŒï¼Œèµ·å‹•æ™‚優
186å…
187ˆåº¦ã«å¤‰æ›´ã•ã‚Œã‚‹ï¼Ž
188
189tskpriは,TPRI_INIであるか,TMIN_TPRI以上,TMAX_TPRI以下でなければなら
190ない.また,tskpriは,自タスクの起動時優å…
191ˆåº¦ã¨åŒã˜ã‹ãã‚Œã‚ˆã‚Šã‚‚高くなけ
192ればならない.さらに,自タスクが優å…
193ˆåº¦ä¸Šé™ãƒŸãƒ¥ãƒ¼ãƒ†ãƒƒã‚¯ã‚¹ã‚’ロックしてい
194るかロックを待
195っている場合,tskpriは,それらのミューテックスの上限優å…
196ˆ
197度と同じかそれより低くなければならない.
198----------------------------------------------------------------------
199
200以上
Note: See TracBrowser for help on using the repository browser.