Сгенерируйте и упакуйте Polyspace® файлы опций из Simulink® моделировать при помощи функции polyspacepackNGo
. Используйте эти файлы опций, чтобы запустить анализ Polyspace на сгенерированном коде, который использует специфическую для модели информацию, такую как спецификации области значений проекта, не требуя Simulink.
Модель demo_math_operations
выполняет различные математические операции на входах модели. Модель имеет блок C Function, который выполняет пользовательский код С Модель также имеет блок C Caller, который вызывает функцию C GMean
, который реализован в исходном файле GMean.c. Чтобы открыть модель для генерации кода и упаковки файла опций Polyspace, выполните поиск по текущей теме в браузере документации MATLAB и нажмите кнопку «Открыть модель». Также в Командном Окне 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 и Code Prover по-разному анализируют код. Смотрите Выбор между Polyspace Bug Finder и Polyspace Code Prover (Polyspace Bug Finder).
Укажите файл optionsFile.txt
как аргумент к -options-file
.
Чтобы запустить анализ Code prover, запустите эту команду: polyspace-code-prover -options-file optionsFile.txt -results-dir Results
.
Следите за прогрессом анализа в файле журнала, который генерируется в Results
папка.
Чтобы просмотреть результаты в пользовательском интерфейсе рабочего стола, в интерфейсе командной строки, введите: polyspace Results\ps_results.pscp
. Расширение ps_results
изменения файла зависят от того, запустите ли вы анализ Code Prover или анализ Bug Finder. Результат содержит несколько оранжевых чеков.
Кроме того, загрузите результат в Polyspace Access. См. раздел Загрузка результатов в Polyspace Access (Polyspace Bug Finder Access).
Адресовать результаты. Для получения дополнительной информации см. Address Results Through Bug Fix или Comments (Polyspace Bug Finder).
polyspacePackNGo
| slbuild
| packNGo
(Embedded Coder)