Анализируйте код 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.