exponenta event banner

polyspace-autosar

(DOS/UNIX) Run Polyspace Code Prover по реализации кода программных компонентов AUTOSAR

Описание

пример

polyspace-autosar -create-project projectFolder -arxml-dir arxmlFolder -sources-dir codeFolder [-sources-dir codeFolder] [OPTIONS] проверяет реализацию кода программных компонентов AUTOSAR на наличие ошибок времени выполнения и нарушение ограничений данных в соответствующих спецификациях AUTOSAR XML. Анализ анализирует спецификации AUTOSAR XML (.arxml файлы) в arxmlFolder, модулирует реализацию кода (.c файлы) в codeFolder на основе спецификаций и запускает программу проверки кода для каждого модуля для проверок. Результаты проверки кода хранятся в projectFolder. После анализа можно открыть проект. psar_project.psprj от projectFolder в интерфейсе пользователя Polyspace ®. Можно просмотреть результаты для каждого программного компонента по отдельности или загрузить их в Polyspace Metrics для обзора.

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

polyspace-autosar -create-project projectFolder -select-arxml-files arxmlFiles [-select-arxml-files arxmlFiles] -select-source-files codeFiles [-select-source-files codeFiles] [OPTIONS] создает проект Polyspace из спецификаций AUTOSAR, как в предыдущем синтаксисе, но позволяет исключить определенные файлы или папки из анализа с помощью шаблонов оболочек или регулярных выражений.

пример

polyspace-autosar -update-project prevProjectFile [OPTIONS] обновляет результаты анализа программы проверки кода на основе изменений в файлах ARXML или исходном коде C с момента последнего анализа. Обновление использует HTML-файл prevProjectFile из предыдущего анализа и только повторно анализирует реализацию кода программных компонентов, которые изменились после этого анализа.

Для устранения неполадок можно использовать дополнительные параметры.

пример

polyspace-autosar -update-and-clean-project prevProjectFile [OPTIONS] обновляет результаты анализа программы проверки кода на основе изменений в файлах ARXML или исходном коде C с момента последнего анализа. Обновление только повторно анализирует реализацию кода программных компонентов, измененных с момента предыдущего анализа. Чистое обновление также удаляет информацию о устаревших компонентах программного обеспечения. Например, если вы используете дополнительную опцию для принудительного обновления определенных компонентов программного обеспечения, и другие SWC-файлы также изменились, чистое обновление удалит эти другие SWC-файлы из проекта Polyspace.

Для устранения неполадок можно использовать дополнительные параметры.

polyspace-autosar -help показывает все опции, доступные для polyspace-autosar.

Примеры

свернуть все

Предположим, что файлы ARXML находятся в папке arxml и исходные файлы C в папке code в текущей папке.

Запустите программу проверки кода для всех программных компонентов, определенных в файлах ARXML. Сохранение результатов в папке polyspace в текущей папке.

polyspace-autosar -create-project polyspace -arxml-dir arxml -sources-dir code

В результате анализа создается проект Polyspace с несколькими модулями. Каждый модуль собирает информацию о реализации кода C программного компонента. Анализ запускает программу проверки кода для каждого модуля и проверяет код на наличие ошибок во время выполнения или несоответствий спецификациям ARXML.

После анализа можно открыть результаты несколькими способами. См. раздел Обзор результатов работы с полиспейсом в коде AUTOSAR.

Обновите файл ARXML или кодовый файл. Например, в Linux ® можно touch файл для указания обновления. Проверьте, повлияли ли обновления на результаты анализа программы проверки кода. Для получения обновленного анализа предоставьте файл проекта psar_project.html создан на предыдущем шаге.

polyspace-autosar -update-project polyspace\psar_project.xhtml

При обновлении файла ARXML весь анализ повторяется. При обновлении исходного кода анализ повторяется только для компонентов программного обеспечения, реализация кода которых была обновлена.

Вместо запуска программы проверки кода (Code Prover) на всех компонентах программного обеспечения проверьте только определенные компоненты программного обеспечения.

Например, предположим, что программный компонент имеет полный путь pkg.component.bhv. Программа Code Prover может быть запущена только в этом программном компоненте.

polyspace-autosar -create-project polyspace -arxml-dir arxml -sources-dir code -autosar-behavior pkg.component.bhv

Программу Code Prover можно запустить для всех компонентов программного обеспечения, но позднее можно обновить анализ только для определенных компонентов программного обеспечения.

polyspace-autosar -update-project polyspace\psar_project.xhtml -autosar-behavior pkg.component.bhv

Если не выполнить повторный анализ обновленного компонента программного обеспечения, анализ покажет, что компонент программного обеспечения может быть устаревшим.

Можно также обновить анализ для определенных компонентов программного обеспечения и удалить все следы других компонентов программного обеспечения.

polyspace-autosar -update-and-clean-project polyspace\psar_project.xhtml -autosar-behavior pkg.component.bhv

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

Если проверка выполняется на сервере, перед проверкой можно указать, что все результаты должны быть загружены в параметры Polyspace. Укажите удаленную проверку и отправку результатов, используя следующие дополнительные параметры:

Можно указать дополнительные параметры с флагом -extra-project-options.

Например:

polyspace-autosar -create-project polyspace -arxml-dir arxml -sources-dir code -extra-project-options "-add-to-results-repository -batch -scheduler localhost -prog polyspace_project"
Здесь localhost указывает, что один и тот же компьютер служит сервером и клиентом. Замените его именем сервера. Аргумент -prog может быть таким же, как у -create-project. Вы используете опции -prog и -verif-version для задания имени проекта и номера версии в соответствии с метрикой Polyspace.

Кроме того, можно запустить программу проверки кода и загрузить каждый результат с помощью polyspace-results-repository команда.

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

свернуть все

Имя папки, указанное как строка (в двойных кавычках). Если папка существует, она должна быть пустой.

После анализа папка содержит два файла проекта psar_project.psprj и psar_project.html.

  • Чтобы просмотреть результаты, откройте файл psar_project.psprj в интерфейсе пользователя Polyspace или файле psar_project.html в веб-браузере.

  • Для последующих обновлений в командной строке используйте файл psar_project.html.

См. также Обзор результатов работы с полиспейсом в коде AUTOSAR.

Пример: "C:\Polyspace_Projects\proj_swc1"

Имя папки, указанное как строка (в двойных кавычках). Если пути к папкам не содержат пробелов, можно опустить двойные кавычки.

UNC-пути не поддерживаются для имени папки.

Пример: "C:\arxml_swc1"

Имя папки, указанное как строка (в двойных кавычках). Если пути к папкам не содержат пробелов, можно опустить двойные кавычки.

Чтобы указать несколько корневых папок, содержащих источники, повторите команду -sources-dir вариант. Если указано несколько корневых папок, они не должны перекрываться. Например, одна корневая папка не может быть подпапкой другой.

UNC-пути не поддерживаются для имени папки.

Пример: "C:\code_swc1"

Корневая папка, содержащая файлы ARXML с включениями и исключениями файлов и папок, заданными в виде строки. Чтобы создать эту строку:

  1. Использовать Linux find для поиска включаемых и исключаемых файлов и папок.

  2. Копировать find и заключить их в двойные кавычки.

Примеры см. в разделах Выбор AUTOSAR XML (ARXML) и Файлы кода для анализа в полиспейсе.

Корневая папка, содержащая код (.c и .h) файлов, за которыми следуют включения и исключения файлов и папок, указанные в виде строки. Чтобы создать эту строку:

  1. Использовать Linux find для поиска включаемых и исключаемых файлов и папок.

  2. Копировать find и заключить их в двойные кавычки.

Примеры см. в разделах Выбор AUTOSAR XML (ARXML) и Файлы кода для анализа в полиспейсе.

Путь к ранее созданному файлу проекта psar_project.html, указывается как строка (в двойных кавычках). Если пути к папкам не содержат пробелов, можно опустить двойные кавычки.

Пример: "C:\Polyspace_Projects\proj1\psar_project.html"

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

Общие параметры

ВыборОписание
-verbose

Сохраните дополнительную информацию о различных фазах выполнения команды (подробный режим). Файл psar_project.log и другие вспомогательные файлы хранят эту дополнительную информацию.

Если при выполнении команды возникает ошибка, сообщение об ошибке сохраняется в отдельном файле независимо от того, включен ли подробный режим. При выполнении в подробном режиме сохраняются только различные фазы выполнения. Эту информацию можно использовать для просмотра момента появления ошибки.

-options-file OPTION_FILE

Используйте файл параметров для дополнения или замены параметров командной строки. В файле параметров укажите каждый параметр в отдельной строке. Начать строку с # для указания комментариев.

Файл параметров opts.txt может выглядеть следующим образом:

# Store Polyspace results
-create-project polyspace
# ARXML Folder
-arxml-dir arxml
# SOURCE Folder
-sources-dir code 

Можно запустить polyspace-autosar как:

polyspace-autosar -options-file opts.txt

Если опция, которая непосредственно указана с помощью polyspace-autosar конфликтует с опцией в файле опций, используется непосредственно указанная опция. Например, в этом примере папка proj используется для сохранения проекта Polyspace.

polyspace-autosar -create-project proj -options-file opts.txt

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

Параметры управления обновлением проекта

При обновлении проекта по умолчанию результаты анализа обновляются для всех вариантов поведения SWC AUTOSAR с учетом любых изменений в файлах arxml или исходном коде C с момента последнего анализа. Эти параметры позволяют управлять обновлением.

ВыборОписание
-autosar-behavior AUTOSAR_QUALIFIED_NAME

Проверка реализации программных компонентов, внутреннее поведение которых определяется AUTOSAR_QUALIFIED_NAME. Анализ по умолчанию учитывает все компоненты программного обеспечения, представленные в спецификациях ARXML.

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

  • Использовать узоры оболочки, аналогичные узорам, используемым в -select-arxml-files и -select-source-files.

    Примеры см. в разделах Выбор AUTOSAR XML (ARXML) и Файлы кода для анализа в полиспейсе.

  • Используйте регулярные выражения, чтобы указать группу компонентов программного обеспечения в одном пакете.

    Например:

    • Указание компонента программного обеспечения, внутреннее поведение которого имеет полное имя pkg.component.bhv, использовать:

      -autosar-behavior pkg.component.bhv

    • Чтобы указать компоненты программного обеспечения, внутреннее поведение которых имеет полные имена, начинающиеся с pkg.component, использовать:

      -autosar-behavior pkg.component\..*
      \. представляет разделитель имен пакетов . (точка) и .* представляет любое количество символов.

-do-not-update-autosar-prove-environment

Не считывайте спецификации ARXML. Используйте спецификации ARXML, сохраненные в предыдущем анализе.

Эта опция используется во время обновления проекта для сравнения кода с предыдущими спецификациями. Если этот параметр не используется, обновления проекта снова считывают все спецификации ARXML.

-do-not-update-extract-code

Не считывайте исходный код языка C. Используйте исходный код, сохраненный в предыдущем анализе.

Эта опция используется во время обновления проекта для сравнения предыдущего исходного кода со спецификациями ARXML. Если этот параметр не используется, обновления проекта учитывают все изменения исходного кода с момента предыдущего анализа.

-do-not-update-verification

Прочитайте только спецификации ARXML и реализацию кода C, но не выполняйте анализ проверки кода.

Используйте этот параметр во время обновления проекта, чтобы исследовать ошибки, внесенные в спецификации ARXML, или ошибки компиляции, введенные в исходный код. Сначала можно устранить эти неполадки, а затем выполнить анализ проверки кода.

Опции для управления синтаксическим анализом спецификаций ARXML

ВыборОписание
-autosar-datatype AUTOSAR_QUALIFIED_NAME

Импорт определения типов данных AUTOSAR, указанных в AUTOSAR_QUALIFIED_NAME. Анализ по умолчанию импортирует только типы данных, указанные во внутреннем поведении проверяемых компонентов программного обеспечения.

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

  • Использовать узоры оболочки, аналогичные узорам, используемым в -select-arxml-files и -select-source-files.

    Примеры см. в разделах Выбор AUTOSAR XML (ARXML) и Файлы кода для анализа в полиспейсе.

  • Используйте регулярные выражения для указания всех типов данных в одном пакете.

    Например:

    • Указание типа данных с полным именем pkg.datatypes.type, использовать:

      -autosar-datatype pkg.datatypes.type

    • Указание типов данных с полными именами, начинающимися с pkg.datatypes, использовать:

      -autosar-datatype pkg.datatypes\..*
      \. представляет разделитель имен пакетов . (точка) и .* представляет любое количество символов.

    • Для принудительного импорта всех типов данных используйте:

      -autosar-datatype .*\..*

-Eautosar-xmlReaderSameUuidForDifferentElements

-Eno-autosar-xmlReaderSameUuidForDifferentElements

Если несколько элементов в спецификациях ARXML имеют одинаковый универсальный уникальный идентификатор (uuid), используйте эти опции для переключения между предупреждением и ошибкой.

Анализ по умолчанию останавливается с ошибкой, если возникает проблема. Для преобразования в предупреждение используйте команду -Eno-autosar-xmlReaderSameUuidForDifferentElements. Для конфликтующих UUID-ов анализ сохраняет последний прочитанный элемент и продолжает с предупреждением.

Последующие выполнения продолжают использовать режим предупреждения. Чтобы вернуться к ошибке, используйте -Eautosar-xmlReaderSameUuidForDifferentElements.

-Eautosar-xmlReaderTooManyUuids

-Eno-autosar-xmlReaderTooManyUuids

Если один и тот же элемент в спецификациях ARXML имеет различные универсальные уникальные идентификаторы (uuid-s), используйте эти опции для переключения между предупреждением и ошибкой.

Анализ по умолчанию останавливается с ошибкой, если возникает проблема. Для преобразования в предупреждение используйте команду -Eno-autosar-xmlReaderTooManyUuids. Для конфликтующих UUID-ов анализ сохраняет последний прочитанный элемент и продолжает с предупреждением.

Последующие выполнения продолжают использовать режим предупреждения. Чтобы вернуться к ошибке, используйте -Eautosar-xmlReaderTooManyUuids.

Параметры управления чтением исходного кода C

ВыборОписание
-include USER_RTE_TYPE_H

Определите дополнительные типы данных и макросы, которые не входят в спецификации ARXML, но необходимы для анализа реализации кода.

Добавление типов данных и определений макросов в файл USER_RTE_TYPE_H. Эти определения добавляются в файл заголовка Rte_Type.h который используется в анализе. Предоставленный файл не должен иметь имени Rte_Type.h.

Файл с определениями типов данных и макросов можно предоставить только во время создания проекта. Для последующих обновлений можно изменить содержимое этого файла, но не предоставить новый файл. Кроме того, этот файл не должен находиться в той же папке, что и проект и результаты Polyspace.

Если дополнительно определить макросы или отменить их определение с помощью опций -D или -U, для определений, которые конфликтуют с определениями в USER_RTE_TYPE_H, -D или -U преобладают спецификации.

-I INCLUDE_FOLDER

Укажите папки, содержащие файлы заголовков. Анализ ищет #include-d файлов в этой папке. Папка должна быть подпапкой папки исходного кода.

Повторите команду для нескольких папок. Анализ выполняет поиск файлов заголовков в этих папках в порядке их указания.

Если требуется указать папки, отсутствующие в папке исходного кода, используйте параметр:

-extra-project-options "-I INCLUDE_FOLDER"

-D DEFINE

Укажите макросы, которые должен учитывать анализ как определенные.

Например, если указать:

-D _WIN32
условный препроцессор #ifdef _WIN32 успешно и выполняется соответствующая ветвь.

-U UNDEFINE

Укажите макросы, которые анализ должен считать неопределенными.

Например, если указать:

-U _WIN32
условный препроцессор #ifndef _WIN32 успешно и выполняется соответствующая ветвь.

Опции для управления проверками проверки кода

ВыборОписание
-extra-project-options POLYSPACE_OPTIONS

Укажите дополнительные параметры для анализа программы проверки кода. Указанные параметры применяются не к синтаксическому анализу ARXML или извлечению кода, а только к последующему анализу программы проверки кода.

Этот метод используется для указания опций анализа, используемых с polyspace-code-prover команда. См. раздел Параметры анализа в программе проверки кода Polyspace.

Например:

  • В настольных продуктах может потребоваться выполнить проверку в удаленном кластере и отправить результаты в систему Polyspace Metrics. Введите этот расширенный параметр:

    -extra-project-options "-add-to-results-repository -batch -scheduler localhost"
    Здесь localhost указывает, что один и тот же компьютер служит сервером и клиентом. Замените его именем сервера. См. также Run Bug Finder or Code Prover analysis on a remote cluster (-batch) и Upload results to Polyspace Metrics (-add-to-results-repository).

  • Может потребоваться указать компилятор и целевую архитектуру. По умолчанию компиляция проектов, созданных из спецификаций AUTOSAR, использует компилятор gnu4.7 и архитектуру i386.

    Чтобы указать компилятор visual11.0 с x86_64 архитектурой, введите следующий параметр:

    -extra-project-options "-compiler visual11.0 -target x86_64"
    См. также Compiler (-compiler) и Target processor type (-target).

Обратите внимание, что эти опции polyspace-code-prover не требуется указывать:

  • -sources: polyspace-autosar извлекает требуемые исходные файлы.

  • -I: Вы указываете включить папки с -I вариант polyspace-autosar.

  • Входные данные и параметры упора, такие как -data-range-specifications: Внешние ограничения данных в файлах ARXML извлекаются автоматически с помощью polyspace-autosar. Явное указание зависимостей невозможно.

  • Многозадачность, например -entry-points: Невозможно выполнить многозадачный анализ с помощью polyspace-autosar. Чтобы обнаружить гонки данных, создайте отдельный проект для всего приложения и явно добавьте исходные папки. Укажите ARXML-файлы, релевантные для многозадачности, и запустите Bug Finder. Дополнительные сведения см. в разделе ARXML files selection (-autosar-multitasking).

  • Параметры проверки подтверждения кода, связанные с main генерация: A main генерируется функция (в файле psar_prove_main.c) при создании проекта Polyspace из описания AUTOSAR. main функция вызывает функции, реализующие выполняемые объекты в компонентах программного обеспечения. Произведенный main требуется для анализа проверки кода. Вы не можете изменить свойства этого main функция.

-extra-options-file OPTIONS_FILE

Укажите дополнительные опции для анализа программы проверки кода в файле опций. Указанные параметры применяются не к синтаксическому анализу ARXML или извлечению кода, а только к последующему анализу программы проверки кода.

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

  1. Выполните трассировку команды build (например, make) с polyspace-configure и создайте файл опций для последующего анализа программы проверки кода. Подавление включения источников в файл опций с помощью -no-sources вариант.

    polyspace-configure -output-options-file options.txt -no-sources make
  2. Выполнить проверку кода для кода AUTOSAR с polyspace-autosar. Укажите папку ARXML, исходные папки и другие параметры. Кроме того, предоставьте ранее созданный файл опций вместе с -extra-options-file вариант.

    polyspace-autosar ... -extra-options-file options.txt

См. также раздел Запуск Polyspace для кода AUTOSAR с помощью команды построения.

-show-prove AUTOSAR_QUALIFIED_NAME

После анализа откройте результаты для определенного компонента программного обеспечения, внутреннее поведение которого определяется AUTOSAR_QUALIFIED_NAME.

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