boolean
с определенным целочисленным типом данныхВ зависимости от архитектуры процессора, который использует ваше производственное оборудование, можно улучшить скорость выполнения сгенерированного кода. Выберите определенный целочисленный тип данных для встроенного типа boolean
. Используя замену типа данных, в сгенерированном коде можно заменить boolean
встроенный тип данных с одним из этих целочисленных типов:
int8
uint8
int
n
Чтобы совпадать с целочисленным размером слова для производственного оборудования, замените
с 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
Тип данныхЗадайте Simulink.AliasType
объект с базовым типом int32
. Назовите объект с помощью заменяющего имени, что вы хотите появиться в сгенерированном коде.
mybool = Simulink.AliasType;
mybool.BaseType = 'int32';
В диалоговом окне Configuration Parameters задайте поле 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
Cboolean
переменные, которые используют тип 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;