Создание и упаковка файлов опций Polyspace ® из модели Simulink ® с помощью функцииpolyspacepackNGo. Эти файлы опций используются для выполнения анализа Polyspace по сгенерированному коду, использующему специфичную для модели информацию, например спецификации диапазона проектирования, без использования Simulink.
Модель demo_math_operations выполняет различные математические операции на входах модели. Модель имеет блок C Function, который выполняет пользовательский код C. Модель также имеет блок вызывающего абонента C, который вызывает функцию C GMean, который реализован в исходном файле GMean.c. Чтобы открыть модель для создания кода и упаковки файла опций Polyspace, выполните поиск текущего раздела в браузере справки MATLAB и нажмите кнопку «Открыть модель». Либо в окне команд MATLAB вставьте и выполните следующий код.
openExample('simulink_general/PPNGStandAloneExample'); open_system('demo_math_operations');

Чтобы настроить модель для создания кода и упаковки файлов параметров Polyspace, укажите следующие параметры конфигурации:
Для создания архива, содержащего созданный код, установите 'PackageGeneratedCodeAndArtifacts' кому true.
Укажите имя архива кода. Например, задайте для имени значение genCodeArchive.zip.
Чтобы использовать пользовательскую настройку кода, указанную в цели моделирования, во время создания кода, установите 'RTWUseSimCustomCode' кому 'on'.
Чтобы модель и созданный код были совместимы с Polyspace, установите ert.tlc в качестве целевого файла системы. См. раздел Рекомендуемые параметры конфигурации модели для анализа полиспейсов (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>/polyspace
Распакуйте архив кода genCodeArchive.zip и найдите папка.<current folder>/polyspace
Откройте терминал командной строки и измените рабочую папку на polyspace подпапка распакованной папки с помощью cd команда.
Запустите анализ Polyspace.
Для выполнения анализа Polyspace на рабочем столе используйте polyspace-code-prover или polyspace-bug-finder. Чтобы выполнить анализ Polyspace на сервере, используйте polyspace-bug-finder-server или polyspace-code-prover-server. Polyspace Bug Finder и Code Prover анализируют код по-разному. См. раздел Выбор поиска ошибок в полиспейсе и поиска кода в полиспасе (поиск ошибок в полиспасе).
Укажите файл optionsFile.txt в качестве аргумента для -options-file.
Чтобы выполнить анализ проверки кода, выполните следующую команду: 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).
Обращайтесь к результатам. Дополнительные сведения см. в разделе Результаты поиска адресов с помощью исправления ошибок или комментариев (Polyspace Bug Finder).
polyspacePackNGo | slbuild | packNGo (встроенный кодер)