В этом разделе описывается основанный на компонентах подход к проверке кода AUTOSAR с Polyspace. Для подхода интегрирования анализа смотрите Выбор между основанным на компонентах и Интегрировании анализом кода AUTOSAR с Polyspace.
Если вы используете методологию AUTOSAR для разработки программного обеспечения с командой build для компиляции, можно повторно использовать существующие программные продукты, чтобы задать исходные файлы и опции компиляции для Code Prover.
Спецификацию исходного файла можно повторно использовать в авто-РСА XML- файлы.
Polyspace® может читать спецификации AUTOSAR XML и извлекать исходные файлы, используемые в каждом программном компоненте, в модули для последующих проверок во время выполнения Code Prover. Если вы используете методологию AUTOSAR для разработки программного обеспечения, можно повторно использовать модуляризацию, встроенную в эту методологию, для модульного анализа Code Prover. Посмотрите polyspace-autosar.
Можно повторно использовать опции компиляции, заданные в команде build.
Polyspace может проследить вашу команду сборки и обнаружить компилятор, вызываемый вместе с опциями компиляции, такими как пути к стандартным включениям и определениям макросов. Посмотрите polyspace-configure.
В этом разделе показано, как объединить два подхода и автоматизировать анализ Code Prover.
![]()
Чтобы следовать шагам в этом руководстве, используйте демо- файлы в В примере используются диафрагмы make-файла и пути Linux на основе Linux. Чтобы запустить пример в Windows®, внесите соответствующие изменения. |
Скопируйте содержимое демо-папки во временную папку, например /tmp/demo/. Перейдите к этой папке.
cd /tmp/demo |
Запустите Code Prover на ARXML и исходных файлах в подпапке mRtwDemoAutosar_autosar_rtw. Сохраните результаты в папке /tmp/res.
polyspace-autosar -create-project /tmp/res \ -arxml-dir mRtwDemoAutosar_autosar_rtw \ -sources-dir mRtwDemoAutosar_autosar_rtw |
Обратите внимание на ошибки компиляции. Для образца, в /tmp/res/.extract папка, откройте файл GPIO_read.log. Вы видите #error директива, потому что макрос MY_DEFINE_FROM_SIMULINK не определен.
Если вы открываете файл GPIO_read.c в /tmp/demo/mRtwDemoAutosar_autosar_rtw, вы видите линии, вызывающие проблему.
#ifndef MY_DEFINE_FROM_SIMULINK #error Missing MY_DEFINE_FROM_SIMULINK #endif |
Эта линия должна вызвать ошибку во время предварительной обработки, если только макрос не MY_DEFINE_FROM_SIMULINK задан.
![]()
Файл make mRtwDemoAutosar.mk в /tmp/demo/mRtwDemoAutosar_autosar_rtw задает макросы и пути для включения папок. Например, ранее отсутствующий макрос MY_DEFINE_FROM_SIMULINK определяется в линии:
DEFINES_CUSTOM = -DMY_DEFINE_FROM_SIMULINK |
Перейдите к папке, содержащей файл make.
cd /tmp/demo/mRtwDemoAutosar_autosar_rtw |
Извлеките опции компиляции из команды build, которая использует этот make-файл mRtwDemoAutosar.mk. Например, если вы установили MATLAB® в /usr/local/MATLAB/R2018bможно проследить файл make вот так.
polyspace-configure -no-sources \ -output-options-file psoptions -allow-overwrite\ make -B -f mRtwDemoAutosar.mk START_DIR=.. \ MATLAB_ROOT=/usr/local/MATLAB/R2018b buildobj |
Опции компиляции в make-файле преобразуются в опции анализа Polyspace и сохраняются в файле options psoptions. The -no-sources опция гарантирует, что polyspace-configure команда извлекает только опции компиляции, но не источники. START_DIR и MATLAB_ROOT являются переменными, характерными для демо-файла make, и могут не потребоваться в других используемых make-файлах.
Удалите результаты из любого предыдущего запуска polyspace-autosar команда.
rm -r /tmp/res |
Предоставьте файл опций psoptions созданный на предыдущем шаге к polyspace-autosar команда.
polyspace-autosar -create-project /tmp/res \ -arxml-dir . \ -sources-dir .\ -extra-options-file psoptions |
Вы больше не видите ошибок компиляции, потому что Code Prover теперь знает об опциях компиляции, которые вы использовали в команде build.
![]()