Анализируйте код C/C + +, сгенерированный R2020b или новыми версиями Embedded Coder, используя другую версию Polyspace, которая является более новой, чем версия Simulink
[
запускает Polyspace® анализ кода, сгенерированного из polyspaceFolder
, resultsFolder
] = pslinkrunCrossRelease(ModelOrSubsystem
)ModelOrSubsystem
при помощи Embedded Coder® из более раннего релиза Simulink®.
[
запускает анализ Polyspace кода, сгенерированного из polyspaceFolder
, resultsFolder
] = pslinkrunCrossRelease(ModelOrSubsystem
,psOpt
)ModelOrSubsystem
через более ранний релиз Simulink. В анализе используются опции строения модели, которые заданы в pslinkoptions
psOpt объекта
.
[
запускает анализ Polyspace кода, сгенерированного как модель-ссылка из polyspaceFolder
, resultsFolder
] = pslinkrunCrossRelease(ModelOrSubsystem
,psOpt
,asModelRef
)ModelOrSubsystem
с помощью более раннего релиза Simulink. В анализе используются asModelRef
для определения типа сгенерированного кода для анализа - автономного кода или модели-ссылки кода.
[
запускает анализ Polyspace кода, сгенерированного из polyspaceFolder
, resultsFolder
] = pslinkrunCrossRelease(ModelOrSubsystem
,psOpt
,asModelRef
,OptionsFile
)ModelOrSubsystem
через более ранний релиз Simulink. В анализе используются опции анализа Polyspace, заданные в файле опций OptionsFile
.
Чтобы запустить анализ Polyspace на коде, сгенерированном при помощи более раннего релиза Simulink, используйте функцию pslinkrunCrossRelease
. В анализе используются опции строения, связанные с ModelOrSubsystem
. Значение релиза Simulink должно быть R2020b или более поздним. Прежде чем вы запустите анализ, необходимо интегрировать Polyspace с Simulink. См. раздел Интеграция Polyspace с MATLAB или Simulink Installation из более раннего релиза.
Откройте модель Simulink rtwdemo_roll
и сконфигурируйте модель для генерации кода.
% 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);
Запустите анализ Polyspace.
% Run Polyspace analysis
[~,resultsFolder] = pslinkrunCrossRelease(model);
bdclose(model);
resultsFolder
содержит полный путь к папке результатов.Чтобы запустить анализ Polyspace с изменёнными строениями модели, используйте pslinkoptions
объект. Список строений модели, связанных с анализом Polyspace, который можно изменить, см. в таблице Polyspace Configuration Parameters Поддерживаемые pslinkrunCrossRelease
на этой странице. Прежде чем вы запустите анализ, необходимо интегрировать Polyspace с Simulink. См. раздел Интеграция Polyspace с MATLAB или Simulink Installation из более раннего релиза.
Откройте модель Simulink rtwdemo_roll
и сконфигурируйте модель для генерации кода.
% 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);
Чтобы задать строения модели для анализа Polyspace, используйте pslinkoptions
объект. Создайте этот объект с помощью функции pslinkoptions
. Чтобы запустить анализ Bug Finder, установите psOpt.VerificationMode
на 'BugFinder'
. Чтобы утвердить области значений, заданные в блоке на его переменных входах, задайте psOpts.InputRangeMode
как 'DesignMinMax'
.
% Create a Polyspace options object from the model. psOpts = pslinkoptions(model); % Set model configurtion for the Polyspace analysis. psOpts.VerificationMode = 'BugFinder'; psOpts.InputRangeMode = 'DesignMinMax';
Запустите анализ Polyspace. Чтобы задать строение модели для анализа Polyspace, установите объект psOpt
как необязательный второй аргумент в pslinkrunCrossRelease
.
% Run Polyspace analysis
[~,resultsFolder] = pslinkrunCrossRelease(model,psOpt);
bdclose(model);
resultsFolder
содержит полный путь к папке результатов.Чтобы ускорить симуляции модели, активируйте ссылочные модели Simulink в качестве целей симуляции. Чтобы сгенерировать модель-ссылку симуляции цели из модели Simulink, сгенерируйте код из ModelOrSubsystem
при помощи slbuild
с процессом сборки, заданным как ModelReferenceCoderTargetOnly
. Упаковать сгенерированный код при помощи packNGo
(Embedded Coder). Затем проанализируйте сгенерированный код, запустив перекрестный анализ Polyspace. Прежде чем вы запустите анализ, необходимо интегрировать Polyspace с Simulink. См. раздел Интеграция Polyspace с MATLAB или Simulink Installation из более раннего релиза.
Откройте модель Simulink rtwdemo_roll
и сконфигурируйте модель для генерации кода.
% 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'); set_param(configSet, 'PackageGeneratedCodeAndArtifacts', true)
Создайте временные папки для генерации кода и сгенерируйте код. Задайте опцию ModelReferenceCoderTargetOnly
. Посмотрите slbuild
(Simulink).
[TEMPDIR, CGDIR] = rtwdemodir();
slbuild(model,'ModelReferenceCoderTargetOnly');
slprj
Чтобы упаковать код, который генерируется как модель-ссылка, используйте функцию packNGo
. Найдите файл buildinfo.mat
в
и используйте полный путь к нему в качестве входов <working folder>
/ slprj/ert/rtwdemo_counterpackNGo
. Эта команда генерирует архив, содержащий сгенерированный код и объект buildinfo.mat
. Посмотрите packNGo
(Embedded Coder).
% Locate buildinfo and generate code archive buildinfo = fullfile(pwd,'slprj','ert',model,'buildinfo.mat'); packNGo(buildinfo)
Чтобы задать опции анализа Polyspace, используйте pslinkoptions
объект. Создайте этот объект с помощью функции 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'; psOpts.InputRangeMode = 'DesignMinMax';
Запустите анализ Polyspace. Чтобы задать опции анализа Polyspace, установите объект psOpt
как необязательный второй аргумент в pslinkrunCrossRelease
. Чтобы проанализировать код как модель-ссылку, установите необязательный третий аргумент asModelRef
к true.
% Run Polyspace analysis
[~,resultsFolder] = pslinkrunCrossRelease(model,psOpt,true);
bdclose(model);
resultsFolder
содержит полный путь к папке результатов. Откройте модель Simulink rtwdemo_roll
и сконфигурируйте модель для генерации кода.
% 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);
Чтобы задать строение модели для анализа Polyspace, используйте pslinkoptions
объект. Создайте этот объект с помощью функции 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'; psOpts.InputRangeMode = 'DesignMinMax';
Чтобы задать опции анализа Polyspace, создайте файл опций. Файл параметров является текстовым файлом, который содержит опции Polyspace в плоском списке, по одной линии для каждой опции. Например, чтобы включить все шашки Bug Finder и правила кодирования AUTOSAR C++ 14, создайте текстовый файл с именем OptionFile.txt
. В текстовом файле введите:
-checkers all -autosarcpp14 all
Options.txt
в рабочей папке по умолчанию.Запустите анализ Polyspace.
Чтобы задать строения модели для запуска анализа Polyspace, установите объект psOpt
как необязательный второй аргумент в pslinkrunCrossRelease
.
Поскольку код генерируется как автономный код, задайте третий аргумент asModelRef
на false
.
Чтобы задать опции анализа Polyspace, укажите относительный путь к созданному файлу опций в качестве четвертого аргумента.
% Locate options file optionsPath = fullfile(userpath,'Options.txt'); % Run Polyspace analysis [~,resultsFolder] = pslinkrunCrossRelease(model,psOpts,false,optionsPath); bdclose(model);
resultsFolder
содержит полный путь к папке результатов.ModelOrSubsystem
- Цель анализаbdroot
(по умолчанию) | имя модели или системыЦель анализа, заданная как вектор символов с моделью или системой в одинарных кавычках. Значение по умолчанию является системой, возвращаемой bdroot
(Simulink).
Пример: resultsDir = pslinkrunCrossRelease('rtwdemo_roll')
где rtwdemo_roll
- имя модели.
Типы данных: char
psOpt
- Объект ОпцииModelOrSubsystem
(по умолчанию) | объект строения, созданный при помощи pslinkoptions
Задает строение модели для анализа Polyspace при помощи pslinkoptions
объект. Можно изменить определенные опции анализа путем изменения psOpt
, который является объектом, где отдельные поля представляют опции строения модели. Полный список опций, которые можно изменить, см. в этой таблице.
Параметры конфигурации Polyspace поддерживаются pslinkrunCrossRelease
Свойство | Описание | Значение | Описание |
---|---|---|---|
EnableAdditionalFileList | Включите анализ дополнительного списка файлов, заданный как true или false . Используйте с AdditionalFileList опция. | true | Polyspace проверяет дополнительные файлы, указанные в AdditionalFileList опция. |
false (по умолчанию) | Polyspace не проверяет дополнительные файлы. | ||
AdditionalFileList | Список дополнительных файлов, подлежащих анализу, задается как массив ячеек файлов. Чтобы добавить эти файлы к анализу, используйте EnableAdditionalFileList опция. | массив ячеек | Polyspace рассматривает перечисленные файлы для верификации. |
VerificationMode | Режим анализа Polyspace задается как 'BugFinder' , для анализа Bug Finder, или 'CodeProver' , для верификации Code Prover. | 'BugFinder' | Polyspace запускает анализ Bug Finder. |
CodeProver (по умолчанию) | Polyspace запускает анализ Code Prover. | ||
InputRangeMode | Задает область значений входных переменных. | 'DesignMinMax' (по умолчанию) | Polyspace использует входную область значений, заданный в рабочей области или блоке. |
'Fullrange' | Polyspace использует входы полной области значений. | ||
ParamRangeMode | Задает область значений постоянных параметров. | 'DesignMinmax' | Polyspace использует постоянный параметр области значений заданный в рабочей области или в блоке. |
'None' (по умолчанию) | Polyspace использует значение параметров, заданных в коде. | ||
OutputRangeMode | Задает выходные значения. | 'DesignMinMax' | Polyspace применяет утверждения к выходам с помощью области значений, заданной в блоке или рабочей области. |
'None' (по умолчанию) | Polyspace не применяет утверждения к переменным выходам. | ||
ModelRefVerifDepth | Задайте глубину для анализа моделей, на которые ссылается текущая модель. | 'Current model Only' (по умолчанию) | Polyspace анализирует только модель верхней части, не анализируя ссылку на модели. Используйте эту опцию, когда вы ссылаетесь на модели, которые не нужно анализировать, такие как модели библиотеки. |
'1'|'2'|'3' | Polyspace анализирует ссылки на модели до заданной глубины в иерархии ссылок. Чтобы проанализировать модели, на которые ссылается верхняя часть, задайте свойство ModelRefVerifDepth как '1' . Чтобы анализировать модели, на которые ссылается первый уровень ссылок, задайте это свойство как '2' . | ||
'All' | Polyspace проверяет все ссылочные модели. | ||
ModelRefByModelRefVerif | Укажите, нужно ли анализировать все ссылочные модели вместе или по отдельности. | true | Polyspace анализирует верхнюю модель и ссылочные модели вместе. Используйте эту опцию для проверки проблем интегрирования или масштабирования. |
false (по умолчанию) | Polyspace анализирует верхнюю модель и ссылочные модели индивидуально. | ||
AutoStubLUT | Определяет, как используются интерполяционные таблицы. | true (по умолчанию) | Polyspace заглушает интерполяционные таблицы и проверяет модель, не анализируя код интерполяционной таблицы. |
false | Polyspace включает код интерполяционной таблицы в анализ. | ||
CheckConfigBeforeAnalysis | Задает уровень проверки строения, выполненной до начала анализа Polyspace. | 'Off' | Polyspace проверяет только на ошибки. Анализ останавливается, если обнаружены ошибки. |
'OnWarn' (по умолчанию) | Polyspace останавливает анализ при обнаружении ошибок и отображает сообщение при обнаружении предупреждений. | ||
'OnHalt' | Polyspace останавливает анализ при обнаружении ошибок или предупреждений. |
Пример: pslinkrunCrossRelease('rtwdemo_roll', psOpt)
, где psOpt
- объект опций, созданный вызовом pslinkoptions
asModelRef
- Индикатор для эталонного анализа моделиfalse
(по умолчанию) | true
Индикатор для модели-ссылки анализа, заданный как true
или false
.
Если asModelRef
является false
(по умолчанию), функция генерирует файлы опций, так что Polyspace анализирует сгенерированный код как автономный код.
Если asModelRef
является true
, функция генерирует файлы опций, так что Polyspace анализирует сгенерированный код как модель-ссылка код.
Пример: pslinkrunCrossRelease('rtwdemo_roll', psOpt,true)
Типы данных: logical
OptionsFile
- Относительный путь к файлу опций PolyspaceОтносительный путь к текстовому файлу, который содержит список опций анализа Polyspace. Файл опций должен иметь каждую опцию в отдельной линии.
Пример: pslinkrunCrossRelease('rtwdemo_roll', psOpt,true,'OptionsFile.txt')
Типы данных: char
polyspaceFolder
- Папка, содержащая проект Polyspace и результатыИмя папки, содержащей проекты и результаты Polyspace, заданное как вектор символов. Значение по умолчанию этой переменной results_$ModelName$
.
Чтобы изменить это значение, смотрите Выходную папку.
resultsFolder
- Полный путь к подпапке, содержащей результаты PolyspaceПолный путь к подпапке, содержащей результаты Polyspace, заданный как вектор символов.
Папка results_$ModelName$
содержит ваш проект Polyspace и подпапку $ModelName$
содержащие результаты анализа. Эта переменная предоставляет полный путь к подпапке.
Как изменить родительскую папку results_$ModelName$
, см. «Выходная папка».
polyspacePackNGo
| pslinkoptions
| pslinkrunCrossRelease
| slbuild
(Simulink)
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.