From ea7d6e3499704c754bb144528ffb0fdf09c0e876 Mon Sep 17 00:00:00 2001 From: 488_MP-4 <488_MP-4@iastate.edu> Date: Mon, 25 Mar 2024 23:03:14 +0100 Subject: [PATCH] cross-compiling --- .../config/trace.h | 8 +- .../deck/drivers/interface/locodeck.h | 8 +- .../drivers/interface/cppm.h | 1 + .../drivers/interface/i2c_drv.h | 12 +- .../drivers/interface/led.h | 1 + .../drivers/src/ak8963.c | 2 +- .../drivers/src/cppm.c | 9 +- .../drivers/src/i2c_drv.c | 376 ++-- .../drivers/src/i2cdev.c | 14 +- .../drivers/src/uart1.c | 19 +- .../drivers/src/uart2.c | 21 +- .../drivers/src/uart_syslink.c | 2 +- .../drivers/src/vl53l0x.c | 4 +- .../drivers/src/ws2812_cf2.c | 14 +- .../hal/src/usb_bsp.c | 360 +-- .../hal/src/usbd_desc.c | 21 +- .../hal/src/usec_time.c | 5 +- .../lib/CMSIS/Core/CM3/core_cm3.h | 1763 +++++++++++++++ .../lib/CMSIS/Core/CM3/stm32f10x.h | 3 +- .../lib/CMSIS/STM32F4xx/Include/cmsis_gcc.h | 1373 ++++++++++++ .../lib/CMSIS/STM32F4xx/Include/core_cm4.h | 1937 +++++++++++++++++ .../lib/CMSIS/STM32F4xx/Include/core_cmFunc.h | 87 + .../CMSIS/STM32F4xx/Include/core_cmInstr.h | 87 + .../lib/CMSIS/STM32F4xx/Include/core_cmSimd.h | 96 + .../modules/interface/bootloader.h | 1 + .../modules/src/bootloader.c | 17 +- .../modules/src/controller.c | 11 +- .../modules/src/crtpservice.c | 1 + .../modules/src/estimator.c | 11 +- .../modules/src/stabilizer.c | 4 +- .../modules/src/system.c | 61 +- .../uart/Makefile | 45 +- .../uart/build/ak8963.o | Bin 0 -> 2344 bytes .../uart/build/amg8833.o | Bin 0 -> 4144 bytes .../uart/build/app_channel.o | Bin 0 -> 2776 bytes .../uart/build/app_handler.o | Bin 0 -> 2224 bytes .../uart/build/attitude_pid_controller.o | Bin 0 -> 9456 bytes .../uart/build/bmi055_accel.o | Bin 0 -> 8456 bytes .../uart/build/bmi055_gyro.o | Bin 0 -> 3008 bytes .../uart/build/bmi088_accel.o | Bin 0 -> 6816 bytes .../uart/build/bmi088_fifo.o | Bin 0 -> 888 bytes .../uart/build/bmi088_gyro.o | Bin 0 -> 4248 bytes .../uart/build/bmi160.o | Bin 0 -> 20784 bytes .../uart/build/bmm150.o | Bin 0 -> 7952 bytes .../uart/build/bmp280.o | Bin 0 -> 8640 bytes .../uart/build/bmp3.o | Bin 0 -> 8984 bytes .../uart/build/bootloader.o | Bin 0 -> 1280 bytes .../uart/build/bstdr_comm_support.o | Bin 0 -> 1736 bytes .../uart/build/buzzer.o | Bin 0 -> 1472 bytes .../uart/build/collision_avoidance.o | Bin 0 -> 4104 bytes .../uart/build/comm.o | Bin 0 -> 2344 bytes .../uart/build/commander.o | Bin 0 -> 6960 bytes .../uart/build/console.o | Bin 0 -> 3728 bytes .../uart/build/controller.o | Bin 0 -> 3816 bytes .../uart/build/controller_indi.o | Bin 0 -> 10832 bytes .../uart/build/controller_mellinger.o | Bin 0 -> 9440 bytes .../uart/build/controller_pid.o | Bin 0 -> 5832 bytes .../uart/build/controller_student.o | Bin 0 -> 6000 bytes .../uart/build/cppm.o | Bin 0 -> 1984 bytes .../uart/build/crtp.o | Bin 0 -> 13784 bytes .../uart/build/crtp_commander.o | Bin 0 -> 2592 bytes .../uart/build/crtp_commander_generic.o | Bin 0 -> 5648 bytes .../uart/build/crtp_commander_rpyt.o | Bin 0 -> 3776 bytes .../uart/build/crtp_localization_service.o | Bin 0 -> 8384 bytes .../uart/build/crtpservice.o | Bin 0 -> 4944 bytes .../uart/build/eeprom.o | Bin 0 -> 3896 bytes .../uart/build/estimator.o | Bin 0 -> 14528 bytes .../uart/build/estimator_complementary.o | Bin 0 -> 2576 bytes .../uart/build/eventtrigger.o | Bin 0 -> 2056 bytes .../uart/build/extrx.o | Bin 0 -> 3848 bytes .../uart/build/freeRTOSdebug.o | Bin 0 -> 1888 bytes .../uart/build/i2c_drv.o | Bin 0 -> 2888 bytes .../uart/build/i2cdev.o | Bin 0 -> 1776 bytes .../uart/build/led.o | Bin 0 -> 1136 bytes .../uart/build/ledseq.o | Bin 0 -> 5888 bytes .../uart/build/lh_bootloader.o | Bin 0 -> 1696 bytes .../uart/build/log.o | Bin 0 -> 24072 bytes .../uart/build/lps25h.o | Bin 0 -> 2184 bytes .../uart/build/maxsonar.o | Bin 0 -> 968 bytes .../uart/build/mem.o | Bin 0 -> 7360 bytes .../uart/build/mpu6500.o | Bin 0 -> 16840 bytes .../uart/build/msp.o | Bin 0 -> 3320 bytes .../uart/build/ow_common.o | Bin 0 -> 2216 bytes .../uart/build/ow_syslink.o | Bin 0 -> 5944 bytes .../uart/build/param.o | Bin 0 -> 13920 bytes .../uart/build/pca9555.o | Bin 0 -> 3264 bytes .../uart/build/pca95x4.o | Bin 0 -> 2360 bytes .../uart/build/pca9685.o | Bin 0 -> 2384 bytes .../uart/build/peer_localization.o | Bin 0 -> 2032 bytes .../uart/build/pid.o | Bin 0 -> 2184 bytes .../uart/build/piezo.o | Bin 0 -> 1368 bytes .../uart/build/platformservice.o | Bin 0 -> 5200 bytes .../uart/build/pmw3901.o | Bin 0 -> 1008 bytes .../uart/build/position_controller_indi.o | Bin 0 -> 12064 bytes .../uart/build/position_controller_pid.o | Bin 0 -> 9440 bytes .../uart/build/position_estimator_altitude.o | Bin 0 -> 3744 bytes .../uart/build/power_distribution_stock.o | Bin 0 -> 4736 bytes .../uart/build/proximity.o | Bin 0 -> 1584 bytes .../uart/build/queuemonitor.o | Bin 0 -> 888 bytes .../uart/build/radiolink.o | Bin 0 -> 8320 bytes .../uart/build/range.o | Bin 0 -> 2400 bytes .../uart/build/sensfusion6.o | Bin 0 -> 6128 bytes .../uart/build/sensors.o | Bin 0 -> 2672 bytes .../uart/build/sound_cf2.o | Bin 0 -> 10312 bytes .../uart/build/stabilizer.o | Bin 0 -> 17912 bytes .../uart/build/static_mem.o | Bin 0 -> 6656 bytes .../uart/build/storage.o | Bin 0 -> 4744 bytes .../uart/build/student_attitude_controller.o | Bin 0 -> 9504 bytes .../uart/build/student_pid.o | Bin 0 -> 2280 bytes .../uart/build/supervisor.o | Bin 0 -> 3272 bytes .../uart/build/swd.o | Bin 0 -> 1536 bytes .../uart/build/syslink.o | Bin 0 -> 7096 bytes .../uart/build/sysload.o | Bin 0 -> 5048 bytes .../uart/build/system.o | Bin 0 -> 12128 bytes .../uart/build/uart1.o | Bin 0 -> 1816 bytes .../uart/build/uart2.o | Bin 0 -> 1880 bytes .../uart/build/uart_syslink.o | Bin 0 -> 2136 bytes .../uart/build/usb.o | Bin 0 -> 9368 bytes .../uart/build/usb_bsp.o | Bin 0 -> 1136 bytes .../uart/build/usbd_desc.o | Bin 0 -> 3704 bytes .../uart/build/usblink.o | Bin 0 -> 4944 bytes .../uart/build/usec_time.o | Bin 0 -> 1304 bytes .../uart/build/vl53l0x.o | Bin 0 -> 2184 bytes .../uart/build/vl53l1_api.o | Bin 0 -> 18304 bytes .../uart/build/vl53l1_api_calibration.o | Bin 0 -> 4856 bytes .../uart/build/vl53l1_api_core.o | Bin 0 -> 15760 bytes .../uart/build/vl53l1_api_debug.o | Bin 0 -> 1024 bytes .../uart/build/vl53l1_api_preset_modes.o | Bin 0 -> 4600 bytes .../uart/build/vl53l1_api_strings.o | Bin 0 -> 4520 bytes .../uart/build/vl53l1_core.o | Bin 0 -> 10264 bytes .../uart/build/vl53l1_core_support.o | Bin 0 -> 1176 bytes .../uart/build/vl53l1_error_strings.o | Bin 0 -> 1328 bytes .../uart/build/vl53l1_register_funcs.o | Bin 0 -> 10496 bytes .../uart/build/vl53l1_silicon_core.o | Bin 0 -> 1272 bytes .../uart/build/vl53l1_wait.o | Bin 0 -> 3816 bytes .../uart/build/vl53l1x.o | Bin 0 -> 1752 bytes .../uart/build/watchdog.o | Bin 0 -> 1016 bytes .../uart/build/worker.o | Bin 0 -> 2376 bytes .../uart/build/ws2812_cf2.o | Bin 0 -> 1120 bytes .../utils/src/cf_math.h | 157 +- .../src/lighthouse/lighthouse_geometry.c | 15 +- .../src/lighthouse/lighthouse_geometry.h | 5 +- 142 files changed, 5982 insertions(+), 569 deletions(-) create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/Core/CM3/core_cm3.h create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/STM32F4xx/Include/cmsis_gcc.h create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/STM32F4xx/Include/core_cm4.h create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/STM32F4xx/Include/core_cmFunc.h create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/STM32F4xx/Include/core_cmInstr.h create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/STM32F4xx/Include/core_cmSimd.h create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ak8963.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/amg8833.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/app_channel.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/app_handler.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/attitude_pid_controller.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmi055_accel.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmi055_gyro.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmi088_accel.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmi088_fifo.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmi088_gyro.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmi160.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmm150.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmp280.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmp3.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bootloader.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bstdr_comm_support.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/buzzer.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/collision_avoidance.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/comm.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/commander.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/console.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/controller.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/controller_indi.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/controller_mellinger.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/controller_pid.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/controller_student.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/cppm.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtp.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtp_commander.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtp_commander_generic.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtp_commander_rpyt.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtp_localization_service.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtpservice.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/eeprom.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/estimator.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/estimator_complementary.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/eventtrigger.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/extrx.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/freeRTOSdebug.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/i2c_drv.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/i2cdev.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/led.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ledseq.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/lh_bootloader.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/log.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/lps25h.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/maxsonar.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/mem.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/mpu6500.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/msp.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ow_common.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ow_syslink.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/param.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pca9555.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pca95x4.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pca9685.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/peer_localization.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pid.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/piezo.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/platformservice.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pmw3901.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/position_controller_indi.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/position_controller_pid.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/position_estimator_altitude.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/power_distribution_stock.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/proximity.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/queuemonitor.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/radiolink.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/range.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/sensfusion6.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/sensors.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/sound_cf2.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/stabilizer.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/static_mem.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/storage.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/student_attitude_controller.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/student_pid.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/supervisor.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/swd.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/syslink.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/sysload.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/system.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/uart1.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/uart2.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/uart_syslink.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/usb.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/usb_bsp.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/usbd_desc.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/usblink.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/usec_time.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l0x.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_api.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_api_calibration.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_api_core.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_api_debug.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_api_preset_modes.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_api_strings.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_core.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_core_support.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_error_strings.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_register_funcs.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_silicon_core.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_wait.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1x.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/watchdog.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/worker.o create mode 100644 uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ws2812_cf2.o diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/config/trace.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/config/trace.h index 65fa9ffb2..96a4bc589 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/config/trace.h +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/config/trace.h @@ -49,9 +49,9 @@ #define ITM_BLOCKING_ON_QUEUE_RECEIVE 0x0300 #define ITM_BLOCKING_ON_QUEUE_SEND 0x0400 -#define traceQUEUE_SEND(xQueue) ITM_SEND(3, ITM_QUEUE_SEND | ((xQUEUE *) xQueue)->uxQueueNumber) -#define traceQUEUE_SEND_FAILED(xQueue) ITM_SEND(3, ITM_QUEUE_FAILED | ((xQUEUE *) xQueue)->uxQueueNumber) -#define traceBLOCKING_ON_QUEUE_RECEIVE(xQueue) ITM_SEND(3, ITM_BLOCKING_ON_QUEUE_RECEIVE | ((xQUEUE *) xQueue)->uxQueueNumber) -#define traceBLOCKING_ON_QUEUE_SEND(xQueue) ITM_SEND(3, ITM_BLOCKING_ON_QUEUE_SEND | ((xQUEUE *) xQueue)->uxQueueNumber) +// #define traceQUEUE_SEND(xQueue) ITM_SEND(3, ITM_QUEUE_SEND | ((xQUEUE *) xQueue)->uxQueueNumber) +// #define traceQUEUE_SEND_FAILED(xQueue) ITM_SEND(3, ITM_QUEUE_FAILED | ((xQUEUE *) xQueue)->uxQueueNumber) +// #define traceBLOCKING_ON_QUEUE_RECEIVE(xQueue) ITM_SEND(3, ITM_BLOCKING_ON_QUEUE_RECEIVE | ((xQUEUE *) xQueue)->uxQueueNumber) +// #define traceBLOCKING_ON_QUEUE_SEND(xQueue) ITM_SEND(3, ITM_BLOCKING_ON_QUEUE_SEND | ((xQUEUE *) xQueue)->uxQueueNumber) #endif diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/interface/locodeck.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/interface/locodeck.h index d2bb34493..ad869a62a 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/interface/locodeck.h +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/deck/drivers/interface/locodeck.h @@ -38,7 +38,8 @@ #include "FreeRTOS.h" -#include "libdw1000.h" +//COMMENTED FIRMWARE +//#include "libdw1000.h" #include "stabilizer_types.h" // Timestamp counter frequency @@ -89,8 +90,9 @@ uint8_t locoDeckGetActiveAnchorIdList(uint8_t unorderedAnchorList[], const int m // Callbacks for uwb algorithms typedef struct uwbAlgorithm_s { - void (*init)(dwDevice_t *dev); - uint32_t (*onEvent)(dwDevice_t *dev, uwbEvent_t event); + //COMMENTED FIRMWARE + // void (*init)(dwDevice_t *dev); + // uint32_t (*onEvent)(dwDevice_t *dev, uwbEvent_t event); bool (*isRangingOk)(); bool (*getAnchorPosition)(const uint8_t anchorId, point_t* position); uint8_t (*getAnchorIdList)(uint8_t unorderedAnchorList[], const int maxListSize); diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/interface/cppm.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/interface/cppm.h index 0971d6b88..0f7d9d952 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/interface/cppm.h +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/interface/cppm.h @@ -26,6 +26,7 @@ */ #include <stdint.h> +#include <stdbool.h> void cppmInit(void); diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/interface/i2c_drv.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/interface/i2c_drv.h index 5942b399a..11fea627f 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/interface/i2c_drv.h +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/interface/i2c_drv.h @@ -1,12 +1,20 @@ #ifndef I2C_H #define I2C_H +#include<stdbool.h> + #include "FreeRTOS.h" #include "semphr.h" #include "queue.h" /* ST includes */ #include "stm32fxxx.h" +//ADDED +// #include "stm32f4xx_dma.h" +// #include "stm32f4xx_gpio.h" +// #include "stm32f4xx_rcc.h" +// #include "stm32f4xx_i2c.h" + #define I2C_NO_INTERNAL_ADDRESS 0xFFFF typedef enum @@ -32,7 +40,7 @@ typedef struct _I2cMessage uint8_t nbrOfRetries; //< The slave address of the device on the I2C bus. I2cDirection direction; //< Direction of message I2cStatus status; //< i2c status - xQueueHandle clientQueue; //< Queue to send received messages to. + //xQueueHandle clientQueue; //< Queue to send received messages to. bool isInternal16bit; //< Is internal address 16 bit. If false 8 bit. uint16_t internalAddress; //< Internal address of device. uint8_t *buffer; //< Pointer to the buffer from where data will be read for transmission, or into which received data will be placed. @@ -73,7 +81,7 @@ typedef struct StaticSemaphore_t isBusFreeSemaphoreBuffer; SemaphoreHandle_t isBusFreeMutex; //< Mutex to protect bus StaticSemaphore_t isBusFreeMutexBuffer; - DMA_InitTypeDef DMAStruct; //< DMA configuration structure used during transfer setup. + //DMA_InitTypeDef DMAStruct; //< DMA configuration structure used during transfer setup. } I2cDrv; // Definitions of i2c busses found in c file. diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/interface/led.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/interface/led.h index c4b543494..7f13995bb 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/interface/led.h +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/interface/led.h @@ -27,6 +27,7 @@ #define __LED_H__ #include <stdbool.h> +#include <stm32f4xx_gpio.h> //Led polarity configuration constant #define LED_POL_POS 0 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/ak8963.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/ak8963.c index 7aa6b20c9..300211067 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/ak8963.c +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/ak8963.c @@ -233,7 +233,7 @@ void ak8963Reset() { //COMMENTED FIRMWARE //i2cdevWriteBits(I2Cx, devAddr, AK8963_RA_CNTL, AK8963_CNTL_MODE_BIT, - AK8963_CNTL_MODE_LENGTH, AK8963_MODE_POWERDOWN); + // AK8963_CNTL_MODE_LENGTH, AK8963_MODE_POWERDOWN); } // ASTC register diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/cppm.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/cppm.c index a3cf95cee..94397bcd7 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/cppm.c +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/cppm.c @@ -104,10 +104,11 @@ void cppmInit(void) // TIM_Cmd(CPPM_TIMER, ENABLE); } -bool cppmIsAvailible(void) -{ - return isAvailible; -} +//COMMENTED FIRMWARE +// bool cppmIsAvailible(void) +// { +// return isAvailible; +// } int cppmGetTimestamp(uint16_t *timestamp) { diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/i2c_drv.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/i2c_drv.c index 869a29ba6..978c1e204 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/i2c_drv.c +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/i2c_drv.c @@ -15,13 +15,11 @@ * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. - * - * i2c_drv.c - i2c driver implementation + * MERCHANTABILITY or FITNESS FOR static TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; +// static TIM_OCInitTypeDef TIM_OCInitStructure; +// static GPIO_InitTypeDef GPIO_InitStructure; +// static DMA_InitTypeDef DMA_InitStructure; +// static NVIC_InitTypeDef NVIC_InitStructure;tation * * @note * For some reason setting CR1 reg in sequence with @@ -70,10 +68,11 @@ #define I2CDEV_CLK_TS (10) static void gpioWaitForHigh(GPIO_TypeDef *gpio, uint16_t pin, uint16_t timeout_us) { - uint64_t start = usecTimestamp(); - while (GPIO_ReadInputDataBit(gpio, pin) == Bit_RESET && usecTimestamp() - start <= timeout_us) - { - } + //COMMENTED FIRMWARE + // uint64_t start = usecTimestamp(); + // while (GPIO_ReadInputDataBit(gpio, pin) == Bit_RESET && usecTimestamp() - start <= timeout_us) + // { + // } } @@ -124,26 +123,27 @@ static void i2cdrvDmaIsrHandler(I2cDrv* i2c); // Cost definitions of busses static const I2cDef sensorBusDef = { - .i2cPort = I2C3, - .i2cPerif = RCC_APB1Periph_I2C3, - .i2cEVIRQn = I2C3_EV_IRQn, - .i2cERIRQn = I2C3_ER_IRQn, - .i2cClockSpeed = I2C_DEFAULT_SENSORS_CLOCK_SPEED, - .gpioSCLPerif = RCC_AHB1Periph_GPIOA, - .gpioSCLPort = GPIOA, - .gpioSCLPin = GPIO_Pin_8, - .gpioSCLPinSource = GPIO_PinSource8, - .gpioSDAPerif = RCC_AHB1Periph_GPIOC, - .gpioSDAPort = GPIOC, - .gpioSDAPin = GPIO_Pin_9, - .gpioSDAPinSource = GPIO_PinSource9, - .gpioAF = GPIO_AF_I2C3, - .dmaPerif = RCC_AHB1Periph_DMA1, - .dmaChannel = DMA_Channel_3, - .dmaRxStream = DMA1_Stream2, - .dmaRxIRQ = DMA1_Stream2_IRQn, - .dmaRxTCFlag = DMA_FLAG_TCIF2, - .dmaRxTEFlag = DMA_FLAG_TEIF2, + //COMMENTED FIRMWARE + // .i2cPort = I2C3, + // .i2cPerif = RCC_APB1Periph_I2C3, + // .i2cEVIRQn = I2C3_EV_IRQn, + // .i2cERIRQn = I2C3_ER_IRQn, + // .i2cClockSpeed = I2C_DEFAULT_SENSORS_CLOCK_SPEED, + // .gpioSCLPerif = RCC_AHB1Periph_GPIOA, + // .gpioSCLPort = GPIOA, + // .gpioSCLPin = GPIO_Pin_8, + // .gpioSCLPinSource = GPIO_PinSource8, + // .gpioSDAPerif = RCC_AHB1Periph_GPIOC, + // .gpioSDAPort = GPIOC, + // .gpioSDAPin = GPIO_Pin_9, + // .gpioSDAPinSource = GPIO_PinSource9, + // .gpioAF = GPIO_AF_I2C3, + // .dmaPerif = RCC_AHB1Periph_DMA1, + // .dmaChannel = DMA_Channel_3, + // .dmaRxStream = DMA1_Stream2, + // .dmaRxIRQ = DMA1_Stream2_IRQn, + // .dmaRxTCFlag = DMA_FLAG_TCIF2, + // .dmaRxTEFlag = DMA_FLAG_TEIF2, }; I2cDrv sensorsBus = @@ -153,33 +153,34 @@ I2cDrv sensorsBus = static const I2cDef deckBusDef = { - .i2cPort = I2C1, - .i2cPerif = RCC_APB1Periph_I2C1, - .i2cEVIRQn = I2C1_EV_IRQn, - .i2cERIRQn = I2C1_ER_IRQn, - .i2cClockSpeed = I2C_DEFAULT_DECK_CLOCK_SPEED, - .gpioSCLPerif = RCC_AHB1Periph_GPIOB, - .gpioSCLPort = GPIOB, - .gpioSCLPin = GPIO_Pin_6, - .gpioSCLPinSource = GPIO_PinSource6, - .gpioSDAPerif = RCC_AHB1Periph_GPIOB, - .gpioSDAPort = GPIOB, - .gpioSDAPin = GPIO_Pin_7, - .gpioSDAPinSource = GPIO_PinSource7, - .gpioAF = GPIO_AF_I2C1, - .dmaPerif = RCC_AHB1Periph_DMA1, - .dmaChannel = DMA_Channel_1, -#ifdef USDDECK_USE_ALT_PINS_AND_SPI - .dmaRxStream = DMA1_Stream5, - .dmaRxIRQ = DMA1_Stream5_IRQn, - .dmaRxTCFlag = DMA_FLAG_TCIF5, - .dmaRxTEFlag = DMA_FLAG_TEIF5, -#else - .dmaRxStream = DMA1_Stream0, - .dmaRxIRQ = DMA1_Stream0_IRQn, - .dmaRxTCFlag = DMA_FLAG_TCIF0, - .dmaRxTEFlag = DMA_FLAG_TEIF0, -#endif + //COMMENTED FIRMWARE +// .i2cPort = I2C1, +// .i2cPerif = RCC_APB1Periph_I2C1, +// .i2cEVIRQn = I2C1_EV_IRQn, +// .i2cERIRQn = I2C1_ER_IRQn, +// .i2cClockSpeed = I2C_DEFAULT_DECK_CLOCK_SPEED, +// .gpioSCLPerif = RCC_AHB1Periph_GPIOB, +// .gpioSCLPort = GPIOB, +// .gpioSCLPin = GPIO_Pin_6, +// .gpioSCLPinSource = GPIO_PinSource6, +// .gpioSDAPerif = RCC_AHB1Periph_GPIOB, +// .gpioSDAPort = GPIOB, +// .gpioSDAPin = GPIO_Pin_7, +// .gpioSDAPinSource = GPIO_PinSource7, +// .gpioAF = GPIO_AF_I2C1, +// .dmaPerif = RCC_AHB1Periph_DMA1, +// .dmaChannel = DMA_Channel_1, +// #ifdef USDDECK_USE_ALT_PINS_AND_SPI +// .dmaRxStream = DMA1_Stream5, +// .dmaRxIRQ = DMA1_Stream5_IRQn, +// .dmaRxTCFlag = DMA_FLAG_TCIF5, +// .dmaRxTEFlag = DMA_FLAG_TEIF5, +// #else +// .dmaRxStream = DMA1_Stream0, +// .dmaRxIRQ = DMA1_Stream0_IRQn, +// .dmaRxTCFlag = DMA_FLAG_TCIF0, +// .dmaRxTEFlag = DMA_FLAG_TEIF0, +// #endif }; @@ -191,32 +192,35 @@ I2cDrv deckBus = static void i2cdrvStartTransfer(I2cDrv *i2c) { - ASSERT_DMA_SAFE(i2c->txMessage.buffer); - - if (i2c->txMessage.direction == i2cRead) - { - i2c->DMAStruct.DMA_BufferSize = i2c->txMessage.messageLength; - i2c->DMAStruct.DMA_Memory0BaseAddr = (uint32_t)i2c->txMessage.buffer; - DMA_Init(i2c->def->dmaRxStream, &i2c->DMAStruct); - DMA_Cmd(i2c->def->dmaRxStream, ENABLE); - } - - I2C_ITConfig(i2c->def->i2cPort, I2C_IT_BUF, DISABLE); - I2C_ITConfig(i2c->def->i2cPort, I2C_IT_EVT, ENABLE); - i2c->def->i2cPort->CR1 = (I2C_CR1_START | I2C_CR1_PE); + //COMMENTED FIRMWARE + // ASSERT_DMA_SAFE(i2c->txMessage.buffer); + + // if (i2c->txMessage.direction == i2cRead) + // { + // i2c->DMAStruct.DMA_BufferSize = i2c->txMessage.messageLength; + // i2c->DMAStruct.DMA_Memory0BaseAddr = (uint32_t)i2c->txMessage.buffer; + // DMA_Init(i2c->def->dmaRxStream, &i2c->DMAStruct); + // DMA_Cmd(i2c->def->dmaRxStream, ENABLE); + // } + + // I2C_ITConfig(i2c->def->i2cPort, I2C_IT_BUF, DISABLE); + // I2C_ITConfig(i2c->def->i2cPort, I2C_IT_EVT, ENABLE); + // i2c->def->i2cPort->CR1 = (I2C_CR1_START | I2C_CR1_PE); } static void i2cTryNextMessage(I2cDrv* i2c) { - i2c->def->i2cPort->CR1 = (I2C_CR1_STOP | I2C_CR1_PE); - I2C_ITConfig(i2c->def->i2cPort, I2C_IT_EVT | I2C_IT_BUF, DISABLE); + //COMMENTED FIRMWARE + // i2c->def->i2cPort->CR1 = (I2C_CR1_STOP | I2C_CR1_PE); + // I2C_ITConfig(i2c->def->i2cPort, I2C_IT_EVT | I2C_IT_BUF, DISABLE); } static void i2cNotifyClient(I2cDrv* i2c) { - portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; - xSemaphoreGiveFromISR(i2c->isBusFreeSemaphore, &xHigherPriorityTaskWoken); - portYIELD_FROM_ISR(xHigherPriorityTaskWoken); + //COMMENTED FIRMWARE + // portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; + // xSemaphoreGiveFromISR(i2c->isBusFreeSemaphore, &xHigherPriorityTaskWoken); + // portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } static void i2cdrvTryToRestartBus(I2cDrv* i2c) @@ -281,76 +285,78 @@ static void i2cdrvTryToRestartBus(I2cDrv* i2c) static void i2cdrvDmaSetupBus(I2cDrv* i2c) { + //COMMENTED FIRMWARE + // NVIC_InitTypeDef NVIC_InitStructure; - NVIC_InitTypeDef NVIC_InitStructure; - - RCC_AHB1PeriphClockCmd(i2c->def->dmaPerif, ENABLE); - - // RX DMA Channel Config - i2c->DMAStruct.DMA_Channel = i2c->def->dmaChannel; - i2c->DMAStruct.DMA_PeripheralBaseAddr = (uint32_t)&i2c->def->i2cPort->DR; - i2c->DMAStruct.DMA_Memory0BaseAddr = 0; - i2c->DMAStruct.DMA_DIR = DMA_DIR_PeripheralToMemory; - i2c->DMAStruct.DMA_BufferSize = 0; - i2c->DMAStruct.DMA_PeripheralInc = DMA_PeripheralInc_Disable; - i2c->DMAStruct.DMA_MemoryInc = DMA_MemoryInc_Enable; - i2c->DMAStruct.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; - i2c->DMAStruct.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; - i2c->DMAStruct.DMA_Mode = DMA_Mode_Normal; - i2c->DMAStruct.DMA_Priority = DMA_Priority_High; - i2c->DMAStruct.DMA_FIFOMode = DMA_FIFOMode_Disable; - i2c->DMAStruct.DMA_FIFOThreshold = DMA_FIFOThreshold_1QuarterFull; - i2c->DMAStruct.DMA_MemoryBurst = DMA_MemoryBurst_Single; - i2c->DMAStruct.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; - - NVIC_InitStructure.NVIC_IRQChannel = i2c->def->dmaRxIRQ; - NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = NVIC_HIGH_PRI; - NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; - NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; - NVIC_Init(&NVIC_InitStructure); + // RCC_AHB1PeriphClockCmd(i2c->def->dmaPerif, ENABLE); + + // // RX DMA Channel Config + // i2c->DMAStruct.DMA_Channel = i2c->def->dmaChannel; + // i2c->DMAStruct.DMA_PeripheralBaseAddr = (uint32_t)&i2c->def->i2cPort->DR; + // i2c->DMAStruct.DMA_Memory0BaseAddr = 0; + // i2c->DMAStruct.DMA_DIR = DMA_DIR_PeripheralToMemory; + // i2c->DMAStruct.DMA_BufferSize = 0; + // i2c->DMAStruct.DMA_PeripheralInc = DMA_PeripheralInc_Disable; + // i2c->DMAStruct.DMA_MemoryInc = DMA_MemoryInc_Enable; + // i2c->DMAStruct.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; + // i2c->DMAStruct.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; + // i2c->DMAStruct.DMA_Mode = DMA_Mode_Normal; + // i2c->DMAStruct.DMA_Priority = DMA_Priority_High; + // i2c->DMAStruct.DMA_FIFOMode = DMA_FIFOMode_Disable; + // i2c->DMAStruct.DMA_FIFOThreshold = DMA_FIFOThreshold_1QuarterFull; + // i2c->DMAStruct.DMA_MemoryBurst = DMA_MemoryBurst_Single; + // i2c->DMAStruct.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; + + // NVIC_InitStructure.NVIC_IRQChannel = i2c->def->dmaRxIRQ; + // NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = NVIC_HIGH_PRI; + // NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; + // NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; + // NVIC_Init(&NVIC_InitStructure); } static void i2cdrvInitBus(I2cDrv* i2c) { - i2cdrvTryToRestartBus(i2c); + //COMMENTED FIRMWARE + // i2cdrvTryToRestartBus(i2c); - i2c->isBusFreeSemaphore = xSemaphoreCreateBinaryStatic(&i2c->isBusFreeSemaphoreBuffer); - i2c->isBusFreeMutex = xSemaphoreCreateMutexStatic(&i2c->isBusFreeMutexBuffer); + // i2c->isBusFreeSemaphore = xSemaphoreCreateBinaryStatic(&i2c->isBusFreeSemaphoreBuffer); + // i2c->isBusFreeMutex = xSemaphoreCreateMutexStatic(&i2c->isBusFreeMutexBuffer); } static void i2cdrvdevUnlockBus(GPIO_TypeDef* portSCL, GPIO_TypeDef* portSDA, uint16_t pinSCL, uint16_t pinSDA) { - GPIO_SetBits(portSDA, pinSDA); - /* Check SDA line to determine if slave is asserting bus and clock out if so */ - while(GPIO_ReadInputDataBit(portSDA, pinSDA) == Bit_RESET) - { - /* Set clock high */ - GPIO_SetBits(portSCL, pinSCL); - /* Wait for any clock stretching to finish. */ - gpioWaitForHigh(portSCL, pinSCL, 10 * 1000); - sleepus(I2CDEV_CLK_TS); - - /* Generate a clock cycle */ - GPIO_ResetBits(portSCL, pinSCL); - sleepus(I2CDEV_CLK_TS); - GPIO_SetBits(portSCL, pinSCL); - sleepus(I2CDEV_CLK_TS); - } - - /* Generate a start then stop condition */ - GPIO_SetBits(portSCL, pinSCL); - sleepus(I2CDEV_CLK_TS); - GPIO_ResetBits(portSDA, pinSDA); - sleepus(I2CDEV_CLK_TS); - GPIO_ResetBits(portSCL, pinSCL); - sleepus(I2CDEV_CLK_TS); - - /* Set data and clock high and wait for any clock stretching to finish. */ - GPIO_SetBits(portSDA, pinSDA); - GPIO_SetBits(portSCL, pinSCL); - gpioWaitForHigh(portSCL, pinSCL, 10 * 1000); - /* Wait for data to be high */ - gpioWaitForHigh(portSDA, pinSDA, 10 * 1000); + //COMMENTED FIRMWARE + // GPIO_SetBits(portSDA, pinSDA); + // /* Check SDA line to determine if slave is asserting bus and clock out if so */ + // while(GPIO_ReadInputDataBit(portSDA, pinSDA) == Bit_RESET) + // { + // /* Set clock high */ + // GPIO_SetBits(portSCL, pinSCL); + // /* Wait for any clock stretching to finish. */ + // gpioWaitForHigh(portSCL, pinSCL, 10 * 1000); + // sleepus(I2CDEV_CLK_TS); + + // /* Generate a clock cycle */ + // GPIO_ResetBits(portSCL, pinSCL); + // sleepus(I2CDEV_CLK_TS); + // GPIO_SetBits(portSCL, pinSCL); + // sleepus(I2CDEV_CLK_TS); + // } + + // /* Generate a start then stop condition */ + // GPIO_SetBits(portSCL, pinSCL); + // sleepus(I2CDEV_CLK_TS); + // GPIO_ResetBits(portSDA, pinSDA); + // sleepus(I2CDEV_CLK_TS); + // GPIO_ResetBits(portSCL, pinSCL); + // sleepus(I2CDEV_CLK_TS); + + // /* Set data and clock high and wait for any clock stretching to finish. */ + // GPIO_SetBits(portSDA, pinSDA); + // GPIO_SetBits(portSCL, pinSCL); + // gpioWaitForHigh(portSCL, pinSCL, 10 * 1000); + // /* Wait for data to be high */ + // gpioWaitForHigh(portSDA, pinSDA, 10 * 1000); } //----------------------------------------------------------- @@ -366,16 +372,17 @@ void i2cdrvCreateMessage(I2cMessage *message, uint32_t length, const uint8_t *buffer) { - ASSERT_DMA_SAFE(buffer); - - message->slaveAddress = slaveAddress; - message->direction = direction; - message->isInternal16bit = false; - message->internalAddress = I2C_NO_INTERNAL_ADDRESS; - message->messageLength = length; - message->status = i2cAck; - message->buffer = (uint8_t *)buffer; - message->nbrOfRetries = I2C_MAX_RETRIES; + //COMMENTED FIRMWARE + // ASSERT_DMA_SAFE(buffer); + + // message->slaveAddress = slaveAddress; + // message->direction = direction; + // message->isInternal16bit = false; + // message->internalAddress = I2C_NO_INTERNAL_ADDRESS; + // message->messageLength = length; + // message->status = i2cAck; + // message->buffer = (uint8_t *)buffer; + // message->nbrOfRetries = I2C_MAX_RETRIES; } void i2cdrvCreateMessageIntAddr(I2cMessage *message, @@ -386,47 +393,48 @@ void i2cdrvCreateMessageIntAddr(I2cMessage *message, uint32_t length, const uint8_t *buffer) { - ASSERT_DMA_SAFE(buffer); - - message->slaveAddress = slaveAddress; - message->direction = direction; - message->isInternal16bit = IsInternal16; - message->internalAddress = intAddress; - message->messageLength = length; - message->status = i2cAck; - message->buffer = (uint8_t *)buffer; - message->nbrOfRetries = I2C_MAX_RETRIES; -} - -bool i2cdrvMessageTransfer(I2cDrv* i2c, I2cMessage* message) -{ - bool status = false; - //COMMENTED FIRMWARE - // xSemaphoreTake(i2c->isBusFreeMutex, portMAX_DELAY); // Protect message data - // // Copy message - // memcpy((char*)&i2c->txMessage, (char*)message, sizeof(I2cMessage)); - // // We can now start the ISR sending this message. - // i2cdrvStartTransfer(i2c); - // // Wait for transaction to be done - // if (xSemaphoreTake(i2c->isBusFreeSemaphore, I2C_MESSAGE_TIMEOUT) == pdTRUE) - // { - // if (i2c->txMessage.status == i2cAck) - // { - // status = true; - // } - // } - // else - // { - // i2cdrvClearDMA(i2c); - // i2cdrvTryToRestartBus(i2c); - // //TODO: If bus is really hanged... fail safe - // } - // xSemaphoreGive(i2c->isBusFreeMutex); - - return status; + // ASSERT_DMA_SAFE(buffer); + + // message->slaveAddress = slaveAddress; + // message->direction = direction; + // message->isInternal16bit = IsInternal16; + // message->internalAddress = intAddress; + // message->messageLength = length; + // message->status = i2cAck; + // message->buffer = (uint8_t *)buffer; + // message->nbrOfRetries = I2C_MAX_RETRIES; } +// bool i2cdrvMessageTransfer(I2cDrv* i2c, I2cMessage* message) +// { +// bool status = false; + +// //COMMENTED FIRMWARE +// // xSemaphoreTake(i2c->isBusFreeMutex, portMAX_DELAY); // Protect message data +// // // Copy message +// // memcpy((char*)&i2c->txMessage, (char*)message, sizeof(I2cMessage)); +// // // We can now start the ISR sending this message. +// // i2cdrvStartTransfer(i2c); +// // // Wait for transaction to be done +// // if (xSemaphoreTake(i2c->isBusFreeSemaphore, I2C_MESSAGE_TIMEOUT) == pdTRUE) +// // { +// // if (i2c->txMessage.status == i2cAck) +// // { +// // status = true; +// // } +// // } +// // else +// // { +// // i2cdrvClearDMA(i2c); +// // i2cdrvTryToRestartBus(i2c); +// // //TODO: If bus is really hanged... fail safe +// // } +// // xSemaphoreGive(i2c->isBusFreeMutex); + +// return status; +// } + static void i2cdrvEventIsrHandler(I2cDrv* i2c) { diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/i2cdev.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/i2cdev.c index 81dd6ab1a..dfb5bddbb 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/i2cdev.c +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/i2cdev.c @@ -89,7 +89,7 @@ bool i2cdevRead(I2C_Dev *dev, uint8_t devAddress, uint16_t len, uint8_t *data) //COMMENTED FIRMWARE //i2cdrvCreateMessage(&message, devAddress, i2cRead, len, data); - return i2cdrvMessageTransfer(dev, &message); + return true;//i2cdrvMessageTransfer(dev, &message); } bool i2cdevReadReg8(I2C_Dev *dev, uint8_t devAddress, uint8_t memAddress, @@ -100,19 +100,19 @@ bool i2cdevReadReg8(I2C_Dev *dev, uint8_t devAddress, uint8_t memAddress, // i2cdrvCreateMessageIntAddr(&message, devAddress, false, memAddress, // i2cRead, len, data); - return i2cdrvMessageTransfer(dev, &message); + return true;//i2cdrvMessageTransfer(dev, &message); } bool i2cdevReadReg16(I2C_Dev *dev, uint8_t devAddress, uint16_t memAddress, uint16_t len, uint8_t *data) { //COMMENTED FIRMWARE - // I2cMessage message; + I2cMessage message; // i2cdrvCreateMessageIntAddr(&message, devAddress, true, memAddress, // i2cRead, len, data); - return i2cdrvMessageTransfer(dev, &message); + return true;//i2cdrvMessageTransfer(dev, &message); } bool i2cdevWriteByte(I2C_Dev *dev, uint8_t devAddress, uint8_t memAddress, @@ -158,7 +158,7 @@ bool i2cdevWrite(I2C_Dev *dev, uint8_t devAddress, uint16_t len, const uint8_t * //COMMENTED FIRMWARE //i2cdrvCreateMessage(&message, devAddress, i2cWrite, len, data); - return i2cdrvMessageTransfer(dev, &message); + return true;//i2cdrvMessageTransfer(dev, &message); } bool i2cdevWriteReg8(I2C_Dev *dev, uint8_t devAddress, uint8_t memAddress, @@ -170,7 +170,7 @@ bool i2cdevWriteReg8(I2C_Dev *dev, uint8_t devAddress, uint8_t memAddress, // i2cdrvCreateMessageIntAddr(&message, devAddress, false, memAddress, // i2cWrite, len, data); - return i2cdrvMessageTransfer(dev, &message); + return true;//i2cdrvMessageTransfer(dev, &message); } bool i2cdevWriteReg16(I2C_Dev *dev, uint8_t devAddress, uint16_t memAddress, @@ -182,5 +182,5 @@ bool i2cdevWriteReg16(I2C_Dev *dev, uint8_t devAddress, uint16_t memAddress, // i2cdrvCreateMessageIntAddr(&message, devAddress, true, memAddress, // i2cWrite, len, data); - return i2cdrvMessageTransfer(dev, &message); + return true;//i2cdrvMessageTransfer(dev, &message); } diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/uart1.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/uart1.c index dabca42bb..1f0460072 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/uart1.c +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/uart1.c @@ -48,8 +48,9 @@ */ //#define ENABLE_UART1_DMA -static xQueueHandle uart1queue; -STATIC_MEM_QUEUE_ALLOC(uart1queue, 64, sizeof(uint8_t)); +//COMMENTED FIRMWARE +//static xQueueHandle uart1queue; +//STATIC_MEM_QUEUE_ALLOC(uart1queue, 64, sizeof(uint8_t)); static bool isInit = false; static bool hasOverrun = false; @@ -190,12 +191,13 @@ bool uart1Test(void) bool uart1GetDataWithTimeout(uint8_t *c, const uint32_t timeoutTicks) { - if (xQueueReceive(uart1queue, c, timeoutTicks) == pdTRUE) - { - return true; - } + //COMMENTED FIRMWARE + // if (xQueueReceive(uart1queue, c, timeoutTicks) == pdTRUE) + // { + // return true; + // } - *c = 0; + // *c = 0; return false; } @@ -257,7 +259,8 @@ int uart1Putchar(int ch) void uart1Getchar(char * ch) { - xQueueReceive(uart1queue, ch, portMAX_DELAY); + //COMMENTED FIRMWARE + //xQueueReceive(uart1queue, ch, portMAX_DELAY); } bool uart1DidOverrun() diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/uart2.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/uart2.c index 3eca14c49..7ae49ee2f 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/uart2.c +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/uart2.c @@ -52,7 +52,7 @@ static StaticSemaphore_t waitUntilSendDoneBuffer; static bool isInit = false; -static DMA_InitTypeDef DMA_InitStructureShare; +//static DMA_InitTypeDef DMA_InitStructureShare; static uint8_t dmaBuffer[128]; static bool isUartDmaInitialized; static uint32_t initialDMACount; @@ -70,8 +70,9 @@ static void uart2HandleDataFromISR(uint8_t c, BaseType_t * const pxHigherPriorit #else -static xQueueHandle uart2queue; -STATIC_MEM_QUEUE_ALLOC(uart2queue, 64, sizeof(uint8_t)); +//COMMENTED FIRMWARE +// static xQueueHandle uart2queue; +// STATIC_MEM_QUEUE_ALLOC(uart2queue, 64, sizeof(uint8_t)); static bool hasOverrun = false; @@ -337,12 +338,13 @@ void uart2HandleDataFromISR(uint8_t c, BaseType_t * const pxHigherPriorityTaskWo bool uart2GetDataWithTimeout(uint8_t *c, const uint32_t timeoutTicks) { - if (xQueueReceive(uart2queue, c, timeoutTicks) == pdTRUE) - { - return true; - } + //COMMENTED FIRMWARE + // if (xQueueReceive(uart2queue, c, timeoutTicks) == pdTRUE) + // { + // return true; + // } - *c = 0; + // *c = 0; return false; } @@ -353,7 +355,8 @@ bool uart2GetDataWithDefaultTimeout(uint8_t *c) void uart2Getchar(char * ch) { - xQueueReceive(uart2queue, ch, portMAX_DELAY); + //COMMENTED FIRMWARE + //xQueueReceive(uart2queue, ch, portMAX_DELAY); } bool uart2DidOverrun() diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/uart_syslink.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/uart_syslink.c index c960da880..f7f4a36e9 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/uart_syslink.c +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/uart_syslink.c @@ -63,7 +63,7 @@ static uint8_t *outDataIsr; static uint8_t dataIndexIsr; static uint8_t dataSizeIsr; static bool isUartDmaInitialized; -static DMA_InitTypeDef DMA_InitStructureShare; +//static DMA_InitTypeDef DMA_InitStructureShare; static uint32_t initialDMACount; static uint32_t remainingDMACount; static bool dmaIsPaused; diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/vl53l0x.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/vl53l0x.c index 49b006c39..a7c236c5f 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/vl53l0x.c +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/vl53l0x.c @@ -120,7 +120,7 @@ bool vl53l0xInit(VL53L0xDev* dev, I2C_Dev *I2Cx, bool io_2V8) // } // /* Move initialized sensor to a new I2C address */ - // int newAddress; + int newAddress; // taskENTER_CRITICAL(); // newAddress = nextI2CAddress++; @@ -429,7 +429,7 @@ bool vl53l0xSetSignalRateLimit(VL53L0xDev* dev, float limit_Mcps) // if (limit_Mcps < 0 || limit_Mcps > 511.99f) { return false; } // // Q9.7 fixed point format (9 integer bits, 7 fractional bits) - // uint16_t fixed_pt = limit_Mcps * (1 << 7); + uint16_t fixed_pt = limit_Mcps * (1 << 7); return vl53l0xWriteReg16Bit(dev, VL53L0X_RA_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT, fixed_pt); } diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/ws2812_cf2.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/ws2812_cf2.c index c3f217631..e0f28a0c6 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/ws2812_cf2.c +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/drivers/src/ws2812_cf2.c @@ -37,11 +37,11 @@ //#define TIM1_CCR1_Address 0x40012C34 // physical memory address of Timer 3 CCR1 register -static TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; -static TIM_OCInitTypeDef TIM_OCInitStructure; -static GPIO_InitTypeDef GPIO_InitStructure; -static DMA_InitTypeDef DMA_InitStructure; -static NVIC_InitTypeDef NVIC_InitStructure; +// static TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; +// static TIM_OCInitTypeDef TIM_OCInitStructure; +// static GPIO_InitTypeDef GPIO_InitStructure; +// static DMA_InitTypeDef DMA_InitStructure; +// static NVIC_InitTypeDef NVIC_InitStructure; static xSemaphoreHandle allLedDone = NULL; @@ -176,9 +176,7 @@ static uint8_t (*color_led)[3] = NULL; void ws2812Send(uint8_t (*color)[3], uint16_t len) { //COMMENTED FIRMWARE - // int i; - // if(len<1) return; - + // int i;#include <stm32f4xx_gpio.h> // //Wait for previous transfer to be finished // xSemaphoreTake(allLedDone, portMAX_DELAY); diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/usb_bsp.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/usb_bsp.c index 3bc037b0e..3d8964a74 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/usb_bsp.c +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/usb_bsp.c @@ -100,149 +100,150 @@ void USB_OTG_BSP_Init(USB_OTG_CORE_HANDLE *pdev) { -#ifdef USE_STM3210C_EVAL - - RCC_OTGFSCLKConfig(RCC_OTGFSCLKSource_PLLVCO_Div3); - RCC_AHBPeriphClockCmd(RCC_AHBPeriph_OTG_FS, ENABLE) ; - -#else // USE_STM322xG_EVAL - GPIO_InitTypeDef GPIO_InitStructure; - #ifdef USE_USB_OTG_FS - RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOA , ENABLE); - - /* Configure SOF ID DM DP Pins */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | - GPIO_Pin_12; - - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; - GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; - GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ; - GPIO_Init(GPIOA, &GPIO_InitStructure); - - // AF10 - - GPIO_PinAFConfig(GPIOA,GPIO_PinSource11,GPIO_AF_OTG1_FS) ; - GPIO_PinAFConfig(GPIOA,GPIO_PinSource12,GPIO_AF_OTG1_FS) ; - - /* Configure VBUS Pin */ - /*GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; - GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; - GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ; - GPIO_Init(GPIOA, &GPIO_InitStructure); */ - - /* Configure ID pin */ - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; - GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; - GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; - GPIO_Init(GPIOA, &GPIO_InitStructure); - GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_OTG1_FS) ; - - RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); - RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_OTG_FS, ENABLE) ; - #else // USE_USB_OTG_HS - - #ifdef USE_ULPI_PHY // ULPI - RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | - RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOH | - RCC_AHB1Periph_GPIOI, ENABLE); - - - GPIO_PinAFConfig(GPIOA,GPIO_PinSource3, GPIO_AF_OTG2_HS) ; // D0 - GPIO_PinAFConfig(GPIOA,GPIO_PinSource5, GPIO_AF_OTG2_HS) ; // CLK - GPIO_PinAFConfig(GPIOB,GPIO_PinSource0, GPIO_AF_OTG2_HS) ; // D1 - GPIO_PinAFConfig(GPIOB,GPIO_PinSource1, GPIO_AF_OTG2_HS) ; // D2 - GPIO_PinAFConfig(GPIOB,GPIO_PinSource5, GPIO_AF_OTG2_HS) ; // D7 - GPIO_PinAFConfig(GPIOB,GPIO_PinSource10,GPIO_AF_OTG2_HS) ; // D3 - GPIO_PinAFConfig(GPIOB,GPIO_PinSource11,GPIO_AF_OTG2_HS) ; // D4 - GPIO_PinAFConfig(GPIOB,GPIO_PinSource12,GPIO_AF_OTG2_HS) ; // D5 - GPIO_PinAFConfig(GPIOB,GPIO_PinSource13,GPIO_AF_OTG2_HS) ; // D6 - GPIO_PinAFConfig(GPIOH,GPIO_PinSource4, GPIO_AF_OTG2_HS) ; // NXT - GPIO_PinAFConfig(GPIOI,GPIO_PinSource11,GPIO_AF_OTG2_HS) ; // DIR - GPIO_PinAFConfig(GPIOC,GPIO_PinSource0, GPIO_AF_OTG2_HS) ; // STP - - // CLK - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 ; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; - GPIO_Init(GPIOA, &GPIO_InitStructure); - - // D0 - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 ; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; - GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; - GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ; - GPIO_Init(GPIOA, &GPIO_InitStructure); - - - - // D1 D2 D3 D4 D5 D6 D7 - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | - GPIO_Pin_5 | GPIO_Pin_10 | - GPIO_Pin_11| GPIO_Pin_12 | - GPIO_Pin_13 ; - - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; - GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; - GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ; - GPIO_Init(GPIOB, &GPIO_InitStructure); - - - // STP - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 ; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; - GPIO_Init(GPIOC, &GPIO_InitStructure); - - //NXT - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; - GPIO_Init(GPIOH, &GPIO_InitStructure); - - - //DIR - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 ; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; - GPIO_Init(GPIOI, &GPIO_InitStructure); - - - RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_OTG_HS | - RCC_AHB1Periph_OTG_HS_ULPI, ENABLE) ; - - #else - - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB , ENABLE); - - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | - GPIO_Pin_14 | - GPIO_Pin_15; - - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; - GPIO_Init(GPIOB, &GPIO_InitStructure); - - GPIO_PinAFConfig(GPIOB,GPIO_PinSource12, GPIO_AF_OTG2_FS) ; - GPIO_PinAFConfig(GPIOB,GPIO_PinSource14,GPIO_AF_OTG2_FS) ; - GPIO_PinAFConfig(GPIOB,GPIO_PinSource15,GPIO_AF_OTG2_FS) ; - - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; - GPIO_Init(GPIOB, &GPIO_InitStructure); + //COMMENTED FIRMWARE +// #ifdef USE_STM3210C_EVAL + +// RCC_OTGFSCLKConfig(RCC_OTGFSCLKSource_PLLVCO_Div3); +// RCC_AHBPeriphClockCmd(RCC_AHBPeriph_OTG_FS, ENABLE) ; + +// #else // USE_STM322xG_EVAL +// GPIO_InitTypeDef GPIO_InitStructure; +// #ifdef USE_USB_OTG_FS +// RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOA , ENABLE); + +// /* Configure SOF ID DM DP Pins */ +// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | +// GPIO_Pin_12; + +// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; +// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; +// GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; +// GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ; +// GPIO_Init(GPIOA, &GPIO_InitStructure); + +// // AF10 + +// GPIO_PinAFConfig(GPIOA,GPIO_PinSource11,GPIO_AF_OTG1_FS) ; +// GPIO_PinAFConfig(GPIOA,GPIO_PinSource12,GPIO_AF_OTG1_FS) ; + +// /* Configure VBUS Pin */ +// /*GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; +// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; +// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; +// GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; +// GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ; +// GPIO_Init(GPIOA, &GPIO_InitStructure); */ + +// /* Configure ID pin */ +// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; +// GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; +// GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ; +// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; +// GPIO_Init(GPIOA, &GPIO_InitStructure); +// GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_OTG1_FS) ; + +// RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); +// RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_OTG_FS, ENABLE) ; +// #else // USE_USB_OTG_HS + +// #ifdef USE_ULPI_PHY // ULPI +// RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | +// RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOH | +// RCC_AHB1Periph_GPIOI, ENABLE); + + +// GPIO_PinAFConfig(GPIOA,GPIO_PinSource3, GPIO_AF_OTG2_HS) ; // D0 +// GPIO_PinAFConfig(GPIOA,GPIO_PinSource5, GPIO_AF_OTG2_HS) ; // CLK +// GPIO_PinAFConfig(GPIOB,GPIO_PinSource0, GPIO_AF_OTG2_HS) ; // D1 +// GPIO_PinAFConfig(GPIOB,GPIO_PinSource1, GPIO_AF_OTG2_HS) ; // D2 +// GPIO_PinAFConfig(GPIOB,GPIO_PinSource5, GPIO_AF_OTG2_HS) ; // D7 +// GPIO_PinAFConfig(GPIOB,GPIO_PinSource10,GPIO_AF_OTG2_HS) ; // D3 +// GPIO_PinAFConfig(GPIOB,GPIO_PinSource11,GPIO_AF_OTG2_HS) ; // D4 +// GPIO_PinAFConfig(GPIOB,GPIO_PinSource12,GPIO_AF_OTG2_HS) ; // D5 +// GPIO_PinAFConfig(GPIOB,GPIO_PinSource13,GPIO_AF_OTG2_HS) ; // D6 +// GPIO_PinAFConfig(GPIOH,GPIO_PinSource4, GPIO_AF_OTG2_HS) ; // NXT +// GPIO_PinAFConfig(GPIOI,GPIO_PinSource11,GPIO_AF_OTG2_HS) ; // DIR +// GPIO_PinAFConfig(GPIOC,GPIO_PinSource0, GPIO_AF_OTG2_HS) ; // STP + +// // CLK +// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 ; +// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; +// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; +// GPIO_Init(GPIOA, &GPIO_InitStructure); + +// // D0 +// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 ; +// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; +// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; +// GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; +// GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ; +// GPIO_Init(GPIOA, &GPIO_InitStructure); + + + +// // D1 D2 D3 D4 D5 D6 D7 +// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | +// GPIO_Pin_5 | GPIO_Pin_10 | +// GPIO_Pin_11| GPIO_Pin_12 | +// GPIO_Pin_13 ; + +// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; +// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; +// GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; +// GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ; +// GPIO_Init(GPIOB, &GPIO_InitStructure); + + +// // STP +// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 ; +// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; +// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; +// GPIO_Init(GPIOC, &GPIO_InitStructure); + +// //NXT +// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; +// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; +// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; +// GPIO_Init(GPIOH, &GPIO_InitStructure); + + +// //DIR +// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 ; +// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; +// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; +// GPIO_Init(GPIOI, &GPIO_InitStructure); + + +// RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_OTG_HS | +// RCC_AHB1Periph_OTG_HS_ULPI, ENABLE) ; + +// #else + +// RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB , ENABLE); + +// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | +// GPIO_Pin_14 | +// GPIO_Pin_15; + +// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; +// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; +// GPIO_Init(GPIOB, &GPIO_InitStructure); + +// GPIO_PinAFConfig(GPIOB,GPIO_PinSource12, GPIO_AF_OTG2_FS) ; +// GPIO_PinAFConfig(GPIOB,GPIO_PinSource14,GPIO_AF_OTG2_FS) ; +// GPIO_PinAFConfig(GPIOB,GPIO_PinSource15,GPIO_AF_OTG2_FS) ; + +// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; +// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; +// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; +// GPIO_Init(GPIOB, &GPIO_InitStructure); - RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_OTG_HS, ENABLE) ; +// RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_OTG_HS, ENABLE) ; - #endif - #endif //USB_OTG_HS -#endif //USE_STM322xG_EVAL +// #endif +// #endif //USB_OTG_HS +// #endif //USE_STM322xG_EVAL } /** * @brief USB_OTG_BSP_EnableInterrupt @@ -252,33 +253,34 @@ void USB_OTG_BSP_Init(USB_OTG_CORE_HANDLE *pdev) */ void USB_OTG_BSP_EnableInterrupt(USB_OTG_CORE_HANDLE *pdev) { - NVIC_InitTypeDef NVIC_InitStructure; - - NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); -#ifdef USE_USB_OTG_HS - NVIC_InitStructure.NVIC_IRQChannel = OTG_HS_IRQn; -#else - NVIC_InitStructure.NVIC_IRQChannel = OTG_FS_IRQn; -#endif - NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = NVIC_MID_PRI; - NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; - NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; - NVIC_Init(&NVIC_InitStructure); -#ifdef USB_OTG_HS_DEDICATED_EP1_ENABLED - NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); - NVIC_InitStructure.NVIC_IRQChannel = OTG_HS_EP1_OUT_IRQn; - NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = NVIC_MID_PRI; - NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; - NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; - NVIC_Init(&NVIC_InitStructure); - - NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); - NVIC_InitStructure.NVIC_IRQChannel = OTG_HS_EP1_IN_IRQn; - NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = NVIC_MID_PRI; - NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; - NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; - NVIC_Init(&NVIC_InitStructure); -#endif + //COMMENTED FIRMWARE +// NVIC_InitTypeDef NVIC_InitStructure; + +// NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); +// #ifdef USE_USB_OTG_HS +// NVIC_InitStructure.NVIC_IRQChannel = OTG_HS_IRQn; +// #else +// NVIC_InitStructure.NVIC_IRQChannel = OTG_FS_IRQn; +// #endif +// NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = NVIC_MID_PRI; +// NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; +// NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; +// NVIC_Init(&NVIC_InitStructure); +// #ifdef USB_OTG_HS_DEDICATED_EP1_ENABLED +// NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); +// NVIC_InitStructure.NVIC_IRQChannel = OTG_HS_EP1_OUT_IRQn; +// NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = NVIC_MID_PRI; +// NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; +// NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; +// NVIC_Init(&NVIC_InitStructure); + +// NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); +// NVIC_InitStructure.NVIC_IRQChannel = OTG_HS_EP1_IN_IRQn; +// NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = NVIC_MID_PRI; +// NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; +// NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; +// NVIC_Init(&NVIC_InitStructure); +// #endif } /** * @brief USB_OTG_BSP_uDelay @@ -288,16 +290,17 @@ void USB_OTG_BSP_EnableInterrupt(USB_OTG_CORE_HANDLE *pdev) */ void USB_OTG_BSP_uDelay (const uint32_t usec) { - uint32_t count = 0; - const uint32_t utime = (120 * usec / 7); - do - { - if ( ++count > utime ) - { - return ; - } - } - while (1); + //COMMENTED FIRMWARE + // uint32_t count = 0; + // const uint32_t utime = (120 * usec / 7); + // do + // { + // if ( ++count > utime ) + // { + // return ; + // } + // } + // while (1); } @@ -309,7 +312,8 @@ void USB_OTG_BSP_uDelay (const uint32_t usec) */ void USB_OTG_BSP_mDelay (const uint32_t msec) { - USB_OTG_BSP_uDelay(msec * 1000); + //COMMENTED FIRMWARE + //USB_OTG_BSP_uDelay(msec * 1000); } /** * @} diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/usbd_desc.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/usbd_desc.c index 105df0872..42e681c5d 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/usbd_desc.c +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/usbd_desc.c @@ -257,19 +257,20 @@ static const char bin2hex[] = {'0', '1', '2', '3', '4', '5', '6', '7', */ uint8_t * USBD_USR_SerialStrDescriptor( uint8_t speed , uint16_t *length) { - char serial_nr[25]; - char *chip_id = (char*)MCU_ID_ADDRESS; - int i; + //COMMENTED FIRMWARE + // char serial_nr[25]; + // char *chip_id = (char*)MCU_ID_ADDRESS; + // int i; - serial_nr[24] = 0; + // serial_nr[24] = 0; - for (i=0; i<12; i++) - { - serial_nr[0+(i*2)] = bin2hex[(chip_id[i]>>4)&0x0F]; - serial_nr[1+(i*2)] = bin2hex[chip_id[i]&0x0F]; - } + // for (i=0; i<12; i++) + // { + // serial_nr[0+(i*2)] = bin2hex[(chip_id[i]>>4)&0x0F]; + // serial_nr[1+(i*2)] = bin2hex[chip_id[i]&0x0F]; + // } - USBD_GetString ((uint8_t *)serial_nr, USBD_StrDesc, length); + // USBD_GetString ((uint8_t *)serial_nr, USBD_StrDesc, length); return USBD_StrDesc; } diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/usec_time.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/usec_time.c index 736434172..433654616 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/usec_time.c +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/hal/src/usec_time.c @@ -93,7 +93,8 @@ uint64_t usecTimestamp(void) void __attribute__((used)) TIM7_IRQHandler(void) { - TIM_ClearITPendingBit(TIM7, TIM_IT_Update); + //COMMENTED FIRMWARE + // TIM_ClearITPendingBit(TIM7, TIM_IT_Update); - __sync_fetch_and_add(&usecTimerHighCount, 1); + // __sync_fetch_and_add(&usecTimerHighCount, 1); } diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/Core/CM3/core_cm3.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/Core/CM3/core_cm3.h new file mode 100644 index 000000000..172526d5e --- /dev/null +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/Core/CM3/core_cm3.h @@ -0,0 +1,1763 @@ +/**************************************************************************//** + * @file core_cm3.h + * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File + * @version V4.30 + * @date 20. October 2015 + ******************************************************************************/ +/* Copyright (c) 2009 - 2015 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM3_H_GENERIC +#define __CORE_CM3_H_GENERIC + +#include <stdint.h> + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.<br> + Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.<br> + Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.<br> + Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M3 + @{ + */ + +/* CMSIS CM3 definitions */ +#define __CM3_CMSIS_VERSION_MAIN (0x04U) /*!< [31:16] CMSIS HAL main version */ +#define __CM3_CMSIS_VERSION_SUB (0x1EU) /*!< [15:0] CMSIS HAL sub version */ +#define __CM3_CMSIS_VERSION ((__CM3_CMSIS_VERSION_MAIN << 16U) | \ + __CM3_CMSIS_VERSION_SUB ) /*!< CMSIS HAL version number */ + +#define __CORTEX_M (0x03U) /*!< Cortex-M Core */ + + +#if defined ( __CC_ARM ) + #define __ASM __asm /*!< asm keyword for ARM Compiler */ + #define __INLINE __inline /*!< inline keyword for ARM Compiler */ + #define __STATIC_INLINE static __inline + +#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #define __ASM __asm /*!< asm keyword for ARM Compiler */ + #define __INLINE __inline /*!< inline keyword for ARM Compiler */ + #define __STATIC_INLINE static __inline + +#elif defined ( __GNUC__ ) + #define __ASM __asm /*!< asm keyword for GNU Compiler */ + #define __INLINE inline /*!< inline keyword for GNU Compiler */ + #define __STATIC_INLINE static inline + +#elif defined ( __ICCARM__ ) + #define __ASM __asm /*!< asm keyword for IAR Compiler */ + #define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */ + #define __STATIC_INLINE static inline + +#elif defined ( __TMS470__ ) + #define __ASM __asm /*!< asm keyword for TI CCS Compiler */ + #define __STATIC_INLINE static inline + +#elif defined ( __TASKING__ ) + #define __ASM __asm /*!< asm keyword for TASKING Compiler */ + #define __INLINE inline /*!< inline keyword for TASKING Compiler */ + #define __STATIC_INLINE static inline + +#elif defined ( __CSMC__ ) + #define __packed + #define __ASM _asm /*!< asm keyword for COSMIC Compiler */ + #define __INLINE inline /*!< inline keyword for COSMIC Compiler. Use -pc99 on compile line */ + #define __STATIC_INLINE static inline + +#else + #error Unknown compiler +#endif + +/** __FPU_USED indicates whether an FPU is used or not. + This core does not support an FPU at all +*/ +#define __FPU_USED 0U + +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_PCS_VFP + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TMS470__ ) + #if defined __TI_VFP_SUPPORT__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #endif + +#endif + +#include "core_cmInstr.h" /* Core Instruction Access */ +#include "core_cmFunc.h" /* Core Function Access */ + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM3_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM3_H_DEPENDANT +#define __CORE_CM3_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM3_REV + #define __CM3_REV 0x0200U + #warning "__CM3_REV not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 4U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + <strong>IO Type Qualifiers</strong> are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M3 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:27; /*!< bit: 0..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ +#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24U]; + __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[24U]; + __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24U]; + __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24U]; + __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56U]; + __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5U]; + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#if (__CM3_REV < 0x0201U) /* core r2p1 */ +#define SCB_VTOR_TBLBASE_Pos 29U /*!< SCB VTOR: TBLBASE Position */ +#define SCB_VTOR_TBLBASE_Msk (1UL << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ + +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#else +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ +#endif + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ +#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ +#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ +#if ((defined __CM3_REV) && (__CM3_REV >= 0x200U)) + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +#else + uint32_t RESERVED1[1U]; +#endif +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/* Auxiliary Control Register Definitions */ + +#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U /*!< ACTLR: DISDEFWBUF Position */ +#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[29U]; + __OM uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ + __IM uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ + __IOM uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Integration Write Register Definitions */ +#define ITM_IWR_ATVALIDM_Pos 0U /*!< ITM IWR: ATVALIDM Position */ +#define ITM_IWR_ATVALIDM_Msk (1UL /*<< ITM_IWR_ATVALIDM_Pos*/) /*!< ITM IWR: ATVALIDM Mask */ + +/* ITM Integration Read Register Definitions */ +#define ITM_IRR_ATREADYM_Pos 0U /*!< ITM IRR: ATREADYM Position */ +#define ITM_IRR_ATREADYM_Msk (1UL /*<< ITM_IRR_ATREADYM_Pos*/) /*!< ITM IRR: ATREADYM Mask */ + +/* ITM Integration Mode Control Register Definitions */ +#define ITM_IMCR_INTEGRATION_Pos 0U /*!< ITM IMCR: INTEGRATION Position */ +#define ITM_IMCR_INTEGRATION_Msk (1UL /*<< ITM_IMCR_INTEGRATION_Pos*/) /*!< ITM IMCR: INTEGRATION Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Mask Register Definitions */ +#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ +#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ +#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IOM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x3UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x3UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY_Pos 0U /*!< TPI ITATBCTR2: ATREADY Position */ +#define TPI_ITATBCTR2_ATREADY_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY_Pos*/) /*!< TPI ITATBCTR2: ATREADY Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x3UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x3UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY_Pos 0U /*!< TPI ITATBCTR0: ATREADY Position */ +#define TPI_ITATBCTR0_ATREADY_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY_Pos*/) /*!< TPI ITATBCTR0: ATREADY Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x1UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_MajorType_Pos 4U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +#define TPI_DEVTYPE_SubType_Pos 0U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) ((value << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) ((value & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Cortex-M3 Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ +#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ +#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ +#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ +#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ +#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ +#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ +#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ + +#if (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8U) ); /* Insert write key and priorty group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable External Interrupt + \details Enables a device-specific interrupt in the NVIC interrupt controller. + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) +{ + NVIC->ISER[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL)); +} + + +/** + \brief Disable External Interrupt + \details Disables a device-specific interrupt in the NVIC interrupt controller. + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) +{ + NVIC->ICER[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL)); +} + + +/** + \brief Get Pending Interrupt + \details Reads the pending register in the NVIC and returns the pending bit for the specified interrupt. + \param [in] IRQn Interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + */ +__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + return((uint32_t)(((NVIC->ISPR[(((uint32_t)(int32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of an external interrupt. + \param [in] IRQn Interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ISPR[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL)); +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of an external interrupt. + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ICPR[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL)); +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in NVIC and returns the active bit. + \param [in] IRQn Interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + */ +__STATIC_INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn) +{ + return((uint32_t)(((NVIC->IABR[(((uint32_t)(int32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of an interrupt. + \note The priority cannot be set for every core interrupt. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + */ +__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) < 0) + { + SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + NVIC->IP[((uint32_t)(int32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of an interrupt. + The interrupt number can be positive to specify an external (device specific) interrupt, + or negative to specify an internal (core) interrupt. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) < 0) + { + return(((uint32_t)SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)NVIC->IP[((uint32_t)(int32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__STATIC_INLINE void NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable <b>__Vendor_SysTickConfig</b> is set to 1, then the + function <b>SysTick_Config</b> is not included. In this case, the file <b><i>device</i>.h</b> + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY 0x5AA55AA5U /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM3_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ \ No newline at end of file diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/Core/CM3/stm32f10x.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/Core/CM3/stm32f10x.h index 127e3a35b..9596452dc 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/Core/CM3/stm32f10x.h +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/Core/CM3/stm32f10x.h @@ -342,7 +342,8 @@ typedef __I uint16_t vuc16; /*!< Read Only */ typedef __I uint8_t vuc8; /*!< Read Only */ #ifndef __cplusplus -typedef enum {FALSE = 0, TRUE = !FALSE} bool; +//COMMENTED FIRMWARE +//typedef enum {FALSE = 0, TRUE = !FALSE} bool; #endif typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus; diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/STM32F4xx/Include/cmsis_gcc.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/STM32F4xx/Include/cmsis_gcc.h new file mode 100644 index 000000000..aa7c94fd5 --- /dev/null +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/STM32F4xx/Include/cmsis_gcc.h @@ -0,0 +1,1373 @@ +/**************************************************************************//** + * @file cmsis_gcc.h + * @brief CMSIS Cortex-M Core Function/Instruction Header File + * @version V4.30 + * @date 20. October 2015 + ******************************************************************************/ +/* Copyright (c) 2009 - 2015 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#ifndef __CMSIS_GCC_H +#define __CMSIS_GCC_H + +/* ignore some GCC warnings */ +#if defined ( __GNUC__ ) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wsign-conversion" +#pragma GCC diagnostic ignored "-Wconversion" +#pragma GCC diagnostic ignored "-Wunused-parameter" +#endif + + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + +/** + \brief Enable IRQ Interrupts + \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __enable_irq(void) +{ + __ASM volatile ("cpsie i" : : : "memory"); +} + + +/** + \brief Disable IRQ Interrupts + \details Disables IRQ interrupts by setting the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __disable_irq(void) +{ + __ASM volatile ("cpsid i" : : : "memory"); +} + + +/** + \brief Get Control Register + \details Returns the content of the Control Register. + \return Control Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_CONTROL(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control" : "=r" (result) ); + return(result); +} + + +/** + \brief Set Control Register + \details Writes the given value to the Control Register. + \param [in] control Control Register value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_CONTROL(uint32_t control) +{ + __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); +} + + +/** + \brief Get IPSR Register + \details Returns the content of the IPSR Register. + \return IPSR Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_IPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get APSR Register + \details Returns the content of the APSR Register. + \return APSR Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_APSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get xPSR Register + \details Returns the content of the xPSR Register. + + \return xPSR Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_xPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get Process Stack Pointer + \details Returns the current value of the Process Stack Pointer (PSP). + \return PSP Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_PSP(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, psp\n" : "=r" (result) ); + return(result); +} + + +/** + \brief Set Process Stack Pointer + \details Assigns the given value to the Process Stack Pointer (PSP). + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_PSP(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp, %0\n" : : "r" (topOfProcStack) : "sp"); +} + + +/** + \brief Get Main Stack Pointer + \details Returns the current value of the Main Stack Pointer (MSP). + \return MSP Register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_MSP(void) +{ + register uint32_t result; + + __ASM volatile ("MRS %0, msp\n" : "=r" (result) ); + return(result); +} + + +/** + \brief Set Main Stack Pointer + \details Assigns the given value to the Main Stack Pointer (MSP). + + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_MSP(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp, %0\n" : : "r" (topOfMainStack) : "sp"); +} + + +/** + \brief Get Priority Mask + \details Returns the current state of the priority mask bit from the Priority Mask Register. + \return Priority Mask value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_PRIMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask" : "=r" (result) ); + return(result); +} + + +/** + \brief Set Priority Mask + \details Assigns the given value to the Priority Mask Register. + \param [in] priMask Priority Mask + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_PRIMASK(uint32_t priMask) +{ + __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); +} + + +#if (__CORTEX_M >= 0x03U) + +/** + \brief Enable FIQ + \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __enable_fault_irq(void) +{ + __ASM volatile ("cpsie f" : : : "memory"); +} + + +/** + \brief Disable FIQ + \details Disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __disable_fault_irq(void) +{ + __ASM volatile ("cpsid f" : : : "memory"); +} + + +/** + \brief Get Base Priority + \details Returns the current value of the Base Priority register. + \return Base Priority register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_BASEPRI(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri" : "=r" (result) ); + return(result); +} + + +/** + \brief Set Base Priority + \details Assigns the given value to the Base Priority register. + \param [in] basePri Base Priority value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_BASEPRI(uint32_t value) +{ + __ASM volatile ("MSR basepri, %0" : : "r" (value) : "memory"); +} + + +/** + \brief Set Base Priority with condition + \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, + or the new value increases the BASEPRI priority level. + \param [in] basePri Base Priority value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_BASEPRI_MAX(uint32_t value) +{ + __ASM volatile ("MSR basepri_max, %0" : : "r" (value) : "memory"); +} + + +/** + \brief Get Fault Mask + \details Returns the current value of the Fault Mask register. + \return Fault Mask register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_FAULTMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + return(result); +} + + +/** + \brief Set Fault Mask + \details Assigns the given value to the Fault Mask register. + \param [in] faultMask Fault Mask value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_FAULTMASK(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); +} + +#endif /* (__CORTEX_M >= 0x03U) */ + + +#if (__CORTEX_M == 0x04U) || (__CORTEX_M == 0x07U) + +/** + \brief Get FPSCR + \details Returns the current value of the Floating Point Status/Control register. + \return Floating Point Status/Control register value + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_FPSCR(void) +{ +#if (__FPU_PRESENT == 1U) && (__FPU_USED == 1U) + uint32_t result; + + /* Empty asm statement works as a scheduling barrier */ + __ASM volatile (""); + __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); + __ASM volatile (""); + return(result); +#else + return(0); +#endif +} + + +/** + \brief Set FPSCR + \details Assigns the given value to the Floating Point Status/Control register. + \param [in] fpscr Floating Point Status/Control value to set + */ +__attribute__( ( always_inline ) ) __STATIC_INLINE void __set_FPSCR(uint32_t fpscr) +{ +#if (__FPU_PRESENT == 1U) && (__FPU_USED == 1U) + /* Empty asm statement works as a scheduling barrier */ + __ASM volatile (""); + __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc"); + __ASM volatile (""); +#endif +} + +#endif /* (__CORTEX_M == 0x04U) || (__CORTEX_M == 0x07U) */ + + + +/*@} end of CMSIS_Core_RegAccFunctions */ + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +/* Define macros for porting to both thumb1 and thumb2. + * For thumb1, use low register (r0-r7), specified by constraint "l" + * Otherwise, use general registers, specified by constraint "r" */ +#if defined (__thumb__) && !defined (__thumb2__) +#define __CMSIS_GCC_OUT_REG(r) "=l" (r) +#define __CMSIS_GCC_USE_REG(r) "l" (r) +#else +#define __CMSIS_GCC_OUT_REG(r) "=r" (r) +#define __CMSIS_GCC_USE_REG(r) "r" (r) +#endif + +/** + \brief No Operation + \details No Operation does nothing. This instruction can be used for code alignment purposes. + */ +__attribute__((always_inline)) __STATIC_INLINE void __NOP(void) +{ + __ASM volatile ("nop"); +} + + +/** + \brief Wait For Interrupt + \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. + */ +__attribute__((always_inline)) __STATIC_INLINE void __WFI(void) +{ + __ASM volatile ("wfi"); +} + + +/** + \brief Wait For Event + \details Wait For Event is a hint instruction that permits the processor to enter + a low-power state until one of a number of events occurs. + */ +__attribute__((always_inline)) __STATIC_INLINE void __WFE(void) +{ + __ASM volatile ("wfe"); +} + + +/** + \brief Send Event + \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +__attribute__((always_inline)) __STATIC_INLINE void __SEV(void) +{ + __ASM volatile ("sev"); +} + + +/** + \brief Instruction Synchronization Barrier + \details Instruction Synchronization Barrier flushes the pipeline in the processor, + so that all instructions following the ISB are fetched from cache or memory, + after the instruction has been completed. + */ +__attribute__((always_inline)) __STATIC_INLINE void __ISB(void) +{ + __ASM volatile ("isb 0xF":::"memory"); +} + + +/** + \brief Data Synchronization Barrier + \details Acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +__attribute__((always_inline)) __STATIC_INLINE void __DSB(void) +{ + __ASM volatile ("dsb 0xF":::"memory"); +} + + +/** + \brief Data Memory Barrier + \details Ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +__attribute__((always_inline)) __STATIC_INLINE void __DMB(void) +{ + __ASM volatile ("dmb 0xF":::"memory"); +} + + +/** + \brief Reverse byte order (32 bit) + \details Reverses the byte order in integer value. + \param [in] value Value to reverse + \return Reversed value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __REV(uint32_t value) +{ +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) + return __builtin_bswap32(value); +#else + uint32_t result; + + __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +#endif +} + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order in two unsigned short values. + \param [in] value Value to reverse + \return Reversed value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __REV16(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +} + + +/** + \brief Reverse byte order in signed short value + \details Reverses the byte order in a signed short value with sign extension to integer. + \param [in] value Value to reverse + \return Reversed value + */ +__attribute__((always_inline)) __STATIC_INLINE int32_t __REVSH(int32_t value) +{ +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + return (short)__builtin_bswap16(value); +#else + int32_t result; + + __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +#endif +} + + +/** + \brief Rotate Right in unsigned value (32 bit) + \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + \param [in] value Value to rotate + \param [in] value Number of Bits to rotate + \return Rotated value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +{ + return (op1 >> op2) | (op1 << (32U - op2)); +} + + +/** + \brief Breakpoint + \details Causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __ASM volatile ("bkpt "#value) + + +/** + \brief Reverse bit order of value + \details Reverses the bit order of the given value. + \param [in] value Value to reverse + \return Reversed value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __RBIT(uint32_t value) +{ + uint32_t result; + +#if (__CORTEX_M >= 0x03U) || (__CORTEX_SC >= 300U) + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); +#else + int32_t s = 4 /*sizeof(v)*/ * 8 - 1; /* extra shift needed at end */ + + result = value; /* r will be reversed bits of v; first get LSB of v */ + for (value >>= 1U; value; value >>= 1U) + { + result <<= 1U; + result |= value & 1U; + s--; + } + result <<= s; /* shift when v's highest bits are zero */ +#endif + return(result); +} + + +/** + \brief Count leading zeros + \details Counts the number of leading zeros of a data value. + \param [in] value Value to count the leading zeros + \return number of leading zeros in value + */ +#define __CLZ __builtin_clz + + +#if (__CORTEX_M >= 0x03U) || (__CORTEX_SC >= 300U) + +/** + \brief LDR Exclusive (8 bit) + \details Executes a exclusive LDR instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__attribute__((always_inline)) __STATIC_INLINE uint8_t __LDREXB(volatile uint8_t *addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrexb %0, %1" : "=r" (result) : "Q" (*addr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDR Exclusive (16 bit) + \details Executes a exclusive LDR instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__attribute__((always_inline)) __STATIC_INLINE uint16_t __LDREXH(volatile uint16_t *addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrexh %0, %1" : "=r" (result) : "Q" (*addr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDR Exclusive (32 bit) + \details Executes a exclusive LDR instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __LDREXW(volatile uint32_t *addr) +{ + uint32_t result; + + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + return(result); +} + + +/** + \brief STR Exclusive (8 bit) + \details Executes a exclusive STR instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __STREXB(uint8_t value, volatile uint8_t *addr) +{ + uint32_t result; + + __ASM volatile ("strexb %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief STR Exclusive (16 bit) + \details Executes a exclusive STR instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __STREXH(uint16_t value, volatile uint16_t *addr) +{ + uint32_t result; + + __ASM volatile ("strexh %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief STR Exclusive (32 bit) + \details Executes a exclusive STR instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) +{ + uint32_t result; + + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + return(result); +} + + +/** + \brief Remove the exclusive lock + \details Removes the exclusive lock which is created by LDREX. + */ +__attribute__((always_inline)) __STATIC_INLINE void __CLREX(void) +{ + __ASM volatile ("clrex" ::: "memory"); +} + + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +#define __SSAT(ARG1,ARG2) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("ssat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +#define __USAT(ARG1,ARG2) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("usat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + + +/** + \brief Rotate Right with Extend (32 bit) + \details Moves each bit of a bitstring right by one bit. + The carry input is shifted in at the left end of the bitstring. + \param [in] value Value to rotate + \return Rotated value + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __RRX(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rrx %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +} + + +/** + \brief LDRT Unprivileged (8 bit) + \details Executes a Unprivileged LDRT instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__attribute__((always_inline)) __STATIC_INLINE uint8_t __LDRBT(volatile uint8_t *addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*addr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrbt %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (16 bit) + \details Executes a Unprivileged LDRT instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__attribute__((always_inline)) __STATIC_INLINE uint16_t __LDRHT(volatile uint16_t *addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*addr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrht %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (32 bit) + \details Executes a Unprivileged LDRT instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__attribute__((always_inline)) __STATIC_INLINE uint32_t __LDRT(volatile uint32_t *addr) +{ + uint32_t result; + + __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*addr) ); + return(result); +} + + +/** + \brief STRT Unprivileged (8 bit) + \details Executes a Unprivileged STRT instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__attribute__((always_inline)) __STATIC_INLINE void __STRBT(uint8_t value, volatile uint8_t *addr) +{ + __ASM volatile ("strbt %1, %0" : "=Q" (*addr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (16 bit) + \details Executes a Unprivileged STRT instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__attribute__((always_inline)) __STATIC_INLINE void __STRHT(uint16_t value, volatile uint16_t *addr) +{ + __ASM volatile ("strht %1, %0" : "=Q" (*addr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (32 bit) + \details Executes a Unprivileged STRT instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__attribute__((always_inline)) __STATIC_INLINE void __STRT(uint32_t value, volatile uint32_t *addr) +{ + __ASM volatile ("strt %1, %0" : "=Q" (*addr) : "r" (value) ); +} + +#endif /* (__CORTEX_M >= 0x03U) || (__CORTEX_SC >= 300U) */ + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + + +/* ################### Compiler specific Intrinsics ########################### */ +/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics + Access to dedicated SIMD instructions + @{ +*/ + +#if (__CORTEX_M >= 0x04U) /* only for Cortex-M4 and above */ + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __QADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __UADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __UQADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __UHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __QSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __USUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __UQSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __UHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __QADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __UADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __UQADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __UHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __QSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __USUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __UQSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __UHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __QASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __UASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __UQASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __UHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __QSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("qsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("shsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __USAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __UQSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uqsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __UHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uhsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __USAD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usad8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __USADA8(uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("usada8 %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#define __SSAT16(ARG1,ARG2) \ +({ \ + int32_t __RES, __ARG1 = (ARG1); \ + __ASM ("ssat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + +#define __USAT16(ARG1,ARG2) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM ("usat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ + __RES; \ + }) + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __UXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("uxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __UXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM volatile ("sxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SMUAD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuad %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SMUADX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuadx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SMLAD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlad %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SMLADX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smladx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint64_t __SMLALD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint64_t __SMLALDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SMUSD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SMUSDX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusdx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SMLSD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsd %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SMLSDX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsdx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint64_t __SMLSLD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint64_t __SMLSLDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SEL (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sel %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE int32_t __QADD( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qadd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__attribute__( ( always_inline ) ) __STATIC_INLINE int32_t __QSUB( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qsub %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +#define __PKHBT(ARG1,ARG2,ARG3) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \ + __ASM ("pkhbt %0, %1, %2, lsl %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \ + __RES; \ + }) + +#define __PKHTB(ARG1,ARG2,ARG3) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \ + if (ARG3 == 0) \ + __ASM ("pkhtb %0, %1, %2" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2) ); \ + else \ + __ASM ("pkhtb %0, %1, %2, asr %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \ + __RES; \ + }) + +__attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3) +{ + int32_t result; + + __ASM volatile ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#endif /* (__CORTEX_M >= 0x04) */ +/*@} end of group CMSIS_SIMD_intrinsics */ + + +#if defined ( __GNUC__ ) +#pragma GCC diagnostic pop +#endif + +#endif /* __CMSIS_GCC_H */ \ No newline at end of file diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/STM32F4xx/Include/core_cm4.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/STM32F4xx/Include/core_cm4.h new file mode 100644 index 000000000..873eec99d --- /dev/null +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/STM32F4xx/Include/core_cm4.h @@ -0,0 +1,1937 @@ +/**************************************************************************//** + * @file core_cm4.h + * @brief CMSIS Cortex-M4 Core Peripheral Access Layer Header File + * @version V4.30 + * @date 20. October 2015 + ******************************************************************************/ +/* Copyright (c) 2009 - 2015 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CM4_H_GENERIC +#define __CORE_CM4_H_GENERIC + +#include <stdint.h> + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.<br> + Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.<br> + Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.<br> + Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_M4 + @{ + */ + +/* CMSIS CM4 definitions */ +#define __CM4_CMSIS_VERSION_MAIN (0x04U) /*!< [31:16] CMSIS HAL main version */ +#define __CM4_CMSIS_VERSION_SUB (0x1EU) /*!< [15:0] CMSIS HAL sub version */ +#define __CM4_CMSIS_VERSION ((__CM4_CMSIS_VERSION_MAIN << 16U) | \ + __CM4_CMSIS_VERSION_SUB ) /*!< CMSIS HAL version number */ + +#define __CORTEX_M (0x04U) /*!< Cortex-M Core */ + + +#if defined ( __CC_ARM ) + #define __ASM __asm /*!< asm keyword for ARM Compiler */ + #define __INLINE __inline /*!< inline keyword for ARM Compiler */ + #define __STATIC_INLINE static __inline + +#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #define __ASM __asm /*!< asm keyword for ARM Compiler */ + #define __INLINE __inline /*!< inline keyword for ARM Compiler */ + #define __STATIC_INLINE static __inline + +#elif defined ( __GNUC__ ) + #define __ASM __asm /*!< asm keyword for GNU Compiler */ + #define __INLINE inline /*!< inline keyword for GNU Compiler */ + #define __STATIC_INLINE static inline + +#elif defined ( __ICCARM__ ) + #define __ASM __asm /*!< asm keyword for IAR Compiler */ + #define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */ + #define __STATIC_INLINE static inline + +#elif defined ( __TMS470__ ) + #define __ASM __asm /*!< asm keyword for TI CCS Compiler */ + #define __STATIC_INLINE static inline + +#elif defined ( __TASKING__ ) + #define __ASM __asm /*!< asm keyword for TASKING Compiler */ + #define __INLINE inline /*!< inline keyword for TASKING Compiler */ + #define __STATIC_INLINE static inline + +#elif defined ( __CSMC__ ) + #define __packed + #define __ASM _asm /*!< asm keyword for COSMIC Compiler */ + #define __INLINE inline /*!< inline keyword for COSMIC Compiler. Use -pc99 on compile line */ + #define __STATIC_INLINE static inline + +#else + #error Unknown compiler +#endif + +/** __FPU_USED indicates whether an FPU is used or not. + For this, __FPU_PRESENT has to be checked prior to making use of FPU specific registers and functions. +*/ +#if defined ( __CC_ARM ) + #if defined __TARGET_FPU_VFP + #if (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #if defined __ARM_PCS_VFP + #if (__FPU_PRESENT == 1) + #define __FPU_USED 1U + #else + #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #if (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TMS470__ ) + #if defined __TI_VFP_SUPPORT__ + #if (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __TASKING__ ) + #if defined __FPU_VFP__ + #if (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __CSMC__ ) + #if ( __CSMC__ & 0x400U) + #if (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#endif + +#include "core_cmInstr.h" /* Core Instruction Access */ +#include "core_cmFunc.h" /* Core Function Access */ +#include "core_cmSimd.h" /* Compiler specific SIMD Intrinsics */ + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM4_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CM4_H_DEPENDANT +#define __CORE_CM4_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + +/* check device defines and use defaults */ +#if defined __CHECK_DEVICE_DEFINES + #ifndef __CM4_REV + #define __CM4_REV 0x0000U + #warning "__CM4_REV not defined in device header file; using default!" + #endif + + #ifndef __FPU_PRESENT + #define __FPU_PRESENT 0U + #warning "__FPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __MPU_PRESENT + #define __MPU_PRESENT 0U + #warning "__MPU_PRESENT not defined in device header file; using default!" + #endif + + #ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 4U + #warning "__NVIC_PRIO_BITS not defined in device header file; using default!" + #endif + + #ifndef __Vendor_SysTickConfig + #define __Vendor_SysTickConfig 0U + #warning "__Vendor_SysTickConfig not defined in device header file; using default!" + #endif +#endif + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + <strong>IO Type Qualifiers</strong> are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_M4 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + - Core NVIC Register + - Core SCB Register + - Core SysTick Register + - Core Debug Register + - Core MPU Register + - Core FPU Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \brief Union type to access the Application Program Status Register (APSR). + */ +typedef union +{ + struct + { + uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} APSR_Type; + +/* APSR Register Definitions */ +#define APSR_N_Pos 31U /*!< APSR: N Position */ +#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */ + +#define APSR_Z_Pos 30U /*!< APSR: Z Position */ +#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */ + +#define APSR_C_Pos 29U /*!< APSR: C Position */ +#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */ + +#define APSR_V_Pos 28U /*!< APSR: V Position */ +#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */ + +#define APSR_Q_Pos 27U /*!< APSR: Q Position */ +#define APSR_Q_Msk (1UL << APSR_Q_Pos) /*!< APSR: Q Mask */ + +#define APSR_GE_Pos 16U /*!< APSR: GE Position */ +#define APSR_GE_Msk (0xFUL << APSR_GE_Pos) /*!< APSR: GE Mask */ + + +/** + \brief Union type to access the Interrupt Program Status Register (IPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} IPSR_Type; + +/* IPSR Register Definitions */ +#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */ +#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */ + + +/** + \brief Union type to access the Special-Purpose Program Status Registers (xPSR). + */ +typedef union +{ + struct + { + uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ + uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ + uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ + uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ + uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ + uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ + uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ + uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ + uint32_t C:1; /*!< bit: 29 Carry condition code flag */ + uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ + uint32_t N:1; /*!< bit: 31 Negative condition code flag */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} xPSR_Type; + +/* xPSR Register Definitions */ +#define xPSR_N_Pos 31U /*!< xPSR: N Position */ +#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */ + +#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */ +#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */ + +#define xPSR_C_Pos 29U /*!< xPSR: C Position */ +#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */ + +#define xPSR_V_Pos 28U /*!< xPSR: V Position */ +#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */ + +#define xPSR_Q_Pos 27U /*!< xPSR: Q Position */ +#define xPSR_Q_Msk (1UL << xPSR_Q_Pos) /*!< xPSR: Q Mask */ + +#define xPSR_IT_Pos 25U /*!< xPSR: IT Position */ +#define xPSR_IT_Msk (3UL << xPSR_IT_Pos) /*!< xPSR: IT Mask */ + +#define xPSR_T_Pos 24U /*!< xPSR: T Position */ +#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */ + +#define xPSR_GE_Pos 16U /*!< xPSR: GE Position */ +#define xPSR_GE_Msk (0xFUL << xPSR_GE_Pos) /*!< xPSR: GE Mask */ + +#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */ +#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */ + + +/** + \brief Union type to access the Control Registers (CONTROL). + */ +typedef union +{ + struct + { + uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ + uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ + uint32_t FPCA:1; /*!< bit: 2 FP extension active flag */ + uint32_t _reserved0:29; /*!< bit: 3..31 Reserved */ + } b; /*!< Structure used for bit access */ + uint32_t w; /*!< Type used for word access */ +} CONTROL_Type; + +/* CONTROL Register Definitions */ +#define CONTROL_FPCA_Pos 2U /*!< CONTROL: FPCA Position */ +#define CONTROL_FPCA_Msk (1UL << CONTROL_FPCA_Pos) /*!< CONTROL: FPCA Mask */ + +#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */ +#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */ + +#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */ +#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */ + +/*@} end of group CMSIS_CORE */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC) + \brief Type definitions for the NVIC Registers + @{ + */ + +/** + \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). + */ +typedef struct +{ + __IOM uint32_t ISER[8U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ + uint32_t RESERVED0[24U]; + __IOM uint32_t ICER[8U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ + uint32_t RSERVED1[24U]; + __IOM uint32_t ISPR[8U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ + uint32_t RESERVED2[24U]; + __IOM uint32_t ICPR[8U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ + uint32_t RESERVED3[24U]; + __IOM uint32_t IABR[8U]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ + uint32_t RESERVED4[56U]; + __IOM uint8_t IP[240U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644U]; + __OM uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ +} NVIC_Type; + +/* Software Triggered Interrupt Register Definitions */ +#define NVIC_STIR_INTID_Pos 0U /*!< STIR: INTLINESNUM Position */ +#define NVIC_STIR_INTID_Msk (0x1FFUL /*<< NVIC_STIR_INTID_Pos*/) /*!< STIR: INTLINESNUM Mask */ + +/*@} end of group CMSIS_NVIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCB System Control Block (SCB) + \brief Type definitions for the System Control Block Registers + @{ + */ + +/** + \brief Structure type to access the System Control Block (SCB). + */ +typedef struct +{ + __IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */ + __IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */ + __IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ + __IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */ + __IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ + __IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ + __IOM uint8_t SHP[12U]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ + __IOM uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ + __IOM uint32_t HFSR; /*!< Offset: 0x02C (R/W) HardFault Status Register */ + __IOM uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ + __IOM uint32_t MMFAR; /*!< Offset: 0x034 (R/W) MemManage Fault Address Register */ + __IOM uint32_t BFAR; /*!< Offset: 0x038 (R/W) BusFault Address Register */ + __IOM uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ + __IM uint32_t PFR[2U]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ + __IM uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ + __IM uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ + __IM uint32_t MMFR[4U]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ + __IM uint32_t ISAR[5U]; /*!< Offset: 0x060 (R/ ) Instruction Set Attributes Register */ + uint32_t RESERVED0[5U]; + __IOM uint32_t CPACR; /*!< Offset: 0x088 (R/W) Coprocessor Access Control Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */ +#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */ + +#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11U /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Vector Table Offset Register Definitions */ +#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8U /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0U /*!< SCB AIRCR: VECTRESET Position */ +#define SCB_AIRCR_VECTRESET_Msk (1UL /*<< SCB_AIRCR_VECTRESET_Pos*/) /*!< SCB AIRCR: VECTRESET Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8U /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4U /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1U /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0U /*!< SCB CCR: NONBASETHRDENA Position */ +#define SCB_CCR_NONBASETHRDENA_Msk (1UL /*<< SCB_CCR_NONBASETHRDENA_Pos*/) /*!< SCB CCR: NONBASETHRDENA Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_USGFAULTENA_Pos 18U /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17U /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16U /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14U /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13U /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12U /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11U /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10U /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8U /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7U /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3U /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1U /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0U /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1UL /*<< SCB_SHCSR_MEMFAULTACT_Pos*/) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Register Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16U /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8U /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0U /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL /*<< SCB_CFSR_MEMFAULTSR_Pos*/) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* SCB Hard Fault Status Register Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31U /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30U /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1U /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4U /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3U /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2U /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1U /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0U /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1UL /*<< SCB_DFSR_HALTED_Pos*/) /*!< SCB DFSR: HALTED Mask */ + +/*@} end of group CMSIS_SCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB) + \brief Type definitions for the System Control and ID Register not in the SCB + @{ + */ + +/** + \brief Structure type to access the System Control and ID Register not in the SCB. + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IM uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Controller Type Register */ + __IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ +} SCnSCB_Type; + +/* Interrupt Controller Type Register Definitions */ +#define SCnSCB_ICTR_INTLINESNUM_Pos 0U /*!< ICTR: INTLINESNUM Position */ +#define SCnSCB_ICTR_INTLINESNUM_Msk (0xFUL /*<< SCnSCB_ICTR_INTLINESNUM_Pos*/) /*!< ICTR: INTLINESNUM Mask */ + +/* Auxiliary Control Register Definitions */ +#define SCnSCB_ACTLR_DISOOFP_Pos 9U /*!< ACTLR: DISOOFP Position */ +#define SCnSCB_ACTLR_DISOOFP_Msk (1UL << SCnSCB_ACTLR_DISOOFP_Pos) /*!< ACTLR: DISOOFP Mask */ + +#define SCnSCB_ACTLR_DISFPCA_Pos 8U /*!< ACTLR: DISFPCA Position */ +#define SCnSCB_ACTLR_DISFPCA_Msk (1UL << SCnSCB_ACTLR_DISFPCA_Pos) /*!< ACTLR: DISFPCA Mask */ + +#define SCnSCB_ACTLR_DISFOLD_Pos 2U /*!< ACTLR: DISFOLD Position */ +#define SCnSCB_ACTLR_DISFOLD_Msk (1UL << SCnSCB_ACTLR_DISFOLD_Pos) /*!< ACTLR: DISFOLD Mask */ + +#define SCnSCB_ACTLR_DISDEFWBUF_Pos 1U /*!< ACTLR: DISDEFWBUF Position */ +#define SCnSCB_ACTLR_DISDEFWBUF_Msk (1UL << SCnSCB_ACTLR_DISDEFWBUF_Pos) /*!< ACTLR: DISDEFWBUF Mask */ + +#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */ +#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */ + +/*@} end of group CMSIS_SCnotSCB */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_SysTick System Tick Timer (SysTick) + \brief Type definitions for the System Timer Registers. + @{ + */ + +/** + \brief Structure type to access the System Timer (SysTick). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ + __IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ + __IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ + __IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */ + +/*@} end of group CMSIS_SysTick */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_ITM Instrumentation Trace Macrocell (ITM) + \brief Type definitions for the Instrumentation Trace Macrocell (ITM) + @{ + */ + +/** + \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). + */ +typedef struct +{ + __OM union + { + __OM uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ + __OM uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ + __OM uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ + } PORT [32U]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ + uint32_t RESERVED0[864U]; + __IOM uint32_t TER; /*!< Offset: 0xE00 (R/W) ITM Trace Enable Register */ + uint32_t RESERVED1[15U]; + __IOM uint32_t TPR; /*!< Offset: 0xE40 (R/W) ITM Trace Privilege Register */ + uint32_t RESERVED2[15U]; + __IOM uint32_t TCR; /*!< Offset: 0xE80 (R/W) ITM Trace Control Register */ + uint32_t RESERVED3[29U]; + __OM uint32_t IWR; /*!< Offset: 0xEF8 ( /W) ITM Integration Write Register */ + __IM uint32_t IRR; /*!< Offset: 0xEFC (R/ ) ITM Integration Read Register */ + __IOM uint32_t IMCR; /*!< Offset: 0xF00 (R/W) ITM Integration Mode Control Register */ + uint32_t RESERVED4[43U]; + __OM uint32_t LAR; /*!< Offset: 0xFB0 ( /W) ITM Lock Access Register */ + __IM uint32_t LSR; /*!< Offset: 0xFB4 (R/ ) ITM Lock Status Register */ + uint32_t RESERVED5[6U]; + __IM uint32_t PID4; /*!< Offset: 0xFD0 (R/ ) ITM Peripheral Identification Register #4 */ + __IM uint32_t PID5; /*!< Offset: 0xFD4 (R/ ) ITM Peripheral Identification Register #5 */ + __IM uint32_t PID6; /*!< Offset: 0xFD8 (R/ ) ITM Peripheral Identification Register #6 */ + __IM uint32_t PID7; /*!< Offset: 0xFDC (R/ ) ITM Peripheral Identification Register #7 */ + __IM uint32_t PID0; /*!< Offset: 0xFE0 (R/ ) ITM Peripheral Identification Register #0 */ + __IM uint32_t PID1; /*!< Offset: 0xFE4 (R/ ) ITM Peripheral Identification Register #1 */ + __IM uint32_t PID2; /*!< Offset: 0xFE8 (R/ ) ITM Peripheral Identification Register #2 */ + __IM uint32_t PID3; /*!< Offset: 0xFEC (R/ ) ITM Peripheral Identification Register #3 */ + __IM uint32_t CID0; /*!< Offset: 0xFF0 (R/ ) ITM Component Identification Register #0 */ + __IM uint32_t CID1; /*!< Offset: 0xFF4 (R/ ) ITM Component Identification Register #1 */ + __IM uint32_t CID2; /*!< Offset: 0xFF8 (R/ ) ITM Component Identification Register #2 */ + __IM uint32_t CID3; /*!< Offset: 0xFFC (R/ ) ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0U /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFUL /*<< ITM_TPR_PRIVMASK_Pos*/) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23U /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_TraceBusID_Pos 16U /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_TraceBusID_Msk (0x7FUL << ITM_TCR_TraceBusID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_GTSFREQ_Pos 10U /*!< ITM TCR: Global timestamp frequency Position */ +#define ITM_TCR_GTSFREQ_Msk (3UL << ITM_TCR_GTSFREQ_Pos) /*!< ITM TCR: Global timestamp frequency Mask */ + +#define ITM_TCR_TSPrescale_Pos 8U /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4U /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3U /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2U /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1U /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0U /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1UL /*<< ITM_TCR_ITMENA_Pos*/) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Integration Write Register Definitions */ +#define ITM_IWR_ATVALIDM_Pos 0U /*!< ITM IWR: ATVALIDM Position */ +#define ITM_IWR_ATVALIDM_Msk (1UL /*<< ITM_IWR_ATVALIDM_Pos*/) /*!< ITM IWR: ATVALIDM Mask */ + +/* ITM Integration Read Register Definitions */ +#define ITM_IRR_ATREADYM_Pos 0U /*!< ITM IRR: ATREADYM Position */ +#define ITM_IRR_ATREADYM_Msk (1UL /*<< ITM_IRR_ATREADYM_Pos*/) /*!< ITM IRR: ATREADYM Mask */ + +/* ITM Integration Mode Control Register Definitions */ +#define ITM_IMCR_INTEGRATION_Pos 0U /*!< ITM IMCR: INTEGRATION Position */ +#define ITM_IMCR_INTEGRATION_Msk (1UL /*<< ITM_IMCR_INTEGRATION_Pos*/) /*!< ITM IMCR: INTEGRATION Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2U /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1U /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0U /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1UL /*<< ITM_LSR_Present_Pos*/) /*!< ITM LSR: Present Mask */ + +/*@}*/ /* end of group CMSIS_ITM */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_DWT Data Watchpoint and Trace (DWT) + \brief Type definitions for the Data Watchpoint and Trace (DWT) + @{ + */ + +/** + \brief Structure type to access the Data Watchpoint and Trace Register (DWT). + */ +typedef struct +{ + __IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */ + __IOM uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */ + __IOM uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */ + __IOM uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */ + __IOM uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */ + __IOM uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */ + __IOM uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */ + __IM uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */ + __IOM uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */ + __IOM uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */ + __IOM uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */ + uint32_t RESERVED0[1U]; + __IOM uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */ + __IOM uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */ + __IOM uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */ + uint32_t RESERVED1[1U]; + __IOM uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */ + __IOM uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */ + __IOM uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */ + uint32_t RESERVED2[1U]; + __IOM uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */ + __IOM uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */ + __IOM uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */ +} DWT_Type; + +/* DWT Control Register Definitions */ +#define DWT_CTRL_NUMCOMP_Pos 28U /*!< DWT CTRL: NUMCOMP Position */ +#define DWT_CTRL_NUMCOMP_Msk (0xFUL << DWT_CTRL_NUMCOMP_Pos) /*!< DWT CTRL: NUMCOMP Mask */ + +#define DWT_CTRL_NOTRCPKT_Pos 27U /*!< DWT CTRL: NOTRCPKT Position */ +#define DWT_CTRL_NOTRCPKT_Msk (0x1UL << DWT_CTRL_NOTRCPKT_Pos) /*!< DWT CTRL: NOTRCPKT Mask */ + +#define DWT_CTRL_NOEXTTRIG_Pos 26U /*!< DWT CTRL: NOEXTTRIG Position */ +#define DWT_CTRL_NOEXTTRIG_Msk (0x1UL << DWT_CTRL_NOEXTTRIG_Pos) /*!< DWT CTRL: NOEXTTRIG Mask */ + +#define DWT_CTRL_NOCYCCNT_Pos 25U /*!< DWT CTRL: NOCYCCNT Position */ +#define DWT_CTRL_NOCYCCNT_Msk (0x1UL << DWT_CTRL_NOCYCCNT_Pos) /*!< DWT CTRL: NOCYCCNT Mask */ + +#define DWT_CTRL_NOPRFCNT_Pos 24U /*!< DWT CTRL: NOPRFCNT Position */ +#define DWT_CTRL_NOPRFCNT_Msk (0x1UL << DWT_CTRL_NOPRFCNT_Pos) /*!< DWT CTRL: NOPRFCNT Mask */ + +#define DWT_CTRL_CYCEVTENA_Pos 22U /*!< DWT CTRL: CYCEVTENA Position */ +#define DWT_CTRL_CYCEVTENA_Msk (0x1UL << DWT_CTRL_CYCEVTENA_Pos) /*!< DWT CTRL: CYCEVTENA Mask */ + +#define DWT_CTRL_FOLDEVTENA_Pos 21U /*!< DWT CTRL: FOLDEVTENA Position */ +#define DWT_CTRL_FOLDEVTENA_Msk (0x1UL << DWT_CTRL_FOLDEVTENA_Pos) /*!< DWT CTRL: FOLDEVTENA Mask */ + +#define DWT_CTRL_LSUEVTENA_Pos 20U /*!< DWT CTRL: LSUEVTENA Position */ +#define DWT_CTRL_LSUEVTENA_Msk (0x1UL << DWT_CTRL_LSUEVTENA_Pos) /*!< DWT CTRL: LSUEVTENA Mask */ + +#define DWT_CTRL_SLEEPEVTENA_Pos 19U /*!< DWT CTRL: SLEEPEVTENA Position */ +#define DWT_CTRL_SLEEPEVTENA_Msk (0x1UL << DWT_CTRL_SLEEPEVTENA_Pos) /*!< DWT CTRL: SLEEPEVTENA Mask */ + +#define DWT_CTRL_EXCEVTENA_Pos 18U /*!< DWT CTRL: EXCEVTENA Position */ +#define DWT_CTRL_EXCEVTENA_Msk (0x1UL << DWT_CTRL_EXCEVTENA_Pos) /*!< DWT CTRL: EXCEVTENA Mask */ + +#define DWT_CTRL_CPIEVTENA_Pos 17U /*!< DWT CTRL: CPIEVTENA Position */ +#define DWT_CTRL_CPIEVTENA_Msk (0x1UL << DWT_CTRL_CPIEVTENA_Pos) /*!< DWT CTRL: CPIEVTENA Mask */ + +#define DWT_CTRL_EXCTRCENA_Pos 16U /*!< DWT CTRL: EXCTRCENA Position */ +#define DWT_CTRL_EXCTRCENA_Msk (0x1UL << DWT_CTRL_EXCTRCENA_Pos) /*!< DWT CTRL: EXCTRCENA Mask */ + +#define DWT_CTRL_PCSAMPLENA_Pos 12U /*!< DWT CTRL: PCSAMPLENA Position */ +#define DWT_CTRL_PCSAMPLENA_Msk (0x1UL << DWT_CTRL_PCSAMPLENA_Pos) /*!< DWT CTRL: PCSAMPLENA Mask */ + +#define DWT_CTRL_SYNCTAP_Pos 10U /*!< DWT CTRL: SYNCTAP Position */ +#define DWT_CTRL_SYNCTAP_Msk (0x3UL << DWT_CTRL_SYNCTAP_Pos) /*!< DWT CTRL: SYNCTAP Mask */ + +#define DWT_CTRL_CYCTAP_Pos 9U /*!< DWT CTRL: CYCTAP Position */ +#define DWT_CTRL_CYCTAP_Msk (0x1UL << DWT_CTRL_CYCTAP_Pos) /*!< DWT CTRL: CYCTAP Mask */ + +#define DWT_CTRL_POSTINIT_Pos 5U /*!< DWT CTRL: POSTINIT Position */ +#define DWT_CTRL_POSTINIT_Msk (0xFUL << DWT_CTRL_POSTINIT_Pos) /*!< DWT CTRL: POSTINIT Mask */ + +#define DWT_CTRL_POSTPRESET_Pos 1U /*!< DWT CTRL: POSTPRESET Position */ +#define DWT_CTRL_POSTPRESET_Msk (0xFUL << DWT_CTRL_POSTPRESET_Pos) /*!< DWT CTRL: POSTPRESET Mask */ + +#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */ +#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */ + +/* DWT CPI Count Register Definitions */ +#define DWT_CPICNT_CPICNT_Pos 0U /*!< DWT CPICNT: CPICNT Position */ +#define DWT_CPICNT_CPICNT_Msk (0xFFUL /*<< DWT_CPICNT_CPICNT_Pos*/) /*!< DWT CPICNT: CPICNT Mask */ + +/* DWT Exception Overhead Count Register Definitions */ +#define DWT_EXCCNT_EXCCNT_Pos 0U /*!< DWT EXCCNT: EXCCNT Position */ +#define DWT_EXCCNT_EXCCNT_Msk (0xFFUL /*<< DWT_EXCCNT_EXCCNT_Pos*/) /*!< DWT EXCCNT: EXCCNT Mask */ + +/* DWT Sleep Count Register Definitions */ +#define DWT_SLEEPCNT_SLEEPCNT_Pos 0U /*!< DWT SLEEPCNT: SLEEPCNT Position */ +#define DWT_SLEEPCNT_SLEEPCNT_Msk (0xFFUL /*<< DWT_SLEEPCNT_SLEEPCNT_Pos*/) /*!< DWT SLEEPCNT: SLEEPCNT Mask */ + +/* DWT LSU Count Register Definitions */ +#define DWT_LSUCNT_LSUCNT_Pos 0U /*!< DWT LSUCNT: LSUCNT Position */ +#define DWT_LSUCNT_LSUCNT_Msk (0xFFUL /*<< DWT_LSUCNT_LSUCNT_Pos*/) /*!< DWT LSUCNT: LSUCNT Mask */ + +/* DWT Folded-instruction Count Register Definitions */ +#define DWT_FOLDCNT_FOLDCNT_Pos 0U /*!< DWT FOLDCNT: FOLDCNT Position */ +#define DWT_FOLDCNT_FOLDCNT_Msk (0xFFUL /*<< DWT_FOLDCNT_FOLDCNT_Pos*/) /*!< DWT FOLDCNT: FOLDCNT Mask */ + +/* DWT Comparator Mask Register Definitions */ +#define DWT_MASK_MASK_Pos 0U /*!< DWT MASK: MASK Position */ +#define DWT_MASK_MASK_Msk (0x1FUL /*<< DWT_MASK_MASK_Pos*/) /*!< DWT MASK: MASK Mask */ + +/* DWT Comparator Function Register Definitions */ +#define DWT_FUNCTION_MATCHED_Pos 24U /*!< DWT FUNCTION: MATCHED Position */ +#define DWT_FUNCTION_MATCHED_Msk (0x1UL << DWT_FUNCTION_MATCHED_Pos) /*!< DWT FUNCTION: MATCHED Mask */ + +#define DWT_FUNCTION_DATAVADDR1_Pos 16U /*!< DWT FUNCTION: DATAVADDR1 Position */ +#define DWT_FUNCTION_DATAVADDR1_Msk (0xFUL << DWT_FUNCTION_DATAVADDR1_Pos) /*!< DWT FUNCTION: DATAVADDR1 Mask */ + +#define DWT_FUNCTION_DATAVADDR0_Pos 12U /*!< DWT FUNCTION: DATAVADDR0 Position */ +#define DWT_FUNCTION_DATAVADDR0_Msk (0xFUL << DWT_FUNCTION_DATAVADDR0_Pos) /*!< DWT FUNCTION: DATAVADDR0 Mask */ + +#define DWT_FUNCTION_DATAVSIZE_Pos 10U /*!< DWT FUNCTION: DATAVSIZE Position */ +#define DWT_FUNCTION_DATAVSIZE_Msk (0x3UL << DWT_FUNCTION_DATAVSIZE_Pos) /*!< DWT FUNCTION: DATAVSIZE Mask */ + +#define DWT_FUNCTION_LNK1ENA_Pos 9U /*!< DWT FUNCTION: LNK1ENA Position */ +#define DWT_FUNCTION_LNK1ENA_Msk (0x1UL << DWT_FUNCTION_LNK1ENA_Pos) /*!< DWT FUNCTION: LNK1ENA Mask */ + +#define DWT_FUNCTION_DATAVMATCH_Pos 8U /*!< DWT FUNCTION: DATAVMATCH Position */ +#define DWT_FUNCTION_DATAVMATCH_Msk (0x1UL << DWT_FUNCTION_DATAVMATCH_Pos) /*!< DWT FUNCTION: DATAVMATCH Mask */ + +#define DWT_FUNCTION_CYCMATCH_Pos 7U /*!< DWT FUNCTION: CYCMATCH Position */ +#define DWT_FUNCTION_CYCMATCH_Msk (0x1UL << DWT_FUNCTION_CYCMATCH_Pos) /*!< DWT FUNCTION: CYCMATCH Mask */ + +#define DWT_FUNCTION_EMITRANGE_Pos 5U /*!< DWT FUNCTION: EMITRANGE Position */ +#define DWT_FUNCTION_EMITRANGE_Msk (0x1UL << DWT_FUNCTION_EMITRANGE_Pos) /*!< DWT FUNCTION: EMITRANGE Mask */ + +#define DWT_FUNCTION_FUNCTION_Pos 0U /*!< DWT FUNCTION: FUNCTION Position */ +#define DWT_FUNCTION_FUNCTION_Msk (0xFUL /*<< DWT_FUNCTION_FUNCTION_Pos*/) /*!< DWT FUNCTION: FUNCTION Mask */ + +/*@}*/ /* end of group CMSIS_DWT */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_TPI Trace Port Interface (TPI) + \brief Type definitions for the Trace Port Interface (TPI) + @{ + */ + +/** + \brief Structure type to access the Trace Port Interface Register (TPI). + */ +typedef struct +{ + __IOM uint32_t SSPSR; /*!< Offset: 0x000 (R/ ) Supported Parallel Port Size Register */ + __IOM uint32_t CSPSR; /*!< Offset: 0x004 (R/W) Current Parallel Port Size Register */ + uint32_t RESERVED0[2U]; + __IOM uint32_t ACPR; /*!< Offset: 0x010 (R/W) Asynchronous Clock Prescaler Register */ + uint32_t RESERVED1[55U]; + __IOM uint32_t SPPR; /*!< Offset: 0x0F0 (R/W) Selected Pin Protocol Register */ + uint32_t RESERVED2[131U]; + __IM uint32_t FFSR; /*!< Offset: 0x300 (R/ ) Formatter and Flush Status Register */ + __IOM uint32_t FFCR; /*!< Offset: 0x304 (R/W) Formatter and Flush Control Register */ + __IM uint32_t FSCR; /*!< Offset: 0x308 (R/ ) Formatter Synchronization Counter Register */ + uint32_t RESERVED3[759U]; + __IM uint32_t TRIGGER; /*!< Offset: 0xEE8 (R/ ) TRIGGER */ + __IM uint32_t FIFO0; /*!< Offset: 0xEEC (R/ ) Integration ETM Data */ + __IM uint32_t ITATBCTR2; /*!< Offset: 0xEF0 (R/ ) ITATBCTR2 */ + uint32_t RESERVED4[1U]; + __IM uint32_t ITATBCTR0; /*!< Offset: 0xEF8 (R/ ) ITATBCTR0 */ + __IM uint32_t FIFO1; /*!< Offset: 0xEFC (R/ ) Integration ITM Data */ + __IOM uint32_t ITCTRL; /*!< Offset: 0xF00 (R/W) Integration Mode Control */ + uint32_t RESERVED5[39U]; + __IOM uint32_t CLAIMSET; /*!< Offset: 0xFA0 (R/W) Claim tag set */ + __IOM uint32_t CLAIMCLR; /*!< Offset: 0xFA4 (R/W) Claim tag clear */ + uint32_t RESERVED7[8U]; + __IM uint32_t DEVID; /*!< Offset: 0xFC8 (R/ ) TPIU_DEVID */ + __IM uint32_t DEVTYPE; /*!< Offset: 0xFCC (R/ ) TPIU_DEVTYPE */ +} TPI_Type; + +/* TPI Asynchronous Clock Prescaler Register Definitions */ +#define TPI_ACPR_PRESCALER_Pos 0U /*!< TPI ACPR: PRESCALER Position */ +#define TPI_ACPR_PRESCALER_Msk (0x1FFFUL /*<< TPI_ACPR_PRESCALER_Pos*/) /*!< TPI ACPR: PRESCALER Mask */ + +/* TPI Selected Pin Protocol Register Definitions */ +#define TPI_SPPR_TXMODE_Pos 0U /*!< TPI SPPR: TXMODE Position */ +#define TPI_SPPR_TXMODE_Msk (0x3UL /*<< TPI_SPPR_TXMODE_Pos*/) /*!< TPI SPPR: TXMODE Mask */ + +/* TPI Formatter and Flush Status Register Definitions */ +#define TPI_FFSR_FtNonStop_Pos 3U /*!< TPI FFSR: FtNonStop Position */ +#define TPI_FFSR_FtNonStop_Msk (0x1UL << TPI_FFSR_FtNonStop_Pos) /*!< TPI FFSR: FtNonStop Mask */ + +#define TPI_FFSR_TCPresent_Pos 2U /*!< TPI FFSR: TCPresent Position */ +#define TPI_FFSR_TCPresent_Msk (0x1UL << TPI_FFSR_TCPresent_Pos) /*!< TPI FFSR: TCPresent Mask */ + +#define TPI_FFSR_FtStopped_Pos 1U /*!< TPI FFSR: FtStopped Position */ +#define TPI_FFSR_FtStopped_Msk (0x1UL << TPI_FFSR_FtStopped_Pos) /*!< TPI FFSR: FtStopped Mask */ + +#define TPI_FFSR_FlInProg_Pos 0U /*!< TPI FFSR: FlInProg Position */ +#define TPI_FFSR_FlInProg_Msk (0x1UL /*<< TPI_FFSR_FlInProg_Pos*/) /*!< TPI FFSR: FlInProg Mask */ + +/* TPI Formatter and Flush Control Register Definitions */ +#define TPI_FFCR_TrigIn_Pos 8U /*!< TPI FFCR: TrigIn Position */ +#define TPI_FFCR_TrigIn_Msk (0x1UL << TPI_FFCR_TrigIn_Pos) /*!< TPI FFCR: TrigIn Mask */ + +#define TPI_FFCR_EnFCont_Pos 1U /*!< TPI FFCR: EnFCont Position */ +#define TPI_FFCR_EnFCont_Msk (0x1UL << TPI_FFCR_EnFCont_Pos) /*!< TPI FFCR: EnFCont Mask */ + +/* TPI TRIGGER Register Definitions */ +#define TPI_TRIGGER_TRIGGER_Pos 0U /*!< TPI TRIGGER: TRIGGER Position */ +#define TPI_TRIGGER_TRIGGER_Msk (0x1UL /*<< TPI_TRIGGER_TRIGGER_Pos*/) /*!< TPI TRIGGER: TRIGGER Mask */ + +/* TPI Integration ETM Data Register Definitions (FIFO0) */ +#define TPI_FIFO0_ITM_ATVALID_Pos 29U /*!< TPI FIFO0: ITM_ATVALID Position */ +#define TPI_FIFO0_ITM_ATVALID_Msk (0x3UL << TPI_FIFO0_ITM_ATVALID_Pos) /*!< TPI FIFO0: ITM_ATVALID Mask */ + +#define TPI_FIFO0_ITM_bytecount_Pos 27U /*!< TPI FIFO0: ITM_bytecount Position */ +#define TPI_FIFO0_ITM_bytecount_Msk (0x3UL << TPI_FIFO0_ITM_bytecount_Pos) /*!< TPI FIFO0: ITM_bytecount Mask */ + +#define TPI_FIFO0_ETM_ATVALID_Pos 26U /*!< TPI FIFO0: ETM_ATVALID Position */ +#define TPI_FIFO0_ETM_ATVALID_Msk (0x3UL << TPI_FIFO0_ETM_ATVALID_Pos) /*!< TPI FIFO0: ETM_ATVALID Mask */ + +#define TPI_FIFO0_ETM_bytecount_Pos 24U /*!< TPI FIFO0: ETM_bytecount Position */ +#define TPI_FIFO0_ETM_bytecount_Msk (0x3UL << TPI_FIFO0_ETM_bytecount_Pos) /*!< TPI FIFO0: ETM_bytecount Mask */ + +#define TPI_FIFO0_ETM2_Pos 16U /*!< TPI FIFO0: ETM2 Position */ +#define TPI_FIFO0_ETM2_Msk (0xFFUL << TPI_FIFO0_ETM2_Pos) /*!< TPI FIFO0: ETM2 Mask */ + +#define TPI_FIFO0_ETM1_Pos 8U /*!< TPI FIFO0: ETM1 Position */ +#define TPI_FIFO0_ETM1_Msk (0xFFUL << TPI_FIFO0_ETM1_Pos) /*!< TPI FIFO0: ETM1 Mask */ + +#define TPI_FIFO0_ETM0_Pos 0U /*!< TPI FIFO0: ETM0 Position */ +#define TPI_FIFO0_ETM0_Msk (0xFFUL /*<< TPI_FIFO0_ETM0_Pos*/) /*!< TPI FIFO0: ETM0 Mask */ + +/* TPI ITATBCTR2 Register Definitions */ +#define TPI_ITATBCTR2_ATREADY_Pos 0U /*!< TPI ITATBCTR2: ATREADY Position */ +#define TPI_ITATBCTR2_ATREADY_Msk (0x1UL /*<< TPI_ITATBCTR2_ATREADY_Pos*/) /*!< TPI ITATBCTR2: ATREADY Mask */ + +/* TPI Integration ITM Data Register Definitions (FIFO1) */ +#define TPI_FIFO1_ITM_ATVALID_Pos 29U /*!< TPI FIFO1: ITM_ATVALID Position */ +#define TPI_FIFO1_ITM_ATVALID_Msk (0x3UL << TPI_FIFO1_ITM_ATVALID_Pos) /*!< TPI FIFO1: ITM_ATVALID Mask */ + +#define TPI_FIFO1_ITM_bytecount_Pos 27U /*!< TPI FIFO1: ITM_bytecount Position */ +#define TPI_FIFO1_ITM_bytecount_Msk (0x3UL << TPI_FIFO1_ITM_bytecount_Pos) /*!< TPI FIFO1: ITM_bytecount Mask */ + +#define TPI_FIFO1_ETM_ATVALID_Pos 26U /*!< TPI FIFO1: ETM_ATVALID Position */ +#define TPI_FIFO1_ETM_ATVALID_Msk (0x3UL << TPI_FIFO1_ETM_ATVALID_Pos) /*!< TPI FIFO1: ETM_ATVALID Mask */ + +#define TPI_FIFO1_ETM_bytecount_Pos 24U /*!< TPI FIFO1: ETM_bytecount Position */ +#define TPI_FIFO1_ETM_bytecount_Msk (0x3UL << TPI_FIFO1_ETM_bytecount_Pos) /*!< TPI FIFO1: ETM_bytecount Mask */ + +#define TPI_FIFO1_ITM2_Pos 16U /*!< TPI FIFO1: ITM2 Position */ +#define TPI_FIFO1_ITM2_Msk (0xFFUL << TPI_FIFO1_ITM2_Pos) /*!< TPI FIFO1: ITM2 Mask */ + +#define TPI_FIFO1_ITM1_Pos 8U /*!< TPI FIFO1: ITM1 Position */ +#define TPI_FIFO1_ITM1_Msk (0xFFUL << TPI_FIFO1_ITM1_Pos) /*!< TPI FIFO1: ITM1 Mask */ + +#define TPI_FIFO1_ITM0_Pos 0U /*!< TPI FIFO1: ITM0 Position */ +#define TPI_FIFO1_ITM0_Msk (0xFFUL /*<< TPI_FIFO1_ITM0_Pos*/) /*!< TPI FIFO1: ITM0 Mask */ + +/* TPI ITATBCTR0 Register Definitions */ +#define TPI_ITATBCTR0_ATREADY_Pos 0U /*!< TPI ITATBCTR0: ATREADY Position */ +#define TPI_ITATBCTR0_ATREADY_Msk (0x1UL /*<< TPI_ITATBCTR0_ATREADY_Pos*/) /*!< TPI ITATBCTR0: ATREADY Mask */ + +/* TPI Integration Mode Control Register Definitions */ +#define TPI_ITCTRL_Mode_Pos 0U /*!< TPI ITCTRL: Mode Position */ +#define TPI_ITCTRL_Mode_Msk (0x1UL /*<< TPI_ITCTRL_Mode_Pos*/) /*!< TPI ITCTRL: Mode Mask */ + +/* TPI DEVID Register Definitions */ +#define TPI_DEVID_NRZVALID_Pos 11U /*!< TPI DEVID: NRZVALID Position */ +#define TPI_DEVID_NRZVALID_Msk (0x1UL << TPI_DEVID_NRZVALID_Pos) /*!< TPI DEVID: NRZVALID Mask */ + +#define TPI_DEVID_MANCVALID_Pos 10U /*!< TPI DEVID: MANCVALID Position */ +#define TPI_DEVID_MANCVALID_Msk (0x1UL << TPI_DEVID_MANCVALID_Pos) /*!< TPI DEVID: MANCVALID Mask */ + +#define TPI_DEVID_PTINVALID_Pos 9U /*!< TPI DEVID: PTINVALID Position */ +#define TPI_DEVID_PTINVALID_Msk (0x1UL << TPI_DEVID_PTINVALID_Pos) /*!< TPI DEVID: PTINVALID Mask */ + +#define TPI_DEVID_MinBufSz_Pos 6U /*!< TPI DEVID: MinBufSz Position */ +#define TPI_DEVID_MinBufSz_Msk (0x7UL << TPI_DEVID_MinBufSz_Pos) /*!< TPI DEVID: MinBufSz Mask */ + +#define TPI_DEVID_AsynClkIn_Pos 5U /*!< TPI DEVID: AsynClkIn Position */ +#define TPI_DEVID_AsynClkIn_Msk (0x1UL << TPI_DEVID_AsynClkIn_Pos) /*!< TPI DEVID: AsynClkIn Mask */ + +#define TPI_DEVID_NrTraceInput_Pos 0U /*!< TPI DEVID: NrTraceInput Position */ +#define TPI_DEVID_NrTraceInput_Msk (0x1FUL /*<< TPI_DEVID_NrTraceInput_Pos*/) /*!< TPI DEVID: NrTraceInput Mask */ + +/* TPI DEVTYPE Register Definitions */ +#define TPI_DEVTYPE_MajorType_Pos 4U /*!< TPI DEVTYPE: MajorType Position */ +#define TPI_DEVTYPE_MajorType_Msk (0xFUL << TPI_DEVTYPE_MajorType_Pos) /*!< TPI DEVTYPE: MajorType Mask */ + +#define TPI_DEVTYPE_SubType_Pos 0U /*!< TPI DEVTYPE: SubType Position */ +#define TPI_DEVTYPE_SubType_Msk (0xFUL /*<< TPI_DEVTYPE_SubType_Pos*/) /*!< TPI DEVTYPE: SubType Mask */ + +/*@}*/ /* end of group CMSIS_TPI */ + + +#if (__MPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_MPU Memory Protection Unit (MPU) + \brief Type definitions for the Memory Protection Unit (MPU) + @{ + */ + +/** + \brief Structure type to access the Memory Protection Unit (MPU). + */ +typedef struct +{ + __IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ + __IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ + __IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ + __IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ + __IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ + __IOM uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ + __IOM uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ + __IOM uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ + __IOM uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ + __IOM uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register Definitions */ +#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register Definitions */ +#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register Definitions */ +#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register Definitions */ +#define MPU_RBAR_ADDR_Pos 5U /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register Definitions */ +#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */ +#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */ + +#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */ +#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */ + +#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */ +#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */ + +#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */ +#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */ + +#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */ +#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */ + +#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */ +#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */ + +#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */ +#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */ + +#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@} end of group CMSIS_MPU */ +#endif + + +#if (__FPU_PRESENT == 1U) +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_FPU Floating Point Unit (FPU) + \brief Type definitions for the Floating Point Unit (FPU) + @{ + */ + +/** + \brief Structure type to access the Floating Point Unit (FPU). + */ +typedef struct +{ + uint32_t RESERVED0[1U]; + __IOM uint32_t FPCCR; /*!< Offset: 0x004 (R/W) Floating-Point Context Control Register */ + __IOM uint32_t FPCAR; /*!< Offset: 0x008 (R/W) Floating-Point Context Address Register */ + __IOM uint32_t FPDSCR; /*!< Offset: 0x00C (R/W) Floating-Point Default Status Control Register */ + __IM uint32_t MVFR0; /*!< Offset: 0x010 (R/ ) Media and FP Feature Register 0 */ + __IM uint32_t MVFR1; /*!< Offset: 0x014 (R/ ) Media and FP Feature Register 1 */ +} FPU_Type; + +/* Floating-Point Context Control Register Definitions */ +#define FPU_FPCCR_ASPEN_Pos 31U /*!< FPCCR: ASPEN bit Position */ +#define FPU_FPCCR_ASPEN_Msk (1UL << FPU_FPCCR_ASPEN_Pos) /*!< FPCCR: ASPEN bit Mask */ + +#define FPU_FPCCR_LSPEN_Pos 30U /*!< FPCCR: LSPEN Position */ +#define FPU_FPCCR_LSPEN_Msk (1UL << FPU_FPCCR_LSPEN_Pos) /*!< FPCCR: LSPEN bit Mask */ + +#define FPU_FPCCR_MONRDY_Pos 8U /*!< FPCCR: MONRDY Position */ +#define FPU_FPCCR_MONRDY_Msk (1UL << FPU_FPCCR_MONRDY_Pos) /*!< FPCCR: MONRDY bit Mask */ + +#define FPU_FPCCR_BFRDY_Pos 6U /*!< FPCCR: BFRDY Position */ +#define FPU_FPCCR_BFRDY_Msk (1UL << FPU_FPCCR_BFRDY_Pos) /*!< FPCCR: BFRDY bit Mask */ + +#define FPU_FPCCR_MMRDY_Pos 5U /*!< FPCCR: MMRDY Position */ +#define FPU_FPCCR_MMRDY_Msk (1UL << FPU_FPCCR_MMRDY_Pos) /*!< FPCCR: MMRDY bit Mask */ + +#define FPU_FPCCR_HFRDY_Pos 4U /*!< FPCCR: HFRDY Position */ +#define FPU_FPCCR_HFRDY_Msk (1UL << FPU_FPCCR_HFRDY_Pos) /*!< FPCCR: HFRDY bit Mask */ + +#define FPU_FPCCR_THREAD_Pos 3U /*!< FPCCR: processor mode bit Position */ +#define FPU_FPCCR_THREAD_Msk (1UL << FPU_FPCCR_THREAD_Pos) /*!< FPCCR: processor mode active bit Mask */ + +#define FPU_FPCCR_USER_Pos 1U /*!< FPCCR: privilege level bit Position */ +#define FPU_FPCCR_USER_Msk (1UL << FPU_FPCCR_USER_Pos) /*!< FPCCR: privilege level bit Mask */ + +#define FPU_FPCCR_LSPACT_Pos 0U /*!< FPCCR: Lazy state preservation active bit Position */ +#define FPU_FPCCR_LSPACT_Msk (1UL /*<< FPU_FPCCR_LSPACT_Pos*/) /*!< FPCCR: Lazy state preservation active bit Mask */ + +/* Floating-Point Context Address Register Definitions */ +#define FPU_FPCAR_ADDRESS_Pos 3U /*!< FPCAR: ADDRESS bit Position */ +#define FPU_FPCAR_ADDRESS_Msk (0x1FFFFFFFUL << FPU_FPCAR_ADDRESS_Pos) /*!< FPCAR: ADDRESS bit Mask */ + +/* Floating-Point Default Status Control Register Definitions */ +#define FPU_FPDSCR_AHP_Pos 26U /*!< FPDSCR: AHP bit Position */ +#define FPU_FPDSCR_AHP_Msk (1UL << FPU_FPDSCR_AHP_Pos) /*!< FPDSCR: AHP bit Mask */ + +#define FPU_FPDSCR_DN_Pos 25U /*!< FPDSCR: DN bit Position */ +#define FPU_FPDSCR_DN_Msk (1UL << FPU_FPDSCR_DN_Pos) /*!< FPDSCR: DN bit Mask */ + +#define FPU_FPDSCR_FZ_Pos 24U /*!< FPDSCR: FZ bit Position */ +#define FPU_FPDSCR_FZ_Msk (1UL << FPU_FPDSCR_FZ_Pos) /*!< FPDSCR: FZ bit Mask */ + +#define FPU_FPDSCR_RMode_Pos 22U /*!< FPDSCR: RMode bit Position */ +#define FPU_FPDSCR_RMode_Msk (3UL << FPU_FPDSCR_RMode_Pos) /*!< FPDSCR: RMode bit Mask */ + +/* Media and FP Feature Register 0 Definitions */ +#define FPU_MVFR0_FP_rounding_modes_Pos 28U /*!< MVFR0: FP rounding modes bits Position */ +#define FPU_MVFR0_FP_rounding_modes_Msk (0xFUL << FPU_MVFR0_FP_rounding_modes_Pos) /*!< MVFR0: FP rounding modes bits Mask */ + +#define FPU_MVFR0_Short_vectors_Pos 24U /*!< MVFR0: Short vectors bits Position */ +#define FPU_MVFR0_Short_vectors_Msk (0xFUL << FPU_MVFR0_Short_vectors_Pos) /*!< MVFR0: Short vectors bits Mask */ + +#define FPU_MVFR0_Square_root_Pos 20U /*!< MVFR0: Square root bits Position */ +#define FPU_MVFR0_Square_root_Msk (0xFUL << FPU_MVFR0_Square_root_Pos) /*!< MVFR0: Square root bits Mask */ + +#define FPU_MVFR0_Divide_Pos 16U /*!< MVFR0: Divide bits Position */ +#define FPU_MVFR0_Divide_Msk (0xFUL << FPU_MVFR0_Divide_Pos) /*!< MVFR0: Divide bits Mask */ + +#define FPU_MVFR0_FP_excep_trapping_Pos 12U /*!< MVFR0: FP exception trapping bits Position */ +#define FPU_MVFR0_FP_excep_trapping_Msk (0xFUL << FPU_MVFR0_FP_excep_trapping_Pos) /*!< MVFR0: FP exception trapping bits Mask */ + +#define FPU_MVFR0_Double_precision_Pos 8U /*!< MVFR0: Double-precision bits Position */ +#define FPU_MVFR0_Double_precision_Msk (0xFUL << FPU_MVFR0_Double_precision_Pos) /*!< MVFR0: Double-precision bits Mask */ + +#define FPU_MVFR0_Single_precision_Pos 4U /*!< MVFR0: Single-precision bits Position */ +#define FPU_MVFR0_Single_precision_Msk (0xFUL << FPU_MVFR0_Single_precision_Pos) /*!< MVFR0: Single-precision bits Mask */ + +#define FPU_MVFR0_A_SIMD_registers_Pos 0U /*!< MVFR0: A_SIMD registers bits Position */ +#define FPU_MVFR0_A_SIMD_registers_Msk (0xFUL /*<< FPU_MVFR0_A_SIMD_registers_Pos*/) /*!< MVFR0: A_SIMD registers bits Mask */ + +/* Media and FP Feature Register 1 Definitions */ +#define FPU_MVFR1_FP_fused_MAC_Pos 28U /*!< MVFR1: FP fused MAC bits Position */ +#define FPU_MVFR1_FP_fused_MAC_Msk (0xFUL << FPU_MVFR1_FP_fused_MAC_Pos) /*!< MVFR1: FP fused MAC bits Mask */ + +#define FPU_MVFR1_FP_HPFP_Pos 24U /*!< MVFR1: FP HPFP bits Position */ +#define FPU_MVFR1_FP_HPFP_Msk (0xFUL << FPU_MVFR1_FP_HPFP_Pos) /*!< MVFR1: FP HPFP bits Mask */ + +#define FPU_MVFR1_D_NaN_mode_Pos 4U /*!< MVFR1: D_NaN mode bits Position */ +#define FPU_MVFR1_D_NaN_mode_Msk (0xFUL << FPU_MVFR1_D_NaN_mode_Pos) /*!< MVFR1: D_NaN mode bits Mask */ + +#define FPU_MVFR1_FtZ_mode_Pos 0U /*!< MVFR1: FtZ mode bits Position */ +#define FPU_MVFR1_FtZ_mode_Msk (0xFUL /*<< FPU_MVFR1_FtZ_mode_Pos*/) /*!< MVFR1: FtZ mode bits Mask */ + +/*@} end of group CMSIS_FPU */ +#endif + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug) + \brief Type definitions for the Core Debug Registers + @{ + */ + +/** + \brief Structure type to access the Core Debug Register (CoreDebug). + */ +typedef struct +{ + __IOM uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ + __OM uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ + __IOM uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ + __IOM uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register Definitions */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16U /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25U /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24U /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19U /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18U /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17U /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16U /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5U /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3U /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2U /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1U /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0U /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL /*<< CoreDebug_DHCSR_C_DEBUGEN_Pos*/) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register Definitions */ +#define CoreDebug_DCRSR_REGWnR_Pos 16U /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0U /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL /*<< CoreDebug_DCRSR_REGSEL_Pos*/) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register Definitions */ +#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19U /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18U /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17U /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16U /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10U /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9U /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8U /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7U /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6U /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5U /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4U /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0U /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL /*<< CoreDebug_DEMCR_VC_CORERESET_Pos*/) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ + +/*@} end of group CMSIS_CoreDebug */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_bitfield Core register bit field macros + \brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk). + @{ + */ + +/** + \brief Mask and shift a bit field value for use in a register bit range. + \param[in] field Name of the register bit field. + \param[in] value Value of the bit field. + \return Masked and shifted value. +*/ +#define _VAL2FLD(field, value) ((value << field ## _Pos) & field ## _Msk) + +/** + \brief Mask and shift a register value to extract a bit filed value. + \param[in] field Name of the register bit field. + \param[in] value Value of register. + \return Masked and shifted bit field value. +*/ +#define _FLD2VAL(field, value) ((value & field ## _Msk) >> field ## _Pos) + +/*@} end of group CMSIS_core_bitfield */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Cortex-M4 Hardware */ +#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ +#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ +#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */ +#define TPI_BASE (0xE0040000UL) /*!< TPI Base Address */ +#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ + +#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */ +#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */ +#define ITM ((ITM_Type *) ITM_BASE ) /*!< ITM configuration struct */ +#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */ +#define TPI ((TPI_Type *) TPI_BASE ) /*!< TPI configuration struct */ +#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ + +#if (__MPU_PRESENT == 1U) + #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ +#endif + +#if (__FPU_PRESENT == 1U) + #define FPU_BASE (SCS_BASE + 0x0F30UL) /*!< Floating Point Unit */ + #define FPU ((FPU_Type *) FPU_BASE ) /*!< Floating Point Unit */ +#endif + +/*@} */ + + + +/******************************************************************************* + * Hardware Abstraction Layer + Core Function Interface contains: + - Core NVIC Functions + - Core SysTick Functions + - Core Debug Functions + - Core Register Access Functions + ******************************************************************************/ +/** + \defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference +*/ + + + +/* ########################## NVIC functions #################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_NVICFunctions NVIC Functions + \brief Functions that manage interrupts and exceptions via the NVIC. + @{ + */ + +/** + \brief Set Priority Grouping + \details Sets the priority grouping field using the required unlock sequence. + The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. + Only values from 0..7 are used. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8U) ); /* Insert write key and priorty group */ + SCB->AIRCR = reg_value; +} + + +/** + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t NVIC_GetPriorityGrouping(void) +{ + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); +} + + +/** + \brief Enable External Interrupt + \details Enables a device-specific interrupt in the NVIC interrupt controller. + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) +{ + NVIC->ISER[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL)); +} + + +/** + \brief Disable External Interrupt + \details Disables a device-specific interrupt in the NVIC interrupt controller. + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) +{ + NVIC->ICER[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL)); +} + + +/** + \brief Get Pending Interrupt + \details Reads the pending register in the NVIC and returns the pending bit for the specified interrupt. + \param [in] IRQn Interrupt number. + \return 0 Interrupt status is not pending. + \return 1 Interrupt status is pending. + */ +__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + return((uint32_t)(((NVIC->ISPR[(((uint32_t)(int32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); +} + + +/** + \brief Set Pending Interrupt + \details Sets the pending bit of an external interrupt. + \param [in] IRQn Interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ISPR[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL)); +} + + +/** + \brief Clear Pending Interrupt + \details Clears the pending bit of an external interrupt. + \param [in] IRQn External interrupt number. Value cannot be negative. + */ +__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ICPR[(((uint32_t)(int32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL)); +} + + +/** + \brief Get Active Interrupt + \details Reads the active register in NVIC and returns the active bit. + \param [in] IRQn Interrupt number. + \return 0 Interrupt status is not active. + \return 1 Interrupt status is active. + */ +__STATIC_INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn) +{ + return((uint32_t)(((NVIC->IABR[(((uint32_t)(int32_t)IRQn) >> 5UL)] & (1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL)); +} + + +/** + \brief Set Interrupt Priority + \details Sets the priority of an interrupt. + \note The priority cannot be set for every core interrupt. + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + */ +__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if ((int32_t)(IRQn) < 0) + { + SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } + else + { + NVIC->IP[((uint32_t)(int32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + + +/** + \brief Get Interrupt Priority + \details Reads the priority of an interrupt. + The interrupt number can be positive to specify an external (device specific) interrupt, + or negative to specify an internal (core) interrupt. + \param [in] IRQn Interrupt number. + \return Interrupt Priority. + Value is aligned automatically to the implemented priority bits of the microcontroller. + */ +__STATIC_INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn) +{ + + if ((int32_t)(IRQn) < 0) + { + return(((uint32_t)SCB->SHP[(((uint32_t)(int32_t)IRQn) & 0xFUL)-4UL] >> (8U - __NVIC_PRIO_BITS))); + } + else + { + return(((uint32_t)NVIC->IP[((uint32_t)(int32_t)IRQn)] >> (8U - __NVIC_PRIO_BITS))); + } +} + + +/** + \brief Encode Priority + \details Encodes the priority for an interrupt with the given priority group, + preemptive priority value, and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Used priority group. + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + ); +} + + +/** + \brief Decode Priority + \details Decodes an interrupt priority value with a given priority group to + preemptive priority value and subpriority value. + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + \param [in] Priority Priority value, which can be retrieved with the function \ref NVIC_GetPriority(). + \param [in] PriorityGroup Used priority group. + \param [out] pPreemptPriority Preemptive priority value (starting from 0). + \param [out] pSubPriority Subpriority value (starting from 0). + */ +__STATIC_INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* const pPreemptPriority, uint32_t* const pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + + *pPreemptPriority = (Priority >> SubPriorityBits) & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL); + *pSubPriority = (Priority ) & (uint32_t)((1UL << (SubPriorityBits )) - 1UL); +} + + +/** + \brief System Reset + \details Initiates a system reset request to reset the MCU. + */ +__STATIC_INLINE void NVIC_SystemReset(void) +{ + __DSB(); /* Ensure all outstanding memory accesses included + buffered write are completed before reset */ + SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk ); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + + for(;;) /* wait until reset */ + { + __NOP(); + } +} + +/*@} end of CMSIS_Core_NVICFunctions */ + + + +/* ################################## SysTick function ############################################ */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_SysTickFunctions SysTick Functions + \brief Functions that configure the System. + @{ + */ + +#if (__Vendor_SysTickConfig == 0U) + +/** + \brief System Tick Configuration + \details Initializes the System Timer and its interrupt, and starts the System Tick Timer. + Counter is in free running mode to generate periodic interrupts. + \param [in] ticks Number of ticks between two interrupts. + \return 0 Function succeeded. + \return 1 Function failed. + \note When the variable <b>__Vendor_SysTickConfig</b> is set to 1, then the + function <b>SysTick_Config</b> is not included. In this case, the file <b><i>device</i>.h</b> + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + { + return (1UL); /* Reload value impossible */ + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ +} + +#endif + +/*@} end of CMSIS_Core_SysTickFunctions */ + + + +/* ##################################### Debug In/Output function ########################################### */ +/** + \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_core_DebugFunctions ITM Functions + \brief Functions that access the ITM debug interface. + @{ + */ + +extern volatile int32_t ITM_RxBuffer; /*!< External variable to receive characters. */ +#define ITM_RXBUFFER_EMPTY 0x5AA55AA5U /*!< Value identifying \ref ITM_RxBuffer is ready for next character. */ + + +/** + \brief ITM Send Character + \details Transmits a character via the ITM channel 0, and + \li Just returns when no debugger is connected that has booked the output. + \li Is blocking when a debugger is connected, but the previous character sent has not been transmitted. + \param [in] ch Character to transmit. + \returns Character to transmit. + */ +__STATIC_INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if (((ITM->TCR & ITM_TCR_ITMENA_Msk) != 0UL) && /* ITM enabled */ + ((ITM->TER & 1UL ) != 0UL) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0U].u32 == 0UL) + { + __NOP(); + } + ITM->PORT[0U].u8 = (uint8_t)ch; + } + return (ch); +} + + +/** + \brief ITM Receive Character + \details Inputs a character via the external variable \ref ITM_RxBuffer. + \return Received character. + \return -1 No character pending. + */ +__STATIC_INLINE int32_t ITM_ReceiveChar (void) +{ + int32_t ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) + { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + \brief ITM Check Character + \details Checks whether a character is pending for reading in the variable \ref ITM_RxBuffer. + \return 0 No character available. + \return 1 Character available. + */ +__STATIC_INLINE int32_t ITM_CheckChar (void) +{ + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) + { + return (0); /* no character available */ + } + else + { + return (1); /* character available */ + } +} + +/*@} end of CMSIS_core_DebugFunctions */ + + + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CM4_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ \ No newline at end of file diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/STM32F4xx/Include/core_cmFunc.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/STM32F4xx/Include/core_cmFunc.h new file mode 100644 index 000000000..01c26e1cf --- /dev/null +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/STM32F4xx/Include/core_cmFunc.h @@ -0,0 +1,87 @@ +/**************************************************************************//** + * @file core_cmFunc.h + * @brief CMSIS Cortex-M Core Function Access Header File + * @version V4.30 + * @date 20. October 2015 + ******************************************************************************/ +/* Copyright (c) 2009 - 2015 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CMFUNC_H +#define __CORE_CMFUNC_H + + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ +*/ + +/*------------------ RealView Compiler -----------------*/ +#if defined ( __CC_ARM ) + #include "cmsis_armcc.h" + +/*------------------ ARM Compiler V6 -------------------*/ +#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #include "cmsis_armcc_V6.h" + +/*------------------ GNU Compiler ----------------------*/ +#elif defined ( __GNUC__ ) + #include "cmsis_gcc.h" + +/*------------------ ICC Compiler ----------------------*/ +#elif defined ( __ICCARM__ ) + #include <cmsis_iar.h> + +/*------------------ TI CCS Compiler -------------------*/ +#elif defined ( __TMS470__ ) + #include <cmsis_ccs.h> + +/*------------------ TASKING Compiler ------------------*/ +#elif defined ( __TASKING__ ) + /* + * The CMSIS functions have been implemented as intrinsics in the compiler. + * Please use "carm -?i" to get an up to date list of all intrinsics, + * Including the CMSIS ones. + */ + +/*------------------ COSMIC Compiler -------------------*/ +#elif defined ( __CSMC__ ) + #include <cmsis_csm.h> + +#endif + +/*@} end of CMSIS_Core_RegAccFunctions */ + +#endif /* __CORE_CMFUNC_H */ \ No newline at end of file diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/STM32F4xx/Include/core_cmInstr.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/STM32F4xx/Include/core_cmInstr.h new file mode 100644 index 000000000..b973d9bfd --- /dev/null +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/STM32F4xx/Include/core_cmInstr.h @@ -0,0 +1,87 @@ +/**************************************************************************//** + * @file core_cmInstr.h + * @brief CMSIS Cortex-M Core Instruction Access Header File + * @version V4.30 + * @date 20. October 2015 + ******************************************************************************/ +/* Copyright (c) 2009 - 2015 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CMINSTR_H +#define __CORE_CMINSTR_H + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +/*------------------ RealView Compiler -----------------*/ +#if defined ( __CC_ARM ) + #include "cmsis_armcc.h" + +/*------------------ ARM Compiler V6 -------------------*/ +#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #include "cmsis_armcc_V6.h" + +/*------------------ GNU Compiler ----------------------*/ +#elif defined ( __GNUC__ ) + #include "cmsis_gcc.h" + +/*------------------ ICC Compiler ----------------------*/ +#elif defined ( __ICCARM__ ) + #include <cmsis_iar.h> + +/*------------------ TI CCS Compiler -------------------*/ +#elif defined ( __TMS470__ ) + #include <cmsis_ccs.h> + +/*------------------ TASKING Compiler ------------------*/ +#elif defined ( __TASKING__ ) + /* + * The CMSIS functions have been implemented as intrinsics in the compiler. + * Please use "carm -?i" to get an up to date list of all intrinsics, + * Including the CMSIS ones. + */ + +/*------------------ COSMIC Compiler -------------------*/ +#elif defined ( __CSMC__ ) + #include <cmsis_csm.h> + +#endif + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + +#endif /* __CORE_CMINSTR_H */ \ No newline at end of file diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/STM32F4xx/Include/core_cmSimd.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/STM32F4xx/Include/core_cmSimd.h new file mode 100644 index 000000000..4ef5d4ef9 --- /dev/null +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/lib/CMSIS/STM32F4xx/Include/core_cmSimd.h @@ -0,0 +1,96 @@ +/**************************************************************************//** + * @file core_cmSimd.h + * @brief CMSIS Cortex-M SIMD Header File + * @version V4.30 + * @date 20. October 2015 + ******************************************************************************/ +/* Copyright (c) 2009 - 2015 ARM LIMITED + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of ARM nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + * + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + ---------------------------------------------------------------------------*/ + + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CORE_CMSIMD_H +#define __CORE_CMSIMD_H + +#ifdef __cplusplus + extern "C" { +#endif + + +/* ################### Compiler specific Intrinsics ########################### */ +/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics + Access to dedicated SIMD instructions + @{ +*/ + +/*------------------ RealView Compiler -----------------*/ +#if defined ( __CC_ARM ) + #include "cmsis_armcc.h" + +/*------------------ ARM Compiler V6 -------------------*/ +#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #include "cmsis_armcc_V6.h" + +/*------------------ GNU Compiler ----------------------*/ +#elif defined ( __GNUC__ ) + #include "cmsis_gcc.h" + +/*------------------ ICC Compiler ----------------------*/ +#elif defined ( __ICCARM__ ) + #include <cmsis_iar.h> + +/*------------------ TI CCS Compiler -------------------*/ +#elif defined ( __TMS470__ ) + #include <cmsis_ccs.h> + +/*------------------ TASKING Compiler ------------------*/ +#elif defined ( __TASKING__ ) + /* + * The CMSIS functions have been implemented as intrinsics in the compiler. + * Please use "carm -?i" to get an up to date list of all intrinsics, + * Including the CMSIS ones. + */ + +/*------------------ COSMIC Compiler -------------------*/ +#elif defined ( __CSMC__ ) + #include <cmsis_csm.h> + +#endif + +/*@} end of group CMSIS_SIMD_intrinsics */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CMSIMD_H */ \ No newline at end of file diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/interface/bootloader.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/interface/bootloader.h index cb993271e..41acf9f84 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/interface/bootloader.h +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/interface/bootloader.h @@ -28,6 +28,7 @@ /* ST includes */ #include "stm32f4xx.h" +#include "stm32f4xx_syscfg.h" /** * @brief Check if memory is set after software diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/bootloader.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/bootloader.c index 57e168c9a..83f1d4c54 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/bootloader.c +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/bootloader.c @@ -52,14 +52,15 @@ * @param bl_addr The bootloader address to jump to */ static void branch_to_bootloader(uint32_t r0, uint32_t bl_addr){ - __asm volatile ( - "ldr r2, [r1, #0]\n" // get address of stack pointer - "msr msp, r2\n" // get stack pointer - "ldr r2, [r1, #4]\n" // get address of destination - "bx r2\n" // branch to bootloader - ); - //unreachable code - while(1); + //COMMENTED FIRMWARE + // __asm volatile ( + // "ldr r2, [r1, #0]\n" // get address of stack pointer + // "msr msp, r2\n" // get stack pointer + // "ldr r2, [r1, #4]\n" // get address of destination + // "bx r2\n" // branch to bootloader + // ); + // //unreachable code + // while(1); } void check_enter_bootloader(){ diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/controller.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/controller.c index 58d97da17..5e2ec0f37 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/controller.c +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/controller.c @@ -40,11 +40,12 @@ void controllerInit(ControllerType controller) { currentController = DEFAULT_CONTROLLER; } - ControllerType forcedController = CONTROLLER_NAME; - if (forcedController != ControllerTypeAny) { - DEBUG_PRINT("Controller type forced\n"); - currentController = forcedController; - } + //COMMENTED FIRMWARE + // ControllerType forcedController = CONTROLLER_NAME; + // if (forcedController != ControllerTypeAny) { + // DEBUG_PRINT("Controller type forced\n"); + // currentController = forcedController; + // } initController(); diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/crtpservice.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/crtpservice.c index d864f232e..720d7de7e 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/crtpservice.c +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/crtpservice.c @@ -35,6 +35,7 @@ #include "crtpservice.h" #include "static_mem.h" #include "param.h" +#include "config.h" typedef enum { diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/estimator.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/estimator.c index cad7e09a7..fb2df521d 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/estimator.c +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/estimator.c @@ -103,11 +103,12 @@ void stateEstimatorSwitchTo(StateEstimatorType estimator) { newEstimator = DEFAULT_ESTIMATOR; } - StateEstimatorType forcedEstimator = ESTIMATOR_NAME; - if (forcedEstimator != anyEstimator) { - DEBUG_PRINT("Estimator type forced\n"); - newEstimator = forcedEstimator; - } + //COMMENTED FIRMWARE + // StateEstimatorType forcedEstimator = ESTIMATOR_NAME; + // if (forcedEstimator != anyEstimator) { + // DEBUG_PRINT("Estimator type forced\n"); + // newEstimator = forcedEstimator; + // } initEstimator(newEstimator); StateEstimatorType previousEstimator = currentEstimator; diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/stabilizer.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/stabilizer.c index 060da59fd..158edb2cb 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/stabilizer.c +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/stabilizer.c @@ -213,7 +213,9 @@ static void stabilizerTask(void* param) { uint32_t tick; uint32_t lastWakeTime; - vTaskSetApplicationTaskTag(0, (void*)TASK_STABILIZER_ID_NBR); + + //CHANGED FIRMWARE + vTaskSetApplicationTaskTag(0, (void*)3); //Wait for the system to be fully started to start stabilization loop systemWaitStart(); diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/system.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/system.c index 84c8c7950..6531dc825 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/system.c +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/modules/src/system.c @@ -115,18 +115,19 @@ void systemInit(void) crtpInit(); consoleInit(); - DEBUG_PRINT("----------------------------\n"); - DEBUG_PRINT("%s is up and running!\n", platformConfigGetDeviceTypeName()); - - if (V_PRODUCTION_RELEASE) { - DEBUG_PRINT("Production release %s\n", V_STAG); - } else { - DEBUG_PRINT("Build %s:%s (%s) %s\n", V_SLOCAL_REVISION, - V_SREVISION, V_STAG, (V_MODIFIED)?"MODIFIED":"CLEAN"); - } - DEBUG_PRINT("I am 0x%08X%08X%08X and I have %dKB of flash!\n", - *((int*)(MCU_ID_ADDRESS+8)), *((int*)(MCU_ID_ADDRESS+4)), - *((int*)(MCU_ID_ADDRESS+0)), *((short*)(MCU_FLASH_SIZE_ADDRESS))); + //COMMENTED FIRMWARE + // DEBUG_PRINT("----------------------------\n"); + // DEBUG_PRINT("%s is up and running!\n", platformConfigGetDeviceTypeName()); + + // if (V_PRODUCTION_RELEASE) { + // DEBUG_PRINT("Production release %s\n", V_STAG); + // } else { + // DEBUG_PRINT("Build %s:%s (%s) %s\n", V_SLOCAL_REVISION, + // V_SREVISION, V_STAG, (V_MODIFIED)?"MODIFIED":"CLEAN"); + // } + // DEBUG_PRINT("I am 0x%08X%08X%08X and I have %dKB of flash!\n", + // *((int*)(MCU_ID_ADDRESS+8)), *((int*)(MCU_ID_ADDRESS+4)), + // *((int*)(MCU_ID_ADDRESS+0)), *((short*)(MCU_FLASH_SIZE_ADDRESS))); configblockInit(); storageInit(); @@ -332,7 +333,8 @@ bool systemIsArmed() void vApplicationIdleHook( void ) { - static uint32_t tickOfLatestWatchdogReset = M2T(0); + //COMMENTED FIRMWARE + static uint32_t tickOfLatestWatchdogReset = 0;//M2T(0); portTickType tickCount = xTaskGetTickCount(); @@ -360,22 +362,23 @@ PARAM_GROUP_START(cpu) /** * @brief Size in kB of the device flash memory */ -PARAM_ADD_CORE(PARAM_UINT16 | PARAM_RONLY, flash, MCU_FLASH_SIZE_ADDRESS) - -/** - * @brief Byte `0 - 3` of device unique id - */ -PARAM_ADD_CORE(PARAM_UINT32 | PARAM_RONLY, id0, MCU_ID_ADDRESS+0) - -/** - * @brief Byte `4 - 7` of device unique id - */ -PARAM_ADD_CORE(PARAM_UINT32 | PARAM_RONLY, id1, MCU_ID_ADDRESS+4) - -/** - * @brief Byte `8 - 11` of device unique id - */ -PARAM_ADD_CORE(PARAM_UINT32 | PARAM_RONLY, id2, MCU_ID_ADDRESS+8) +//COMMENTED FIRMWARE +// PARAM_ADD_CORE(PARAM_UINT16 | PARAM_RONLY, flash, MCU_FLASH_SIZE_ADDRESS) + +// /** +// * @brief Byte `0 - 3` of device unique id +// */ +// PARAM_ADD_CORE(PARAM_UINT32 | PARAM_RONLY, id0, MCU_ID_ADDRESS+0) + +// /** +// * @brief Byte `4 - 7` of device unique id +// */ +// PARAM_ADD_CORE(PARAM_UINT32 | PARAM_RONLY, id1, MCU_ID_ADDRESS+4) + +// /** +// * @brief Byte `8 - 11` of device unique id +// */ +// PARAM_ADD_CORE(PARAM_UINT32 | PARAM_RONLY, id2, MCU_ID_ADDRESS+8) PARAM_GROUP_STOP(cpu) diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/Makefile b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/Makefile index fefa38311..d8930a3e0 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/Makefile +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/Makefile @@ -20,6 +20,18 @@ CFLAGS = -mcpu=cortex-a72 \ -I$(INCLUDEPATH11) \ -I$(INCLUDEPATH12) \ -I$(INCLUDEPATH13) \ + -I$(INCLUDEPATH14) \ + -I$(INCLUDEPATH15) \ + -I$(INCLUDEPATH16) \ + -I$(INCLUDEPATH17) \ + -I$(INCLUDEPATH18) \ + -I$(INCLUDEPATH19) \ + -I$(INCLUDEPATH20) \ + -I$(INCLUDEPATH21) \ + -I$(INCLUDEPATH22) \ + -I$(INCLUDEPATH23) \ + -I$(INCLUDEPATH24) \ + -I$(INCLUDEPATH25) \ -D__LINUX__ BUILTIN_OPS = -fno-builtin-memset ASMFLAGS = -mcpu=cortex-a72 @@ -37,6 +49,19 @@ INCLUDEPATH10 ?= ../utils/src/ INCLUDEPATH11 ?= ../modules/interface/ INCLUDEPATH12 ?= ../lib/CMSIS/Core/CM3/ INCLUDEPATH13 ?= ../lib/CMSIS/STM32F4xx/Include/ +INCLUDEPATH14 ?= ../lib/STM32F4xx_StdPeriph_Driver/inc/ +INCLUDEPATH15 ?= ../deck/interface/ +INCLUDEPATH16 ?= ../utils/src/lighthouse +INCLUDEPATH17 ?= ../drivers/bosch/interface +INCLUDEPATH18 ?= ../lib/vl53l1/core/inc +INCLUDEPATH19 ?= ../lib/vl53l1/ +INCLUDEPATH20 ?= ../lib/STM32_USB_OTG_Driver/inc/ +INCLUDEPATH21 ?= ../lib/STM32_USB_Device_Library/Core/inc/ +INCLUDEPATH22 ?= ../platform +INCLUDEPATH23 ?= ../modules/interface/lighthouse +INCLUDEPATH24 ?= ../deck/drivers/interface +INCLUDEPATH25 ?= ../modules/interface/kalman_core + PLATFORM ?= cf2 @@ -79,7 +104,7 @@ OBJS += build/platform_utils.o build/platform_$(PLATFORM).o #build/platform_$(CP # Drivers PRO += build/exti.o build/nvic.o build/motors.o -OBJS += build/led.o build/mpu6500.o build/i2cdev.o build/ws2812_cf2.o build/lps25h.o build/i2c_drv.o +OBJS += build/led.o build/mpu6500.o build/i2c_drv.o build/i2cdev.o build/ws2812_cf2.o build/lps25h.o OBJS += build/ak8963.o build/eeprom.o build/maxsonar.o build/piezo.o OBJS += build/uart_syslink.o build/swd.o build/uart1.o build/uart2.o build/watchdog.o OBJS += build/cppm.o @@ -92,13 +117,13 @@ OBJS += build/amg8833.o build/lh_bootloader.o OBJS += build/usb_bsp.o build/usblink.o build/usbd_desc.o build/usb.o # Hal -OBJS += build/crtp.o build/ledseq.o build/freeRTOSdebug.o build/buzzer.o -OBJS += build/pm_$(CPU).o build/syslink.o build/radiolink.o build/ow_syslink.o build/ow_common.o build/proximity.o build/usec_time.o +OBJS += build/ledseq.o build/freeRTOSdebug.o build/buzzer.o build/crtp.o +OBJS += build/syslink.o build/radiolink.o build/ow_syslink.o build/ow_common.o build/proximity.o build/usec_time.o #build/pm_$(CPU).o OBJS += build/sensors.o OBJS += build/storage.o # libdw -OBJS += build/libdw1000.o build/libdw1000Spi.o +#OBJS += build/libdw1000.o build/libdw1000Spi.o # vl53l1 lib OBJS += build/vl53l1_api_core.o build/vl53l1_api.o build/vl53l1_core.o build/vl53l1_silicon_core.o build/vl53l1_api_strings.o @@ -122,8 +147,8 @@ OBJS += build/estimator.o build/estimator_complementary.o OBJS += build/controller.o build/controller_pid.o build/controller_mellinger.o build/controller_indi.o OBJS += build/student_attitude_controller.o build/student_pid.o OBJS += build/controller_student.o -OBJS += build/power_distribution_$(POWER_DISTRIBUTION).o -OBJS += build/collision_avoidance.o health.o +OBJS += build/power_distribution_stock.o +OBJS += build/collision_avoidance.o #health.o # Kalman estimator OBJS += build/estimator_kalman.o build/kalman_core.o build/kalman_supervisor.o @@ -264,9 +289,6 @@ build/%.o : ../../../Source/portable/GCC/ARM_CA72_64_BIT/%.c build/%.o : ../../../Source/portable/GCC/ARM_CA72_64_BIT/%.S $(CROSS)as $(ASMFLAGS) -c -o $@ $< -build/%.o : ../../../Source/portable/MemMang/%.c - $(CROSS)gcc $(CFLAGS) -c -o $@ $< - ##########Crazyflie files build/%.o : ../deck/api/%.c @@ -294,7 +316,7 @@ build/%.o : ../init/%.c $(CROSS)gcc $(CFLAGS) -c -o $@ $< -build/%.o : ../modules/src%.c +build/%.o : ../modules/src/%.c $(CROSS)gcc $(CFLAGS) -c -o $@ $< build/%.o : ../modules/src/kalman_core/%.c @@ -315,6 +337,9 @@ build/%.o : ../utils/src/lighthouse/%.c build/%.o : ../utils/src/tdoa/%.c $(CROSS)gcc $(CFLAGS) -c -o $@ $< +build/%.o : ../lib/vl53l1/core/src/%.c + $(CROSS)gcc $(CFLAGS) -c -o $@ $< + diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ak8963.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ak8963.o new file mode 100644 index 0000000000000000000000000000000000000000..af5b85f1ac43be7b205048a23e5fe5409240c4e2 GIT binary patch literal 2344 zcmb`J&1(}u6u>7<wXGmjPeKolAech4BoW1mhm@qofY#DR&??wXGBK;kZrGjH_M$!b z2Z;Uy9z1yTq$i;V&mw}J^)K+_E;=uH&)K{U6srTf@4esqnD0#<E?&MkmP!d~De+oZ zi>MHp39A?TYEevz39*~L{pq+&f22o>os~G_wqX9f?07BcgWG%M|E-_b|KBzr53j!; zzo?W-=Vhj{bWPTRpwno(o-bQLD0N%Og={YjT3*L!VWaJ7)zBNElJia>Tgc_-oqR!N z+_0N9T5fh0xRaOQ$>$1Z?4ENC&d9j<{)=<4(<4t1@Uc<hhNlz!P@jxCiBM-e5r5c_ zqp^M|;u!L2%$P)(MJ^e?fIP?e67nMBw~#M09w1*wPUG1@-edd;a_~c=aXvRX%<FNV zTK)?8GsfQ`f64e4<hzW2MgAT+jq@k+&x}u*ErIcTV|)fVZ2{GpLq2UJG~z|%lJOey z9CBI*4>{z;>pVcd%;KLSUuW?zkoQ>p8{|7IUby$p&7VE(G{ng*)T_RyQLU*+mjd56 zm&yx#gsZC40tcEErORs5Yp813lB(YdtW|ckyQ19YwndkW>G^jO;Ch1GNRTy4u5PNZ z)d}veYFBSWmP3z=VHkuKT?v{BtyQIC){2T0O~!cG^vYi3);p?NDA`gA&AS_s?kYc) zmSARGETd_e`bjtxNz)yQBsdgF%P<tVCWI4hcePtLQilWCCQYj?Eu5xV9O2ZXNH~q4 z+n>hZ(EY=E#^l1$I>>4i(SC&Ij@;9vpgdtDgzzurTb4&@9G@}{xJ&!ZpEJ2oGiRQ7 zqyBHkq0y=TxE%HMmjrQOus-ltgYG?izoAW;hmRe&JOFPYK2S#k^H2Y1iX%oDmHz`b Kg#XmBa^g3VJ7bUl literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/amg8833.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/amg8833.o new file mode 100644 index 0000000000000000000000000000000000000000..2376aa95779ed0de3a03b696450abe50f484d5e8 GIT binary patch literal 4144 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 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/app_channel.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/app_channel.o new file mode 100644 index 0000000000000000000000000000000000000000..405bdb39a048848bfff405a9952f31fc3d161772 GIT binary patch literal 2776 zcmbuA&u<$=6vy9s1GK96)h2005Lv1yN&~TM^CP&IZW<u1)Y3FDQlx;I&1QnF`d8PR z;K~)T;2(%XkWj?|<rG^8aj4WwsVb;AaI~P}Mp`%^ajHxxmayQx-8b=euun|1J8wQS z@B7|7&urG-IP+#m(?B*2u0wkyDZr=u+P3MLChUiO&??=iwsfd8X0>WV*J>J+H+JVk z)n0)0PeM@nQ-@kPWHuiRK=b-hsG#fS+6Qp|uHIk!d=x78^m2W1<HM_4M<GsgJNn@o z_2i>NxgNp?HS3MpiR$kB$?Agvv)L-$-o`b(gNFWNtMs)O{}(+pifcD0k3TRE%3&8{ ze*}Mx@96p{X@;(tA0NWJ3YeF*1(k(iv)PZ@G&k4-mu>+hb}%m)t5y1T`<8y;&gzyK zw`x$?(fevYhkAd%v$1*g9<C$5PU|Tz`Cu*Ap9iQI=0yC2sl`c8&iVP@tQt_B@oIPg znxy$F=B-nn=!bin(R#{tQ!Ce(z@J|jhUVHyE#5dlwfM%%QEIkIH@$k?^)&qYHBeXX zoAxaCyMX(p*b9ml&I3$MP98T#rrvtnNaS*9J87k|#&XUv+@vrj#_~>XIh97sv6CrR z*zSrWjCeRU7K=pV;b_blv7F2pT9ISNh=-#F%|s)yS3LEuFFJcYaQ~l93-pdB6F|qm zPEAK8wLR$pit=zf=nen7z7M$;(2>_*khvTio<G0~%tv@E`8e}a%%$H6=F`lBnd$Hd z({@Mx2LpAu!c*^J|5SU~o^`1UFLvRdb>Uwkr?_S8scrfle20CfxZii-KOrX_gExxb z39s!kH<`;i_29UZet#D}ik$S<S?6`u2P>byfTuW{73r`ILq!-`f`Z5{on3K75%QLO zQMlokUVHWBwmlvJr+9uvtO&@h3THW;d!J-jWfq;MJvZ<d&5DebPv#tvur3P7h>V@T z4EeO>;<d>XgtMBm1vyRZNj&5}C9=Xv*|Z`MWk%Q{wJLb!*;s;uF%PUfWfjhGmgj66 z?_*HrbT;L(=cFSnSNPlZ6X(eOL_qO$*3M;8+4nfOSIHw>&qG+>;B9%9d7r|Em_MiR z2=f8tPq0nhnE?0ist*zY9y||o%vF6l-_)K#{il7?dvCK%aq*kD*S=y)-Pbkd>b`C> zCmnf)3H=@5!TjZUSM`U`pPH&a&7AZP`%Ap{9CKCYoh~|Q=4yTN%t>GVrW9bCxvKvK zb2ZOv0i9r-AzZkeajiw{UB~Z}(sD%F3gfMFA-rU{7K9fI1qkC=%ZRKS*z5l>4Rof| z9#uq49{<33%jw{mA~t{zoo^GLV2iNeNXVx&Bq{klm$e*buKs80Wk27${Z`U}7g<yF zKf?a!+peA^<4YVxgEZwmlU(}GOTfL1AM87&T4b2#{xS4_93L59?tecrHFpa28-Fw= YWgvpsl%aQLJNeIXpyR&V-dpwm7vnj200000 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/app_handler.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/app_handler.o new file mode 100644 index 0000000000000000000000000000000000000000..6dd74f2cc5b9b2a13d70422255f66645a2332b82 GIT binary patch literal 2224 zcmd6oOKTHR6vt08^;yA3ePI<xsnS9_B!NOB3Zt#ILY3MF3JUFXG9g1VnKE-L2^9=} zf~2_c3kbS%rwh^ILR<^F_9H0W*hQ@8B<CjA>C}xIPr3Zh{oQlVeVt4nU!S~@Oe8>B z0$xL>Cn>=9T^-+Sx+ZkPerT+|f7#HWj_7HtRo6&=ZEc-6t7~5xtM8iQ8{M$k15jH? zn%Qp&7<Q6S-;I4-tA_El=Q`9s0@Tl8!+yOBs?!=&KR>xpou+&`_7{?n-RL$q8>=5) ztZVaMk%P6oO!EKP_~_^*y?^}noIdOOMY~|RB|Yy4x+pmM)uH9U&$~tR0=wV}#}+Gr zqi2oGP$rem8tIJQZw1~EdZ~c{;znAhk#s6E{P&~M+jYT@t+*&H_GJMy{EIUUGezxS z6Kt=LBgm6V{?p1t4V2<xeyXWE@$KuL!T5x-AGw1*=6gBs!ajCTG{6drSZm$w{0hb; zlz1viX&UU2Zd>QjJJjxV9A^ja?ZC^(&*REED%pdUKovDEKNb9Z!7Am7PGH#3S0*rP zg-g(v12?=`as~L|OeLIWJ|ir9>Do#@?*xAi&?M$zB@~W#*K!3$2ZB=G!g_^=6f@=& ztqP%L?lPg#z_EmbvBI@^zw-Wj@nO_`AK-D~huJ4Ns&J|uX@l(aV7yudDdxu`e1!S2 z2*0f4k$WIyDqMZlF@-1DCz)iQ@~e5K6t3o(Rk)fb$DHm#o}EyUdGuUhgcVO%i>M-K zX+e4czK9{5vH&Az2@8zHFa#s;sYBsuV+0J__L|uCJ<ll#Ugn=g#|(G`<(JY*X|@C& zu}V>Efmkm#dRG&hY7_j}Q<NNy>WN%gS0@RgUBpH_`o(%ngE7YG+9QMLQO@Z6b&e<~ z-w#4^eIAB1I+Qab0qZ&|AEP}g=gWPVI1;!2Pdua6p4oEbe2FK}q51OnAo)FB;JyT` za$Qx`x|HE>IN&EMT?4(HTwmTl@#x)Aj#muVsH2!%S0efb#La)k{|fHNK-TE|--pt! AhyVZp literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/attitude_pid_controller.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/attitude_pid_controller.o new file mode 100644 index 0000000000000000000000000000000000000000..afa9e029952886e02031e66b1a178026c99a6c6d GIT binary patch literal 9456 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 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmi055_accel.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmi055_accel.o new file mode 100644 index 0000000000000000000000000000000000000000..adb015efdc98f5a0e053268219b16160a3b1221f GIT binary patch literal 8456 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 VwHuD@ndV#S{}$>cG5Ric^k0>jklz3R literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmi055_gyro.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmi055_gyro.o new file mode 100644 index 0000000000000000000000000000000000000000..22be17d4676a572d895b71fc48949915942fdba8 GIT binary patch literal 3008 zcmb_d-)~e!6h6DRl>Q)s+ZwSn=|Bi6tKGDPiq{YsK;^~oP*z_s>2BNGc9XVC?_MLD zKJ=oP_(&7pT>>W1__#(%6$%>TKOphJ#9b)HH>2CA8>#De?wwhNWqDC2X}>eyoSFH~ zH|MrXuf6elG!h{_BJ>$OoN1Owwi|H}O6s6?+FZPGZPTLVN+(q-mbLP}Ma9WBS$!3_ zrI%u<ZL(U5QZcndRtvzXn6!@{rr2F8vT})@8%{kX?H^lcVK;ry<I|BlWsBm1{L%54 ztRCp4E(vZaN(<m(xv1Y$vby4xPFdYtynS`e8oSd4{;yi?**;-?$3M;Vw6G3n642y8 z&;2LpIkyvebv@^M3jc$i-R*u%Ybr01U5Zfgo<%DJJw9UgM>4`67+>6j+L5>HNBvRQ ze39URu9Z;hrcrBH@0X$fry|#CH_4VQRII4;OQ;w1R11voGX=b7b*%(<+@xik7u?a; zOYT9OT_Q>@#VEfNhfb?IUO9F2+UDX{fzRce(oQ1h$YEM2|6NPs9ahq<WV6O@Xe{8Y zH0}`a>=$V4MlR##VyLgSN;c~gt<V?rO6WledIOD&tdVh#wENm<;i^T+y53b<7RnRW zdk$-y*V5vT_Mv}#Xy-la+x^&j*ZH3NtJ40d(;uzxN4>oNV`}X<Pg~;a(8AiemqL%j zI#bZi+yiJQ6;}}p75}dI4Iuk}tAmQV#tPm5Uc@TsZGrbqwNX*veFY=lx3ratAGONg zfJvM^S|mE;S#5_*pGCj4wO6Qf;oDaBAQHYAJRrk^OITY+oo0=^?!={iWg8vPHFA9$ z54OLk&rNlp_f&64)f>dP55Di9g_#E5OOc0taw|$n2YGyF8J==4@jC0c()Q?`W?k&% zH}I?g{2G`7-cq;*6qw&oxC-Qa{=TC`7qq{}Nakyoqo3bBMfpq6tNV!kVZSB5YxbKM z;rAN8r`yn1zD&y!$nVWwq#`s@J}vWipO@Fu9h4uB()I9fO4tK@x9$Pf#WD8)^M3@0 zlfrT0`0<xT|A~`tiexrBJ28{a%!{e4E4&#;93430W~VZ<h}?;pjOR>v@3@Yz6T<_; zgF|*=Xjt^8-MIlogZuY0pBNInGBh|mqAz$7^55td`nA?<-NGM|X2ZfGHyajCY8=}G z;z{RhX-ubBz&y?~ZBgrE`Okof89F~y8F9s5P;<>6QM^!+@BszmEyeqaFN8ErD_)?1 zc>E9oy$1~LRaT^oeaxqn6&F=Ljn8EUM@Gh`^KLdVL3_{A-pM-WcmY4=I@38#=9-bb zdn}io@{o!Iog2`Z`AnUtZ$6WK*Kx<@vXhR^tuN)A`CQf=o5;>jWv2D&w7zvR?WI}z z+p4Zzzz$staLwS2f9Zs8CK#OGY2=?Vcr*VCgE!Cjl&^e_nO`t?Gyi9UH}kvIJ2dLo z@6(0z&90hN`MnMNC&oGE`IN}z=e+bd&~rna(UI%SrW2lX)}usVXJR~;qlB9cCllGZ zIcMH8Jo+!8z-CB(q!vC;@-K`Hr9Yez?a+b3T|iEeYOdk?tzjhia15Su*v1o#ogvUZ zAoJ=O6iall`KKJ@){_vtfFC~d-|ip6UcO(o6QXdur0zH0m{+uZl@|OH=lz44Q22`4 zf4YI^TplJi-p%U;wcl5Xd@uKpzF+&tTx0E^NGSh5<%u!$y_$L&L9_jTs*8^4M1_s} F{{hjZSc3on literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmi088_accel.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmi088_accel.o new file mode 100644 index 0000000000000000000000000000000000000000..1443f6724a4db006f18a1c55662478f6e6f54fda GIT binary patch literal 6816 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 I?-NJ=0Wi5NSpWb4 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmi088_fifo.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmi088_fifo.o new file mode 100644 index 0000000000000000000000000000000000000000..672ea0da74bf6e7904622a04315af970c8f4cec5 GIT binary patch literal 888 zcmbVKy-ve05WX}OlnJpRv6zWgB9;>gsbwLkf-Z;&CI*y*M2XbY$T3oxcm*DTx8S*W z0yw9(8aZaErSo_9-F-g)ecasL4m=Oc@ZcM^kzoPW9Wrj|7)G!Uu$a#;$#`-9NFF#} zW@S>XNWle>WlpYxSHX*FiJr*HO6Hk-6FHgDD2P}%qhUnGiKqkg*kq!38WNQWS#+`O z?ef%ihVb+2%K6R{0QfL)l_T%}!w>s>T32j3eJ-kk(+q$%@3l-)L@72{8c*hH3G^kA z3DC4@fM&d|^OfwcxdU^88g&PImNvFx6Ly}jrA~2HoPF}R&Gsi-e}*L^v|aV*s8wq+ zwC;#?@YE&IH~qWldd)Ab`_!oJN158I8pj)e14Mi8D#dhzLtSUU^fmDjIxhW{F0{X| Gt^Wg~mpF(3 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmi088_gyro.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmi088_gyro.o new file mode 100644 index 0000000000000000000000000000000000000000..d7c69cdf22714f309721d182c16fd7273efafe3d GIT binary patch literal 4248 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 Oe}o4;t*u{S{XYPpMYnPQ literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmi160.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmi160.o new file mode 100644 index 0000000000000000000000000000000000000000..e69812c05b50ef7bb06dc94240a50c1efd45c046 GIT binary patch literal 20784 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 C0G2xd literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmm150.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmm150.o new file mode 100644 index 0000000000000000000000000000000000000000..fc920f7d714d9b8b9fd0c5f418f34c52674b6f0a GIT binary patch literal 7952 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 a->0WNrY>=qUv2(InS?ddW^1+@q5lC(m?#SX literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmp280.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmp280.o new file mode 100644 index 0000000000000000000000000000000000000000..33a3138a39484746e11ccf4e36cf6e33307072fd GIT binary patch literal 8640 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 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmp3.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bmp3.o new file mode 100644 index 0000000000000000000000000000000000000000..0736c493d60acfeae0cace63360cc371f74320ac GIT binary patch literal 8984 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 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bootloader.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bootloader.o new file mode 100644 index 0000000000000000000000000000000000000000..2a1cb6464bae0869239492bd41596092bfa15b5d GIT binary patch literal 1280 zcmbtU&ubGw6n>laM+!x>h%I{PR7BEZmffIYd+Ektb5W7B9>hc3Y$t9on<<kK+LMbH zuO2*j5sP>b@hC_@uz!L?>e-uDn_Dl&H*v-+)AgdW?7lbOeBbwWe(XNFc6}vhS)iK* zA7I?mD8No`ocp8HhY83d_j!K~UJnTP`^y0P@b2E1*=MKrkh8X9*S`Wh>HF|z0K)Gj z!|#^~BsG+uoF(?IykEUfYTs;Fn1kFx4!zEzmz7v=%jorT+1|CbU-T{bI3SaL?=fnx ze%j`cpP2&WlS$}Fj`sRF98N>EQduH}>do6^jj?tZ1+5NgGEPK9Nx8VeS+mu~jE7N6 z&`><&lq@=>V#)Ou9j`<R0gsEAx%2Z9cRV6TJhyadH0i%S<eD9Vy<rx?&RkId8?UTp zqm$W=jexA3kv@k_I-EdcDpmK2ViYhQKfnf<R(xNL-O`)}W1`K1b;_L(&TT>%(eOc? zb_C`1@ffV$S*@&8>o;i3_*RX^!A6C3nyvfV=AueY;}r55l+o#K#Uf~66#RFLbjE2r za0J~H;H(EC0H@LIf)lbh#`0;8|Huhy<*FVrJbcxEYT)MDoxyRrTfV`I)b}!@aOp4W z=(%hByu!_s@LB21V4i>r%JX0Ko~rK}g>?P92CnO;W9rxNhwUoD4}~1XC~tHA6Ns7b cE+s^nmSrc^bX^U}bDpJ7lzvGQRW$X#02ua!mH+?% literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bstdr_comm_support.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/bstdr_comm_support.o new file mode 100644 index 0000000000000000000000000000000000000000..757410f56892a75874ed2054bcc7ce12f616848c GIT binary patch literal 1736 zcmb_c&1(};5T9i0M-@@4h_*uaAd(cbB#VOSDM?MzL$nej3LcitX4@>y7jIu`Lj`-R zw~8Km5cD8e{Rcc+{|G&+c<}1cL(rMzJ^Qk3Jg5_1<~P5c`OUtseV8v5qLBzli@;mh zk0cAQHL;H~1DJtHIE-ksyr)?oXLaoZjROGN{f&38ziQDpeGMLe(IRu7HJEz=nID+^ z)P~Ke+4I2q8}D~@cs{Mx{*QX<O?{~s^?(PNCx}l&abaOzj}>p+)+_CH!>QX|OJ8m? zo!4DGo9M9ive!VwoVv$dhj*E)rwub<CR1r6W$H1TH4})E@i_5DN~b5Oq<IC^|6sJ1 z6Y%|KSc(?9(f}I%!c0S@pq&{IVLL`TxEldGhw+rsmv)dWj)V9Ug9zZV@bl;;C#ZqD zIflPGhF?LR^r?<a>h}<b=|4iA^0z4&?d;IO4*IbCXJdG%`n<+0r`>E?ez((UGj2F= zVO{0Dmd8b0?J}QR%(ZJ^6-!IGY{^<G6mI1!RwbJ&<t?bW&T6jfgJ(K5cdd+xWq0N3 zNcDY&CrBjRA*^IHeXHg+>>gY<E3j6v{ncxO@b{cf;Z{zHxsr<soJRhL!e0`22Kl23 zFV{DyQy-(#P;`zdI<(GYq<?$}2mdbxo<@FT9}K_O<aQMdpR=K_OT=)B26xvv7&V*Q zU{rk{4B8U6#TD&;fjSoBE5X5lNJhlF0e<A&@!1Rxx?LF@s%?p@xF<-`r#|xD$a8s7 z@WGq=P1FS)X{bi~Nt%CKpTb(wOyW>Y_P?i+h-H7(M*}$&E{cR5;SV84BRGFLv%z;q c3O)(ZR}?5F`%3C0g0T8U@yVm_kZQsDUt`6(*#H0l literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/buzzer.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/buzzer.o new file mode 100644 index 0000000000000000000000000000000000000000..3f8dfe2e7e83db326f66f466fa1de98d99ff2454 GIT binary patch literal 1472 zcmbtTL2DCH5T4CeZAGCf1wpZ|5Tr%3WCK042U&?)1TmuZ<iTt<FC?(pm6unjy%_&N ze}{PJLGbFIu)jl(J?YHujNQH@Cns#adEb2RoA)N0PfuSwt9c$sc<>$0SHc2J{qsC3 z(g;>y8GiWhPuG?IQyvA=*HsRs#{kjU6yO`-FCV@@ZT(a<*z0%$`OjG2SfaW&Q&#|I zq%Yd;wcERDbMNI_wV&r{GK@!=8stXVp;nI@A51<NrI?vyII=pi2S%%%pw(zK!<`^( zsm<7o8<;h>wulcxMU}AG+AiD|e$h;p;P;<-0)Otr0DSz+3m=`_xLOdilfPc@v-(x! zy^7Cr#n6XKl~tLpA>6E-QydlZ<VPVs4=^XaA`;_n2|!~aKH|0TkC^W=e~l4(2S-QR z1PRm+q27nYnv}Wc*~oIbuP2gr1_LHL87FVFZReRac?$o|a|=f$cc4~v?sw1OBj#QG zlLh+j0)2mh9)iiov5k9()|5Du%;+=@tUk05^kW-C(3?ykNb>PmXO{i`7Ze)cmEp2u z6!98Ib|K_<7V-`zG{;B?#*<o^;Gee$@~1xXe%vl;xX--%rhnzS3*=Fahqxe5cmD~C zq@V0@*C7_jvnc{b+5gVrrGFLqsuz^2EO^Cu1*<FgNPoFMaqij4sLQ4uT2w;%3UvdM OdHW+KcSXqP?*9vTynJT> literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/collision_avoidance.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/collision_avoidance.o new file mode 100644 index 0000000000000000000000000000000000000000..a566ddd75eb3b4a7f0d77ff9ac4c02a64c3d386e GIT binary patch literal 4104 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 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/comm.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/comm.o new file mode 100644 index 0000000000000000000000000000000000000000..c129151b3edd5eb3289d188584e11c4efc17b01a GIT binary patch literal 2344 zcmbuAJxmlq6vyA)p@85Q2Z%t-7Q}#&&D}*4k7@}~LPCu3pt6u<Z}Bef-JZJx;lo6% zZ7?y$4hsveu+>UqG%*&|##m7qOAVo*xafPcGcYbUvG9?(_n+UqdGozIxH^3;nMi=N z1iXfWnxp_fjvi=>OAFee4H|22>x~pV-syn7G{DAO(#o$V;4+3h`ByPu{pMT}@;e>Y zUSsY3*1Od0FO9V~b?mpna~2Zy-8Ag=fR(3Q=|SisA12`#`EF4M^qWbz*V1RLZntjs z$J?omVyL~?Z>{bW#_KQ8Q|xY<#{R&^hRKPEF=Kf0`m8bI`<_#>%T;5+4-8gvjq%Z1 z;4hRtRDn|}GuL5@fotT=+-NS7&70YrF>D8wQB;|c5#nanpq6YVN4udh+Upkh^}AVf zs_97pr0}nqr7%<6+Bi6Tq8-Q+O1zAq4W=12vlJXTgnN*5Df7G`BF>>dbtoF(f`(tw z@F@+S)o@qCS2X;ghCkBqr^so&a-H|FPPU1q*?M1U_$v+nsNvr<{JVyO<5w!C14GMD z4yUSR217;8xL&ja7J7HN4(wvt_sZ2+ZPI1a2*C+ht)S@84VKD|%e&S*o8kMYsLb>4 zL~V9pSGe+grw}Z0Nt2p!Lk9bU@*0h?FGMn4j|~vT_|?$&+^C%f;i?n&fh>&|S-rjT zOnPIyFA9eN<n%F-HYfyfdLz;dA&ASd2n{LxxX|Q=6@EhD7ZrX|;TeU?ITO01@Y6z* zqxV8a^NHSURJS4r@%7FK9^ap$CcY#%<?j}nTutHh_N6TgLGis3qF-0|8HGPnxI7C& z&lP@FXzt8#rNZoaFhdqZz9d!PdbY{jWd>%^W;U4fVF)JOHMh#t9RHyW?2AhS<=-IB zX7OKu&%#Tmo*}UTEOaj|EUJAXh_+41(I`L3=(`Od_vXCd@h^X;=!eaJSsc^7qnx__ z@%VT>i+zd7dy0~q9RHRC!pr`uPsU=XS`q;@(b$Tt9ZP)u#Nu;D1YZUGNfpK9xDwIZ QY1V&B9O#$~6h7Yn5A59EhyVZp literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/commander.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/commander.o new file mode 100644 index 0000000000000000000000000000000000000000..fcfcc0c2687c77996ab01665b090d3c00496806c GIT binary patch literal 6960 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 Q>)AW}|E-)TvNY}g11M!b{Qv*} literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/console.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/console.o new file mode 100644 index 0000000000000000000000000000000000000000..134bc8a91a2ccff588ea0985bf3a9bf5fd8b77a0 GIT binary patch literal 3728 zcmb_eTWl0n82)Dmq=3=hC<=zoHiVRhZnh0gI%s4l*oFj6Y1f1V6FOZ^*$sPXXJ$>C zny@wT2_L!!4G$O=UZjLKQ8B4f3J=ByLyQ<7AX&V;@dAial4kw?nRB{_)7>}EX7-%( zo&WOvmovMk-a6DD(lii5gKwa+6DUCai<PzIFD=*r>tT8N`?+Nu3Xg}ixh8<wk&tEP z0d_wg-Z!^Ay?ALsKlZB^g2E`|hcw9lY~XXg5vI_@nS2W@6#=g5h=uT>bHYbZK8*5q z2+Y<6FlAeKJ_}%(WVhAO?<`Nx`~FFnI6T&&<H^y`Tr<jjigy0_0}8+EEtiWe))Lun zT>}pn0AeM*se|l3IogLjZ}~inZI*eV4GOIuOk6^l&>Cnk7L3zPbzoj>1M>{pyN|Z= z+*UOkTJdv?WB$?d^mjh5wl&tb#EbaMU~Vv`-Ny{;(G3k^#FID@XXO8h%&~~)Bio>{ z!ttihG04SDqz7m+KP2{)kK&?b!VAztaZn7&br9n*PZ%MHkuS<?5o5ft2&Oo*G1luC z-*v<&M!6m$)_djh<{3OQ49g4~P$;d1-I$-l;f1!-;X2FQ+YS@Owdk)I8gA(Mp;pjN z!tI$Yp=LPTR|kbnuR-HysIOrj7SMkfpa2j$eUaDv4*LHMeSD2)CCstlb|1N&>Ok9g z{$)qN@&2=N>_?QPc=ON7J-2YJVXZzy`xe$KjJ`;xsU6IH2AHLP%dx$aFcDrV$L3MC z4}E@xdAN&fsE3AMaHd`g`l-^-8el(Y*vmRxZbo@JFX>tbakIBsy_l<xnR2<Oq&NG$ zB>J6XRZO){^%i%=L*63K)Sr2bIjC!JfAW|Ukq@fXdCbN6MKE2|lWR4CeJS)%9{U5} zjs7<`01WKkzsG1Fc;{Usmd&Q(2|JlF#<Gs#C77|VbKJ>}B~!R^;)$fk;$F^Sh8gMZ z?2dMsk*;o|-FDKQxQg!FNqD5opp&j>cMrL!I<U@wp_Ho~>Q&z`06KoE4IM41W1|m{ zm(@duwX49Fd}KA=fVd{f3yDB}wcl1>zJdz|J2+nF`vEZcOc~OUe>>lc^Vc~Z<+!jz zTOBX4I))Kwl=3#t1&-lduL|Sdt$}}pIN1^U;<Zi<MtB})8neL!U*KHL{(KGmC&bB4 zJrC#_pYPR>e^>+Gh<erhZmEHX5huU5Lue4kkzj&Ojz@WGr8o}pY{t!|SR@YHCt>?> z7|o51F{eM5O1<r#fTVjclk_0XT-QFqV%b3_neo7#%ES`_9A=s0$;^p^?qIMG7JbFZ z!#S2?11!UwWPHEFY>&Zn7-<WQ7;`<b9?W@oJ)M3hn?5)^#C3*PoF(69&w~RJ!h_+; zTx*!6?eRp`VKMt8gSg|34=}IaVJsFf8MNakndkZ^L?_r|c<K1~l*9)mf?V~da&Cg> zPxMU_=C^ViDm80S@a<f0lY;khd@JH|y$2<n?x+~_gGNKO^Iiah>UW&uDo?M5{Mj1v z=QytVy~1(g@4s;Q{y`1-r;_|8zNV=i^=YU)cX3>e%i_4oXOQE>XLDfE|DNPH-5>m) zwla#6{3|Ocz!i?G_U9$}S0(w|HRS)4<mEa(s3E_L-(S^ll;e~i`R&*%$;<cwj#D1C zNIZ{7xXk}!$&TF5e@pT$k{ye`Pt<xH;JC{F5XaTJBqUts^Fa+eXE{!Fl=BG@cPj1K zqd0p`Fek*yVJSP}u}Kdi$8FDs$f)Z=#K{Jmcs8A8_;UMyhJj|Nv~n%TvPEAw&T;<1 z?)f`U*j9Wf{}w*-=;c40vs`~29+DsNdn$T&2gemRa90Jmak3$gUAQ5es(6V5U9vEj zl_5GOo4jpSj)cDWe<2P8f3c@O<)j}K0H6Qj{*NlS;4jarZ&I;%Q(xnU<o9KKgnyC0 k^@yplBLq)*LH7tp1maM(eot1@{~`Fp27Q6r%D1ZjA3V|=_y7O^ literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/controller.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/controller.o new file mode 100644 index 0000000000000000000000000000000000000000..5e6088bd234aa7e1ccf0a4fea76c74ed23b76090 GIT binary patch literal 3816 zcmd6qPiP}`6vtnatyV2k-R^GPKXz8SODc9q!U}CsoNl+Rh1iBR3k8KVO{SYbl8KWE zbg5tj!9p)x*h3F4^rBetum?d4B8#AS6x6b3QSrFC7kjAny_xq*p1)>1dGM9wz4!UO z-}m=s^2@K2x2ICmk*+RK)&-wIJ5v<kw<p@M<%bsZf)BR<ti5~D?Eat;{V@W7Ic%ZE zEepBP51VkpI(QI;k0CO+|0s@i<Lg5l{{_dt?(g3Gpohl0{qc_Td#wYdKiCIv7Nd|k zT>o<SFbcOGE_UsnM7`w*>_G&sz+3Cz<JwynQNN#jarsXJUfIW<ZWGT(ti7MG7aDIy ztb>P(6T64&Uwwq*{m(&jf#$q}d<FIXI668*>*5$p&d+5Q=2NMug>mD0y;QwnT&f$f zONC)0?^He4DVJ^cajctjsy5Z9XRnci*X(i`t8LfM0A}Z|%~H7NH41jsWBNaKGn13! zMr>y8x{-05a=w@=RgG20HN2v2OpMfAXSGzu$jui^o}Kp^u5FB&$&q9{F=i%`Ml9!6 zMlgyG4-+>N28|@*$ru0qn(?!O6Y%>{r>bbj9SRV|zfKlKCEcF%0j+Y}qJTS8v#0z# zj33v>eS}@Mc{`#$AJNnS0{!Fsvai$TJ7Q)OdPEk4<LI6i_otUDQq21}H`u?<Jg)Io z=4s~V*{?CLajtgodzdS29`fCt5dKLB|1^Yu6T<I@@LxmtUm^T7ZiP<$KOe$h4&mt# zo(<uR5WX40p?%z#c^F!Qp#tO^u8U{MWa}UjMbnLH-YYrPI^3{DMdoJB7F8L$?uk@{ zGqyLEtH|2fYRQA_Oltn>L@GN!J-s-U$z~?5rlztqt?rcVbi>1Q!UenLma5*WP)nBz z{`B@mAkh{_B4)JCPi<a{YqMKiXwaFfO(&$y^iSq?V|+ks^O$N=I~?XG@$-}4c@<yK zxY~1iJ)Iw9#OeQvvH=cGX<U6jb^SQk>-tv&m-?e2`Y$op_0vK}T_d54;8K5yx!(U9 z%ys>Dg^twU2&um<>gBrI%=LBO7xnlY(K31<AUlWmIXIhxoX#yWx}WV+8Q^Y!LGS-_ z=CrP?|AP4#a`jmg`j+`w<fk|$_Z`QyuI%#%=A?6)V{-R7*83S?PLF)lPmFUzaH*rl zss0StkW>4LxY8s(N^fXNU)5PY4fr!0lY3S0vx27uKPUK-;MBibZ&~p39Fr>wenIe> z;Li%aCOGM<{+faha!hVRaD!uVTO8AUxG4Cx;H0mv6U_R}ikDkK@4105s>rp=In%S( zJTMD6F9+sIy$+`9P(tMia}-l5@(D&b2xi`?RQ|I^OaptxOZmqh#uO}iL;E>!t@plG z6a@4c()ZU2($;$#e-M!E;DbNeWB8(VdMH5~2pn8SPh5Y(8zR`jbo>I=kY?C?dA5+8 zo+przW|9Vl#dx75!6;Pyt3IZXQLL}u<boX>lcwe?W?|6j{ym@@hPKT*l+wOZ^VR)Z zKt?5Td`UC-zSDD{G?w${5T~3=Wf?RX#`(hN%%x{*eSPXnzjhM3%a7D|)Pe-jwA4R? QJI&wV-=$&w2WkL+1BTCLS^xk5 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/controller_indi.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/controller_indi.o new file mode 100644 index 0000000000000000000000000000000000000000..45007e75af7d080d7eea64703c972389d7abaf65 GIT binary patch literal 10832 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 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/controller_mellinger.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/controller_mellinger.o new file mode 100644 index 0000000000000000000000000000000000000000..9b587cebd896dbef3aa99f2487fe2d2c0b535ff6 GIT binary patch literal 9440 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 Mg1=vslePW70n><>+yDRo literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/controller_pid.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/controller_pid.o new file mode 100644 index 0000000000000000000000000000000000000000..56584439328e8718ca291368ab87f316790ed281 GIT binary patch literal 5832 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 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/controller_student.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/controller_student.o new file mode 100644 index 0000000000000000000000000000000000000000..1708e33c219da462ca2b44883c3135da20a0cbb2 GIT binary patch literal 6000 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 M$Gt$+{)vwN4^Gwh+5i9m literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/cppm.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/cppm.o new file mode 100644 index 0000000000000000000000000000000000000000..660cda5598b08082a899bb3bd0fe1806e89b8c04 GIT binary patch literal 1984 zcmbtTOHUI~6h7_v;9-b7jHJXeJfe`u&}o!_F|k;sGy#>SCMGVLVR}g?X**?RYEVol zY-DFK{sx1rSeUpo$WJiQxRf7YqG1CIqUTKSg<&i%^pMMU&Ue3a&YgQtm+nqY1OovO z7J&C~6bTj}cG}~+ZVZ~B5w@hvmu^}5EY`u|hqnh3tnD_#{;mWYSnS=7)V>jf$}51% zCro|4+Z@|JSlnKxT<ldvuG#~zhPXD{Qc02KZ#kkDVZg2F*6pAeZbDlCswwToy4AgT zX})Jv4zGO2n$?w%gnNB(CA|Hzl3Lnpod<a(M0(h3oe4s3_;zPsScYJ?_nT;c8S|+Y zRF^{mjBjD?N2~$za%iUs5%b}Bpo{Wo;rT&PhO?IOgjx2mZRx{$sZ>yO<Q=2HY)31U z021-|4S67O@1dMF&Agt|jG{beTC$U4^7v56GUtpudX}Cu9Hu*Ei^*e3bSN58#}qXx z4`^0l2))SQAn}SS(~cU6UZ?&i8NKZ(`1z~ezEt<+0VMpZXA)NOTZ2o~n;@#=86uw8 z?Bbt1(Gr~Dsv~GYx6N}-ae|ASKhLFEjsu8-<CF^{C-CFQQ~ipo0yxL<0b;#6^rob* za@{1yGUvbXIKpw2^XK^$iSq-Wkp2be&$>afXgIEuU{3mQY8Gb7tjtnOXE<D-**3GB z3C+m6%6Oh>mMegoF2Rb-GV~O)S*=#wEaFT$(TTjN9cRi$(NRYrotz%cq*IAZ{Qh(X z1NB-anVOl@irGA~@a*C{y72t9x2t_vtOn4Iy!X}a`1np9i+j4@(@*hz!3%ww^VC<o z2~pym{pX>3CJUjSX6Dco`)R?^W<jwXtA;t@SuC$94qI?Q$!d-U%B*dJVwn_>TvbLv z(al1E6`jL+|LMq>k4HRqXH+sq|Ij*U(_{V_?7}^op_oTQZiElk7U$0*QmF<Wi+jDy zdH*jw?d!|a+#13syo!rz{%gL9xzs9(%WIE#|6VVNzBs=)UJN<%#ayE6+A}VAEC`Mw y&x=8yhQhC0u*s47HsTWf#r+ZI|8}Hcm6LBM@R;Z;s8)39<^SOCmlQ&d{`}wL9_Ez* literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtp.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtp.o new file mode 100644 index 0000000000000000000000000000000000000000..4993fb1040dc206603cc6b0af1cd2a9ff3d1e014 GIT binary patch literal 13784 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 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtp_commander.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtp_commander.o new file mode 100644 index 0000000000000000000000000000000000000000..b62efcb83b66330ee918671cbbdae74a54a52777 GIT binary patch literal 2592 zcmbVNL2nyX5T4yNrKJHvlG2J+;spidNMvJMsbp7*y2a3_5-K4vQl%c^&E^HKYI~jC z7b&5Y=&7e3Vl_X2Bguhl)eDL^BaWO?aph7Or1lV*8Si`R&5QTKME1=4-pn`i#`9i& z{Oar5reS~*1D?ZhrBHyM-X7Y{z;xgpxBw>)e?2&{pxawD4kiKi>ZVh9Y`}GN*`LDo zz6srz*3@Ag9<LB~jGESDGqmd_RC=qo4o)8a_Vbao_NU^zIS#LS7vW9Mg2Q8g8rHOj zF?-VhUDVz6v6!!JIxl(`oi`MZ_!Pyz#2Bgxa!$n**Cy7EV9PO~W{#0<Y}JuZ<%1lA zN4WQK4z}EWzsAlx71r-xKemiR@-Y^i@^lWqoqpszBYvuh&KcpkqEDcEY)uZ%LV6m{ zlddJp_uqd1vTe_|f{pDakLIJ$oA*M|S@VKc%WZG)(Dq=%6>gKa+2SIL{2zF*nU6%c z?FrTngul7F%0(ye+ag*OL1)?Z9&j-WuvD$yVELuH-?3T{G`)uFx7lV8GST4d)?6nH zHvJ}Aq1W&Q_r!L{S;a2Rl?ug*T`aM@8@A@qD$LFjZWkHt6bmK#H8X@}B?qtiqqeP) zlLTPl-zc$=NtcNMaCRauA#Nf+4Fw7P_)08zOPPuObYNxSXY=OK-$>P?Dwvn}dCB}# zYEl-QORZva5!FPh56jZy8`R^{POEzv_yfd=N5wlb=t+h@U6N7!zhvNlWZ-{g;BaPQ zXLcYN;3|%D^$VEU06)6Z_60<8UhRd-!onc7s)l{APi%>?!oT+;!NcVs6v#4S;=klx zfcFI4DB_{G?fT7O?z?9%$mxVDom~+Vs9Q7)Mq~)mAyk!1yv;-3)8YWeus<Y|I3VdM zQoa9B!>`2da24_Qq)qCYw28+=drz*J)R#2;bBPnr`_d*=&cGds>-97wPI*&LJTx_& z$#q9+sweF)G+g;Vk~r1*fwW1fd-D<E@g0vh|CT<4s~!^ckHqypzm_=FlkR^G*Cdn| z-|IxKNSyfb|5GAN;yV9~#C86H#EGBYqD1Uyw<X+lu<^Z)bwgPpZ@RYNI|6Ka-oajv zBCx}N7UW*E%V5(T;%(K=g!ca$3<IfD{bh0xBPq*s#H-UiC+sSIsILxw(&EUcbex72 zg=T@M)VrwW{4<H`FaC~}7u^P;!!+l_nH9euhb7-CzXFPA5NAmNQmgzm4Oj814hQ$i zE@*zgONaX!uHw>Kw&;{+UV^HBl=ofysQjvb7ZB6WPDEun?B`S>0#UT(;LeSTUzV5m LP8^ne>+$~qzYjdQ literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtp_commander_generic.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtp_commander_generic.o new file mode 100644 index 0000000000000000000000000000000000000000..64268e7ff64de06d1cebf2998abca032d7557da1 GIT binary patch literal 5648 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 buXBS0VsnYsomFjp3;X}=w7qQi*S-GVj{SbA literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtp_commander_rpyt.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtp_commander_rpyt.o new file mode 100644 index 0000000000000000000000000000000000000000..2cbfddea5dab0ff82be38877acf1eabbb183f0d0 GIT binary patch literal 3776 zcmb_fZ)hA<5TDyk(=#ox*4oBIH=8urw3s6a2{geEFW1(JR0)@g)qc3!++Dn*m+W<K z`zI}!v>*Hff(;0YA8ZA|r23&0p&m4F6orCcN|DlUjYT9v{ZQIkgN8V>`{wR-FDHmj zxc6p$GjC?zy!VF9)Si7WYM~G?h2RoYBt`*B>ngnPSOM!{9W0-`Jh!aF%)OD&+&vx6 zKRBq(J<vnvAGW{}ntime4*E9(oH1cK_KhJXFEzkSNrM4*4fIV7LJ?!3P7H`J^g-!t zY~j|dGp%hkqG<2yw;7`+pa?tL3}|XI5^uu12{7|{ySS`{#Q@ZafrWZ8AJw5xySB}^ zt+!sBs)wbiD{KE49mE`(+Ko2+CF&cx%n<aq;o5};F>lt1;<*Osqr4IuVScI|iivli zcyDBA?!m$6+`|^Jw0!cr*^(Z=u?cN%Va`9UtZWe&=XSH0)NmFb&c>q9Zh&YrDCTV) zF1Eq+bse@DCX}xKjByh6;V#<8X#Lu`6vjzJVM#P?H8@7%WtgX!9BT^qdKKeb(O?GG zEk!ZUD;TRCbFdmP&t~-XHWW!84STwNuU3tizk&K4urzuair=FTt~b^H{?bZcNfQHS zKYRS}Pw$>>1_<qd`z!qbAH>9Oe$7LeH=S8x5avI{^`74bC|b=huf{z6*NT@<q7ma6 zP~@1ixQ1$R19K}iiejQ2_lvo=*1_Q+4fZGgJQXv4{nA-%g=LVj!ooBdXDrn?)TM>D z8liB9p}pVH3TyP%#a6LAs)f1))`4orXQiGKppNo?h<VT*=AVZAST6fk#vQj)X%vvG zoSU(8DahLeo=4Iyz@&BT6*4Ng)+jMCJC`GSmWQ)$GNZ_ESjR|>dOIIif}HZu>Y=k5 z@{oUvhyN!(wc<|K@DF=;?HV*Y_rCg?x!<;P$&8hqFvo1ibTesls4MT-W7!;XPBN2q z(@FP;lQst;y<NTCJp+-RUbEA3#=DT~-oBmiNRLUHp6*_}iT^}&mUVD<Wi=ap)s6+A z<KJqeqo*Kk@c@caO**Wp0`UPM)xxXeK8w~NB_EEoL*kqf&qCsS&Wyh<@%1<pG4AKX zlCPsNj=xaZ%6}7tACfrd!Shjx)0-h;{Iti{l|8AEbg1`i)xpoF8voeyQ^9X4i*(@K zR=}^2-B`{7;1ikH4~TE5n3cI-YT$Qj;CE}_zt_Ma>A3lL(jFhTCQ@l9?&K%kND?}Z zLq`hSjB}*m?z5AJ(kZWFWOLaQmYcOF%B_U@$RnuVP`K@2TY3rGlGlQ;HDOC)whUK! zpcWL5=Pkz?FQ_euGTp_A#xT#_=_GbE^qIG_6E2iDu{Z4wCEe`N^stk)ovb?vW8>M0 zF*GQQL4mlTk&!*I{a6xsh6bb-ycqtQ@#PMGf+rDIZ-1Y}HwSQ`*sFJGw_>m2*qS|h z3jL_~g&O#x#Dj4U;CdqRqvm<M2L6S_gZuhg;z9q{Bu@2d@<Vy!9f=3yZj$#oh`%6l z^7FLfXIR1gH|8tPD0quv&o7ET@hYzlz?3$O^IPgvaJ9}m6`cI=-h_gay-Wj!6`br% zDIZX9vd6SM%E+1X;XLvRPUppaZ(700f47w1Q*g59J$$0zWG|$APR<mU?88#Npx|WB z`}tPE$v6AIs^DawkTOIHljHd2adsVl&M@bsb5_JnA9o>=vRn%yqlE%Q9Ge6(?}_Y0 zk&L{@9Z^0nBJ_CE_=x{2ndpGdfO1wzNP+t;>ozbWXS!=t10iLex@93R$OC>16~uCV z`Tjg7ajLyaH|0eN#^ZXk?eoZx&*1t+xt`;(eQ<pbDk!gBHjp!~&j)b!C$|NAP)~d? z{s9Txtg)V9fy`?4TcCm=P0K(e(iw4luAl!sP`UrKhNxR^^q?=6N6uTFWvR+G#GH}q u&q-wiV)%bVReZ`TxOar0do7JXANr3F$7S#dWL8_BkpFKc*ig>F^?w7{FVb89 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtp_localization_service.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtp_localization_service.o new file mode 100644 index 0000000000000000000000000000000000000000..ad22cf9e6e73c1d4e86cda8d690d983190a6204a GIT binary patch literal 8384 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 Z7xt}L!2dz8wEQR?Y-~BJoBy=S{|9&RTsZ&$ literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtpservice.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/crtpservice.o new file mode 100644 index 0000000000000000000000000000000000000000..9da089ea35df32248f3823fc3f38b06cba29927b GIT binary patch literal 4944 zcmeH~O>7%g5XZ;fP@ricG-*pIhy^O-N@NwAMv6HtG0-4U)H*JgR*E;97ujl@HM^TA zZYp8Kt*2O&8%GXJ#i8PYkN~AfAPyjvszn?)q!I@XTu|W9LlS0oXX3}&K5;_wMA<j* z_x>~Q?d;d{d#}IsMmm)Ou@rm`?VeD8p`o^KN3IPA;Q(x}ezm@BKx;GAEN)Gw)`tPs zf;6<k{m}aRLVEoO_U{?ZB8FUh)->+jH->MJmipy=c0N4-zMY2B%mBQ*X^h;sWi;>H z-`OoKr6Et6TbPSD`I{I^ZMPgLj44mrjm@3iQ>1|__J`DN?d~3>dF6k5_3LQ8TZ8aG z)>^)5=QmO?z7N;>9Y71ue+^^TzO~b>=dh1{YXF)>1Dbcz$Kth{*e_p&{MMlTV0-nO z>l?<*&ol?c0boAtqYsnS(Dj|m$}HfqF~3k%L;(uL(%I4J;yZB<!1cp=;4g!6E8c5r z!D;Y75PJ0)85D89?N^{*fqn)073f#se_nz2d#wM_9=zFu!|6id6*F`C?ek{I^A_BS zQ(ZLYJ>Lu~%6xUS?tAmq1@wHkQVo?GF8RvLTe;EPST=8Eb7sczYoq9mojgh0%9=Ei z9m|dPnlR?HR~mpnce|;Kt~)6J1OK|2ftk9Q0S|TH$0O3o4@I0-^=~_j-L$rzPk1=a z(>X8hdr;lxChIfIrJrV=WBxq%^%WR^JFA4n^LBFD^rbXCZN$jV<3Dlf+ghjr4@VmP z5a;jYew3%pr?emgI`6s<aC}J9i2G3w{%H^XSr7h25B_5h{!<VBEAm5Fp_|x}U5p#} z1KV!v-$73LA-+%tSRZdhmA_ndmF2>TIXJNrv1xy~<OG+XZjHY@aZ1~#R)aSet08#7 zbR&p%s;ngS<kI}S@;k?-L&ufDnVGudJGD5Lw!pO8rIeK5+>%;S5h*HHRhQLS3{>Id zg6Cd>*~`lJAP9Z8-iX(z7Uy)qnOq5?RmVH(Xd4}$TD0U9nxWt;Cseqgu<Axhf>=>f zL8#Sk80*x28URMPUWXIhWKMeh>7?g|>^O3I7R4smA&$S5_DrrH@uPbbpv*qatLLvU zC;gL}zOM0O8o#1(eco#te@fGTtnuR-|C0S=eKwdU>+^%AKgd2cx7jDX&hIjpddj)| zqH%c#5!z%f^%4DV8rSuIF{ipc!#*|gT*!IJdu;@DWJj>2`$7045yf{Da=I>Zz0Cw4 z<GzfOp7MxpBB8gr4_45qh0ZLtp&z#u@qGNfXoYGe1Z&O-9k6DD04(354#~6D1X!+H zi!q6#C(e?em6q$(YHBf*ss2lAVlbYP_6Co$*>M9;)1YR_cN5)PR1aIzkZbZyk>QKC z9~q^Ry32Kbk$Lh9doeLD$|6hRmylA<WPF*0FT`PcN10zh79En(_fR*9KchqRC0^EH zBO^aK|4kO$*1mfv+lwckjPiGjZ}LP_k*a-=`GwGUxB5@TA5<u_km^rgQHhuO(|e2N zm-`&u$i8Rc1p(ahX+<%FsLz*}6>*c{PxJ3QIEa|uqsjS6maH9R7~&7yV=^H@v_u!4 RK-Mk(I-kFaqS}XK{6EKgK)L_` literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/eeprom.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/eeprom.o new file mode 100644 index 0000000000000000000000000000000000000000..a98d05b327c5324d0b44f47b21155250994261e3 GIT binary patch literal 3896 zcmbVPUu;uV82{Qc#-Cz<mH$k+z(Syr+BQI1LhyE@8_00j)rgs9yR>(->A!h<M}Qe! z;tPo;Zeb6`m@tSYbn(GN4NuAt6E*PxV<h?pg9jhgIkAv2zwh32w!>{p)Q{Yq@BGg1 z`+na!=bm%Ro3YMzx61{>TyO;zdIALqFJJIg%T-}Hc;MFDTk%QOdvmkGexhe~=!^0! zgVE`3SJ?|NqPf+`MHlS(lfeXrjo>pn<Autg8%EI|gJr|<&l;h!1%~6}tq_^<suj%* z5e56x-O=*w(Dlo5emjR65!md|m$se<DwJ<?GZ@nhe5wl)I1kbr*@Bt?sx^L#d41C! zwK6;Om6iA3aKzlGZQBn`TkvTC=9$8|UjTPD1CRi$mugysdLN<QU7YU}bNMc+YGk~@ z(q2vR+nS;2HrAH{mxtEw0zmc_b5F=QrWo^K-4=g#=*s+hcB5`3+fa^RdmCf7GOwo> zT-kIZBtBgVyYF9jjn4GA%WJTP&vAX%Vompwth~Mfez<qlHTs~msC@km_5967SapYO zo0vqujj^|N?6+VpH){6Lx@G&qm%w|Z)Cez(Vfz=>J9Yq?E;OlsXlW%34KVuS!?``L zU>!ZK;W*9fVyhat%QjBjVa>iNw!t^vXs<WTbrS1%7Wd^E=B7P@*VXgX4lRb)q7Ua1 zGd->4d&#!)gHo(a>qz@v$sWYL|IXT@U)XTG5o?oUBN(e<Ea~21>n65hoUEyE%|7Im z0Crc{YTvcFxplG@ahzKJb$_T{+V@!OSiI}#KIL$zO-U9D1wCnIiUp;o>&UDAWmtH< z@%HH9PMd+G$5}^P+dgGS$MY{LiDEIAOlz5f(qA+bGp#GpT?0n3Ka)exNTxF;iVqsP z67h$2g#y8dKNwPWXhwb)dV!rg3HJvT8VLqMdmbkW)?Ls5zt7cTv6?pp0K<Q^j6p*c zOlxDSJUa9QcHL6`CDJehJY^1h%Ia6+c=oM40X*nrPumSVgDvI1fiFFo!0kNMbsj*D zORArzgBZs}eWHDi<14Wx6MXU+;M?plTeljIBhMxA6)BE^P+I_BMz;wggzj-Zl)_eE z3v7V1oIk)pam~NW@nMcrJlXsB)XMWo9sFt?{2Ron&fl;l+iy4UGq$zz|B5*A`}jf* z@b-Qkz6Zx^<ylb&-&hCVjyUOxS9*TMbsf)K-k*e)(~#B*shoaP&v)o%cjl}PEvW@8 zu4_{7B?FHqWJ-q%858ibI1MTNR5X<`Ag|{S>iuBnwT2NX8fW7A$xO-AjYF1*!3hby zWVX%UGZF~B9i3gR(azqk_V(^rqBjw3?TqyT-btlmPCqti;?;pk28>L>6lzpr>tKJs zZa^lK#DWMw-QZrH*sA&whK1OaqoD+xN@%6*K|QCP;Ti0C+LN*TW7<g__o^8mGA}Nv ze99CH1z79A#knN@3eKS>!2LB2JS^dIe(`>7LOy*+gwY3y%&9wI!&P;f9Cz~H;W*{T z@9(^Qz&)ye@jMDJF5&AW{6p^3yk!1mjz<t*FY!O-KIv|d@Ja3qU4{3*mT+13TaF7| z!T+A)PTd<Ecj~UhI>?;+yPD&aU*4A;9H;ZQ$qu#t9+&Wq5<bRpXa4s%?#$oJ?{}*6 zNhwc2!tJ})9t=zPW{IDZaG7sPxXd4sa7D`VH^*td;w;dxxL4?>IHy=q;tmtI_>PHp zK;Ys#2L95Sys4eQ)->!kEj$Cyr{C01o8V7rrUw2Kr4sm!B6Wx!^oOxaBnv?g2mQHX zQp<rqS<L74f_VL<8T~(3!7$n~=NC^!jBJVHCxloBd(?hc=si*ez}o@7kn4H;Qp8C| ztgl$N?HqT=z#%8V^HL7k=w70nPP&L+C6hT<hJx6koFN%RU&N~pT+}b>uzz<{>!0HV zDRtrntfEtE{myx8#vx9m^`ku!`eOZ#BSy6Z@R98@*YA-*^hMorE5GN0zJy;60iK6` pAL9QbtMsWZ=h{<_FuyeS3Lyf~99^LOsTF^N&tJ2m7XCQn{{c6m?y&#> literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/estimator.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/estimator.o new file mode 100644 index 0000000000000000000000000000000000000000..bb2534a8bf8ba11fea5662c1c8fad00e890d6dcc GIT binary patch literal 14528 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 G_5TA=rcw?7 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/estimator_complementary.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/estimator_complementary.o new file mode 100644 index 0000000000000000000000000000000000000000..9fbd0b324e3557d270197ed409d8256da6740af8 GIT binary patch literal 2576 zcmbuB&2Jk;6u_UoA*EFj#Yx&KDP&zm#fjp@b_AjkNSmY~AeD-`TMz`{tT!9H!uC3| zYZR*pqKXTMLss-aI3?|&b;N}e@gY(qdf<eR5U3IdlJ+lvHV6v^^TwXBCtJH0o@KxH ze)GO|XS~`^rq90;3<Q8n0KS8k$0@*1hg!B;H&r+ck5j96P?mn-U%$V9WwX35fp`B> zpxgtn;sn8a@I82Yv%&J71RH-zff1U!BlT`z?zO>FK;$53cgNI9Dguk}7-$&@wA3-Q zyHF3o;`+ZeZD&fY><+5cxg$`axq1+)JU@)<zjv#DZe!ls>S}U%wL-#UUnaw2H^}zK zFaTZ4J%bSVVE7Pd_b*M9_hu){`&WLrwJoK7O^ssxe`?xYtbY&dr$?Y-grIt-Ry)yT z<H-7<`ZKcT9Q{zyk3jWDWV^3lP3nc41m{`7Yxd5-v(EsiTl(i})Cf&R&3<)@&U!ro z-uh|q)<WP>e?1M}jjP~YC&-cwHrG8FO|$qNtUHHwacwJ5uL;*4b$yX)O*^;yb#ngG zn*{fCC5*G&la7z<NPQd2n16a3yzp|PkN-Zv%+%Dl9GSUrS=MYjYh-jQFE7|cb~C0t z5iJmV!OEgVjEv=)hFc`2d{#+B6S4SNC7zHYI>|-RiVY7_uEb@!5|1UG$18n=(6iSC zf7IHANNrChfP|lRB4H)J4AjBHCmc5j<>7d|XV|sHkJjS=&M<zA`J9h1F8la%jK_SO zx)L68zl<RW3D?UfxPYAZ6m#BV@qCTPmpa6M#^PnvR5sZySwoxGpq$IMXtd+EJMiB+ z@CO}uANFrof3yP!({Zhw?%E_}*ttU1%$a#tCnd#zp(Plahxbdw2Hh|qt)t=E3$2VP zG2ykm<$`18orR)f+4&dhezW+2Pz|vdTKC(Bwwj$Y7mH@m6!R_@=5^P+D54qDoi1ig zl6>QBAHG<`Sdz!ld<zqX@y=V8o3V@T4ADQd+!7RQ$8s^U(cn!pYa1e-Zrm~xx1cHg zcz>U0daXU6{7He2GP?&kKU);V7^nLu^7D)jAb*P4RDIEbpTamQ{`xZG{`wKdpGGbA zeUWk6H`FLu|9w^9_)Kofy8`cRQh<!W`vm@xz>f?37UTZ;zhT@z|81ep384-sPATW= zY1A%h=nS`rnbj57TyjCd1EhnJb{tUf_|vm5*7zT`jJb5QZeI<R`FGgdeA)k>rO#Ko zA1V)E`fv7#`-<h$`qZqyL7+a#;u_CY`b<11CxZul?)k<6dQNH0PWdnKM5cLvj^k+1 zn*3aI&il`Dz%=hK>UN_pF{m<4U#E`Zm-pw_e;Ap6cG_x_9rBlXBMMP`ZvDU3E`No+ Nzl}H2n!o=1{{TyVZH52< literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/eventtrigger.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/eventtrigger.o new file mode 100644 index 0000000000000000000000000000000000000000..e4144b488bf46d96fbcc228e56ca1c1df6e48c70 GIT binary patch literal 2056 zcmbtUT}TvB6h1SfrbSf#5ePX85(YW!E(j_;><_vHi<WK>7_77FsEfPqHZz5y<U%jK z1d01%8)(`?yAVhOJq1E9kuMSCbAQl7FO?VxnVq|Pu8!mGQ)iib&iT%Fe(v16Gus{P z5d{Ib2=D^-J&ppruH3gh1=9mHP|djaKYbOSIl!~Mys+>SKv;)A{&|=Yvujd#L&W$O zjC(Qun8hzZtyG!r_o43qab2ul$vTkln5oD%gD~z{U3|dunq}!ddv>N@=5{2Q`;0YK zFn@DE$kk!Zi0Ikg8WeK|>JZeeXa4%<Gq<Jeq6jzci4fY7AfKs%D?`gLCt$yf_$Z6B z)GrAT`Y1KzhcNG#RF}uCWDMlYiuK>*-QD&NQe%E|z?<6|^yPM@Up-;7G(!3v!&uCU zv-#Nm+1^!v=ienE4`TC%b$+&gAHbaVn*5vL5b*oE<kmp%RXLPQ#-n3uY(gGM>asbe z$=<e<o*aqA(bA)1F;k10H+4<!RNQTDr>j$Ox#d<>Pqd-sJa>-aic4k@m($%|IFzyr zJJSmIv0I8Dl{|3(34f(T!b)~ISpZm<gMw#;a+u$Us9?dX3%ueYf#tFhE~Bos%*lKv zZhVTp3+~=>u?&74aaKnrW(VmM>QZ&?AkO$h#Cu430d*<<65@q9=~bL2{!_wb!uN8u zTiS$a>ao#LO;@7OG6^li5LM&xh#DO?z#0x{=A~f>2ZDV*Z!p}~(=*T=3WvPDV0Re8 zR$|yNRo%4b`leX6jh9RvruC``4GdF{CMXyxj(33BuZ_kGQ`7x4D(#c2I^5?`?x5!9 z+llxw3oesw=eH8h_{S}LeqQ!EW|=yZW$L6YxOJX2!ke(~39<_ceI{&9>us(e{EQ9f z=WOS<5Wm632gR65m}&&IsTcJaw{$J8DyBARf-<a{Dku@d0417CB=G7K$NKM8#tLk- zDqAHF`A(XfhxhI;0Zpjcd-0IZ)n$5F9hA@NGn3y3{{J{jxc!Thvi0S4?eKZ3SuUUV z<N0>qMg5(eK$`a-wBfwJRpYn*kh~?rD(NH0sKJN#=lf@veRftXP2d~mScLcG&?z)Z P<=>@GX%{Dww&(u?(y#^f literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/extrx.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/extrx.o new file mode 100644 index 0000000000000000000000000000000000000000..28921f7ec51a7dbd3c01f738e616bfddeef8dde2 GIT binary patch literal 3848 zcmd6qPfQ$T6u{r^pjK!b3Z=9ZVYVTbnljm4TLWzqXMq+-YSS#Ml4t_MFu0q}?kqDy zWkb}hUQE=4P0)C<$O(Ed98AO*P4&?9U?S0&c;raDh$S9~A^6_R_sPewb1*T{M`qr8 zzwf>G{h4pR9p1Wn{aQ2<0WJ~v0`@#k0Up-v*{Wx%a0Cv+&g@sqI}%j3h9k?z0p{kT zXkU(0{%C~l567YMYcuR@oR#vJG9T?<N=N!v(@<JU55d{CPP}UIYL}&-*QLgL6w_V< zQ=jhcW<0wU>~aJ$>vz>s`}guxC)#(SYR@|lV(&fQ3R7ol;MgEQW~?4cZ%3i$x82?5 za*JA`T(|-av6S2fctx>~a)Vmx{U!G1;wAXn8;dHpQG59W#-r|4V{MDIdu>o!O{XZI za@#PM+K>9}fOZPX>2;~;-a>=V?qdHxVE;R_-z>+V{3ET&8H`E6{YP7Mu-%Aj<KWti ze*|A@H(;B_@HjGD>p8UNjKyeWt4`g108rVP{cb6S8hNE3Ye-lxda9g8|M=CBOnL+j zW5%^-Q0v(^-bp8zPBQ(hr`@bQ?YIE8Wts$vIakl3E@`iO?T%{|M|m-i{J(B@LWUFl zkN6WI{r*#44ygkJeSMeY&Vd^*${EWt^{kdF$di^WyIDg{bro%EGH0S?>)D)Z=<c*_ z$URE3D;ZDpD2b%psoD81wBqN^5myp2wIt%ni(wu59QPsA!0)@&qNJ)P0)T{n)kMNd zL3z>x)XRQ3jBZq@UoV76@Yw!f^iFsrj34ax6vjt{@$mA`Fn-9Z2T;#+7vm?H|31@~ z8DC<)iZ3r02?U2hf1C&TOV}O};_2n*BEi93<kvaKi<lG<;x~B_)DrlsEg*OU9X>~q ze-Oey3E`iG@NYx-Pa%8*c>~UXKkqU0Ngm-<ZJd9GaQ`4wbm*8NGd+{hoLkT_0s6FU z_hq$0!7!DJ7cTVR3F*fU8*b6c6<n~K;gUmVpPw}BYWl6->B&jM4mMFu)-pP3TCaIo zc>Fpg$2IaVYdIH_Z5Q-nF+X6qnOxp*TrFSpz>t%=t>w(zxM_HPpH;YR*luzf$B=k# zAG&5*8dkCLd95&E*f`R^2kQ-UsF3qJ@eFUOeYT;w26pe}bXq@ppGX>Uql<3?U(==l z@ASjrH1Z~9le#W&e-HYAetSqLzS%du`#iIW^LK~P=K`m9k;@u0C|=~7A-o3TNGQI= zH@!Q46L=Dw?|H_9^X(Suv<h{u2z8DMTot(Z7WNBV{4Ki4IQ1*m84<Wx=T(7=bxg)v zP(LM%ho4vU$wqa!FS8iV`Sa$_mpJVQ9^V~^=g&+PIK|g8|E9pHUzz!QKk)i||78R5 zd>loAQ+>WhWr0)uIP>2XIK}gEd@OK^=kr+*IK|7%UlBOPtIS^&IK_7`|DnJsevtWV z0;hOBuXTY_JRc`0PATtd<EUNR*I91ahN&qozS*EmXs!mzxZ{9gTjWr9Lg@xY*YiH6 zU_5&ijK`x#p;N-ZQ|w<78SCH{5q_Ec!m6*JNR5Kj3pSaj@uKxm@e*Z?76WCS<<ov5 z^AJIllfHtdQ4<e-QLF^|W#L{dw@IJJi)x1DZv=jddH<A4LSN6+mH+ij#24QGD;zM* z^ZD>p<kiMs&tB@ekbI6`2+3by`I|hDY2H7_gJ@J+{}uKrz~@2hPmhG>^YtG=M± zCCVII(BS;}yhY81DyG9G%U@%S^lv2n&IJ3XVFsTa6}r!!+Y#OoL6m?C$B<RaA7lTw LYF^gfEtvlomq1og literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/freeRTOSdebug.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/freeRTOSdebug.o new file mode 100644 index 0000000000000000000000000000000000000000..5381a527b75d0c8738049331518357148d148606 GIT binary patch literal 1888 zcmb`Hzi-n(6vtod0&V$OC<3WSxKf2$iCRen5=BTj{gJjPP}G<KF$CAS5UWluI$xlO zfli3Al~|Zq7+_;#guj5TtnI%58$(szv+q(ji5J9+&hLAld-v}A?wr>P#X^5yA86}? zuW;DY6ku=QP}`BTVHk#B|JAq8`vz?9&Kf%(?ixG0*l_+9hHQ-kYy;STP`?|8%~cy4 z=}q+1C#@RAV{FtPy=odex_vjwKas=meK!cWXI5Q5V3qM<Vq`}!z~bE8ZF6$*!6Vb* zJn(9+-!Q9On6k#q{B%?BDo!`^!mIg`d9o##Ib-FfbD8XnmCc!xuBcC=%1liWx3VUU zWHY&&@oMQ$s@VYiI_MQ)^sFd=fxlj6V5VMXz_Bho5|M5`8u4ByN$Vc(%5w?H`NTdQ z6>$Uoxvpq{dnx>J3U^a@Erp8|{suYi^C@~VU8(n|N8tB??rRTK!Pu&^QmU}E)-%h4 zi3&_?!1H{w8Tg(necp(#P$9ZlOPsGmd9k=Mn=h7E3Wd^wQ+D#R#f36>yb<z%J#0z5 zRsvX4_zhVFyp1I$p~+t`QIfm~q2z+)!;lH-unjryN*AKVORQ0GgzK^8MwNpk<@nzE z9B(xw#ODQY0go(snwO)ujCuRgBfFyb#g2GW@fqYNl_oc#^ceC}37$#t(+Pejh1&^! zCJ{fcwBEno_mbjzpPCmFdCn&CfEB*1OLq;u6tS;qC0O8E5^D-pg{o?;g&|miQ-{K{ z)-A9+UavDO=zlU3^I*xkz8D)BStWMuXXm#vh9h(r?RG>g-l|W3kdmXFz(#VAI%v91 z*H9Dh{HORxK|M^RYmZz<MLGX<eir9a&K$O+eNr9TU()pc^*(GIB(3k6j{Tv;6AhHt z^OC;5BZj&e74SuQT6YMWUSHRbSm(PVf<2W~zXvfgy>8s2|CHYIx9CvOmSfj`cFz9` D(KM@` literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/i2c_drv.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/i2c_drv.o new file mode 100644 index 0000000000000000000000000000000000000000..5842a05277db5af5505083bf8d42343192af19fe GIT binary patch literal 2888 zcmeH}zi-n}5XUb~p@j<6G9iJ4kt)$h#BvM_VM<6#8;K$aKNg16wO^WuB(Ch&s!T92 zz@Nd!AArQ#0g3(tu)@X+{{Y<CcZqp13^2fuC;8po$KQKD&U#ONx_0a4OrZeM3h)-j zkx+ma^JBl3xHVXSlW<sUf4pE7Kgjbh;_=F+-n0VK3jCK9SZ_40TPy3gA6WOpu<v)h z-q7lVk)^xJs+V`8u+!_K7x~?uR=(bglvTCevg=f;cEz<;yl7BH&ncCN+ZBu6R2=u( z?{`ag*(`kho~J72-gE#(n8}kPFHZ1<gyh|rG|udV{&Yen`4aL%M!(CM=b1|^mR=X( z7^}u69e<Li`nj=?y%O3pnL5bIt}<U_o$w9jmcf1Ij=}et*9`uW`5lA5V!mbYH_T=K zvYz+MpBeg37%ye&v&En23v-FZLeKTvL9}oCuzUc^0R+l_d}A+ORUL@cFb*RQP=~VS zu%{^n-A1H5tu|F0dpjzRHHW$$1Q9gdMy0*hYByVVH@socSArg9(duTs(!Qs0(1DZX zn0;k38_}<_-E21RhPM*qUbtRj=ojF)1Zbr$!lmwD$4>^@+eWLS)ON+w>Og}Xc-jMd zJC4DQ!Ze6f-%GfSp4|_9uMf5#4hCwdGjslpdk&N76KD58<JG9c_B=JCesScb&P6no zZ=UdXhE77#X4@qU=ojfv^DkpAjcMLIN64ssPWo||`5jAO75lvPzvhJ=8Uvg8bl&Mq z)$sYLvCv^iA>A&Lf0lU@Elnjl#?a-1`bYp<URIJrh+<=jiSmf^Yy9#A(o^`D^Ak5~ ePXo-)Q4jDfHKShU7eM!KUcSQ<wM59)%>My3LC+lk literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/i2cdev.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/i2cdev.o new file mode 100644 index 0000000000000000000000000000000000000000..03ff49e8ec2af52e7271ba3ccae458b046e6743d GIT binary patch literal 1776 zcmbu8&ubG=5XUFoYFmFmEgp(J_&|{q%(A<nn4Z=at%9fo#e$%2H(RriWW(kuDFxHB zCkviDdDNaf2;xPGc=F^$@hI4Tz&{}9Ofru=h6O<<JZ9!I^S-mYd9Q!z+U1E-35=EC z9gH(W0p3iG<8T;;Fay(|V7s>G-2Zk`IbUhPUvk+m^L@wJJ%t)L;yCHay406-nGd!; zydF5Pv)_lEpM9vZ_VdBk$5-^+jy21k2dgV9ORBtj{kFQ5WzDz|rERs5<w`dab+OXP zvyHTgQ64u^oy7W4o~WuDR07Yhx_+R_QQoRx<Si}|cYQ?_-wV!-zhhBE-+mH){Vu9G zh5rnIgTEqkP)XXMAt?HXN#}rUhoea5thv+NG0%LKbHmRtSAx@Pla42N$ecWx(Yb*! z_1_#)fFtbhF@M0h>2EXd2>yimw%|{hKNI`~^OwvO`(5<(JbRp*x$l{O5ggJWt|yP( z7*6*%zS>SThqWZCFUzcJ6|JzAJiK6~%bPl}Qmp#tIlq(RQAAlIG|cUqB{k|DYni>G z9koZc#{L8zox>cHd&}_x@>z?2;+Xo6SsdK%W=luw=yg8w4HM-_Gjes()8N)49f7;v z?SdO;tya?3w#I+N3is0KKPWUp&c6$8zY~=faM7&_aoJYpt9FGU>C+r@PUyan(fuGU zZ|pq50+aYG_K@bk?)PyoX?nP9GxP7-5Mwjn_7kFq(jGVbU_XV7mVEyiWb)Y&!5YKQ Xlvrlw8boKQXn%*l|B`8BFZcfepiI%c literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/led.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/led.o new file mode 100644 index 0000000000000000000000000000000000000000..955b6b0cd9470d66a30aa43e24857ea100d42c84 GIT binary patch literal 1136 zcmbtT%}T>S5S}*0R!`cK=)o04E!dC*q|{SN)gp)ottStXrdtw7nv$$gPkQj3y!sM) z_7!{r-HAISEIH{y_`dn(FPYgqon4;SYc-%#gI6dlQUMnAg1b3&p#@ENGwwfjnDI^z z!1HxkD|3vgvSBnFp0LBw)h!z*N#qA!IA^mYWg_5g&|Rd-EQ};e{U8+F7Y`|CebebW zmfbgPhaGxp+?CAgbWk^Kh928;j*EBJ8Gd5}zP@!GZKHAmsF#LNN;ITLKh0dInk3d~ z=;5#?m3FBwMYNT^t}<E*x0KG5P4W9mw=^AXtnX?%M0{%cu(w2VF%Jdem}fZ-BkrYx zC_?Rqi-G}|*<&ociA0h9Vn9srr2up42@lLkmVxOfam?pJb^af0%XFOTidM!|_Nk`R z+(_P)1oQQcy-<LL`UVfAA9wKA{3Dr*HEBPR=7;*<k)V+Jm$B*=eyVt;0&zZg2kE|S fD*viP{oQkyD%w+V1k{)84N0o<dn#Z5<@Ed?TVG#V literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ledseq.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ledseq.o new file mode 100644 index 0000000000000000000000000000000000000000..6c169f3880b341a454583ef91a649102b60010e9 GIT binary patch literal 5888 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 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/lh_bootloader.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/lh_bootloader.o new file mode 100644 index 0000000000000000000000000000000000000000..8f550b3940c16c3e3ba25c4c66189407f08c156d GIT binary patch literal 1696 zcmchXJ8u&~5XZ;4@JJUPLP#K3qzDp;oNP-eoa(@e9VCRT$dH1<S)VuDiL=+*+lU|v z($b}+qokyxg^n)(;v>-V31DWut6Qy|hJvx~=0Crk$36D^cIR<tsa6ALHTVow<S4+w za-|a^6Ig+Zq)uy)v^c=l9XQ#;+7?6qB^vy=&7$wVrWm}n{}H?S&~3N3*?RZMQ`VQV zNHd;K*r8NRXM#Q0oGN*k7pPR4<yxfrND0=8o14vgqZK!rY@Ms|CaU_z2JyJTXr)na zZkdO1=82x=GW`CtC?Q(-qyZxQEwTtZg?7n+`8ReIdCkjr88=M+d>_IQoHMKb=@tf; zz3aSb7w=ilY;1M{>bm9R$sBK^ralQlG{<|WiIXRDe1Mwx0YNm!-=HQwHMHXIEI$eO zd&^G){>kzW0f!<R45ieC<RhWt6xNO*FCR^E4QnG@92Q2C=!;St(kXbE?JL|jJ^n%% z^blM0WoO?6U7?=|RpxS1r6cPpsbwmQxwSpPXQO6~`Acy$ttxjEFGVL;<5yhGhE?-% zU|?79#rtpD>1zRBwRItfxO_d<e28AFna`Y3qTsO>#~R`h*Bs(uSwfu3@mNfBa2@{| zGAyLMdp>B8*!W|>-F-Mr`<?DNalrbY_7mH+G4-c8Zl7JZ{I2EU7x~MshmLyqb{_-k zc~*UxAI1%=C0577H#h&e4^g{%-!BC@6z<xDZ`NNxwt`1^|HQ&;M+B=Dex<-OH`gKh Re_B+}>_*&niPnepe*w)2yI=qS literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/log.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/log.o new file mode 100644 index 0000000000000000000000000000000000000000..d388b0a20bc1d902647e1c836fed71f449d25265 GIT binary patch literal 24072 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 SyK(*JAF(JNmV_d=*Z+58v}(x! literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/lps25h.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/lps25h.o new file mode 100644 index 0000000000000000000000000000000000000000..84fa40873ca2032d205250dd5704f8b79e77b0ca GIT binary patch literal 2184 zcmbuAK~EDw6vtm%RKyq%qcnk(1&u-?o3;rGo|YgI5<^I-Crw~!w`r4Yx7i&Og+%mZ zjEOYSL<vSbSrYGh5JcmFqZd6RpFlqV(f7J<WF5-MA-nI*Z~pV2ncdgr-pIA9;ZO)< z3&A_s>q!dGcz7>2YN-KDaFnv85Ez3dKz|o3rf}|{hH*18^}SPze1kwv{oq)=aaB+L zfd13yFUNN0H`aC|P}%XI@*@M4?MbMh?rGOTH5G=XRClH7`tzWo!THz_UOR2ZI%zsP zz?}|3I+U)aVCiB^>UP?V^)A$r20Ea1cm8vg&OmF*+~2RU9@Vs%4UmQgXeQ0-i<ha@ zCslWM{^Q#HN6V?9tv4?1FN}WVX+*V}ubF$0dhJ%-NQ)j@+<28*yo<W|Pt|T(ci>Dc zM6t0u2GOpVzcxVGwLEXuwQygxCahxFa!pY~qr=0OwVu)O>ss1z>`dM)l(d}VY9eoG zLw#k}$rWtO+)Tb8tPIW32K8iLGM*UJ6G^Sdbc=nM#d~{+>j{lU67eKH>4O^8Mg#o% zU2i;6w{id?_*bt*&`E7gHBhet$>)$NhvPM}pSK_n1^lI>uiw8e*+d{v<TYP_HjJ%- zb9FH9X0CC+k>e%iafOdFHxxd_d_v(x=F`j{b6jBlllxeQwe}3}bmo1{E_=!Tyq<xx zb8t2b1#hfW5a825nzlSK?37AaCIzR&<0H3Bd)5@zq-Ezwz<AOUBPDajwz3RHEpf#Z z=HKCe)Dv96X=lh51u>hopzPevDH}bBFDUp{WPV!V@{B5<W<S*@%UsnzWZsVc&74zs z&N=x6t6_!tDTTjfPCkBZ`CyZ|^pX4i!d&`D{*}4v(}TX$h`0Kwf7iV`MPbf>?g`hA zd6~JEZR*0B6QF15wdgaR2fFJ}hvW%;0Q8JgELtTIwEUl3!^yPO;4>pXgKpSv@;Ut8 z{#tFv0ea_#6mVSRLKxurN03u0e{WINonx+kX;zeVSswUB`{V)!@;qq1YNPfOIG0!w zuV7ncq5N*hF}Z)~W8eVgaVg;Vfdw}dF6RYfSkX{7%5aN?wC*vy<ofdY(SLIF?1*5S a;WBjsO|C1^2~6tEf6t%hF)8Gz&i@0=2lN*J literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/maxsonar.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/maxsonar.o new file mode 100644 index 0000000000000000000000000000000000000000..ace87832b6213ab59390f89f620edb562bf7c90f GIT binary patch literal 968 zcmbtTO-chX6n^c9RuKGI32q`3Y{7<^0T*>usahA}qUy?pq|=lc=*&nag}TxMco1*k zwo6aoJv@QFw22LIR{CK0-uLDGhRoC1<$1MI0b><-gC#R6z`G@O=5hyWu!i1qf9BnP zK(E_9CXL?JExF0_aTK#8Bcogp8FO;ddJy?28KWnnIFUS(6TwNFhON*K+B67BgNd|- zp5JULod!gm1b%q5oT1E9W39mFSJ|0Yx(R>>)v|EZy<hsqT(Oq7B0TKu+9nD+R^OTl zNZGW=GbU&R^(i2`R;<t2@H8nT%OVayi^o*50iqNOjEyJxR016`$$$=u0%(+{DbJ)S z|6kn00&2@ur%*@ppFK3+a^m)pt9<tcFPu0--5Wi?1J&cN`G=URYWn!uX8PaRBKoGk xjb*RmRp-q#s{2u|Ud^g(cLA`D=+3T=V%?yw;|!R-hHs-&mj9vy-QU2?{|03?MD+jw literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/mem.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/mem.o new file mode 100644 index 0000000000000000000000000000000000000000..9cba8a75004655ae375b56b722ec7faef5fdaffb GIT binary patch literal 7360 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 bukwfszr>+L|3R!|f06tDQ-@Xl^4k9!{6n#j literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/mpu6500.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/mpu6500.o new file mode 100644 index 0000000000000000000000000000000000000000..e97f1ad101477d6356eb3340cf0f61bdeae04009 GIT binary patch literal 16840 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 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/msp.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/msp.o new file mode 100644 index 0000000000000000000000000000000000000000..3ce7c11f25817eb1eff2911028d1daaf7d34bc70 GIT binary patch literal 3320 zcmbuAU1$_n6vxl*Y;;|s#&o4YB~C(YqnIHHDvnq(NsK{BHQj8%QgC;6c48Lyb7oeO zie#&O(3V0{g-Y9pq{)K`eJIvap%jf4TIfTIP!Vh)NgsvMZfvWxc6-k5y~#MqmO^hb zd+z<+Gv|NKxwEswT|EcgE*J3Og3n-S#VNp`Z)vU+rwaIB4R|UQ`6mIUb6b>mzz?Ha zmAVICyCA4mDe~F<P%VPzaDxkWskqnSftR!z7}do3x9a`M-Zl^(V64OAg+lPA5V{MH z3y|F^3g0hYH6Xjr!(+~$oc>~J+ZL#PBEaa45y&j`xuzCSKkS8|t45LADj}ozAUL%O zf^Aih5!aygLuRG|f&wT*XD2TND*PZ1gZtzR?zz2+9Qp+^?dx!kwcPT-?r#c(cW;1r zQb3)VjS!4fqtC~#On3tX&tvS+C08c57VV@fGq)asZ%kge^X2OC{D+u-!`t`sles_h z6S?;T6S>a~y%t6zN3aGl7nl_)rlSTt((-WqDr(HQa)EFF<j9-KW3}2nbQa(m`4Cs2 z?e6d<kQe&er=Fa?eTC|8^FU@6d)wy4e6eR?)YE++haG+*arbhr5MQ;Nj}fn4&U3`q zE$8@rjQH^qJc?WgFq(5Kk0WkH#>e6k?a`Vzt*M4@3x#LN-?{f2^3V^i;@O<TbGiNe zm=U=OgVZyZSn8K%!1WW@t2xXiyl1Ib^?wwKy&}$g^=TQM`^Yi=o!ckI^YiDttrL|$ z<~5kj+jSy&JQqBh9@MIHqt@{yty>EvE#h43J&ft$HNn&MUL?J>xj+tUy7|?ZG5-mS z&Q0KRFM(`fZDFiw_F}0&bLS2;xknmmOZEDvhwEXe&Rbs#c-37WKMr`Qo8U~i7S3$L z++L?==I~N(^FLE={%PVoH`CFFd7)wlKab0}hvxz>_VtPZJ(JZ<OB_&5F_t`~#$!=2 zZRlzu64%9TQT+Fn^^3*~U9)1TWYMd9JTvwh#aeuOl+)D=O>9KXx);!UyAJ}orpHd{ z(Z$44h8RnvjZ|7U;zMG8%1Ee|h5HoHC>25?i}z)dW;UHp84jO)rDVE0JNJo=-A7&) zgQ-+p8&G3OiYZzHy4c=?GW{{^LA#+1#4M~cYv`gZwKlajx5!dUtJtU-i6)#iZ{JQ_ zY7uFtrMY!C_4eNeeh0t<zZO>V5mtQj0tooG(hx9`bF3}`Qh9n%Z``){LEE+f6}DAr zy0vJQbHW0wDmmFc>v3L<@xzQ&GP{HEG+Q5FrO?ZwiZQ!6T81Al!~4r{NSJ9!gN8wx zbfyyNtfhAvnv_-zOKOIODDgwdm_@eNNNKuhb_`iMgt~i<cC`0|jvhSN*A)x}+dF!? zLZGFRW-6}tW-WYH4A9d?ENS(FsVB|;tchQPJ>9z1m5u90p!XH3=OH_SXV8|;gebrx z8|OVLZn%q|u+ib~VO&POw&YU$tYmyM@^v;|#W>d;V|)HGacUUny4-(DnfQ&i`1bsF z+BntQ%XFI=cjmu~ajwh#_cHFRYs41cu6xPGNw<;dUS`~>`vK!zm-~+~?$rIu7T>PR zzmmMq_n5ASKi`h?@-ohKxql_&PTl=BzMjP<bD43{wdeDJjZ+^6**#;7JNs~jah?zN z|A=vCJ|LMx2}_NjwTzM-;4?#ytCFP;S|CMLO9d%nnjje|T9A8-v=<~Tl}PAGi>39y zjffGj1<T$<3NjkkSRJL+@^{T<+@QCo!X21B#=flIv2&*->3G?G4YSWN?vR0pPQd&r zhJEbB1;uo_|JVCl@Lr19ikE#nVgdiQL!9&cc^(Qfnm6NRAHTDolvnK#=lnjqWi5Kj z^BDWd$T3IKrQaT|&-=FqnX`5ZbdUYCoS}tna9xfz;AExy8%Yeup^{nrbl(3DO0p)+ literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ow_common.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ow_common.o new file mode 100644 index 0000000000000000000000000000000000000000..be79548e23f262991b48257d0b92e1ae00d75998 GIT binary patch literal 2216 zcmbW1%}*0i5Wr`<exnfqjS&;y0SzRuX&W)Ar}7~m2?C)Q5;cLPeYKlxySQCb2qtnc z@d^nCZ*cG+#=AE|{2%n}(SrvKXQDH2=e3(<8xx1{X6E<i<9&5sJ(!tD83t%E;1jew zO#yzKZrOQd=Ai>FkkxZbm|yk(=uPMX{2vFSWAD&-?f@(TY%Ls`%ik#WU-QSCpAU{r z*f}Z~2i*YME2(@=7%<#}_HGJxzMDNCu+Fa50&B0NAa_(4IXK?@@}BzWwUEZxZGe1^ z`=bl6rp7kI<k;AK(LXu+NGy7uTddelO_V)f1QjVphSq$q?6_$8#flTiV(`M3B4=fX zvgu6D%49{q?N^7;N)HSWw=#leGU@Dan|_Sx%um7ZKS@z$;*9{9_?ILmR*K6d1y0^< zC-PLJzRtYOoaRY{8UgO2rua1bnvbGyMEdGZ(<)9^<s?=nL>?8hF#aT;!FeMRFF2l* z31=f-Xg)@z*B+fLwc&0XUPs=Ao#(m8IO{FcN%h~f;d{ub&OU0Ai=hJW8p}nmTJ>sH z5&G7lV%JKpd?>4vGAKyjvE5m}1($q$bS-y5+9h!6(={i6z7kYrbxNiC<Fbr}v4m4A zduWAuUPC2#jWN|wrFo4)(XLUd=Wi^?XHGqk{#=9WU}_k<DC>b<vC=p2f-gtNAlt;F z=R)^JLi|c-s_`k?-N>V_V}<#(7_UU)JJ=>g_eOFR<D*=!wih{mN1F1IE#ml1Y07K1 z;(hm-$JhC;P5e3L^hr&zO-i4M=4qb0&RTOF2UdNf8rZ9-13%OiZTZr*tw62^V3q8^ z25Yrm2TM`%$+BFpXuDw1(~>oP7~JcBl)xn15}b)8=h^=l<IR0A??p}boM&IFG+(}; z;wW@}Wa@L&=W~a7{EPP!d6ICs=F}isRI^=vJU;H<!(3wV{9njOgc@6eUcV+8G?Ml| z&!4&}4x~InI$!U90vYw!?*>gJoxIQ|8n9-patM(heUBUlYaH0gljm`Qe%JB-#N&IX c8e0tG_pkd?3<>@Alk(s4{^wLwYl!Fn1p%SG_W%F@ literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ow_syslink.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ow_syslink.o new file mode 100644 index 0000000000000000000000000000000000000000..30460c75456711b5dce4abc6e960daac2c45e3e2 GIT binary patch literal 5944 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 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/param.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/param.o new file mode 100644 index 0000000000000000000000000000000000000000..30cf4e65bb813b56e70a9cfd252cf9a569b13ed3 GIT binary patch literal 13920 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 T(_^Ofv|dcplTJ7N>0bX|#l+lj literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pca9555.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pca9555.o new file mode 100644 index 0000000000000000000000000000000000000000..6dc31863365b90a6f259b889098ba06dd9541a01 GIT binary patch literal 3264 zcmchaL1+|L7{|Ze+16;KM59Gi>_b9{!3^1zfGZwmcS)kKG>~j*p~5<uow$peY@D5x z*c415w_Xyk=eG1>dh$?c4?Rfn;GqRCEj{$mHaU7|34)6a>G#ciPoH0QL~7{^Gw;3M z`@jGD&+MDY?v2s%SUQygT~hE3Jnd-;u)ObS+liVE?1dg`t)hPQB)}Sg)3GwklO+Xt z1<<);Re#=I`fh#Og0=5qd2(wiwZ63jYa3SIR}cH3a|q{snufJ6PCEJJw9`Sao4;Ey zNaNH$a~ux-f%9mb#sK>_(r|5Ss<56p;(Ykqp3jax>~lKXOLuS4T5l@rC(6=~SvJsz z)>N43V-?LmB*)2Hj_bS|n6s!eqgPVi%^fFCI?70yYw6733g+CfGJ~5t5ap)4GACuB z!(4Cr1=l0pf3e=bxxN)Rv+w`Bz86^!_XfatsdP>ajKBSks<c{7ukJSH)J!W-Vcl1S zq4}US(`aHV@am1w_rit1S9v=(lpD_G?QBjBxWViYwuVogB5r3Djbw*&BawUJiJp}V z{I%0fV0C?x04)6LRxEUq<+TXxej;Cw_-_3H<SD}^dP0%C!Cd!EM+;tw+|1Jn>>M=m zD;^xgx|iE#<s|S6$jL`xO{E!EP{F#JkB6M}tE@ZD^-_ZV6V~4r`Y)N^XI|s_Tjmbm z0L_17ep~QO<|-W<Xg$n(ZhmBB#P*<n5&COzF;`lIn*TweRtxmt#kocZ)$#H~u~4o~ zjEzl=R;raku{>HurFXTs(ALU|-wvUX^Uz?@cWcG#p|6KZt+|=Tm5GILej%LnuM}AJ zZh-svIl7{rKjnwUWR7jZC(2UOcZ1#9XK^vU5Bl7P_bc9`G0E@%aor}Q_uXN^_p?5a zT(=1wVSYmB&oh_)4s+>G`;UtBDaRO&p?~}=#o#^WQeRKd>wPNo++@AX^Lc{*E#^lt zPcOHr()(Kaf6W@{e}}oue~-EJf52S&|H)kXKT7cbo4LH7`|*0H$UKTU>CNlC#9ZdN z%v|QFGnf8N<}%Mm33~bxLq+EKfw|0cpSjHQOM?HehQGPr9wg|2-#0SPdFC>Y!(8UM zz+B#+vf*#$xs;%vH}vM`1$O)TZ0Js79R_h-*R8;Bx_0O<hG5s+&;@(C-3Hrh&CdFB zVSKw^`mE4_ZsDuK$>IJA=hnl|WJh=m4|-2Ic$noZ8}{%^jJmW=4~z8s=`H5+Kl)v< zE>DX*bernac#x-@e~;(yC6Q6|`Wj`iLAi!C;9AdrUvS=TPjXPdThsv#)XRf=P)9!j m^!obxDWA-a2+s0XipSJ3ie6tM`o7X_zQeya&S@dna{fPi(3va% literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pca95x4.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pca95x4.o new file mode 100644 index 0000000000000000000000000000000000000000..2d98dbf2b009ea3d660cbe9fc254aa17f8f67025 GIT binary patch literal 2360 zcmb_d!AlfT82@(1N=>5FB2w%n5-K|EZh2VgFzco!NQQ0{bXdpPv0YMEX2()IXdu*~ zg9`>7x^zqG(5(&;5*_*n>Ky2yYlx80V&6COy&Rvrbf|Bc`M&pizxR8;;eE5S)IU5B z4uwEQ2;Rc}NTL8gkM7roR~k?Q)l{t_f3+2$2w?1LRm-DE0dWDayP>7O@_ezh_+fnl zmPbn(6gQWkctIF(;^X{UY4PJr;+_}U7t(4&txXL&i7$}z(BncQ&6gJ6uX`GMP;ABd z?Xl4MHgb0wV7C$1J`F?hMXM2C4*S|$dq$ji63c|EI#-&Zep9RJ+}Z>50BhT0iS?ZZ zW4E;U>5mWE>woOG0+(w4wjX)`7)&O6Mf>3On<ACZPgz+rHzOwVj&QTKNOaFS`N`ZA zR*sd;xwhrbIkt%FvF=zT8rP#S(QZ1^-B?9BItbUJf@Y$TSdXV(@kVD|1wZ!65wx<M z0HEQoTxh7I#&Hig+)*by{4oC%;-P?!*I|gAVO)-biW(g8)PlDb9MlK=3!d!6e3I*6 zGAiKL5GNghnWD>2kiuL}$3mR=H<;JV`9TH#Bj(RCFT?p6<KGk<W-T+`Gk;mPplu%7 zGB6ZN&O^q&pU7k!IXN_wb0IxAJkpmKPLB)>jP<9|sYKs!e;S$Ay}r4EWTxzb3%Qtu z0;9H>>05AZIhD-MOy=&6%(=63l5)$z-V1WZY?ldaD>-GG4nyqRPYrlrelPfAdGdtI znr7tro>uTWe;LFPmo-6W8E;Yef^k*9jd4}~N(CK*@g~&wd)5c!`KtQV7Zj@gxQ7C$ zKC_IUL;YYsJz-qcUu9g?r+%SO^`HANsQzCwuJShm{Ggv-jH`a+E2jFX#^<3>_3Ic{ z{WMqLM*{qyAJ7X6)2=yz*>(J!m6c;pnYwGwyP#)G*93i{PypS^Pfy!3u5as~?*bLb zTHv$jX&T-g;41s(;eoRytO+mbdjqdvjPuKIJM5#RPg3%|ko|s<arK{gMcLO^@ik;k zxeG7SRM$V|^)*Bagxp_3Q7niWkpO48{*Ho6Tfxkac!2qx37<J1!`WKA<o@#c$)D<- cgx)atiUxs@`$~wuGv(I5;{)xLM9%8^-zf(6FaQ7m literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pca9685.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pca9685.o new file mode 100644 index 0000000000000000000000000000000000000000..2d485ce3a80dc5d1e6b391af727cccd1df351efe GIT binary patch literal 2384 zcmbtVO>7%g5FYPyYBvoie-eQfXOmPkjgpmZ6l4QZ*G`-uVYRBg2oOllX0vImBzCjj zK%yYkNE{*oQY}T$BOHq23JGp-K)6IIYHtAvu4zz#s^t*W3z0Bk#``weZ0rk+wVrw3 z`)1xZZ{M@8B$8u-#{;%`;43&7*(ku~v4dEyg)%h5aS*;-PkG+^IQ8AzWrMX22I6og z(1Q>7djmaPVxXtLFVF{(fZ75V&+V{<EPw(~Ox<LepQ|h1ma7a(y-;j_l=hT60j_qO zg7$6JF|a1cyLVaV4P0ui`xF?T^1MgsSh>2gu}=BKBMxEATTBU9m*z01vs+|8(NkUd zqMQL(pmpvuVc^~flpZh`_>h6(gW`|BG4BmQD5j2M&K5v)!wb<ZKRzuG{oM<t?^~hN z?eWb%CV(=rbm^O>%_jrbUxfC`-{%%q|JhS0r~HmTy@h#A0t{0Q<=c51JKd2a@_Nlc z8g*TbcR?E)rdZzHX3YcCUv=e&T0gfi?+&i}%ii7-_4GgB`X6%r6MiU-d*PyQ^vwHy z?BQ4Jh5D$VrghX)!Fm;}ry=h;_HhM#4{v%vnFe`z3-#YdUBtbE`YXskhWd$1c{YC? z^}ma}KCXWf^>4Eis9WA0sr7N7|1-=h<9hcT`bGY(?S2}KYlm)pWaN3VfBgI_qLR<g zX)|gzCr;-L(VWr6*wAGoKb@V!$k1l8rmmTbhAu{>@K87yib|od*smJ%Ll_0mo+Vrg zi8K=mhKF&N8yKB+FZ{VzZ<^J;2>=W~^^9R9x1Fc~^==f^X>!xy@fvazCzyfb67tM8 z^z9Cv*Es$(`c@u0-Lnnw7aHI%BTn@{K~MIz<={>9_3F<dPW%bpvdu4YTof=s^IHx+ zLQnjl3;&$svJ1b3c$;J2_ILcUrbeHO3`-iEUV_t8z{lBK)`ZM>@<Ke8%v=~7ODB|! z5{oAj8JN<w+4y1svSDpXf9q8P&s2Qb)a}fIZjLURS^W?prC*91A{eTf&F2dHn5i0O ztgxKZ6tytBkJ_bbGlx)~Z%rf<qnY#Z*Of#Xl6-$Ua37m_Ozt%vM-jKqmIX|3{3PNn zJSMls<ELEsAdbo0^&=d2*Oxg?^{q2%<^R#3&R-4c0DqtEIv^F6=S_7Iy=ho}#*Peq zPL)i3$pmRiHC2!%3k8sjyfx7B^YePnwB-EnZxJhyboWh@5hHtv>$gTn@4!i%pff4k z1n#f#E4{<VKJ>JXeGj@g{tU<6zc8z=bveCO!;Z-h;zKq6YkmlGNtb&$d;R_Uh8!~Y zIEonM2Wiq_AMk>2I4}x{OXl?MwQ2r72k&ws^@#s<NA`~}ckc+nZ7y_^1`e~=wITXF Qt(U*b4@BH1a_`Rn7qw$d#sB~S literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/peer_localization.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/peer_localization.o new file mode 100644 index 0000000000000000000000000000000000000000..cd330f18f0c8c0b825da5c98c65810dba126827f GIT binary patch literal 2032 zcmb_cK}-`-5S?}_mf!&}Bqo@!t&M?bH*KQ{aA9dtY(fkn<)lg7ZkKdJ+pXKh6fw}C z2NFEc=t&Nepb2^+(ZqN_i6_q(J?q(v1}+>3&M))B`di|~-*ji@{WouB_V4b(wXy47 zj|cejz&kjOI0~?N>eyH7t_rQ-hixhStw)x=^1lq#2{(pmE9(F?FXD`o1$96lhnmj= zSDph*Zv&*_KIlmI!rj2(VG1b!VD7`KmzZ}TK`rrM{z+y#xE$Y`|FYW#`)|Ozyp{|0 z2YqT-_N!Z&7Ekz2Cv0I`Pk%`8n)RTy!28`cb^l=Q(}ueroNXn5x^NykFUV3Yi2Vex zpEUNehP@1d^iy;7A<pB&{6)(5V4Vc!$1#6_W(nXdLpaOuk;V?IT}A$)w>lw1aMj%l zyC1BNhq%Z4>cL#RS3BTaUxmoxGsefc07esuLAiJI=A@jmth}Dn%%VJH*|L)}<l%71 zwx-NHdbXZ39Yc3!Y(pMUV&PaMI-o>ja<66=!stc%`WUW6WwsNI#IDxWPrR^a!3Vz& zn-Qd@PYQs9zh+B9C2@7t0aoSjb*>&Z^1BiDxO6_d(j;&_q=a8W+v)0)E2@OI6VFd} zl5m;gC9*bJ&LyaB9^sYgZxYx~7N6}p{)^%fvL6XoY2*;$P%;cVowsx?Z{F7&(<&-D zgenlqf`vzHr%P7ZWN^989CHzqMbl{jQ%1QNn9q-s4pdTFd3w}vQl>tgux5&l^kg|X zGORo1J)=P$^SDraHaYT-{cHtfn)58q&Ch^AeEu#0zfF7*e@u8c^3RaZ48Q-P{#)XR zI{aKj{@w}v5Y}T$)VV>ps55o~AC&TJ!O=2k9s9`UxMv%AO>vBh14>qNG*B|-GAO!L zC>VG;|7Xc4!&++*<W!2Y)HmO5=MGu+{;~5@Ddr|ehw7(%rq5jdULC#902c`tzYs5k zx?ER;FO#O2zd=Oz_kd~e`dlxH4x>gmK$hp<5^!GMZM_1Ag?<97L_CdHE5q3)E<QiQ f#NOHd5`o`Y;99&chdR({mS3Vz-ykQF74!c9*FXs+ literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pid.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pid.o new file mode 100644 index 0000000000000000000000000000000000000000..63c292fd8a7bbfba3b3fc3c56d30bfc03b8c60a9 GIT binary patch literal 2184 zcmbtV&u<iU6o0d`z|tBDO`}cOOuuU?ZV8?2ZYZH>;&(%_Z6r!+Nk}-j)7hyz$^Odh zXdoPDJoVr~67;BCwAB-d2Txy9{0oeUhInc@^$NX|m`#0e_I+g-wjA&^-@f-g@8|c; zyxH5AF2A2L4A5l2FYrv$D8T&TXR?e$2}dCVxhxE)VC|1De%^S3uo{=JH@*pb##(C1 z%z{d7ruNcjK^a$!nKHoiruoTV52Uc};ejo<gE1rH!u(U8?yX;c?3!@ry(|Q~gYb0M zgr9bXpu3%hB{MA*q+zJ`x>U}9RMm4*)iQajvRIyR&gZP!o1ik2!pe<KSX(AcJHw!a z$XP#NY~`3#o+Z_?EmZ~5<GIXR*1Qmwa~f1Wk2#KkdVqe;82Xg3P9_)GE2lsK+P70^ zJ1o`CknB1Gpmqo4)9$U`Ht0SkNadavmYD|iaDV>|fp@DsitcvTAQ}5`F_!wJe%All zUo!9>)ZgFeUzRxw=WzF+{Mt@EQhq%v;&28O_3$6Y^Vb;8>p43;BW;V~vG=&X{pg#; z+}L_xj9{<uwpG9x9Wr3a7?q0T?*Zj(Pu`mQZj53DtS;&tFp|hWn$Yo`(7sXqvppT= zE?&GK@^c?v6-%vF-K{x(Q>?TC5!O6Wo@xiJ6~B&B;MV-mbHmR9Pt4e*sZyahV;4&z z?*xr0lnRrRgxf_ymSUkajW>P?(Yv08$NT+U%)XldVB%jtGBHz<jzmDejiNk<lI}2o z$Z)LgEPD(iKmLL@K$iWlux)}%ojSn3cmVzm=UL_W4CniZ@vj(vjqz)Y-%I#c8NZ*v z1I9NK_$uSSGyX2>L|@{eIUG+#Dt>8t^flumfq%<*A%U+mE)zJk{i^N4#0?S_ntllN z_DZQ8Nr+r+SDn!7VdZwaeiPhQvl9mRR#L#nUbxT<y-x$De%WteFk*{d$BP6sUJ8O% zz>c$C#}B+JX>(o}(-t~qH}pUE*zbe37JMy4L6~kf1c~<`8pAp1S&*LPxt&B#?~bPV z7(S>$<h28Eusb&!p|gxU40^n#rNFB@cIe#*!N#dLU@vz%V7skG!)u1I-2X=u7)-6j zerBR{GWw6dKm7byePI_)qJg$gY6s>UykZsBDL>WGGaO}{_J#1|X0IjcvU}vKW#VV> zP|jD4r@f^51w3)m^{>Z4l*yMU&il2x!=T<H`X13q-v20K$=(ryJ^rNKCnZL@u7*ya Q&@Vp25A=d|WS)%w7q<94Gynhq literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/piezo.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/piezo.o new file mode 100644 index 0000000000000000000000000000000000000000..d7044fb6242ac42f178c71fedee6d9622b92be8b GIT binary patch literal 1368 zcmbtT!A{#i5FO*T6sd={NGMVd-AYjfh^*pBNJ&nvC?F)%1Er@Pz?em`l*H8DN`VVK z^aJ`gz4j+sapV{H0y?vv0e3N{PGrx#H#2W{HtUPc-L1JG0I>jm!W|M8pcUT5u?u5Z zfTtAw2p}FL0PAny+aC4~euW2rUaRmoJ(LH`3nyOkgkgJQW2lz5KYUXAc|J}@Nj6m{ zd7<pcsCS*yB0tH-7!~O#vnI7)3!?_Q*XebmfsT4=IVmO`jJhi;#Op{=ChGRq-9{T< zG~*+<zG+H^jVAyQ;;+d<RPt@X5%*8>8S+7`UMdz{{e2yxLwM}6_16-Dm$iMiIH{N? zPe$vJt>Q!VU59A)%KFU5jD?5O%$(;sh4u`xa%Y-ZXdhRk11`O9N?UOsjonLZmfxbS z!hB&#=N56$TWw?{Uh??o+~o6$d0(gfKt1U4Y+{om^tPz{NTR}w6K&1Rf<8`c0{W;d zL8tj-Vy2e${?{oKp#S!XCloV&@9{FX(62C{Gm3>^e>hhKGsdJ(>$oowz1)Mh%=<U? zJMv9N8g*MkK$;Kr`}IDKu$MTwZx}k0^*;;2Ui#~vNByVricy~n=MmGl=Fd-@zjtbF ZvFIj&n#sCCy}+QU|C0NMQpn!#{|g*EWx)Ud literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/platformservice.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/platformservice.o new file mode 100644 index 0000000000000000000000000000000000000000..66eb6d4fb2c8536acdd12a118ed4377d4d633fa5 GIT binary patch literal 5200 zcmeI0PfQ$T6u{r^Y!QnR3l!-e%aD);j7)$O!+4s70wuxH?yikV54*$gQC9X}X9fbn z=+={IJg`X<J$R_-p>XnI>_JU6v0j@-jfp01uU<?8CX$rmdo$k$AH$9pZ-z%^zW09f z-uvG7=I`?E$i!$g5&<C*_!9OkK>=2d?dgW68qfeoVSD-OwQU6|w<G1mUst1R$I*2o z8Ch$_(TPH3p%E(Re(Q^<vDL0BKRr^K*U6Vyrq0kI22JfTxL%Dws=Xer8w#YVPj?0~ zM-3hIb5-;w->^9I=}wA#DMvZx=g34Mb??c}zzrxTR&k>oQ&G^(ez;4ye&5-7QRMv% zb+ggXr_^#H^Bz>DhF~dD54txe9;0znf%R3T{P2;|vR+kMy?Uys)3J6J9)GKp6Iq;- za+){~@%tG239gyqM9gip<(T)ecEKVsIM#6*n*Q`^^K%RK2Qum%ZQIM=c>UgJfGyGE z%+0ut{Tra%b=dd&02MrkD`>BLZ$v8{Xro?<VJ{RYKa8I6`>&#%xf#(n8jP*&<?rs? zQ_??E41l4NPV+@#hW_c1a#Kg_Oj8FaFJn!#zLrZ9@zm&K;`N?n;tJY_a@c{x4jgvi zumgu3_<wX@Y<T!JwQKC+8)~Xp%vrN$wxG@wZPlG+YP_dp7iY3L)NE@u>oUuox0$MI z{XPA?eY)1yuXdSsz6Z75?r!2*pGrsidi&`u{Vzh_UNLyQQ_DrE`DF&6;9o6KFjG+Q zn*oJp*)OeVMkPKgxhQaCzcX5AJrc$b&fAUt5vd;4iwEfCT-ZaL(?<sRPjOo+2Um+< zIRWwOImiw4i%9<TQACo#jkvH4DO7=H$Yr10K<kBl#5X<+;cFrM^AP?+2>&&NZ-($X zY*ei}&xUX<gbyHZ!VZ;iB*}PtfbkIjH$(VaJkJB3=Q*C|9nPzqw{Z@ooay3ymUo!F zkhPd*LFeKwOxg=6)0u<LX((v}=LQDB$&vD^4q0cskaeNxB$u4DNW%RoW@vt9hS{}` zCtcGL4(YLp$)Wf}dUA9$Ig(1J;zJW7X|Qa!MENPx<#{&G;7U4~ijR2*63k-R1$GIO zFn1_dwB|gVWQA#&nWYjwMhXR%8!uSJe711SKMKy0lgk$7_WXC(J6tTxWUq}e_dKI! zq?StTqM2vlxOTxREzy``g<W^vGp`ZyY}l7Ys(jdHrps`(Zq^D0rI_Oe8C4YDt(sTs zpD1ySHGAh#oIC(=9*N6Ofz#aOcz}0uehRt&Z1O=D=Q{EhuG28cb@IpGn!7SBae9^s zDRCv}Pxm1SaoPVXAA6jB{0aGmE95WMNT@3D6I`c(?oSf(Kk2L9{t4HKpOSbB+9bhx zx+E^=>6N&g=X?mK`%~nX{om$1c)rS<2hZ0BQl6Lml-_<t%JaO$Z%KJ%{*mM_KW#sj zcvQ;snUqKNzaw$k|1Rg$&ofdU@f;HC74MfHxqmB;blnQR$@xhf<?94AXDRQRQ#iV| zKh6rxW;s)H*`f>DwCS3lO*sx|c99Hn@6!fBv#h*_@kx+p1y?HZKdCB4Q_0fn%*$tZ zdw{?BdboMuT|w6dt=|w1d>m}#3jfroN0U;~NFweDdJhv1evu5yCx-&K1j>O|kW<dE zcuNHGQOqxJA1aiyUjROe`Q>Yn4vBbChk>kC{TF!s4+4!9@sx|?0&W!FONJzE&-%ty ziIFPimB(7GTIBI<yfI`p;U?x6{U;vm9U@raFWyx#5kZuI3G{EiTJeK)0Ohhj?Cyi{ F{{VSspeq0X literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pmw3901.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/pmw3901.o new file mode 100644 index 0000000000000000000000000000000000000000..1bedbed93558a8926382b83cc2d4848a7c4cb5a5 GIT binary patch literal 1008 zcmbu8!AiqG5Qe9XXhjee526QG5NyFNNs5PhsuV4PdMNeeLDDoOfhH;GiuI&NAIF2> z)t69w41EHfsk?SrbJB%n{`q!hXLpjlJv=!o77Cz70iIy$DGKne!NvqPpagTM?%L1R z<?AN1UTBhrR<pU!%B{0=)=ATWA9_*3`f0{Q7_futFiZQ<09EFPkqCTol?ANM-KuLl zb?&&V>}7Ekm0hV2=MJM4$9DIo=P?x>Zw5X-O-{a*dn4k-yl~{!FTOA#S`)Mg3oDyr z5y6U9w<H7BC0~;MPv$VbuGMXa`>;I*=^Q7KP`Vv>z0*`gX#&7UH?i=#XhrsIL#0G8 z7QlO+@PKzmBjA1-$3Y@wxqq7t+=03<YwXmJ{;I*%Jr&+ULHTBfJ1W4iX2*AMoqGA# z{9VkYJ#C!&Q1vf#h+5UxZQft=AoJd&rT)<CP~Uw`@_Dr8*=gxs7NGO#L)BGm8AV?H LqYN~kh?)Ndg7iwV literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/position_controller_indi.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/position_controller_indi.o new file mode 100644 index 0000000000000000000000000000000000000000..de200ab3c098cfa81390ffeac62320e753cb653e GIT binary patch literal 12064 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 W`#z}LtAD7@QB3~_1KA<B|9=Aq#u&i> literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/position_controller_pid.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/position_controller_pid.o new file mode 100644 index 0000000000000000000000000000000000000000..123e9a3fedd8f76f3176e589a24aa02fe0c26775 GIT binary patch literal 9440 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 YW@&yh)&0;|Y<!PyD_&<I)ed*+AJe&gasU7T literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/position_estimator_altitude.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/position_estimator_altitude.o new file mode 100644 index 0000000000000000000000000000000000000000..661302b06c2fc3f14784ce209afc038df264a423 GIT binary patch literal 3744 zcmb_e-)kIo5TCtG<29)^S{sY0m(7pXRLyZYEhLI`)0kAyilo<4lZU&_-llivl0Eh| zH6_rVqL2r{M*HBC;DeC#AFx7CgH*_a&+3y1zVubn3VAr<%<W9_?OqlX{FdI#eD*Ul zpPl{gH+y6J?TMJCfh-Nag}q2n0Hb}+Hyf@APr&0)U%tCu*J1U37u4gXk=VMRt#9dY z+ia~)KG0*gA5O>C|JJqJm~!i(4lj`XC}w`A1Kf;3?5!VSvAI8W$XEcYT1PVRNvl~y z&dpw^PWG>ugE4>+8_b%~Vb*$vdlL}vPxQo3Bt~2GZtVbcV;=EWA5NcLx6xW@j9bi_ z)&jK~ov__AY$S|h1Bv@xW<7TtYPqve+qy8iUSGbqwxMT#p<Wi&pP~L>j(lC;IXz$) ziH$b1wgHeCJ7m^ksO#)-U&4%IEzqgwYA^QaAx-h#gr;c?9l!7FJX2r(zA=xjcGy0G zwJR~4&0(ky;B2hU#=YIj-T7*=+PCJ-;JwBV8VMbqPgu{AuXp#vQR`u|ZndJ$c5}PF z{G;eZsQ|OHvuE<J-8chKJ=6AU-|LfiuA>i7b}Qo*f3)ONfXktvT(CwfrAOi^uMxsk zr!-;NzRMxSQ;me+GF%<C?Kd1NKVvQA399&RIjc0m`o($6ck)v~0>+of#X7EC^sg}t z9|o73ejjT>0^q;m)rdM#eNRU4qwv-UeiR;6CrT%r8ykDo7&!ONMI+<7CA(l17mQig zGyH;Mj1HDPceYqU&$A0f-?9Bg&oM@l>A`erXe2q5HU=zjeh|IXsZ)d}hYY$hluDnD z5YDiMwgvv$*^i~~djbIH_;0_ZW2NxwZUEG!dFgPV3G8hkQFwFT6Uf&TJqA|{>NM+l zvBBTNMcFvxaz!ka)1mn(2lbnA+V7geU!nrMbcl<)YlAw?_#84cg}=6&L3-MhC~&W% zc}jU+9eiV-A>Pr%2KXWZ|Ay;G{$<X+8^Naor|1{mg)E;0u9vk+e$ijdJ4qY*m!Ln7 zhX$SyP+9b5E!&xJOC|S%;=+~lE>cdXUr9mPbFNB0o+JpqJObHl$-Poh&YEntY<bqa z3Q6;EK84_XIs;1?t1@@a@iRqxZp>X=@OL#{Eay?kB|e%UubgWGe4kx7x1;QnNhx@z zf)BHQ1o`T&e3S8`Av~k-)xDKtyc78<o@e~IP@QT7{xRd!SFQ7@f~z_=7$^NI{~qJv zzMBzser7zZ|3L&lj{Rtb>mO%4JWqr1@H|tD)AKqOlx+OQ*{4q#_3bo5c$s5)?!;H; zBhOdrRGDwG75;IK-&JtxyTY-&Kf;$;7ef3T$NyHpywhR*hqz8yzrnc4R`f`}u>KVD z!uq9eSijUQhw2~WxT@eZAL+NE;57fIIsQ_?iJ#*bl9g-ozBPl^_X1lG&vQyv(s!18 zNaA~LL2{;2fu!eBK=h&HFos0JlO?(L5ffmI!$n1HcYfZ%)8l_x23DahtL{lEY|;;| z0$o&=%vqo=bZGCG0*K`grA^MK&vSC+xyt-cGOq4%DzV0S1_jEJe1Tp<hp=$I^bPZ6 zpG*D_I@BsH09(obJcLU<mIuM#=jQ&oSdh3BkuR``&VKXT<VG7zr1{Y^lKwKk_Yfm3 z;rsuM`>)|ObxFQpbpG$xf8}7nF!)BPKjlik^nV{QqNMP@x~eQ_S_RRUxv7?=KEnKi s^Dpy7IzQ+g4EHCQ;d`e-!@Qw?qCi>FSD+`+*)M;MKV>RHWE;-^2Mgm@D*ylh literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/power_distribution_stock.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/power_distribution_stock.o new file mode 100644 index 0000000000000000000000000000000000000000..d4c3d4247368ad3258172690681338b275547279 GIT binary patch literal 4736 zcmcJTPiP!<6vyBGv8FNBnpBLbZKp9vQp}Q#wxp%#)V3ytR6_nhKxH$VOtWKlcb3^H zCIob&7X=R~M(Dvq;;9u+BFKWlikBX|iO`cMc<8Ybiu4flz4^Vj^Xp{hAnLEozTf-o z_r3S~GxM8G-@7>eS~`^iX({*yLQg0_<3QLqgRTh&;R)DX{qE*&2CgC6*j@ep2HHc% zjLgq+MSaqzpfRap8j}=9zJZtYP3}`Z`fg77LEhcf?V#SyRO;qV2EKsot(9WCxox%I zS^?-idcO-E90FMXG!55|qYwRb9X|>%f){L9Y1EyC&N+-}q@g*7alNQZk#>YGO}j7D zZtjcG#^j~3Y_=<{A$e>3)KZ^{RP#^8hs0vT$-OZ8kseHJh(MdZ`F7{aYq|;(Z+3 z2RMg?tl2C;cIguGVwPE(#@e8HjN@=V*U}x(#NC?Qz&_1)t=(LawO#8pS7dG1ddwAC z*PW?zH}7|u4|Z372=;Dk*u-^Id$DyYjNLjD#%{eFAB**%;`**fHcuYfVYV-_eM#B6 z@74+;MpSd(vAqjU-B(|Ovrx9DOWsuhfnE~@p%WA|WmAk@wTfjMAk3?MiQlhr-l%yl z3fTXzcq1Wy(s=q4^aKAh|EJ?TkuaX5JTQ9x{28Nv^z|8I+I7qGCCjNAS6t8VOSW-t zu;#f}oHF*j`I6(?^Zr%OHcsb;2Zx99r*rvXqu=r>gV-Ay7$Ba@8}v<nX!vBpKp4|m zmW4n5ic@7`Pdb1M{)=lF%oJ_U27s#UZ5eoE4?Gr-B)&I)FX~fT-GiKQkh%CWg14A= zv#yQpS>^`&dZi5PV;UMY&b@pTB`Hn69){qmNwpBFJbU?ckSF9f!Vt{Uu6e4f^6ceH zL7tG0X^|P|&^*<B7fq+O?}u2ifmYU%QDDAG;M>S4j}fTo9#icnG;w);K~DN1*3o`Y zyNg$x{!iqjuaOAbXS~7t(Z=c30a{qV6V!8xSAEB=7Vs>bU&_rx-!k+qsFOK36jc|` z&5P>L)Xv&Mq3kZ!`Cu*-YL;hJ*lnGsEnI7z*{z<`zEpL5sFf`rAMwh0w|d1{9JT$+ z^m4dt)oM<4Q4ON5gpx?Yr)@m<gCo8kbc6g;_{w02W1qBej^S%VBBAV59Dl~C`uS6| zZgPhm#&wftg1D?<5AtUSa5LBvKP(Wf$$iRmMC0QLd^UlXm{Wc|58Z#%x{%AgME-U9 z!1h#xf2lCgc+|6@z_-kgMD%wO^jXwVi{=?h;1`%j^Uo&mH<?GrUrXR0C-CbDT%L>Q zzTgkX*1Ys}{yKsG$UM3)cM|l!C-8d-ye+N96U{I8C;bH1Pg_IDLAdDpHLl+$BO0eX za(|l|C%wc>Xq@!j?9XbPv{JXEanc*?*ECLgIdK~rC%ueY^2xj;uMyENvoCR^r~ERn z=zJxwspTQP%qu!y$rGJ#568>6WSo*GI$!nv2WV(@_4WBs<1`-nBZS&@Wm@~&U|;4T zbw`*RY=w`p->-4XZ?G?MqMv0Bx%x`Qw~A<ePuY_6JiBb=e0$l4+=As>kSo^fkn>z} zNS@D)pi3frN#xXzcjX7~2}N433H_Va`vG$EZlz*ZeHqTbwFV}@TjQZ;hjN<qfvtm| zJLQG<kN9-P)4G`g*#62JvB~j|Bd0pDKi#Z*o_X{a<9MVl%Yz)!C;I|klrtJX!SQ`0 z(wfv4M1N+{xcJX3!65OUw210RJjGDEh!^#v_3v{1brNY!;su%5iCe$MV@h$4g|vS3 zTu8jE-wd+2`pZ0^8yqi2;>Dl9PF(#OA4CREl<HHg#7lh_SzLXCl42WEru8ZD0^Y_> zT>W(_h;1(T1R$4wrAoZiZy=-kLwM<}#P#3MA@+GX581d|?Ka2D#?pV^JdIbh{(fZ9 hy+;JMAEi(AyF>NVr_>krBzEHB@A3RU5+U1Y{NKCGtWy90 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/proximity.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/proximity.o new file mode 100644 index 0000000000000000000000000000000000000000..fb27f34927c822cc3e522d8c2acb6d79694d1ac3 GIT binary patch literal 1584 zcmbu8&ubG=5XUFkYFneA7NyvO?+_#fvt$DmQxrB-4T6eP#e)aC-MpGD*-hDfm4qG) zf_DQR#J@mq-t;8mpCIVn|3K-fhoJM48FqcH2k|Y-cjoiv$J^Q6Cs%J=D;5gCs{rpH z^_T*Dw^G}km@dr29E|rqyct_C+AqPu0>E>x=r+CqtZWov^mJzU83c?l{DpwwI<m%o z$vqhFeR}=TdieFMu)Y9tw*SS4*4o;tsI+d~6L)*PuHW&3NNn|Dp*m7Dt2=RTE9jyX z`<*~ZU+u<HH0*k{UUM3@Qx_F44y$O@mX|fR9iexeT74yb&OA%cW(I!z%-geaCkJ5R zmA5RcWUgZqpu7COj!)b_<8kKLHRYUnhWH$nDU)ik;84b!niZ6jne$(whzqFG-ULW4 zqw08<eD1SO{I<cjiEkME8Sx#11HQq25C&>s`%vyfxeY;bJqlF1ap!&zrQT#Olwl$> zAuXw{1c~w@U#5{6*nIpbm*14_z{?cJl&0_R#-2Z*a~>sKz=5aJPiJ-7;ENQ0%HaH7 zmXMbyM$37!%{pKwgHU;!s4AXnhpkw4JzL4X0=w-g5A4k(0o(6|p^Q|f_Wzgylkuo< z*eK$X-#57V?JVKGo|kLHU8G-x^L2gQhrcVH-#OyuANAg-$F8oCU3#v%=HK#p?wrH@ z*>}*;HERq=x&H%$bN{RsjTr4NQoxXO7TFQJxj#SuJTmj_h~Om^eWjhu;=YVdpplpV Mmf$J}lA8Iy03Xhx+5i9m literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/queuemonitor.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/queuemonitor.o new file mode 100644 index 0000000000000000000000000000000000000000..b09db56476ba91f9d403e886a911eba6cfd8b579 GIT binary patch literal 888 zcmbVKy-ve05Wch(lnpi{7BkUG#7ZJDl*y=qE{F*xrZl)pq$UQ(k;=p?@CdvG&&3nK zIknZuF#}jSe|O*A=kwp&_3h0d2*8d2K4BMG7GTpMSxYk*!#==bKEEWB#oYtB7h;{| zX;G1tkVNI2T!qh4tco>yGRq6aGu22=W;6+tD4x+cA(K>=A$rkts(Bg{or$C5V%OW} z>Ftc*>)V$bdQSi_gn_Rd`Qb18sL#JNyy2y&3MC}X0BHSMs&t8{<Q8-5DZWuapHh_q zUDh?wOq3<BRDaRGGbbp~cd+M3nG@Tv^L#CJinHe2le0G4pIrSJmW<K<t3OArUNb`L z4rYSKE{VSF-$mbRei+@mL47~k^j`Hi-U1vTx_j5D$TT=Kbrx)28y}(L(=$`(eqUGr E1B;3|+yDRo literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/radiolink.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/radiolink.o new file mode 100644 index 0000000000000000000000000000000000000000..55639c9769b21bb2384da3f0d8e0f8da02e1704b GIT binary patch literal 8320 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 JByz9I{})MeHh2I4 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/range.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/range.o new file mode 100644 index 0000000000000000000000000000000000000000..e173bc95f5003326dde178192c8a4d404b7ea0a6 GIT binary patch literal 2400 zcmc(f&rcIk5XYyi8dM@GYDh@np+q6Eo3@Dw7!So-iHR`;(O^83rEGu1wp+H_h(Zuf zdQ%b)9`%MdZlb52JbTf2#6Q75fauKbjD2pmCl9`6J2RjC&YQRM-tM#P?VCNZ7|4jh z2WUq^0Tz$6{j~3<p%0G3$QfAajlul&mpgNq_i7Yidm1hcL+|J??7iDi3u?V(<i3q4 z<Eww69u7hO4#2$V)xzRBd>`E)-ND+Y_gk<zcVNKw{t$fJ&%pMN0kqGJIF@~Vu=aU} zbgoq^+6W4+Q}fU+S@}n_tY)450V;NZFu3JniJYgL(D0mkPLh#tktkxEk6?uU7vJo% z9+=5wuB!2wJNMMQ<5cn`t6WnB$5md*R@3pi>lDfr^xS-@?Adv*>Dp?_OvO`)<dm6A zsd3A##?ebmOb|DditZ#6sVm(I1|0VexAEt%D3uX;f&dKsMGXUI3Xh{cpemiifWsZI z&nMk@=luPsk7;#-{9sxGw8PGog8QBPoIg*Sw^&ccfL<*M+zV(<YyBB##bxFRjul(l z2GY-REc*KxpJeuz@z1uIhp|-{TLwRBKrUBtiVZ&ZKD%ps!Oa<QvbB|_-L!8wk85-E za^0$B8(z6;d5#OVcq{^Z_k%HjTcmea)^s++uXWL<nTPci=0iBoDfY=oN9mK*?mB>C zjd0OPzliJWoDAt@-D!=JzK3J!zsx_#d?BQlx+RU%Iu*xtjnn+HrcI5LUe^6W<D`{m zexq?>369@tob<;y-qkqi<@v#EJgIut5?ap<Y)L%Vu2`mLuX<oETb>2xQlkN;>rg=Q zq&bNpiSTrp{;>ix?^LU{|4HVG|7H}X<JSFoZka93&Z+>mCqwZN#?*&&h);6kC7-@G zR7du2ko6athre8Vd_Qbx4t>yjO>=h3m-k3=q`t&SbZE|$0Jc&;6XKFD>&W7L^27Cg zh`fcDJ|tgQ8l9;A?Q;KSxe)b_&Xwd#|7MYqM9wF={%CRDLji0V%kq3H@1QPK40kz! l&iM(v!u4rg9nX&J3&SG%`jGm<=-U&OF9-602-$}7e*+Gcv4{Ww literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/sensfusion6.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/sensfusion6.o new file mode 100644 index 0000000000000000000000000000000000000000..51584dcf1f92e6ed6a2cf0e47c15ebd691c1148c GIT binary patch literal 6128 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 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/sensors.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/sensors.o new file mode 100644 index 0000000000000000000000000000000000000000..8c72285903a6c5558c93c13f190afd9782f6150a GIT binary patch literal 2672 zcmbtV%}*0i5T8;M6gBu6;}=UpOi5(Z5>3Q-SU!}HhzG%F;(<Q457^jtar-b5W9)%H z0242s^x#4L2Rvzr@#@7W@!)}jH!m7ajUhU-`=*pfUpP3hJ2Sue&F{Uw&UPPPxpuWB zl>)XDyoJq-QGjgwX6(hG2Ya9$HXgozy^)3|>m5)-c=<5E698|Z3UGeC!>esP{P1ce zJ++FprvTN@(CXD5??&z;=S!E9{z^T_uR*(4`;~?_(9*R^IA8Vpz8&hFUabq@_gdTY z6SN-px1jzI>JJ^E{uaCb@#gw?7R%k(-+hYescrrBy0b&QXNP)bhx)nZ_4@f_sh*r4 zVgRGV!<U@Q==Gb<WEd9xIT4hdnJ{wHoOA~J=A&>XC}I@(bAgh+T8N}G;P&_RXLAE? zuHVUssMLp1wzrpXH|J0#m+ik0t6Oh0JFW2hZ!<!=>0|+<@voVsQOUH97}!3c2V#6X z{~+S21|9A^u5lh~_9T;rUF5b{A7+Od_J3Jd2hewJVJ68GI^uh}c0~KT8qXVeRpaEz zXn$nS@FJZTl%TQBD~t(WArOu6cNi1CMj#sFpD-qz{>d2sjxphmf&bLFXW)M{o;UFQ zn3GP`z@Z|`l`yKfKJ+|*o&p4wv2vh5_$s(B$4c`>S(0TXR1lV#8x!V>LgBoYhQsnq zFgq&ML@d<2V^UTWcMnE#SQLZlNGMrga9orZW^m1gC@9ZvVf*(Mf=Dv&mI%~{P~wIZ zg+&G_8C{IR#(dEC8`E(y+n5fCP4<LTNFEOh60Y2y9Lt@b!tE8Og-@dZ`{;&t7|*S7 zdU>Xf8aRJ%#|%7^$iPX&lV>CWJdLwH&-sYP&uAUS^A>)=!mnEROBVhM3;(5szhdEk zwD8v~{2vxRj%;k^`Lt@>JRirx@3HVb3xCAI&s+Ef3%_dNFIo8DRu)T2Oruv(;^#Pu zWKp<EK2YEm@EHJix>5nx4@>lf>ht?w=b!*>ZMPxh>HMkQH<$T2;QS;8t$2A1XkXPo z+4K0qCnJ55;<@JE)3X{k-#A~4b&(dE37<ohG|m2RnrQBq*H6>{au^Ub%YgRWf5*Ui z{YI}p;uhvb4Q8}&!|GnVczyo-dk{1CPC|J)RJ7B)P?E-b)nV-DecG)57cGc(DRK3? HAqW2e{^~j= literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/sound_cf2.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/sound_cf2.o new file mode 100644 index 0000000000000000000000000000000000000000..7adbba040211ff555d568e44530e7eb26f887fe3 GIT binary patch literal 10312 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 EFJ)2WBLDyZ literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/stabilizer.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/stabilizer.o new file mode 100644 index 0000000000000000000000000000000000000000..b801696e1ce13bd23385ee7ab54a8f47aaa8d113 GIT binary patch literal 17912 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 JzDy2L{Wss+zzYBX literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/static_mem.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/static_mem.o new file mode 100644 index 0000000000000000000000000000000000000000..027415b345ced177e5f1bcbf0ac0d3fc3b246bf7 GIT binary patch literal 6656 zcmeHMOK;Oa5S~1M76AfUUaF8R5vo=qR%}t!z{PC}5fb!J!ihucI$POl97oO;r6(f9 zfn)O%_!Wp7M~<8jNB#mwPB4?*wXG%M&>PZ@<eiys9=rSbaag~3{On1&R01U>_z1bD zP=N7`-1erX2j^iPDgY+|z=V0_N%huv2mN1n@!A6T^trP8Esrlvg7NK1)gAAg!T6m* zPTtvAh5^HXVZbn87%&VN1`Gp+0mFb{z%XDKFbo(53<HJ%!@z&ZK)cm?XsxujUs|0c z=>?%5^{s;>wRp&^jrt%>4x%1fX%I%71^g&wR?~LtZo_HXj%%&>X<SFEvARmQ?N}6X z8t&S^*`Tw`D*XICE2}c|q!aK=6HhH?NCi9Ta%l?8Ix(d_c+#oKm8t(XzKD3KkbffU zmL;xy@2m(slK5BYtN6CW_s)sD@dcr2tbk0;A?TugwZMZVV{av{{F=mJ$bB9KyD^LH z0BR$sbz$_h+hZMnc-U!e+V|HUIB=9fFSs8Z66nIH6U8ho<gH^~hGmIOc)c+g^r8Ug zN&0QZRrlvCPSRsNnl+GNwN9xQ@YWP}t?uA84Ojcr^VPofe6WYdG57aT^Hk_iSt;xJ zHfJLacGu@V*!#mF*g+5roy0Ngb8Vfcb!px7^cD9=y*wIFwuH*Y%b6vNB~-+TC){lO zeqES*5~0V5=9!cJO{te9uD>zwWL#I&qbT>#p`NF$cd(Xv>h<ptBl)o)v>Mg=mES~z z>Kh7>I;0m8<&{v`sMcT9<t&;TUu1nK6KURyc&YgnfAfgxYo{&^$^Qp(3Zmv!5PeT( P)vwF{HJd6?YQ6psk}r?O literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/storage.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/storage.o new file mode 100644 index 0000000000000000000000000000000000000000..bced41eaef9255de2be13d7de0d62fc89749c16d GIT binary patch literal 4744 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 A<NyEw literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/student_attitude_controller.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/student_attitude_controller.o new file mode 100644 index 0000000000000000000000000000000000000000..6a4d0f91d4c68dc5d56c3ce60ce92b5c37ea42d4 GIT binary patch literal 9504 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 DSNafc literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/student_pid.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/student_pid.o new file mode 100644 index 0000000000000000000000000000000000000000..be42fee2cf830ed6041b552da02e59e96baa68fe GIT binary patch literal 2280 zcmbuAO>7%Q6oB7)-Qp%yQ=$l>)Y{CVP#kDhw$-4fs>E1raU&{}hV;at-mEw5O8(P& zi&_<lic@a1QpL4B6dE`oaX=gfrJOk+BoIOzlAdzt1#(FRR(P|1L$*_g1B^90?|tuQ z-n{+shvzT8nK2Ad!+@`0Pg4|N?ckow6OqFq$bp@Q(G0Bq_|aEue;^i<9CjwxVaHg_ z%$Ru)nf1(0_9O^n!I-N6%&wbPetyWAbq^<Oz-^2fn`GusYW8k?`+3iV+i&C{+8%}{ z+a`RmH3GfOEG(H>E+7jd!3$itLtNBf=OV}ztlDB_&OK#Y!Al@=)6BBRr>qSVX5CQ` zjM>&_7+X8Sg>P}O>~K+o?4+H0*}A}(<-Q7{P{15VKs-c0cLIINxKGYb?6u<{0PUL@ zv>oJPYlQdQArRZc{7LV|cWd%ICUD`MVwRZ&@yqV+iww_Jdz75*jv-~N!^2ovudL_6 zpSw#2o<r96EBaTsZDAko?3Z8JWsNew>XlsK1PEEfKaBdX820NaySzurmc(Q2X?^q2 zCyVyPgUA@eTHzI|h&?)Bz>+b}g_J)9l=FRgqk4Bj#xl6MsB*xVmVaE+@tIJ*$^Iw% zI#kb|J<ST$w=c7$cDvyPZrEZg?TE#J&nh#WsJ#+4P>Q@DjD0V@8u@I_DbJLPr8%cm zW(7BD&Y)DBo|fDxF=;6k%d>dme;M*w&%*D!gIvskZvudczd^&qO!^o}z@Rru<~g9d z!zhx`)V}A)!^ZXKGu{BNk^chOrf91(`}kM);g=}SO^VM^z6SAI#19kyfcQPl|6}4` zYWzO&b&Y>R{0HK)ZaKckDf@6Vlc@Nm>5t!tGmSqcUex$s#JR?y8(*#at@uhOtUDe| zT~lBotk1W?7#f|Gawn0<6AhO;bvO3=rb?&NxDH;s)r}*3R#V~c`0;!z_TP)##>KFS zsrC{q`dvS*qwD!7YDXy-MCbf&82R-StPX<n-HI27@B1k~41TMl>7k~l^UBTQq_I4? z0!-k2P`#EYPxs{*u0!M_mkTLAoZ`Vg9Gvd;X6!EG8b|##P*UVKTqpLg#o%CnU2vAW zU2wd1vxzq-mHYpQ41;B9slTx#9Z#-!9(q1Vedb*|h6ed|bLBv5juO^Lm#W-H^>Cc{ zapL-yV^!Oi+>;zimg@<eGUtDdFJY{#tB5l_)c)_LA<A?cpIQf%x<ydEr_W)mocj3> iA=7I|1UvM}Jghd95QnD1^T-Cp2h{)5Nz~p&kN+F=_+?!H literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/supervisor.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/supervisor.o new file mode 100644 index 0000000000000000000000000000000000000000..f23807297da2782b16e8682f33306517e71d7fb8 GIT binary patch literal 3272 zcmbuCL2nyX5XZ;f5Fmw;#wnB*wTl#?6g7)&(W*uqwzblv5~`}$l_FJOZ=6lM$o4wB z8)TD1!WTeP>b;>S!nFrfiAoWC1)$d)_yTQ-L=TobvpeH`T{{BAi|m>C?SE$8KEHi- zw&y>)mQJNWMhbp{I1&o5_<HP{p=-i%c$2*E0L;R^R{7(cuKoT`ac}F<UQdHN&q}Gi zY1moH;Oj60&kr^D@j%Ob=#Rq*tZ{dH3O4Sh;h5F$m%pDdAHn3OXHR0U2Whx-@BUjG z2aoTau8u<?tLtYM(@?ICn-5_OPMqt&2J(k>fb#YP6mW*qI`*KPD#jO33m88uUD?}B zL*X!EKJRV)`UB0M^xK$A{oy^BA`SXWN!{Qcd;O0|Tb(cq)n5PN(|-RQSv$Y$<0SyQ z;s<UUfZi(tk=Lx&TB8f#_}3a;r?no6@y+qeo6VJmy~^Mlxsb5$Ct?ZzE8mgCggvTn zLN*9@242EhC>B4_XBTeV(#x*fsMRf}rLVc39@K69%3RxX*PI4=Uajr~b}iWSY`tLQ z=knQH!N}$HS<7qAp_e^>p16_I=}In}znJKg2vZo3!IORhhoLrdhXZK%H)?2DDLIaZ zfVvD14PF_7w5eePpGKNe`bxz}KiqdV)W=-(A2F9$>}BR@v^0cY4gImfoy8St9mYeg z`WDS+m@kEOV%|}bG<Z#kA~&it%s&t7#C%c7)L=r1BKJ!)Q-iw!c!L#N%qKY({w;Go z!S6HAGCyGZ0Ik$u6q;X-;E#{s;BU5V?<>c5J);IQ9hg}KyJ>stcB|Gc;h`|!vhZ=I z^8gQm_&A8qfqK^uY|r)`-?&uBU4lxb;ja7PSyHLAEzfF3LENYq)r!G&Ib>8M=S<9Q zwO6gchNc_1p1)uROIF~x&~9G$i**ZU>=oTs3!hOuoczFAaT?CowpX%)dG&tO#X>)W z8&2I@;=i5Xveu%PeM-*<4bcnNLmJnY{XN56^uqDb562lS@Gkpg8thA7xzuLoWMZB_ zGne|J|BW50e_9~gKiN;}|6)#k)l=thMXz$%>Qw&>YsknGLto+XQwX55M!3YY3YX7< z5S<e=L@zosq!A}Qwh6~gwxXB(WrdSo*1xWBnx}l;|91YOlX+2Jb$z72%tz{j;dh(3 zS<wbwWb5L2cEd6PyAyzc8{YzB#rMJRTnb2@GcIFDB7EYo4qc=ueCVRM<~EylE8v^^ zA4bPqT3huqq;e*`;h2<#kHW$FaTx9iT5nST+hs0T=lo;H$(8jy#kvoet7}S^ZgO6t z{a_z(I$S`9Y9{l`oGAT7ukJl!Ied{cPk}O)IsdA{$d!6BuX$wTC;RWRphHQ@kbFTV zI-}Na|J6vb9~q$aqa~GmS-%ppQT<Qx1F*>XVkBSU8|aMczr(^R3#mUL$(R0LAfx_S ze5s?#{co!feO{KAEK6Tf?latFOW&vXJA9}={d<sHdn#1rpF&S5P=@puM86A0<sa~k L4t^kWLNfmam5V3z literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/swd.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/swd.o new file mode 100644 index 0000000000000000000000000000000000000000..8b3f56100b928f709580493e8139cf427f6c2241 GIT binary patch literal 1536 zcmbtUPiqrV5TA7Y(~5$vB7%ZX43dIblRytC2rEU4Ac9g4;vsByU)Y6YSKhwhwwLxJ zc=QYS8NBxB(Tjc${Q`Anccxih(vuUC-^}mL{NB8MvpIh8`sG@y1!67u4vR=wfKzYb z2bCMZ2CS3!r3Jw-1lV~9C-1O!c<POQKTzH;`qDb!I&t4HctjQZdwaX8v;XG3I>_^B zl!R%fCb>~I(dv2klgTIP6g?9qsnwC48?A=^pgZXGhkk#cI-!|$(d%t*6YuvGt@L|? z9THz{bf!!2=WNxgxAMdQ9)4Dthf1zpt%&6(cdg==b!vWD=LY7t8v0E|4=%gg!fj-> z8vWnpjQh+hj;}Me5jRm^bOk#Vzvxr=r_4*Ig3nlI4UtUnE&8M{d4eA*{_j~eG3Zxw zfEZrDL-9HGBWRb<jv*~xWvL}f@IV(9(zt{~hp{$bO_&uEZAL|Uq#>Kn#^~phkuBrV z_|WPCqI{lN%rxaF4s8gQ5%+J}Ej+mNOuYDa9R4O3xx8ZD)oEXl4}Nhtv*8%gni>=F zjGl(R)ujc$YS|wb1^7`uo9WE5-v5F^0lMoej!?ky6Ni^`3w;kAdPac|jO#o~CC8*s z`^f#voIYlLF?n^tw1)G14$tpHV(O1H-FkUGvY+J3eM;O%hx+OX!6@|~9iDQ@nkchh wuhhRkIrzbe^#4Hby!0dI-$2gool3v5Xi7oDWM82+(OFf0!sM<bGP?Eu07Ol3;s5{u literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/syslink.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/syslink.o new file mode 100644 index 0000000000000000000000000000000000000000..b49a9a9ab162ac9effa81b370f67035d3fdeb183 GIT binary patch literal 7096 zcmeI1Piz!b7{I^XDHSOy{fCXzFw}x2p+no$q}zy@Zc7VV`P1DRh$dw^`^rxC&nz=j zXww5L8smW&7P%NN1rJK&!2?DQYK;HF!Gjw0YLSRB;h+HwO|13%X5ZUBwmTlYx{u7h z@BQBQ?|rlLcKSHIcXT)$3V~=L_yAT%f&$!aS(SBP)S(VG!1COOmzNbN+-ZcRW`J|= zhxMgfvC!ovlrMy#aO*l0wyMexi%R1HnqBz$x*i$a*xGPfhZFN5h@Z~GiEB#J!lKf= zu!v(b1ihqJN&n*CD{;YZuB<#P<liLu2FesqT+4Hx`1w&zjhNH1upY?+^xldMTwb30 z?43`Qi61@8a}x4nA;^EH;zjZEwXie~a7Dp!7%!S5UW-1y0w`dO&f)mnmwLFc4aW(z z_jP;nW5^4ni@wH=g&`uxA{zibLUAd_<++dj{Lue-QMWUg57qOI0t<SLzC^y}YxT%h z2%Xrs4&qc-WBn@)7^(1j6bdi4!R*BiP`HF^JM%O|-a_5UR{i`-2OvVWZ{zqH)_(}s zfH{ugdd3!8p#H`tsNbGU^u1gIg`c1%6@_(mCbZR=t<Vs~YuCz3{MRO^Z@apq@3E_o z_mMAAk9@7ZBx(ZakJfmnQD0h~``oXos1MZ!?Fv!K7VW>q`-45iM*G$AY$|J?%BnfT zOfj#2`w?ve#E!;B_aAr$G;Md%NbhzXbGJL|rmbvBGs(_P=Q^KCv+Qv%sXn<!<?0j9 z#>Z*4+Nu?(R-jseY6Yqls8*m_focV+6{uFAT7my@1x5x3`_+z-1LJDkw$o<Pu(Ilu z?WkUosRNxk$DXp%C^=@*@|fvOJ4}seJ)J#W-4U(3N9{12OeacRJ9iS-x>cI#?&^8s z-)oA0|3MA>u~JD(sd&Nwpy0nsO+inUngZ+A;5whI<q!Itvbwj`<1j4cbAeA6{j81q zD9(qZe1yk#&ewB$(f4q^iSuFJQ>Or)CX}^e+_iiU>V+hII((pZ6ffdpoZskU|3iWM zRtH=<iM_~0o;(}C-wfba0{BM({ObVzO91~9c>}I&9(!tHePJwkrTjMs@Qwi9kDUB> zVNXqzZJ2YN^V`K~ID+F!ank|Z4dAZ@a9BO%Xiq@<j2OoaHwBivKWljc4VWf#U2s`8 z5uKizVh-4DY}TFN9>{{Opt+cb$1QwvVr2ASbYOJi;P7y4Z+s#?5FOn+0j8aG?KC?y z?csLez_j6bZaOu>yhHv$O*CzrDJy#%SkAGs-W23A7@m%3#&Ze7W8fGG%ce2MLzbH} z&==UJI2mK6#ZEG@B7b!=ho{*z8(~@ISmvO^$kRP6h6{!nT3T@y7vfo_@DXQjsY0Y# z%$0kHv5b*R+762wDFzvqF>|wGU8Fo@c*ao1D6PzJUFLYhhLz^Gzx4fR#QWDEAok)r z5kZdUi=`%xOG#hejas=za~a>o`4;3&B`*MRi8o991&Pc0p2Rmx`gw`_2XK6RR^lRO zLho`;`OCZDdz{nrCi5>ir*+Bvd(LTHk8qi~n-bq5@!z>jaUYQQZ7!34nctQ4sm@{z ze@Q&dW$J3so|>q?&~K8stlz>p<uC3X*{htF*Fo$j<#p=~&_Bd^xqh7U@_HsXr+l_j zBD{G4`ty>$DwMImDe-L*#~(w#k$?HVv~W&&Qk~VJ8nl-2KF(FnMV*Cydl?t{yEvz~ zZQO_7Y3^*sGbTZEJ*U_wh2*fbp?Pe^0}b~b1GGup7B$DF0jYOueW00U#>b|e$*`<= zJmd)fNmkJcQ<Z*^i*EE{2fchfd|28i#F%PJ&xtMo?>qQIKEq#y=skksi1!Kceci!% z`5P1dUq;17KIBIG4f!m$pW*h;$;w<;M%_3dpY(nsH(?)>A<80uk%x|q<ns96@c5hL zhg`Bp(Qo_klkB^S!_w#CLq+lV5-AEIuH08DmCiTxeLS)I(VX^sk-w-v@$%d$(yRPO b;0+OoAhxn0(0gYk`*|MVuy3{cQEvYa0&~<V literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/sysload.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/sysload.o new file mode 100644 index 0000000000000000000000000000000000000000..cd099f07c8b671523ec20b7701304ad5a30fe7b8 GIT binary patch literal 5048 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 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/system.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/system.o new file mode 100644 index 0000000000000000000000000000000000000000..280cc8eaad2b005f8d86bbf4c36a267b6e39d8d2 GIT binary patch literal 12128 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 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/uart1.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/uart1.o new file mode 100644 index 0000000000000000000000000000000000000000..bb3cca2bdeead278fa4d4637273a5492340fa38c GIT binary patch literal 1816 zcmbu9y>1gh5XZ-{`3M3Dk`N(4Vk2275%^>qQ8-O5iosYyU>rvj6yaj8<&*pot=A|i z5H6?@bVxK56ubeH)bt=q3LXHS0A}uHoXf_knCNb1e)FH%y}gTH+_`^uCY1uQ6nuh% zOenyQ%t7o&p%1fg8os2rzh6`7Z*pPj^%9KhIHN>0$^rZ+CJkUM*^_!cuA^o_`jfRt ze--AEEE!WB*TMDRjmr3?wM@LG%py;EsBCPks^!XqE!7wdy3I}y_Emdel<jD>p4&Bp zcG$(pG&`ZyO*=ALmAqoEm@kyPLQyRTrkBGgzp_HyD=4ZI^2OWHK}@~T8D`+m-)Y74 z)Ds3s<KHw(<0RK+BS5PhwzHU~5_(b0N3x@H7FjPk@gz^fiKr`iTf$^6v45F(gZX(D zi(g}|nA85qs(8_ye3SuxNwEdYea?lCnb(-hy04f&WiI-6%y*fK{v-1-^9A;wnZM^; z^e_sHEqG1H?m;-L_CpKV7IcE)!)Mx<Q9rInJW^8hIJBKwU_!eeR~ve0<EWx-Ij{i< z8evZlMn`#Bw}VmF9x89@evA6zA+?dkPuNT*9wg<kCEMECT(387ZCC4$?gjl;R~vpV zc`x($q9@OYwM$%Ibhu*f>a)k_%git1oO2wL8*}W=dCB~uvo3hU{hkeW&|4GxjzmUx z1JCL`3to#(#oHMU!D|kBJ>9oF?|+@b0k|bN=?wBY|KM;rSHV{>$l&D*VE>!{#pydF zqxrOse7Eu*t}}Ok5q=?`W;7#dH!-1^$Mw%7#TdK&1!j3iC+k0Pxb!Ezy9TxREcnU( o6tXjTxzA6(Z|>d^fnxZTl7z{+f-Yb%t^X~(6tvaYP3~_0KiIvz@&Et; literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/uart2.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/uart2.o new file mode 100644 index 0000000000000000000000000000000000000000..82a44101e491f16b1d18f721c1e5c660de22448b GIT binary patch literal 1880 zcmbu9&ubG=5XUD?{ZSFDZ7oFww@{=-vm^n9^y1b=+k!u8n&LqrZj%?YnB6TeFH#R; z1pfg24|?<>cn~}Z{u34d1J8m7Z#uI(L$=TK<b*IYpZA@am&vlPZr!;(mdk-y4nD&$ z6ACbQY#4h<=)nY>r0DHD3~E?Y`I>Khqa46X;!95cfEaoC+BsZ=sVoERmCbW62Q}<D zb5uRf#rg2g8TTqT#?w29mVCCC<gm87y6h~j-P?BRaolZo{2+4Lv35*HIV*)-9k+un zM!MMvjB1*`R!+q&7s|y_#VwVcMPG*njEYN3#NCoZC#7Qf8m(ir(N4$V=burh`H>q3 z$m3^}<*}1(6A7RxhwU_`xr|;E(~0cgKC`SBop_SxA@dL<^#Jqer!x1SWPXLY<a7@* zS`q0TO3>s6s~8h6CUnRjGxwM$PaMVp^G%DtX8y$D`^<Nl%iIsl2h3;Ke__7Qx#$m= zf3!ICeQnBa6BhO$=xs!SfrS=y{NDZNO6z`<o+ms})>Y4>Y)eJ0s&D+mSvB-;cH`!= zAbOe}Z1xR4s5(v7l%bM`f$7wPP{n=jmEl#@_WNC99}jy}gO=Q_dUvJN*fLuA;q}Hw z?ZLVqwYo~f_SQ<RUd|H!)d17@V8~7g%KtKJ@ky?*^|EJM-(vlF>~n@=as!U-K5v+x zv*v=^dl4Fc2ffj$??|Lo*LRKDGvKyp@$OEq2W~SCLlqhB_rK1;26!bnZZ+~a|73C5 zli&*&(0)Au?281^-ls0<Pjh7dbIdQJCvLw%e(|~ONSn2*m{8B7>c_HTjP3dov!bPw z`Hw6v^;vJvpps1%{APaw*(v<mzn|WR_T3S|I>R57WK8A?I*Y-m`tQ8|Wf8Ks>;D3p CoXnm8 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/uart_syslink.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/uart_syslink.o new file mode 100644 index 0000000000000000000000000000000000000000..60e07b6826dc66b826eb55d25fbcad9be93fe15f GIT binary patch literal 2136 zcmcJQzi-n}5XUbyKU!3z(pFVOK^Re?Rw7ms@k6N?(%+2)s7+D{i6M2JS7OC+D*FZ8 ziEOMD3u|X4#KKzs1B3uEu&}Z*FvC6PF123M3Gt%%?mq8(cQ5C}d9m_fbtshrUMYAF z#}QM2^tofd7`sInfnhi@YG1FJ#ut9$*1>h?ma#@b?Wq``82d`|!+<wK(0v8a{e*jy zdcGdR6&O#lq_67zk2wB#YfDS>=Iq*|EwkEgdrrf4eRH=Rn6e?vh0I>i-gQ0n0;l0h z;mA%P%z~BA<g>YgmCKv6cF@Y8mz|qa+{&41Czs9NiL0M_QL{e-zy1so7z6JNfPt?; z%fL$d8jHcnJ3JBdllm#-sYD&lyh?mH&I1@CdxQ7|idml_K1!TBsd1?Ky>kI9(!MeV zoJ~YMw}56mF$b=*PMqtotr9oUs>S`c(N}e{3gTk@e!`D8=<*V+(ibV_zORXIX#5@V zZQ?wq55)I~bDi(RyBhyV{6OQsi63fw6bG)(`Bvl8#E&$dA^uV0(6Iwq3-?3M^_!Lh zGZD<x!3|5kE5T`oofgz>X_x%Eh#-h6(v|{3Z!gXZz2<TY_fV?JV3_o)BJA@uAvbKN zDdeKpcABpL6r#<J=!mj#g!@czdPVs4Wo)O%r7-9xQm2iM#2;&*EAc$KQXMhu3lnZN z68@^!e(uP?Q+VZZwRF3-WP9EYo)xw#3+3wFTB*FbZu@ml1hD*YAz!P=K-jH&Nscoe zqq$DtocUfWlqNo<ag(^NpE*T;pZI00bBX-eSmAz4+B;x{GU(X`dx7w5ONvN>rS2hE zJ7EZx({8ndFOxO?!8b7%j|7RojksDdz5;wE%ZBH~@iaPWUPT6Ex9O1(QLO5#KK%RQ zx!xqMKN%;Lc)-%}E!3!*dVZROWvvGHXPiSvNwW;da{d#IbN{5}XKGR!k>HRv&*SDr nd~<*P{3FQpv#UC3`Vy{iBL#73Vf<Yhl>d$9Ki^C1U-kUI`w#)` literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/usb.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/usb.o new file mode 100644 index 0000000000000000000000000000000000000000..d05a00e9083557dc7b84e11f29d1120064296693 GIT binary patch literal 9368 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 LOp74b_WXYX293A2 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/usb_bsp.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/usb_bsp.o new file mode 100644 index 0000000000000000000000000000000000000000..66eb52f0229d4f7729cc7f46b53a304f7650ace4 GIT binary patch literal 1136 zcmbu8&r8EF6vyAz;U<EpC&9xa2u^UNEqa(<=H?s&nZmY{htk%L7W#`ch3({@<<&pI zi{iiGU!cjBur5>(76|XXPu@50C23!J_jlz|3B)MDE36_x0h02{Z!g?7)SwD)iuqYb z%7>W$iJ{-^UZF;RI6>n$4jj+&BQ%XMBA$zGnhB1len36!cs_9*l3^FMRHJEVdP~&} z)Ua^aq@H$m#<;2@wxVms<*G;7V`r+s_m9k3tQ4M@@!X+vLWQo#V`l-1ZjS9!k<($9 zl7n1bkx}P-k1GVf<{U|U$hjtQ$Wq(1(?oUPWCoK_$9x#~&Ccl297H}@1HH(y19uP+ z7vn5hU(0UYz?!e6hf4%%IuD6uQ%msDdcq^_jDY%V5erm1O+j_yFmxlrd)&kvQ8Bya zEoqZBk1r%H?or@l>M*_hf`9cUzvwB|);7?e^ZMewXt)@n{*wUQiu!q5^i{s|{2EVW p_fw^l^~%QK(!e&g^4Zza7uQ)lPZ&{G#QW4K(zke1@-Hase*uy>Xqx~4 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/usbd_desc.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/usbd_desc.o new file mode 100644 index 0000000000000000000000000000000000000000..301bba0cf6314fbddcadbdfccaff99df6f2b277c GIT binary patch literal 3704 zcmd6qO>7%Q6vv;vp-P+Z(WIr3iqr)~C`Dvt8zB--8{0`*$t5OsN)VOYjlGUn@|V^d zNC*-UTsUw@C9d2!6vTl85<MV<ID^y!MI1N)Cyt<ANTmqg+kG!PnR<)h#8llk^PB(s znAx3O=k3MPQaY6aX({*u;*n5*?XkFThg}=SVGQ!=y;U6U1K0;o0qlHj)PA^N8h7OX zJMiFn@fE+r-LF1AG~fpDUyal!Xm8vdgM&#N57PF*FUBOX4}L~_cg#LG-2LXJ_)<>s zzwiY3<S)KYrl3kO9gIOSDaLi|t1<p*UX4%M|66@n6O0%qN64N!0ckY0+{=knG=6u) zeg)F0w80a3FR1&@o36Q#CpV~6uRNDCuX=v4<+RO0uT$>%f$4S4OBJ)zYq+5ZF9mek zX|_Gr%vl*6UoDhT-EDfCk%GpTyMgOBojN(KI&YYT)oK|-#W0fox9f7D@S-`h{L-3P z?e*IAmV-4md%hX8a4oZazt{BI*z@ZxFL3L@mhYPLR&F+z$<ABZoH^t8omuQ<E?y*V zWlfsNW^&IzxE$KH5%}Y;VJc(j$pJ9%->_z2B)vTx0=a9)XAOAhIKa_kAxYv%c~2z7 zxu28JfYJN(cphOwS??KE%%Y8II_^@y;c1LC#dv~k1uexfc`R}II3~R`*{MAQq_=ru zob88bhvlW01?kJIn`8T3g8nDg@3Zb2+k4D^=dr{&hqsF2XZV(h{skOU{jzhX*smP& zc%LN>Yz;OVwT3&WTXmS;hUo^ZRr1B!T4l9XbYJ)CZV~5vuOIY$s4bUP@(ZQf%F<G0 zv0AGx<V%aSNFQrs|B}<)yj-jVz7iq~9!(I9#TD20oc0hgqgZ*x>2BfarlaK#(J#9J zQm?xidzAfNW2;VBuY{Hvy*?5qkKQFi=A$*gj4v#&>A7KS%()uwCU5)ENt?v|kIq;$ zBll+>`6D7mJI#GvKf|2#>hoqN=!=S8o_Rv+iavfC0IoAXi}6+7QuJ#5ZRS*u8b4ru z9=V(;LLV{L*Y&BwDX*;UGv<2y&zVb|qQAvl&--OUoNt*^J(O3@!|eq9_sk`)=znCc z=cV&ZO|SpY2!rIk#A7_lVUzg6N15yUHqKm+e}=hUPcb1*N#V2)>s$}LFR1D9tIVZN z(XTVt^Il7c(`GLFAkSGpK_4)eyrSP`uIGI#Ax^X^0Q%`E?{H$HJVE?X5uugmi#UCI zq)l;$_*sEyO@*IU_>96IS9nI@=M)asV5bu}8)ySRvMuTPZriZ}cRK*9;RFs?8-oE@ z_>RK?$+OlR4oMUe?15G9bvkZWPN$ma-}OzD<C2fPBPfDR7i{m-q|#*n1f9nYeN$}# zY=7gI&OU#7Pa>yKa$jV>pJpC^p`!q|Iqx&k@aQW30-nVVG2Q>3R=4PNoW%)ZIT46W zN1a_6vz7c3XAwE|_56G6KbPPy*v8JV{oCdb{Y@6q{?V37e%ZejWRzc?JM4z-7UzFW z09&bBwJbfRoZ<!bd6LSZ^QGsfy7aYEp!fKv<g1d1AU17?zio#5oBVg;dgv8jbpO8r DYkHTc literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/usblink.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/usblink.o new file mode 100644 index 0000000000000000000000000000000000000000..353f6f791d849714c88d09dff8c7ea5a6a78362b GIT binary patch literal 4944 zcmeHKUu+a*5TCn6tbkf5APUkgsis7_w2d0hG-lh<7UGp+@0$2G*X`YwUbuhk?rBR+ ztbH&%_|Q`ljZcISLwQ9b5B`h3`at{_9;@=M26-UiQfGE&;OpM4FUB{9v@`RY`F=Cs z?DqSXw}+D>@mLH*V(>ZK^#lcIZM|!ozG=dPum!%+GQYIz+RyR>usES&^@XoikZ-xJ zLG4B=wsJ#*ON(0;C!PlL7Sf!Jzh!>#tJZdDRoi}v{Pqp-7q*i|dl@)~IB%o|R_Y7i zUL<bxx2e9=CS70naz(9mvkkD0nP|Tar_RJ7ZEZ9Y+mU-Q4z-vLiE7+Te0>^D9o5#? zd<Wy_Hp12p9ct7U>;b>#%{KE^ec?O5584;?*#Uk|Z3*{9xluJ*>TBuqd(HQu6Kd9` zfS2n3wzl?&>_P3Hdf$Qkm$8?reFKTrI6OoA)c;w;e#e<DEyZiG4OllG)TVh#U+*q$ zs-2I+E$Po5jMZ{DOAQu(h(8+S>*!DIizR5D>fWRu+8@nNo@wAiEqD$9hH-G#Djam3 z?7^x#UC5VC8d=PNO84__{<N+4>#3Jh$)m?!$c&{Y5uZ#Al1C}`<lY4CP2m5Y!06D> zb9&e4u}M8$E*G-1R=%XqlpWohwe^ASic_A+7tnIDvw6?XdR52P6GmTmUr%qs=<U<H zET`CwR?q(Zgd4p&MS6Ss=p_0V!7~W(C|_%qqBXr?05ts9Of+N)%Vr;-D(mGTbmI!Y ztbB~|R!(nW{S@Om`#IL6G`LUk0@L(WBR+&U)uju8<Vv8x^tE)sASyZwW6HjypIOGm zH_<0?@rUw{_#WAToM!wu`{qVAP-&nz68Ci@{vqNqCI1}fUuIl<+@vo*3eNtWIN}=I z@8_t$Oy6n5|3EyZ<aa5HG<ZPq0+T)(<Qb~LdIY{12h}XUBLY7Vfj=984@KbP5%?<+ zxP|yOoWya|BxeEz#fbcB1b!w0{}^%NUqwx_B~b7Q<9~*5xO<y-&WV$@+>>IbY;U+^ zO&4qdChV-8f5Sd*Wl!23bmjz4*`*wVS;wmc=3%>lxz0Se7#*z6%-9a(-J_+v2W2-k z?`F6>RZMwE$vHu=k!S2gkry_`QeN4yPS}maM9#ciZoC3xeQB6`v1(Us-VkI)ljDN} z$;|l3NNPBpNe>JrhcnptsSJJYOje*^=g^y|mhOOu%Wsxw|FrkRmS=(Gy0+tuSos1J z?P9hvFVpe2jG4X;>JB-!<=MDvFQ0`uYH}SSld)Y-NJechiLKBh?d0d$hR;(ybq+DU zH-z^yz8i5mBSn&I5WZVL)Gx73{CgDqHMSFoKd#_YY!lC31^<-oaG!E+?!bJt|L>K2 zweD5MscyT%{}bEcy4M&F^Iuo;b+$>}W}Et4cN(EjBKWSrg$;}oznb3?!X>|zaq6>! zIY{kdJUpL0jEDR0XPkKUDLhjVJh=#-iozrB647}I&sK$hPT^7U_Y|Hdl>D;_56!2C zV;?CvUnzd%9OL2l_5$NFXW_Z1;404-jMIFcRQi$gQ06T6>vhiGiJIO+!R4H!{GAHV z-<(hVsJNuy|7rcJQ|_V`4hX)?zQhIBg}`v<i=H(NhU+<jo)ycn3zp&8a~>EuI&6$- z*9F5VlSApf#vw4W*<t`wvLC@^MxmUw3K%RGi+0JATK_>)zch;Q7lw%#$!(rf;5FXO zbk@+kO-W#VHTd9zW&T9mgg8;j9Odtco-N_wFUfxOWx%*ds2w<f0pbj=H+lVXXk$`e z_<GSG&OQNH%lbnhT-Hk;CdQlfKgadWP-C)QXvZSfU*S*IE=gn^UVjAfX7itVI9Nb& z5}H4K&B=P1|LcfR|MK^UrZ1~p|5X84%f40J>`}>g?KR#%y$*C=h3nIq5*m?TX%{t& c@|hG0T)$T~eMM(jv-KBw|1)Yb+95jl2Pc-%VgLXD literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/usec_time.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/usec_time.o new file mode 100644 index 0000000000000000000000000000000000000000..d89bf94a32becdaebcc15956fccf849ba0e08dcd GIT binary patch literal 1304 zcmb`G&ubGw6vy9ot8EWLwH5>qjuNB=Gh~Az?P)b=TTs!mJ$Z<m&9u9i&4%3xR1hql z1TP96yy?;ZK)m@kD2g}#1@$cGdz&}OGKn__Ht&5u^M1_R**v*%>*k!}fLRW_hlw&2 z;M?59_e<A@C0K-yZu{#w;eIg>=Ds)&@Ur&%`!o0G=_eQ7{p!^G4+8ZYfQN4Z0_XAI z^8;eOcux68sKLKb`lMm2)!GzmTX*(EkY&9n4wJsv&vKz-C9c&6dA6VQ(95GZ(JIoz zT!{_YtT!9phV+_ZEzHw8dX4pU;?fhe<29OBCNtO`%{&i3|Ja<gJM)bYcV~qoouA?- zN;3UsmrFh!zk=MU)Tu_eaBQmnMI@&x=QQz`nUDGa_?&s2`CZl~9)^XA+B!*<jG%T1 zwQflQ1o?Jy5Vx{nUqjMQ^d1J5cpOmZFdaa!bNgz0XZPNA*zfjK&h<_I6?_HbUbuIf z_g5_rvUrs0u!C0TBO4npSG`bbb*MphLmh(b6a~mAOH+ks`#(!y8M>|GRym(_U~w~_ z!DrE-Iei1z#{55Ou%`OdXOZ<8wsfDw?Jw*V@7soAtLqX9s`;<{>K#y?tvzH^)0~rH zXqo=^M{@jY`d2NFI*uXd2P?sW3#gayvF9gdpPf>dx#%v5$})WoI*HD#{MVenX#&~W G`F{ZoX?MN= literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l0x.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l0x.o new file mode 100644 index 0000000000000000000000000000000000000000..10ac6646c71a10d7400780755eba69d7ffab310d GIT binary patch literal 2184 zcmbuA&ubGw6vtnhR#SyqOYv7h_fVvYU6Ry_?P=SnHP}i?qJkdU?d~*L*zA_wNolEI z6}$=s51s|F-n{8af`5S*J$MqVcRdOgeJ`15remt06E^S7XTI+{vopKNz01>AIuZ$x zEdj5f)sqz9>b_QPHBt+@Aq57k7wXBm52uXed%EB+{m;q7*{410eF?C}pws$}R{gS; zVgl<`ru%no9Y49f_U1(nb=yhU*m7XwL2A7q{hoE!Z+{tqRrGkgz4mrfT^sr9e)Yxs zyVkFd<Nfrh9%@d0dLQ+>{ODd_Dwi8KhNiCHFiK(QI~CgtjKwfAc!e1g!%I=P==qpM zPQ~NQ;kAevV`g?Zo6d}xnXEBnN7Z4>(r3;PH!}u}WYXDDbl;=V8Fs?ApY4W|ZBG~= ziJx{YiB5Vu*Z}RG6!PiP<<NtqPnkC*6oZ2IioWC*1UEE(P4Kkf{UXj|lpX>#!V-Sd zyt4vI|GR?EYy6SmR7dT6Gr%UscK)xClmAPhll~tCuWS5=;O{hk6t|LmK50BF_*cQ@ zN#q5WTPpdS;Jp~B$@M%G+z?#qVc8!Y@zX1&1A{BFQ(`gCg+YMNq8A2|PBA_cy3EgC zQb>U<dohYyu*i5mo11Xmh{Z8@S;u9|w<3J7Cs#R>mHEKqYF=bP97d9$MbRq<wqLM0 zoA#=xReTDpd{I%(FgwOKrpf|dLTON*thr^j<4&vovjS(k>BP*Rt@$yVWsw)U(jJTV z8Y*%-qD|snPz!6ZtSItu>33RSwp*}+GHVUZc)ssd8E4T>?T)I5ci}Tt0aoKQ0Z!og zHQ&7^C@K7a$SFJ#`2gw<DO{dE`5aL=nDJ_r+Y1<Z)QlCGMa;KN&Q>^>uFY*Q7w}+B zC#=$*s~-Q68(2$^rt&w_aI+fU0E0BBH2qy1z%hEJEk#4=ruZqE7o7abO1>Az1V1gf z{tM`8^9p&xL*^9E;YFVRTA#sMnktQ#+T{FqREW7;mKr-W4Rz~6V2Q!~$mr7VzZ;pp fc0|oh#qeBC)PSw|MHdcZ(yl%w4s=`!_o)8`*bY3R literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_api.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_api.o new file mode 100644 index 0000000000000000000000000000000000000000..3f910fdffa068840202ec4bfc562458c8970d8cd GIT binary patch literal 18304 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 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_api_calibration.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_api_calibration.o new file mode 100644 index 0000000000000000000000000000000000000000..ac1e2ffe886173e573ff11a5ebc736a85b9747b6 GIT binary patch literal 4856 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 PNxe|JvRn&4OXdFq1ijqc literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_api_core.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_api_core.o new file mode 100644 index 0000000000000000000000000000000000000000..8f709141495c75ae0ed03caa8e53b657ff99a8ce GIT binary patch literal 15760 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 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_api_debug.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_api_debug.o new file mode 100644 index 0000000000000000000000000000000000000000..937efe5b464c293a11980cb58707935b3a1bc189 GIT binary patch literal 1024 zcmbVL!A`<J5FKbEc&mm)6E9UXLLyCD!lA}P5tR$^VAP9;rj$aPw3L*^Kw_ew;WzjL zh8t%;z<Bl#`~sbYt~47?OtN`zX5ZV{*|g7>t*dM%11vJ|4$F*H5wlBf&Z!A`$blf5 z#<u`(053O10HcvNjiQKHsFyD!bBcW0D45f8)tnqjnQ~Er=|Kr5Gr{_VW}|T`mzvji z@@*6aj%WLQxf{hY@m#rH8N^Z750J%<=M&c<qu7-VMX%_pW+<92m+UyKAXCd_T30lg z?r5rBTi%stbT$!we)&4hh1HW|JvDsFDBunsg?VA+3!+-&<*<X5?Nr}0rg#i$)j+fC zfp2x(_Nb>ga5#qhR;}97te#6OyVLQBANB3P>e$2vP==F`*lk1-FVJI*xMKp!T&A># zLr|P34Bb9q&DO^~w9;uexFgIY|DPwxB~G`GIrZ}|`NZj1O10@Y#w3qxUH=Js>6t37 zbg=#p=^}F0KaH!tj<3WwOOU=#4i~*Ejok&nCL(`#y7ihg&=Va4)|cg5NLKkj5+VO9 G@cuvhcvTnx literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_api_preset_modes.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_api_preset_modes.o new file mode 100644 index 0000000000000000000000000000000000000000..c1b1e6244d3cc7afae54a9982929478c9813fcd9 GIT binary patch literal 4600 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 RrHp6TA=y?Q&Hvcf{{?CBbAkW> literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_api_strings.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_api_strings.o new file mode 100644 index 0000000000000000000000000000000000000000..632e0febaed7c337f692904c743d4221c9002b8f GIT binary patch literal 4520 zcmc(hO>7%Q6vv<Kv`woBLMRZ_NGvEquGCm|nn)=iVK;F;gyUGYlYl_lY@JQKs=c<? z8=9&JjLLyS4ylwwg?b2_3gVDMC3>jTAaMjKLIvf(!Q#ZBha&aBfhfH3zGpjQZ-PLS ziLCeDf8P9N=FRM8KZ?f2y&ey6^T0RIh*$;iKi%-dH8%{W;3Rnapl9#e{V(@?a6|2a zQq|}A3OXSDsRz<(2b3!4tDR8NypaC&&B~9+UVj<j1|l{9D#^WT-`?K#sXwdTP!i+R z(@^>x?P0lJ_+a?3{wLk{lH&V`f9>i~J>ICt!im3G53EC2)ML$4@*GjSSG<SUL(~?J z_|TgEUo|^WFI=a%KULg!mhR7OAEYlHgCV{*Vx28_rx)+eF|1YJ(fbtl>*FKt*ORWr z0#tf_*x!Fa+#&HSdEWp_JWrw)VX8y*KRUmpW-jZ>oR%{dYfp8`Sk7z8xMt*PAz*B3 zxrQ)pn2IyT$w_3jvfk*1NzGckqFHq*UQlL>i<+%FI7rOQN0VbS^Km6*3w2&IY-Oon zDP;_ejA3Hv^w9k2NPO(#J9TYpEEcT?n39~0$EV^GbtxH5Mbq^NU^f0%yfGU<G?|=9 zHucX<&ebMLOh!^sWi%3_b&jP{A>pDO6n1*L7NV_%kc`A9qNt~)CZ;3G_*6U+Q&<!E zs5??RdZ2gKylfV(m`c>LaMPoOMJ&w3=;&*Te<D7sqzi>yCaYnMMM><eu0#fkR$<A= zp=V{XhOKAp6|C-sz~I1OFmxdh8dUt6l^;Mac=oK&10hB9go1;^Vj(U~yyH9I_x*O= zzPA4X0DSn@uKAGEuKDnxl-u()p;dperi)dzHXj^s5&KZ-X<BCo4SgN;?v`wTQOfV8 zJU>~L^sv_%)J6J-q$g<0MW-9!{oL^RTu9Z5hFZ2Q!(1*0GSI&W{i`q+8$KTksmr>p zTH>+71kGM4QyyTtnJHdvPAh7;T9QZ=tmeM5URu%3jOfyfWz{g33eDX)BX8JhCaY&I zJAKXqgS5_PaUY_}3dKWYpOf?v($AoNihN<-BcC}5iWkT-hjr)e0U&cekT?`VMdGmj z2{|(7Ch5E$-sdfe!}_KR=Z?hbruZ&d-WTilTsS)tCrt4Jvdm$9mvnhw4@u{JEl~W3 zEOS_YOuEbo<N1lkoXuK<?=RAs!}=uYGAAc-cpXKF!@BLlS(7+LTF<(~VSU4evn6r1 ziE~HduzuHt^S#8W5@$!^u>Qb>^P9xkA<jdI!}=o^P6xej_`J4=(@8p?7wcW5%jcy? zoC<OJB@XL;7fx2<bke$W5{Gr$g>zHlj1cFR#9@8Yg>z5h_=&SEaajM(g|jPhdWrLk z#9_Va!g(xl6yp3LaajM;h0{&{Px#z{IHyVHb7#Gmbot!RNt_^Yf)a=IAs0?j;uMKv zOB~i$T{vqJCrq4miNpGa3kSdVYmMvkHgUd|IIM5Ea3D~=nzyw}Xl=`}S@tYFrv+?% z)rJ6mnQ9QYR4zlnDu_U&hXNxI$Q1H<-L&a(`qxH5g4l}uB@;$Xv~Ajl6SaQBoWTz9 zl@;a$vO6anr<1HOVxCUw?<M;x>C!X~lyaI4mAx*VLr*aO>3H$=ESS#MGdkSFrm$U? zCgk<A9L5~s2l3b3uG6RFyUil{Jg(W&BY7aRO5+ohDCRwhKc1iKC$yHmqZXvPe};Z@ W<9S(o2Ay`}cb{@HrZ|zTJpL~*%vC%9 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_core.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_core.o new file mode 100644 index 0000000000000000000000000000000000000000..24fa62321b3cfabf583cdeb67f80404e8e93cd44 GIT binary patch literal 10264 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 O@z05-?CcFU8voxrna4f= literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_core_support.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_core_support.o new file mode 100644 index 0000000000000000000000000000000000000000..2071447a3c322593709f6e491060f685cec3c655 GIT binary patch literal 1176 zcmbtTO>Wab6#f!N)T|(3L0gbIh)T4GSaC`gK`eqQC=wBfQrIA5+{sjq<aDg@q!bAW zj=>Rn1GYT{7w83G#}3}4GpaQ*tBy4O-uu4yGk#-#eL8;DY&76j13z%#ITrZdys$?L zbA%8}6nnCZ$LO%|boDeye&RMdXrYbewKv9J!-_H-wb(nm_HDNnqVo}WfiJ<0bzn%f zh9>STVE2LMYfie+I79nxMaRze_9M2j^YSg*lQQR7Iz40uQZbzg_M}@Vc`(h%Qaqb# z!S!4THjMh+elH$Iai49ZYStyIx4CKfC}u{9d;P)UW&ZmxvuNS>-@1UHc2Yoq%CIVl z0V)2vxghE$ZtArBaI6y3sr0>WBOY4b`3_%Mp4qtP7IBmhw(>aPQi-IT7ll+h;#fb% zyYXOaOhTITq{#E65NawX$-H#RL~uC~$q_GwQ$0z^PgFPuqVn@hr~8Cjonz)KEsiy! zNvcys`(=rU%h^mEYInX%;w{QIQ@!HV8CgH`csDOc-yy@~`!{yt0zC9@@E+;mCGsCo zuBq9hU0tsK`zlGc>tDsXuQ0R$zihsl&k}8OR<oAR0apqAcQ?`>n=fpf1J~F2Z8GZe MKiEV0zn!1|52a6Uwg3PC literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_error_strings.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_error_strings.o new file mode 100644 index 0000000000000000000000000000000000000000..b8eb47384f5f2af0e8bd6a93d2a7485558f4d5a0 GIT binary patch literal 1328 zcmbtU&r94u6n<-L{c-9K3xZHakg`H|*hChpm!_4fg{23vUV2Dlj3$uXER(S)9`sL8 z=pUh;y!B{%^C%uX7ykqQfTewJcgCG2>7^YA?|a{T-+OOnlRbFXTpFrWK(7jXgF&WQ zfb*dNc6-o;aTtT{{>AA}t8&)0;Q03S;Wc`XrU8yo@)h84wY&f0<h$kF04y&qF0ktI zhmUM6O_Lz<<2Kt$1(Q+8-qboG-HH=LB8Xxc269J)Y@Rzcr*6-4+hJ8-v}%azv$Mo= zo6(M4cN&AiN)Vl8818<RY=KpJQb67+lOsF)7ydzkpX@P3eyYcp-7xiiSg7+HnJ31a zRi#+K_^6;p;!Dz)OKdL`A{AaHMcm%bcmOk-FtZEm&Bk2Q_O?Umb^PQH5ummmboNwD zUHd7HYMx?3?LW)${qq7$AwO=;#k0MZ^f!QG{eFxz5@F(V8SYBpo4)jcZ)6#8ky1i( zo4*1cq^(ximS)NS!3@oG`}v!8k)x&Wx1Sa7n0`Nc3tTNwaZ-IBD=HtsNPR~2zKSmt zpMS$5wVw}E!(1;hp_>2dx6w;A9em8C`{(=V`8DsNiE!OCBaT)6DaUJ{8I8Y^d-bJ4 qqe@79$MDhp_4`F!{_JGEQogs87)$rn)MEr?{?BTt_gbi8-v1js1ZIZ- literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_register_funcs.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_register_funcs.o new file mode 100644 index 0000000000000000000000000000000000000000..c762620711a4c9769cdbd05f30b8236398ee2444 GIT binary patch literal 10496 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 UB=oO0K9I!ntcgVVckTH90ts<K3IG5A literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_silicon_core.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_silicon_core.o new file mode 100644 index 0000000000000000000000000000000000000000..612963832933d8edac5bd0330e45f724df808b50 GIT binary patch literal 1272 zcmbtUF>ljA6n>6@rb0-eOA$rtfe>m1ImM|0xGXLeWC;vu>B8W;j-yzzV>n+SRgq{V z{y-!KwhCo{bY-9nNFe?LVx{UIKw*u{U3y2Xt0y?idhfpXec!X+$$ojSc0Z?SAeROo zVZ4(lz(H=DTcgy1Nyx)+`*VM&L$?Pz^}`-?2P<0tx32BKo!zMqbl7Lq*Rz*^eAQs} z=(_dE&E>m4KUn5r&oUc@a|iB~s_CqqHILp|rmn%wy9JoCU%=CK#^1|<Iapch54XR) z|DxO9caw=*msy`(1%JgfdrX6p<XDp=(@<SrUPN=%hmX)|6a{X}@!O~w5ky-aS}Hyv zQPU4tM%<Q9J(q4051F`JESC%u8)Y=-kg&+I()>Kfv4MESD3vSYIb>ygcBkN1l2y|) zCkvpnD{JY@NnO(;AnSy<&uNto7a1~@>ib48?yy)m!Dhg-pt2AccI*ef8?|jWA|7_( zY6sS8m4%vN`?1~hN%-6$o=rTbu_dXJP-ozS&4BtNcO-huut&~|d=zlJ6;fvda7@W@ zY{`sxfrF{np@16>bpUU~F<>_eL$6KK9{-UersY#Sqj*?iFXtr7>a1p1fuD{g2_mkG z@8p8mbAR4PzPrS)30yt-A3~=F^~7%o&wte$qJK$gB>O*BaM?c{Q@@12?AwAMeI{6i k-|G8MGE9ATZc-4YHNHtL*;hj6S(2si2>qfYim2-U0QaMiV*mgE literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_wait.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1_wait.o new file mode 100644 index 0000000000000000000000000000000000000000..54f951ba7434b1cb83d88e94137c711ec9f4429d GIT binary patch literal 3816 zcmcguT}&KR6h1T4)?!gB3$`g6St^>cfep)#ar>YP6iHJs4c*oU9@b$Q+zHDr&I|=y z5*D5`Q4=EZ&7i(mHpcj7j8*Di?1M2)oBCwTZtH^&z9>a(({(&&=HA`QvPfc@UKsAZ z-#zC$fA`#WzHi`pS(1Pc2|k6=j-vn<s!QvzvkXHO?1w`7;%Y&Gr5iRZt)G!rZz)pt zeQ#!H!vnWB6v)~(giw4rZ-+zc3iwqCo<0hhp`22eRdHUF-SeE{@voohUfuA7Zx_<v zUbv)0e<GP~lv()?nL_$Y$3C}>HnL=IK@Nx1MF<gRA^o+(*WgpG7t&w2{;rk$ZQPd` z@?7c**=x+#wQ$Ik=dPMHd(Jch)I0~C@%*8cBMaz<%lFMTJ~v*;FTIl)a(!|A@OZ&< z4WM&te6IeJ7+YSc^Z%;s_20zr1I$}asdfA(J@X&Ci}sW!im4I@k4Hfn89%a3Ik<)K zNf35o`U;?{765-?Sw`Lw2|90Lj4_b?dE}q>f`Qywu<b}rk)1je(yot<$myJ+F6of| zpSFEy;aS%w+EY$QkLysL`BzAPF4PCIxhJHhjbV9pLy`P{bx2E_^>BN$L0YmKq>w#d z)$I6)Hdh{p&xm79md9ULAabLjJCs)rWhoy$3UrYi<>+mUC5Jq;&nqWUUpkdR-D0kW zdsa8==}vv;)GUuYIpwjeBtxgDvnInh>0Q2yIY610@Z5ubY@j~p5_#Oblxjts#Fsm8 zvbhJ~)FN_q+_5`<!CYN~OwG?YQ#`z0R4b{i->FYywHNQ0^h(p=)2}W_5TP1UJ*kc) z$7_jaUD6#l@04@Oy_k2hf3NCGzS5^)U(h{0iakR2GzN25V+T**m4;d|p8I|Ocpi4Y ze{R3ucmD?7b$Ygvf6(9Cd)#-d|An)@NGg?x#Z^7&8%r5JE3WyvTPKawn4Z9u5sT}V z7PF=d%@+!^x3;$hLxEts@0e;#wBo9*xtZ`l&_^f1wsz`@9R|JWd*Bbd(y>zU#RpLE zr_xZ6seC-*0AywRP+;#ium+JD!ET00_;EhS*5dTc4tNA{;>j@K7B)}dT#4r`#7X`W zCO5$54;ju~$}s$UoGbBM-vR#}amOE)ie<)Ajr&SGM-V4@pX>^f9F5Qp@`Fsijg{tt zD-H>U=NRr~_?rypCFA~l%<%VEDLD@36I~sNV02p5tw0Q#X5idFSI0mws+-Y~RLY9R zQWKL2&C)nNG}<#;+UZH%iY5}#QA0nk8Bx<xg)=icrW+H}s-Z;<O&y)(6iB`GAZqFf zJ(fxe0!eK;I;vXgR?W#2+QQD+;+kGkd=aBKYjPUeol_H2+MsHV_Z1_fP<JC4ERqyW zZgrX4=+~@>9vkmXO(iXk6%ABYDKZ*r@@0)DScsyizpH?ynZ*hb0YDSG2lZI*{cKIs z2?4JX@c0fmzaPYNK#;#8$cy}5l%qlN54%g}Z$!Y|H^V)Q3%KadM*{wU!1J4cKPupN z1^giaKh64!{P76*jDSBV;I9d|D1UJWoIjPsFZxr>`mx-uCE)ZH^6`d%i~d{|aFPFS zhSNJD=Cg(MHQ5#Z>ke@N7kTCcypB7A^A7?p^6Y0%dU?EF0T+27V9rih>Ilx3;m&cs zGPHymu(TNq0@UIV7%@!<;6pQ^VH4e(;X@is1?(%M3$uM^**{U`Z*@J&Q7X7RQ-d74 zto*(ZKiT2EaF_``#c)<Gh5}e+cKHEuh@%BJ#QA^qgQ!cKZTN|U+aDG|Tyy*4%&z_x v$t%qNFgv6krLR1GN>jP-M0Ah|{>Tjxh@))l^i(DNIJ=a`UA5xha{Ye+NYLg1 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1x.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/vl53l1x.o new file mode 100644 index 0000000000000000000000000000000000000000..8b03487cea4178323d05ef7944b8a7c694bdcd3c GIT binary patch literal 1752 zcmdUvzi-n(6vtnhLW_`4V5(r~At8}U#IjvwC{s!ZQKbZ-kk$i3aqX*O)v>F~rAnuE zU|>XIVL^hw05&$%KY)P+gqRqakoXJWU3gbJhglE{PqOZPKkvucz8^=e&YihZ3AB~q z4P;7FfKT(8-<Y}$ScC;&aNIj7Z+~27<qzsHH5l>#RYSYkyveHVyPK?^rg1RvqlE3I zg2@4A>$QE6?nW_sA{a!H2XZVpTeIAnYddR}<FcwRhBfr;l@-M;hpC8TyY=k97I|td z=HdH~qFA|br2xt>SCo#t{2M<%B}FT)`s5a!Dlg!8DL3yT@yo<3q&2sRGlRE?tGF_q z@1d{yHxxwEe1N{<_og)C2gDy5{1NeegFhvHZ19)FpBVfV@fQYvOZ>IL-w{7C_-Eqp z4gQVz7lXq=Twjfyi50-Li5444B(>k?BiT%o1ov8$CYs*oa>H$|hoRu35o~qps~u<C z6SyV2<5)(T^td0+08iXHlw5~B;iV$X)a|_Nh56K8I2)Tu_54U~X0L&&d#c)8_M>30 znT`{AIumAW`SF-{{n1`)0$_~}htl7{QHo#VKzou;Bv_#@eXw@$Tdg1+4mtMvH+BWv zs8ey)XxAY9)!-FFUq!9z%@bEuu)s`w9dp#)|J(W-SgU&4_~cE`{~!<1*YoGcqFdxK rB~&P={?7tF`kXFN-*Y&c@2*162%gasQNAJJ;vedt)0Jdin`Zq_(HP*B literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/watchdog.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/watchdog.o new file mode 100644 index 0000000000000000000000000000000000000000..5b876362e187003b87529400e734db5dc4a41a6f GIT binary patch literal 1016 zcmb`G%}T>S5XYyD*b0Ilco00ef?x}FNrE2gsZz8E(u3BM2ic~n2{estR;(vI`Z(Ua zc<?0@U&EU>ovpj=vgRZXEHm@V{C9RI$=$*6VX;sEZ3TFOX{IT_rvV#d+<-EafWZC9 zi*xa|PMlY{WDKolbB|P7?K9Fz(?Jlicu4vwCn5^Te(j2<{dj;8529Fvfw<-&sZ+n^ zyI!4oKB+LC)G%_ZRmrJG<P*>Jcc<sEBYC_T`1rE9%$?jDNnXq=NACRM^J8KR!KiSs zvuz6qmW{q;Rj{S_qRJ=A8zzFNmtN8UHb<bdcFGerI2DYGPMC=aKN`jYfM&OeU|sZr z|M*BpA{+^zJti2?Zk7QJ(j*CoDEc2;!)@d=X07cSDqpd<zOTj`7)ZT6>5eY2yghk2 zM>*5K>bFrV_jGZYru(0p5M$ln^m$*;qtd-AFXvOjrQiRm;&bTjv&%;hs=<z`(@yu* Q`4R?s`e#*W|0=fr8wZC_t^fc4 literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/worker.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/worker.o new file mode 100644 index 0000000000000000000000000000000000000000..4776989aee96fedee22313d6e44d03286385b668 GIT binary patch literal 2376 zcmds%O-vI(6vy9oRld}q#X!W!9*8N4Y}zI!;>E>AL4!tHIC+3&JJ80qOSW5ulxT?_ zJb0k$!Nh|eh3JjMlZNQUgC`O>m&Aitf(LtOaNh2lbltXIyg7utH^2G6H*dCY=E3EO zD*;IYF(h~o^_idmUk=rM&2cs8gbt_`Kd#keDDQPaH3+ae6VR$9fQ`K_ty(L7db24{ zZ_At;0OeUNP?iFv_-iP|d5Y(-tUa3vK-H_|d=)^e4gl;{+FqT+_yI-!CjM*15AJ>m zX$|-L`4Gyu=Zpj!sM(Qw)&o#_iurefT2<$@RC=|l0vESY_iKN@cP}xzRx5sXYJ&i5 ze3zwlJO@AbDxO7#(iYFLRS8OK3a@1+24&2*B9-D;7oMvUTybgx&ag(l{(q0LSnPrl z8oM#2OqyoKNa^XEGG|(fonp%9@PcK|r8C^Kj8xiYhF!3jGNML@qv6Pi8i^_)-O3Jg zFFZ7aT#YEW5(!7o{r$6HFCKv1{bnk;X{Q3n{IA)Nc_#npbU<UrA8~l2zMFH&lc(L2 zP=<q^nd`cF8u=+FPo49ocSeM`nBOFhMh4F%Bz}$C<DTyz^i!O7lg4XOq!+p#TFet) zpt)GT&*#nZJR$ui>Bq^w<hGd}?wQsdW~l}YF2Z1vrnd^Lz`)EWmh#iCz#-S?vyCue zo0dM$DDrA9ZNs9Yj#*5%S;E%sv_Y$rEN_!LVVVmhj5C9!?}`iwBgK-145P&{mSa}h zNU&TIk8+sK6XdPo?E-PO(>^}v(R+I$MEnHTd--|d{hS{qAB{%7Kfm}r{Pj$>&@U7B z>mRkyzaWnF93vmiTk`$&d?oJBUumKLK^*h*ce_5+{8HA|XF<)|mTObOvsgw~ZMJBG zn$&F_)Y*I<RKv)+*34#E&aP+rCr{zgytIZJrg4U&9Tz=A^npPA+`&H41R&c-S3E`W zZJeVkdZCYWXNdb>u5sVKB=_8Smz?DWbGC{X`-yn}+<kXi$5%ukS%3Tp=U8gkrwavK zaNEblvAmX~e<&XltdJ1*#Wz*#FTP&~Xa2Keq7+@;cR2A3v9Cbb^UdN*^yFR=LbCq& E-#lUUhyVZp literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ws2812_cf2.o b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/uart/build/ws2812_cf2.o new file mode 100644 index 0000000000000000000000000000000000000000..6b251d860d821c60c712f834965da867e4a03bb8 GIT binary patch literal 1120 zcmbtT%}N6?5T166trt;Gf`SnWwqV2VV!?W9X|)!rpw*LyHQlCcp}Q;Di1p-SdG!&z zD87bIph=t1C9EJg5aydNGnt<x&nNxUd@cuCa_|C6OS1rX`6X`7VG~MFgjdV^*hSX6 zUVpKn+ioADO84RhUB~g%56C1!<Cq~HP}Hj3vv@q23dH<i!l}<67)1^2)?C|ZV8=xj z!or$BcC{*b>>#=0*lvAUqlsis1^D_ld1+gj9ZNpdbSlsiJEpA7iLA-Va|)(AYzSsE zl~;T0D1Kc<XntSu$lwnZZyP*3Chn2rdj8nOK9pz5?nM)>;DAOW1v??>B@8;}Eyo*h zMoC!rdRLccBpOXA1Hj2s$jMM>&K5e*h|?JdJR+O`9wrH3KMq40aaGR0)wVc6PIbjN zsi|z)e_Hh1G`A;!j5lxWw*t)@lyfirBmO|;*Y_jLx#;}2nowHjPwT8#_@?|z%2Cdz nD3+{M%GN@`s?cWda_dvY^_8DiI<L0nJI#tOtD?*=XU6{kw838} literal 0 HcmV?d00001 diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/cf_math.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/cf_math.h index 72a5a9c09..4a8aae466 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/cf_math.h +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/cf_math.h @@ -32,90 +32,91 @@ #pragma GCC diagnostic ignored "-Wpointer-to-int-cast" #pragma GCC diagnostic ignored "-Wint-to-pointer-cast" #pragma GCC diagnostic ignored "-Wunused-parameter" -#include "arm_math.h" +//#include "arm_math.h" #pragma GCC diagnostic pop #include "cfassert.h" -#define DEG_TO_RAD (PI/180.0f) -#define RAD_TO_DEG (180.0f/PI) +// #define DEG_TO_RAD (PI/180.0f) +// #define RAD_TO_DEG (180.0f/PI) #define MIN(a, b) ((b) < (a) ? (b) : (a)) #define MAX(a, b) ((b) > (a) ? (b) : (a)) -// Matrix data must be aligned on 4 byte bundaries -static inline void assert_aligned_4_bytes(const arm_matrix_instance_f32* matrix) { - const uint32_t address = (uint32_t)matrix->pData; - ASSERT((address & 0x3) == 0); -} - -static inline void mat_trans(const arm_matrix_instance_f32 * pSrc, arm_matrix_instance_f32 * pDst) { - assert_aligned_4_bytes(pSrc); - assert_aligned_4_bytes(pDst); - - ASSERT(ARM_MATH_SUCCESS == arm_mat_trans_f32(pSrc, pDst)); -} - -static inline void mat_inv(const arm_matrix_instance_f32 * pSrc, arm_matrix_instance_f32 * pDst) { - assert_aligned_4_bytes(pSrc); - assert_aligned_4_bytes(pDst); - - ASSERT(ARM_MATH_SUCCESS == arm_mat_inverse_f32(pSrc, pDst)); -} - -static inline void mat_mult(const arm_matrix_instance_f32 * pSrcA, const arm_matrix_instance_f32 * pSrcB, arm_matrix_instance_f32 * pDst) { - assert_aligned_4_bytes(pSrcA); - assert_aligned_4_bytes(pSrcB); - assert_aligned_4_bytes(pDst); - - ASSERT(ARM_MATH_SUCCESS == arm_mat_mult_f32(pSrcA, pSrcB, pDst)); -} - -static inline float arm_sqrt(float32_t in) { - float pOut = 0; - arm_status result = arm_sqrt_f32(in, &pOut); - ASSERT(ARM_MATH_SUCCESS == result); - return pOut; -} - -static inline float limPos(float in) { - if (in < 0.0f) { - return 0.0f; - } - - return in; -} - -static inline float clip1(float a) { - if (a < -1.0f) { - return -1.0f; - } - - if (a > 1.0f) { - return 1.0f; - } - - return a; -} - -static inline void mat_scale(const arm_matrix_instance_f32 * pSrcA, float32_t scale, arm_matrix_instance_f32 * pDst) -{ ASSERT(ARM_MATH_SUCCESS == arm_mat_scale_f32(pSrcA, scale, pDst)); } - -// copy float matrix -static inline void matrixcopy(int ROW, int COLUMN, float destmat[ROW][COLUMN], float srcmat[ROW][COLUMN]){ - //TODO: check the dimension of the matrices - for (int i=0; i<ROW; i++){ - for(int j=0; j<COLUMN; j++){ - destmat[i][j] = srcmat[i][j]; - } - } -} - -// copy float vector -static inline void vectorcopy(int DIM, float destVec[DIM], float srcVec[DIM]){ - //TODO: check the dimension of the vector - for (int i=0; i<DIM; i++){ - destVec[i] = srcVec[i]; - } -} \ No newline at end of file +//COMMENTED FIRMWARE +// // Matrix data must be aligned on 4 byte bundaries +// static inline void assert_aligned_4_bytes(const arm_matrix_instance_f32* matrix) { +// const uint32_t address = (uint32_t)matrix->pData; +// ASSERT((address & 0x3) == 0); +// } + +// static inline void mat_trans(const arm_matrix_instance_f32 * pSrc, arm_matrix_instance_f32 * pDst) { +// assert_aligned_4_bytes(pSrc); +// assert_aligned_4_bytes(pDst); + +// ASSERT(ARM_MATH_SUCCESS == arm_mat_trans_f32(pSrc, pDst)); +// } + +// static inline void mat_inv(const arm_matrix_instance_f32 * pSrc, arm_matrix_instance_f32 * pDst) { +// assert_aligned_4_bytes(pSrc); +// assert_aligned_4_bytes(pDst); + +// ASSERT(ARM_MATH_SUCCESS == arm_mat_inverse_f32(pSrc, pDst)); +// } + +// static inline void mat_mult(const arm_matrix_instance_f32 * pSrcA, const arm_matrix_instance_f32 * pSrcB, arm_matrix_instance_f32 * pDst) { +// assert_aligned_4_bytes(pSrcA); +// assert_aligned_4_bytes(pSrcB); +// assert_aligned_4_bytes(pDst); + +// ASSERT(ARM_MATH_SUCCESS == arm_mat_mult_f32(pSrcA, pSrcB, pDst)); +// } + +// static inline float arm_sqrt(float32_t in) { +// float pOut = 0; +// arm_status result = arm_sqrt_f32(in, &pOut); +// ASSERT(ARM_MATH_SUCCESS == result); +// return pOut; +// } + +// static inline float limPos(float in) { +// if (in < 0.0f) { +// return 0.0f; +// } + +// return in; +// } + +// static inline float clip1(float a) { +// if (a < -1.0f) { +// return -1.0f; +// } + +// if (a > 1.0f) { +// return 1.0f; +// } + +// return a; +// } + +// static inline void mat_scale(const arm_matrix_instance_f32 * pSrcA, float32_t scale, arm_matrix_instance_f32 * pDst) +// { ASSERT(ARM_MATH_SUCCESS == arm_mat_scale_f32(pSrcA, scale, pDst)); } + +// // copy float matrix +// static inline void matrixcopy(int ROW, int COLUMN, float destmat[ROW][COLUMN], float srcmat[ROW][COLUMN]){ +// //TODO: check the dimension of the matrices +// for (int i=0; i<ROW; i++){ +// for(int j=0; j<COLUMN; j++){ +// destmat[i][j] = srcmat[i][j]; +// } +// } +// } + +// // copy float vector +// static inline void vectorcopy(int DIM, float destVec[DIM], float srcVec[DIM]){ +// //TODO: check the dimension of the vector +// for (int i=0; i<DIM; i++){ +// destVec[i] = srcVec[i]; +// } +// } \ No newline at end of file diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/lighthouse/lighthouse_geometry.c b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/lighthouse/lighthouse_geometry.c index e8de754ef..b5a860120 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/lighthouse/lighthouse_geometry.c +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/lighthouse/lighthouse_geometry.c @@ -158,15 +158,16 @@ bool lighthouseGeometryIntersectionPlaneVector(const vec3d linePoint, const vec3 return true; } -void lighthouseGeometryGetSensorPosition(const vec3d cfPos, const arm_matrix_instance_f32 *R, vec3d sensorPosition, vec3d pos) { - arm_matrix_instance_f32 LOCAL_POS = {3, 1, sensorPosition}; +//COMMENTED FIRMWARE +// void lighthouseGeometryGetSensorPosition(const vec3d cfPos, const arm_matrix_instance_f32 *R, vec3d sensorPosition, vec3d pos) { +// arm_matrix_instance_f32 LOCAL_POS = {3, 1, sensorPosition}; - vec3d rotatedPos = {0}; - arm_matrix_instance_f32 ROTATED_POS = {1, 3, rotatedPos}; - arm_mat_mult_f32(R, &LOCAL_POS, &ROTATED_POS); +// vec3d rotatedPos = {0}; +// arm_matrix_instance_f32 ROTATED_POS = {1, 3, rotatedPos}; +// arm_mat_mult_f32(R, &LOCAL_POS, &ROTATED_POS); - vec_add(cfPos, rotatedPos, pos); -} +// vec_add(cfPos, rotatedPos, pos); +// } bool lighthouseGeometryYawDelta(const vec3d ipv, const vec3d spv, const vec3d n, float* yawDelta) { float spvn = vec_length(spv); diff --git a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/lighthouse/lighthouse_geometry.h b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/lighthouse/lighthouse_geometry.h index 277a9cfad..f4bca0b5f 100644 --- a/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/lighthouse/lighthouse_geometry.h +++ b/uboot-compiler/bm_crazyflie/FreeRTOS/Demo/CORTEX_A72_64-bit_Raspberrypi4/utils/src/lighthouse/lighthouse_geometry.h @@ -1,7 +1,7 @@ #pragma once #include <stdbool.h> -#include "arm_math.h" +//#include "arm_math.h" #include "stabilizer_types.h" typedef struct { @@ -68,7 +68,8 @@ bool lighthouseGeometryIntersectionPlaneVector(const vec3d linePoint, const vec3 * @param sensorPosition - the sensor position relative to the center of the Crazyflie * @param pos - (output) the position of the sensor */ -void lighthouseGeometryGetSensorPosition(const vec3d cfPos, const arm_matrix_instance_f32 *R, vec3d sensorPosition, vec3d pos); +//COMMENTED FIRMWARE +//void lighthouseGeometryGetSensorPosition(const vec3d cfPos, const arm_matrix_instance_f32 *R, vec3d sensorPosition, vec3d pos); /** * @brief Calculate the angle between two vectors. The vectors are assumed to be in a plane defined by -- GitLab