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