
		TOPPERS/FMP3カーネル
		変更履歴

		対応バージョン: Release 3.1.0
		最終更新: 2019年10月09日

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

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

 Copyright (C) 2014-2018 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 183 2019-10-09 00:40:00Z ertl-honda $
----------------------------------------------------------------------
		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カーネルの変更履歴を参照のこと．

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

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

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

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

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

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