Запустите Polyspace на коде, сгенерированном при помощи предыдущих релизов Simulink

Можно использовать более свежий релиз Polyspace®, не изменяя релиз Simulink®. Смотрите Поддержку Polyspace MATLAB и Simulink от Различных Релизов.

В такой настройке перекрестного релиза используйте функцию pslinkrunCrossRelease запускать анализ Polyspace кода, сгенерированного при помощи Embedded Coder®. Если вы используете Polyspace и Simulink от того же релиза, смотрите Анализ Polyspace Запуска Кода, Сгенерированного из Модели Simulink.

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

При запуске анализа Polyspace с различного релиза MATLAB® или Simulink:

  • Релиз Polyspace должен быть более свежим по сравнению с вашим релизом Simulink.

  • Ваш релиз Simulink должен быть R2020b или позже.

  • Необходимо интегрировать Polyspace с Simulink. Смотрите Интегрируют Polyspace с MATLAB и Simulink.

Эта настройка перекрестного релиза не поддерживает анализ пользовательского кода в вашей модели Simulink.

Запустите анализ Polyspace перекрестного релиза

Чтобы запустить анализ Polyspace кода, сгенерированного при помощи более раннего релиза Simulink, сгенерируйте архив кода из модели Simulink и затем вызовите функцию pslinkrunCrossRelease. Создайте и настройте pslinkoptions объект изменить настройку модели. Для списка параметров конфигурации, которые можно изменить, смотрите pslinkrunCrossRelease. Чтобы применить опции анализа Polyspace, используйте файл опций.

  1. Откройте модель Simulink rtwdemo_roll и сконфигурируйте модель для генерации кода. Смотрите Рекомендуемые Параметры конфигурации Модели для Анализа Polyspace.

    % Load the model
    model = 'rtwdemo_roll';
    load_system(model);
    % Configure the Solver
    configSet = getActiveConfigSet(model);
    set_param(configSet,'Solver','FixedStepDiscrete');
    set_param(configSet, 'SystemTargetFile', 'ert.tlc');

  2. Анализ перекрестного релиза требует упаковки сгенерированного кода в архив кода. Установите опцию PackageGeneratedCodeAndArtifacts к true.

    set_param(configSet, 'PackageGeneratedCodeAndArtifacts', true)
    

  3. Создайте временные папки для генерации кода и сгенерируйте код.

    [TEMPDIR, CGDIR] = rtwdemodir();
    slbuild(model);
    
    В качестве альтернативы создайте папку в перезаписываемом месте и установите свою директорию MATLAB на созданную папку.
    mkdir CodeGenFolder;
    cd CodeGenFolder;

  4. Чтобы задать настройку модели для анализа Polyspace, используйте a pslinkoptions объект. Чтобы запустить анализ Bug Finder, установите psOpt.VerificationMode к 'BugFinder'.

    % Create a Polyspace options object from the model. 
    psOpts = pslinkoptions(model);
    
    % Set properties that define the Polyspace analysis.
    psOpts.VerificationMode = 'BugFinder';
    

  5. Чтобы задать опции анализа Polyspace, создайте файл опций. Файл опций является текстовым файлом, который содержит опции Polyspace в плоском списке, одной линии для каждой опции. Например, чтобы включить все средства проверки и CERT C кодирующие правила, создайте текстовый файл в текущей папке, содержащей соответствующие опции.

    % Create Options file
    optFile = 'Options.txt';
    fid = fopen(optFile,'wt');
    option1 = '-checkers all';
    option2 = '-cert-c all';
    fprintf(fid, '%s\n%s', option1, option2);
    fclose(fid);
    Смотрите опции анализа в Polyspace Code Prover.

  6. Запустите анализ Polyspace.

    • Чтобы задать настройки модели для запущенного анализа Polyspace, установите объект psOpt в качестве дополнительного второго аргумента в pslinkrunCrossRelease.

    • Поскольку код сгенерирован как автономный код, установите третий аргумент asModelRef к false.

    • Чтобы задать опции анализа Polyspace, задайте относительный путь к созданному файлу опций как четвертый аргумент.

    %  Locate options file in the current folder
    optionsPath = fullfile(pwd,optFile);
    % Run Polyspace analysis
    [~,resultsFolder] = pslinkrunCrossRelease(model,psOpts,false,optionsPath);
    bdclose(model);
    
    Следуйте за прогрессом анализа в командном окне MATLAB.

Рассмотрите результаты

В рабочем процессе перекрестного релиза, прямых вызовах функций такой как polyspaceBugFinder или polyspaceCodeProver не доступны. Чтобы открыть результаты, используйте функцию pslinkfun.

  1. Чтобы открыть результаты в Пользовательском интерфейсе Polyspace, используйте функцию pslinkfun. Вектор символов resultsFolder содержит полный путь к папке результатов.

    pslinkfun('openresults', '-resultsfolder',resultsFolder);

    В качестве альтернативы загрузите результаты на Polyspace доступ. Смотрите Результаты Загрузки к Polyspace доступ (к Polyspace Code Prover Access).

  2. Обратитесь к результатам. Для получения дополнительной информации смотрите Результаты Polyspace Адреса Через Исправления ошибок или Выравнивания.

Смотрите также

| | | (Embedded Coder) | (Simulink)

Похожие темы