Можно использовать более свежий релиз 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, используйте 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);
В кросс-release рабочем процессе прямые вызовы таких функций, как polyspaceBugFinder или polyspaceCodeProver недоступны. Чтобы открыть результаты, используйте функцию pslinkfun.
Чтобы открыть результаты в пользовательском интерфейсе Polyspace, используйте функцию pslinkfun. Вектор символов resultsFolder содержит полный путь к папке результатов.
pslinkfun('openresults', '-resultsfolder',resultsFolder);
Кроме того, загрузите результаты в Polyspace Access. Смотрите Загрузку результатов в Polyspace Access (Polyspace Code Prover Access).
Адресовать результаты. Для получения дополнительной информации смотрите Адрес Polyspace Результаты через исправления ошибок или обоснования.
polyspacePackNGo | pslinkfun | pslinkrunCrossRelease | packNGo (Embedded Coder) | slbuild (Simulink)