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

![]()
Укажите заранее, что проект должен быть создан из спецификаций AUTOSAR.
Выберите «Файл» > «Создать». В окне Свойства проекта (Project-Properties) выберите Создать из спецификации AUTOSAR (Create from AUTOSAR specification).
Укажите папку верхнего уровня, содержащую файлы ARXML, и все папки, содержащие исходные файлы. Щелкните Выполнить (Run).
Программное обеспечение анализирует спецификации ARXML и реализацию кода C и создает проект Polyspace. Каждый модуль в проекте ссылается на файлы C, реализующие один программный компонент. Имя модуля соответствует полному имени компонента программного обеспечения, указанному в ARXML. См. раздел Преимущества Polyspace для AUTOSAR.
Если программе не удается проанализировать спецификации ARXML или возникают проблемы с компиляцией кода, см. дополнительные сведения на вкладке Вывод команды или Статус проекта. Изучите проблему и исправьте файлы или код ARXML соответствующим образом. См. раздел Устранение неполадок при анализе в пространстве кода AUTOSAR.
В некоторых случаях для устранения ошибок могут потребоваться дополнительные пути к папкам или определениям макросов.
Чтобы указать пути для включения файлов, которые не находятся непосредственно под исходной папкой, используйте поле Указать дополнительные папки включения.
Это поле соответствует опции -I из polyspace-autosar.
Чтобы указать тип данных и определения макросов, которые отсутствуют в исходных файлах, используйте поле Указать дополнительные определения макросов. Укажите файл с определениями.
Это поле соответствует опции -include из polyspace-autosar.
Задание одного из дополнительных параметров командной строки, связанных с polyspace-autosarиспользуйте поле Дополнительные настройки.
Например:
Возможно, необходимо выполнить проверку в удаленном кластере и отправить результаты в приложение 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).
![]()
После создания проекта можно изменить некоторые параметры анализа по умолчанию. Например, можно создать отчет после анализа с помощью опций в разделе Отчеты. Дополнительные сведения о задании опций см. в разделе Задание опций анализа в пространстве.
Параметры в этих разделах для проекта, созданного на основе описания AUTOSAR, не требуются:
Входные данные и препятствие: внешние ограничения данных в файлах ARXML извлекаются автоматически при создании проекта Polyspace. Нельзя явно указать внешние ограничения.
Многозадачность: невозможно выполнить многозадачный анализ с помощью проекта Polyspace, поскольку каждый модуль анализирует реализацию одного программного компонента. Чтобы обнаружить гонки данных, создайте отдельный проект для всего приложения и явно добавьте исходные папки. Укажите ARXML-файлы, релевантные для многозадачности, и запустите Bug Finder. Дополнительные сведения см. в разделе ARXML files selection (-autosar-multitasking).
Проверка проверочного кода: A main генерируется функция (в файле psar_prove_main.c) при создании проекта Polyspace из описания AUTOSAR. main функция вызывает функции, реализующие выполняемые объекты в компонентах программного обеспечения. Произведенный main требуется для анализа проверки кода. Вы не можете изменить свойства этого main функция.
![]()
Проверьте каждый модуль по отдельности или все модули. Проверка модуля проверяет реализацию кода соответствующего компонента программного обеспечения на соответствие спецификациям ARXML, а также проверяет наличие ошибок во время выполнения. См. раздел Преимущества Polyspace для AUTOSAR.
Чтобы проверить один модуль, выберите модуль и нажмите кнопку Run Code Prover. Чтобы проверить все модули, в раскрывающемся списке рядом с полем «Проверка кода выполнения» выберите «Выполнить все модули».
![]()
При обновлении кода или спецификаций ARXML можно повторно проанализировать модули. Для начала щелкните правой кнопкой мыши проект и выберите «Обновить проект AUTOSAR». Создайте проект заново и снова запустите проверку модулей.
При изменении кода только для определенных компонентов программного обеспечения повторно создаются только соответствующие модули. Модули, соответствующие другим компонентам программного обеспечения, остаются неизменными.
![]()
См. раздел Обзор результатов работы с полиспейсом в коде AUTOSAR.
![]()
Запустить 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.
![]()
См. раздел Обзор результатов работы с полиспейсом в коде AUTOSAR.
![]()
AUTOSAR runnable not implemented | Invalid result of AUTOSAR runnable implementation | Invalid use of AUTOSAR runtime environment function