Код, что замены генератора кода зависят от заменяющей библиотеки кода (CRL), которую вы используете. По умолчанию генератор кода не применяет заменяющую библиотеку кода. Ваш выбор библиотек зависит от лицензирования продукта и есть ли у вас доступ к пользовательским библиотекам.
Для получения информации о том, как исследовать функции и операторы, которые поддерживает заменяющая библиотека кода, смотрите, Выбирают лицензию Code Replacement Library и хотят разработать заменяющую библиотеку пользовательского кода, видеть Заменяющую Индивидуальную настройку Кода.
При генерации кода 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 3 | Плавающая точка | Скаляр Вектор Матрица | Действительный |
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® поддержка только. |
При генерации кода 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 | Плавающая точка | Скаляр Вектор Матрица | Действительный Комплекс |
atan 2 | Плавающая точка | Скаляр Вектор Матрица | Действительный Комплекс Комплексный вход/комплексный выход Действительный вход/комплексный выход |
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 | Плавающая точка | Скаляр | Действительный |
log 2 | Плавающая точка | Скаляр Вектор Матрица | Действительный Комплекс |
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 Для моделей включающие векторы или матрицы, генератор кода заменяет только функции, закодированные в MATLAB® язык действия. 3 Генератор кода заменяет только функции, закодированные на языке действия MATLAB. 4Embedded Coder® не поддерживает использование заменяющих библиотек кода для порожденных машиной данных. |
В зависимости от заменяющих библиотек кода, доступных в вашей среде разработки, можно сконфигурировать генератор кода, чтобы заменить экземпляры следующих функций памяти со специализированными реализациями.
Функция | Поддержка типов данных | Скаляр, вектор, матричная поддержка | Действительная, комплексная поддержка |
---|---|---|---|
memcmp | Пустой указатель (void* ) | Скаляр Вектор Матрица | Действительный Комплекс |
memcpy | Пустой указатель (void* ) | Скаляр Вектор Матрица | Действительный Комплекс |
memset | Пустой указатель (void* ) | Скаляр Вектор Матрица | Действительный Комплекс |
memset2zero | Пустой указатель (void* ) | Скаляр Вектор Матрица | Действительный Комплекс |
Некоторые целевые процессоры предоставляют оптимизированные функции памяти аппарата, чтобы обнулить. Используйте заменяющий интерфейс программирования библиотеки кода, чтобы заменить memset2zero
функция с более эффективными целевыми функциями.
В зависимости от заменяющих библиотек кода, доступных в вашей среде разработки, можно сконфигурировать генератор кода, чтобы заменить экземпляры следующих неличных функций со специализированными реализациями.
Функция | Поддержка типов данных | Скаляр, вектор, матричная поддержка | Действительная, комплексная поддержка |
---|---|---|---|
getInf | Плавающая точка | Скаляр | Действительный |
getMinusInf | Плавающая точка | Скаляр | Действительный |
getNaN | Плавающая точка | Скаляр | Действительный |
rtIsInf | Плавающая точка | Скаляр | Действительный Комплекс |
rtIsNaN | Плавающая точка | Скаляр | Действительный Комплекс |
Взаимное исключение и семафор функционируют доступ к управлению к ресурсам, совместно использованным несколькими процессами в многожильных целевых окружениях. MathWorks® обеспечивает заменяющие библиотеки кода, которые поддерживают взаимное исключение и семафорную замену для Rate Transition и блоков Task Transition на Windows®, Linux®, Mac и VxWorks® платформы.
Сгенерированное взаимное исключение и семафорный код обычно состоят из:
В коде инициализации модели, вызов функции инициализации создать взаимное исключение или семафор, чтобы управлять записью в критический раздел кода.
В коде шага модели:
Прежде чем код для передачи данных между задачами вводит критический раздел, взаимоисключающую блокировку или семафорные вызовы функции ожидания зарезервировать критический раздел кода.
После того, как код для передачи данных между задачами закончил выполнять критический раздел, взаимное исключение разблокировали или семафорные вызовы функции сообщения выпустить критический раздел кода.
В коде завершения модели дополнительное уничтожает вызов функции явным образом удалить взаимное исключение или семафор.
В зависимости от заменяющих библиотек кода, доступных в вашей среде разработки, можно сконфигурировать генератор кода, чтобы заменить экземпляры следующего взаимного исключения и семафорных функций со специализированными реализациями.
Функция | Ключ |
---|---|
Взаимное исключение уничтожает | RTW_MUTEX_DESTROY |
Взаимное исключение Init | RTW_MUTEX_INIT |
Взаимоисключающая блокировка | RTW_MUTEX_LOCK |
Взаимное исключение разблокировало | RTW_MUTEX_UNLOCK |
Семафор уничтожает | RTW_SEM_DESTROY |
Семафорный Init | RTW_SEM_INIT |
Семафорное сообщение | RTW_SEM_POST |
Семафорное ожидание | RTW_SEM_WAIT |
При генерации кода C/C++ из модели Simulink, в зависимости от заменяющих библиотек кода, доступных в среде разработки, можно сконфигурировать генератор кода, чтобы заменить экземпляры следующих операторов со специализированными реализациями.
Смешанная поддержка типов данных указывает, что можно задать различные типы данных для различных входных параметров.
Оператор | Ключ | Поддержка типов данных | Скаляр, вектор, матричная поддержка | Действительная, комплексная поддержка |
---|---|---|---|---|
Сложение (+ )1 | RTW_OP_ADD | Целое число Плавающая точка Фиксированная точка Смешанный | Скаляр Вектор Матрица | Действительный Комплекс |
Вычитание (- )1 | RTW_OP_MINUS | Целое число Плавающая точка Фиксированная точка Смешанный | Скаляр Вектор Матрица | Действительный Комплекс |
Умножение (* )2 | RTW_OP_MUL | Целое число Плавающая точка Фиксированная точка Смешанный | Скаляр Вектор Матрица | Действительный Комплекс |
Деление (/ ) | RTW_OP_DIV | Целое число Плавающая точка Фиксированная точка Смешанный | Скаляр | Действительный Комплекс |
Преобразование типа данных (брошено) | RTW_OP_CAST | Целое число Плавающая точка3 Фиксированная точка Смешанный | Скаляр Вектор Матрица | Действительный Комплекс |
Сдвиг оставлен (<< ) | RTW_OP_SL | Целое число Фиксированная точка Смешанный | Скаляр Вектор Матрица4 | Действительный |
Переключите правильную арифметику (>> )5 | RTW_OP_SRA | Целое число Фиксированная точка Смешанный | Скаляр Вектор Матрица4 | Действительный |
Логическое право сдвига (>> ) | RTW_OP_SRL | Целое число Фиксированная точка Смешанный | Скаляр Вектор Матрица4 | Действительный |
Поэлементное умножение матриц (.* )6 | RTW_OP_ELEM_MUL | Целое число Плавающая точка Фиксированная точка Смешанный | Вектор Матрица | Действительный Комплекс |
Матричное правое деление (/ ) | RTW_OP_RDIV | Целое число Плавающая точка Фиксированная точка Смешанный | Вектор Матрица | Действительный Комплекс |
Матричное левое деление (\ ) | RTW_OP_LDIV | Целое число Плавающая точка Фиксированная точка Смешанный | Вектор Матрица | Действительный Комплекс |
Матричная инверсия (inv ) | RTW_OP_INV | Целое число Плавающая точка Фиксированная точка Смешанный | Вектор Матрица | Действительный Комплекс |
Комплексное спряжение | RTW_OP_CONJUGATE | Целое число Плавающая точка Фиксированная точка Смешанный | Скаляр Вектор Матрица | Действительный Комплекс |
Перемещение (.' ) | RTW_OP_TRANS | Целое число Плавающая точка Фиксированная точка Смешанный | Вектор Матрица | Действительный Комплекс |
Эрмитово (комплексно-сопряженное) перемещение (' ) | RTW_OP_HERMITIAN | Целое число Плавающая точка Фиксированная точка Смешанный | Вектор Матрица | Действительный Комплекс |
Умножение с перемещением2 | RTW_OP_TRMUL | Целое число Плавающая точка Фиксированная точка Смешанный | Вектор Матрица | Действительный Комплекс |
Умножение с Эрмитовым перемещением2 | RTW_OP_HMMUL | Целое число Плавающая точка Фиксированная точка Смешанный | Вектор Матрица | Действительный Комплекс |
Умножение сопровождается арифметикой права сдвига (u1*u2>>u3 )7 | RTW_OP_MUL_SRA | Целое число Фиксированная точка | Скаляр | Действительный |
Умножение сопровождается делением (u1*u2/u3 )8 | RTW_OP_MULDIV | Целое число Фиксированная точка | Скаляр | Действительный |
Больше, чем (> ) | RTW_OP_GREATER_ | Целое число Плавающая точка Фиксированная точка Смешанный | Скаляр Вектор Матрица | Действительный Комплекс |
Больше, чем или равный (>= ) | RTW_OP_GREATER_ | Целое число Плавающая точка Фиксированная точка Смешанный | Скаляр Вектор Матрица | Действительный Комплекс |
Меньше, чем (< ) | RTW_OP_LESS_THAN | Целое число Плавающая точка Фиксированная точка Смешанный | Скаляр Вектор Матрица | Действительный Комплекс |
Меньше чем или равный (<= ) | RTW_OP_LESS_THAN_ | Целое число Плавающая точка Фиксированная точка Смешанный | Скаляр Вектор Матрица | Действительный Комплекс |
Равный (== ) | RTW_OP_EQUAL | Целое число Плавающая точка Фиксированная точка Смешанный | Скаляр Вектор Матрица | Действительный Комплекс |
Не равный (!= ) | RTW_OP_NOT_EQUAL | Целое число Плавающая точка Фиксированная точка Смешанный | Скаляр Вектор Матрица | Действительный Комплекс |
1 Смотрите Замену Оператора сложения и Оператора вычитания Кода для получения дополнительной информации чтобы рассмотреть при определении отображений для замен сложения и вычитания кода. 2 Может сопоставить с функциями умножения базовых подпрограмм линейной алгебры (BLAS). 3 Масштабированная плавающая точка не поддерживается. 4 Замена оператора сдвига с матричными данными поддерживается для значений сдвига, которые вы задаете с входным портом. Замена не поддерживается для значений сдвига, которые вы задаете в диалоговом окне параметров блоков. 5 Генератор кода преобразует некоторые права арифметического сдвига на права логического сдвига. Чтобы избежать неожиданных результатов, при создании заменяющей библиотеки кода, которая включает запись таблицы для реализации права арифметического сдвига, также включают запись для реализации права логического сдвига. 6 Используйте умножение ( 7 Требует скаляра, действительного, или типы данных с фиксированной точкой с нулевым смещением; выходной тип операции умножения, чтобы вместить все возможные выходные значения; операнд сдвига является беззнаковым целым; и сетевой наклон равен 1 ( 8 Требует скаляра, действительного, или типы данных с фиксированной точкой с нулевым смещением; выходной тип операции умножения, чтобы вместить все возможные выходные значения; и сетевой наклон равен 1 ( |