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

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

Сгенерировать файлы опций 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 анализируют код по-другому. Смотрите Выбирают Between Polyspace Bug Finder и Polyspace Code Prover (Polyspace Bug Finder).

    • Задайте файл optionsFile.txt в качестве аргумента к -options-file.

    Чтобы запустить анализ программы автоматического доказательства Кода, запустите эту команду: 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 доступ. Смотрите Результаты Загрузки к Polyspace доступ (к Polyspace Bug Finder).

  6. Обратитесь к результатам. Для получения дополнительной информации смотрите Результаты Адреса Через Исправление ошибки или Комментарии (Polyspace Bug Finder).

Смотрите также

| | (Embedded Coder)