Если вы хотите проверить код 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 Desktop.
Для получения помощи в рассмотрении и понимании результатов смотрите Polyspace Bug Finder Results.
Перед анализом S-функции с помощью Polyspace Bug Finder необходимо скомпилировать S-функцию с помощью одного из следующих инструментов:
Инструмент Legacy Code Tool с def.Options.supportCoverageAndDesignVerifier
установлено на true
. Посмотрите legacy_code
(Simulink).
Блок S-Function Builder с Enable support for Design Verifier, выбранными на вкладке Build Info диалогового окна S-Function Builder.
Функция Simulink Coverage™ slcovmex
(Покрытие Simulink), с опцией -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. В диалоговом окне Параметров конфигурации убедитесь, что установлены следующие параметры:
Settings from — Project configuration and MISRA C 2012 checking
Open results automatically after verification - Вкл.
Примените свои настройки и закройте параметры конфигурации.
Щелкните правой кнопкой мыши блок Command_Strategy и выберите Polyspace > Verify S-Function > This Occurrence.
Следуйте анализу в Командном Окне MATLAB. Когда анализ закончен, результаты откроются в интерфейсе Polyspace.