В этом разделе описывается основанный на компонентах подход к проверке кода AUTOSAR с Polyspace. Для подхода интегрирования анализа смотрите Выбор между основанным на компонентах и Интегрировании анализом кода AUTOSAR с Polyspace.
Для анализа реализации кода программных компонентов AUTOSAR, Polyspace® анализирует спецификации AUTOSAR XML (ARXML), обнаруживает соответствующую реализацию кода, компилирует этот код и запускает статический анализ, чтобы обнаружить ошибки времени выполнения или несоответствие между кодом и спецификациями. Если ошибка возникает на любом из этих шагов, вы не видите результаты анализа для программного компонента, содержащего ошибку. В этом руководстве показано, как найти и диагностировать класс ошибок, которые могут возникнуть во время анализа спецификаций ARXML.
Даже если некоторые спецификации ARXML имеют плохо определенные элементы, анализ пытается продолжить с ad hoc заменой этих элементов с предположением, что реализация кода может не использовать эти элементы. Однако по конкретным видам вопросов такая подмена невозможна. Поэтому, даже если фаза извлечения ARXML завершается только предупреждениями, сами предупреждения имеют два типа:
Предупреждения, которые сообщают о проблемах, когда анализ не может создать замену.
Например, если событие вызывает runnable с неопределенным портом, анализ не может смоделировать это событие.
Предупреждения, которые сообщают о проблемах, когда анализ продолжается с деградированной заменой.
Например, если тип данных, используемый в функции runnable или RTE API, не определен, анализ переходит к деградированному типу данных.
Чтобы следовать шагам в этом руководстве, используйте демо- файлы в |
Демо- файлы состоят из корневой папки src и два файла опций:
Файл опций options_ko.txt выбирает файлы из src папка с преднамеренными ошибками.
Файл опций options_ok.txt выбирает файлы из src папка с теми же ошибками исправлена.
Папка src имеет две подпапки:
arxml содержит спецификации AUTOSAR XML.
impl содержащая реализацию кода этих спецификаций.
The arxml папка имеет несколько подпапок. Две из этих подпапок, appli и interfaces, иметь подпапки ok и ko на разных уровнях в структуре папки. The 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.
Чтобы запустить анализ, в терминале, введите команду:
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, так и в фазе извлечения кода.
Для получения дополнительной информации об ошибках:
Щелкните
значок в верхнем левом углу. На левой панели нажмите кнопку Behaviors.
В Detailed status per AUTOSAR Behavior разделе обратите внимание, что:
Поведение tst003.app.swc001.bhv имеет предупреждения в фазе анализа ARXML, а также ошибки и предупреждения в фазе извлечения кода.
Поведение tst003.app.swc002.bhv не имеет ошибок или предупреждений.
Можно также отфильтровать поведение, которое не имеет ошибок или предупреждений. На левой панели в разделе Behavior Selection выберите behaviors with error-status и нажмите Search.
Для получения дополнительной информации о поведении, которое имеет ошибки и предупреждения, tst003.app.swc001.bhv:
В Read AUTOSAR behavior разделов щелкните ссылку See key autosar definition for this behavior.
Разверните сообщение об ошибке в верхней части окна. Эта ошибка иллюстрирует ситуацию, когда Polyspace не может смоделировать событие из-за проблемы в спецификации ARXML. В этом случае порт не определен.
На левой панели в разделе Function selection выберите all having error or warning и нажмите Search. Вы видите еще одно сообщение об ошибке. Разверните сообщение об ошибке. Эта ошибка иллюстрирует ситуацию, в которой Polyspace может создать модель, несмотря на ошибку. В этом случае тип данных не задан, и анализ продолжается с ухудшенным типом.
На основе сообщений можно найти точные ошибки в ARXML.
Вы также видите ошибки извлечения кода в этом поведении. Эти ошибки извлечения кода можно проследить до проблем в ARXML. Если вы устраняете проблемы в ARXML, ошибки извлечения кода также исправлены. Вы можете увидеть фиксированный проект, запустив анализ с файлом опций options_ok.txt.