diff‑40200.txt

page 1μITRON4.0仕様
Ver. 4.01.00 から Ver. 4.02.00 への改訂箇所
作成者: 高田 広章（名古屋大学）
最終更新: 2004年3月25日
このメモは，μITRON4.0仕様 Ver. 4.01.00 から Ver. 4.02.00 への改訂箇所とその理由をまとめたものである．
(ア‑xx) は仕様の変更となる（または変更とも見なせる）ものを，(イ‑xx) はわかりにくい表現・曖昧な表現・不正確な表現の修正や，仕様の本体以外の修正を，(ウ‑xx) は誤字・脱字の訂正と一貫性のない表現の修正を，(エ‑xx) はその他の修正を示す．
このメモ中のページ番号は，Ver. 4.02.00 でのページ番号を示す．
‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(ア‑1) オーバランハンドラの優先順位【改訂理由】タイムイベントハンドラの優先順位に関する記述「isig̲timを呼び出した割込みハンドラの優先順位以下で」を，オーバランハンドラに当てはめるのは不適切であるため，オーバランハンドラの優先順位は別途記述する．
【改訂箇所】(1) 64ページ: 次の通りに修正．
「タイムイベントハンドラの優先順位は，isig̲timを呼び出した割込みハンドラの優先順位以下で，ディスパッチャの優先順位よりも高いという範囲内で，実装定義で定める．」↓「タイムイベントハンドラ（オーバランハンドラを除く）の優先順位は，isig̲timを呼び出した割込みハンドラの優先順位以下で，ディスパッチャの優先順位よりも高いという範囲内で，実装定義で定める．オーバランハンドラの優先順位は，ディスパッチャの優先順位よりも高いという範囲内で，実装定義で定める．」(2) 240ページ: 次の通りに修正．
「タイムイベントハンドラの優先順位は，isig̲timを呼び出した割込みハンドラの優先順位以下で，ディスパッチャの優先順位よりも高い（3.5.3節参照）．」↓「タイムイベントハンドラ（オーバランハンドラを除く）の優先順位は，isig̲timを呼び出した割込みハンドラの優先順位以下で，ディスパッチャの優先順位よりも高い．オーバランハンドラの優先順位は，ディスパッチャの優先順位よりも高い（3.5.3節参照）．」‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(ア‑2) データキューとメッセージバッファのサイズ【改訂理由】CRE̲DTQのdtqcntは一般定数式パラメータとしているが，0が記述される場合にも対応するには実装が煩雑になる．そこで，プリプロセッサ定数式パラメータとする．CRE̲MBFのmbfszも同様である．
【改訂箇所】(1) 155ページ: 次の通りに修正．
「CRE̲DTQにおいては，dtqidは自動割付け対応整数値パラメータ，dtqatrはプリプロセッサ定数式パラメータである．」↓「CRE̲DTQにおいては，dtqidは自動割付け対応整数値パラメータ，dtqatrとdtqcntはプリプロセッサ定数式パラメータである．」

diff‑40200.txt

page 2(2) 189ページ: 次の通りに修正．
「CRE̲MBFにおいては，mbfidは自動割付け対応整数値パラメータ，mbfatrはプリプロセッサ定数式パラメータである．」↓「CRE̲MBFにおいては，mbfidは自動割付け対応整数値パラメータ，mbfatrとmbfszはプリプロセッサ定数式パラメータである．」‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(ア‑3) 簡略化された優先度制御規則におけるchg̲priの振舞い【改訂理由】ミューテックスの簡略化された優先度制御規則において，chg̲priが発行された場合の振舞いについて記述されていないため，明確に記述する．
【改訂箇所】(1) 175ページ: 次の通りに修正．
「タスクがロックしているミューテックスがなくなった時にのみ行う（この場合には，タスクの現在優先度をベース優先度に戻すことになる）」↓「タスクがロックしているミューテックスがない時（または，なくなった時）にのみ行う（この場合には，タスクの現在優先度をベース優先度に一致させる）」(2) 175ページ: 現在優先度を変更すべき状況に以下を追加．
「・chg̲priによりタスクのベース優先度を変更した場合で，タスクがロックしているミューテックスがないか，変更後のベース優先度が現在優先度よりも高い時」‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(ア‑4) get̲mplのblkszの有効範囲【改訂理由】get̲mplのblkszに0が指定された場合には，E̲PARとするのが妥当と考えられる．また，取得できないような大きいサイズが指定された場合にも，E̲PARを返せる方がよいと考えられる．
【改訂箇所】
235ページ: get̲mplの機能説明の最後に以下の段落を追加．
「blkszに0が指定された場合には，E̲PARエラーを返す．また，可変長メモリプールから取得可能な最大のメモリブロックサイズよりも大きい値がblkszに指定された場合，実装依存でE̲PARエラーを返すことができる．」‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(ア‑5) CPUロック状態における割込みの扱い【改訂理由】CPUロック状態で発生した割込み要求は，無視されるのではなく，その割込みが許可された時点でサービスされることが，明確になっていない．
【改訂箇所】(1) 52ページ: 3.1節の最後に次の定義を追加．
「(6) 割込みの禁止
割込み要求があっても，それに対応する処理（割込みハンドラの起動など）を保留することを，「割込みの禁止」と呼ぶ．次にその割込みが許可された時点で，割込み要求がなくなっていなければ，割込み要求に対応する処理が行われる．」(2) 65ページ: 次の通りに修正．
「CPUロック状態では，割込みハンドラ（カーネルの管理外の割込みによって起動されるものを除く）やタイムイベントハンドラは起動されず，ディスパッチも起こらない．」↓「CPUロック状態では，カーネルの管理外の割込みを除くすべての割込みが禁diff‑40200.txtpage 3

止され，ディスパッチも起こらない．また，割込みが禁止されていることから，タイムイベントハンドラの起動も保留される．」‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(イ‑1) サブエラーコードの値の定義【改訂理由】「符号付き右シフト」という表現では，「符号拡張して右シフト」という内容が伝わらない可能性がある．
【改訂箇所】
28ページ: 次の通りに修正．
「エラーコードの値を符号付きで8ビット右シフトしたもの」↓「エラーコードの値を符号拡張して8ビット右シフトしたもの」‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(イ‑2) CPU例外ハンドラと拡張サービスコールルーチンの実行コンテキスト【改訂理由】 CPU例外ハンドラと拡張サービスコールルーチンの実行コンテキ
ストに関する記述が厳密でない．
【改訂箇所】(1) 62ページ: 次の通りに修正．
「CPU例外ハンドラは，ハンドラ毎およびCPU例外が発生したコンテキスト毎に，それぞれ独立したコンテキストで実行される．」↓「CPU例外ハンドラは，CPU例外毎およびCPU例外が発生したコンテキスト毎に，それぞれ独立したコンテキストで実行される．」(2) 62ページ: 次の通りに修正．
「拡張サービスコールルーチンは，ルーチン毎および拡張サービスコールが呼び出されたコンテキスト毎に，それぞれ独立したコンテキストで実行される．」↓「拡張サービスコールルーチンは，拡張サービスコール毎および拡張サービスコールが呼び出されたコンテキスト毎に，それぞれ独立したコンテキストで実行される．」(3) 296ページ: 次の通りに修正．
「拡張サービスコールルーチンは，ルーチン毎および拡張サービスコールが呼び出されたコンテキスト毎に，それぞれ独立したコンテキストで実行する．」↓「拡張サービスコールルーチンは，拡張サービスコール毎および拡張サービスコールが呼び出されたコンテキスト毎に，それぞれ独立したコンテキストで実行する．」(4) 302ページ: 次の通りに修正．
「CPU例外ハンドラは，ハンドラ毎およびCPU例外が発生したコンテキスト毎に，それぞれ独立したコンテキストで実行する．」↓「CPU例外ハンドラは，CPU例外毎およびCPU例外が発生したコンテキスト毎に，それぞれ独立したコンテキストで実行する．」‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(イ‑3) chg̲pri の機能説明の明確化【改訂理由】 chg̲pri で対象タスクの優先順位を変化させる条件が正確でない．
【改訂箇所】

diff‑40200.txt

page 497ページ: 次の通りに修正．
「このサービルコールを実行した結果，対象タスクの現在優先度がベース優先度に一致している場合（ミューテックス機能を使わない場合には，この条件は常に成り立つ）には，」↓「このサービルコールを実行した結果，対象タスクの現在優先度が変化した場
合および現在優先度がベース優先度に一致している場合（ミューテックス機能を使わない場合には，この条件は常に成り立つ）には，」‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(イ‑4) snd̲mbf のμITRON3.0仕様との違いの項の訂正【改訂理由】 snd̲mbf のμITRON3.0仕様との違いの項に，「パラメータの順序を変更した．」とあるが，実際には変更されていない．
【改訂箇所】
193ページ: 「パラメータの順序を変更した．また，」を削除．
‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(イ‑5) del̲cyc の補足説明の追加【改訂理由】 del̲cyc と del̲alm は，いずれも対象ハンドラが動作している
場合には動作を停止させるが，その旨が del̲alm の補足説明には記述されているのに対して，del̲cyc には記述されていない．
【改訂箇所】
251ページ: 以下を追加する．
「【補足説明】
対象周期ハンドラが動作している場合には，周期ハンドラを動作していない状態に移行させる．」‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(ウ‑1)xiiiページ: システムコール索引にref̲mtxが抜けていたのを追加‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(ウ‑2)
19ページ:「線形リスト」→「リンクリスト」‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(ウ‑3)
27ページ:「保護機構」→「保護機能」‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(ウ‑4)
39ページ:「割込みハンドラから呼び出せるサービスコール」→「非タスクコンテキストから呼び出せるサービスコール」‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(ウ‑5)
72ページ:「iras̲texの機能説明」→「iras̲texの補足説明」‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(ウ‑6)
84ページ:「can̲tsk」→「can̲act」‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(ウ‑7)
173ページ:「送信を待っているタスクがない場合には」→「受信を待っているタスクがない場合には」‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(ウ‑8)
206ページ:「呼出しメッセージの最大サイズよりも大きい場合には」→「呼出しメッセージの最大サイズよりも大きい場合にも」‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑

diff‑40200.txt

page 5(ウ‑9)218ページ:「ランデブポート状態を返すパケットへのポインタ」→「ランデブ状態を返すパケットへのポインタ」‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(ウ‑10)
229ページ:「フラグメント」→「フラグメンテーション」‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(ウ‑11)
275ページ:「CPUロック状態解除」→「CPUロック解除状態」‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(エ‑1) トロン協会の体制変更に伴う修正【改訂内容】(1) 「トロン協会 ITRON部会」と表示されている中で，著作権表示など権利が絡む部分は単に「トロン協会」に，表紙・問い合わせ先などは「トロン協会
ITRON仕様検討グループ」に変更．
(2) 6章の内容を現状にあわせて修正．具体的には次の通り．
・(1)と同様の修正．
・仕様書を改変して製品マニュアルを作る場合の記述を修正．
・ITRONプロジェクトホームページの項を削除．
・ITRONニュースレターの項を削除．
・トロンプロジェクト国際シンポジウムの論文集に関する記述を削除．
‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(エ‑2) メーカコードの割付けを最新の情報に更新【改訂箇所】
316〜317ページ: 割付けを最新の情報に修正．具体的な記述については，仕様書を参照のこと．
‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(エ‑3) バージョン番号・コピーライトの年号・バージョン履歴【改訂箇所】(1) 全体:「Ver. 4.01.00」→「Ver. 4.02.00」(2) 表紙: Copyright 表示に「2004」を追加．
(3) 324ページ: バージョン履歴に追記．
‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑(エ‑4) 索引に「ランデブ番号」を追加．
‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑