Анализируйте код, сгенерированный как автономный код в распределенном рабочем процессе

Сгенерируйте и упакуйте 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

Чтобы сгенерировать файлы опций Polyspace для сгенерированного кода, в Командном окне или в Редакторе, введите:

zipFile = polyspacePackNGo('demo_math_operations');

В архиве genCodeArchive.zip, найти файлы опций в папке <current folder>/ полипространство.

Запуск анализа Polyspace при помощи файлов упакованных опций

  1. Разархивируйте архив кода genCodeArchive.zip и найдите <current folder>/ полипространство папка.

  2. Откройте терминал командной строки и смените рабочую папку на polyspace подпапка разархивированной папки при помощи cd команда.

  3. Запустите анализ 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.

  4. Следите за прогрессом анализа в файле журнала, который генерируется в Results папка.

  5. Чтобы просмотреть результаты в пользовательском интерфейсе рабочего стола, в интерфейсе командной строки, введите: polyspace Results\ps_results.pscp. Расширение ps_results изменения файла зависят от того, запустите ли вы анализ Code Prover или анализ Bug Finder. Результат содержит несколько оранжевых чеков.

    Кроме того, загрузите результат в Polyspace Access. См. раздел Загрузка результатов в Polyspace Access (Polyspace Bug Finder Access).

  6. Адресовать результаты. Для получения дополнительной информации см. Address Results Through Bug Fix или Comments (Polyspace Bug Finder).

См. также

| | (Embedded Coder)