source: asp_ewarm/asp-1.7.0/doc/version.txt@ 61

Last change on this file since 61 was 61, checked in by ertl-honda, 11 years ago

ASP for EWARM のコミット.

File size: 33.8 KB
Line 
1
2 TOPPERS/ASPカーネル
3 変更履歴
4
5 対応バージョン: Release 1.7.0
6 最終更新: 2011年4月10日
7
8このドキュメントは,TOPPERS/ASPカーネルのRelease 1.0.0以降の変更履歴を,
9新しい方から順に記述したものである.
10
11----------------------------------------------------------------------
12 TOPPERS/ASP Kernel
13 Toyohashi Open Platform for Embedded Real-Time Systems/
14 Advanced Standard Profile Kernel
15
16 Copyright (C) 2005-2011 by Embedded and Real-Time Systems Laboratory
17 Graduate School of Information Science, Nagoya Univ., JAPAN
18
19 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
20 ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
21 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
22 (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
23 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
24 スコード中に含まれていること.
25 (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
26 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
27 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
28 の無保証規定を掲載すること.
29 (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
30 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
31 と.
32 (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
33 作権表示,この利用条件および下記の無保証規定を掲載すること.
34 (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
35 報告すること.
36 (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
37 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
38 また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
39 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
40 免責すること.
41
42 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
43 よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
44 に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
45 アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
46 の責任を負わない.
47
48 $Id: version.txt 2061 2011-04-10 15:37:35Z ertl-hiro $
49----------------------------------------------------------------------
50
51 TOPPERS/ASPカーネル
52 Release 1.6.0 から 1.7.0 への変更点
53
54○変更点のリスト
55
56・動的生成機能拡張パッケージ,制約タスク拡張パッケージの追加
57
58・タスク例外処理ルーチンの実行開始条件の変更
59 - タスク例外処理ルーチンの実行に関するコードの修正.
60 - ipmflgを導入.
61 - exc_sense_unlockを廃止.
62
63・データキューのコードの修正
64 - データ管理ブロックの導入(他のオブジェクトの実装と整合された).
65
66・SILのメモリ空間アクセス関数に渡すポインタの方の変更
67 - void *を渡していたところを,サイズにあわせて,uint8_t *などに変更.
68
69・動的生成機能拡張パッケージにあわせた修正
70 - t_stddef.hにMB_T型の定義を追加.
71 - コンフィギュレータのテンプレートファイル(パス2および3)で定義し
72 ていたターゲット依存情報を,ヘッダファイルに移動.
73 - kernel_def.csvに,それらの値を取得するための記述を追加.
74 - ポーティングガイドの修正.
75
76・オフセットファイルをコンフィギュレータで生成する方法を追加
77 - genoffset.tfを追加.
78 - kernel_def.csvに,SIL_ENDIAN_BIG/LITTLEを追加.
79 - sample/Makefileを修正.
80 - m68k依存部を,この方法に対応させる.
81 - ポーティングガイドの修正.
82
83・その他のバグフィックス
84 - CHECK_INTPRI_CHGIPMの定義中のtypoを修正.
85 - genoffsetのRelease 1.6.0におけるディグレードを修正.
86 - オーバランハンドラ拡張機能で,ターゲット依存部がオーバランハンド
87 ラをサポートしていない場合には,TCB中のleftotmを定義しないように
88 修正.
89
90・その他の修正
91 - USE_TSKINICTXBをマクロ定義した場合のスタック領域の先頭番地のチェッ
92 クのために,GET_STK_TSKINICTXBを導入.
93 - kernel_cfg.c中で,タスクの先頭番地をTASK型にキャストするように
94 kernel.tfを修正.
95 - ext_tskのE_SYSの返し方を修正.ext_kerもE_SYSを返すコードに修正.
96 - CFG_INTは,有効なすべての割込み番号に対応する方針に従い,コンフィ
97 ギュレータのエラー条件を修正.
98 - makedepに-Sオプションを追加.
99 - シリアルドライバでサポートするポート数を,最大4ポートに変更.
100
101・ドキュメントの充実,コメントの修正
102
103・バージョン番号の更新
104 - カーネルのバージョン番号を更新.
105
106○ターゲット依存部の要修正箇所(1.6.0 → 1.7.0)
107
108(1) ターゲット依存部で,calltexを呼ぶ代わりにcalltexの内容をインライン
109展開している場合に,call_texrtnを呼び出す条件に「ipmflgがtrue」を追加す
110るように修正.
111
112(2) 割込み出入口処理が正しいかの確認.
113 - ポーティングガイドの割込み出入口処理に追加した「割込み優先度マス
114 クを,全解除状態(TIPM_ENAALL)の値に設定する … (*h)」の処理が実
115 現されているかを確認.
116 - ポーティングガイドの6.6.1節の記述を確認((*g)(*i)の注記を追加する
117 など,記述を詳細化した).
118
119(3) exc_sense_unlockの定義を削除.
120
121(4) TARGET_TSKATR,TARGET_ISRATR,TARGET_INHATR,TARGET_INTATR,
122TARGET_EXCATR,TARGET_MIN_STKSZ,CHECK_STKSZ_ALIGNの定義を,ターゲット
123依存部のテンプレートファイル(パス2)からヘッダファイルに移動.
124
125(5) CHECK_FUNC_ALIGN,CHECK_FUNC_NONNULL,CHECK_STACK_ALIGN,
126CHECK_STACK_NONNULL,CHECK_MPF_ALIGN,CHECK_MPF_NONNULLの定義を,ターゲッ
127ト依存部のテンプレートファイル(パス3)からヘッダファイルに移動.
128
129(6) 動的生成機能拡張パッケージに対応.
130 - CHECK_MB_ALIGNの定義を追加.
131 - TSZ_PDQMBの定義を追加(デフォルトで不都合な場合).
132 - VALID_INTNO_CREINTの定義を追加.
133 - 動的メモリ管理に関する定義を追加.
134
135(7) オフセットファイルをコンフィギュレータで生成する方法への対応(必須
136ではないが,対応しておくことが望ましい).詳しくは,ポーティングガイド
137の2.5節を参照すること.
138
139(8) USE_TSKINICTXBをマクロ定義し,CHECK_STACK_ALIGNとCHECK_STACK_NONNULL
140のいずれかを定義している場合には,TINIBからスタック領域の先頭番地を取り
141出すためのテンプレートファイル関数GET_STK_TSKINICTXBを定義.
142
143----------------------------------------------------------------------
144
145 TOPPERS/ASPカーネル
146 Release 1.5.0 から 1.6.0 への変更点
147
148○変更点のリスト
149
150・cfgの新しいバージョン(1.6)に対応
151 - offsetof_TINIB_stkszとoffsetof_TINIB_stkの取得記述をターゲット非
152 依存部に移動.
153
154・ユーティリティの修正
155 - genoffsetに,エンディアン指定をチェックする機能を追加.その際に,
156 コードを整理.
157
158・その他の修正
159 - TCBのpriorityフィールドを,条件があえばuint_8で定義するように修正.
160 - ターゲット依存部でSIL_ENDIAN_BIGもSIL_ENDIAN_LITTLEも定義されてい
161 ない場合に,sil.hでエラーを検出するように修正.
162 - システムログ機能のsysog_logmaskとsyslog_lowmask_notの初期値を修正.
163 - makereleaseを,ファイルの重複をチェックするように修正.
164 - test_utm1のエラーメッセージを修正.
165
166・ドキュメントの充実,コメントの修正
167
168・バージョン番号の更新
169 - カーネルのバージョン番号を更新.
170
171○ターゲット依存部の要修正箇所(1.5.0 → 1.6.0)
172
173(1) makeoffset.cの修正
174 - makeoffset.cに,sil_endian関数を追加する(これにより,genoffsetの
175 エンディアン指定をチェックする機能が有効になる).
176 - オーバランハンドラ拡張パッケージに対応する場合には,leftotmフィー
177 ルドが含まれているかを確認する.
178 - 生成されるoffset.hに変化がないことを確認する.
179
180(2) 値取得シンボルテーブルのターゲット依存部の修正
181 - 以下の2行をtarget_def.csv(またはそれに代わるファイル)から削除する.
182 offsetof_TINIB_stksz,"offsetof(TINIB,stksz)"
183 offsetof_TINIB_stk,"offsetof(TINIB,stk)"
184 ※ Release 1.5.0における修正を元に戻す.
185
186(3) target_fput_logの実装制限の確認(仕様が修正されたわけではない)
187 - target_fput_log全割込みロック状態で呼び出せるようになっているか確
188 認する.
189
190----------------------------------------------------------------------
191
192 TOPPERS/ASPカーネル
193 Release 1.4.0 から 1.5.0 への変更点
194
195○変更点のリスト
196
197・カーネル管理外の割込みとCPU例外の扱いの見直し
198 - カーネル管理外の割込みの設定方法を整理・拡張.
199 - カーネル管理外の割込みハンドラは,カーネル内の出入口処理を経由し
200 ないことを基本とした(ターゲット依存).
201 - CPU例外ハンドラの出入口処理におけるカーネル管理外のCPU例外の扱い
202 を規定.
203
204・chg_ipmとget_ipmの仕様変更
205 - chg_ipmとget_ipmは,CPUロック状態では呼べないものとした.
206 - これに伴ってテストプログラムを修正.
207
208・タイマ割込み処理で呼び出したialm_timの基準時間の変更
209 - current_timeの更新後に,タイムイベントの処理を行うように変更.
210 - 有効な最小のシステム時刻としてmin_timeを導入.
211 - pend_updateを廃止.
212
213・タスクのスタックサイズの最小値チェックの追加
214 - スタックサイズが0の場合のエラーを,ターゲット非依存で検出.
215 - ターゲット依存で,タスクのスタックサイズの最小値を設定できるよう
216 にした.
217
218・タスク初期化コンテキストブロックの追加
219 - ターゲット依存で,タスク初期化コンテキストブロック(TSKINICTXB)
220 を使用できるようにした.
221
222・ターゲット依存部で定義する名称のリネーム方法の変更
223 - ターゲット依存部で定義し,ターゲット非依存部から参照する名称のリ
224 ネーム記述を,ターゲット依存部に移動.
225
226・拡張パッケージの追加
227 - ミューテックス機能拡張パッケージ,オーバランハンドラ機能拡張パッ
228 ケージ,タスク優先度拡張パッケージを,一般公開するファイルに追加.
229 - オーバランハンドラ機能拡張への対応方法を,ポーティングガイドに記載.
230
231・サポートする機能を識別するマクロの定義方法の変更
232 - ターゲット依存部でTOPPERS_TARGET_SUPPORT_XXXXXがマクロ定義されて
233 いれば,kernel.hでTOPPERS_SUPPORT_XXXXXをマクロ定義する方法に変更.
234
235・システムログ機能の修正
236 - syslog_initializeが呼ばれる前のログ情報の出力に対応.
237 - sysog_logmaskとsyslog_lowmask_notの初期値を修正.
238
239・テストライブラリの修正
240 - test_lib.hとtest_lib.cを,testディレクトリから,それぞれincludeと
241 libraryディレクトリに移動.
242 - syslog_flush関数を追加.logtask_flushの代わりに使用.
243 - test_finish関数を追加.テストプログラム中でext_kerの代わりに使用.
244 - 以上に伴ってテストプログラムを修正.
245
246・configureの拡張
247 - Makefileのテンプレートを指定するためのオプションを追加.
248
249・その他のバグフィックス
250 - kernel_impl.h中のマクロ名の修正.
251 - kernel.tf中の文法ミスの修正.
252
253・その他の修正
254 - CTXB型をTSKCTXB型に名称変更.
255 - ext_tskで,戻らないはずの処理から戻った場合には,E_SYSを返す.
256 - call_texrtnからdispatchを呼び出す処理を改善.
257 - make_non_waitを,wait.cからwait.hに移動.
258 - xsns_xpn中の冗長な条件式を削除.
259 - TA_DISINTとTA_LEVELをitron.hから削除.
260 - LOG_TEX_LEAVEの第2パラメータを削除.
261 - サンプルのMakefileに,OMIT_WARNING_ALLとOMIT_OPTIMIZATIONを追加.
262 - get_utmに関するテスト(1)(test_utm1)を追加.
263 - test_dlynse.cの表示を改善.
264
265・ドキュメントの充実,コメントの修正
266 - 機能拡張・チューニングガイドに関して,ユーザーズマニュアルに記載.
267 - キュー操作ライブラリ関数に関して,ユーザーズマニュアルに記載.
268 - システムの起動時の初期化処理に関して,ユーザーズマニュアルに記載.
269 - 設計メモを拡充.
270
271・バージョン番号の更新
272 - カーネル仕様のバージョン番号,カーネルのバージョン番号を更新.
273
274○ターゲット依存部の要修正箇所(1.4.0 → 1.5.0)
275
276(1) カーネル管理外の割込みの扱いの変更
277 - カーネル管理外の割込みハンドラの呼び出し方について,これまでの考
278 え方を変更した.「ターゲット依存部 ポーティングガイド」の6.6.7節
279 の記述通りに実装されているかチェックする.
280 - TA_NONKERNELを使用できるようにする場合には,target.tfで,
281 TARGET_INHATRにTA_NONKERNELを設定する.
282 - パス2のテンプレートファイルのターゲット非依存部に,
283 INTNO_FIX_KERNEL,INHNO_FIX_KERNEL,INTNO_FIX_NONKERNEL,
284 INHNO_FIX_NONKERNEL,USE_INHINIB_TABLE,USE_INTINIB_TABLEのサポー
285 トが追加されたので,使用できる場合には使用するように修正する.
286 - カーネル管理の割込みハンドラの出入口処理について,「ターゲット依
287 存部 ポーティングガイド」の6.6.1節の記述通りに実装されていること
288 を確認する.
289
290(2) カーネル管理外のCPU例外の扱いの変更
291 - カーネル管理外のCPU例外ハンドラの呼び出し方について,これまでの考
292 え方を変更した.「ターゲット依存部 ポーティングガイド」の6.7.1節
293 の記述を参照して,実装を修正する.
294
295(3) ターゲット依存部で定義する名称のリネームの追加
296 - ターゲット依存部で定義し,ターゲット非依存部から参照する名称のリ
297 ネーム記述を,ターゲット依存部に追加する.ターゲット依存部とチッ
298 プ依存部の間でも同様の変更を行うことが望ましい.ただし,
299 arch/logtrace/trace_config.cで定義される名称については,ターゲッ
300 ト依存部でリネームする.
301
302(4) ターゲット依存部でサポートする機能を示すマクロの変更
303 - ターゲット依存部で定義しているTOPPERS_SUPPORT_DIS_INTを
304 TOPPERS_TARGET_SUPPORT_DIS_INTに,TOPPERS_SUPPORT_ENA_INTを
305 TOPPERS_TARGET_SUPPORT_ENA_INTに,TOPPERS_SUPPORT_GET_UTMを
306 TOPPERS_TARGET_SUPPORT_GET_UTMに,それぞれ変更する.
307
308(5) タスクコンテキストブロックの型名の変更
309 - CTXB型をTSKCTXB型に名称変更する.
310
311(6) 値取得シンボルテーブルのターゲット依存部の修正
312 - 以下の2行をtarget_def.csv(またはそれに代わるファイル)に加える.
313 offsetof_TINIB_stksz,"offsetof(TINIB,stksz)"
314 offsetof_TINIB_stk,"offsetof(TINIB,stk)"
315 ※ 新設されたUSE_TSKINICTXBを使う場合には必要ない.
316 ※ Release 1.6以降を用いる場合には,この修正は必要はない.
317
318(7) ログマクロの修正
319 - LOG_TEX_LEAVEの第2パラメータが削除されたので,LOG_TEX_LEAVEを定義
320 している場合には,その定義を変更する.
321
322(8) スタートアップモジュールの修正(bssセクションのクリアを省略している
323 場合のみ)
324 - システムログ機能を使用する場合には,スタートアップモジュールに,
325 syslog_logmaskとsyslog_lowmask_notを0に初期化するコードを追加する.
326 - トレースログ記録のサンプルコードを組み込んでいる場合には,スター
327 トアップモジュールに,trace_modeを0に初期化するコードを追加する.
328
329(9) タスクのスタックサイズの最小値チェックの設定(オプション)
330 - ターゲット依存に,タスクのスタックサイズの最小値をチェックする場
331 合には,最小値をTARGET_MIN_STKSZに定義する.
332
333(10) オーバランハンドラ機能拡張への対応(オプション)
334 - オーバランハンドラ機能拡張パッケージに対応する.対応方法について
335 は,「ターゲット依存部 ポーティングガイド」中の「#ifdef
336 TOPPERS_SUPPORT_OVRHDR」がある箇所と,5.7節と6.14節を参照すること.
337
338----------------------------------------------------------------------
339
340 TOPPERS/ASPカーネル
341 Release 1.3.2 から 1.4.0 への変更点
342
343○変更点のリスト
344
345・周期ハンドラの仕様変更
346 - sta_cycを呼び出した後,最初に周期ハンドラが起動される時刻を,起動
347 周期後から,起動位相後に変更.
348
349・TSZ_MPFの定義を削除
350
351・call_atexitの廃止
352 - ターゲット非依存部からcall_atexitを呼び出すのをやめる.
353 call_atexitで行っていた処理(標準的にはsoftware_term_hookを呼び出
354 す処理)は,必要であればtarget_exitの先頭で行うこととする.
355
356・get_utmの問題の修正
357 - 周期ハンドラ,アラームハンドラの中でget_utmを呼ぶと,正しい時刻が
358 返らない問題を修正.
359
360・スケジューラのモジュール性向上
361 - タスク状態(tstat)の変更を,make_runnableではなく,それを呼ぶ側
362 の関数で行うように修正.
363
364・テンプレート変数の値の自動取得
365 - OMIT_INITIALIZE_INTERRUPTとOMIT_INITIALIZE_EXCEPTIONの2つのテンプ
366 レート変数の値を,ヘッダファイルの定義から自動取得するように修正.
367
368・トレースログ機能の改善
369 - LOG_TEX_ENTER,LOG_TEX_LEAVEのパラメータに,p_runtskを追加.
370
371・実行時間分布集計モジュールの修正
372 - 時刻取得の方法をターゲット依存で変更できるように修正.
373 - TNUM_HISTの定義を,histgram.hからhistgram.cに移動.
374
375・コンフィギュレータの分離
376 - cfgは,ASPカーネルとは独立したパッケージとして配布することにする.
377
378・マイグレーションガイドの分離
379 - doc/migration.txtは,別途PDFファイルで配布することにする.
380
381・テストプログラム,性能評価プログラムの追加
382 - セマフォ機能のテスト(2)(test_sem2)を追加.
383 - act_tsk,iact_tskの処理時間の評価プログラム(perf4)を追加.
384
385・clean時に削除するファイル
386 - clean時に削除するファイルを,ターゲット依存部で定義するための変数
387 (CLEAN_FILES)を導入.
388
389・ユーティリティの修正
390 - makereleaseが使うディレクトリ名(asp)を,カレントディレクトリか
391 ら決定するように修正.
392 - makedepに,Cygwin環境におけるルートディレクトリ名を指定するため
393 の-Rオプションを追加.MakefileにMAKEDEP_OPTS変数を追加.
394 - gentestをアラームハンドラの複数回起動に対応できるように拡張.
395
396・その他のバグフィックス
397 - リネームするシンボルを修正.
398 - 割込みサービスルーチン,初期化ルーチン,終了処理ルーチンの先頭番
399 地に関数名以外を記述した場合にも動作するように修正.
400 - Makefile.dependがない場合の問題を修正.
401
402・ドキュメントの充実,コメントの修正
403 - 各ドキュメントにTOPPERSライセンスと目次を追加.
404
405・バージョン番号の更新
406 - カーネル仕様のバージョン番号,カーネルのバージョン番号を更新.
407
408○ターゲット依存部の要修正箇所(1.3.2 → 1.4.0)
409
410(1) call_atexitの廃止
411 - call_atexitを廃止したため,ターゲット依存部から定義を削除する.
412 call_atexitで行っていた処理(標準的にはsoftware_term_hookを呼び出
413 す処理)は,必要であればtarget_exitの先頭で行う.
414
415(2) テンプレート変数の値の設定の削除
416 - OMIT_INITIALIZE_INTERRUPTとOMIT_INITIALIZE_EXCEPTIONの2つのテンプ
417 レート変数の値を,ヘッダファイルの定義から自動取得するように修正
418 したため,ターゲット依存部(target.tfまたはそこからインクルードさ
419 れるファイル)で値を定義していれば,その定義を削除する.
420
421(3) makedepを呼ぶ際のオプションの追加
422 - Makefileのターゲット依存部(Makefile.target等)でmakedepを呼んで
423 いる場合には,$(MAKEDEP_OPTS)を追加する.
424
425 例)@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
426 -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
427
428(4) 簡易パッケージへのコンフィギュレータの追加
429 - コンフィギュレータ(cfg)がターゲット非依存部から分離されたため,
430 簡易パッケージに入れる場合には,E_PACKAGEにcfgを含めるための記述
431 を追加する.
432
433 例)INCLUDE ../../cfg/MANIFEST
434
435----------------------------------------------------------------------
436
437 TOPPERS/ASPカーネル
438 Release 1.3.1 から 1.3.2 への変更点
439
440○変更点のリスト
441
442・TMAX_RELTIMをユーザから参照できるマクロに
443 - TMAX_RELTIMの定義を,kernel/time_event.hからinclude/t_stddef.hに
444 移動.
445
446・const指定の追加
447 - syslog_printf,syslog_print,syslog_wri_log,serial_wri_datのパラ
448 メータにconst指定を追加.
449
450・TMIN_ISRPRI,TMAX_ISRPRIの導入
451
452・実行時間分布集計モジュールで時間の逆転が疑われるケースの扱い
453 - 実行時間分布集計モジュールで時間の逆転が疑われる度数を計測するよ
454 うに修正.
455
456・システムログタスクの終了処理の修正
457 - ログバッファに残ったログ情報であることを示す文字列を出力するように
458 修正.
459
460・コンフィギュレータの修正
461 - 順序付きリストの要素に式を使えるように変更.
462 - 静的APIのパラメータに型キャストが含まれるとパースできないバグの修正.
463 - #pragma onceを用いると行番号がずれるバグの修正.
464 - cfgファイルを指定しなかった場合のエラーメッセージの修正.
465
466・コンフィギュレータが生成するファイル
467 - コンフィギュレータがkernel_cfg.c以外のファイルを生成する場合に対
468 応するための変数(CFG_OBJS,CFG2_OUT)を導入.
469
470・realclean時に削除するファイル
471 - realclean時に削除するファイルを,ターゲット依存部で定義するための
472 変数(REALCLEAN_FILES)を導入.
473
474・テストプログラムの追加・拡充
475 - セマフォ機能のテスト(1)を追加.
476 - カーネルの整合性検査にセマフォ毎の検査を追加.
477
478・バグフィックス
479 - 非タスクコンテキスト用スタックの確保時のサイズの誤り.
480 - kernel.tf中のエラーメッセージの誤り.
481 - 実行時間分布集計モジュールにおける最大値の扱いのバグ.
482 - Makefile中のAPPLDIRに複数のディレクトリが定義されている時の扱い.
483 - test/perf.cで,計測回数を10000回になるように修正.
484 - DVE68Kターゲット依存部のtarget.tf中のエラーメッセージの誤り.
485
486・ドキュメントの充実,コメントの修正
487 - 各ドキュメントにTOPPERSライセンスと目次を追加.
488
489・バージョン番号の更新
490
491○ターゲット依存部の要修正箇所(1.3.1 → 1.3.2)
492
493特になし
494
495----------------------------------------------------------------------
496
497 TOPPERS/ASPカーネル
498 Release 1.3.0 から 1.3.1 への変更点
499
500○変更点のリスト
501
502・スタックサイズのエラーチェックを追加
503 - CRE_TSKのstk(タスクのスタック領域の先頭番地)がNULLでない場合に,
504 stkszを適切な値(ターゲット依存の値の倍数)に丸める処理をやめ,適
505 切な値でない場合にエラーとするように修正.
506 - DEF_ICSのistk(非タスクコンテキスト用のスタック領域の先頭番地)が
507 NULLでない場合に,istkszが適切な値(ターゲット依存の値の倍数)で
508 ない場合のエラーのチェックを追加.
509
510・強制待ち要求ネストの廃止に伴う追加修正
511 - TMAX_SUSCNTの定義を,kernel.hからitron.hに移動.
512 - ref_tskで参照できる情報(T_RTSKのフィールド)からsuscntを削除.
513
514・kernel_api.csvの修正
515 - 各オブジェクトの属性のパラメータを,符号無しに修正.
516
517・kernel_def.csvの修正
518 - 符号付きのシンボルの定義に",signed"を付加.
519
520・itron.hの修正
521 - frsm_tskのタイプミスの修正.
522
523・コンフィギュレータの修正
524 - 組込み関数DUMP, TRACE, NOOPを追加.
525 - $FOREACH$や$IF$等の中身が何もないときに,internal errorになる不具
526 合を修正(エラーメッセージの適切化).
527 - $INCLUDE$命令でインクルードしたtfの行番号がずれる不具合を修正.
528 - 64ビット整数が定義されていないと,CSVファイルでsをつけたレコード
529 が符号付きと扱われない不具合の修正.
530 - 型キャストのパース処理に関する不具合の修正.
531 - エラーの起こった行番号が正しくない不具合の修正.
532 - 同じtskidに対してDEF_TEXが複数あるエラーのチェックを行うように修正.
533 - DEF_TEXを使用した時に,TSK.TSKID[tskid]が0になる不具合の修正.
534 - DEF_INH,CFG_INT,DEF_EXCで同じオブジェクト番号に対する登録が重複し
535 た場合のエラーチェックを二重に行っている問題の修正.
536
537・配布するファイルの修正
538 - doc/api_spec.txt, ngki_spec.txt, sysstat.txtを除外.
539 - extensionディレクトリを除外.
540
541・ドキュメントの修正,コメントの修正
542
543・バージョン番号の更新
544
545○ターゲット依存部の要修正箇所(1.3.0 → 1.3.1)
546
547(1) スタックサイズのエラーチェックに関する修正箇所
548 - target.tfでkernel.tfをインクルードする前に,CHECK_STKSZ_ALIGNを,
549 スタックサイズがどの値の倍数になっていなければならないかを設定す
550 る.
551 例)$CHECK_STKSZ_ALIGN = 4$
552
553(2) ターゲット依存部のユーザーズマニュアルについて
554 - ターゲット依存部のユーザーズマニュアルのファイル名と,そのファイ
555 ルに記述すべき内容を規定した.「ターゲット依存部 ポーティングガイ
556 ド」の「9.1 ドキュメント」の節を参照すること.
557
558----------------------------------------------------------------------
559
560 TOPPERS/ASPカーネル
561 Release 1.2.1 から 1.3.0 への変更点
562
563○変更点のリスト
564
565・set_tim(システム時刻の設定)の廃止
566
567・属性の変更
568 - TA_DISINTを廃止して,TA_ENAINTを復活.
569
570・拡張機能・ターゲット定義機能の有無を判別するマクロ名の変更
571 - TOPPERS_EXTENSION_MUTEXをTOPPERS_SUPPORT_MUTEXに.
572 - TOPPERS_EXTENSION_PRI_LEVELをTOPPERS_SUPPORT_PRI_LEVELに.
573 - SUPPORT_???_???をTOPPERS_SUPPORT_???_???に変更し,ターゲット依存
574 部での定義をtarget_kernel.hに移動する.
575
576・型名・変数名・定数名の変更
577 - SYSUTIM → SYSUTM,sysutim → sysutm,p_sysutim → p_sysutm
578 - SIO_ERDY_SND → SIO_RDY_SND,SIO_ERDY_RCV → SIO_RDY_RCV
579 - sio_ierdy_snd → sio_irdy_snd,sio_ierdy_rcv → sio_irdy_rcv
580
581・cfg1_out.cのコンパイル/リンク方法の変更
582 - cfg1_out.cからtarget_cfg1_out.hをインクルードするように,コンフィ
583 ギュレータを変更.
584 - ターゲット依存部でtarget_cfg1_out.hを用意する.
585 - cfg1_out.cのリンクは,カーネルと同じ方法をとるように変更.
586
587・コンフィギュレータの修正
588 - cfg1_out.cに生成する内容の変更(前記と関連).
589 - boost 1.35.0に対応.
590
591・サンプルプログラムの修正
592 - タスク内でのループ回数を固定する機能(TASK_LOOP)を導入.
593
594・バグフィックス
595 - 固定長メモリプール領域の確保方法.
596 - DEF_TEXのエラーで,問題になったDEF_TEXの行番号を表示する.
597
598・用語の変更
599 -「割込みロック」→「全割込みロック」
600
601・ドキュメントの修正
602
603・バージョン番号の更新.
604
605○ターゲット依存部の要修正箇所(1.2.1 → 1.3.0)
606
607(1) TA_DISINTの廃止・TA_ENAINTの復活に伴う修正箇所
608 - TA_DISINTを使った判定をTA_ENAINTを使った判定に変更する.
609 例)((intatr & TA_DISINT) == 0U) → ((intatr & TA_ENAINT) != 0U)
610 - CFG_INTの割込み属性にTA_DISINTが設定されていれば,それを消す.
611 例)CFG_INT(INTNO_SIO, { TA_DISINT | INTATR_SIO, INTPRI_SIO });
612 → CFG_INT(INTNO_SIO, { INTATR_SIO, INTPRI_SIO });
613 - CFG_INTの割込み属性にTA_DISINTが設定されていなければ,TA_ENAINTを
614 加える.
615 例)CFG_INT(INTNO_TIMER, { INTATR_TIMER, INTPRI_TIMER });
616 → CFG_INT(INTNO_TIMER, { TA_ENAINT | INTATR_TIMER, INTPRI_TIMER });
617
618(2) 拡張機能・ターゲット定義機能の有無を判別するマクロ名の変更に伴う修正箇所
619 - SUPPORT_???_???をTOPPERS_SUPPORT_???_???に変更し,ターゲット依存
620 部での定義をtarget_kernel.hに移動する.
621 TOPPERS_SUPPORT_DIS_INT dis_intをサポートする
622 TOPPERS_SUPPORT_ENA_INT ena_intをサポートする
623 TOPPERS_SUPPORT_GET_UTM get_utmをサポートする
624 - makeoffset.cで,TOPPERS_EXTENSION_MUTEXを参照している場合には,
625 TOPPERS_SUPPORT_MUTEXに変更する.
626
627(3) 型名・変数名・定数名の変更に伴う修正箇所
628 - SYSUTIM → SYSUTM,sysutim → sysutm,p_sysutim → p_sysutm
629 - SIO_ERDY_SND → SIO_RDY_SND,SIO_ERDY_RCV → SIO_RDY_RCV
630 - sio_ierdy_snd → sio_irdy_snd,sio_ierdy_rcv → sio_irdy_rcv
631 ★sysutimとerdyを大文字小文字を区別せずにサーチするとよい.
632
633(4) cfg1_out.cのコンパイル/リンク方法の変更に伴う修正箇所
634 - ターゲット依存部で,target_cfg1_out.hを用意する.詳しくは,「ター
635 ゲット依存部 ポーティングガイド」の7.4節を参照.
636 - 新たに用意したファイルをMANIFESTに追加する.
637
638(5) 警告メッセージへの対処
639 - Makefile.targetに,「COPTS := $(COPTS) -Werror」を追加することを
640 検討する.カーネル内で厳密な別名規則による警告メッセージが出る場
641 合には,「KERNEL_CFLAGS := $(KERNEL_CFLAGS) -fno-strict-aliasing」
642 を追加してもよい.
643
644(6) コメントの修正
645 -「割込みロック」→「全割込みロック」
646
647----------------------------------------------------------------------
648
649 TOPPERS/ASPカーネル
650 Release 1.2.0 から 1.2.1 への変更点
651
652○変更点のリスト
653
654・トレースログ記録のサンプルコードを組み込む方法の変更
655 - configureに-rオプションを追加.
656 - sample/Makefileの修正.
657
658・Makefileのコンフィギュレータ関連部分の変更
659 - コンフィギュレータに対するターゲット依存のオプションを,Makefile
660 のターゲット依存部で記述するように変更.
661 - コンフィギュレータの各パスのターゲット依存のファイルへの依存関係
662 を,Makefileのターゲット依存部で記述するように変更.
663
664・バージョン番号の更新.
665
666○ターゲット依存部の要修正箇所(1.1.0 → 1.2.1)
667
668(1) 新しいコンフィギュレータへの対応
669
670・target.tf中で,ヘッダファイルと重複した定数値の定義を行っている場合に
671 は,target_def.cvsに変数記述を行い,重複した定義を削除する.
672
673・コンフィギュレータに対するオプションに,target_def.cvsを読み込ませる
674 指定を追加する.「ターゲット依存部 ポーティングガイド」2.4節の
675 (2-4-15) 項を参照.
676
677・target_check.tfを作成する.「ターゲット依存部 ポーティングガイド」
678 7.3節参照.
679
680・コンフィギュレータの各パスに対して,ターゲット依存のファイルへの依存
681 関係を定義する.「ターゲット依存部 ポーティングガイド」2.7節参照.
682
683(2) データ型と定数の変更・追加
684
685・BOOLをbool_tに,TRUEとFALSEをそれぞれtrueとfalseに変更する.ER_BOOLな
686 どを変更しないように注意すること.コメント中に記述されたこれらのデー
687 タ型と定数も変更すること.
688
689・charをchar_tに変更する.ただし,文字列定数が記述されることが多い引数
690 等は,コンパイラの警告を避けるために,char *のままとする.ターゲット
691 依存部で最低限変更しなければならないのは,以下の2箇所.
692
693 - target_fput_logの引数
694 - sio_snd_chrの第2引数
695
696・target_stddef.h(またはそこからインクルードされるファイル)に,サイズ
697 の指定された浮動小数点型(float32_tとdouble64_t),その最大値・最小値
698 のマクロの定義を追加する.「ターゲット依存部 ポーティングガイド」3.4
699 節参照.開発環境がGCCでarch/gcc/tool_stddef.hを用いており,float型と
700 double型がそれぞれIEEE754準拠の単精度浮動小数点数と倍精度浮動小数点数
701 である場合には,arch/gcc/tool_stddef.hをインクルードする前に,
702 TOPPERS_STDFLOAT_TYPE1をマクロ定義すればよい.
703
704(3) トレースログ記録のサンプルコードの組込み(オプション)
705
706・ターゲット依存部を,トレースログ記録のサンプルコードを使用するように
707 修正する.「ターゲット依存部 ポーティングガイド」6.11.2節参照.
708
709(4) TARGETDIR変数の使用
710
711・Makefileのターゲット依存部で,ターゲット依存部ディレクトリを参照して
712 いる箇所で,$(SRCDIR)/target/$(TARGET)を,$(TARGETDIR)に変更する.
713
714----------------------------------------------------------------------
715
716 TOPPERS/ASPカーネル
717 Release 1.1.0 から 1.2.0 への変更点
718
719○変更点のリスト
720
721・コンフィギュレータを新しいバージョンに差し換え
722 - パス1とパス3にもターゲット依存機能を追加.
723 - FMPカーネルのクラス記述に対応.
724 - 追加ファイル(ターゲット非依存部,cfg以下を除く)
725 kernel/kernel_api.csv, kernel_def.csv, kernel_check.tf
726 - 追加ファイル(ターゲット依存部)
727 target_def.csv, target_check.tf
728 - sample/Makefileを新しいコンフィギュレータに対応させる.
729 - ミューテックス機能拡張でコンフィギュレータのmakeを不要に.
730
731・データ型と定数の変更・追加
732 - BOOL型をbool_t型に変更.
733 BOOL → bool_t,TRUE → true,FALSE → false
734 従来の定義をitron.hに追加.
735 - char型をchar_t型に変更.
736 ただし,文字列定数が記述されることが多い引数等は,コンパイラの
737 警告を避けるために,char *のままとする.
738 - float32_t, double64_tの追加.
739
740・テストプログラムの追加・修正
741 - システムコンフィギュレーションファイルからインクルードするコンフィ
742 ギュレーションファイルの整理(ボトムアップ順序に).
743 - テストプログラムの生成スクリプト(utils/gentest)を作成.
744 - ミューテックス機能のテストプログラムを生成スクリプト対応に.
745 - ミューテックス機能拡張にtest_mutex7を追加.
746
747・システムサービスのヘッダファイルのインクルード記述の整理
748 - syssvcの下のヘッダファイルは,#include "syssvc/??????.h"でインク
749 ルードする(??????.cからインクルードする場合を除く).
750 - Makefileから,-I$(SRCDIR)/syssvcを削除.
751
752・カーネル起動メッセージの出力(banner)機能の独立
753 - syssvc/banner.cfg, banner.hを作成.
754 - syslog.cfgから関連する記述を削除.
755
756・t_syslog.hとsyslog.hの役割の変更
757 - t_syslog.hは,システムログ出力を行うための定義を含むヘッダファイ
758 ルとし,システムログ機能を操作するための定義は,syslog.hに移す.
759
760・シリアルインタフェースドライバのフラッシュ方法の変更
761 - シリアルインタフェースドライバの強制フラッシュ機能は廃止し,未送
762 信文字の取出し機能を新設.これを用いた強制フラッシュ処理は,シス
763 テムログタスクの終了処理ルーチン側で実施.
764
765・タスクディスパッチの要否の判定方法の変更
766 - タスクディスパッチの必要な状態にする関数を,すべて,タスクディス
767 パッチの要否を返すようにし,p_runtskとp_schedtskの比較による判定
768 をなるべく使わないように修正.
769
770・トレースログ記録のサンプルコードの使用方法を規定
771 - ポーティングガイドの6.11.2節に,ターゲット依存部でトレースログ記
772 録のサンプルコードを使用する方法を規定.
773 - DVE68Kターゲット依存部をそれに従うように修正.
774
775・TARGETDIR変数の導入
776 - sample/Makefileで,ターゲット依存部ディレクトリを示す変数
777 TARGETDIRを定義.
778 - これを使うように,ターゲット依存部を修正.
779
780・その他のバグフィックス
781 - kernel_rename.def:log_???_entry → log_???_enter
782
783・その他の修正
784 - T_RLOG → T_SYSLOG_RLOG
785 - syssvcの下のヘッダファイルにもthrow()を入れる.
786 - makerelease:RELEAEディレクトリがなければ作る.
787
788・ドキュメントの充実.コメントの追加・修正.
789 - doc/migration.txtを作成(現時点では未完成).
790
791・バージョン番号の更新.
792
793○ターゲット依存部の要修正箇所(1.1.0 → 1.2.0)
794
795(1) 新しいコンフィギュレータへの対応
796
797・target.tf中で,ヘッダファイルと重複した定数値の定義を行っている場合に
798 は,target_def.cvsに変数記述を行い,重複した定義を削除する.
799
800・target_check.tfを作成する.「ターゲット依存部 ポーティングガイド」
801 7.3節参照.
802
803(2) データ型と定数の変更・追加
804
805・BOOLをbool_tに,TRUEとFALSEをそれぞれtrueとfalseに変更する.ER_BOOLな
806 どを変更しないように注意すること.コメント中に記述されたこれらのデー
807 タ型と定数も変更すること.
808
809・charをchar_tに変更する.ただし,文字列定数が記述されることが多い引数
810 等は,コンパイラの警告を避けるために,char *のままとする.ターゲット
811 依存部で最低限変更しなければならないのは,以下の2箇所.
812
813 - target_fput_logの引数
814 - sio_snd_chrの第2引数
815
816・target_stddef.h(またはそこからインクルードされるファイル)に,サイズ
817 の指定された浮動小数点型(float32_tとdouble64_t),その最大値・最小値
818 のマクロの定義を追加する.「ターゲット依存部 ポーティングガイド」3.4
819 節参照.開発環境がGCCでarch/gcc/tool_stddef.hを用いており,float型と
820 double型がそれぞれIEEE754準拠の単精度浮動小数点数と倍精度浮動小数点数
821 である場合には,arch/gcc/tool_stddef.hをインクルードする前に,
822 TOPPERS_STDFLOAT_TYPE1をマクロ定義すればよい.
823
824(3) トレースログ記録のサンプルコードの使用方法に従った修正(オプション)
825
826・ターゲット依存部を,トレースログ記録のサンプルコードを使用するように
827 修正する.「ターゲット依存部 ポーティングガイド」6.11.2節参照.
828
829(4) TARGETDIR変数の使用
830
831・Makefileのターゲット依存部で,ターゲット依存部ディレクトリを参照して
832 いる箇所で,$(SRCDIR)/target/$(TARGET)を,$(TARGETDIR)に変更する.
833
834----------------------------------------------------------------------
835
836 TOPPERS/ASPカーネル
837 Release 1.0.0 から 1.1.0 への変更点
838
839○変更点のリスト
840
841・frsm_tskをカーネルから削除.itron.hにマクロ定義として残す
842
843・カーネルのトレースログ機能の改修
844 - トレースログマクロを使う側のファイルで,デフォルト定義を与える.
845 - nulltraceを廃止.logtraceを修正.
846 - ターゲット依存部でのトレースログ取得方法を標準化.
847 - INTHDR_ENTRYとEXCHDR_ENTRYにパラメータを追加.
848 - target_putcを,target_fput_logにリネーム.
849
850・システムログ機能をカーネルから外して,システムサービスの位置付けに
851 - syslog.c,syslog.h,banner.cを,kernelからsyssvcに移動.
852 - システムログ機能のサービスコールの名称にsyslog_を付加.
853
854・システムサービスのディレクトリの位置付けの明確化
855 - logtask.hとserial.hを,includeからsyssvcに移動.
856 - vasyslog.cを,libraryからsyssvcに移動.
857
858・リリースパッケージの形態を整備
859 - utils/makereleaseを作成.utils/genmanifestを削除.
860 - MANIFESTファイルに,パッケージ名とバージョン番号を記述.
861 - MANIFESTファイルのINCLUDE記述を変更.
862
863・出入口処理の番地の変数/フィールド名の変更
864 - 割込みハンドラ/CPU例外ハンドラの出入口処理の番地(FP型)の変数/
865 フィールド名をint_entry/exc_entryに変更.コメントも修正.
866
867・DVE68K/M68K依存部の修正.
868 - target.tf中のエラーメッセージの修正.
869 - logtraceを使うように修正.
870
871・その他の修正.
872 - 固定長メモリプール初期化ブロックの生成に関するバグを修正.
873 - configureで,cfgが生成されているかのチェックを厳密化.
874 - sample/Makefileにおいて,ライブラリに関する依存記述の修正.
875 - sample/sample1.cfgにおいて,システムサービスの定義順を変更.
876 - extension/MANIFESTに,MANIFESTを追加.
877
878・ドキュメントの充実.コメントの追加・修正.
879
880・バージョン番号の更新.
881
882○ターゲット依存部の修正箇所(1.0.0 → 1.1.0)
883
884・カーネルのトレースログ機能の中で,ターゲット依存部で実装する必要があ
885 るものを実装する.詳しくは,porting.txtの6.1.2節,6.5.2節,6.6.1節,
886 6.7.1節を参照すること.
887
888・INTHDR_ENTRYとEXCHDR_ENTRYに2番目のパラメータが追加されたのに対応する.
889
890・TARGET_NAMEとCOPYRIGHT_TARGETを,target_config.hからtarget_syssvc.hに
891 移動する.COPYRIGHT_TARGETはTARGET_COPYRIGHTにリネームする.
892
893・target_putcをtarget_fput_logにリネームし,その宣言をtarget_config.hか
894 らtarget_syssvc.hに移動する.関数定義は,target_config.cに置いたまま
895 でよい.関数宣言・定義の上のコメントを修正する.
896
897・割込みハンドラの出入口処理の番地(FP型)の変数/フィールド名をinthdr
898 からint_entryに,CPU例外ハンドラの出入口処理の番地(FP型)の変数/
899 フィールド名をexchdrからexct_entryに,それぞれ変更する.これに関連す
900 るx_define_inhとx_define_excのコメントを修正する.
901
902・トレースログを記録しない場合には,target_config.hから「#include
903 "nulltrace/trace_config.h"」を削除する.
904
905・トレースログを記録する場合には,target_syssvc.hに「#include
906 "logtrace/trace_config.h"」を追加する.また,target_config.h中の
907 「#include "logtrace/trace_config.h"」の位置を前の方に移動する.
908
909・MANIFESTとE_PACKAGEを作成/修正する.MANIFEST中に,必要に応じて,
910 PACKAGEディレクティブとVERSIONディレクティブを追加する.また,
911 INCLUDEディレクティブのパラメータを,ディレクトリ名からファイル名に変
912 更する.ターゲットシステム毎に,E_PACKAGEを作成する.詳しくは,
913 user.txtの2章とporting.txtの9.1節を参照すること.
914
915----------------------------------------------------------------------
Note: See TracBrowser for help on using the repository browser.