exponenta event banner

Код, который можно заменить моделями Simulink

Код, заменяемый генератором кода, зависит от используемой библиотеки замены кода (CRL). По умолчанию генератор кода не применяет библиотеку замены кода. Выбор библиотек зависит от лицензирования продукта и наличия доступа к пользовательским библиотекам.

Сведения о том, как исследовать функции и операторы, поддерживаемые библиотекой замены кода, см. в разделе Выбор лицензии библиотеки замены кода и необходимость разработки пользовательской библиотеки замены кода см. в разделе Настройка замены кода.

Математические функции - поддержка Simulink

При создании кода C/C + + из модели Simulink ® в зависимости от доступных в среде разработки библиотек замены кода можно настроить генератор кода для замены экземпляров следующих математических функций реализациями, специфичными для приложения.

ФункцияПоддержка типов данныхПоддержка скаляра, вектора, матрицыРеальная, сложная поддержка
abs1Целое число
Плавающая точка
Фиксированная точка
Скаляр
Вектор
Матрица
Реальный
acosПлавающая точкаСкалярРеальный
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные
acosd2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
acoshПлавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные
acot2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
acotd2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
acoth2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
acsc2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
acscd2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
acsch2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
asec2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
asecd2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
asech2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
asinПлавающая точкаСкалярРеальный
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные
asind2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
asinhПлавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные
atanПлавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные
atan2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
atan2d2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
atand2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
atanhПлавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные
ceilПлавающая точка
Скаляр
Плавающая точка
Скаляр
Плавающая точка
Скаляр
cos3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные
cosd2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
coshПлавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные
cot2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
cotd2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
coth2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
csc2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
cscd2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
csch2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
exactrSqrtЦелое число
Плавающая точка
СкалярРеальный
expПлавающая точкаСкаляр
Вектор
Матрица
Реальный
fixПлавающая точкаСкалярРеальный
floorПлавающая точка
Скаляр
Плавающая точка
Скаляр
Плавающая точка
Скаляр
fmod4Плавающая точкаСкалярРеальный
frexpПлавающая точкаСкалярРеальный
hypotПлавающая точкаСкаляр
Вектор
Матрица
Реальный
ldexpПлавающая точкаСкалярРеальный
lnПлавающая точкаСкалярРеальный
logПлавающая точкаСкаляр
Вектор
Матрица
Реальный
log10Плавающая точкаСкаляр
Вектор
Матрица
Реальный
log22Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
maxЦелое число
Плавающая точка
Фиксированная точка
СкалярРеальный
minЦелое число
Плавающая точка
Фиксированная точка
СкалярРеальный
modЦелое число
Плавающая точка
Скаляр
Вектор
Матрица
Реальный
powПлавающая точкаСкаляр
Вектор
Матрица
Реальный
remПлавающая точкаСкаляр
Вектор
Матрица
Реальный
roundПлавающая точкаСкалярРеальный
rSqrtЦелое число
Плавающая точка
Скаляр
Вектор
Матрица
Реальный
saturateЦелое число
Плавающая точка
Фиксированная точка
Скаляр
Вектор
Матрица
Реальный
sec2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
secd2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
sech2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
signЦелое число
Плавающая точка
Фиксированная точка
Скаляр
Вектор
Матрица
Реальный
signPowПлавающая точкаСкаляр
Вектор
Матрица
Реальный
sin3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные
sincos3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные
sind2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
sinhПлавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные
sqrtЦелое число
Плавающая точка
Фиксированная точка
Скаляр
Вектор
Матрица
Реальный
tanПлавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные
tand2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
tanhПлавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные

1 Перенос только при переполнении целого числа. Очистить параметр блока Saturate при переполнении целого числа.

2 Только при использовании с функциональным блоком MATLAB.

3 Поддерживает метод аппроксимации CORDIC.

4 Только поддержка Stateflow ®.

Математические функции - поддержка потока состояний

При создании кода C/C + + из диаграмм Stateflow, в зависимости от доступных в среде разработки библиотек замены кода, можно настроить генератор кода для замены экземпляров следующих математических функций реализациями, специфичными для приложения.

ФункцияПоддержка типов данныхПоддержка скаляра, вектора, матрицыРеальная, сложная поддержка
abs1Целое число
Плавающая точка
СкалярРеальный
acos2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные
acosd3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
acot3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
acotd3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
acoth3,5Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
acsc3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
acscd3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
acsch3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
asec3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
asecd3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
asech3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
asin2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные
asind3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
atan2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные
atan22Плавающая точкаСкаляр
Вектор
Матрица
Реальный
atan2d3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
atand3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
ceilПлавающая точка
Скаляр
Плавающая точка
Скаляр
Плавающая точка
Скаляр
cos3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные
cosd3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
cosh2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные
cot3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
cotd3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
coth3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
csc3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
cscd3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
csch3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
expПлавающая точкаСкалярРеальный
floorПлавающая точка
Скаляр
Плавающая точка
Скаляр
Плавающая точка
Скаляр
fmodПлавающая точкаСкалярРеальный
hypot3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
ldexpПлавающая точкаСкалярРеальный
log2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
log102Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
log23Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
maxЦелое число
Плавающая точка
СкалярРеальный
minЦелое число
Плавающая точка
СкалярРеальный
powПлавающая точкаСкалярРеальный
sec3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
secd3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
sech3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
sin2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные
sind3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
sinh2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные
sqrtПлавающая точкаСкалярРеальный
tan2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные
tand3Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
tanh2Плавающая точкаСкаляр
Вектор
Матрица
Реальный
Комплекс
Комплексный вход/комплексный выход
Реальные входные/комплексные выходные данные

1 Перенос только при переполнении целого числа.


2 Для моделей, включающих векторы или матрицы, генератор кода заменяет только функции, кодированные на языке действий MATLAB ®.

3 Генератор кода заменяет только функции, закодированные на языке действий MATLAB.

4Embedded Coder ® не поддерживает использование библиотек замены кода для данных, не связанных с компьютером .

Функции памяти

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

ФункцияПоддержка типов данныхПоддержка скаляра, вектора, матрицыРеальная, сложная поддержка
memcmpУказатель пустоты (void*)Скаляр
Вектор
Матрица
Реальный
Комплекс
memcpyУказатель пустоты (void*)Скаляр
Вектор
Матрица
Реальный
Комплекс
memsetУказатель пустоты (void*)Скаляр
Вектор
Матрица
Реальный
Комплекс
memset2zeroУказатель пустоты (void*)Скаляр
Вектор
Матрица
Реальный
Комплекс

Некоторые целевые процессоры обеспечивают оптимизированные функции для установки памяти на ноль. Используйте программный интерфейс библиотеки замены кода для замены memset2zero функция с более эффективными целевыми функциями.

Нефинитные функции

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

ФункцияПоддержка типов данныхПоддержка скаляра, вектора, матрицыРеальная, сложная поддержка
getInfПлавающая точкаСкалярРеальный
getMinusInfПлавающая точкаСкалярРеальный
getNaNПлавающая точкаСкалярРеальный
rtIsInfПлавающая точкаСкалярРеальный
Комплекс
rtIsNaNПлавающая точкаСкалярРеальный
Комплекс

Функции мьютекса и семафора

Функции Mutex и semaphore управляют доступом к ресурсам, совместно используемым несколькими процессами в многоядерных целевых средах. MathWorks ® предоставляет библиотеки замены кода, которые поддерживают замену мьютекса и семафора для блоков Rate Transition и Task Transition на платформах Windows ®, Linux ®, Mac и VxWorks ®.

Сгенерированный код мьютекса и семафора обычно состоит из:

  • В коде инициализации модели вызов функции инициализации для создания мьютекса или семафора для управления входом в критический раздел кода.

  • В коде шага модели:

    • Прежде чем код для передачи данных между задачами войдет в критический раздел, функция mutex lock или semaphore wait вызывает резервирование критического раздела кода.

    • После того, как код для передачи данных между задачами завершит выполнение критического раздела, mutex unlock или semaphore post function вызывает, чтобы освободить критический раздел кода.

  • В коде завершения модели необязательный вызов функции уничтожения для явного удаления мьютекса или семафора.

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

ФункцияКлюч
Мутекс уничтожитьRTW_MUTEX_DESTROY
Мутекс-ИнитRTW_MUTEX_INIT
Блокировка мьютексаRTW_MUTEX_LOCK
Разблокировка MutexRTW_MUTEX_UNLOCK
Семафор уничтожитьRTW_SEM_DESTROY
Семафор-ИнитRTW_SEM_INIT
Семафор ПостRTW_SEM_POST
Семафор, подождитеRTW_SEM_WAIT

Операторы

При создании кода C/C + + из модели Simulink, в зависимости от доступных в среде разработки библиотек замены кода, можно настроить генератор кода для замены экземпляров следующих операторов реализациями, специфичными для приложения.

Поддержка смешанных типов данных указывает на возможность указания различных типов данных для различных входных данных.

ОператорКлючПоддержка типов данныхПоддержка скаляра, вектора, матрицыРеальная, сложная поддержка
Дополнение (+)1RTW_OP_ADDЦелое число
Плавающая точка
Фиксированная точка
Смешанный
Скаляр
Вектор
Матрица
Реальный
Комплекс
Вычитание (-)1RTW_OP_MINUSЦелое число
Плавающая точка
Фиксированная точка
Смешанный
Скаляр
Вектор
Матрица
Реальный
Комплекс
Умножение (*)2RTW_OP_MULЦелое число
Плавающая точка
Фиксированная точка
Смешанный
Скаляр
Вектор
Матрица
Реальный
Комплекс
Дивизия (/)RTW_OP_DIVЦелое число
Плавающая точка
Фиксированная точка
Смешанный
СкалярРеальный
Комплекс
Преобразование типа данных (приведение)RTW_OP_CASTЦелое число
Плавающая точка 3
Фиксированная точка
Смешанный
Скаляр
Вектор
Матрица
Реальный
Комплекс
Сдвиг влево (<<)RTW_OP_SLЦелое число
Фиксированная точка
Смешанный
Скаляр
Вектор
Matrix4
Реальный
Сдвинуть правую арифметику (>>)5RTW_OP_SRA
Целое число
Фиксированная точка
Смешанный
Скаляр
Вектор
Matrix4
Реальный
Сдвиг справа логический (>>)RTW_OP_SRL Целое число
Фиксированная точка
Смешанный
Скаляр
Вектор
Matrix4
Реальный
Элементное умножение матрицы (.*)6RTW_OP_ELEM_MULЦелое число
Плавающая точка
Фиксированная точка
Смешанный
Вектор
Матрица
Реальный
Комплекс
Правое деление матрицы (/)RTW_OP_RDIVЦелое число
Плавающая точка
Фиксированная точка
Смешанный
Вектор
Матрица
Реальный
Комплекс
Матрица левого деления (\)RTW_OP_LDIVЦелое число
Плавающая точка
Фиксированная точка
Смешанный
Вектор
Матрица
Реальный
Комплекс
Инверсия матрицы (inv)RTW_OP_INVЦелое число
Плавающая точка
Фиксированная точка
Смешанный
Вектор
Матрица
Реальный
Комплекс
Комплексное сопряжениеRTW_OP_CONJUGATEЦелое число
Плавающая точка
Фиксированная точка
Смешанный
Скаляр
Вектор
Матрица
Реальный
Комплекс
Транспозиция (.')RTW_OP_TRANSЦелое число
Плавающая точка
Фиксированная точка
Смешанный
Вектор
Матрица
Реальный
Комплекс
Эрмитовская (комплексная сопряжённая) транспозиция (')RTW_OP_HERMITIANЦелое число
Плавающая точка
Фиксированная точка
Смешанный
Вектор
Матрица
Реальный
Комплекс
Умножение с транспозицией 2RTW_OP_TRMULЦелое число
Плавающая точка
Фиксированная точка
Смешанный
Вектор
Матрица
Реальный
Комплекс
Умножение на эрмитовскую транспозицию2RTW_OP_HMMULЦелое число
Плавающая точка
Фиксированная точка
Смешанный
Вектор
Матрица
Реальный
Комплекс
Умножение с последующим сдвигом правой арифметики (u1*u2>>u3)7RTW_OP_MUL_SRAЦелое число
Фиксированная точка
СкалярРеальный
Умножение с последующим делением (u1*u2/u3)8RTW_OP_MULDIVЦелое число
Фиксированная точка
СкалярРеальный
Больше (>)RTW_OP_GREATER_
THAN
Целое число
Плавающая точка
Фиксированная точка
Смешанный
Скаляр
Вектор
Матрица
Реальный
Комплекс
Больше или равно (>=)RTW_OP_GREATER_
THAN_OR_EQUAL
Целое число
Плавающая точка
Фиксированная точка
Смешанный
Скаляр
Вектор
Матрица
Реальный
Комплекс
Меньше (<)RTW_OP_LESS_THANЦелое число
Плавающая точка
Фиксированная точка
Смешанный
Скаляр
Вектор
Матрица
Реальный
Комплекс
Меньше или равно (<=)RTW_OP_LESS_THAN_
OR_EQUAL
Целое число
Плавающая точка
Фиксированная точка
Смешанный
Скаляр
Вектор
Матрица
Реальный
Комплекс
Равно (==)RTW_OP_EQUALЦелое число
Плавающая точка
Фиксированная точка
Смешанный
Скаляр
Вектор
Матрица
Реальный
Комплекс
Не равно (!=)RTW_OP_NOT_EQUALЦелое число
Плавающая точка
Фиксированная точка
Смешанный
Скаляр
Вектор
Матрица
Реальный
Комплекс

1 См. раздел Замена кода оператора сложения и вычитания для получения дополнительной информации при определении сопоставлений для замены кода сложения и вычитания.

2 Можно сопоставить функции умножения Основная линейная алгебра подпрограмма (BLAS).

3 Масштабированная плавающая точка не поддерживается.

4 Замена оператора сдвига матричными данными поддерживается для значений сдвига, заданных входным портом. Замена не поддерживается для значений сдвига, заданных в диалоговом окне параметров блока.

5 Генератор кода преобразует некоторые права арифметического сдвига в права логического сдвига. Чтобы избежать неожиданных результатов, при создании библиотеки замены кода, которая включает запись таблицы для реализации права арифметического сдвига, также включает запись для реализации права логического сдвига.

6 Используйте умножение (*) оператор (RTW_OP_MUL) для скалярного умножения.

7 Требует скалярных, вещественных или фиксированных типов данных с нулевым смещением; тип вывода операции умножения для размещения всех возможных выходных значений; сдвиговый операнд - целое число без знака; а чистый уклон равен 1 (U1_slope * U2_slope == Mul_output_slope и Mul_output_slope == output_slope_of_shift_operation).

8 Требует скалярных, вещественных или фиксированных типов данных с нулевым смещением; тип вывода операции умножения для размещения всех возможных выходных значений; а чистый уклон равен 1 (U1_slope * U2_slope == Mul_output_slope == U3_slope * Div_output_slope).

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