Интерпретируйте ошибки и предупреждения в Polyspace кода AUTOSAR

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

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

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

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

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

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

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

Чтобы следовать шагам в этом руководстве, используйте демо- файлы в polyspaceroot\ help\toolbox\codeprover\examples\troubleshooting _ полипространство _ авто-РСА.

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

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

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

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

    В Detailed status per AUTOSAR Behavior разделе обратите внимание, что:

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

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

    Можно также отфильтровать поведение, которое не имеет ошибок или предупреждений. На левой панели в разделе Behavior Selection выберите behaviors with error-status и нажмите Search.

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

    1. В Read AUTOSAR behavior разделов щелкните ссылку See key autosar definition for this behavior.

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

    3. На левой панели в разделе Function selection выберите all having error or warning и нажмите Search. Вы видите еще одно сообщение об ошибке. Разверните сообщение об ошибке. Эта ошибка иллюстрирует ситуацию, в которой Polyspace может создать модель, несмотря на ошибку. В этом случае тип данных не задан, и анализ продолжается с ухудшенным типом.

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

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

См. также

Похожие темы