Рассмотрите, как ваши цели приложения, такие как КПД, трассируемость, и безопасность, сопоставляют с параметрами генерации кода в наборе конфигурации модели. Параметры, которые вы устанавливаете в диалоговом окне Configuration Parameters, задают поведение модели в симуляции и кода, сгенерированного для модели.
Прежде, чем сгенерировать код, или как часть процесса генерации кода, можно использовать Советника Генерации кода, чтобы рассмотреть модель. Когда вы принимаете решение рассмотреть модель прежде, чем сгенерировать код, вы задаете, какая модель, подсистема, или ссылаемый моделирует Советника Генерации кода отзывы. Когда вы принимаете решение рассмотреть модель как часть процесса генерации кода, Советник Генерации кода рассматривает целую систему. Советник Генерации кода использует информацию, представленную в Рекомендуемых Сводных данных Настроек для Параметров конфигурации Модели, чтобы определить значения параметров, которые достигают ваших целей. Когда существует конфликт между несколькими целями, более высокая приоритетная цель более приоритетна.
Установка целей генерации кода, и затем выполнение Советника Генерации кода предоставляют информацию о том, как достигнуть целей генерации кода для вашей модели. Советник Генерации кода не изменяет сгенерированный код. Можно использовать Советника Генерации кода, чтобы внести предложенные изменения в модель. Сгенерированный код изменяется только после того, как вы измените свою модель и регенерируете код. Когда вы используете Советника Генерации кода, чтобы установить цели генерации кода и проверять вашу модель, сгенерированный код включает комментарии, идентифицирующие, какие цели вы задали, проверки, что Советник Генерации кода работал на модели и результатах осуществления проверок.
Если модель использует ссылку настройки, можно запустить Советника Генерации кода, чтобы рассмотреть настройки параметра конфигурации. Однако Советник Генерации кода не может изменить настройки параметра конфигурации.
В зависимости от типа приложения, которое представляет ваша модель, у вас, вероятно, будут определенные высокоуровневые цели генерации кода. Например, безопасность и трассируемость более очень важны, чем эффективное использование памяти. Если у вас есть определенные цели, можно быстро сконфигурировать модель, чтобы достигнуть тех целей путем выбора и приоритизации из этих целей генерации кода:
КПД выполнения (все цели) — Конфигурирует настройки генерации кода, чтобы достигнуть быстрого времени выполнения.
КПД ROM (основанные на ERT цели) — Конфигурирует настройки генерации кода, чтобы уменьшать использование ROM.
КПД RAM (основанные на ERT цели) — Конфигурирует настройки генерации кода, чтобы уменьшать Использование оперативной памяти.
Трассируемость (основанные на ERT цели) — Конфигурирует настройки генерации кода, чтобы обеспечить отображение между элементами модели и кодом.
Меры безопасности (основанные на ERT цели) — Конфигурируют настройки генерации кода, чтобы увеличить ясность, детерминизм, робастность и verifiability кода.
Отладка (все цели) — Конфигурирует настройки генерации кода, чтобы отладить процесс сборки генерации кода.
Инструкции MISRA C:2012 (основанные на ERT цели) — Конфигурируют настройки генерации кода, чтобы увеличить податливость с инструкциями MISRA C:2012.
Polyspace (основанные на ERT цели) — Конфигурирует настройки генерации кода, чтобы подготовить код к Polyspace® анализ.
Если вы выбираете цель генерации кода инструкций по MISRA C:2012, Советника Генерации кода:
Проверяет настройки конфигурации модели на податливость с рекомендациями параметра конфигурации MISRA C:2012.
Проверки на блоки, которые не поддерживаются или рекомендованы для MISRA C:2012 совместимая генерация кода.
Когда вы проверяете модель во время процесса генерации кода, необходимо задать те же цели в топ-модели и моделях, на которые ссылаются. Если вы задаете различные цели для топ-модели и модели, на которую ссылаются, процесс сборки генерирует ошибку.
Чтобы задать различные цели для топ-модели и каждой модели, на которую ссылаются, рассмотрите модели отдельно, не генерируя код.
В этом примере показано, как использовать Советника Генерации кода, чтобы проверять и сконфигурировать вашу модель, чтобы достигнуть целей генерации кода:
На вкладке C Code нажмите C/C++ Code Advisor.
В Системном окне Селектора выберите модель или подсистему, которую вы хотите рассмотреть, и затем нажать OK.
В Советнике Генерации кода, на панели Code Generation Objectives, выбирают цели генерации кода. Когда вы выбираете цели на левой панели, Советник Генерации кода обновляет список проверок, это работает на вашей модели. Если ваша модель сконфигурирована с основанной на ERT целью, больше целей доступно. В данном примере модель сконфигурирована с основанной на ERT целью. Если ваши цели являются КПД выполнения и трассируемостью в том приоритете, сделайте следующее:
В Available objectives дважды кликните Execution efficiency
. Execution efficiency
добавляется к Selected objectives - prioritized.
В Available objectives дважды кликните Traceability
. Traceability
добавляется к Selected objectives - prioritized под Execution efficiency
.
Чтобы осуществить проверки, перечисленные на левой панели Советника Генерации кода, нажмите Run Selected Checks.
В окне Code Generation Advisor рассмотрите результаты для Check model configuration settings against code generation objectives путем выбора его из левой панели. Результаты для той проверки отображены на правой панели.
Check model configuration settings against code generation objectives инициировал предупреждение для этих проблем:
Параметры устанавливаются на значения кроме значения, рекомендуемого для заданных целей генерации кода.
Выбранные цели генерации кода отличаются от набора целей в модели.
Нажмите Modify Parameters, чтобы установить:
Параметры к значению рекомендованы для заданных целей генерации кода.
Цели генерации кода в модели к целям заданы в Советнике Генерации кода.
В окне Code Generation Advisor рассмотрите результаты для остающегося, проверяет выбор их от левой панели. Результаты для проверок отображаются на правой панели.
После рассматривания результатов проверки можно принять решение зафиксировать предупреждения и отказы, как описано в Фиксации Предупреждение Проверки Model Advisor или Отказ.
Когда вы задаете цель КПД или Мер безопасности, Советник Генерации кода включает дополнительные проверки. Когда вы вносите изменения в одну из этих дополнительных проверок, предыдущие результаты проверки могут потенциально стать недопустимыми и должны быть повторно выполнены.
В этом примере показано, как сконфигурировать и проверять вашу модель, чтобы достигнуть целей генерации кода через диалоговое окно Configuration Parameters:
Откройте диалоговое окно Configuration Parameters. Выберите Code Generation.
Задайте системный конечный файл. Если вы задаете основанную на ERT цель, больше целей доступно. В данном примере выберите ERT-based target, такой как ert.tlc
.
Нажмите Set Objectives.
В Целях Набора — Советник Генерации кода Диалоговое окно, задайте свои цели. Например, если ваши цели являются КПД выполнения и трассируемостью в том приоритете, сделайте следующее:
В Available objectives дважды кликните Execution efficiency
. Execution efficiency
добавляется к Selected objectives - prioritized.
В Available objectives дважды кликните Traceability
. Traceability
добавляется к Selected objectives - prioritized под Execution efficiency
.
Чтобы принять цели, нажмите OK. В диалоговом окне Configuration Parameters Code Generation> обновляется Prioritized objectives.
На панели Code Generation нажмите Check Model.
В Системном окне Селектора выберите модель или подсистему, которую вы хотите рассмотреть, и затем нажать OK. Советник Генерации кода открывает и рассматривает модель или подсистему, которую вы задали.
В окне Code Generation Advisor рассмотрите результаты путем выбора проверки из левой панели. Результаты для той проверки отображаются на правой панели.
После рассматривания результатов проверки можно принять решение зафиксировать предупреждения и отказы, как описано в Фиксации Предупреждение Проверки Model Advisor или Отказ.
Когда вы задаете цель КПД или Мер безопасности, Советник Генерации кода включает дополнительные проверки. Когда вы вносите изменения в одну из этих дополнительных проверок, предыдущие результаты проверки могут потенциально стать недопустимыми и должны быть повторно выполнены.
Для получения дополнительной информации смотрите Цели Набора — Советник Генерации кода Диалоговое окно