Запуск Polyspace на коде AUTOSAR

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

Чтобы следовать шагам в этом руководстве, используйте демо- файлы в polyspaceroot\ help\toolbox\codeprover\examples\polyspace _ авто-РСА.

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

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

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

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

  1. Выберите File > New. В окне Project-Properties выберите Create from AUTOSAR specification.

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

Запустите 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.

См. также

| |

Похожие темы