В этом разделе описывается компонентный подход к проверке кода 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 с использованием синтаксиса выбора файлов.
find Команда для выбора файловСинтаксис выбора файлов точно имитирует 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 опции в виде одной строки (в двойных кавычках). Во время анализа эти ARXML-файлы не копируются во временную папку, а выбираются из соответствующих расположений.
При вводе опции в файл опций (который впоследствии будет использоваться с polyspace-autosar выбор -options-file), вам не нужны двойные кавычки вокруг строки. Вы можете добавить find строку к -select-arxml-files вариант. Например, можно ввести эту строку в файл опций:
-select-arxml-files package -name '*.arxml' |
Следующее find для выбора файлов обычно требуются параметры. Используйте i формат параметров для сопоставления без учета регистра.
-name, -iname: Сопоставление имен файлов с шаблонами оболочки.
-path, -ipath: Сопоставление путей к файлам с шаблонами оболочки.
-regex, -iregex: Используйте регулярные выражения для сопоставления вместо шаблонов оболочек.
Использовать -not перед опцией исключения файлов или папок. Чтобы указать несколько шаблонов в одной строке, просто разместите шаблоны один за другим. Например, для исключения непосредственных подпапок subpackage1 и subpackage2 из корневой папки используйте следующий синтаксис:
-not -path 'subpackage1/*' -not -path 'subpackage2/*' |
Для получения дополнительной информации:
Образцы оболочек, см. раздел Сопоставление образцов оболочек.
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 строка и не нужно выходить из дополнительных двойных кавычек. Введите эту строку в файл параметров:
-select-arxml-files "C:\sdbx\ARXML dir1" -name '*.arxml' |