メインコンテンツ

boolean の特定の整数データ型への置換

製品ハードウェアで使用するプロセッサのアーキテクチャに応じて、生成コードの実行速度を改善できます。組み込み型である boolean 用の特定の整数データ型を選択します。データ型置換を使用すると、生成コードの boolean 組み込みデータ型を次の整数型のいずれかに置き換えることができます。

  • int8

  • uint8

  • intn

製品ハードウェアの整数ワード サイズに一致させるには、n816、または 32 に置き換えます。

モデル例

モデル ex_bool には、boolean 値を出力する 2 つのブロックと、boolean 値を入力として受け取る 2 つのブロックが含まれています。この例は、32 ビット ハードウェア ターゲット用に生成されたコードにおいて、どのようにデータ型 boolean が整数データ型 int32 に置き換えられるかを示しています。

既定の boolean データ型を含むコードの生成

生成されたファイル rtwtypes.h を表示します。typedef ステートメントには、boolean_T のジェネリック型定義が含まれており、これは boolean のコード生成名です。

/*===========================================================================*
 * Generic type definitions: boolean_T, char_T, byte_T, int_T, uint_T,       *
 *                           real_T, time_T, ulong_T.                        *
 *===========================================================================*/
typedef double real_T;
typedef double time_T;
typedef unsigned char boolean_T;
typedef int int_T;
typedef unsigned int uint_T;
typedef unsigned long ulong_T;
typedef char char_T;
typedef unsigned char uchar_T;
typedef char_T byte_T;

生成されたファイル ex_bool.c を表示します。コードは、boolean_T 型を使用して boolean 変数を宣言します。

/* External inputs (root inport signals with auto storage) */
typedef struct {
  real_T In1;                          /* '<Root>/In1' */
  real_T In2;                          /* '<Root>/In2' */
  boolean_T In3;                       /* '<Root>/In3' */
  boolean_T In4;                       /* '<Root>/In4' */
  real_T In5;                          /* '<Root>/In5' */
} ExtU_ex_bool_T;

/* External outputs (root outports fed by signals with auto storage) */
typedef struct {
  boolean_T Out1;                      /* '<Root>/Out1' */
  boolean_T Out2;                      /* '<Root>/Out2' */
  real_T Out3;                         /* '<Root>/Out3' */
} ExtY_ex_bool_T;

ターゲット boolean データ型を含むコードの生成

  1. Simulink.AliasType オブジェクトを int32 の基本データ型で定義します。生成されたコードに表示する置換名を使用して、オブジェクトに名前を付けます。

    mybool = Simulink.AliasType;
    mybool.BaseType = 'int32';

  2. [コンフィギュレーション パラメーター] ダイアログ ボックスで、boolean データ型の [置換名] フィールドを mybool として指定します。

生成されたファイル rtwtypes.h を表示します。コードは、typedef ステートメントを作成することで、識別子 mybool をターゲット ハードウェアのネイティブ整数型にマッピングします。

/* Generic type definitions ... */
...
typedef int boolean_T;
 ...
/* Define Simulink Coder replacement data types. */
typedef boolean_T mybool;    /* User defined replacement datatype for boolean_T */

生成されたファイル ex_bool.c を表示します。コードは、mybool 型を使用する boolean 変数を宣言します。

  /* External inputs (root inport signals with auto storage) */
typedef struct {
  real_T In1;                          /* '<Root>/In1' */
  real_T In2;                          /* '<Root>/In2' */
  mybool In3;                          /* '<Root>/In3' */
  mybool In4;                          /* '<Root>/In4' */
  real_T In5;                          /* '<Root>/In5' */
} ExtU_ex_bool_T;

/* External outputs (root outports fed by signals with auto storage) */
typedef struct {
  mybool Out1;                         /* '<Root>/Out1' */
  mybool Out2;                         /* '<Root>/Out2' */
  real_T Out3;                         /* '<Root>/Out3' */
} ExtY_ex_bool_T;

参考

トピック