8 このドキュメントは,TOPPERS/ASPカーネルのRelease 1.0.0以降の変更履歴を,
11 ----------------------------------------------------------------------
13 Toyohashi Open Platform for Embedded Real-Time Systems/
14 Advanced Standard Profile Kernel
16 Copyright (C) 2005-2010 by Embedded and Real-Time Systems Laboratory
17 Graduate School of Information Science, Nagoya Univ., JAPAN
19 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
20 ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
21 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
22 (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
23 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
25 (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
26 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
27 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
29 (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
30 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
32 (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
33 作権表示,この利用条件および下記の無保証規定を掲載すること.
34 (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
36 (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
37 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
38 また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
39 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
42 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
43 よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
44 に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
45 アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
48 $Id: version.txt 1871 2010-07-27 04:24:46Z ertl-hiro $
49 ----------------------------------------------------------------------
52 Release 1.5.0 から 1.6.0 への変更点
57 - offsetof_TINIB_stkszとoffsetof_TINIB_stkの取得記述をターゲット非
61 - genoffsetに,エンディアン指定をチェックする機能を追加.その際に,
65 - TCBのpriorityフィールドを,条件があえばuint_8で定義するように修正.
66 - ターゲット依存部でSIL_ENDIAN_BIGもSIL_ENDIAN_LITTLEも定義されてい
67 ない場合に,sil.hでエラーを検出するように修正.
68 - システムログ機能のsysog_logmaskとsyslog_lowmask_notの初期値を修正.
69 - makereleaseを,ファイルの重複をチェックするように修正.
70 - test_utm1のエラーメッセージを修正.
77 ○ターゲット依存部の要修正箇所(1.5.0 → 1.6.0)
80 - makeoffset.cに,sil_endian関数を追加する(これにより,genoffsetの
81 エンディアン指定をチェックする機能が有効になる).
82 - オーバランハンドラ拡張パッケージに対応する場合には,leftotmフィー
84 - 生成されるoffset.hに変化がないことを確認する.
86 (2) 値取得シンボルテーブルのターゲット依存部の修正
87 - 以下の2行をtarget_def.csv(またはそれに代わるファイル)から削除する.
88 offsetof_TINIB_stksz,"offsetof(TINIB,stksz)"
89 offsetof_TINIB_stk,"offsetof(TINIB,stk)"
90 ※ Release 1.5.0における修正を元に戻す.
92 (3) target_fput_logの実装制限の確認(仕様が修正されたわけではない)
93 - target_fput_log全割込みロック状態で呼び出せるようになっているか確
96 ----------------------------------------------------------------------
99 Release 1.4.0 から 1.5.0 への変更点
103 ・カーネル管理外の割込みとCPU例外の扱いの見直し
104 - カーネル管理外の割込みの設定方法を整理・拡張.
105 - カーネル管理外の割込みハンドラは,カーネル内の出入口処理を経由し
107 - CPU例外ハンドラの出入口処理におけるカーネル管理外のCPU例外の扱い
110 ・chg_ipmとget_ipmの仕様変更
111 - chg_ipmとget_ipmは,CPUロック状態では呼べないものとした.
114 ・タイマ割込み処理で呼び出したialm_timの基準時間の変更
115 - current_timeの更新後に,タイムイベントの処理を行うように変更.
116 - 有効な最小のシステム時刻としてmin_timeを導入.
119 ・タスクのスタックサイズの最小値チェックの追加
120 - スタックサイズが0の場合のエラーを,ターゲット非依存で検出.
121 - ターゲット依存で,タスクのスタックサイズの最小値を設定できるよう
125 - ターゲット依存で,タスク初期化コンテキストブロック(TSKINICTXB)
128 ・ターゲット依存部で定義する名称のリネーム方法の変更
129 - ターゲット依存部で定義し,ターゲット非依存部から参照する名称のリ
133 - ミューテックス機能拡張パッケージ,オーバランハンドラ機能拡張パッ
134 ケージ,タスク優先度拡張パッケージを,一般公開するファイルに追加.
135 - オーバランハンドラ機能拡張への対応方法を,ポーティングガイドに記載.
137 ・サポートする機能を識別するマクロの定義方法の変更
138 - ターゲット依存部でTOPPERS_TARGET_SUPPORT_XXXXXがマクロ定義されて
139 いれば,kernel.hでTOPPERS_SUPPORT_XXXXXをマクロ定義する方法に変更.
142 - syslog_initializeが呼ばれる前のログ情報の出力に対応.
143 - sysog_logmaskとsyslog_lowmask_notの初期値を修正.
146 - test_lib.hとtest_lib.cを,testディレクトリから,それぞれincludeと
148 - syslog_flush関数を追加.logtask_flushの代わりに使用.
149 - test_finish関数を追加.テストプログラム中でext_kerの代わりに使用.
153 - Makefileのテンプレートを指定するためのオプションを追加.
156 - kernel_impl.h中のマクロ名の修正.
157 - kernel.tf中の文法ミスの修正.
160 - CTXB型をTSKCTXB型に名称変更.
161 - ext_tskで,戻らないはずの処理から戻った場合には,E_SYSを返す.
162 - call_texrtnからdispatchを呼び出す処理を改善.
163 - make_non_waitを,wait.cからwait.hに移動.
164 - xsns_xpn中の冗長な条件式を削除.
165 - TA_DISINTとTA_LEVELをitron.hから削除.
166 - LOG_TEX_LEAVEの第2パラメータを削除.
167 - サンプルのMakefileに,OMIT_WARNING_ALLとOMIT_OPTIMIZATIONを追加.
168 - get_utmに関するテスト(1)(test_utm1)を追加.
169 - test_dlynse.cの表示を改善.
172 - 機能拡張・チューニングガイドに関して,ユーザーズマニュアルに記載.
173 - キュー操作ライブラリ関数に関して,ユーザーズマニュアルに記載.
174 - システムの起動時の初期化処理に関して,ユーザーズマニュアルに記載.
178 - カーネル仕様のバージョン番号,カーネルのバージョン番号を更新.
180 ○ターゲット依存部の要修正箇所(1.4.0 → 1.5.0)
182 (1) カーネル管理外の割込みの扱いの変更
183 - カーネル管理外の割込みハンドラの呼び出し方について,これまでの考
184 え方を変更した.「ターゲット依存部 ポーティングガイド」の6.6.7節
185 の記述通りに実装されているかチェックする.
186 - TA_NONKERNELを使用できるようにする場合には,target.tfで,
187 TARGET_INHATRにTA_NONKERNELを設定する.
188 - パス2のテンプレートファイルのターゲット非依存部に,
189 INTNO_FIX_KERNEL,INHNO_FIX_KERNEL,INTNO_FIX_NONKERNEL,
190 INHNO_FIX_NONKERNEL,USE_INHINIB_TABLE,USE_INTINIB_TABLEのサポー
191 トが追加されたので,使用できる場合には使用するように修正する.
192 - カーネル管理の割込みハンドラの出入口処理について,「ターゲット依
193 存部 ポーティングガイド」の6.6.1節の記述通りに実装されていること
196 (2) カーネル管理外のCPU例外の扱いの変更
197 - カーネル管理外のCPU例外ハンドラの呼び出し方について,これまでの考
198 え方を変更した.「ターゲット依存部 ポーティングガイド」の6.7.1節
201 (3) ターゲット依存部で定義する名称のリネームの追加
202 - ターゲット依存部で定義し,ターゲット非依存部から参照する名称のリ
203 ネーム記述を,ターゲット依存部に追加する.ターゲット依存部とチッ
204 プ依存部の間でも同様の変更を行うことが望ましい.ただし,
205 arch/logtrace/trace_config.cで定義される名称については,ターゲッ
208 (4) ターゲット依存部でサポートする機能を示すマクロの変更
209 - ターゲット依存部で定義しているTOPPERS_SUPPORT_DIS_INTを
210 TOPPERS_TARGET_SUPPORT_DIS_INTに,TOPPERS_SUPPORT_ENA_INTを
211 TOPPERS_TARGET_SUPPORT_ENA_INTに,TOPPERS_SUPPORT_GET_UTMを
212 TOPPERS_TARGET_SUPPORT_GET_UTMに,それぞれ変更する.
214 (5) タスクコンテキストブロックの型名の変更
215 - CTXB型をTSKCTXB型に名称変更する.
217 (6) 値取得シンボルテーブルのターゲット依存部の修正
218 - 以下の2行をtarget_def.csv(またはそれに代わるファイル)に加える.
219 offsetof_TINIB_stksz,"offsetof(TINIB,stksz)"
220 offsetof_TINIB_stk,"offsetof(TINIB,stk)"
221 ※ 新設されたUSE_TSKINICTXBを使う場合には必要ない.
222 ※ Release 1.6以降を用いる場合には,この修正は必要はない.
225 - LOG_TEX_LEAVEの第2パラメータが削除されたので,LOG_TEX_LEAVEを定義
228 (8) スタートアップモジュールの修正(bssセクションのクリアを省略している
230 - システムログ機能を使用する場合には,スタートアップモジュールに,
231 syslog_logmaskとsyslog_lowmask_notを0に初期化するコードを追加する.
232 - トレースログ記録のサンプルコードを組み込んでいる場合には,スター
233 トアップモジュールに,trace_modeを0に初期化するコードを追加する.
235 (9) タスクのスタックサイズの最小値チェックの設定(オプション)
236 - ターゲット依存に,タスクのスタックサイズの最小値をチェックする場
237 合には,最小値をTARGET_MIN_STKSZに定義する.
239 (10) オーバランハンドラ機能拡張への対応(オプション)
240 - オーバランハンドラ機能拡張パッケージに対応する.対応方法について
241 は,「ターゲット依存部 ポーティングガイド」中の「#ifdef
242 TOPPERS_SUPPORT_OVRHDR」がある箇所と,5.7節と6.14節を参照すること.
244 ----------------------------------------------------------------------
247 Release 1.3.2 から 1.4.0 への変更点
252 - sta_cycを呼び出した後,最初に周期ハンドラが起動される時刻を,起動
258 - ターゲット非依存部からcall_atexitを呼び出すのをやめる.
259 call_atexitで行っていた処理(標準的にはsoftware_term_hookを呼び出
260 す処理)は,必要であればtarget_exitの先頭で行うこととする.
263 - 周期ハンドラ,アラームハンドラの中でget_utmを呼ぶと,正しい時刻が
267 - タスク状態(tstat)の変更を,make_runnableではなく,それを呼ぶ側
271 - OMIT_INITIALIZE_INTERRUPTとOMIT_INITIALIZE_EXCEPTIONの2つのテンプ
272 レート変数の値を,ヘッダファイルの定義から自動取得するように修正.
275 - LOG_TEX_ENTER,LOG_TEX_LEAVEのパラメータに,p_runtskを追加.
278 - 時刻取得の方法をターゲット依存で変更できるように修正.
279 - TNUM_HISTの定義を,histgram.hからhistgram.cに移動.
282 - cfgは,ASPカーネルとは独立したパッケージとして配布することにする.
285 - doc/migration.txtは,別途PDFファイルで配布することにする.
287 ・テストプログラム,性能評価プログラムの追加
288 - セマフォ機能のテスト(2)(test_sem2)を追加.
289 - act_tsk,iact_tskの処理時間の評価プログラム(perf4)を追加.
292 - clean時に削除するファイルを,ターゲット依存部で定義するための変数
296 - makereleaseが使うディレクトリ名(asp)を,カレントディレクトリか
298 - makedepに,Cygwin環境におけるルートディレクトリ名を指定するため
299 の-Rオプションを追加.MakefileにMAKEDEP_OPTS変数を追加.
300 - gentestをアラームハンドラの複数回起動に対応できるように拡張.
304 - 割込みサービスルーチン,初期化ルーチン,終了処理ルーチンの先頭番
305 地に関数名以外を記述した場合にも動作するように修正.
306 - Makefile.dependがない場合の問題を修正.
309 - 各ドキュメントにTOPPERSライセンスと目次を追加.
312 - カーネル仕様のバージョン番号,カーネルのバージョン番号を更新.
314 ○ターゲット依存部の要修正箇所(1.3.2 → 1.4.0)
317 - call_atexitを廃止したため,ターゲット依存部から定義を削除する.
318 call_atexitで行っていた処理(標準的にはsoftware_term_hookを呼び出
319 す処理)は,必要であればtarget_exitの先頭で行う.
322 - OMIT_INITIALIZE_INTERRUPTとOMIT_INITIALIZE_EXCEPTIONの2つのテンプ
323 レート変数の値を,ヘッダファイルの定義から自動取得するように修正
324 したため,ターゲット依存部(target.tfまたはそこからインクルードさ
325 れるファイル)で値を定義していれば,その定義を削除する.
327 (3) makedepを呼ぶ際のオプションの追加
328 - Makefileのターゲット依存部(Makefile.target等)でmakedepを呼んで
329 いる場合には,$(MAKEDEP_OPTS)を追加する.
331 例)@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
332 -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
334 (4) 簡易パッケージへのコンフィギュレータの追加
335 - コンフィギュレータ(cfg)がターゲット非依存部から分離されたため,
336 簡易パッケージに入れる場合には,E_PACKAGEにcfgを含めるための記述
339 例)INCLUDE ../../cfg/MANIFEST
341 ----------------------------------------------------------------------
344 Release 1.3.1 から 1.3.2 への変更点
348 ・TMAX_RELTIMをユーザから参照できるマクロに
349 - TMAX_RELTIMの定義を,kernel/time_event.hからinclude/t_stddef.hに
353 - syslog_printf,syslog_print,syslog_wri_log,serial_wri_datのパラ
356 ・TMIN_ISRPRI,TMAX_ISRPRIの導入
358 ・実行時間分布集計モジュールで時間の逆転が疑われるケースの扱い
359 - 実行時間分布集計モジュールで時間の逆転が疑われる度数を計測するよ
363 - ログバッファに残ったログ情報であることを示す文字列を出力するように
367 - 順序付きリストの要素に式を使えるように変更.
368 - 静的APIのパラメータに型キャストが含まれるとパースできないバグの修正.
369 - #pragma onceを用いると行番号がずれるバグの修正.
370 - cfgファイルを指定しなかった場合のエラーメッセージの修正.
373 - コンフィギュレータがkernel_cfg.c以外のファイルを生成する場合に対
374 応するための変数(CFG_OBJS,CFG2_OUT)を導入.
377 - realclean時に削除するファイルを,ターゲット依存部で定義するための
378 変数(REALCLEAN_FILES)を導入.
382 - カーネルの整合性検査にセマフォ毎の検査を追加.
385 - 非タスクコンテキスト用スタックの確保時のサイズの誤り.
386 - kernel.tf中のエラーメッセージの誤り.
387 - 実行時間分布集計モジュールにおける最大値の扱いのバグ.
388 - Makefile中のAPPLDIRに複数のディレクトリが定義されている時の扱い.
389 - test/perf.cで,計測回数を10000回になるように修正.
390 - DVE68Kターゲット依存部のtarget.tf中のエラーメッセージの誤り.
393 - 各ドキュメントにTOPPERSライセンスと目次を追加.
397 ○ターゲット依存部の要修正箇所(1.3.1 → 1.3.2)
401 ----------------------------------------------------------------------
404 Release 1.3.0 から 1.3.1 への変更点
409 - CRE_TSKのstk(タスクのスタック領域の先頭番地)がNULLでない場合に,
410 stkszを適切な値(ターゲット依存の値の倍数)に丸める処理をやめ,適
411 切な値でない場合にエラーとするように修正.
412 - DEF_ICSのistk(非タスクコンテキスト用のスタック領域の先頭番地)が
413 NULLでない場合に,istkszが適切な値(ターゲット依存の値の倍数)で
417 - TMAX_SUSCNTの定義を,kernel.hからitron.hに移動.
418 - ref_tskで参照できる情報(T_RTSKのフィールド)からsuscntを削除.
421 - 各オブジェクトの属性のパラメータを,符号無しに修正.
424 - 符号付きのシンボルの定義に",signed"を付加.
430 - 組込み関数DUMP, TRACE, NOOPを追加.
431 - $FOREACH$や$IF$等の中身が何もないときに,internal errorになる不具
433 - $INCLUDE$命令でインクルードしたtfの行番号がずれる不具合を修正.
434 - 64ビット整数が定義されていないと,CSVファイルでsをつけたレコード
436 - 型キャストのパース処理に関する不具合の修正.
437 - エラーの起こった行番号が正しくない不具合の修正.
438 - 同じtskidに対してDEF_TEXが複数あるエラーのチェックを行うように修正.
439 - DEF_TEXを使用した時に,TSK.TSKID[tskid]が0になる不具合の修正.
440 - DEF_INH,CFG_INT,DEF_EXCで同じオブジェクト番号に対する登録が重複し
441 た場合のエラーチェックを二重に行っている問題の修正.
444 - doc/api_spec.txt, ngki_spec.txt, sysstat.txtを除外.
445 - extensionディレクトリを除外.
451 ○ターゲット依存部の要修正箇所(1.3.0 → 1.3.1)
453 (1) スタックサイズのエラーチェックに関する修正箇所
454 - target.tfでkernel.tfをインクルードする前に,CHECK_STKSZ_ALIGNを,
455 スタックサイズがどの値の倍数になっていなければならないかを設定す
457 例)$CHECK_STKSZ_ALIGN = 4$
459 (2) ターゲット依存部のユーザーズマニュアルについて
460 - ターゲット依存部のユーザーズマニュアルのファイル名と,そのファイ
461 ルに記述すべき内容を規定した.「ターゲット依存部 ポーティングガイ
462 ド」の「9.1 ドキュメント」の節を参照すること.
464 ----------------------------------------------------------------------
467 Release 1.2.1 から 1.3.0 への変更点
471 ・set_tim(システム時刻の設定)の廃止
474 - TA_DISINTを廃止して,TA_ENAINTを復活.
476 ・拡張機能・ターゲット定義機能の有無を判別するマクロ名の変更
477 - TOPPERS_EXTENSION_MUTEXをTOPPERS_SUPPORT_MUTEXに.
478 - TOPPERS_EXTENSION_PRI_LEVELをTOPPERS_SUPPORT_PRI_LEVELに.
479 - SUPPORT_???_???をTOPPERS_SUPPORT_???_???に変更し,ターゲット依存
480 部での定義をtarget_kernel.hに移動する.
483 - SYSUTIM → SYSUTM,sysutim → sysutm,p_sysutim → p_sysutm
484 - SIO_ERDY_SND → SIO_RDY_SND,SIO_ERDY_RCV → SIO_RDY_RCV
485 - sio_ierdy_snd → sio_irdy_snd,sio_ierdy_rcv → sio_irdy_rcv
487 ・cfg1_out.cのコンパイル/リンク方法の変更
488 - cfg1_out.cからtarget_cfg1_out.hをインクルードするように,コンフィ
490 - ターゲット依存部でtarget_cfg1_out.hを用意する.
491 - cfg1_out.cのリンクは,カーネルと同じ方法をとるように変更.
494 - cfg1_out.cに生成する内容の変更(前記と関連).
498 - タスク内でのループ回数を固定する機能(TASK_LOOP)を導入.
502 - DEF_TEXのエラーで,問題になったDEF_TEXの行番号を表示する.
511 ○ターゲット依存部の要修正箇所(1.2.1 → 1.3.0)
513 (1) TA_DISINTの廃止・TA_ENAINTの復活に伴う修正箇所
514 - TA_DISINTを使った判定をTA_ENAINTを使った判定に変更する.
515 例)((intatr & TA_DISINT) == 0U) → ((intatr & TA_ENAINT) != 0U)
516 - CFG_INTの割込み属性にTA_DISINTが設定されていれば,それを消す.
517 例)CFG_INT(INTNO_SIO, { TA_DISINT | INTATR_SIO, INTPRI_SIO });
518 → CFG_INT(INTNO_SIO, { INTATR_SIO, INTPRI_SIO });
519 - CFG_INTの割込み属性にTA_DISINTが設定されていなければ,TA_ENAINTを
521 例)CFG_INT(INTNO_TIMER, { INTATR_TIMER, INTPRI_TIMER });
522 → CFG_INT(INTNO_TIMER, { TA_ENAINT | INTATR_TIMER, INTPRI_TIMER });
524 (2) 拡張機能・ターゲット定義機能の有無を判別するマクロ名の変更に伴う修正箇所
525 - SUPPORT_???_???をTOPPERS_SUPPORT_???_???に変更し,ターゲット依存
526 部での定義をtarget_kernel.hに移動する.
527 TOPPERS_SUPPORT_DIS_INT dis_intをサポートする
528 TOPPERS_SUPPORT_ENA_INT ena_intをサポートする
529 TOPPERS_SUPPORT_GET_UTM get_utmをサポートする
530 - makeoffset.cで,TOPPERS_EXTENSION_MUTEXを参照している場合には,
531 TOPPERS_SUPPORT_MUTEXに変更する.
533 (3) 型名・変数名・定数名の変更に伴う修正箇所
534 - SYSUTIM → SYSUTM,sysutim → sysutm,p_sysutim → p_sysutm
535 - SIO_ERDY_SND → SIO_RDY_SND,SIO_ERDY_RCV → SIO_RDY_RCV
536 - sio_ierdy_snd → sio_irdy_snd,sio_ierdy_rcv → sio_irdy_rcv
537 ★sysutimとerdyを大文字小文字を区別せずにサーチするとよい.
539 (4) cfg1_out.cのコンパイル/リンク方法の変更に伴う修正箇所
540 - ターゲット依存部で,target_cfg1_out.hを用意する.詳しくは,「ター
541 ゲット依存部 ポーティングガイド」の7.4節を参照.
542 - 新たに用意したファイルをMANIFESTに追加する.
545 - Makefile.targetに,「COPTS := $(COPTS) -Werror」を追加することを
546 検討する.カーネル内で厳密な別名規則による警告メッセージが出る場
547 合には,「KERNEL_CFLAGS := $(KERNEL_CFLAGS) -fno-strict-aliasing」
553 ----------------------------------------------------------------------
556 Release 1.2.0 から 1.2.1 への変更点
560 ・トレースログ記録のサンプルコードを組み込む方法の変更
561 - configureに-rオプションを追加.
562 - sample/Makefileの修正.
564 ・Makefileのコンフィギュレータ関連部分の変更
565 - コンフィギュレータに対するターゲット依存のオプションを,Makefile
567 - コンフィギュレータの各パスのターゲット依存のファイルへの依存関係
568 を,Makefileのターゲット依存部で記述するように変更.
572 ○ターゲット依存部の要修正箇所(1.1.0 → 1.2.1)
576 ・target.tf中で,ヘッダファイルと重複した定数値の定義を行っている場合に
577 は,target_def.cvsに変数記述を行い,重複した定義を削除する.
579 ・コンフィギュレータに対するオプションに,target_def.cvsを読み込ませる
580 指定を追加する.「ターゲット依存部 ポーティングガイド」2.4節の
583 ・target_check.tfを作成する.「ターゲット依存部 ポーティングガイド」
586 ・コンフィギュレータの各パスに対して,ターゲット依存のファイルへの依存
587 関係を定義する.「ターゲット依存部 ポーティングガイド」2.7節参照.
591 ・BOOLをbool_tに,TRUEとFALSEをそれぞれtrueとfalseに変更する.ER_BOOLな
592 どを変更しないように注意すること.コメント中に記述されたこれらのデー
595 ・charをchar_tに変更する.ただし,文字列定数が記述されることが多い引数
596 等は,コンパイラの警告を避けるために,char *のままとする.ターゲット
597 依存部で最低限変更しなければならないのは,以下の2箇所.
602 ・target_stddef.h(またはそこからインクルードされるファイル)に,サイズ
603 の指定された浮動小数点型(float32_tとdouble64_t),その最大値・最小値
604 のマクロの定義を追加する.「ターゲット依存部 ポーティングガイド」3.4
605 節参照.開発環境がGCCでarch/gcc/tool_stddef.hを用いており,float型と
606 double型がそれぞれIEEE754準拠の単精度浮動小数点数と倍精度浮動小数点数
607 である場合には,arch/gcc/tool_stddef.hをインクルードする前に,
608 TOPPERS_STDFLOAT_TYPE1をマクロ定義すればよい.
610 (3) トレースログ記録のサンプルコードの組込み(オプション)
612 ・ターゲット依存部を,トレースログ記録のサンプルコードを使用するように
613 修正する.「ターゲット依存部 ポーティングガイド」6.11.2節参照.
617 ・Makefileのターゲット依存部で,ターゲット依存部ディレクトリを参照して
618 いる箇所で,$(SRCDIR)/target/$(TARGET)を,$(TARGETDIR)に変更する.
620 ----------------------------------------------------------------------
623 Release 1.1.0 から 1.2.0 への変更点
627 ・コンフィギュレータを新しいバージョンに差し換え
628 - パス1とパス3にもターゲット依存機能を追加.
630 - 追加ファイル(ターゲット非依存部,cfg以下を除く)
631 kernel/kernel_api.csv, kernel_def.csv, kernel_check.tf
633 target_def.csv, target_check.tf
634 - sample/Makefileを新しいコンフィギュレータに対応させる.
635 - ミューテックス機能拡張でコンフィギュレータのmakeを不要に.
639 BOOL → bool_t,TRUE → true,FALSE → false
642 ただし,文字列定数が記述されることが多い引数等は,コンパイラの
643 警告を避けるために,char *のままとする.
644 - float32_t, double64_tの追加.
647 - システムコンフィギュレーションファイルからインクルードするコンフィ
648 ギュレーションファイルの整理(ボトムアップ順序に).
649 - テストプログラムの生成スクリプト(utils/gentest)を作成.
650 - ミューテックス機能のテストプログラムを生成スクリプト対応に.
651 - ミューテックス機能拡張にtest_mutex7を追加.
653 ・システムサービスのヘッダファイルのインクルード記述の整理
654 - syssvcの下のヘッダファイルは,#include "syssvc/??????.h"でインク
655 ルードする(??????.cからインクルードする場合を除く).
656 - Makefileから,-I$(SRCDIR)/syssvcを削除.
658 ・カーネル起動メッセージの出力(banner)機能の独立
659 - syssvc/banner.cfg, banner.hを作成.
660 - syslog.cfgから関連する記述を削除.
662 ・t_syslog.hとsyslog.hの役割の変更
663 - t_syslog.hは,システムログ出力を行うための定義を含むヘッダファイ
664 ルとし,システムログ機能を操作するための定義は,syslog.hに移す.
666 ・シリアルインタフェースドライバのフラッシュ方法の変更
667 - シリアルインタフェースドライバの強制フラッシュ機能は廃止し,未送
668 信文字の取出し機能を新設.これを用いた強制フラッシュ処理は,シス
669 テムログタスクの終了処理ルーチン側で実施.
671 ・タスクディスパッチの要否の判定方法の変更
672 - タスクディスパッチの必要な状態にする関数を,すべて,タスクディス
673 パッチの要否を返すようにし,p_runtskとp_schedtskの比較による判定
676 ・トレースログ記録のサンプルコードの使用方法を規定
677 - ポーティングガイドの6.11.2節に,ターゲット依存部でトレースログ記
679 - DVE68Kターゲット依存部をそれに従うように修正.
682 - sample/Makefileで,ターゲット依存部ディレクトリを示す変数
684 - これを使うように,ターゲット依存部を修正.
687 - kernel_rename.def:log_???_entry → log_???_enter
690 - T_RLOG → T_SYSLOG_RLOG
691 - syssvcの下のヘッダファイルにもthrow()を入れる.
692 - makerelease:RELEAEディレクトリがなければ作る.
694 ・ドキュメントの充実.コメントの追加・修正.
695 - doc/migration.txtを作成(現時点では未完成).
699 ○ターゲット依存部の要修正箇所(1.1.0 → 1.2.0)
703 ・target.tf中で,ヘッダファイルと重複した定数値の定義を行っている場合に
704 は,target_def.cvsに変数記述を行い,重複した定義を削除する.
706 ・target_check.tfを作成する.「ターゲット依存部 ポーティングガイド」
711 ・BOOLをbool_tに,TRUEとFALSEをそれぞれtrueとfalseに変更する.ER_BOOLな
712 どを変更しないように注意すること.コメント中に記述されたこれらのデー
715 ・charをchar_tに変更する.ただし,文字列定数が記述されることが多い引数
716 等は,コンパイラの警告を避けるために,char *のままとする.ターゲット
717 依存部で最低限変更しなければならないのは,以下の2箇所.
722 ・target_stddef.h(またはそこからインクルードされるファイル)に,サイズ
723 の指定された浮動小数点型(float32_tとdouble64_t),その最大値・最小値
724 のマクロの定義を追加する.「ターゲット依存部 ポーティングガイド」3.4
725 節参照.開発環境がGCCでarch/gcc/tool_stddef.hを用いており,float型と
726 double型がそれぞれIEEE754準拠の単精度浮動小数点数と倍精度浮動小数点数
727 である場合には,arch/gcc/tool_stddef.hをインクルードする前に,
728 TOPPERS_STDFLOAT_TYPE1をマクロ定義すればよい.
730 (3) トレースログ記録のサンプルコードの使用方法に従った修正(オプション)
732 ・ターゲット依存部を,トレースログ記録のサンプルコードを使用するように
733 修正する.「ターゲット依存部 ポーティングガイド」6.11.2節参照.
737 ・Makefileのターゲット依存部で,ターゲット依存部ディレクトリを参照して
738 いる箇所で,$(SRCDIR)/target/$(TARGET)を,$(TARGETDIR)に変更する.
740 ----------------------------------------------------------------------
743 Release 1.0.0 から 1.1.0 への変更点
747 ・frsm_tskをカーネルから削除.itron.hにマクロ定義として残す
750 - トレースログマクロを使う側のファイルで,デフォルト定義を与える.
751 - nulltraceを廃止.logtraceを修正.
752 - ターゲット依存部でのトレースログ取得方法を標準化.
753 - INTHDR_ENTRYとEXCHDR_ENTRYにパラメータを追加.
754 - target_putcを,target_fput_logにリネーム.
756 ・システムログ機能をカーネルから外して,システムサービスの位置付けに
757 - syslog.c,syslog.h,banner.cを,kernelからsyssvcに移動.
758 - システムログ機能のサービスコールの名称にsyslog_を付加.
760 ・システムサービスのディレクトリの位置付けの明確化
761 - logtask.hとserial.hを,includeからsyssvcに移動.
762 - vasyslog.cを,libraryからsyssvcに移動.
765 - utils/makereleaseを作成.utils/genmanifestを削除.
766 - MANIFESTファイルに,パッケージ名とバージョン番号を記述.
767 - MANIFESTファイルのINCLUDE記述を変更.
769 ・出入口処理の番地の変数/フィールド名の変更
770 - 割込みハンドラ/CPU例外ハンドラの出入口処理の番地(FP型)の変数/
771 フィールド名をint_entry/exc_entryに変更.コメントも修正.
774 - target.tf中のエラーメッセージの修正.
778 - 固定長メモリプール初期化ブロックの生成に関するバグを修正.
779 - configureで,cfgが生成されているかのチェックを厳密化.
780 - sample/Makefileにおいて,ライブラリに関する依存記述の修正.
781 - sample/sample1.cfgにおいて,システムサービスの定義順を変更.
782 - extension/MANIFESTに,MANIFESTを追加.
784 ・ドキュメントの充実.コメントの追加・修正.
788 ○ターゲット依存部の修正箇所(1.0.0 → 1.1.0)
790 ・カーネルのトレースログ機能の中で,ターゲット依存部で実装する必要があ
791 るものを実装する.詳しくは,porting.txtの6.1.2節,6.5.2節,6.6.1節,
794 ・INTHDR_ENTRYとEXCHDR_ENTRYに2番目のパラメータが追加されたのに対応する.
796 ・TARGET_NAMEとCOPYRIGHT_TARGETを,target_config.hからtarget_syssvc.hに
797 移動する.COPYRIGHT_TARGETはTARGET_COPYRIGHTにリネームする.
799 ・target_putcをtarget_fput_logにリネームし,その宣言をtarget_config.hか
800 らtarget_syssvc.hに移動する.関数定義は,target_config.cに置いたまま
801 でよい.関数宣言・定義の上のコメントを修正する.
803 ・割込みハンドラの出入口処理の番地(FP型)の変数/フィールド名をinthdr
804 からint_entryに,CPU例外ハンドラの出入口処理の番地(FP型)の変数/
805 フィールド名をexchdrからexct_entryに,それぞれ変更する.これに関連す
806 るx_define_inhとx_define_excのコメントを修正する.
808 ・トレースログを記録しない場合には,target_config.hから「#include
809 "nulltrace/trace_config.h"」を削除する.
811 ・トレースログを記録する場合には,target_syssvc.hに「#include
812 "logtrace/trace_config.h"」を追加する.また,target_config.h中の
813 「#include "logtrace/trace_config.h"」の位置を前の方に移動する.
815 ・MANIFESTとE_PACKAGEを作成/修正する.MANIFEST中に,必要に応じて,
816 PACKAGEディレクティブとVERSIONディレクティブを追加する.また,
817 INCLUDEディレクティブのパラメータを,ディレクトリ名からファイル名に変
818 更する.ターゲットシステム毎に,E_PACKAGEを作成する.詳しくは,
819 user.txtの2章とporting.txtの9.1節を参照すること.
821 ----------------------------------------------------------------------