exponenta event banner

Проверка кода C/C + +, генерируемого кодером MATLAB

Для проверки ошибок времени выполнения в коде C/C + +, сгенерированном из кода MATLAB ®, можно использовать Prover™ кода Polyspace ®. Чтобы проверить наличие дефектов, можно использовать функцию Polyspace Bug Finder™. Если у вас есть Polyspace и Embedded Coder ®, Polyspace интегрируется в рабочий процесс MATLAB Coder™.

  • В приложении MATLAB Coder можно выполнять анализ Polyspace без дополнительной настройки.

  • В командной строке после создания кода с codegen, можно выполнить анализ Polyspace для сгенерированного кода, предоставив папку вывода генерации кода в pslinkrun (Polyspace Bug Finder).

Выполнение анализа пространства в приложении кодера MATLAB

  1. Создание автономного кода C/C + + (статическая библиотека, динамически связанная библиотека или исполняемая программа).

  2. На странице «Создание кода» нажмите «Полиспейс».

  3. Выберите опции. См. раздел Настройка дополнительных параметров Polyspace в приложении MATLAB Coder App (средство проверки кода Polyspace).

  4. Щелкните Выполнить (Run).

    Приложение регистрирует результаты анализа на вкладке Журнал Polyspace и открывает интерфейс пользователя Polyspace.

Выполнить анализ Polyspace для кода, созданного codegen

  1. Создать pslinkoptions объект для проверки кода, генерируемого кодером MATLAB.

  2. При необходимости измените свойства объекта:

    • В ResultDir укажите имя папки для результатов Polyspace.

    • В VerificationMode укажите продукт проверки Polyspace.

  3. Запустите проверку с помощью pslinkrun. Предоставьте pslinkoptions и папку, содержащую созданный код.

  4. Для просмотра результатов проверки откройте интерфейс пользователя Polyspace.

Например, предположим, что для функции MATLAB создана статическая библиотека. myFunction и что папка вывода для генерации кода codegen/lib/myFunction. Чтобы запустить средство проверки кода Polyspace для созданного кода, используйте следующий код:

opts = pslinkoptions('codegen');
opts.ResultDir = 'polyspace';
opts.VerificationMode = 'CodeProver';
pslinkrun('-codegenfolder', 'codegen/lib/myFunction', opts);
polyspaceCodeProver('polyspace/myFunction.psprj');

Можно также установить VerificationMode свойство для 'BugFinder' и просмотр результатов проверки с помощью polyspaceBugFinder.

Обзор результатов анализа

На панели Список результатов (Results List) интерфейса пользователя Polyspace просмотрите проверки времени выполнения. Проверьте, можно ли отслеживать проблемы по исходному коду MATLAB. См. раздел Интерактивная трассировка между кодом MATLAB и сгенерированным кодом C/C + +.

Например, операция в коде C может переполниться, поскольку Polyspace предполагает неограниченный диапазон для ввода функции. Попробуйте задать ограничение для ввода и повторно проанализировать код с помощью Polyspace. См. раздел Запуск Polyspace по коду C/C + +, сгенерированному из кода MATLAB (средство проверки кода Polyspace).

См. также

(Доказательство кода Polyspace) | (Доказательство кода Polyspace)

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