
		TOPPERS/FMPカーネル
		変更履歴

		対応バージョン: Release 1.4.1
		最終更新: 2024年11月13日

このドキュメントは，TOPPERS/FMPカーネルのRelease 0.A.0以降の変更履歴を，
新しい方から順に記述したものである．

----------------------------------------------------------------------
 TOPPERS/FMP Kernel
     Toyohashi Open Platform for Embedded Real-Time Systems/
     Flexible MultiProcessor Kernel

 Copyright (C) 2005-2016 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 1359 2024-11-13 06:51:31Z ertl-honda $
----------------------------------------------------------------------
           TOPPERS/FMPカーネル
        Release 1.4.0 から 1.4.1 への変更点
        リリース日時 2024-11-13
        
○変更点のリスト
・./kernel/spin_lock.c
  ・force_unlock_spin() において，スピンロックを解放後にlock_flgを
    falseにしていた問題を修正．
   
---------------------------------------------------------------------- 
           TOPPERS/FMPカーネル
        Release 1.3.1 から 1.4.0 への変更点
        リリース日時 2017-5-22
        
○変更点のリスト
・文字コードをUTF-8に変更．
・make depend を廃止．  
・オブジェクトファイルを obj 以下に生成するように変更．
    
----------------------------------------------------------------------
           TOPPERS/FMPカーネル
        Release 1.3.0 から 1.3.1 への変更点
        リリース日時 2016-5-27
        
○変更点のリスト
・./kernel/wait.c
  ・init_wait_queue()において，ロックの返却を release_tsk_lock() を使
    っていた問題を修正． 

----------------------------------------------------------------------        
          TOPPERS/FMPカーネル
        Release 1.2.3 から 1.3.0 への変更点
        リリース日時 2015-2-17

○変更点のリスト
・./kernel/kernel_impl.h
	存在しないkerflgのextern宣言を削除．
・./kernel/pridataq.c
	ipsnd_pdq()においてロックを全て解放する前に割込みを許可するパスが
	存在していた問題を修正．
	
・ASP カーネル 1.9.1追従

	・その他の修正
		- xsns_dpnとxsns_xpnで，kerflgもチェックするように修正（安全性の向
		  上のための修正）．
		- kernel.tf中で，スタック領域の確保にALLOC_STACKを使うように修正．

・ASP カーネル 1.9.0追従

	・コンフィギュレータのパス3のテンプレートファイルに，ターゲット依存部で
	　設定したセクションを，LMAからVMAにコピーする処理を追加

	・サンプルのMakefileの修正
		- C言語の時に-lcを付けるように修正．
		- CFG_OBJSを，CFG_ASMOBJSとCFG_COBJSに分離．

	・先頭番地のチェックコードの修正
		- 先頭番地のサイズが固定値になっていたところを，sizeof_FPに修正．
		- オーバランハンドラ機能拡張において，オーバランハンドラの先頭番地
		  のチェックを追加．

	・静的APIにおけるエラーチェックの追加
		- 符号無しのパラメータに負の値を指定した場合のエラーチェックを追加．
		- イベントフラグの初期ビットパターンのエラーチェックを追加．

	・その他のバグフィックス
		- kernel_def.csvにTARGET_MIN_ISTKSZを追加．
		- オーバランハンドラ機能拡張で，オーバランハンドラをサポートしてい
		  ないターゲットでDEF_OVRを使用した場合には，コンフィギュレータでエ
		  ラーとするように修正．

	・その他の修正
	- スタック領域と固定長メモリプール領域の先頭番地をユーザが指定した
	  場合には，kernel_cfg.c中で(void *)型にキャストするように修正．動
	  的生成機能拡張のカーネルが割り付けるメモリ領域の先頭番地も同様．
	- TNUM_PORTが5以上の時は，serial.cでエラーを報告する．
	- makedepとmakereleaseを改善．

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

	(1) CFG_OBJSをCFG_COBJSにリネーム
		- Makefileのターゲット依存部でCFG_OBJSを定義している場合には，
		  CFG_COBJSにリネームする．

・ASP カーネル 1.8.0追従

	・char_t型の廃止

	・SILのメモリ空間読出し関数に渡すポインタの属性の変更
		- sil_r??_???に渡しポインタに，const属性を追加．

	・非タスクコンテキスト用のスタック領域のサイズチェックの追加
		- DEF_ICSのistkszがターゲット定義の最小値（TARGET_MIN_ISTKSZ）より
		  も小さい場合にE_PARエラーとする処理を追加．

	・vasyslog.cをlibraryディレクトリに移動

	・MISRA-C対応のためのコードの修正
		- 文をマクロ定義している箇所をdo{}while(false)で囲む．
		- コンマ演算子に使用を最小限に．
		- 多重代入文をやめる．
		- 符号無し整数定数にUをつける．
		- 標準的な名前を変数名として使わないように修正．
		- 返値を使わない関数呼出しを(void)にキャストする．

	・その他のバグフィックス
		- kernel_check.tfでエラーメッセージの出力処理を修正．

	・サンプルのMakefileの修正
		- カーネルライブラリを別ディレクトリで作成する時に，カーネルライブ
		  ラリが更新されたら，オブジェクトファイルを再構築するように修正．
		- CFG2_OUTをCFG2_OUT_SRCSにリネーム．
		- LDFLAGSは，cfg1_out.cのリンク時には適用されないように修正．
		- log_output.o，vasyslog.o，t_perror.o，strerror.oを，SYS_COBJSから
		  APPL_COBJSに移動．

	・その他の修正
		- semaphore.h等からwait.hをインクルードするように修正．
		- TOPPERS_EMPTY_LABELのデフォルトの定義をkernel_int.hに移動．
		- __STDC_VERSION__が定義されていない場合に対応．
		- test_lib.hに多重インクルードの防止コードを追加．
		- ユーティリティプログラムを新しいperlに対応するように修正．
		- gentestを拡張（CPU例外ハンドラの生成，GOTOに対応など）．
		- configureにオプションを追加．

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

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

		(1) char_t型をchar型に修正

		(2) TARGET_MIN_ISTKSZの定義を追加（オプション）
			- 非タスクコンテキストのスタックサイズの最小値をチェックする場合に
			  は，最小値をTARGET_MIN_ISTKSZに定義する．

		(3) CFG2_OUTをCFG2_OUT_SRCSにリネーム
			- Makefileのターゲット依存部でCFG2_OUTを定義している場合には，
			  CFG2_OUT_SRCSにリネームする．

		(4) CFG1_OUT_LDFLAGSの定義
			- Makefileのターゲット依存部で定義したLDFLAGSは，cfg1_out.cをリンク
			  する際には適用されないように変更したため，LDFLAGSに定義したオプショ
			  ンで，cfg1_out.cをリンクする際にも必要なものは，CFG1_OUT_LDFLAGS
			  にも定義するように修正する

----------------------------------------------------------------------
          TOPPERS/FMPカーネル
        Release 1.2.2 から 1.2.3 への変更点
        リリース日時 2014-12-24

○変更点のリスト
・./kernel/dataqueue.c
	ipsnd_dtq()/ifsnd_dtq()において，ロックを全て解放する前に割込みを
	許可するパスが存在していた問題を修正．
  
・./kernel/kernel.tf
	使用していないデータ MBXCB _kernel_mbxcb_table[] を削除．    
----------------------------------------------------------------------
  
         TOPPERS/FMPカーネル
        Release 1.2.1 から 1.2.2 への変更点
        リリース日時 2012-10-30

○変更点のリスト
・perlのバージョンアップ追従
	doやgetopt.plがサポートされなくなったためスクリプトを変更．

----------------------------------------------------------------------
        TOPPERS/FMPカーネル
        Release 1.2.0 から 1.2.1 への変更点
        リリース日時 2012-3-30

○変更点のリスト
・システムログが使用するポート数と実際のポート数の整合性チェック
  ・syslog.cでチェックするようにした．

・複文をdefineする場合は，do {} while(false)で囲むよう修正

・ARMCC対応
	・ARM依存部がARMCCに対応した．
  
・システムログがグローバル方式時に宣言していたスピンロックを削除
	・SILにより実現しているため不要なので削除

・CygwinとWindowsのシステム時刻差異問題の対応
	・Makefile で touch に -r を付加

・テスト用ラベル追加マクロの追加
	・タイミング依存テスト用に追加．

・トレースログのディフォルトの時間取得方法の修正
	・システムティックの取得方法が古かったため修正．

----------------------------------------------------------------------
        TOPPERS/FMPカーネル
        Release 1.1.1 から 1.2.0 への変更点
        リリース日時 2011-7-15

○変更点のリスト
・ASP カーネル 1.7.0追従
	・動的生成機能拡張パッケージ，制約タスク拡張パッケージの追加

	・タスク例外処理ルーチンの実行開始条件の変更
		- タスク例外処理ルーチンの実行に関するコードの修正．
		- ipmflgを導入．
		- exc_sense_unlockを廃止．

	・データキューのコードの修正
		- データ管理ブロックの導入（他のオブジェクトの実装と整合された）．

	・SILのメモリ空間アクセス関数に渡すポインタの方の変更
		- void *を渡していたところを，サイズにあわせて，uint8_t *などに変更．

	・動的生成機能拡張パッケージにあわせた修正
		- t_stddef.hにMB_T型の定義を追加．
		- コンフィギュレータのテンプレートファイル（パス2および3）で定義し
		  ていたターゲット依存情報を，ヘッダファイルに移動．
		- kernel_def.csvに，それらの値を取得するための記述を追加．
		- ポーティングガイドの修正．

	・オフセットファイルをコンフィギュレータで生成する方法を追加
		- genoffset.tfを追加．
		- kernel_def.csvに，SIL_ENDIAN_BIG/LITTLEを追加．
		- sample/Makefileを修正．
		- ポーティングガイドの修正．

	・その他のバグフィックス
		- CHECK_INTPRI_CHGIPMの定義中のtypoを修正．
		- genoffsetのRelease 1.6.0におけるディグレードを修正．

	・その他の修正
		- USE_TSKINICTXBをマクロ定義した場合のスタック領域の先頭番地のチェッ
		  クのために，GET_STK_TSKINICTXBを導入．
		- kernel_cfg.c中で，タスクの先頭番地をTASK型にキャストするように
		  kernel.tfを修正．
		- ext_tskのE_SYSの返し方を修正．ext_kerもE_SYSを返すコードに修正．
		- CFG_INTは，有効なすべての割込み番号に対応する方針に従い，コンフィ
		  ギュレータのエラー条件を修正．
		- makedepに-Sオプションを追加．
		- makedepに-Sオプションを追加．

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

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

	(1) ターゲット依存部で，calltexを呼ぶ代わりにcalltexの内容をインライン
	展開している場合に，call_texrtnを呼び出す条件に「ipmflgがtrue」を追加す
	るように修正．

	(2) 割込み出入口処理の見直し．
		- 割込み出入口処理に，「割込み優先度マスクを，割込み処理前の値に設
		  定する」処理を追加（ポーティングガイドの(*h)の注記を参照）．
		- ポーティングガイドの6.6.1節の記述を確認（(*g)(*i)の注記を追加する
		  など，記述を詳細化した）

	(3) exc_sense_unlockの定義を削除．

	(4) TARGET_TSKATR，TARGET_ISRATR，TARGET_INHATR，TARGET_INTATR，
	TARGET_EXCATR，TARGET_MIN_STKSZ，CHECK_STKSZ_ALIGNの定義を，ターゲット
	依存部のテンプレートファイル（パス2）からヘッダファイルに移動．

	(5) CHECK_FUNC_ALIGN，CHECK_FUNC_NONNULL，CHECK_STACK_ALIGN，
	CHECK_STACK_NONNULL，CHECK_MPF_ALIGN，CHECK_MPF_NONNULLの定義を，ターゲッ
	ト依存部のテンプレートファイル（パス3）からヘッダファイルに移動．

	(6) 動的生成機能拡張パッケージに対応．
		- CHECK_MB_ALIGNの定義を追加．
		- TSZ_PDQMBの定義を追加（デフォルトで不都合な場合）．
		- VALID_INTNO_CREINTの定義を追加．
		- 動的メモリ管理に関する定義を追加．

	(7) オフセットファイルをコンフィギュレータで生成する方法への対応（必須
	ではないが，対応しておくことが望ましい）．詳しくは，ポーティングガイド
	の2.5節を参照すること．

	(8) USE_TSKINICTXBをマクロ定義し，CHECK_STACK_ALIGNとCHECK_STACK_NONNULL
	のいずれかを定義している場合には，TINIBからスタック領域の先頭番地を取り
	出すためのテンプレートファイル関数GET_STK_TSKINICTXBを定義．

・ASP カーネル 1.6.0追従
	・cfgの新しいバージョン（1.6）に対応
		- offsetof_TINIB_stkszとoffsetof_TINIB_stkの取得記述をターゲット非
		  依存部に移動．
	
	・ユーティリティの修正
		- genoffsetに，エンディアン指定をチェックする機能を追加．その際に，
		  コードを整理．
	
	・その他の修正
		- TCBのpriorityフィールドを，条件があえばuint_8で定義するように修正．
		- ターゲット依存部でSIL_ENDIAN_BIGもSIL_ENDIAN_LITTLEも定義されてい
		  ない場合に，sil.hでエラーを検出するように修正．
		- システムログ機能のsysog_logmaskとsyslog_lowmask_notの初期値を修正．
		- makereleaseを，ファイルの重複をチェックするように修正．
		- test_utm1のエラーメッセージを修正．
	
	・ドキュメントの充実，コメントの修正
	
	・バージョン番号の更新
		- カーネルのバージョン番号を更新．
	
	○ターゲット依存部の要修正箇所（1.5.0 → 1.6.0）
	
	(1) makeoffset.cの修正
		- makeoffset.cに，sil_endian関数を追加する（これにより，genoffsetの
		  エンディアン指定をチェックする機能が有効になる）．
		- オーバランハンドラ拡張パッケージに対応する場合には，leftotmフィー
		  ルドが含まれているかを確認する．
		- 生成されるoffset.hに変化がないことを確認する．
	
	(2) 値取得シンボルテーブルのターゲット依存部の修正
		- 以下の2行をtarget_def.csv（またはそれに代わるファイル）から削除する．
			offsetof_TINIB_stksz,"offsetof(TINIB,stksz)"
			offsetof_TINIB_stk,"offsetof(TINIB,stk)"
		※ Release 1.5.0における修正を元に戻す．
	
	(3) target_fput_logの実装制限の確認（仕様が修正されたわけではない）
		- target_fput_log全割込みロック状態で呼び出せるようになっているか確
		  認する．

・ASP カーネル 1.5.0追従
	・カーネル管理外の割込みとCPU例外の扱いの見直し
		- カーネル管理外の割込みの設定方法を整理・拡張．
		- カーネル管理外の割込みハンドラは，カーネル内の出入口処理を経由し
		  ないことを基本とした（ターゲット依存）．
		- CPU例外ハンドラの出入口処理におけるカーネル管理外のCPU例外の扱い
		  を規定．
	
	・chg_ipmとget_ipmの仕様変更
		- chg_ipmとget_ipmは，CPUロック状態では呼べないものとした．
	- これに伴ってテストプログラムを修正．
	
	・タイマ割込み処理で呼び出したialm_timの基準時間の変更
		- current_timeの更新後に，タイムイベントの処理を行うように変更．
		- 有効な最小のシステム時刻としてmin_timeを導入．
		- pend_updateを廃止．
	
	・タスクのスタックサイズの最小値チェックの追加
		- スタックサイズが0の場合のエラーを，ターゲット非依存で検出．
		- ターゲット依存で，タスクのスタックサイズの最小値を設定できるよう
		  にした．
	
	・タスク初期化コンテキストブロックの追加
		- ターゲット依存で，タスク初期化コンテキストブロック（TSKINICTXB）
		  を使用できるようにした．
	
	・ターゲット依存部で定義する名称のリネーム方法の変更
		- ターゲット依存部で定義し，ターゲット非依存部から参照する名称のリ
		  ネーム記述を，ターゲット依存部に移動．
	
	・拡張パッケージの追加
		- ミューテックス機能拡張パッケージ，オーバランハンドラ機能拡張パッ
		  ケージ，タスク優先度拡張パッケージを，一般公開するファイルに追加．
		- オーバランハンドラ機能拡張への対応方法を，ポーティングガイドに記載．
	
	・サポートする機能を識別するマクロの定義方法の変更
		- ターゲット依存部でTOPPERS_TARGET_SUPPORT_XXXXXがマクロ定義されて
		  いれば，kernel.hでTOPPERS_SUPPORT_XXXXXをマクロ定義する方法に変更．
	
	・システムログ機能の修正
		- syslog_initializeが呼ばれる前のログ情報の出力に対応．
		- sysog_logmaskとsyslog_lowmask_notの初期値を修正．
	
	・テストライブラリの修正
		- test_lib.hとtest_lib.cを，testディレクトリから，それぞれincludeと
		  libraryディレクトリに移動．
		- syslog_flush関数を追加．logtask_flushの代わりに使用．
		- test_finish関数を追加．テストプログラム中でext_kerの代わりに使用．
		- 以上に伴ってテストプログラムを修正．
	
	・configureの拡張
		- Makefileのテンプレートを指定するためのオプションを追加．
	
	・その他のバグフィックス
		- kernel_impl.h中のマクロ名の修正．
		- kernel.tf中の文法ミスの修正．
	
	・その他の修正
		- CTXB型をTSKCTXB型に名称変更．
		- ext_tskで，戻らないはずの処理から戻った場合には，E_SYSを返す．
		- call_texrtnからdispatchを呼び出す処理を改善．
		- make_non_waitを，wait.cからwait.hに移動．
		- xsns_xpn中の冗長な条件式を削除．
		- TA_DISINTとTA_LEVELをitron.hから削除．
		- LOG_TEX_LEAVEの第2パラメータを削除．
		- サンプルのMakefileに，OMIT_WARNING_ALLとOMIT_OPTIMIZATIONを追加．
		- get_utmに関するテスト(1)（test_utm1）を追加．
		- test_dlynse.cの表示を改善．
	
	・ドキュメントの充実，コメントの修正
		- 機能拡張・チューニングガイドに関して，ユーザーズマニュアルに記載．
		- キュー操作ライブラリ関数に関して，ユーザーズマニュアルに記載．
		- システムの起動時の初期化処理に関して，ユーザーズマニュアルに記載．
		- 設計メモを拡充．
	
	・バージョン番号の更新
		- カーネル仕様のバージョン番号，カーネルのバージョン番号を更新．
	
	○ターゲット依存部の要修正箇所（1.4.0 → 1.5.0）
	
	(1) カーネル管理外の割込みの扱いの変更
		- カーネル管理外の割込みハンドラの呼び出し方について，これまでの考
		  え方を変更した．「ターゲット依存部 ポーティングガイド」の6.6.7節
		  の記述通りに実装されているかチェックする．
		- TA_NONKERNELを使用できるようにする場合には，target.tfで，
		  TARGET_INHATRにTA_NONKERNELを設定する．
		- パス2のテンプレートファイルのターゲット非依存部に，
		  INTNO_FIX_KERNEL，INHNO_FIX_KERNEL，INTNO_FIX_NONKERNEL，
		  INHNO_FIX_NONKERNEL，USE_INHINIB_TABLE，USE_INTINIB_TABLEのサポー
		  トが追加されたので，使用できる場合には使用するように修正する．
		- カーネル管理の割込みハンドラの出入口処理について，「ターゲット依
		  存部 ポーティングガイド」の6.6.1節の記述通りに実装されていること
		  を確認する．
	
	(2) カーネル管理外のCPU例外の扱いの変更
		- カーネル管理外のCPU例外ハンドラの呼び出し方について，これまでの考
		  え方を変更した．「ターゲット依存部 ポーティングガイド」の6.7.1節
		  の記述を参照して，実装を修正する．
	
	(3) ターゲット依存部で定義する名称のリネームの追加
		- ターゲット依存部で定義し，ターゲット非依存部から参照する名称のリ
		  ネーム記述を，ターゲット依存部に追加する．ターゲット依存部とチッ
		  プ依存部の間でも同様の変更を行うことが望ましい．ただし，
		  arch/logtrace/trace_config.cで定義される名称については，ターゲッ
		  ト依存部でリネームする．
	
	(4) ターゲット依存部でサポートする機能を示すマクロの変更
		- ターゲット依存部で定義しているTOPPERS_SUPPORT_DIS_INTを
		  TOPPERS_TARGET_SUPPORT_DIS_INTに，TOPPERS_SUPPORT_ENA_INTを
		  TOPPERS_TARGET_SUPPORT_ENA_INTに，TOPPERS_SUPPORT_GET_UTMを
		  TOPPERS_TARGET_SUPPORT_GET_UTMに，それぞれ変更する．
	
	(5) タスクコンテキストブロックの型名の変更
		- CTXB型をTSKCTXB型に名称変更する．
	
	(6) 値取得シンボルテーブルのターゲット依存部の修正
		- 以下の2行をtarget_def.csv（またはそれに代わるファイル）に加える．
			offsetof_TINIB_stksz,"offsetof(TINIB,stksz)"
			offsetof_TINIB_stk,"offsetof(TINIB,stk)"
		※ 新設されたUSE_TSKINICTXBを使う場合には必要ない．
		※ Release 1.6以降を用いる場合には，この修正は必要はない．
	
	(7) ログマクロの修正
		- LOG_TEX_LEAVEの第2パラメータが削除されたので，LOG_TEX_LEAVEを定義
		  している場合には，その定義を変更する．
	
	(8) スタートアップモジュールの修正（bssセクションのクリアを省略している
		場合のみ）
		- システムログ機能を使用する場合には，スタートアップモジュールに，
		  syslog_logmaskとsyslog_lowmask_notを0に初期化するコードを追加する．
		- トレースログ記録のサンプルコードを組み込んでいる場合には，スター
	      トアップモジュールに，trace_modeを0に初期化するコードを追加する．
	
	(9) タスクのスタックサイズの最小値チェックの設定（オプション）
		- ターゲット依存に，タスクのスタックサイズの最小値をチェックする場
		  合には，最小値をTARGET_MIN_STKSZに定義する．
	
	(10) オーバランハンドラ機能拡張への対応（オプション）
		- オーバランハンドラ機能拡張パッケージに対応する．対応方法について
		  は，「ターゲット依存部 ポーティングガイド」中の「#ifdef
		  TOPPERS_SUPPORT_OVRHDR」がある箇所と，5.7節と6.14節を参照すること．

・コンフィギュレータ(kernel.tf)の問題の修正．
  ・DEF_INHのパラメータエラーがチェックされない問題の修正．  
  ・エラーメッセージのASPとの統一．
  ・不正な割込み番号をDEF_INH()/CFG_INT()/ATT_ISR()にしても正しいエラ
    ーコードを返さない問題の修正．
  ・非タスクのスタックの先頭アドレスのチェックがなされない問題を修正．  
        
・ter_tsk()のデッドロック回避コードの修正．

・dly_tsk()をT_CHECK_DISPATCH(my_p_pcb)を用いてディスパッチのチェック
  をするように変更．
  
・ディスパッチ禁止状態で呼び出し可能なAPIを過度状態で呼び出すと無限ル
  ープとなる問題を修正． 

・Makefileでのプロセッサ数指定マクロの追加．

・共通部ロックの解放関数で行っていた，dspreqのチェックとディスパッチャ
  呼び出しを，APIの方で記述するように変更．
  ・カバレッジの取得の関係．
  ・該当関数
    ・release_tsk_lock_and_dispatch
    ・release_obj_lock_and_dispatch
    ・release_dual_tsk_lock_and_dispatch

・細粒度ロックの際，オブジェクトロックの初期化関数名を間違って呼び出し
  ていた問題の修正．
  
・共通部ロック関数で，while()を記述している場合，カバレッジの取得ため，
  各分岐で直接リターンせず，breakでwhile()を抜けるように修正．

・効率化のため，call_texrtn()の引数にPCB *my_p_pcb を追加．
      
・サンプルプログラムのサーバータスクのIDを表示する様に変更．

・iras_tex()の入り口でi_lock_cpu()ではなく，i_unlock_cpu()を呼び出して
  いた問題を修正．
  
・iset_flg()の入り口でi_lock_cpu()ではなく，t_lock_cpu()を呼び出してい
  た問題を修正．
  
・ネイティブ方式のiunl_spn()のCPUロック取得解放ルーチンの問題を修正．

・ter_tsk()(プロセッサ・細粒度ロック時コード)で，オブジェクト待ち以外
  の状態の場合のルーチンで，待ち状態（オブジェクト待ち以外）のタスクに
  対してもwait_dequeue_tmevtb()を呼び出していた問題を修正．

・ter_tsk()(プロセッサ・細粒度ロック時コード)で，起動要求キューイング
  あり，他プロセッサにマイグレーションありのコードで，
  dispatch_request()の戻り値をチェックしていたが，このパスでは必要ない
  ため削除．
  
・ter_tsk()(ジャイアントロック時コード)で，他タスクへのキューイングが
  ペンディングしていた場合，マイグレーションと起動の後，ディスパッチリ
  クエストを要求する必要がある場合，dispatch_request()の引数にマイグレ
  ーション前のPCBを指定していた問題を修正．

・サンプルプログラムでグローバルタイマ方式の場合のコア4用の周期ハンド
  ラとアラームハンドラのsample.cfgでの定義を修正．

・ter_tsk()(プロセッサ・細粒度ロック時コード)で，起動要求キューイング
  あり，他プロセッサにマイグレーションありのコードで，対象タスクが強制
  待ち状態の場合にリトライしていた不具合を修正．
  
・DEF_EXC()において，CPU例外ハンドラ番号が示すプロセッサIDと初期割付プ
  ロセッサが異なる場合のチェック抜けを修正．
  
・CRE_SPN()において，スピンロック属性にTA_NULL以外を指定しても，
  E_RSATRエラーが発生しない問題を修正．  
  
・CFG_INT()において，ATT_ISRとCFG_INTが異なるクラスに所属している場合
  のエラーコードをE_RSATRに修正．

・DEF_INH()/CFG_INT()/ATT_ISR()において，割込み番号・割込みハンドラ番
  号と所属するクラス間に不整合がある場合のエラーコードをE_RSATRに修正．
  
・ATT_ISR()において，割込み番号が不正な場合のエラー出力が正しくなく，
  cfgが内部エラーを起こす問題を修正．
  
・ATT_ISR()において，同じ割込み番号に対するATT_ISR()が異なるクラスに属
  していた場合のエラー出力にエラー番号が抜けていた問題を修正．

・CFG_INTで指定された割込み番号を受け付け可能なプロセッサが，指定され
  たクラスの割付け可能プロセッサに含まれるかのチェックをしないように変
  更（仕様ではATT_ISR/DEF_INHのみチェックする）．

・irel_wai() のプロセッサロック，細粒度ロックの時のコードに無駄なディス
  パッチ要求のコードがあったため削除．
  
・chg_pri() のプロセッサロック，細粒度ロックの時のコードに
  change_priority() の特定のパスを実行しなかったため，コードの構造を 
  ter_tsk() と合わせて，change_priority() の全てのパスを通るように変更
  ．

・過渡状態からext_tskを呼び出した場合は，ロック取得時に割込みを許可し
  ないように変更．ext_tskの実行時間が長くなる可能性があるので注意．
  
・スピンロック解放API(ネイティブ方式)において，ターゲット依存のスピン
  ロック解放関数を呼び出して解放した後に，OS内部データを変更していた問
  題を修正．

・ter_tsk()(プロセッサ・細粒度ロック時コード)で，起動要求キューイング
  あり，他プロセッサにマイグレーションありのコードで，dispatch_request()
  の戻り値をチェックしていたが，このパスでは必要ないため削除.
  
・ena_tex()/ras_tex()において，自タスクのタスク例外処理ルーチンを呼び
  出し中に他のプロセッサへマイグレーションした場合に，タスク例外処理ル
  ーチンからリターンすると正しいタスクロックを解放しない問題を修正．
  
・wait_tmout()のデッドロック回避に伴う問題を修正．デッドロック回避のた
  め，ロックを解放した間に他のAPIで待ち解除が行われ，タイムイベントキ
  ューから2重に削除される問題を修正．
  
・カーネルの終了処理でSILスピンロックを取得している場合に解放するよう
  に変更．
  
○ターゲット依存部の修正が必要な変更点

・VALID_INTNO_DISINT()/VALID_INTNO_CFGINT()の引数にprcidを追加し，
  prcidからdis_int()/ena_int()ないしCFG_INTが呼び出せない場合にはfalse
  を返すように変更．   

・グローバルタイマ方式の場合のタイムイベントハンドラを登録するクラスの
  名前を TCL_ADMIN_PRC から TCL_SYSTIM_PRC に変更．
  
・割付け可能プロセッサが初期割付けプロセッサのみのクラスを追加．
    
・ATT_ISRのintnoとクラスの割付け可能プロセッサの整合性のチェックを修正．
  登録する割込みサービスルーチンの属するクラスの割付け可能プロセッサが，
  intnoで指定した割込み要求ラインが接続されたプロセッサの集合に含まれ
  ているかチェックするように修正．
  
・ターゲット依存部でATT_ISRのクラス割付けをチェックするテンプレートフ
  ァイルの関数 TARGET_CHECK_ATT_ISR を追加．
  
・INHNO_ATTISR_VALID には，グローバルな割込み要求ラインに対する割込み
  ハンドラ番号は，上位ビットが0の割込みハンドラ番号を設定する．  
  
・SILスピンロックを取得している場合に解放する 
  TOPPERS_sil_force_unl_spn を追加する．
    
----------------------------------------------------------------------
        TOPPERS/FMPカーネル
        Release 1.1.0 から 1.1.1 への変更点
        リリース日時 2010-05-12

○変更点のリスト
・システムログ出力の共有時のログタスクで使用するポート番号のマクロ
 （LOGTASK_PORTID_G_SYSLOG）を新設．

・EXCNO_VALIDにCPU番号を含むように変更．

・ターゲット依存部でCPUEXCxを定義しなかった場合は，サンプルプログラム
  で対応するCPU例外ハンドラを定義しないように変更．

・サンプルプログラムのグローバルタイマ方式のサポート

・TOPPERS_SUPPORT_MULTI_PRCマクロの追加

・init_wait_queue()の修正
  ・p_tcbからp_pcbを参照してた箇所をローカル変数のp_pcbを直接参照する
    ように変更．

・ras_tex()の修正
  ・get_my_p_pcb()をCPUロック外で取得していた問題を修正．
  ・無駄な変数（p_runtsk）の除去．

・t_rtskの次の起動時の割付けプロセッサのIDを格納するメンバ名の修正
  ・統合仕様書に合わせて，actprcidから，actprcに修正．

・システムログ出力のマイグレーション対応
  ・割込みロック後に使用するポートを取得するように変更．

・システムログ出力の共有対応
  ・スピンロックにより，プロセッサ間の排他制御を行うように変更．
  
・グローバルタイマ時のタイムイベントハンドラの管理ブロックの初期化問題修正#394  
  ・初期化ブロックに登録するPCBをマスタプロセッサとしていたため，時
    刻管理プロセッサのPCBを登録するように修正．

○ターゲット依存部の修正が必要な変更点

----------------------------------------------------------------------
        TOPPERS/FMPカーネル
        Release 1.0.1 から 1.1.0 への変更点
        リリース日時 2010-02-08

○変更点のリスト
・barrier_sync()の修正
  どのような状態でも実行可能なように，プロセッサIDの取得に，
  sil_get_pid()を使用するように変更．

・ext_ker()の修正
  自プロセッサのPCBを割込み許可状態で参照していた問題を修正．  

・TPRC_NONE を追加
  ref_tsk() の戻り値のメンバーである actprc の取り得る値． 
  actprcの初期化はTPRC_NONEを設定するように変更．

・kernel_impl.hの修正
  #ifdef TOPPRES_ISTKPT を #ifdef TOPPERS_ISTKPT に修正．

・ter_tsk()の修正
  G_KLOCK時のコードで，p_runtskを使用していた問題を修正．

・ref_tsk()の修正
  次回起動時割付けプロセッサの情報を追加．

・rel_mpf()の修正
  オブジェクトロック解放時にディスパッチの必要性をチェックしていないバ
  グを修正．

・iset_flg()の修正
  タスクロックリリースしていない問題を修正．

・起動時にx_initialize_giant_lock()をマスタプロセッサのみが呼び出すよ
  うに変更．

・時間待ちタスクのマイグレーション時の時間の扱いを修正．
  基準時刻(current_time)から相対時間によって指定した以上の時間が経過し
  た後となるように変更．

・chg_pri/rel_waiのデッドロック回避時のロック取得のためのretryの戻り先
  の修正

・logtask.cでOS内部の関数，x_prc_index()を使用していた問題の修正
  sil_get_pid()に変更．

・mig_tskでマイグレーション先のプロセッサが同一プロセッサの場合の問題
  点を修正
  他タスクを指定した場合，同一優先度内で最低優先度となるように修正．
  さらに，同一優先度で最低優先順位となる内部関数を追加．

・mact_tskの要求がキューイングしている状態でmig_tskが発行された場合の
  問題点を修正
  
・ter_tskの問題点を修正
  リトライ時にCPUロック解除を行うパスがあったため修正．

・my_xxxマクロの廃止
  get_my_p_pcb()/get_mp_p_pcb()を代わりに使用

・ロックマクロをロック関数へ変更

・kernel.tf内で割込み番号，割込みハンドラ番号，例外番号の取得の冗長な
  記述を修正．
  ・INH.INHNO[inhno] → inhno
  ・INT.INTNO[intno] → intno
  ・EXC.EXCNO[excno] → excno 
 
・kernel_cfg.cのINTHDR/EXCHDR_ENTRYのハンドラ番号／CPU例外ハンドラ番号
  を16進へ変更

・割込み処理モデルの統合仕様書への追従
  上位ビットに，プロセッサIDのビットマスクではなく，プロセッサIDを設定
  するように変更．複数のプロセッサが受け付けられる割込み要求ラインは，
  上位ビットを0とする．

・slp_tsk/wup_tskの実行時間計測プログラムの追加

○ターゲット依存部の修正が必要な変更点

・SIL_LOC_SPNの仕様を変更．
  ロック取得を待つ間は，割込みをマスクしないように変更．

・非タスクコンテキスト用スタックのトップのアドレスが正しく算出していな
  い問題の修正
  非タスクコンテキスト用スタックのディフォルトのサイズ
  (TOPPERS_PRCx_ISTKSZ:xはプロセッサID) はバイト指定とする．

・TNUM_PRCをTNUM_PRCIDに変更

・SIL_LOC_SPNの仕様変更
  SIL_LOC_INTの機能を包含する．
  使用前には，SIL_PRE_LOC を記述する必要がある．

・スピンロックのターゲット依存部の関数の仕様変更
  ・ロックマクロの変更と同様に，依存部の関数内で割込みを許可するように
    変更．  
    void   t_lock_spin(SPNLOCK *p_spn_lock)
    void   i_lock_spin(SPNLOCK *p_spn_lock)
    bool_t try_lock_spin(SPNLOCK *p_spn_lock)

・ロックマクロをロック関数へ変更
  ・ロック取得関数を target_config.h ないしはそこからインクルードされ
    るファイルで定義する．
     void t_acquire_lock(LOCK *p_lock)
     bool_t t_acquire_nested_lock(LOCK *p_lock)
     void i_acquire_lock(LOCK *p_lock)
     bool_t i_acquire_nested_lock(LOCK *p_lock)
     void release_lock(LOCK *p_lock)
     void acquire_lock_without_preemption(LOCK *p_lock)
  ・ロックの型を LOCK のみとする．
  ・プロセッサロック・細粒度ロックの場合，割込みエントリー処理でロック
    を取得していれば解放する．

・プロセッサ毎に持つターゲット依存の情報のPCBへの統合
  ・target_pcb.h 及びそこからインクルードされるファイルを作成して，そ
    こに，以下内容を記載．target_config.hはインクルードしないこと．
    ・TPCB（target_processor_control_block）の定義
    ・ロックの型の定義
    ・カーネルロックの方式の指定
    ・x_prc_index()の定義

・割込み処理モデルの統合仕様書への追従
  割込み番号・割込みハンドラ番号の仕様を統合仕様書に合わせる．
  ・.cfg/.h/.c 中の割込み番号・割込みハンドラ番号の更新
    ・プロセッサ間割込み/タイマー/UART
  ・xxx.tfの更新
    ・INTNO_VALID，INHNO_VALID
    ・その他割込み番号の上位ビットをチェックしている箇所．

----------------------------------------------------------------------
        TOPPERS/FMPカーネル
        Release 1.0.1 から 1.0.2 への変更点
        リリース日時 2009-09-07

○変更点のリスト
・porting.txt の修正と追記

・CHECK_DISPATCH() 使用箇所の変更
  CHECK_TSKCTX_UNL() もしくは CHECK_INTCTX_UNL() に変更．
  タスクディスパッチ可能状態（dspflg）のチェックをCPUロック状態後にチ
  ェックするように変更．該当するAPIは以下の通り．

    dataqueue.c: snd_dtq()
    dataqueue.c: tsnd_dtq()
    dataqueue.c: rcv_dtq()
    dataqueue.c: trcv_dtq()

    eventflag.c: wai_flg()
    eventflag.c: twai_flg()

    mailbox.c: rcv_mbx()
    mailbox.c: trcv_mbx()

    mempfix.c: get_mpf()
    mempfix.c: tget_mpf()

    pridataq.c: snd_pdq()
    pridataq.c: tsnd_pdq()
    pridataq.c: rcv_pdq()
    pridataq.c: trcv_pdq()

    semaphore.c: wai_sem()
    semaphore.c: twai_sem()

    task_sync.c: slp_tsk()
    task_sync.c: tslp_tsk()
    task_sync.c: dly_tsk()

・CHECK_DISPATCH() の削除

・CHECK_TSKCTX_UNL()/CHECK_INTCTX_UNL() の変更
  sense_tskctx_unl()/sense_intctx_unl() を呼び出すように変更．

・sense_tskctx_unl()/sense_intctx_unl() の追加

・sense_context()/[tix]_sense_lock()のマイグレーション対応
  CPUロック解除状態で呼び出されるため，実行中にマイグレーションされて
  も問題ないように修正．具体的には，CPU ID を取得してCPU固有のデータを
  アクセスする箇所をCPUロック状態で実行するように変更．

・CHECK_NONSELF()の削除と使用箇所の修正
  割込み禁止前にチェックすると，マイグレーションされた場合に，異なるプ
  ロセッサの値を読み込む可能性があるため，CPUロック後にチェックするよ
  うに変更．該当するAPIは以下の通り．

   ・task_manage.c : ter_tsk() : ジャイアントロック用
   ・task_manage.c : ter_tsk() : プロセッサロック・細粒度ロック用

・CHECK_LOCSPN()の削除
  使用していないため削除．

----------------------------------------------------------------------
        TOPPERS/FMPカーネル
        Release 1.0.0 から 1.0.1 への変更点
        リリース日時 2009-07-17

○変更点のリスト

・test/test_mact_tsk{1,2,3} 及び test/test_mig_tsk{1,2}が動作しない問
  題を修正．

・ディスパッチ禁止状態のプロセッサのタスクからディスパッチ許可状態の別
  プロセッサに mrot_rdq してもローテートされない問題を修正

・call_texrtn()で他のタスクにディスパッチする際の問題を修正
  タスクロックを取得したいたまま，ディスパッチしていたため，解放して呼
  び出すように変更．

・改行コードをLFに統一

・「CPU例外番号」ないしは「例外番号」を「CPU例外ハンドラ番号」に統一

・imact_tskでプロセッサIDのチェックが抜けていた問題を修正

・プロセッサロック時のT_ACQUIRE_NESTED_LOCK_AND_CHECK_RUNNABLEの修正
  RUNNABLEでない場合にオブジェクトロックを解放していない問題を修正．

・msta_cycでTA_PHS属性でない周期ハンドラの起動時刻を起動位相に修正

・mact_tskにより起動要求がキューイングされたタスクを ter_tsk しても
  マイグレーションされない問題を修正
  make_dormant() で actprc を初期化しないように変更．
  actprc と actque を同じ箇所で初期化するように変更．

・バリア同期関連のコードのループ変数を volatile を付加

・ext_tskでマイグレーションする場合にマイグレーション要求がクリアされ
  ない問題を修正

・テストプログラム関連
 ・テストライブラリにバリア同期関数を追加
 ・チェックポイント表示時にプロセッサIDも同時に表示
 ・チェックポイント関数で全割込みロック前にプロセッサIDを取得していた問題を修正
 ・チェックポイント関数と完了チェックポイントでのPRCIDの取得をsil関数に変更
 ・test_spin_lock.c の修正．
   ・try_spn/itry_spnのロック取得失敗時のエラーコードがE_OBJに修正された
     ことに伴う修正
   ・全テスト終了時に check_finish() を呼び出すように修正．
 ・test_mact_tsk2.c の修正
   ・プロセッサ2で終了時に check_finish() を呼び出すように修正．
 ・CPU例外のテスト（シングルプロセッサ）を追加
 ・タスク例外のテスト（シングルプロセッサ）を追加
 ・セマフォのテスト（シングルプロセッサ）を追加
 ・システム状態に関するテスト（シングルプロセッサ）を追加

・sig_semの実行時間計測プログラムの追加

・ref_spnがCPUロック状態で正常終了する問題を修正
  E_CTXとなるように修正．  

・get_pid/iget_pidがCPUロック状態で正常終了する問題を修正
  E_CTXとなるように修正．  

・msta_alm()/imsta_alm()/msta_cyc()をTPRC_INI指定で発行すると E_ID が
  返る問題を修正

・imsta_alm() を TPRC_INI 指定で発行しても対象アラームハンドラが起動さ
  れない問題を修正

・スピンロックを取得した状態で，loc_cpu()/iloc_cpu()/unl_cpu() 
  /iunl_cpu()を発行すると E_CTX エラーとなる問題を修正
  状態は変更しないように修正．

・try_spn/itry_spnで既にロック獲得されている場合のエラーコードが 
  E_TMOUT になる問題の修正

・ref_spnで他コアからスピンロックの状態を参照できない問題を修正

・マクロ名の変更(TPRC_INIT -> TPRC_INI)

・unl_spn/iunl_spnのエラーコードの修正
  操作対象のスピンロックを獲得せずに unl_spn(), iunl_spn() した場合に 
  E_CTX エラーが返えっていたため，E_ILUSEが返るように修正．

・ena_int/dis_intのチェックに関する修正
  マイグレーションを考慮して，割込み禁止後に割込み番号のチェックを行う
  ように修正．

・sus_tskのロックマクロの変更
  自タスクが対象の場合は，他のsus_tskとレーシングすると，E_QOVR が返るこ
  とがある．

・T_ACQUIRE_NESTED_DUAL_LOCK_AND_CHECK_MIG()の修正
  CPUロックを取得していた問題を修正．
  
・wait_tmoutが使用するロックマクロの変更
  I_ACQUIRE_NESTED_LOCK() -> I_ACQUIRE_NESTED_LOCK_AND_CHECK_MIG()
  に修正．

・ext_tskの使用するロックマクロの変更
  T_ACQUIRE_TSK_LOCK_AND_CHECK_MIG(my_p_runtsk->p_pcb) -> 
  T_ACQUIRE_TSK_LOCK_AND_CHECK_RUNNABLE()
  に修正．

・sus_tskの使用するロックマクロの変更
  T_ACQUIRE_TSK_LOCK() -> T_ACQUIRE_TSK_LOCK_AND_CHECK_MIG()
  に修正．

・stp_cyc/ref_cycの使用するロックマクロの変更
  T_ACQUIRE_TSK_LOCK() -> T_ACQUIRE_TSK_LOCK_AND_CHECK_MIG
  に修正．

・mrot_rdqで使用するロックマクロの修正
  T_ACQUIRE_NESTED_LOCK_AND_CHECK_MIG() -> T_ACQUIRE_TSK_LOCK(p_pcb) 
  に修正．

・fsnd_dtqでの使用するロックマクロの修正
  I_ACQUIRE_NESTED_LOCK_AND_CHECK_MIG() -> T_ACQUIRE_NESTED_LOCK_AND_CHECK_MIG()
  に修正．

・can_wupでの使用するロックマクロの修正
  I_ACQUIRE_TSK_LOCK_AND_CHECK_MIG() -> T_ACQUIRE_TSK_LOCK_AND_CHECK_MIG() 
  に修正．

・別プロセッサに割り付けられている実行状態のタスクに対するref_tskを発行した
  場合の問題の修正．
  発行すると，状態としてTTS_RUNではなくTTS_RDYが返ってきていたため，
  TTS_RUNが返るように修正

・未使用の管理ブロックが生成される問題を修正
  各オブジェクトを使わない場合に kernel_cfg.c に生成される，
  以下のオブジェクトTOPPERS_EMPTY_LABEL()の引数が間違っていた．
   * セマフォ, イベントフラグ, データキュー, 優先度データキュー
     メールボックス, 固定長メモリプール, 周期ハンドラ, アラームハンドラ 

----------------------------------------------------------------------
        TOPPERS/FMPカーネル
        Release 0.B.0 から 1.0.0 への変更点
        リリース日時 2009-05-13

○変更点のリスト

・仕様変更のあった機能の列挙
  fmp_sepc.txt の一部機能の仕様変更を更新．

・rel_waiのエラーコードの修正
  デッドロック回避ルーチンで，対象タスクの待ちが解除された場合のエラー
  コードをE_OKからE_OBJに修正．

・ASP カーネル 1.4.0追従
  ・call_atexitの廃止
    ターゲット非依存部からcall_atexitを呼び出すのをやめる．
    call_atexitで行っていた処理（標準的にはsoftware_term_hookを呼び出
    す処理）は，必要であればtarget_exitの先頭で行うこととする．

  ・TSZ_MPFの定義を削除

  ・get_utmの問題の修正
    周期ハンドラ，アラームハンドラの中でget_utmを呼ぶと，正しい時刻が
    返らない問題を修正．

  ・実行時間分布集計モジュールの修正
    TNUM_HISTの定義を，histgram.hからhistgram.cに移動．

  ・トレースログ機能の改善
    LOG_TEX_ENTER，LOG_TEX_LEAVEのパラメータに，p_runtskを追加．

  ・clean時に削除するファイル
    clean時に削除するファイルを，ターゲット依存部で定義するための変数
   （CLEAN_FILES）を導入．

  ・ユーティリティの修正
    makereleaseが使うディレクトリ名（asp）を，カレントディレクトリか
    ら決定するように修正．
    makedepに，Cygwin環境におけるルートディレクトリ名を指定するため
    の-Rオプションを追加．MakefileにMAKEDEP_OPTS変数を追加．

  ・【ターゲット依存部】call_atexitの廃止
    call_atexitを廃止したため，ターゲット依存部から定義を削除する．
    call_atexitで行っていた処理（標準的にはsoftware_term_hookを呼び出
    す処理）は，必要であればtarget_exitの先頭で行う．

  ・【ターゲット依存部】makedepを呼ぶ際のオプションの追加
     Makefileのターゲット依存部（Makefile.target等）でmakedepを呼んで
     いる場合には，$(MAKEDEP_OPTS)を追加する．

     例）@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
             -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend

  ・【ターゲット依存部】テンプレート変数の値の設定の削除
     OMIT_INITIALIZE_INTERRUPTとOMIT_INITIALIZE_EXCEPTIONの2つのテンプ
     レート変数の値を，ヘッダファイルの定義から自動取得するように修正
     したため，ターゲット依存部（target.tfまたはそこからインクルードさ
     れるファイル）で値を定義していれば，その定義を削除する．

・システムインタフェースレイヤーAPIにプロセッサID取得APIのマクロを追加
  void sil_get_pid(uint_t *p_id)
    -> void sil_get_pid(ID *p_prcid)

・【ターゲット依存部】TOPPERS_MASTER_PRCID をカーネル共通構成マクロと
   して導入
  
・【ターゲット依存部】TOPPERS_SYSTIM_ADMIN_PRC_ID の名称変更
  TOPPERS_SYSTIM_PRCIDへ変更．

・ref_cyc/ref_almでのprcidの取得の追加

・グローバルタイマ方式時のエラーチェックの追加
  システム時刻管理プロセッサ以外へタイムイベントハンドラを登録した場合
  と，割付け可能プロセッサへシステム時刻管理プロセッサ以外を指定した場
  合にエラーとする．

・【ターゲット依存部】TOPPERS_SYSTIM_ADMIN_PRC_ID の導入
   システム時刻管理プロセッサのIDを指定．

・【ターゲット依存部】マクロ名の変更
    GENERATE_TMEVT_HEAP_G_KTIMER
    ->GENERATE_TMEVT_HEAP_SYSTIM_GLOBAL

    GENERATE_TEVTCB_G_KTIMER
    ->GENERATE_TEVTCB_SYSTIM_GLOBAL

・【ターゲット依存部】TTYPE_KTIMER の廃止
  コンフィギュレータの更新により，マクロのdefineが.tfで取得可能となっ
  たため廃止．

・コンフィギュレータの更新（1.5.0-a7_2009-4-24）
  クラスIDに一般定数式パラメータが指定可能に

・システムインタフェースレイヤーAPIにプロセッサID取得APIを追加

・バージョン番号の修正

・サンプルプログラムにmsta_cycとmsta_almを追加．

・【ターゲット依存部】システム時刻の管理方式のマクロをカーネル内部マク
  ロから，カーネル構成マクロに変更．

・ISR/初期化ルーチン/終了ルーチンに即値（アドレス）を指定した場合にエ
  ラーとなる問題を修正．
  
・psnd_pdq() でメッセージ送信後，受信待ちしていた受信タスクにディスパ
  ッチしない不具合の修正

・サービスコール単位でライブラリ化時のエラーの修正
  サービスコール単位でライブラリ化時に，giant_lockとext_ker_reqflgが
  多重定義となってしまう問題を修正．

・rcv_pdq/prcv_pdq/trcv_pdqでバッファがあり送信待ちタスクありのパスの
  修正
  送信待ちのタスクが持っていたデータをキューに登録するときの優先度
  が，rcv_dtq/trcv_dtqで渡したデータの優先度となっている．送信タスクが
  持っているデータで登録するように修正した．

・tmoutにTMO_POLが指定された場合の処理がない不具合の修正
  以下のAPIにおいて，tmoutにTMO_POLが指定された場合の処理がなかった．
  trcv_dtq/trcv_pdq/tsnd_pdq

・オブジェクトロックを解放せずにディスパッチしていていた不具合の修正
  以下のAPIにおいて，オブジェクトロックを解放せずにディスパッチしてい
  ていた．
    twai_sem/tsnd_dtq/trcv_mbx/trcv_pdq/tsnd_pdq

・ロックマクロの不具合修正
  以下の2種類のマクロに関して，ロック関数の戻り値の論理を反対としてい
  たため，修正．
  ACQUIRE_DUAL_TSK_LOCK/ACQUIRE_NESTED_TSK_LOCK_AND_CHECK_MIG(プロセッ
  サロック)

・【ターゲット依存部】CPU例外ハンドラからのリターン時のスピンロックの扱い
  CPU例外発生時にスピンロックを取得している場合は，リターン時に解放し
  ない．

・グローバルタイマ方式時のget_utmの無効化

・ref_spnの追加
  スピンロックの状態を参照する ref_spn を追加．

・スピンロック取得中のunl_cpu/iunl_cpu/loc_cpu/iloc_cpuの扱いの変更
  どのAPIもスピンロック取得中は呼び出すことは可能だが，状態は変化しな
  いように変更．

・mig_tskの仕様変更
  対象タスクが割り付けられているプロセッサと同一のプロセッサを指定した
  場合には，マイグレーションは発生しないが，優先順位が同一優先度のタス
  クの中で最低となるよう変更． 

・try_spnのエラーコードの変更
  ロックが取得できなかった場合のエラーコードをE_TMOUTからE_OBJに変更．

・ネイティブスピン方式の場合にスピンロックが不足した場合のエラーコード
  の変更
  E_NOIDからE_NORESに変更．  

・用語の変更
  マイグレーション制限 -> 割付け可能プロセッサ

・自タスクを指定した場合にE_OBJを返していた問題を修正
  can_act/get_pri/wup_tsk/can_wup/rsm_tsk/chg_pri
  FDMPカーネルからの移植時にterflgのチェックルーチンが残っていた．

・マクロ名の変更（CHECK_LCKSPN -> CHECK_LOCSPN）

・マクロ名の変更(PRC_INIT -> TPRC_INIT)
  他の定数との整合性のための変更．

・TLV対応
  ./arch/logtrace/trace_dump.c を変更．

・クラス3/4を有効にした場合のエラーの修正
  ./sysvc/logtask.c, ./syssvc/serial.c について，マクロ定義が間違って
  いたため，クラス3/4を定義するとエラーとなっていた．

・make_runnable()の変更
  タスク状態の変更を行なわないように変更．この変更により，マイグレーシ
  ョン先のプロセッサのキューに接続するさい，make_runnableを呼び出して
  も，タスクの状態が変更されたログを出力しないようになった．

・OMIT_KER_REQ_ON_IPIに関する修正
  OMIT_KER_REQ_ON_IPIが未定義の場合，initialize_pcb()で，
  ext_ker_reqflgを初期化していた問題を解決．

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

        TOPPERS/FMPカーネル
        Release 0.A.0 から 0.B.0 への変更点
        リリース日時 2008-02-04

○変更点のリスト

・ドキュメントの整備
  ASPカーネルからの変更された点について記載した．

・カーネル内データのメモリ配置場所指定方法の変更
  ・コンフィギュレータに追加された関数機能を用いて，GNU環境以外もサポ
    ート可能なように変更．

・システムサービスのメモリ配置場所用マクロの変更
  ・GNU環境以外もサポート可能なように，セクションのみの指定から，変数
    の宣言自体をマクロで行うように変更．

・コンフィギュレーションファイルでのクラスIDのチェックを追加

・静的APIのエラーコードの変更

・非タスクコンテキスト用のスタックの構成を変更

・非タスクコンテキストのチェックルーチンの実装

・グローバルシステムログのスピンロックの変更
  silからカーネルのスピンロック機能を用いるように変更．

・処理単位からのリターン時にスピンロック解除状態とする． 
  ・タスク
  ・タスク例外処理ルーチン
  ・割込みハンドラ/割込みサービスルーチン/タイムイベントハンドラ
  ・CPU例外ハンドラ 

・カーネル内部シンボルのリネーム
  リネームされていなかったシンボルがあったため，リネーム．

・用語の統一
  "ロックの解放"に統一．  

・割込み関連の仕様変更
  統合仕様書のspecに準拠するように書き換え．

・初期化ルーチンと終了処理ルーチンの仕様変更
  クラスに属さないグローバル初期化ルーチンと終了処理ルーチンを導入  

・コメントの用語の変更 : 
  タスクのプロセッサへの"所属"から"割り付け"へ用語を変更．

・トレースログの拡充 : 
  全てのAPIとハンドラ実行の前後のトレースログの取得と，出力ルーチンを
  実装．

・タスクマイグレーションログの追加 : ./kernel/task.h ./kernel/task_manage.c
  タスクマイグレーション時にログを取得するように変更

・シスログの修正 : ./syssvc/syslog.c
  シスログで直接 prc_index() を使わないように変更

・エミュレーション方式のスピンロックの問題点の修正 : 
  ./kernel/kernel.tf, ./kernel/spin_lock.h, ./kernel/spin_lock.c
  エミュレーション方式の初期化ブロックと管理ブロックの構造が古かったた
  め，正しく動作しない問題を修正．

・kernel_cfg.cのISR生成ルーチンの修正 : ./kernel/kernel.tf
  割込み番号の上位ビットにプロセッサIDを付加する場合の割込みサービスル
  ーチンの生成が生成されなかった問題を修正．

・スピンロックオブジェクトの修正 : ./kernel/spin_lock.c
  エミュレーション方式の場合のinitialize_spin_lock()でのロック変数の
  初期化ルーチンが古いままであった点を修正．

・ロック取得ルーチンの修正　: ./kernel/mp.h
  非タスクコンテキスト用のリトライするロック取得ルーチンでリトライ時に
  割込みを許可していない箇所を修正．

・性能評価プログラムの追加 : ./perf
   act_tsk, mact_tsk, mig_tsk の性能評価プログラムを追加．

・テストプログラムの追加 : ./test
   1コアテスト，2コアmig_tskテスト，2コアmact_tskテストを追加．

・histgram.c のアップデート : ./library/histgram.c
   ターゲット依存部で定義したマクロ(HIST_GET_TIM)により計測可能とした．

・calltex()の修正 : ./kernel/task.c
   calltex()で，call_texrtn() ではなく，dispatch_call_texrtn() を呼び
   出すように修正．

・prc_index() と プロセッサIDの説明を追加 : ./doc/porting.txt
   prc_index()が返すべき値について，プロセッサIDの用途について説明を追
   加．

・ASP 1.3.2 追従
   ASP 1.3.1 -> 1.3.2 で変更された箇所をFMPにも反映

・コンフィギュレータの更新
   cfg-20081016.tar.gz に更新．

○ターゲット依存部の要修正箇所

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

        TOPPERS/FMPカーネル
        Release 0.A.0 
        リリース日時 2008-05-12

○変更点のリスト

○ターゲット依存部の要修正箇所

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