Можно использовать более свежий релиз Polyspace®, не изменяя релиз Simulink®. Смотрите Поддержку Polyspace MATLAB и Simulink от Различных Релизов.
В такой настройке перекрестного релиза используйте функцию pslinkrunCrossRelease
запускать анализ Polyspace кода, сгенерированного при помощи Embedded Coder®. Если вы используете Polyspace и Simulink от того же релиза, смотрите Анализ Polyspace Запуска Кода, Сгенерированного из Модели Simulink.
При запуске анализа Polyspace с различного релиза MATLAB® или Simulink:
Релиз Polyspace должен быть более свежим по сравнению с вашим релизом Simulink.
Ваш релиз Simulink должен быть R2020b или позже.
Необходимо интегрировать Polyspace с Simulink. Смотрите Интегрируют Polyspace с MATLAB и Simulink.
Эта настройка перекрестного релиза не поддерживает анализ пользовательского кода в вашей модели Simulink.
Чтобы запустить анализ Polyspace кода, сгенерированного при помощи более раннего релиза Simulink, сгенерируйте архив кода из модели Simulink и затем вызовите функцию pslinkrunCrossRelease
. Создайте и настройте pslinkoptions
объект изменить настройку модели. Для списка параметров конфигурации, которые можно изменить, смотрите pslinkrunCrossRelease
. Чтобы применить опции анализа Polyspace, используйте файл опций.
Откройте модель Simulink rtwdemo_roll
и сконфигурируйте модель для генерации кода. Смотрите Рекомендуемые Параметры конфигурации Модели для Анализа Polyspace.
% Load the model model = 'rtwdemo_roll'; load_system(model); % Configure the Solver configSet = getActiveConfigSet(model); set_param(configSet,'Solver','FixedStepDiscrete'); set_param(configSet, 'SystemTargetFile', 'ert.tlc');
Анализ перекрестного релиза требует упаковки сгенерированного кода в архив кода. Установите опцию PackageGeneratedCodeAndArtifacts
к true
.
set_param(configSet, 'PackageGeneratedCodeAndArtifacts', true)
Создайте временные папки для генерации кода и сгенерируйте код.
[TEMPDIR, CGDIR] = rtwdemodir(); slbuild(model);
mkdir CodeGenFolder; cd CodeGenFolder;
Чтобы задать настройку модели для анализа Polyspace, используйте a pslinkoptions
объект. Чтобы запустить анализ Bug Finder, установите psOpt.VerificationMode
к 'BugFinder'
.
% Create a Polyspace options object from the model. psOpts = pslinkoptions(model); % Set properties that define the Polyspace analysis. psOpts.VerificationMode = 'BugFinder';
Чтобы задать опции анализа Polyspace, создайте файл опций. Файл опций является текстовым файлом, который содержит опции Polyspace в плоском списке, одной линии для каждой опции. Например, чтобы включить все средства проверки и CERT C кодирующие правила, создайте текстовый файл в текущей папке, содержащей соответствующие опции.
% Create Options file optFile = 'Options.txt'; fid = fopen(optFile,'wt'); option1 = '-checkers all'; option2 = '-cert-c all'; fprintf(fid, '%s\n%s', option1, option2); fclose(fid);
Запустите анализ Polyspace.
Чтобы задать настройки модели для запущенного анализа Polyspace, установите объект psOpt
в качестве дополнительного второго аргумента в pslinkrunCrossRelease
.
Поскольку код сгенерирован как автономный код, установите третий аргумент asModelRef
к false
.
Чтобы задать опции анализа Polyspace, задайте относительный путь к созданному файлу опций как четвертый аргумент.
% Locate options file in the current folder optionsPath = fullfile(pwd,optFile); % Run Polyspace analysis [~,resultsFolder] = pslinkrunCrossRelease(model,psOpts,false,optionsPath); bdclose(model);
В рабочем процессе перекрестного релиза, прямых вызовах функций такой как polyspaceBugFinder
или polyspaceCodeProver
не доступны. Чтобы открыть результаты, используйте функцию pslinkfun
.
Чтобы открыть результаты в Пользовательском интерфейсе Polyspace, используйте функцию pslinkfun
. Вектор символов resultsFolder
содержит полный путь к папке результатов.
pslinkfun('openresults', '-resultsfolder',resultsFolder);
В качестве альтернативы загрузите результаты на Polyspace доступ. Смотрите Результаты Загрузки к Polyspace доступ (к Polyspace Code Prover Access).
Обратитесь к результатам. Для получения дополнительной информации смотрите Результаты Polyspace Адреса Через Исправления ошибок или Выравнивания.
polyspacePackNGo
| pslinkfun
| pslinkrunCrossRelease
| packNGo
(Embedded Coder) | slbuild
(Simulink)