TOPPERS LOGO
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/EV3RT(EV3 Platform)
    • TECS(コンポーネントシステム)
    • TINET(TCP/IPスタック)
    • TOPPERS/ECNL
    • CAN/LIN通信ミドルウェア
    • FatFs for TOPPERS
    • SafeG
    • SafeG64
    • SafeG-M
    • 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/HRMP3カーネル更新履歴

目次
  • Release 3.2.0 と Release 3.1.2 との主な違い
  • Release 3.1.2 と Release 3.1.1 との主な違い
  • Release 3.1.1 と Release 3.1.0 との主な違い
  • Release 3.1.0 と Release 3.0.0 との主な違い
Release 3.2.0 と Release 3.1.2 との主な違い
  • 拡張情報の型をEXINFに変更
  • コンフィギュレータが生成する関数を配置するメモリリージョン
    • コンフィギュレータが生成する通知ハンドラと割込みハンドラを,それに関連するオブジェクトが属するクラスの標準メモリリージョンに配置するように変更.
    • [ARMコア依存部,ダミーターゲット依存部] それらを配置するセクション(.kernel_code_<クラス名>)を設ける.配置するセクションを指定して関数定義を生成するための関数を追加.
  • 標準スタックリージョンの新設
    • DEF_SRGに標準スタックリージョンを定義するためのパラメータを追加.
    • ユーザスタックを配置するメモリリージョンを,ターゲット依存部で変更できるように,MemregUserStackを導入.デフォルトの配置先を,標準スタックリージョンに変更.
    • SecnameSystemStackにパラメータを追加.
    • [ARMコア依存部,ダミーターゲット依存部] スタック領域を配置するメモリリージョンを,標準スタックリージョンに変更.SecnameSystemStackにパラメータを追加(使用していない).
  • CRE_TSKのエラー条件の変更
    • システムタスクの生成時に,stkszが0の場合にE_PARエラーとする処理を削除(システムスタックサイズがターゲット定義の最小値よりも小さい場合をエラーとするため,問題ない).
  • 割込みサービスルーチンを実行するプロセッサに関する仕様変更に対応
    • 割込み要求ライン初期化ブロックのaffinityフィールド(割付け可能プロセッサ)に生成する情報を,対応するDEF_INHがある場合,対応するCRE_ISRがある場合,どちらもない場合で変えるように変更.
    • CFG_INTに関するエラーチェックを,2回に分けて実施.
    • [ARM依存部] 割付け可能プロセッサが複数あるクラスの囲み内にCRE_ISRやCFG_INTを記述した場合には,コンフィギュレータが警告メッセージを出し,クラスの初期割付けプロセッサのみで割込みを受け付けるように設定するように変更.
  • [ARMコア依存部] 性能評価時のキャッシュの無効化の実装
    • HIST_INVALIDATE_CACHEがマクロ定義されている場合には,性能評価において実行時間を計測する前に,キャッシュと分岐予測を無効化する.
  • 通知ハンドラ名の衝突の問題の修正
    • タイムウィンドウ通知の通知ハンドラの関数名が,周期通知やアラーム通知と衝突する可能性がある問題を本格的に修正.
  • ARMコア依存部,チップ依存部,ターゲット依存部の不具合修正
    • TA_SDATA属性を無視するように修正.
    • パフォーマンスモニタによる性能評価が正しく動作するように修正.その際に,USE_ARM_PM_HISTをUSE_ARM_PMCNTに,TOPPERS_ARM_PMCNT_DIV64をUSE_ARM_PMCNT_DIV64にリネーム.
    • 計測前のキャッシュの無効化時に,TLBも無効化するように変更.
  • コンフィギュレータのエラーメッセージの改善
    • コンフィギュレータ本体のエラーメッセージ出力関数を拡張・整理.それを活用するように生成スクリプトを変更.
    • メモリ領域や変数の先頭番地がNULLの場合に,アクセス権に関するエラーチェックを行わないように修正.
    • inhno/intnoが有効範囲外のエラーの場合に,初期割付けプロセッサ/割付け可能プロセッサに関するエラーチェックを行わないように修正.
    • カーネル管理外の割込みに関するエラーメッセージを改善.
    • ATT_SECで,mematrの不正を示すエラーメッセージを改善.
    • SAC_SYS,DEF_SCYが複数記述されている場合のエラーメッセージを改善.
    • タイムウィンドウ通知に関するエラーメッセージを改善.
    • ATT_TWDの通知にタイムイベントハンドラを用いた場合のエラーメッセージを改善.
    • 静的APIの文法エラーに対するエラーメッセージを改善.
    • 静的APIテーブルにエラーがあった場合に,ファイル名と行番号を出力するように変更.
  • パス3〜4でシンボルが見つからない場合のエラー検出の追加
    • コンフィギュレータのSYMBOL関数に,シンボルが見つからない場合にエラーメッセージを出す機能を追加.
    • この機能に対応できるように,生成スクリプトを変更.
  • ディスパッチハンドラを除外できるように変更
    • ディスパッチハンドラが不要な場合に,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_my_schedtskを廃止.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の内容にアクセスするインライン関数は,マクロでの実装に変更.
    • PCB中のp_scyc_tmevtbフィールドを,scyc_tmevtbフィールドに変更.
    • p_scyc_tmevtb_tableを廃止.
  • ARMコア依存部,チップ依存部,ターゲット依存部の実装改善
    • svc命令によってサービスコールを呼び出す方法を改善.
    • 実行状態のタスクのマイグレート時に使用するスタックを,非タスクコンテキスト用スタックに変更.
    • 拡張サービスコールの入口のログ取得コードを改善.
    • cfg1_out.ld中で,.rodataセクションのリンク記述にKEEPをつけた.
    • 周辺デバイスへのポーリングに待ち(sil_dly_nse(100))を入れた.
    • sil_dly_nseのアラインメントを64ビット境界に変更.
    • 不必要な命令の削除.
  • GNU開発環境依存部の実装改善
    • kernel_cfg.oの.rodataセクションのリンク記述に,KEEPをつけるように修正(リンカ最適化で,シンボルが削除されるのを防ぐため).
  • システムサービスの実装の改善
    • ログ情報の出力時に,渡されたログバッファに書き込まないように変更.
    • syslog_printfにおいて,必要なパラメータが5つより多い場合に,5つを超えるパラメータを読まないように変更.
  • その他の実装改善
    • ターゲット依存部から呼ばれる割込み処理ルーチンの入口にassert文を入れるように統一(twd_switch,dispatch_handler,ext_ker_handler,set_hrt_event_handler,start_scyc_handlerにassert文を追加).
    • check.hに,check_disdspとget_p_selftskを追加.get_mydomをget_selfdomにリネーム.sns_xxxの実装を,それらを用いるように変更.
    • p_selftskが使えるところでは,p_my_pcb->p_runtskをp_selftskで置き換える.
    • 標準の割込みハンドラ初期化ブロックから,affinityフィールド(割込みハンドラの割付け可能プロセッサ)を削除.標準のdefine_inhのパラメータから,affinityを削除.
    • loc_spn内のgotoを無くすように変更.
    • 保護ドメインのアクセス許可ベクタが設定済みかのエラーチェックコードを改善.
    • スピンロックに関するコンフィギュレーション処理の順序を前に移動.
    • リンクオンリセクションのリンク後セクション名とラベルを適切な名称に変更.
    • マスタプロセッサであることを判別するマクロis_mprcを廃止.
    • 前方参照のためにtypedefしたデータ型も,再度typedefするように変更.
  • ダミーのターゲット依存部(target/dummy_gcc)の変更
    • トレースログ取得の方法を変更.
  • テスト実行スクリプト(testexec.rb,testcfg.rb)の改善
    • 複数のカーネルライブラリを持てるように拡張.
    • 処理の指示方法(コマンド)の改善.
    • TARGET_OPTIONSへの記述順序の整理(testexec.rbのみ).
  • テストプログラムの改善・変更
    • ARM依存のテストプログラムarm_cpuexcを,arm_cpuexc1にリネーム.テスト内容を変更(SVCによるCPU例外処理のテストを除外).
    • ARM向けCPU例外処理のテスト(2)(arm_cpuexc2)を追加.
  • カーネルの整合性検査の準備
    • [ARM依存部] TSKCTXBのチェックのための定義を追加.
  • 設計メモとポーティングガイドの作成開始(現時点では未完成)
  • ドキュメントの充実,コメントの修正
  • バージョン番号の更新
    • カーネルとカーネル仕様のバージョン番号を更新.
Release 3.1.2 と Release 3.1.1 との主な違い
  • メッセージバッファ機能の不具合の修正
    • 待ち情報ブロックへの書き込みを,p_schedtskを書き換える前に行うように修正.
  • メモリバリア操作の追加
    • 他プロセッサのp_schedtskを書き換える前に,メモリバリア操作を行うように修正.
  • 高分解能タイマ設定ハンドラの修正
    • set_hrt_event_handlerからset_hrt_eventを呼び出す時に,排他制御を行うように修正.
  • メモリオブジェクトが持つ情報から「属するクラス」を削除
    • メモリオブジェクトの登録時に,属するクラスを設定しないように変更.
    • ショート定数データ領域をROMリージョンに置くとみなす条件の変更.
    • ATT_MEMをクラスの囲みの中に記述するとエラーとなるように変更.
    • テストプログラムの変更.
  • カーネル動作状態フラグが初期化されない不具合の修正
    • カーネル動作状態フラグを,PCBのフィールドから,独立した配列に変更し,クラス共通のbssセクションに配置するように変更.
    • テスト結果期待値の変更.
  • 静的APIテーブル(kernel_api.def)の不具合修正
    • DEF_SVCのfncdパラメータの型を符号付き整数に修正.
    • fncdが負の場合のテストを追加(pass2_obj3.cfg).
  • コンフィギュレータの修正
    • 手動メモリ配置の場合に,ATT_MODまたはATT_SECを用いた場合を警告とするように修正(前の修正の取り消し).
    • テスト結果期待値の変更.
  • log_extsvc_enter/leaveの記述漏れの修正
    • ターゲット非依存部のリネーム記述に追加.
  • ARMコア依存部,チップ依存部,ターゲット依存部の不具合修正
    • T_EXCINF型のintpriフィールドを符号付き整数に修正.
  • ARMコア依存部,チップ依存部,ターゲット依存部,ダミーのターゲット依存部(target/dummy_gcc)の実装改善
    • プロセッサ間割込みの優先度の記述方法を改善.
  • ダミーのターゲット依存部(target/dummy_gcc)の変更
    • トレースログ関数のリネーム記述を削除.
  • テストプログラムの修正
    • タイムウィンドウ通知に関するテスト(1)(test_twdnfy1)内のタイミング依存のチェック処理を削除.
  • configureとutils/makerelease.rbの変更
    • shellライブラリを使用しないように変更(ruby 2.7.0以降で,標準ライブラリに含まれなくなったため).
  • バージョン番号の更新
    • カーネルのバージョン番号を更新.
Release 3.1.1 と Release 3.1.0 との主な違い
  • [ARM依存部] 割込みハンドラのバイパス機能の追加
    • USE_BYPASS_IPI_DISPATCH_HANDERを定義すると,他コアからのディスパッ チ要求割込み受付時に割込みハンドラを呼び出さず,割込み処理を終了 させるように変更.
  • タスクコンテキストからシステム周期/タイムウィンドウの実行開始処理を  行う場合の問題を修正
    • タスクから呼ばれたサービスコールから,システム周期およびタイムウィ ンドウの実行開始処理を行う場合に,CPUロック状態を解除するタイミ ングでタスク切換えが起こることを防ぐために,割込み優先度マスクを, システム周期/タイムウィンドウ切換え割込みの割込み優先度に設定す るように修正.
    • また,実行中の保護ドメインをカーネルドメインに設定するように修正.
    • wait_tmout,wait_tmout_okが,タスクコンテキストから呼ばれても問 題ないように修正.
    • [ダミーターゲット依存部] INTPRI_TIMERの定義を追加.
  • 通知ハンドラ名の衝突の問題の修正
    • タイムウィンドウ通知の通知ハンドラの関数名が,プロセッサ間で衝突 する問題と,周期通知やアラーム通知と衝突する可能性がある問題を修 正.
  • ディスパッチ保留状態でタスク切換えが起こる不具合の修正
    • dis_dspとchg_ipm内で,ジャイアントロックを取得した後に,タスク切 換えが必要であればディスパッチを行うように修正.
  • trcv_dtqの条件文の修正
    • trcv_dtqで,タスク終了要求のチェックの後のif文に,elseが抜けてい た不具合を修正.
  • rot_rdqが非タスクコンテキストから呼ばれた場合の処理の修正
    • rot_rdqが非タスクコンテキストから呼ばれた場合にも,実行状態のタ スクが属するスケジュール単位を操作対象としていた不具合を修正.
  • 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中に生成される割込み ハンドラから呼び出されるのに対応できるように修正.
  • コンフィギュレータの不具合修正
    • 保護ドメイン初期化ブロック中のタイムイベントヒープへのリンクが正 しく出力されない場合がある不具合の修正.
    • 変数のインクリメントによる通知における変数のアクセス許可に関する エラーチェックの不具合を修正.
    • パス4の終了処理ルーチンに関するチェックの不具合を修正.
    • クラスの指定値が有効範囲外の場合に,エラーメッセージを出力した後, コンフィギュレータがエラーで落ちる不具合を修正.
    • ユーザスタック領域の参照操作に対するアクセス許可パターンが,タス クと同じ値に設定されない不具合を修正.
    • ユーザタスクの生成で,sstkを記述し,sstkszの記述を省略した場合に, エラーメッセージを出力した後,コンフィギュレータがエラーで落ちる 不具合を修正.
    • 手動メモリ配置で,stkをNULLとした場合に,エラーメッセージを出力 した後,コンフィギュレータがエラーで落ちる不具合を修正.
    • カーネルドメインに属する固定長メモリプールが,アクセス許可ベクタ がデフォルトの値になっているかどうかの判定ができず,手動メモリ配 置の場合に検出されないエラーがある不具合を修正.
    • ユーザスタック領域および固定長メモリプール領域用のセクションを ATT_SECした場合をエラーとする.
    • DEF_SRGで,指定したメモリリージョンが未登録の場合に,エラーメッ セージを出力した後,コンフィギュレータがエラーで落ちる不具合を修 正.
    • システム周期が設定されていない場合に,CRE_SOMとATT_TWDを記述する と,警告メッセージを出力した後,コンフィギュレータがエラーで落ち る不具合を修正.
    • DEF_ICSに関するエラーメッセージのパラメータが書き換わらないよう に修正.
    • 手動メモリ配置の場合に,ATT_MODまたはATT_SECを用いた場合をエラー とするように修正(警告になっていた).
    • メモリオブジェクトが1つも登録されていない場合に,コンフィギュレー タがエラーで落ちる不具合を修正.
    • エラーメッセージの修正("must be with a class" → "must be within a class")
    • エラーメッセージの修正("any kernel memory object" → "any memory object")
  • USE_LATERPASS_DOMINIBを用いた時の不具合の修正
    • ドメイン初期化ブロックから参照する変数の宣言を,kernel_mem.cに生 成するように修正.
    • $schedcbList,$sdomain,$twdMap,$schedcbMap,$tmevtCountを, $globalVarsに追加.
    • スケジューリング単位管理ブロックとタイムイベントヒープ領域の static宣言をやめる.
  • カーネルのデータ構造を配置するメモリリージョンの追加修正
    • 各オブジェクトの管理領域を該当する標準メモリリージョンに配置する ように変更した際に,いくつかの管理領域等で修正漏れがあったのを追 加修正.
  • 手動メモリ配置用のMakefile(sample/Makefile_mml)の追加
  • ARMコア依存部,チップ依存部,ターゲット依存部の不具合修正
    • ARMv7では,SMP有効時にACTLRのFWビットを設定するように修正.
    • ユーザモードからは,システム周期オーバラン例外を要求できないよう に修正.
    • request_dispatch_prc,request_ext_ker,request_set_hrt_eventのパ ラメータの型の誤りを修正.
    • オーバランハンドラを使用する場合のレジスタ保存の抜けを修正.
  • ダミーターゲット依存部の不具合修正
    • スタックサイズおよびスタック領域のチェックに関するマクロ定義の不 具合を修正.
    • GenerateNativeSpnの定義を追加.
    • request_dispatch_prc,request_ext_ker,request_set_hrt_eventのパ ラメータの型の誤りを修正.
  • その他の不具合修正
    • is_mprcマクロのパラメータを()で囲むように修正.
    • msta_cycとmsta_almの出口のログ取得マクロ名の誤りを修正.
    • タスクマイグレーションログの取得漏れを修正.
    • time_event.h中のtmevtb_enqueueとtmevtb_dequeueのパラメータ名の誤 りを修正(プロトタイプ宣言なので実害なし).
  • コンフィギュレータのエラーメッセージの改善
    • DEF_SRGで,標準ショートRAMリージョン名の記述を省略した場合に,重 複したエラーメッセージが出る問題を修正.
  • コンフィギュレータのテスト(test_cfgディレクトリ)の追加
  • ARMコア依存部,チップ依存部,ターゲット依存部の変更
    • MPCoreのグローバルタイマによるtarget_hrt_raise_eventの実装を,直 接割込みを要求する形に変更.
    • プロセッサ間割込み(カーネル終了要求を除く)の割込み優先度を,最 低優先度に変更.
  • ダミーのターゲット依存部(target/dummy_gcc)の変更
    • カーネル管理外の割込みに対応.
    • カーネル管理/カーネル管理外に固定の割込み番号/割込みハンドラ番 号を設定.
    • 割込みハンドラとCPU例外ハンドラの先頭番地のチェックを追加.
  • サンプルプログラムの修正
    • サンプルプログラムを,CPUEXC1の定義を参照しないように修正.
    • [ダミーターゲット依存部] サンプルプログラムがビルドできるように 修正.
  • テストプログラムの修正
    • 通知処理のテスト(1)(test_notify1)の変数の型の誤り(intptr_tと int_tのサイズが異なる場合に不具合が発生)を修正.
    • マルチプロセッサ対応のアラーム通知のテスト(2)(test_malarm2)が 意図通りのテストになっていなかったのを修正.
  • テストプログラムの改善・変更
    • セマフォ機能のテスト(1)(test_sem1),スピンロック機能のテスト (2)(test_spinlock2),過渡的な状態のテスト(2)(test_mtrans2)の テスト項目を追加.
    • タイムウィンドウ通知に関するテスト(test_twdnfy)をtest_twdnfy1 にリネームし,テスト内容を改善.
    • タイムウィンドウ通知に関するテスト(2)(test_twdnfy2)を追加.
    • 過渡的な状態のテスト(5)(test_mtrans5)を追加.
  • バージョン番号の更新
    • カーネルとカーネル仕様のバージョン番号を更新.
Release 3.1.0 と Release 3.0.0 との主な違い
  • 設定できる最高のタスク優先度の機能の廃止
    • LMT_DOMを廃止.保護ドメイン初期化ブロックを変更.
    • 関連するエラーチェックを削除.
    • 保護ドメインに対する制限に関するテスト(test_lmtdom1,test_lmtdom2)を廃止.
  • カーネルのデータ構造を配置するメモリリージョン
    • 各オブジェクトの管理ブロックや管理領域,プロセッサ毎に必要なカーネルのデータ構造を,該当する標準メモリリージョンに配置するように変更.
    • [ARMコア依存部]それらを配置するセクション(.kernel_data_<クラス名>)を設ける.
  • システム周期とタイムウィンドウの開始のトレースログ
    • カーネルのコードに,トレースログを取るためのマクロを追加.
  • 高分解能タイマが64ビットの場合に対応
    • t_stddef.hにおけるHRTCNT型の定義を変更.
    • set_hrt_eventにおいて,タイムイベントヒープが空の場合と,高分解能タイマに指定する相対カウント値がHRTCNT_BOUNDよりも大きい場合の処理を変更.マクロ定義のチェックを追加.
    • fch_hrtのソフトウェア割込みによる呼出し方法を変更.
    • MPCore内蔵タイマ用のタイマドライバを,高分解能タイマを64ビットにできるように拡張.
  • コンフィギュレータの仕様変更
    • 静的APIの後に";"がない場合はエラーとするように変更.
  • ARMコア依存部,チップ依存部,ターゲット依存部の仕様変更
    • フェイタルデータアボートをエミュレートされたCPU例外と位置付け,CPU例外ハンドラ番号を割り付けた.
  • ダミーのターゲット依存部(target/dummy_gcc)を追加
  • trcv_dtqでrelease_glockを2回呼ぶパスがある不具合を修正
  • mrot_rdqの不具合を修正
    • mrot_rdqを拡張サービスコールから呼び出した場合に,TDOM_SELFが,拡張サービスコールを呼び出したタスクが属する保護ドメインになっていた不具合を修正.
  • initialize_interrupt内で使用する変数の誤りを修正
  • アイドルスタックを置くセクションの修正
    • 各プロセッサのアイドルスタックを置くセクションを,クラスのリストから初期割付けプロセッサが一致するものをサーチして決定するように修正.
  • 不要なスケジューリング単位管理ブロックを生成しないように修正
    • 不要なスケジューリング単位管理ブロックの生成を抑止するための条件判定を追加.
  • その他の不具合修正
    • 不要なextern宣言(set_my_hrt_event)の削除.
    • リネーム記述(kernel_rename.def等)の修正.
    • 静的APIの最後に";"が抜けている不具合の修正.
  • システム周期の切換え遅れへの対応
    • あるプロセッサで,システム周期の切換えが大きく遅れた場合に,予期できない振る舞いにならないように実装を改善.
  • ターゲット拡大対応のための修正
    • kernel_opt.trbとkernel_mem.trbにおいて,USE_LATERPASS_DOMINIBの場合に,GenerateDominibを呼ぶ処理を後に移動.
    • メモリオブジェクトの先頭/終了ラベルの宣言を,ターゲット依存部で変更可能に.
  • rot_rdq中の不要なif文を削除
  • ARMコア依存部,チップ依存部,ターゲット依存部の実装改善
    • core_test.hにおけるCPU例外の発生コードを見直し.
    • ARM依存のテストプログラム(arm_cpuexc)を追加.
    • software_term_hookを,target_exitから呼ぶように変更.
  • その他の実装改善
    • VALID_TMOUTの定義を変更.
    • check_adjtimのパラメータの型と,エラーチェックの条件式を変更.
    • TOPPERS_ISTKPTが定義されていない時に,idstk_tableを生成するように変更.
    • プロセッサ毎に必要なカーネルのデータ領域の配置場所を,そのプロセッサが初期割付けプロセッサであるようなクラスがない時は,クラス共通の標準メモリリージョンにするように変更.
    • syssvcディレクトリにあるシステムコンフィギュレーションファイル中のATT_MODを,「#ifdef TOPPERS_SUPPORT_ATT_MOD」「#endif」で囲む.
  • configureとsample/Makefileの修正
    • configureへのオプションで,ライブラリのリンク記述を追加できるように,configureとsample/Makefileを修正.
  • サンプルプログラムの拡張
    • サンプルプログラム(1)(sample1)を,2つのプロセッサを動作させるように拡張.
  • テストプログラムの追加
    • システム周期の切換えが遅れた場合のテスト(test_mdelay1)を追加.
    • システム状態管理機能のテスト(2)(test_sysman2)を追加.
    • [ARM依存部] ARM向けFPUのテスト(1)(arm_fpu1)を追加.
  • テストプログラムの変更
    • test_tprot1〜test_tprot4を,test_common.hを使うように変更.
  • その他の変更
    • gentest.rbに,ローカル変数を定義する機能を追加.
  • ドキュメントの充実,コメントの修正
  • バージョン番号の更新
    • カーネルとカーネル仕様のバージョン番号を更新.

Newsletterのバックナンバーはこちら

Tweets by ToppersJP


Copyright (C) 2000 - 2021 by TOPPERS Project, Inc. All Rights Reserved.