Skip to content

Repository files navigation

TOPPERS新世代カーネル用コンフィギュレータ(Release 1.9.7)
TOPPERS新世代カーネル用コンフィギュレータは、カーネルやソフトウェア部品
の構成や初期状態を定義したシステムコンフィギュレーションファイルを解釈し、
システムを構築する上で必要なファイル類を生成するTOPPERS新世代カーネル用
のツールです。
コンフィギュレータは、コンパイラやアセンブラを初めとする開発ツールと同様、
PC等の開発用コンピュータ上で動作するコマンドラインプログラムです。したが
って、コンフィギュレータそのものが最終的な製品に組み込まれることは、原則
としてありません。コンフィギュレータはコマンドラインツールなので、コンパ
イラを初めとした他のコマンドラインツールと組み合わせて使用することを前提
としています。しかし、ユーザーが適切に設定を行うことで、多くの統合開発環
境から呼び出せます。 【コンフィギュレータの構築方法(ITRON系)】
カーネルを構築する前に、まず、コンフィギュレータをコンパイルする必要が
あります(コンフィギュレータをバイナリで入手した場合には、このステップ
は必要はありません)。
コンフィギュレータの構築にはBoost C++ Libraries 1.48.0以上が必要です。
開発時点でのBoost C++ Librariesの最新版は1.58.0、であり、それ以降のバー
ジョンについては動作確認を行っていません。
Boost C++ Librariesは、下記URLから入手することができます。
http://www.boost.org/
・動作確認済みの環境
Windows 7 (x64) SP1 + Cygwin 1.7.17 + GCC 4.5.3 + Boost 1.48.0
Windows XP SP3 + MinGW 1.0.17 + GCC 4.6.2 + Boost 1.48.0 Windows 7 (x64) SP1 + MinGW 1.0.17 + GCC 4.6.1 + Boost 1.52.0
=== GNU開発環境を用いた構築方法 ===
コンフィギュレータ(cfgプログラム)を構築するには、cfgディレクトリに移動
し、configureおよびmakeコマンドを実行します。
% cd cfg
% ./configure
% make
ただし、Boostをインストールしたディレクトリおよび名称が、標準で想定して
いるものと違う場合には、configureに--with-headersおよび--with-libraries
オプションによりインクルードおよびライブラリのディレクトリを指定してくだ
さい。
また、ホストシステムによっては、最適化レベルを上げると正しくコンパイルで
きないことが知られています。そのような場合には、最適化レベルを下げるか、
最適化を抑止するように、Makefileを修正する必要があります。
複数のバージョンのBoost C++ Librariesがインストールされている場合(中途
半端にアンインストールされた場合を含む)、configureに失敗する可能性があ
ります。その場合は手作業でMakefile.configを修正してください。
また、一度コンフィギュレータの構築を行った後、コンパイラやライブラリの
アップデートを行った場合には、make realcleanを実行し、configureからやり
直してください。
【コンフィギュレータの構築方法(AUTOSAR系)】
カーネルを構築する前に、まず、コンフィギュレータをコンパイルする必要が
あります(コンフィギュレータをバイナリで入手した場合には、このステップ
は必要はありません)。
コンフィギュレータの構築にはBoost C++ Libraries 1.48.0以上およびXerces C++
3.1.1以上が必要です。
開発時点でのBoost C++ Librariesの最新版は1.52.0、Xerces C++の最新版は3.1.1
であり、それ以降のバージョンについては動作確認を行っていません。
Boost C++ Librariesは、下記URLから入手することができます。
http://www.boost.org/
Xerces C++は、下記URLから入手することができます。
http://xerces.apache.org/xerces-c/
・動作確認済みの環境
Windows 7 (x64) SP1 + Cygwin 1.7.17 + GCC 4.5.3 + Boost 1.48.0
+ Xerces C++ 3.1.1 + ICU 4.8.1
Windows XP SP3 + MinGW 1.0.17 + GCC 4.6.2 + Boost 1.48.0 + Xerces C++ 3.1.1 + ICU 49.1
Windows 7 (x64) SP1 + MinGW 1.0.17 + GCC 4.6.1 + Boost 1.52.0
+ Xerces C++ 3.1.1 + ICU 50.1
=== GNU開発環境を用いた構築方法 ===
コンフィギュレータ(cfgプログラム)を構築するには、cfgディレクトリに移動
し、configureおよびmakeコマンドを実行します。
configureに--with-xmlを指定することで、AUTOSAR XML対応機能を追加する
ことができます。
% cd cfg
% ./configure --with-xml
% make
ただし、Boostをインストールしたディレクトリおよび名称が、標準で想定して
いるものと違う場合には、configureに--with-headersおよび--with-libraries
オプションによりインクルードおよびライブラリのディレクトリを指定してくだ
さい。
また、ホストシステムによっては、最適化レベルを上げると正しくコンパイルで
きないことが知られています。そのような場合には、最適化レベルを下げるか、
最適化を抑止するように、Makefileを修正する必要があります。
複数のバージョンのBoost C++ Librariesがインストールされている場合(中途
半端にアンインストールされた場合を含む)、configureに失敗する可能性があ
ります。その場合は手作業でMakefile.configを修正してください。
また、一度コンフィギュレータの構築を行った後、コンパイラやライブラリの
アップデートを行った場合には、make realcleanを実行し、configureからやり
直してください。
【Mekefile.configの説明】
configureコマンドによって生成されるMakefile.configでは次のパラメータが
定義されます。
・LIBBOOST_SUFFIX
Boost C+ Librariesのライブラリファイルのサフィックス
たとえば、ライブラリファイルがlibboost_system-mt.aのような形式であれば、
LIBBOOST_SUFFIXには-mtが設定されます。
・BOOST_VERSION
Boost C++ Librariesのバージョン
バージョン1.48.0であれば、BOOST_VERSIONには1_48が設定されます。
・BOOST_DIR=/usr/include
Boost C++ Librariesのヘッダファイルがあるディレクトリ
自分でBoost C++ Librariesをインストールした場合、通常/usr/local/include
が設定されます。
・LIBBOOST_DIR
Boost C++ Librariesのライブラリファイルがあるディレクトリ
自分でBoost C++ Librariesをインストールした場合、通常/usr/local/libが設定
されます。
・XERCES_DIR
Xerces C++のヘッダファイルがあるディレクトリ
・LIBXERCES_DIR
Xerces C++のライブラリファイルがあるディレクトリ
・OPTIONS
コンパイラの追加オプション
普通は何も設定されません。
・HAS_CFG_XML
AUTOSAR XML対応の有無
configureに--with-xmlを指定した場合は1に定義されます。
【コンフィギュレータの使い方】
コンフィギュレータ(cfg)は、TOPPERS新世代カーネル統合仕様書の2.12.5節
の記述の通り、3つ(または4つ)のパスで構成されます。
コンフィギュレータは、システムコンフィギュレーションファイル名をパラメー
タに取り、以下のオプションを持ちます(重要なもののみ)。
--help
オプションのリストと説明を表示する。
-v[--version]
コンフィギュレータのバージョンを表示する。
-k[--kernel]<カーネル名>
カーネルの名称を指定する。デフォルトはasp。
-p[--pass]<パス番号>
パス番号を指定する。1〜3のいずれか。
-I[--include-path]<インクルードパス名>
INCLUDEディレクティブにおいて、インクルードするコンフィギュレー
ションファイルを探すパス名を指定する。
-T[--template-file]<テンプレートファイル名>
テンプレートファイルの名称を指定する。パス2とパス3で有効。
--api-table <静的APIテーブルファイル名>
静的APIテーブルのファイル名を指定する。
--cfg1-def-table <値取得シンボルテーブルファイル名>
値取得シンボルテーブルのファイル名を指定する。
-r[--rom-image]<ロードモジュール名>
ロードモジュールをSレコードフォーマットの形に変換したファイルの
名称を指定する。パス3でのみ有効。
-s [--symbol-table] <シンボルファイル名>
ロードモジュール中の各シンボルとアドレスの対応表を含むシンボル
ファイルの名称を指定する。パス3でのみ有効。
--id-output-file <ID番号出力ファイル名>
オブジェクトのID番号の割付け結果を、指定した名前のファイルに書
き出す。パス2でのみ有効。
--id-input-file <ID番号入力ファイル名>
オブジェクトのID番号の割付けを、指定した名前のファイルから取り
込む。パス2でのみ有効。
--external-id
オブジェクトのID番号を保持する変数の定義を生成する。パス2でのみ
有効。
-M[--print-dependencies]<ターゲットシンボル>
システムコンフィギュレーションファイルの依存関係を出力する。
Makefile中の依存関係を生成する際に用いる。
--ini-file <設定ファイル名>
AUTOSAR XML対応時において、設定ファイルを指定する。
コンフィギュレータの詳細仕様については、別途PDFファイルの形で配布してい
る「TOPPERS新世代カーネル用コンフィギュレータ仕様」を参照してください。
テンプレートファイルの作成にあたっては、「TOPPERS新世代カーネル用コンフ
ィギュレータ内蔵マクロプロセッサ仕様書」を参照してください。
○変更履歴
2023/01/22
・M1 Mac(+Homebrew)版向けの対応
2020/07/26
・Linux 64版向けの対応
以上

About

TOPPERS 2nd Gen configurator

Topics

Resources

Stars

5 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages