Проверки целей генерации кода упрощают разработку и поиск и устранение неисправностей Simulink® модели и подсистемы, которые вы хотите использовать, чтобы сгенерировать код.
Советник Генерации кода включает следующие проверки от Simulink, Simulink Coder™ и Embedded Coder® для каждой из целей генерации кода. Две проверки, уникальные для Советника Генерации кода, включены ниже списка.
Проверять | КПД выполнения (все цели) | КПД ROM (Основанные на ERT цели) | КПД RAM (Основанные на ERT цели) | Меры безопасности (Основанные на ERT цели) | Трассируемость (Основанные на ERT цели) | Отладка (все цели) | Инструкции MISRA C:2012 (Основанные на ERT цели) | Polyspace®
(Основанные на ERT цели) |
---|---|---|---|---|---|---|---|---|
Проверяйте настройки конфигурации модели по целям генерации кода | Включенный | Включенный | Включенный | Включенный | Включенный | Включенный | Включенный (см. примечание ниже), | Включенный |
Проверяйте на оптимальную виртуальность шины | Включенный | Включенный | Включенный | N/A | N/A | N/A | N/A | N/A |
Идентифицируйте сомнительные блоки в заданной системе | Включенный | Включенный | Включенный | N/A | N/A | N/A | N/A | N/A |
Проверяйте аппаратную реализацию (Embedded Coder) | Включенный, если Embedded Coder доступен | Включенный, если Embedded Coder доступен | N/A | N/A | N/A | N/A | N/A | N/A |
Идентифицируйте сомнительные технические требования программной среды (Embedded Coder) | Включенный то, когда Трассируемость не является более высоким приоритетом и Embedded Coder, доступно | Включенный то, когда Трассируемость не является более высоким приоритетом и Embedded Coder, доступно | N/A | N/A | N/A | N/A | N/A | N/A |
Идентифицируйте сомнительную отладку кода (ввод-вывод данных) (Embedded Coder) | Включенный то, когда Трассируемость или Отладка не являются более высокими приоритетами и Embedded Coder, доступно | Включенный то, когда Трассируемость или Отладка не являются более высокими приоритетами и Embedded Coder, доступно | Включенный то, когда Трассируемость или Отладка не являются более высокими приоритетами и Embedded Coder, доступно | N/A | N/A | N/A | N/A | N/A |
Идентифицируйте сомнительные настройки подсистемы (Embedded Coder) | N/A | Включенный, если Embedded Coder доступен | Включенный, если Embedded Coder доступен | N/A | N/A | N/A | N/A | N/A |
Идентифицируйте блоки, которые генерируют дорогой код округления (Embedded Coder) | Включенный, если Embedded Coder доступен | Включенный, если Embedded Coder доступен | N/A | N/A | N/A | N/A | N/A | N/A |
Идентифицируйте сомнительные операции фиксированной точки (Embedded Coder) | Включенный, если Embedded Coder или Fixed-Point Designer™ доступны | Включенный, если Embedded Coder или Fixed-Point Designer доступны | N/A | N/A | N/A | N/A | N/A | N/A |
Идентифицируйте блоки, использующие индексацию на основе одну | Включенный | Включенный | N/A | N/A | N/A | N/A | N/A | N/A |
Идентифицируйте блоки интерполяционной таблицы, которые генерируют дорогой код проверки из области значений (Embedded Coder) | Включенный, если Embedded Coder доступен | Включенный, если Embedded Coder доступен | N/A | N/A | N/A | N/A | N/A | N/A |
Проверяйте выходные типы логических блоков (Embedded Coder) | Включенный, если Embedded Coder доступен | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
Идентифицируйте несвязанные линии, входные порты и выходные порты | N/A | N/A | N/A | Включенный | N/A | N/A | N/A | N/A |
Проверяйте Блоки памяти Хранилища данных на многозадачность, строгий контроль типов и проблемы затенения | N/A | N/A | N/A | Включенный | N/A | N/A | N/A | N/A |
Идентифицируйте выходные сигналы блока со временем непрерывной выборки и типом неданных с плавающей запятой | N/A | N/A | N/A | Включенный | N/A | N/A | N/A | N/A |
Проверяйте на блоки, которые имеют ограничения на настраиваемые параметры | N/A | N/A | N/A | Включенный | N/A | N/A | N/A | N/A |
Проверяйте, включена ли диагностика чтения-записи для блоков хранилища данных | N/A | N/A | N/A | Включенный | N/A | N/A | N/A | N/A |
Проверяйте использование параметра структуры с сигналами шины | N/A | N/A | N/A | Включенный | N/A | N/A | N/A | N/A |
Проверяйте, что хранилище данных блокирует шаги расчета для моделирования ошибок | N/A | N/A | N/A | Включенный | N/A | N/A | N/A | N/A |
Проверяйте на потенциальные проблемы упорядоченного расположения, включающие доступ к хранилищу данных | N/A | N/A | N/A | Включенный | N/A | N/A | N/A | N/A |
Проверяйте на блоки, не рекомендуемые для производственного развертывания C/C++ кода (Embedded Coder) | N/A | N/A | N/A | N/A | N/A | N/A | Включенный, если Embedded Coder доступен | N/A |
Проверяйте на блоки, не рекомендуемые для MISRA C:2012 (Embedded Coder) | N/A | N/A | N/A | N/A | N/A | N/A | Включенный, если Embedded Coder доступен | N/A |
Проверяйте на неподдерживаемые имена блока (Embedded Coder) | N/A | N/A | N/A | N/A | N/A | N/A | Включенный, если Embedded Coder доступен | N/A |
Проверяйте использование блоков Присвоения (Embedded Coder) | N/A | N/A | N/A | N/A | N/A | N/A | Включенный, если Embedded Coder доступен | N/A |
Проверяйте на битовые операции на целых числах со знаком (Embedded Coder) | N/A | N/A | N/A | N/A | N/A | N/A | Включенный, если Embedded Coder доступен | N/A |
Проверяйте на (Embedded Coder) вызовов рекурсивной функции | N/A | N/A | N/A | N/A | N/A | N/A | Включенный, если Embedded Coder доступен | N/A |
Проверяйте на операции равенства и неравенства на значениях с плавающей точкой (Embedded Coder) | N/A | N/A | N/A | N/A | N/A | N/A | Включенный, если Embedded Coder доступен | N/A |
Проверяйте на выражения случая переключателя без случая по умолчанию (Embedded Coder) | N/A | N/A | N/A | N/A | N/A | N/A | Включенный, если Embedded Coder доступен | N/A |
Проверяйте параметры конфигурации на генерацию неэффективного кода насыщения (Embedded Coder) | Включенный, если Embedded Coder доступен | Включенный, если Embedded Coder доступен | N/A | Включенный, если Embedded Coder доступен | N/A | N/A | N/A | N/A |
Примечание
То, когда Советник Генерации кода проверяет вашу модель по цели инструкций 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 изменяет значения параметров в рекомендуемые значения.