
		TOPPERS/ASP3カーネル
		変更履歴

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

このドキュメントは，TOPPERS/ASP3カーネルの変更履歴を，新しい方から順に
記述したものである．また，TOPPERS/ASPカーネル Release 1.9.1との主な違い
についても記載している．

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

 Copyright (C) 2014-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: version.txt 1879 2026-05-08 05:42:28Z ertl-hiro $
----------------------------------------------------------------------

		TOPPERS/ASP3カーネル
		Release 3.7.1 から 3.7.2 への主な変更点

○変更点のリスト

●機能拡張

・istkが必要ない場合に対応
	- ターゲット依存で，非タスクコンテキスト用のスタック領域の先頭番地
	  を保持する変数（istk）を生成しない設定（OMIT_ISTK）を用意．

●不具合修正

・動的生成機能拡張のデフォルトのメモリプール管理機能で，タスクのスタッ
　ク領域がアラインメント制約を満たせなくなる場合がある問題の修正
	- aligned_alloc_mempoolを追加し，スタック領域の確保にそれを使用す
	  るように修正．

・POSIX依存部のタイマの実装の不具合の回避
	- posix_timer.cの不具合が回避できないため，Linux上でのシミュレーショ
	  ン環境でも，posix_timer_itimer.cを用いることに．

・TECS対応関数のプロトタイプ宣言の誤りの修正
	- TECS内での初期化ルーチンと終了処理ルーチンの引数リストをvoidに．

・コンフィギュレータの不具合修正
	- オブジェクトIDの重複チェックが厳し過ぎる不具合を修正．
	- テストプログラム（pass2_cfg1，pass1_cfg1）の対応．

●実装改善

・タイムイベントヒープの実装の変更
	- タイムイベントブロック中でタイムイベントヒープ中での位置を示す方
	  法を，ポインタからインデックスに変更．
	- タイムイベントヒープ中のノード数を表す方法を，最後のノードへのポ
	  インタからインデックスに変更．

・データ構造が生成されない場合のエラーチェックの変更
	- 各オブジェクトの初期化ブロックのラベルがない場合もエラーにならな
	  いように対策（SYMBOLでエラー終了しないように変更）．

・[ARM向けターゲット依存部] 割込み番号，割込みハンドラ番号，CPU例外ハ
　ンドラ番号に対する暗黙の制限の解除
	- TNUM_INTNOとTMIN_INTNOを廃止．
	- TNUM_INHNOに代えて，TMAX_INHNOを用いる．
	- TNUM_EXCNOに代えて，TMAX_EXCNOを用いる．定義するファイルを変更．
	- inh_table，intcfg_table，exc_tableの生成方法を改善．

・[ARM向けターゲット依存部] FPSCRの保存場所を統一

・[POSIX向けターゲット依存部] ARM向けターゲット依存部との整合性の確保
	- TNUM_INTNOとTMIN_INTNOを廃止．
	- TNUM_INHNOに代えて，TMAX_INHNOを用いる．

・タイマドライバシミュレータの仕様変更
	- simtim_addを廃止．
	- simtim_advanceをカーネル内からも呼び出せるように変更．
	- テストプログラムでは，SIMTIM_TESTをマクロ定義するように変更．
	  HOOK_HRT_EVENTは廃止．
	- シミュレートされたタイマ割込みの操作関数名を変更．
	- テストプログラムの対応（simtim_addを使わないように変更）．

・非TECS版のシリアルインタフェースドライバの実装改善
	- コンフィギュレーション情報を記述したファイル（serial_cfg.c）を分
	  離．

●その他（テストプログラム，サンプルプログラム等）

・不正な割込み番号等の値の変更
	- test_cfg/cfg_common.h中のINVALID_INVNO，INVALID_INHNO，
	  INVALID_EXCNOの値を変更．

・テストプログラムの追加
	- タイマドライバシミュレータのテスト(1)（simt_simtimer1）を追加．

・テストプログラムの実行スクリプトの変更
	- testcfg.rbの機能改善．

・ドキュメントの改善，コメントの修正

・バージョン番号の更新
	- カーネルとカーネル仕様のバージョン番号を更新．

----------------------------------------------------------------------

		TOPPERS/ASP3カーネル
		Release 3.7.0 から 3.7.1 への主な変更点

○変更点のリスト

●その他（テストプログラム，サンプルプログラム等）

・sample/Makefileの不具合修正
	- シンボルファイル，バイナリファイル，ダンプファイルの生成ルールを，
	  個別に記述するように変更．

・ドキュメントの改善，コメントの修正

・バージョン番号の更新
	- カーネルのバージョン番号を更新．

----------------------------------------------------------------------

		TOPPERS/ASP3カーネル
		Release 3.6.0 から 3.7.0 への主な変更点

○変更点のリスト

●仕様変更，機能拡張

・macOS，Linux上でのシミュレーション環境の追加
	- POSIX依存部の追加．

・[サブ優先度機能拡張パッケージ] サブ優先度機能の仕様変更に対応
	- 優先度上昇状態の間のサブ優先度の扱いに対応．
	- 優先度上限がサブ優先度を使用する優先度になっているエラーのチェッ
	  クを削除（extension/subprio/kernel/mutex.trbを削除）．
	- change_subprioの処理の一部をchg_sprに移動（実装改善）．
	- テストプログラム（test_subprio1，test_subprio2，test_subprio3，
	  pass2_subprio1）の対応．

・優先度継承拡張パッケージの追加
	- test/tBitKernel.cの拡張．

・CRE_XXXで，他の種類のオブジェクトの識別子との衝突についてもエラーと
　するように変更

・objdumpコマンドによるダンプ形式を受け付けるように拡張
	- コンフィギュレータを，objdumpコマンドによるダンプ形式を読み込め
	  るように拡張．
	- sample/Makefileを，これをサポートするように拡張．

・ARM依存部のFPUサポートに，常にFPUを使用する実装を追加
	- 常にFPUを使用する実装（USE_ARM_FPU_ALWAYS）を追加．
	- 指定したタスクのみがFPUを使用する方法（USE_ARM_FPUから
	  USE_ARM_FPU_SELECTIVEに変更）の実装を改善．
	- FPUの初期化を，スタートアップモジュールで行うように変更．

・ARMのGIC依存部の仕様変更
	- 割込みハンドラの出口でEOI（End of Interrupt）を発行し，割込み処
	  理中にPMR（Priority Mask Register）の値を変更しないように変更．

●不具合修正

・コンフィギュレータの不具合修正
	- SRecord.rbに，不連続なデータ領域のコピーに対応したcopy_dataを追
	  加し，cfg.rbのBCOPYをそれを用いるように修正．

・ARMコア依存部，チップ依存部，ターゲット依存部の不具合修正
	- arch/arm_gcc/rza1/chip_sym.def中のマクロの名称を修正．

●実装改善

・優先度上昇状態を管理するように変更
	- 優先度上昇状態をTCBに追加．
	- mutex_scan_ceilmtx，mtxhook_scan_ceilmtxを削除．

・カーネルが生成する割込みハンドラから呼び出す関数名の変更
	- コンフィギュレータがkernel_cfg.cに生成する割込みハンドラから呼び
	  出すカーネル内の関数名に，_kernel_を付けるように変更．

・POSIX依存部に対応するための変更
	- ターゲット依存で，非タスクコンテキスト用のスタック領域を使用しな
	  い設定（OMIT_ISTACK）を用意．

・リンカスクリプトでフック呼出しのためのPROVIDEの使用をやめる
	- arch/arm_gcc/common/start.Sで，hardware_init_hookと
	  software_init_hookを無条件に呼び出すように変更し，weak属性付きの
	  空関数を用意．
	- 各ターゲット依存部のリンカスクリプト中で，hardware_init_hook，
	  software_init_hook，software_term_hookを0に定義するPROVIDE記述を
	  削除．
	- 各ターゲット依存部のtarget_kernel_impl.cで，software_term_hookの
	  呼出し処理を，weak属性付きの空関数を使う形に変更．

・ミューテックスの実装を拡張が容易なように変更
	- 優先度継承拡張をしやすいように，mutex_raise_priorityを導入．また，
	  mutex_drop_priorityのインタフェースを変更し，インライン関数に．
	- ロック解除を逆順に行わなければならない制限を外しやすいように，
	  remove_mutexを導入．

・コンフィギュレータの実装改善
	- pass1.rbを，rubyの新しいバージョンでエラーにならないように修正．

・[ARM向けターゲット依存部] ARMコアサポートモジュールを見直し
	- arm.cの内容をarm.hに移し，arm.cを廃止．
	- L1キャッシュのクリーン操作関数を追加．
	- キャッシュの操作関数を整理．
	- スタートアップモジュールをターゲット依存で追加できるように変更．

・[ARM向けターゲット依存部] 初期化手順を見直し
	- MPCore依存部に，L2キャッシュの操作関数を追加．
	- キャッシュのディスエーブルは，hardware_init_hookで実施することと
	  し，mpcore_initializeでは実施しないことに．
	- ARMv7以上の場合に，SCTLRのセットされていると問題が発生するビット
	  をクリアするように変更．
	- TBLの無効化処理を，ノンユニファイドTLBに対応できるように変更．

・[ARM向けターゲット依存部] メモリの設定をアプリケーション依存で変更し
　やすいように変更
	- arm_memory_areaとarm_tnum_memory_areaにweak属性を追加．

・[GR-PEACH依存部] hardware_init_hookの呼び方の変更に対応
	- target_support.Sをtarget_start.Sにリネームし，必ずリンクされるよ
	  うに変更．

・その他の実装改善
	- コンフィギュレーションスクリプト（configure.rb）とユーティリティ
	  プログラムを，FileUtilsライブラリをなるべく使わないように変更．
	- テストプログラム生成ツール（gentest.rb）の出力形式の改善．

●その他（テストプログラム，サンプルプログラム等）

・configureとsample/Makefileの機能改善
	- コンフィギュレーションスクリプト（configure.rb）でコンパイルオプ
	  ションを外せるように，sample/Makefileを拡張．

・sample/Makefileの変更
	- %.cppに対するvpath指定を追加．

・テストプログラムの実行スクリプトの変更
	- testexec.rbで，カーネルライブラリのビルド時に-fオプションを与え
	  ないように変更（必要な場合は，TARGET_OPTIONSに記述する）．
	- testcfg.rbの機能改善．

・テストプログラムの追加
	- 優先度データキュー機能のテスト(1)（test_pdq1），固定長メモリプー
	  ル機能のテスト(1)（test_mpf1）を追加．
	- コンフィギュレータ本体によるパス1でのエラー検出のテスト(1)
	  （pass1_cfg1）を追加．パス2でのエラー検出のテストの一部を移動．

・テストプログラムの修正
	- 強制待ち状態に関するテスト(1)（test_suspend1）で，呼び出すサービ
	  スコールを修正．
	- システム時刻管理機能のテスト(1)（simt_systim1，simt_systim1_64hrt）
	  で，target_raise_hrt_intをCPUロック状態で呼ぶように修正．

・テストプログラムの改善・変更
	- メッセージバッファ拡張パッケージのtest_messagebuf1と
	  test_messagebuf2を，intptr_tが64ビットの場合に対応．
	- test_int1を拡張．
	- test_cpuexc10の実装改善（HRP3カーネルとの整合性のため）．
	- pass2_cfg1を意図しないエラーが出ないように変更．
	- いくつかのテストプログラムを，test_common.hを使用するように変更．

・その他の修正
	- gentest.rbの不具合修正と実装改善．
	- tBitKernel.cの未完成部分の作成と不具合修正．

・設計ドキュメントの追加
	- mutex_design.txtとinherit_design.txtの追加．

・ドキュメントの改善

・バージョン番号の更新
	- カーネルのバージョン番号を更新．

○ターゲット依存部の要修正箇所（3.6.0 → 3.7.0）

(1) リネームする関数名の追加
	- unlock_cpuとsense_lockを，リネーム記述（target_rename.defまたは
	  そこからインクルードされるファイル）に追加する（ARM依存部を使っ
	  ている場合には，core_rename.defに追加しているので，対応の必要が
	  ない）．

(2) フック呼出し処理の変更
	- スタートアップモジュール中で，hardware_init_hookとsoftware_init_hook
	  の呼出し処理を，weak属性付きの空関数を使う形に変更する．
	- リンカスクリプト中で，hardware_init_hook，software_init_hook，
	  software_term_hookを0に定義するPROVIDE記述を削除する．
	- software_term_hookの呼出し処理を，weak属性付きの空関数を使う形に
	  変更する．

(3) [ARM依存部] 常にFPUを使用する実装に対応
	- ASM_ARM_FPU_TYPEの定義を追加する．
	- ターゲット依存部で，USE_ARM_FPUを定義している場合は，
	  USE_ARM_FPU_SELECTIVEに変更する．
	- ターゲット依存部のMakefileでは，COPTSに，FPUを持たないプロセッサ
	  を指定する-mcuオプションを設定する．

(4) [ARM依存部] 初期化手順の見直しに対応
	- hardware_init_hookに，キャッシュとMMUをディスエーブルする処理を
	  追加する．
	- arm_enable_cache，arm_disable_cacheを使用している場合，データキャッ
	  シュと命令キャッシュの操作関数を個別に呼ぶように変更する．
	- MPCore依存部を使用している場合，チップ依存部またはターゲット依存
	  部に，L2キャッシュの操作関数（4関数）を追加し，それらを使うよう
	  に変更する．

----------------------------------------------------------------------

		TOPPERS/ASP3カーネル
		Release 3.5.0 から 3.6.0 への主な変更点

○変更点のリスト

●仕様変更，機能拡張

・拡張情報の型をEXINFに変更

・[ARMコア依存部] 性能評価時のキャッシュの無効化の実装
	- HIST_INVALIDATE_CACHEがマクロ定義されている場合には，性能評価に
	  おいて実行時間を計測する前に，キャッシュと分岐予測を無効化する．

●不具合修正

・コンフィギュレータの不具合修正
	- パス3の終了処理ルーチンに関するチェックの不具合を修正．

・ARMコア依存部，チップ依存部，ターゲット依存部の不具合修正
	- T_EXCINF型のintpriフィールドを符号付き整数に修正．
	- パフォーマンスモニタによる性能評価が正しく動作するように修正．そ
	  の際に，USE_ARM_PM_HISTをUSE_ARM_PMCNTに，TOPPERS_ARM_PMCNT_DIV64
	  をUSE_ARM_PMCNT_DIV64にリネーム．
	- 計測前のキャッシュの無効化時に，TLBも無効化するように変更．
	- CT11MPCore依存部の割込みの数を修正．

●機能改善，実装改善

・get_infの実装改善
	- 排他制御するのをやめた（その必要がないため）．

・コンフィギュレータのエラーメッセージの改善
	- カーネル管理外の割込みに関するエラーメッセージを改善．
	- 静的APIの文法エラーに対するエラーメッセージを改善．
	- 静的APIテーブルにエラーがあった場合に，ファイル名と行番号を出力
	  するように変更．

・パス3でシンボルが見つからない場合のエラー検出の追加
	- コンフィギュレータのSYMBOL関数に，シンボルが見つからない場合にエ
	  ラーメッセージを出す機能を追加．
	- この機能に対応できるように，生成スクリプトを変更．

・オーバランハンドラ機能拡張の実装改善
	- オーバランハンドラがサポートされていない場合に，オーバランハンド
	  ラ初期化ブロックを生成しないように変更．
	- 生成スクリプトの記述スタイルを変更（他の類似記述と合わせた）．

・上位のカーネルとの整合性の確保
	- 周期通知とアラーム通知の通知ハンドラ名を変更．
	- コンフィギュレータ本体のエラーメッセージ出力関数を拡張・整理．そ
	  れを活用するように生成スクリプトを変更．

・システムサービスの実装の改善
	- ログ情報の出力時に，渡されたログバッファに書き込まないように変更．
	- syslog_printfにおいて，必要なパラメータが5つより多い場合に，5つ
	  を超えるパラメータを読まないように変更．

・ARMコア依存部，チップ依存部，ターゲット依存部の実装改善
	- ARMv7では，SMP有効時にACTLRのFWビットを設定するように修正．
	- 周辺デバイスへのポーリングに待ち（sil_dly_nse(100)）を入れた．
	- sil_dly_nseのアラインメントを64ビット境界に変更．
	- 不必要な命令の削除．
	- 各ターゲットのリンカスクリプト中を，.text.*セクション等をリンク
	  するような記述に変更．

・その他の実装改善
	- tTraceLog.c中のトレースログ関数を，マクロを呼び出す形に変更し，
	  マクロが定義されている場合のみコンパイルするように変更．

●その他（テストプログラム，サンプルプログラム等）

・TECSからカーネルを呼び出すための記述の変更
	- tKernel_inline.h中の引数がない関数の引数記述を(void)とする．

・コンフィギュレータのテスト（test_cfgディレクトリ）の追加

・ダミーのターゲット依存部（target/dummy_gcc）の変更
	- カーネル管理外の割込みに対応．
	- カーネル管理／カーネル管理外に固定の割込み番号／割込みハンドラ番
	  号を設定．
	- 割込みハンドラとCPU例外ハンドラの先頭番地のチェックを追加．
	- トレースログ取得の方法を変更．
	- トレースログ関数のリネーム記述を削除．

・テスト実行スクリプト（testexec.rb）の改善
	- 複数のカーネルライブラリを持てるように拡張．
	- 処理の指示方法（コマンド）の改善．
	- TARGET_OPTIONSへの記述順序の整理．

・テストプログラムの修正
	- 通知処理のテスト(1)（test_notify1）の変数の型の誤り（intptr_tと
	  int_tのサイズが異なる場合に不具合が発生）を修正．

・テストプログラムの改善
	- セマフォ機能のテスト(1)（test_sem1）のテスト項目を追加．
	- ARM依存のテストプログラムarm_cpuexcを，arm_cpuexc1にリネーム．

・カーネルの自己診断機能の拡充
	- カーネルの自己診断機能で整合性検査を行う範囲を広げた．
	- ミューテックス機能の自己診断機能を廃止．
	- [ARM依存部] TSKCTXBのチェックのための定義を追加．

・configureとutils/makerelease.rbの変更
	- shellライブラリを使用しないように変更（ruby 2.7.0以降で，標準ラ
	  イブラリに含まれなくなったため）．

・ドキュメントの充実，コメントの修正

・バージョン番号の更新
	- カーネルとカーネル仕様のバージョン番号を更新．

○ターゲット依存部の要修正箇所（3.5.0 → 3.6.0）

(1) トレースログ取得方法の変更
	- ターゲット依存部におけるトレースログ取得がC言語で記述されている
	  場合には，取得方法の変更に対応する．

----------------------------------------------------------------------

		TOPPERS/ASP3カーネル
		Release 3.4.0 から 3.5.0 への主な変更点

○変更点のリスト

●仕様変更，機能拡張

・高分解能タイマが64ビットの場合に対応
	- t_stddef.hにおけるHRTCNT型の定義を変更．
	- set_hrt_eventにおいて，タイムイベントヒープが空の場合と，高分解
	  能タイマに指定する相対カウント値がHRTCNT_BOUNDよりも大きい場合の
	  処理を変更．マクロ定義のチェックを追加．
	- MPCore内蔵タイマ用のタイマドライバ（USE_MPCORE_GTC_HRTの場合）と
	  タイマドライバシミュレータを，高分解能タイマを64ビットにできるよ
	  うに拡張（target_hrt_clear_eventの追加など）．
	- simtimer_ct11mpcore_gccとsimtimer_macosx_gccを，高分解能タイマが
	  64ビットの場合に対応．
	- テストプログラム（simt_systim1_64hrt，simt_systim2_64hrt，
	  simt_systim3_64hrt.c，simt_drift1_64hrt）を追加．

・モノトニックタイマ機能拡張パッケージの追加

・コンフィギュレータの仕様変更
	- 静的APIの後に";"がない場合はエラーとするように変更．

・ARMコア依存部，チップ依存部，ターゲット依存部の仕様変更
	- フェイタルデータアボートをエミュレートされたCPU例外と位置付け，
	  CPU例外ハンドラ番号を割り付けた．

●不具合修正

・ARMコア依存部，チップ依存部，ターゲット依存部の不具合修正
	- arm_memory_areaをconstに．

・その他の不具合修正
	- 静的APIの最後に";"が抜けている不具合の修正．

●機能改善，実装改善

・コンフィギュレータのエラーメッセージの改善
	- DEF_ICSが複数記述されている場合のエラーメッセージを改善．

・ARMコア依存部，チップ依存部，ターゲット依存部の実装改善
	- core_test.hにおけるCPU例外の発生コードを見直し．
	- ARM依存のテストプログラム（arm_cpuexc）を追加．
	- sp804.hを，arch/arm_gcc/commonから，target/ct11mpcore_gccに移動．
	- software_term_hookを，target_exitから呼ぶように変更．
	- 各ターゲットのリンカスクリプト中で，.rodataセクションのリンク記
	  述にKEEPをつけた．

・タイマドライバシミュレータの実装改善
	- タイマ割込みの発生時刻の設定状況を表すデータ型（INT_EVENT）を導入. 

・その他の実装改善
	- VALID_TMOUTの定義を変更．
	- check_adjtimのパラメータの型と，エラーチェックの条件式を変更．
	- tTask_inline.hに古いサービスコール（先頭に"i"が付く）が残ってい
	  たのを修正．
	- tSerialPortMain.c内のローカル変数内の型を修正．

●その他（テストプログラム，サンプルプログラム等）

・configureとsample/Makefileの修正
	- configureへのオプションで，ライブラリのリンク記述を追加できるよ
	  うに，configureとsample/Makefileを修正．

・テストプログラムの追加
	- [ARM依存部] ARM向けFPUのテスト(1)（arm_fpu1）を追加．

・gentest.rbの拡張（HRMP3カーネル向けのものを導入）
	- マルチプロセッサに対応．
	- 元のファイルを置き換える仕様に変更．
	- ローカル変数を定義する機能を追加．

・トレースログ記録のサンプルコードに他のカーネル向けの拡張を追加

・ドキュメントの充実，コメントの修正

・バージョン番号の更新
	- カーネルとカーネル仕様のバージョン番号を更新．

○ターゲット依存部の要修正箇所（3.4.0 → 3.5.0）

(1) 高分解能タイマが64ビットの場合に対応（オプション）
	- 高分解能タイマを64ビットにできる場合には，必要に応じて対応する．
	  具体的には，ポーティングガイドの(3-8-1)，(5-3-1)，(6-13-2-5)，
	  (6-13-2-7)の設定に対応すること．

(2) [ARM依存部] software_term_hookの呼び出し箇所変更への対応
	- 必要であれば，target_exitにsoftware_term_hookを呼ぶ処理を追加す
	  る．

----------------------------------------------------------------------

		TOPPERS/ASP3カーネル
		Release 3.3.1 から 3.4.0 への主な変更点

○変更点のリスト

●仕様変更，機能拡張

・SILのメモリ空間同期書込み関数の新設
	- sil.hに標準のメモリ空間同期書込み関数を追加．
	- 各ターゲット依存部（またはコア依存部）に，TOPPERS_SIL_WRITE_SYNC
	  の定義を追加．

・コンフィギュレータの仕様変更
	- 条件ディレクティブにより，有効とするC言語プリプロセッサのディレ
	  クティブを選択できるようにした．

・ARMコア依存部，チップ依存部，ターゲット依存部の拡張・仕様変更
	- FPUサポートを追加．

・タイマドライバシミュレータの追加
	- タイマドライバシミュレータ（arch/simtimer）を追加．
	- Mac OS X＋タイマドライバシミュレータ用のターゲットを追加．
	- CT11MPCore＋タイマドライバシミュレータ用のターゲットを追加．
	- Mac OS X向けの高分解能タイマテスト用のターゲットを削除．

・その他の機能拡張
	- コンフィギュレーションスクリプト（configure.rb）に-Bオプションを
	  追加．

●不具合修正

・ref_tskの不具合の修正
	- 二重待ち状態の時に，tskwaitとwobjidが正しく返らない不具合を修正．

・DEF_EXCのエラーチェックの不具合の修正
	- CPU例外ハンドラ番号としては有効だが，DEF_EXCで登録できないものを
	  エラーとして扱えていなかった不具合を修正．

・adj_timで高分解能タイマを無駄に設定する問題の修正
	- adj_timにおいて，is_signal_timeの場合はset_hrt_eventを呼ばないよ
	  うに修正．

・CRE_ALMのエラーチェックの不具合の修正
	- アラーム通知属性としてTA_STAを設定できる（設定してもエラーになら
	  ない）不具合を修正．

・動的生成機能拡張の不具合の修正
	- acre_dtqとacre_pdqで，管理領域の先頭番地のアラインチェックが抜け
	  ていた不具合を修正．

・オーバランハンドラ機能拡張の不具合の修正と実装改善
	- ovrtimer_flagを使用しない実装に変更．
	- オーバランハンドラを定義しない時に生成するデータ構造の修正．
	- ref_ovr内の無駄な条件式を削除．
	- Mac OS Xターゲット依存部を修正．
	- テストプログラムを入れ換え・追加．

・シリアルインタフェースドライバの不具合修正
	- FC_START受信時にコールバックを許可していなかった不具合を修正．

・ARMコア依存部，チップ依存部，ターゲット依存部の不具合の修正
	- 割込みコントローラのアクセス後に，メモリバリアが抜けていた不具合
	  を修正．start_dispatchにも，メモリバリアを追加．
	- MPCore依存部で，TCYC_HRTCNTの定義を解除している不具合を修正．
	- call_exit_kernelで，非タスクコンテキストに設定（excpt_nest_count
	  を1に設定）するように修正．
	- RZ/A1チップ依存部で，SIOドライバの終了処理ルーチンで，シリアルポー
	  トのFIFOが空になるのを待つように修正．

・その他の不具合修正
	- sample/Makefile中のバナー表示の依存関係記述の修正．
	- コンフィギュレーションスクリプト（configure.rb）のオプションの処
	  理を修正．

●実装改善

・初期化ルーチンと終了処理ルーチンの処理方法の変更
	- コンフィギュレータで，初期化ルーチンと終了処理ルーチンを呼び出す
	  関数に代えて，それらの数とテーブルを生成し，それを順に呼び出すよ
	  うに変更．

・get_tidでCPUロック状態にしないように変更

・コンフィギュレータの変更
	- GenerateIncludes（インクルードディレクティブの生成）を新設．
	  IncludeFilesを廃止．
	- rubyの警告が出ないように修正．-wオプションを付与．

・生成スクリプトの変更
	- チェックパスで，非タスクコンテキスト用のスタック領域に関するチェッ
	  ク方法を変更．
	- 動的生成機能拡張のチェックパスで，カーネルメモリプール領域に関す
	  るチェック方法を変更．
	- rubyの警告が出ないように修正．

・トレースログ記録のサンプルコードをターゲット非依存部に
	- トレースログ記録のサンプルコードを組み込むための記述を，ターゲッ
	  ト非依存部に移動．

・低レベル出力をSIOポートから出力するためのコンポーネントを用意
	- tPutLogSIOPort.cdl，tPutLogSIOPort.cを新設．
	- それを使用するように各ターゲット依存部を変更．

・簡易SIOドライバの改善
	- オープン済みフラグの名称をopenedに統一．
	- 終了処理において，SIOポートをクローズするように変更．
	- SIOポートの二重にオープンしないように変更（統一）．
	- SIOポートのクローズは，オープンした時のみ行うように変更．
	- SIOポートのクローズ時に，オープン済みフラグをクリアしていなかっ
	  た問題を修正．

・システムサービスとライブラリの実装の改善
	- システムログ機能とシステムログタスクの無駄な処理の削除．
	- syslog_printの中で改行を出力するように変更．

・非TECS版システムサービスの変更
	- test_svc.cに，get_interrupt_priority_maskを追加．test_svc.hの変
	  更を不要に．
	- sample1.cfgに条件ディレクティブを入れ，TECS版と非TECS版で共用
	  （コンフィギュレータの修正を活用）．

・ARMコア依存部，チップ依存部，ターゲット依存部の変更
	- チップ依存部としてのMPCore依存部（arch/arm_gcc/mpcore）を削除し，
	  ARMコア依存部（arch/arm_gcc/common）にそれに対応するファイルを追
	  加．MPCore依存部を使用するターゲット依存部を，これに対応させる．
	- TCYC_HRTCNT，TSTEP_HRTCNT，TMAX_OVRTIMの定義を，ターゲット依存部
	  に置くように統一．
	- ターゲット依存部のSIOドライバのコンポーネントを，可能であればチッ
	  プ依存部に移動．
	- MPCore依存部のタイマモジュールで，高分解能タイマ割込みの要求方法
	  を変更．スプリアス割込み対策を追加．
	- GIC依存部で，SGIの割込み要求禁止フラグが操作できない場合に対応．
	- CT11MPCore向けのターゲット依存部のタイマモジュールで，QEMUで実行
	  している場合には，ロードレジスタに0を設定しないように修正．
	- CT11MPCore向けのターゲット依存部のサンプルプログラム向けの定義で，
	  QEMUで実行している場合には，MEASURE_TWICEを定義するように変更．
	- RZ/A1チップ依存部から，MPCore依存部を使うように変更．
	- RZ/A1チップ依存部で，シリアルポートの設定をターゲット依存部で上
	  書きできるように変更．

・その他の変更・修正
	- make_wait，wait_wait_tmout，wobj_make_wait，wobj_make_wait_tmout
	  に，タスク状態を渡すパラメータ（tstat）を追加し，タスク状態の設
	  定をこれらの関数内で行うように変更．
	- tmevtb_enqueueをtmevtb_enqueue_reltimにリネーム．
	- request_dispatchをrequest_dispatch_retintにリネーム．
	- signal_timeで，タイムイベントを1つも処理しなかった場合には，シス
	  テムログ機能にメッセージを出すように変更．
	- task.trbに，タスク毎のターゲット依存の処理を追加する仕組み
	  （TargetTaskPrepare）を追加．
	- interrupt.trbとexception.trbに，ターゲット依存のエラーチェックを
	  行う仕組み（TargetCheckCfgInt，TargetCheckDefInh，
	  TargetCheckCreIsr，TargetCheckDefExc）を追加．
	- 並列makeに対応できるように，sample/Makefileを修正．
	- 中間オブジェクトファイルを置くディレクトリを変更できるように変更．
	- テスト実行スクリプト（testexec.rb）の改良．

●その他（テストプログラム，サンプルプログラム等）

・テストプログラムの追加
	- 強制待ち状態に関するテスト(1)（test_suspend1）を追加．

・テストプログラムの変更
	- 高分解能タイマテスト用のテストプログラム（hrt_systim?）を，タイ
	  マドライバシミュレータ用のテストプログラム（simt_systim?）に入れ
	  換え．gentest.rbを，それに対応できるように修正．
	- perf4.cの周期ハンドラ中の不要な変数定義を削除．
	- test_raster1.c中の待ち時間を変更．

・サンプルプログラムの変更
	- プロセッサ時間を消費するためのループの中で，volatile変数を読み出
	  すように変更．プロセッサ時間の消費を独立した関数に．
	- PREPARE_RETURN_CPUEXCを使うのをやめる（使い方が間違っていた）．
	- コードとコメントのブラッシュアップ．
	- 出力メッセージの修正．

・ドキュメントの充実，コメントの修正

・バージョン番号の更新
	- カーネルとカーネル仕様のバージョン番号を更新．

○ターゲット依存部の要修正箇所（3.3.0 → 3.4.0）

(1) request_dispatchをrequest_dispatch_retintにリネーム

(2) メモリ空間同期書込み関数の新設に対応
	- target_sil.h（または，そこからインクルードするファイル）に，
	  TOPPERS_SIL_WRITE_SYNCマクロの定義を追加する．このマクロを実現で
	  きない場合には，TOPPERS_OMIT_SIL_SYNC_WRITEをマクロ定義し，メモ
	  リ空間同期書込み関数の定義を追加する．

(3) 中間オブジェクトファイルを置くディレクトリの変更に対応
	- Makefileのターゲット依存部で，START_OBJS，END_OBJS，HIDDEN_OBJS
	  を定義している場合には，ポーティングガイドの「2.6 リンク方法の設
	  定」の節を参考に，定義を修正する．これらの定義には，"=" ではなく，
	  ":=" を使用することに注意．

(4) カーネルメモリプール領域の先頭番地のチェック方法を指定
	- 動的生成拡張パッケージに対応する場合には，必要に応じて，
	  CHECK_MPK_ALIGNとCHECK_MPK_NONNULLを定義する．

(5) サンプルプログラムの変更に対応
	- 必要であれば，LOOP_REFとTASK_LOOPの値を見直す．

----------------------------------------------------------------------

		TOPPERS/ASP3カーネル
		Release 3.3.0 から 3.3.1 への主な変更点

○変更点のリスト

・システムサービスの実装の改善
	- 実行時間分布集計サービスの各サービスコールの返値の型をERに変更．
	- システムログタスクの無駄な処理の削除．

・非TECS版システムサービスの追加

・ARMコア依存部，チップ依存部，ターゲット依存部の修正
	- 簡易SIOドライバの初期化処理の改善．

・コンフィギュレータの修正
	- cfg1_out.cに生成するC言語プリプロセッサのディレクティブにも，元
	  のファイルの行番号を生成するように修正．

・性能評価プログラムの修正
	- サービスコールからエラーが返った場合に，プログラムを停止させるよ
	  うに修正．

・コメントの修正

・バージョン番号の更新
	- カーネルのバージョン番号を更新．

----------------------------------------------------------------------

		TOPPERS/ASP3カーネル
		Release 3.2.0 から 3.3.0 への主な変更点

○変更点のリスト

・カーネルの実装改善
	- ext_tskの実装を改善．
	- rsm_tskの実装を改善．
	- dspflgとp_schedtskをまとめて更新する関数set_dspflgを導入．
	- change_priorityの実装を修正．

・動的生成機能拡張のカーネルメモリプール管理に関する修正
	- DEF_KMMを，統合仕様書で定義したDEF_MPKにリネーム．
	- カーネルメモリプール領域からのメモリ獲得／解放の関数名の変更．
	- ターゲット非依存部で用意しているデフォルトのメモリプール管理機能
	  を，すべてのメモリ領域が解放されればメモリ領域を再利用するように
	  変更．また，HRP3カーネルへの適用を考慮した実装にした．

・動的生成機能拡張のバグフィックスと実装改善
	- TCB中のlastmtxフィールドの初期化が抜けていたバグを修正．
	- kernel.h中でのacre_tskの返値の型の誤りを修正．
	- acre_mpfで，固定長メモリプール管理領域の確保に失敗した場合の，メ
	  モリプール領域の解放処理のバグの修正．
	- acre_cycとacre_almの実装を改善．
	- CHECK_RSATRをCHECK_VALIDATRにリネーム．
	- サンプルプログラムで，acre_tskとacre_almがエラーとなった場合に対
	  応．

・サブ優先度機能拡張のバグフィックス
	- サブ優先度を使用した場合に，実行すべきタスクの更新が抜けていたバ
	  グを修正．

・TECS関連のバグフィックス等
	- tInterruptHandlerとtCpuExceptionHandlerの2つのセルタイプの定義を
      修正（2つのソースファイルを削除）．
	- eMutex_lockTimeoutの修正（ploc_mtxを呼んでいた）．
	- 周期通知の名前の修正．
	- kernel.cdl中のパラメータ名や型名の誤記の修正．

・システムログ機能の改良
	- システムログ出力のためのライブラリ関数（syslog_n，syslog，
	  t_perror）を，システムログ機能の本体を直接呼び出さずに，システム
	  ログ機能のアダプタ経由で呼び出すように修正した（t_perrorを，シス
	  テムログ出力のための関数という位置付けにした）．
	- tt_syslogとtt_perrorは，ログを生成する関数の位置付けとした．
	- システムログ出力のための下位のライブラリ関数（t_syslog_n）の名称
	  を変更した．

・オフセットファイルの生成方法の変更
	- オフセットファイル生成用の生成スクリプトの記述を，生成されるファ
	  イルの内容が想像しやすい形に変更．
	- TARGET_OFFSET_TRBが定義されていたらoffset.hを生成することとし，
	  OMIT_OFFSET_Hを廃止．
	- オフセットファイル生成用の生成スクリプトでのマジックナンバーによ
	  るチェックを削除（チェック内容がコンフィギュレータと重複していた
	  ため）．

・Makefileの修正
	- TECS関係ファイルのディレクトリ名を定義する変数（TECSDIR）を追加．
	- cfgにカーネルを指定するオプションを変数（CFG_KERNEL）に定義．
	- コンフィギュレーションスクリプト（configure.rb）を，TECS関係ファ
	  イルのディレクトリ名を設定できるように拡張．

・ARMコア依存部，チップ依存部，ターゲット依存部の修正
	- キャッシュの無効化コードの不具合を修正するとともに，全レベルの
	  キャッシュを無効化するように拡張．
	- MMUのページテーブル設定のための定数値で，APXビットという呼称をや
	  めて，APビットが3ビットある扱いに変更．
	- GIC 390 Errataへの対策を追加．
	- RZ/A1チップ依存部に，SMPモードに設定するコードを追加（これがない
	  と，Shareable属性のメモリ領域のキャッシュが有効にならない）．
	- GR-PEACHターゲット依存部の微少時間待ちのための定数の修正．

・テストプログラムから呼び出す自己診断機能を静的設定に変更
	- テストプログラム用サービスのセルから，自己診断機能への呼び口を静
	  的に（dynamic属性を削除）．自己診断サービスのディスクリプタを取
	  得する機能を廃止．
	- テストプログラム用サービスから，自己診断サービスを設定するための
	  関数を廃止．
	- 自己診断サービス使用するテスト用プラットフォームのコンポーネント
	  記述ファイル（test_pf_bitkernel.cdl，test_pf_bitmutex.cdl）を追加．
	- この変更に合わせてテストプログラムを修正．

・テストプログラム用サービスのアダプタを追加
	- TECSで記述されたテストプログラム用サービスをC言語で記述されたア
	  プリケーションから呼び出すためにアダプタを使うように変更．

・トレースログ記録のサンプルコードを改善
	- トレースログ機能のシグニチャ（sTraceLog）からdumpを削除．
	- トレースログ機能内でSYSLOG_GET_LOGTIMを使っていたのを，
	  TRACE_GET_LOGTIMに変更．
	- コードのブラッシュアップ．

・サンプルプログラムの修正
	- 'V'コマンドでプロセッサ時間を使用するように修正．
	- カーネルの自己診断を行うオプション機能を廃止．

・サンプルプログラム(2)の修正
	- サンプルプログラム(1)と同等の機能にした．
	- 割込みサービスルーチンとCPU例外ハンドラを，TECSを使用して登録す
	  るように修正（cdlファイル中で#ifdefが使えないため，INTNO1と
	  CPUEXC1が定義されていないとコンパイルできないものとした）．
	- ciKernel_exitKernelを呼ぶべきところで，誤って
	  ciKernel_senseKernelを呼んでいたのを修正．
	- システムログ機能のマスクの初期値の修正．
	- システムログ機能のアダプタを組み込んだ．
	- 不要なコメントの削除．

・コンフィギュレータの修正
	- パス2で，SIL_ENDIAN_BIT/LITTLEの誤定義を検出するように修正．
	  cfg1_out.cに検出処理を生成するのをやめる．
	- その他にASP3カーネルに関係しない修正を実施．

・テストプログラムの追加
	- 自タスクの終了に関するテスト（test_exttsk）を追加．

・テストプログラムの修正
	- タスク終了要求機能に関するテスト(2)（test_raster2）の待ち時間を
	  調整．

・ダミーのターゲット依存部（target/dummy_gcc）の修正
	- Release 3.2.0に対応させた（前リリースでの対応漏れ）．
	- スタートアップモジュールを用意（main関数をスタートアップモジュー
	  ルに移動）．
	- ライブラリへの依存性を下げるために，exitとabortを呼ぶのをやめ，
	  無限ループに変更．

・その他の修正
	- kernel.hにCOUNT_MB_TとROUND_MB_Tの定義を追加．
	- メッセージバッファ機能拡張で，メッセージバッファ管理領域を確保す
	  る時のデータ型を，uint_tからMB_Tに変更．
	- テストプログラム用サービスと実行時間分布集計サービス（TECSで記述
	  されたもの）で，返り値の型がvoidであった関数の返り値の型をERに変
	  更（HRP3で警告を防ぐため）．
	- 各rubyスクリプトに，外部エンコーディングをUTF-8にする記述を追加．
	- genrename.rbのリネーム定義生成ルールの変更．

・ドキュメントの充実，コメントの修正

・バージョン番号の更新
	- カーネルのバージョン番号を更新．

○ターゲット依存部の要修正箇所（3.2.0 → 3.3.0）

(1) メモリプール管理機能の変更（動的生成機能拡張に対応している場合）
	- メモリプール管理機能のインタフェースを変更したことに対応する．詳
	  しくは，ポーティングガイドの「6.15 動的メモリ管理」の節を参照す
	  ること．

(2) オフセットファイルの生成方法の変更に対応
	- オフセットファイル生成用の生成スクリプト（標準的には，
	  target_offset.trb）の記述を，GenerateDefine関数と
	  GenerateDefineBit関数を使わないように変更する（現バージョンでは
	  古い記述のままでも動作する）．詳しくは，ポーティングガイドの
	  「2.5 オフセットファイルの生成方法」の節を参照すること．
	- target_cfg1_out.h（または，そこからインクルードされるファイル）
	  のMAGIC_1，MAGIC_2，MAGIC_4の定義を削除する．
	- オフセットファイルを生成する機能を使う場合には，必ず（標準のパス
	  名であっても）TARGET_OFFSET_TRBを定義する．
	- オフセットファイルを生成する機能を使わない場合のOMIT_OFFSET_Hの
	  定義を削除する．

(3) ARMコア依存部の変更に対応（ARMコア依存部を利用している場合）
	- MMUのページテーブル設定のための定数値の変更に対応する．
		例）ARMV6_MMU_DSCR1_APX0|ARM_MMU_DSCR1_AP11
			→ ARMV6_MMU_DSCR1_AP011

----------------------------------------------------------------------

		TOPPERS/ASP3カーネル
		Release 3.1.0 から 3.2.0 への主な変更点

○変更点のリスト

・割込み管理機能の拡張
	- clr_int，ras_int，prb_intの3つのサービスコールの追加．
	- それに合わせてターゲット依存部の仕様を拡張／整理．

・アイドル処理の設計変更（ターゲット依存部のみの修正）
	- アイドル処理中で発生した割込みからは，リターンしない設計に変更．

・割込み要求のセット関数の追加（ターゲット依存部のみの修正）
	- ターゲット依存部で，割込み要求をセットする関数（raise_int）を用
	  意することにした．
	- RZ/A1チップ依存部を，clear_int，probe_int，raise_intを使用するよ
	  うに修正．

・テストプログラムから呼び出す自己診断サービスをTECSを用いて構築

・動的生成機能拡張パッケージのバグフィックス
	- acre_tskで，優先度の高いタスクを生成・起動してもディスパッチが起
	  こらない不具合を修正．
	- acre_flgで，CPUロックの解除が抜けていた不具合を修正．
	- fsnd_dtqで，E_ILUSEエラーのチェック方法を修正．
	- get_tstとfsnd_dtqで，エラーコードにE_OKを上書きしている不具合を
	  修正．
	- check_nfyinfoで，エラーの通知処理が指定されていない場合にエラー
	  となる不具合を修正．
	- notify_handlerで，snd_dtqを呼んでいたのをpsnd_dtqに修正．
	- acre_tskで，p_tinib->stkszに格納する値（stksz）を丸めた値とする
	  ように修正．

・ARMコア依存部，ターゲット依存部の修正
	- GICターゲット依存部を，clr_int，ras_int，prb_intをサポートするよ
	  うに修正．その際に，raise_intがソフトウェア生成割込み（SGI）に対
	  応できるように拡張．
	- GICターゲット依存部で，SGIに対応する割込みコンフィギュレーション
	  レジスタには，書き込みを行わないように修正．
	- Makefile.coreにおけるGCC_TARGETの定義を上書き可能にした．
	- current_cpsr/set_cpsrをcore_rename.defでリネームするのをやめた．
	- MPCoreチップ依存部のタイマの実装が，高い周波数が入力されている場
	  合に対応できない問題を修正．
	- CT11MPCore向けのターゲット依存部で，コア0以外で実行するための設
	  定を削除．MPCORE依存部の「#ifdef CORE0」を削除．

・コンフィギュレータの修正
	- cfg1_out.cに，SIL_ENDIAN_BIT/LITTLEの誤定義の検出処理を生成する
	  ように修正．

・テストプログラムの追加
	- 割込み管理機能のテスト(1)（test_int1）を追加．

・その他の修正
	- offsetofの定義を改善．
	- gentest.rbを，ISRと割込みハンドラを扱えるように修正．
	- sample/Makefile中のコンパイラに対する-Tオプションを，-Wl,-Tオプ
	  ションに変更．
	- バナーのコピーライトの年を修正．

・ドキュメントの充実，コメントの修正

・バージョン番号の更新
	- カーネルのバージョン番号を更新．

○ターゲット依存部の要修正箇所（3.1.0 → 3.2.0）

(1) アイドル処理の設計変更
	- アイドル処理の設計変更に伴い，ディスパッチャ本体のアイドル処理，
	  割込みハンドラの出入口処理，CPU例外ハンドラの出入口処理を修正す
	  る（ターゲット非依存部には修正が加わっていないため，ターゲット依
	  存部を修正しなくても動作するが，今後のことを考え，修正することを
	  推奨する）．

(2) 割込み管理機能の拡張への対応
	- TOPPERS_TARGET_SUPPORT_CLR_INT，TOPPERS_TARGET_SUPPORT_RAS_INT，
	  TOPPERS_TARGET_SUPPORT_PRB_INTの定義を追加する（サポートする場合
	  のみ）．
	- VALID_INTNO_CLRINT，VALID_INTNO_RASINT，VALID_INTNO_PRBINTの定義
	  を追加する（必要な場合のみ）．
	- check_intno_cfg，check_intno_clear，check_intno_raise，raise_int
      を追加する．
	- disable_int，enable_int，clear_int，probe_intの仕様変更に対応す
	  る．

(3) 割込み要求のクリアの確認
	- 割込み要求ラインがエッジトリガであり，トリガされた割込み要求がハー
	  ドウェアで自動的にクリアされない場合に，割込みハンドラの出入口処
	  理でクリアを行っているかを確認する．

----------------------------------------------------------------------

		TOPPERS/ASP3カーネル
		Release 3.0.1 から 3.1.0 への主な変更点

○変更点のリスト

・静的APIのパラメータの省略
	- CRE_TSKのstk，CRE_DTQのdtqmb，CRE_PDQのpdqmb，CRE_MBFのmbfmb，
	  CRE_MPFのmpfとmpfmb，DEF_ICSのistkの記述を省略可能にした．

・コンフィギュレータの仕様変更に対応
	- StrValクラスをNumStrクラスに置き換えたことに対応．
	- シンボル取得シンボルテーブルでbool型をサポートしたのを活用するよ
	  うに変更．
	- シンボル取得シンボルテーブルにより取得した値を，StrValクラスのオ
	  ブジェクトにしてグローバル変数に設定していたのを，値のままで設定
	  するように変更したのに対応．
	- 一般定数式パラメータの値を，（StrValクラスではなく）Stringクラス
	  のオブジェクトで保持するように変更したのに対応．

・動的生成機能拡張パッケージの修正
	- acre_yyyで，パケットの内容をローカル変数にコピーするように修正．
	- DEF_KMMのkmmパラメータを省略可能に．

・バグフィックス
	- コンフィギュレータのパス3で，オブジェクトのID番号の割付けを外部か
	  ら取り込んでいる場合に対応．
	- test_dlynse.cを，TCYC_HRTCNTが定義されている場合に対応．
	- bit_kernel.cを，p_schedtskとdspflgの整合性を検査するように修正．
	- 静的APIのパラメータ末に改行がある場合の不具合を修正．

・ARMコア依存部の修正
	- GR-PEACH向けのターゲット依存部と，RZ/Aシリーズのチップ向けのコア
	  依存部を追加．
	- スタックポインタを8バイト境界でアラインさせるように修正．
	- sil_dly_nseを，分岐予測がある場合に対応できるように修正．
	- ベクタテーブルを置くセクション名を".vector"に変更．32バイト境界で
	  アラインさせるように修正．

・テストプログラムの修正
	- 時間パラメータを，TEST_TIME_CPとTEST_TIME_PROCを用いて記述．
	- test_dlynse.cを，TCYC_HRTCNTを参照するように修正．

・サンプルプログラムの修正
	- 割込みの動作確認を行えるように修正（ターゲット依存）．

・その他の修正
	- kernel_impl.hからCASTマクロの定義を削除．
	- コンフィギュレータのパス3で，最適化により変数がなくなるケースに対
	  応．
	- 符号無しのパラメータのエラーチェックを，0以下でチェックするのでは
	  なく，0との一致でチェックするように修正．
	- 生成スクリプトの記述スタイルの修正．
	- テストがエラーになった時に'\007'を出力するように修正．
	- libkernel.aのリンク方法を変更（HRP3の都合）．
	- gentest.rbの改善．

・ドキュメントの充実，コメントの修正

・バージョン番号の更新
	- カーネルのバージョン番号を更新．

○ターゲット依存部の要修正箇所（3.0.1 → 3.1.0）

(1) コンフィギュレータの仕様変更に対応
	- StrValクラスをNumStrクラスに置き換えたことに対応する．
	- シンボル取得シンボルテーブルでbool型をサポートしたことに伴い，
	  bool型で取得するように変更したシンボルについて，生成スクリプト内
	  で参照している箇所を修正する．例えば，「$SYMBOL == 1」により定義
	  の有無をチェックしている場合には，単に「$SYMBOL」に変更する．
	- シンボル取得シンボルテーブルにより取得した値を，StrValクラスのオ
	  ブジェクトにしてグローバル変数に設定していたのを，値のままで設定
	  するように変更したのに対応する．
	- 一般定数式パラメータの値を，（StrValクラスではなく）Stringクラス
	  のオブジェクトで保持するように変更したのに対応する．
	- $bLittleEndianを参照していれば，$endianLittleに変更する．

(2) CASTマクロの定義方法の変更への対応
	- CASTマクロを使用しているヘッダファイルの先頭に，CASTマクロの定義
	  を含める．

(3) テストプログラムの時間パラメータの変更への対応
	- 必要であれば，target_test.hに，TEST_TIME_CPとTEST_TIME_PROCの定義
	  を含める（TEST_TIME_CPのデフォルトは，長めの時間になっている）．

(4) init_tskinictxb関数のパラメータの変更への対応
	- ターゲット依存部でTSKINICTXBを定義しており，動的生成機能拡張パッ
	  ケージをサポートする場合には，init_tskinictxb関数のパラメータの変
	  更に対応する．

(5)［ARM依存部］コア共通部の修正への対応
	- irc_begin_int/excからirc_end_int/excに情報を渡す方法を変更する（1
	  ワードであれば，スタックの先頭を使うことができる）．また，スタッ
	  クポインタを8バイト境界でアラインさせるように修正する．
	- ベクタテーブルを置くセクション名を".vector"に変更したのに対応する．
	- sil_dly_nseのパラメータを再調整する．

----------------------------------------------------------------------

		TOPPERS/ASP3カーネル
		Release 3.0.0 から 3.0.1 への主な変更点

○変更点のリスト

・コンフィギュレータの修正
	- BCOPYの不具合を修正（SRecordクラスの実装を改良）．
	- エラーメッセージの修正．
	- DOMAIN記述とCLASS記述を受け付けるように修正（ASP3カーネルには関係
	  なし）．
	- エラーメッセージの展開機能を活用した記述に修正．

・TECS関連の修正
	- 変数名の修正（dataqueueSentValue）．
	- tTimeEventHandlerのアダプタ関数を，プラグインで生成するようにした
	  ことに対応．tTimeEventHandler.cを削除．

・バグフィックス
	- kernel_check.trbのLMAからVMAへのコピーの不具合の修正．
	- コンフィギュレータのエラー出力コードの不具合の修正．
	- コンフィギュレータが出力するエラーコードの誤りの修正．

・その他の修正
	- GetStackTskinictxbの第3パラメータに，タスク初期化ブロックの先頭番
	  地を渡すように修正．

・バージョン番号の更新
	- カーネルのバージョン番号を更新．

○ターゲット依存部の要修正箇所（3.0.0 → 3.0.1）

(1) GetStackTskinictxbの修正
	- ターゲット依存部でGetStackTskinictxbを定義していれば，第3パラメー
	  タを受け取るように修正する．

----------------------------------------------------------------------

		TOPPERS/ASP3カーネル
		Release 3.B.0 から 3.0.0 への主な変更点

○変更点のリスト

・TECSの導入
	- システムサービスを，TECSを用いて構築．
	- システムログ機能でログの出力先の初期値を組み上げ記述で指定できる
	  ようにし，デフォルトの設定値を変更．ログタスクの起動時に設定する
	  のをやめる．
	- トレースログ記録のサンプルコードのTECS化に伴い，ディレクトリを
	  arch/tracelogに変更．

・Ruby版コンフィギュレータの導入
	- すべてのテンプレートファイルを，Rubyで記述された生成スクリプトに
	  置き換えた．
	- kernel_api.csvをkernel_api.defにリネームし，フォーマットを変更．
	- kernel_def.csvをkernel_sym.defにリネームし，フォーマットを変更．
	- Makefileの変更（依存関係やルールの整理も実施）．
	- サンプルプログラムおよびテストプログラムのシステムコンフィギュレー
	  ションファイルから，kernel_timer.cfgのインクルードを削除（Makefile
	  側で対応した）．
	- --external-idを廃止．コンパイルオプションで同じことができるように
	  修正．

・変数のインクリメントによるイベント／エラー通知の追加

・lock_cpu_dsp／unlock_cpu_dspの導入
	- タスクディスパッチできる状態において，CPUロック状態に遷移／復帰さ
	  せる関数として，lock_cpu_dsp／unlock_cpu_dspを導入した．

・非タスクコンテキストからのディスパッチ要求
	- 非タスクコンテキストにおいてタスク切換えが必要になった場合に，
	  request_dispatchを呼ぶように修正した（ARM Cortex-M対応）．

・タイムイベント管理の改良（HRP3カーネルとの整合性のため）
	- タイムイベントヒープ中での位置の表現を，インデックスからポインタ
	  に変更．
	- タイムイベントの発生時刻を，タイムイベントブロック中に持つように
	  変更．

・バグフィックス
	- 通知ハンドラのための変数にstaticを付けるのをやめる．

・テストプログラムの追加
	- イベントフラグ機能のテスト(1)（flg1）を追加．
	- データキュー機能のテスト(1)（dtq1）を追加．
	- カーネル性能評価プログラム(5)（perf5）を追加．

・kernel_cfg.h，offset.hへの依存関係の修正
	- move-if-changeを用いて，不必要な再コンパイルが行われないように，
	  Makefileと各テンプレートファイルを修正．
	- utils/move-if-changeを追加．

・Makefileの修正
	- 依存関係ファイルを，GCCの-MDオプションを用いて生成するように修正．
	- APPLDIR，APPL_DIR，SYSSVC_DIR，KERNEL_DIRを，それぞれ，…DIRS（複
	  数形）にリネーム．
	- DEVTOOLDIRの新設．
	- SYSSVC_LIBSの廃止．
	- DBGENVの廃止．
	- 不要になった変数等の削除．

・ユーティリティのRuby化
	- コンフィギュレーションスクリプト（configure）と4つのユーティリティ
	  プログラムを，PerlからRubyにポーティング．

・コンフィギュレーションスクリプト（configure.rb）の大幅な仕様変更
	- サンプルプログラムを生成する処理を削除．
	- パラメータからシンボル定義を取り込む機能を追加．
	- -uオプションを廃止（-aオプションに統合）．
	- -tオプションと-dオプションの役割を変更．
	- -cオプション，-Cオプション，-wオプション，-Vオプション，-Gオプショ
	  ンを追加．
	- -pオプション，-Pオプションを廃止．
	- コンフィギュレータが用意できているかのチェックを削除．

・その他の修正
	- OVRTIM型をPRCTIM型にリネーム．
	- コンフィギュレータのエラーメッセージの修正．
	- bit_kernel.c，bit_mutex.cを見直し（ASP3対応を考慮．タスク優先度拡
	  張パッケージに対応）．
	- test_raster1を，bit_kernelを使用するように修正．
	- 性能評価プログラムで実行時間分布を表示する際に，システムログ機能
	  のフラッシュを呼ぶのをやめる（低レベル出力を使うので不要）．
	- テストプログラム用サービスの関数定義方法を変更．
	- オーバランハンドラ拡張パッケージのテストプログラムの修正．
	- トレースログ機能のログ時刻を取り出すマクロ名を変更．
	- トレースログ機能のモードの扱いの見直し．
	- TOPPERS_LABEL_ASMの廃止．

・ドキュメントの充実，コメントの修正
	- マイグレーションガイド（migration.txt）を追加．

・バージョン番号の更新
	- カーネルのバージョン番号を更新．

○ターゲット依存部の要修正箇所（3.B.0 → 3.0.0）

(1) TECSの導入への対応
	- ポーティングガイドの８章を参照し，システムサービスのターゲット依
	  存部の実装を全面的に見直す（システムログの低レベル出力のための文
	  字出力関数がカーネル実装のターゲット依存モジュールに記述されてい
	  た場合，削除するのを忘れないようにすること）．
	- ポーティングガイドの6.11節を参照し，トレースログ記録のサンプルコー
	  ドに関する設定を見直す．

(2) Ruby版コンフィギュレータの導入への対応
	- ターゲット依存部のテンプレートファイル（tfファイル）を，Rubyで記
	  述された生成スクリプトに置き換える（trbファイル）．その際に，
	  target.tfに対応するファイルの名前は，target_kernel.trbとする．
	- target_def.csvをtarget_sym.defにリネームし，フォーマットを変更す
	  る．
	- target_kernel.cfgを作成する（ASP3カーネルでは，target_timer.cfgを
	  インクルードするだけの内容になる）．
	- Makefileのターゲット依存部の--cfg1-def-tableオプションを，
	  --symval-tableオプションに変更する（指定するファイルも変更）．
	- Makefileのターゲット依存部で，OFFSET_TF，TARGET_TF，
	  TERGET_CHECK_TFを設定している記述があれば，それぞれ，OFFSET_TRB，
	  TARGET_KERNEL_TRB，TARGET_CHECK_TRBに変更する（指定するファイルも
	  変更）．また，必要に応じて，TARGET_KERNEL_CFGの設定を追加する．

(3) lock_cpu_dsp／unlock_cpu_dspの定義を追加
	- lock_cpu_dsp／unlock_cpu_dspの定義を追加する．最適化をしないので
	  あれば，lock_cpu／unlock_cpuに定義すればよい．

(4) request_dispatchの定義を追加
	- request_dispatchの定義を追加する．標準通りの実装の場合は，空に定
	  義すればよい．

(5) OVRTIM型をPRCTIM型にリネーム
	- ターゲット依存部でOVRTIM型を使っている箇所があれば，PRCTIM型に修
	  正する．

(6) Makefileのターゲット依存部の修正
	- APPL_DIR，SYSSVC_DIR，KERNEL_DIRを設定している記述があれば，それ
	  ぞれ，APPL_DIRS，SYSSVC_DIRS，KERNEL_DIRSにリネームする．
	- SYSSVC_LIBSを使用していれば，LIBSを使用するように修正する．
	- 依存関係を作成するルールを削除する．

(7) 開発環境依存のコンパイルオプション
	- Makefileのターゲット依存部で，DBGENVを設定している記述があれば，
	  COPTSを用いた設定に変更する．

(8) TOPPERS_LABEL_ASMの廃止への対応
	- アセンブリ言語レベルの識別名が，C言語レベルの識別名の先頭に"_"が
	  付いたものになる場合，アセンブリ言語で定義／参照する関数や変数な
	  どについて，ターゲット依存部のリネーム記述にリストアップする．

----------------------------------------------------------------------

		TOPPERS/ASP3カーネル
		Release 3.A.0 から 3.B.0 への主な変更点

○変更点のリスト

・周期ハンドラ機能とアラームハンドラ機能を，周期通知機能とアラーム通知
　機能に拡張

・有効な割込み番号，割込みハンドラ番号，CPU例外ハンドラ番号，割込み優先
　度をターゲット依存部で定義する方法の変更

・delay_for_interruptの導入
	- 一時的にCPUロック状態を解除する時に，割込みが受け付けられるように
	  するための関数として，delay_for_interruptを呼び出すようにした．

・テストプログラム用ライブラリの修正
	- テストプログラム用サービスの位置付けとし，ファイル名とディレクト
	  リを変更．
	- test_finishはサービスの内部関数とし，外部からはcheck_finish(0U)を
	  呼ぶように変更（保護機能対応カーネルを考慮した修正）．
	- check_stateから，check_ipmを分離．check_state_iを廃止．
	- syslog_flushを，syslog_fls_logとリネームし，システムログ機能のサー
	  ビスコールと位置付けることに．

・実行時間分布集計モジュールの修正
	- 実行時間分布集計サービスの位置付けとし，ディレクトリを変更．
	- print_histで，ログ情報の出力関数をパラメータとして渡すように変更．

・テストプログラムの追加
	- 通知処理のテスト(1)（test_notify1）を追加．
	- ドリフト調整機能拡張パッケージにドリフト調整機能のテスト(1)
	  （test_drift1）を追加．

・その他のバグフィックス
	- トレースログ記録のサンプルコードの修正（SYSLOG型の変更への追従漏れ）．
	- test_cpuexc10.cのチェック値の誤りの修正．
	- makereleaseのエラーチェックコードの修正．

・その他の修正
	- LOG_DSP_ENTERの呼出し箇所を変更した（ポーティングガイド）．
	- USE_INHINIB_TABLEとUSE_INTINIB_TABLEの定義方法を変更した．
	- CANNOT_RETURN_CPUEXCをPREPARE_RETURN_CPUEXCに置き換えた．
	- kernel_chk.tfのリファクタリング．
	- ヘッダファイルが自己完結するように修正．
	- インクルード記述の方法を変更．
	- syslog_ref_logの出口のログ出力マクロ（LOG_SYSLOG_REF_LOG_LEAVE）
	  のパラメータにエラーコードを追加．
	- MakefileにおけるLDFLAGSの意味を変更．
	- trace_config.cfgを追加．

・ドキュメントの充実，コメントの修正

・バージョン番号の更新
	- カーネルのバージョン番号を更新．

○ターゲット依存部の要修正箇所（3.A.0 → 3.B.0）

(1) CHECK_INTPTR_ALIGNとCHECK_INTPTR_NONNULLの追加
	- 必要であれば，CHECK_INTPTR_ALIGNとCHECK_INTPTR_NONNULLの定義を追
	  加する．

(2) 有効な割込み番号，割込みハンドラ番号，CPU例外ハンドラ番号，割込み優
	先度の定義方法の変更
	- VALID_INTNOを用意する（必要ない場合もある）．
	- VALID_INTNO_DISINT／VALID_INTNO_CREISRの定義がVALID_INTNOと一致し
	  ていれば，定義を削除する．
	- VALID_INTNO_CFGINTをVALID_INTNOに，INTNO_CFGINT_VALIDをINTNO_VALIDに，
	  それぞれ置き換える．
	- VALID_INHNO_DEFINHをVALID_INHNOに，INHNO_DEFINH_VALIDをINHNO_VALIDに，
	  それぞれ置き換える．
	- VALID_EXCNO_DEFEXCをVALID_EXCNOに，EXCNO_DEFEXC_VALIDをEXCNO_VALIDに，
	  それぞれ置き換える．
	- INTNO_CREISR_VALID／INHNO_CREISR_VALIDの定義が，それぞれINTNO_VALID／
      INHNO_VALIDと一致していれば，定義を削除する．
	- INTPRI_CFGINT_VALIDの定義が標準通りでよい場合には，定義を削除する．

(3) MakefileにおけるLDFLAGSの意味の変更
	- これまで，LDFLAGSはカーネルのリンク時にのみ適用され，cfg1_out.cの
	  リンク時には適用されなかったが，その両方に適用されるようになった．
	  そのため，両者のリンク時に必要なオプションは，LDFLAGSに追加すれば，
	  CFG1_OUT_LDFLAGSには追加しなくてよくなった．一方，カーネルのリン
	  ク時のみに適用したいオプションは，OBJ_LDFLAGSに追加する．

(4) delay_for_interruptの追加
	- delay_for_interruptの実装を追加する．

(5) USE_INHINIB_TABLEとUSE_INTINIB_TABLEの定義方法の変更
	- コンフィギュレータのパス2のテンプレートファイルのターゲット依存部
	  で，USE_INHINIB_TABLE／USE_INTINIB_TABLEを設定していた場合には，
	  カーネルのターゲット依存部でのマクロ定義に変更する．また，ターゲッ
	  ト依存部で定義していたINHINIB／INTINIBを，必要に応じて削除する．

(6) CANNOT_RETURN_CPUEXCをPREPARE_RETURN_CPUEXCに置き換え
	- PREPARE_RETURN_CPUEXCの定義を追加する．CANNOT_RETURN_CPUEXCが定義
	  されていた場合には，PREPARE_RETURN_CPUEXCを定義しない．

(7) LOG_DSP_ENTERの呼出し箇所を変更に対応
	- ポーティングガイドにおいて，LOG_DSP_ENTERの呼出し箇所を変更し，
	  dispatcher_0のラベルを設けたのに対応する（本質的には同じことなの
	  で，コードを修正しなくても問題ない）．

(8) インクルード記述の方法の変更に対応
	- 開発環境／プロセッサコア／チップ依存部ディレクトリに置かれている
	  ヘッダファイルのインクルード方法を変更する．詳しくは，「ターゲッ
	  ト依存部 ポーティングガイド」の「1.4 インクルード記述の方法」の節
	  を参照すること．

----------------------------------------------------------------------

		TOPPERS/ASP3カーネル
		Release 1.9.1 から 3.A.0 への主な変更点

○主な変更点のリスト

※ 以下の変更点のリストは，主なもののみをリストアップしたものであり，網
   羅的なリストではない．

・機能の追加／廃止
	- ミューテックス機能を標準パッケージに追加（一部機能制限あり）．
	- タスク例外処理機能を廃止し，タスク終了要求機能を追加．
	- メールボックス機能を廃止．
	- システム時刻の調整機能と設定機能を追加．
	- 起動要求をキューイングしないタスクを追加．
	- タスクとスケジューリング状態の参照機能を追加．

・拡張パッケージの追加／廃止
	- ドリフト調整機能拡張パッケージを追加．
	- サブ優先度機能拡張パッケージを追加．
	- ミューテックス機能拡張パッケージを廃止（標準パッケージに）．

・仕様の変更
	- SIZE型をsize_t型に変更．
	- システム時刻，相対時間，タイムアウト時間の時間単位を，マイクロ秒
	  に変更．システム時刻のサイズを64ビットに変更．相対時間とタイムア
	  ウト時間のサイズを32ビットと規定．タイムアウト時間を符号無し整数
	  型に変更．
	- サービスコール名が"i"で始まる非タスクコンテキスト専用のサービスコー
	  ルを廃止し，非タスクコンテキストからもタスクコンテキストと同じ名
	  称のサービスコールを呼び出せるように．
	- ena_intとena_intを，非タスクコンテキストから呼び出せるように．
	- ATT_ISRを廃止して，CRE_ISRを追加．
	- get_utmを廃止して，fch_hrtを追加．
	- 割込みサービスルーチンとタイムイベントハンドラの実行開始／リター
	  ン時の割込み優先度マスクの扱いを変更．

・タイムイベント処理のティックレス化
	- タイムイベント処理モジュールを全面的に修正．

・スケジューラの実装の変更
	- アイドル処理の実装方法を変更（主にターゲット依存部）．
	- reqflgとipmflgを廃止．disdspをenadspに変更．
	- スケジューラの関数が，ディスパッチの要否を返すのをやめた．
	- p_schedtskの意味を，最高優先順位のタスクから，実行すべきタスクに
	  変更（ディスパッチ保留状態での扱いが異なる）．

・その他の実装の変更
	- kernel.tfを，機能モジュール毎に分割．
	- 静的エラーのチェック方法（CHECKマクロの構成）を変更．
	- サービスコールの出口ログマクロのパラメータを変更．
	- lock_cpu／unlock_cpu／sense_lockを，タスクコンテキスト用と非タス
	  クコンテキスト用で別々に用意するのをやめた．
	- TCB中での待ち状態の表現方法を変更．
	- WINFO_FLG中のwaiptnとflgptnを共用（flgptnを廃止）．
	- WINFO_SDTQ／SPDQとWINFO_RDTQ／RPDQを区別して扱うように修正．

・バージョン番号の更新
	- カーネルのバージョン番号を更新．

○ターゲット依存部の主な要修正箇所（1.9.0 → 3.A.0）

(1) target_config.[hc]を，target_kernel_impl.[hc]にリネーム

(2) オフセットファイルの生成方法の変更
	- target_cfg1_out.hに，TCBのデータ定義が含まれている場合には，新し
	  いTCBの構造に合わせて修正する．
	- オフセットファイル（offset.h）を，makeoffset.cとgenoffsetを用いて
	  生成している場合には，コンフィギュレータを用いる方法に変更する．

(3) メモリ領域をサイズを表すデータ型の変更
	- t_stddef.hに，size_t型の定義が含まれるようにする．
	- TOPPERS_sizeの定義を削除する．
	- SIZE型を使っているところを，size_t型に変更する．

(4) コンテキスト依存で呼び出す関数の変更
	- x_lock_cpu／x_unlock_cpu／x_sense_lock／x_disable_int／x_enable_int／
	  x_clear_int／x_probe_intを，"x_"を外した名前に変更する．これらの
	  関数に対応する"t_"または"i_"で始まる関数は削除する．
	- x_define_inh／x_config_int／x_define_excを使用している場合には，
	  これらを，"x_"を外した名前に変更する．
	- x_set_ipm／i_set_ipm／x_get_ipm／i_get_ipmを削除する（"t_"で始ま
	  る関数は残す）．
	- i_begin_intとi_end_intを削除する．

(5) ディスパッチャ本体の変更
	- dispatcher中のアイドル処理の実装を変更する．
	- log_dsp_enterを呼ぶ処理を，ディスパッチャ本体から，それを呼ぶ処理
	  の側（dispatch，exit_and_dispatch，割込みの出入口処理，CPU例外の
	  出入口処理）に移動する．

(6) ディスパッチャの動作開始処理の変更
	- start_dispatchに，スタックをIDが1のタスクのスタック領域に切り換え
	  る処理を追加する．

(7) 割込みハンドラ／CPU例外ハンドラの出入口処理の変更
	- reqflgの廃止に対応する．
	- タスク切換えの条件判定で，dspflgをチェックする必要がなくなったこ
	  とに対応する．
	- アイドル処理の実装変更により，ret_int／ret_excからのタスク切換え
	  において，p_runtskがNULLとなっている状況を考える必要が生じたこと
	  に対応する．

(8) テンプレートファイル変数の変更
	- INTNO_ATTISR_VALIDとINHNO_ATTISR_VALIDを，INTNO_CREISR_VALIDと
	  INHNO_CREISR_VALIDに変更する．

(9) 高分解能タイマドライバの実装
	- ティックベースのタイマドライバを削除し，高分解能タイマドライバを
	  実装する．

----------------------------------------------------------------------
