FreeRTOS-Kernel/verification/verifast/start-vfide.sh
Tobias Reinhard 21f9a95a10 Fixed proof setup include path
The include path contained some directories within the SMP demos FreeRTOS source tree (which is the official unaltered FreeRTOS repo). Updated the include path such that it points to our forked version of the FreeRTOS kernel repo.
2022-10-13 09:48:11 -04:00

90 lines
4.6 KiB
Bash
Executable file

# This script must be run from the directory in which it resides,
# i.e., `FreeRTOS-Kernel/verification/verifast`.
VFIDE="$1"
echo Path to vfide binary : "\'$VFIDE\'"
SOURCE_DIR="../.."
HEADER_DIR="$SOURCE_DIR/include"
TASK_H="$HEADER_DIR/task.h"
TASKS_C="$SOURCE_DIR/tasks.c"
PROOF_SETUP_DIR="proof_setup"
GENERATED_HEADERS_DIR="$PROOF_SETUP_DIR/generated"
RP2040_CONFIG_DIR="$SOURCE_DIR/portable/ThirdParty/GCC/RP2040/include"
FREERTOS_SMP_DEMO_DIR="demos/FreeRTOS-SMP-Demos"
PICO_SDK_DIR="sdks/pico-sdk"
# We replaced the following include paths:
# `$FREERTOS_SMP_DEMO_DIR/FreeRTOS/Demo/CORTEX_M0+_RP2040/build/generated/pico_base`
# ->
# `$GENERATED_HEADERS_DIR/pico_base`
"$VFIDE" -I "$HEADER_DIR" \
-I $PROOF_SETUP_DIR -D VERIFAST "$TASKS_C" \
-I $RP2040_CONFIG_DIR \
-I $PICO_SDK_DIR/src/common/pico_base/include \
-I $GENERATED_HEADERS_DIR/pico_base \
-I $PICO_SDK_DIR/src/boards/include \
-I $PICO_SDK_DIR/src/rp2_common/cmsis/include \
-I $FREERTOS_SMP_DEMO_DIR/FreeRTOS/Demo/CORTEX_M0+_RP2040/OnEitherCore \
-I $PICO_SDK_DIR/src/rp2040/hardware_regs/include \
-I $PICO_SDK_DIR/src/rp2_common/hardware_base/include \
-I $PICO_SDK_DIR/src/rp2_common/hardware_clocks/include \
-I $PICO_SDK_DIR/src/rp2040/hardware_structs/include \
-I $PICO_SDK_DIR/src/rp2_common/hardware_claim/include \
-I $PICO_SDK_DIR/src/rp2_common/hardware_sync/include \
-I $PICO_SDK_DIR/src/rp2_common/hardware_gpio/include \
-I $PICO_SDK_DIR/src/rp2_common/hardware_irq/include \
-I $PICO_SDK_DIR/src/common/pico_sync/include \
-I $PICO_SDK_DIR/src/common/pico_time/include \
-I $PICO_SDK_DIR/src/rp2_common/hardware_timer/include \
-I $PICO_SDK_DIR/src/common/pico_util/include \
-I $PICO_SDK_DIR/src/rp2_common/hardware_resets/include \
-I $PICO_SDK_DIR/src/rp2_common/hardware_pll/include \
-I $PICO_SDK_DIR/src/rp2_common/hardware_vreg/include \
-I $PICO_SDK_DIR/src/rp2_common/hardware_watchdog/include \
-I $PICO_SDK_DIR/src/rp2_common/hardware_xosc/include \
-I $PICO_SDK_DIR/src/rp2_common/hardware_exception/include \
-I $PICO_SDK_DIR/src/rp2_common/pico_multicore/include \
-I $PICO_SDK_DIR/src/common/pico_stdlib/include \
-I $PICO_SDK_DIR/src/rp2_common/hardware_uart/include \
-I $PICO_SDK_DIR/src/rp2_common/hardware_divider/include \
-I $PICO_SDK_DIR/src/rp2_common/pico_runtime/include \
-I $PICO_SDK_DIR/src/rp2_common/pico_printf/include \
-I $PICO_SDK_DIR/src/rp2_common/pico_bootrom/include \
-I $PICO_SDK_DIR/src/common/pico_bit_ops/include \
-I $PICO_SDK_DIR/src/common/pico_divider/include \
-I $PICO_SDK_DIR/src/rp2_common/pico_double/include \
-I $PICO_SDK_DIR/src/rp2_common/pico_int64_ops/include \
-I $PICO_SDK_DIR/src/rp2_common/pico_float/include \
-I $PICO_SDK_DIR/src/rp2_common/pico_malloc/include \
-I $PICO_SDK_DIR/src/rp2_common/boot_stage2/include \
-I $PICO_SDK_DIR/src/common/pico_binary_info/include \
-I $PICO_SDK_DIR/src/rp2_common/pico_stdio/include \
-I $PICO_SDK_DIR/src/rp2_common/pico_stdio_uart/include \
-I $PICO_SDK_DIR/src/rp2_common/pico_stdio_usb/include \
-I $PICO_SDK_DIR/lib/tinyusb/src \
-I $PICO_SDK_DIR/lib/tinyusb/src/common \
-I $PICO_SDK_DIR/lib/tinyusb/hw \
-I $PICO_SDK_DIR/src/rp2_common/pico_fix/rp2040_usb_device_enumeration/include \
-I $PICO_SDK_DIR/src/rp2_common/pico_unique_id/include \
-I $PICO_SDK_DIR/src/rp2_common/hardware_flash/include \
-I $PICO_SDK_DIR/src/common/pico_usb_reset_interface/include \
-I $PICO_SDK_DIR/src/rp2_common/pico_platform/include/
# Defines used during the built of the FreeRTOS SMP Demo that might be relevant
# in the future:
# -D CFG_TUSB_DEBUG=0 -D CFG_TUSB_MCU=OPT_MCU_RP2040 -D CFG_TUSB_OS=OPT_OS_PICO -D FREE_RTOS_KERNEL_SMP=1 -D LIB_FREERTOS_KERNEL=1 -D LIB_PICO_BIT_OPS=1 -D LIB_PICO_BIT_OPS_PICO=1 -D LIB_PICO_DIVIDER=1 -D LIB_PICO_DIVIDER_HARDWARE=1 -D LIB_PICO_DOUBLE=1 -D LIB_PICO_DOUBLE_PICO=1 -D LIB_PICO_FIX_RP2040_USB_DEVICE_ENUMERATION=1 -D LIB_PICO_FLOAT=1 -D LIB_PICO_FLOAT_PICO=1 -D LIB_PICO_INT64_OPS=1 -D LIB_PICO_INT64_OPS_PICO=1 -D LIB_PICO_MALLOC=1 -D LIB_PICO_MEM_OPS=1 -D LIB_PICO_MEM_OPS_PICO=1 -D LIB_PICO_MULTICORE=1 -D LIB_PICO_PLATFORM=1 -D LIB_PICO_PRINTF=1 -D LIB_PICO_PRINTF_PICO=1 -D LIB_PICO_RUNTIME=1 -D LIB_PICO_STANDARD_LINK=1 -D LIB_PICO_STDIO=1 -D LIB_PICO_STDIO_UART=1 -D LIB_PICO_STDIO_USB=1 -D LIB_PICO_STDLIB=1 -D LIB_PICO_SYNC=1 -D LIB_PICO_SYNC_CORE=1 -D LIB_PICO_SYNC_CRITICAL_SECTION=1 -D LIB_PICO_SYNC_MUTEX=1 -D LIB_PICO_SYNC_SEM=1 -D LIB_PICO_TIME=1 -D LIB_PICO_UNIQUE_ID=1 -D LIB_PICO_UTIL=1 -D PICO_BOARD=\"pico\" -D PICO_BUILD=1 -D PICO_CMAKE_BUILD_TYPE=\"Release\" -D PICO_COPY_TO_RAM=0 -D PICO_CXX_ENABLE_EXCEPTIONS=0 -D PICO_NO_FLASH=0 -D PICO_NO_HARDWARE=0 -D PICO_ON_DEVICE=1 -D PICO_TARGET_NAME=\"on_core_zero\" -D PICO_USE_BLOCKED_RAM=0 \