hipcconfig
- HIPCコンフィギュレーションファイルから、ユーザープログラムのビルドに必要なファイルを生成する
hipcconfig FILE
hipcconfig
はFILE
で指定されたコンフィギュレーションファイルを基に、以下のファイルを出力する。ファイル名の例は、FILE
がfoo.yml
のときのものである。
foo.h
foo_scfg.h
foo_scfg.c
foo_ccfg.h
foo_ccfg.c
設定ファイルはYAML形式で記述する。一部の設定項目は記述の省略が可能である。
コンフィギュレーションの識別子を設定する。具体的には、以下の識別子要素を並べることで設定する。上から下に並べられた要素は左から右に連結され、これが最終的な識別子となる。
cfgid:をファイルに書かず設定を省略した場合は、以下の設定をしたことと同じになる。
cfgid:
- baseid:
- ;
- datetime:
- ;
- hexdigest:
- ;
- randbase64:
cfgid:
- 'datetime:'
- datetime:
- ',digest: 2:'
- digest: 2
- ',hexdigest: 4:'
- hexdigest: 4
- ',rand: 3:'
- rand: 3
- ',randbase64: 4:'
- randbase64: 4
以上の設定から生成される識別子の例:
"datetime:2015-06-11T08:16:46+09:00,digest: 2:\xA0=,hexdigest: 4:a03d,rand: 3:\xA1dI,randbase64: 4:VPBE"
構造体名とメンバーを設定する。
構造体名はstru_name:の後に文字列で設定する。例: stru_name: STRUbar
構造体メンバーを設定する。
メンバー変数の型を設定する。ポインタなどを含め表記方法は基本的にC言語に準じるが、設定ファイルの前で設定した別の構造体型を指定する場合は例外であり、波括弧{}を使った表記が必要となる。
変数の型がint16_t
へのポインタである場合の設定例: type: int16_t *
変数の型がelm
という名前の構造体である場合の設定例: type: {struct: elm}
メンバー名を設定する
変数名がfoo
である場合の設定例: name: foo
メンバーを配列にする。省略が可能で、省略した場合は配列でない普通のメンバー変数となる。配列の要素数は角括弧[]で囲んで記す。配列が多次元の場合は、カンマで数字を区切る。
4要素の配列が8つある二次元配列の設定例: array: [8,4]
出力される構造体定義ヘッダファイルの先頭に挿入する文字列を設定する。省略可能。
出力される構造体定義ヘッダファイルの最後に挿入する文字列を設定する。省略可能。
TIPS:
HIPCの処理を避けてデータを直接やりとりする場合には、1バイト長型の配列が利用できる。
例: { type: unsigned char, array: [32] }
header: |+
#include <stdint.h>
#define ARRAY_SIZE 8
cfgid:
- 'datetime:'
- datetime:
- ',digest: 2:'
- digest: 2
- ',hexdigest: 4:'
- hexdigest: 4
- ',rand: 3:'
- rand: 3
- ',randbase64: 4:'
- randbase64: 4
structs:
- stru_name: simple_structure
members:
- type: uint8_t
name: foo
- type: int16_t *
name: bar
- stru_name: complex_structure
members:
- type: int16_t
name: simple_array
array: [ARRAY_SIZE]
- type: uint8_t
name: two_dimensional_array
array: [5,7]
- type: {struct: simple_structure}
name: structure
- type: {struct: simple_structure}
array: [11]
name: array_of_structure
footer: |+
typedef struct complex_structure compstru;
Last modified: 2015/07/27 08:00:59 +09:00