Выберите авто-РСА XML (ARXML) и файлы кода для анализа Polyspace

В этом разделе описывается основанный на компонентах подход к проверке кода 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 Команда для выбора файлов

Синтаксис выбора файлов тесно эмулирует 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/*'

Для получения дополнительной информации о:

Примеры выбора файлов

Некоторые распространенные способы использования опций выбора файлов:

  • Чтобы задать только файлы 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'

См. также

Похожие темы