Сгенерируйте и упакуйте файлы опций Polyspace® из модели Simulink® при помощи функции polyspacepackNGo
. Используйте эти файлы опций, чтобы запустить анализ Polyspace сгенерированного кода, который использует информацию модели специфичную, такую как технические требования области значений проекта, не требуя Simulink.
Модель demo_math_operations
выполняет различные математические операции на входных параметрах модели. Модель имеет Функциональный блок C, который выполняет пользовательский код С. Модель также имеет блок C Caller, который вызывает функцию C GMean
, который реализован в исходном файле GMean.c. Чтобы открыть модель для генерации кода и упаковочного файла опций Polyspace, ищите текущую тему в браузере документации MATLAB и нажмите кнопку Open Model. В качестве альтернативы в командном окне MATLAB, вставке и запуске следующий код.
openExample('simulink_general/PPNGStandAloneExample'); open_system('demo_math_operations');
Чтобы сконфигурировать модель для генерации кода и упаковочных файлов опций Polyspace, задайте эти параметры конфигурации:
Чтобы создать архив, содержащий сгенерированный код, установите 'PackageGeneratedCodeAndArtifacts'
к true
.
Задайте имя для архива кода. Например, определите имя к genCodeArchive.zip
.
Чтобы использовать установку пользовательского кода, заданную в Simulation Target во время генерации кода, установите 'RTWUseSimCustomCode'
к 'on'
.
Чтобы сделать модель и сгенерированный код совместимыми с Polyspace, установите ert.tlc
как системный конечный файл. Смотрите Рекомендуемые Параметры конфигурации Модели для Анализа Polyspace (Polyspace Bug Finder).
В Командном окне или Редакторе, введите эти настройки параметра:
configSet = getActiveConfigSet('demo_math_operations'); set_param(configSet, 'PackageGeneratedCodeAndArtifacts', true); set_param(configSet, 'PackageName', 'genCodeArchive.zip'); set_param(configSet, 'SystemTargetFile', 'ert.tlc'); set_param(configSet,'RTWUseSimCustomCode','on')
Задайте папку для хранения сгенерированного кода. Запустить генерацию кода, в Командном окне или в Редакторе, введите:
codegenFolder = 'demo_math_operations_ert_rtw'; if exist(fullfile(pwd,codegenFolder), 'dir') == 0 slbuild('demo_math_operations') end
Поскольку PackageGeneratedCodeAndArtifacts
установлен в true
, сгенерированный код упаковывается в архив genCodeArchive.zip
.
Сгенерировать файлы опций Polyspace для сгенерированного кода, в Командном окне или в Редакторе, введите:
zipFile = polyspacePackNGo('demo_math_operations');
В архиве genCodeArchive.zip
, найдите файлы опций в папке
.<current folder>
/ полипробел
Разархивируйте архив кода genCodeArchive.zip
и найдите
папка.<current folder>
/ полипробел
Откройте терминал командной строки и измените вашу рабочую папку в polyspace
подпапка разархивированной папки при помощи cd
команда.
Запустите анализ Polyspace.
Чтобы запустить настольный анализ Polyspace, используйте любой polyspace-code-prover
или polyspace-bug-finder
. Чтобы запустить анализ Polyspace в сервере, используйте любой polyspace-bug-finder-server
или polyspace-code-prover-server
. Polyspace Bug Finder и Программа автоматического доказательства Кода анализируют код по-другому. Смотрите Выбирают Between Polyspace Bug Finder и Polyspace Code Prover (Polyspace Bug Finder).
Задайте файл optionsFile.txt
в качестве аргумента к -options-file
.
Чтобы запустить анализ программы автоматического доказательства Кода, запустите эту команду: polyspace-code-prover -options-file optionsFile.txt -results-dir Results
.
Следуйте за прогрессом анализа в файле журнала, который сгенерирован в Results
папка.
Просмотреть результаты в настольном пользовательском интерфейсе, в интерфейсе командной строки, введите: polyspace Results\ps_results.pscp
. Расширение ps_results
файл изменяется в зависимости от того, запускаете ли вы анализ Программы автоматического доказательства Кода или анализ Bug Finder. Результат содержит несколько оранжевых проверок.
В качестве альтернативы загрузите результат на Polyspace доступ. Смотрите Результаты Загрузки к Polyspace доступ (к Polyspace Bug Finder Access).
Обратитесь к результатам. Для получения дополнительной информации смотрите Результаты Адреса Через Исправление ошибки или Комментарии (Polyspace Bug Finder).
polyspacePackNGo
| slbuild
| packNGo
(Embedded Coder)