Сгенерируйте и упакуйте файлы опций, чтобы запустить анализ Polyspace кода, сгенерированного из модели Simulink
исследует Simulink® модель archivePath = polyspacePackNGo(mdlName)mdlName, Polyspace извлечений® файлы опций от него и пакеты файлы опций в zip-файле, расположенном в archivePath. Перед использованием polyspacePackNGo, сгенерируйте код из своей модели Simulink. Затем заархивируйте сгенерированный код, например, при помощи packNGo. Сгенерируйте файлы опций Polyspace из модели Simulink и включайте их в архив кода при помощи polyspacePackNGo. В различной среде разработки, при выполнении анализа Polyspace сгенерированного кода, используют файлы опций, включенные в архив кода, чтобы сохранить информацию модели специфичную, такую как технические требования области значений проекта. У вас должен быть Embedded Coder® использовать slbuild.
генерирует и упаковывает файлы опций Polyspace, которые сгенерированы согласно спецификации в archivePath = polyspacePackNGo(mdlName,psOpt)psOpt. Объект psOpt должен быть объект опций Polyspace, который сгенерирован при помощи pslinkoptions. Используя psOpt, измените опции для анализа Polyspace.
генерирует и упаковывает файлы опций Polyspace при помощи archivePath = polyspacePackNGo(mdlName,psOpt,asModelRef)asModelRef задавать, сгенерировать ли файлы опции для кода модели - ссылки или автономного кода.
Чтобы сгенерировать и упаковать файлы опций Polyspace для модели Simulink, использовать polyspacePacknGo.
Откройте модель Simulink rtwdemo_counter и задайте папку для хранения сгенерированного кода.
% Make temporary folders for code genration [TEMPDIR, CGDIR] = rtwdemodir(); % Open the model mdlName = 'rtwdemo_counter'; open_system(mdlName); % Specify a folder for generated code codegenFolder = 'rtwdemo_counter_ert_rtw';
Чтобы позволить упаковать сгенерированный код в архиве, установите опцию PackageGeneratedCodeAndArtifacts к true. Задайте имя архива сгенерированного кода как genCodeArchive.zip.
configSet = getActiveConfigSet(mdlName); set_param(configSet, 'PackageGeneratedCodeAndArtifacts', true); set_param(configSet, 'PackageName', 'genCodeArchive.zip');
Чтобы сделать модель совместимой с Polyspace, установите SystemTargetFile к ert.tlc.
set_param(configSet, 'SystemTargetFile', 'ert.tlc');
После конфигурирования модели сгенерируйте код.
slbuild(mdlName)
Поскольку PackageGeneratedCodeAndArtifacts установлен в true, сгенерированный код упаковывается в архив genCodeArchive.zip.
Сгенерируйте и упакуйте файлы опций Polyspace.
zipFile = polyspacePackNGo(mdlName);
genCodeArchive.zip, файлы опций Polyspace упакованы в polyspace папка.Чтобы задать опции анализа Polyspace при упаковке и генерации файлов опций, использовать pslinktoptions.
Откройте модель Simulink rtwdemo_counter и сконфигурируйте модель для генерации архива кода, который совместим с Polyspace.
% Make temporary folders for code genration [TEMPDIR, CGDIR] = rtwdemodir(); % Open the model mdlName = 'rtwdemo_counter'; open_system(mdlName); % Specify a folder for generated code codegenFolder = 'rtwdemo_counter_ert_rtw'; configSet = getActiveConfigSet(mdlName); % Enable packing the generated code into an archive set_param(configSet, 'PackageGeneratedCodeAndArtifacts', true); % Specify a name for the code archive set_param(configSet, 'PackageName', 'genCodeArchive.zip'); % Configure the model to be Polyspace Compatible set_param(configSet, 'SystemTargetFile', 'ert.tlc');
После конфигурирования модели сгенерируйте код.
slbuild(mdlName)
Поскольку PackageGeneratedCodeAndArtifacts установлен в true, сгенерированный код упаковывается в архив genCodeArchive.zip.
Чтобы задать настройку модели для анализа Polyspace, используйте pslinkoptions объект. Создайте этот объект при помощи функционального pslinkoptions.
psOpt = pslinkoptions(mdlName);
psopt структура, где поля являются настройками модели, которые можно задать.Задайте настройку модели при помощи psOpt объект. Например, установите InputRangeMode к полному спектру. Для полного списка опций смотрите входной параметр psOpt.
psOpt.InputRangeMode = 'FullRange';Сгенерируйте и упакуйте файлы опций Polyspace. Используйте psOpt возразите в качестве второго аргумента в polyspacePacknGo.
zipFile = polyspacePackNGo(mdlName,psOpt);
genCodeArchive.zip, файлы опций Polyspace упакованы в polyspace папка. Файл optionsFile.txt содержит заданные опции анализа Polyspace.Чтобы ускорить симуляции модели, вызовите модели Simulink, на которые ссылаются, как цели симуляции. Чтобы сгенерировать цели симуляции модели - ссылки из модели Simulink, сгенерируйте код из модели при помощи slbuild с процессом сборки, заданным как ModelReferenceCoderTargetOnly. Затем группируйте сгенерированный код при помощи packNGo. Чтобы сгенерировать и упаковать файлы опций Polyspace для анализа такого кода, используйте функцию polyspacePacknGo с дополнительным аргументом asModelRef установите на true.
Откройте модель Simulink rtwdemo_counter и сконфигурируйте модель для генерации архива кода, который совместим с Polyspace.
% Make temporary folders for code genration [TEMPDIR, CGDIR] = rtwdemodir(); % Load model mdlName = 'rtwdemo_counter'; load_system(mdlName); configSet = getActiveConfigSet(mdlName); % Enable packing the generated code into an archive set_param(configSet, 'PackageGeneratedCodeAndArtifacts', true); set_param(configSet, 'PackageName', ''); % Configure the model to be Polyspace Compatible set_param(configSet, 'SystemTargetFile', 'ert.tlc');
После конфигурирования модели сгенерируйте цель симуляции модели - ссылки от него при помощи функции slbuild. Задайте опцию ModelReferenceCoderTargetOnly. Смотрите slbuild.
slbuild(mdlName,'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',mdlName,'buildinfo.mat'); packNGo(buildinfo)
Сгенерируйте и упакуйте файлы опций Polyspace. Не используйте дополнительный второй аргумент. Установите третий аргумент asModelRef к true.
zipFile = polyspacePackNGo(mdlName,[],true);
rtwdemo_counter.zip, файлы опций Polyspace упакованы в polyspace папка.mdlName — Имя модели Simulink, для которой можно сгенерировать файлы опций PolyspaceСимвольный массив, содержащий имя модели, для которой вы хотите сгенерировать и упаковать файлы опций Polyspace.
Пример: polyspacePackNGo('rtwdemo_roll')
Типы данных: char
psOpt — Объект опций Polyspacemodel (значение по умолчанию) | объект, созданный при помощи pslinkoptionsЗадает настройку модели для анализа Polyspace при помощи a pslinkoptions объект. Можно изменить определенные опции анализа путем изменения psOpt, который является структурой, где отдельные поля представляют опции анализа. Для списка заливок опций, которые можно изменить, см. таблицу Polyspace Analysis Options Supported polyspacePacknGo.
Опции анализа Polyspace, поддержанные polyspacePacknGo
| Свойство | Значение | Описание |
|---|---|---|
EnableAdditionalFileList: Позвольте дополнительному списку файлов анализироваться в виде true или false. Используйте с AdditionalFileList опция. | true | Polyspace проверяет дополнительные файлы, заданные в AdditionalFileList опция. |
false (значение по умолчанию) | Polyspace не проверяет дополнительные файлы. | |
AdditionalFileList: Список дополнительных файлов, которые будут анализироваться заданный как массив ячеек файлов. Чтобы добавить эти файлы в анализ, используйте EnableAdditionalFileList опция. | cellArray | 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 останавливает анализ, когда или ошибки или предупреждения найдены. |
Пример: polyspacePackNGo('rtwdemo_roll', psOpt), где ps_opt объект опций, созданный путем вызова pslinkoptions
asModelRef — Индикатор для анализа модели - ссылкиfalse (значение по умолчанию) | trueИндикатор для анализа модели - ссылки в виде true или false.
Если asModelRef false (значение по умолчанию), функция генерирует файлы опций так, чтобы Polyspace анализировал сгенерированный код как автономный код.
Если asModelRef true, функция генерирует файлы опций так, чтобы Polyspace анализировал сгенерированный код как код модели - ссылки.
Примечание
Если вы устанавливаете asModelRef к trueИспользование slbuild сгенерировать код.
Пример: polyspacePackNGo('rtwdemo_roll', psOpt,true)
Типы данных: логический
archivePath — Полный путь в архив, содержащий сгенерированные файлы опцийСимвольный массив, содержащий путь к сгенерированному архиву. Файлы опций расположены в polyspace папка в архиве. polyspace папка содержит эти файлы опций:
optionsFile.txt: текстовый файл, содержащий опции Polyspace, требуемые запускать анализ Polyspace сгенерированного кода, не теряя информацию модели специфичную, такую как спецификация области значений проекта.
: Файл, содержащий спецификацию области значений проекта модели.model_drs.xml
linkdata.xml: Файл, который соединяет сгенерированный код с компонентами модели.
Чтобы запустить анализ Polyspace сгенерированного кода в среде, которая отличается, чем среда, где код был сгенерирован из модели Simulink, используйте эти файлы.
Типы данных: char
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.