Polyspace® для AUTOSAR запускает статический анализ программы реализации кода компонентов программного обеспечения AUTOSAR. Анализ ищет возможные ошибки времени выполнения или несоответствие со спецификациями в AUTOSAR XML (ARXML).
Чтобы запустить Polyspace на реализации кода компонентов программного обеспечения AUTOSAR, предоставьте эту информацию:
Папка ARXML: Эта папка содержит все файлы .arxml
, которые задают вашу модель AUTOSAR. Файлы задают типы данных, runnables, события и другую информацию о компонентах программного обеспечения в вашей модели AUTOSAR.
Обратите внимание на то, что Polyspace может проанализировать XML-схему AUTOSAR только для релизов 3.0 и позже.
Папка исходного кода: Эта папка содержит реализацию кода С компонентов программного обеспечения. Файлы .c
в этой папке содержат функции, реализующие AUTOSAR runnables и другие вызванные функции. Папка может также содержать заголовочные файлы, на которые ссылаются в ваших исходных файлах.
Если вы ссылаетесь на заголовочные файлы, расположенные в другой папке, можно обеспечить то местоположение отдельно.
Анализ анализирует ваши файлы ARXML, читает ваши исходные файлы и создает проект Polyspace с отдельным модулем для каждого компонента программного обеспечения. Polyspace Code Prover™ затем проверяет каждый модуль на ошибки времени выполнения или нарушения ограничений данных в ARXML во времени выполнения.
Эта тема показывает, как запустить 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. Исследуйте проблему далее и зафиксируйте свои файлы ARXML или код соответственно. Смотрите Анализ Polyspace Поиска и устранения неисправностей Кода AUTOSAR.
В некоторых случаях вам придется обеспечить дополнительные пути, чтобы включать папки или макроопределения, чтобы диагностировать ошибки.
Чтобы задать пути, чтобы включать файлы, которые непосредственно не находятся под исходной папкой, используйте поле Specify additional include folders.
Это поле соответствует опции -I
polyspace-autosar
.
Чтобы задать определения типов и макроопределения, которые не находятся в ваших исходных файлах, используйте поле Specify additional macro definitions. Задайте файл с определениями.
Это поле соответствует опции -include
polyspace-autosar
.
Чтобы задать один из усовершенствованных параметров командной строки, сопоставленных с polyspace-autosar
, используйте поле Advanced settings.
Например:
Вы можете хотеть, чтобы верификация была выполнена на удаленном кластере и результатах, загруженных на Метрики Polyspace. Введите эту расширенную настройку:
-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, важные для многозадачности, и запустите Средство поиска Ошибки. Для получения дополнительной информации смотрите ARXML files selection (-autosar-multitasking)
.
Верификация Программы автоматического доказательства кода: функция main
сгенерирована (в файле psar_prove_main.c
), когда вы создаете проект Polyspace из описания AUTOSAR. Функции вызовов функции main
, которые реализуют выполнимые сущности в компонентах программного обеспечения. Сгенерированный main
необходим для анализа Программы автоматического доказательства Кода. Вы не можете изменить свойства этой функции main
.
Опции Automatic Orange Tester
: Вы не можете использовать Автоматический Оранжевый Тестер когда рабочий Polyspace на реализации кода компонентов программного обеспечения AUTOSAR.
Проверьте каждый модуль индивидуально или все модули. Верификация модуля проверяет реализацию кода соответствующего компонента программного обеспечения против спецификаций ARXML и также проверяет на ошибки времени выполнения. Смотрите Преимущества Polyspace для AUTOSAR.
Чтобы проверить один модуль, выберите модуль и нажмите Run Code Prover. Чтобы проверить все модули, из выпадающего списка около Run Code Prover, выбирают Run All Modules.
Если вы обновляете свой код или спецификации ARXML, можно повторно анализировать модули. Чтобы начаться, щелкните правой кнопкой по своему проекту и выберите Update AUTOSAR Project. Воссоздайте свой проект и повторно выполните верификацию на модулях.
Если вы изменяете код только для определенных компонентов программного обеспечения, только затронутые модули воссоздаются. Модули, соответствующие другим компонентам программного обеспечения, остаются неизменными.
Смотрите результаты Polyspace анализа на коде 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 |
Можно также запустить Программу автоматического доказательства Кода на реализации кода компонентов программного обеспечения AUTOSAR со скриптами MATLAB®. Смотрите polyspaceAutosar
.
Смотрите результаты Polyspace анализа на коде AUTOSAR.
AUTOSAR runnable not implemented
| Invalid result of AUTOSAR runnable implementation
| Invalid use of AUTOSAR runtime environment function