В этом разделе описывается компонентный подход к проверке кода AUTOSAR с помощью Polyspace. Подход к интеграционному анализу см. в разделе Выбор между компонентным и интеграционным анализом кода AUTOSAR с Polyspace.
Для анализа реализации кода программных компонентов AUTOSAR Polyspace ® анализирует спецификации AUTOSAR XML (ARXML), обнаруживает соответствующую реализацию кода, компилирует этот код и выполняет статический анализ для обнаружения ошибок во время выполнения или несоответствия между кодом и спецификациями. Если ошибка возникает в любом из этих шагов, результаты анализа для компонента программного обеспечения, содержащего ошибку, не отображаются. В этом учебном пособии показано, как найти и диагностировать класс ошибок, которые могут возникнуть во время синтаксического анализа спецификаций ARXML.
Даже если некоторые спецификации ARXML имеют плохо определенные элементы, анализ пытается продолжить с помощью специальной замены этих элементов с предположением, что реализация кода может не использовать эти элементы. Однако для конкретных типов вопросов такая замена невозможна. Поэтому, даже если фаза экстракции ARXML завершается только предупреждениями, сами предупреждения бывают двух типов:
Предупреждения, которые сообщают о проблемах, когда анализ не может создать замену.
Например, если событие вызывает запускаемый порт с неопределенным портом, анализ не может смоделировать это событие.
Предупреждения, которые сообщают о проблемах, когда анализ продолжается с деградированной заменой.
Например, если тип данных, используемый в выполняемой функции или функции API RTE, не определен, анализ продолжается с ухудшенным типом данных.
Для выполнения действий, описанных в этом учебном пособии, используйте демонстрационные файлы в |
Демонстрационные файлы состоят из корневой папки src и два файла параметров:
Файл параметров options_ko.txt выбирает файлы из src папки, которые намеренно ввели ошибки.
Файл параметров options_ok.txt выбирает файлы из src папка, в которой исправлены те же ошибки.
Папка src имеет две подпапки:
arxml содержит спецификации AUTOSAR XML.
impl содержащий кодовую реализацию этих спецификаций.
arxml имеет несколько подпапок. Две из этих подпапок, appli и interfaces, иметь подпапки ok и ko на различных уровнях в структуре папок. ok и ko подпапки содержат один и тот же набор файлов, за исключением файлов в ko умышленно ввели ошибки.
Открыть файлы параметров options_ok.txt и options_ko.txt в текстовом редакторе и запишите выбранные файлы в каждом:
Файл параметров options_ok.txt исключает файлы в ko подпапок на любом уровне иерархии файлов.
Обратите внимание на использование шаблона выбора файлов:
-not -path '*/ko/*'
Файл параметров options_ko.txt исключает файлы в ok подпапки на любом уровне иерархии файлов..
Обратите внимание на использование шаблона выбора файлов:
-not -path '*/ok/*'
Кроме того, оба файла параметров исключают конкретный файл в types подпапка с именем do_not_use_this_arxml_file.arxml с использованием шаблона:
-path '*/types/*' -not -name 'do_not_use_this_arxml_file.arxml'
options_ko.txt требует выполнения всех этих критериев:
Файлы не должны находиться в ko подпапка на любом уровне иерархии.
Файлы не должны иметь расширение .arxml.
Файлы должны находиться в одной из папок appli, interfaces, или types (за исключением файла do_not_use_this_arxml_file.arxml).
Дополнительные сведения о шаблонах выбора файлов см. в разделах Выбор AUTOSAR XML (ARXML) и Файлы кода для анализа в пространстве.
Для выполнения анализа в терминале введите команду:
polyspace-autosar -options-file options_ko.txt
polyspaceroot\polyspace\bin уже добавлен в PATH переменная в операционной системе. Здесь, polyspaceroot является папкой установки Polyspace, например, C:\Program Files\Polyspace\R2021a. В противном случае используйте полный путь к polyspace-autosar команда.Повторите выполнение с файлом options_ok.txt.
Обратите внимание, что в файлах опций используется параметр -do-not-update-verification для остановки анализа перед фазой проверки кода.
Результаты анализа с файлами опций options_ok.txt и options_ko.txt хранятся в папках project_ok и project_ko соответственно.
Перейти к папке project_ko и откройте файл psar_project.xhtml в веб-браузере. Ошибки и предупреждения отображаются как на этапе анализа ARXML, так и на этапе извлечения кода.
Для получения дополнительной информации об ошибках:
Щелкните значок
в верхнем левом углу. На левой панели щелкните Поведение.
В разделе Подробное состояние по поведению AUTOSAR обратите внимание, что:
Поведение tst003.app.swc001.bhv содержит предупреждения на этапе синтаксического анализа ARXML и ошибки и предупреждения на этапе извлечения кода.
Поведение tst003.app.swc002.bhv не содержит ошибок или предупреждений.
Можно также отфильтровать варианты поведения, которые не содержат ошибок или предупреждений. На левой панели в разделе Выбор поведения выберите поведение со статусом ошибки и нажмите кнопку Поиск.
Для получения дополнительной информации о поведении с ошибками и предупреждениями, tst003.app.swc001.bhv:
В разделе Read AUTOSAR behavior щелкните ссылку См. Определение ключевого автозара для этого поведения.
Разверните сообщение об ошибке вверху. Эта ошибка иллюстрирует ситуацию, когда Polyspace не может моделировать событие из-за проблемы в спецификации ARXML. В этом случае порт не определен.
На левой панели в разделе Выбор функции выберите все элементы с ошибкой или предупреждением и нажмите кнопку Поиск. Появится еще одно сообщение об ошибке. Разверните сообщение об ошибке. Эта ошибка иллюстрирует ситуацию, в которой Polyspace может создать модель, несмотря на ошибку. В этом случае тип данных не определен, и анализ продолжается с ухудшенным типом.
На основе сообщений можно найти точные ошибки в ARXML.
В этом поведении также отображаются ошибки извлечения кода. Эти ошибки извлечения кода можно проследить до проблем в ARXML. При устранении проблем в ARXML ошибки извлечения кода также исправляются. Фиксированный проект можно просмотреть, выполнив анализ с помощью файла опций options_ok.txt.