exponenta event banner

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

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

  • int8

  • uint8

  • intn

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

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

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

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

Просмотр созданного файла rtwtypes.h. 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. В диалоговом окне «Параметры конфигурации» укажите поле «Имя замены» для типа данных. 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;

См. также

Связанные темы