Запустите анализ Polyspace на коде S-функции

Если вы хотите проверить код S-функции на ошибки или ошибки, можно запустить Polyspace® непосредственно из вашего Блока s-function в Simulink®.

Необходимые условия

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

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

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

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

  2. Выберите опции Polyspace.

  3. Запустите анализ Polyspace Bug Finder™ с помощью одного из двух режимов анализа:

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

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

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

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

Перед анализом 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-функций

В этом примере показан рабочий процесс анализа 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. Задайте опции анализа кода. На вкладке Apps выберите Polyspace Code Verifier. Затем на вкладке Polyspace:

    • Выберите продукт для запуска: Bug Finder или Code Prover.

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

      • Settings fromProject configuration and MISRA C 2012 checking

      • Open results automatically after verification - Вкл.

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

  4. Щелкните правой кнопкой мыши блок Command_Strategy и выберите Polyspace > Verify S-Function > This Occurrence.

  5. Следуйте анализу в Командном Окне MATLAB. Когда анализ закончен, результаты откроются в интерфейсе Polyspace.

Похожие темы