source: asp3_wo_tecs/trunk/doc/asp_spec.txt@ 302

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

TECSレスのASP3の開発のため以下のtrunkからコピー
http://dev.toppers.jp/svn/asp3/branches/WO_TECS-3.C.0

File size: 34.6 KB
Line 
1
2 TOPPERS/ASP3カーネルの仕様概要
3
4 対応バージョン: Release 3.0
5 最終更新: 2016年1月10日
6
7このドキュメントは,TOPPERS/ASP3カーネル(TOPPERS/ASPカーネル Release
83.X)の仕様概要について説明したものである.μITRON4.0仕様のスタンダード
9プロファイルに対する拡張および変更箇所を中心に説明するが,TOPPERS/JSPカー
10ネルおよびTOPPERS/ASPカーネルRelease 1.Xからの変更箇所もわかるように説
11明する.
12
13なお,TOPPERS/ASP3カーネルの詳細な仕様については,「TOPPERS第3世代カー
14ネル(ITRON系)統合仕様書」を参ç…
15§ã™ã‚‹ã“と.
16
17----------------------------------------------------------------------
18 TOPPERS/ASP Kernel
19 Toyohashi Open Platform for Embedded Real-Time Systems/
20 Advanced Standard Profile Kernel
21
22 Copyright (C) 2005-2016 by Embedded and Real-Time Systems Laboratory
23 Graduate School of Information Science, Nagoya Univ., JAPAN
24
25 上記著作権者
26は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
27 ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
28 変・再é…
29å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
30 (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
31 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
32 スコード中に含まれていること.
33 (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
34 用できる形で再é…
35å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
36å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
37 者
38マニュアルなど)に,上記の著作権表示,この利用条件および下記
39 の無保証規定を掲載すること.
40 (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
41 用できない形で再é…
42å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
43 と.
44 (a) 再é…
45å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
46マニュアルなど)に,上記の著
47 作権表示,この利用条件および下記の無保証規定を掲載すること.
48 (b) 再é…
49å¸ƒã®å½¢æ…
50‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
51 報告すること.
52 (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
53 害からも,上記著作権者
54およびTOPPERSプロジェクトをå…
55è²¬ã™ã‚‹ã“と.
56 また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
57 由に基づく請求からも,上記著作権者
58およびTOPPERSプロジェクトを
59 å…
60è²¬ã™ã‚‹ã“と.
61
62 本ソフトウェアは,無保証で提供されているものである.上記著作権者
63お
64 よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
65 に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
66 アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
67 の責任を負わない.
68
69 $Id: asp_spec.txt 493 2016-01-10 07:17:13Z ertl-hiro $
70----------------------------------------------------------------------
71
72○目次
73
74・前提となる文章
75・このドキュメントの読み方
76・仕様の概略
77・スタンダードプロファイル外の機能の一部導å…
78¥
79 (1-1) イベントフラグの複数タスク待
80ち
81 (1-2) ミューテックス
82 (1-3) アラームハンドラ
83 (1-4) 割込みサービスルーチン
84 (1-5) 割込み管理機能
85 (1-6) オブジェクトの状æ…
86‹å‚ç…
87§
88・スタンダードプロファイルの機能の一部廃止
89 (2-1) タスク例外処理機能
90 (2-2) メールボックス
91・独自の拡張機能
92 (3-1) タスク終了要求機能
93 (3-2) 優å…
94ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼
95 (3-3) システム時刻の調整
96 (3-4) 同期・通信オブジェクトの再初期化
97 (3-5) 周期通知機能とアラーム通知機能
98 (3-6) タスクとスケジューリング状æ…
99‹ã®å‚ç…
100§
101 (3-7) 起動要求をキューイングしないタスク
102 (3-8) 自タスクの拡張情
103報の参ç…
104§
105 (3-9) 高分解能タイマの参ç…
106§
107 (3-10) カーネル動作状æ…
108‹ã®å‚ç…
109§
110 (3-11) カーネルの終了
111 (3-12) 割込み要求ラインの属性の設定
112 (3-13) 非タスクコンテキスト用のスタック領域の設定
113 (3-14) 終了処理ルーチン
114・μITRON4.0仕様に対する修正
115 (4-1) 非タスクコンテキストから呼び出せるサービスコールの名称
116 (4-2) ITRON標準データ型
117 (4-3) 値が0の定数(オブジェクト属性等)
118 (4-4) カーネルの用いる管理領域の分離と指定方法
119 (4-5) 処理単位とメモリ領域のデータ型
120 (4-6) 割込み処理/例外処理関連の型の定義
121 (4-7) 時間管理関連のデータ型と時間単位
122 (4-8) 処理単位の実行開始/リターン時のシステム状æ…
123‹
124 (4-9) カーネル管理外の割込みの扱いの規定
125 (4-10) CPU例外ハンドラで行える操作
126 (4-11) 非タスクコンテキストからのext_tsk
127 (4-12) 強制待
128ち要求ネストの廃止
129 (4-13) システム時刻の更新機構の扱い
130 (4-14) システム時刻の設定機能のパラメータの変更
131 (4-15) 周期ハンドラの仕様変更
132 (4-16) アプリケーション向けのインクルードファイルの構成
133・システムコンフィギュレーション処理の見直し
134・拡張パッケージのサポート
135・TOPPERS組込みコンポーネントシステム(TECS)の導å…
136¥
137
138○前提となる文書
139
140[1] トロン協会: μITRON4.0仕様,Ver.4.02.00,2004年.
141
142[2] トロン協会: μITRON4.0仕様 保護機能拡張(μITRON4.0/PX仕様),
143 Ver.1.00.00,2002年.
144
145[3] TOPPERSプロジェクト: TOPPERS/JSPカーネル ユーザズマニュアル
146 Release 1.4.3対応,最終更新: 2007年4月23日.
147
148[4] TOPPERSプロジェクト: TOPPERS新世代カーネル統合仕様書,Release
149 1.7.1,最終更新: 2015年5月30日.
150
151[5] TOPPERSプロジェクト: TOPPERS/ASPカーネル ユーザーズマニュアル,
152 Release 1.9.2,最終更新: 2015年2月8日.
153
154[6] TOPPERSプロジェクト: TOPPERS第3世代カーネル(ITRON系)統合仕様書,
155 Release 3.B.0,最終更新: 2015年6月29日.
156
157○このドキュメントの読み方
158
159このドキュメントでは,TOPPERS/ASP3カーネル(TOPPERS/ASPカーネル
160Release 3.X.以下,ASP3カーネル)の仕様の概要について,μITRON4.0仕様の
161スタンダードプロファイルに対してどのような拡張および変更を行ったかとい
162う観点から記述する.また,TOPPERS/JSPカーネル(以下,JSPカーネル)およ
163びTOPPERS/ASPカーネル Release 1.X(以下,ASP1カーネル)との違いについて
164も記述する.
165
166JSPカーネルの仕様は,基本的にはμITRON4.0仕様のスタンダードプロファイル
167に準拠している.μITRON4.0仕様のスタンダードプロファイルに関する記述は,
168明示的に記述しない限り,JSPカーネルにも当てはまる.
169
170ASP1カーネルの仕様は,μITRON4.0仕様のスタンダードプロファイルよりは,
171ASP3カーネルの仕様に近い.そこで,このドキュメントで単に「ASPカーネルで
172は」と記述した場合には,ASP1カーネルとASP3カーネルの両方に当てはまるこ
173とを示す.ASP1カーネルまたはASP3カーネルのいずれかにしか当てはまらない
174場合には,明示的に「ASP1カーネルでは」「ASP3カーネルでは」と記述する.
175
176○仕様の概略
177
178ASPカーネルの仕様は,μITRON4.0仕様のスタンダードプロファイルをベースに,
179様々
180な拡張および変更を加えたものである.
181
182ASPカーネルでは,μITRON4.0仕様で実装
183定義の仕様が多く残っていた割込み処
184理機能について,TOPPERS標準割込み処理モデルに従って,ターゲット定義の仕
185様が最小限になるように規定している.
186
187μITRON4.0仕様では,実装
188独自に用意する静的APIおよびサービスコールの名称
189には,å…
190ˆé ­ã«ãã‚Œãžã‚Œ"V"および"v"の文字を付加するものとしているが,ASPカー
191ネルではこの規定は採用していない.
192
193また,μITRON4.0仕様およびASP1カーネルでは,サービスコール名が"i"で始ま
194るサービスコールを,非タスクコンテキスト専用のサービスコールと呼び,名
195前の通り,非タスクコンテキストのみから呼び出すことができるものとしてい
196るが,ASP3カーネルではこの仕様は採用しておらず,非タスクコンテキストか
197らもタスクコンテキストと同じ名称のサービスコールを呼び出すことにしてい
198る.これに伴い,ASP3カーネルでは,名称が"i"で始まるサービスコールは,
199"i"を取ったサービスコールにマクロ定義している.
200
201○スタンダードプロファイル外の機能の一部導å…
202¥
203
204μITRON4.0仕様には規定されているが,スタンダードプロファイルに含まれな
205い(または,含まれるとは限らない)機能として,ASPカーネルでは,次の機能
206を実装
207している.
208
209(1-1) イベントフラグの複数タスク待
210ち
211
212イベントフラグに対する複数タスク待
213ちの機能(TA_WMUL属性のイベントフラグ)
214を実装
215している.
216
217これにより,イベントフラグのセット(set_flg)で複数のタスクが起床される
218可能性が生じる.多くのタスクを同時に待
219ち解除した場合,カーネル内
220での割
221込み禁止時間が長くなるため,使用にあたっては注意が必
222要である.
223
224(1-2) ミューテックス
225
226ASP3カーネルでは,ミューテックスの機能(優å…
227ˆåº¦ç¶™æ‰¿å±žæ€§ã‚’除く)を実装
228し
229ている.ただし,ミューテックスのロック解除は,ロックしたのと逆順で行わ
230なければならないものと制限している.また,chg_priにおいて,対象タスクが
231同じ優å…
232ˆåº¦ã®ã‚¿ã‚¹ã‚¯ã®ä¸­ã§æœ€ä½Žã®å„ªå…
233ˆé †ä½ã¨ãªã‚‹æ¡ä»¶ã‚’変更している.
234
235ミューテックス機能のために実装
236している静的APIおよびサービスコールは次の
237通りである.
238
239 CRE_MTX ミューテックスの生成(静的API)
240 loc_mtx ミューテックスのロック
241 ploc_mtx ミューテックスのロック(ポーリング)
242 tloc_mtx ミューテックスのロック(タイムアウト付き)
243 unl_mtx ミューテックスのロック解除
244
245なお,ASP1カーネルでは,ミューテックスの機能をミューテックス機能拡張パッ
246ケージでサポートしている.ASP1カーネルのミューテックス機能拡張パッケー
247ジには,ロック解除順に関する制限はない.
248
249(1-3) アラームハンドラ
250
251アラームハンドラ(ASP3カーネルでは,アラーム通知)の機能を実装
252している.
253アラームハンドラ機能のために実装
254している静的APIおよびサービスコールは次
255の通りである.
256
257 CRE_ALM アラームハンドラの生成(静的API)
258 sta_alm アラームハンドラの動作開始
259 stp_alm アラームハンドラの動作停止
260
261(1-4) 割込みサービスルーチン
262
263μITRON4.0仕様のスタンダードプロファイルでは,割込みハンドラと割込みサー
264ビスルーチンのいずれかをサポートすればよいことになっている.JSPカーネル
265では割込みハンドラのみを実装
266しているが,ASPカーネルではその両者
267を実装
268し
269ている.
270
271割込みサービスルーチンの仕様については,TOPPERS標準割込み処理モデルの規
272定に準拠している.ASP3カーネルでは,割込みサービスルーチンを登録するサー
273ビスコールとして,次の静的APIを実装
274している.
275
276 CRE_ISR 割込みサービスルーチンの生成(静的API)
277
278なお,ASP1カーネルでは,割込みサービスルーチンを登録するための静的APIと
279して,ATT_ISRを実装
280している.ASP1カーネルのATT_ISRでは,μITRON4.0仕様
281のATT_ISRに対して,割込みサービスルーチン優å…
282ˆåº¦ã®ãƒ‘ラメータを追加してい
283るが,ASP3カーネルのCRE_ISRもこのパラメータを持っている.
284
285(1-5) 割込み管理機能
286
287μITRON4.0仕様のスタンダードプロファイルに含まれない割込み管理機能とし
288て,次のサービスコールを実装
289している.JSPカーネルでは,これらのサービス
290コールを実装
291するかどうかはターゲット依存となっているが,ASPカーネルでは,
292TOPPERS標準割込み処理モデルの規定に準拠して,ターゲット非依存に実装
293して
294いる.
295
296 dis_int 割込みの禁止
297 ena_int 割込みの許可
298 chg_ipm 割込み優å…
299ˆåº¦ãƒžã‚¹ã‚¯ã®å¤‰æ›´
300 get_ipm 割込み優å…
301ˆåº¦ãƒžã‚¹ã‚¯ã®å‚ç…
302§
303
304ASP3カーネルでは,dis_intとena_intは,CPUロック状æ…
305‹ã§ã‚‚,非タスクコンテ
306キストからも呼び出せるものとしている.ASP1カーネルでは,CPUロック状æ…
307‹ã‹
308らは呼び出せるが,非タスクコンテキストからは呼び出せない.
309
310(1-6) オブジェクトの状æ…
311‹å‚ç…
312§
313
314デバッグ時向けの機能として,オブジェクトの状æ…
315‹å‚ç…
316§æ©Ÿèƒ½ã‚’実装
317している.
318å…
319·ä½“的には,次のサービスコールを実装
320している.
321
322 ref_tsk タスクの状æ…
323‹å‚ç…
324§
325 ref_sem セマフォの状æ…
326‹å‚ç…
327§
328 ref_flg イベントフラグの状æ…
329‹å‚ç…
330§
331 ref_dtq データキューの状æ…
332‹å‚ç…
333§
334 ref_mtx ミューテックスの状æ…
335‹å‚ç…
336§
337 ref_mpf 固定長メモリプールの状æ…
338‹å‚ç…
339§
340 ref_cyc 周期ハンドラの状æ…
341‹å‚ç…
342§
343 ref_alm アラームハンドラの状æ…
344‹å‚ç…
345§
346
347○スタンダードプロファイルの機能の一部廃止
348
349μITRON4.0仕様のスタンダードプロファイルに含まれる機能の中で,ASP3カー
350ネルでは次の機能は実装
351していない.なお,ASP1カーネルでは,これらの機能
352を実装
353している.
354
355(2-1) タスク例外処理機能
356
357ASP3カーネルでは,実装
358が複雑化するのに対して,使用頻度が低いことから,
359タスク例外処理機能は実装
360していない.å…
361·ä½“的には,μITRON4.0仕様のスタン
362ダードプロファイルに含まれる静的APIおよびサービスコールの中で,次の静的
363APIおよびサービスコールを実装
364していない.
365
366 DEF_TEX タスク例外処理ルーチンの定義(静的API)
367 ras_tex タスク例外処理の要求
368 dis_tex タスク例外処理の禁止
369 ena_tex タスク例外処理の許可
370 sns_tex タスク例外処理禁止状æ…
371‹ã®å‚ç…
372§
373
374ASP1カーネルでは,上に加えて,次のサービスコールも実装
375しているが,ASP3
376カーネルでは実装
377していない.
378
379 ref_tex タスク例外処理の状æ…
380‹å‚ç…
381§
382
383なお,ASP3カーネルでは,タスク例外処理機能を廃止する代わりに,後述のタ
384スク終了要求機能を実装
385している.
386
387(2-2) メールボックス
388
389ASP3カーネルでは,保護機能対応カーネルとの互換性を重視し,メールボック
390スの機能は実装
391していない.å…
392·ä½“的には,μITRON4.0仕様のスタンダードプロ
393ファイルに含まれる静的APIおよびサービスコールの中で,次の静的APIおよび
394サービスコールを実装
395していない.
396
397 CRE_MBX メールボックスの生成(静的API)
398 snd_mbx メールボックスへの送信
399 rcv_mbx メールボックスからの受信
400 prcv_mbx メールボックスからの受信(ポーリング)
401 trcv_mbx メールボックスからの受信(タイムアウトあり)
402
403ASP1カーネルでは,上に加えて,次のサービスコールも実装
404しているが,ASP3
405カーネルでは実装
406していない.
407
408 ref_mbx メールボックスの状æ…
409‹å‚ç…
410§
411
412なお,メールボックスの機能は,データキューおよび優å…
413ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã®æ©Ÿ
414能で代替することができる.
415
416○独自の拡張機能
417
418ASPカーネルでは,μITRON4.0仕様に対する独自の拡張機能として,次の機能を
419実装
420している.
421
422(3-1) タスク終了要求機能
423
424ASP3カーネルでは,タスク例外処理機能に代えて,タスク終了要求機能を追加
425している.å…
426·ä½“的には,次のサービスコールを実装
427している.
428
429 ras_ter タスクの終了要求
430 dis_ter タスク終了の禁止
431 ena_ter タスク終了の許可
432 sns_ter タスク終了禁止状æ…
433‹ã®å‚ç…
434§
435
436また,ref_tskで参ç…
437§ã§ãã‚‹æƒ…
438報に,タスク終了要求状æ…
439‹ï¼ˆraster)とタスク終
440了禁止状æ…
441‹ã‹å¦ã‹ï¼ˆdister)を追加している.
442
443タスクに対して終了要求が出された場合,待
444ち状æ…
445‹ã«å…
446¥ã‚‹ã™ã¹ã¦ã®ã‚µãƒ¼ãƒ“スコー
447ルから,E_RASTERが返る可能性がある.E_RASTERは,μITRON4.0仕様やASP1カー
448ネルでは定義していないエラーコードである.
449
450(3-2) 優å…
451ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼
452
453優å…
454ˆåº¦ä»˜ãã®ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã®æ©Ÿèƒ½ã‚’追加している.優å…
455ˆåº¦ä»˜ããƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼æ©Ÿ
456能のために実装
457している静的APIおよびサービスコールは次の通りである.
458
459 CRE_PDQ 優å…
460ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã®ç”Ÿæˆ
461 snd_pdq 優å…
462ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã¸ã®é€ä¿¡
463 psnd_pdq 優å…
464ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã¸ã®é€ä¿¡ï¼ˆãƒãƒ¼ãƒªãƒ³ã‚°ï¼‰
465 tsnd_pdq 優å…
466ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã¸ã®é€ä¿¡ï¼ˆã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã‚り)
467 rcv_pdq 優å…
468ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã‹ã‚‰ã®å—ä¿¡
469 prcv_pdq 優å…
470ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã‹ã‚‰ã®å—信(ポーリング)
471 trcv_pdq 優å…
472ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã‹ã‚‰ã®å—信(タイムアウトあり)
473 ref_pdq 優å…
474ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã®çŠ¶æ…
475‹å‚ç…
476§
477
478ここで,優å…
479ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã«è“„積されたデータの数が多い場合,優å…
480ˆåº¦ãƒ‡ãƒ¼
481タキューへのデータの送信を行うサービスコール(snd_pdq,psnd_pdq,
482tsnd_pdq)の処理時間が長くなり,カーネル内
483での割込み禁止時間が長くなる
484ため,使用にあたっては注意が必
485要である.
486
487(3-3) システム時刻の調整
488
489ASP3カーネルでは,システム時刻を調整するための機能を追加している.この
490機能のためのサービスコールは次の通りである.
491
492 adj_tim システム時刻の調整
493
494(3-4) 同期・通信オブジェクトの再初期化
495
496同期・通信オブジェクトを初期状æ…
497‹ã«æˆ»ã™ãŸã‚ã®æ©Ÿèƒ½ã¨ã—て,次のサービスコー
498ルを実装
499している.
500
501 ini_sem セマフォの再初期化
502 ini_flg イベントフラグの再初期化
503 ini_dtq データキューの再初期化
504 ini_pdq 優å…
505ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã®å†åˆæœŸåŒ–
506 ini_mtx ミューテックスの再初期化
507 ini_mpf 固定長メモリプールの再初期化
508
509同期・通信オブジェクトの再初期化の際に,その同期・通信オブジェクトに対
510して待
511ち状æ…
512‹ã¨ãªã£ã¦ã„たタスクはすべて待
513ち解除される.待
514ち解除されたタ
515スクに対しては,E_DLTを返す.E_DLTは,μITRON4.0仕様のスタンダードプロ
516ファイルでは使用していないエラーコードである.
517
518そのため,これらのサービスコールにより,複数のタスクが起床される可能性
519が生じる.多くのタスクを同時に待
520ち解除した場合,カーネル内
521での割込み禁
522止時間が長くなるため,使用にあたっては注意が必
523要である.
524
525同期・通信オブジェクトを再初期化する際に,アプリケーション側との整合性
526を保つのはアプリケーションの責任である.例えば,固定長メモリプールを再
527初期化する際には,そこから獲得済みのメモリブロックをそれ以降使わないよ
528うにしなければならない.
529
530(3-5) 周期通知機能とアラーム通知機能
531
532ASP3カーネルでは,周期ハンドラ機能とアラームハンドラ機能を拡張し,周期
533通知機能とアラーム通知機能を実装
534している.
535
536これによって,次の静的APIのパラメータと機能を変更している.
537
538 CRE_CYC 周期通知の生成
539 CRE_ALM アラーム通知の生成
540
541(3-6) タスクとスケジューリング状æ…
542‹ã®å‚ç…
543§
544
545ASP3カーネルでは,タスクとスケジューリング状æ…
546‹ã‚’参ç…
547§ã™ã‚‹ãŸã‚ã®æ©Ÿèƒ½ã¨ã—
548て,次のサービスコールを実装
549している.
550
551 get_tst タスク状æ…
552‹ã®å‚ç…
553§
554 get_lod 実行できるタスクの数の参ç…
555§
556 get_nth 指定した優å…
557ˆé †ä½ã®ã‚¿ã‚¹ã‚¯IDの参ç…
558§
559
560(3-7) 起動要求をキューイングしないタスク
561
562ASP3カーネルでは,起動要求をキューイングしないタスクを表すタスク属性と
563して,TA_NOACTQUEを追加している.
564
565(3-8) 自タスクの拡張情
566報の参ç…
567§
568
569ライブラリ等の中で用いることを想定して,自タスクの拡張情
570報を参ç…
571§ã™ã‚‹ãŸ
572めのサービスコールを追加している.
573
574 get_inf 自タスクの拡張情
575報の参ç…
576§
577
578(3-9) 高分解能タイマの参ç…
579§
580
581ASP3カーネルでは,カーネル上で動作するタスクやカーネル自身の性能評価に
582用いることを目的に,高分解能タイマを参ç…
583§ã™ã‚‹ãŸã‚ã®ã‚µãƒ¼ãƒ“スコールを追加
584している.
585
586 fch_hrt 高分解能タイマの参ç…
587§
588
589なお,ASP1カーネルでは,性能評価に用いるためのサービスコールとして,
590get_utm(性能評価用システム時刻参ç…
591§ï¼‰ã‚’サポートしている.またJSPカーネ
592ルでは,同じ目的のサービスコールとして,vxget_timをサポートしている.
593
594(3-10) カーネル動作状æ…
595‹ã®å‚ç…
596§
597
598カーネル上で動作するタスクから呼び出される関数が,カーネルの初期化完了
599前や終了処理開始後にも呼び出される可能性がある場合には,その中でカーネ
600ルのサービスコールを呼び出せるかを判別することが必
601要となる.この機能の
602ためのサービスコールは次の通りである.
603
604 sns_ker カーネル非動作状æ…
605‹ã®å‚ç…
606§
607
608なお,JSPカーネルでは,独自の拡張機能としてこの機能をサポートしているが,
609サービスコールの名称はvsns_iniとしている.
610
611(3-11) カーネルの終了
612
613致命的なエラーが起こった場合などにカーネルを終了させるためのサービスコー
614ルを追加している.
615
616 ext_ker カーネルの終了
617
618ASPカーネルではこのサービスコールからリターンすることはないが,保護機能
619を持ったカーネルではエラーリターンする可能性があるため,返り値の型をER
620としている.
621
622JSPカーネルでは,kernel_exitという名称で,実質的にこの機能を用意してい
623る.また,カーネルの実行を開始する関数を,JSPカーネルではkernel_startと
624いう名称としていたのを,ASPカーネルではsta_kerに名称変更した.sta_kerは,
625サービスコールとは見なさないことにしている.
626
627(3-12) 割込み要求ラインの属性の設定
628
629割込み要求ラインの属性を設定する機能として,TOPPERS標準割込み処理モデル
630で規定された次の静的APIを実装
631している.
632
633 CFG_INT 割込み要求ラインの属性の設定(静的API)
634
635(3-13) 非タスクコンテキスト用のスタック領域の設定
636
637非タスクコンテキスト用のスタック領域のå…
638ˆé ­ç•ªåœ°ã¨ã‚µã‚¤ã‚ºã‚’指定するための
639静的APIを新設している.また,この静的APIにより,非タスクコンテキスト用
640のスタック領域のサイズのみを指定することもできる.
641
642 DEF_ICS 非タスクコンテキスト用のスタック領域の設定
643
644(3-14) 終了処理ルーチン
645
646システムの終了時に呼び出される終了処理ルーチンを登録するための機能をサ
647ポートしている.この機能のための静的APIは次の通りである.
648
649 ATT_TER 終了処理ルーチンの追加(静的API)
650
651なお,JSPカーネルでは,独自の拡張機能としてこの機能をサポートしているが,
652静的APIの名称はVATT_TERとしている.
653
654○μITRON4.0仕様に対する変更
655
656ASPカーネルでは,μITRON4.0仕様での規定に対して,次の変更を行っている.
657
658(4-1) 非タスクコンテキストから呼び出せるサービスコールの名称
659
660ASP3カーネルでは,非タスクコンテキスト専用のサービスコールの概念を廃止
661し,非タスクコンテキストからも,タスクコンテキストと同じ名称のサービス
662コールを呼び出すことにしている.これに伴い,名称が"i"で始まるサービスコー
663ルは,"i"を取ったサービスコールにマクロ定義している.
664
665(4-2) 標準データ型
666
667ITRON標準データ型の中で,C90やC99にそれに相当するものがある場合には,
668C90やC99に準拠した型の名称に変更している.例えば,サイズの決まった整数
669型(B,H,Wなど)はC99に準拠した型の名称(int8_t,int16_t,int32_tなど)
670に,VP_INTはC99準拠のintptr_tに,INTとUINTはC99の型名と相性が良いint_t
671とuint_tに,BOOLをbool_tに,それぞれ変更した.VPは,void *と等価である
672ため,用意しないことにした.逆に,いくつかのデータ型を新たに用いること
673にした.さらにASP3カーネルでは,SIZEはC90準拠のsize_tに変更した.
674
675なお,ITRON標準データ型(B,H,Wなど)を必
676要とするアプリケーションのた
677めに,itron.hを用意している.
678
679(4-3) 値が0の定数(オブジェクト属性等)
680
681コーディングミスを防ぐために,値が0の定数の扱いを見直した.オブジェクト
682属性(TA_TFIFO等)については,値が0のものはデフォルト扱いして廃止し,定
683義をitron.hに移した.値が0のサービスコールの動作モード(TWF_ANDW)やオ
684ブジェクトの状æ…
685‹ï¼ˆTCYC_STP等)については,値を変更した.
686
687(4-4) カーネルの用いる管理領域の分離と指定方法
688
689μITRON4.0/PX仕様において導å…
690¥ã•ã‚ŒãŸÎ¼ITRON4.0仕様に対する変更として,カー
691ネルの用いる管理領域の分離に関する仕様を一部採用している.
692
693まず,固定長メモリプールにおいて,カーネルの用いる管理領域を分離するこ
694とに伴い,固定長メモリプールを生成する静的API(CRE_MPF)のパラメータに,
695固定長メモリプール管理領域のå…
696ˆé ­ç•ªåœ°ï¼ˆmpfmb)を追加している.
697
698また,これに整合させるために,データキューを生成する静的API(CRE_DTQ)
699の最後のパラメータの名称を,データキュー管理領域のå…
700ˆé ­ç•ªåœ°ï¼ˆdtqmb)に変
701更している.
702
703JSPカーネルでは,カーネルの用いる領域はすべて自動割付けのみをサポートし
704ているが,ASPカーネルでは,タスクのスタック領域と固定長メモリプールの固
705定長メモリプール領域については,静的APIでå…
706ˆé ­ç•ªåœ°ã‚’指定することもできる
707ものとしている(自動割付けもサポートしている).
708
709(4-5) 処理単位とメモリ領域のデータ型
710
711処理単位のエントリ番地のデータ型を,パラメータが反映されないFP型ではな
712く,処理単位毎の専用のデータ型としている.例えば,タスクのメインルーチ
713ンのå…
714ˆé ­ç•ªåœ°ã®ãƒ‡ãƒ¼ã‚¿åž‹ã‚’TASK型,割込みサービスルーチンのå…
715ˆé ­ç•ªåœ°ã®ãƒ‡ãƒ¼
716タ型をISR型としている.
717
718また,スタック領域と固定長メモリプール領域のå…
719ˆé ­ç•ªåœ°ã®ãƒ‡ãƒ¼ã‚¿åž‹ã‚’,それ
720ぞれSTK_T型とMPF_T型としている.
721
722(4-6) 割込み処理/例外処理関連の型の定義
723
724割込みハンドラ番号の型(INHNO),割込み番号の型(INTNO),CPU例外ハンド
725ラ番号の型(EXCNO)を,ターゲット非依存部で,いずれもuint_t型に定義して
726いる.
727
728(4-7) 時間管理関連のデータ型と時間単位
729
730ASP3カーネルでは,システム時刻(SYSTIM型),相対時間(RELTIM型),タイ
731ムアウト時間(TMO型)の時間単位を,マイクロ秒に変更した.また,SYSTIMの
732サイズは64ビット(ただし,64ビットの整数型がサポートされていないターゲッ
733トでは32ビット),RELTIMとTMOのサイズは32ビットと規定した.さらに,TMO
734は符号無し整数型に変更した.
735
736μITRON4.0仕様のスタンダードプロファイルとASP1カーネルでは,これらの時
737間の時間単位はミリ秒である.また,サイズは実装
738定義(最低の長さは規定さ
739れている)となっている.
740
741(4-8) 処理単位の実行開始/リターン時のシステム状æ…
742‹
743
744処理単位の実行開始/リターン時のシステム状æ…
745‹ã«ã¤ã„て,μITRON4.0仕様に
746おいて実装
747依存であった点を厳密に規定し,ターゲットによる違いが生じない
748ようにしている.
749
750ASP1カーネルとASP3カーネルでは,割込みサービスルーチンとタイムイベント
751ハンドラの実行開始/リターン時の割込み優å…
752ˆåº¦ãƒžã‚¹ã‚¯ã®æ‰±ã„が異なっている.
753
754(4-9) カーネル管理外の割込みの扱いの規定
755
756JSPカーネルではターゲット毎に定めていたカーネル管理外の割込みの扱いを,
757ASPカーネルでは,TOPPERS標準割込み処理モデルの規定に準拠して,可能な範
758囲で標準化している.ただし,NMI以外にカーネル管理外の割込みを設けるかや,
759どの割込み優å…
760ˆåº¦ã‚ˆã‚Šé«˜ã„ものをカーネル管理外とするかは,ターゲット毎に
761定めることとしている.
762
763(4-10) CPU例外ハンドラで行える操作
764
765CPU例外ハンドラで行える操作については,TOPPERS標準割込み処理モデルに準
766拠することとし,μITRON4.0仕様には従っていない.そのためのサービスコー
767ルとして,次のサービスコールを実装
768している.
769
770 xsns_dpn CPU例外発生時のディスパッチ保留状æ…
771‹ã®å‚ç…
772§
773
774ASP1カーネルでは,上に加えて,CPU例外発生時のタスク例外処理保留状æ…
775‹ã‚’参
776ç…
777§ã™ã‚‹ã‚µãƒ¼ãƒ“スコール(xsns_xpn)も実装
778しているが,ASP3カーネルでは,タ
779スク例外処理機能の廃止に伴って廃止した.
780
781(4-11) 非タスクコンテキストからのext_tsk
782
783非タスクコンテキストからext_tskが呼ばれた場合,E_CTXエラーを返すものと
784した.これにともなって,ext_tskをリターンする可能性があるものとし,返り
785値の型をERとした.
786
787(4-12) 強制待
788ち要求ネストの廃止
789
790強制待
791ち要求をネストする機能を廃止した.言い換えると,強制待
792ち要求ネス
793ト数の最大値を1に固定した.これに伴い,frsm_tskは廃止し,itron.hにおい
794てfrsm_tskをrsm_tskにマクロ定義している.ref_tskで参ç…
795§ã§ãã‚‹æƒ…
796報から,
797強制待
798ち要求ネスト数(suscnt)を削除した.また,TMAX_SUSCNTの定義を
799itron.hに移した.
800
801(4-13) システム時刻の更新機構の扱い
802
803システム時刻を更新する機構をカーネル内
804部に持つ扱いとし,サービスコール
805としてのisig_timは廃止した.
806
807(4-14) システム時刻の設定機能のパラメータの変更
808
809ASP3カーネルでは,set_tim(システム時刻の設定)のパラメータを,システム
810時刻へのポインタを渡す仕様から,システム時刻そのものを渡す仕様に変更し
811た.
812
813なお,ASP1カーネルでは,set_timはサポートしていない.
814
815(4-15) 周期ハンドラの仕様変更
816
817sta_cycを呼び出した後,最初に周期ハンドラ(ASP3カーネルでは周期通知)が
818起動される時刻を変更した.μITRON4.0仕様では,sta_cycを呼び出してから周
819期ハンドラの起動周期で指定した相対時間後としているが,ASPカーネルでは,
820起動位相で指定した相対時間後としている.
821
822(4-16) アプリケーション向けのインクルードファイルの構成
823
824カーネルを呼び出すアプリケーションからはkernel.hを,SILを呼び出すアプリ
825ケーションからはsil.hをインクルードすればよいものとしている.
826
827また,kernel.hとsil.hのå…
828±é€šéƒ¨åˆ†ã¨ã—てt_stddef.hを用意し,カーネルとSIL
829のいずれも呼び出さないアプリケーションからは,t_stddef.hをインクルード
830すればよいものとしている.itron.hは,μITRON4.0仕様との互換性が必
831要な場
832合にインクルードするものとしている.
833
834JSPカーネルにおけるt_services.hとs_services.hは廃止した.
835
836○システムコンフィギュレーション処理の見直し
837
838システムコンフィギュレーション処理をå…
839¨é¢çš„に見直し,システムコンフィギュ
840レーションファイル中におけるC言語のプリプロセッサディレクティブの扱いと
841静的APIのパラメータの分類を変更した.
842
843○拡張パッケージのサポート
844
845ASP3カーネルでは,いくつかの拡張機能を実装
846するために,次の拡張パッケー
847ジをサポートしている.
848
849・ドリフト調整機能拡張パッケージ
850・メッセージバッファ機能拡張パッケージ
851・オーバランハンドラ機能拡張パッケージ
852・タスク優å…
853ˆåº¦æ‹¡å¼µãƒ‘ッケージ
854・制約タスク拡張パッケージ
855・サブ優å…
856ˆåº¦æ©Ÿèƒ½æ‹¡å¼µãƒ‘ッケージ
857・動的生成機能拡張パッケージ
858
859ASP1カーネルでは,これらの拡張パッケージ以外に,ミューテックス機能拡張
860パッケージもサポートしているが,ASP3カーネルでは,ミューテックスは標準
861でサポートしていることから,拡張パッケージとしては廃止した.ASP1カーネ
862ルでは,ドリフト調整機能拡張パッケージとサブ優å…
863ˆåº¦æ©Ÿèƒ½æ‹¡å¼µãƒ‘ッケージは
864サポートしていない.
865
866○TOPPERS組込みコンポーネントシステム(TECS)の導å…
867¥
868
869デバイスドライバやシステムログ機能などのシステムサービスを,TOPPERS組込
870みコンポーネントシステム(TECS)を用いて実装
871している.また,カーネルオ
872ブジェクトをTECSのコンポーネントとして扱えるようにしている.
873
874なお,ASP1カーネルでは,TECSに対応するための修正は,TECSのé…
875å¸ƒãƒ‘ッケー
876ジに含まれており,ASP1カーネルのé…
877å¸ƒãƒ‘ッケージには含まれていない.
878
879以上
Note: See TracBrowser for help on using the repository browser.