exponenta event banner

pslinkrun

Выполнение анализа Polyspace для модели, системы или S-функции

Описание

[polyspaceFolder, resultsFolder] = pslinkrun анализирует код, сгенерированный текущей системой, используя опции конфигурации, связанные с текущей системой. Он возвращает расположение папки результатов. Текущая система - это система, возвращенная командой bdroot (Симулинк).

пример

[polyspaceFolder, resultsFolder]= pslinkrun(target) анализирует target с опциями конфигурации, связанными с моделью, содержащей target. Перед выполнением анализа необходимо выполнить следующие действия.

  • Создание кода для моделей и подсистем.

  • Скомпилировать S-функции.

[polyspaceFolder, resultsFolder] = pslinkrun('-slcc',target) запускает Polyspace ® с пользовательским кодом C/C + +, включенным в блоки Caller и диаграммы Stateflow в модели.

пример

[polyspaceFolder, resultsFolder] = pslinkrun(target, opts) анализирует target использование опций конфигурации, указанных в объекте opts. Он возвращает расположение папки результатов.

[polyspaceFolder, resultsFolder] = pslinkrun('-slcc', target, opts) запускает Polyspace для пользовательского кода C/C + +, включенного в блоки Caller и диаграммы Stateflow в модели. Анализ использует опции конфигурации, указанные в объектеopts.

пример

[polyspaceFolder, resultsFolder] = pslinkrun(target, opts, asModelRef) использование asModelRef указать тип создаваемого кода для анализа - автономный код или ссылочный код модели. Эта опция полезна, если требуется проанализировать код, созданный как ссылка на модель. Код, генерируемый как ссылка на модель, предназначен для вызова или использования в других моделях или коде.

пример

[polyspaceFolder, resultsFolder] = pslinkrun('-codegenfolder', codegenFolder, opts) запускает Polyspace для кода C/C + +, созданного из кода MATLAB ® и сохраненного вcodegenFolder.

Примечание

Перед запуском Polyspace из MATLAB необходимо связать установки Polyspace и MATLAB. См. раздел Интеграция полиспейса с MATLAB и Simulink.

Примеры

свернуть все

Модель Simulink ® используется для создания кода, задания параметров конфигурации и последующего выполнения анализа из командной строки.

% Generate code from the model WhereAreTheErrors.
model = 'WhereAreTheErrors';
load_system(model);
slbuild(model);

% Create a Polyspace options object from the model. 
opts = pslinkoptions(model);

% Set properties that define the Polyspace analysis.
opts.VerificationMode = 'CodeProver';
opts.VerificationSettings = 'PrjConfigAndMisraC2012';

% Run Polyspace using the options object.
[polyspaceFolder, resultsFolder] = pslinkrun(model,opts);
bdclose(model);

Результаты и соответствующий проект Polyspace сохраняются в results_WhereAreTheErrors папка, перечисленная в polyspaceFolder переменная. Полный путь к папке результатов находится в resultsFolder переменная.

Модель Simulink используется для создания ссылочного кода модели, задания опций конфигурации и последующего выполнения анализа из командной строки.

% Generate code from the model WhereAreTheErrors.
% Treat WhereAreTheErrors as if referenced by another model.
model = 'WhereAreTheErrors';
load_system(model);
slbuild(model,'ModelReferenceCoderTargetOnly');

% Create a Polyspace options object from the model. 
opts = pslinkoptions(model);

% Set properties that define the Polyspace analysis.
opts.VerificationMode = 'CodeProver';
opts.VerificationSettings = 'PrjConfigAndMisraC2012';

% Run Polyspace with the options object.
[polyspaceFolder, resultsFolder] = pslinkrun(model,opts,true);
bdclose(model);

Результаты и соответствующий проект Polyspace сохраняются в results_mr_WhereAreTheErrors папка, перечисленная в polyspaceFolder переменная. Полный путь к папке результатов находится в resultsFolder переменная.

В этом примере показано, как повторно использовать подмножество опций для анализа Polyspace нескольких моделей. Создайте общий объект параметров и укажите свойства, описывающие общие параметры. Свяжите базовый объект опций с объектом опций модели. При необходимости задайте некоторые параметры модели и выполните анализ Polyspace.

% Generate code from the model WhereAreTheErrors.
model = 'psdemo_model_link_sl';
load_system(model);
slbuild(model);

% Create a generic options object to use for multiple model analyses.
opts = polyspace.ModelLinkOptions();
opts.CodingRulesCodeMetrics.EnableMisraC3 = true;
opts.CodingRulesCodeMetrics.MisraC3Subset = 'all';
opts.MergedReporting.ReportOutputFormat = 'PDF';
opts.MergedReporting.EnableReportGeneration = true;

% Create a model-specific options object.
mlopts = pslinkoptions(model);

% Create a project from the generic options object.
% Associate the project with the model-specific options object. 
prjfile = opts.generateProject('model_link_opts');
mlopts.EnablePrjConfigFile = true;
mlopts.PrjConfigFile = prjfile;
mlopts.VerificationMode = 'BugFinder';

% Run Polyspace with the model-specific options object.
[polyspaceFolder, resultsFolder] = pslinkrun(model,mlopts);
bdclose(model);

После завершения анализа результаты автоматически открываются в интерфейсе Polyspace.

В этом примере показан анализ кода C/C + +, созданного из кода MATLAB.

% Generate code
codeName = 'average_filter';
matlabFileName = fullfile(polyspaceroot, 'help',...
    'toolbox','codeprover','examples','matlab_coder','averaging_filter.m');
codegenFolder = fullfile(pwd, 'codegenFolder');
codegen(matlabFileName, '-config:lib', '-c', '-args', ...
   {zeros(1,100,'double')}, '-d', codegenFolder);

% Configure Polyspace analysis
opts = pslinkoptions('ec');
opts.ResultDir = ['results_',codeName];
opts.OpenProjectManager = 1;

% Run Polyspace
[polyspaceFolder, resultsFolder] = pslinkrun('-codegenfolder', codegenFolder, opts);

После завершения анализа результаты автоматически открываются в интерфейсе Polyspace.

Входные аргументы

свернуть все

Цель анализа, указанная как символьный вектор, с моделью, системой или S-функцией в отдельных кавычках. Значением по умолчанию является система, возвращенная bdroot (Симулинк).

При анализе пользовательского кода в блоках Caller C и диаграммах Stateflow с помощью pslinkrun('-slcc',...), аргумент target не может быть блоком S-Function.

Пример: [polyspaceFolder, resultsFolder] = pslinkrun('demo') где demo - имя модели.

Пример: [polyspaceFolder, resultsFolder] = pslinkrun('path/to/sfunction')

Типы данных: char

Укажите опции конфигурации target, задается как объект параметров Polyspace. Функция pslinkoptions создает такой объект опций. Можно настроить объект опций, изменив pslinkoption свойства.

Пример: pslinkrun('demo', opts_demo) где demo - имя модели и opts_demo является объектом опций.

Индикатор для ссылочного анализа модели, указанный как true или false.

  • Если asModelRef false (по умолчанию), Polyspace анализирует созданный код как автономный код. Эта опция эквивалентна выбору «Проверить код, созданный для» > «Модель» в опциях «Simulink Polyspace».

  • Если asModelRef true, Polyspace анализирует созданный код как ссылочный код модели. Эта опция эквивалентна выбору команды «Проверить созданный код для» > «Ссылочная модель» в опциях «Simulink Polyspace». Указание ссылочного кода модели указывает на то, что Polyspace должен искать созданный код в расположении, отличном от расположения автономного кода.

Типы данных: logical

Папка, содержащая код C/C + +, созданный из кода MATLAB, указанный как символьный вектор. Вы указываете эту папку с помощью codegen с использованием флага -d.

Выходные аргументы

свернуть все

Имя папки, содержащей проект и результаты Polyspace, указанное как вектор символов. Значение по умолчанию для этой переменной: results_$ModelName$.

Чтобы изменить это значение, см. раздел Папка вывода.

Полный путь к подпапке, содержащей результаты Polyspace, указанный как символьный вектор.

Папка results_$ModelName$ содержит проект Polyspace и подпапку $ModelName$ с результатами анализа. Эта переменная предоставляет полный путь к подпапке. Этот путь можно использовать с polyspace.BugFinderResults или polyspace.CodeProverResults объект.

Изменение родительской папки results_$ModelName$, см. папку «Вывод».

Представлен в R2012a