exponenta event banner

Интерпретация ошибок и предупреждений в полипространственном анализе кода AUTOSAR

В этом разделе описывается компонентный подход к проверке кода AUTOSAR с помощью Polyspace. Подход к интеграционному анализу см. в разделе Выбор между компонентным и интеграционным анализом кода AUTOSAR с Polyspace.

Для анализа реализации кода программных компонентов AUTOSAR Polyspace ® анализирует спецификации AUTOSAR XML (ARXML), обнаруживает соответствующую реализацию кода, компилирует этот код и выполняет статический анализ для обнаружения ошибок во время выполнения или несоответствия между кодом и спецификациями. Если ошибка возникает в любом из этих шагов, результаты анализа для компонента программного обеспечения, содержащего ошибку, не отображаются. В этом учебном пособии показано, как найти и диагностировать класс ошибок, которые могут возникнуть во время синтаксического анализа спецификаций ARXML.

Даже если некоторые спецификации ARXML имеют плохо определенные элементы, анализ пытается продолжить с помощью специальной замены этих элементов с предположением, что реализация кода может не использовать эти элементы. Однако для конкретных типов вопросов такая замена невозможна. Поэтому, даже если фаза экстракции ARXML завершается только предупреждениями, сами предупреждения бывают двух типов:

  • Предупреждения, которые сообщают о проблемах, когда анализ не может создать замену.

    Например, если событие вызывает запускаемый порт с неопределенным портом, анализ не может смоделировать это событие.

  • Предупреждения, которые сообщают о проблемах, когда анализ продолжается с деградированной заменой.

    Например, если тип данных, используемый в выполняемой функции или функции API RTE, не определен, анализ продолжается с ухудшенным типом данных.

Для выполнения действий, описанных в этом учебном пособии, используйте демонстрационные файлы в polyspaceroot\help\toolbox\codeprover\examples\troubleshooting_polyspace_autosar.

Обзор структуры файлов

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

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

  1. Щелкните значок в верхнем левом углу. На левой панели щелкните Поведение.

    В разделе Подробное состояние по поведению AUTOSAR обратите внимание, что:

    • Поведение tst003.app.swc001.bhv содержит предупреждения на этапе синтаксического анализа ARXML и ошибки и предупреждения на этапе извлечения кода.

    • Поведение tst003.app.swc002.bhv не содержит ошибок или предупреждений.

    Можно также отфильтровать варианты поведения, которые не содержат ошибок или предупреждений. На левой панели в разделе Выбор поведения выберите поведение со статусом ошибки и нажмите кнопку Поиск.

  2. Для получения дополнительной информации о поведении с ошибками и предупреждениями, tst003.app.swc001.bhv:

    1. В разделе Read AUTOSAR behavior щелкните ссылку См. Определение ключевого автозара для этого поведения.

    2. Разверните сообщение об ошибке вверху. Эта ошибка иллюстрирует ситуацию, когда Polyspace не может моделировать событие из-за проблемы в спецификации ARXML. В этом случае порт не определен.

    3. На левой панели в разделе Выбор функции выберите все элементы с ошибкой или предупреждением и нажмите кнопку Поиск. Появится еще одно сообщение об ошибке. Разверните сообщение об ошибке. Эта ошибка иллюстрирует ситуацию, в которой Polyspace может создать модель, несмотря на ошибку. В этом случае тип данных не определен, и анализ продолжается с ухудшенным типом.

    На основе сообщений можно найти точные ошибки в ARXML.

    В этом поведении также отображаются ошибки извлечения кода. Эти ошибки извлечения кода можно проследить до проблем в ARXML. При устранении проблем в ARXML ошибки извлечения кода также исправляются. Фиксированный проект можно просмотреть, выполнив анализ с помощью файла опций options_ok.txt.

См. также

Связанные темы