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

Когда вы запускаете анализ Polyspace® непосредственно с панели инструментов Simulink®, анализ берет контекст модели специфичный, такие области значений проекта, к фактору. При выполнении анализа Polyspace без доступа к Simulink необходимо указать информацию модели специфичную при помощи файлов опций. Вместо того, чтобы создать эти файлы опций, используйте файлы опций, сгенерированные и упакованные функцией polyspacePackNGo.

Сохранение контекстной информации модели Simulink при выполнении анализа Polyspace может быть полезным в различных ситуациях. Например:

  • Распределенный рабочий процесс: пользователь Simulink генерирует код из модели и отправляет код в другую среду разработки. В этой среде пользователь Polyspace, у которого не может быть Simulink, запускает отдельный анализ сгенерированного кода. При помощи упакованных файлов опций, областей значений проекта и другой информации модели специфичной сохраняется в анализе Polyspace.

  • Аналитические опции, не доступные в Simulink: Некоторые аналитические опции Polyspace доступны только, когда анализ Polyspace запущен отдельно от Simulink. Используйте упакованные файлы опций, чтобы запустить отдельный анализ Polyspace при сохранении информации модели специфичной. Например, анализируйте параллельные потоки в сгенерированном коде путем выполнения анализа Polyspace в сгенерированном коде при помощи упакованных файлов опций.

У вас должен быть Simulink, чтобы запустить функцию polyspacePackNGo. Вам не нужен Polyspace, чтобы сгенерировать файлы опций из модели Simulink. polyspacePackNGo функционируйте код поддержек, сгенерированный Embedded Coder® и TargetLink®.

Сгенерируйте и файлы опций Polyspace пакета

Чтобы сгенерировать и группировать файл опций Polyspace для анализа кода, сгенерированного из модели Simulink, использовать polyspacePackNGo.

  1. В Редакторе Simulink откройте диалоговое окно Configuration Parameters и сконфигурируйте модель для генерации кода.

  2. Чтобы сконфигурировать модель для совместимости с Polyspace, выберите ert.tlc как System target file

  3. Чтобы позволить генерировать архив кода, выберите опцию Package code and artifacts. Опционально, обеспечьте имя для пакета опций в поле Zip file name. Если ваш код содержит блок пользовательского кода, выберите Use the same custom code settings as Simulation target в панели Code Generation> Custom Code.

    В качестве альтернативы в Командном окне MATLAB®, введите:

    % Configure the Simulink model mdlName for code generation
    configSet = getActiveConfigSet(mdlName);
    set_param(configSet, 'PackageGeneratedCodeAndArtifacts', true);
    set_param(configSet, 'PackageName', 'CodeArchive.zip');
    set_param(configSet, 'SystemTargetFile', 'ert.tlc');
    set_param(configSet,'RTWUseSimCustomCode','on');

  4. Сгенерируйте архив кода.

    • Чтобы сгенерировать архив автономного сгенерированного кода от топ-модели, используйте функцию rtwbuild (Embedded Coder).

    • Чтобы сгенерировать код как модель - ссылку, используйте функцию slbuild. После генерации кода как модель - ссылка создайте архив кода при помощи функции packNGo (Embedded Coder).

    • В качестве альтернативы можно использовать TargetLink, чтобы сгенерировать код. Создайте архив кода путем архивации сгенерированного кода в zip-файл.

  5. Сгенерировать и группировать файлы опции Polyspace, в командном окне MATLAB, использование polyspacePackNGo функция:

    zipFile = polyspacePackNGo(mdlName);
    Смотрите генерируют и файлы опций Polyspace пакета.

    Если вы используете TargetLink, чтобы сгенерировать код, то используйте имя подсистемы TargetLink в качестве входного параметра к polyspacepacknGo.

  6. Опционально, можно использовать pslinkoptions возразите в качестве второго аргумента, чтобы изменить опции по умолчанию для анализа Polyspace. Создайте pslinkoptions объект, содержащий дополнительные опции и, задает объект при создании архива:

    psOpt = pslinkoptions(mdlName);
    psOpt.InputRangeMode = 'FullRange';
    psOpt.ParamRangeMode = 'DesignMinMax';
    zipFile = polyspacePackNGo(mdlName,psOpt);
    
    Смотрите файлы опций Polyspace пакета, которые имеют определенные аналитические опции Polyspace.

  7. Используйте дополнительный третий аргумент, чтобы задать, сгенерировать ли и группировать файлы опций Polyspace для кода, сгенерированного как модель - ссылка. Предположим вы сгенерированный код как модель - ссылка при помощи slbuild функция. Сгенерировать и группировать опции Polyspace для кода, в командном окне MATLAB, введите:

    zipFile = polyspacePackNGo(mdlName,psOpt,true);
    Смотрите файлы опций Polyspace пакета для кода, сгенерированного как модель - ссылка.

    Функция polyspacepackNGo возвращает полный путь в архив, содержащий файлы опций. Файлы расположены в polyspace папка в заархивированной иерархии папок. Содержимое polyspace папка зависит от входных параметров polyspacePackNGo функция.

    • Если вы не задаете дополнительные вторые и третьи аргументы, то папка polyspace содержит эти файлы опций в плоской иерархии:

      • optionsFile.txt: Этот файл задает исходные файлы, включать файлы, технические требования области значений данных и аналитические опции, требуемые для анализа сгенерированного кода при помощи Polyspace. Если ваш код содержит пользовательский код С, то этот файл задает относительные пути пользовательского источника и заголовочных файлов.

      • modelname_drs.xml: Этот файл задает спецификацию области значений проекта модели.

      • linkdata.xml: Этот файл соединяет сгенерированный код с компонентами модели.

    • Если вы задаете psOpts.ModelbyModelRef = true, затем соответствующие файлы опций сгенерированы для всех моделей, на которые ссылаются. Эти файлы опций хранятся в отдельных папках, названных polyspace_<referenced model name> в архиве кода. Папка polyspace содержит файлы опций для топ-модели.

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

Если архив кода и файлы опции Polyspace сгенерированы, можно использовать архив, чтобы запустить анализ Polyspace сгенерированного кода в различной среде разработки без Simulink.

  1. Разархивируйте код, архивируют и определяют местоположение polyspace папка.

  2. На Windows® или командной строке Linux®, запуске: productname - файл опций optionsFile.txt - dir результатов resultdir.

    • productname соответствует одному из: Polyspace Bug Finder, Polyspace Code Prover, сервер средства поиска ошибки полипробела или сервер программы автоматического доказательства полипробела кода.

    • resultdir соответствует местоположению результатов Polyspace. Этот аргумент является дополнительным.

    Если файл linkdata.xml нет ли, используйте опцию Code Generator Support в Пользовательском интерфейсе Polyspace, чтобы задать, какие комментарии в коде действуют как ссылки на модель Simulink. В Пользовательском интерфейсе Polyspace выберите Tools> Preferences и найдите вкладку Miscellaneous. Из контекстного меню Code comments that act as code-to-model-link выберите генератор кода, который вы использовали. Если вы выбираете User defined, то задаете комментарии, которые действуют как ссылка кода к модели путем определения их префикса в поле Comments beginning with. Например, если вы задаете префикс как //Link_to_model, затем Polyspace интерпретирует комментарии начиная с //Link_to_model как соединяется с моделью.

  3. Чтобы рассмотреть результат, загрузите его на Polyspace доступ и просмотрите результаты в веб-браузере. В качестве альтернативы просмотрите результат при помощи пользовательского интерфейса десктопных решений Polyspace.

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

Сгенерируйте и файлы опций Polyspace пакета из модели Simulink при помощи функции polyspacepackNGo. Используйте эти файлы опций, чтобы запустить анализ Polyspace сгенерированного кода, который использует информацию модели специфичную, такую как технические требования области значений проекта, не требуя Simulink.

Открытая модель

Модель demo_math_operations выполняет различные математические операции на входных параметрах модели. Модель имеет Функциональный блок C, который выполняет пользовательский код С. Модель также имеет блок C Caller, который вызывает функцию C GMean, который реализован в исходном файле GMean.c. Чтобы открыть модель для генерации кода и упаковочного файла опций Polyspace, ищите текущую тему в браузере документации MATLAB и нажмите кнопку Open Model. В качестве альтернативы в командном окне MATLAB, вставке и запуске следующий код.

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
    rtwbuild('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 и Программа автоматического доказательства Кода анализируют код по-другому. Смотрите Выбирают 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 файл изменяется в зависимости от того, запускаете ли вы анализ Программы автоматического доказательства Кода или анализ Средства поиска Ошибки. Результат содержит несколько оранжевых проверок.

    В качестве альтернативы загрузите результат на Polyspace доступ. Смотрите Результаты Загрузки к Polyspace доступ (к Polyspace Bug Finder Access)

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

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

| | (Embedded Coder) | (Embedded Coder)

Для просмотра документации необходимо авторизоваться на сайте