Проверки целей генерации кода упрощают разработку и поиск и устранение неисправностей моделей Simulink® и подсистем, которые вы хотите использовать, чтобы сгенерировать код.
Советник Генерации кода включает следующие проверки от Simulink, Simulink Coder™ и Embedded Coder® для каждой из целей генерации кода. Две проверки, уникальные для Советника Генерации кода, включены ниже списка.
Проверять | КПД выполнения (все цели) | КПД ROM (Основанные на ERT цели) | КПД RAM (Основанные на ERT цели) | Меры безопасности (Основанные на ERT цели) | Трассируемость (Основанные на ERT цели) | Отладка (все цели) | Инструкции MISRA C:2012 (Основанные на 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 доступен | Нет данных |
Проверяйте на блоки, не рекомендуемые для MISRA C:2012 (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 доступен | Нет данных | Нет данных | Нет данных | Нет данных |
Примечание
То, когда Советник Генерации кода проверяет вашу модель по цели инструкций MISRA C:2012, инструмент не рассматривает все настройки параметра конфигурации, которые проверяются инструкциями 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)
Проверяйте настройки параметра конфигурации на модель против целей генерации кода.
Каждый параметр в диалоговом окне Configuration Parameters может иметь различные рекомендуемые настройки для генерации кода на основе ваших целей. Эта проверка помогает вам идентифицировать рекомендуемую установку для каждого параметра так, чтобы можно было достигнуть оптимизированного кода на основе цели.
Условие | Рекомендуемое действие |
---|---|
Параметры устанавливаются на значения кроме значения, рекомендуемого для заданных целей. |
Установите параметры на рекомендуемые значения. Примечание Изменение в одном значении параметров может повлиять на другие параметры. Передача проверки может взять несколько итераций. |
Нажатие на Modify Parameters изменяет значения параметров в рекомендуемые значения.