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

Чтобы анализировать реализацию кода компонентов программного обеспечения 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 содержа спецификации XML AUTOSAR.

  • impl содержа реализацию кода тех технических требований.

arxml папка имеет несколько подпапок. Две из этих подпапок, appli и interfaces, имейте subsubfolders ok и ko на разных уровнях в структуре папок. ok и ko subsubfolders содержат тот же набор файлов, за исключением того, что файлы в 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интерфейсы, или types (кроме файла do_not_use_this_arxml_file.arxml).

Для получения дополнительной информации о шаблонах выбора файла смотрите, Выбирают AUTOSAR XML (ARXML) и Code Files for Polyspace Analysis.

Запустите анализ

Чтобы запустить анализ, в терминале, вводят команду:

polyspace-autosar -options-file options_ko.txt
Эта команда принимает что путь polyspaceroot\polyspace\bin уже добавляется к PATH переменная в вашей операционной системе. Здесь, polyspaceroot папка установки Polyspace, например, C:\Program Files\Polyspace\R2020b. В противном случае используйте полный путь для 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.

Смотрите также

Похожие темы