В этом примере показано, как заменить сгенерированный код, пользуясь заменяющей библиотекой кода. Замена кода является методом, который можно использовать, чтобы изменить код, который генератор кода производит для функций и операторов, чтобы удовлетворить требования кода приложения. Например, можно заменить сгенерированный код, чтобы удовлетворить требования, такие как:
Оптимизация для определенной среды выполнения, включая, но не ограниченный, определенного целевого компьютера.
Интеграция с кодом существующего приложения.
Податливость со стандартом, таким как AUTOSAR.
Модификация поведения кода, такого как включение или отключение неличной или встроенной поддержки.
Приложение - или специфичные для проекта требования кода, такие как устранение math.h
, системные заголовочные файлы или вызовы memcpy
или memset
, или использование BLAS.
1. Убедитесь, что MATLAB®, Simulink®, Simulink Coder™ и компилятор C установлены в вашей системе. Некоторые заменяющие библиотеки кода, доступные в вашей среде разработки, могут потребовать Embedded Coder®.
Чтобы установить продукты MathWorks®, см. документацию по установке MATLAB. Если вы установили MATLAB и хотите видеть, который другие Продукты Mathworks установлены в Командном окне, введите ver
.
2. Идентифицируйте существующую модель Simulink или создайте модель, для которой вы хотите, чтобы генератор кода заменил код.
По умолчанию генератор кода не применяет заменяющую библиотеку кода. Можно выбрать из библиотек, которые MathWorks® обеспечивает и что вы создаете и указываете при помощи продукта Embedded Coder®. Список доступных библиотек зависит от:
Установленные пакеты поддержки.
Системный конечный файл, язык, стандартная математическая библиотека и настройка поставщика устройства.
Создали ли вы и указали библиотеки, с помощью продукта Embedded Coder®.
Библиотеки, которые включают расширения GNU99, предназначаются для использования с компилятором GCC. Если вы пользуетесь одной из тех библиотек с другим компилятором, сгенерированный код не может скомпилировать.
В зависимости от лицензий на продукты, которые вы имеете, другие библиотеки могут быть доступными. Если у вас есть лицензия Embedded Coder, можно просмотреть и выбрать из других библиотек, и можно создать заменяющие библиотеки пользовательского кода.
1. Сконфигурируйте генератор кода, чтобы применить заменяющую библиотеку кода во время генерации кода для модели. Выполнить одно из следующих действий:
В диалоговом окне Configuration Parameters, на Генерации кода> Интерфейсная панель, выбирают библиотеку для заменяющего параметра библиотеки Кода.
Установите CodeReplacementLibrary
параметр в командной строке или программно.
2. Сконфигурируйте генератор кода, чтобы произвести код только (не, создают исполняемую программу), таким образом, можно проверить замены кода прежде, чем создать исполняемую программу. Выполнить одно из следующих действий:
В диалоговом окне Configuration Parameters, на панели Генерации кода, выбирают код Generate только.
Установите GenCodeOnly
параметр в командной строке или программно.
Если у вас есть лицензия Embedded Coder, можно сконфигурировать генератор кода, чтобы включать заменяющий раздел кода в отчет генерации кода. Дополнительная информация может помочь вам проверить замены кода.
1. Сконфигурируйте генератор кода, чтобы сгенерировать отчет. В диалоговом окне Configuration Parameters, на Генерации кода> панель Отчета, выбирают отчет генерации кода Create. Считайте наличие отчета открытым автоматически. Выберите отчет Open автоматически.
2. Включайте заменяющий раздел кода в отчет. Выберите Summarize, который блокирует инициированные замены кода.
Сгенерируйте код C/C++ из модели и, если вы сконфигурировали генератор кода соответственно, отчет генерации кода. Например, в окне модели, нажмите Ctrl+B.
Генератор кода производит код и отображает отчет.
Проверьте замены кода путем исследования сгенерированного кода. Возможно, что замена кода ведет себя по-другому, чем вы ожидаете. Например, типы данных, которые вы наблюдаете во входе генератора кода, не могут совпадать с тем, что генератор кода использует в качестве промежуточных типов данных во время операции.