
		TOPPERS/FMP3カーネル
		変更履歴

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

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

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

 Copyright (C) 2019-2024 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 418 2024-08-13 11:17:33Z ertl-honda $
----------------------------------------------------------------------
		TOPPERS/FMP3カーネル
		Release 3.3.1 から 3.3.2 への主な変更点

○変更点のリスト

●実装改善
・_kernel_istk_tableがリンクされない場合のエラーチェック回避
	- _kernel_istk_tableをコードから使用せず，リンクされない場合は，パ
      ス3でエラーチェックをしないように変更．

●不具合修正

・シリアルドライバのマルチコア対応
	- 3.3.0 での対応が適用されていなかったため適用．
	- 対応が不十分であったので，スピンロックオブジェクトによる排他制御
	  を追加． 

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

・ras_intが使用できないターゲットへの対応
	- コンパイルエラーが発生しないよう変更．

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

○変更点のリスト

●実装改善

・dis_int等の処理内でCPUロック状態にしないことができるように変更
	- ターゲット依存部の設定により，dis_int，ena_int，clr_int，ras_int，
	  prb_int内で，CPUロック状態にしないことができるように変更．

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

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

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

●不具合修正

・サブ優先度対応の修正
	- 全体的に見直し，ASP3 3.7.1 の拡張に追従
	- テストプログラムの更新と追加

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

○変更点のリスト

●仕様変更，機能拡張

・CPU例外の扱いを変更
	- CPU例外ハンドラの属するクラスに関するエラーチェックを変更．
	- 標準のCPU例外ハンドラ初期化ブロックに，割付け可能プロセッサを持
	  たせるように変更．

・不正なクラスIDのエラーチェックの方法を変更
	- ターゲット依存のクラス定義ファイル（target_class.trb）を新設．
	- クラス定義ファイルの名称を，コンフィギュレータのパス2に-Cオプショ
	  ンで渡すように，コンフィギュレータとsample/Makefile等を変更．
	- コンフィギュレータのクラスの処理方法を変更．クラスの囲みに対して
	  不正なクラスIDのエラーチェックを行うように変更．
	- 静的APIに対する不正なクラスIDのエラーチェックを削除．
	- カーネルに依存しないクラスの処理を，kernel.trbからコンフィギュレー
	  タに移動．

・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）の値を変更しないように変更．
   
●不具合修正
・不要な割込みハンドラ情報を生成しないように修正
	- コンフィギュレータが生成する割込みハンドラに関する情報が，割込み
	  を受け付けるプロセッサ以外に対しても生成される問題を修正．

・標準のCPU例外ハンドラの初期化コードの修正
	- CPU例外ハンドラ初期化ブロックに，割付けプロセッサのフィールドを
	  追加し，自プロセッサのCPU例外ハンドラに対してのみdefine_excを呼
	  び出すように修正．

・[ARM向けターゲット依存部] MPCore内蔵タイマの初期化／終了処理の修正
	- 全体で1回のみ行うべきタイマの初期化／終了処理を，グローバル初期
	  化／終了処理ルーチンで行うように修正．

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

・シリアルドライバのマルチコア対応
	- 対応が不十分であったので，スピンロックオブジェクトによる排他制御
	  を追加． 

●実装改善

・優先度上昇状態を管理するように変更
	- 優先度上昇状態を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の新しいバージョンでエラーにならないように修正．
	- クラスIDでエラーになった場合は，NGKI3016のチェックを行わないよう
	  に修正．

・PCB中のtarget_pcbの宣言位置を先頭に移動
	- ARMv6-M対応において，アドレスオフセットとして指定可能な値の範囲
	  が狭いため先頭に移動．

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

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

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

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

・テストプログラムの改善・変更
  ・テスト(A)ディレイ時間が不足しているため、get_tst()が終了せずに固まって
    しまう問題を修正．

・ドキュメントの改善

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

○ターゲット依存部の要修正箇所（3.2.0 → 3.3.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) クラス定義ファイルを新設
	- target_class.trbを新設し，$clsDataの定義をtarget_kernel.trbから
	  移動する．

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

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

(6) CPU例外の扱いを変更に対応
	- CPU例外ハンドラをプロセッサ毎に定義する方法で，CPUEXC1が定義され
	  ていれば，別の名前に変更する（ARM依存部では_CPUEXC1としている）．

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

○変更点のリスト

●仕様変更，機能拡張

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

・割込みサービスルーチンを実行するプロセッサに関する仕様変更に対応
	- 割込み要求ライン初期化ブロックのaffinityフィールド（割付け可能プ
	  ロセッサ）に生成する情報を，対応するDEF_INHがある場合，対応する
	  CRE_ISRがある場合，どちらもない場合で変えるように変更．
	- CFG_INTに関するエラーチェックを，2回に分けて実施．
	- [ARM依存部] 割付け可能プロセッサが複数あるクラスの囲み内に
	  CRE_ISRやCFG_INTを記述した場合には，コンフィギュレータが警告メッ
	  セージを出し，クラスの初期割付けプロセッサのみで割込みを受け付け
	  るように設定するように変更．
	  
・[ARMコア依存部] 性能評価時のキャッシュの無効化の実装
	- HIST_INVALIDATE_CACHEがマクロ定義されている場合には，性能評価に
	  おいて実行時間を計測する前に，キャッシュと分岐予測を無効化する．

●不具合修正

・通知ハンドラ名の衝突の問題の修正
	- タイムウィンドウ通知の通知ハンドラの関数名が，周期通知やアラーム
	  通知と衝突する可能性がある問題を本格的に修正．

・取得しているスピンロックの初期化の場所の変更
	- initialize_spin_lock()において，p_my_pcb->p_locspn をNULLに初期化
	  しており，スピンロック機能を使わない場合はこの関数は呼び出されない．
	  一方，この変数はunl_cpu()で参照されるため，sta_ker()で初期化する．
    
・優先度変更時のサブ優先度のチェック漏れの修正
	- 変更後の優先度がサブ優先度の対象かつ，schedtskと優先度が同じ場合は
	  サブ優先度を比較してp_schedtskの更新を行うように修正．
    
・サービスコール単位でのリンクの対応漏れ
	- chg_sprが抜けていたため追加    

・get_tstの実行状態の判定文の修正
	- get_tstで，対象タスクが実行状態であるかの判定文が誤っていた不具
	  合を修正．

・ref_tsk()おけるサブ優先度の取得の修正
	- 休止状態でもサブ優先度を取得するように修正．
  
・通知ハンドラ名の衝突の問題の修正
	- タイムウィンドウ通知の通知ハンドラの関数名が，プロセッサ間で衝突
	  する問題と，周期通知やアラーム通知と衝突する可能性がある問題を修
	  正．

・ディスパッチ保留状態でタスク切換えが起こる不具合の修正
	- dis_dspとchg_ipm内で，ジャイアントロックを取得した後に，タスク切
	  換えが必要であればディスパッチを行うように修正．

・trcv_dtqの条件文の修正
	- trcv_dtqで，タスク終了要求のチェックの後のif文に，elseが抜けてい
	  た不具合を修正．

・get_tstの実行状態の判定文の修正
	- get_tstで，対象タスクが実行状態であるかの判定文が誤っていた不具
	  合を修正．

・p_my_pcb->p_locspnの初期化箇所の修正
	- p_my_pcb->p_locspnの初期化処理を，initialize_spin_lockから
	  sta_kerに移動．このフィールドは，スピンロックを使用しない場合で
	  も，unl_cpu内で参照されるため．

・xsns_dpnの不具合修正
	- タスクコンテキストから呼び出された場合は，trueを返すように修正．

・get_my_pcbの定義の修正
	- get_my_pcbのデフォルトの定義を，kernel_cfg.c中に生成される割込み
	  ハンドラから呼び出されるのに対応できるように修正．

・コンフィギュレータの不具合修正
	- クラスの指定値が有効範囲外の場合に，エラーメッセージを出力した後，
	  コンフィギュレータがエラーで落ちる不具合を修正．
	- DEF_ICSに関するエラーメッセージのパラメータが書き換わらないよう
	  に修正．
	- エラーメッセージの修正（"must be with a class" → "must be
	  within a class"）
	- エラーメッセージの修正（"any kernel memory object" → "any
	  memory object"）

・ARMコア依存部，チップ依存部，ターゲット依存部の不具合修正
	- ARMv7では，SMP有効時にACTLRのFWビットを設定するように修正．
	- request_dispatch_prc，request_ext_ker，request_set_hrt_eventのパ
	  ラメータの型の誤りを修正．
	- オーバランハンドラを使用する場合のレジスタ保存の抜けを修正．

・その他の不具合修正
	- msta_cycとmsta_almの出口のログ取得マクロ名の誤りを修正．
	- タスクマイグレーションログの取得漏れを修正．
	- time_event.h中のtmevtb_enqueueとtmevtb_dequeueのパラメータ名の誤
	  りを修正（プロトタイプ宣言なので実害なし）．
	- マスタプロセッサであることを判別するマクロis_mprcを廃止．

・メモリバリア操作の追加
   - 他プロセッサのp_schedtskを書き換える前に，メモリバリア操作を行う
     ようにする．

●機能改善

・コンフィギュレータのエラーメッセージの改善
	- コンフィギュレータ本体のエラーメッセージ出力関数を拡張・整理．そ
	  れを活用するように生成スクリプトを変更．
	- inhno／intnoが有効範囲外のエラーの場合に，初期割付けプロセッサ／
	  割付け可能プロセッサに関するエラーチェックを行わないように修正．
	- カーネル管理外の割込みに関するエラーメッセージを改善．
	- 静的APIの文法エラーに対するエラーメッセージを改善．
	- 静的APIテーブルにエラーがあった場合に，ファイル名と行番号を出力
	  するように変更．

●実装改善

・ディスパッチハンドラを除外できるように変更
	- ディスパッチハンドラが不要な場合に，OMIT_DISPATCH_HANDLERをマク
	  ロ定義することでコードを除外できるように変更．
	- [ARMコア依存部] この変更を活用するように変更．

・必要とするカーネルの内部関数にp_my_pcbを渡すように変更
	- タイムイベント管理モジュールのコールバック関数に，p_my_pcbを渡す
	  ように変更．
	- twdtimer_start/stop/controlに，p_my_pcbを渡すように変更．
	- define_inhとconfig_intに，p_my_pcbを渡すように変更．

・update_schedtskの実装改善
	- これまでのupdate_schedtskを，update_schedtsk_dspにリネーム．

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

・ext_kerの実装の改善
	- ext_ker_handlerでは，他のプロセッサにプロセッサ間割込みをかけな
	  いように変更．

・スピンロックの自動解放の実装改善
	- force_unlock_spinの呼出しを，task_terminateからext_tskに移動．
	- force_unlock_spinを呼び出すのを，CPUロック状態の場合のみにした．

・内部関数の必要性の低いパラメータを廃止
	- make_active，activate_context，make_runnable，migrate_self，
	  dispatch_and_migrate，make_non_wait，make_non_runnable，
	  wait_dequeue_tmevtb，change_priority，mutex_drop_priorityのp_pcb
	  （またはp_new_pcb）パラメータを廃止．

・PCB関連のファイルの整理
	- EVTTIM，TMEVTN，TMEVTBの定義を，time_event.hからtmevt.hに分離し，
	  tmevt.hをpcb.hからインクルードする．
	- target_pcb.hの内容をtarget_kernel_impl.hに移して，target_pcb.hは
	  廃止．pcb.hをtarget_kernel_impl.hより後にインクルードする．
	- target_kernel_impl.h中のPCBの内容にアクセスするインライン関数は，
	  マクロでの実装に変更．

・ARMコア依存部，チップ依存部，ターゲット依存部の実装改善
	- 実行状態のタスクのマイグレート時に使用するスタックを，非タスクコ
	  ンテキスト用スタックに変更．
	- 周辺デバイスへのポーリングに待ち（sil_dly_nse(100)）を入れた．
	- sil_dly_nseのアラインメントを64ビット境界に変更．
	- 不必要な命令の削除．

・スピンロックの自動解放の実装改善
	- force_unlock_spinの呼出しを，task_terminateからext_tskに移動．
	- force_unlock_spinを呼び出すのを，CPUロック状態の場合のみにした．

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

・その他の実装改善
	- check.hに，check_disdspとget_p_selftskを追加．
	- p_selftskが使えるところでは，p_my_pcb->p_runtskをp_selftskで置き
	  換える．
	- 標準の割込みハンドラ初期化ブロックから，affinityフィールド（割込
	  みハンドラの割付け可能プロセッサ）を削除．標準のdefine_inhのパラ
	  メータから，affinityを削除．
	- loc_spn内のgotoを無くすように変更．
	- スピンロックに関するコンフィギュレーション処理の順序を前に移動．
	- マスタプロセッサであることを判別するマクロis_mprcを廃止．
	- 前方参照のためにtypedefしたデータ型も，再度typedefするように変更．

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

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

・テストプログラムの改善・変更
	- ARM依存のテストプログラムarm_cpuexcを，arm_cpuexc1にリネーム．テ
	  スト内容を変更（SVCによるCPU例外処理のテストを除外）．

・ARMコア依存部，チップ依存部，ターゲット依存部の変更
	- MPCoreのグローバルタイマによるtarget_hrt_raise_eventの実装を，直
      接割込みを要求する形に変更．

・サンプルプログラムの修正
	- サンプルプログラムを，CPUEXC1の定義を参照しないように修正．

・テストプログラムの修正
	- 通知処理のテスト(1)（test_notify1）の変数の型の誤り（intptr_tと
	  int_tのサイズが異なる場合に不具合が発生）を修正．
	- マルチプロセッサ対応のアラーム通知のテスト(2)（test_malarm2）が
	  意図通りのテストになっていなかったのを修正．
	- 一部のテストプログラムがカーネルの変更に追従していなかったため修正．

・テストプログラムの改善・変更
	- セマフォ機能のテスト(1)（test_sem1），スピンロック機能のテスト
	  (2)（test_spinlock2），過渡的な状態のテスト(2)（test_mtrans2）の
	  テスト項目を追加．
	- 過渡的な状態のテスト(5)（test_mtrans5）を追加．
	- マルチコア対応テストプログラムにおいて終了時にコア間の同期を追加．
	- マルチコア対応テストプログラムにおいて2コア以外コンフィギュレーショ
	  ンでビルドするとエラーとなるよう変更．

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

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

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

(1) メモリバリア操作の追加
	- memory_barrier関数の定義を追加する．

(2) 内部関数の不要なパラメータの廃止に対応
	- activate_context，migrate_self，dispatch_and_migrateのp_pcb（ま
	  たはp_new_pcb）パラメータが廃止されたのに対応する．

(3) 標準のdefine_inhとconfig_intのパラメータの変更に対応
	- define_inhのパラメータに，p_my_pcbを追加．affinityを削除．
	- config_intのパラメータに，p_my_pcbを追加．

(4) 割込みサービスルーチンを実行するプロセッサに関する仕様変更に対応
	- 割込みを複数のプロセッサで受け付けることができない場合には，割込
	  みサービスルーチンを，属するクラスの初期割付けプロセッサで実行す
	  るように対応（TargetCheckCreIsrと新設のTargetCheckCfgInt2で対応）．

(5) ディスパッチハンドラが不要な場合は除外するように変更
	- ディスパッチハンドラが不要な場合には，OMIT_DISPATCH_HANDLERをマ
	  クロ定義する．

(6) is_mprcマクロを使用しないように変更

----------------------------------------------------------------------
		TOPPERS/FMP3カーネル
		Release 3.0.0 から 3.1.0 への主な変更点

○主な変更点のリスト

●仕様変更，機能拡張

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

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

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

・カーネルのデータ構造を配置するセクションの指定方法の変更
	- TargetGenXXX を廃止して，クラスから，カーネルのデータ
	  領域のセクション名を返すSecnameKernelData()とスタック
	  領域のセクション名を返すSecnameStack()をターゲット依
	  存部で用意するよう変更．

・[ARM依存部] 割込みハンドラのバイパス機能の追加
	- USE_BYPASS_IPI_DISPATCH_HANDERを定義すると，他コアからのディスパッ
	  チ要求割込み受付時に割込みハンドラを呼び出さず，割込み処理を終了
	  させるように変更．

●不具合修正

・trcv_dtqでrelease_glockを2回呼ぶパスがある不具合を修正

・initialize_interrupt内で使用する変数の誤りを修正

・その他の不具合修正
	- 不要なextern宣言（set_my_hrt_event）の削除．
	- リネーム記述（kernel_rename.def等）の修正．
	- 静的APIの最後に";"が抜けている不具合の修正．

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

・ARMコア依存部，チップ依存部，ターゲット依存部の不具合修正
	- ARMv7では，SMP有効時にACTLRのFWビットを設定するように修正．

●実装改善

・ARMコア依存部，チップ依存部，ターゲット依存部の実装改善
	- core_test.hにおけるCPU例外の発生コードを見直し．
	- ARM依存のテストプログラム（arm_cpuexc）を追加．
	- sp804.hを削除．
	- software_term_hookを，target_exitから呼ぶように変更．

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

・その他の実装改善
	- VALID_TMOUTの定義を変更．
	- check_adjtimのパラメータの型と，エラーチェックの条件式を変更．
	- TOPPERS_ISTKPTが定義されていない時に，idstk_tableを生成するよう
	  に変更．

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

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

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

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

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

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

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

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

(1) パス2の生成スクリプトのターゲット依存部の仕様変更への対応
	- DefineVariableSectionの定義を追加する．
	- SecnameKernelDataの定義を追加する．
	- SecnameStackを，clsに$TCLS_NONEが渡された場合に対応できるように
	  修正する．
	- TargetGenXXXを削除．

(2) 高分解能タイマが64ビットの場合に対応（オプション）
	- 高分解能タイマを64ビットにできる場合には，必要に応じて対応する．
	  具体的には，ASP3カーネルのポーティングガイドの(3-8-1)，(5-3-1)，
	  (6-13-2-5)の設定に対応し，tool_svc.hのターゲット依存部に，
	  CAL_SVC_0M_R_UINT64の定義を追加する．

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

----------------------------------------------------------------------
		TOPPERS/FMP3カーネル
		Release 1.4.0 から 3.0.0 への主な変更点

○主な変更点のリスト

※ ASP3カーネル Release 3.3.1 をベースにしているため，ASPカーネルから
   の変更点についてはASP3カーネルの変更履歴を参照のこと．

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

・機能の追加／廃止
	- サブ優先度機能の追加

・スケジューラの実装の変更
	- アイドル処理用のスタックを用意

・タイムイベント処理のティックレス化
	- ティックレス化に伴う仕様変更に伴いタイムイベントモジュールを変更．

・その他の実装の変更
	- カーネル内ロック方式をジャイアントロックのみに．

