Loading
Topics
|
About Project
|
ASP3 Kernel
|
Documents
|
Download
|
Community
|
Report
|
Contacts
|
FAQ
会員向けページ
メーリングリスト
早期リリース
技術ドキュメント
開発支援
会員情報登録・変更
会員向けイベント情報
プロジェクトについて
TOPPERSプロジェクトとは
TOPPERSのロゴについて
TOPPERS公式マスコット「とぱめ」
TOPPERSライセンス
プロジェクト規則集
貸借対照表
プロジェクトの組織
関連団体、プロジェクトメンバ
受賞
入会のススメと申込み方法
開発成果物の利用報告
FAQ
問い合わせ・事務局案内図
取り組み
ETロボコンへの取組み
プレス発表
ニュースレター
コンテスト
一般向けイベント情報
TOPPERSカンファレンス
TOPPERS開発者会議
過去の取り組み
公的資金によるプロジェクト
ソフトウェア開発委託事業
公募型事業
開発成果物
リアルタイムカーネル
TOPPERS/ASP3カーネル
TOPPERS/HRP3カーネル
TOPPERS/FMP3カーネル
TOPPERS/HRMP3カーネル
TOPPERS/ASPカーネル
TOPPERS/JSPカーネル
TOPPERS/FMPカーネル
TOPPERS/HRP2カーネル
TOPPERS/SSPカーネル
TOPPERS/PARK
TOPPERS/FDMPカーネル
TOPPERS/FI4カーネル
TOPPERS/HRPカーネル
TOPPERS/ATK1
AUTOSAR関連
TOPPERS/ATK2
TOPPERS/A-RTEGEN
TOPPERS/A-COMSTACK
TOPPERS/A-WDGSTACK
TOPPERS/A-OSBENCH
TOPPERS/AKTSP
TOPPERS/EV3RT(EV3 Platform)
TECS(コンポーネントシステム)
TINET(TCP/IPスタック)
TOPPERS/ECNL
CAN/LIN通信ミドルウェア
FatFs for TOPPERS
SafeG
SafeG64
SafeG-M
SafeG-Auto
MDCOM
TOPPERS BASE PLATFORM
Athrill
TOPPERS Test Suite Package(TOPPERS新世代カーネル)
TOPPERS新世代カーネル用コンフィギュレータ
その他
TOPPERS Builder Bootable CD-ROM イメージ
TLV(トレースログ可視化ツール)
BridgePoint for JSP1.4
TOPPERS C++ APIテンプレートライブラリ
TOPPERSカーネルテストスイート(μITRON4.0仕様)
Remote Link Loader(RLL)
ダイナミックローディングマネージャ(DLM)
TOPPERSカーネル向けシミュレーション環境
教育コンテンツ
初級実装セミナー教材
中級実装セミナー教材
基礎1実装セミナー教材
基礎2実装セミナー教材
基礎3実装セミナー教材
基礎ハードウェア基本設計セミナー教材
ARM7版基礎1、2、3実装セミナー教材
TOPPERS BASE PLATFORM対応版基礎1、2、3セミナー教材
二足歩行ロボット教材
TOPPERS版鹿威し
ドキュメント
TOPPERS第3世代カーネル統合仕様書
TOPPERS新世代カーネル統合仕様書
TOPPERS新世代カーネルへのマイグレーションガイド
TOPPERS新世代カーネル用コンフィギュレータ関連仕様書
機能分散マルチプロセッサ向けリアルタイムカーネル仕様書
ダウンロード
ダウンロードページ一覧
関連製品
トータルソリューション
開発キット・開発環境・ツール
ミドルウェア・ソフトウェア部品
サポート・サービス
教育・教材
ハードウェア
利用事例
適用事例
ユーザ
コミュニティ情報
ユーザーズフォーラム
ソフトウェア
統合開発環境
外部リンク
Contributed Software
Contributed Software(GitHub)
AUTOSAR情報サイト
その他の情報
雑誌記事・書籍
TOPPERS/ASP3カーネル更新履歴
目次
Release 3.7.1 の Release 3.7.0 との主な違い
Release 3.7.0 の Release 3.6.0 との主な違い
Release 3.6.0 の Release 3.5.0 との主な違い
Release 3.5.0 の Release 3.4.0 との主な違い
Release 3.4.0 の Release 3.3.0 との主な違い
Release 3.3.0 の Release 3.2.0 との主な違い
Release 3.2.0 の Release 3.1.0 との主な違い
Release 3.1.0 の Release 3.0.1 との主な違い
Release 3.0.1 の Release 3.0.0 との主な違い
Release 3.7.1 の Release 3.7.0 との主な違い
sample/Makefileの不具合修正
シンボルファイル,バイナリファイル,ダンプファイルの生成ルールを,個別に記述するように変更.
ドキュメントの改善,コメントの修正
バージョン番号の更新
カーネルのバージョン番号を更新.
Release 3.7.0 の Release 3.6.0 との主な違い
macOS,Linux上でのシミュレーション環境の追加
POSIX依存部の追加.
[サブ優先度機能拡張パッケージ] サブ優先度機能の仕様変更に対応
優先度上昇状態の間のサブ優先度の扱いに対応.
優先度上限がサブ優先度を使用する優先度になっているエラーのチェックを削除(extension/subprio/kernel/mutex.trbを削除).
change_subprioの処理の一部をchg_sprに移動(実装改善).
テストプログラム(test_subprio1,test_subprio2,test_subprio3,pass2_subprio1)の対応.
優先度継承拡張パッケージの追加
test/tBitKernel.cの拡張.
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)の値を変更しないように変更.
コンフィギュレータの不具合修正
SRecord.rbに,不連続なデータ領域のコピーに対応したcopy_dataを追加し,cfg.rbのBCOPYをそれを用いるように修正.
ARMコア依存部,チップ依存部,ターゲット依存部の不具合修正
arch/arm_gcc/rza1/chip_sym.def中のマクロの名称を修正.
優先度上昇状態を管理するように変更
優先度上昇状態を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の新しいバージョンでエラーにならないように修正.
[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属性を追加.
[GR-PEACH依存部] hardware_init_hookの呼び方の変更に対応
target_support.Sをtarget_start.Sにリネームし,必ずリンクされるように変更.
その他の実装改善
コンフィギュレーションスクリプト(configure.rb)とユーティリティプログラムを,FileUtilsライブラリをなるべく使わないように変更.
テストプログラム生成ツール(gentest.rb)の出力形式の改善.
configureとsample/Makefileの機能改善
コンフィギュレーションスクリプト(configure.rb)でコンパイルオプションを外せるように,sample/Makefileを拡張.
sample/Makefileの変更
%.cppに対するvpath指定を追加.
テストプログラムの実行スクリプトの変更
testexec.rbで,カーネルライブラリのビルド時に-fオプションを与え ないように変更(必要な場合は,TARGET_OPTIONSに記述する).
testcfg.rbの機能改善.
テストプログラムの追加
優先度データキュー機能のテスト(1)(test_pdq1),固定長メモリプール機能のテスト(1)(test_mpf1)を追加.
コンフィギュレータ本体によるパス1でのエラー検出のテスト(1)(pass1_cfg1)を追加.パス2でのエラー検出のテストの一部を移動.
テストプログラムの修正
強制待ち状態に関するテスト(1)(test_suspend1)で,呼び出すサービスコールを修正.
システム時刻管理機能のテスト(1)(simt_systim1,simt_systim1_64hrt)で,target_raise_hrt_intをCPUロック状態で呼ぶように修正.
テストプログラムの改善・変更
メッセージバッファ拡張パッケージのtest_messagebuf1とtest_messagebuf2を,intptr_tが64ビットの場合に対応.
test_int1を拡張.
test_cpuexc10の実装改善(HRP3カーネルとの整合性のため).
pass2_cfg1を意図しないエラーが出ないように変更.
いくつかのテストプログラムを,test_common.hを使用するように変更.
その他の修正
gentest.rbの不具合修正と実装改善.
tBitKernel.cの未完成部分の作成と不具合修正.
設計ドキュメントの追加
mutex_design.txtとinherit_design.txtの追加.
ドキュメントの改善
バージョン番号の更新
カーネルのバージョン番号を更新.
Release 3.6.0 の Release 3.5.0 との主な違い
拡張情報の型をEXINFに変更
[ARMコア依存部] 性能評価時のキャッシュの無効化の実装
HIST_INVALIDATE_CACHEがマクロ定義されている場合には,性能評価において実行時間を計測する前に,キャッシュと分岐予測を無効化する.
コンフィギュレータの不具合修正
パス3の終了処理ルーチンに関するチェックの不具合を修正.
ARMコア依存部,チップ依存部,ターゲット依存部の不具合修正
T_EXCINF型のintpriフィールドを符号付き整数に修正.
パフォーマンスモニタによる性能評価が正しく動作するように修正.その際に,USE_ARM_PM_HISTをUSE_ARM_PMCNTに,TOPPERS_ARM_PMCNT_DIV64をUSE_ARM_PMCNT_DIV64にリネーム.
計測前のキャッシュの無効化時に,TLBも無効化するように変更.
CT11MPCore依存部の割込みの数を修正.
get_infの実装改善
排他制御するのをやめた(その必要がないため).
コンフィギュレータのエラーメッセージの改善
カーネル管理外の割込みに関するエラーメッセージを改善.
静的APIの文法エラーに対するエラーメッセージを改善.
静的APIテーブルにエラーがあった場合に,ファイル名と行番号を出力するように変更.
パス3でシンボルが見つからない場合のエラー検出の追加
コンフィギュレータのSYMBOL関数に,シンボルが見つからない場合にエラーメッセージを出す機能を追加.
この機能に対応できるように,生成スクリプトを変更.
オーバランハンドラ機能拡張の実装改善
オーバランハンドラがサポートされていない場合に,オーバランハンドラ初期化ブロックを生成しないように変更.
生成スクリプトの記述スタイルを変更(他の類似記述と合わせた).
上位のカーネルとの整合性の確保
周期通知とアラーム通知の通知ハンドラ名を変更.
コンフィギュレータ本体のエラーメッセージ出力関数を拡張・整理.それを活用するように生成スクリプトを変更.
システムサービスの実装の改善
ログ情報の出力時に,渡されたログバッファに書き込まないように変更.
syslog_printfにおいて,必要なパラメータが5つより多い場合に,5つを超えるパラメータを読まないように変更.
ARMコア依存部,チップ依存部,ターゲット依存部の実装改善
ARMv7では,SMP有効時にACTLRのFWビットを設定するように修正.
周辺デバイスへのポーリングに待ち(sil_dly_nse(100))を入れた.
sil_dly_nseのアラインメントを64ビット境界に変更.
不必要な命令の削除.
各ターゲットのリンカスクリプト中を,.text.*セクション等をリンクするような記述に変更.
その他の実装改善
tTraceLog.c中のトレースログ関数を,マクロを呼び出す形に変更し,マクロが定義されている場合のみコンパイルするように変更.
TECSからカーネルを呼び出すための記述の変更
tKernel_inline.h中の引数がない関数の引数記述を(void)とする.
コンフィギュレータのテスト(test_cfgディレクトリ)の追加
ダミーのターゲット依存部(target/dummy_gcc)の変更
カーネル管理外の割込みに対応.
カーネル管理/カーネル管理外に固定の割込み番号/割込みハンドラ番号を設定.
割込みハンドラとCPU例外ハンドラの先頭番地のチェックを追加.
トレースログ取得の方法を変更.
トレースログ関数のリネーム記述を削除.
テスト実行スクリプト(testexec.rb)の改善
複数のカーネルライブラリを持てるように拡張.
処理の指示方法(コマンド)の改善.
TARGET_OPTIONSへの記述順序の整理.
テストプログラムの修正
通知処理のテスト(1)(test_notify1)の変数の型の誤り(intptr_tとint_tのサイズが異なる場合に不具合が発生)を修正.
テストプログラムの改善
セマフォ機能のテスト(1)(test_sem1)のテスト項目を追加.
ARM依存のテストプログラムarm_cpuexcを,arm_cpuexc1にリネーム.
カーネルの自己診断機能の拡充
カーネルの自己診断機能で整合性検査を行う範囲を広げた.
ミューテックス機能の自己診断機能を廃止.
[ARM依存部] TSKCTXBのチェックのための定義を追加.
configureとutils/makerelease.rbの変更
shellライブラリを使用しないように変更(ruby 2.7.0以降で,標準ライブラリに含まれなくなったため).
ドキュメントの充実,コメントの修正
バージョン番号の更新
カーネルとカーネル仕様のバージョン番号を更新.
Release 3.5.0 の Release 3.4.0 との主な違い
高分解能タイマが64ビットの場合に対応
t_stddef.hにおけるHRTCNT型の定義を変更.
set_hrt_eventにおいて,タイムイベントヒープが空の場合と,高分解能タイマに指定する相対カウント値がHRTCNT_BOUNDよりも大きい場合の処理を変更.マクロ定義のチェックを追加.
MPCore内蔵タイマ用のタイマドライバ(USE_MPCORE_GTC_HRTの場合)とタイマドライバシミュレータを,高分解能タイマを64ビットにできるように拡張(target_hrt_clear_eventの追加など).
simtimer_ct11mpcore_gccとsimtimer_macosx_gccを,高分解能タイマが64ビットの場合に対応.
テストプログラム(simt_systim1_64hrt,simt_systim2_64hrt,simt_systim3_64hrt.c,simt_drift1_64hrt)を追加.
モノトニックタイマ機能拡張パッケージの追加
コンフィギュレータの仕様変更
静的APIの後に";"がない場合はエラーとするように変更.
ARMコア依存部,チップ依存部,ターゲット依存部の仕様変更
フェイタルデータアボートをエミュレートされたCPU例外と位置付け,CPU例外ハンドラ番号を割り付けた.
ARMコア依存部,チップ依存部,ターゲット依存部の不具合修正
arm_memory_areaをconstに.
その他の不具合修正
静的APIの最後に";"が抜けている不具合の修正.
ARMコア依存部,チップ依存部,ターゲット依存部の実装改善
core_test.hにおけるCPU例外の発生コードを見直し.
ARM依存のテストプログラム(arm_cpuexc)を追加.
sp804.hを,arch/arm_gcc/commonから,target/ct11mpcore_gccに移動.
software_term_hookを,target_exitから呼ぶように変更.
タイマドライバシミュレータの実装改善
タイマ割込みの発生時刻の設定状況を表すデータ型(INT_EVENT)を導入.
その他の実装改善
VALID_TMOUTの定義を変更.
check_adjtimのパラメータの型と,エラーチェックの条件式を変更.
tTask_inline.hに古いサービスコール(先頭に"i"が付く)が残っていたのを修正.
tSerialPortMain.c内のローカル変数内の型を修正.
configureとsample/Makefileの修正
configureへのオプションで,ライブラリのリンク記述を追加できるように,configureとsample/Makefileを修正.
テストプログラムの追加
[ARM依存部] ARM向けFPUのテスト(1)(arm_fpu1)を追加.
gentest.rbの拡張(HRMP3カーネル向けのものを導入)
マルチプロセッサに対応.
元のファイルを置き換える仕様に変更.
ローカル変数を定義する機能を追加.
トレースログ記録のサンプルコードに他のカーネル向けの拡張を追加
ドキュメントの充実,コメントの修正
バージョン番号の更新
カーネルとカーネル仕様のバージョン番号を更新.
Release 3.4.0 の Release 3.3.0 との主な違い
SILのメモリ空間同期書込み関数の新設
sil.hに標準のメモリ空間同期書込み関数を追加.
各ターゲット依存部(またはコア依存部)に,TOPPERS_SIL_WRITE_SYNCの定義を追加.
コンフィギュレータの仕様変更
条件ディレクティブにより,有効とするC言語プリプロセッサのディレクティブを選択できるようにした.
ARMコア依存部,チップ依存部,ターゲット依存部の拡張・仕様変更
FPUサポートを追加.
タイマドライバシミュレータの追加
タイマドライバシミュレータ(arch/simtimer)を追加.
Mac OS X+タイマドライバシミュレータ用のターゲットを追加.
CT11MPcore+タイマドライバシミュレータ用のターゲットを追加.
Mac OS X向けの高分解能タイマテスト用のターゲットを削除.
その他の機能拡張
コンフィギュレーションスクリプト(configure.rb)に-Bオプションを追加.
ref_tskの不具合の修正
二重待ち状態の時に,tskwaitとwobjidが正しく返らない不具合を修正.
DEF_EXCのエラーチェックの不具合の修正
CPU例外ハンドラ番号としては有効だが,DEF_EXCで登録できないものをエラーとして扱えていなかった不具合を修正.
adj_timで高分解能タイマを無駄に設定する問題の修正
adj_timにおいて,is_signal_timeの場合はset_hrt_eventを呼ばないように修正.
CRE_ALMのエラーチェックの不具合の修正
アラーム通知属性としてTA_STAを設定できる(設定してもエラーにならない)不具合を修正.
動的生成機能拡張の不具合の修正
acre_dtqとacre_pdqで,管理領域の先頭番地のアラインチェックが抜けていた不具合を修正.
オーバランハンドラ機能拡張の不具合の修正と実装改善
ovrtimer_flagを使用しない実装に変更.
オーバランハンドラを定義しない時に生成するデータ構造の修正.
ref_ovr内の無駄な条件式を削除.
Mac OS Xターゲット依存部を修正.
テストプログラムを入れ換え・追加.
シリアルインタフェースドライバの不具合修正
FC_START受信時にコールバックを許可していなかった不具合を修正.
ARMコア依存部,チップ依存部,ターゲット依存部の不具合の修正
割込みコントローラのアクセス後に,メモリバリアが抜けていた不具合を修正.start_dispatchにも,メモリバリアを追加.
MPCore依存部で,TCYC_HRTCNTの定義を解除している不具合を修正.
call_exit_kernelで,非タスクコンテキストに設定(excpt_nest_countを1に設定)するように修正.
RZ/A1チップ依存部で,SIOドライバの終了処理ルーチンで,シリアルポートのFIFOが空になるのを待つように修正.
その他の不具合修正
sample/Makefile中のバナー表示の依存関係記述の修正.
コンフィギュレーションスクリプト(configure.rb)のオプションの処理を修正.
初期化ルーチンと終了処理ルーチンの処理方法の変更
コンフィギュレータで,初期化ルーチンと終了処理ルーチンを呼び出す関数に代えて,それらの数とテーブルを生成し,それを順に呼び出すように変更.
get_tidでCPUロック状態にしないように変更
コンフィギュレータの変更
GenerateIncludes(インクルードディレクティブの生成)を新設.IncludeFilesを廃止.
rubyの警告が出ないように修正.-wオプションを付与.
生成スクリプトの変更
チェックパスで,非タスクコンテキスト用のスタック領域に関するチェック方法を変更.
動的生成機能拡張のチェックパスで,カーネルメモリプール領域に関するチェック方法を変更.
rubyの警告が出ないように修正.
トレースログ記録のサンプルコードをターゲット非依存部に
トレースログ記録のサンプルコードを組み込むための記述を,ターゲット非依存部に移動.
低レベル出力をSIOポートから出力するためのコンポーネントを用意
tPutLogSIOPort.cdl,tPutLogSIOPort.cを新設.
それを使用するように各ターゲット依存部を変更.
簡易SIOドライバの改善
オープン済みフラグの名称をopenedに統一.
終了処理において,SIOポートをクローズするように変更.
SIOポートの二重にオープンしないように変更(統一).
SIOポートのクローズは,オープンした時のみ行うように変更.
SIOポートのクローズ時に,オープン済みフラグをクリアしていなかった問題を修正.
システムサービスとライブラリの実装の改善
システムログ機能とシステムログタスクの無駄な処理の削除.
syslog_printの中で改行を出力するように変更.
非TECS版システムサービスの変更
test_svc.cに,get_interrupt_priority_maskを追加.test_svc.hの変更を不要に.
sample1.cfgに条件ディレクティブを入れ,TECS版と非TECS版で共用(コンフィギュレータの修正を活用).
ARMコア依存部,チップ依存部,ターゲット依存部の変更
チップ依存部としてのMPCore依存部(arch/arm_gcc/mpcore)を削除し,ARMコア依存部(arch/arm_gcc/common)にそれに対応するファイルを追加.MPCore依存部を使用するターゲット依存部を,これに対応させる.
TCYC_HRTCNT,TSTEP_HRTCNT,TMAX_OVRTIMの定義を,ターゲット依存部に置くように統一.
ターゲット依存部のSIOドライバのコンポーネントを,可能であればチップ依存部に移動.
MPCore依存部のタイマモジュールで,高分解能タイマ割込みの要求方法を変更.スプリアス割込み対策を追加.
GIC依存部で,SGIの割込み要求禁止フラグが操作できない場合に対応.
CT11MPcore向けのターゲット依存部のタイマモジュールで,QEMUで実行している場合には,ロードレジスタに0を設定しないように修正.
CT11MPcore向けのターゲット依存部のサンプルプログラム向けの定義で,QEMUで実行している場合には,MEASURE_TWICEを定義するように変更.
RZ/A1チップ依存部から,MPCore依存部を使うように変更.
RZ/A1チップ依存部で,シリアルポートの設定をターゲット依存部で上書きできるように変更.
その他の変更・修正
make_wait,wait_wait_tmout,wobj_make_wait,wobj_make_wait_tmoutに,タスク状態を渡すパラメータ(tstat)を追加し,タスク状態の設定をこれらの関数内で行うように変更.
tmevtb_enqueueをtmevtb_enqueue_reltimにリネーム.
request_dispatchをrequest_dispatch_retintにリネーム.
signal_timeで,タイムイベントを1つも処理しなかった場合には,システムログ機能にメッセージを出すように変更.
task.trbに,タスク毎のターゲット依存の処理を追加する仕組み(TargetTaskPrepare)を追加.
interrupt.trbとexception.trbに,ターゲット依存のエラーチェックを行う仕組み(TargetCheckCfgInt,TargetCheckDefInh,TargetCheckCreIsr,TargetCheckDefExc)を追加.
並列makeに対応できるように,sample/Makefileを修正.
中間オブジェクトファイルを置くディレクトリを変更できるように変更.
テスト実行スクリプト(testexec.rb)の改良.
テストプログラムの追加
強制待ち状態に関するテスト(1)(test_suspend1)を追加.
テストプログラムの変更
高分解能タイマテスト用のテストプログラム(hrt_systim?)を,タイマドライバシミュレータ用のテストプログラム(simt_systim?)に入れ換え.gentest.rbを,それに対応できるように修正.
perf4.cの周期ハンドラ中の不要な変数定義を削除.
test_raster1.c中の待ち時間を変更.
サンプルプログラムの変更
プロセッサ時間を消費するためのループの中で,volatile変数を読み出すように変更.プロセッサ時間の消費を独立した関数に.
PREPARE_RETURN_CPUEXCを使うのをやめる(使い方が間違っていた).
コードとコメントのブラッシュアップ.
出力メッセージの修正.
ドキュメントの充実,コメントの修正
バージョン番号の更新
カーネルとカーネル仕様のバージョン番号を更新.
Release 3.3.0 の Release 3.2.0 との主な違い
カーネルの実装改善
ext_tskの実装を改善.
rsm_tskの実装を改善.
dspflgとp_schedtskをまとめて更新する関数set_dspflgを導入.
change_priorityの実装を修正.
動的生成機能拡張のカーネルメモリプール管理に関する修正
DEF_KMMを,統合仕様書で定義したDEF_MPKにリネーム.
カーネルメモリプール領域からのメモリ獲得/解放の関数名の変更.
ターゲット非依存部で用意しているデフォルトのメモリプール管理機能を,すべてのメモリ領域が解放されればメモリ領域を再利用するように変更.また,HRP3カーネルへの適用を考慮した実装にした.
動的生成機能拡張のバグフィックスと実装改善
TCB中のlastmtxフィールドの初期化が抜けていたバグを修正.
kernel.h中でのacre_tskの返値の型の誤りを修正.
acre_mpfで,固定長メモリプール管理領域の確保に失敗した場合の,メモリプール領域の解放処理のバグの修正.
acre_cycとacre_almの実装を改善.
CHECK_RSATRをCHECK_VALIDATRにリネーム.
サンプルプログラムで,acre_tskとacre_almがエラーとなった場合に対応.
サブ優先度機能拡張のバグフィックス
サブ優先度を使用した場合に,実行すべきタスクの更新が抜けていたバグを修正.
TECS関連のバグフィックス等
tInterruptHandlerとtCpuExceptionHandlerの2つのセルタイプの定義を修正(2つのソースファイルを削除).
eMutex_lockTimeoutの修正(ploc_mtxを呼んでいた).
周期通知の名前の修正.
kernel.cdl中のパラメータ名や型名の誤記の修正.
システムログ機能の改良
システムログ出力のためのライブラリ関数(syslog_n,syslog,t_perror)を,システムログ機能の本体を直接呼び出さずに,システムログ機能のアダプタ経由で呼び出すように修正した(t_perrorを,システムログ出力のための関数という位置付けにした).
tt_syslogとtt_perrorは,ログを生成する関数の位置付けとした.
システムログ出力のための下位のライブラリ関数(t_syslog_n)の名称を変更した.
オフセットファイルの生成方法の変更
オフセットファイル生成用の生成スクリプトの記述を,生成されるファイルの内容が想像しやすい形に変更.
TARGET_OFFSET_TRBが定義されていたらoffset.hを生成することとし,OMIT_OFFSET_Hを廃止.
オフセットファイル生成用の生成スクリプトでのマジックナンバーによるチェックを削除(チェック内容がコンフィギュレータと重複していたため).
Makefileの修正
TECS関係ファイルのディレクトリ名を定義する変数(TECSDIR)を追加.
cfgにカーネルを指定するオプションを変数(CFG_KERNEL)に定義.
コンフィギュレーションスクリプト(configure.rb)を,TECS関係ファイルのディレクトリ名を設定できるように拡張.
ARMコア依存部,チップ依存部,ターゲット依存部の修正
キャッシュの無効化コードの不具合を修正するとともに,全レベルのキャッシュを無効化するように拡張.
MMUのページテーブル設定のための定数値で,APXビットという呼称をやめて,APビットが3ビットある扱いに変更.
GIC 390 Errataへの対策を追加.
RZ/A1チップ依存部に,SMPモードに設定するコードを追加(これがないと,Shareable属性のメモリ領域のキャッシュが有効にならない).
GR-PEACHターゲット依存部の微少時間待ちのための定数の修正.
テストプログラムから呼び出す自己診断機能を静的設定に変更
テストプログラム用サービスのセルから,自己診断機能への呼び口を静的に(dynamic属性を削除).自己診断サービスのディスクリプタを取得する機能を廃止.
テストプログラム用サービスから,自己診断サービスを設定するための関数を廃止.
自己診断サービス使用するテスト用プラットフォームのコンポーネント記述ファイル(test_pf_bitkernel.cdl,test_pf_bitmutex.cdl)を追加.
この変更に合わせてテストプログラムを修正.
テストプログラム用サービスのアダプタを追加
TECSで記述されたテストプログラム用サービスをC言語で記述されたアプリケーションから呼び出すためにアダプタを使うように変更.
トレースログ記録のサンプルコードを改善
トレースログ機能のシグニチャ(sTraceLog)からdumpを削除.
トレースログ機能内でSYSLOG_GET_LOGTIMを使っていたのを,TRACE_GET_LOGTIMに変更.
コードのブラッシュアップ.
サンプルプログラムの修正
'V'コマンドでプロセッサ時間を使用するように修正.
カーネルの自己診断を行うオプション機能を廃止.
サンプルプログラム(2)の修正
サンプルプログラム(1)と同等の機能にした.
割込みサービスルーチンとCPU例外ハンドラを,TECSを使用して登録するように修正(cdlファイル中で#ifdefが使えないため,INTNO1とCPUEXC1が定義されていないとコンパイルできないものとした).
ciKernel_exitKernelを呼ぶべきところで,誤ってciKernel_senseKernelを呼んでいたのを修正.
システムログ機能のマスクの初期値の修正.
システムログ機能のアダプタを組み込んだ.
不要なコメントの削除.
コンフィギュレータの修正
パス2で,SIL_ENDIAN_BIT/LITTLEの誤定義を検出するように修正.cfg1_out.cに検出処理を生成するのをやめる.
その他にASP3カーネルに関係しない修正を実施.
テストプログラムの追加
自タスクの終了に関するテスト(test_exttsk)を追加.
テストプログラムの修正
タスク終了要求機能に関するテスト(2)(test_raster2)の待ち時間を調整.
ダミーのターゲット依存部(target/dummy_gcc)の修正
Release 3.2.0に対応させた(前リリースでの対応漏れ).
スタートアップモジュールを用意(main関数をスタートアップモジュールに移動).
ライブラリへの依存性を下げるために,exitとabortを呼ぶのをやめ,無限ループに変更.
その他の修正
kernel.hにCOUNT_MB_TとROUND_MB_Tの定義を追加.
メッセージバッファ機能拡張で,メッセージバッファ管理領域を確保する時のデータ型を,uint_tからMB_Tに変更.
テストプログラム用サービスと実行時間分布集計サービス(TECSで記述されたもの)で,返り値の型がvoidであった関数の返り値の型をERに変更(HRP3で警告を防ぐため).
各rubyスクリプトに,外部エンコーディングをUTF-8にする記述を追加.
genrename.rbのリネーム定義生成ルールの変更.
ドキュメントの充実,コメントの修正
バージョン番号の更新
カーネルのバージョン番号を更新.
Release 3.2.0 の Release 3.1.0 との主な違い
割込み管理機能の拡張
clr_int,ras_int,prb_intの3つのサービスコールの追加.
それに合わせてターゲット依存部の仕様を拡張/整理.
アイドル処理の設計変更(ターゲット依存部のみの修正)
アイドル処理中で発生した割込みからは,リターンしない設計に変更.
割込み要求のセットの追加(ターゲット依存部のみの修正)
ターゲット依存部で,割込み要求をセットする関数(raise_int)を用意することにした.
RZ/A1チップ依存部を,clear_int,probe_int,raise_intを使用するように修正.
テストプログラムから呼び出す自己診断サービスをTECSを用いて構築
動的生成機能拡張パッケージのバグフィックス
acre_tskで,優先度の高いタスクを生成
起動してもディスパッチが起こらない不具合を修正.
acre_flgで,CPUロックの解除が抜けていた不具合を修正.
fsnd_dtqで,E_ILUSEエラーのチェック方法を修正.
get_tstとfsnd_dtqで,エラーコードにE_OKを上書きしている不具合を修正.
check_nfyinfoで,エラーの通知処理が指定されていない場合にエラーとなる不具合を修正.
notify_handlerで,snd_dtqを呼んでいたのをpsnd_dtqに修正.
acre_tskで,p_tinib->stkszに格納する値(stksz)を丸めた値とするように修正.
ARMコア依存部,ターゲット依存部の修正
GICターゲット依存部を,clr_int,ras_int,prb_intをサポートするように修正.その際に,raise_intがソフトウェア生成割込み(SGI)に対応できるように拡張.
GICターゲット依存部で,SGIに対応する割込みコンフィギュレーションレジスタには,書き込みを行わないように修正.
Makefile.coreにおけるGCC_TARGETの定義を上書き可能にした.
current_cpsr/set_cpsrをcore_rename.defでリネームするのをやめた.
MPCoreチップ依存部のタイマの実装が,高い周波数が入力されている場合に対応できない問題を修正.
CT11MPcore向けのターゲット依存部で,コア0以外で実行するための設定を削除.MPCORE依存部の「#ifdef CORE0」を削除.
コンフィギュレータの修正
cfg1_out.cに,SIL_ENDIAN_BIT/LITTLEの誤定義の検出処理を生成するように修正.
テストプログラムの追加
割込み管理機能のテスト(1)(test_int1)を追加.
その他の修正
offsetofの定義を改善.
gentest.rbを,ISRと割込みハンドラを扱えるように修正.
sample/Makefile中のコンパイラに対する-Tオプションを,-Wl,-Tオプションに変更.
バナーのコピーライトの年を修正.
ドキュメントの充実,コメントの修正
バージョン番号の更新
カーネルのバージョン番号を更新.
Release 3.1.0 の Release 3.0.1 との主な違い
静的APIのパラメータの省略
CRE_TSKのstk、CRE_DTQのdtqmb、CRE_PDQのpdqmb、CRE_MBFのmbfmb、CRE_MPFのmpfとmpfmb、DEF_ICSのistkの記述を省略可能にした。
コンフィギュレータの仕様変更に対応
StrValクラスをNumStrクラスに置き換えたことに対応。
シンボル取得シンボルテーブルでbool型をサポートしたのを活用するように変更。
シンボル取得シンボルテーブルにより取得した値を、StrValクラスのブジェクトにしてグローバル変数に設定していたのを、値のままで設定するように変更したのに対応。
一般定数式パラメータの値を、(StrValクラスではなく)Stringクラスのオブジェクトで保持するように変更したのに対応。
動的生成機能拡張パッケージの修正
acre_yyyで、パケットの内容をローカル変数にコピーするように修正。
DEF_KMMのkmmパラメータを省略可能に。
バグフィックス
コンフィギュレータのパス3で、オブジェクトのID番号の割付けを外部から取り込んでいる場合に対応。
test_dlynse.cを、TCYC_HRTCNTが定義されている場合に対応。
bit_kernel.cのを、p_schedtskとdspflgの整合性を検査するように修正。
静的APIのパラメータ末に改行がある場合の不具合を修正。
ARMコア依存部の修正
GR-PEACH向けのターゲット依存部と、RZ/Aシリーズのチップ向けのコア依存部を追加。
スタックポインタを8バイト境界でアラインさせるように修正。
sil_dly_nseを、分岐予測がある場合に対応できるように修正。
ベクタテーブルを置くセクション名を".vector"に変更。32バイト境界でアラインさせるように修正。
テストプログラムの修正
時間パラメータを、TEST_TIME_CPとTEST_TIME_PROCを用いて記述。
test_dlynse.cを、TCYC_HRTCNTを参照するように修正。
サンプルプログラムの修正
割込みの動作確認を行えるように修正(ターゲット依存)。
その他の修正
kernel_impl.hからCASTマクロの定義を削除。
コンフィギュレータのパス3で、最適化により変数がなくなるケースに対応。
符号無しのパラメータのエラーチェックを、0以下でチェックするのではなく、0との一致でチェックするように修正。
生成スクリプトの記述スタイルの修正。
テストがエラーになった時に'\007'を出力するように修正。
libkernel.aのリンク方法を変更(HRP3の都合)。
gentest.rbの改善。
ドキュメントの充実、コメントの修正
バージョン番号の更新
カーネルのバージョン番号を更新。
Release 3.0.1 の Release 3.0.0 との主な違い
コンフィギュレータの修正
BCOPYの不具合を修正(SRecordクラスの実装を改良)。
エラーメッセージの修正。
DOMAIN記述とCLASS記述を受け付けるように修正(ASP3カーネルには関係なし)。
エラーメッセージの展開機能を活用した記述に修正。
TECS関連の修正
変数名の修正(dataqueueSentValue)。
tTimeEventHandlerのアダプタ関数を、プラグインで生成するようにしたことに対応。tTimeEventHandler.cを削除。
バグフィックス
kernel_check.trbのLMAからVMAへのコピーの不具合の修正。
コンフィギュレータのエラー出力コードの不具合の修正。
コンフィギュレータが出力するエラーコードの誤りの修正。
その他の修正
GetStackTskinictxbの第3パラメータに、タスク初期化ブロックの先頭番地を渡すように修正。
バージョン番号の更新
カーネルのバージョン番号を更新。
Newsletterのバックナンバーは
こちら
Tweets by ToppersJP