exponenta event banner

Запустить Polyspace для кода AUTOSAR

В этом разделе описывается компонентный подход к проверке кода 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 команда.

Для выполнения действий, описанных в этом учебном пособии, используйте демонстрационные файлы в polyspaceroot\help\toolbox\codeprover\examples\polyspace_autosar.

Запуск Polyspace в интерфейсе пользователя

В настольных продуктах Polyspace можно создать проект Polyspace в интерфейсе пользователя. Каждый модуль проекта содержит исходные файлы, реализующие один программный компонент. Проверку можно выполнить для одного модуля или для всех модулей вместе.

Чтение ARXML и источников

Укажите заранее, что проект должен быть создан из спецификаций AUTOSAR.

  1. Выберите «Файл» > «Создать». В окне Свойства проекта (Project-Properties) выберите Создать из спецификации AUTOSAR (Create from AUTOSAR specification).

  2. Укажите папку верхнего уровня, содержащую файлы 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.

См. также

| |

Связанные темы