Проверки целей генерации кода облегчают разработку и поиск и устранение проблем Simulink® модели и подсистемы, которые вы хотите использовать для генерации кода.
Генерация кода Advisor включает следующие проверки от Simulink, Simulink Coder™ и Embedded Coder® для каждой из целей генерации кода. Ниже Генерация кода приведены две проверки, уникальные для списка Advisor.
Проверить | Эффективность выполнения (все цели) | Эффективность ПЗУ (целевые системы на базе ERT) | Эффективность ОЗУ (целевые системы на базе ERT) | Меры безопасности (целевые системы на базе ERT) | Трассируемость (целевые системы на базе ERT) | Отладка (все цели) | Руководящие принципы C:2012 MISRA (целевые системы на базе ERT) | Polyspace® (целевые системы на базе ERT) |
---|---|---|---|---|---|---|---|---|
Проверяйте настройки конфигурации модели на соответствие целям генерации кода | Включенный | Включенный | Включенный | Включенный | Включенный | Включенный | Включено (см. Примечание ниже) | Включенный |
Проверяйте на оптимальную виртуальность шины | Включенный | Включенный | Включенный | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д |
Идентифицируйте сомнительные блоки в указанной системе | Включенный | Включенный | Включенный | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д |
Проверьте аппаратную реализацию (Embedded Coder) | Включается, если доступен Embedded Coder | Включается, если доступен Embedded Coder | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д |
Идентифицируйте сомнительные спецификации окружения программного обеспечения (Embedded Coder) | Включается, когда трассируемость не является более высоким приоритетом и доступен Embedded Coder | Включается, когда трассируемость не является более высоким приоритетом и доступен Embedded Coder | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д |
Идентифицируйте сомнительные отладки кода (ввод-вывод данных) (Embedded Coder) | Включается, когда трассируемость или отладка не являются более высокими приоритетами и доступен Embedded Coder | Включается, когда трассируемость или отладка не являются более высокими приоритетами и доступен Embedded Coder | Включается, когда трассируемость или отладка не являются более высокими приоритетами и доступен Embedded Coder | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д |
Идентифицируйте сомнительные настройки подсистемы (Embedded Coder) | Н/Д | Включается, если доступен Embedded Coder | Включается, если доступен Embedded Coder | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д |
Идентифицируйте блоки, которые генерируют дорогой округляющий код (Embedded Coder) | Включается, если доступен Embedded Coder | Включается, если доступен Embedded Coder | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д |
Идентифицируйте сомнительные операции с фиксированной точкой (Embedded Coder) | Включается, если доступен Embedded Coder или Fixed-Point Designer™ | Включается, если доступен Embedded Coder или Fixed-Point Designer | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д |
Идентифицируйте блоки с помощью индексации на основе одного | Включенный | Включенный | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д |
Идентифицируйте блоки интерполяционной таблицы, которые генерируют дорогой проверяющий код вне области допустимого значения (Embedded Coder) | Включается, если доступен Embedded Coder | Включается, если доступен Embedded Coder | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д |
Проверяйте выходные типы логических блоков (Embedded Coder) | Включается, если доступен Embedded Coder | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д |
Идентифицируйте несвязанные линии, входные порты и выходные порты | Н/Д | Н/Д | Н/Д | Включенный | Н/Д | Н/Д | Н/Д | Н/Д |
Проверяйте блоки памяти хранилища данных на наличие проблем многозадачности, сильного набора текста и затенения | Н/Д | Н/Д | Н/Д | Включенный | Н/Д | Н/Д | Н/Д | Н/Д |
Идентифицируйте выходные сигналы блоков с непрерывным шагом расчета и типом данных без плавающей точки | Н/Д | Н/Д | Н/Д | Включенный | Н/Д | Н/Д | Н/Д | Н/Д |
Проверяйте блоки, которые имеют ограничения на настраиваемые параметры | Н/Д | Н/Д | Н/Д | Включенный | Н/Д | Н/Д | Н/Д | Н/Д |
Проверьте, включена ли диагностика чтения/записи для блоков хранилища данных | Н/Д | Н/Д | Н/Д | Включенный | Н/Д | Н/Д | Н/Д | Н/Д |
Проверяйте использование параметра структуры с помощью сигналов шины | Н/Д | Н/Д | Н/Д | Включенный | Н/Д | Н/Д | Н/Д | Н/Д |
Проверяйте шаги расчета блока хранилища данных на ошибки моделирования | Н/Д | Н/Д | Н/Д | Включенный | Н/Д | Н/Д | Н/Д | Н/Д |
Проверяйте на потенциальные проблемы с упорядоченным расположением, связанные с доступом к хранилищу данных | Н/Д | Н/Д | Н/Д | Включенный | Н/Д | Н/Д | Н/Д | Н/Д |
Проверьте блоки, не рекомендуемые для развертывания производственного кода C/C + + (Embedded Coder) | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Включается, если доступен Embedded Coder | Н/Д |
Проверяйте блоки, не рекомендуемые для C:2012 MISRA (Embedded Coder) | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Включается, если доступен Embedded Coder | Н/Д |
Проверьте неподдерживаемые имена блоков (Embedded Coder) | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Включается, если доступен Embedded Coder | Н/Д |
Проверяйте использование блоков Assignment (Embedded Coder) | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Включается, если доступен Embedded Coder | Н/Д |
Проверяйте на побитовые операции с целыми числами со знаком (Embedded Coder) | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Включается, если доступен Embedded Coder | Н/Д |
Проверяйте на рекурсивные вызовы функций (Embedded Coder) | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Включается, если доступен Embedded Coder | Н/Д |
Проверяйте на равенство и неравенство операции над значениями с плавающей точкой (Embedded Coder) | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Включается, если доступен Embedded Coder | Н/Д |
Проверяйте на выражения случая коммутатора без случая по умолчанию (Embedded Coder) | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Н/Д | Включается, если доступен Embedded Coder | Н/Д |
Проверьте параметры конфигурации для генерации неэффективного кода насыщения (Embedded Coder) | Включается, если доступен Embedded Coder | Включается, если доступен Embedded Coder | Н/Д | Включается, если доступен Embedded Coder | Н/Д | Н/Д | Н/Д | Н/Д |
Примечание
Когда Генерация кода Advisor проверяет вашу модель на соответствие целям C:2012 MISRA, инструмент не учитывает все настройки параметров конфигурации, которые проверяются руководствами MISRA C:2012 в Model Advisor. Для полной проверки настроек параметров конфигурации:
Откройте Model Advisor.
Перейдите к разделу By Task > Modeling Guidelines for MISRA C:2012.
Выполните проверки в папке.
Для получения дополнительной информации об использовании Model Advisor, смотрите Проверить модель Используя Model Advisor.
Идентифицируйте блоки, не поддерживаемые генерацией кода или не рекомендуемые для развертывания.
Генератор кода создает код только для блоков, которые он поддерживает. Некоторые блоки не рекомендованы для развертывания производственного кода.
Состояние | Рекомендуемое действие |
---|---|
Блок не поддерживается генератором кода. | Удалите указанный блок из модели или замените блок на рекомендуемый блок. |
Блок не рекомендуется для развертывания производственного кода. | Удалите указанный блок из модели или замените блок на рекомендуемый блок. |
Проверьте наличие Gain блоков, значение которых равняется 1. | Замените Gain блоки на Signal Conversion блоки. |
Вы можете:
Запустите эту проверку на своих моделях библиотеки.
Исключить блоки и графики из этой проверки, если у вас есть лицензия Simulink Check™.
Блоки и продукты, поддерживаемые для генерации кода
Обзор исключения Model Advisor (Simulink Check)
Проверьте настройки параметров конфигурации для модели на соответствие целям генерации кода.
Каждый параметр в диалоговом окне Параметров конфигурации может иметь различные рекомендуемые настройки для генерации кода на основе ваших целей. Эта проверка помогает вам идентифицировать рекомендуемые настройки для каждого параметра, чтобы вы могли достичь оптимизированного кода на основе вашей цели.
Состояние | Рекомендуемое действие |
---|---|
Параметры устанавливаются в значения, отличные от значений, рекомендуемых для заданных целей. |
Установите рекомендуемые значения параметров. Примечание Изменение одного значения параметров может повлиять на другие параметры. Прохождение проверки может занять несколько итераций. |
При нажатии кнопки мыши Modify Parameters значения параметров изменяются на рекомендуемые значения.