Проверки Simulink Coder

Simulink Coder проверяет обзор

Используйте проверки Simulink® Coder™ Model Advisor, чтобы сконфигурировать вашу модель для генерации кода.

Смотрите также

Идентифицируйте блоки, использующие индексацию на основе одну

ID проверки: mathworks.codegen.cgsl_0101

Идентифицируйте блоки, использующие индексацию на основе одну.

Описание

Основанная на нуле индексация более эффективна в сгенерированном коде, чем индексация на основе одна.

Используя основанную на нуле индексацию увеличивает эффективность выполнения сгенерированного кода.

Доступный с Simulink Coder.

Результаты и рекомендуемые действия

УсловиеРекомендуемое действие
Модель или подсистема содержат блоки, сконфигурированные для индексации на основе одной.Сконфигурируйте блоки для основанной на нуле индексации. Обновите блоки поддержки.

Возможности и ограничения

Вы можете:

  • Осуществите эту проверку своих моделей библиотеки.

  • Исключите блоки и графики от этой проверки, если у вас есть лицензия Simulink Check™.

Смотрите также

Проверяйте решатель на генерацию кода

ID проверки: mathworks.codegen.SolverCodeGen

Проверяйте образцовый решатель и параметры конфигурации шага расчета.

Описание

Неправильные параметры конфигурации могут мешать генератору кода произвести код. Шаги расчета Underspecifying могут привести к нежелательным результатам. Постарайтесь не генерировать код, который может повредить данные или произвести непредсказуемое поведение.

Доступный с Simulink Coder.

Результаты и рекомендуемые действия

УсловиеРекомендуемое действие
Тип решателя установлен неправильно для образцовой генерации кода уровня.

В диалоговом окне Configuration Parameters, на панели Solver, устанавливает Type (Simulink) на Fixed-step.

Многозадачные диагностические опции не установлены в error.

В диалоговом окне Configuration Parameters, на панели Diagnostics, наборе

Советы

Вы не должны изменять настройки решателя, чтобы сгенерировать код от подсистемы. Процесс сборки автоматически изменяет Solver type на fixed-step, когда вы выбираете Code Generation> Build Subsystem или Code Generation> Generate S-Function из контекстного меню подсистемы.

Смотрите также

Проверяйте на блоки, не поддержанные генерацией кода

ID проверки: mathworks.codegen.codeGenSupport

Идентифицируйте блоки, не поддержанные генерацией кода.

Описание

Эта проверка частично идентифицирует образцовые построения, которые не подходят для генерации кода, как идентифицировано в таблицах Simulink Block Support для Simulink Coder и Embedded Coder®. Если вы используете блоки с примечаниями поддержки для генерации кода, рассматриваете информацию и следуете данному совету.

Доступный с Simulink Coder.

Результаты и рекомендуемые действия

УсловиеРекомендуемое действие
Модель или подсистема содержат блоки, которые не должны использоваться для генерации кода.Рассмотрите заменяющий блоки перечисленный в результатах. Кликните по элементу из списка сомнительных элементов, чтобы определить местоположение условия.

Возможности и ограничения

Вы можете:

  • Осуществите эту проверку своих моделей библиотеки.

  • Анализирует содержимое соединенных блоков библиотеки.

  • Анализирует содержимое во всех подсистемах маскированных.

  • Исключите блоки и графики от этой проверки, если у вас есть лицензия Simulink Check.

Смотрите также

Проверяйте и обновите модель, чтобы использовать подход набора инструментальных средств, чтобы создать сгенерированный код

ID проверки: mathworks.codegen.toolchainInfoUpgradeAdvisor.check

Проверяйте, использует ли модель настройки Toolchain, чтобы создать сгенерированный код.

Описание

Проверки, использует ли модель подход make-файла шаблона или подход набора инструментальных средств, чтобы создать сгенерированный код.

Доступный с Simulink Coder.

Когда вы открываете модель, созданную перед R2013b, которому установили System target file на ert.tlc, ert_shrlib.tlc или grt.tlc, программное обеспечение автоматически пытается обновить модель от использования подхода make-файла шаблона к использованию подхода набора инструментальных средств.

Если программное обеспечение не обновило модель, эта проверка определяет причину, и при наличии, рекомендует действия, которые можно выполнить, чтобы обновить модель.

Чтобы определить, который использует подход ваша модель, можно также посмотреть на панель Генерации кода в диалоговом окне Configuration Parameters. Подход набора инструментальных средств использует следующие параметры, чтобы создать сгенерированный код:

Подход make-файла шаблона использует следующие настройки, чтобы создать сгенерированный код:

  • Compiler optimization level

  • Custom compiler optimization flags

  • Generate makefile

  • Template makefile

Результаты и рекомендуемые действия

УсловиеРекомендуемое действиеКомментарий
Модель сконфигурирована, чтобы использовать подход набора инструментальных средств.Никакое действие.Модель была автоматически обновлена.
Модель не сконфигурирована, чтобы использовать подход набора инструментальных средств. Модель не может быть автоматически обновлена, чтобы использовать подход набора инструментальных средств.Системный конечный файл не совместим набором инструментальных средств. Установите System target file на совместимую набором инструментальных средств цель, такую как ert.tlc, ert_shrlib.tlc или grt.tlc.
Модель не сконфигурирована, чтобы использовать подход набора инструментальных средств. (Значения параметров не являются значениями по умолчанию.)Модель может быть автоматически обновлена, чтобы использовать подход набора инструментальных средств. Нажмите Update Model.Параметры устанавливаются на свои значения по умолчанию, кроме Compiler Optimization Level, который является набором Optimizations on (faster runs). Нажатие на Update Model устанавливает Compiler Optimization Level на свое значение по умолчанию, Optimizations off (faster builds), и затем обновляет модель. Обновленной модели установили Build Configuration на Faster Builds. Сохранение модели делает эти изменения постоянными.
Модель не сконфигурирована, чтобы использовать подход набора инструментальных средств. (Значения параметров не являются значениями по умолчанию.)Модель не может быть автоматически обновлена, чтобы использовать подход набора инструментальных средств.

Один или несколько следующих параметров не устанавливается на его значение по умолчанию:

  • Generate makefile (значение по умолчанию: Enabled)

  • Template makefile (значение по умолчанию: Целевой TMF по умолчанию)

  • Compiler optimization level (значение по умолчанию: Optimizations off (faster builds))

  • Make command (значение по умолчанию: make_rtw без аргументов)

См. модель обновления, чтобы использовать подход набора инструментальных средств

Результаты действия

Нажатие на Update model обновляет модель, чтобы использовать подход набора инструментальных средств, чтобы создать сгенерированный код.

Смотрите также

Проверяйте и обновите модель целевого процессора, чтобы использовать ert.tlc системный конечный файл

ID проверки: mathworks.codegen.codertarget.check

Проверяйте и обновите модель целевого процессора, чтобы использовать ert.tlc системный конечный файл.

Описание

Проверяйте и обновите модели, System target file которых установлен в idelink_ert.tlc или idelink_grt.tlc и чей целевой компьютер является одним из поддерживаемых процессоров Instruments™ C2000™ Техаса, чтобы использовать ert.tlc и подобные настройки.

Доступный с Simulink Coder.

Результаты и рекомендуемые действия

УсловиеРекомендуемое действие
System target file установлен в ert.tlc - Embedded Coder.Никакое действие

System target file установлен в idelink_ert.tlc или idelink_grt.tlc, и параметр Board устанавливается на процессор, который поддерживается Пакетом Поддержки Embedded Coder для Процессоров Texas Instruments C2000.

Модель Update

Результаты действия

Нажатие на Update model автоматически устанавливает следующие параметры на панели Code Generation в диалоговом окне модели Configuration Parameters:

  • Параметр System target file к ert.tlc.

  • Параметр Target hardware, чтобы совпадать с предыдущей платой или процессором.

  • Параметр Toolchain, чтобы совпадать с предыдущим набором инструментальных средств.

  • Параметр Build configuration, чтобы совпадать с конфигурацией сборки.

Это действие также устанавливает параметры на панели Coder Target, чтобы совпадать с предыдущими значениями параметров под вкладкой Peripherals.

Возможности и ограничения

Новый рабочий процесс использует подход набора инструментальных средств, который полагается на расширенные make-файлы, чтобы создать сгенерированный код. Это не обеспечивает эквивалент установке параметра Build format на Project в предыдущей настройке. Поэтому новый рабочий процесс не может автоматически сгенерировать проекты IDE в CCS 3.3 IDE.

Смотрите также

Настройка набора инструментальных средств

Проверяйте и обновите модели, которые используют цели, которые значительно изменились через различные релизы MATLAB

ID проверки: mathworks.codegen.realtime2CoderTargetInfoUpgradeAdvisor.check

Проверяйте и обновите модели с целями Simulink, которые значительно изменились через различные релизы MATLAB®.

Описание

Сохраните модель, которую вы обновили, чтобы работать с текущей установкой MATLAB.

Доступный с Simulink Coder.

Результаты и рекомендуемые действия

УсловиеРекомендуемое действие
Модель использует цель, которая изменилась значительно начиная с релиза MATLAB, на котором это было первоначально сохранено.Модель Save
Модель не использует цель Simulink или использует последнюю версию цели.Никакое действие
Модель автоматически обновляется.Модель Save
Недопустимая настройка режима external mode.В Configuration Parameters> панель Interface, обновите установки параметров режима external mode, чтобы совпадать с характеристиками вашей целевой хостом связи.

Модель повреждается.

Закройте и вновь откройте модель. Если проблема сохраняется, сбросьте Configuration Parameters> Hardware Implementation> Hardware board.

Результаты действия

Нажатие на Save model обновляет модель, чтобы работать с текущей установкой MATLAB и сохраняет модель.

Смотрите также

Сконфигурируйте производство и протестируйте оборудование

Проверяйте на блоки, которые имеют ограничения на настраиваемые параметры

ID проверки: mathworks.codegen.ConstraintsTunableParam

Идентифицируйте блоки с ограничениями на настраиваемые параметры.

Описание

Блоки Интерполяционной таблицы имеют строгие ограничения, когда они являются настраиваемыми. Если вы нарушаете ограничения блока интерполяционной таблицы, сгенерированный код производит неправильные ответы.

Доступный с Simulink Coder.

Результаты и рекомендуемые действия

УсловиеРекомендуемое действие
Блоки Интерполяционной таблицы имеют настраиваемые параметры.

При настройке параметров во время симуляции или при выполнении сгенерированного кода, вы должны:

  • Сохраните монотонность установки для параметра Vector of input values.

  • Сохраните номер и местоположение нулевых значений, которые вы задаете для Vector of input values и параметров Vector of output values, если вы задаете несколько нулевых значений для параметра Vector of input values.

Интерполяционная таблица (2D) блоки имеет настраиваемые параметры.

При настройке параметров во время симуляции или при выполнении сгенерированного кода, вы должны:

  • Сохраните монотонность установки для параметров Column index of input values и Row index input values.

  • Сохраните номер и местоположение нулевых значений, которые вы задаете для Row index input values, Column index of input values и параметров Vector of output values, если вы задаете несколько нулевых значений для параметров Column index of input values или Row index input values.

Интерполяционная таблица (n-D) блоки имеет настраиваемые параметры.При настройке параметров во время симуляции или при выполнении сгенерированного кода, необходимо сохранить увеличивающуюся монотонность значений точки останова для каждой табличной размерности Breakpoints n.

Возможности и ограничения

Если у вас есть лицензия Simulink Check, можно исключить блоки и графики от этой проверки.

Смотрите также

Проверяйте на несоответствие настройки модели - ссылки

ID проверки: mathworks.codegen.MdlrefConfigMismatch

Идентифицируйте образцовые настройки параметра конфигурации, на которые ссылаются, которые не совпадают с настройками параметра конфигурации топ-модели.

Описание

Генератор кода не может создать код для топ-моделей, которые содержат модели, на которые ссылаются, с различными, несовместимыми настройками параметра конфигурации.

Доступный с Simulink Coder.

Результаты и рекомендуемые действия

УсловиеРекомендуемое действие
У топ-модели и модели, на которую ссылаются есть противоречивые образцовые настройки параметра конфигурации. Измените заданные настройки конфигурации модели.

Смотрите также

Времена контрольного образца и режим управления задачами

ID проверки: mathworks.codegen.SampleTimesTaskingMode

Настройте шаг расчета и режим управления задачами для вашей системы.

Описание

Неправильный режим управления задачами может привести к неэффективному выполнению кода или неправильному сгенерированному коду.

Доступный с Simulink Coder.

Результаты и рекомендуемые действия

УсловиеРекомендуемое действие
Модель представляет многоскоростную систему, но не сконфигурирована для многозадачности.В диалоговом окне Configuration Parameters, на панели Solver, набор the Treat each discrete rate as a separate task (Simulink) параметр, как рекомендуется.
Модель сконфигурирована для многозадачности, но многозадачность не желательна на целевом компьютере.В диалоговом окне Configuration Parameters, на панели Solver, снимают флажок для the Treat each discrete rate as a separate task (Simulink) параметра или изменяют настройки на панели Hardware Implementation.

Смотрите также

Основанное на времени планирование и генерация кода

Проверяйте на форматы идентификатора генерации кода, используемые для модели - ссылки

ID проверки: mathworks.codegen.ModelRefRTWConfigCompliance

Проверки на модели, на которые ссылаются, в модели, ссылающейся на иерархию, для которой генерация кода изменяет настройки параметра конфигурации, которые включают форматы идентификатора.

Описание

В моделях, на которые ссылаются, если следующий Configuration Parameters> Code Generation> параметры Symbols имеют настройки, которые не содержат лексему $R (который представляет имя эталонной модели), генерация кода предварительно ожидает лексему $R к формату идентификатора.

  • Global variables

  • Global types

  • Subsystem methods

  • Constant macros

Доступный с Simulink Coder.

Результаты и рекомендуемые действия

УсловиеРекомендуемое действие

Скрипт, который работает со сгенерированным кодом, использует имена модели та генерация кода изменения.

Обновите скрипт, чтобы использовать сгенерированное имя (который включает добавленную лексему $R).

Доступные проверки на цели генерации кода

Проверки целей генерации кода упрощают разработку и поиск и устранение неисправностей моделей Simulink и подсистем, которые вы хотите использовать, чтобы сгенерировать код.

Советник Генерации кода включает следующие проверки от Simulink, Simulink Coder и Embedded Coder для каждой из целей генерации кода. Две проверки, уникальные для Советника Генерации кода, включены ниже списка.

ПроверятьЭффективность выполнения
(все цели)
Эффективность ROM
(Основанные на ERT цели)
Эффективность RAM
(Основанные на ERT цели)
Меры безопасности
(Основанные на ERT цели)
Трассируемость
(Основанные на ERT цели)
Отладка
(все цели)
Инструкции MISRA C:2012
(Основанные на ERT цели)
Polyspace®
(Основанные на ERT цели)
Проверяйте настройки конфигурации модели по целям генерации кодаВключенныйВключенныйВключенныйВключенныйВключенныйВключенныйВключенный (см. примечание ниже),Включенный
Проверяйте на оптимальную виртуальность шины (Simulink)ВключенныйВключенныйВключенныйНет данныхНет данныхНет данныхНет данныхНет данных
Идентифицируйте сомнительные блоки в заданной системеВключенный ВключенныйВключенныйНет данныхНет данныхНет данныхНет данныхНет данных
Проверяйте аппаратную реализацию (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 доступенНет данныхНет данныхНет данныхНет данныхНет данныхНет данныхНет данных

Идентифицируйте несвязанные строки, входные порты и выходные порты (Simulink)

Нет данныхНет данныхНет данныхВключенныйНет данныхНет данныхНет данныхНет данных
Проверяйте Блоки памяти Хранилища данных на многозадачность, строгий контроль типов и проблемы затенения (Simulink)Нет данныхНет данныхНет данныхВключенныйНет данныхНет данныхНет данныхНет данных
Идентифицируйте выходные сигналы блока со временем непрерывной выборки и типом неданных с плавающей запятой (Simulink)Нет данныхНет данныхНет данныхВключенныйНет данныхНет данныхНет данныхНет данных
Проверяйте на блоки, которые имеют ограничения на настраиваемые параметрыНет данныхНет данныхНет данныхВключенныйНет данныхНет данныхНет данныхНет данных
Проверяйте, включена ли диагностика чтения-записи для блоков хранилища данных (Simulink)Нет данныхНет данныхНет данныхВключенныйНет данныхНет данныхНет данныхНет данных
Проверяйте использование параметра структуры с сигналами шины (Simulink)Нет данныхНет данныхНет данныхВключенныйНет данныхНет данныхНет данныхНет данных
Проверяйте, что хранилище данных блокирует шаги расчета для моделирования ошибок (Simulink)Нет данныхНет данныхНет данныхВключенныйНет данныхНет данныхНет данныхНет данных
Проверяйте на потенциальные проблемы упорядоченного расположения, включающие доступ к хранилищу данных (Simulink)Нет данныхНет данныхНет данныхВключенныйНет данныхНет данныхНет данныхНет данных
Проверяйте на блоки, не рекомендуемые для производственного развертывания 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 доступенНет данных
Проверяйте на case-выражения переключателя без случая по умолчанию (Embedded Coder)Нет данныхНет данныхНет данныхНет данныхНет данныхНет данныхВключенный, если Embedded Coder доступенНет данных

Примечание

То, когда Советник Генерации кода проверяет вашу модель по цели инструкций MISRA C:2012, инструмент не рассматривает все настройки параметра конфигурации, которые проверяются инструкциями MISRA C:2012, регистрируется в Model Advisor. Для полной проверки настроек параметра конфигурации, осуществленных проверки под узлом By Task > Modeling Guidelines for MISRA C:2012 в Model Advisor.

Смотрите также

Идентифицируйте сомнительные блоки в заданной системе

Идентифицируйте блоки, не поддержанные генерацией кода или не рекомендуемые для развертывания.

Описание

Генератор кода создает код только для блоков, которые это поддерживает. Некоторые блоки не рекомендуются для производственного развертывания кода.

Результаты и рекомендуемые действия

УсловиеРекомендуемое действие
Блок не поддержан генератором кода.Удалите заданный блок от модели или замените блок на рекомендуемый блок.
Блок не рекомендуется для производственного развертывания кода.Удалите заданный блок от модели или замените блок на рекомендуемый блок.
Проверяйте на блоки Усиления, значение которых равняется 1.Замените блоки Усиления на блоки Преобразования Сигнала.

Возможности и ограничения

Вы можете:

  • Осуществите эту проверку своих моделей библиотеки.

  • Исключите блоки и графики от этой проверки, если у вас есть лицензия Simulink Check.

Смотрите также

Блоки и продукты, поддержанные для генерации кода

Что такое исключение Model Advisor? (Simulink Check)

Проверяйте настройки конфигурации модели по целям генерации кода

Проверяйте настройки параметра конфигурации на модель против целей генерации кода.

Описание

Каждый параметр в диалоговом окне Configuration Parameters может иметь различные рекомендуемые настройки для генерации кода на основе ваших целей. Эта проверка помогает вам идентифицировать рекомендуемую установку для каждого параметра так, чтобы можно было достигнуть оптимизированного кода на основе цели.

Результаты и рекомендуемые действия

УсловиеРекомендуемое действие
Параметры устанавливаются на значения кроме значения, рекомендуемого для заданных целей.

Установите параметры на рекомендуемые значения.

Примечание

Изменение в одном значении параметров может повлиять на другие параметры. Передача проверки может взять несколько итераций.

Результаты действия

Нажатие на Modify Parameters изменяет значения параметров на рекомендуемые значения.

Смотрите также