TOPPERS/ATK2とは

TOPPERS/ATK(Automotive Kernel)は、TOPPERSプロジェクトで公開している自動車制御用リアルタイムOSの総称です。

ATK2(Automotive Kernel Version 2シリーズ)は、名古屋大学組込みシステム研究センター(NCES)が、複数の企業と共同で開発した「AUTOSAR OS仕様」をベースとしたOSで、TOPPERSプロジェクトへ開発成果物としてコントリビュートし、無償公開致します。
(※AUTOSAR関連のソフトウェアを利用する際の留意事項については、こちらをご覧ください)

また、「AUTOSAR OS仕様」は、「OSEK/VDX仕様」の上位互換とされ、差分仕様のみが記載されています。さらに、曖昧な仕様や、未規定の仕様が多く、実装する上での問題が多数存在します。そこで、「OSEK/VDX仕様」と「AUTOSAR OS仕様」をマージして、曖昧/未規定の仕様を解決し、日本語で仕様を記述した次世代車載システム向けRTOS外部仕様書を併せて、公開します。

ATK2は次世代車載システム向けRTOS外部仕様書に準拠しており、逆に実装に依存した仕様に対しては、ATK2に実装した仕様を参考仕様として、次世代車載システム向けRTOS外部仕様書に記載しています。 次世代車載システム向けRTOS外部仕様書と併せて、次世代車載システム向けRTOS要求仕様書、次世代車載システム向けRTOSハードウェア要求仕様書、次世代車載システム向けRTOS用語集も公開します。

「次世代車載システム向けRTOS外部仕様書」は、2015年度以降、「ATK2外部仕様書」として管理しております。2015年度以降に公開されたATK2は、「ATK2外部仕様書」に準拠して開発されています。

ATK2の時間パーティショニング機能をインテグレーションする際のガイドラインとして「ATK2-SC3-TPのインテグレーションガイドライン」を公開します。

ATK2外部仕様書(2016年度以降)
ATK2-SC3-TPのインテグレーションガイドライン
次世代車載システム向けRTOS 外部仕様書(2014年度まで)
次世代車載システム向けRTOS 要求仕様書
次世代車載システム向けRTOS ハードウェア要求仕様書
次世代車載システム向けRTOS 用語集

ダウンロード

ATK2の最新リリースと、ターゲットごとに必要なソースコードを一つにまとめた簡易パッケージは、それぞれ以下からダウンロードできます。

TOPPERS/ATK2に関する既知の問題

  1. タスクから信頼関数を実行している時にディスパッチが発生し、その後もとのタスクの信頼関数処理に戻ったとき、現在実行中OSAP、現在動作中OSAP、信頼OSAPの権限で動作していることを管理する変数がもとのタスクが属するOSAPに基づいて設定される不具合が報告されています。同様に、タスクからのカウンタインクリメントによるアラーム/スケジュールテーブル満了処理実行中にディスパッチが発生し、その後もとのタスクが呼び出したアラーム/スケジュールテーブル満了処理に戻ったときもこの現象が発生しますが、こちらはアプリケーションから確認できませんので、問題ありません。
    • 対象となるリリース
      ATK2-SC3Release 1.0.0以降
      ATK2-SC3-MCRelease 1.0.0以降
      ATK2-SC4Release 1.4.0以降
      ATK2-SC3-TPRelease 1.4.0以降

  2. 信頼OSAPに属するタスクからのカウンタインクリメントによりアラーム/スケジュールテーブル満了処理を実行している時に、そのアラーム/スケジュールテーブルが属するOSAPが強制終了した場合、信頼タスクが終了してしまう(コンテキストを保存せずにディスパッチしてしまう)不具合が報告されています。
  3. 強制終了の方法として以下の2つがあります。
    (2-1)プロテクションフックからOSAPを強制終了する場合
    (2-2)エラーフックからの現在動作中OSAPを強制終了する場合

    • 対象となるリリース
    • (2-1)
      ATK2-SC3Release 1.2.0以降
      ATK2-SC3-MCRelease 1.1.0以降
      ATK2-SC4Release 1.4.0以降
      ATK2-SC3-TPRelease 1.4.0以降
      (2-2)
      ATK2-SC3Release 1.4.1以降
      ATK2-SC3-MCRelease 1.4.1以降
      ATK2-SC4Release 1.4.1以降
      ATK2-SC3-TPRelease 1.4.1以降

  4. コンフィギュレーション時にタスクの最低優先度でリソースを共有した場合、そのリソースの上限優先度がタスクの最高優先度になる不具合が報告されています。
    • 対象となるリリース
      ATK2-SC1Release 1.0.0以降
      ATK2-SC1-MCRelease 1.0.0以降
      ATK2-SC3Release 1.0.0以降
      ATK2-SC3-MCRelease 1.0.0以降
      ATK2-SC4Release 1.4.0以降
      ATK2-SC3-TPRelease 1.4.0以降

  5. エラーフックから現在動作中のOSAPを強制終了した後に、プリエンプトされていたタスクが起動する場合、OS割込み禁止状態で起動してしまう不具合が報告されています。
    • 対象となるリリース
      ATK2-SC3Release 1.4.1以降
      ATK2-SC3-MCRelease 1.4.1以降
      ATK2-SC4Release 1.4.1以降
      ATK2-SC3-TPRelease 1.4.1以降

  6. リスタートタスク実行中に割込んだC2ISRからそのリスタートタスクが所属するOSAPを強制終了出来ない不具合が報告されています。
    • 対象となるリリース
      ATK2-SC3Release 1.4.0以降
      ATK2-SC3-MCRelease 1.4.0以降
      ATK2-SC4Release 1.4.0以降
      ATK2-SC3-TPRelease 1.4.0以降

  7. タスクが上限優先度がISRレベルであるリソースを獲得している状態で強制終了処理を実施すると、不正なメモリ領域にアクセスしてしまう不具合が報告されています。
    • 対象となるリリース
      ATK2-SC3Release 1.4.0以降
      ATK2-SC3-MCRelease 1.4.0以降
      ATK2-SC4Release 1.4.0以降
      ATK2-SC3-TPRelease 1.4.0以降

  8. リスタートタスクが上限優先度がISRレベルであるリソースを獲得している状態でC2ISRから強制終了処理を実施すると、割込み禁止全解除状態でC2ISRに戻ってしまう不具合が報告されています。
    • 対象となるリリース
      ATK2-SC3Release 1.4.0以降
      ATK2-SC3-MCRelease 1.4.0以降
      ATK2-SC4Release 1.4.0以降
      ATK2-SC3-TPRelease 1.4.0以降

TOPPERS/ATK2の主な特長

  • AUTOSAR OS 仕様ベース
  • 欧州の自動車メーカや電装部品メーカを中心とした標準化団体「AUTOSAR」が策定した自動車制御用ソフトウェアプラットフォームに含まれるOS仕様をベースとしています。外部仕様書は「AUTOSAR Release4.0 Revision3」をベースにしています。

  • AUTOSAR仕様ベースのコンフィギュレーションに対応
  • AUTOSARでは、システムコンフィギュレーションにXMLを使用します。OSに対して上位レイヤーから与えられるOS用のコンフィギュレーションファイル(ディスクリプションファイル/XML)を入力として、タスク等のOSオブジェクトの生成を行います。TOPPERS新世代カーネル用コンフィギュレータのRelease 1.9.0から、このAUTOSAR仕様のXMLの入力に対応しており、ATK2ではこのコンフィギュレータを使用することで、AUTOSARアーキテクチャにおけるOSとして動作することを想定しています。

  • TOPPERSのノウハウを凝縮した設計
  • TOPPERS/ASPのソースコードを参考にし、ITRON仕様OS開発ノウハウを元に開発したOSですので、「読みやすい」「改造しやすい」「機種展開しやすい」などのASPカーネルの基本コンセプトを継承しています。

  • OS共通部とターゲット依存部を分離
  • OS共通部からターゲット依存部を分離設計していますので、ターゲット依存部の書き換えのみで、容易に移植が可能です。

  • テストスイートによる検証済み
  • TOPPERSプロジェクトから、TOPPERS新世代カーネル向けのテストスイートとして、TTSP(TOPPERS Test Suite Package)が公開されています。ATK2に対しては、TTSPをAUTOSAR仕様にカスタマイズしたAKTSP(Automotive Kernel Test Suite Package)を開発し、網羅的なテストを実施しました。AKTSPでは、OSEK/VDX仕様に対するMODISTARC、AUTOSARコンフォーマンステストのテスト項目を包含し、より多岐に渡るOSの機能のテストが可能となっています。AKTSPは、コンソーシアム型共同研究に参加している企業にのみ提供されますが、ライセンス購入することは可能です。ご興味のある方は、ap-staff ○nces.is.nagoya-u.ac.jp までお問い合わせください。(○を@に置き換えてください)

  • MISRA-C対応
  • 欧州の自動車メーカを中心として定められたC言語設計規約「MISRA-C:2004」チェックを実施しています。一部、実行速度を優先する箇所やコードサイズを節約するために、敢えてMISRAコーディング規約を逸脱しているルールはありますが、逸脱する箇所は個別に検討を行い、MISRAの指摘する危険コードの回避を行っています。逸脱したルールは、今後TOPPERSコーディングルールとして、一般に公開する予定です。

  • すべてのスケーラビリティクラス、および、マルチコア、時間パーティショニングに対応
  • 現在、スケーラビリティクラス1〜4に対応したOS、およびSC1/SC3のマルチコア拡張版、SC1/SC3の時間パーティショニング拡張版を公開しています。メモリ保護機能および時間保護機能については独自に定義したサブセット仕様を採用しています。(詳細についてはATK2外部仕様書を参照してください)
    スケーラビリティクラス3はメモリ保護機能を搭載しており、TOPPERS/HRP2開発ノウハウを活かし、より多くのターゲットに対応するための実装を目指しています。また、メモリ保護機能に対する網羅的なテストも実施済みです。
    時間パーティショニング機能は、TOPPERSプロジェクトの提案するパーティショニング機能に関する標準規格に基いています。パーティショニング機能に関する標準規格については、こちら(TOPPERSプロジェクト会員のみ閲覧可能)をご覧ください。 時間パーティショニング機能をインテグレーションするための方法は、こちらをご覧ください。

ターゲットシステム

TOPPERS/ATK2は、現時点で、以下のターゲットプロセッサ、ターゲットシステムをサポートしています。

ディレクトリ名 開発環境

 
プロセッサ(型番) システム(メーカ名)
nios2_dev_gcc Nios2 Cyclone IV 開発、教育用キット(NIOS2_DEV_DE2_115)
QuartusII 11.0sp1
コンパイラ: GCC 4.1.2
ATK2外部仕様書(Nios2依存部)
  Nios2 Cyclone IV NIOS2_DEV_DE2_115(terasic)
at91skyeye_gcc(ATK2-SC1のみ) コンパイラ: GCC 4.5.2 (Sourcery G++ Lite 2011.03-42)
  ARM Skyeye(ISSシミュレータ)
fl850fl4_gcc(ATK2-SC1のみ)
fl850fl4_ghs(ATK2-SC1のみ)
CubeSuite+ V1.02.01
コンパイラ:
 ・GCC: 4.7-GNUV850_v12.02
 ・GHS: ccv850 (V800.V517D)
  V850E2/FL4 テセラ・テクノロジー株式会社製 FL-850/FL4(-S)
fl850pj4_gcc(ATK2-SC1のみ)
fl850pj4_ghs(ATK2-SC1のみ)
CubeSuite+ V1.02.01
コンパイラ:
 ・GCC: 4.7-GNUV850_v12.02
 ・GHS: ccv850 (V800.V517D)
  V850E2/PJ4 テセラ・テクノロジー株式会社製 FL-850/PJ4(-S)
fl850f1l_ccrh(ATK2-SC1、SC2、SC1-TPのみ)
fl850f1l_ghs(ATK2-SC1のみ)
CS+ V3.00.0
コンパイラ:
 ・CCRH: V1.01.00
 ・GHS: ccrh850(2013.5.5)
  RH850/F1L テセラ・テクノロジー株式会社製 FL-850/F1L(-S)
hsbv850e2fg4_gcc(ATK2-SC1のみ)
hsbv850e2fg4_cx(ATK2-SC1のみ)
CS+ V3.00.0
コンパイラ:
 ・GCC: 4.7-GNUV850_v12.02
 ・CX: V1.31
  V850E2/FG4(-L) 株式会社北斗電子製 HSBV850E2FG4
rczbasev850_gcc(ATK2-SC1のみ)
rczbasev850_cx(ATK2-SC1のみ)
CS+ V3.00.0
コンパイラ:
 ・GCC: 4.7-GNUV850_v12.02
 ・CX: V1.31
  V850E2/FG4 株式会社ゼットエムピー製 RC-Z-BASE-V850
rh850f1h_pb_ghs(ATK2-SC1のみ) CS+ V3.00.0
コンパイラ:
 ・GHS: ccrh850(2013.5.5)
  RH850/F1H ルネサスエレクトロニクス RH850評価ボード
hsbrh850f1l(ATK2-SC1のみ) CS+ V3.00.0
コンパイラ:
 ・CCRH: V1.02.00
  RH850/F1L 株式会社北斗電子製 HSBRH850F1L

コンソーシアム型共同研究参加企業

TOPPERS/ATK2の開発を行ったコンソーシアム型共同研究に参加した企業については、下記のページをご覧ください。