Если требуется проверить код S-функции на наличие ошибок или ошибок, можно запустить Polyspace ® непосредственно из блока S-функций в Simulink ®.
Перед запуском Polyspace из MATLAB ® необходимо связать установки Polyspace и MATLAB. См. раздел Интеграция полиспейса с MATLAB и Simulink.
Чтобы проверить S-функцию с помощью Polyspace, выполните следующие рекомендуемые действия:
Скомпилировать S-функцию, чтобы она была совместима с Polyspace.
Выберите параметры Polyspace.
Выполните проверку Prover™ кода Polyspace с помощью одного из двух режимов анализа:
Это вхождение - анализирует указанное вхождение S-функции с вводом для этого блока.
Все вхождения (All Occurrences) - анализирует S-функцию с входными значениями из каждого вхождения S-функции.
Просмотрите результаты в интерфейсе Polyspace.
Сведения о навигации по результатам см. в разделе Фильтрация и группирование результатов в пользовательском интерфейсе Polyspace Desktop.
Дополнительные сведения о результатах см. в разделе Результаты проверки кода Polyspace.
Прежде чем анализировать S-функцию с помощью средства проверки кода Polyspace, необходимо скомпилировать S-функцию с помощью одного из следующих инструментов:
Устаревший инструмент кода с помощью def.Options.supportCoverageAndDesignVerifier установить в значение true. Посмотрите legacy_code (Симулинк).
Блок S-Function Builder с включенной поддержкой 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.
Укажите параметры анализа кода. На вкладке «Приложения» выберите «Верификатор кода Polyspace». Затем на вкладке «Полиспейс»:
Выберите продукт для запуска: поиск ошибок или проверка кода.
Выберите Параметры. В диалоговом окне «Параметры конфигурации» убедитесь, что установлены следующие параметры:
Настройки из - Project configuration and MISRA C 2012 checking
Открытие результатов автоматически после проверки -
вкл.
Примените настройки и закройте окно «Параметры конфигурации».
Щелкните правой кнопкой мыши блок Command_Strategy и выберите «Полиспейс» > «Проверить S-функцию» > «Это вхождение».
Выполните анализ в окне команд MATLAB. По завершении анализа результаты открываются в интерфейсе Polyspace.