Замените boolean с определенным целым типом данных

В зависимости от архитектуры процессора, который использует ваше производственное оборудование, можно улучшить скорость выполнения сгенерированного кода. Выберите определенный целочисленный тип данных для встроенного типа boolean. Используя замену типа данных, в сгенерированном коде можно заменить boolean встроенный тип данных с одним из следующих целых типов:

  • int8

  • uint8

  • int n

Чтобы соответствовать целочисленному размеру слова для производственного оборудования, замените n с 8, 16, или 32 .

Пример модели

Модель ex_bool содержит два блока, которые выводят boolean значения и два блока, которые берут boolean значения как входы. В этом примере показано, как заменить тип данных boolean с целочисленным типом данных int32 в коде, сгенерированном для 32-битного аппаратного целевого устройства.

Сгенерируйте код, который содержит boolean по умолчанию Тип данных

Просмотрите сгенерированный файл rtwtypes.h. The typdef операторы содержат общее определение типа 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 переменные при помощи типа boolean_T.

/* 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. В диалоговом окне Параметров конфигурации задайте поле Replacement Name для типа данных boolean как mybool.

Просмотрите сгенерированный файл rtwtypes.h. Код сопоставляет идентификатор mybool к собственному целому типу целевого компьютера путем создания typedef операторы.

/* 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. Код объявляет boolean переменные, которые используют тип mybool.

  /* 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;

См. также

Похожие темы