Запустите анализ 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®. Для получения руководства по использованию polyspacePackNGo, см. «Анализ кода, сгенерированного как автономный код в распределенном рабочем процессе».

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

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

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

  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. Сгенерируйте архив кода.

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

    • Чтобы сгенерировать код как модель-ссылку, используйте функцию 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);
    
    Смотрите Файлы параметров Package Polyspace, которые имеют Определенные опции анализа Polyspace.

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

    zipFile = polyspacePackNGo(mdlName,[],true);
    Смотрите Файлы Опций Package Polyspace для Кода, сгенерированного как Модель-ссылка.

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

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

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

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

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

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

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

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

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

  2. В Windows® или Linux® командная строка, запуск: productname -options-file optionsFile.txt директор результатов resultdir.

    • productname соответствует одному из: Polyspace Bug Finder, Polyspace Code Prover, polyspace-bug-finder-server или полипространство -code-prover-server.

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

    Чтобы связать сгенерированный код с моделью Simulink, файл linkdata.xml обязательно. В случае если файл 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 как звенья к модели.

    Если вы используете Polyspace Access, чтобы просмотреть результаты, загрузите файл linkdata.xml в той же папке, что и результаты Polyspace. Вы не можете связать код с моделью Simulink, если у вас нет файла linkdata.xml или если вы загружаете его за пределы папки результатов Polyspace.

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

См. также

| | (Embedded Coder)

Похожие темы