Запустите анализ 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 выбрал On вкладки Build Info диалогового окна S-Function Builder.

  • Функция Simulink Coverage™ slcovmex (Simulink Coverage), с опцией -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. В диалоговом окне Configuration Parameters убедитесь, что следующие параметры устанавливаются:

      • Settings fromProject configuration and MISRA C 2012 checking

      • Open results automatically after verification On

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

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

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

Похожие темы