Если вы хотите проверять свой код S-функции на ошибки или ошибки, можно запустить Polyspace® непосредственно от Блока s-function в Simulink®.
Прежде чем вы запустите Polyspace от MATLAB®, необходимо соединить Polyspace и установки MATLAB. Смотрите Интегрируют Polyspace с MATLAB и Simulink.
Чтобы проверить S-функцию с Polyspace, следуйте за этим рекомендуемым рабочим процессом:
Скомпилируйте свою S-функцию, чтобы быть совместимыми с Polyspace.
Выберите свои опции Polyspace.
Запустите анализ Polyspace Bug Finder™ с помощью одного из двух аналитических режимов:
Это Вхождение — Анализирует заданное вхождение S-функции с входом для того блока.
Все Случаи — Анализируют S-функцию с входными значениями от каждого вхождения S-функции.
Рассмотрите результаты в интерфейсе Polyspace.
Для получения информации о навигации через ваши результаты смотрите Результаты Фильтра и Группы в Пользовательском интерфейсе Рабочего стола Polyspace.
Для рассмотрения справки и понимания результатов, смотрите Результаты Polyspace Bug Finder.
Прежде чем вы будете анализировать свою S-функцию с Polyspace Bug Finder , необходимо скомпилировать S-функцию с одним из следующих инструментов:
Legacy Code Tool с def.Options.supportCoverageAndDesignVerifier
установите на true
. Смотрите legacy_code
(Simulink).
Блок S-Function Builder, с Enable support for Design Verifier выбрал On вкладки Build Info диалогового окна S-Function Builder.
Функция Simulink Coverage™ slcovmex
(Simulink Coverage), с опцией -sldv
.
Этот пример показывает рабочий процесс для анализа S-функций с Polyspace. Вы используете модель psdemo_model_link_sl
и S-функция Command_Strategy
.
Откройте модель и используйте Legacy Code Tool, чтобы скомпилировать S-функцию Command_Strategy
.
% Open Model psdemo_model_link_sl % Compile S-function Command_Strategy def = legacy_code('initialize'); def.SourceFiles = { 'command_strategy_file.c' }; def.HeaderFiles = { 'command_strategy_file.h' }; def.SFunctionName = 'Command_Strategy'; def.OutputFcnSpec = 'int16 y1 = command_strategy(uint16 u1, uint16 u2)'; def.IncPaths = { fullfile(polyspaceroot, ... 'toolbox','polyspace','pslink','pslinkdemos','psdemo_model_link_sl') }; def.SrcPaths = def.IncPaths; def.Options.supportCoverageAndDesignVerifier = true; legacy_code('compile',def);
Откройте модель psdemo_model_link_sl/controller
.
Задайте опции анализа кода. На вкладке Apps выберите Polyspace Code Verifier. Затем на вкладке Polyspace:
Выберите продукт, чтобы запуститься: Bug Finder или Code Prover.
Выберите Settings. В диалоговом окне Configuration Parameters убедитесь, что следующие параметры устанавливаются:
Settings from — Project configuration and MISRA C 2012 checking
Open results automatically after verification — On
Примените свои настройки и закройте Параметры конфигурации.
Щелкните правой кнопкой по блоку Command_Strategy и выберите Polyspace> Verify S-Function> This Occurrence.
Следуйте за анализом в командном окне MATLAB. Когда анализ закончен, ваши результаты, открытые в интерфейсе Polyspace.