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