Создайте объект опций настроить настройку модели Simulink, сгенерированного кода или Блока s-function. Используйте объект задать параметры конфигурации для этих объектов Simulink в Polyspace, запущенном из командной строки MATLAB
возвращает объект опций с параметрами конфигурации для S-функции.opts
= pslinkoptions(sfunc
)
Примечание
Прежде чем вы запустите Polyspace® из MATLAB®, необходимо соединить Polyspace и установки MATLAB. Смотрите Интегрируют Polyspace с MATLAB и Simulink (Polyspace Bug Finder).
В этом примере показано, как можно создать типовой объект опций Polyspace, который подходит для анализа кода, сгенерированного при помощи Embedded Coder. Этот объект опций предварительно заполняется соответствующими параметрами Embedded Coder. Отредактируйте объект опций изменить типовой анализ.
Создайте новый объект new_opt
настройки Polyspace путем вызова функционального
pslinkoptions
и задайте 'ec'
как входной параметр.
new_opt = pslinkoptions('ec')
new_opt = ResultDir: 'results_$ModelName$' VerificationSettings: 'PrjConfig' OpenProjectManager: 0 AddSuffixToResultDir: 0 EnableAdditionalFileList: 0 AdditionalFileList: {} VerificationMode: 'BugFinder' EnablePrjConfigFile: 0 PrjConfigFile: '' AddToSimulinkProject: 0 InputRangeMode: 'DesignMinMax' ParamRangeMode: 'None' OutputRangeMode: 'None' ModelRefVerifDepth: 'Current model only' ModelRefByModelRefVerif: 0 AutoStubLUT: 1 CxxVerificationSettings: 'PrjConfig' CheckConfigBeforeAnalysis: 'OnWarn' VerifAllSFcnInstances: 0
По умолчанию этот объект опций использует те же настройки верификации, которые вы задаете в проекте Polyspace. Чтобы проверять MISRA C® 2012, кодирующий нарушения правила в дополнение к существующим верификациям, заданным в проекте, запустите этот код в командной строке MATLAB:
new_opt.VerificationSettings = 'PrjConfigAndMisraC2012'
new_opt = ResultDir: 'results_$ModelName$' VerificationSettings: 'PrjConfigAndMisraC2012' OpenProjectManager: 0 AddSuffixToResultDir: 0 EnableAdditionalFileList: 0 AdditionalFileList: {} VerificationMode: 'BugFinder' EnablePrjConfigFile: 0 PrjConfigFile: '' AddToSimulinkProject: 0 InputRangeMode: 'DesignMinMax' ParamRangeMode: 'None' OutputRangeMode: 'None' ModelRefVerifDepth: 'Current model only' ModelRefByModelRefVerif: 0 AutoStubLUT: 1 CxxVerificationSettings: 'PrjConfig' CheckConfigBeforeAnalysis: 'OnWarn' VerifAllSFcnInstances: 0
Когда вы запускаете анализ Polyspace сгенерированного кода, вы можете хотеть открыть Пользовательский интерфейс Polyspace, чтобы следовать за прогрессом и рассмотреть результаты впоследствии. Чтобы открыть интерфейс Polyspace, когда вы запустите анализ, запустите этот код:
new_opt.OpenProjectManager = true
new_opt = ResultDir: 'results_$ModelName$' VerificationSettings: 'PrjConfigAndMisraC2012' OpenProjectManager: 1 AddSuffixToResultDir: 0 EnableAdditionalFileList: 0 AdditionalFileList: {} VerificationMode: 'BugFinder' EnablePrjConfigFile: 0 PrjConfigFile: '' AddToSimulinkProject: 0 InputRangeMode: 'DesignMinMax' ParamRangeMode: 'None' OutputRangeMode: 'None' ModelRefVerifDepth: 'Current model only' ModelRefByModelRefVerif: 0 AutoStubLUT: 1 CxxVerificationSettings: 'PrjConfig' CheckConfigBeforeAnalysis: 'OnWarn' VerifAllSFcnInstances: 0
В этом примере показано, как можно сохранить настройки Polyspace модели Simulink в к объекту и использовать объект отредактировать параметры конфигурации.
Загрузите модель closed_loop_control.
load_system('closed_loop_control');
Чтобы создать объект, содержащий настройки Polyspace модели, вызовите pslinkoptions.
model_opt = pslinkoptions('closed_loop_control')
model_opt = ResultDir: 'results_$ModelName$' VerificationSettings: 'PrjConfig' OpenProjectManager: 0 AddSuffixToResultDir: 0 EnableAdditionalFileList: 0 AdditionalFileList: {} VerificationMode: 'BugFinder' EnablePrjConfigFile: 0 PrjConfigFile: '' AddToSimulinkProject: 0 InputRangeMode: 'DesignMinMax' ParamRangeMode: 'None' OutputRangeMode: 'None' ModelRefVerifDepth: 'Current model only' ModelRefByModelRefVerif: 0 AutoStubLUT: 1 CxxVerificationSettings: 'PrjConfig' CheckConfigBeforeAnalysis: 'OnWarn' VerifAllSFcnInstances: 0
Модель уже сконфигурирована для Embedded Coder®, поэтому только параметры конфигурации Embedded Coder появляются как поля объекта model_opt.
Чтобы изменить параметр конфигурации Polyspace, установите соответствующее поле model_opt
. Например, измените директорию результатов и установите режим верификации на CodeProver
путем изменения полей: model_opt.ResultDir
и model_opt.VerificationMode
, соответственно.
model_opt.ResultDir = 'results_v1_$ModelName$'; model_opt.VerificationMode = 'CodeProver'
model_opt = ResultDir: 'results_v1_$ModelName$' VerificationSettings: 'PrjConfig' OpenProjectManager: 0 AddSuffixToResultDir: 0 EnableAdditionalFileList: 0 AdditionalFileList: {} VerificationMode: 'CodeProver' EnablePrjConfigFile: 0 PrjConfigFile: '' AddToSimulinkProject: 0 InputRangeMode: 'DesignMinMax' ParamRangeMode: 'None' OutputRangeMode: 'None' ModelRefVerifDepth: 'Current model only' ModelRefByModelRefVerif: 0 AutoStubLUT: 1 CxxVerificationSettings: 'PrjConfig' CheckConfigBeforeAnalysis: 'OnWarn' VerifAllSFcnInstances: 0
Создайте объект опций Polyspace®, названный new_opt
параметрами TargetLink®:
new_opt = pslinkoptions('tl')
new_opt = ResultDir: 'results_$ModelName$' VerificationSettings: 'PrjConfig' OpenProjectManager: 0 AddSuffixToResultDir: 0 EnableAdditionalFileList: 0 AdditionalFileList: {} VerificationMode: 'CodeProver' EnablePrjConfigFile: 0 PrjConfigFile: '' AddToSimulinkProject: 0 InputRangeMode: 'DesignMinMax' ParamRangeMode: 'None' OutputRangeMode: 'None' AutoStubLUT: 1
Установите OpenProjectManager
опция к истине, чтобы следовать за прогрессом интерфейса Polyspace. Также измените настройку, чтобы проверять на обе ошибки времени выполнения и MISRA C®, кодирующий нарушения правила:
new_opt.OpenProjectManager = true;
new_opt.VerificationSettings = 'PrjConfigAndMisra'
new_opt = ResultDir: 'results_$ModelName$' VerificationSettings: 'PrjConfigAndMisra' OpenProjectManager: 1 AddSuffixToResultDir: 0 EnableAdditionalFileList: 0 AdditionalFileList: {} VerificationMode: 'CodeProver' EnablePrjConfigFile: 0 PrjConfigFile: '' AddToSimulinkProject: 0 InputRangeMode: 'DesignMinMax' ParamRangeMode: 'None' OutputRangeMode: 'None' AutoStubLUT: 1
codegen
— Генератор кода'ec'
| 'tl'
Генератор кода в виде любого 'ec'
для Embedded Coder® или 'tl'
для TargetLink®. Каждый аргумент создает объект опций Polyspace со свойствами, характерными для того генератора кода.
Для описания всех параметров конфигурации и их значений, см. pslinkoptions Свойства (Polyspace Bug Finder).
Пример: ec_opt = pslinkoptions('ec')
Пример: tl_opt = pslinkoptions('tl')
Типы данных: char
model
— Имя модели SimulinkМодель Simulink, заданная именем модели. Создает объект опций Polyspace с параметрами конфигурации той модели. Если вы не установили опций, объект имеет параметры конфигурации по умолчанию. Если вы установили генератор кода, объект имеет опции по умолчанию для того генератора кода.
Для описания всех параметров конфигурации и их значений, см. pslinkoptions Свойства (Polyspace Bug Finder).
Пример: model_opt = pslinkoptions('my_model')
Типы данных: char
sfunc
— путь к S-функцииПуть к S-функции в виде вектора символов. Создает объект опций Polyspace с параметрами конфигурации для S-функции. Если вы не установили опций, объект имеет параметры конфигурации по умолчанию.
Для описания всех параметров конфигурации и их значений, см. pslinkoptions Свойства (Polyspace Bug Finder).
Пример: sfunc_opt = pslinkoptions('path/to/sfunction')
Типы данных: char
opts
— Параметры конфигурации PolyspaceПараметры конфигурации Polyspace, возвращенные как объект опций. Объект используется с pslinkrun
запускать Polyspace из командной строки MATLAB.
Для списка свойств объектов см. pslinkoptions Свойства (Polyspace Bug Finder).
Пример: opts = pslinkoptions ('ЕС')
opts.VerificationSettings = 'Misra'
Свойства pslinkoptions (Polyspace Bug Finder)
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.