exponenta event banner

Выполнить анализ полиспейса по коду S-функции

Если требуется проверить код S-функции на наличие ошибок или ошибок, можно запустить Polyspace ® непосредственно из блока S-функций в Simulink ®.

Предпосылки

Перед запуском Polyspace из MATLAB ® необходимо связать установки Polyspace и MATLAB. См. раздел Интеграция полиспейса с MATLAB и Simulink.

Рабочий процесс анализа S-функций

Чтобы проверить S-функцию с помощью Polyspace, выполните следующие рекомендуемые действия:

  1. Скомпилировать S-функцию, чтобы она была совместима с Polyspace.

  2. Выберите параметры Polyspace.

  3. Выполните анализ Finder™ ошибки Polyspace, используя один из двух режимов анализа:

    • Это вхождение - анализирует указанное вхождение S-функции с вводом для этого блока.

    • Все вхождения (All Occurrences) - анализирует S-функцию с входными значениями из каждого вхождения S-функции.

  4. Просмотрите результаты в интерфейсе Polyspace.

Компиляция S-функций для совместимости с Polyspace

Прежде чем анализировать S-функцию с помощью Polyspace Bug Finder, необходимо скомпилировать S-функцию с помощью одного из следующих инструментов:

  • Устаревший инструмент кода с помощью def.Options.supportCoverageAndDesignVerifier установить в значение true. Посмотрите legacy_code (Симулинк).

  • Блок S-Function Builder с включенной поддержкой Design Verifier, выбранной на вкладке Build Info диалогового окна S-Function Builder.

  • Функция Simulink Coverage™ slcovmex (Покрытие Simulink), с опцией -sldv.

Пример анализа S-функций

В этом примере показан рабочий процесс анализа S-функций с помощью Polyspace. Используется модель psdemo_model_link_sl и S-функцию Command_Strategy.

  1. Откройте модель и используйте инструмент 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);
  2. Открытие модели psdemo_model_link_sl/controller.

  3. Укажите параметры анализа кода. На вкладке «Приложения» выберите «Верификатор кода Polyspace». Затем на вкладке «Полиспейс»:

    • Выберите продукт для запуска: поиск ошибок или проверка кода.

    • Выберите Параметры. В диалоговом окне «Параметры конфигурации» убедитесь, что установлены следующие параметры:

      • Настройки из - Project configuration and MISRA C 2012 checking

      • Открытие результатов автоматически после проверки - вкл.

    Примените настройки и закройте окно «Параметры конфигурации».

  4. Щелкните правой кнопкой мыши блок Command_Strategy и выберите «Полиспейс» > «Проверить S-функцию» > «Это вхождение».

  5. Выполните анализ в окне команд MATLAB. По завершении анализа результаты открываются в интерфейсе Polyspace.

Связанные темы