Анализируйте код 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 от Более раннего Релиза.
Откройте модель 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 Supported pslinkrunCrossRelease
на этой странице. Прежде чем вы запустите анализ, необходимо интегрировать Polyspace с Simulink. Смотрите Интегрируют Polyspace с MATLAB или Установкой Simulink от Более раннего Релиза.
Откройте модель 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 от Более раннего Релиза.
Откройте модель 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
к истине.
% 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 и C++ AUTOSAR 14 правил кодирования, создайте текстовый файл под названием OptionFile.txt
. В текстовом файле, введите:
-checkers all -autosarcpp14 all
Options.txt
в папке работы по умолчанию.Смотрите опции анализа в Polyspace Code Prover.
Запустите анализ 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
— Объект OptionsModelOrSubsystem
(значение по умолчанию) | объект настройки, созданный при помощи pslinkoptions
Задает настройку модели для анализа Polyspace при помощи a pslinkoptions
объект. Можно изменить определенные опции анализа путем изменения psOpt
, который является объектом, где отдельные поля представляют параметры конфигурации модели. Для полного списка опций, которые можно изменить, см. эту таблицу.
Параметры конфигурации Polyspace, поддержанные pslinkrunCrossRelease
Свойство | Описание | Значение | Описание |
---|---|---|---|
EnableAdditionalFileList | Позвольте дополнительному списку файлов анализироваться в виде true или false . Используйте с AdditionalFileList опция. | true | Polyspace проверяет дополнительные файлы, заданные в AdditionalFileList опция. |
false (значение по умолчанию) | Polyspace не проверяет дополнительные файлы. | ||
AdditionalFileList | Список дополнительных файлов, которые будут анализироваться в виде массива ячеек файлов. Чтобы добавить эти файлы в анализ, используйте EnableAdditionalFileList опция. | cellArray | Polyspace рассматривает перечисленные файлы для верификации. |
VerificationMode | Аналитический режим Polyspace, заданный как 'BugFinder' , для анализа Bug Finder или 'CodeProver' , для верификации Программы автоматического доказательства Кода. | 'BugFinder' | Polyspace запускает анализ Bug Finder. |
'CodeProver' (значение по умолчанию) | Polyspace запускает анализ Программы автоматического доказательства Кода. | ||
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)
Типы данных: логический
OptionsFile
— Относительный путь к файлу опций PolyspaceОтносительный путь к текстовому файлу, который содержит список опций анализа Polyspace. Файл опций должен иметь каждую опцию в отдельной линии.
Пример: pslinkrunCrossRelease('rtwdemo_roll', psOpt,true,'OptionsFile.txt')
Типы данных: char
polyspaceFolder
— Папка, содержащая проект Polyspace и результатыИмя папки, содержащей проекты Polyspace и результаты в виде вектора символов. Значением по умолчанию этой переменной является results_$ModelName$
.
Чтобы изменить это значение, смотрите папку Output.
resultsFolder
— Полный путь к подпапке, содержащей результаты PolyspaceПолный путь к подпапке, содержащей Polyspace, заканчивается в виде вектора символов.
Папка results_$ModelName$
содержит ваш проект Polyspace и подпапку $ModelName$
содержа результаты анализа. Эта переменная предоставляет полный путь подпапке.
Изменить родительскую папку results_$ModelName$
, смотрите папку Output.
polyspacePackNGo
| pslinkoptions
| pslinkrunCrossRelease
| slbuild
(Simulink)
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.