Если вы генерируете код из модели Simulink® при помощи Embedded Coder® или TargetLink®, можно анализировать сгенерированный код для ошибок или ошибок времени выполнения с Polyspace® из окружения Simulink. Вы не должны вручную настраивать проект Polyspace.
Эта тема использует Embedded Coder для генерации кода. Для анализа TargetLink-сгенерированного-кода смотрите Анализ Polyspace Выполнения Кода, Сгенерированного с TargetLink.
Для примера с определенной моделью смотрите, Анализируют Код, Сгенерированный от Подсистемы Simulink.
Прежде чем вы запустите Polyspace от Simulink, необходимо соединить Polyspace и установки MATLAB®. Смотрите Интегрируют Polyspace с MATLAB и Simulink.
Чтобы сконфигурировать генерацию кода и сгенерировать код из модели или подсистемы, выполнить одно из следующих действий:
Выберите Code> C/C++> Embedded Coder Quick Start. Следуйте экранным инструкциям.
Сконфигурируйте генерацию кода через параметры конфигурации Simulink. Главные параметры, чтобы установить:
Тип (Simulink): выберите Fixed-step.
Решатель (Simulink): выберите auto (Automatic solver selection) или Discrete (no continuous states).
Системный конечный файл (Simulink Coder): Введите ert.tlc
или autosar.tlc
. Если вы выводите конечные файлы от ert.tlc
, можно также задать их.
Код к модели (Simulink Coder): Выберите эту опцию, чтобы включить ссылки от кода до модели.
Для полного списка параметров, чтобы установить, смотрите Рекомендуемые Образцовые Параметры конфигурации для Анализа Polyspace.
Также запустите Советника Генерации кода с объективным Polyspace и смотрите, устанавливаются ли обязательные параметры уже. Смотрите Конфигурируют Модель для Целей Генерации кода при помощи Советника Генерации кода (Embedded Coder).
Чтобы сгенерировать код, выберите Code> C/C++> Build Model. Существует эквивалентная опция, чтобы сгенерировать код от подсистемы.
Выберите Code> Polyspace> Options. В случае необходимости измените значения по умолчанию этих опций.
Режим продукта: Выберите Code Prover или Bug Finder.
Настройки от: Позвольте проверять правил кодирования MISRA® в дополнение к проверкам по умолчанию, заданным в настройке проекта. Проверки Средства поиска Ошибки по умолчанию ищут ошибки. Проверки Программы автоматического доказательства Кода по умолчанию ищут ошибки времени выполнения.
Введите, Настраиваемые параметры и Вывод: Ограничьте входные параметры, настраиваемые параметры или выходные параметры для более точного анализа Программы автоматического доказательства Кода.
'OutputFolder' : Задайте специализированную папку для результатов. Анализ по умолчанию сохраняет результаты в папке
в текущей рабочей папке.results_modelName
Для полного списка опций, чтобы установить, смотрите Анализ Polyspace в Simulink.
Чтобы анализировать код, выберите Code> Polyspace> Verify Code Generated for> Model. Существует эквивалентная опция для подсистемы.
Можно следовать за прогрессом анализа в Окне Команды MATLAB.
Результаты открываются автоматически, если явным образом не отключено. По умолчанию результаты сохранены в папке
в текущей папке. Каждое новое выполнение перезаписывает предыдущие результаты. Можно изменить папки по умолчанию или сохранить результаты в проект Simulink. Чтобы внести эти изменения, выберите Code> Polyspace> Options.results_ModelName
Если вы закрыли результаты и хотите открыть их позже, выберите Code> Polyspace> Open Results> For Generated Code.
Результаты появляются в пользовательском интерфейсе Polyspace на панели Results List. Кликните по каждому результату видеть исходный код на панели Source и детали о панели Result Details. Смотрите также:
Ссылки в комментариях к коду показывают блоки, которые генерируют последующие строки кода. Чтобы видеть блоки в модели, кликните по именам блока в ссылках. Если вы сталкиваетесь с проблемами, смотрите Навигацию Поиска и устранения неисправностей от Кода до Модели.
Также можно щелкнуть правой кнопкой по имени переменной и выбрать Go to Model. Эта опция не доступна для всех переменных.
Займитесь расследованиями, связаны ли проблемы в вашем коде с недостатками дизайна в модели.
Недостатки дизайна в модели могут привести к проблемам в сгенерированном коде. Например:
Сгенерированный код может быть свободен от определенных ошибок времени выполнения только для определенной области значений параметров блоков. Чтобы устранить эту проблему, можно изменить класс памяти тех параметров блоков или использовать калибровочные данные для анализа при помощи Настраиваемых параметров параметра конфигурации.
Сгенерированный код может быть свободен от определенных ошибок времени выполнения только для определенной области значений входных параметров. Чтобы определить эту безошибочную область значений, можно задать минимальное и максимальное значение для блоков-сигналов Inport. Анализ Polyspace использует эту ограниченную область значений. Смотрите Задают Области значений для Сигналов (Simulink).
Определенные переходы в графиках Stateflow® могут быть недостижимыми.
Если вы включаете рукописный код C/C++ в Блоки s-function, анализ Polyspace может показать возможные проблемы интегрирования между рукописным и сгенерированным кодом. Можно также анализировать рукописный код в изоляции. Смотрите Анализируют Код S-функции.
Если вы не хотите вносить изменения в ответ на результат Polyspace, аннотируйте соответствующие блоки. После того, как вы аннотируете блок, операции кода, сгенерированные от результатов блока show, предварительно заполненных с вашими комментариями. Чтобы аннотировать блок, щелкните правой кнопкой по блоку и выберите Polyspace> Annotate Selected Block> Edit. Введите следующее:
Список, разделенный запятыми акронимов результата. Чтобы выровнять по ширине только тип результата, выберите Only 1 check.
См.:
Состояние, серьезность и комментарий, который будет присвоен результатам.
Иногда операции в сгенерированном коде, как известно, вызывают оранжевые регистрации Программы автоматического доказательства Кода. Предположим, что операция, как известно, возможно переполняется. Сгенерированный код защищает от переполнения следующим операцию с насыщением. Polyspace все еще отмечает возможное переполнение как оранжевую проверку. Чтобы автоматически выровнять по ширине они посылают багажом комментарии к коду, задайте аннотации Оператора параметра конфигурации (Simulink Coder).