В этом разделе описывается основанный на компонентах подход к проверке кода AUTOSAR с Polyspace. Для подхода интегрирования анализа смотрите Выбор между основанным на компонентах и Интегрировании анализом кода AUTOSAR с Polyspace.
Polyspace® для AUTOSAR запускает статический анализ программы по реализации кода программных компонентов AUTOSAR. Анализ ищет возможные ошибки времени выполнения или несоответствие спецификациям в AUTOSAR XML (ARXML).
Чтобы запустить Polyspace по реализации кода программных компонентов AUTOSAR, предоставьте следующую информацию:
Папка ARXML: Эта папка содержит все .arxml файлы, которые определяют вашу модель AUTOSAR. Файлы задают типы данных, возможности выполнения, события и другую информацию о компонентах программного обеспечения в модели AUTOSAR.
Обратите внимание, что Polyspace может анализировать XML-схему AUTOSAR только для релизов 4.0 и более поздних.
Папка исходного кода: Эта папка содержит реализацию кода С программных компонентов. The .c файлы в этой папке содержат функции, реализующие выполняемые функции AUTOSAR и другие вызываемые функции. Папка может также содержать заголовочные файлы, на которые ссылаются ваши исходные файлы.
Если вы ссылаетесь на файлы заголовков, расположенные в другой папке, можно указать это расположение отдельно.
Анализ анализирует ваши файлы ARXML, читает ваши исходные файлы и создает проект Polyspace с отдельным модулем для каждого программного компонента. Затем Polyspace Code Prover™ проверяет каждый модуль на ошибки времени выполнения или нарушений ограничений данных в ARXML во время выполнения.
В этом разделе показано, как запустить Polyspace при реализации кода программных компонентов AUTOSAR. Запустить Polyspace можно из пользовательского интерфейса десктопных продуктов Polyspace или из командной строки:
В пользовательском интерфейсе анализ происходит в два этапа: создание проекта Polyspace из ARXML и папок кода и запуск Code Prover на проекте.
В командной строке анализ можно сделать за один кадр со polyspace-autosar команда.
![]()
Чтобы следовать шагам в этом руководстве, используйте демо- файлы в |
В десктопных продуктах Polyspace можно создать проект Polyspace в пользовательском интерфейсе. Каждый модуль в проекте содержит исходные файлы, реализующие один программный компонент. Можно запустить верификацию на одном модуле или всех модулях вместе.
![]()

![]()
Заранее укажите, что проект должен быть создан из спецификаций AUTOSAR.
Выберите File > New. В окне Project-Properties выберите Create from AUTOSAR specification.
Укажите папку верхнего уровня, содержащую ваши файлы ARXML и все папки, содержащие исходные файлы. Нажмите Run.
Программа анализирует ваши спецификации ARXML и реализацию кода С и создает проект Polyspace. Каждый модуль в проекте ссылается на файлы C, которые реализуют один программный компонент. Имя модуля соответствует полному наименованию программного компонента, указанному в ARXML. Смотрите Преимущества Polyspace для AUTOSAR.
Если программе не удается проанализировать спецификации ARXML или запуски проблемы с компиляцией кода, см. дополнительные сведения на вкладке Command output или Project status. Исследуйте проблему и исправьте свои файлы или код соответственно. Смотрите Поиск и устранение проблем с анализом Polyspace кода AUTOSAR.
В некоторых случаях, возможно, вам придется предоставить дополнительные пути для включения папок или определений макросов, чтобы устранить ошибки.
Чтобы задать пути для включения файлов, которые не находятся непосредственно в исходной папке, используйте Specify additional include folders полей.
Это поле соответствует опции -I из polyspace-autosar.
Чтобы задать тип данных и определения макросов, которых нет в ваших исходных файлах, используйте Specify additional macro definitions полей. Укажите файл с определениями.
Это поле соответствует опции -include из polyspace-autosar.
Чтобы задать одну из расширенных опций командной строки, связанных с polyspace-autosar, используйте поле Advanced settings.
Для образца:
Можно хотеть, чтобы верификация выполнялась в удаленном кластере, а результаты отправлялись в Polyspace Metrics. Введите эту расширенную опцию:
-extra-project-options "-add-to-results-repository -batch -scheduler localhost"
localhost указывает, что тот же компьютер служит сервером и клиентом. Замените его на имя сервера. См. также Run Bug Finder or Code Prover analysis on a remote cluster (-batch) и Upload results to Polyspace Metrics (-add-to-results-repository).Можно хотеть задать компилятор и целевую архитектуру. По умолчанию при компиляции проектов, созданных из спецификаций AUTOSAR, используются gnu4.7 компилятор и архитектура i386.
Чтобы задать компилятор visual11.0 с x86_64 архитектурой, введите эту опцию:
-extra-project-options "-compiler visual11.0 -target x86_64"
Compiler (-compiler) и Target processor type (-target).
![]()
После создания проекта можно изменить некоторые опции анализа по умолчанию. Например, можно сгенерировать отчет после анализа, используя опции в разделе Reporting. Для получения дополнительной информации о том, как задать опции, смотрите Задать опции анализа Polyspace.
Вам не нужны опции в этих разделах для проекта, сгенерированного из описания AUTOSAR:
Входы и упругость: Внешние ограничения данных в файлах ARXML извлекаются автоматически при создании проекта Polyspace. Вы не можете явным образом задать внешние ограничения.
Многозадачность: Вы не можете выполнить многозадачный анализ с помощью проекта Polyspace, потому что каждый модуль анализирует реализацию одного программного компонента. Чтобы обнаружить гонки данных, создайте отдельный проект для всего приложения и явным образом добавьте свои исходные папки. Укажите файлы ARXML, относящиеся к многозадачности, и запустите Bug Finder. Для получения дополнительной информации смотрите ARXML files selection (-autosar-multitasking).
Верификация Code Prover: A main функция сгенерирована (в файле psar_prove_main.c) при создании проекта Polyspace из описания AUTOSAR. The main function вызовов функции, которые реализуют выполняемые сущности в компонентах программного обеспечения. Сгенерированный main необходим для анализа Code Prover. Вы не можете изменить свойства этого main функция.
![]()
Проверьте каждый модуль по отдельности или все модули. Верификация модуля проверяет реализацию кода соответствующего программного компонента на соответствие спецификациям ARXML, а также проверяет на ошибки времени выполнения. Смотрите Преимущества Polyspace для AUTOSAR.
Чтобы проверить один модуль, выберите модуль и нажмите Run Code Prover. Чтобы проверить все модули, из раскрывающегося списка рядом с Run Code Prover, выберите Run All Modules.
![]()
Если вы обновляете свой код или спецификации ARXML, можно повторно проанализировать модули. Чтобы начать, щелкните правой кнопкой мыши ваш проект и выберите Update AUTOSAR Project. Воссоздайте проект и перезапустите верификацию на модулях.
Если вы изменяете код только для определенных компонентов программного обеспечения, воссоздаются только затронутые модули. Модули, соответствующие другим компонентам программного обеспечения, остаются неизменными.
![]()
Смотрите Обзор результатов Polyspace на AUTOSAR Code.
![]()
Запустите polyspace-autosar команда с путями к папке ARXML и исходного кода. Команда анализирует ARXML и исходные файлы, создает проект Polyspace и анализирует все модули в проекте на ошибки времени выполнения или нарушение ограничений данных в ARXML.
В первом запуске укажите путь к ARXML и исходным файлам явным образом. В более поздних запусках задайте файл psar_project.xhtml созданный в предыдущем запуске. Анализ обнаруживает изменения в ARXML и исходных файлах с момента последнего запуска и повторно анализирует только те модули, где изменилась реализация программного компонента. Если спецификация ARXML изменилась со времени предыдущего анализа, новый анализ повторно анализирует все модули.
Например, можно запустить эти команды в .bat скрипт. В первом запуске этот скрипт ищет спецификации ARXML в папке arxml в текущей папке и исходных файлах на C в папке code. Результаты хранятся в папке polyspace в текущей папке. В более поздних запусках анализ повторно использует результат предыдущего прогона через файл psar_project.xhtml и обновляет результаты только для программных компонентов, измененных с момента последнего запуска.
echo off set POLYSPACE_AUTOSAR_PATH=C:\Program Files\Polyspace\R2019a\polyspace\bin IF NOT EXIST polyspace\psar_project.xhtml ( "%POLYSPACE_AUTOSAR_PATH%\polyspace-autosar" -create-project polyspace -arxml-dir arxml -sources-dir code ) ELSE ( "%POLYSPACE_AUTOSAR_PATH%\polyspace-autosar" -update-project polyspace\psar_project.xhtml ) Pause |
Можно также запустить Code Prover по реализации кода программных компонентов AUTOSAR с MATLAB® скрипты. Посмотрите polyspaceAutosar.
![]()
Смотрите Обзор результатов Polyspace на AUTOSAR Code.
![]()
AUTOSAR runnable not implemented | Invalid result of AUTOSAR runnable implementation | Invalid use of AUTOSAR runtime environment function