
		TOPPERS/ASP3カーネルの仕様概要

		対応バージョン: Release 3.7
		最終更新: 2026年5月8日

このドキュメントは，TOPPERS/ASP3カーネル（TOPPERS/ASPカーネル Release
3.X）の仕様概要について説明したものである．μITRON4.0仕様のスタンダード
プロファイルに対する拡張および変更箇所を中心に説明するが，TOPPERS/JSPカー
ネルおよびTOPPERS/ASPカーネルRelease 1.Xからの変更箇所もわかるように説
明する．

なお，TOPPERS/ASP3カーネルの詳細な仕様については，「TOPPERS第3世代カー
ネル（ITRON系）統合仕様書」を参照すること．

----------------------------------------------------------------------
 TOPPERS/ASP Kernel
     Toyohashi Open Platform for Embedded Real-Time Systems/
     Advanced Standard Profile Kernel

 Copyright (C) 2005-2026 by Embedded and Real-Time Systems Laboratory
             Graduate School of Information Science, Nagoya Univ., JAPAN
 
 上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
 ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
 変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
 (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
     権表示，この利用条件および下記の無保証規定が，そのままの形でソー
     スコード中に含まれていること．
 (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
     用できる形で再配布する場合には，再配布に伴うドキュメント（利用
     者マニュアルなど）に，上記の著作権表示，この利用条件および下記
     の無保証規定を掲載すること．
 (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
     用できない形で再配布する場合には，次のいずれかの条件を満たすこ
     と．
   (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
       作権表示，この利用条件および下記の無保証規定を掲載すること．
   (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
       報告すること．
 (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
     また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
     免責すること．
 
 本ソフトウェアは，無保証で提供されているものである．上記著作権者お
 よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
 に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
 アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
 の責任を負わない．
 
 $Id: asp_spec.txt 1878 2026-05-08 05:14:20Z ertl-hiro $
----------------------------------------------------------------------

○目次

・参考文献
・ドキュメントの位置付け
・ASP3カーネル仕様の概略
・スタンダードプロファイル外の機能の一部導入
	(1-1) イベントフラグの複数タスク待ち
	(1-2) ミューテックス
	(1-3) アラームハンドラ
	(1-4) 割込みサービスルーチン
	(1-5) 割込み管理機能
	(1-6) オブジェクトの状態参照
・スタンダードプロファイルの機能の一部廃止
	(2-1) タスク例外処理機能
	(2-2) メールボックス
・独自の拡張機能
	(3-1) タスク終了要求機能
	(3-2) 優先度データキュー
	(3-3) システム時刻の調整
	(3-4) 同期・通信オブジェクトの再初期化
	(3-5) 周期通知機能とアラーム通知機能
	(3-6) タスクとスケジューリング状態の参照
	(3-7) 起動要求をキューイングしないタスク
	(3-8) 自タスクの拡張情報の参照
	(3-9) 高分解能タイマの参照
	(3-10) カーネル動作状態の参照
	(3-11) カーネルの終了
	(3-12) 割込み要求ラインの属性の設定
	(3-13) 非タスクコンテキスト用のスタック領域の設定
	(3-14) 終了処理ルーチン
	(3-15) 割込み要求を操作する機能
・μITRON4.0仕様に対する修正
	(4-1) 非タスクコンテキストから呼び出せるサービスコールの名称
	(4-2) ITRON標準データ型
	(4-3) 値が0の定数（オブジェクト属性等）
	(4-4) カーネルの用いる管理領域の分離と指定方法
	(4-5) 処理単位とメモリ領域のデータ型
	(4-6) 割込み処理／例外処理関連の型の定義
	(4-7) 時間管理関連のデータ型と時間単位
	(4-8) 処理単位の実行開始／リターン時のシステム状態
	(4-9) カーネル管理外の割込みの扱いの規定
	(4-10) CPU例外ハンドラで行える操作
	(4-11) 非タスクコンテキストからのext_tsk
	(4-12) 強制待ち要求ネストの廃止
	(4-13) システム時刻の更新機構の扱い
	(4-14) システム時刻の設定機能のパラメータ
	(4-15) 周期ハンドラの仕様
	(4-16) 静的APIのパラメータの省略
	(4-17) アプリケーション向けのインクルードファイルの構成
・システムコンフィギュレーション処理の見直し
・拡張パッケージのサポート
・TOPPERS組込みコンポーネントシステム（TECS）の導入

○参考文献

[1] トロン協会: μITRON4.0仕様，Ver.4.02.00，2004年．

[2] トロン協会: μITRON4.0仕様 保護機能拡張（μITRON4.0/PX仕様）,
	Ver.1.00.00，2002年．

[3] TOPPERSプロジェクト: TOPPERS/JSPカーネル ユーザズマニュアル
	Release 1.4.3対応，最終更新: 2007年4月23日．

[4] TOPPERSプロジェクト: TOPPERS新世代カーネル統合仕様書，Release
	1.7.2，最終更新: 2016年2月13日．

[5] TOPPERSプロジェクト: TOPPERS/ASPカーネル ユーザーズマニュアル，
	Release 1.9.3，最終更新: 2017年4月29日．

[6] TOPPERSプロジェクト: TOPPERS第3世代カーネル（ITRON系）統合仕様書，
	Release 3.7.0，最終更新: 2026年5月8日．

○ドキュメントの位置付け

このドキュメントでは，TOPPERS/ASP3カーネル（TOPPERS/ASPカーネル
Release 3.X．以下，ASP3カーネル）の仕様の概要について，μITRON4.0仕様
のスタンダードプロファイルに対してどのような拡張および変更を行ったかと
いう観点から記述する．また，TOPPERS/JSPカーネルの最終版（以下，JSPカー
ネル）およびTOPPERS/ASPカーネル Release 1.Xの最終版（以下，ASP1カーネ
ル）との違いについても記述する．

JSPカーネルの仕様は，基本的にはμITRON4.0仕様のスタンダードプロファイル
に準拠している．μITRON4.0仕様のスタンダードプロファイルに関する記述は，
明示的に記述しない限り，JSPカーネルにも当てはまる．

ASP1カーネルの仕様は，μITRON4.0仕様のスタンダードプロファイルよりは，
ASP3カーネルの仕様に近い．そこで，このドキュメントで単に「ASPカーネルで
は」と記述した場合には，ASP1カーネルとASP3カーネルの両方に当てはまるこ
とを示す．ASP1カーネルまたはASP3カーネルのいずれかにしか当てはまらない
場合には，明示的に「ASP1カーネルでは」「ASP3カーネルでは」と記述する．

○ASP3カーネル仕様の概略

ASPカーネルの仕様は，μITRON4.0仕様のスタンダードプロファイルをベースに，
様々な拡張および変更を加えたものである．

ASPカーネルでは，μITRON4.0仕様で実装定義の仕様が多く残っていた割込み処
理機能について，TOPPERS標準割込み処理モデルに従って，ターゲット定義の仕
様が最小限になるように規定している．

μITRON4.0仕様では，実装独自に用意する静的APIおよびサービスコールの名称
には，先頭にそれぞれ"V"および"v"の文字を付加するものとしているが，ASPカー
ネルではこの規定は採用していない．

また，μITRON4.0仕様およびASP1カーネルでは，サービスコール名が"i"で始ま
るサービスコールを，非タスクコンテキスト専用のサービスコールと呼び，名
前の通り，非タスクコンテキストのみから呼び出すことができるものとしてい
るが，ASP3カーネルではこの仕様は採用しておらず，非タスクコンテキストか
らもタスクコンテキストと同じ名称のサービスコールを呼び出すことにしてい
る．これに伴い，ASP3カーネルでは，名称が"i"で始まるサービスコールは，
"i"を取ったサービスコールにマクロ定義している．

○スタンダードプロファイル外の機能の一部導入

μITRON4.0仕様には規定されているが，スタンダードプロファイルに含まれな
い（または，含まれるとは限らない）機能として，ASPカーネルでは，次の機能
を実装している．

(1-1) イベントフラグの複数タスク待ち

イベントフラグに対する複数タスク待ちの機能（TA_WMUL属性のイベントフラグ）
を実装している．

これにより，イベントフラグのセット（set_flg）で複数のタスクが起床される
可能性が生じる．多くのタスクを同時に待ち解除した場合，カーネル内での割
込み禁止時間が長くなるため，使用にあたっては注意が必要である．

(1-2) ミューテックス

ASP3カーネルでは，ミューテックスの機能（優先度継承属性を除く）を実装し
ている．ただし，ミューテックスのロック解除は，ロックしたのと逆順で行わ
なければならないものと制限している．また，chg_priにおいて，対象タスクが
同じ優先度のタスクの中で最低の優先順位となる条件を変更している．

ミューテックス機能のために実装している静的APIおよびサービスコールは次の
通りである．

	CRE_MTX		ミューテックスの生成（静的API）
	loc_mtx		ミューテックスのロック
	ploc_mtx	ミューテックスのロック（ポーリング）
	tloc_mtx	ミューテックスのロック（タイムアウト付き）
	unl_mtx		ミューテックスのロック解除

なお，ASP1カーネルでは，ミューテックスの機能（優先度継承属性を除く）を
ミューテックス機能拡張パッケージでサポートしている．ASP1カーネルのミュー
テックス機能拡張パッケージには，ロック解除順に関する制限はない．

(1-3) アラームハンドラ

アラームハンドラ（ASP3カーネルでは，アラーム通知）の機能を実装している．
アラームハンドラ機能のために実装している静的APIおよびサービスコールは次
の通りである．

	CRE_ALM		アラームハンドラの生成（静的API）
	sta_alm		アラームハンドラの動作開始
	stp_alm		アラームハンドラの動作停止

(1-4) 割込みサービスルーチン

μITRON4.0仕様のスタンダードプロファイルでは，割込みハンドラと割込みサー
ビスルーチンのいずれかをサポートすればよいことになっている．JSPカーネ
ルでは割込みハンドラのみを実装しているが，ASPカーネルではその両者を実
装している．

割込みサービスルーチンの仕様については，TOPPERS標準割込み処理モデルの
規定に準拠している．ASP3カーネルでは，割込みサービスルーチンを登録する
サービスコールとして，μITRON4.0仕様に規定されていない次の静的APIを実
装している．

	CRE_ISR		割込みサービスルーチンの生成（静的API）

なお，ASP1カーネルでは，割込みサービスルーチンを登録するための静的API
として，μITRON4.0仕様に規定されているATT_ISRを実装している．ASP1カー
ネルのATT_ISRでは，μITRON4.0仕様のATT_ISRに対して，割込みサービスルー
チン優先度のパラメータを追加しているが，ASP3カーネルのCRE_ISRもこのパ
ラメータを持っている．

(1-5) 割込み管理機能

μITRON4.0仕様のスタンダードプロファイルに含まれない割込み管理機能とし
て，次のサービスコールを実装している．JSPカーネルでは，これらのサービス
コールを実装するかどうかはターゲット依存となっているが，ASPカーネルでは，
TOPPERS標準割込み処理モデルの規定に準拠して，ターゲット非依存に実装して
いる．

	dis_int		割込みの禁止
	ena_int		割込みの許可
	chg_ipm		割込み優先度マスクの変更
	get_ipm		割込み優先度マスクの参照

ASP3カーネルでは，dis_intとena_intは，CPUロック状態でも，非タスクコンテ
キストからも呼び出せるものとしている．ASP1カーネルでは，CPUロック状態か
らは呼び出せるが，非タスクコンテキストからは呼び出せない．

(1-6) オブジェクトの状態参照

デバッグ時向けの機能として，オブジェクトの状態参照機能を実装している．
具体的には，次のサービスコールを実装している．

	ref_tsk		タスクの状態参照
	ref_sem		セマフォの状態参照
	ref_flg		イベントフラグの状態参照
	ref_dtq		データキューの状態参照
	ref_mtx		ミューテックスの状態参照
	ref_mpf		固定長メモリプールの状態参照
	ref_cyc		周期ハンドラの状態参照
	ref_alm		アラームハンドラの状態参照

○スタンダードプロファイルの機能の一部廃止

μITRON4.0仕様のスタンダードプロファイルに含まれる機能の中で，ASP3カー
ネルでは次の機能は実装していない．なお，ASP1カーネルでは，これらの機能
を実装している．

(2-1) タスク例外処理機能

ASP3カーネルでは，実装が複雑化するのに対して，使用頻度が低いことから，
タスク例外処理機能は実装していない．具体的には，μITRON4.0仕様のスタン
ダードプロファイルに含まれる静的APIおよびサービスコールの中で，次の静的
APIおよびサービスコールを実装していない．

	DEF_TEX		タスク例外処理ルーチンの定義（静的API）
	ras_tex		タスク例外処理の要求
	dis_tex		タスク例外処理の禁止
	ena_tex		タスク例外処理の許可
	sns_tex		タスク例外処理禁止状態の参照

ASP1カーネルでは，上に加えて，次のサービスコールも実装しているが，ASP3
カーネルでは実装していない．

	ref_tex		タスク例外処理の状態参照

なお，ASP3カーネルでは，タスク例外処理機能を廃止する代わりに，後述のタ
スク終了要求機能を実装している．

(2-2) メールボックス

ASP3カーネルでは，保護機能対応カーネルとの互換性を重視し，メールボック
スの機能は実装していない．具体的には，μITRON4.0仕様のスタンダードプロ
ファイルに含まれる静的APIおよびサービスコールの中で，次の静的APIおよび
サービスコールを実装していない．

	CRE_MBX		メールボックスの生成（静的API）
	snd_mbx		メールボックスへの送信
	rcv_mbx		メールボックスからの受信
	prcv_mbx	メールボックスからの受信（ポーリング）
	trcv_mbx	メールボックスからの受信（タイムアウトあり）

ASP1カーネルでは，上に加えて，次のサービスコールも実装しているが，ASP3
カーネルでは実装していない．

	ref_mbx		メールボックスの状態参照

なお，メールボックスの機能は，データキューおよび優先度データキューの機
能で代替することができる．

○独自の拡張機能

ASPカーネルでは，μITRON4.0仕様に対する独自の拡張機能として，次の機能を
実装している．

(3-1) タスク終了要求機能

ASP3カーネルでは，タスク例外処理機能に代えて，タスク終了要求機能を追加
している．具体的には，次のサービスコールを実装している．

	ras_ter		タスクの終了要求
	dis_ter		タスク終了の禁止
	ena_ter		タスク終了の許可
	sns_ter		タスク終了禁止状態の参照

また，ref_tskで参照できる情報に，タスク終了要求状態（raster）とタスク終
了禁止状態（dister）を追加している．

タスクに対して終了要求が出された場合，待ち状態に入るすべてのサービスコー
ルから，E_RASTERが返る可能性がある．E_RASTERは，μITRON4.0仕様やASP1カー
ネルでは定義していないエラーコードである．

(3-2) 優先度データキュー

優先度付きのデータキューの機能を追加している．優先度付きデータキュー機
能のために実装している静的APIおよびサービスコールは次の通りである．

	CRE_PDQ		優先度データキューの生成
	snd_pdq		優先度データキューへの送信
	psnd_pdq	優先度データキューへの送信（ポーリング）
	tsnd_pdq	優先度データキューへの送信（タイムアウトあり）
	rcv_pdq		優先度データキューからの受信
	prcv_pdq	優先度データキューからの受信（ポーリング）
	trcv_pdq	優先度データキューからの受信（タイムアウトあり）
	ref_pdq		優先度データキューの状態参照

ここで，優先度データキューに蓄積されたデータの数が多い場合，優先度デー
タキューへのデータの送信を行うサービスコール（snd_pdq，psnd_pdq，
tsnd_pdq）の処理時間が長くなり，カーネル内での割込み禁止時間が長くなる
ため，使用にあたっては注意が必要である．

(3-3) システム時刻の調整

ASP3カーネルでは，システム時刻を調整するための機能を追加している．この
機能のためのサービスコールは次の通りである．

	adj_tim		システム時刻の調整

(3-4) 同期・通信オブジェクトの再初期化

同期・通信オブジェクトを初期状態に戻すための機能として，次のサービスコー
ルを実装している．

	ini_sem		セマフォの再初期化
	ini_flg		イベントフラグの再初期化
	ini_dtq		データキューの再初期化
	ini_pdq		優先度データキューの再初期化
	ini_mtx		ミューテックスの再初期化
	ini_mpf		固定長メモリプールの再初期化

同期・通信オブジェクトの再初期化の際に，その同期・通信オブジェクトに対
して待ち状態となっていたタスクはすべて待ち解除される．待ち解除されたタ
スクに対しては，E_DLTを返す．E_DLTは，μITRON4.0仕様のスタンダードプロ
ファイルでは使用していないエラーコードである．

そのため，これらのサービスコールにより，複数のタスクが起床される可能性
が生じる．多くのタスクを同時に待ち解除した場合，カーネル内での割込み禁
止時間が長くなるため，使用にあたっては注意が必要である．

同期・通信オブジェクトを再初期化する際に，アプリケーション側との整合性
を保つのはアプリケーションの責任である．例えば，固定長メモリプールを再
初期化する際には，そこから獲得済みのメモリブロックをそれ以降使わないよ
うにしなければならない．

(3-5) 周期通知機能とアラーム通知機能

ASP3カーネルでは，周期ハンドラ機能とアラームハンドラ機能を拡張し，周期
通知機能とアラーム通知機能を実装している．

これによって，次の静的APIのパラメータと機能を変更している．

	CRE_CYC		周期通知の生成
	CRE_ALM		アラーム通知の生成

(3-6) タスクとスケジューリング状態の参照

ASP3カーネルでは，タスクとスケジューリング状態を参照するための機能とし
て，次のサービスコールを実装している．

	get_tst		タスク状態の参照
	get_lod		実行できるタスクの数の参照
	get_nth		指定した優先順位のタスクIDの参照

(3-7) 起動要求をキューイングしないタスク

ASP3カーネルでは，起動要求をキューイングしないタスクを表すタスク属性と
して，TA_NOACTQUEを追加している．

(3-8) 自タスクの拡張情報の参照

ライブラリ等の中で用いることを想定して，自タスクの拡張情報を参照するた
めのサービスコールを追加している．

	get_inf		自タスクの拡張情報の参照

(3-9) 高分解能タイマの参照

ASP3カーネルでは，カーネル上で動作するタスクやカーネル自身の性能評価に
用いることを目的に，高分解能タイマを参照するためのサービスコールを追加
している．

	fch_hrt		高分解能タイマの参照

なお，ASP1カーネルでは，性能評価に用いるためのサービスコールとして，
get_utm（性能評価用システム時刻参照）をサポートしている．またJSPカーネ
ルでは，同じ目的のサービスコールとして，vxget_timをサポートしている．

(3-10) カーネル動作状態の参照

カーネル上で動作するタスクから呼び出される関数が，カーネルの初期化完了
前や終了処理開始後にも呼び出される可能性がある場合には，その中でカーネ
ルのサービスコールを呼び出せるかを判別することが必要となる．この機能の
ためのサービスコールは次の通りである．

	sns_ker		カーネル非動作状態の参照

なお，JSPカーネルでは，独自の拡張機能としてこの機能をサポートしているが，
サービスコールの名称はvsns_iniとしている．

(3-11) カーネルの終了

致命的なエラーが起こった場合などにカーネルを終了させるためのサービスコー
ルを追加している．

	ext_ker		カーネルの終了

ASPカーネルではこのサービスコールからリターンすることはないが，保護機能
を持ったカーネルではエラーリターンする可能性があるため，返り値の型をER
としている．

JSPカーネルでは，kernel_exitという名称で，実質的にこの機能を用意してい
る．また，カーネルの実行を開始する関数を，JSPカーネルではkernel_startと
いう名称としていたのを，ASPカーネルではsta_kerに名称変更した．sta_kerは，
サービスコールとは見なさないことにしている．

(3-12) 割込み要求ラインの属性の設定

割込み要求ラインの属性を設定する機能として，TOPPERS標準割込み処理モデル
で規定された次の静的APIを実装している．

	CFG_INT		割込み要求ラインの属性の設定（静的API）

(3-13) 非タスクコンテキスト用のスタック領域の設定

非タスクコンテキスト用のスタック領域の先頭番地とサイズを指定するための
静的APIを新設している．また，この静的APIにより，非タスクコンテキスト用
のスタック領域のサイズのみを指定することもできる．

	DEF_ICS		非タスクコンテキスト用のスタック領域の設定

(3-14) 終了処理ルーチン

システムの終了時に呼び出される終了処理ルーチンを登録するための機能をサ
ポートしている．この機能のための静的APIは次の通りである．

	ATT_TER		終了処理ルーチンの追加（静的API）

なお，JSPカーネルでは，独自の拡張機能としてこの機能をサポートしているが，
静的APIの名称はVATT_TERとしている．

(3-15) 割込み要求を操作する機能

ASP3カーネル（Release 3.2以降）では，指定した割込み要求ラインに対して，
割込み要求のクリア，割込みの要求，割込み要求のチェックを行うための機能
をサポートしている．この機能のためのサービスコールは次の通りである．

	clr_int		割込み要求のクリア
	ras_int		割込みの要求
	prb_int		割込み要求のチェック

○μITRON4.0仕様に対する変更

ASPカーネルでは，μITRON4.0仕様での規定に対して，次の変更を行っている．

(4-1) 非タスクコンテキストから呼び出せるサービスコールの名称

ASP3カーネルでは，非タスクコンテキスト専用のサービスコールの概念を廃止
し，非タスクコンテキストからも，タスクコンテキストと同じ名称のサービス
コールを呼び出すことにしている．これに伴い，名称が"i"で始まるサービスコー
ルは，"i"を取ったサービスコールにマクロ定義している．

(4-2) ITRON標準データ型

ITRON標準データ型の中で，C90やC99にそれに相当するものがある場合には，
C90やC99に準拠した型の名称に変更している．例えば，サイズの決まった整数
型（B，H，Wなど）はC99に準拠した型の名称（int8_t，int16_t，int32_tなど）
に，VP_INTはC99準拠のintptr_tに，INTとUINTはC99の型名と相性が良いint_t
とuint_tに，BOOLをbool_tに，それぞれ変更した．VPは，void *と等価である
ため，用意しないことにした．逆に，いくつかのデータ型を新たに用いること
にした．さらにASP3カーネルでは，SIZEはC90準拠のsize_tに変更した．

なお，ITRON標準データ型（B，H，Wなど）を必要とするアプリケーションのた
めに，itron.hを用意している．

(4-3) 値が0の定数（オブジェクト属性等）

コーディングミスを防ぐために，値が0の定数の扱いを見直した．オブジェクト
属性（TA_TFIFO等）については，値が0のものはデフォルト扱いして廃止し，定
義をitron.hに移した．値が0のサービスコールの動作モード（TWF_ANDW）やオ
ブジェクトの状態（TCYC_STP等）については，値を変更した．

(4-4) カーネルの用いる管理領域の分離と指定方法

μITRON4.0/PX仕様において導入されたμITRON4.0仕様に対する変更として，カー
ネルの用いる管理領域の分離に関する仕様を一部採用している．

まず，固定長メモリプールにおいて，カーネルの用いる管理領域を分離するこ
とに伴い，固定長メモリプールを生成する静的API（CRE_MPF）のパラメータに，
固定長メモリプール管理領域の先頭番地（mpfmb）を追加している．

また，これに整合させるために，データキューを生成する静的API（CRE_DTQ）
の最後のパラメータの名称を，データキュー管理領域の先頭番地（dtqmb）に変
更している．

JSPカーネルでは，カーネルの用いる領域はすべて自動割付けのみをサポートし
ているが，ASPカーネルでは，タスクのスタック領域と固定長メモリプールの固
定長メモリプール領域については，静的APIで先頭番地を指定することもできる
ものとしている（自動割付けもサポートしている）．

(4-5) 処理単位とメモリ領域のデータ型

処理単位のエントリ番地のデータ型を，パラメータが反映されないFP型ではな
く，処理単位毎の専用のデータ型としている．例えば，タスクのメインルーチ
ンの先頭番地のデータ型をTASK型，割込みサービスルーチンの先頭番地のデー
タ型をISR型としている．

また，スタック領域と固定長メモリプール領域の先頭番地のデータ型を，それ
ぞれSTK_T型とMPF_T型としている（μITRON4.0仕様ではVP型）．

さらに，ASP3カーネル（Release 3.6以降）では，拡張情報のデータ型をEXINF
型としている（μITRON4.0仕様ではVP_INT型．ASP1カーネルではintptr_t型）．

(4-6) 割込み処理／例外処理関連の型の定義

割込みハンドラ番号の型（INHNO），割込み番号の型（INTNO），CPU例外ハンド
ラ番号の型（EXCNO）を，ターゲット非依存部で，いずれもuint_t型に定義して
いる．

(4-7) 時間管理関連のデータ型と時間単位

ASP3カーネルでは，システム時刻（SYSTIM型），相対時間（RELTIM型），タイ
ムアウト時間（TMO型）の時間単位を，マイクロ秒に変更した．また，SYSTIMの
サイズは64ビット（ただし，64ビットの整数型がサポートされていないターゲッ
トでは32ビット），RELTIMとTMOのサイズは32ビットと規定した．さらに，TMO
は符号無し整数型に変更した．

μITRON4.0仕様のスタンダードプロファイルとASP1カーネルでは，これらの時
間の時間単位はミリ秒である．また，サイズは実装定義（最低の長さは規定さ
れている）となっている．

(4-8) 処理単位の実行開始／リターン時のシステム状態

処理単位の実行開始／リターン時のシステム状態について，μITRON4.0仕様に
おいて実装依存であった点を厳密に規定し，ターゲットによる違いが生じない
ようにしている．

ASP1カーネルとASP3カーネルでは，割込みサービスルーチンとタイムイベント
ハンドラの実行開始／リターン時の割込み優先度マスクの扱いが異なっている．

(4-9) カーネル管理外の割込みの扱いの規定

JSPカーネルではターゲット毎に定めていたカーネル管理外の割込みの扱いを，
ASPカーネルでは，TOPPERS標準割込み処理モデルの規定に準拠して，可能な範
囲で標準化している．ただし，NMI以外にカーネル管理外の割込みを設けるかや，
どの割込み優先度より高いものをカーネル管理外とするかは，ターゲット毎に
定めることとしている．

(4-10) CPU例外ハンドラで行える操作

CPU例外ハンドラで行える操作については，TOPPERS標準割込み処理モデルに準
拠することとし，μITRON4.0仕様には従っていない．そのためのサービスコー
ルとして，次のサービスコールを実装している．

	xsns_dpn	CPU例外発生時のディスパッチ保留状態の参照

ASP1カーネルでは，上に加えて，CPU例外発生時のタスク例外処理保留状態を参
照するサービスコール（xsns_xpn）も実装しているが，ASP3カーネルでは，タ
スク例外処理機能の廃止に伴って廃止した．

(4-11) 非タスクコンテキストからのext_tsk

非タスクコンテキストからext_tskが呼ばれた場合，E_CTXエラーを返すものと
した．これにともなって，ext_tskをリターンする可能性があるものとし，返り
値の型をERとした．

(4-12) 強制待ち要求ネストの廃止

強制待ち要求をネストする機能を廃止した．言い換えると，強制待ち要求ネス
ト数の最大値を1に固定した．これに伴い，frsm_tskは廃止し，itron.hにおい
てfrsm_tskをrsm_tskにマクロ定義している．ref_tskで参照できる情報から，
強制待ち要求ネスト数（suscnt）を削除した．また，TMAX_SUSCNTの定義を
itron.hに移した．

(4-13) システム時刻の更新機構の扱い

システム時刻を更新する機構をカーネル内部に持つ扱いとし，サービスコール
としてのisig_timは廃止した．

(4-14) システム時刻の設定機能のパラメータ

ASP3カーネルでは，set_tim（システム時刻の設定）のパラメータを，システム
時刻へのポインタを渡す仕様から，システム時刻そのものを渡す仕様に変更し
た．

なお，ASP1カーネルでは，set_timはサポートしていない．

(4-15) 周期ハンドラの仕様

sta_cycを呼び出した後，最初に周期ハンドラ（ASP3カーネルでは周期通知）が
起動される時刻を変更した．μITRON4.0仕様では，sta_cycを呼び出してから周
期ハンドラの起動周期で指定した相対時間後としているが，ASPカーネルでは，
起動位相で指定した相対時間後としている．

(4-16) 静的APIのパラメータの省略

ASP3カーネルでは，静的APIのパラメータの中で，NULLを指定すると自動割付け
になるメモリ領域の先頭番地と，NULLしか指定できない管理領域の先頭番地は，
記述を省略できるものとした．また，優先度上限ミューテックス以外のミュー
テックスを生成するCRE_MTXで，上限優先度（ceilpri）の記述を省略できるも
のとした．

(4-17) アプリケーション向けのインクルードファイルの構成

カーネルを呼び出すアプリケーションからはkernel.hを，SILを呼び出すアプリ
ケーションからはsil.hをインクルードすればよいものとしている．

また，kernel.hとsil.hの共通部分としてt_stddef.hを用意し，カーネルとSIL
のいずれも呼び出さないアプリケーションからは，t_stddef.hをインクルード
すればよいものとしている．itron.hは，μITRON4.0仕様との互換性が必要な場
合にインクルードするものとしている．

JSPカーネルにおけるt_services.hとs_services.hは廃止した．

○システムコンフィギュレーション処理の見直し

システムコンフィギュレーション処理を全面的に見直し，システムコンフィギュ
レーションファイル中におけるC言語のプリプロセッサディレクティブの扱いと
静的APIのパラメータの分類を変更した．

○拡張パッケージのサポート

ASP3カーネルでは，いくつかの拡張機能を実装するために，次の拡張パッケー
ジをサポートしている．

・ドリフト調整機能拡張パッケージ
・メッセージバッファ機能拡張パッケージ
・オーバランハンドラ機能拡張パッケージ
・タスク優先度拡張パッケージ
・制約タスク拡張パッケージ
・サブ優先度機能拡張パッケージ
・優先度継承拡張パッケージ
・動的生成機能拡張パッケージ
・モノトニックタイマ機能拡張パッケージ

ASP1カーネルでは，これらの拡張パッケージ以外に，ミューテックス機能拡張
パッケージもサポートしているが，ASP3カーネルでは，ミューテックスは標準
でサポートしていることから，拡張パッケージとしては廃止した．ASP1カーネ
ルでは，ドリフト調整機能拡張パッケージ，サブ優先度機能拡張パッケージ，
優先度継承拡張パッケージ，モノトニックタイマ機能拡張パッケージはサポー
トしていない．

○TOPPERS組込みコンポーネントシステム（TECS）の導入

デバイスドライバやシステムログ機能などのシステムサービスを，TOPPERS組込
みコンポーネントシステム（TECS）を用いて実装している．また，カーネルオ
ブジェクトをTECSのコンポーネントとして扱えるようにしている．

なお，ASP1カーネルでは，TECSに対応するための修正は，TECSの配布パッケー
ジに含まれており，ASP1カーネルの配布パッケージには含まれていない．

以上
