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
Задайте объект 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.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;