exponenta event banner

polyspaceCodeProver

Запуск проверки средства проверки кода Polyspace из MATLAB

Для упрощения создания сценариев запустите анализ Polyspace ® с помощью polyspace.Project объект.

Описание

polyspaceCodeProver открывает Prover™ Polyspace Code.

пример

status = polyspaceCodeProver(projectFile) открывает файл проекта Polyspace в программе проверки кода Polyspace.

status = polyspaceCodeProver(optsObject) выполняет проверку объекта параметров Polyspace в MATLAB ®.

status = polyspaceCodeProver(projectFile, '-nodesktop') выполняет проверку файла проекта Polyspace в MATLAB. При наличии нескольких модулей или конфигураций Polyspace запускает активную конфигурацию и активный модуль. Чтобы увидеть, какой модуль и конфигурация активны, откройте проект в интерфейсе Polyspace и найдите выделенный полужирным шрифтом модуль и конфигурацию. Чтобы изменить активный модуль или конфигурацию, перед закрытием интерфейса Polyspace выберите модуль и конфигурацию, которые требуется проверить.

status = polyspaceCodeProver(resultsFile) открывает файл результатов Polyspace в программе проверки кода Polyspace.

пример

status = polyspaceCodeProver('-results-dir',resultsFolder) открывает файл результатов Polyspace из resultsFolder в программе Polyspace Code Prover.

status = polyspaceCodeProver('-help') отображает все опции, которые могут быть предоставлены polyspaceCodeProver для выполнения проверки средства проверки кода Polyspace.

пример

status = polyspaceCodeProver('-sources',sourceFiles) выполняет проверку средства проверки кода Polyspace для исходных файлов, указанных в sourceFiles.

пример

polyspaceCodeProver('-sources',sourceFiles,Name,Value) выполняет проверку Polyspace Code Prover для исходных файлов с дополнительными параметрами, указанными одним или несколькими Name,Value аргументы пары.

Примечание

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

Примеры

Открыть проекты Polyspace из MATLAB

В этом примере показано, как открыть файл проекта Polyspace с расширением .psprj от MATLAB. В этом примере откройте файл проекта Code_Prover_Example.psprj.

Назначение полного пути к файлу проекта переменной MATLAB prjFile.

prjFile = fullfile(polyspaceroot, 'polyspace', 'examples', 'cxx', ...
         'Code_Prover_Example', 'Code_Prover_Example.psprj');

Откройте проект.

polyspaceCodeProver(prjFile)

Открыть результаты полиспейса из MATLAB

В этом примере показано, как открыть файл результатов Polyspace из MATLAB. В этом примере файл результатов открывается из папки polyspaceroot\polyspace\examples\cxx\Code_Prover_Example\Module_1\CP_Result.

Назначение полного пути к папке переменной MATLAB resFolder.

resFolder = fullfile(polyspaceroot, 'polyspace', 'examples', ...
       'cxx', 'Code_Prover_Example', 'Module_1', 'CP_Result');

Откройте результаты.

polyspaceCodeProver('-results-dir',resFolder)

Запуск проверки полиспейса с помощью объекта Options

В этом примере показано, как выполнить проверку Polyspace в MATLAB с использованием объектов.

Создайте объект options, добавьте исходный файл и включите папку в свойства.

opts = polyspace.CodeProverOptions;
opts.Sources = {fullfile(polyspaceroot, 'polyspace', 'examples',...
    'cxx', 'Code_Prover_Example', 'sources', 'single_file_analysis.c')};
opts.EnvironmentSettings.IncludeFolders = {fullfile(polyspaceroot, 'polyspace', 'examples',...
    'cxx', 'Code_Prover_Example', 'sources')};
opts.ResultsDir = fullfile(pwd,'results');

Выполните проверку и просмотрите результаты.

polyspaceCodeProver(opts);
polyspaceCodeProver('-results-dir',opts.ResultsDir)

Запуск проверки Polyspace из MATLAB с опциями DOS/UNIX

В этом примере показано, как запустить проверку Polyspace в MATLAB с использованием параметров в стиле DOS/UNIX.

Выполните анализ и откройте результаты.

sourceFiles = fullfile(polyspaceroot, 'polyspace', 'examples',...
    'cxx', 'Code_Prover_Example', 'sources', 'single_file_analysis.c');
includeFolders = fullfile(polyspaceroot, 'polyspace', 'examples',...
    'cxx', 'Code_Prover_Example', 'sources');
resultsDir = fullfile(pwd,'results');
polyspaceCodeProver('-sources',sourceFiles, ...
             '-I',includeFolders, ...
             '-results-dir',resultsDir,...
             '-main-generator');
polyspaceCodeProver('-results-dir',resultsDir);

Запуск проверки полиспейса с проверкой правил кодирования

В этом примере показаны два различных способа настройки проверки в MATLAB. Можно настроить любое количество дополнительных опций, изменив свойства объекта опций или используя пары Наименование (Name) - Значение (Value). Необходимо указать проверку правил кодирования MISRA C ® 2012, исключить заголовки из проверки правил кодирования и создать основной.

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

sourceFileName = fullfile(polyspaceroot, 'polyspace','examples', 'cxx', 'Code_Prover_Example','sources','example.c');
includeFileName = fullfile(polyspaceroot, 'polyspace','examples', 'cxx', 'Code_Prover_Example','sources','include.h');
resFolder1 = fullfile('Polyspace_Results_1');
resFolder2 = fullfile('Polyspace_Results_2');

Проверьте правила кодирования с помощью объекта options.

opts = polyspace.CodeProverOptions('C');
opts.Sources = {sourceFileName};
opts.EnvironmentSettings.IncludeFolders = {includeFileName};
opts.ResultsDir = resFolder1;
opts.CodingRulesCodeMetrics.MisraC3Subset = 'mandatory';
opts.CodingRulesCodeMetrics.EnableMisraC3 = true;
opts.CodeProverVerification.EnableMain = true;
opts.InputsStubbing.DoNotGenerateResultsFor = 'all-headers';
polyspaceCodeProver(opts);
polyspaceCodeProver('-results-dir',resFolder1);

Проверьте правила кодирования с помощью параметров DOS/UNIX.

polyspaceCodeProver('-sources',sourceFileName,...
     '-I',includeFileName, ...
     '-results-dir',resFolder2,...
     '-misra3','mandatory',...
     '-do-not-generate-results-for','all-headers',...
     '-main-generator');
polyspaceCodeProver('-results-dir',resFolder2);

Входные аргументы

свернуть все

Имя объекта параметров Polyspace, указанное как дескриптор объекта.

Чтобы создать объект опций, используйте один из классов опций Polyspace: polyspace.Options или polyspace.ModelLinkOptions.

Пример: opts

Имя файла проекта с расширением .psprj, задается как символьный вектор.

Если файл не находится в текущей папке, projectFile должен включать полный или относительный путь. Чтобы определить текущую папку, используйте pwd. Чтобы изменить текущую папку, используйте cd.

Пример: 'C:\Polyspace_Projects\myProject.psprj'

Имя файла результатов с расширением .pscp, задается как символьный вектор.

Если файл не находится в текущей папке, resultsFile должен включать полный или относительный путь.

Пример: 'myResults.pscp'

Имя папки результатов, указанное как символьный вектор. Папка должна содержать файл результатов с расширением .pscp. Если файл результатов находится во вложенной папке указанной папки, эта команда не открывает файл результатов.

Если папка отсутствует в текущей папке, resultsFolder должен включать полный или относительный путь.

Пример: 'C:\Polyspace\Results\'

Имена исходных файлов, разделенные запятыми, с расширением .c или .cpp, задается в виде одиночного символьного вектора.

Если файлы находятся не в текущей папке, sourceFiles должен включать полный или относительный путь.

Пример: 'myFile.c', 'C:\mySources\myFile1.c,C:\mySources\myFile2.c'

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: '-target','i386','-compiler','gnu4.6' указывает, что исходный код предназначен для процессоров i386 и содержит синтаксис не-ANSI C для компилятора GCC 4.6.

Полный список параметров анализа см. в разделе Параметры анализа в программе проверки кода Polyspace.

Выходные аргументы

свернуть все

Если проверка программы проверки кода завершается без ошибок, status является false. В противном случае это true.

Проверка может завершиться неуспешно по нескольким причинам, включая:

  • Вы предоставили исходный файл, файл проекта или файл результатов, который не существует.

  • Указан недопустимый путь.

  • Один из файлов не скомпилирован.

Представлен в R2013b