Код, который вы можете заменить из моделей 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 on integer overflow.

2 Только при использовании с блоком MATLAB Function.

3 Поддерживает метод CORDIC приближения.

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

Математические функции - поддержка 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 function вызовет резервирование критического раздела кода.

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

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

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

ФункцияКлюч
Mutex DestroyRTW_MUTEX_DESTROY
Mutex InitRTW_MUTEX_INIT
Блокировка МьютексаRTW_MUTEX_LOCK
Разблокировка МьютексаRTW_MUTEX_UNLOCK
Семафор УничтожитьRTW_SEM_DESTROY
Semaphore InitRTW_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Целое число
Фиксированная точка
Смешанный
Скаляр
Вектор
Матрица4
Реальный
Сдвиньте правую арифметику (>>)5RTW_OP_SRA
Целое число
Фиксированная точка
Смешанный
Скаляр
Вектор
Матрица4
Реальный
Сдвиньте правую логическую (>>)RTW_OP_SRL Целое число
Фиксированная точка
Смешанный
Скаляр
Вектор
Матрица4
Реальный
Поэлементное матричное умножение (.*)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_
ЧЕМ
Целое число
Плавающая точка
Фиксированная точка
Смешанный
Скаляр
Вектор
Матрица
Реальный
Комплекс
Больше или равно (>=)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 Требует скалярных, реальных или типов данных с фиксированной точкой с нулевым смещением; выходной тип операции умножения для размещения всех возможных выходных значений; shift operand является беззнаковым целым числом; и уклон сети равен 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).

Похожие темы