Код можно заменить из моделей Simulink

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

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

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

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

ФункцияПоддержка типов данныхСкаляр, вектор, матричная поддержкаДействительная, комплексная поддержка
abs 1Целое число
Плавающая точка
Фиксированная точка
Скаляр
Вектор
Матрица
Действительный
acosПлавающая точкаСкалярДействительный
Комплексный вход/комплексный выход
Действительный вход/комплексный выход
acosd 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
acoshПлавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплексный вход/комплексный выход
Действительный вход/комплексный выход
acot 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
acotd 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
acoth 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
acsc 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
acscd 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
acsch 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
asec 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
asecd 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
asech 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
asinПлавающая точкаСкалярДействительный
Комплексный вход/комплексный выход
Действительный вход/комплексный выход
asind 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
asinhПлавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплексный вход/комплексный выход
Действительный вход/комплексный выход
atanПлавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплексный вход/комплексный выход
Действительный вход/комплексный выход
atan2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
atan2d 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
atand 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
atanhПлавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплексный вход/комплексный выход
Действительный вход/комплексный выход
ceil
  • С плавающей точкой

  • Скаляр

  • С плавающей точкой

  • Скаляр

  • С плавающей точкой

  • Скаляр

cos 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплексный вход/комплексный выход
Действительный вход/комплексный выход
cosd 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
coshПлавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплексный вход/комплексный выход
Действительный вход/комплексный выход
cot 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
cotd 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
coth 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
csc 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
cscd 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
csch 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
exactrSqrtЦелое число
Плавающая точка
СкалярДействительный
expПлавающая точкаСкаляр
Вектор
Матрица
Действительный
fixПлавающая точкаСкалярДействительный
floor
  • С плавающей точкой

  • Скаляр

  • С плавающей точкой

  • Скаляр

  • С плавающей точкой

  • Скаляр

fmod 4Плавающая точкаСкалярДействительный
frexpПлавающая точкаСкалярДействительный
hypotПлавающая точкаСкаляр
Вектор
Матрица
Действительный
ldexpПлавающая точкаСкалярДействительный
lnПлавающая точкаСкалярДействительный
logПлавающая точкаСкаляр
Вектор
Матрица
Действительный
log10Плавающая точкаСкаляр
Вектор
Матрица
Действительный
log2 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
maxЦелое число
Плавающая точка
Фиксированная точка
СкалярДействительный
minЦелое число
Плавающая точка
Фиксированная точка
СкалярДействительный
modЦелое число
Плавающая точка
Скаляр
Вектор
Матрица
Действительный
powПлавающая точкаСкаляр
Вектор
Матрица
Действительный
remПлавающая точкаСкаляр
Вектор
Матрица
Действительный
roundПлавающая точкаСкалярДействительный
rSqrtЦелое число
Плавающая точка
Скаляр
Вектор
Матрица
Действительный
saturateЦелое число
Плавающая точка
Фиксированная точка
Скаляр
Вектор
Матрица
Действительный
sec 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
secd 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
sech 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
signЦелое число
Плавающая точка
Фиксированная точка
Скаляр
Вектор
Матрица
Действительный
signPowПлавающая точкаСкаляр
Вектор
Матрица
Действительный
sin 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплексный вход/комплексный выход
Действительный вход/комплексный выход
sincos 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплексный вход/комплексный выход
Действительный вход/комплексный выход
sind 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
sinhПлавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплексный вход/комплексный выход
Действительный вход/комплексный выход
sqrtЦелое число
Плавающая точка
Фиксированная точка
Скаляр
Вектор
Матрица
Действительный
tanПлавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплексный вход/комплексный выход
Действительный вход/комплексный выход
tand 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
tanhПлавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплексный вход/комплексный выход
Действительный вход/комплексный выход

1 Переносятся на целочисленном переполнении только. Очистите параметры блоков Saturate on integer overflow.

2 Только, когда используется с блоком MATLAB function.

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

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

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

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

ФункцияПоддержка типов данныхСкаляр, вектор, матричная поддержкаДействительная, комплексная поддержка
abs 1Целое число
Плавающая точка
СкалярДействительный
acos 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
Комплексный вход/комплексный выход
Действительный вход/комплексный выход
acosd 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
acot 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
acotd 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
acoth 3,5Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
acsc 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
acscd 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
acsch 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
asec 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
asecd 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
asech 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
asin 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
Комплексный вход/комплексный выход
Действительный вход/комплексный выход
asind 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
atan2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
Комплексный вход/комплексный выход
Действительный вход/комплексный выход
atan2 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
atan2d 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
atand 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
ceil
  • С плавающей точкой

  • Скаляр

  • С плавающей точкой

  • Скаляр

  • С плавающей точкой

  • Скаляр

cos 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
Комплексный вход/комплексный выход
Действительный вход/комплексный выход
cosd 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
cosh 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
Комплексный вход/комплексный выход
Действительный вход/комплексный выход
cot 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
cotd 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
coth 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
csc 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
cscd 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
csch 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
expПлавающая точкаСкалярДействительный
floor
  • С плавающей точкой

  • Скаляр

  • С плавающей точкой

  • Скаляр

  • С плавающей точкой

  • Скаляр

fmodПлавающая точкаСкалярДействительный
hypot 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
ldexpПлавающая точкаСкалярДействительный
log2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
log10 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
log2 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
maxЦелое число
Плавающая точка
СкалярДействительный
minЦелое число
Плавающая точка
СкалярДействительный
powПлавающая точкаСкалярДействительный
sec 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
secd 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
sech 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
sin 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
Комплексный вход/комплексный выход
Действительный вход/комплексный выход
sind 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
sinh 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
Комплексный вход/комплексный выход
Действительный вход/комплексный выход
sqrtПлавающая точкаСкалярДействительный
tan 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
Комплексный вход/комплексный выход
Действительный вход/комплексный выход
tand 3Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
tanh 2Плавающая точкаСкаляр
Вектор
Матрица
Действительный
Комплекс
Комплексный вход/комплексный выход
Действительный вход/комплексный выход

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


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

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

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

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

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

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

Неличные функции

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

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

Взаимное исключение и семафорные функции

Взаимное исключение и семафор функционируют доступ к управлению к ресурсам, совместно использованным несколькими процессами в многожильных целевых окружениях. MathWorks® обеспечивает заменяющие библиотеки кода, которые поддерживают взаимное исключение и семафорную замену для блоков Перехода Перехода и Задачи Уровня на Windows®, Linux®, Mac и платформах VxWorks®.

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

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

  • В образцовом коде шага:

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

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

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

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

ФункцияКлюч
Взаимное исключение уничтожаетRTW_MUTEX_DESTROY
Взаимное исключение InitRTW_MUTEX_INIT
Взаимоисключающая блокировкаRTW_MUTEX_LOCK
Взаимное исключение разблокировалоRTW_MUTEX_UNLOCK
Семафор уничтожаетRTW_SEM_DESTROY
Семафорный 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Целое число
Плавание point3
Фиксированная точка
Смешанный
Скаляр
Вектор
Матрица
Действительный
Комплекс
Переключите уехал (<<)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Целое число
Плавающая точка
Фиксированная точка
Смешанный
Вектор
Матрица
Действительный
Комплекс
Умножение с transposition2RTW_OP_TRMULЦелое число
Плавающая точка
Фиксированная точка
Смешанный
Вектор
Матрица
Действительный
Комплекс
Умножение с Эрмитовым transposition2RTW_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 Требует скаляра, действительного, или типы данных с фиксированной точкой с нулевым смещением; выведите тип операции умножения, чтобы разместить все возможные выходные значения; операнд сдвига является беззнаковым целым; и сетевой наклон равен 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).

Похожие темы