Когда вы запускаете 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 для анализа кода, сгенерированного из модели Simulink, используйте polyspacePackNGo
.
В Simulink Editor откройте диалоговое окно Параметров конфигурации и сконфигурируйте модель для генерации кода.
Чтобы сконфигурировать модель для совместимости с Polyspace, выберите ert.tlc
как System target file
Чтобы включить генерацию архива кода, выберите 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');
Сгенерируйте архив кода.
Чтобы сгенерировать архив автономного сгенерированного кода из верхней модели, используйте функцию slbuild
.
Чтобы сгенерировать код как модель-ссылку, используйте функцию slbuild
. После генерации кода как модель-ссылка, создайте архив кода с помощью функции packNGo
(Embedded Coder).
Также можно использовать TargetLink, чтобы сгенерировать код. Создайте архив кода путем архивации сгенерированного кода в zip- файла.
Чтобы сгенерировать и упаковать файлы опций Polyspace, в Командном окне MATLAB используйте polyspacePackNGo
функция:
zipFile = polyspacePackNGo(mdlName);
Если вы используете TargetLink для генерации кода, используйте имя подсистемы TargetLink в качестве входного параметра для polyspacepacknGo
.
Вы можете использовать pslinkoptions
объект как второй аргумент для изменения строения модели по умолчанию для анализа Polyspace. Создайте pslinkoptions
объект, изменение строений модели и определение объекта при создании архива:
psOpt = pslinkoptions(mdlName); psOpt.InputRangeMode = 'FullRange'; psOpt.ParamRangeMode = 'DesignMinMax'; zipFile = polyspacePackNGo(mdlName,psOpt);
Используйте необязательный третий аргумент, чтобы указать, генерировать ли и упаковать ли файлы опций Polyspace для кода, сгенерированного как модель-ссылка. Предположим, что вы сгенерировали код как модель-ссылку при помощи slbuild
функция. Чтобы сгенерировать и упаковать опции Polyspace для кода, в Командном Окне MATLAB введите:
zipFile = polyspacePackNGo(mdlName,[],true);
Функция polyspacepackNGo
возвращает полный путь к архиву, содержащему файлы опций. Файлы расположены в polyspace
папка в иерархии архивированных папок. Содержимое polyspace
папка зависит от входов polyspacePackNGo
функция.
Если вы не задаете необязательные второй и третий аргументы, то папка polyspace
содержит следующие файлы опций в плоской иерархии:
optionsFile.txt
: Этот файл задает исходные файлы, файлы включения, спецификации области значений данных и опции анализа, необходимые для анализа сгенерированного кода при помощи Polyspace. Если ваш код содержит пользовательский код C, то этот файл задает относительные пути пользовательских исходных и заголовочных файлов.
: Этот файл задает спецификацию области значений проекта модели.modelname
_drs.xml
linkdata.xml
: Этот файл связывает сгенерированный код с компонентами модели.
Если вы задаете psOpts.ModelbyModelRef = true
затем для всех ссылочных опций генерируются соответствующие файлы моделей. Эти файлы опций хранятся в отдельных папках с именем
в архиве кода. Папка polyspace_<reservedrangesplaceholder0 >
polyspace
содержит файлы опций для верхней части.
После создания архива кода и файлов опций Polyspace можно использовать архив, чтобы запустить анализ Polyspace на сгенерированном коде в другой среде разработки без Simulink.
Разархивируйте архив кода и определите местоположение polyspace
папка.
В Windows® или Linux® командная строка, запуск:
. productname
-options-file optionsFile.txt директор результатов resultdir
соответствует одному из: Polyspace Bug Finder, Polyspace Code Prover, polyspace-bug-finder-server или полипространство -code-prover-server.productname
соответствует местоположению результатов Polyspace. Этот аргумент необязателен.resultdir
Чтобы связать сгенерированный код с моделью 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.
Чтобы просмотреть результат, загрузите его в Polyspace Access и просмотрите результаты в веб-браузере. Также можно просмотреть результат с помощью пользовательского интерфейса десктопных продуктов Polyspace.
polyspacePackNGo
| slbuild
| packNGo
(Embedded Coder)