polyspace.ModelLinkOptions class

Пакет: полипробел

Создайте объект настройки проекта для рабочего анализа Polyspace сгенерированного кода

Описание

Запустите анализ Polyspace® от MATLAB® при помощи объекта настройки проекта. Чтобы задать исходные файлы и настроить аналитические опции, измените свойства объектов.

Этот класс предназначается для сгенерированного кода модели. Если вы анализируете рукописный код, используйте polyspace.Options вместо этого.

Примечание

Прежде чем вы запустите Polyspace из MATLAB, необходимо соединить Polyspace и установки MATLAB. Смотрите Интегрируют Polyspace с MATLAB и Simulink.

Конструкция

psprjConfig = polyspace.ModelLinkOptions создает объект настройки проекта, который сконфигурирован для выполнения анализа Polyspace сгенерированного кода.

psprjConfig = polyspace.ModelLinkOptions(lang) создает объект настройки проекта, который сконфигурирован, чтобы запустить анализ кода, сгенерированного на языке lang.

psprjConfig = polyspace.ModelLinkOptions(model) создает объект настройки проекта, который сконфигурирован при помощи определенной информации модели из модели model Simulink®. До извлечения опций от model, необходимо загрузить модель и сгенерировать код от него.

psprjConfig = polyspace.ModelLinkOptions(model, psOpt) создает объект настройки проекта модели специфичный, который сконфигурирован при помощи аналитических опций Polyspace, заданных в psOpt.

psprjConfig = polyspace.ModelLinkOptions(model, psOpt, asModelRef) создает объект настройки проекта, который использует asModelRef задавать который тип сгенерированного кода анализировать — автономный код или код модели - ссылки.

Входные параметры

развернуть все

Язык анализа, заданного как 'C-CPP'C, или 'CPP'. Этот аргумент определяет свойства объектов.

Имя или путь к модели или подсистеме в виде вектора символов.

До извлечения опций из модели вы должны:

  1. Загрузите модель. Использование load_system (Simulink) или open_system (Simulink).

  2. Сгенерируйте код из модели. Использование rtwbuild (Embedded Coder) или slbuild (Simulink).

Пример: 'psdemo_model_link_sl'

Объект, содержащий опции, которые вы используете для анализа Polyspace. Вы создаете это путем вызывания функции pslinkoptions. Можно настроить объект опций путем изменения свойств psOpt объект.

Пример: psOpt = pslinkoptions(model) где model имя модели Simulink.

Индикатор для анализа модели - ссылки в виде TRUE или FALSE.

  • Чтобы анализировать сгенерированный код, используемый или названный в другом месте, установите флаг asModelRef к true. Эта опция эквивалентна выбору Analyze Code from> Code Generated as Model Reference на вкладке Polyspace в панели инструментов Simulink.

  • Чтобы анализировать код, который сгенерирован, чтобы использоваться в качестве автономного кода, устанавливает флаг asModelRef к false. Эта опция эквивалентна выбору Analyze Code from> Code Generated as Top model на вкладке Polyspace в панели инструментов Simulink.

Типы данных: логический

Свойства

Свойства объектов соответствуют параметрам конфигурации для проектов Polyspace. Свойства организованы в тех же категориях как интерфейс Polyspace. Имена свойства являются сокращенной версией имени командной строки DOS. Для получения дополнительной информации синтаксиса см. polyspace.ModelLinkOptions Свойства.

Методы

copyToСкопируйте общие настройки между объектами опций Polyspace
generateProjectСгенерируйте psprj проект от объекта опций
toScriptДобавьте определение объекта опций Polyspace в скрипт

Примеры

свернуть все

В этом примере показано, как настроить и запустить анализ кода, сгенерированного из модели.

Сгенерируйте код из модели sldemo_bounce. Перед генерацией кода, набор системный конечный файл, подходящий для анализа кода. См. также Рекомендуемые Параметры конфигурации Модели для Анализа Polyspace.

modelName = 'rtwdemo_roll';
load_system(modelName);

% Set parameters for Embedded Coder target
set_param(modelName, 'SystemTargetFile', 'ert.tlc');
set_param(modelName,'Solver','FixedStepDiscrete');
set_param(modelName,'SupportContinuousTime','on');
set_param(modelName,'LaunchReport','off');
set_param(modelName,'InitFltsAndDblsToZero','on');

if exist(fullfile(pwd,'rtwdemo_roll_ert_rtw'), 'dir') == 0
    rtwbuild(modelName);
end

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

psprjCfg = polyspace.ModelLinkOptions(modelName);

Измените значения свойств в случае необходимости. Например, можно указать, что анализ должен проверять на весь MISRA C®: 2 012 нарушений и генерируют отчет PDF результатов. Можно также задать папку для результатов анализа.

psprjCfg.CodingRulesCodeMetrics.EnableMisraC3 = true;
psprjCfg.CodingRulesCodeMetrics.MisraC3Subset = 'all';
psprjCfg.MergedReporting.EnableReportGeneration = true;
psprjCfg.MergedReporting.ReportOutputFormat = 'PDF';
psprjCfg.ResultsDir = 'newResfolder';

Создайте polyspace.Project объект. Сопоставьте Configuration свойство этого объекта к опциям, что вы ранее заданный.

proj = polyspace.Project;
proj.Configuration = psprjCfg;

Запустите анализ и открытые результаты.

cpStatus = proj.run('codeProver');
proj.Results.getResults('readable');

В этом примере показано, как анализировать сгенерированный код, используемый в качестве вызываемой сущности в другой модели или коде.

Загрузите модель Simulink rtwdemo_roll и сконфигурируйте его для анализа Polyspace. Для получения дополнительной информации смотрите Рекомендуемые Параметры конфигурации Модели для Анализа Polyspace для деталей.

%  Specify model name
model = 'rtwdemo_roll';
% Load the model
load_system(model);
% Configure the model for generating code
set_param(model, 'SystemTargetFile', 'ert.tlc');
set_param(model,'MatFileLogging','off');
set_param(model,'GenerateComments','on');
set_param(model,'Solver','FixedStepDiscrete');
set_param(model,'LaunchReport','off');

Чтобы сгенерировать код как модель - ссылку из модели Simulink, использовать slbuild (Simulink). Установите buildspec параметр к 'ModelReferenceCoderTargetOnly'.

if exist(fullfile(pwd,'slprj','ert'), 'dir') == 0
    slbuild(model,'ModelReferenceCoderTargetOnly');
end

Чтобы сконфигурировать анализ Polyspace сгенерированного кода, создайте объект psOpt опций при помощи функционального pslinkoptions. Измените свойства объекта по мере необходимости. Например, чтобы запустить анализ Программы автоматического доказательства Кода, установите Verificationmode к 'CodeProver'.

psOpt = pslinkoptions(model);
psOpt.VerificationMode = 'CodeProver';

Чтобы запустить анализ Polyspace, создайте и сконфигурируйте объект настройки проекта Polyspace.

  • Чтобы создать объект настройки проекта Polyspace, используйте функциональный polyspace.ModelLinkOptions.

  • Чтобы сопоставить аналитические опции Polyspace с настройкой проекта, установите объект psOpt в качестве второго аргумента в polyspace.ModelLinkOptions().

  • Чтобы указать, что сгенерированный код должен анализироваться как модель - ссылка, задайте третий аргумент как 'true'.

Например:

psprjCfg = polyspace.ModelLinkOptions(model, psOpt,true);

Чтобы сконфигурировать проект Polyspace, измените свойства psprjCfg объект. Например, чтобы включить средства проверки для обязательного MISRA C: 2 012 правил и сгенерировать отчет PDF результатов, используйте:

psprjCfg = polyspace.ModelLinkOptions(model, psOpt,asModelRef);
psprjCfg.CodingRulesCodeMetrics.EnableMisraC3 = true;
psprjCfg.CodingRulesCodeMetrics.MisraC3Subset = 'mandatory-required';
psprjCfg.MergedReporting.EnableReportGeneration = true;
psprjCfg.MergedReporting.ReportOutputFormat = 'PDF';
Для удобства можно задать отдельную папку результата.
psprjCfg.ResultsDir = 'newResfolder';

Создайте проект Polyspace при помощи polyspace.Project и сопоставьте настройку проекта с ним.

proj = polyspace.Project;
proj.Configuration = psprjCfg;

Запустите анализ Polyspace при помощи run функция объекта proj.

cpStatus = proj.run('codeProver');

Поскольку вы включили генерацию отчета PDF, о результате анализа Polyspace сообщают в файле PDF, который может быть найден в newResfolder/Polyspace-Doc. Чтобы просмотреть результаты в таблице MATLAB, используйте:

result = proj.Results.getResults('readable');

Альтернативы

Если вы анализируете рукописный код, используйте polyspace.Project возразите непосредственно. В качестве альтернативы используйте polyspace.Options объект.

Введенный в R2017a