Skip to content

mitsut/cfg

This branch is up to date with master.

Folders and files

NameName
Last commit message
Last commit date
May 8, 2024
Jan 28, 2023
May 5, 2024
Jul 25, 2022
May 13, 2022
Aug 1, 2020
Jul 26, 2020
Mar 11, 2023
Jan 22, 2023
Jan 30, 2019
Jan 22, 2023
Jul 26, 2020

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版向けの対応

以上