В этом разделе описывается основанный на компонентах подход к проверке кода AUTOSAR с Polyspace. Для подхода интегрирования анализа смотрите Выбор между основанным на компонентах и Интегрировании анализом кода AUTOSAR с Polyspace.
Если вы запускаете Polyspace® в проекте AUTOSAR, содержащем только ARXML и исходную корневую папку, могут возникнуть ошибки настройки.
Типичная корневая папка AUTOSAR содержит много посторонних файлов, например, файлы для проверки и документации. Эти файлы могут иметь расширения, такие как .arxml
или .c
, и Polyspace может неправильно рассматривать их как ARXML или исходные файлы и включать их в анализ.
Реализация некоторых программных компонентов может быть прогрессом и неполной.
Если вы знакомы со структурой вашего проекта AUTOSAR, можно исключить из анализа посторонние и неполные файлы и папки.
polyspace-autosar
опции, поддерживающие выбор файлов -select-arxml-files
и -select-source-files
. Поскольку в полных именах поведения AUTOSAR и типах данных используются такие же диафрагмы, как и пути к файлам, можно также задать поведение с -autosar-behavior
и типы данных с -autosar-datatype
используя синтаксис выбора файла.
Команда для выбора файловСинтаксис выбора файлов тесно эмулирует Linux®
find
команда. Вы задаете корневую папку, за которой следуют включения и исключения файлов с помощью шаблонов интерпретатора или регулярных выражений.
Например, чтобы найти все файлы с расширением .arxml
в папке package
, вы используете команду Linux:
find package -name '*.arxml' |
Чтобы задать все файлы ARXML в папке package
, скопируйте часть команды, следующей find
. Предоставьте скопированное содержимое в качестве строкового аргумента опции -select-arxml-files
от polyspace-autosar
команда:
polyspace-autosar -select-arxml-files "package -name '*.arxml'" |
Другими словами, вы выбираете файлы ARXML, указывая корневую папку плюс find
опции как одна строка (внутри двойных кавычек). Во время анализа эти файлами не копируются во временную папку, но выбираются из соответствующих расположений.
Если вы вводите опцию в файл опций (который вы позже используете с polyspace-autosar
опция -options-file
), вам не нужны двойные кавычки вокруг строки. Можно добавить find
строка к -select-arxml-files
опция. Например, вы можете ввести эту линию в файл options:
-select-arxml-files package -name '*.arxml' |
Следующая find
для выбора файлов обычно требуются опции. Используйте i
формат опций для соответствия без учета регистра.
-name
, -iname
: Сопоставить имена файлов с шаблонами интерпретатора.
-path
, -ipath
: Сопоставить пути к файлам с шаблонами интерпретатора.
-regex
, -iregex
: Используйте регулярные выражения для соответствия вместо шаблонов интерпретатора.
Использование -not
перед опцией исключения файлов или папок. Чтобы задать несколько шаблонов в одной строке, просто разместите шаблоны один за другим. Например, чтобы исключить непосредственные подпапки subpackage1
и subpackage2
из корневой папки используйте следующий синтаксис:
-not -path 'subpackage1/*' -not -path 'subpackage2/*' |
Для получения дополнительной информации о:
Шаблоны Shell, см. «Соответствие шаблона Shell».
find
опции, см. Поиск файлов.
Некоторые распространенные способы использования опций выбора файлов:
Чтобы задать только файлы ARXML, начиная с swc
в подпапке sub_package_windowControl
в корневой папке package
, используйте следующий синтаксис:
polyspace-autosar -select-arxml-files "package -path 'sub_package_windowControl/*' -name 'swc*.arxml'" |
Чтобы исключить файлы ARXML из подпапки test
на любом уровне структуры файла в корневой папке package
, используйте следующий синтаксис:
polyspace-autosar -select-arxml-files "package -not -path '*/test/*' -name '*.arxml'" |
Чтобы исключить файлы ARXML из подпапки test
и подпапку docs
на любом уровне структуры файла в корневой папке package
, используйте следующий синтаксис:
polyspace-autosar -select-arxml-files "package -not -path '*/test/*' -not -path '*/docs/*' -name '*.arxml'" |
Включение всех файлов ARXML из корневой папки package
кроме файлов ARXML, содержащих строку test
, используйте следующий синтаксис:
polyspace-autosar -select-arxml-files "package -name '*.arxml' -not -name '*test*.arxml'" |
Точно так же можно включать или исключать .c
и .h
файлы из анализа при помощи -select-source-files
опция. В отличие от -select-arxml-files
, эта опция выбирает .c
и .h
файлы по умолчанию. Например, чтобы исключить исходные файлы из подпапки test
на любом уровне структуры файла в корневой папке package
, используйте следующий синтаксис:
polyspace-autosar -select-source-files "package -not -path '*/test/*'" |
Обратите внимание, что с -select-arxml-files
ранее вы также должны были задать дополнительный шаблон -name '*.arxml'
.
Если имя корневой папки содержит пространства, заключайте имя папки в двойные кавычки. Поскольку имя папки с включениями и исключениями файлов уже в двойных кавычках, вы должны избежать дополнительных кавычек. Например, если корневая папка C:\sdbx\ARXML dir1
, чтобы задать все файлы ARXML в этой папке, используйте команду:
polyspace-autosar -select-arxml-files "\"C:\sdbx\ARXML dir1\" -name '*.arxml'" |
Дополнительные двойные кавычки вокруг корневой папки избегаются следующим \"
.
Если вы задаете опцию в файле опций (который вы позже используете с polyspace-autosar
опция -options-file
), вам не нужны кавычки вокруг find
string и не нужно избегать дополнительных двойных кавычек. Введите эту линию в файл опций:
-select-arxml-files "C:\sdbx\ARXML dir1" -name '*.arxml' |