В этом разделе описывается компонентный подход к проверке кода AUTOSAR с помощью Polyspace. Подход к интеграционному анализу см. в разделе Выбор между компонентным и интеграционным анализом кода AUTOSAR с Polyspace.
В этом учебном пособии описывается, как открыть результаты Prover™ кода Polyspace ® для кода, специфичного для AUTOSAR, и интерпретировать результаты, которые выделяют нарушение ограничений данных в ARXML.
Программа Code Prover проверяет реализацию кода программных компонентов AUTOSAR на несоответствие спецификациям в ARXML. Например, если аргумент функции RTE имеет значение за пределами ограниченного диапазона, определенного в ARXML, анализ помечает возможную проблему.
![]()
Чтобы выполнить действия, описанные в этом учебном пособии, запустите программу Polyspace для демонстрационных файлов в |
При выполнении анализа в интерфейсе пользователя Polyspace можно открыть каждый результат напрямую. Дважды щелкните по результату, который требуется открыть.
![]()

![]()
При выполнении анализа с помощью сценариев после анализа можно открыть результаты несколькими способами.
Открыть файл psar_project.xhtml из папки проекта в веб-браузере. Появится обзор результатов для всех компонентов программного обеспечения и переход к результатам для каждого компонента программного обеспечения. Дополнительные сведения см. в разделе Обзор результатов для всех компонентов программного обеспечения.
Открыть файл psar_project.psprj из папки проекта в интерфейсе пользователя Polyspace. Откройте каждый результат на панели «Диспетчер проектов».
Перейдите к папкам, содержащим отдельные файлы результатов. Открыть файл результатов (с расширением .pscp) в интерфейсе пользователя Polyspace.
Файлы результатов хранятся во вложенной папке AUTOSAR папки проекта. Путь к каждому результату следует за полным именем внутреннего поведения компонента программного обеспечения. Например, для полного имени pkg.component.bhv, результаты хранятся в AUTOSAR\pkg\component\bhv\verification (имя последней подпапки CP_Result при выполнении проверки в интерфейсе пользователя Polyspace).
![]()
Перед открытием определенного набора результатов можно просмотреть обзор результатов для всех компонентов программного обеспечения. Выполните одно из следующих действий:
Открыть файл psar_project.xhtml в папке проекта на компьютере, где выполняется анализ. При просмотре результатов с другого компьютера доступ к этому файлу может отсутствовать.
Загрузите файлы результатов в приложение Polyspace Access. Для начала см. разделы Загрузка результатов в веб-интерфейс Polyspace Access (сервер проверки кода Polyspace) и Интерпретация результатов (Доступ к программе проверки кода Polyspace).
Используйте первый метод для упрощения понимания результатов.
В файле psar_project.xhtmlщелкните значок
в верхнем левом углу. На левой панели щелкните Поведение. Можно просмотреть список всех компонентов программного обеспечения, внутреннее поведение которых извлечено.
Этот список можно фильтровать для отображения только интересующих компонентов программного обеспечения. Для просмотра определенных компонентов программного обеспечения в поле поиска введите полное имя интересующего компонента программного обеспечения.
Можно также ввести регулярные выражения для просмотра нескольких компонентов. Например, для просмотра всех компонентов, имена которых начинаются с pkg.tst002.swc001, введите выражение:
^pkg.tst002.swc001.*
Щелкните Поиск (Search). В списке справа отображаются только те компоненты программного обеспечения, которые были запрошены.
![]()

![]()
Можно также отфильтровать компоненты на основе других критериев:
Успех или неудача проверки
Чтобы просмотреть только те компоненты программного обеспечения, которые прошли проверку, щелкните и очистите фильтр состояния ошибок.
Наличие или отсутствие определенных видов результатов, например, красных проверок
Чтобы увидеть только компоненты программного обеспечения, которые имеют красные проверки, щелкните все строки, содержащие красный фильтр, за исключением самого красного фильтра.
![]()
Для каждого компонента программного обеспечения эта информация отображается в файле. psar_project.xhtml в папке проекта (см. предыдущий рисунок).
Состояние этого программного компонента относительно анализа. То есть анализировали ли спецификацию программного компонента, извлекали ли ее исходный код, а затем анализировали с помощью средства проверки кода.
Чтобы убедиться, что анализ проверки кода завершен, в разделе Верификация извлеченного кода реализации найдите следующее утверждение:
State after last command execution: updated.Функции, предоставляемые данным программным компонентом и Rte_ используемые функции.
Чтобы просмотреть этот список, щелкните ссылку:
See key autosar definition for this behaviorГрафическое представление исполняемых файлов в программном компоненте. Графическое представление показывает:
Функции начального уровня, реализующие выполняемые объекты и вызываемые ими
Файлы, содержащие эти функции
Чтобы увидеть этот вид, в списке компонентов программного обеспечения на левой панели щелкните
значок (график поведения) для интересующего вас компонента программного обеспечения. Чтобы вернуться с графика к текстовому описанию программного компонента, щелкните
значок (страница поведения).
![]()

![]()
В этом примере показано, что компонент программного обеспечения имеет внутреннее поведение. bhv001 имеет три runnables, реализованные посредством функций начальной точки foo, init, и step. Все три функции точки входа определены в файле swc001.c.
Функция step вызывает функции, определенные в других файлах, например, dep3.c. Можно щелкнуть
значок для step просмотр только файлов, задействованных в реализации выполняемого step. Чтобы вернуться к полному графическому виду программного компонента, щелкните в любом месте на графике.
![]()
Обзор результатов проверки кода со ссылками на файлы результатов.
Ищите такие строки, как:
Verification results are in summary: green check=84, orange check=2, red check=1
.pscp прежде чем перейти по ссылке, можно просто загрузить файл результатов. Убедитесь, что .pscp файлы всегда открываются в интерфейсе пользователя Polyspace (с исполняемым файлом polyspaceroot\polyspace\bin, где polyspaceroot является папкой установки Polyspace).Результаты состоят из специфичных для AUTOSAR проверок времени выполнения, таких как Invalid result of AUTOSAR runnable implementation и общие проверки времени выполнения C/C + +, такие какDivision by zero.
![]()
![]()

![]()
На панели Список результатов (Results List) выберите результат Недопустимый результат выполняемой реализации AUTOSAR или Недопустимое использование функции среды выполнения AUTOSAR. Исследуйте результат, используя информацию на различных панелях.
![]()
Используя информацию на панели Сведения о результате (Result Details), определите, нарушает ли возвращаемое значение или аргумент ограничения данных в ARXML или может иметь значение NULL. Ищите! значок, который указывает на определенную ошибку или? значок, указывающий на возможную ошибку.
Для возвращаемого значения и каждого аргумента отображаются фактические возможные значения во время выполнения и значения, разрешенные типом данных в спецификации ARXML. Сравните их и найдите недопустимое значение.
Результат Invalid result of AUTOSAR runnable implementation определяет, может ли возвращаемое значение функции, реализующей runnable, или выходные аргументы нарушать ограничения данных. Результат Недопустимое использование функции среды выполнения AUTOSAR определяет, являются ли входные аргументы Rte_ функция нарушает ограничения данных.
![]()
Иногда может потребоваться просмотреть тип данных приложения, из которого исходит переменная Базовый тип программного обеспечения. Щелкните синюю ссылку спецификации параметра и просмотрите извлечение ARXML, описывающее эту информацию о типе данных параметра или возвращаемого значения:
Тип данных приложения, тип данных реализации и базовый тип программного обеспечения
Ограничение данных, единица измерения и метод вычисления
![]()
Узнайте, как переменная получает значения, нарушающие ограничения данных. Чтобы отследить код, на панели «Источник» щелкните правой кнопкой мыши переменную и выполните поиск всех ее экземпляров или перейдите к ее определению. Дополнительные советы см. в разделе Интерпретация результатов проверки кода в интерфейсе пользователя Polyspace Desktop.
Решите, исправить ли код или ARXML, или обосновать результат с помощью комментариев. См. раздел Результаты анализа пространства адресов с помощью исправлений ошибок или обоснований.
![]()
Invalid result of AUTOSAR runnable implementation | Invalid use of AUTOSAR runtime environment function