From 906ad1075e8aa9664ab198a88d9277b08fc2b316 Mon Sep 17 00:00:00 2001 From: Mohamed Hawas <57467484+Mohamed-Hawas@users.noreply.github.com> Date: Sat, 17 Feb 2024 19:01:34 +0200 Subject: [PATCH 1/2] update my local --- .gitignore | 4 + AutoParkingCar/.cproject | 182 - AutoParkingCar/.project | 31 - .../.settings/language.settings.xml | 27 - AutoParkingCar/AutoParkingCar Debug.cfg | 40 - AutoParkingCar/AutoParkingCar Debug.launch | 87 - AutoParkingCar/Debug/AutoParkingCar.bin | Bin 8904 -> 0 bytes AutoParkingCar/Debug/AutoParkingCar.list | 4414 ----------------- AutoParkingCar/Debug/AutoParkingCar.map | 2036 -------- .../Debug/Src/Application/Car_Control.d | 16 - .../Debug/Src/Application/Car_Control.su | 0 .../Src/Application/Collision_Avoidance.d | 17 - .../Src/Application/Collision_Avoidance.o | Bin 56964 -> 0 bytes .../Src/Application/Collision_Avoidance.su | 9 - .../Debug/Src/Application/Motion_Planing.d | 25 - .../Debug/Src/Application/Motion_Planing.su | 0 .../Debug/Src/Application/Path_Tracking.d | 19 - .../Debug/Src/Application/Path_Tracking.o | Bin 56196 -> 0 bytes .../Debug/Src/Application/Path_Tracking.su | 5 - .../Debug/Src/Application/Scenario_Select.d | 4 - .../Debug/Src/Application/Scenario_Select.o | Bin 19948 -> 0 bytes .../Debug/Src/Application/Scenario_Select.su | 0 .../Debug/Src/Application/subdir.mk | 39 - .../Debug/Src/HAL/HCOMPASS/HAL_COMPASS.d | 1 - .../Debug/Src/HAL/HCOMPASS/HAL_COMPASS.o | Bin 20180 -> 0 bytes .../Debug/Src/HAL/HCOMPASS/HAL_COMPASS.su | 1 - .../Debug/Src/HAL/HCOMPASS/subdir.mk | 19 - AutoParkingCar/Debug/Src/HAL/HMOTOR/HMOTOR.d | 27 - AutoParkingCar/Debug/Src/HAL/HMOTOR/HMOTOR.o | Bin 59612 -> 0 bytes AutoParkingCar/Debug/Src/HAL/HMOTOR/HMOTOR.su | 4 - AutoParkingCar/Debug/Src/HAL/HMOTOR/subdir.mk | 19 - .../Debug/Src/HAL/HSERVO/HSERVO_Prog.d | 18 - .../Debug/Src/HAL/HSERVO/HSERVO_Prog.o | Bin 26576 -> 0 bytes .../Debug/Src/HAL/HSERVO/HSERVO_Prog.su | 2 - AutoParkingCar/Debug/Src/HAL/HSERVO/subdir.mk | 19 - .../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.d | 23 - .../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o | Bin 27560 -> 0 bytes .../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.su | 3 - .../Debug/Src/HAL/HULTRA_SONIC/subdir.mk | 19 - .../Debug/Src/MCAL/MEXTI/MEXTI_Prog.d | 14 - .../Debug/Src/MCAL/MEXTI/MEXTI_Prog.o | Bin 61960 -> 0 bytes .../Debug/Src/MCAL/MEXTI/MEXTI_Prog.su | 16 - AutoParkingCar/Debug/Src/MCAL/MEXTI/subdir.mk | 19 - .../Debug/Src/MCAL/MGPIO/MGPIO_Prog.d | 14 - .../Debug/Src/MCAL/MGPIO/MGPIO_Prog.o | Bin 60276 -> 0 bytes .../Debug/Src/MCAL/MGPIO/MGPIO_Prog.su | 8 - AutoParkingCar/Debug/Src/MCAL/MGPIO/subdir.mk | 19 - .../Debug/Src/MCAL/MI2C/MI2C_Prog.d | 14 - .../Debug/Src/MCAL/MI2C/MI2C_Prog.o | Bin 60604 -> 0 bytes .../Debug/Src/MCAL/MI2C/MI2C_Prog.su | 12 - AutoParkingCar/Debug/Src/MCAL/MI2C/subdir.mk | 19 - .../Debug/Src/MCAL/MIWDT/MIWDT_Prog.d | 14 - .../Debug/Src/MCAL/MIWDT/MIWDT_Prog.o | Bin 54472 -> 0 bytes .../Debug/Src/MCAL/MIWDT/MIWDT_Prog.su | 2 - AutoParkingCar/Debug/Src/MCAL/MIWDT/subdir.mk | 19 - .../Debug/Src/MCAL/MNVIC/MNVIC_Prog.d | 14 - .../Debug/Src/MCAL/MNVIC/MNVIC_Prog.o | Bin 59984 -> 0 bytes .../Debug/Src/MCAL/MNVIC/MNVIC_Prog.su | 8 - AutoParkingCar/Debug/Src/MCAL/MNVIC/subdir.mk | 19 - .../Debug/Src/MCAL/MRCC/MRCC_Prog.d | 14 - .../Debug/Src/MCAL/MRCC/MRCC_Prog.o | Bin 56636 -> 0 bytes .../Debug/Src/MCAL/MRCC/MRCC_Prog.su | 3 - AutoParkingCar/Debug/Src/MCAL/MRCC/subdir.mk | 19 - .../Debug/Src/MCAL/MSPI/MSPI_Prog.d | 20 - .../Debug/Src/MCAL/MSPI/MSPI_Prog.o | Bin 64448 -> 0 bytes .../Debug/Src/MCAL/MSPI/MSPI_Prog.su | 13 - AutoParkingCar/Debug/Src/MCAL/MSPI/subdir.mk | 19 - .../Debug/Src/MCAL/MSTK/MSYSTICK_Prog.d | 15 - .../Debug/Src/MCAL/MSTK/MSYSTICK_Prog.o | Bin 56988 -> 0 bytes .../Debug/Src/MCAL/MSTK/MSYSTICK_Prog.su | 8 - AutoParkingCar/Debug/Src/MCAL/MSTK/subdir.mk | 19 - .../Debug/Src/MCAL/MTIMER/MTIMER_Prog.d | 15 - .../Debug/Src/MCAL/MTIMER/MTIMER_Prog.o | Bin 67060 -> 0 bytes .../Debug/Src/MCAL/MTIMER/MTIMER_Prog.su | 15 - .../Debug/Src/MCAL/MTIMER/subdir.mk | 19 - .../Debug/Src/MCAL/MUART/MUSART_Program.d | 15 - .../Debug/Src/MCAL/MUART/MUSART_Program.o | Bin 58368 -> 0 bytes .../Debug/Src/MCAL/MUART/MUSART_Program.su | 7 - AutoParkingCar/Debug/Src/MCAL/MUART/subdir.mk | 19 - AutoParkingCar/Debug/Src/main.d | 59 - AutoParkingCar/Debug/Src/main.su | 0 AutoParkingCar/Debug/Src/subdir.mk | 29 - AutoParkingCar/Debug/Src/syscalls.d | 1 - AutoParkingCar/Debug/Src/syscalls.o | Bin 78332 -> 0 bytes AutoParkingCar/Debug/Src/syscalls.su | 18 - AutoParkingCar/Debug/Src/sysmem.d | 1 - AutoParkingCar/Debug/Src/sysmem.o | Bin 49336 -> 0 bytes AutoParkingCar/Debug/Src/sysmem.su | 1 - .../Debug/Startup/startup_stm32f401rctx.d | 1 - .../Debug/Startup/startup_stm32f401rctx.o | Bin 4944 -> 0 bytes AutoParkingCar/Debug/Startup/subdir.mk | 19 - AutoParkingCar/Debug/makefile | 93 - AutoParkingCar/Debug/objects.list | 23 - AutoParkingCar/Debug/objects.mk | 8 - AutoParkingCar/Debug/sources.mk | 39 - AutoParkingCar/Release/AutoParkingCar.bin | Bin 2868 -> 0 bytes AutoParkingCar/Release/AutoParkingCar.elf | Bin 75588 -> 0 bytes AutoParkingCar/Release/AutoParkingCar.list | 1105 ----- AutoParkingCar/Release/AutoParkingCar.map | 872 ---- .../STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.su | 0 .../Src/stm32f4xx_hal_cortex.su | 0 .../Src/stm32f4xx_hal_dma.su | 0 .../Src/stm32f4xx_hal_dma_ex.su | 0 .../Src/stm32f4xx_hal_exti.su | 0 .../Src/stm32f4xx_hal_flash.su | 0 .../Src/stm32f4xx_hal_flash_ex.su | 0 .../Inc/STM32F4xx_HAL_Driver/Src/subdir.mk | 89 - .../Release/Src/Application/Car_Control.d | 19 - .../Release/Src/Application/Car_Control.o | Bin 1184 -> 0 bytes .../Release/Src/Application/Car_Control.su | 2 - .../Src/Application/Collision_Avoidance.d | 2 - .../Src/Application/Collision_Avoidance.o | Bin 800 -> 0 bytes .../Src/Application/Collision_Avoidance.su | 0 .../Release/Src/Application/Motion_Planing.d | 25 - .../Release/Src/Application/Motion_Planing.o | Bin 4716 -> 0 bytes .../Release/Src/Application/Motion_Planing.su | 8 - .../Release/Src/Application/Path_Tracking.d | 19 - .../Release/Src/Application/Path_Tracking.o | Bin 1308 -> 0 bytes .../Release/Src/Application/Path_Tracking.su | 1 - .../Release/Src/Application/Scenario_Select.d | 4 - .../Release/Src/Application/Scenario_Select.o | Bin 908 -> 0 bytes .../Src/Application/Scenario_Select.su | 0 .../Release/Src/Application/subdir.mk | 39 - .../Release/Src/HAL/HCOMPASS/HAL_COMPASS.d | 1 - .../Release/Src/HAL/HCOMPASS/HAL_COMPASS.o | Bin 920 -> 0 bytes .../Release/Src/HAL/HCOMPASS/HAL_COMPASS.su | 1 - .../Release/Src/HAL/HCOMPASS/subdir.mk | 19 - .../Release/Src/HAL/HMOTOR/HMOTOR.d | 27 - .../Release/Src/HAL/HMOTOR/HMOTOR.o | Bin 2604 -> 0 bytes .../Release/Src/HAL/HMOTOR/HMOTOR.su | 4 - .../Release/Src/HAL/HMOTOR/subdir.mk | 19 - .../Release/Src/HAL/HSERVO/HSERVO_Prog.d | 21 - .../Release/Src/HAL/HSERVO/HSERVO_Prog.o | Bin 1576 -> 0 bytes .../Release/Src/HAL/HSERVO/HSERVO_Prog.su | 2 - .../Release/Src/HAL/HSERVO/subdir.mk | 19 - .../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.d | 23 - .../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o | Bin 2088 -> 0 bytes .../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.su | 3 - .../Release/Src/HAL/HULTRA_SONIC/subdir.mk | 19 - .../Release/Src/MCAL/MEXTI/MEXTI_Prog.d | 14 - .../Release/Src/MCAL/MEXTI/MEXTI_Prog.o | Bin 4400 -> 0 bytes .../Release/Src/MCAL/MEXTI/MEXTI_Prog.su | 16 - .../Release/Src/MCAL/MEXTI/subdir.mk | 19 - .../Release/Src/MCAL/MGPIO/MGPIO_Prog.d | 14 - .../Release/Src/MCAL/MGPIO/MGPIO_Prog.o | Bin 2680 -> 0 bytes .../Release/Src/MCAL/MGPIO/MGPIO_Prog.su | 8 - .../Release/Src/MCAL/MGPIO/subdir.mk | 19 - .../Release/Src/MCAL/MI2C/MI2C_Prog.d | 14 - .../Release/Src/MCAL/MI2C/MI2C_Prog.o | Bin 2624 -> 0 bytes .../Release/Src/MCAL/MI2C/MI2C_Prog.su | 8 - .../Release/Src/MCAL/MI2C/subdir.mk | 19 - .../Release/Src/MCAL/MIWDT/MIWDT_Prog.d | 14 - .../Release/Src/MCAL/MIWDT/MIWDT_Prog.o | Bin 1136 -> 0 bytes .../Release/Src/MCAL/MIWDT/MIWDT_Prog.su | 2 - .../Release/Src/MCAL/MIWDT/subdir.mk | 19 - .../Release/Src/MCAL/MNVIC/MNVIC_Prog.d | 14 - .../Release/Src/MCAL/MNVIC/MNVIC_Prog.o | Bin 2588 -> 0 bytes .../Release/Src/MCAL/MNVIC/MNVIC_Prog.su | 8 - .../Release/Src/MCAL/MNVIC/subdir.mk | 19 - .../Release/Src/MCAL/MRCC/MRCC_Prog.d | 14 - .../Release/Src/MCAL/MRCC/MRCC_Prog.o | Bin 1448 -> 0 bytes .../Release/Src/MCAL/MRCC/MRCC_Prog.su | 3 - .../Release/Src/MCAL/MRCC/subdir.mk | 19 - .../Release/Src/MCAL/MSPI/MSPI_Prog.d | 20 - .../Release/Src/MCAL/MSPI/MSPI_Prog.o | Bin 4104 -> 0 bytes .../Release/Src/MCAL/MSPI/MSPI_Prog.su | 13 - .../Release/Src/MCAL/MSPI/subdir.mk | 19 - .../Release/Src/MCAL/MSTK/MSYSTICK_Prog.d | 15 - .../Release/Src/MCAL/MSTK/MSYSTICK_Prog.o | Bin 2456 -> 0 bytes .../Release/Src/MCAL/MSTK/MSYSTICK_Prog.su | 8 - .../Release/Src/MCAL/MSTK/subdir.mk | 19 - .../Release/Src/MCAL/MTIMER/MTIMER_Prog.d | 15 - .../Release/Src/MCAL/MTIMER/MTIMER_Prog.o | Bin 6048 -> 0 bytes .../Release/Src/MCAL/MTIMER/MTIMER_Prog.su | 15 - .../Release/Src/MCAL/MTIMER/subdir.mk | 19 - .../Release/Src/MCAL/MUART/MUSART_Program.d | 15 - .../Release/Src/MCAL/MUART/MUSART_Program.o | Bin 2192 -> 0 bytes .../Release/Src/MCAL/MUART/MUSART_Program.su | 7 - .../Release/Src/MCAL/MUART/subdir.mk | 19 - AutoParkingCar/Release/Src/main.d | 63 - AutoParkingCar/Release/Src/main.o | Bin 1608 -> 0 bytes AutoParkingCar/Release/Src/main.su | 2 - AutoParkingCar/Release/Src/subdir.mk | 29 - AutoParkingCar/Release/Src/syscalls.d | 1 - AutoParkingCar/Release/Src/syscalls.o | Bin 3812 -> 0 bytes AutoParkingCar/Release/Src/syscalls.su | 18 - AutoParkingCar/Release/Src/sysmem.d | 1 - AutoParkingCar/Release/Src/sysmem.o | Bin 1288 -> 0 bytes AutoParkingCar/Release/Src/sysmem.su | 1 - .../Release/Startup/startup_stm32f401rctx.d | 1 - .../Release/Startup/startup_stm32f401rctx.o | Bin 3880 -> 0 bytes AutoParkingCar/Release/Startup/subdir.mk | 19 - AutoParkingCar/Release/makefile | 93 - AutoParkingCar/Release/objects.list | 23 - AutoParkingCar/Release/objects.mk | 8 - AutoParkingCar/Release/sources.mk | 39 - AutoParkingCar/STM32F401RCTX_FLASH.ld | 175 - AutoParkingCar/Src/HAL/HSERVO/HSERVO_Int.h | 74 - AutoParkingCar/Src/main.c | 71 - AutoParkingCar/Src/syscalls.c | 176 - AutoParkingCar/Src/sysmem.c | 79 - .../Startup/startup_stm32f401rctx.s | 372 -- .../Src/APP}/Car_Control.c | 6 +- .../Src/APP}/Collision_Avoidance.c | 0 .../Src/APP}/Inc/Car_Control.h | 0 .../Src/APP}/Inc/Collision_Avoidance.h | 0 .../Src/APP}/Inc/Motion_Planing.h | 0 .../Src/APP}/Inc/Path_Tracking.h | 0 .../Src/APP}/Inc/Scenario_Select.h | 0 .../Src/APP}/Motion_Planing.c | 6 +- .../Src/APP}/Path_Tracking.c | 0 .../Src/APP}/Scenario_Select.c | 0 .../Src/HAL/.gitkeep | 0 .../Src/HAL/HCOMPASS/HAL_COMPASS.c | 0 .../Src/HAL/HCOMPASS/HAL_COMPASS.h | 0 .../Src/HAL/HMOTOR/HMOTOR.c | 0 .../Src/HAL/HMOTOR/HMOTOR.h | 0 .../Src/HAL/HSERVO/HSERVO_Config.h | 0 .../Src}/HAL/HSERVO/HSERVO_Int.h | 5 + .../Src/HAL/HSERVO/HSERVO_Prog.c | 0 .../HAL/HULTRA_SONIC/HULTRA_SONIC_Config.h | 0 .../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h | 5 + .../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.c | 0 .../Src/LIB/BIT_MATH.h | 0 .../Src/LIB/STD_TYPES.h | 0 .../Src/MCAL/.gitkeep | 0 .../Src/MCAL/MEXTI/MEXTI_Config.h | 0 .../Src/MCAL/MEXTI/MEXTI_Int.h | 0 .../Src/MCAL/MEXTI/MEXTI_Private.h | 0 .../Src/MCAL/MEXTI/MEXTI_Prog.c | 0 .../Src/MCAL/MGPIO/MGPIO_Config.h | 0 .../Src/MCAL/MGPIO/MGPIO_Private.h | 0 .../Src/MCAL/MGPIO/MGPIO_Prog.c | 0 .../Src/MCAL/MGPIO/MGPIO_int.h | 0 .../Src/MCAL/MI2C/MI2C_Config.h | 0 .../Src/MCAL/MI2C/MI2C_Private.h | 0 .../Src/MCAL/MI2C/MI2C_Prog.c | 0 .../Src/MCAL/MI2C/MI2C_int.h | 0 .../Src/MCAL/MIWDT/MIWDT_Config.h | 0 .../Src/MCAL/MIWDT/MIWDT_Private.h | 0 .../Src/MCAL/MIWDT/MIWDT_Prog.c | 0 .../Src/MCAL/MIWDT/MIWDT_int.h | 0 .../Src/MCAL/MNVIC/MNVIC_Config.h | 0 .../Src/MCAL/MNVIC/MNVIC_Private.h | 0 .../Src/MCAL/MNVIC/MNVIC_Prog.c | 0 .../Src/MCAL/MNVIC/MNVIC_int.h | 0 .../Src/MCAL/MRCC/MRCC_Config.h | 0 .../Src/MCAL/MRCC/MRCC_Int.h | 0 .../Src/MCAL/MRCC/MRCC_Private.h | 0 .../Src/MCAL/MRCC/MRCC_Prog.c | 0 .../Src/MCAL/MSPI/MSPI_Config.h | 0 .../Src/MCAL/MSPI/MSPI_Private.h | 0 .../Src/MCAL/MSPI/MSPI_Prog.c | 0 .../Src/MCAL/MSPI/MSPI_int.h | 0 .../Src/MCAL/MSTK/MSYSTICK_Config.h | 0 .../Src/MCAL/MSTK/MSYSTICK_Int.h | 0 .../Src/MCAL/MSTK/MSYSTICK_Private.h | 0 .../Src/MCAL/MSTK/MSYSTICK_Prog.c | 0 .../Src/MCAL/MTIMER/MTIMER_Config.h | 0 .../Src/MCAL/MTIMER/MTIMER_Int.h | 27 +- .../Src/MCAL/MTIMER/MTIMER_Private.h | 0 .../Src/MCAL/MTIMER/MTIMER_Prog.c | 10 +- .../Src/MCAL/MUART/MUSART_Config.h | 0 .../Src/MCAL/MUART/MUSART_Interface.h | 0 .../Src/MCAL/MUART/MUSART_Private.h | 0 .../Src/MCAL/MUART/MUSART_Program.c | 0 BlackPill_RC/Src/HAL/HCOMPASS/HAL_COMPASS.c | 36 - BlackPill_RC/Src/HAL/HCOMPASS/HAL_COMPASS.h | 54 - BlackPill_RC/Src/HAL/HSERVO/HSERVO_Config.h | 14 - BlackPill_RC/Src/HAL/HSERVO/HSERVO_Int.h | 15 - BlackPill_RC/Src/HAL/HSERVO/HSERVO_Prog.c | 38 - BlackPill_RC/Src/LIB/BIT_MATH.h | 19 - BlackPill_RC/Src/LIB/STD_TYPES.h | 37 - BlackPill_RC/Src/MCAL/I2C_2/I2C_Config_2.h | 64 - BlackPill_RC/Src/MCAL/I2C_2/I2C_Interface_2.h | 50 - BlackPill_RC/Src/MCAL/I2C_2/I2C_Program_2.c | 340 -- BlackPill_RC/Src/MCAL/I2C_2/I2C_Registers_2.h | 59 - BlackPill_RC/Src/MCAL/MEXTI/MEXTI_Config.h | 15 - BlackPill_RC/Src/MCAL/MEXTI/MEXTI_Int.h | 65 - BlackPill_RC/Src/MCAL/MEXTI/MEXTI_Private.h | 43 - BlackPill_RC/Src/MCAL/MEXTI/MEXTI_Prog.c | 142 - BlackPill_RC/Src/MCAL/MGPIO/MGPIO_Config.h | 13 - BlackPill_RC/Src/MCAL/MGPIO/MGPIO_Private.h | 45 - BlackPill_RC/Src/MCAL/MGPIO/MGPIO_Prog.c | 243 - BlackPill_RC/Src/MCAL/MGPIO/MGPIO_int.h | 111 - BlackPill_RC/Src/MCAL/MI2C/MI2C_Config.h | 18 - BlackPill_RC/Src/MCAL/MI2C/MI2C_Private.h | 81 - BlackPill_RC/Src/MCAL/MI2C/MI2C_Prog.c | 332 -- BlackPill_RC/Src/MCAL/MI2C/MI2C_int.h | 194 - BlackPill_RC/Src/MCAL/MIWDT/MIWDT_Config.h | 26 - BlackPill_RC/Src/MCAL/MIWDT/MIWDT_Private.h | 45 - BlackPill_RC/Src/MCAL/MIWDT/MIWDT_Prog.c | 52 - BlackPill_RC/Src/MCAL/MIWDT/MIWDT_int.h | 30 - BlackPill_RC/Src/MCAL/MNVIC/MNVIC_Config.h | 21 - BlackPill_RC/Src/MCAL/MNVIC/MNVIC_Private.h | 43 - BlackPill_RC/Src/MCAL/MNVIC/MNVIC_Prog.c | 91 - BlackPill_RC/Src/MCAL/MNVIC/MNVIC_int.h | 117 - BlackPill_RC/Src/MCAL/MRCC/MRCC_Config.h | 15 - BlackPill_RC/Src/MCAL/MRCC/MRCC_Int.h | 58 - BlackPill_RC/Src/MCAL/MRCC/MRCC_Private.h | 87 - BlackPill_RC/Src/MCAL/MRCC/MRCC_Prog.c | 84 - BlackPill_RC/Src/MCAL/MSPI/MSPI_Config.h | 37 - BlackPill_RC/Src/MCAL/MSPI/MSPI_Private.h | 76 - BlackPill_RC/Src/MCAL/MSPI/MSPI_Prog.c | 280 -- BlackPill_RC/Src/MCAL/MSPI/MSPI_int.h | 157 - BlackPill_RC/Src/MCAL/MSTK/MSYSTICK_Config.h | 29 - BlackPill_RC/Src/MCAL/MSTK/MSYSTICK_Int.h | 27 - BlackPill_RC/Src/MCAL/MSTK/MSYSTICK_Private.h | 35 - BlackPill_RC/Src/MCAL/MSTK/MSYSTICK_Prog.c | 82 - BlackPill_RC/Src/MCAL/MTIMER/MTIMER_Config.h | 14 - BlackPill_RC/Src/MCAL/MTIMER/MTIMER_Int.h | 25 - BlackPill_RC/Src/MCAL/MTIMER/MTIMER_Private.h | 79 - BlackPill_RC/Src/MCAL/MTIMER/MTIMER_Prog.c | 127 - BlackPill_RC/Src/MCAL/MUART/MUSART_Config.h | 28 - .../Src/MCAL/MUART/MUSART_Interface.h | 26 - BlackPill_RC/Src/MCAL/MUART/MUSART_Private.h | 109 - BlackPill_RC/Src/MCAL/MUART/MUSART_Program.c | 116 - Src/Application/Collision_Avoidance.c | 101 - Src/Application/Inc/Car_Control.h | 24 - Src/Application/Inc/Collision_Avoidance.h | 160 - Src/Application/Inc/Motion_Planing.h | 63 - Src/Application/Inc/Path_Tracking.h | 67 - Src/Application/Inc/Scenario_Select.h | 13 - Src/Application/Motion_Planing.c | 141 - Src/Application/Path_Tracking.c | 55 - Src/Application/Scenario_Select.c | 2 - Src/HAL/.gitkeep | 0 Src/HAL/HCOMPASS/HAL_COMPASS.c | 36 - Src/HAL/HCOMPASS/HAL_COMPASS.h | 54 - Src/HAL/HMOTOR/HMOTOR.c | 74 - Src/HAL/HMOTOR/HMOTOR.h | 65 - Src/HAL/HSERVO/HSERVO_Config.h | 20 - Src/HAL/HSERVO/HSERVO_Prog.c | 105 - Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Config.h | 17 - Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h | 106 - Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.c | 112 - Src/LIB/BIT_MATH.h | 20 - Src/LIB/STD_TYPES.h | 37 - Src/MCAL/.gitkeep | 0 Src/MCAL/MEXTI/MEXTI_Config.h | 14 - Src/MCAL/MEXTI/MEXTI_Int.h | 145 - Src/MCAL/MEXTI/MEXTI_Private.h | 65 - Src/MCAL/MEXTI/MEXTI_Prog.c | 147 - Src/MCAL/MGPIO/MGPIO_Config.h | 13 - Src/MCAL/MGPIO/MGPIO_Private.h | 45 - Src/MCAL/MGPIO/MGPIO_Prog.c | 243 - Src/MCAL/MGPIO/MGPIO_int.h | 111 - Src/MCAL/MI2C/MI2C_Config.h | 18 - Src/MCAL/MI2C/MI2C_Private.h | 81 - Src/MCAL/MI2C/MI2C_Prog.c | 332 -- Src/MCAL/MI2C/MI2C_int.h | 194 - Src/MCAL/MIWDT/MIWDT_Config.h | 26 - Src/MCAL/MIWDT/MIWDT_Private.h | 45 - Src/MCAL/MIWDT/MIWDT_Prog.c | 52 - Src/MCAL/MIWDT/MIWDT_int.h | 30 - Src/MCAL/MNVIC/MNVIC_Config.h | 21 - Src/MCAL/MNVIC/MNVIC_Private.h | 43 - Src/MCAL/MNVIC/MNVIC_Prog.c | 91 - Src/MCAL/MNVIC/MNVIC_int.h | 117 - Src/MCAL/MRCC/MRCC_Config.h | 15 - Src/MCAL/MRCC/MRCC_Int.h | 88 - Src/MCAL/MRCC/MRCC_Private.h | 104 - Src/MCAL/MRCC/MRCC_Prog.c | 89 - Src/MCAL/MSPI/MSPI_Config.h | 37 - Src/MCAL/MSPI/MSPI_Private.h | 76 - Src/MCAL/MSPI/MSPI_Prog.c | 280 -- Src/MCAL/MSPI/MSPI_int.h | 157 - Src/MCAL/MSTK/MSYSTICK_Config.h | 36 - Src/MCAL/MSTK/MSYSTICK_Int.h | 84 - Src/MCAL/MSTK/MSYSTICK_Private.h | 55 - Src/MCAL/MSTK/MSYSTICK_Prog.c | 90 - Src/MCAL/MTIMER/MTIMER_Config.h | 14 - Src/MCAL/MTIMER/MTIMER_Int.h | 135 - Src/MCAL/MTIMER/MTIMER_Private.h | 158 - Src/MCAL/MTIMER/MTIMER_Prog.c | 509 -- Src/MCAL/MUART/MUSART_Config.h | 12 - Src/MCAL/MUART/MUSART_Interface.h | 128 - Src/MCAL/MUART/MUSART_Private.h | 108 - Src/MCAL/MUART/MUSART_Program.c | 116 - 379 files changed, 52 insertions(+), 21195 deletions(-) delete mode 100644 AutoParkingCar/.cproject delete mode 100644 AutoParkingCar/.project delete mode 100644 AutoParkingCar/.settings/language.settings.xml delete mode 100644 AutoParkingCar/AutoParkingCar Debug.cfg delete mode 100644 AutoParkingCar/AutoParkingCar Debug.launch delete mode 100644 AutoParkingCar/Debug/AutoParkingCar.bin delete mode 100644 AutoParkingCar/Debug/AutoParkingCar.list delete mode 100644 AutoParkingCar/Debug/AutoParkingCar.map delete mode 100644 AutoParkingCar/Debug/Src/Application/Car_Control.d delete mode 100644 AutoParkingCar/Debug/Src/Application/Car_Control.su delete mode 100644 AutoParkingCar/Debug/Src/Application/Collision_Avoidance.d delete mode 100644 AutoParkingCar/Debug/Src/Application/Collision_Avoidance.o delete mode 100644 AutoParkingCar/Debug/Src/Application/Collision_Avoidance.su delete mode 100644 AutoParkingCar/Debug/Src/Application/Motion_Planing.d delete mode 100644 AutoParkingCar/Debug/Src/Application/Motion_Planing.su delete mode 100644 AutoParkingCar/Debug/Src/Application/Path_Tracking.d delete mode 100644 AutoParkingCar/Debug/Src/Application/Path_Tracking.o delete mode 100644 AutoParkingCar/Debug/Src/Application/Path_Tracking.su delete mode 100644 AutoParkingCar/Debug/Src/Application/Scenario_Select.d delete mode 100644 AutoParkingCar/Debug/Src/Application/Scenario_Select.o delete mode 100644 AutoParkingCar/Debug/Src/Application/Scenario_Select.su delete mode 100644 AutoParkingCar/Debug/Src/Application/subdir.mk delete mode 100644 AutoParkingCar/Debug/Src/HAL/HCOMPASS/HAL_COMPASS.d delete mode 100644 AutoParkingCar/Debug/Src/HAL/HCOMPASS/HAL_COMPASS.o delete mode 100644 AutoParkingCar/Debug/Src/HAL/HCOMPASS/HAL_COMPASS.su delete mode 100644 AutoParkingCar/Debug/Src/HAL/HCOMPASS/subdir.mk delete mode 100644 AutoParkingCar/Debug/Src/HAL/HMOTOR/HMOTOR.d delete mode 100644 AutoParkingCar/Debug/Src/HAL/HMOTOR/HMOTOR.o delete mode 100644 AutoParkingCar/Debug/Src/HAL/HMOTOR/HMOTOR.su delete mode 100644 AutoParkingCar/Debug/Src/HAL/HMOTOR/subdir.mk delete mode 100644 AutoParkingCar/Debug/Src/HAL/HSERVO/HSERVO_Prog.d delete mode 100644 AutoParkingCar/Debug/Src/HAL/HSERVO/HSERVO_Prog.o delete mode 100644 AutoParkingCar/Debug/Src/HAL/HSERVO/HSERVO_Prog.su delete mode 100644 AutoParkingCar/Debug/Src/HAL/HSERVO/subdir.mk delete mode 100644 AutoParkingCar/Debug/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.d delete mode 100644 AutoParkingCar/Debug/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o delete mode 100644 AutoParkingCar/Debug/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.su delete mode 100644 AutoParkingCar/Debug/Src/HAL/HULTRA_SONIC/subdir.mk delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MEXTI/MEXTI_Prog.d delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MEXTI/MEXTI_Prog.o delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MEXTI/MEXTI_Prog.su delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MEXTI/subdir.mk delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MGPIO/MGPIO_Prog.d delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MGPIO/MGPIO_Prog.o delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MGPIO/MGPIO_Prog.su delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MGPIO/subdir.mk delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MI2C/MI2C_Prog.d delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MI2C/MI2C_Prog.o delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MI2C/MI2C_Prog.su delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MI2C/subdir.mk delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MIWDT/MIWDT_Prog.d delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MIWDT/MIWDT_Prog.o delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MIWDT/MIWDT_Prog.su delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MIWDT/subdir.mk delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MNVIC/MNVIC_Prog.d delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MNVIC/MNVIC_Prog.o delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MNVIC/MNVIC_Prog.su delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MNVIC/subdir.mk delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MRCC/MRCC_Prog.d delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MRCC/MRCC_Prog.o delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MRCC/MRCC_Prog.su delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MRCC/subdir.mk delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MSPI/MSPI_Prog.d delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MSPI/MSPI_Prog.o delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MSPI/MSPI_Prog.su delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MSPI/subdir.mk delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MSTK/MSYSTICK_Prog.d delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MSTK/MSYSTICK_Prog.o delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MSTK/MSYSTICK_Prog.su delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MSTK/subdir.mk delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MTIMER/MTIMER_Prog.d delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MTIMER/MTIMER_Prog.o delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MTIMER/MTIMER_Prog.su delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MTIMER/subdir.mk delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MUART/MUSART_Program.d delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MUART/MUSART_Program.o delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MUART/MUSART_Program.su delete mode 100644 AutoParkingCar/Debug/Src/MCAL/MUART/subdir.mk delete mode 100644 AutoParkingCar/Debug/Src/main.d delete mode 100644 AutoParkingCar/Debug/Src/main.su delete mode 100644 AutoParkingCar/Debug/Src/subdir.mk delete mode 100644 AutoParkingCar/Debug/Src/syscalls.d delete mode 100644 AutoParkingCar/Debug/Src/syscalls.o delete mode 100644 AutoParkingCar/Debug/Src/syscalls.su delete mode 100644 AutoParkingCar/Debug/Src/sysmem.d delete mode 100644 AutoParkingCar/Debug/Src/sysmem.o delete mode 100644 AutoParkingCar/Debug/Src/sysmem.su delete mode 100644 AutoParkingCar/Debug/Startup/startup_stm32f401rctx.d delete mode 100644 AutoParkingCar/Debug/Startup/startup_stm32f401rctx.o delete mode 100644 AutoParkingCar/Debug/Startup/subdir.mk delete mode 100644 AutoParkingCar/Debug/makefile delete mode 100644 AutoParkingCar/Debug/objects.list delete mode 100644 AutoParkingCar/Debug/objects.mk delete mode 100644 AutoParkingCar/Debug/sources.mk delete mode 100644 AutoParkingCar/Release/AutoParkingCar.bin delete mode 100644 AutoParkingCar/Release/AutoParkingCar.elf delete mode 100644 AutoParkingCar/Release/AutoParkingCar.list delete mode 100644 AutoParkingCar/Release/AutoParkingCar.map delete mode 100644 AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.su delete mode 100644 AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.su delete mode 100644 AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.su delete mode 100644 AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.su delete mode 100644 AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.su delete mode 100644 AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.su delete mode 100644 AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.su delete mode 100644 AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/subdir.mk delete mode 100644 AutoParkingCar/Release/Src/Application/Car_Control.d delete mode 100644 AutoParkingCar/Release/Src/Application/Car_Control.o delete mode 100644 AutoParkingCar/Release/Src/Application/Car_Control.su delete mode 100644 AutoParkingCar/Release/Src/Application/Collision_Avoidance.d delete mode 100644 AutoParkingCar/Release/Src/Application/Collision_Avoidance.o delete mode 100644 AutoParkingCar/Release/Src/Application/Collision_Avoidance.su delete mode 100644 AutoParkingCar/Release/Src/Application/Motion_Planing.d delete mode 100644 AutoParkingCar/Release/Src/Application/Motion_Planing.o delete mode 100644 AutoParkingCar/Release/Src/Application/Motion_Planing.su delete mode 100644 AutoParkingCar/Release/Src/Application/Path_Tracking.d delete mode 100644 AutoParkingCar/Release/Src/Application/Path_Tracking.o delete mode 100644 AutoParkingCar/Release/Src/Application/Path_Tracking.su delete mode 100644 AutoParkingCar/Release/Src/Application/Scenario_Select.d delete mode 100644 AutoParkingCar/Release/Src/Application/Scenario_Select.o delete mode 100644 AutoParkingCar/Release/Src/Application/Scenario_Select.su delete mode 100644 AutoParkingCar/Release/Src/Application/subdir.mk delete mode 100644 AutoParkingCar/Release/Src/HAL/HCOMPASS/HAL_COMPASS.d delete mode 100644 AutoParkingCar/Release/Src/HAL/HCOMPASS/HAL_COMPASS.o delete mode 100644 AutoParkingCar/Release/Src/HAL/HCOMPASS/HAL_COMPASS.su delete mode 100644 AutoParkingCar/Release/Src/HAL/HCOMPASS/subdir.mk delete mode 100644 AutoParkingCar/Release/Src/HAL/HMOTOR/HMOTOR.d delete mode 100644 AutoParkingCar/Release/Src/HAL/HMOTOR/HMOTOR.o delete mode 100644 AutoParkingCar/Release/Src/HAL/HMOTOR/HMOTOR.su delete mode 100644 AutoParkingCar/Release/Src/HAL/HMOTOR/subdir.mk delete mode 100644 AutoParkingCar/Release/Src/HAL/HSERVO/HSERVO_Prog.d delete mode 100644 AutoParkingCar/Release/Src/HAL/HSERVO/HSERVO_Prog.o delete mode 100644 AutoParkingCar/Release/Src/HAL/HSERVO/HSERVO_Prog.su delete mode 100644 AutoParkingCar/Release/Src/HAL/HSERVO/subdir.mk delete mode 100644 AutoParkingCar/Release/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.d delete mode 100644 AutoParkingCar/Release/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o delete mode 100644 AutoParkingCar/Release/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.su delete mode 100644 AutoParkingCar/Release/Src/HAL/HULTRA_SONIC/subdir.mk delete mode 100644 AutoParkingCar/Release/Src/MCAL/MEXTI/MEXTI_Prog.d delete mode 100644 AutoParkingCar/Release/Src/MCAL/MEXTI/MEXTI_Prog.o delete mode 100644 AutoParkingCar/Release/Src/MCAL/MEXTI/MEXTI_Prog.su delete mode 100644 AutoParkingCar/Release/Src/MCAL/MEXTI/subdir.mk delete mode 100644 AutoParkingCar/Release/Src/MCAL/MGPIO/MGPIO_Prog.d delete mode 100644 AutoParkingCar/Release/Src/MCAL/MGPIO/MGPIO_Prog.o delete mode 100644 AutoParkingCar/Release/Src/MCAL/MGPIO/MGPIO_Prog.su delete mode 100644 AutoParkingCar/Release/Src/MCAL/MGPIO/subdir.mk delete mode 100644 AutoParkingCar/Release/Src/MCAL/MI2C/MI2C_Prog.d delete mode 100644 AutoParkingCar/Release/Src/MCAL/MI2C/MI2C_Prog.o delete mode 100644 AutoParkingCar/Release/Src/MCAL/MI2C/MI2C_Prog.su delete mode 100644 AutoParkingCar/Release/Src/MCAL/MI2C/subdir.mk delete mode 100644 AutoParkingCar/Release/Src/MCAL/MIWDT/MIWDT_Prog.d delete mode 100644 AutoParkingCar/Release/Src/MCAL/MIWDT/MIWDT_Prog.o delete mode 100644 AutoParkingCar/Release/Src/MCAL/MIWDT/MIWDT_Prog.su delete mode 100644 AutoParkingCar/Release/Src/MCAL/MIWDT/subdir.mk delete mode 100644 AutoParkingCar/Release/Src/MCAL/MNVIC/MNVIC_Prog.d delete mode 100644 AutoParkingCar/Release/Src/MCAL/MNVIC/MNVIC_Prog.o delete mode 100644 AutoParkingCar/Release/Src/MCAL/MNVIC/MNVIC_Prog.su delete mode 100644 AutoParkingCar/Release/Src/MCAL/MNVIC/subdir.mk delete mode 100644 AutoParkingCar/Release/Src/MCAL/MRCC/MRCC_Prog.d delete mode 100644 AutoParkingCar/Release/Src/MCAL/MRCC/MRCC_Prog.o delete mode 100644 AutoParkingCar/Release/Src/MCAL/MRCC/MRCC_Prog.su delete mode 100644 AutoParkingCar/Release/Src/MCAL/MRCC/subdir.mk delete mode 100644 AutoParkingCar/Release/Src/MCAL/MSPI/MSPI_Prog.d delete mode 100644 AutoParkingCar/Release/Src/MCAL/MSPI/MSPI_Prog.o delete mode 100644 AutoParkingCar/Release/Src/MCAL/MSPI/MSPI_Prog.su delete mode 100644 AutoParkingCar/Release/Src/MCAL/MSPI/subdir.mk delete mode 100644 AutoParkingCar/Release/Src/MCAL/MSTK/MSYSTICK_Prog.d delete mode 100644 AutoParkingCar/Release/Src/MCAL/MSTK/MSYSTICK_Prog.o delete mode 100644 AutoParkingCar/Release/Src/MCAL/MSTK/MSYSTICK_Prog.su delete mode 100644 AutoParkingCar/Release/Src/MCAL/MSTK/subdir.mk delete mode 100644 AutoParkingCar/Release/Src/MCAL/MTIMER/MTIMER_Prog.d delete mode 100644 AutoParkingCar/Release/Src/MCAL/MTIMER/MTIMER_Prog.o delete mode 100644 AutoParkingCar/Release/Src/MCAL/MTIMER/MTIMER_Prog.su delete mode 100644 AutoParkingCar/Release/Src/MCAL/MTIMER/subdir.mk delete mode 100644 AutoParkingCar/Release/Src/MCAL/MUART/MUSART_Program.d delete mode 100644 AutoParkingCar/Release/Src/MCAL/MUART/MUSART_Program.o delete mode 100644 AutoParkingCar/Release/Src/MCAL/MUART/MUSART_Program.su delete mode 100644 AutoParkingCar/Release/Src/MCAL/MUART/subdir.mk delete mode 100644 AutoParkingCar/Release/Src/main.d delete mode 100644 AutoParkingCar/Release/Src/main.o delete mode 100644 AutoParkingCar/Release/Src/main.su delete mode 100644 AutoParkingCar/Release/Src/subdir.mk delete mode 100644 AutoParkingCar/Release/Src/syscalls.d delete mode 100644 AutoParkingCar/Release/Src/syscalls.o delete mode 100644 AutoParkingCar/Release/Src/syscalls.su delete mode 100644 AutoParkingCar/Release/Src/sysmem.d delete mode 100644 AutoParkingCar/Release/Src/sysmem.o delete mode 100644 AutoParkingCar/Release/Src/sysmem.su delete mode 100644 AutoParkingCar/Release/Startup/startup_stm32f401rctx.d delete mode 100644 AutoParkingCar/Release/Startup/startup_stm32f401rctx.o delete mode 100644 AutoParkingCar/Release/Startup/subdir.mk delete mode 100644 AutoParkingCar/Release/makefile delete mode 100644 AutoParkingCar/Release/objects.list delete mode 100644 AutoParkingCar/Release/objects.mk delete mode 100644 AutoParkingCar/Release/sources.mk delete mode 100644 AutoParkingCar/STM32F401RCTX_FLASH.ld delete mode 100644 AutoParkingCar/Src/HAL/HSERVO/HSERVO_Int.h delete mode 100644 AutoParkingCar/Src/main.c delete mode 100644 AutoParkingCar/Src/syscalls.c delete mode 100644 AutoParkingCar/Src/sysmem.c delete mode 100644 AutoParkingCar/Startup/startup_stm32f401rctx.s rename {AutoParkingCar/Src/Application => BlackPill/Src/APP}/Car_Control.c (91%) rename {AutoParkingCar/Src/Application => BlackPill/Src/APP}/Collision_Avoidance.c (100%) rename {AutoParkingCar/Src/Application => BlackPill/Src/APP}/Inc/Car_Control.h (100%) rename {AutoParkingCar/Src/Application => BlackPill/Src/APP}/Inc/Collision_Avoidance.h (100%) rename {AutoParkingCar/Src/Application => BlackPill/Src/APP}/Inc/Motion_Planing.h (100%) rename {AutoParkingCar/Src/Application => BlackPill/Src/APP}/Inc/Path_Tracking.h (100%) rename {AutoParkingCar/Src/Application => BlackPill/Src/APP}/Inc/Scenario_Select.h (100%) rename {AutoParkingCar/Src/Application => BlackPill/Src/APP}/Motion_Planing.c (95%) rename {AutoParkingCar/Src/Application => BlackPill/Src/APP}/Path_Tracking.c (100%) rename {AutoParkingCar/Src/Application => BlackPill/Src/APP}/Scenario_Select.c (100%) rename {AutoParkingCar => BlackPill}/Src/HAL/.gitkeep (100%) rename {AutoParkingCar => BlackPill}/Src/HAL/HCOMPASS/HAL_COMPASS.c (100%) rename {AutoParkingCar => BlackPill}/Src/HAL/HCOMPASS/HAL_COMPASS.h (100%) rename {AutoParkingCar => BlackPill}/Src/HAL/HMOTOR/HMOTOR.c (100%) rename {AutoParkingCar => BlackPill}/Src/HAL/HMOTOR/HMOTOR.h (100%) rename {AutoParkingCar => BlackPill}/Src/HAL/HSERVO/HSERVO_Config.h (100%) rename {Src => BlackPill/Src}/HAL/HSERVO/HSERVO_Int.h (92%) rename {AutoParkingCar => BlackPill}/Src/HAL/HSERVO/HSERVO_Prog.c (100%) rename {AutoParkingCar => BlackPill}/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Config.h (100%) rename {AutoParkingCar => BlackPill}/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h (93%) rename {AutoParkingCar => BlackPill}/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.c (100%) rename {AutoParkingCar => BlackPill}/Src/LIB/BIT_MATH.h (100%) rename {AutoParkingCar => BlackPill}/Src/LIB/STD_TYPES.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/.gitkeep (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MEXTI/MEXTI_Config.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MEXTI/MEXTI_Int.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MEXTI/MEXTI_Private.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MEXTI/MEXTI_Prog.c (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MGPIO/MGPIO_Config.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MGPIO/MGPIO_Private.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MGPIO/MGPIO_Prog.c (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MGPIO/MGPIO_int.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MI2C/MI2C_Config.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MI2C/MI2C_Private.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MI2C/MI2C_Prog.c (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MI2C/MI2C_int.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MIWDT/MIWDT_Config.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MIWDT/MIWDT_Private.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MIWDT/MIWDT_Prog.c (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MIWDT/MIWDT_int.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MNVIC/MNVIC_Config.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MNVIC/MNVIC_Private.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MNVIC/MNVIC_Prog.c (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MNVIC/MNVIC_int.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MRCC/MRCC_Config.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MRCC/MRCC_Int.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MRCC/MRCC_Private.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MRCC/MRCC_Prog.c (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MSPI/MSPI_Config.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MSPI/MSPI_Private.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MSPI/MSPI_Prog.c (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MSPI/MSPI_int.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MSTK/MSYSTICK_Config.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MSTK/MSYSTICK_Int.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MSTK/MSYSTICK_Private.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MSTK/MSYSTICK_Prog.c (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MTIMER/MTIMER_Config.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MTIMER/MTIMER_Int.h (85%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MTIMER/MTIMER_Private.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MTIMER/MTIMER_Prog.c (98%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MUART/MUSART_Config.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MUART/MUSART_Interface.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MUART/MUSART_Private.h (100%) rename {AutoParkingCar => BlackPill}/Src/MCAL/MUART/MUSART_Program.c (100%) delete mode 100644 BlackPill_RC/Src/HAL/HCOMPASS/HAL_COMPASS.c delete mode 100644 BlackPill_RC/Src/HAL/HCOMPASS/HAL_COMPASS.h delete mode 100644 BlackPill_RC/Src/HAL/HSERVO/HSERVO_Config.h delete mode 100644 BlackPill_RC/Src/HAL/HSERVO/HSERVO_Int.h delete mode 100644 BlackPill_RC/Src/HAL/HSERVO/HSERVO_Prog.c delete mode 100644 BlackPill_RC/Src/LIB/BIT_MATH.h delete mode 100644 BlackPill_RC/Src/LIB/STD_TYPES.h delete mode 100644 BlackPill_RC/Src/MCAL/I2C_2/I2C_Config_2.h delete mode 100644 BlackPill_RC/Src/MCAL/I2C_2/I2C_Interface_2.h delete mode 100644 BlackPill_RC/Src/MCAL/I2C_2/I2C_Program_2.c delete mode 100644 BlackPill_RC/Src/MCAL/I2C_2/I2C_Registers_2.h delete mode 100644 BlackPill_RC/Src/MCAL/MEXTI/MEXTI_Config.h delete mode 100644 BlackPill_RC/Src/MCAL/MEXTI/MEXTI_Int.h delete mode 100644 BlackPill_RC/Src/MCAL/MEXTI/MEXTI_Private.h delete mode 100644 BlackPill_RC/Src/MCAL/MEXTI/MEXTI_Prog.c delete mode 100644 BlackPill_RC/Src/MCAL/MGPIO/MGPIO_Config.h delete mode 100644 BlackPill_RC/Src/MCAL/MGPIO/MGPIO_Private.h delete mode 100644 BlackPill_RC/Src/MCAL/MGPIO/MGPIO_Prog.c delete mode 100644 BlackPill_RC/Src/MCAL/MGPIO/MGPIO_int.h delete mode 100644 BlackPill_RC/Src/MCAL/MI2C/MI2C_Config.h delete mode 100644 BlackPill_RC/Src/MCAL/MI2C/MI2C_Private.h delete mode 100644 BlackPill_RC/Src/MCAL/MI2C/MI2C_Prog.c delete mode 100644 BlackPill_RC/Src/MCAL/MI2C/MI2C_int.h delete mode 100644 BlackPill_RC/Src/MCAL/MIWDT/MIWDT_Config.h delete mode 100644 BlackPill_RC/Src/MCAL/MIWDT/MIWDT_Private.h delete mode 100644 BlackPill_RC/Src/MCAL/MIWDT/MIWDT_Prog.c delete mode 100644 BlackPill_RC/Src/MCAL/MIWDT/MIWDT_int.h delete mode 100644 BlackPill_RC/Src/MCAL/MNVIC/MNVIC_Config.h delete mode 100644 BlackPill_RC/Src/MCAL/MNVIC/MNVIC_Private.h delete mode 100644 BlackPill_RC/Src/MCAL/MNVIC/MNVIC_Prog.c delete mode 100644 BlackPill_RC/Src/MCAL/MNVIC/MNVIC_int.h delete mode 100644 BlackPill_RC/Src/MCAL/MRCC/MRCC_Config.h delete mode 100644 BlackPill_RC/Src/MCAL/MRCC/MRCC_Int.h delete mode 100644 BlackPill_RC/Src/MCAL/MRCC/MRCC_Private.h delete mode 100644 BlackPill_RC/Src/MCAL/MRCC/MRCC_Prog.c delete mode 100644 BlackPill_RC/Src/MCAL/MSPI/MSPI_Config.h delete mode 100644 BlackPill_RC/Src/MCAL/MSPI/MSPI_Private.h delete mode 100644 BlackPill_RC/Src/MCAL/MSPI/MSPI_Prog.c delete mode 100644 BlackPill_RC/Src/MCAL/MSPI/MSPI_int.h delete mode 100644 BlackPill_RC/Src/MCAL/MSTK/MSYSTICK_Config.h delete mode 100644 BlackPill_RC/Src/MCAL/MSTK/MSYSTICK_Int.h delete mode 100644 BlackPill_RC/Src/MCAL/MSTK/MSYSTICK_Private.h delete mode 100644 BlackPill_RC/Src/MCAL/MSTK/MSYSTICK_Prog.c delete mode 100644 BlackPill_RC/Src/MCAL/MTIMER/MTIMER_Config.h delete mode 100644 BlackPill_RC/Src/MCAL/MTIMER/MTIMER_Int.h delete mode 100644 BlackPill_RC/Src/MCAL/MTIMER/MTIMER_Private.h delete mode 100644 BlackPill_RC/Src/MCAL/MTIMER/MTIMER_Prog.c delete mode 100644 BlackPill_RC/Src/MCAL/MUART/MUSART_Config.h delete mode 100644 BlackPill_RC/Src/MCAL/MUART/MUSART_Interface.h delete mode 100644 BlackPill_RC/Src/MCAL/MUART/MUSART_Private.h delete mode 100644 BlackPill_RC/Src/MCAL/MUART/MUSART_Program.c delete mode 100644 Src/Application/Collision_Avoidance.c delete mode 100644 Src/Application/Inc/Car_Control.h delete mode 100644 Src/Application/Inc/Collision_Avoidance.h delete mode 100644 Src/Application/Inc/Motion_Planing.h delete mode 100644 Src/Application/Inc/Path_Tracking.h delete mode 100644 Src/Application/Inc/Scenario_Select.h delete mode 100644 Src/Application/Motion_Planing.c delete mode 100644 Src/Application/Path_Tracking.c delete mode 100644 Src/Application/Scenario_Select.c delete mode 100644 Src/HAL/.gitkeep delete mode 100644 Src/HAL/HCOMPASS/HAL_COMPASS.c delete mode 100644 Src/HAL/HCOMPASS/HAL_COMPASS.h delete mode 100644 Src/HAL/HMOTOR/HMOTOR.c delete mode 100644 Src/HAL/HMOTOR/HMOTOR.h delete mode 100644 Src/HAL/HSERVO/HSERVO_Config.h delete mode 100644 Src/HAL/HSERVO/HSERVO_Prog.c delete mode 100644 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Config.h delete mode 100644 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h delete mode 100644 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.c delete mode 100644 Src/LIB/BIT_MATH.h delete mode 100644 Src/LIB/STD_TYPES.h delete mode 100644 Src/MCAL/.gitkeep delete mode 100644 Src/MCAL/MEXTI/MEXTI_Config.h delete mode 100644 Src/MCAL/MEXTI/MEXTI_Int.h delete mode 100644 Src/MCAL/MEXTI/MEXTI_Private.h delete mode 100644 Src/MCAL/MEXTI/MEXTI_Prog.c delete mode 100644 Src/MCAL/MGPIO/MGPIO_Config.h delete mode 100644 Src/MCAL/MGPIO/MGPIO_Private.h delete mode 100644 Src/MCAL/MGPIO/MGPIO_Prog.c delete mode 100644 Src/MCAL/MGPIO/MGPIO_int.h delete mode 100644 Src/MCAL/MI2C/MI2C_Config.h delete mode 100644 Src/MCAL/MI2C/MI2C_Private.h delete mode 100644 Src/MCAL/MI2C/MI2C_Prog.c delete mode 100644 Src/MCAL/MI2C/MI2C_int.h delete mode 100644 Src/MCAL/MIWDT/MIWDT_Config.h delete mode 100644 Src/MCAL/MIWDT/MIWDT_Private.h delete mode 100644 Src/MCAL/MIWDT/MIWDT_Prog.c delete mode 100644 Src/MCAL/MIWDT/MIWDT_int.h delete mode 100644 Src/MCAL/MNVIC/MNVIC_Config.h delete mode 100644 Src/MCAL/MNVIC/MNVIC_Private.h delete mode 100644 Src/MCAL/MNVIC/MNVIC_Prog.c delete mode 100644 Src/MCAL/MNVIC/MNVIC_int.h delete mode 100644 Src/MCAL/MRCC/MRCC_Config.h delete mode 100644 Src/MCAL/MRCC/MRCC_Int.h delete mode 100644 Src/MCAL/MRCC/MRCC_Private.h delete mode 100644 Src/MCAL/MRCC/MRCC_Prog.c delete mode 100644 Src/MCAL/MSPI/MSPI_Config.h delete mode 100644 Src/MCAL/MSPI/MSPI_Private.h delete mode 100644 Src/MCAL/MSPI/MSPI_Prog.c delete mode 100644 Src/MCAL/MSPI/MSPI_int.h delete mode 100644 Src/MCAL/MSTK/MSYSTICK_Config.h delete mode 100644 Src/MCAL/MSTK/MSYSTICK_Int.h delete mode 100644 Src/MCAL/MSTK/MSYSTICK_Private.h delete mode 100644 Src/MCAL/MSTK/MSYSTICK_Prog.c delete mode 100644 Src/MCAL/MTIMER/MTIMER_Config.h delete mode 100644 Src/MCAL/MTIMER/MTIMER_Int.h delete mode 100644 Src/MCAL/MTIMER/MTIMER_Private.h delete mode 100644 Src/MCAL/MTIMER/MTIMER_Prog.c delete mode 100644 Src/MCAL/MUART/MUSART_Config.h delete mode 100644 Src/MCAL/MUART/MUSART_Interface.h delete mode 100644 Src/MCAL/MUART/MUSART_Private.h delete mode 100644 Src/MCAL/MUART/MUSART_Program.c diff --git a/.gitignore b/.gitignore index 3440959..99bf015 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,12 @@ # Ignore BlackPill_RC/ folder and its contents BlackPill/* +<<<<<<< HEAD .metadata/ RemoteSystemsTempFiles/ .gitignore +======= + +>>>>>>> f8298a5c481fe8d6f83b6d6c7b2f18afb624c791 # Exclude specific subfolders within BlackPill_RC/ !BlackPill/Src/MCAL/ !BlackPill/Src/HAL/ diff --git a/AutoParkingCar/.cproject b/AutoParkingCar/.cproject deleted file mode 100644 index 46eec71..0000000 --- a/AutoParkingCar/.cproject +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/AutoParkingCar/.project b/AutoParkingCar/.project deleted file mode 100644 index f8fea6d..0000000 --- a/AutoParkingCar/.project +++ /dev/null @@ -1,31 +0,0 @@ - - - AutoParkingCar - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - com.st.stm32cube.ide.mcu.MCUProjectNature - org.eclipse.cdt.core.cnature - com.st.stm32cube.ide.mcu.MCUCubeIdeServicesRevAev2ProjectNature - com.st.stm32cube.ide.mcu.MCUManagedMakefileProjectNature - com.st.stm32cube.ide.mcu.MCUSingleCpuProjectNature - com.st.stm32cube.ide.mcu.MCURootProjectNature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/AutoParkingCar/.settings/language.settings.xml b/AutoParkingCar/.settings/language.settings.xml deleted file mode 100644 index a928a9d..0000000 --- a/AutoParkingCar/.settings/language.settings.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/AutoParkingCar/AutoParkingCar Debug.cfg b/AutoParkingCar/AutoParkingCar Debug.cfg deleted file mode 100644 index 1148799..0000000 --- a/AutoParkingCar/AutoParkingCar Debug.cfg +++ /dev/null @@ -1,40 +0,0 @@ -# This is an genericBoard board with a single STM32F401RCTx chip -# -# Generated by STM32CubeIDE -# Take care that such file, as generated, may be overridden without any early notice. Please have a look to debug launch configuration setup(s) - -source [find interface/stlink-dap.cfg] - - -set WORKAREASIZE 0x8000 - -transport select "dapdirect_swd" - -set CHIPNAME STM32F401RCTx -set BOARDNAME genericBoard - -# Enable debug when in low power modes -set ENABLE_LOW_POWER 1 - -# Stop Watchdog counters when halt -set STOP_WATCHDOG 1 - -# STlink Debug clock frequency -set CLOCK_FREQ 8000 - -# Reset configuration -# use software system reset if reset done -reset_config none -set CONNECT_UNDER_RESET 0 -set CORE_RESET 0 - -# ACCESS PORT NUMBER -set AP_NUM 0 -# GDB PORT -set GDB_PORT 3333 - - - -# BCTM CPU variables - -source [find target/stm32f4x.cfg] diff --git a/AutoParkingCar/AutoParkingCar Debug.launch b/AutoParkingCar/AutoParkingCar Debug.launch deleted file mode 100644 index 185c7cd..0000000 --- a/AutoParkingCar/AutoParkingCar Debug.launch +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/AutoParkingCar/Debug/AutoParkingCar.bin b/AutoParkingCar/Debug/AutoParkingCar.bin deleted file mode 100644 index bb82ab4952aea528255ab2abe89cbce335fd46d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8904 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 diff --git a/AutoParkingCar/Debug/AutoParkingCar.list b/AutoParkingCar/Debug/AutoParkingCar.list deleted file mode 100644 index 4c082d8..0000000 --- a/AutoParkingCar/Debug/AutoParkingCar.list +++ /dev/null @@ -1,4414 +0,0 @@ - -AutoParkingCar.elf: file format elf32-littlearm - -Sections: -Idx Name Size VMA LMA File off Algn - 0 .isr_vector 00000194 08000000 08000000 00010000 2**0 - CONTENTS, ALLOC, LOAD, READONLY, DATA - 1 .text 00002108 08000198 08000198 00010198 2**3 - CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .rodata 00000020 080022a0 080022a0 000122a0 2**2 - CONTENTS, ALLOC, LOAD, READONLY, DATA - 3 .ARM.extab 00000000 080022c0 080022c0 000122c8 2**0 - CONTENTS - 4 .ARM 00000000 080022c0 080022c0 000122c8 2**0 - CONTENTS - 5 .preinit_array 00000000 080022c0 080022c8 000122c8 2**0 - CONTENTS, ALLOC, LOAD, DATA - 6 .init_array 00000004 080022c0 080022c0 000122c0 2**2 - CONTENTS, ALLOC, LOAD, DATA - 7 .fini_array 00000004 080022c4 080022c4 000122c4 2**2 - CONTENTS, ALLOC, LOAD, DATA - 8 .data 00000000 20000000 20000000 000122c8 2**0 - CONTENTS, ALLOC, LOAD, DATA - 9 .bss 00000234 20000000 080022c8 00020000 2**2 - ALLOC - 10 ._user_heap_stack 00000604 20000234 080022c8 00020234 2**0 - ALLOC - 11 .ARM.attributes 00000030 00000000 00000000 000122c8 2**0 - CONTENTS, READONLY - 12 .debug_info 0000729e 00000000 00000000 000122f8 2**0 - CONTENTS, READONLY, DEBUGGING - 13 .debug_abbrev 0000138a 00000000 00000000 00019596 2**0 - CONTENTS, READONLY, DEBUGGING - 14 .debug_aranges 00000388 00000000 00000000 0001a920 2**3 - CONTENTS, READONLY, DEBUGGING - 15 .debug_ranges 000002e0 00000000 00000000 0001aca8 2**3 - CONTENTS, READONLY, DEBUGGING - 16 .debug_macro 00001177 00000000 00000000 0001af88 2**0 - CONTENTS, READONLY, DEBUGGING - 17 .debug_line 00003a52 00000000 00000000 0001c0ff 2**0 - CONTENTS, READONLY, DEBUGGING - 18 .debug_str 000094e2 00000000 00000000 0001fb51 2**0 - CONTENTS, READONLY, DEBUGGING - 19 .comment 0000007b 00000000 00000000 00029033 2**0 - CONTENTS, READONLY - 20 .debug_frame 00000ce4 00000000 00000000 000290b0 2**2 - CONTENTS, READONLY, DEBUGGING - -Disassembly of section .text: - -08000198 <__do_global_dtors_aux>: - 8000198: b510 push {r4, lr} - 800019a: 4c05 ldr r4, [pc, #20] ; (80001b0 <__do_global_dtors_aux+0x18>) - 800019c: 7823 ldrb r3, [r4, #0] - 800019e: b933 cbnz r3, 80001ae <__do_global_dtors_aux+0x16> - 80001a0: 4b04 ldr r3, [pc, #16] ; (80001b4 <__do_global_dtors_aux+0x1c>) - 80001a2: b113 cbz r3, 80001aa <__do_global_dtors_aux+0x12> - 80001a4: 4804 ldr r0, [pc, #16] ; (80001b8 <__do_global_dtors_aux+0x20>) - 80001a6: f3af 8000 nop.w - 80001aa: 2301 movs r3, #1 - 80001ac: 7023 strb r3, [r4, #0] - 80001ae: bd10 pop {r4, pc} - 80001b0: 20000000 .word 0x20000000 - 80001b4: 00000000 .word 0x00000000 - 80001b8: 08002288 .word 0x08002288 - -080001bc : - 80001bc: b508 push {r3, lr} - 80001be: 4b03 ldr r3, [pc, #12] ; (80001cc ) - 80001c0: b11b cbz r3, 80001ca - 80001c2: 4903 ldr r1, [pc, #12] ; (80001d0 ) - 80001c4: 4803 ldr r0, [pc, #12] ; (80001d4 ) - 80001c6: f3af 8000 nop.w - 80001ca: bd08 pop {r3, pc} - 80001cc: 00000000 .word 0x00000000 - 80001d0: 20000004 .word 0x20000004 - 80001d4: 08002288 .word 0x08002288 - -080001d8 <__aeabi_drsub>: - 80001d8: f081 4100 eor.w r1, r1, #2147483648 ; 0x80000000 - 80001dc: e002 b.n 80001e4 <__adddf3> - 80001de: bf00 nop - -080001e0 <__aeabi_dsub>: - 80001e0: f083 4300 eor.w r3, r3, #2147483648 ; 0x80000000 - -080001e4 <__adddf3>: - 80001e4: b530 push {r4, r5, lr} - 80001e6: ea4f 0441 mov.w r4, r1, lsl #1 - 80001ea: ea4f 0543 mov.w r5, r3, lsl #1 - 80001ee: ea94 0f05 teq r4, r5 - 80001f2: bf08 it eq - 80001f4: ea90 0f02 teqeq r0, r2 - 80001f8: bf1f itttt ne - 80001fa: ea54 0c00 orrsne.w ip, r4, r0 - 80001fe: ea55 0c02 orrsne.w ip, r5, r2 - 8000202: ea7f 5c64 mvnsne.w ip, r4, asr #21 - 8000206: ea7f 5c65 mvnsne.w ip, r5, asr #21 - 800020a: f000 80e2 beq.w 80003d2 <__adddf3+0x1ee> - 800020e: ea4f 5454 mov.w r4, r4, lsr #21 - 8000212: ebd4 5555 rsbs r5, r4, r5, lsr #21 - 8000216: bfb8 it lt - 8000218: 426d neglt r5, r5 - 800021a: dd0c ble.n 8000236 <__adddf3+0x52> - 800021c: 442c add r4, r5 - 800021e: ea80 0202 eor.w r2, r0, r2 - 8000222: ea81 0303 eor.w r3, r1, r3 - 8000226: ea82 0000 eor.w r0, r2, r0 - 800022a: ea83 0101 eor.w r1, r3, r1 - 800022e: ea80 0202 eor.w r2, r0, r2 - 8000232: ea81 0303 eor.w r3, r1, r3 - 8000236: 2d36 cmp r5, #54 ; 0x36 - 8000238: bf88 it hi - 800023a: bd30 pophi {r4, r5, pc} - 800023c: f011 4f00 tst.w r1, #2147483648 ; 0x80000000 - 8000240: ea4f 3101 mov.w r1, r1, lsl #12 - 8000244: f44f 1c80 mov.w ip, #1048576 ; 0x100000 - 8000248: ea4c 3111 orr.w r1, ip, r1, lsr #12 - 800024c: d002 beq.n 8000254 <__adddf3+0x70> - 800024e: 4240 negs r0, r0 - 8000250: eb61 0141 sbc.w r1, r1, r1, lsl #1 - 8000254: f013 4f00 tst.w r3, #2147483648 ; 0x80000000 - 8000258: ea4f 3303 mov.w r3, r3, lsl #12 - 800025c: ea4c 3313 orr.w r3, ip, r3, lsr #12 - 8000260: d002 beq.n 8000268 <__adddf3+0x84> - 8000262: 4252 negs r2, r2 - 8000264: eb63 0343 sbc.w r3, r3, r3, lsl #1 - 8000268: ea94 0f05 teq r4, r5 - 800026c: f000 80a7 beq.w 80003be <__adddf3+0x1da> - 8000270: f1a4 0401 sub.w r4, r4, #1 - 8000274: f1d5 0e20 rsbs lr, r5, #32 - 8000278: db0d blt.n 8000296 <__adddf3+0xb2> - 800027a: fa02 fc0e lsl.w ip, r2, lr - 800027e: fa22 f205 lsr.w r2, r2, r5 - 8000282: 1880 adds r0, r0, r2 - 8000284: f141 0100 adc.w r1, r1, #0 - 8000288: fa03 f20e lsl.w r2, r3, lr - 800028c: 1880 adds r0, r0, r2 - 800028e: fa43 f305 asr.w r3, r3, r5 - 8000292: 4159 adcs r1, r3 - 8000294: e00e b.n 80002b4 <__adddf3+0xd0> - 8000296: f1a5 0520 sub.w r5, r5, #32 - 800029a: f10e 0e20 add.w lr, lr, #32 - 800029e: 2a01 cmp r2, #1 - 80002a0: fa03 fc0e lsl.w ip, r3, lr - 80002a4: bf28 it cs - 80002a6: f04c 0c02 orrcs.w ip, ip, #2 - 80002aa: fa43 f305 asr.w r3, r3, r5 - 80002ae: 18c0 adds r0, r0, r3 - 80002b0: eb51 71e3 adcs.w r1, r1, r3, asr #31 - 80002b4: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000 - 80002b8: d507 bpl.n 80002ca <__adddf3+0xe6> - 80002ba: f04f 0e00 mov.w lr, #0 - 80002be: f1dc 0c00 rsbs ip, ip, #0 - 80002c2: eb7e 0000 sbcs.w r0, lr, r0 - 80002c6: eb6e 0101 sbc.w r1, lr, r1 - 80002ca: f5b1 1f80 cmp.w r1, #1048576 ; 0x100000 - 80002ce: d31b bcc.n 8000308 <__adddf3+0x124> - 80002d0: f5b1 1f00 cmp.w r1, #2097152 ; 0x200000 - 80002d4: d30c bcc.n 80002f0 <__adddf3+0x10c> - 80002d6: 0849 lsrs r1, r1, #1 - 80002d8: ea5f 0030 movs.w r0, r0, rrx - 80002dc: ea4f 0c3c mov.w ip, ip, rrx - 80002e0: f104 0401 add.w r4, r4, #1 - 80002e4: ea4f 5244 mov.w r2, r4, lsl #21 - 80002e8: f512 0f80 cmn.w r2, #4194304 ; 0x400000 - 80002ec: f080 809a bcs.w 8000424 <__adddf3+0x240> - 80002f0: f1bc 4f00 cmp.w ip, #2147483648 ; 0x80000000 - 80002f4: bf08 it eq - 80002f6: ea5f 0c50 movseq.w ip, r0, lsr #1 - 80002fa: f150 0000 adcs.w r0, r0, #0 - 80002fe: eb41 5104 adc.w r1, r1, r4, lsl #20 - 8000302: ea41 0105 orr.w r1, r1, r5 - 8000306: bd30 pop {r4, r5, pc} - 8000308: ea5f 0c4c movs.w ip, ip, lsl #1 - 800030c: 4140 adcs r0, r0 - 800030e: eb41 0101 adc.w r1, r1, r1 - 8000312: f411 1f80 tst.w r1, #1048576 ; 0x100000 - 8000316: f1a4 0401 sub.w r4, r4, #1 - 800031a: d1e9 bne.n 80002f0 <__adddf3+0x10c> - 800031c: f091 0f00 teq r1, #0 - 8000320: bf04 itt eq - 8000322: 4601 moveq r1, r0 - 8000324: 2000 moveq r0, #0 - 8000326: fab1 f381 clz r3, r1 - 800032a: bf08 it eq - 800032c: 3320 addeq r3, #32 - 800032e: f1a3 030b sub.w r3, r3, #11 - 8000332: f1b3 0220 subs.w r2, r3, #32 - 8000336: da0c bge.n 8000352 <__adddf3+0x16e> - 8000338: 320c adds r2, #12 - 800033a: dd08 ble.n 800034e <__adddf3+0x16a> - 800033c: f102 0c14 add.w ip, r2, #20 - 8000340: f1c2 020c rsb r2, r2, #12 - 8000344: fa01 f00c lsl.w r0, r1, ip - 8000348: fa21 f102 lsr.w r1, r1, r2 - 800034c: e00c b.n 8000368 <__adddf3+0x184> - 800034e: f102 0214 add.w r2, r2, #20 - 8000352: bfd8 it le - 8000354: f1c2 0c20 rsble ip, r2, #32 - 8000358: fa01 f102 lsl.w r1, r1, r2 - 800035c: fa20 fc0c lsr.w ip, r0, ip - 8000360: bfdc itt le - 8000362: ea41 010c orrle.w r1, r1, ip - 8000366: 4090 lslle r0, r2 - 8000368: 1ae4 subs r4, r4, r3 - 800036a: bfa2 ittt ge - 800036c: eb01 5104 addge.w r1, r1, r4, lsl #20 - 8000370: 4329 orrge r1, r5 - 8000372: bd30 popge {r4, r5, pc} - 8000374: ea6f 0404 mvn.w r4, r4 - 8000378: 3c1f subs r4, #31 - 800037a: da1c bge.n 80003b6 <__adddf3+0x1d2> - 800037c: 340c adds r4, #12 - 800037e: dc0e bgt.n 800039e <__adddf3+0x1ba> - 8000380: f104 0414 add.w r4, r4, #20 - 8000384: f1c4 0220 rsb r2, r4, #32 - 8000388: fa20 f004 lsr.w r0, r0, r4 - 800038c: fa01 f302 lsl.w r3, r1, r2 - 8000390: ea40 0003 orr.w r0, r0, r3 - 8000394: fa21 f304 lsr.w r3, r1, r4 - 8000398: ea45 0103 orr.w r1, r5, r3 - 800039c: bd30 pop {r4, r5, pc} - 800039e: f1c4 040c rsb r4, r4, #12 - 80003a2: f1c4 0220 rsb r2, r4, #32 - 80003a6: fa20 f002 lsr.w r0, r0, r2 - 80003aa: fa01 f304 lsl.w r3, r1, r4 - 80003ae: ea40 0003 orr.w r0, r0, r3 - 80003b2: 4629 mov r1, r5 - 80003b4: bd30 pop {r4, r5, pc} - 80003b6: fa21 f004 lsr.w r0, r1, r4 - 80003ba: 4629 mov r1, r5 - 80003bc: bd30 pop {r4, r5, pc} - 80003be: f094 0f00 teq r4, #0 - 80003c2: f483 1380 eor.w r3, r3, #1048576 ; 0x100000 - 80003c6: bf06 itte eq - 80003c8: f481 1180 eoreq.w r1, r1, #1048576 ; 0x100000 - 80003cc: 3401 addeq r4, #1 - 80003ce: 3d01 subne r5, #1 - 80003d0: e74e b.n 8000270 <__adddf3+0x8c> - 80003d2: ea7f 5c64 mvns.w ip, r4, asr #21 - 80003d6: bf18 it ne - 80003d8: ea7f 5c65 mvnsne.w ip, r5, asr #21 - 80003dc: d029 beq.n 8000432 <__adddf3+0x24e> - 80003de: ea94 0f05 teq r4, r5 - 80003e2: bf08 it eq - 80003e4: ea90 0f02 teqeq r0, r2 - 80003e8: d005 beq.n 80003f6 <__adddf3+0x212> - 80003ea: ea54 0c00 orrs.w ip, r4, r0 - 80003ee: bf04 itt eq - 80003f0: 4619 moveq r1, r3 - 80003f2: 4610 moveq r0, r2 - 80003f4: bd30 pop {r4, r5, pc} - 80003f6: ea91 0f03 teq r1, r3 - 80003fa: bf1e ittt ne - 80003fc: 2100 movne r1, #0 - 80003fe: 2000 movne r0, #0 - 8000400: bd30 popne {r4, r5, pc} - 8000402: ea5f 5c54 movs.w ip, r4, lsr #21 - 8000406: d105 bne.n 8000414 <__adddf3+0x230> - 8000408: 0040 lsls r0, r0, #1 - 800040a: 4149 adcs r1, r1 - 800040c: bf28 it cs - 800040e: f041 4100 orrcs.w r1, r1, #2147483648 ; 0x80000000 - 8000412: bd30 pop {r4, r5, pc} - 8000414: f514 0480 adds.w r4, r4, #4194304 ; 0x400000 - 8000418: bf3c itt cc - 800041a: f501 1180 addcc.w r1, r1, #1048576 ; 0x100000 - 800041e: bd30 popcc {r4, r5, pc} - 8000420: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000 - 8000424: f045 41fe orr.w r1, r5, #2130706432 ; 0x7f000000 - 8000428: f441 0170 orr.w r1, r1, #15728640 ; 0xf00000 - 800042c: f04f 0000 mov.w r0, #0 - 8000430: bd30 pop {r4, r5, pc} - 8000432: ea7f 5c64 mvns.w ip, r4, asr #21 - 8000436: bf1a itte ne - 8000438: 4619 movne r1, r3 - 800043a: 4610 movne r0, r2 - 800043c: ea7f 5c65 mvnseq.w ip, r5, asr #21 - 8000440: bf1c itt ne - 8000442: 460b movne r3, r1 - 8000444: 4602 movne r2, r0 - 8000446: ea50 3401 orrs.w r4, r0, r1, lsl #12 - 800044a: bf06 itte eq - 800044c: ea52 3503 orrseq.w r5, r2, r3, lsl #12 - 8000450: ea91 0f03 teqeq r1, r3 - 8000454: f441 2100 orrne.w r1, r1, #524288 ; 0x80000 - 8000458: bd30 pop {r4, r5, pc} - 800045a: bf00 nop - -0800045c <__aeabi_ui2d>: - 800045c: f090 0f00 teq r0, #0 - 8000460: bf04 itt eq - 8000462: 2100 moveq r1, #0 - 8000464: 4770 bxeq lr - 8000466: b530 push {r4, r5, lr} - 8000468: f44f 6480 mov.w r4, #1024 ; 0x400 - 800046c: f104 0432 add.w r4, r4, #50 ; 0x32 - 8000470: f04f 0500 mov.w r5, #0 - 8000474: f04f 0100 mov.w r1, #0 - 8000478: e750 b.n 800031c <__adddf3+0x138> - 800047a: bf00 nop - -0800047c <__aeabi_i2d>: - 800047c: f090 0f00 teq r0, #0 - 8000480: bf04 itt eq - 8000482: 2100 moveq r1, #0 - 8000484: 4770 bxeq lr - 8000486: b530 push {r4, r5, lr} - 8000488: f44f 6480 mov.w r4, #1024 ; 0x400 - 800048c: f104 0432 add.w r4, r4, #50 ; 0x32 - 8000490: f010 4500 ands.w r5, r0, #2147483648 ; 0x80000000 - 8000494: bf48 it mi - 8000496: 4240 negmi r0, r0 - 8000498: f04f 0100 mov.w r1, #0 - 800049c: e73e b.n 800031c <__adddf3+0x138> - 800049e: bf00 nop - -080004a0 <__aeabi_f2d>: - 80004a0: 0042 lsls r2, r0, #1 - 80004a2: ea4f 01e2 mov.w r1, r2, asr #3 - 80004a6: ea4f 0131 mov.w r1, r1, rrx - 80004aa: ea4f 7002 mov.w r0, r2, lsl #28 - 80004ae: bf1f itttt ne - 80004b0: f012 437f andsne.w r3, r2, #4278190080 ; 0xff000000 - 80004b4: f093 4f7f teqne r3, #4278190080 ; 0xff000000 - 80004b8: f081 5160 eorne.w r1, r1, #939524096 ; 0x38000000 - 80004bc: 4770 bxne lr - 80004be: f032 427f bics.w r2, r2, #4278190080 ; 0xff000000 - 80004c2: bf08 it eq - 80004c4: 4770 bxeq lr - 80004c6: f093 4f7f teq r3, #4278190080 ; 0xff000000 - 80004ca: bf04 itt eq - 80004cc: f441 2100 orreq.w r1, r1, #524288 ; 0x80000 - 80004d0: 4770 bxeq lr - 80004d2: b530 push {r4, r5, lr} - 80004d4: f44f 7460 mov.w r4, #896 ; 0x380 - 80004d8: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000 - 80004dc: f021 4100 bic.w r1, r1, #2147483648 ; 0x80000000 - 80004e0: e71c b.n 800031c <__adddf3+0x138> - 80004e2: bf00 nop - -080004e4 <__aeabi_ul2d>: - 80004e4: ea50 0201 orrs.w r2, r0, r1 - 80004e8: bf08 it eq - 80004ea: 4770 bxeq lr - 80004ec: b530 push {r4, r5, lr} - 80004ee: f04f 0500 mov.w r5, #0 - 80004f2: e00a b.n 800050a <__aeabi_l2d+0x16> - -080004f4 <__aeabi_l2d>: - 80004f4: ea50 0201 orrs.w r2, r0, r1 - 80004f8: bf08 it eq - 80004fa: 4770 bxeq lr - 80004fc: b530 push {r4, r5, lr} - 80004fe: f011 4500 ands.w r5, r1, #2147483648 ; 0x80000000 - 8000502: d502 bpl.n 800050a <__aeabi_l2d+0x16> - 8000504: 4240 negs r0, r0 - 8000506: eb61 0141 sbc.w r1, r1, r1, lsl #1 - 800050a: f44f 6480 mov.w r4, #1024 ; 0x400 - 800050e: f104 0432 add.w r4, r4, #50 ; 0x32 - 8000512: ea5f 5c91 movs.w ip, r1, lsr #22 - 8000516: f43f aed8 beq.w 80002ca <__adddf3+0xe6> - 800051a: f04f 0203 mov.w r2, #3 - 800051e: ea5f 0cdc movs.w ip, ip, lsr #3 - 8000522: bf18 it ne - 8000524: 3203 addne r2, #3 - 8000526: ea5f 0cdc movs.w ip, ip, lsr #3 - 800052a: bf18 it ne - 800052c: 3203 addne r2, #3 - 800052e: eb02 02dc add.w r2, r2, ip, lsr #3 - 8000532: f1c2 0320 rsb r3, r2, #32 - 8000536: fa00 fc03 lsl.w ip, r0, r3 - 800053a: fa20 f002 lsr.w r0, r0, r2 - 800053e: fa01 fe03 lsl.w lr, r1, r3 - 8000542: ea40 000e orr.w r0, r0, lr - 8000546: fa21 f102 lsr.w r1, r1, r2 - 800054a: 4414 add r4, r2 - 800054c: e6bd b.n 80002ca <__adddf3+0xe6> - 800054e: bf00 nop - -08000550 <__aeabi_dmul>: - 8000550: b570 push {r4, r5, r6, lr} - 8000552: f04f 0cff mov.w ip, #255 ; 0xff - 8000556: f44c 6ce0 orr.w ip, ip, #1792 ; 0x700 - 800055a: ea1c 5411 ands.w r4, ip, r1, lsr #20 - 800055e: bf1d ittte ne - 8000560: ea1c 5513 andsne.w r5, ip, r3, lsr #20 - 8000564: ea94 0f0c teqne r4, ip - 8000568: ea95 0f0c teqne r5, ip - 800056c: f000 f8de bleq 800072c <__aeabi_dmul+0x1dc> - 8000570: 442c add r4, r5 - 8000572: ea81 0603 eor.w r6, r1, r3 - 8000576: ea21 514c bic.w r1, r1, ip, lsl #21 - 800057a: ea23 534c bic.w r3, r3, ip, lsl #21 - 800057e: ea50 3501 orrs.w r5, r0, r1, lsl #12 - 8000582: bf18 it ne - 8000584: ea52 3503 orrsne.w r5, r2, r3, lsl #12 - 8000588: f441 1180 orr.w r1, r1, #1048576 ; 0x100000 - 800058c: f443 1380 orr.w r3, r3, #1048576 ; 0x100000 - 8000590: d038 beq.n 8000604 <__aeabi_dmul+0xb4> - 8000592: fba0 ce02 umull ip, lr, r0, r2 - 8000596: f04f 0500 mov.w r5, #0 - 800059a: fbe1 e502 umlal lr, r5, r1, r2 - 800059e: f006 4200 and.w r2, r6, #2147483648 ; 0x80000000 - 80005a2: fbe0 e503 umlal lr, r5, r0, r3 - 80005a6: f04f 0600 mov.w r6, #0 - 80005aa: fbe1 5603 umlal r5, r6, r1, r3 - 80005ae: f09c 0f00 teq ip, #0 - 80005b2: bf18 it ne - 80005b4: f04e 0e01 orrne.w lr, lr, #1 - 80005b8: f1a4 04ff sub.w r4, r4, #255 ; 0xff - 80005bc: f5b6 7f00 cmp.w r6, #512 ; 0x200 - 80005c0: f564 7440 sbc.w r4, r4, #768 ; 0x300 - 80005c4: d204 bcs.n 80005d0 <__aeabi_dmul+0x80> - 80005c6: ea5f 0e4e movs.w lr, lr, lsl #1 - 80005ca: 416d adcs r5, r5 - 80005cc: eb46 0606 adc.w r6, r6, r6 - 80005d0: ea42 21c6 orr.w r1, r2, r6, lsl #11 - 80005d4: ea41 5155 orr.w r1, r1, r5, lsr #21 - 80005d8: ea4f 20c5 mov.w r0, r5, lsl #11 - 80005dc: ea40 505e orr.w r0, r0, lr, lsr #21 - 80005e0: ea4f 2ece mov.w lr, lr, lsl #11 - 80005e4: f1b4 0cfd subs.w ip, r4, #253 ; 0xfd - 80005e8: bf88 it hi - 80005ea: f5bc 6fe0 cmphi.w ip, #1792 ; 0x700 - 80005ee: d81e bhi.n 800062e <__aeabi_dmul+0xde> - 80005f0: f1be 4f00 cmp.w lr, #2147483648 ; 0x80000000 - 80005f4: bf08 it eq - 80005f6: ea5f 0e50 movseq.w lr, r0, lsr #1 - 80005fa: f150 0000 adcs.w r0, r0, #0 - 80005fe: eb41 5104 adc.w r1, r1, r4, lsl #20 - 8000602: bd70 pop {r4, r5, r6, pc} - 8000604: f006 4600 and.w r6, r6, #2147483648 ; 0x80000000 - 8000608: ea46 0101 orr.w r1, r6, r1 - 800060c: ea40 0002 orr.w r0, r0, r2 - 8000610: ea81 0103 eor.w r1, r1, r3 - 8000614: ebb4 045c subs.w r4, r4, ip, lsr #1 - 8000618: bfc2 ittt gt - 800061a: ebd4 050c rsbsgt r5, r4, ip - 800061e: ea41 5104 orrgt.w r1, r1, r4, lsl #20 - 8000622: bd70 popgt {r4, r5, r6, pc} - 8000624: f441 1180 orr.w r1, r1, #1048576 ; 0x100000 - 8000628: f04f 0e00 mov.w lr, #0 - 800062c: 3c01 subs r4, #1 - 800062e: f300 80ab bgt.w 8000788 <__aeabi_dmul+0x238> - 8000632: f114 0f36 cmn.w r4, #54 ; 0x36 - 8000636: bfde ittt le - 8000638: 2000 movle r0, #0 - 800063a: f001 4100 andle.w r1, r1, #2147483648 ; 0x80000000 - 800063e: bd70 pople {r4, r5, r6, pc} - 8000640: f1c4 0400 rsb r4, r4, #0 - 8000644: 3c20 subs r4, #32 - 8000646: da35 bge.n 80006b4 <__aeabi_dmul+0x164> - 8000648: 340c adds r4, #12 - 800064a: dc1b bgt.n 8000684 <__aeabi_dmul+0x134> - 800064c: f104 0414 add.w r4, r4, #20 - 8000650: f1c4 0520 rsb r5, r4, #32 - 8000654: fa00 f305 lsl.w r3, r0, r5 - 8000658: fa20 f004 lsr.w r0, r0, r4 - 800065c: fa01 f205 lsl.w r2, r1, r5 - 8000660: ea40 0002 orr.w r0, r0, r2 - 8000664: f001 4200 and.w r2, r1, #2147483648 ; 0x80000000 - 8000668: f021 4100 bic.w r1, r1, #2147483648 ; 0x80000000 - 800066c: eb10 70d3 adds.w r0, r0, r3, lsr #31 - 8000670: fa21 f604 lsr.w r6, r1, r4 - 8000674: eb42 0106 adc.w r1, r2, r6 - 8000678: ea5e 0e43 orrs.w lr, lr, r3, lsl #1 - 800067c: bf08 it eq - 800067e: ea20 70d3 biceq.w r0, r0, r3, lsr #31 - 8000682: bd70 pop {r4, r5, r6, pc} - 8000684: f1c4 040c rsb r4, r4, #12 - 8000688: f1c4 0520 rsb r5, r4, #32 - 800068c: fa00 f304 lsl.w r3, r0, r4 - 8000690: fa20 f005 lsr.w r0, r0, r5 - 8000694: fa01 f204 lsl.w r2, r1, r4 - 8000698: ea40 0002 orr.w r0, r0, r2 - 800069c: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000 - 80006a0: eb10 70d3 adds.w r0, r0, r3, lsr #31 - 80006a4: f141 0100 adc.w r1, r1, #0 - 80006a8: ea5e 0e43 orrs.w lr, lr, r3, lsl #1 - 80006ac: bf08 it eq - 80006ae: ea20 70d3 biceq.w r0, r0, r3, lsr #31 - 80006b2: bd70 pop {r4, r5, r6, pc} - 80006b4: f1c4 0520 rsb r5, r4, #32 - 80006b8: fa00 f205 lsl.w r2, r0, r5 - 80006bc: ea4e 0e02 orr.w lr, lr, r2 - 80006c0: fa20 f304 lsr.w r3, r0, r4 - 80006c4: fa01 f205 lsl.w r2, r1, r5 - 80006c8: ea43 0302 orr.w r3, r3, r2 - 80006cc: fa21 f004 lsr.w r0, r1, r4 - 80006d0: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000 - 80006d4: fa21 f204 lsr.w r2, r1, r4 - 80006d8: ea20 0002 bic.w r0, r0, r2 - 80006dc: eb00 70d3 add.w r0, r0, r3, lsr #31 - 80006e0: ea5e 0e43 orrs.w lr, lr, r3, lsl #1 - 80006e4: bf08 it eq - 80006e6: ea20 70d3 biceq.w r0, r0, r3, lsr #31 - 80006ea: bd70 pop {r4, r5, r6, pc} - 80006ec: f094 0f00 teq r4, #0 - 80006f0: d10f bne.n 8000712 <__aeabi_dmul+0x1c2> - 80006f2: f001 4600 and.w r6, r1, #2147483648 ; 0x80000000 - 80006f6: 0040 lsls r0, r0, #1 - 80006f8: eb41 0101 adc.w r1, r1, r1 - 80006fc: f411 1f80 tst.w r1, #1048576 ; 0x100000 - 8000700: bf08 it eq - 8000702: 3c01 subeq r4, #1 - 8000704: d0f7 beq.n 80006f6 <__aeabi_dmul+0x1a6> - 8000706: ea41 0106 orr.w r1, r1, r6 - 800070a: f095 0f00 teq r5, #0 - 800070e: bf18 it ne - 8000710: 4770 bxne lr - 8000712: f003 4600 and.w r6, r3, #2147483648 ; 0x80000000 - 8000716: 0052 lsls r2, r2, #1 - 8000718: eb43 0303 adc.w r3, r3, r3 - 800071c: f413 1f80 tst.w r3, #1048576 ; 0x100000 - 8000720: bf08 it eq - 8000722: 3d01 subeq r5, #1 - 8000724: d0f7 beq.n 8000716 <__aeabi_dmul+0x1c6> - 8000726: ea43 0306 orr.w r3, r3, r6 - 800072a: 4770 bx lr - 800072c: ea94 0f0c teq r4, ip - 8000730: ea0c 5513 and.w r5, ip, r3, lsr #20 - 8000734: bf18 it ne - 8000736: ea95 0f0c teqne r5, ip - 800073a: d00c beq.n 8000756 <__aeabi_dmul+0x206> - 800073c: ea50 0641 orrs.w r6, r0, r1, lsl #1 - 8000740: bf18 it ne - 8000742: ea52 0643 orrsne.w r6, r2, r3, lsl #1 - 8000746: d1d1 bne.n 80006ec <__aeabi_dmul+0x19c> - 8000748: ea81 0103 eor.w r1, r1, r3 - 800074c: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000 - 8000750: f04f 0000 mov.w r0, #0 - 8000754: bd70 pop {r4, r5, r6, pc} - 8000756: ea50 0641 orrs.w r6, r0, r1, lsl #1 - 800075a: bf06 itte eq - 800075c: 4610 moveq r0, r2 - 800075e: 4619 moveq r1, r3 - 8000760: ea52 0643 orrsne.w r6, r2, r3, lsl #1 - 8000764: d019 beq.n 800079a <__aeabi_dmul+0x24a> - 8000766: ea94 0f0c teq r4, ip - 800076a: d102 bne.n 8000772 <__aeabi_dmul+0x222> - 800076c: ea50 3601 orrs.w r6, r0, r1, lsl #12 - 8000770: d113 bne.n 800079a <__aeabi_dmul+0x24a> - 8000772: ea95 0f0c teq r5, ip - 8000776: d105 bne.n 8000784 <__aeabi_dmul+0x234> - 8000778: ea52 3603 orrs.w r6, r2, r3, lsl #12 - 800077c: bf1c itt ne - 800077e: 4610 movne r0, r2 - 8000780: 4619 movne r1, r3 - 8000782: d10a bne.n 800079a <__aeabi_dmul+0x24a> - 8000784: ea81 0103 eor.w r1, r1, r3 - 8000788: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000 - 800078c: f041 41fe orr.w r1, r1, #2130706432 ; 0x7f000000 - 8000790: f441 0170 orr.w r1, r1, #15728640 ; 0xf00000 - 8000794: f04f 0000 mov.w r0, #0 - 8000798: bd70 pop {r4, r5, r6, pc} - 800079a: f041 41fe orr.w r1, r1, #2130706432 ; 0x7f000000 - 800079e: f441 0178 orr.w r1, r1, #16252928 ; 0xf80000 - 80007a2: bd70 pop {r4, r5, r6, pc} - -080007a4 <__aeabi_ddiv>: - 80007a4: b570 push {r4, r5, r6, lr} - 80007a6: f04f 0cff mov.w ip, #255 ; 0xff - 80007aa: f44c 6ce0 orr.w ip, ip, #1792 ; 0x700 - 80007ae: ea1c 5411 ands.w r4, ip, r1, lsr #20 - 80007b2: bf1d ittte ne - 80007b4: ea1c 5513 andsne.w r5, ip, r3, lsr #20 - 80007b8: ea94 0f0c teqne r4, ip - 80007bc: ea95 0f0c teqne r5, ip - 80007c0: f000 f8a7 bleq 8000912 <__aeabi_ddiv+0x16e> - 80007c4: eba4 0405 sub.w r4, r4, r5 - 80007c8: ea81 0e03 eor.w lr, r1, r3 - 80007cc: ea52 3503 orrs.w r5, r2, r3, lsl #12 - 80007d0: ea4f 3101 mov.w r1, r1, lsl #12 - 80007d4: f000 8088 beq.w 80008e8 <__aeabi_ddiv+0x144> - 80007d8: ea4f 3303 mov.w r3, r3, lsl #12 - 80007dc: f04f 5580 mov.w r5, #268435456 ; 0x10000000 - 80007e0: ea45 1313 orr.w r3, r5, r3, lsr #4 - 80007e4: ea43 6312 orr.w r3, r3, r2, lsr #24 - 80007e8: ea4f 2202 mov.w r2, r2, lsl #8 - 80007ec: ea45 1511 orr.w r5, r5, r1, lsr #4 - 80007f0: ea45 6510 orr.w r5, r5, r0, lsr #24 - 80007f4: ea4f 2600 mov.w r6, r0, lsl #8 - 80007f8: f00e 4100 and.w r1, lr, #2147483648 ; 0x80000000 - 80007fc: 429d cmp r5, r3 - 80007fe: bf08 it eq - 8000800: 4296 cmpeq r6, r2 - 8000802: f144 04fd adc.w r4, r4, #253 ; 0xfd - 8000806: f504 7440 add.w r4, r4, #768 ; 0x300 - 800080a: d202 bcs.n 8000812 <__aeabi_ddiv+0x6e> - 800080c: 085b lsrs r3, r3, #1 - 800080e: ea4f 0232 mov.w r2, r2, rrx - 8000812: 1ab6 subs r6, r6, r2 - 8000814: eb65 0503 sbc.w r5, r5, r3 - 8000818: 085b lsrs r3, r3, #1 - 800081a: ea4f 0232 mov.w r2, r2, rrx - 800081e: f44f 1080 mov.w r0, #1048576 ; 0x100000 - 8000822: f44f 2c00 mov.w ip, #524288 ; 0x80000 - 8000826: ebb6 0e02 subs.w lr, r6, r2 - 800082a: eb75 0e03 sbcs.w lr, r5, r3 - 800082e: bf22 ittt cs - 8000830: 1ab6 subcs r6, r6, r2 - 8000832: 4675 movcs r5, lr - 8000834: ea40 000c orrcs.w r0, r0, ip - 8000838: 085b lsrs r3, r3, #1 - 800083a: ea4f 0232 mov.w r2, r2, rrx - 800083e: ebb6 0e02 subs.w lr, r6, r2 - 8000842: eb75 0e03 sbcs.w lr, r5, r3 - 8000846: bf22 ittt cs - 8000848: 1ab6 subcs r6, r6, r2 - 800084a: 4675 movcs r5, lr - 800084c: ea40 005c orrcs.w r0, r0, ip, lsr #1 - 8000850: 085b lsrs r3, r3, #1 - 8000852: ea4f 0232 mov.w r2, r2, rrx - 8000856: ebb6 0e02 subs.w lr, r6, r2 - 800085a: eb75 0e03 sbcs.w lr, r5, r3 - 800085e: bf22 ittt cs - 8000860: 1ab6 subcs r6, r6, r2 - 8000862: 4675 movcs r5, lr - 8000864: ea40 009c orrcs.w r0, r0, ip, lsr #2 - 8000868: 085b lsrs r3, r3, #1 - 800086a: ea4f 0232 mov.w r2, r2, rrx - 800086e: ebb6 0e02 subs.w lr, r6, r2 - 8000872: eb75 0e03 sbcs.w lr, r5, r3 - 8000876: bf22 ittt cs - 8000878: 1ab6 subcs r6, r6, r2 - 800087a: 4675 movcs r5, lr - 800087c: ea40 00dc orrcs.w r0, r0, ip, lsr #3 - 8000880: ea55 0e06 orrs.w lr, r5, r6 - 8000884: d018 beq.n 80008b8 <__aeabi_ddiv+0x114> - 8000886: ea4f 1505 mov.w r5, r5, lsl #4 - 800088a: ea45 7516 orr.w r5, r5, r6, lsr #28 - 800088e: ea4f 1606 mov.w r6, r6, lsl #4 - 8000892: ea4f 03c3 mov.w r3, r3, lsl #3 - 8000896: ea43 7352 orr.w r3, r3, r2, lsr #29 - 800089a: ea4f 02c2 mov.w r2, r2, lsl #3 - 800089e: ea5f 1c1c movs.w ip, ip, lsr #4 - 80008a2: d1c0 bne.n 8000826 <__aeabi_ddiv+0x82> - 80008a4: f411 1f80 tst.w r1, #1048576 ; 0x100000 - 80008a8: d10b bne.n 80008c2 <__aeabi_ddiv+0x11e> - 80008aa: ea41 0100 orr.w r1, r1, r0 - 80008ae: f04f 0000 mov.w r0, #0 - 80008b2: f04f 4c00 mov.w ip, #2147483648 ; 0x80000000 - 80008b6: e7b6 b.n 8000826 <__aeabi_ddiv+0x82> - 80008b8: f411 1f80 tst.w r1, #1048576 ; 0x100000 - 80008bc: bf04 itt eq - 80008be: 4301 orreq r1, r0 - 80008c0: 2000 moveq r0, #0 - 80008c2: f1b4 0cfd subs.w ip, r4, #253 ; 0xfd - 80008c6: bf88 it hi - 80008c8: f5bc 6fe0 cmphi.w ip, #1792 ; 0x700 - 80008cc: f63f aeaf bhi.w 800062e <__aeabi_dmul+0xde> - 80008d0: ebb5 0c03 subs.w ip, r5, r3 - 80008d4: bf04 itt eq - 80008d6: ebb6 0c02 subseq.w ip, r6, r2 - 80008da: ea5f 0c50 movseq.w ip, r0, lsr #1 - 80008de: f150 0000 adcs.w r0, r0, #0 - 80008e2: eb41 5104 adc.w r1, r1, r4, lsl #20 - 80008e6: bd70 pop {r4, r5, r6, pc} - 80008e8: f00e 4e00 and.w lr, lr, #2147483648 ; 0x80000000 - 80008ec: ea4e 3111 orr.w r1, lr, r1, lsr #12 - 80008f0: eb14 045c adds.w r4, r4, ip, lsr #1 - 80008f4: bfc2 ittt gt - 80008f6: ebd4 050c rsbsgt r5, r4, ip - 80008fa: ea41 5104 orrgt.w r1, r1, r4, lsl #20 - 80008fe: bd70 popgt {r4, r5, r6, pc} - 8000900: f441 1180 orr.w r1, r1, #1048576 ; 0x100000 - 8000904: f04f 0e00 mov.w lr, #0 - 8000908: 3c01 subs r4, #1 - 800090a: e690 b.n 800062e <__aeabi_dmul+0xde> - 800090c: ea45 0e06 orr.w lr, r5, r6 - 8000910: e68d b.n 800062e <__aeabi_dmul+0xde> - 8000912: ea0c 5513 and.w r5, ip, r3, lsr #20 - 8000916: ea94 0f0c teq r4, ip - 800091a: bf08 it eq - 800091c: ea95 0f0c teqeq r5, ip - 8000920: f43f af3b beq.w 800079a <__aeabi_dmul+0x24a> - 8000924: ea94 0f0c teq r4, ip - 8000928: d10a bne.n 8000940 <__aeabi_ddiv+0x19c> - 800092a: ea50 3401 orrs.w r4, r0, r1, lsl #12 - 800092e: f47f af34 bne.w 800079a <__aeabi_dmul+0x24a> - 8000932: ea95 0f0c teq r5, ip - 8000936: f47f af25 bne.w 8000784 <__aeabi_dmul+0x234> - 800093a: 4610 mov r0, r2 - 800093c: 4619 mov r1, r3 - 800093e: e72c b.n 800079a <__aeabi_dmul+0x24a> - 8000940: ea95 0f0c teq r5, ip - 8000944: d106 bne.n 8000954 <__aeabi_ddiv+0x1b0> - 8000946: ea52 3503 orrs.w r5, r2, r3, lsl #12 - 800094a: f43f aefd beq.w 8000748 <__aeabi_dmul+0x1f8> - 800094e: 4610 mov r0, r2 - 8000950: 4619 mov r1, r3 - 8000952: e722 b.n 800079a <__aeabi_dmul+0x24a> - 8000954: ea50 0641 orrs.w r6, r0, r1, lsl #1 - 8000958: bf18 it ne - 800095a: ea52 0643 orrsne.w r6, r2, r3, lsl #1 - 800095e: f47f aec5 bne.w 80006ec <__aeabi_dmul+0x19c> - 8000962: ea50 0441 orrs.w r4, r0, r1, lsl #1 - 8000966: f47f af0d bne.w 8000784 <__aeabi_dmul+0x234> - 800096a: ea52 0543 orrs.w r5, r2, r3, lsl #1 - 800096e: f47f aeeb bne.w 8000748 <__aeabi_dmul+0x1f8> - 8000972: e712 b.n 800079a <__aeabi_dmul+0x24a> - -08000974 <__aeabi_d2f>: - 8000974: ea4f 0241 mov.w r2, r1, lsl #1 - 8000978: f1b2 43e0 subs.w r3, r2, #1879048192 ; 0x70000000 - 800097c: bf24 itt cs - 800097e: f5b3 1c00 subscs.w ip, r3, #2097152 ; 0x200000 - 8000982: f1dc 5cfe rsbscs ip, ip, #532676608 ; 0x1fc00000 - 8000986: d90d bls.n 80009a4 <__aeabi_d2f+0x30> - 8000988: f001 4c00 and.w ip, r1, #2147483648 ; 0x80000000 - 800098c: ea4f 02c0 mov.w r2, r0, lsl #3 - 8000990: ea4c 7050 orr.w r0, ip, r0, lsr #29 - 8000994: f1b2 4f00 cmp.w r2, #2147483648 ; 0x80000000 - 8000998: eb40 0083 adc.w r0, r0, r3, lsl #2 - 800099c: bf08 it eq - 800099e: f020 0001 biceq.w r0, r0, #1 - 80009a2: 4770 bx lr - 80009a4: f011 4f80 tst.w r1, #1073741824 ; 0x40000000 - 80009a8: d121 bne.n 80009ee <__aeabi_d2f+0x7a> - 80009aa: f113 7238 adds.w r2, r3, #48234496 ; 0x2e00000 - 80009ae: bfbc itt lt - 80009b0: f001 4000 andlt.w r0, r1, #2147483648 ; 0x80000000 - 80009b4: 4770 bxlt lr - 80009b6: f441 1180 orr.w r1, r1, #1048576 ; 0x100000 - 80009ba: ea4f 5252 mov.w r2, r2, lsr #21 - 80009be: f1c2 0218 rsb r2, r2, #24 - 80009c2: f1c2 0c20 rsb ip, r2, #32 - 80009c6: fa10 f30c lsls.w r3, r0, ip - 80009ca: fa20 f002 lsr.w r0, r0, r2 - 80009ce: bf18 it ne - 80009d0: f040 0001 orrne.w r0, r0, #1 - 80009d4: ea4f 23c1 mov.w r3, r1, lsl #11 - 80009d8: ea4f 23d3 mov.w r3, r3, lsr #11 - 80009dc: fa03 fc0c lsl.w ip, r3, ip - 80009e0: ea40 000c orr.w r0, r0, ip - 80009e4: fa23 f302 lsr.w r3, r3, r2 - 80009e8: ea4f 0343 mov.w r3, r3, lsl #1 - 80009ec: e7cc b.n 8000988 <__aeabi_d2f+0x14> - 80009ee: ea7f 5362 mvns.w r3, r2, asr #21 - 80009f2: d107 bne.n 8000a04 <__aeabi_d2f+0x90> - 80009f4: ea50 3301 orrs.w r3, r0, r1, lsl #12 - 80009f8: bf1e ittt ne - 80009fa: f04f 40fe movne.w r0, #2130706432 ; 0x7f000000 - 80009fe: f440 0040 orrne.w r0, r0, #12582912 ; 0xc00000 - 8000a02: 4770 bxne lr - 8000a04: f001 4000 and.w r0, r1, #2147483648 ; 0x80000000 - 8000a08: f040 40fe orr.w r0, r0, #2130706432 ; 0x7f000000 - 8000a0c: f440 0000 orr.w r0, r0, #8388608 ; 0x800000 - 8000a10: 4770 bx lr - 8000a12: bf00 nop - -08000a14 : - - -volatile MOTOR_PINS_t Motor_Pins ; -volatile u32 encoder_pulses = 0 ; -volatile u32 temp_pulses = 0 ; -void Increment_Pulse_CallBack(){ - 8000a14: b480 push {r7} - 8000a16: af00 add r7, sp, #0 - encoder_pulses++ ; - 8000a18: 4b07 ldr r3, [pc, #28] ; (8000a38 ) - 8000a1a: 681b ldr r3, [r3, #0] - 8000a1c: 3301 adds r3, #1 - 8000a1e: 4a06 ldr r2, [pc, #24] ; (8000a38 ) - 8000a20: 6013 str r3, [r2, #0] - temp_pulses++ ; - 8000a22: 4b06 ldr r3, [pc, #24] ; (8000a3c ) - 8000a24: 681b ldr r3, [r3, #0] - 8000a26: 3301 adds r3, #1 - 8000a28: 4a04 ldr r2, [pc, #16] ; (8000a3c ) - 8000a2a: 6013 str r3, [r2, #0] -} - 8000a2c: bf00 nop - 8000a2e: 46bd mov sp, r7 - 8000a30: f85d 7b04 ldr.w r7, [sp], #4 - 8000a34: 4770 bx lr - 8000a36: bf00 nop - 8000a38: 2000001c .word 0x2000001c - 8000a3c: 20000020 .word 0x20000020 - -08000a40 : - - - -void HAL_MOTOR_Init(u8 PORT_N1 , u8 PIN_N1, u8 PORT_N2 , u8 PIN_N2 ,u8 PORT_PWM , - u8 PIN_PWM, u8 PWM_TIMER , u8 ENCODER_EXTIx ,u8 NVIC_EXTIx){ - 8000a40: b590 push {r4, r7, lr} - 8000a42: b083 sub sp, #12 - 8000a44: af00 add r7, sp, #0 - 8000a46: 4604 mov r4, r0 - 8000a48: 4608 mov r0, r1 - 8000a4a: 4611 mov r1, r2 - 8000a4c: 461a mov r2, r3 - 8000a4e: 4623 mov r3, r4 - 8000a50: 71fb strb r3, [r7, #7] - 8000a52: 4603 mov r3, r0 - 8000a54: 71bb strb r3, [r7, #6] - 8000a56: 460b mov r3, r1 - 8000a58: 717b strb r3, [r7, #5] - 8000a5a: 4613 mov r3, r2 - 8000a5c: 713b strb r3, [r7, #4] - Motor_Pins.PORT_N1 = PORT_N1 ; - 8000a5e: 4a25 ldr r2, [pc, #148] ; (8000af4 ) - 8000a60: 79fb ldrb r3, [r7, #7] - 8000a62: 7013 strb r3, [r2, #0] - Motor_Pins.PORT_N2 = PORT_N2 ; - 8000a64: 4a23 ldr r2, [pc, #140] ; (8000af4 ) - 8000a66: 797b ldrb r3, [r7, #5] - 8000a68: 7093 strb r3, [r2, #2] - Motor_Pins.PORT_PWM = PORT_PWM ; - 8000a6a: 4a22 ldr r2, [pc, #136] ; (8000af4 ) - 8000a6c: 7e3b ldrb r3, [r7, #24] - 8000a6e: 7113 strb r3, [r2, #4] - Motor_Pins.PIN_N1 = PIN_N1 ; - 8000a70: 4a20 ldr r2, [pc, #128] ; (8000af4 ) - 8000a72: 79bb ldrb r3, [r7, #6] - 8000a74: 7053 strb r3, [r2, #1] - Motor_Pins.PIN_N2 = PIN_N2 ; - 8000a76: 4a1f ldr r2, [pc, #124] ; (8000af4 ) - 8000a78: 793b ldrb r3, [r7, #4] - 8000a7a: 70d3 strb r3, [r2, #3] - Motor_Pins.PIN_PWM = PIN_PWM ; - 8000a7c: 4a1d ldr r2, [pc, #116] ; (8000af4 ) - 8000a7e: 7f3b ldrb r3, [r7, #28] - 8000a80: 7153 strb r3, [r2, #5] - MGPIO_vSetPinMode(PORT_N1, PIN_N1, OUTPUT); - 8000a82: 79b9 ldrb r1, [r7, #6] - 8000a84: 79fb ldrb r3, [r7, #7] - 8000a86: 2201 movs r2, #1 - 8000a88: 4618 mov r0, r3 - 8000a8a: f000 fca3 bl 80013d4 - MGPIO_vSetPinMode(PORT_N2, PIN_N2, OUTPUT); - 8000a8e: 7939 ldrb r1, [r7, #4] - 8000a90: 797b ldrb r3, [r7, #5] - 8000a92: 2201 movs r2, #1 - 8000a94: 4618 mov r0, r3 - 8000a96: f000 fc9d bl 80013d4 - MGPIO_vSetPinMode(PORT_PWM, PIN_PWM,ALTFUNC); - 8000a9a: 7f39 ldrb r1, [r7, #28] - 8000a9c: 7e3b ldrb r3, [r7, #24] - 8000a9e: 2202 movs r2, #2 - 8000aa0: 4618 mov r0, r3 - 8000aa2: f000 fc97 bl 80013d4 - MGPIO_vSetAlternativeFunction(PORT_PWM, PIN_PWM,PWM_TIMER); - 8000aa6: f897 2020 ldrb.w r2, [r7, #32] - 8000aaa: 7f39 ldrb r1, [r7, #28] - 8000aac: 7e3b ldrb r3, [r7, #24] - 8000aae: 4618 mov r0, r3 - 8000ab0: f000 fd62 bl 8001578 - - /********************Interrupt of encoder*****************************/ - MEXTI_vEnableInterrupt(ENCODER_EXTIx); - 8000ab4: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 - 8000ab8: 4618 mov r0, r3 - 8000aba: f000 fa45 bl 8000f48 - MEXTI_vInterruptTrigger(ENCODER_EXTIx, RISING); - 8000abe: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 - 8000ac2: 2100 movs r1, #0 - 8000ac4: 4618 mov r0, r3 - 8000ac6: f000 fa57 bl 8000f78 - SYSCFG_vConfigEXTI_Line(EXTI_PORTB, ENCODER_EXTIx); - 8000aca: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 - 8000ace: 4619 mov r1, r3 - 8000ad0: 2001 movs r0, #1 - 8000ad2: f000 f9ff bl 8000ed4 - MEXTI_vCallBack(ENCODER_EXTIx, Increment_Pulse_CallBack); - 8000ad6: f897 3024 ldrb.w r3, [r7, #36] ; 0x24 - 8000ada: 4907 ldr r1, [pc, #28] ; (8000af8 ) - 8000adc: 4618 mov r0, r3 - 8000ade: f000 faa5 bl 800102c - MNVIC_vEnableInterrupt(NVIC_EXTIx); - 8000ae2: f897 3028 ldrb.w r3, [r7, #40] ; 0x28 - 8000ae6: 4618 mov r0, r3 - 8000ae8: f000 fe06 bl 80016f8 -} - 8000aec: bf00 nop - 8000aee: 370c adds r7, #12 - 8000af0: 46bd mov sp, r7 - 8000af2: bd90 pop {r4, r7, pc} - 8000af4: 20000224 .word 0x20000224 - 8000af8: 08000a15 .word 0x08000a15 - 8000afc: 00000000 .word 0x00000000 - -08000b00 : - - -void HAL_MOTOR_MOVE(u8 DIRCTION ,u8 SPEED , f32 DISTANCE_cm_){ - 8000b00: b590 push {r4, r7, lr} - 8000b02: b087 sub sp, #28 - 8000b04: af00 add r7, sp, #0 - 8000b06: 4603 mov r3, r0 - 8000b08: 460a mov r2, r1 - 8000b0a: ed87 0a00 vstr s0, [r7] - 8000b0e: 71fb strb r3, [r7, #7] - 8000b10: 4613 mov r3, r2 - 8000b12: 71bb strb r3, [r7, #6] - f32 high_duty = (SPEED / 100.0) ; - 8000b14: 79bb ldrb r3, [r7, #6] - 8000b16: 4618 mov r0, r3 - 8000b18: f7ff fcb0 bl 800047c <__aeabi_i2d> - 8000b1c: f04f 0200 mov.w r2, #0 - 8000b20: 4b3d ldr r3, [pc, #244] ; (8000c18 ) - 8000b22: f7ff fe3f bl 80007a4 <__aeabi_ddiv> - 8000b26: 4603 mov r3, r0 - 8000b28: 460c mov r4, r1 - 8000b2a: 4618 mov r0, r3 - 8000b2c: 4621 mov r1, r4 - 8000b2e: f7ff ff21 bl 8000974 <__aeabi_d2f> - 8000b32: 4603 mov r3, r0 - 8000b34: 617b str r3, [r7, #20] - f32 num_of_revolutions ; - u32 total_pulses = 0 ; - 8000b36: 2300 movs r3, #0 - 8000b38: 613b str r3, [r7, #16] - switch(DIRCTION){ - 8000b3a: 79fb ldrb r3, [r7, #7] - 8000b3c: 2b00 cmp r3, #0 - 8000b3e: d002 beq.n 8000b46 - 8000b40: 2b01 cmp r3, #1 - 8000b42: d015 beq.n 8000b70 - 8000b44: e029 b.n 8000b9a - case BACKWARD : - MGPIO_vSetPinValue(Motor_Pins.PORT_N1, Motor_Pins.PIN_N1, HIGH); - 8000b46: 4b35 ldr r3, [pc, #212] ; (8000c1c ) - 8000b48: 781b ldrb r3, [r3, #0] - 8000b4a: b2d8 uxtb r0, r3 - 8000b4c: 4b33 ldr r3, [pc, #204] ; (8000c1c ) - 8000b4e: 785b ldrb r3, [r3, #1] - 8000b50: b2db uxtb r3, r3 - 8000b52: 2201 movs r2, #1 - 8000b54: 4619 mov r1, r3 - 8000b56: f000 fca3 bl 80014a0 - MGPIO_vSetPinValue(Motor_Pins.PORT_N2, Motor_Pins.PIN_N2, LOW); - 8000b5a: 4b30 ldr r3, [pc, #192] ; (8000c1c ) - 8000b5c: 789b ldrb r3, [r3, #2] - 8000b5e: b2d8 uxtb r0, r3 - 8000b60: 4b2e ldr r3, [pc, #184] ; (8000c1c ) - 8000b62: 78db ldrb r3, [r3, #3] - 8000b64: b2db uxtb r3, r3 - 8000b66: 2200 movs r2, #0 - 8000b68: 4619 mov r1, r3 - 8000b6a: f000 fc99 bl 80014a0 - break; - 8000b6e: e014 b.n 8000b9a - case FORWARD: - MGPIO_vSetPinValue(Motor_Pins.PORT_N1, Motor_Pins.PIN_N1, LOW); - 8000b70: 4b2a ldr r3, [pc, #168] ; (8000c1c ) - 8000b72: 781b ldrb r3, [r3, #0] - 8000b74: b2d8 uxtb r0, r3 - 8000b76: 4b29 ldr r3, [pc, #164] ; (8000c1c ) - 8000b78: 785b ldrb r3, [r3, #1] - 8000b7a: b2db uxtb r3, r3 - 8000b7c: 2200 movs r2, #0 - 8000b7e: 4619 mov r1, r3 - 8000b80: f000 fc8e bl 80014a0 - MGPIO_vSetPinValue(Motor_Pins.PORT_N2, Motor_Pins.PIN_N2, HIGH); - 8000b84: 4b25 ldr r3, [pc, #148] ; (8000c1c ) - 8000b86: 789b ldrb r3, [r3, #2] - 8000b88: b2d8 uxtb r0, r3 - 8000b8a: 4b24 ldr r3, [pc, #144] ; (8000c1c ) - 8000b8c: 78db ldrb r3, [r3, #3] - 8000b8e: b2db uxtb r3, r3 - 8000b90: 2201 movs r2, #1 - 8000b92: 4619 mov r1, r3 - 8000b94: f000 fc84 bl 80014a0 - break; - 8000b98: bf00 nop - } - /****************************speed********************************/ - MTIMER_vPWM(TIMER1, CH1, 10000, high_duty*10000); - 8000b9a: edd7 7a05 vldr s15, [r7, #20] - 8000b9e: ed9f 7a20 vldr s14, [pc, #128] ; 8000c20 - 8000ba2: ee67 7a87 vmul.f32 s15, s15, s14 - 8000ba6: eefc 7ae7 vcvt.u32.f32 s15, s15 - 8000baa: ee17 3a90 vmov r3, s15 - 8000bae: b29b uxth r3, r3 - 8000bb0: f242 7210 movw r2, #10000 ; 0x2710 - 8000bb4: 2101 movs r1, #1 - 8000bb6: 2001 movs r0, #1 - 8000bb8: f000 fef0 bl 800199c - /***************************distance******************************/ - num_of_revolutions = (DISTANCE_cm_/ WHEEL_AREA); - 8000bbc: 6838 ldr r0, [r7, #0] - 8000bbe: f7ff fc6f bl 80004a0 <__aeabi_f2d> - 8000bc2: a313 add r3, pc, #76 ; (adr r3, 8000c10 ) - 8000bc4: e9d3 2300 ldrd r2, r3, [r3] - 8000bc8: f7ff fdec bl 80007a4 <__aeabi_ddiv> - 8000bcc: 4603 mov r3, r0 - 8000bce: 460c mov r4, r1 - 8000bd0: 4618 mov r0, r3 - 8000bd2: 4621 mov r1, r4 - 8000bd4: f7ff fece bl 8000974 <__aeabi_d2f> - 8000bd8: 4603 mov r3, r0 - 8000bda: 60fb str r3, [r7, #12] -// num_of_revolutions = 4; - total_pulses = (u32)(num_of_revolutions * PULSES_PER_REVOLUTION); - 8000bdc: edd7 7a03 vldr s15, [r7, #12] - 8000be0: ed9f 7a10 vldr s14, [pc, #64] ; 8000c24 - 8000be4: ee67 7a87 vmul.f32 s15, s15, s14 - 8000be8: eefc 7ae7 vcvt.u32.f32 s15, s15 - 8000bec: ee17 3a90 vmov r3, s15 - 8000bf0: 613b str r3, [r7, #16] - while( total_pulses > temp_pulses ); - 8000bf2: bf00 nop - 8000bf4: 4b0c ldr r3, [pc, #48] ; (8000c28 ) - 8000bf6: 681b ldr r3, [r3, #0] - 8000bf8: 693a ldr r2, [r7, #16] - 8000bfa: 429a cmp r2, r3 - 8000bfc: d8fa bhi.n 8000bf4 - HAL_MOTOR_STOP(); - 8000bfe: f000 f815 bl 8000c2c - temp_pulses = 0 ; - 8000c02: 4b09 ldr r3, [pc, #36] ; (8000c28 ) - 8000c04: 2200 movs r2, #0 - 8000c06: 601a str r2, [r3, #0] -} - 8000c08: bf00 nop - 8000c0a: 371c adds r7, #28 - 8000c0c: 46bd mov sp, r7 - 8000c0e: bd90 pop {r4, r7, pc} - 8000c10: 66666666 .word 0x66666666 - 8000c14: 403a6666 .word 0x403a6666 - 8000c18: 40590000 .word 0x40590000 - 8000c1c: 20000224 .word 0x20000224 - 8000c20: 461c4000 .word 0x461c4000 - 8000c24: 44800000 .word 0x44800000 - 8000c28: 20000020 .word 0x20000020 - -08000c2c : - -void HAL_MOTOR_STOP(){ - 8000c2c: b580 push {r7, lr} - 8000c2e: af00 add r7, sp, #0 - MGPIO_vSetPinValue(Motor_Pins.PORT_N1, Motor_Pins.PIN_N1, LOW); - 8000c30: 4b0a ldr r3, [pc, #40] ; (8000c5c ) - 8000c32: 781b ldrb r3, [r3, #0] - 8000c34: b2d8 uxtb r0, r3 - 8000c36: 4b09 ldr r3, [pc, #36] ; (8000c5c ) - 8000c38: 785b ldrb r3, [r3, #1] - 8000c3a: b2db uxtb r3, r3 - 8000c3c: 2200 movs r2, #0 - 8000c3e: 4619 mov r1, r3 - 8000c40: f000 fc2e bl 80014a0 - MGPIO_vSetPinValue(Motor_Pins.PORT_N2, Motor_Pins.PIN_N2, LOW); - 8000c44: 4b05 ldr r3, [pc, #20] ; (8000c5c ) - 8000c46: 789b ldrb r3, [r3, #2] - 8000c48: b2d8 uxtb r0, r3 - 8000c4a: 4b04 ldr r3, [pc, #16] ; (8000c5c ) - 8000c4c: 78db ldrb r3, [r3, #3] - 8000c4e: b2db uxtb r3, r3 - 8000c50: 2200 movs r2, #0 - 8000c52: 4619 mov r1, r3 - 8000c54: f000 fc24 bl 80014a0 -} - 8000c58: bf00 nop - 8000c5a: bd80 pop {r7, pc} - 8000c5c: 20000224 .word 0x20000224 - -08000c60 : - -// Declare an array to store servo information for multiple servos -LOC_SERVO_NUM SERVO_STRUCT[TOT_SERVO_NUM]; - - -void HSERVO_vServoInit(Enum_SERVO_NUM Copy_u8ServoNum,Enum_TIMER_NUM Copy_u8TimerNum,u8 Copy_u8ChannelNum){ - 8000c60: b580 push {r7, lr} - 8000c62: b082 sub sp, #8 - 8000c64: af00 add r7, sp, #0 - 8000c66: 4603 mov r3, r0 - 8000c68: 71fb strb r3, [r7, #7] - 8000c6a: 460b mov r3, r1 - 8000c6c: 71bb strb r3, [r7, #6] - 8000c6e: 4613 mov r3, r2 - 8000c70: 717b strb r3, [r7, #5] - // Configure GPIO pins and alternative functions based on the selected timer and channel - switch(Copy_u8TimerNum){ - 8000c72: 79bb ldrb r3, [r7, #6] - 8000c74: 3b01 subs r3, #1 - 8000c76: 2b07 cmp r3, #7 - 8000c78: f200 80d8 bhi.w 8000e2c - 8000c7c: a201 add r2, pc, #4 ; (adr r2, 8000c84 ) - 8000c7e: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8000c82: bf00 nop - 8000c84: 08000ca5 .word 0x08000ca5 - 8000c88: 08000cc7 .word 0x08000cc7 - 8000c8c: 08000d39 .word 0x08000d39 - 8000c90: 08000d83 .word 0x08000d83 - 8000c94: 08000da5 .word 0x08000da5 - 8000c98: 08000dc7 .word 0x08000dc7 - 8000c9c: 08000de9 .word 0x08000de9 - 8000ca0: 08000e0b .word 0x08000e0b - case TIMER1: - MGPIO_vSetPinMode(PORTA, Copy_u8ChannelNum + 7 , ALTFUNC); - 8000ca4: 797b ldrb r3, [r7, #5] - 8000ca6: 3307 adds r3, #7 - 8000ca8: b2db uxtb r3, r3 - 8000caa: 2202 movs r2, #2 - 8000cac: 4619 mov r1, r3 - 8000cae: 2000 movs r0, #0 - 8000cb0: f000 fb90 bl 80013d4 - MGPIO_vSetAlternativeFunction(PORTA, Copy_u8ChannelNum + 7 , MGPIO_ALTFUNC_TIM12); - 8000cb4: 797b ldrb r3, [r7, #5] - 8000cb6: 3307 adds r3, #7 - 8000cb8: b2db uxtb r3, r3 - 8000cba: 2201 movs r2, #1 - 8000cbc: 4619 mov r1, r3 - 8000cbe: 2000 movs r0, #0 - 8000cc0: f000 fc5a bl 8001578 - break; - 8000cc4: e0b2 b.n 8000e2c - case TIMER2: - if(Copy_u8ChannelNum == 1){ - 8000cc6: 797b ldrb r3, [r7, #5] - 8000cc8: 2b01 cmp r3, #1 - 8000cca: d110 bne.n 8000cee - MGPIO_vSetPinMode(PORTA, Copy_u8ChannelNum + 14 , ALTFUNC); - 8000ccc: 797b ldrb r3, [r7, #5] - 8000cce: 330e adds r3, #14 - 8000cd0: b2db uxtb r3, r3 - 8000cd2: 2202 movs r2, #2 - 8000cd4: 4619 mov r1, r3 - 8000cd6: 2000 movs r0, #0 - 8000cd8: f000 fb7c bl 80013d4 - MGPIO_vSetAlternativeFunction(PORTA, Copy_u8ChannelNum + 14 , MGPIO_ALTFUNC_TIM12);} - 8000cdc: 797b ldrb r3, [r7, #5] - 8000cde: 330e adds r3, #14 - 8000ce0: b2db uxtb r3, r3 - 8000ce2: 2201 movs r2, #1 - 8000ce4: 4619 mov r1, r3 - 8000ce6: 2000 movs r0, #0 - 8000ce8: f000 fc46 bl 8001578 - } - else{ - MGPIO_vSetPinMode(PORTA, Copy_u8ChannelNum - 1 , ALTFUNC); - MGPIO_vSetAlternativeFunction(PORTA, Copy_u8ChannelNum - 1 , MGPIO_ALTFUNC_TIM12); - } - break; - 8000cec: e09e b.n 8000e2c - else if(Copy_u8ChannelNum == 2){ - 8000cee: 797b ldrb r3, [r7, #5] - 8000cf0: 2b02 cmp r3, #2 - 8000cf2: d110 bne.n 8000d16 - MGPIO_vSetPinMode(PORTB, Copy_u8ChannelNum + 1 , ALTFUNC); - 8000cf4: 797b ldrb r3, [r7, #5] - 8000cf6: 3301 adds r3, #1 - 8000cf8: b2db uxtb r3, r3 - 8000cfa: 2202 movs r2, #2 - 8000cfc: 4619 mov r1, r3 - 8000cfe: 2001 movs r0, #1 - 8000d00: f000 fb68 bl 80013d4 - MGPIO_vSetAlternativeFunction(PORTB, Copy_u8ChannelNum + 1 , MGPIO_ALTFUNC_TIM12); - 8000d04: 797b ldrb r3, [r7, #5] - 8000d06: 3301 adds r3, #1 - 8000d08: b2db uxtb r3, r3 - 8000d0a: 2201 movs r2, #1 - 8000d0c: 4619 mov r1, r3 - 8000d0e: 2001 movs r0, #1 - 8000d10: f000 fc32 bl 8001578 - break; - 8000d14: e08a b.n 8000e2c - MGPIO_vSetPinMode(PORTA, Copy_u8ChannelNum - 1 , ALTFUNC); - 8000d16: 797b ldrb r3, [r7, #5] - 8000d18: 3b01 subs r3, #1 - 8000d1a: b2db uxtb r3, r3 - 8000d1c: 2202 movs r2, #2 - 8000d1e: 4619 mov r1, r3 - 8000d20: 2000 movs r0, #0 - 8000d22: f000 fb57 bl 80013d4 - MGPIO_vSetAlternativeFunction(PORTA, Copy_u8ChannelNum - 1 , MGPIO_ALTFUNC_TIM12); - 8000d26: 797b ldrb r3, [r7, #5] - 8000d28: 3b01 subs r3, #1 - 8000d2a: b2db uxtb r3, r3 - 8000d2c: 2201 movs r2, #1 - 8000d2e: 4619 mov r1, r3 - 8000d30: 2000 movs r0, #0 - 8000d32: f000 fc21 bl 8001578 - break; - 8000d36: e079 b.n 8000e2c - case TIMER3: - if(Copy_u8ChannelNum - MGPIO_vSetPinMode(PORTA, Copy_u8ChannelNum + 5 , ALTFUNC); - 8000d3e: 797b ldrb r3, [r7, #5] - 8000d40: 3305 adds r3, #5 - 8000d42: b2db uxtb r3, r3 - 8000d44: 2202 movs r2, #2 - 8000d46: 4619 mov r1, r3 - 8000d48: 2000 movs r0, #0 - 8000d4a: f000 fb43 bl 80013d4 - MGPIO_vSetAlternativeFunction(PORTA, Copy_u8ChannelNum + 5 , MGPIO_ALTFUNC_TIM35);} - 8000d4e: 797b ldrb r3, [r7, #5] - 8000d50: 3305 adds r3, #5 - 8000d52: b2db uxtb r3, r3 - 8000d54: 2202 movs r2, #2 - 8000d56: 4619 mov r1, r3 - 8000d58: 2000 movs r0, #0 - 8000d5a: f000 fc0d bl 8001578 - else{ - MGPIO_vSetPinMode(PORTB, Copy_u8ChannelNum - CH3 , ALTFUNC); - MGPIO_vSetAlternativeFunction(PORTB, Copy_u8ChannelNum - CH3 , MGPIO_ALTFUNC_TIM35); - } - break; - 8000d5e: e065 b.n 8000e2c - MGPIO_vSetPinMode(PORTB, Copy_u8ChannelNum - CH3 , ALTFUNC); - 8000d60: 797b ldrb r3, [r7, #5] - 8000d62: 3b03 subs r3, #3 - 8000d64: b2db uxtb r3, r3 - 8000d66: 2202 movs r2, #2 - 8000d68: 4619 mov r1, r3 - 8000d6a: 2001 movs r0, #1 - 8000d6c: f000 fb32 bl 80013d4 - MGPIO_vSetAlternativeFunction(PORTB, Copy_u8ChannelNum - CH3 , MGPIO_ALTFUNC_TIM35); - 8000d70: 797b ldrb r3, [r7, #5] - 8000d72: 3b03 subs r3, #3 - 8000d74: b2db uxtb r3, r3 - 8000d76: 2202 movs r2, #2 - 8000d78: 4619 mov r1, r3 - 8000d7a: 2001 movs r0, #1 - 8000d7c: f000 fbfc bl 8001578 - break; - 8000d80: e054 b.n 8000e2c - case TIMER4: - MGPIO_vSetPinMode(PORTB, Copy_u8ChannelNum + 5 , ALTFUNC); - 8000d82: 797b ldrb r3, [r7, #5] - 8000d84: 3305 adds r3, #5 - 8000d86: b2db uxtb r3, r3 - 8000d88: 2202 movs r2, #2 - 8000d8a: 4619 mov r1, r3 - 8000d8c: 2001 movs r0, #1 - 8000d8e: f000 fb21 bl 80013d4 - MGPIO_vSetAlternativeFunction(PORTB, Copy_u8ChannelNum + 5 , MGPIO_ALTFUNC_TIM35); - 8000d92: 797b ldrb r3, [r7, #5] - 8000d94: 3305 adds r3, #5 - 8000d96: b2db uxtb r3, r3 - 8000d98: 2202 movs r2, #2 - 8000d9a: 4619 mov r1, r3 - 8000d9c: 2001 movs r0, #1 - 8000d9e: f000 fbeb bl 8001578 - break; - 8000da2: e043 b.n 8000e2c - case TIMER5: - MGPIO_vSetPinMode(PORTA, Copy_u8ChannelNum - 1 , ALTFUNC); - 8000da4: 797b ldrb r3, [r7, #5] - 8000da6: 3b01 subs r3, #1 - 8000da8: b2db uxtb r3, r3 - 8000daa: 2202 movs r2, #2 - 8000dac: 4619 mov r1, r3 - 8000dae: 2000 movs r0, #0 - 8000db0: f000 fb10 bl 80013d4 - MGPIO_vSetAlternativeFunction(PORTA, Copy_u8ChannelNum - 1 , MGPIO_ALTFUNC_TIM35); - 8000db4: 797b ldrb r3, [r7, #5] - 8000db6: 3b01 subs r3, #1 - 8000db8: b2db uxtb r3, r3 - 8000dba: 2202 movs r2, #2 - 8000dbc: 4619 mov r1, r3 - 8000dbe: 2000 movs r0, #0 - 8000dc0: f000 fbda bl 8001578 - break; - 8000dc4: e032 b.n 8000e2c - case TIMER9: - MGPIO_vSetPinMode(PORTA, Copy_u8ChannelNum + 1 , ALTFUNC); - 8000dc6: 797b ldrb r3, [r7, #5] - 8000dc8: 3301 adds r3, #1 - 8000dca: b2db uxtb r3, r3 - 8000dcc: 2202 movs r2, #2 - 8000dce: 4619 mov r1, r3 - 8000dd0: 2000 movs r0, #0 - 8000dd2: f000 faff bl 80013d4 - MGPIO_vSetAlternativeFunction(PORTA, Copy_u8ChannelNum + 1 , MGPIO_ALTFUNC_TIM911); - 8000dd6: 797b ldrb r3, [r7, #5] - 8000dd8: 3301 adds r3, #1 - 8000dda: b2db uxtb r3, r3 - 8000ddc: 2203 movs r2, #3 - 8000dde: 4619 mov r1, r3 - 8000de0: 2000 movs r0, #0 - 8000de2: f000 fbc9 bl 8001578 - break; - 8000de6: e021 b.n 8000e2c - case TIMER10: - MGPIO_vSetPinMode(PORTB, Copy_u8ChannelNum + 7 , ALTFUNC); - 8000de8: 797b ldrb r3, [r7, #5] - 8000dea: 3307 adds r3, #7 - 8000dec: b2db uxtb r3, r3 - 8000dee: 2202 movs r2, #2 - 8000df0: 4619 mov r1, r3 - 8000df2: 2001 movs r0, #1 - 8000df4: f000 faee bl 80013d4 - MGPIO_vSetAlternativeFunction(PORTB, Copy_u8ChannelNum + 7 , MGPIO_ALTFUNC_TIM911); - 8000df8: 797b ldrb r3, [r7, #5] - 8000dfa: 3307 adds r3, #7 - 8000dfc: b2db uxtb r3, r3 - 8000dfe: 2203 movs r2, #3 - 8000e00: 4619 mov r1, r3 - 8000e02: 2001 movs r0, #1 - 8000e04: f000 fbb8 bl 8001578 - break; - 8000e08: e010 b.n 8000e2c - case TIMER11: - MGPIO_vSetPinMode(PORTB, Copy_u8ChannelNum + 8 , ALTFUNC); - 8000e0a: 797b ldrb r3, [r7, #5] - 8000e0c: 3308 adds r3, #8 - 8000e0e: b2db uxtb r3, r3 - 8000e10: 2202 movs r2, #2 - 8000e12: 4619 mov r1, r3 - 8000e14: 2001 movs r0, #1 - 8000e16: f000 fadd bl 80013d4 - MGPIO_vSetAlternativeFunction(PORTB, Copy_u8ChannelNum + 8 , MGPIO_ALTFUNC_TIM911); - 8000e1a: 797b ldrb r3, [r7, #5] - 8000e1c: 3308 adds r3, #8 - 8000e1e: b2db uxtb r3, r3 - 8000e20: 2203 movs r2, #3 - 8000e22: 4619 mov r1, r3 - 8000e24: 2001 movs r0, #1 - 8000e26: f000 fba7 bl 8001578 - break; - 8000e2a: bf00 nop - } - SERVO_STRUCT[Copy_u8ServoNum].TIMER = Copy_u8TimerNum; - 8000e2c: 79fb ldrb r3, [r7, #7] - 8000e2e: 4907 ldr r1, [pc, #28] ; (8000e4c ) - 8000e30: 79ba ldrb r2, [r7, #6] - 8000e32: f801 2013 strb.w r2, [r1, r3, lsl #1] - SERVO_STRUCT[Copy_u8ServoNum].CHANNEL = Copy_u8ChannelNum; - 8000e36: 79fb ldrb r3, [r7, #7] - 8000e38: 4a04 ldr r2, [pc, #16] ; (8000e4c ) - 8000e3a: 005b lsls r3, r3, #1 - 8000e3c: 4413 add r3, r2 - 8000e3e: 797a ldrb r2, [r7, #5] - 8000e40: 705a strb r2, [r3, #1] -} - 8000e42: bf00 nop - 8000e44: 3708 adds r7, #8 - 8000e46: 46bd mov sp, r7 - 8000e48: bd80 pop {r7, pc} - 8000e4a: bf00 nop - 8000e4c: 20000230 .word 0x20000230 - -08000e50 : - * @brief Sets the angle of the servo motor specified by Copy_u8ServoNum to the desired degree. - * - * @param Copy_u8ServoNum: Enum_SERVO_NUM representing the servo number. - * @param Copy_s8Deg: Desired angle in degrees (from -45 to 45). - */ -void HSERVO_vServoDeg(Enum_SERVO_NUM Copy_u8ServoNum, s8 Copy_s8Deg) { - 8000e50: b580 push {r7, lr} - 8000e52: b084 sub sp, #16 - 8000e54: af00 add r7, sp, #0 - 8000e56: 4603 mov r3, r0 - 8000e58: 460a mov r2, r1 - 8000e5a: 71fb strb r3, [r7, #7] - 8000e5c: 4613 mov r3, r2 - 8000e5e: 71bb strb r3, [r7, #6] - // Ensure the angle is within the valid angle range (-45 to 45) - Copy_s8Deg = (Copy_s8Deg < -45) ? -45 : (Copy_s8Deg > 45) ? 45 : Copy_s8Deg; - 8000e60: f997 3006 ldrsb.w r3, [r7, #6] - 8000e64: f113 0f2d cmn.w r3, #45 ; 0x2d - 8000e68: db06 blt.n 8000e78 - 8000e6a: f997 3006 ldrsb.w r3, [r7, #6] - 8000e6e: 2b2d cmp r3, #45 ; 0x2d - 8000e70: bfa8 it ge - 8000e72: 232d movge r3, #45 ; 0x2d - 8000e74: b25b sxtb r3, r3 - 8000e76: e001 b.n 8000e7c - 8000e78: f06f 032c mvn.w r3, #44 ; 0x2c - 8000e7c: 71bb strb r3, [r7, #6] - - // Add Zero Position to the angle - Copy_s8Deg += ZERO_POS; - 8000e7e: 79bb ldrb r3, [r7, #6] - 8000e80: 3355 adds r3, #85 ; 0x55 - 8000e82: b2db uxtb r3, r3 - 8000e84: 71bb strb r3, [r7, #6] - - // Calculate the positive duty cycle corresponding to the desired angle - u16 Positive_Duty = ((Copy_s8Deg * 2000) / 180) + 500; - 8000e86: f997 3006 ldrsb.w r3, [r7, #6] - 8000e8a: f44f 62fa mov.w r2, #2000 ; 0x7d0 - 8000e8e: fb02 f303 mul.w r3, r2, r3 - 8000e92: 4a0e ldr r2, [pc, #56] ; (8000ecc ) - 8000e94: fb82 1203 smull r1, r2, r2, r3 - 8000e98: 441a add r2, r3 - 8000e9a: 11d2 asrs r2, r2, #7 - 8000e9c: 17db asrs r3, r3, #31 - 8000e9e: 1ad3 subs r3, r2, r3 - 8000ea0: b29b uxth r3, r3 - 8000ea2: f503 73fa add.w r3, r3, #500 ; 0x1f4 - 8000ea6: 81fb strh r3, [r7, #14] - - // Set the PWM signal to control the servo motor - MTIMER_vPWM(SERVO_STRUCT[Copy_u8ServoNum].TIMER, SERVO_STRUCT[Copy_u8ServoNum].CHANNEL, SERVO_FullPeriod, Positive_Duty); - 8000ea8: 79fb ldrb r3, [r7, #7] - 8000eaa: 4a09 ldr r2, [pc, #36] ; (8000ed0 ) - 8000eac: f812 0013 ldrb.w r0, [r2, r3, lsl #1] - 8000eb0: 79fb ldrb r3, [r7, #7] - 8000eb2: 4a07 ldr r2, [pc, #28] ; (8000ed0 ) - 8000eb4: 005b lsls r3, r3, #1 - 8000eb6: 4413 add r3, r2 - 8000eb8: 7859 ldrb r1, [r3, #1] - 8000eba: 89fb ldrh r3, [r7, #14] - 8000ebc: f644 6220 movw r2, #20000 ; 0x4e20 - 8000ec0: f000 fd6c bl 800199c -} - 8000ec4: bf00 nop - 8000ec6: 3710 adds r7, #16 - 8000ec8: 46bd mov sp, r7 - 8000eca: bd80 pop {r7, pc} - 8000ecc: b60b60b7 .word 0xb60b60b7 - 8000ed0: 20000230 .word 0x20000230 - -08000ed4 : -/***************************************************************************/ -/* Functions Implementations */ -/***************************************************************************/ -static void (*GLOBAL_EXTIPtr[16])(void) = {STD_NULL}; - -void SYSCFG_vConfigEXTI_Line(u8 Copy_u8Port,Enum_MEXTI_No_t Copy_u8EXTI_Num){ - 8000ed4: b480 push {r7} - 8000ed6: b083 sub sp, #12 - 8000ed8: af00 add r7, sp, #0 - 8000eda: 4603 mov r3, r0 - 8000edc: 460a mov r2, r1 - 8000ede: 71fb strb r3, [r7, #7] - 8000ee0: 4613 mov r3, r2 - 8000ee2: 71bb strb r3, [r7, #6] - //Clear 4 Bits Before Write - SYSCFG->EXTICR[Copy_u8EXTI_Num / PIN_PER_REG] &= ~(MASK4 << ( (Copy_u8EXTI_Num % PIN_PER_REG)*BIT_PER_PIN ) ); - 8000ee4: 4a17 ldr r2, [pc, #92] ; (8000f44 ) - 8000ee6: 79bb ldrb r3, [r7, #6] - 8000ee8: 089b lsrs r3, r3, #2 - 8000eea: b2d8 uxtb r0, r3 - 8000eec: 4603 mov r3, r0 - 8000eee: 3302 adds r3, #2 - 8000ef0: f852 3023 ldr.w r3, [r2, r3, lsl #2] - 8000ef4: 79ba ldrb r2, [r7, #6] - 8000ef6: f002 0203 and.w r2, r2, #3 - 8000efa: 0092 lsls r2, r2, #2 - 8000efc: 210f movs r1, #15 - 8000efe: fa01 f202 lsl.w r2, r1, r2 - 8000f02: 43d2 mvns r2, r2 - 8000f04: 490f ldr r1, [pc, #60] ; (8000f44 ) - 8000f06: 401a ands r2, r3 - 8000f08: 1c83 adds r3, r0, #2 - 8000f0a: f841 2023 str.w r2, [r1, r3, lsl #2] - SYSCFG->EXTICR[Copy_u8EXTI_Num / PIN_PER_REG] |= (Copy_u8Port << ( (Copy_u8EXTI_Num % PIN_PER_REG)*BIT_PER_PIN ) ); - 8000f0e: 4a0d ldr r2, [pc, #52] ; (8000f44 ) - 8000f10: 79bb ldrb r3, [r7, #6] - 8000f12: 089b lsrs r3, r3, #2 - 8000f14: b2d8 uxtb r0, r3 - 8000f16: 4603 mov r3, r0 - 8000f18: 3302 adds r3, #2 - 8000f1a: f852 3023 ldr.w r3, [r2, r3, lsl #2] - 8000f1e: 79f9 ldrb r1, [r7, #7] - 8000f20: 79ba ldrb r2, [r7, #6] - 8000f22: f002 0203 and.w r2, r2, #3 - 8000f26: 0092 lsls r2, r2, #2 - 8000f28: fa01 f202 lsl.w r2, r1, r2 - 8000f2c: 4905 ldr r1, [pc, #20] ; (8000f44 ) - 8000f2e: 431a orrs r2, r3 - 8000f30: 1c83 adds r3, r0, #2 - 8000f32: f841 2023 str.w r2, [r1, r3, lsl #2] -} - 8000f36: bf00 nop - 8000f38: 370c adds r7, #12 - 8000f3a: 46bd mov sp, r7 - 8000f3c: f85d 7b04 ldr.w r7, [sp], #4 - 8000f40: 4770 bx lr - 8000f42: bf00 nop - 8000f44: 40013800 .word 0x40013800 - -08000f48 : - -void MEXTI_vEnableInterrupt(Enum_MEXTI_No_t Copy_u8EXTI_Num){ - 8000f48: b480 push {r7} - 8000f4a: b083 sub sp, #12 - 8000f4c: af00 add r7, sp, #0 - 8000f4e: 4603 mov r3, r0 - 8000f50: 71fb strb r3, [r7, #7] - SET_BIT(EXTI->IMR,Copy_u8EXTI_Num); - 8000f52: 4b08 ldr r3, [pc, #32] ; (8000f74 ) - 8000f54: 681b ldr r3, [r3, #0] - 8000f56: 79fa ldrb r2, [r7, #7] - 8000f58: 2101 movs r1, #1 - 8000f5a: fa01 f202 lsl.w r2, r1, r2 - 8000f5e: 4611 mov r1, r2 - 8000f60: 4a04 ldr r2, [pc, #16] ; (8000f74 ) - 8000f62: 430b orrs r3, r1 - 8000f64: 6013 str r3, [r2, #0] -} - 8000f66: bf00 nop - 8000f68: 370c adds r7, #12 - 8000f6a: 46bd mov sp, r7 - 8000f6c: f85d 7b04 ldr.w r7, [sp], #4 - 8000f70: 4770 bx lr - 8000f72: bf00 nop - 8000f74: 40013c00 .word 0x40013c00 - -08000f78 : - -void MEXTI_vDisableEvent(u8 Copy_u8EXTI_Num){ - CLR_BIT(EXTI->EMR,Copy_u8EXTI_Num); -} - -void MEXTI_vInterruptTrigger(Enum_MEXTI_No_t Copy_u8EXTI_Num,EXTI_TRIGGER Copy_u8Trig){ - 8000f78: b480 push {r7} - 8000f7a: b083 sub sp, #12 - 8000f7c: af00 add r7, sp, #0 - 8000f7e: 4603 mov r3, r0 - 8000f80: 460a mov r2, r1 - 8000f82: 71fb strb r3, [r7, #7] - 8000f84: 4613 mov r3, r2 - 8000f86: 71bb strb r3, [r7, #6] - switch(Copy_u8Trig){ - 8000f88: 79bb ldrb r3, [r7, #6] - 8000f8a: 2b01 cmp r3, #1 - 8000f8c: d01a beq.n 8000fc4 - 8000f8e: 2b02 cmp r3, #2 - 8000f90: d02e beq.n 8000ff0 - 8000f92: 2b00 cmp r3, #0 - 8000f94: d000 beq.n 8000f98 - case ONCHARGE: - SET_BIT(EXTI->RTSR,Copy_u8EXTI_Num); - SET_BIT(EXTI->FTSR,Copy_u8EXTI_Num); - break; - } -} - 8000f96: e040 b.n 800101a - SET_BIT(EXTI->RTSR,Copy_u8EXTI_Num); - 8000f98: 4b23 ldr r3, [pc, #140] ; (8001028 ) - 8000f9a: 689b ldr r3, [r3, #8] - 8000f9c: 79fa ldrb r2, [r7, #7] - 8000f9e: 2101 movs r1, #1 - 8000fa0: fa01 f202 lsl.w r2, r1, r2 - 8000fa4: 4611 mov r1, r2 - 8000fa6: 4a20 ldr r2, [pc, #128] ; (8001028 ) - 8000fa8: 430b orrs r3, r1 - 8000faa: 6093 str r3, [r2, #8] - CLR_BIT(EXTI->FTSR,Copy_u8EXTI_Num); - 8000fac: 4b1e ldr r3, [pc, #120] ; (8001028 ) - 8000fae: 68db ldr r3, [r3, #12] - 8000fb0: 79fa ldrb r2, [r7, #7] - 8000fb2: 2101 movs r1, #1 - 8000fb4: fa01 f202 lsl.w r2, r1, r2 - 8000fb8: 43d2 mvns r2, r2 - 8000fba: 4611 mov r1, r2 - 8000fbc: 4a1a ldr r2, [pc, #104] ; (8001028 ) - 8000fbe: 400b ands r3, r1 - 8000fc0: 60d3 str r3, [r2, #12] - break; - 8000fc2: e02a b.n 800101a - CLR_BIT(EXTI->RTSR,Copy_u8EXTI_Num); - 8000fc4: 4b18 ldr r3, [pc, #96] ; (8001028 ) - 8000fc6: 689b ldr r3, [r3, #8] - 8000fc8: 79fa ldrb r2, [r7, #7] - 8000fca: 2101 movs r1, #1 - 8000fcc: fa01 f202 lsl.w r2, r1, r2 - 8000fd0: 43d2 mvns r2, r2 - 8000fd2: 4611 mov r1, r2 - 8000fd4: 4a14 ldr r2, [pc, #80] ; (8001028 ) - 8000fd6: 400b ands r3, r1 - 8000fd8: 6093 str r3, [r2, #8] - SET_BIT(EXTI->FTSR,Copy_u8EXTI_Num); - 8000fda: 4b13 ldr r3, [pc, #76] ; (8001028 ) - 8000fdc: 68db ldr r3, [r3, #12] - 8000fde: 79fa ldrb r2, [r7, #7] - 8000fe0: 2101 movs r1, #1 - 8000fe2: fa01 f202 lsl.w r2, r1, r2 - 8000fe6: 4611 mov r1, r2 - 8000fe8: 4a0f ldr r2, [pc, #60] ; (8001028 ) - 8000fea: 430b orrs r3, r1 - 8000fec: 60d3 str r3, [r2, #12] - break; - 8000fee: e014 b.n 800101a - SET_BIT(EXTI->RTSR,Copy_u8EXTI_Num); - 8000ff0: 4b0d ldr r3, [pc, #52] ; (8001028 ) - 8000ff2: 689b ldr r3, [r3, #8] - 8000ff4: 79fa ldrb r2, [r7, #7] - 8000ff6: 2101 movs r1, #1 - 8000ff8: fa01 f202 lsl.w r2, r1, r2 - 8000ffc: 4611 mov r1, r2 - 8000ffe: 4a0a ldr r2, [pc, #40] ; (8001028 ) - 8001000: 430b orrs r3, r1 - 8001002: 6093 str r3, [r2, #8] - SET_BIT(EXTI->FTSR,Copy_u8EXTI_Num); - 8001004: 4b08 ldr r3, [pc, #32] ; (8001028 ) - 8001006: 68db ldr r3, [r3, #12] - 8001008: 79fa ldrb r2, [r7, #7] - 800100a: 2101 movs r1, #1 - 800100c: fa01 f202 lsl.w r2, r1, r2 - 8001010: 4611 mov r1, r2 - 8001012: 4a05 ldr r2, [pc, #20] ; (8001028 ) - 8001014: 430b orrs r3, r1 - 8001016: 60d3 str r3, [r2, #12] - break; - 8001018: bf00 nop -} - 800101a: bf00 nop - 800101c: 370c adds r7, #12 - 800101e: 46bd mov sp, r7 - 8001020: f85d 7b04 ldr.w r7, [sp], #4 - 8001024: 4770 bx lr - 8001026: bf00 nop - 8001028: 40013c00 .word 0x40013c00 - -0800102c : -void MEXTI_PtrReadInterruptFlag(u8 Copy_u8EXTI_Num,u8* Copy_u8Reg){ - * Copy_u8Reg = GET_BIT(EXTI->PR,Copy_u8EXTI_Num); -} - - -void MEXTI_vCallBack(Enum_MEXTI_No_t Copy_u8InterruptNo ,void(*ptr)(void)){ - 800102c: b480 push {r7} - 800102e: b083 sub sp, #12 - 8001030: af00 add r7, sp, #0 - 8001032: 4603 mov r3, r0 - 8001034: 6039 str r1, [r7, #0] - 8001036: 71fb strb r3, [r7, #7] - if( ptr != STD_NULL){ - 8001038: 683b ldr r3, [r7, #0] - 800103a: 2b00 cmp r3, #0 - 800103c: d004 beq.n 8001048 - GLOBAL_EXTIPtr[Copy_u8InterruptNo]=ptr; - 800103e: 79fb ldrb r3, [r7, #7] - 8001040: 4904 ldr r1, [pc, #16] ; (8001054 ) - 8001042: 683a ldr r2, [r7, #0] - 8001044: f841 2023 str.w r2, [r1, r3, lsl #2] - } -} - 8001048: bf00 nop - 800104a: 370c adds r7, #12 - 800104c: 46bd mov sp, r7 - 800104e: f85d 7b04 ldr.w r7, [sp], #4 - 8001052: 4770 bx lr - 8001054: 20000024 .word 0x20000024 - -08001058 : - - -void EXTI0_IRQHandler(void){ - 8001058: b580 push {r7, lr} - 800105a: af00 add r7, sp, #0 - GLOBAL_EXTIPtr[0](); - 800105c: 4b05 ldr r3, [pc, #20] ; (8001074 ) - 800105e: 681b ldr r3, [r3, #0] - 8001060: 4798 blx r3 - EXTI->PR |= 1; - 8001062: 4b05 ldr r3, [pc, #20] ; (8001078 ) - 8001064: 695b ldr r3, [r3, #20] - 8001066: 4a04 ldr r2, [pc, #16] ; (8001078 ) - 8001068: f043 0301 orr.w r3, r3, #1 - 800106c: 6153 str r3, [r2, #20] -} - 800106e: bf00 nop - 8001070: bd80 pop {r7, pc} - 8001072: bf00 nop - 8001074: 20000024 .word 0x20000024 - 8001078: 40013c00 .word 0x40013c00 - -0800107c : - -void EXTI1_IRQHandler(void){ - 800107c: b580 push {r7, lr} - 800107e: af00 add r7, sp, #0 - GLOBAL_EXTIPtr[1](); - 8001080: 4b05 ldr r3, [pc, #20] ; (8001098 ) - 8001082: 685b ldr r3, [r3, #4] - 8001084: 4798 blx r3 - EXTI->PR |= 1<<1; - 8001086: 4b05 ldr r3, [pc, #20] ; (800109c ) - 8001088: 695b ldr r3, [r3, #20] - 800108a: 4a04 ldr r2, [pc, #16] ; (800109c ) - 800108c: f043 0302 orr.w r3, r3, #2 - 8001090: 6153 str r3, [r2, #20] -} - 8001092: bf00 nop - 8001094: bd80 pop {r7, pc} - 8001096: bf00 nop - 8001098: 20000024 .word 0x20000024 - 800109c: 40013c00 .word 0x40013c00 - -080010a0 : - -void EXTI2_IRQHandler(void){ - 80010a0: b580 push {r7, lr} - 80010a2: af00 add r7, sp, #0 - GLOBAL_EXTIPtr[2](); - 80010a4: 4b05 ldr r3, [pc, #20] ; (80010bc ) - 80010a6: 689b ldr r3, [r3, #8] - 80010a8: 4798 blx r3 - EXTI->PR |= 1<<2; - 80010aa: 4b05 ldr r3, [pc, #20] ; (80010c0 ) - 80010ac: 695b ldr r3, [r3, #20] - 80010ae: 4a04 ldr r2, [pc, #16] ; (80010c0 ) - 80010b0: f043 0304 orr.w r3, r3, #4 - 80010b4: 6153 str r3, [r2, #20] -} - 80010b6: bf00 nop - 80010b8: bd80 pop {r7, pc} - 80010ba: bf00 nop - 80010bc: 20000024 .word 0x20000024 - 80010c0: 40013c00 .word 0x40013c00 - -080010c4 : -void EXTI3_IRQHandler(void){ - 80010c4: b580 push {r7, lr} - 80010c6: af00 add r7, sp, #0 - GLOBAL_EXTIPtr[3](); - 80010c8: 4b05 ldr r3, [pc, #20] ; (80010e0 ) - 80010ca: 68db ldr r3, [r3, #12] - 80010cc: 4798 blx r3 - EXTI->PR |= 1<<3; - 80010ce: 4b05 ldr r3, [pc, #20] ; (80010e4 ) - 80010d0: 695b ldr r3, [r3, #20] - 80010d2: 4a04 ldr r2, [pc, #16] ; (80010e4 ) - 80010d4: f043 0308 orr.w r3, r3, #8 - 80010d8: 6153 str r3, [r2, #20] -} - 80010da: bf00 nop - 80010dc: bd80 pop {r7, pc} - 80010de: bf00 nop - 80010e0: 20000024 .word 0x20000024 - 80010e4: 40013c00 .word 0x40013c00 - -080010e8 : -void EXTI4_IRQHandler(void){ - 80010e8: b580 push {r7, lr} - 80010ea: af00 add r7, sp, #0 - GLOBAL_EXTIPtr[4](); - 80010ec: 4b05 ldr r3, [pc, #20] ; (8001104 ) - 80010ee: 691b ldr r3, [r3, #16] - 80010f0: 4798 blx r3 - EXTI->PR |= 1<<4; - 80010f2: 4b05 ldr r3, [pc, #20] ; (8001108 ) - 80010f4: 695b ldr r3, [r3, #20] - 80010f6: 4a04 ldr r2, [pc, #16] ; (8001108 ) - 80010f8: f043 0310 orr.w r3, r3, #16 - 80010fc: 6153 str r3, [r2, #20] -} - 80010fe: bf00 nop - 8001100: bd80 pop {r7, pc} - 8001102: bf00 nop - 8001104: 20000024 .word 0x20000024 - 8001108: 40013c00 .word 0x40013c00 - -0800110c : -void EXTI9_5_IRQHandler(void){ - 800110c: b580 push {r7, lr} - 800110e: af00 add r7, sp, #0 - if((GET_BIT(EXTI->PR,EXTI5)==1)&(GLOBAL_EXTIPtr[EXTI5]!=STD_NULL)){ - 8001110: 4b4d ldr r3, [pc, #308] ; (8001248 ) - 8001112: 695b ldr r3, [r3, #20] - 8001114: 095b lsrs r3, r3, #5 - 8001116: f003 0301 and.w r3, r3, #1 - 800111a: 2b01 cmp r3, #1 - 800111c: bf0c ite eq - 800111e: 2301 moveq r3, #1 - 8001120: 2300 movne r3, #0 - 8001122: b2da uxtb r2, r3 - 8001124: 4b49 ldr r3, [pc, #292] ; (800124c ) - 8001126: 695b ldr r3, [r3, #20] - 8001128: 2b00 cmp r3, #0 - 800112a: bf14 ite ne - 800112c: 2301 movne r3, #1 - 800112e: 2300 moveq r3, #0 - 8001130: b2db uxtb r3, r3 - 8001132: 4013 ands r3, r2 - 8001134: b2db uxtb r3, r3 - 8001136: 2b00 cmp r3, #0 - 8001138: d009 beq.n 800114e - GLOBAL_EXTIPtr[EXTI5](); - 800113a: 4b44 ldr r3, [pc, #272] ; (800124c ) - 800113c: 695b ldr r3, [r3, #20] - 800113e: 4798 blx r3 - EXTI->PR |= 1<) - 8001142: 695b ldr r3, [r3, #20] - 8001144: 4a40 ldr r2, [pc, #256] ; (8001248 ) - 8001146: f043 0320 orr.w r3, r3, #32 - 800114a: 6153 str r3, [r2, #20] - } - else if((GET_BIT(EXTI->PR,EXTI9)==1)&(GLOBAL_EXTIPtr[EXTI9]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI9](); - EXTI->PR |= 1< - else if((GET_BIT(EXTI->PR,EXTI6)==1)&(GLOBAL_EXTIPtr[EXTI6]!=STD_NULL)){ - 800114e: 4b3e ldr r3, [pc, #248] ; (8001248 ) - 8001150: 695b ldr r3, [r3, #20] - 8001152: 099b lsrs r3, r3, #6 - 8001154: f003 0301 and.w r3, r3, #1 - 8001158: 2b01 cmp r3, #1 - 800115a: bf0c ite eq - 800115c: 2301 moveq r3, #1 - 800115e: 2300 movne r3, #0 - 8001160: b2da uxtb r2, r3 - 8001162: 4b3a ldr r3, [pc, #232] ; (800124c ) - 8001164: 699b ldr r3, [r3, #24] - 8001166: 2b00 cmp r3, #0 - 8001168: bf14 ite ne - 800116a: 2301 movne r3, #1 - 800116c: 2300 moveq r3, #0 - 800116e: b2db uxtb r3, r3 - 8001170: 4013 ands r3, r2 - 8001172: b2db uxtb r3, r3 - 8001174: 2b00 cmp r3, #0 - 8001176: d009 beq.n 800118c - GLOBAL_EXTIPtr[EXTI6](); - 8001178: 4b34 ldr r3, [pc, #208] ; (800124c ) - 800117a: 699b ldr r3, [r3, #24] - 800117c: 4798 blx r3 - EXTI->PR |= 1<) - 8001180: 695b ldr r3, [r3, #20] - 8001182: 4a31 ldr r2, [pc, #196] ; (8001248 ) - 8001184: f043 0340 orr.w r3, r3, #64 ; 0x40 - 8001188: 6153 str r3, [r2, #20] -} - 800118a: e05b b.n 8001244 - else if((GET_BIT(EXTI->PR,EXTI7)==1)&(GLOBAL_EXTIPtr[EXTI7]!=STD_NULL)){ - 800118c: 4b2e ldr r3, [pc, #184] ; (8001248 ) - 800118e: 695b ldr r3, [r3, #20] - 8001190: 09db lsrs r3, r3, #7 - 8001192: f003 0301 and.w r3, r3, #1 - 8001196: 2b01 cmp r3, #1 - 8001198: bf0c ite eq - 800119a: 2301 moveq r3, #1 - 800119c: 2300 movne r3, #0 - 800119e: b2da uxtb r2, r3 - 80011a0: 4b2a ldr r3, [pc, #168] ; (800124c ) - 80011a2: 69db ldr r3, [r3, #28] - 80011a4: 2b00 cmp r3, #0 - 80011a6: bf14 ite ne - 80011a8: 2301 movne r3, #1 - 80011aa: 2300 moveq r3, #0 - 80011ac: b2db uxtb r3, r3 - 80011ae: 4013 ands r3, r2 - 80011b0: b2db uxtb r3, r3 - 80011b2: 2b00 cmp r3, #0 - 80011b4: d009 beq.n 80011ca - GLOBAL_EXTIPtr[EXTI7](); - 80011b6: 4b25 ldr r3, [pc, #148] ; (800124c ) - 80011b8: 69db ldr r3, [r3, #28] - 80011ba: 4798 blx r3 - EXTI->PR |= 1<) - 80011be: 695b ldr r3, [r3, #20] - 80011c0: 4a21 ldr r2, [pc, #132] ; (8001248 ) - 80011c2: f043 0380 orr.w r3, r3, #128 ; 0x80 - 80011c6: 6153 str r3, [r2, #20] -} - 80011c8: e03c b.n 8001244 - else if((GET_BIT(EXTI->PR,EXTI8)==1)&(GLOBAL_EXTIPtr[EXTI8]!=STD_NULL)){ - 80011ca: 4b1f ldr r3, [pc, #124] ; (8001248 ) - 80011cc: 695b ldr r3, [r3, #20] - 80011ce: 0a1b lsrs r3, r3, #8 - 80011d0: f003 0301 and.w r3, r3, #1 - 80011d4: 2b01 cmp r3, #1 - 80011d6: bf0c ite eq - 80011d8: 2301 moveq r3, #1 - 80011da: 2300 movne r3, #0 - 80011dc: b2da uxtb r2, r3 - 80011de: 4b1b ldr r3, [pc, #108] ; (800124c ) - 80011e0: 6a1b ldr r3, [r3, #32] - 80011e2: 2b00 cmp r3, #0 - 80011e4: bf14 ite ne - 80011e6: 2301 movne r3, #1 - 80011e8: 2300 moveq r3, #0 - 80011ea: b2db uxtb r3, r3 - 80011ec: 4013 ands r3, r2 - 80011ee: b2db uxtb r3, r3 - 80011f0: 2b00 cmp r3, #0 - 80011f2: d009 beq.n 8001208 - GLOBAL_EXTIPtr[EXTI8](); - 80011f4: 4b15 ldr r3, [pc, #84] ; (800124c ) - 80011f6: 6a1b ldr r3, [r3, #32] - 80011f8: 4798 blx r3 - EXTI->PR |= 1<) - 80011fc: 695b ldr r3, [r3, #20] - 80011fe: 4a12 ldr r2, [pc, #72] ; (8001248 ) - 8001200: f443 7380 orr.w r3, r3, #256 ; 0x100 - 8001204: 6153 str r3, [r2, #20] -} - 8001206: e01d b.n 8001244 - else if((GET_BIT(EXTI->PR,EXTI9)==1)&(GLOBAL_EXTIPtr[EXTI9]!=STD_NULL)){ - 8001208: 4b0f ldr r3, [pc, #60] ; (8001248 ) - 800120a: 695b ldr r3, [r3, #20] - 800120c: 0a5b lsrs r3, r3, #9 - 800120e: f003 0301 and.w r3, r3, #1 - 8001212: 2b01 cmp r3, #1 - 8001214: bf0c ite eq - 8001216: 2301 moveq r3, #1 - 8001218: 2300 movne r3, #0 - 800121a: b2da uxtb r2, r3 - 800121c: 4b0b ldr r3, [pc, #44] ; (800124c ) - 800121e: 6a5b ldr r3, [r3, #36] ; 0x24 - 8001220: 2b00 cmp r3, #0 - 8001222: bf14 ite ne - 8001224: 2301 movne r3, #1 - 8001226: 2300 moveq r3, #0 - 8001228: b2db uxtb r3, r3 - 800122a: 4013 ands r3, r2 - 800122c: b2db uxtb r3, r3 - 800122e: 2b00 cmp r3, #0 - 8001230: d008 beq.n 8001244 - GLOBAL_EXTIPtr[EXTI9](); - 8001232: 4b06 ldr r3, [pc, #24] ; (800124c ) - 8001234: 6a5b ldr r3, [r3, #36] ; 0x24 - 8001236: 4798 blx r3 - EXTI->PR |= 1<) - 800123a: 695b ldr r3, [r3, #20] - 800123c: 4a02 ldr r2, [pc, #8] ; (8001248 ) - 800123e: f443 7300 orr.w r3, r3, #512 ; 0x200 - 8001242: 6153 str r3, [r2, #20] -} - 8001244: bf00 nop - 8001246: bd80 pop {r7, pc} - 8001248: 40013c00 .word 0x40013c00 - 800124c: 20000024 .word 0x20000024 - -08001250 : -void EXTI15_10_IRQHandler(void){ - 8001250: b580 push {r7, lr} - 8001252: af00 add r7, sp, #0 - if((GET_BIT(EXTI->PR,EXTI10)==1)&(GLOBAL_EXTIPtr[EXTI10]!=STD_NULL)){ - 8001254: 4b5d ldr r3, [pc, #372] ; (80013cc ) - 8001256: 695b ldr r3, [r3, #20] - 8001258: 0a9b lsrs r3, r3, #10 - 800125a: f003 0301 and.w r3, r3, #1 - 800125e: 2b01 cmp r3, #1 - 8001260: bf0c ite eq - 8001262: 2301 moveq r3, #1 - 8001264: 2300 movne r3, #0 - 8001266: b2da uxtb r2, r3 - 8001268: 4b59 ldr r3, [pc, #356] ; (80013d0 ) - 800126a: 6a9b ldr r3, [r3, #40] ; 0x28 - 800126c: 2b00 cmp r3, #0 - 800126e: bf14 ite ne - 8001270: 2301 movne r3, #1 - 8001272: 2300 moveq r3, #0 - 8001274: b2db uxtb r3, r3 - 8001276: 4013 ands r3, r2 - 8001278: b2db uxtb r3, r3 - 800127a: 2b00 cmp r3, #0 - 800127c: d009 beq.n 8001292 - GLOBAL_EXTIPtr[EXTI10](); - 800127e: 4b54 ldr r3, [pc, #336] ; (80013d0 ) - 8001280: 6a9b ldr r3, [r3, #40] ; 0x28 - 8001282: 4798 blx r3 - EXTI->PR |= 1<) - 8001286: 695b ldr r3, [r3, #20] - 8001288: 4a50 ldr r2, [pc, #320] ; (80013cc ) - 800128a: f443 6380 orr.w r3, r3, #1024 ; 0x400 - 800128e: 6153 str r3, [r2, #20] - } - else if((GET_BIT(EXTI->PR,EXTI15)==1)&(GLOBAL_EXTIPtr[EXTI15]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI15](); - EXTI->PR |= 1< - else if((GET_BIT(EXTI->PR,EXTI11)==1)&(GLOBAL_EXTIPtr[EXTI11]!=STD_NULL)){ - 8001292: 4b4e ldr r3, [pc, #312] ; (80013cc ) - 8001294: 695b ldr r3, [r3, #20] - 8001296: 0adb lsrs r3, r3, #11 - 8001298: f003 0301 and.w r3, r3, #1 - 800129c: 2b01 cmp r3, #1 - 800129e: bf0c ite eq - 80012a0: 2301 moveq r3, #1 - 80012a2: 2300 movne r3, #0 - 80012a4: b2da uxtb r2, r3 - 80012a6: 4b4a ldr r3, [pc, #296] ; (80013d0 ) - 80012a8: 6adb ldr r3, [r3, #44] ; 0x2c - 80012aa: 2b00 cmp r3, #0 - 80012ac: bf14 ite ne - 80012ae: 2301 movne r3, #1 - 80012b0: 2300 moveq r3, #0 - 80012b2: b2db uxtb r3, r3 - 80012b4: 4013 ands r3, r2 - 80012b6: b2db uxtb r3, r3 - 80012b8: 2b00 cmp r3, #0 - 80012ba: d009 beq.n 80012d0 - GLOBAL_EXTIPtr[EXTI11](); - 80012bc: 4b44 ldr r3, [pc, #272] ; (80013d0 ) - 80012be: 6adb ldr r3, [r3, #44] ; 0x2c - 80012c0: 4798 blx r3 - EXTI->PR |= 1<) - 80012c4: 695b ldr r3, [r3, #20] - 80012c6: 4a41 ldr r2, [pc, #260] ; (80013cc ) - 80012c8: f443 6300 orr.w r3, r3, #2048 ; 0x800 - 80012cc: 6153 str r3, [r2, #20] -} - 80012ce: e07a b.n 80013c6 - else if((GET_BIT(EXTI->PR,EXTI12)==1)&(GLOBAL_EXTIPtr[EXTI12]!=STD_NULL)){ - 80012d0: 4b3e ldr r3, [pc, #248] ; (80013cc ) - 80012d2: 695b ldr r3, [r3, #20] - 80012d4: 0b1b lsrs r3, r3, #12 - 80012d6: f003 0301 and.w r3, r3, #1 - 80012da: 2b01 cmp r3, #1 - 80012dc: bf0c ite eq - 80012de: 2301 moveq r3, #1 - 80012e0: 2300 movne r3, #0 - 80012e2: b2da uxtb r2, r3 - 80012e4: 4b3a ldr r3, [pc, #232] ; (80013d0 ) - 80012e6: 6b1b ldr r3, [r3, #48] ; 0x30 - 80012e8: 2b00 cmp r3, #0 - 80012ea: bf14 ite ne - 80012ec: 2301 movne r3, #1 - 80012ee: 2300 moveq r3, #0 - 80012f0: b2db uxtb r3, r3 - 80012f2: 4013 ands r3, r2 - 80012f4: b2db uxtb r3, r3 - 80012f6: 2b00 cmp r3, #0 - 80012f8: d009 beq.n 800130e - GLOBAL_EXTIPtr[EXTI12](); - 80012fa: 4b35 ldr r3, [pc, #212] ; (80013d0 ) - 80012fc: 6b1b ldr r3, [r3, #48] ; 0x30 - 80012fe: 4798 blx r3 - EXTI->PR |= 1<) - 8001302: 695b ldr r3, [r3, #20] - 8001304: 4a31 ldr r2, [pc, #196] ; (80013cc ) - 8001306: f443 5380 orr.w r3, r3, #4096 ; 0x1000 - 800130a: 6153 str r3, [r2, #20] -} - 800130c: e05b b.n 80013c6 - else if((GET_BIT(EXTI->PR,EXTI13)==1)&(GLOBAL_EXTIPtr[EXTI13]!=STD_NULL)){ - 800130e: 4b2f ldr r3, [pc, #188] ; (80013cc ) - 8001310: 695b ldr r3, [r3, #20] - 8001312: 0b5b lsrs r3, r3, #13 - 8001314: f003 0301 and.w r3, r3, #1 - 8001318: 2b01 cmp r3, #1 - 800131a: bf0c ite eq - 800131c: 2301 moveq r3, #1 - 800131e: 2300 movne r3, #0 - 8001320: b2da uxtb r2, r3 - 8001322: 4b2b ldr r3, [pc, #172] ; (80013d0 ) - 8001324: 6b5b ldr r3, [r3, #52] ; 0x34 - 8001326: 2b00 cmp r3, #0 - 8001328: bf14 ite ne - 800132a: 2301 movne r3, #1 - 800132c: 2300 moveq r3, #0 - 800132e: b2db uxtb r3, r3 - 8001330: 4013 ands r3, r2 - 8001332: b2db uxtb r3, r3 - 8001334: 2b00 cmp r3, #0 - 8001336: d009 beq.n 800134c - GLOBAL_EXTIPtr[EXTI13](); - 8001338: 4b25 ldr r3, [pc, #148] ; (80013d0 ) - 800133a: 6b5b ldr r3, [r3, #52] ; 0x34 - 800133c: 4798 blx r3 - EXTI->PR |= 1<) - 8001340: 695b ldr r3, [r3, #20] - 8001342: 4a22 ldr r2, [pc, #136] ; (80013cc ) - 8001344: f443 5300 orr.w r3, r3, #8192 ; 0x2000 - 8001348: 6153 str r3, [r2, #20] -} - 800134a: e03c b.n 80013c6 - else if((GET_BIT(EXTI->PR,EXTI14)==1)&(GLOBAL_EXTIPtr[EXTI14]!=STD_NULL)){ - 800134c: 4b1f ldr r3, [pc, #124] ; (80013cc ) - 800134e: 695b ldr r3, [r3, #20] - 8001350: 0b9b lsrs r3, r3, #14 - 8001352: f003 0301 and.w r3, r3, #1 - 8001356: 2b01 cmp r3, #1 - 8001358: bf0c ite eq - 800135a: 2301 moveq r3, #1 - 800135c: 2300 movne r3, #0 - 800135e: b2da uxtb r2, r3 - 8001360: 4b1b ldr r3, [pc, #108] ; (80013d0 ) - 8001362: 6b9b ldr r3, [r3, #56] ; 0x38 - 8001364: 2b00 cmp r3, #0 - 8001366: bf14 ite ne - 8001368: 2301 movne r3, #1 - 800136a: 2300 moveq r3, #0 - 800136c: b2db uxtb r3, r3 - 800136e: 4013 ands r3, r2 - 8001370: b2db uxtb r3, r3 - 8001372: 2b00 cmp r3, #0 - 8001374: d009 beq.n 800138a - GLOBAL_EXTIPtr[EXTI14](); - 8001376: 4b16 ldr r3, [pc, #88] ; (80013d0 ) - 8001378: 6b9b ldr r3, [r3, #56] ; 0x38 - 800137a: 4798 blx r3 - EXTI->PR |= 1<) - 800137e: 695b ldr r3, [r3, #20] - 8001380: 4a12 ldr r2, [pc, #72] ; (80013cc ) - 8001382: f443 4380 orr.w r3, r3, #16384 ; 0x4000 - 8001386: 6153 str r3, [r2, #20] -} - 8001388: e01d b.n 80013c6 - else if((GET_BIT(EXTI->PR,EXTI15)==1)&(GLOBAL_EXTIPtr[EXTI15]!=STD_NULL)){ - 800138a: 4b10 ldr r3, [pc, #64] ; (80013cc ) - 800138c: 695b ldr r3, [r3, #20] - 800138e: 0bdb lsrs r3, r3, #15 - 8001390: f003 0301 and.w r3, r3, #1 - 8001394: 2b01 cmp r3, #1 - 8001396: bf0c ite eq - 8001398: 2301 moveq r3, #1 - 800139a: 2300 movne r3, #0 - 800139c: b2da uxtb r2, r3 - 800139e: 4b0c ldr r3, [pc, #48] ; (80013d0 ) - 80013a0: 6bdb ldr r3, [r3, #60] ; 0x3c - 80013a2: 2b00 cmp r3, #0 - 80013a4: bf14 ite ne - 80013a6: 2301 movne r3, #1 - 80013a8: 2300 moveq r3, #0 - 80013aa: b2db uxtb r3, r3 - 80013ac: 4013 ands r3, r2 - 80013ae: b2db uxtb r3, r3 - 80013b0: 2b00 cmp r3, #0 - 80013b2: d008 beq.n 80013c6 - GLOBAL_EXTIPtr[EXTI15](); - 80013b4: 4b06 ldr r3, [pc, #24] ; (80013d0 ) - 80013b6: 6bdb ldr r3, [r3, #60] ; 0x3c - 80013b8: 4798 blx r3 - EXTI->PR |= 1<) - 80013bc: 695b ldr r3, [r3, #20] - 80013be: 4a03 ldr r2, [pc, #12] ; (80013cc ) - 80013c0: f443 4300 orr.w r3, r3, #32768 ; 0x8000 - 80013c4: 6153 str r3, [r2, #20] -} - 80013c6: bf00 nop - 80013c8: bd80 pop {r7, pc} - 80013ca: bf00 nop - 80013cc: 40013c00 .word 0x40013c00 - 80013d0: 20000024 .word 0x20000024 - -080013d4 : -#include"MGPIO_Config.h" -#include"MGPIO_Private.h" -#include"MGPIO_int.h" - - -void MGPIO_vSetPinMode( u8 Copy_u8PortID, u8 Copy_u8PinNo , u8 Copy_u8PinMode){ - 80013d4: b480 push {r7} - 80013d6: b083 sub sp, #12 - 80013d8: af00 add r7, sp, #0 - 80013da: 4603 mov r3, r0 - 80013dc: 71fb strb r3, [r7, #7] - 80013de: 460b mov r3, r1 - 80013e0: 71bb strb r3, [r7, #6] - 80013e2: 4613 mov r3, r2 - 80013e4: 717b strb r3, [r7, #5] - - switch(Copy_u8PortID){ - 80013e6: 79fb ldrb r3, [r7, #7] - 80013e8: 2b01 cmp r3, #1 - 80013ea: d01c beq.n 8001426 - 80013ec: 2b02 cmp r3, #2 - 80013ee: d032 beq.n 8001456 - 80013f0: 2b00 cmp r3, #0 - 80013f2: d000 beq.n 80013f6 - GPIOC -> MODER &= ~(0b11<<(Copy_u8PinNo*2)); - /* set the desired mode*/ - GPIOC -> MODER |= (Copy_u8PinMode <<(Copy_u8PinNo*2)); - break; - } -} - 80013f4: e047 b.n 8001486 - GPIOA -> MODER &= ~(0b11<<(Copy_u8PinNo*2)); - 80013f6: 4b27 ldr r3, [pc, #156] ; (8001494 ) - 80013f8: 681b ldr r3, [r3, #0] - 80013fa: 79ba ldrb r2, [r7, #6] - 80013fc: 0052 lsls r2, r2, #1 - 80013fe: 2103 movs r1, #3 - 8001400: fa01 f202 lsl.w r2, r1, r2 - 8001404: 43d2 mvns r2, r2 - 8001406: 4611 mov r1, r2 - 8001408: 4a22 ldr r2, [pc, #136] ; (8001494 ) - 800140a: 400b ands r3, r1 - 800140c: 6013 str r3, [r2, #0] - GPIOA -> MODER |= (Copy_u8PinMode <<(Copy_u8PinNo*2)); - 800140e: 4b21 ldr r3, [pc, #132] ; (8001494 ) - 8001410: 681b ldr r3, [r3, #0] - 8001412: 7979 ldrb r1, [r7, #5] - 8001414: 79ba ldrb r2, [r7, #6] - 8001416: 0052 lsls r2, r2, #1 - 8001418: fa01 f202 lsl.w r2, r1, r2 - 800141c: 4611 mov r1, r2 - 800141e: 4a1d ldr r2, [pc, #116] ; (8001494 ) - 8001420: 430b orrs r3, r1 - 8001422: 6013 str r3, [r2, #0] - break; - 8001424: e02f b.n 8001486 - GPIOB -> MODER &= ~(0b11<<(Copy_u8PinNo*2)); - 8001426: 4b1c ldr r3, [pc, #112] ; (8001498 ) - 8001428: 681b ldr r3, [r3, #0] - 800142a: 79ba ldrb r2, [r7, #6] - 800142c: 0052 lsls r2, r2, #1 - 800142e: 2103 movs r1, #3 - 8001430: fa01 f202 lsl.w r2, r1, r2 - 8001434: 43d2 mvns r2, r2 - 8001436: 4611 mov r1, r2 - 8001438: 4a17 ldr r2, [pc, #92] ; (8001498 ) - 800143a: 400b ands r3, r1 - 800143c: 6013 str r3, [r2, #0] - GPIOB -> MODER |= (Copy_u8PinMode <<(Copy_u8PinNo*2)); - 800143e: 4b16 ldr r3, [pc, #88] ; (8001498 ) - 8001440: 681b ldr r3, [r3, #0] - 8001442: 7979 ldrb r1, [r7, #5] - 8001444: 79ba ldrb r2, [r7, #6] - 8001446: 0052 lsls r2, r2, #1 - 8001448: fa01 f202 lsl.w r2, r1, r2 - 800144c: 4611 mov r1, r2 - 800144e: 4a12 ldr r2, [pc, #72] ; (8001498 ) - 8001450: 430b orrs r3, r1 - 8001452: 6013 str r3, [r2, #0] - break; - 8001454: e017 b.n 8001486 - GPIOC -> MODER &= ~(0b11<<(Copy_u8PinNo*2)); - 8001456: 4b11 ldr r3, [pc, #68] ; (800149c ) - 8001458: 681b ldr r3, [r3, #0] - 800145a: 79ba ldrb r2, [r7, #6] - 800145c: 0052 lsls r2, r2, #1 - 800145e: 2103 movs r1, #3 - 8001460: fa01 f202 lsl.w r2, r1, r2 - 8001464: 43d2 mvns r2, r2 - 8001466: 4611 mov r1, r2 - 8001468: 4a0c ldr r2, [pc, #48] ; (800149c ) - 800146a: 400b ands r3, r1 - 800146c: 6013 str r3, [r2, #0] - GPIOC -> MODER |= (Copy_u8PinMode <<(Copy_u8PinNo*2)); - 800146e: 4b0b ldr r3, [pc, #44] ; (800149c ) - 8001470: 681b ldr r3, [r3, #0] - 8001472: 7979 ldrb r1, [r7, #5] - 8001474: 79ba ldrb r2, [r7, #6] - 8001476: 0052 lsls r2, r2, #1 - 8001478: fa01 f202 lsl.w r2, r1, r2 - 800147c: 4611 mov r1, r2 - 800147e: 4a07 ldr r2, [pc, #28] ; (800149c ) - 8001480: 430b orrs r3, r1 - 8001482: 6013 str r3, [r2, #0] - break; - 8001484: bf00 nop -} - 8001486: bf00 nop - 8001488: 370c adds r7, #12 - 800148a: 46bd mov sp, r7 - 800148c: f85d 7b04 ldr.w r7, [sp], #4 - 8001490: 4770 bx lr - 8001492: bf00 nop - 8001494: 40020000 .word 0x40020000 - 8001498: 40020400 .word 0x40020400 - 800149c: 40020800 .word 0x40020800 - -080014a0 : - break; - } - return Local_u8PinVal; -} - -void MGPIO_vSetPinValue(u8 Copy_u8PortID, u8 Copy_u8PinNo ,u8 Copy_u8PinValue){ - 80014a0: b480 push {r7} - 80014a2: b083 sub sp, #12 - 80014a4: af00 add r7, sp, #0 - 80014a6: 4603 mov r3, r0 - 80014a8: 71fb strb r3, [r7, #7] - 80014aa: 460b mov r3, r1 - 80014ac: 71bb strb r3, [r7, #6] - 80014ae: 4613 mov r3, r2 - 80014b0: 717b strb r3, [r7, #5] - - switch(Copy_u8PortID){ - 80014b2: 79fb ldrb r3, [r7, #7] - 80014b4: 2b01 cmp r3, #1 - 80014b6: d01e beq.n 80014f6 - 80014b8: 2b02 cmp r3, #2 - 80014ba: d036 beq.n 800152a - 80014bc: 2b00 cmp r3, #0 - 80014be: d000 beq.n 80014c2 - else - CLR_BIT(GPIOC -> ODR , Copy_u8PinNo); - break; - - } -} - 80014c0: e04d b.n 800155e - if(Copy_u8PinValue == HIGH) - 80014c2: 797b ldrb r3, [r7, #5] - 80014c4: 2b01 cmp r3, #1 - 80014c6: d10a bne.n 80014de - SET_BIT(GPIOA -> ODR , Copy_u8PinNo); - 80014c8: 4b28 ldr r3, [pc, #160] ; (800156c ) - 80014ca: 695b ldr r3, [r3, #20] - 80014cc: 79ba ldrb r2, [r7, #6] - 80014ce: 2101 movs r1, #1 - 80014d0: fa01 f202 lsl.w r2, r1, r2 - 80014d4: 4611 mov r1, r2 - 80014d6: 4a25 ldr r2, [pc, #148] ; (800156c ) - 80014d8: 430b orrs r3, r1 - 80014da: 6153 str r3, [r2, #20] - break; - 80014dc: e03f b.n 800155e - CLR_BIT(GPIOA -> ODR , Copy_u8PinNo); - 80014de: 4b23 ldr r3, [pc, #140] ; (800156c ) - 80014e0: 695b ldr r3, [r3, #20] - 80014e2: 79ba ldrb r2, [r7, #6] - 80014e4: 2101 movs r1, #1 - 80014e6: fa01 f202 lsl.w r2, r1, r2 - 80014ea: 43d2 mvns r2, r2 - 80014ec: 4611 mov r1, r2 - 80014ee: 4a1f ldr r2, [pc, #124] ; (800156c ) - 80014f0: 400b ands r3, r1 - 80014f2: 6153 str r3, [r2, #20] - break; - 80014f4: e033 b.n 800155e - if(Copy_u8PinValue == HIGH) - 80014f6: 797b ldrb r3, [r7, #5] - 80014f8: 2b01 cmp r3, #1 - 80014fa: d10a bne.n 8001512 - SET_BIT(GPIOB -> ODR , Copy_u8PinNo); - 80014fc: 4b1c ldr r3, [pc, #112] ; (8001570 ) - 80014fe: 695b ldr r3, [r3, #20] - 8001500: 79ba ldrb r2, [r7, #6] - 8001502: 2101 movs r1, #1 - 8001504: fa01 f202 lsl.w r2, r1, r2 - 8001508: 4611 mov r1, r2 - 800150a: 4a19 ldr r2, [pc, #100] ; (8001570 ) - 800150c: 430b orrs r3, r1 - 800150e: 6153 str r3, [r2, #20] - break; - 8001510: e025 b.n 800155e - CLR_BIT(GPIOB -> ODR , Copy_u8PinNo); - 8001512: 4b17 ldr r3, [pc, #92] ; (8001570 ) - 8001514: 695b ldr r3, [r3, #20] - 8001516: 79ba ldrb r2, [r7, #6] - 8001518: 2101 movs r1, #1 - 800151a: fa01 f202 lsl.w r2, r1, r2 - 800151e: 43d2 mvns r2, r2 - 8001520: 4611 mov r1, r2 - 8001522: 4a13 ldr r2, [pc, #76] ; (8001570 ) - 8001524: 400b ands r3, r1 - 8001526: 6153 str r3, [r2, #20] - break; - 8001528: e019 b.n 800155e - if(Copy_u8PinValue == HIGH) - 800152a: 797b ldrb r3, [r7, #5] - 800152c: 2b01 cmp r3, #1 - 800152e: d10a bne.n 8001546 - SET_BIT(GPIOC -> ODR , Copy_u8PinNo); - 8001530: 4b10 ldr r3, [pc, #64] ; (8001574 ) - 8001532: 695b ldr r3, [r3, #20] - 8001534: 79ba ldrb r2, [r7, #6] - 8001536: 2101 movs r1, #1 - 8001538: fa01 f202 lsl.w r2, r1, r2 - 800153c: 4611 mov r1, r2 - 800153e: 4a0d ldr r2, [pc, #52] ; (8001574 ) - 8001540: 430b orrs r3, r1 - 8001542: 6153 str r3, [r2, #20] - break; - 8001544: e00a b.n 800155c - CLR_BIT(GPIOC -> ODR , Copy_u8PinNo); - 8001546: 4b0b ldr r3, [pc, #44] ; (8001574 ) - 8001548: 695b ldr r3, [r3, #20] - 800154a: 79ba ldrb r2, [r7, #6] - 800154c: 2101 movs r1, #1 - 800154e: fa01 f202 lsl.w r2, r1, r2 - 8001552: 43d2 mvns r2, r2 - 8001554: 4611 mov r1, r2 - 8001556: 4a07 ldr r2, [pc, #28] ; (8001574 ) - 8001558: 400b ands r3, r1 - 800155a: 6153 str r3, [r2, #20] - break; - 800155c: bf00 nop -} - 800155e: bf00 nop - 8001560: 370c adds r7, #12 - 8001562: 46bd mov sp, r7 - 8001564: f85d 7b04 ldr.w r7, [sp], #4 - 8001568: 4770 bx lr - 800156a: bf00 nop - 800156c: 40020000 .word 0x40020000 - 8001570: 40020400 .word 0x40020400 - 8001574: 40020800 .word 0x40020800 - -08001578 : - break; - - } -} - -void MGPIO_vSetAlternativeFunction(u8 Copy_u8PortID, u8 Copy_u8PinNo ,u8 Copy_u8FunctionName){ - 8001578: b480 push {r7} - 800157a: b083 sub sp, #12 - 800157c: af00 add r7, sp, #0 - 800157e: 4603 mov r3, r0 - 8001580: 71fb strb r3, [r7, #7] - 8001582: 460b mov r3, r1 - 8001584: 71bb strb r3, [r7, #6] - 8001586: 4613 mov r3, r2 - 8001588: 717b strb r3, [r7, #5] - - - switch(Copy_u8PortID){ - 800158a: 79fb ldrb r3, [r7, #7] - 800158c: 2b01 cmp r3, #1 - 800158e: d03a beq.n 8001606 - 8001590: 2b02 cmp r3, #2 - 8001592: d06e beq.n 8001672 - 8001594: 2b00 cmp r3, #0 - 8001596: d000 beq.n 800159a - - } - - - -} - 8001598: e0a1 b.n 80016de - if(Copy_u8PinNo <=7 ){ - 800159a: 79bb ldrb r3, [r7, #6] - 800159c: 2b07 cmp r3, #7 - 800159e: d817 bhi.n 80015d0 - GPIOA -> AFRL &= ~(0b1111 << (Copy_u8PinNo*4) ); - 80015a0: 4b52 ldr r3, [pc, #328] ; (80016ec ) - 80015a2: 6a1b ldr r3, [r3, #32] - 80015a4: 79ba ldrb r2, [r7, #6] - 80015a6: 0092 lsls r2, r2, #2 - 80015a8: 210f movs r1, #15 - 80015aa: fa01 f202 lsl.w r2, r1, r2 - 80015ae: 43d2 mvns r2, r2 - 80015b0: 4611 mov r1, r2 - 80015b2: 4a4e ldr r2, [pc, #312] ; (80016ec ) - 80015b4: 400b ands r3, r1 - 80015b6: 6213 str r3, [r2, #32] - GPIOA -> AFRL |= (Copy_u8FunctionName <<(Copy_u8PinNo*4)); - 80015b8: 4b4c ldr r3, [pc, #304] ; (80016ec ) - 80015ba: 6a1b ldr r3, [r3, #32] - 80015bc: 7979 ldrb r1, [r7, #5] - 80015be: 79ba ldrb r2, [r7, #6] - 80015c0: 0092 lsls r2, r2, #2 - 80015c2: fa01 f202 lsl.w r2, r1, r2 - 80015c6: 4611 mov r1, r2 - 80015c8: 4a48 ldr r2, [pc, #288] ; (80016ec ) - 80015ca: 430b orrs r3, r1 - 80015cc: 6213 str r3, [r2, #32] - break; - 80015ce: e086 b.n 80016de - Copy_u8PinNo-=8; - 80015d0: 79bb ldrb r3, [r7, #6] - 80015d2: 3b08 subs r3, #8 - 80015d4: 71bb strb r3, [r7, #6] - GPIOA -> AFRH &= ~(0b1111 << (Copy_u8PinNo*4) ); - 80015d6: 4b45 ldr r3, [pc, #276] ; (80016ec ) - 80015d8: 6a5b ldr r3, [r3, #36] ; 0x24 - 80015da: 79ba ldrb r2, [r7, #6] - 80015dc: 0092 lsls r2, r2, #2 - 80015de: 210f movs r1, #15 - 80015e0: fa01 f202 lsl.w r2, r1, r2 - 80015e4: 43d2 mvns r2, r2 - 80015e6: 4611 mov r1, r2 - 80015e8: 4a40 ldr r2, [pc, #256] ; (80016ec ) - 80015ea: 400b ands r3, r1 - 80015ec: 6253 str r3, [r2, #36] ; 0x24 - GPIOA -> AFRH |= (Copy_u8FunctionName <<(Copy_u8PinNo*4)); - 80015ee: 4b3f ldr r3, [pc, #252] ; (80016ec ) - 80015f0: 6a5b ldr r3, [r3, #36] ; 0x24 - 80015f2: 7979 ldrb r1, [r7, #5] - 80015f4: 79ba ldrb r2, [r7, #6] - 80015f6: 0092 lsls r2, r2, #2 - 80015f8: fa01 f202 lsl.w r2, r1, r2 - 80015fc: 4611 mov r1, r2 - 80015fe: 4a3b ldr r2, [pc, #236] ; (80016ec ) - 8001600: 430b orrs r3, r1 - 8001602: 6253 str r3, [r2, #36] ; 0x24 - break; - 8001604: e06b b.n 80016de - if(Copy_u8PinNo <=7 ){ - 8001606: 79bb ldrb r3, [r7, #6] - 8001608: 2b07 cmp r3, #7 - 800160a: d817 bhi.n 800163c - GPIOB -> AFRL &= ~(0b1111 << (Copy_u8PinNo*4) ); - 800160c: 4b38 ldr r3, [pc, #224] ; (80016f0 ) - 800160e: 6a1b ldr r3, [r3, #32] - 8001610: 79ba ldrb r2, [r7, #6] - 8001612: 0092 lsls r2, r2, #2 - 8001614: 210f movs r1, #15 - 8001616: fa01 f202 lsl.w r2, r1, r2 - 800161a: 43d2 mvns r2, r2 - 800161c: 4611 mov r1, r2 - 800161e: 4a34 ldr r2, [pc, #208] ; (80016f0 ) - 8001620: 400b ands r3, r1 - 8001622: 6213 str r3, [r2, #32] - GPIOB -> AFRL |= (Copy_u8FunctionName <<(Copy_u8PinNo*4)); - 8001624: 4b32 ldr r3, [pc, #200] ; (80016f0 ) - 8001626: 6a1b ldr r3, [r3, #32] - 8001628: 7979 ldrb r1, [r7, #5] - 800162a: 79ba ldrb r2, [r7, #6] - 800162c: 0092 lsls r2, r2, #2 - 800162e: fa01 f202 lsl.w r2, r1, r2 - 8001632: 4611 mov r1, r2 - 8001634: 4a2e ldr r2, [pc, #184] ; (80016f0 ) - 8001636: 430b orrs r3, r1 - 8001638: 6213 str r3, [r2, #32] - break; - 800163a: e050 b.n 80016de - Copy_u8PinNo-=8; - 800163c: 79bb ldrb r3, [r7, #6] - 800163e: 3b08 subs r3, #8 - 8001640: 71bb strb r3, [r7, #6] - GPIOB -> AFRH &= ~(0b1111 << (Copy_u8PinNo*4) ); - 8001642: 4b2b ldr r3, [pc, #172] ; (80016f0 ) - 8001644: 6a5b ldr r3, [r3, #36] ; 0x24 - 8001646: 79ba ldrb r2, [r7, #6] - 8001648: 0092 lsls r2, r2, #2 - 800164a: 210f movs r1, #15 - 800164c: fa01 f202 lsl.w r2, r1, r2 - 8001650: 43d2 mvns r2, r2 - 8001652: 4611 mov r1, r2 - 8001654: 4a26 ldr r2, [pc, #152] ; (80016f0 ) - 8001656: 400b ands r3, r1 - 8001658: 6253 str r3, [r2, #36] ; 0x24 - GPIOB -> AFRH |= (Copy_u8FunctionName <<(Copy_u8PinNo*4)); - 800165a: 4b25 ldr r3, [pc, #148] ; (80016f0 ) - 800165c: 6a5b ldr r3, [r3, #36] ; 0x24 - 800165e: 7979 ldrb r1, [r7, #5] - 8001660: 79ba ldrb r2, [r7, #6] - 8001662: 0092 lsls r2, r2, #2 - 8001664: fa01 f202 lsl.w r2, r1, r2 - 8001668: 4611 mov r1, r2 - 800166a: 4a21 ldr r2, [pc, #132] ; (80016f0 ) - 800166c: 430b orrs r3, r1 - 800166e: 6253 str r3, [r2, #36] ; 0x24 - break; - 8001670: e035 b.n 80016de - if(Copy_u8PinNo <=7 ){ - 8001672: 79bb ldrb r3, [r7, #6] - 8001674: 2b07 cmp r3, #7 - 8001676: d817 bhi.n 80016a8 - GPIOC -> AFRL &= ~(0b1111 << (Copy_u8PinNo*4) ); - 8001678: 4b1e ldr r3, [pc, #120] ; (80016f4 ) - 800167a: 6a1b ldr r3, [r3, #32] - 800167c: 79ba ldrb r2, [r7, #6] - 800167e: 0092 lsls r2, r2, #2 - 8001680: 210f movs r1, #15 - 8001682: fa01 f202 lsl.w r2, r1, r2 - 8001686: 43d2 mvns r2, r2 - 8001688: 4611 mov r1, r2 - 800168a: 4a1a ldr r2, [pc, #104] ; (80016f4 ) - 800168c: 400b ands r3, r1 - 800168e: 6213 str r3, [r2, #32] - GPIOC -> AFRL |= (Copy_u8FunctionName <<(Copy_u8PinNo*4)); - 8001690: 4b18 ldr r3, [pc, #96] ; (80016f4 ) - 8001692: 6a1b ldr r3, [r3, #32] - 8001694: 7979 ldrb r1, [r7, #5] - 8001696: 79ba ldrb r2, [r7, #6] - 8001698: 0092 lsls r2, r2, #2 - 800169a: fa01 f202 lsl.w r2, r1, r2 - 800169e: 4611 mov r1, r2 - 80016a0: 4a14 ldr r2, [pc, #80] ; (80016f4 ) - 80016a2: 430b orrs r3, r1 - 80016a4: 6213 str r3, [r2, #32] - break; - 80016a6: e019 b.n 80016dc - Copy_u8PinNo-=8; - 80016a8: 79bb ldrb r3, [r7, #6] - 80016aa: 3b08 subs r3, #8 - 80016ac: 71bb strb r3, [r7, #6] - GPIOC -> AFRH &= ~(0b1111 << (Copy_u8PinNo*4) ); - 80016ae: 4b11 ldr r3, [pc, #68] ; (80016f4 ) - 80016b0: 6a5b ldr r3, [r3, #36] ; 0x24 - 80016b2: 79ba ldrb r2, [r7, #6] - 80016b4: 0092 lsls r2, r2, #2 - 80016b6: 210f movs r1, #15 - 80016b8: fa01 f202 lsl.w r2, r1, r2 - 80016bc: 43d2 mvns r2, r2 - 80016be: 4611 mov r1, r2 - 80016c0: 4a0c ldr r2, [pc, #48] ; (80016f4 ) - 80016c2: 400b ands r3, r1 - 80016c4: 6253 str r3, [r2, #36] ; 0x24 - GPIOC -> AFRH |= (Copy_u8FunctionName <<(Copy_u8PinNo*4)); - 80016c6: 4b0b ldr r3, [pc, #44] ; (80016f4 ) - 80016c8: 6a5b ldr r3, [r3, #36] ; 0x24 - 80016ca: 7979 ldrb r1, [r7, #5] - 80016cc: 79ba ldrb r2, [r7, #6] - 80016ce: 0092 lsls r2, r2, #2 - 80016d0: fa01 f202 lsl.w r2, r1, r2 - 80016d4: 4611 mov r1, r2 - 80016d6: 4a07 ldr r2, [pc, #28] ; (80016f4 ) - 80016d8: 430b orrs r3, r1 - 80016da: 6253 str r3, [r2, #36] ; 0x24 - break; - 80016dc: bf00 nop -} - 80016de: bf00 nop - 80016e0: 370c adds r7, #12 - 80016e2: 46bd mov sp, r7 - 80016e4: f85d 7b04 ldr.w r7, [sp], #4 - 80016e8: 4770 bx lr - 80016ea: bf00 nop - 80016ec: 40020000 .word 0x40020000 - 80016f0: 40020400 .word 0x40020400 - 80016f4: 40020800 .word 0x40020800 - -080016f8 : -#include"MNVIC_int.h" - - -static MNVIC_Priority_GP Global_u8GPMode ; - -void MNVIC_vEnableInterrupt(Enum_MNVIC_NUM_t Copy_u8InterruptNo){ - 80016f8: b480 push {r7} - 80016fa: b083 sub sp, #12 - 80016fc: af00 add r7, sp, #0 - 80016fe: 4603 mov r3, r0 - 8001700: 71fb strb r3, [r7, #7] - - /* note : writing 0 to any bit has no effect so we can u atomic instruction like BSSR */ - SET_BIT_FAST( NVIC->ISER[ (Copy_u8InterruptNo/32) ] , (Copy_u8InterruptNo % 32) ); - 8001702: 79fb ldrb r3, [r7, #7] - 8001704: f003 031f and.w r3, r3, #31 - 8001708: 2201 movs r2, #1 - 800170a: fa02 f103 lsl.w r1, r2, r3 - 800170e: 4a06 ldr r2, [pc, #24] ; (8001728 ) - 8001710: 79fb ldrb r3, [r7, #7] - 8001712: 095b lsrs r3, r3, #5 - 8001714: b2db uxtb r3, r3 - 8001716: f842 1023 str.w r1, [r2, r3, lsl #2] -} - 800171a: bf00 nop - 800171c: 370c adds r7, #12 - 800171e: 46bd mov sp, r7 - 8001720: f85d 7b04 ldr.w r7, [sp], #4 - 8001724: 4770 bx lr - 8001726: bf00 nop - 8001728: e000e100 .word 0xe000e100 - -0800172c : -#include"MRCC_Int.h" - -/***************************************************************************/ -/* Functions Implementations */ -/***************************************************************************/ -void MRCC_vInit(void){ - 800172c: b480 push {r7} - 800172e: af00 add r7, sp, #0 - CLR_SET(RCC->CFGR,SW0); - //Wait until HSE is used as system clock source - while( GET_2BITS(RCC->CFGR,SWS0) != SWS_HSE ); -#elif RCC_SYS_CLK == RCC_HSI - //Enable Selected Clock - SET_BIT(RCC->CR,HSION); - 8001730: 4b10 ldr r3, [pc, #64] ; (8001774 ) - 8001732: 681b ldr r3, [r3, #0] - 8001734: 4a0f ldr r2, [pc, #60] ; (8001774 ) - 8001736: f043 0301 orr.w r3, r3, #1 - 800173a: 6013 str r3, [r2, #0] - // Wait Until HSI is ready "Clock is working properly" - while( !GET_BIT(RCC->CR,HSIRDY) ); - 800173c: bf00 nop - 800173e: 4b0d ldr r3, [pc, #52] ; (8001774 ) - 8001740: 681b ldr r3, [r3, #0] - 8001742: 085b lsrs r3, r3, #1 - 8001744: f003 0301 and.w r3, r3, #1 - 8001748: 2b00 cmp r3, #0 - 800174a: d0f8 beq.n 800173e - //Select System Clock - CLR_2BITS(RCC->CFGR,SW0); - 800174c: 4b09 ldr r3, [pc, #36] ; (8001774 ) - 800174e: 689b ldr r3, [r3, #8] - 8001750: 4a08 ldr r2, [pc, #32] ; (8001774 ) - 8001752: f023 0303 bic.w r3, r3, #3 - 8001756: 6093 str r3, [r2, #8] - //Wait until HSI is used as system clock source - while( GET_2BITS(RCC->CFGR,SWS0) != SWS_HSI ); - 8001758: bf00 nop - 800175a: 4b06 ldr r3, [pc, #24] ; (8001774 ) - 800175c: 689b ldr r3, [r3, #8] - 800175e: 089b lsrs r3, r3, #2 - 8001760: f003 0303 and.w r3, r3, #3 - 8001764: 2b00 cmp r3, #0 - 8001766: d1f8 bne.n 800175a - SET_BIT(RCC->CR,PLLON); - // Wait Until PLL is ready "Clock is working properly" - while( !GET_BIT(RCC->CR,PLLRDY) ); -#endif - -} - 8001768: bf00 nop - 800176a: 46bd mov sp, r7 - 800176c: f85d 7b04 ldr.w r7, [sp], #4 - 8001770: 4770 bx lr - 8001772: bf00 nop - 8001774: 40023800 .word 0x40023800 - -08001778 : - -void MRCC_vEnableClock(PeripheralEnable_t Copy_u8PeripheralNo){ - 8001778: b480 push {r7} - 800177a: b083 sub sp, #12 - 800177c: af00 add r7, sp, #0 - 800177e: 4603 mov r3, r0 - 8001780: 71fb strb r3, [r7, #7] - if(Copy_u8PeripheralNo >= 96){ - 8001782: 79fb ldrb r3, [r7, #7] - 8001784: 2b5f cmp r3, #95 ; 0x5f - 8001786: d90d bls.n 80017a4 - Copy_u8PeripheralNo -= 96; - 8001788: 79fb ldrb r3, [r7, #7] - 800178a: 3b60 subs r3, #96 ; 0x60 - 800178c: 71fb strb r3, [r7, #7] - SET_BIT(RCC->APB2ENR,Copy_u8PeripheralNo); - 800178e: 4b1e ldr r3, [pc, #120] ; (8001808 ) - 8001790: 6c5b ldr r3, [r3, #68] ; 0x44 - 8001792: 79fa ldrb r2, [r7, #7] - 8001794: 2101 movs r1, #1 - 8001796: fa01 f202 lsl.w r2, r1, r2 - 800179a: 4611 mov r1, r2 - 800179c: 4a1a ldr r2, [pc, #104] ; (8001808 ) - 800179e: 430b orrs r3, r1 - 80017a0: 6453 str r3, [r2, #68] ; 0x44 - Copy_u8PeripheralNo -= 32; - SET_BIT(RCC->AHB2ENR,Copy_u8PeripheralNo); - } - else{ - SET_BIT(RCC->AHB1ENR,Copy_u8PeripheralNo);} -} - 80017a2: e02b b.n 80017fc - else if(Copy_u8PeripheralNo >= 64){ - 80017a4: 79fb ldrb r3, [r7, #7] - 80017a6: 2b3f cmp r3, #63 ; 0x3f - 80017a8: d90d bls.n 80017c6 - Copy_u8PeripheralNo -= 64; - 80017aa: 79fb ldrb r3, [r7, #7] - 80017ac: 3b40 subs r3, #64 ; 0x40 - 80017ae: 71fb strb r3, [r7, #7] - SET_BIT(RCC->APB1ENR,Copy_u8PeripheralNo); - 80017b0: 4b15 ldr r3, [pc, #84] ; (8001808 ) - 80017b2: 6c1b ldr r3, [r3, #64] ; 0x40 - 80017b4: 79fa ldrb r2, [r7, #7] - 80017b6: 2101 movs r1, #1 - 80017b8: fa01 f202 lsl.w r2, r1, r2 - 80017bc: 4611 mov r1, r2 - 80017be: 4a12 ldr r2, [pc, #72] ; (8001808 ) - 80017c0: 430b orrs r3, r1 - 80017c2: 6413 str r3, [r2, #64] ; 0x40 -} - 80017c4: e01a b.n 80017fc - else if(Copy_u8PeripheralNo >= 32){ - 80017c6: 79fb ldrb r3, [r7, #7] - 80017c8: 2b1f cmp r3, #31 - 80017ca: d90d bls.n 80017e8 - Copy_u8PeripheralNo -= 32; - 80017cc: 79fb ldrb r3, [r7, #7] - 80017ce: 3b20 subs r3, #32 - 80017d0: 71fb strb r3, [r7, #7] - SET_BIT(RCC->AHB2ENR,Copy_u8PeripheralNo); - 80017d2: 4b0d ldr r3, [pc, #52] ; (8001808 ) - 80017d4: 6b5b ldr r3, [r3, #52] ; 0x34 - 80017d6: 79fa ldrb r2, [r7, #7] - 80017d8: 2101 movs r1, #1 - 80017da: fa01 f202 lsl.w r2, r1, r2 - 80017de: 4611 mov r1, r2 - 80017e0: 4a09 ldr r2, [pc, #36] ; (8001808 ) - 80017e2: 430b orrs r3, r1 - 80017e4: 6353 str r3, [r2, #52] ; 0x34 -} - 80017e6: e009 b.n 80017fc - SET_BIT(RCC->AHB1ENR,Copy_u8PeripheralNo);} - 80017e8: 4b07 ldr r3, [pc, #28] ; (8001808 ) - 80017ea: 6b1b ldr r3, [r3, #48] ; 0x30 - 80017ec: 79fa ldrb r2, [r7, #7] - 80017ee: 2101 movs r1, #1 - 80017f0: fa01 f202 lsl.w r2, r1, r2 - 80017f4: 4611 mov r1, r2 - 80017f6: 4a04 ldr r2, [pc, #16] ; (8001808 ) - 80017f8: 430b orrs r3, r1 - 80017fa: 6313 str r3, [r2, #48] ; 0x30 -} - 80017fc: bf00 nop - 80017fe: 370c adds r7, #12 - 8001800: 46bd mov sp, r7 - 8001802: f85d 7b04 ldr.w r7, [sp], #4 - 8001806: 4770 bx lr - 8001808: 40023800 .word 0x40023800 - -0800180c : - u8 Local_u8ReceivedData = SPIx->DR; - return Local_u8ReceivedData; - -} - -void SPI1_IRQHandler(){ - 800180c: b580 push {r7, lr} - 800180e: af00 add r7, sp, #0 - - if( GET_BIT(SPI1->SR,SR_TXE) && SPIx_pvTxcallback[0]!=STD_NULL) - 8001810: 4b0e ldr r3, [pc, #56] ; (800184c ) - 8001812: 689b ldr r3, [r3, #8] - 8001814: 085b lsrs r3, r3, #1 - 8001816: f003 0301 and.w r3, r3, #1 - 800181a: 2b00 cmp r3, #0 - 800181c: d006 beq.n 800182c - 800181e: 4b0c ldr r3, [pc, #48] ; (8001850 ) - 8001820: 681b ldr r3, [r3, #0] - 8001822: 2b00 cmp r3, #0 - 8001824: d002 beq.n 800182c - SPIx_pvTxcallback[0](); - 8001826: 4b0a ldr r3, [pc, #40] ; (8001850 ) - 8001828: 681b ldr r3, [r3, #0] - 800182a: 4798 blx r3 - - - if( GET_BIT(SPI1->SR,SR_RXNE) && SPIx_pvRXcallback[0]!=STD_NULL) - 800182c: 4b07 ldr r3, [pc, #28] ; (800184c ) - 800182e: 689b ldr r3, [r3, #8] - 8001830: f003 0301 and.w r3, r3, #1 - 8001834: 2b00 cmp r3, #0 - 8001836: d006 beq.n 8001846 - 8001838: 4b06 ldr r3, [pc, #24] ; (8001854 ) - 800183a: 681b ldr r3, [r3, #0] - 800183c: 2b00 cmp r3, #0 - 800183e: d002 beq.n 8001846 - SPIx_pvRXcallback[0](); - 8001840: 4b04 ldr r3, [pc, #16] ; (8001854 ) - 8001842: 681b ldr r3, [r3, #0] - 8001844: 4798 blx r3 -} - 8001846: bf00 nop - 8001848: bd80 pop {r7, pc} - 800184a: bf00 nop - 800184c: 40013000 .word 0x40013000 - 8001850: 20000064 .word 0x20000064 - 8001854: 20000074 .word 0x20000074 - -08001858 : - -void SPI2_IRQHandler(){ - 8001858: b580 push {r7, lr} - 800185a: af00 add r7, sp, #0 - - if( GET_BIT(SPI1->SR,SR_TXE) && SPIx_pvTxcallback[1]!=STD_NULL) - 800185c: 4b0e ldr r3, [pc, #56] ; (8001898 ) - 800185e: 689b ldr r3, [r3, #8] - 8001860: 085b lsrs r3, r3, #1 - 8001862: f003 0301 and.w r3, r3, #1 - 8001866: 2b00 cmp r3, #0 - 8001868: d006 beq.n 8001878 - 800186a: 4b0c ldr r3, [pc, #48] ; (800189c ) - 800186c: 685b ldr r3, [r3, #4] - 800186e: 2b00 cmp r3, #0 - 8001870: d002 beq.n 8001878 - SPIx_pvTxcallback[1](); - 8001872: 4b0a ldr r3, [pc, #40] ; (800189c ) - 8001874: 685b ldr r3, [r3, #4] - 8001876: 4798 blx r3 - - - if( GET_BIT(SPI1->SR,SR_RXNE) && SPIx_pvRXcallback[1]!=STD_NULL) - 8001878: 4b07 ldr r3, [pc, #28] ; (8001898 ) - 800187a: 689b ldr r3, [r3, #8] - 800187c: f003 0301 and.w r3, r3, #1 - 8001880: 2b00 cmp r3, #0 - 8001882: d006 beq.n 8001892 - 8001884: 4b06 ldr r3, [pc, #24] ; (80018a0 ) - 8001886: 685b ldr r3, [r3, #4] - 8001888: 2b00 cmp r3, #0 - 800188a: d002 beq.n 8001892 - SPIx_pvRXcallback[1](); - 800188c: 4b04 ldr r3, [pc, #16] ; (80018a0 ) - 800188e: 685b ldr r3, [r3, #4] - 8001890: 4798 blx r3 - -} - 8001892: bf00 nop - 8001894: bd80 pop {r7, pc} - 8001896: bf00 nop - 8001898: 40013000 .word 0x40013000 - 800189c: 20000064 .word 0x20000064 - 80018a0: 20000074 .word 0x20000074 - -080018a4 : - -void SPI3_IRQHandler(){ - 80018a4: b580 push {r7, lr} - 80018a6: af00 add r7, sp, #0 - - if( GET_BIT(SPI1->SR,SR_TXE) && SPIx_pvTxcallback[2]!=STD_NULL) - 80018a8: 4b0e ldr r3, [pc, #56] ; (80018e4 ) - 80018aa: 689b ldr r3, [r3, #8] - 80018ac: 085b lsrs r3, r3, #1 - 80018ae: f003 0301 and.w r3, r3, #1 - 80018b2: 2b00 cmp r3, #0 - 80018b4: d006 beq.n 80018c4 - 80018b6: 4b0c ldr r3, [pc, #48] ; (80018e8 ) - 80018b8: 689b ldr r3, [r3, #8] - 80018ba: 2b00 cmp r3, #0 - 80018bc: d002 beq.n 80018c4 - SPIx_pvTxcallback[2](); - 80018be: 4b0a ldr r3, [pc, #40] ; (80018e8 ) - 80018c0: 689b ldr r3, [r3, #8] - 80018c2: 4798 blx r3 - - - if( GET_BIT(SPI1->SR,SR_RXNE) && SPIx_pvRXcallback[2]!=STD_NULL) - 80018c4: 4b07 ldr r3, [pc, #28] ; (80018e4 ) - 80018c6: 689b ldr r3, [r3, #8] - 80018c8: f003 0301 and.w r3, r3, #1 - 80018cc: 2b00 cmp r3, #0 - 80018ce: d006 beq.n 80018de - 80018d0: 4b06 ldr r3, [pc, #24] ; (80018ec ) - 80018d2: 689b ldr r3, [r3, #8] - 80018d4: 2b00 cmp r3, #0 - 80018d6: d002 beq.n 80018de - SPIx_pvRXcallback[2](); - 80018d8: 4b04 ldr r3, [pc, #16] ; (80018ec ) - 80018da: 689b ldr r3, [r3, #8] - 80018dc: 4798 blx r3 - -} - 80018de: bf00 nop - 80018e0: bd80 pop {r7, pc} - 80018e2: bf00 nop - 80018e4: 40013000 .word 0x40013000 - 80018e8: 20000064 .word 0x20000064 - 80018ec: 20000074 .word 0x20000074 - -080018f0 : - -void SPI4_IRQHandler(){ - 80018f0: b580 push {r7, lr} - 80018f2: af00 add r7, sp, #0 - - if( GET_BIT(SPI1->SR,SR_TXE) && SPIx_pvTxcallback[3]!=STD_NULL) - 80018f4: 4b0e ldr r3, [pc, #56] ; (8001930 ) - 80018f6: 689b ldr r3, [r3, #8] - 80018f8: 085b lsrs r3, r3, #1 - 80018fa: f003 0301 and.w r3, r3, #1 - 80018fe: 2b00 cmp r3, #0 - 8001900: d006 beq.n 8001910 - 8001902: 4b0c ldr r3, [pc, #48] ; (8001934 ) - 8001904: 68db ldr r3, [r3, #12] - 8001906: 2b00 cmp r3, #0 - 8001908: d002 beq.n 8001910 - SPIx_pvTxcallback[3](); - 800190a: 4b0a ldr r3, [pc, #40] ; (8001934 ) - 800190c: 68db ldr r3, [r3, #12] - 800190e: 4798 blx r3 - - - if( GET_BIT(SPI1->SR,SR_RXNE) && SPIx_pvRXcallback[3]!=STD_NULL) - 8001910: 4b07 ldr r3, [pc, #28] ; (8001930 ) - 8001912: 689b ldr r3, [r3, #8] - 8001914: f003 0301 and.w r3, r3, #1 - 8001918: 2b00 cmp r3, #0 - 800191a: d006 beq.n 800192a - 800191c: 4b06 ldr r3, [pc, #24] ; (8001938 ) - 800191e: 68db ldr r3, [r3, #12] - 8001920: 2b00 cmp r3, #0 - 8001922: d002 beq.n 800192a - SPIx_pvRXcallback[3](); - 8001924: 4b04 ldr r3, [pc, #16] ; (8001938 ) - 8001926: 68db ldr r3, [r3, #12] - 8001928: 4798 blx r3 - -} - 800192a: bf00 nop - 800192c: bd80 pop {r7, pc} - 800192e: bf00 nop - 8001930: 40013000 .word 0x40013000 - 8001934: 20000064 .word 0x20000064 - 8001938: 20000074 .word 0x20000074 - -0800193c : - -void MSYSTICK_vCallBack(void(*ptr) (void)){ - GLOBAL_SYSTICK_CallBack = ptr; -} - -void SysTick_Handler(void){ - 800193c: b580 push {r7, lr} - 800193e: af00 add r7, sp, #0 - if(GLOBAL_SYSTICK_CallBack != STD_NULL){ - 8001940: 4b04 ldr r3, [pc, #16] ; (8001954 ) - 8001942: 681b ldr r3, [r3, #0] - 8001944: 2b00 cmp r3, #0 - 8001946: d002 beq.n 800194e - GLOBAL_SYSTICK_CallBack(); - 8001948: 4b02 ldr r3, [pc, #8] ; (8001954 ) - 800194a: 681b ldr r3, [r3, #0] - 800194c: 4798 blx r3 - } -} - 800194e: bf00 nop - 8001950: bd80 pop {r7, pc} - 8001952: bf00 nop - 8001954: 20000084 .word 0x20000084 - -08001958 : -static void (*GLOBAL_Ptr[8])(void)={STD_NULL}; - -void TIMER_ICU(Enum_TIMER_NUM Copy_u8TimerNum,Enum_TIMER_CHs Copy_u8ChannelNum); -u32 Time[29]={0}; - -TIM2_5_MemMap_t* GET_TIMER(u32 Copy_u8TimerNum){ - 8001958: b4b0 push {r4, r5, r7} - 800195a: b08d sub sp, #52 ; 0x34 - 800195c: af00 add r7, sp, #0 - 800195e: 6078 str r0, [r7, #4] - u32 Timer_Offset[8] = TIMERS_OFFSET; - 8001960: 4b0d ldr r3, [pc, #52] ; (8001998 ) - 8001962: f107 040c add.w r4, r7, #12 - 8001966: 461d mov r5, r3 - 8001968: cd0f ldmia r5!, {r0, r1, r2, r3} - 800196a: c40f stmia r4!, {r0, r1, r2, r3} - 800196c: e895 000f ldmia.w r5, {r0, r1, r2, r3} - 8001970: e884 000f stmia.w r4, {r0, r1, r2, r3} - TIM2_5_MemMap_t* TIMx = (u32)TIM2 + Timer_Offset[Copy_u8TimerNum-1]; - 8001974: 687b ldr r3, [r7, #4] - 8001976: 3b01 subs r3, #1 - 8001978: 009b lsls r3, r3, #2 - 800197a: f107 0230 add.w r2, r7, #48 ; 0x30 - 800197e: 4413 add r3, r2 - 8001980: f853 3c24 ldr.w r3, [r3, #-36] - 8001984: f103 4380 add.w r3, r3, #1073741824 ; 0x40000000 - 8001988: 62fb str r3, [r7, #44] ; 0x2c - return TIMx; - 800198a: 6afb ldr r3, [r7, #44] ; 0x2c -} - 800198c: 4618 mov r0, r3 - 800198e: 3734 adds r7, #52 ; 0x34 - 8001990: 46bd mov sp, r7 - 8001992: bcb0 pop {r4, r5, r7} - 8001994: 4770 bx lr - 8001996: bf00 nop - 8001998: 080022a0 .word 0x080022a0 - -0800199c : - // Set the Counter Enable bit to start the timer - SET_BIT(TIMx->CR1, CEN); -} - - -void MTIMER_vPWM(Enum_TIMER_NUM Copy_u8TimerNum,Enum_TIMER_CHs Copy_u8Channel,u16 Copy_u16TotalTime_uSec,u16 Copy_u16PositiveDutyCycle_uSec){ - 800199c: b590 push {r4, r7, lr} - 800199e: b085 sub sp, #20 - 80019a0: af00 add r7, sp, #0 - 80019a2: 4604 mov r4, r0 - 80019a4: 4608 mov r0, r1 - 80019a6: 4611 mov r1, r2 - 80019a8: 461a mov r2, r3 - 80019aa: 4623 mov r3, r4 - 80019ac: 71fb strb r3, [r7, #7] - 80019ae: 4603 mov r3, r0 - 80019b0: 71bb strb r3, [r7, #6] - 80019b2: 460b mov r3, r1 - 80019b4: 80bb strh r3, [r7, #4] - 80019b6: 4613 mov r3, r2 - 80019b8: 807b strh r3, [r7, #2] - TIM2_5_MemMap_t* TIMx = GET_TIMER(Copy_u8TimerNum); - 80019ba: 79fb ldrb r3, [r7, #7] - 80019bc: 4618 mov r0, r3 - 80019be: f7ff ffcb bl 8001958 - 80019c2: 60f8 str r0, [r7, #12] - SET_BIT( TIMx->CR1 , ARPE ); // Enable auto-reload preload - 80019c4: 68fb ldr r3, [r7, #12] - 80019c6: 681b ldr r3, [r3, #0] - 80019c8: f043 0280 orr.w r2, r3, #128 ; 0x80 - 80019cc: 68fb ldr r3, [r7, #12] - 80019ce: 601a str r2, [r3, #0] - CLR_BIT( TIMx->CR1 , DIR); // UP COUNT - 80019d0: 68fb ldr r3, [r7, #12] - 80019d2: 681b ldr r3, [r3, #0] - 80019d4: f023 0210 bic.w r2, r3, #16 - 80019d8: 68fb ldr r3, [r7, #12] - 80019da: 601a str r2, [r3, #0] - CLR_BIT( TIMx->CR1 , CMS0); // 00: Edge-aligned mode. The counter counts up - 80019dc: 68fb ldr r3, [r7, #12] - 80019de: 681b ldr r3, [r3, #0] - 80019e0: f023 0220 bic.w r2, r3, #32 - 80019e4: 68fb ldr r3, [r7, #12] - 80019e6: 601a str r2, [r3, #0] - CLR_BIT( TIMx->CR1 , CMS1); // or down depending on the direction bit(DIR) - 80019e8: 68fb ldr r3, [r7, #12] - 80019ea: 681b ldr r3, [r3, #0] - 80019ec: f023 0240 bic.w r2, r3, #64 ; 0x40 - 80019f0: 68fb ldr r3, [r7, #12] - 80019f2: 601a str r2, [r3, #0] - - //01: CCx channel is configured as output "PWM" - CLR_BIT( TIMx->CCMR[Copy_u8Channel / 3] , ( CCxS0+(((Copy_u8Channel-1)%2)*8)) ); - 80019f4: 79bb ldrb r3, [r7, #6] - 80019f6: 4a7e ldr r2, [pc, #504] ; (8001bf0 ) - 80019f8: fba2 2303 umull r2, r3, r2, r3 - 80019fc: 085b lsrs r3, r3, #1 - 80019fe: b2d8 uxtb r0, r3 - 8001a00: 4602 mov r2, r0 - 8001a02: 68fb ldr r3, [r7, #12] - 8001a04: 3206 adds r2, #6 - 8001a06: f853 2022 ldr.w r2, [r3, r2, lsl #2] - 8001a0a: 79bb ldrb r3, [r7, #6] - 8001a0c: 3b01 subs r3, #1 - 8001a0e: 2b00 cmp r3, #0 - 8001a10: f003 0301 and.w r3, r3, #1 - 8001a14: bfb8 it lt - 8001a16: 425b neglt r3, r3 - 8001a18: 00db lsls r3, r3, #3 - 8001a1a: 2101 movs r1, #1 - 8001a1c: fa01 f303 lsl.w r3, r1, r3 - 8001a20: 43db mvns r3, r3 - 8001a22: ea02 0103 and.w r1, r2, r3 - 8001a26: 68fb ldr r3, [r7, #12] - 8001a28: 1d82 adds r2, r0, #6 - 8001a2a: f843 1022 str.w r1, [r3, r2, lsl #2] - CLR_BIT( TIMx->CCMR[Copy_u8Channel / 3] , ( CCxS1+(((Copy_u8Channel-1)%2)*8)) ); - 8001a2e: 79bb ldrb r3, [r7, #6] - 8001a30: 4a6f ldr r2, [pc, #444] ; (8001bf0 ) - 8001a32: fba2 2303 umull r2, r3, r2, r3 - 8001a36: 085b lsrs r3, r3, #1 - 8001a38: b2d8 uxtb r0, r3 - 8001a3a: 4602 mov r2, r0 - 8001a3c: 68fb ldr r3, [r7, #12] - 8001a3e: 3206 adds r2, #6 - 8001a40: f853 2022 ldr.w r2, [r3, r2, lsl #2] - 8001a44: 79bb ldrb r3, [r7, #6] - 8001a46: 3b01 subs r3, #1 - 8001a48: 2b00 cmp r3, #0 - 8001a4a: f003 0301 and.w r3, r3, #1 - 8001a4e: bfb8 it lt - 8001a50: 425b neglt r3, r3 - 8001a52: 00db lsls r3, r3, #3 - 8001a54: 3301 adds r3, #1 - 8001a56: 2101 movs r1, #1 - 8001a58: fa01 f303 lsl.w r3, r1, r3 - 8001a5c: 43db mvns r3, r3 - 8001a5e: ea02 0103 and.w r1, r2, r3 - 8001a62: 68fb ldr r3, [r7, #12] - 8001a64: 1d82 adds r2, r0, #6 - 8001a66: f843 1022 str.w r1, [r3, r2, lsl #2] - - // set prescaler - /* TIME Calculation of Total Period: - * Total_Period = (PSC / (SYS_CLOCK * 10^6)) * ARR - */ - TIMx->PSC = SYS_CLOCK*10-1; - 8001a6a: 68fb ldr r3, [r7, #12] - 8001a6c: 229f movs r2, #159 ; 0x9f - 8001a6e: 629a str r2, [r3, #40] ; 0x28 - TIMx->ARR = ( Copy_u16TotalTime_uSec*100 )/1000; // Timer auto-reload to max <> - 8001a70: 88bb ldrh r3, [r7, #4] - 8001a72: 2264 movs r2, #100 ; 0x64 - 8001a74: fb02 f303 mul.w r3, r2, r3 - 8001a78: 4a5e ldr r2, [pc, #376] ; (8001bf4 ) - 8001a7a: fb82 1203 smull r1, r2, r2, r3 - 8001a7e: 1192 asrs r2, r2, #6 - 8001a80: 17db asrs r3, r3, #31 - 8001a82: 1ad3 subs r3, r2, r3 - 8001a84: 461a mov r2, r3 - 8001a86: 68fb ldr r3, [r7, #12] - 8001a88: 62da str r2, [r3, #44] ; 0x2c - TIMx->CCR[Copy_u8Channel-1] = ( Copy_u16PositiveDutyCycle_uSec*100 )/1000; // << DUTY CYCLE >> - 8001a8a: 887b ldrh r3, [r7, #2] - 8001a8c: 2264 movs r2, #100 ; 0x64 - 8001a8e: fb02 f303 mul.w r3, r2, r3 - 8001a92: 4a58 ldr r2, [pc, #352] ; (8001bf4 ) - 8001a94: fb82 1203 smull r1, r2, r2, r3 - 8001a98: 1192 asrs r2, r2, #6 - 8001a9a: 17db asrs r3, r3, #31 - 8001a9c: 1ad2 subs r2, r2, r3 - 8001a9e: 79bb ldrb r3, [r7, #6] - 8001aa0: 3b01 subs r3, #1 - 8001aa2: 4611 mov r1, r2 - 8001aa4: 68fa ldr r2, [r7, #12] - 8001aa6: 330c adds r3, #12 - 8001aa8: 009b lsls r3, r3, #2 - 8001aaa: 4413 add r3, r2 - 8001aac: 6059 str r1, [r3, #4] - SET_BIT( TIMx->CCMR[Copy_u8Channel / 3] , ( OCxPE+(((Copy_u8Channel-1)%2)*8)) ); //1: Preload register on TIMx_CCRx enabled - 8001aae: 79bb ldrb r3, [r7, #6] - 8001ab0: 4a4f ldr r2, [pc, #316] ; (8001bf0 ) - 8001ab2: fba2 2303 umull r2, r3, r2, r3 - 8001ab6: 085b lsrs r3, r3, #1 - 8001ab8: b2d8 uxtb r0, r3 - 8001aba: 4602 mov r2, r0 - 8001abc: 68fb ldr r3, [r7, #12] - 8001abe: 3206 adds r2, #6 - 8001ac0: f853 2022 ldr.w r2, [r3, r2, lsl #2] - 8001ac4: 79bb ldrb r3, [r7, #6] - 8001ac6: 3b01 subs r3, #1 - 8001ac8: 2b00 cmp r3, #0 - 8001aca: f003 0301 and.w r3, r3, #1 - 8001ace: bfb8 it lt - 8001ad0: 425b neglt r3, r3 - 8001ad2: 00db lsls r3, r3, #3 - 8001ad4: 3303 adds r3, #3 - 8001ad6: 2101 movs r1, #1 - 8001ad8: fa01 f303 lsl.w r3, r1, r3 - 8001adc: ea42 0103 orr.w r1, r2, r3 - 8001ae0: 68fb ldr r3, [r7, #12] - 8001ae2: 1d82 adds r2, r0, #6 - 8001ae4: f843 1022 str.w r1, [r3, r2, lsl #2] - - CLR_BIT( TIMx->CCMR[Copy_u8Channel / 3] , ( OCxM0+(((Copy_u8Channel-1)%2)*8)) );// PWM Mode1 (high then low) - 8001ae8: 79bb ldrb r3, [r7, #6] - 8001aea: 4a41 ldr r2, [pc, #260] ; (8001bf0 ) - 8001aec: fba2 2303 umull r2, r3, r2, r3 - 8001af0: 085b lsrs r3, r3, #1 - 8001af2: b2d8 uxtb r0, r3 - 8001af4: 4602 mov r2, r0 - 8001af6: 68fb ldr r3, [r7, #12] - 8001af8: 3206 adds r2, #6 - 8001afa: f853 2022 ldr.w r2, [r3, r2, lsl #2] - 8001afe: 79bb ldrb r3, [r7, #6] - 8001b00: 3b01 subs r3, #1 - 8001b02: 2b00 cmp r3, #0 - 8001b04: f003 0301 and.w r3, r3, #1 - 8001b08: bfb8 it lt - 8001b0a: 425b neglt r3, r3 - 8001b0c: 00db lsls r3, r3, #3 - 8001b0e: 3304 adds r3, #4 - 8001b10: 2101 movs r1, #1 - 8001b12: fa01 f303 lsl.w r3, r1, r3 - 8001b16: 43db mvns r3, r3 - 8001b18: ea02 0103 and.w r1, r2, r3 - 8001b1c: 68fb ldr r3, [r7, #12] - 8001b1e: 1d82 adds r2, r0, #6 - 8001b20: f843 1022 str.w r1, [r3, r2, lsl #2] - SET_BIT( TIMx->CCMR[Copy_u8Channel / 3] , ( OCxM1+(((Copy_u8Channel-1)%2)*8)) ); - 8001b24: 79bb ldrb r3, [r7, #6] - 8001b26: 4a32 ldr r2, [pc, #200] ; (8001bf0 ) - 8001b28: fba2 2303 umull r2, r3, r2, r3 - 8001b2c: 085b lsrs r3, r3, #1 - 8001b2e: b2d8 uxtb r0, r3 - 8001b30: 4602 mov r2, r0 - 8001b32: 68fb ldr r3, [r7, #12] - 8001b34: 3206 adds r2, #6 - 8001b36: f853 2022 ldr.w r2, [r3, r2, lsl #2] - 8001b3a: 79bb ldrb r3, [r7, #6] - 8001b3c: 3b01 subs r3, #1 - 8001b3e: 2b00 cmp r3, #0 - 8001b40: f003 0301 and.w r3, r3, #1 - 8001b44: bfb8 it lt - 8001b46: 425b neglt r3, r3 - 8001b48: 00db lsls r3, r3, #3 - 8001b4a: 3305 adds r3, #5 - 8001b4c: 2101 movs r1, #1 - 8001b4e: fa01 f303 lsl.w r3, r1, r3 - 8001b52: ea42 0103 orr.w r1, r2, r3 - 8001b56: 68fb ldr r3, [r7, #12] - 8001b58: 1d82 adds r2, r0, #6 - 8001b5a: f843 1022 str.w r1, [r3, r2, lsl #2] - SET_BIT( TIMx->CCMR[Copy_u8Channel / 3] , ( OCxM2+(((Copy_u8Channel-1)%2)*8)) ); - 8001b5e: 79bb ldrb r3, [r7, #6] - 8001b60: 4a23 ldr r2, [pc, #140] ; (8001bf0 ) - 8001b62: fba2 2303 umull r2, r3, r2, r3 - 8001b66: 085b lsrs r3, r3, #1 - 8001b68: b2d8 uxtb r0, r3 - 8001b6a: 4602 mov r2, r0 - 8001b6c: 68fb ldr r3, [r7, #12] - 8001b6e: 3206 adds r2, #6 - 8001b70: f853 2022 ldr.w r2, [r3, r2, lsl #2] - 8001b74: 79bb ldrb r3, [r7, #6] - 8001b76: 3b01 subs r3, #1 - 8001b78: 2b00 cmp r3, #0 - 8001b7a: f003 0301 and.w r3, r3, #1 - 8001b7e: bfb8 it lt - 8001b80: 425b neglt r3, r3 - 8001b82: 00db lsls r3, r3, #3 - 8001b84: 3306 adds r3, #6 - 8001b86: 2101 movs r1, #1 - 8001b88: fa01 f303 lsl.w r3, r1, r3 - 8001b8c: ea42 0103 orr.w r1, r2, r3 - 8001b90: 68fb ldr r3, [r7, #12] - 8001b92: 1d82 adds r2, r0, #6 - 8001b94: f843 1022 str.w r1, [r3, r2, lsl #2] - - CLR_BIT( TIMx->CCER ,( CCxP + (Copy_u8Channel-1)*4) ); //Polarity 0: active high - 8001b98: 68fb ldr r3, [r7, #12] - 8001b9a: 6a1b ldr r3, [r3, #32] - 8001b9c: 79ba ldrb r2, [r7, #6] - 8001b9e: 3a01 subs r2, #1 - 8001ba0: 0092 lsls r2, r2, #2 - 8001ba2: 3201 adds r2, #1 - 8001ba4: 2101 movs r1, #1 - 8001ba6: fa01 f202 lsl.w r2, r1, r2 - 8001baa: 43d2 mvns r2, r2 - 8001bac: 401a ands r2, r3 - 8001bae: 68fb ldr r3, [r7, #12] - 8001bb0: 621a str r2, [r3, #32] - //SET_BIT(TIMx->EGR,0); //UG: Update generation - 1: Reinitialize counter&update registers - SET_BIT( TIMx->CCER , ( CCxE+(Copy_u8Channel-1)*4) ); //Bit 0 CC1E: Capture/Compare 1 output enable - 8001bb2: 68fb ldr r3, [r7, #12] - 8001bb4: 6a1b ldr r3, [r3, #32] - 8001bb6: 79ba ldrb r2, [r7, #6] - 8001bb8: 3a01 subs r2, #1 - 8001bba: 0092 lsls r2, r2, #2 - 8001bbc: 2101 movs r1, #1 - 8001bbe: fa01 f202 lsl.w r2, r1, r2 - 8001bc2: 431a orrs r2, r3 - 8001bc4: 68fb ldr r3, [r7, #12] - 8001bc6: 621a str r2, [r3, #32] - SET_BIT( TIMx->RESERVED2 , 15 );// MOE 1: OC and OCN outputs are enabled - 8001bc8: 68fb ldr r3, [r7, #12] - 8001bca: 6c5b ldr r3, [r3, #68] ; 0x44 - 8001bcc: f443 4200 orr.w r2, r3, #32768 ; 0x8000 - 8001bd0: 68fb ldr r3, [r7, #12] - 8001bd2: 645a str r2, [r3, #68] ; 0x44 - - SET_BIT( TIMx->CR1 , CEN );// Enable timer1 - 8001bd4: 68fb ldr r3, [r7, #12] - 8001bd6: 681b ldr r3, [r3, #0] - 8001bd8: f043 0201 orr.w r2, r3, #1 - 8001bdc: 68fb ldr r3, [r7, #12] - 8001bde: 601a str r2, [r3, #0] - TIMx->CNT = 0xFFFFFFFF; - 8001be0: 68fb ldr r3, [r7, #12] - 8001be2: f04f 32ff mov.w r2, #4294967295 - 8001be6: 625a str r2, [r3, #36] ; 0x24 -} - 8001be8: bf00 nop - 8001bea: 3714 adds r7, #20 - 8001bec: 46bd mov sp, r7 - 8001bee: bd90 pop {r4, r7, pc} - 8001bf0: aaaaaaab .word 0xaaaaaaab - 8001bf4: 10624dd3 .word 0x10624dd3 - -08001bf8 : - * @note This function captures the time difference between rising and falling edges - * on Timer 1, Channel 4. It uses the capture/compare registers and sets the - * timer to capture the rising edge first, then the falling edge. - * @return None - */ -void TIMER_ICU(Enum_TIMER_NUM Copy_u8TimerNum,Enum_TIMER_CHs Copy_u8ChannelNum) { - 8001bf8: b580 push {r7, lr} - 8001bfa: b084 sub sp, #16 - 8001bfc: af00 add r7, sp, #0 - 8001bfe: 4603 mov r3, r0 - 8001c00: 460a mov r2, r1 - 8001c02: 71fb strb r3, [r7, #7] - 8001c04: 4613 mov r3, r2 - 8001c06: 71bb strb r3, [r7, #6] - static u8 captureState[29] = {0}; - static u32 captureValue1[29] = {0}; - static u32 captureValue2[29] = {0}; - TIM2_5_MemMap_t* TIMx = GET_TIMER(Copy_u8TimerNum+1); - 8001c08: 79fb ldrb r3, [r7, #7] - 8001c0a: 3301 adds r3, #1 - 8001c0c: 4618 mov r0, r3 - 8001c0e: f7ff fea3 bl 8001958 - 8001c12: 60f8 str r0, [r7, #12] - if (captureState[(4*Copy_u8TimerNum+Copy_u8ChannelNum)] == 0) { - 8001c14: 79fb ldrb r3, [r7, #7] - 8001c16: 009a lsls r2, r3, #2 - 8001c18: 79bb ldrb r3, [r7, #6] - 8001c1a: 4413 add r3, r2 - 8001c1c: 4a2e ldr r2, [pc, #184] ; (8001cd8 ) - 8001c1e: 5cd3 ldrb r3, [r2, r3] - 8001c20: 2b00 cmp r3, #0 - 8001c22: d11f bne.n 8001c64 - // Capture the time on the rising edge - captureValue1[(4*Copy_u8TimerNum+Copy_u8ChannelNum)] = TIMx->CCR[Copy_u8ChannelNum]; - 8001c24: 79bb ldrb r3, [r7, #6] - 8001c26: 79fa ldrb r2, [r7, #7] - 8001c28: 0091 lsls r1, r2, #2 - 8001c2a: 79ba ldrb r2, [r7, #6] - 8001c2c: 440a add r2, r1 - 8001c2e: 68f9 ldr r1, [r7, #12] - 8001c30: 330c adds r3, #12 - 8001c32: 009b lsls r3, r3, #2 - 8001c34: 440b add r3, r1 - 8001c36: 685b ldr r3, [r3, #4] - 8001c38: 4928 ldr r1, [pc, #160] ; (8001cdc ) - 8001c3a: f841 3022 str.w r3, [r1, r2, lsl #2] - - // Enable falling edge capture - SET_BIT(TIMx->CCER, (CCxP + Copy_u8ChannelNum*4) ); - 8001c3e: 68fb ldr r3, [r7, #12] - 8001c40: 6a1b ldr r3, [r3, #32] - 8001c42: 79ba ldrb r2, [r7, #6] - 8001c44: 0092 lsls r2, r2, #2 - 8001c46: 3201 adds r2, #1 - 8001c48: 2101 movs r1, #1 - 8001c4a: fa01 f202 lsl.w r2, r1, r2 - 8001c4e: 431a orrs r2, r3 - 8001c50: 68fb ldr r3, [r7, #12] - 8001c52: 621a str r2, [r3, #32] - - // Move to the next state - captureState[(4*Copy_u8TimerNum+Copy_u8ChannelNum)] = 1; - 8001c54: 79fb ldrb r3, [r7, #7] - 8001c56: 009a lsls r2, r3, #2 - 8001c58: 79bb ldrb r3, [r7, #6] - 8001c5a: 4413 add r3, r2 - 8001c5c: 4a1e ldr r2, [pc, #120] ; (8001cd8 ) - 8001c5e: 2101 movs r1, #1 - 8001c60: 54d1 strb r1, [r2, r3] - Time[(4*Copy_u8TimerNum+Copy_u8ChannelNum)] = captureValue2[(4*Copy_u8TimerNum+Copy_u8ChannelNum)] - captureValue1[(4*Copy_u8TimerNum+Copy_u8ChannelNum)]; - - // Reset state value - captureState[(4*Copy_u8TimerNum+Copy_u8ChannelNum)] = 0; - } -} - 8001c62: e035 b.n 8001cd0 - captureValue2[(4*Copy_u8TimerNum+Copy_u8ChannelNum)] = TIMx->CCR[Copy_u8ChannelNum]; - 8001c64: 79bb ldrb r3, [r7, #6] - 8001c66: 79fa ldrb r2, [r7, #7] - 8001c68: 0091 lsls r1, r2, #2 - 8001c6a: 79ba ldrb r2, [r7, #6] - 8001c6c: 440a add r2, r1 - 8001c6e: 68f9 ldr r1, [r7, #12] - 8001c70: 330c adds r3, #12 - 8001c72: 009b lsls r3, r3, #2 - 8001c74: 440b add r3, r1 - 8001c76: 685b ldr r3, [r3, #4] - 8001c78: 4919 ldr r1, [pc, #100] ; (8001ce0 ) - 8001c7a: f841 3022 str.w r3, [r1, r2, lsl #2] - CLR_BIT(TIMx->CCER, (CCxP + Copy_u8ChannelNum*4) ); - 8001c7e: 68fb ldr r3, [r7, #12] - 8001c80: 6a1b ldr r3, [r3, #32] - 8001c82: 79ba ldrb r2, [r7, #6] - 8001c84: 0092 lsls r2, r2, #2 - 8001c86: 3201 adds r2, #1 - 8001c88: 2101 movs r1, #1 - 8001c8a: fa01 f202 lsl.w r2, r1, r2 - 8001c8e: 43d2 mvns r2, r2 - 8001c90: 401a ands r2, r3 - 8001c92: 68fb ldr r3, [r7, #12] - 8001c94: 621a str r2, [r3, #32] - Time[(4*Copy_u8TimerNum+Copy_u8ChannelNum)] = captureValue2[(4*Copy_u8TimerNum+Copy_u8ChannelNum)] - captureValue1[(4*Copy_u8TimerNum+Copy_u8ChannelNum)]; - 8001c96: 79fb ldrb r3, [r7, #7] - 8001c98: 009a lsls r2, r3, #2 - 8001c9a: 79bb ldrb r3, [r7, #6] - 8001c9c: 4413 add r3, r2 - 8001c9e: 4a10 ldr r2, [pc, #64] ; (8001ce0 ) - 8001ca0: f852 1023 ldr.w r1, [r2, r3, lsl #2] - 8001ca4: 79fb ldrb r3, [r7, #7] - 8001ca6: 009a lsls r2, r3, #2 - 8001ca8: 79bb ldrb r3, [r7, #6] - 8001caa: 4413 add r3, r2 - 8001cac: 4a0b ldr r2, [pc, #44] ; (8001cdc ) - 8001cae: f852 2023 ldr.w r2, [r2, r3, lsl #2] - 8001cb2: 79fb ldrb r3, [r7, #7] - 8001cb4: 0098 lsls r0, r3, #2 - 8001cb6: 79bb ldrb r3, [r7, #6] - 8001cb8: 4403 add r3, r0 - 8001cba: 1a8a subs r2, r1, r2 - 8001cbc: 4909 ldr r1, [pc, #36] ; (8001ce4 ) - 8001cbe: f841 2023 str.w r2, [r1, r3, lsl #2] - captureState[(4*Copy_u8TimerNum+Copy_u8ChannelNum)] = 0; - 8001cc2: 79fb ldrb r3, [r7, #7] - 8001cc4: 009a lsls r2, r3, #2 - 8001cc6: 79bb ldrb r3, [r7, #6] - 8001cc8: 4413 add r3, r2 - 8001cca: 4a03 ldr r2, [pc, #12] ; (8001cd8 ) - 8001ccc: 2100 movs r1, #0 - 8001cce: 54d1 strb r1, [r2, r3] -} - 8001cd0: bf00 nop - 8001cd2: 3710 adds r7, #16 - 8001cd4: 46bd mov sp, r7 - 8001cd6: bd80 pop {r7, pc} - 8001cd8: 2000011c .word 0x2000011c - 8001cdc: 2000013c .word 0x2000013c - 8001ce0: 200001b0 .word 0x200001b0 - 8001ce4: 200000a8 .word 0x200000a8 - -08001ce8 : -/** - * @brief Interrupt handler for TIM1 and TIM10 interrupts. - * - * @note This function is called when either TIM1 or TIM10 triggers an interrupt. - */ -void TIM1_UP_TIM10_IRQHandler(void) { - 8001ce8: b580 push {r7, lr} - 8001cea: af00 add r7, sp, #0 - // Check if the update interrupt flag of TIM1 is set - if (GET_BIT(TIM1->SR, 0)) { - 8001cec: 4b20 ldr r3, [pc, #128] ; (8001d70 ) - 8001cee: 691b ldr r3, [r3, #16] - 8001cf0: f003 0301 and.w r3, r3, #1 - 8001cf4: 2b00 cmp r3, #0 - 8001cf6: d00d beq.n 8001d14 - // Check if a callback function is registered for TIM1 - if (GLOBAL_Ptr[0] != STD_NULL) { - 8001cf8: 4b1e ldr r3, [pc, #120] ; (8001d74 ) - 8001cfa: 681b ldr r3, [r3, #0] - 8001cfc: 2b00 cmp r3, #0 - 8001cfe: d002 beq.n 8001d06 - // Call the callback function for TIM1 - GLOBAL_Ptr[0](); - 8001d00: 4b1c ldr r3, [pc, #112] ; (8001d74 ) - 8001d02: 681b ldr r3, [r3, #0] - 8001d04: 4798 blx r3 - } - // Clear the update interrupt flag of TIM1 - CLR_BIT(TIM1->SR, 0); - 8001d06: 4b1a ldr r3, [pc, #104] ; (8001d70 ) - 8001d08: 691b ldr r3, [r3, #16] - 8001d0a: 4a19 ldr r2, [pc, #100] ; (8001d70 ) - 8001d0c: f023 0301 bic.w r3, r3, #1 - 8001d10: 6113 str r3, [r2, #16] - // Clear the update interrupt flag of TIM10 without calling a callback function - CLR_BIT(TIM10->SR, 0); - } - } - } -} - 8001d12: e02a b.n 8001d6a - if (GET_BIT(TIM10->SR, 1)) { - 8001d14: 4b18 ldr r3, [pc, #96] ; (8001d78 ) - 8001d16: 691b ldr r3, [r3, #16] - 8001d18: 085b lsrs r3, r3, #1 - 8001d1a: f003 0301 and.w r3, r3, #1 - 8001d1e: 2b00 cmp r3, #0 - 8001d20: d009 beq.n 8001d36 - TIMER_ICU(TIMER10 - 1, CH1 - 1); - 8001d22: 2100 movs r1, #0 - 8001d24: 2006 movs r0, #6 - 8001d26: f7ff ff67 bl 8001bf8 - CLR_BIT(TIM10->SR, CH1); - 8001d2a: 4b13 ldr r3, [pc, #76] ; (8001d78 ) - 8001d2c: 691b ldr r3, [r3, #16] - 8001d2e: 4a12 ldr r2, [pc, #72] ; (8001d78 ) - 8001d30: f023 0302 bic.w r3, r3, #2 - 8001d34: 6113 str r3, [r2, #16] - if (GET_BIT(TIM10->SR, 0)) { - 8001d36: 4b10 ldr r3, [pc, #64] ; (8001d78 ) - 8001d38: 691b ldr r3, [r3, #16] - 8001d3a: f003 0301 and.w r3, r3, #1 - 8001d3e: 2b00 cmp r3, #0 - 8001d40: d013 beq.n 8001d6a - if (GLOBAL_Ptr[6] != STD_NULL) { - 8001d42: 4b0c ldr r3, [pc, #48] ; (8001d74 ) - 8001d44: 699b ldr r3, [r3, #24] - 8001d46: 2b00 cmp r3, #0 - 8001d48: d009 beq.n 8001d5e - GLOBAL_Ptr[6](); - 8001d4a: 4b0a ldr r3, [pc, #40] ; (8001d74 ) - 8001d4c: 699b ldr r3, [r3, #24] - 8001d4e: 4798 blx r3 - CLR_BIT(TIM10->SR, 0); - 8001d50: 4b09 ldr r3, [pc, #36] ; (8001d78 ) - 8001d52: 691b ldr r3, [r3, #16] - 8001d54: 4a08 ldr r2, [pc, #32] ; (8001d78 ) - 8001d56: f023 0301 bic.w r3, r3, #1 - 8001d5a: 6113 str r3, [r2, #16] -} - 8001d5c: e005 b.n 8001d6a - CLR_BIT(TIM10->SR, 0); - 8001d5e: 4b06 ldr r3, [pc, #24] ; (8001d78 ) - 8001d60: 691b ldr r3, [r3, #16] - 8001d62: 4a05 ldr r2, [pc, #20] ; (8001d78 ) - 8001d64: f023 0301 bic.w r3, r3, #1 - 8001d68: 6113 str r3, [r2, #16] -} - 8001d6a: bf00 nop - 8001d6c: bd80 pop {r7, pc} - 8001d6e: bf00 nop - 8001d70: 40010000 .word 0x40010000 - 8001d74: 20000088 .word 0x20000088 - 8001d78: 40014400 .word 0x40014400 - -08001d7c : -/** - * @brief Interrupt handler for TIM1 trigger/completion and TIM11 interrupts. - * - * @note This function is called when either TIM1 triggers a trigger/completion or TIM11 triggers an interrupt. - */ -void TIM1_TRG_COM_TIM11_IRQHandler(void) { - 8001d7c: b580 push {r7, lr} - 8001d7e: af00 add r7, sp, #0 - // Check if the trigger interrupt or COM interrupt flag of TIM1 is set - if (GET_BIT(TIM1->SR, 5) || GET_BIT(TIM1->SR, 6)) { - 8001d80: 4b1d ldr r3, [pc, #116] ; (8001df8 ) - 8001d82: 691b ldr r3, [r3, #16] - 8001d84: 095b lsrs r3, r3, #5 - 8001d86: f003 0301 and.w r3, r3, #1 - 8001d8a: 2b00 cmp r3, #0 - 8001d8c: d131 bne.n 8001df2 - 8001d8e: 4b1a ldr r3, [pc, #104] ; (8001df8 ) - 8001d90: 691b ldr r3, [r3, #16] - 8001d92: 099b lsrs r3, r3, #6 - 8001d94: f003 0301 and.w r3, r3, #1 - 8001d98: 2b00 cmp r3, #0 - 8001d9a: d12a bne.n 8001df2 - // Handle TIMER1 trigger or COM interrupt - // Add the necessary code or call a function for TIMER1 trigger or COM handling - } else { - // Check if the capture/compare interrupt flag for CH1 of TIM11 is set - if (GET_BIT(TIM11->SR, 1)) { - 8001d9c: 4b17 ldr r3, [pc, #92] ; (8001dfc ) - 8001d9e: 691b ldr r3, [r3, #16] - 8001da0: 085b lsrs r3, r3, #1 - 8001da2: f003 0301 and.w r3, r3, #1 - 8001da6: 2b00 cmp r3, #0 - 8001da8: d009 beq.n 8001dbe - // Call the TIMER_ICU function for handling CH1 interrupt of TIM11 - TIMER_ICU(TIMER11 - 1, CH1 - 1); - 8001daa: 2100 movs r1, #0 - 8001dac: 2007 movs r0, #7 - 8001dae: f7ff ff23 bl 8001bf8 - // Clear the capture/compare interrupt flag for CH1 of TIM11 - CLR_BIT(TIM11->SR, CH1); - 8001db2: 4b12 ldr r3, [pc, #72] ; (8001dfc ) - 8001db4: 691b ldr r3, [r3, #16] - 8001db6: 4a11 ldr r2, [pc, #68] ; (8001dfc ) - 8001db8: f023 0302 bic.w r3, r3, #2 - 8001dbc: 6113 str r3, [r2, #16] - } - // Check if the update interrupt flag of TIM11 is set - if (GET_BIT(TIM11->SR, 0)) { - 8001dbe: 4b0f ldr r3, [pc, #60] ; (8001dfc ) - 8001dc0: 691b ldr r3, [r3, #16] - 8001dc2: f003 0301 and.w r3, r3, #1 - 8001dc6: 2b00 cmp r3, #0 - 8001dc8: d013 beq.n 8001df2 - // Check if a callback function is registered for TIM11 (at index 7 in GLOBAL_Ptr array) - if (GLOBAL_Ptr[7] != STD_NULL) { - 8001dca: 4b0d ldr r3, [pc, #52] ; (8001e00 ) - 8001dcc: 69db ldr r3, [r3, #28] - 8001dce: 2b00 cmp r3, #0 - 8001dd0: d009 beq.n 8001de6 - // Call the callback function for TIM11 - GLOBAL_Ptr[7](); - 8001dd2: 4b0b ldr r3, [pc, #44] ; (8001e00 ) - 8001dd4: 69db ldr r3, [r3, #28] - 8001dd6: 4798 blx r3 - // Clear the update interrupt flag of TIM11 - CLR_BIT(TIM11->SR, 0); - 8001dd8: 4b08 ldr r3, [pc, #32] ; (8001dfc ) - 8001dda: 691b ldr r3, [r3, #16] - 8001ddc: 4a07 ldr r2, [pc, #28] ; (8001dfc ) - 8001dde: f023 0301 bic.w r3, r3, #1 - 8001de2: 6113 str r3, [r2, #16] - // Clear the update interrupt flag of TIM11 without calling a callback function - CLR_BIT(TIM11->SR, 0); - } - } - } -} - 8001de4: e005 b.n 8001df2 - CLR_BIT(TIM11->SR, 0); - 8001de6: 4b05 ldr r3, [pc, #20] ; (8001dfc ) - 8001de8: 691b ldr r3, [r3, #16] - 8001dea: 4a04 ldr r2, [pc, #16] ; (8001dfc ) - 8001dec: f023 0301 bic.w r3, r3, #1 - 8001df0: 6113 str r3, [r2, #16] -} - 8001df2: bf00 nop - 8001df4: bd80 pop {r7, pc} - 8001df6: bf00 nop - 8001df8: 40010000 .word 0x40010000 - 8001dfc: 40014800 .word 0x40014800 - 8001e00: 20000088 .word 0x20000088 - -08001e04 : -/** - * @brief Interrupt handler for TIM1 break and TIM9 interrupts. - * - * @note This function is called when either TIM1 triggers a break interrupt or TIM9 triggers an interrupt. - */ -void TIM1_BRK_TIM9_IRQHandler(void) { - 8001e04: b580 push {r7, lr} - 8001e06: af00 add r7, sp, #0 - // Check if the break interrupt flag of TIM1 is set - if (GET_BIT(TIM1->SR, 7)) { - 8001e08: 4b22 ldr r3, [pc, #136] ; (8001e94 ) - 8001e0a: 691b ldr r3, [r3, #16] - 8001e0c: 09db lsrs r3, r3, #7 - 8001e0e: f003 0301 and.w r3, r3, #1 - 8001e12: 2b00 cmp r3, #0 - 8001e14: d13c bne.n 8001e90 - // Handle TIMER1 break interrupt - // Add the necessary code or call a function for TIMER1 break handling - } else { - // Check if the capture/compare interrupt flag for CH1 of TIM9 is set - if (GET_BIT(TIM9->SR, 1)) { - 8001e16: 4b20 ldr r3, [pc, #128] ; (8001e98 ) - 8001e18: 691b ldr r3, [r3, #16] - 8001e1a: 085b lsrs r3, r3, #1 - 8001e1c: f003 0301 and.w r3, r3, #1 - 8001e20: 2b00 cmp r3, #0 - 8001e22: d00a beq.n 8001e3a - // Call the TIMER_ICU function for handling CH1 interrupt of TIM9 - TIMER_ICU(TIMER9 - 1, CH1 - 1); - 8001e24: 2100 movs r1, #0 - 8001e26: 2005 movs r0, #5 - 8001e28: f7ff fee6 bl 8001bf8 - // Clear the capture/compare interrupt flag for CH1 of TIM9 - CLR_BIT(TIM9->SR, CH1); - 8001e2c: 4b1a ldr r3, [pc, #104] ; (8001e98 ) - 8001e2e: 691b ldr r3, [r3, #16] - 8001e30: 4a19 ldr r2, [pc, #100] ; (8001e98 ) - 8001e32: f023 0302 bic.w r3, r3, #2 - 8001e36: 6113 str r3, [r2, #16] - 8001e38: e010 b.n 8001e5c - } else if (GET_BIT(TIM9->SR, 2)) { - 8001e3a: 4b17 ldr r3, [pc, #92] ; (8001e98 ) - 8001e3c: 691b ldr r3, [r3, #16] - 8001e3e: 089b lsrs r3, r3, #2 - 8001e40: f003 0301 and.w r3, r3, #1 - 8001e44: 2b00 cmp r3, #0 - 8001e46: d009 beq.n 8001e5c - // Call the TIMER_ICU function for handling CH2 interrupt of TIM9 - TIMER_ICU(TIMER9 - 1, CH2 - 1); - 8001e48: 2101 movs r1, #1 - 8001e4a: 2005 movs r0, #5 - 8001e4c: f7ff fed4 bl 8001bf8 - // Clear the capture/compare interrupt flag for CH2 of TIM9 - CLR_BIT(TIM9->SR, CH2); - 8001e50: 4b11 ldr r3, [pc, #68] ; (8001e98 ) - 8001e52: 691b ldr r3, [r3, #16] - 8001e54: 4a10 ldr r2, [pc, #64] ; (8001e98 ) - 8001e56: f023 0304 bic.w r3, r3, #4 - 8001e5a: 6113 str r3, [r2, #16] - } - // Check if the update interrupt flag of TIM9 is set - if (GET_BIT(TIM9->SR, 0)) { - 8001e5c: 4b0e ldr r3, [pc, #56] ; (8001e98 ) - 8001e5e: 691b ldr r3, [r3, #16] - 8001e60: f003 0301 and.w r3, r3, #1 - 8001e64: 2b00 cmp r3, #0 - 8001e66: d013 beq.n 8001e90 - // Check if a callback function is registered for TIM9 (at index 5 in GLOBAL_Ptr array) - if (GLOBAL_Ptr[5] != STD_NULL) { - 8001e68: 4b0c ldr r3, [pc, #48] ; (8001e9c ) - 8001e6a: 695b ldr r3, [r3, #20] - 8001e6c: 2b00 cmp r3, #0 - 8001e6e: d009 beq.n 8001e84 - // Call the callback function for TIM9 - GLOBAL_Ptr[5](); - 8001e70: 4b0a ldr r3, [pc, #40] ; (8001e9c ) - 8001e72: 695b ldr r3, [r3, #20] - 8001e74: 4798 blx r3 - // Clear the update interrupt flag of TIM9 - CLR_BIT(TIM9->SR, 0); - 8001e76: 4b08 ldr r3, [pc, #32] ; (8001e98 ) - 8001e78: 691b ldr r3, [r3, #16] - 8001e7a: 4a07 ldr r2, [pc, #28] ; (8001e98 ) - 8001e7c: f023 0301 bic.w r3, r3, #1 - 8001e80: 6113 str r3, [r2, #16] - // Clear the update interrupt flag of TIM9 without calling a callback function - CLR_BIT(TIM9->SR, 0); - } - } - } -} - 8001e82: e005 b.n 8001e90 - CLR_BIT(TIM9->SR, 0); - 8001e84: 4b04 ldr r3, [pc, #16] ; (8001e98 ) - 8001e86: 691b ldr r3, [r3, #16] - 8001e88: 4a03 ldr r2, [pc, #12] ; (8001e98 ) - 8001e8a: f023 0301 bic.w r3, r3, #1 - 8001e8e: 6113 str r3, [r2, #16] -} - 8001e90: bf00 nop - 8001e92: bd80 pop {r7, pc} - 8001e94: 40010000 .word 0x40010000 - 8001e98: 40014000 .word 0x40014000 - 8001e9c: 20000088 .word 0x20000088 - -08001ea0 : -/** - * @brief Interrupt handler for TIM1 capture/compare interrupts. - * - * @note This function is called when any of the capture/compare channels (CH1-CH4) of TIM1 triggers an interrupt. - */ -void TIM1_CC_IRQHandler(void) { - 8001ea0: b580 push {r7, lr} - 8001ea2: af00 add r7, sp, #0 - // Check if the capture/compare interrupt flag for CH1 of TIM1 is set - if (GET_BIT(TIM1->SR, 1)) { - 8001ea4: 4b20 ldr r3, [pc, #128] ; (8001f28 ) - 8001ea6: 691b ldr r3, [r3, #16] - 8001ea8: 085b lsrs r3, r3, #1 - 8001eaa: f003 0301 and.w r3, r3, #1 - 8001eae: 2b00 cmp r3, #0 - 8001eb0: d00a beq.n 8001ec8 - // Call the TIMER_ICU function for handling CH1 interrupt of TIM1 - TIMER_ICU(TIMER1 - 1, CH1 - 1); - 8001eb2: 2100 movs r1, #0 - 8001eb4: 2000 movs r0, #0 - 8001eb6: f7ff fe9f bl 8001bf8 - // Clear the capture/compare interrupt flag for CH1 of TIM1 - CLR_BIT(TIM1->SR, CH1); - 8001eba: 4b1b ldr r3, [pc, #108] ; (8001f28 ) - 8001ebc: 691b ldr r3, [r3, #16] - 8001ebe: 4a1a ldr r2, [pc, #104] ; (8001f28 ) - 8001ec0: f023 0302 bic.w r3, r3, #2 - 8001ec4: 6113 str r3, [r2, #16] - // Call the TIMER_ICU function for handling CH4 interrupt of TIM1 - TIMER_ICU(TIMER1 - 1, CH4 - 1); - // Clear the capture/compare interrupt flag for CH4 of TIM1 - CLR_BIT(TIM1->SR, CH4); - } -} - 8001ec6: e02d b.n 8001f24 - } else if (GET_BIT(TIM1->SR, 2)) { - 8001ec8: 4b17 ldr r3, [pc, #92] ; (8001f28 ) - 8001eca: 691b ldr r3, [r3, #16] - 8001ecc: 089b lsrs r3, r3, #2 - 8001ece: f003 0301 and.w r3, r3, #1 - 8001ed2: 2b00 cmp r3, #0 - 8001ed4: d00a beq.n 8001eec - TIMER_ICU(TIMER1 - 1, CH2 - 1); - 8001ed6: 2101 movs r1, #1 - 8001ed8: 2000 movs r0, #0 - 8001eda: f7ff fe8d bl 8001bf8 - CLR_BIT(TIM1->SR, CH2); - 8001ede: 4b12 ldr r3, [pc, #72] ; (8001f28 ) - 8001ee0: 691b ldr r3, [r3, #16] - 8001ee2: 4a11 ldr r2, [pc, #68] ; (8001f28 ) - 8001ee4: f023 0304 bic.w r3, r3, #4 - 8001ee8: 6113 str r3, [r2, #16] -} - 8001eea: e01b b.n 8001f24 - } else if (GET_BIT(TIM1->SR, 3)) { - 8001eec: 4b0e ldr r3, [pc, #56] ; (8001f28 ) - 8001eee: 691b ldr r3, [r3, #16] - 8001ef0: 08db lsrs r3, r3, #3 - 8001ef2: f003 0301 and.w r3, r3, #1 - 8001ef6: 2b00 cmp r3, #0 - 8001ef8: d00a beq.n 8001f10 - TIMER_ICU(TIMER1 - 1, CH3 - 1); - 8001efa: 2102 movs r1, #2 - 8001efc: 2000 movs r0, #0 - 8001efe: f7ff fe7b bl 8001bf8 - CLR_BIT(TIM1->SR, CH3); - 8001f02: 4b09 ldr r3, [pc, #36] ; (8001f28 ) - 8001f04: 691b ldr r3, [r3, #16] - 8001f06: 4a08 ldr r2, [pc, #32] ; (8001f28 ) - 8001f08: f023 0308 bic.w r3, r3, #8 - 8001f0c: 6113 str r3, [r2, #16] -} - 8001f0e: e009 b.n 8001f24 - TIMER_ICU(TIMER1 - 1, CH4 - 1); - 8001f10: 2103 movs r1, #3 - 8001f12: 2000 movs r0, #0 - 8001f14: f7ff fe70 bl 8001bf8 - CLR_BIT(TIM1->SR, CH4); - 8001f18: 4b03 ldr r3, [pc, #12] ; (8001f28 ) - 8001f1a: 691b ldr r3, [r3, #16] - 8001f1c: 4a02 ldr r2, [pc, #8] ; (8001f28 ) - 8001f1e: f023 0310 bic.w r3, r3, #16 - 8001f22: 6113 str r3, [r2, #16] -} - 8001f24: bf00 nop - 8001f26: bd80 pop {r7, pc} - 8001f28: 40010000 .word 0x40010000 - -08001f2c : -/** - * @brief Interrupt handler for TIM2 capture/compare and update interrupts. - * - * @note This function is called when any of the capture/compare channels (CH1-CH4) or the update interrupt of TIM2 triggers an interrupt. - */ -void TIM2_IRQHandler(void) { - 8001f2c: b580 push {r7, lr} - 8001f2e: af00 add r7, sp, #0 - // Check if the capture/compare interrupt flag for CH1 of TIM2 is set - if (GET_BIT(TIM2->SR, 1)) { - 8001f30: f04f 4380 mov.w r3, #1073741824 ; 0x40000000 - 8001f34: 691b ldr r3, [r3, #16] - 8001f36: 085b lsrs r3, r3, #1 - 8001f38: f003 0301 and.w r3, r3, #1 - 8001f3c: 2b00 cmp r3, #0 - 8001f3e: d00c beq.n 8001f5a - // Call the TIMER_ICU function for handling CH1 interrupt of TIM2 - TIMER_ICU(TIMER2 - 1, CH1 - 1); - 8001f40: 2100 movs r1, #0 - 8001f42: 2001 movs r0, #1 - 8001f44: f7ff fe58 bl 8001bf8 - // Clear the capture/compare interrupt flag for CH1 of TIM2 - CLR_BIT(TIM2->SR, CH1); - 8001f48: f04f 4380 mov.w r3, #1073741824 ; 0x40000000 - 8001f4c: 691b ldr r3, [r3, #16] - 8001f4e: f04f 4280 mov.w r2, #1073741824 ; 0x40000000 - 8001f52: f023 0302 bic.w r3, r3, #2 - 8001f56: 6113 str r3, [r2, #16] - 8001f58: e03d b.n 8001fd6 - } else if (GET_BIT(TIM2->SR, 2)) { - 8001f5a: f04f 4380 mov.w r3, #1073741824 ; 0x40000000 - 8001f5e: 691b ldr r3, [r3, #16] - 8001f60: 089b lsrs r3, r3, #2 - 8001f62: f003 0301 and.w r3, r3, #1 - 8001f66: 2b00 cmp r3, #0 - 8001f68: d00c beq.n 8001f84 - // Call the TIMER_ICU function for handling CH2 interrupt of TIM2 - TIMER_ICU(TIMER2 - 1, CH2 - 1); - 8001f6a: 2101 movs r1, #1 - 8001f6c: 2001 movs r0, #1 - 8001f6e: f7ff fe43 bl 8001bf8 - // Clear the capture/compare interrupt flag for CH2 of TIM2 - CLR_BIT(TIM2->SR, CH2); - 8001f72: f04f 4380 mov.w r3, #1073741824 ; 0x40000000 - 8001f76: 691b ldr r3, [r3, #16] - 8001f78: f04f 4280 mov.w r2, #1073741824 ; 0x40000000 - 8001f7c: f023 0304 bic.w r3, r3, #4 - 8001f80: 6113 str r3, [r2, #16] - 8001f82: e028 b.n 8001fd6 - } else if (GET_BIT(TIM2->SR, 3)) { - 8001f84: f04f 4380 mov.w r3, #1073741824 ; 0x40000000 - 8001f88: 691b ldr r3, [r3, #16] - 8001f8a: 08db lsrs r3, r3, #3 - 8001f8c: f003 0301 and.w r3, r3, #1 - 8001f90: 2b00 cmp r3, #0 - 8001f92: d00c beq.n 8001fae - // Call the TIMER_ICU function for handling CH3 interrupt of TIM2 - TIMER_ICU(TIMER2 - 1, CH3 - 1); - 8001f94: 2102 movs r1, #2 - 8001f96: 2001 movs r0, #1 - 8001f98: f7ff fe2e bl 8001bf8 - // Clear the capture/compare interrupt flag for CH3 of TIM2 - CLR_BIT(TIM2->SR, CH3); - 8001f9c: f04f 4380 mov.w r3, #1073741824 ; 0x40000000 - 8001fa0: 691b ldr r3, [r3, #16] - 8001fa2: f04f 4280 mov.w r2, #1073741824 ; 0x40000000 - 8001fa6: f023 0308 bic.w r3, r3, #8 - 8001faa: 6113 str r3, [r2, #16] - 8001fac: e013 b.n 8001fd6 - } else if (GET_BIT(TIM2->SR, 4)) { - 8001fae: f04f 4380 mov.w r3, #1073741824 ; 0x40000000 - 8001fb2: 691b ldr r3, [r3, #16] - 8001fb4: 091b lsrs r3, r3, #4 - 8001fb6: f003 0301 and.w r3, r3, #1 - 8001fba: 2b00 cmp r3, #0 - 8001fbc: d00b beq.n 8001fd6 - // Call the TIMER_ICU function for handling CH4 interrupt of TIM2 - TIMER_ICU(TIMER2 - 1, CH4 - 1); - 8001fbe: 2103 movs r1, #3 - 8001fc0: 2001 movs r0, #1 - 8001fc2: f7ff fe19 bl 8001bf8 - // Clear the capture/compare interrupt flag for CH4 of TIM2 - CLR_BIT(TIM2->SR, CH4); - 8001fc6: f04f 4380 mov.w r3, #1073741824 ; 0x40000000 - 8001fca: 691b ldr r3, [r3, #16] - 8001fcc: f04f 4280 mov.w r2, #1073741824 ; 0x40000000 - 8001fd0: f023 0310 bic.w r3, r3, #16 - 8001fd4: 6113 str r3, [r2, #16] - } - - // Check if the update interrupt flag of TIM2 is set - if (GET_BIT(TIM2->SR, 0)) { - 8001fd6: f04f 4380 mov.w r3, #1073741824 ; 0x40000000 - 8001fda: 691b ldr r3, [r3, #16] - 8001fdc: f003 0301 and.w r3, r3, #1 - 8001fe0: 2b00 cmp r3, #0 - 8001fe2: d017 beq.n 8002014 - // Check if a callback function is registered for TIM2 (at index 2 in GLOBAL_Ptr array) - if (GLOBAL_Ptr[1] != STD_NULL) { - 8001fe4: 4b0c ldr r3, [pc, #48] ; (8002018 ) - 8001fe6: 685b ldr r3, [r3, #4] - 8001fe8: 2b00 cmp r3, #0 - 8001fea: d00b beq.n 8002004 - // Call the callback function for TIM2 - GLOBAL_Ptr[1](); - 8001fec: 4b0a ldr r3, [pc, #40] ; (8002018 ) - 8001fee: 685b ldr r3, [r3, #4] - 8001ff0: 4798 blx r3 - // Clear the update interrupt flag of TIM2 - CLR_BIT(TIM2->SR, 0); - 8001ff2: f04f 4380 mov.w r3, #1073741824 ; 0x40000000 - 8001ff6: 691b ldr r3, [r3, #16] - 8001ff8: f04f 4280 mov.w r2, #1073741824 ; 0x40000000 - 8001ffc: f023 0301 bic.w r3, r3, #1 - 8002000: 6113 str r3, [r2, #16] - } else { - // Clear the update interrupt flag of TIM2 without calling a callback function - CLR_BIT(TIM2->SR, 0); - } - } -} - 8002002: e007 b.n 8002014 - CLR_BIT(TIM2->SR, 0); - 8002004: f04f 4380 mov.w r3, #1073741824 ; 0x40000000 - 8002008: 691b ldr r3, [r3, #16] - 800200a: f04f 4280 mov.w r2, #1073741824 ; 0x40000000 - 800200e: f023 0301 bic.w r3, r3, #1 - 8002012: 6113 str r3, [r2, #16] -} - 8002014: bf00 nop - 8002016: bd80 pop {r7, pc} - 8002018: 20000088 .word 0x20000088 - -0800201c : -/** - * @brief Interrupt handler for TIM3 capture/compare and update interrupts. - * - * @note This function is called when any of the capture/compare channels (CH1-CH4) or the update interrupt of TIM3 triggers an interrupt. - */ -void TIM3_IRQHandler(void) { - 800201c: b580 push {r7, lr} - 800201e: af00 add r7, sp, #0 - // Check if the capture/compare interrupt flag for CH1 of TIM3 is set - if (GET_BIT(TIM3->SR, 1)) { - 8002020: 4b31 ldr r3, [pc, #196] ; (80020e8 ) - 8002022: 691b ldr r3, [r3, #16] - 8002024: 085b lsrs r3, r3, #1 - 8002026: f003 0301 and.w r3, r3, #1 - 800202a: 2b00 cmp r3, #0 - 800202c: d00a beq.n 8002044 - // Call the TIMER_ICU function for handling CH1 interrupt of TIM3 - TIMER_ICU(TIMER3 - 1, CH1 - 1); - 800202e: 2100 movs r1, #0 - 8002030: 2002 movs r0, #2 - 8002032: f7ff fde1 bl 8001bf8 - // Clear the capture/compare interrupt flag for CH1 of TIM3 - CLR_BIT(TIM3->SR, CH1); - 8002036: 4b2c ldr r3, [pc, #176] ; (80020e8 ) - 8002038: 691b ldr r3, [r3, #16] - 800203a: 4a2b ldr r2, [pc, #172] ; (80020e8 ) - 800203c: f023 0302 bic.w r3, r3, #2 - 8002040: 6113 str r3, [r2, #16] - 8002042: e034 b.n 80020ae - } else if (GET_BIT(TIM3->SR, 2)) { - 8002044: 4b28 ldr r3, [pc, #160] ; (80020e8 ) - 8002046: 691b ldr r3, [r3, #16] - 8002048: 089b lsrs r3, r3, #2 - 800204a: f003 0301 and.w r3, r3, #1 - 800204e: 2b00 cmp r3, #0 - 8002050: d00a beq.n 8002068 - // Call the TIMER_ICU function for handling CH2 interrupt of TIM3 - TIMER_ICU(TIMER3 - 1, CH2 - 1); - 8002052: 2101 movs r1, #1 - 8002054: 2002 movs r0, #2 - 8002056: f7ff fdcf bl 8001bf8 - // Clear the capture/compare interrupt flag for CH2 of TIM3 - CLR_BIT(TIM3->SR, CH2); - 800205a: 4b23 ldr r3, [pc, #140] ; (80020e8 ) - 800205c: 691b ldr r3, [r3, #16] - 800205e: 4a22 ldr r2, [pc, #136] ; (80020e8 ) - 8002060: f023 0304 bic.w r3, r3, #4 - 8002064: 6113 str r3, [r2, #16] - 8002066: e022 b.n 80020ae - } else if (GET_BIT(TIM3->SR, 3)) { - 8002068: 4b1f ldr r3, [pc, #124] ; (80020e8 ) - 800206a: 691b ldr r3, [r3, #16] - 800206c: 08db lsrs r3, r3, #3 - 800206e: f003 0301 and.w r3, r3, #1 - 8002072: 2b00 cmp r3, #0 - 8002074: d00a beq.n 800208c - // Call the TIMER_ICU function for handling CH3 interrupt of TIM3 - TIMER_ICU(TIMER3 - 1, CH3 - 1); - 8002076: 2102 movs r1, #2 - 8002078: 2002 movs r0, #2 - 800207a: f7ff fdbd bl 8001bf8 - // Clear the capture/compare interrupt flag for CH3 of TIM3 - CLR_BIT(TIM3->SR, CH3); - 800207e: 4b1a ldr r3, [pc, #104] ; (80020e8 ) - 8002080: 691b ldr r3, [r3, #16] - 8002082: 4a19 ldr r2, [pc, #100] ; (80020e8 ) - 8002084: f023 0308 bic.w r3, r3, #8 - 8002088: 6113 str r3, [r2, #16] - 800208a: e010 b.n 80020ae - } else if (GET_BIT(TIM3->SR, 4)) { - 800208c: 4b16 ldr r3, [pc, #88] ; (80020e8 ) - 800208e: 691b ldr r3, [r3, #16] - 8002090: 091b lsrs r3, r3, #4 - 8002092: f003 0301 and.w r3, r3, #1 - 8002096: 2b00 cmp r3, #0 - 8002098: d009 beq.n 80020ae - // Call the TIMER_ICU function for handling CH4 interrupt of TIM3 - TIMER_ICU(TIMER3 - 1, CH4 - 1); - 800209a: 2103 movs r1, #3 - 800209c: 2002 movs r0, #2 - 800209e: f7ff fdab bl 8001bf8 - // Clear the capture/compare interrupt flag for CH4 of TIM3 - CLR_BIT(TIM3->SR, CH4); - 80020a2: 4b11 ldr r3, [pc, #68] ; (80020e8 ) - 80020a4: 691b ldr r3, [r3, #16] - 80020a6: 4a10 ldr r2, [pc, #64] ; (80020e8 ) - 80020a8: f023 0310 bic.w r3, r3, #16 - 80020ac: 6113 str r3, [r2, #16] - } - - // Check if the update interrupt flag of TIM3 is set - if (GET_BIT(TIM3->SR, 0)) { - 80020ae: 4b0e ldr r3, [pc, #56] ; (80020e8 ) - 80020b0: 691b ldr r3, [r3, #16] - 80020b2: f003 0301 and.w r3, r3, #1 - 80020b6: 2b00 cmp r3, #0 - 80020b8: d013 beq.n 80020e2 - // Check if a callback function is registered for TIM3 (at index 3 in GLOBAL_Ptr array) - if (GLOBAL_Ptr[2] != STD_NULL) { - 80020ba: 4b0c ldr r3, [pc, #48] ; (80020ec ) - 80020bc: 689b ldr r3, [r3, #8] - 80020be: 2b00 cmp r3, #0 - 80020c0: d009 beq.n 80020d6 - // Call the callback function for TIM3 - GLOBAL_Ptr[2](); - 80020c2: 4b0a ldr r3, [pc, #40] ; (80020ec ) - 80020c4: 689b ldr r3, [r3, #8] - 80020c6: 4798 blx r3 - // Clear the update interrupt flag of TIM3 - CLR_BIT(TIM3->SR, 0); - 80020c8: 4b07 ldr r3, [pc, #28] ; (80020e8 ) - 80020ca: 691b ldr r3, [r3, #16] - 80020cc: 4a06 ldr r2, [pc, #24] ; (80020e8 ) - 80020ce: f023 0301 bic.w r3, r3, #1 - 80020d2: 6113 str r3, [r2, #16] - } else { - // Clear the update interrupt flag of TIM3 without calling a callback function - CLR_BIT(TIM3->SR, 0); - } - } -} - 80020d4: e005 b.n 80020e2 - CLR_BIT(TIM3->SR, 0); - 80020d6: 4b04 ldr r3, [pc, #16] ; (80020e8 ) - 80020d8: 691b ldr r3, [r3, #16] - 80020da: 4a03 ldr r2, [pc, #12] ; (80020e8 ) - 80020dc: f023 0301 bic.w r3, r3, #1 - 80020e0: 6113 str r3, [r2, #16] -} - 80020e2: bf00 nop - 80020e4: bd80 pop {r7, pc} - 80020e6: bf00 nop - 80020e8: 40000400 .word 0x40000400 - 80020ec: 20000088 .word 0x20000088 - -080020f0
: - - -#define SCB_CPACR (*((volatile u32 *)0xE000ED88)) - - -int main (void){ - 80020f0: b580 push {r7, lr} - 80020f2: b086 sub sp, #24 - 80020f4: af06 add r7, sp, #24 - - SCB_CPACR |= ((3UL << 10 * 2) | (3UL << 11 * 2)); - 80020f6: 4b3a ldr r3, [pc, #232] ; (80021e0 ) - 80020f8: 681b ldr r3, [r3, #0] - 80020fa: 4a39 ldr r2, [pc, #228] ; (80021e0 ) - 80020fc: f443 0370 orr.w r3, r3, #15728640 ; 0xf00000 - 8002100: 6013 str r3, [r2, #0] - MRCC_vInit(); - 8002102: f7ff fb13 bl 800172c - MRCC_vEnableClock(GPIOA_EN); - 8002106: 2000 movs r0, #0 - 8002108: f7ff fb36 bl 8001778 - MRCC_vEnableClock(GPIOB_EN); - 800210c: 2001 movs r0, #1 - 800210e: f7ff fb33 bl 8001778 - MRCC_vEnableClock(GPIOC_EN); - 8002112: 2002 movs r0, #2 - 8002114: f7ff fb30 bl 8001778 - MRCC_vEnableClock(SYSCFG_EN); - 8002118: 206e movs r0, #110 ; 0x6e - 800211a: f7ff fb2d bl 8001778 - MRCC_vEnableClock(USART1_EN); - 800211e: 2064 movs r0, #100 ; 0x64 - 8002120: f7ff fb2a bl 8001778 - MRCC_vEnableClock(USART2_EN); - 8002124: 2051 movs r0, #81 ; 0x51 - 8002126: f7ff fb27 bl 8001778 - MRCC_vEnableClock(USART6_EN); - 800212a: 2065 movs r0, #101 ; 0x65 - 800212c: f7ff fb24 bl 8001778 - MRCC_vEnableClock(TIM1_EN); - 8002130: 2060 movs r0, #96 ; 0x60 - 8002132: f7ff fb21 bl 8001778 - - - //*************************test******************************* - MGPIO_vSetPinMode(PORTC, PIN13, OUTPUT); - 8002136: 2201 movs r2, #1 - 8002138: 210d movs r1, #13 - 800213a: 2002 movs r0, #2 - 800213c: f7ff f94a bl 80013d4 - MGPIO_vSetPinValue(PORTC, PIN13, LOW); - 8002140: 2200 movs r2, #0 - 8002142: 210d movs r1, #13 - 8002144: 2002 movs r0, #2 - 8002146: f7ff f9ab bl 80014a0 - //******************************************************** - - //***************************Motor***************************** - HAL_MOTOR_Init(PORTA, PIN1, PORTA, PIN2, PORTA, PIN8, - 800214a: 2317 movs r3, #23 - 800214c: 9304 str r3, [sp, #16] - 800214e: 2308 movs r3, #8 - 8002150: 9303 str r3, [sp, #12] - 8002152: 2301 movs r3, #1 - 8002154: 9302 str r3, [sp, #8] - 8002156: 2308 movs r3, #8 - 8002158: 9301 str r3, [sp, #4] - 800215a: 2300 movs r3, #0 - 800215c: 9300 str r3, [sp, #0] - 800215e: 2302 movs r3, #2 - 8002160: 2200 movs r2, #0 - 8002162: 2101 movs r1, #1 - 8002164: 2000 movs r0, #0 - 8002166: f7fe fc6b bl 8000a40 - MGPIO_ALTFUNC_TIM12, EXTI8,NVIC_EXTI9_5); - HAL_MOTOR_STOP(); - 800216a: f7fe fd5f bl 8000c2c - /***********************************************************************/ - /****************switch***************************/ - MGPIO_vSetPinMode(PORTB, PIN4, INPUT); - 800216e: 2200 movs r2, #0 - 8002170: 2104 movs r1, #4 - 8002172: 2001 movs r0, #1 - 8002174: f7ff f92e bl 80013d4 - MGPIO_vSetPinValue(PORTB, PIN4, LOW); - 8002178: 2200 movs r2, #0 - 800217a: 2104 movs r1, #4 - 800217c: 2001 movs r0, #1 - 800217e: f7ff f98f bl 80014a0 - /*******************************Servo***********************************/ -// -// if(MGPIO_u8GetPinValue(PORTB, PIN4)){ - HSERVO_vServoInit(SERVO1, TIMER1, CH3); - 8002182: 2203 movs r2, #3 - 8002184: 2101 movs r1, #1 - 8002186: 2000 movs r0, #0 - 8002188: f7fe fd6a bl 8000c60 - HSERVO_vServoDeg(SERVO1, 0); - 800218c: 2100 movs r1, #0 - 800218e: 2000 movs r0, #0 - 8002190: f7fe fe5e bl 8000e50 - HAL_MOTOR_MOVE(FORWARD, 70 , 100); - 8002194: ed9f 0a13 vldr s0, [pc, #76] ; 80021e4 - 8002198: 2146 movs r1, #70 ; 0x46 - 800219a: 2001 movs r0, #1 - 800219c: f7fe fcb0 bl 8000b00 - HSERVO_vServoDeg(SERVO1, -30); - 80021a0: f06f 011d mvn.w r1, #29 - 80021a4: 2000 movs r0, #0 - 80021a6: f7fe fe53 bl 8000e50 - HAL_MOTOR_MOVE(BACKWARD, 50 , 60); - 80021aa: ed9f 0a0f vldr s0, [pc, #60] ; 80021e8 - 80021ae: 2132 movs r1, #50 ; 0x32 - 80021b0: 2000 movs r0, #0 - 80021b2: f7fe fca5 bl 8000b00 - HSERVO_vServoDeg(SERVO1, 30); - 80021b6: 211e movs r1, #30 - 80021b8: 2000 movs r0, #0 - 80021ba: f7fe fe49 bl 8000e50 - HAL_MOTOR_MOVE(BACKWARD, 50 , 60); - 80021be: ed9f 0a0a vldr s0, [pc, #40] ; 80021e8 - 80021c2: 2132 movs r1, #50 ; 0x32 - 80021c4: 2000 movs r0, #0 - 80021c6: f7fe fc9b bl 8000b00 - HSERVO_vServoDeg(SERVO1, 0); - 80021ca: 2100 movs r1, #0 - 80021cc: 2000 movs r0, #0 - 80021ce: f7fe fe3f bl 8000e50 - HAL_MOTOR_MOVE(FORWARD, 50 , 30); - 80021d2: eeb3 0a0e vmov.f32 s0, #62 ; 0x41f00000 30.0 - 80021d6: 2132 movs r1, #50 ; 0x32 - 80021d8: 2001 movs r0, #1 - 80021da: f7fe fc91 bl 8000b00 -// } - while(1){ - 80021de: e7fe b.n 80021de - 80021e0: e000ed88 .word 0xe000ed88 - 80021e4: 42c80000 .word 0x42c80000 - 80021e8: 42700000 .word 0x42700000 - -080021ec : - - .section .text.Reset_Handler - .weak Reset_Handler - .type Reset_Handler, %function -Reset_Handler: - ldr r0, =_estack - 80021ec: 480d ldr r0, [pc, #52] ; (8002224 ) - mov sp, r0 /* set stack pointer */ - 80021ee: 4685 mov sp, r0 -/* Call the clock system intitialization function.*/ - bl SystemInit - 80021f0: f3af 8000 nop.w - -/* Copy the data segment initializers from flash to SRAM */ - ldr r0, =_sdata - 80021f4: 480c ldr r0, [pc, #48] ; (8002228 ) - ldr r1, =_edata - 80021f6: 490d ldr r1, [pc, #52] ; (800222c ) - ldr r2, =_sidata - 80021f8: 4a0d ldr r2, [pc, #52] ; (8002230 ) - movs r3, #0 - 80021fa: 2300 movs r3, #0 - b LoopCopyDataInit - 80021fc: e002 b.n 8002204 - -080021fe : - -CopyDataInit: - ldr r4, [r2, r3] - 80021fe: 58d4 ldr r4, [r2, r3] - str r4, [r0, r3] - 8002200: 50c4 str r4, [r0, r3] - adds r3, r3, #4 - 8002202: 3304 adds r3, #4 - -08002204 : - -LoopCopyDataInit: - adds r4, r0, r3 - 8002204: 18c4 adds r4, r0, r3 - cmp r4, r1 - 8002206: 428c cmp r4, r1 - bcc CopyDataInit - 8002208: d3f9 bcc.n 80021fe - -/* Zero fill the bss segment. */ - ldr r2, =_sbss - 800220a: 4a0a ldr r2, [pc, #40] ; (8002234 ) - ldr r4, =_ebss - 800220c: 4c0a ldr r4, [pc, #40] ; (8002238 ) - movs r3, #0 - 800220e: 2300 movs r3, #0 - b LoopFillZerobss - 8002210: e001 b.n 8002216 - -08002212 : - -FillZerobss: - str r3, [r2] - 8002212: 6013 str r3, [r2, #0] - adds r2, r2, #4 - 8002214: 3204 adds r2, #4 - -08002216 : - -LoopFillZerobss: - cmp r2, r4 - 8002216: 42a2 cmp r2, r4 - bcc FillZerobss - 8002218: d3fb bcc.n 8002212 - -/* Call static constructors */ - bl __libc_init_array - 800221a: f000 f811 bl 8002240 <__libc_init_array> -/* Call the application's entry point.*/ - bl main - 800221e: f7ff ff67 bl 80020f0
- -08002222 : - -LoopForever: - b LoopForever - 8002222: e7fe b.n 8002222 - ldr r0, =_estack - 8002224: 20010000 .word 0x20010000 - ldr r0, =_sdata - 8002228: 20000000 .word 0x20000000 - ldr r1, =_edata - 800222c: 20000000 .word 0x20000000 - ldr r2, =_sidata - 8002230: 080022c8 .word 0x080022c8 - ldr r2, =_sbss - 8002234: 20000000 .word 0x20000000 - ldr r4, =_ebss - 8002238: 20000234 .word 0x20000234 - -0800223c : - * @retval : None -*/ - .section .text.Default_Handler,"ax",%progbits -Default_Handler: -Infinite_Loop: - b Infinite_Loop - 800223c: e7fe b.n 800223c - ... - -08002240 <__libc_init_array>: - 8002240: b570 push {r4, r5, r6, lr} - 8002242: 4e0d ldr r6, [pc, #52] ; (8002278 <__libc_init_array+0x38>) - 8002244: 4c0d ldr r4, [pc, #52] ; (800227c <__libc_init_array+0x3c>) - 8002246: 1ba4 subs r4, r4, r6 - 8002248: 10a4 asrs r4, r4, #2 - 800224a: 2500 movs r5, #0 - 800224c: 42a5 cmp r5, r4 - 800224e: d109 bne.n 8002264 <__libc_init_array+0x24> - 8002250: 4e0b ldr r6, [pc, #44] ; (8002280 <__libc_init_array+0x40>) - 8002252: 4c0c ldr r4, [pc, #48] ; (8002284 <__libc_init_array+0x44>) - 8002254: f000 f818 bl 8002288 <_init> - 8002258: 1ba4 subs r4, r4, r6 - 800225a: 10a4 asrs r4, r4, #2 - 800225c: 2500 movs r5, #0 - 800225e: 42a5 cmp r5, r4 - 8002260: d105 bne.n 800226e <__libc_init_array+0x2e> - 8002262: bd70 pop {r4, r5, r6, pc} - 8002264: f856 3025 ldr.w r3, [r6, r5, lsl #2] - 8002268: 4798 blx r3 - 800226a: 3501 adds r5, #1 - 800226c: e7ee b.n 800224c <__libc_init_array+0xc> - 800226e: f856 3025 ldr.w r3, [r6, r5, lsl #2] - 8002272: 4798 blx r3 - 8002274: 3501 adds r5, #1 - 8002276: e7f2 b.n 800225e <__libc_init_array+0x1e> - 8002278: 080022c0 .word 0x080022c0 - 800227c: 080022c0 .word 0x080022c0 - 8002280: 080022c0 .word 0x080022c0 - 8002284: 080022c4 .word 0x080022c4 - -08002288 <_init>: - 8002288: b5f8 push {r3, r4, r5, r6, r7, lr} - 800228a: bf00 nop - 800228c: bcf8 pop {r3, r4, r5, r6, r7} - 800228e: bc08 pop {r3} - 8002290: 469e mov lr, r3 - 8002292: 4770 bx lr - -08002294 <_fini>: - 8002294: b5f8 push {r3, r4, r5, r6, r7, lr} - 8002296: bf00 nop - 8002298: bcf8 pop {r3, r4, r5, r6, r7} - 800229a: bc08 pop {r3} - 800229c: 469e mov lr, r3 - 800229e: 4770 bx lr diff --git a/AutoParkingCar/Debug/AutoParkingCar.map b/AutoParkingCar/Debug/AutoParkingCar.map deleted file mode 100644 index ad166de..0000000 --- a/AutoParkingCar/Debug/AutoParkingCar.map +++ /dev/null @@ -1,2036 +0,0 @@ -Archive member included to satisfy reference by file (symbol) - -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) - Src/syscalls.o (__errno) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-exit.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/crt0.o (exit) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-impure.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-exit.o) (_global_impure_ptr) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/crt0.o (__libc_init_array) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/crt0.o (memset) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_atan2.o) - Src/Application/Path_Tracking.o (atan2) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_pow.o) - Src/Application/Motion_Planing.o (pow) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_sqrt.o) - Src/Application/Motion_Planing.o (sqrt) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_atan2.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_atan2.o) (__ieee754_atan2) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_pow.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_pow.o) (__ieee754_pow) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_sqrt.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_sqrt.o) (__ieee754_sqrt) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_atan.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_atan2.o) (atan) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_fabs.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_atan2.o) (fabs) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_finite.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_pow.o) (finite) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_lib_ver.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_pow.o) (__fdlib_version) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_matherr.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_pow.o) (matherr) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_nan.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_pow.o) (nan) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_rint.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_pow.o) (rint) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_scalbn.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_pow.o) (scalbn) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_copysign.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_scalbn.o) (copysign) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_addsubdf3.o) - Src/Application/Motion_Planing.o (__aeabi_dsub) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_muldivdf3.o) - Src/Application/Motion_Planing.o (__aeabi_dmul) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_cmpdf2.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_pow.o) (__aeabi_dcmpeq) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_unorddf2.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_pow.o) (__aeabi_dcmpun) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_fixunsdfsi.o) - Src/Application/Motion_Planing.o (__aeabi_d2uiz) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_truncdfsf2.o) - Src/Application/Motion_Planing.o (__aeabi_d2f) - -Allocating common symbols -Common symbol size file - -scenario 0x1 Src/Application/Motion_Planing.o -point_c 0x8 Src/Application/Motion_Planing.o -vth_pd 0x1 Src/Application/Motion_Planing.o -Scanned_Area 0x64 Src/Application/Motion_Planing.o -Motor_Pins 0xa Src/HAL/HMOTOR/HMOTOR.o -SERVO_STRUCT 0x2 Src/HAL/HSERVO/HSERVO_Prog.o -park_width 0x1 Src/Application/Motion_Planing.o -park_length 0x1 Src/Application/Motion_Planing.o -speed 0x1 Src/Application/Motion_Planing.o -ULTRA_STRUCT 0x14 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o -vth 0x1 Src/Application/Motion_Planing.o -vth_pl 0x1 Src/Application/Motion_Planing.o - -Discarded input sections - - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o - .data 0x0000000000000000 0x4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - .text 0x0000000000000000 0x74 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/crt0.o - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/crt0.o - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/crt0.o - .ARM.extab 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/crt0.o - .ARM.exidx 0x0000000000000000 0x8 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/crt0.o - .ARM.attributes - 0x0000000000000000 0x20 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/crt0.o - .group 0x0000000000000000 0xc Src/Application/Car_Control.o - .group 0x0000000000000000 0xc Src/Application/Car_Control.o - .group 0x0000000000000000 0xc Src/Application/Car_Control.o - .text 0x0000000000000000 0x0 Src/Application/Car_Control.o - .data 0x0000000000000000 0x0 Src/Application/Car_Control.o - .bss 0x0000000000000000 0x0 Src/Application/Car_Control.o - .text.CAR_CONTROL_Move - 0x0000000000000000 0x1e Src/Application/Car_Control.o - .text.CAR_CONTROL_Steer - 0x0000000000000000 0x6a Src/Application/Car_Control.o - .debug_info 0x0000000000000000 0x118 Src/Application/Car_Control.o - .debug_abbrev 0x0000000000000000 0xa2 Src/Application/Car_Control.o - .debug_aranges - 0x0000000000000000 0x28 Src/Application/Car_Control.o - .debug_ranges 0x0000000000000000 0x18 Src/Application/Car_Control.o - .debug_macro 0x0000000000000000 0x41 Src/Application/Car_Control.o - .debug_macro 0x0000000000000000 0xa60 Src/Application/Car_Control.o - .debug_macro 0x0000000000000000 0x3a Src/Application/Car_Control.o - .debug_macro 0x0000000000000000 0x10 Src/Application/Car_Control.o - .debug_line 0x0000000000000000 0x185 Src/Application/Car_Control.o - .debug_str 0x0000000000000000 0x2e9f Src/Application/Car_Control.o - .comment 0x0000000000000000 0x7c Src/Application/Car_Control.o - .debug_frame 0x0000000000000000 0x60 Src/Application/Car_Control.o - .ARM.attributes - 0x0000000000000000 0x39 Src/Application/Car_Control.o - .group 0x0000000000000000 0xc Src/Application/Collision_Avoidance.o - .group 0x0000000000000000 0xc Src/Application/Collision_Avoidance.o - .group 0x0000000000000000 0xc Src/Application/Collision_Avoidance.o - .group 0x0000000000000000 0xc Src/Application/Collision_Avoidance.o - .group 0x0000000000000000 0xc Src/Application/Collision_Avoidance.o - .group 0x0000000000000000 0xc Src/Application/Collision_Avoidance.o - .group 0x0000000000000000 0xc Src/Application/Collision_Avoidance.o - .group 0x0000000000000000 0xc Src/Application/Collision_Avoidance.o - .group 0x0000000000000000 0xc Src/Application/Collision_Avoidance.o - .group 0x0000000000000000 0xc Src/Application/Collision_Avoidance.o - .group 0x0000000000000000 0xc Src/Application/Collision_Avoidance.o - .group 0x0000000000000000 0xc Src/Application/Collision_Avoidance.o - .group 0x0000000000000000 0xc Src/Application/Collision_Avoidance.o - .group 0x0000000000000000 0xc Src/Application/Collision_Avoidance.o - .group 0x0000000000000000 0xc Src/Application/Collision_Avoidance.o - .group 0x0000000000000000 0xc Src/Application/Collision_Avoidance.o - .group 0x0000000000000000 0xc Src/Application/Collision_Avoidance.o - .group 0x0000000000000000 0xc Src/Application/Collision_Avoidance.o - .group 0x0000000000000000 0xc Src/Application/Collision_Avoidance.o - .text 0x0000000000000000 0x0 Src/Application/Collision_Avoidance.o - .data 0x0000000000000000 0x0 Src/Application/Collision_Avoidance.o - .bss 0x0000000000000000 0x0 Src/Application/Collision_Avoidance.o - .bss.CA_Flag 0x0000000000000000 0x1 Src/Application/Collision_Avoidance.o - .text.InitCollisionAvoidance - 0x0000000000000000 0x80 Src/Application/Collision_Avoidance.o - .text.FR_CA_Scenario - 0x0000000000000000 0x18 Src/Application/Collision_Avoidance.o - .text.FL_CA_Scenario - 0x0000000000000000 0x18 Src/Application/Collision_Avoidance.o - .text.BR_CA_Scenario - 0x0000000000000000 0x18 Src/Application/Collision_Avoidance.o - .text.BL_CA_Scenario - 0x0000000000000000 0x18 Src/Application/Collision_Avoidance.o - .text.RF_CA_Scenario - 0x0000000000000000 0x18 Src/Application/Collision_Avoidance.o - .text.RB_CA_Scenario - 0x0000000000000000 0x18 Src/Application/Collision_Avoidance.o - .text.LF_CA_Scenario - 0x0000000000000000 0x18 Src/Application/Collision_Avoidance.o - .text.LB_CA_Scenario - 0x0000000000000000 0x18 Src/Application/Collision_Avoidance.o - .debug_info 0x0000000000000000 0x9e9 Src/Application/Collision_Avoidance.o - .debug_abbrev 0x0000000000000000 0x1dc Src/Application/Collision_Avoidance.o - .debug_aranges - 0x0000000000000000 0x60 Src/Application/Collision_Avoidance.o - .debug_ranges 0x0000000000000000 0x50 Src/Application/Collision_Avoidance.o - .debug_macro 0x0000000000000000 0x104 Src/Application/Collision_Avoidance.o - .debug_macro 0x0000000000000000 0xa60 Src/Application/Collision_Avoidance.o - .debug_macro 0x0000000000000000 0x3a Src/Application/Collision_Avoidance.o - .debug_macro 0x0000000000000000 0x52 Src/Application/Collision_Avoidance.o - .debug_macro 0x0000000000000000 0x22 Src/Application/Collision_Avoidance.o - .debug_macro 0x0000000000000000 0x40 Src/Application/Collision_Avoidance.o - .debug_macro 0x0000000000000000 0x18 Src/Application/Collision_Avoidance.o - .debug_macro 0x0000000000000000 0x94 Src/Application/Collision_Avoidance.o - .debug_macro 0x0000000000000000 0x3c Src/Application/Collision_Avoidance.o - .debug_macro 0x0000000000000000 0x34 Src/Application/Collision_Avoidance.o - .debug_macro 0x0000000000000000 0x174 Src/Application/Collision_Avoidance.o - .debug_macro 0x0000000000000000 0x57 Src/Application/Collision_Avoidance.o - .debug_macro 0x0000000000000000 0x52 Src/Application/Collision_Avoidance.o - .debug_macro 0x0000000000000000 0x1f Src/Application/Collision_Avoidance.o - .debug_macro 0x0000000000000000 0x43 Src/Application/Collision_Avoidance.o - .debug_macro 0x0000000000000000 0x20 Src/Application/Collision_Avoidance.o - .debug_macro 0x0000000000000000 0x1a3 Src/Application/Collision_Avoidance.o - .debug_macro 0x0000000000000000 0x330 Src/Application/Collision_Avoidance.o - .debug_macro 0x0000000000000000 0x1e1 Src/Application/Collision_Avoidance.o - .debug_macro 0x0000000000000000 0x10 Src/Application/Collision_Avoidance.o - .debug_line 0x0000000000000000 0x61f Src/Application/Collision_Avoidance.o - .debug_str 0x0000000000000000 0x701b Src/Application/Collision_Avoidance.o - .comment 0x0000000000000000 0x7c Src/Application/Collision_Avoidance.o - .debug_frame 0x0000000000000000 0x134 Src/Application/Collision_Avoidance.o - .ARM.attributes - 0x0000000000000000 0x39 Src/Application/Collision_Avoidance.o - .group 0x0000000000000000 0xc Src/Application/Motion_Planing.o - .group 0x0000000000000000 0xc Src/Application/Motion_Planing.o - .group 0x0000000000000000 0xc Src/Application/Motion_Planing.o - .group 0x0000000000000000 0xc Src/Application/Motion_Planing.o - .group 0x0000000000000000 0xc Src/Application/Motion_Planing.o - .group 0x0000000000000000 0xc Src/Application/Motion_Planing.o - .group 0x0000000000000000 0xc Src/Application/Motion_Planing.o - .group 0x0000000000000000 0xc Src/Application/Motion_Planing.o - .group 0x0000000000000000 0xc Src/Application/Motion_Planing.o - .group 0x0000000000000000 0xc Src/Application/Motion_Planing.o - .group 0x0000000000000000 0xc Src/Application/Motion_Planing.o - .group 0x0000000000000000 0xc Src/Application/Motion_Planing.o - .group 0x0000000000000000 0xc Src/Application/Motion_Planing.o - .group 0x0000000000000000 0xc Src/Application/Motion_Planing.o - .group 0x0000000000000000 0xc Src/Application/Motion_Planing.o - .group 0x0000000000000000 0xc Src/Application/Motion_Planing.o - .group 0x0000000000000000 0xc Src/Application/Motion_Planing.o - .group 0x0000000000000000 0xc Src/Application/Motion_Planing.o - .text 0x0000000000000000 0x0 Src/Application/Motion_Planing.o - .data 0x0000000000000000 0x0 Src/Application/Motion_Planing.o - .bss 0x0000000000000000 0x0 Src/Application/Motion_Planing.o - .bss.Distance1 - 0x0000000000000000 0x8 Src/Application/Motion_Planing.o - .data.Car_Length - 0x0000000000000000 0x1 Src/Application/Motion_Planing.o - .data.Car_width - 0x0000000000000000 0x1 Src/Application/Motion_Planing.o - .bss.count 0x0000000000000000 0x1 Src/Application/Motion_Planing.o - .bss._param_a 0x0000000000000000 0x4 Src/Application/Motion_Planing.o - .bss._param_b 0x0000000000000000 0x4 Src/Application/Motion_Planing.o - .text.Set_Param_A - 0x0000000000000000 0x20 Src/Application/Motion_Planing.o - .text.Set_Param_B - 0x0000000000000000 0x20 Src/Application/Motion_Planing.o - .text.PaB_Path - 0x0000000000000000 0x1fc Src/Application/Motion_Planing.o - .text.PeB_Path - 0x0000000000000000 0x24 Src/Application/Motion_Planing.o - .text.PeF_Path - 0x0000000000000000 0x24 Src/Application/Motion_Planing.o - .text.Scan_Process - 0x0000000000000000 0x178 Src/Application/Motion_Planing.o - .text.Scan 0x0000000000000000 0x48 Src/Application/Motion_Planing.o - .text.Process 0x0000000000000000 0x128 Src/Application/Motion_Planing.o - .debug_info 0x0000000000000000 0xc0f Src/Application/Motion_Planing.o - .debug_abbrev 0x0000000000000000 0x2a0 Src/Application/Motion_Planing.o - .debug_aranges - 0x0000000000000000 0x58 Src/Application/Motion_Planing.o - .debug_ranges 0x0000000000000000 0x48 Src/Application/Motion_Planing.o - .debug_macro 0x0000000000000000 0x11d Src/Application/Motion_Planing.o - .debug_macro 0x0000000000000000 0xa60 Src/Application/Motion_Planing.o - .debug_macro 0x0000000000000000 0x3a Src/Application/Motion_Planing.o - .debug_macro 0x0000000000000000 0x130 Src/Application/Motion_Planing.o - .debug_macro 0x0000000000000000 0x22 Src/Application/Motion_Planing.o - .debug_macro 0x0000000000000000 0x40 Src/Application/Motion_Planing.o - .debug_macro 0x0000000000000000 0x18 Src/Application/Motion_Planing.o - .debug_macro 0x0000000000000000 0x94 Src/Application/Motion_Planing.o - .debug_macro 0x0000000000000000 0x3c Src/Application/Motion_Planing.o - .debug_macro 0x0000000000000000 0x34 Src/Application/Motion_Planing.o - .debug_macro 0x0000000000000000 0x174 Src/Application/Motion_Planing.o - .debug_macro 0x0000000000000000 0x57 Src/Application/Motion_Planing.o - .debug_macro 0x0000000000000000 0x52 Src/Application/Motion_Planing.o - .debug_macro 0x0000000000000000 0x1f Src/Application/Motion_Planing.o - .debug_macro 0x0000000000000000 0x43 Src/Application/Motion_Planing.o - .debug_macro 0x0000000000000000 0x20 Src/Application/Motion_Planing.o - .debug_macro 0x0000000000000000 0x1a3 Src/Application/Motion_Planing.o - .debug_macro 0x0000000000000000 0x330 Src/Application/Motion_Planing.o - .debug_macro 0x0000000000000000 0x1e1 Src/Application/Motion_Planing.o - .debug_line 0x0000000000000000 0x70f Src/Application/Motion_Planing.o - .debug_str 0x0000000000000000 0x7107 Src/Application/Motion_Planing.o - .comment 0x0000000000000000 0x7c Src/Application/Motion_Planing.o - .debug_frame 0x0000000000000000 0x154 Src/Application/Motion_Planing.o - .ARM.attributes - 0x0000000000000000 0x39 Src/Application/Motion_Planing.o - COMMON 0x0000000000000000 0x79 Src/Application/Motion_Planing.o - .group 0x0000000000000000 0xc Src/Application/Path_Tracking.o - .group 0x0000000000000000 0xc Src/Application/Path_Tracking.o - .group 0x0000000000000000 0xc Src/Application/Path_Tracking.o - .group 0x0000000000000000 0xc Src/Application/Path_Tracking.o - .group 0x0000000000000000 0xc Src/Application/Path_Tracking.o - .group 0x0000000000000000 0xc Src/Application/Path_Tracking.o - .group 0x0000000000000000 0xc Src/Application/Path_Tracking.o - .group 0x0000000000000000 0xc Src/Application/Path_Tracking.o - .group 0x0000000000000000 0xc Src/Application/Path_Tracking.o - .group 0x0000000000000000 0xc Src/Application/Path_Tracking.o - .group 0x0000000000000000 0xc Src/Application/Path_Tracking.o - .group 0x0000000000000000 0xc Src/Application/Path_Tracking.o - .group 0x0000000000000000 0xc Src/Application/Path_Tracking.o - .group 0x0000000000000000 0xc Src/Application/Path_Tracking.o - .group 0x0000000000000000 0xc Src/Application/Path_Tracking.o - .group 0x0000000000000000 0xc Src/Application/Path_Tracking.o - .group 0x0000000000000000 0xc Src/Application/Path_Tracking.o - .group 0x0000000000000000 0xc Src/Application/Path_Tracking.o - .text 0x0000000000000000 0x0 Src/Application/Path_Tracking.o - .data 0x0000000000000000 0x0 Src/Application/Path_Tracking.o - .bss 0x0000000000000000 0x0 Src/Application/Path_Tracking.o - .text.LOC_GetCurrentLocation - 0x0000000000000000 0x44 Src/Application/Path_Tracking.o - .text.LOC_GetNextLocation - 0x0000000000000000 0x74 Src/Application/Path_Tracking.o - .text.LOC_GetDistanceBet2Points - 0x0000000000000000 0xb8 Src/Application/Path_Tracking.o - .text.LOC_GetAngleofslope - 0x0000000000000000 0xb8 Src/Application/Path_Tracking.o - .text.PT_TrackThePath - 0x0000000000000000 0x92 Src/Application/Path_Tracking.o - .debug_info 0x0000000000000000 0xad6 Src/Application/Path_Tracking.o - .debug_abbrev 0x0000000000000000 0x20c Src/Application/Path_Tracking.o - .debug_aranges - 0x0000000000000000 0x40 Src/Application/Path_Tracking.o - .debug_ranges 0x0000000000000000 0x30 Src/Application/Path_Tracking.o - .debug_macro 0x0000000000000000 0x109 Src/Application/Path_Tracking.o - .debug_macro 0x0000000000000000 0xa60 Src/Application/Path_Tracking.o - .debug_macro 0x0000000000000000 0x3a Src/Application/Path_Tracking.o - .debug_macro 0x0000000000000000 0x52 Src/Application/Path_Tracking.o - .debug_macro 0x0000000000000000 0x22 Src/Application/Path_Tracking.o - .debug_macro 0x0000000000000000 0x40 Src/Application/Path_Tracking.o - .debug_macro 0x0000000000000000 0x18 Src/Application/Path_Tracking.o - .debug_macro 0x0000000000000000 0x94 Src/Application/Path_Tracking.o - .debug_macro 0x0000000000000000 0x3c Src/Application/Path_Tracking.o - .debug_macro 0x0000000000000000 0x34 Src/Application/Path_Tracking.o - .debug_macro 0x0000000000000000 0x174 Src/Application/Path_Tracking.o - .debug_macro 0x0000000000000000 0x57 Src/Application/Path_Tracking.o - .debug_macro 0x0000000000000000 0x52 Src/Application/Path_Tracking.o - .debug_macro 0x0000000000000000 0x1f Src/Application/Path_Tracking.o - .debug_macro 0x0000000000000000 0x43 Src/Application/Path_Tracking.o - .debug_macro 0x0000000000000000 0x20 Src/Application/Path_Tracking.o - .debug_macro 0x0000000000000000 0x1a3 Src/Application/Path_Tracking.o - .debug_macro 0x0000000000000000 0x330 Src/Application/Path_Tracking.o - .debug_macro 0x0000000000000000 0x1e1 Src/Application/Path_Tracking.o - .debug_line 0x0000000000000000 0x5fc Src/Application/Path_Tracking.o - .debug_str 0x0000000000000000 0x7004 Src/Application/Path_Tracking.o - .comment 0x0000000000000000 0x7c Src/Application/Path_Tracking.o - .debug_frame 0x0000000000000000 0xd0 Src/Application/Path_Tracking.o - .ARM.attributes - 0x0000000000000000 0x39 Src/Application/Path_Tracking.o - .group 0x0000000000000000 0xc Src/Application/Scenario_Select.o - .text 0x0000000000000000 0x0 Src/Application/Scenario_Select.o - .data 0x0000000000000000 0x0 Src/Application/Scenario_Select.o - .bss 0x0000000000000000 0x0 Src/Application/Scenario_Select.o - .bss.senario 0x0000000000000000 0x1 Src/Application/Scenario_Select.o - .debug_info 0x0000000000000000 0x65 Src/Application/Scenario_Select.o - .debug_abbrev 0x0000000000000000 0x56 Src/Application/Scenario_Select.o - .debug_aranges - 0x0000000000000000 0x18 Src/Application/Scenario_Select.o - .debug_macro 0x0000000000000000 0x1b Src/Application/Scenario_Select.o - .debug_macro 0x0000000000000000 0xa60 Src/Application/Scenario_Select.o - .debug_line 0x0000000000000000 0x71 Src/Application/Scenario_Select.o - .debug_str 0x0000000000000000 0x2d5a Src/Application/Scenario_Select.o - .comment 0x0000000000000000 0x7c Src/Application/Scenario_Select.o - .ARM.attributes - 0x0000000000000000 0x39 Src/Application/Scenario_Select.o - .group 0x0000000000000000 0xc Src/HAL/HCOMPASS/HAL_COMPASS.o - .text 0x0000000000000000 0x0 Src/HAL/HCOMPASS/HAL_COMPASS.o - .data 0x0000000000000000 0x0 Src/HAL/HCOMPASS/HAL_COMPASS.o - .bss 0x0000000000000000 0x0 Src/HAL/HCOMPASS/HAL_COMPASS.o - .text.HAL_CMP_vInit - 0x0000000000000000 0xe Src/HAL/HCOMPASS/HAL_COMPASS.o - .debug_info 0x0000000000000000 0x3b Src/HAL/HCOMPASS/HAL_COMPASS.o - .debug_abbrev 0x0000000000000000 0x2d Src/HAL/HCOMPASS/HAL_COMPASS.o - .debug_aranges - 0x0000000000000000 0x20 Src/HAL/HCOMPASS/HAL_COMPASS.o - .debug_ranges 0x0000000000000000 0x10 Src/HAL/HCOMPASS/HAL_COMPASS.o - .debug_macro 0x0000000000000000 0x11 Src/HAL/HCOMPASS/HAL_COMPASS.o - .debug_macro 0x0000000000000000 0xa60 Src/HAL/HCOMPASS/HAL_COMPASS.o - .debug_line 0x0000000000000000 0x52 Src/HAL/HCOMPASS/HAL_COMPASS.o - .debug_str 0x0000000000000000 0x2d33 Src/HAL/HCOMPASS/HAL_COMPASS.o - .comment 0x0000000000000000 0x7c Src/HAL/HCOMPASS/HAL_COMPASS.o - .debug_frame 0x0000000000000000 0x30 Src/HAL/HCOMPASS/HAL_COMPASS.o - .ARM.attributes - 0x0000000000000000 0x39 Src/HAL/HCOMPASS/HAL_COMPASS.o - .group 0x0000000000000000 0xc Src/HAL/HMOTOR/HMOTOR.o - .group 0x0000000000000000 0xc Src/HAL/HMOTOR/HMOTOR.o - .group 0x0000000000000000 0xc Src/HAL/HMOTOR/HMOTOR.o - .group 0x0000000000000000 0xc Src/HAL/HMOTOR/HMOTOR.o - .group 0x0000000000000000 0xc Src/HAL/HMOTOR/HMOTOR.o - .group 0x0000000000000000 0xc Src/HAL/HMOTOR/HMOTOR.o - .group 0x0000000000000000 0xc Src/HAL/HMOTOR/HMOTOR.o - .group 0x0000000000000000 0xc Src/HAL/HMOTOR/HMOTOR.o - .group 0x0000000000000000 0xc Src/HAL/HMOTOR/HMOTOR.o - .group 0x0000000000000000 0xc Src/HAL/HMOTOR/HMOTOR.o - .group 0x0000000000000000 0xc Src/HAL/HMOTOR/HMOTOR.o - .group 0x0000000000000000 0xc Src/HAL/HMOTOR/HMOTOR.o - .group 0x0000000000000000 0xc Src/HAL/HMOTOR/HMOTOR.o - .group 0x0000000000000000 0xc Src/HAL/HMOTOR/HMOTOR.o - .group 0x0000000000000000 0xc Src/HAL/HMOTOR/HMOTOR.o - .group 0x0000000000000000 0xc Src/HAL/HMOTOR/HMOTOR.o - .group 0x0000000000000000 0xc Src/HAL/HMOTOR/HMOTOR.o - .group 0x0000000000000000 0xc Src/HAL/HMOTOR/HMOTOR.o - .group 0x0000000000000000 0xc Src/HAL/HMOTOR/HMOTOR.o - .group 0x0000000000000000 0xc Src/HAL/HMOTOR/HMOTOR.o - .group 0x0000000000000000 0xc Src/HAL/HMOTOR/HMOTOR.o - .text 0x0000000000000000 0x0 Src/HAL/HMOTOR/HMOTOR.o - .data 0x0000000000000000 0x0 Src/HAL/HMOTOR/HMOTOR.o - .bss 0x0000000000000000 0x0 Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x0000000000000000 0xa60 Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x0000000000000000 0x52 Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x0000000000000000 0x22 Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x0000000000000000 0x40 Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x0000000000000000 0x18 Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x0000000000000000 0x94 Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x0000000000000000 0x3c Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x0000000000000000 0x34 Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x0000000000000000 0x174 Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x0000000000000000 0x57 Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x0000000000000000 0x52 Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x0000000000000000 0x1f Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x0000000000000000 0x43 Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x0000000000000000 0x20 Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x0000000000000000 0x1a3 Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x0000000000000000 0x330 Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x0000000000000000 0x1e1 Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x0000000000000000 0x3a Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x0000000000000000 0x10 Src/HAL/HMOTOR/HMOTOR.o - .group 0x0000000000000000 0xc Src/HAL/HSERVO/HSERVO_Prog.o - .group 0x0000000000000000 0xc Src/HAL/HSERVO/HSERVO_Prog.o - .group 0x0000000000000000 0xc Src/HAL/HSERVO/HSERVO_Prog.o - .group 0x0000000000000000 0xc Src/HAL/HSERVO/HSERVO_Prog.o - .text 0x0000000000000000 0x0 Src/HAL/HSERVO/HSERVO_Prog.o - .data 0x0000000000000000 0x0 Src/HAL/HSERVO/HSERVO_Prog.o - .bss 0x0000000000000000 0x0 Src/HAL/HSERVO/HSERVO_Prog.o - .debug_macro 0x0000000000000000 0xa60 Src/HAL/HSERVO/HSERVO_Prog.o - .debug_macro 0x0000000000000000 0x3a Src/HAL/HSERVO/HSERVO_Prog.o - .debug_macro 0x0000000000000000 0x130 Src/HAL/HSERVO/HSERVO_Prog.o - .group 0x0000000000000000 0xc Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .group 0x0000000000000000 0xc Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .group 0x0000000000000000 0xc Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .group 0x0000000000000000 0xc Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .text 0x0000000000000000 0x0 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .data 0x0000000000000000 0x0 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .bss 0x0000000000000000 0x0 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .text.HULTRA_vInitialize - 0x0000000000000000 0x1fc Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .text.HULTRA_vSendTrigger - 0x0000000000000000 0x42 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .text.HULTRA_vGetDistance - 0x0000000000000000 0x6c Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .debug_info 0x0000000000000000 0x2eb Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .debug_abbrev 0x0000000000000000 0xe8 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .debug_aranges - 0x0000000000000000 0x30 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .debug_ranges 0x0000000000000000 0x20 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .debug_macro 0x0000000000000000 0x5a Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .debug_macro 0x0000000000000000 0xa60 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .debug_macro 0x0000000000000000 0x3a Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .debug_macro 0x0000000000000000 0x130 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .debug_macro 0x0000000000000000 0x16 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .debug_line 0x0000000000000000 0x200 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .debug_str 0x0000000000000000 0x345e Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .comment 0x0000000000000000 0x7c Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .debug_frame 0x0000000000000000 0x80 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .ARM.attributes - 0x0000000000000000 0x39 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - COMMON 0x0000000000000000 0x14 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MEXTI/MEXTI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MEXTI/MEXTI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MEXTI/MEXTI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MEXTI/MEXTI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MEXTI/MEXTI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MEXTI/MEXTI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MEXTI/MEXTI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MEXTI/MEXTI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MEXTI/MEXTI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MEXTI/MEXTI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MEXTI/MEXTI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MEXTI/MEXTI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MEXTI/MEXTI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MEXTI/MEXTI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MEXTI/MEXTI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MEXTI/MEXTI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MEXTI/MEXTI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MEXTI/MEXTI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MEXTI/MEXTI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MEXTI/MEXTI_Prog.o - .text 0x0000000000000000 0x0 Src/MCAL/MEXTI/MEXTI_Prog.o - .data 0x0000000000000000 0x0 Src/MCAL/MEXTI/MEXTI_Prog.o - .bss 0x0000000000000000 0x0 Src/MCAL/MEXTI/MEXTI_Prog.o - .text.MEXTI_vDisableInterrupt - 0x0000000000000000 0x30 Src/MCAL/MEXTI/MEXTI_Prog.o - .text.MEXTI_vEnableEvent - 0x0000000000000000 0x30 Src/MCAL/MEXTI/MEXTI_Prog.o - .text.MEXTI_vDisableEvent - 0x0000000000000000 0x30 Src/MCAL/MEXTI/MEXTI_Prog.o - .text.MEXTI_vSWevent - 0x0000000000000000 0x30 Src/MCAL/MEXTI/MEXTI_Prog.o - .text.MEXTI_PtrReadInterruptFlag - 0x0000000000000000 0x34 Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_macro 0x0000000000000000 0xa60 Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_macro 0x0000000000000000 0x52 Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_macro 0x0000000000000000 0x22 Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_macro 0x0000000000000000 0x40 Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_macro 0x0000000000000000 0x18 Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_macro 0x0000000000000000 0x94 Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_macro 0x0000000000000000 0x3c Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_macro 0x0000000000000000 0x34 Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_macro 0x0000000000000000 0x174 Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_macro 0x0000000000000000 0x57 Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_macro 0x0000000000000000 0x52 Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_macro 0x0000000000000000 0x1f Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_macro 0x0000000000000000 0x43 Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_macro 0x0000000000000000 0x20 Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_macro 0x0000000000000000 0x1a3 Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_macro 0x0000000000000000 0x330 Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_macro 0x0000000000000000 0x1e1 Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_macro 0x0000000000000000 0x3a Src/MCAL/MEXTI/MEXTI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MGPIO/MGPIO_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MGPIO/MGPIO_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MGPIO/MGPIO_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MGPIO/MGPIO_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MGPIO/MGPIO_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MGPIO/MGPIO_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MGPIO/MGPIO_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MGPIO/MGPIO_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MGPIO/MGPIO_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MGPIO/MGPIO_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MGPIO/MGPIO_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MGPIO/MGPIO_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MGPIO/MGPIO_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MGPIO/MGPIO_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MGPIO/MGPIO_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MGPIO/MGPIO_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MGPIO/MGPIO_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MGPIO/MGPIO_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MGPIO/MGPIO_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MGPIO/MGPIO_Prog.o - .text 0x0000000000000000 0x0 Src/MCAL/MGPIO/MGPIO_Prog.o - .data 0x0000000000000000 0x0 Src/MCAL/MGPIO/MGPIO_Prog.o - .bss 0x0000000000000000 0x0 Src/MCAL/MGPIO/MGPIO_Prog.o - .text.MGPIO_vSetPinOutPutType - 0x0000000000000000 0xd8 Src/MCAL/MGPIO/MGPIO_Prog.o - .text.MGPIO_vSetPinOutPutSpeed - 0x0000000000000000 0xcc Src/MCAL/MGPIO/MGPIO_Prog.o - .text.MGPIO_vSetPinInPutType - 0x0000000000000000 0xcc Src/MCAL/MGPIO/MGPIO_Prog.o - .text.MGPIO_u8GetPinValue - 0x0000000000000000 0x78 Src/MCAL/MGPIO/MGPIO_Prog.o - .text.MGPIO_vSetPinAtomic - 0x0000000000000000 0xd8 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_macro 0x0000000000000000 0xa60 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_macro 0x0000000000000000 0x52 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_macro 0x0000000000000000 0x22 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_macro 0x0000000000000000 0x40 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_macro 0x0000000000000000 0x18 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_macro 0x0000000000000000 0x94 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_macro 0x0000000000000000 0x3c Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_macro 0x0000000000000000 0x34 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_macro 0x0000000000000000 0x174 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_macro 0x0000000000000000 0x57 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_macro 0x0000000000000000 0x52 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_macro 0x0000000000000000 0x1f Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_macro 0x0000000000000000 0x43 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_macro 0x0000000000000000 0x20 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_macro 0x0000000000000000 0x1a3 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_macro 0x0000000000000000 0x330 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_macro 0x0000000000000000 0x1e1 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_macro 0x0000000000000000 0x3a Src/MCAL/MGPIO/MGPIO_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .text 0x0000000000000000 0x0 Src/MCAL/MI2C/MI2C_Prog.o - .data 0x0000000000000000 0x0 Src/MCAL/MI2C/MI2C_Prog.o - .bss 0x0000000000000000 0x0 Src/MCAL/MI2C/MI2C_Prog.o - .text.MI2C_vMasterInit - 0x0000000000000000 0xa0 Src/MCAL/MI2C/MI2C_Prog.o - .text.MI2C_vMasterTx - 0x0000000000000000 0xb0 Src/MCAL/MI2C/MI2C_Prog.o - .text.MI2C_u8MasterRx - 0x0000000000000000 0xe0 Src/MCAL/MI2C/MI2C_Prog.o - .text.MI2C_vSlaveInit - 0x0000000000000000 0xbc Src/MCAL/MI2C/MI2C_Prog.o - .text.MI2C_u8SlaveRx - 0x0000000000000000 0x74 Src/MCAL/MI2C/MI2C_Prog.o - .text.MI2C_vSendSlaveADDR - 0x0000000000000000 0x4a Src/MCAL/MI2C/MI2C_Prog.o - .text.MI2C_vSendDataByte - 0x0000000000000000 0x2e Src/MCAL/MI2C/MI2C_Prog.o - .text.MI2C_vReadDataByte - 0x0000000000000000 0x2c Src/MCAL/MI2C/MI2C_Prog.o - .text.MI2C_vGenerateStart - 0x0000000000000000 0x3a Src/MCAL/MI2C/MI2C_Prog.o - .text.MI2C_vClearStart - 0x0000000000000000 0x1a Src/MCAL/MI2C/MI2C_Prog.o - .text.MI2C_vClearADDR - 0x0000000000000000 0x30 Src/MCAL/MI2C/MI2C_Prog.o - .text.MI2C_vGenerateStop - 0x0000000000000000 0x20 Src/MCAL/MI2C/MI2C_Prog.o - .debug_info 0x0000000000000000 0xd31 Src/MCAL/MI2C/MI2C_Prog.o - .debug_abbrev 0x0000000000000000 0x255 Src/MCAL/MI2C/MI2C_Prog.o - .debug_aranges - 0x0000000000000000 0x78 Src/MCAL/MI2C/MI2C_Prog.o - .debug_ranges 0x0000000000000000 0x68 Src/MCAL/MI2C/MI2C_Prog.o - .debug_macro 0x0000000000000000 0x103 Src/MCAL/MI2C/MI2C_Prog.o - .debug_macro 0x0000000000000000 0xa60 Src/MCAL/MI2C/MI2C_Prog.o - .debug_macro 0x0000000000000000 0x52 Src/MCAL/MI2C/MI2C_Prog.o - .debug_macro 0x0000000000000000 0x22 Src/MCAL/MI2C/MI2C_Prog.o - .debug_macro 0x0000000000000000 0x40 Src/MCAL/MI2C/MI2C_Prog.o - .debug_macro 0x0000000000000000 0x18 Src/MCAL/MI2C/MI2C_Prog.o - .debug_macro 0x0000000000000000 0x94 Src/MCAL/MI2C/MI2C_Prog.o - .debug_macro 0x0000000000000000 0x3c Src/MCAL/MI2C/MI2C_Prog.o - .debug_macro 0x0000000000000000 0x34 Src/MCAL/MI2C/MI2C_Prog.o - .debug_macro 0x0000000000000000 0x174 Src/MCAL/MI2C/MI2C_Prog.o - .debug_macro 0x0000000000000000 0x57 Src/MCAL/MI2C/MI2C_Prog.o - .debug_macro 0x0000000000000000 0x52 Src/MCAL/MI2C/MI2C_Prog.o - .debug_macro 0x0000000000000000 0x1f Src/MCAL/MI2C/MI2C_Prog.o - .debug_macro 0x0000000000000000 0x43 Src/MCAL/MI2C/MI2C_Prog.o - .debug_macro 0x0000000000000000 0x20 Src/MCAL/MI2C/MI2C_Prog.o - .debug_macro 0x0000000000000000 0x1a3 Src/MCAL/MI2C/MI2C_Prog.o - .debug_macro 0x0000000000000000 0x330 Src/MCAL/MI2C/MI2C_Prog.o - .debug_macro 0x0000000000000000 0x1e1 Src/MCAL/MI2C/MI2C_Prog.o - .debug_macro 0x0000000000000000 0x3a Src/MCAL/MI2C/MI2C_Prog.o - .debug_macro 0x0000000000000000 0x10 Src/MCAL/MI2C/MI2C_Prog.o - .debug_macro 0x0000000000000000 0x82 Src/MCAL/MI2C/MI2C_Prog.o - .debug_line 0x0000000000000000 0x641 Src/MCAL/MI2C/MI2C_Prog.o - .debug_str 0x0000000000000000 0x72c8 Src/MCAL/MI2C/MI2C_Prog.o - .comment 0x0000000000000000 0x7c Src/MCAL/MI2C/MI2C_Prog.o - .debug_frame 0x0000000000000000 0x1e8 Src/MCAL/MI2C/MI2C_Prog.o - .ARM.attributes - 0x0000000000000000 0x39 Src/MCAL/MI2C/MI2C_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MIWDT/MIWDT_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MIWDT/MIWDT_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MIWDT/MIWDT_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MIWDT/MIWDT_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MIWDT/MIWDT_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MIWDT/MIWDT_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MIWDT/MIWDT_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MIWDT/MIWDT_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MIWDT/MIWDT_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MIWDT/MIWDT_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MIWDT/MIWDT_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MIWDT/MIWDT_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MIWDT/MIWDT_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MIWDT/MIWDT_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MIWDT/MIWDT_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MIWDT/MIWDT_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MIWDT/MIWDT_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MIWDT/MIWDT_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MIWDT/MIWDT_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MIWDT/MIWDT_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MIWDT/MIWDT_Prog.o - .text 0x0000000000000000 0x0 Src/MCAL/MIWDT/MIWDT_Prog.o - .data 0x0000000000000000 0x0 Src/MCAL/MIWDT/MIWDT_Prog.o - .bss 0x0000000000000000 0x0 Src/MCAL/MIWDT/MIWDT_Prog.o - .text.MIWDG_vStart - 0x0000000000000000 0x5c Src/MCAL/MIWDT/MIWDT_Prog.o - .text.MIWDG_vReload - 0x0000000000000000 0x1c Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_info 0x0000000000000000 0x955 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_abbrev 0x0000000000000000 0x1ba Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_aranges - 0x0000000000000000 0x28 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_ranges 0x0000000000000000 0x18 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0x102 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0xa60 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0x3a Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0x52 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0x22 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0x40 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0x18 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0x94 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0x3c Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0x34 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0x174 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0x57 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0x52 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0x1f Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0x43 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0x20 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0x1a3 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0x330 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0x1e1 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0x34 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0x34 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_macro 0x0000000000000000 0x10 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_line 0x0000000000000000 0x524 Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_str 0x0000000000000000 0x7079 Src/MCAL/MIWDT/MIWDT_Prog.o - .comment 0x0000000000000000 0x7c Src/MCAL/MIWDT/MIWDT_Prog.o - .debug_frame 0x0000000000000000 0x58 Src/MCAL/MIWDT/MIWDT_Prog.o - .ARM.attributes - 0x0000000000000000 0x39 Src/MCAL/MIWDT/MIWDT_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MNVIC/MNVIC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MNVIC/MNVIC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MNVIC/MNVIC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MNVIC/MNVIC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MNVIC/MNVIC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MNVIC/MNVIC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MNVIC/MNVIC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MNVIC/MNVIC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MNVIC/MNVIC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MNVIC/MNVIC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MNVIC/MNVIC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MNVIC/MNVIC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MNVIC/MNVIC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MNVIC/MNVIC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MNVIC/MNVIC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MNVIC/MNVIC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MNVIC/MNVIC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MNVIC/MNVIC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MNVIC/MNVIC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MNVIC/MNVIC_Prog.o - .text 0x0000000000000000 0x0 Src/MCAL/MNVIC/MNVIC_Prog.o - .data 0x0000000000000000 0x0 Src/MCAL/MNVIC/MNVIC_Prog.o - .bss 0x0000000000000000 0x0 Src/MCAL/MNVIC/MNVIC_Prog.o - .bss.Global_u8GPMode - 0x0000000000000000 0x1 Src/MCAL/MNVIC/MNVIC_Prog.o - .text.MNVIC_vDisableInterrupt - 0x0000000000000000 0x34 Src/MCAL/MNVIC/MNVIC_Prog.o - .text.MNVIC_vSetPendingFlag - 0x0000000000000000 0x34 Src/MCAL/MNVIC/MNVIC_Prog.o - .text.MNVIC_vClearPendingFlag - 0x0000000000000000 0x34 Src/MCAL/MNVIC/MNVIC_Prog.o - .text.MNVIC_u8ReadActiveFlag - 0x0000000000000000 0x40 Src/MCAL/MNVIC/MNVIC_Prog.o - .text.MNVIC_vInitGrouping - 0x0000000000000000 0x34 Src/MCAL/MNVIC/MNVIC_Prog.o - .text.MNVIC_vSetIntPriority - 0x0000000000000000 0xd0 Src/MCAL/MNVIC/MNVIC_Prog.o - .text.MNVIC_vTrigSoftwareInt - 0x0000000000000000 0x2c Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_macro 0x0000000000000000 0xa60 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_macro 0x0000000000000000 0x52 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_macro 0x0000000000000000 0x22 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_macro 0x0000000000000000 0x40 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_macro 0x0000000000000000 0x18 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_macro 0x0000000000000000 0x94 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_macro 0x0000000000000000 0x3c Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_macro 0x0000000000000000 0x34 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_macro 0x0000000000000000 0x174 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_macro 0x0000000000000000 0x57 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_macro 0x0000000000000000 0x52 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_macro 0x0000000000000000 0x1f Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_macro 0x0000000000000000 0x43 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_macro 0x0000000000000000 0x20 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_macro 0x0000000000000000 0x1a3 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_macro 0x0000000000000000 0x330 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_macro 0x0000000000000000 0x1e1 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_macro 0x0000000000000000 0x3a Src/MCAL/MNVIC/MNVIC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MRCC/MRCC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MRCC/MRCC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MRCC/MRCC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MRCC/MRCC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MRCC/MRCC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MRCC/MRCC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MRCC/MRCC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MRCC/MRCC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MRCC/MRCC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MRCC/MRCC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MRCC/MRCC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MRCC/MRCC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MRCC/MRCC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MRCC/MRCC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MRCC/MRCC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MRCC/MRCC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MRCC/MRCC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MRCC/MRCC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MRCC/MRCC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MRCC/MRCC_Prog.o - .text 0x0000000000000000 0x0 Src/MCAL/MRCC/MRCC_Prog.o - .data 0x0000000000000000 0x0 Src/MCAL/MRCC/MRCC_Prog.o - .bss 0x0000000000000000 0x0 Src/MCAL/MRCC/MRCC_Prog.o - .text.MRCC_vDisableClock - 0x0000000000000000 0x9c Src/MCAL/MRCC/MRCC_Prog.o - .debug_macro 0x0000000000000000 0xa60 Src/MCAL/MRCC/MRCC_Prog.o - .debug_macro 0x0000000000000000 0x52 Src/MCAL/MRCC/MRCC_Prog.o - .debug_macro 0x0000000000000000 0x22 Src/MCAL/MRCC/MRCC_Prog.o - .debug_macro 0x0000000000000000 0x40 Src/MCAL/MRCC/MRCC_Prog.o - .debug_macro 0x0000000000000000 0x18 Src/MCAL/MRCC/MRCC_Prog.o - .debug_macro 0x0000000000000000 0x94 Src/MCAL/MRCC/MRCC_Prog.o - .debug_macro 0x0000000000000000 0x3c Src/MCAL/MRCC/MRCC_Prog.o - .debug_macro 0x0000000000000000 0x34 Src/MCAL/MRCC/MRCC_Prog.o - .debug_macro 0x0000000000000000 0x174 Src/MCAL/MRCC/MRCC_Prog.o - .debug_macro 0x0000000000000000 0x57 Src/MCAL/MRCC/MRCC_Prog.o - .debug_macro 0x0000000000000000 0x52 Src/MCAL/MRCC/MRCC_Prog.o - .debug_macro 0x0000000000000000 0x1f Src/MCAL/MRCC/MRCC_Prog.o - .debug_macro 0x0000000000000000 0x43 Src/MCAL/MRCC/MRCC_Prog.o - .debug_macro 0x0000000000000000 0x20 Src/MCAL/MRCC/MRCC_Prog.o - .debug_macro 0x0000000000000000 0x1a3 Src/MCAL/MRCC/MRCC_Prog.o - .debug_macro 0x0000000000000000 0x330 Src/MCAL/MRCC/MRCC_Prog.o - .debug_macro 0x0000000000000000 0x1e1 Src/MCAL/MRCC/MRCC_Prog.o - .debug_macro 0x0000000000000000 0x3a Src/MCAL/MRCC/MRCC_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .text 0x0000000000000000 0x0 Src/MCAL/MSPI/MSPI_Prog.o - .data 0x0000000000000000 0x0 Src/MCAL/MSPI/MSPI_Prog.o - .bss 0x0000000000000000 0x0 Src/MCAL/MSPI/MSPI_Prog.o - .text.MSPI_vMasterInit - 0x0000000000000000 0xb0 Src/MCAL/MSPI/MSPI_Prog.o - .text.MSPI_vSlaveInit - 0x0000000000000000 0x98 Src/MCAL/MSPI/MSPI_Prog.o - .text.MSPI_u8MasterTransceiver - 0x0000000000000000 0xbc Src/MCAL/MSPI/MSPI_Prog.o - .text.MSPI_u8SlaveTransceiver - 0x0000000000000000 0x98 Src/MCAL/MSPI/MSPI_Prog.o - .text.MSPI_vEnableRxInt - 0x0000000000000000 0x74 Src/MCAL/MSPI/MSPI_Prog.o - .text.MSPI_vEnableTxInt - 0x0000000000000000 0x74 Src/MCAL/MSPI/MSPI_Prog.o - .text.MSPI_vSetTxCallBackFunc - 0x0000000000000000 0x28 Src/MCAL/MSPI/MSPI_Prog.o - .text.MSPI_vSetRxCallBackFunc - 0x0000000000000000 0x28 Src/MCAL/MSPI/MSPI_Prog.o - .text.MSPI_u8ReadRecievedData - 0x0000000000000000 0x68 Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000000 0xa60 Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000000 0x52 Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000000 0x22 Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000000 0x40 Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000000 0x18 Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000000 0x94 Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000000 0x3c Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000000 0x34 Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000000 0x174 Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000000 0x57 Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000000 0x52 Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000000 0x1f Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000000 0x43 Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000000 0x20 Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000000 0x1a3 Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000000 0x330 Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000000 0x1e1 Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000000 0x3a Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000000 0x130 Src/MCAL/MSPI/MSPI_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSTK/MSYSTICK_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSTK/MSYSTICK_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSTK/MSYSTICK_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSTK/MSYSTICK_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSTK/MSYSTICK_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSTK/MSYSTICK_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSTK/MSYSTICK_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSTK/MSYSTICK_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSTK/MSYSTICK_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSTK/MSYSTICK_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSTK/MSYSTICK_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSTK/MSYSTICK_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSTK/MSYSTICK_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSTK/MSYSTICK_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSTK/MSYSTICK_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSTK/MSYSTICK_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSTK/MSYSTICK_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSTK/MSYSTICK_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSTK/MSYSTICK_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MSTK/MSYSTICK_Prog.o - .text 0x0000000000000000 0x0 Src/MCAL/MSTK/MSYSTICK_Prog.o - .data 0x0000000000000000 0x0 Src/MCAL/MSTK/MSYSTICK_Prog.o - .bss 0x0000000000000000 0x0 Src/MCAL/MSTK/MSYSTICK_Prog.o - .text.MSYSTICK_vInit - 0x0000000000000000 0x2c Src/MCAL/MSTK/MSYSTICK_Prog.o - .text.MSYSTICK_vPeriodicMS - 0x0000000000000000 0x4c Src/MCAL/MSTK/MSYSTICK_Prog.o - .text.MSYSTICK_vDelayms - 0x0000000000000000 0x80 Src/MCAL/MSTK/MSYSTICK_Prog.o - .text.MSYSTICK_u32GetElapsedTime - 0x0000000000000000 0x2c Src/MCAL/MSTK/MSYSTICK_Prog.o - .text.MSYSTICK_u32GetRemainingTime - 0x0000000000000000 0x20 Src/MCAL/MSTK/MSYSTICK_Prog.o - .text.MSYSTICK_vStop - 0x0000000000000000 0x20 Src/MCAL/MSTK/MSYSTICK_Prog.o - .text.MSYSTICK_vCallBack - 0x0000000000000000 0x20 Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_macro 0x0000000000000000 0xa60 Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_macro 0x0000000000000000 0x52 Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_macro 0x0000000000000000 0x22 Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_macro 0x0000000000000000 0x40 Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_macro 0x0000000000000000 0x18 Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_macro 0x0000000000000000 0x94 Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_macro 0x0000000000000000 0x3c Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_macro 0x0000000000000000 0x34 Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_macro 0x0000000000000000 0x174 Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_macro 0x0000000000000000 0x57 Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_macro 0x0000000000000000 0x52 Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_macro 0x0000000000000000 0x1f Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_macro 0x0000000000000000 0x43 Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_macro 0x0000000000000000 0x20 Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_macro 0x0000000000000000 0x1a3 Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_macro 0x0000000000000000 0x330 Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_macro 0x0000000000000000 0x1e1 Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_macro 0x0000000000000000 0x3a Src/MCAL/MSTK/MSYSTICK_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MTIMER/MTIMER_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MTIMER/MTIMER_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MTIMER/MTIMER_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MTIMER/MTIMER_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MTIMER/MTIMER_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MTIMER/MTIMER_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MTIMER/MTIMER_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MTIMER/MTIMER_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MTIMER/MTIMER_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MTIMER/MTIMER_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MTIMER/MTIMER_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MTIMER/MTIMER_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MTIMER/MTIMER_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MTIMER/MTIMER_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MTIMER/MTIMER_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MTIMER/MTIMER_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MTIMER/MTIMER_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MTIMER/MTIMER_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MTIMER/MTIMER_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MTIMER/MTIMER_Prog.o - .text 0x0000000000000000 0x0 Src/MCAL/MTIMER/MTIMER_Prog.o - .data 0x0000000000000000 0x0 Src/MCAL/MTIMER/MTIMER_Prog.o - .bss 0x0000000000000000 0x0 Src/MCAL/MTIMER/MTIMER_Prog.o - .text.MTIMER_vPeriodicMS - 0x0000000000000000 0x4c Src/MCAL/MTIMER/MTIMER_Prog.o - .text.MTIMER_vICU - 0x0000000000000000 0x21c Src/MCAL/MTIMER/MTIMER_Prog.o - .text.MTIMER_GET_ICU - 0x0000000000000000 0x34 Src/MCAL/MTIMER/MTIMER_Prog.o - .text.MTIMER_CallBack - 0x0000000000000000 0x28 Src/MCAL/MTIMER/MTIMER_Prog.o - .text.TIM4_IRQHandler - 0x0000000000000000 0xd4 Src/MCAL/MTIMER/MTIMER_Prog.o - .text.TIM5_IRQHandler - 0x0000000000000000 0xd4 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_macro 0x0000000000000000 0xa60 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_macro 0x0000000000000000 0x52 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_macro 0x0000000000000000 0x22 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_macro 0x0000000000000000 0x40 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_macro 0x0000000000000000 0x18 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_macro 0x0000000000000000 0x94 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_macro 0x0000000000000000 0x3c Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_macro 0x0000000000000000 0x34 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_macro 0x0000000000000000 0x174 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_macro 0x0000000000000000 0x57 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_macro 0x0000000000000000 0x52 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_macro 0x0000000000000000 0x1f Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_macro 0x0000000000000000 0x43 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_macro 0x0000000000000000 0x20 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_macro 0x0000000000000000 0x1a3 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_macro 0x0000000000000000 0x330 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_macro 0x0000000000000000 0x1e1 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_macro 0x0000000000000000 0x3a Src/MCAL/MTIMER/MTIMER_Prog.o - .group 0x0000000000000000 0xc Src/MCAL/MUART/MUSART_Program.o - .group 0x0000000000000000 0xc Src/MCAL/MUART/MUSART_Program.o - .group 0x0000000000000000 0xc Src/MCAL/MUART/MUSART_Program.o - .group 0x0000000000000000 0xc Src/MCAL/MUART/MUSART_Program.o - .group 0x0000000000000000 0xc Src/MCAL/MUART/MUSART_Program.o - .group 0x0000000000000000 0xc Src/MCAL/MUART/MUSART_Program.o - .group 0x0000000000000000 0xc Src/MCAL/MUART/MUSART_Program.o - .group 0x0000000000000000 0xc Src/MCAL/MUART/MUSART_Program.o - .group 0x0000000000000000 0xc Src/MCAL/MUART/MUSART_Program.o - .group 0x0000000000000000 0xc Src/MCAL/MUART/MUSART_Program.o - .group 0x0000000000000000 0xc Src/MCAL/MUART/MUSART_Program.o - .group 0x0000000000000000 0xc Src/MCAL/MUART/MUSART_Program.o - .group 0x0000000000000000 0xc Src/MCAL/MUART/MUSART_Program.o - .group 0x0000000000000000 0xc Src/MCAL/MUART/MUSART_Program.o - .group 0x0000000000000000 0xc Src/MCAL/MUART/MUSART_Program.o - .group 0x0000000000000000 0xc Src/MCAL/MUART/MUSART_Program.o - .group 0x0000000000000000 0xc Src/MCAL/MUART/MUSART_Program.o - .group 0x0000000000000000 0xc Src/MCAL/MUART/MUSART_Program.o - .group 0x0000000000000000 0xc Src/MCAL/MUART/MUSART_Program.o - .group 0x0000000000000000 0xc Src/MCAL/MUART/MUSART_Program.o - .text 0x0000000000000000 0x0 Src/MCAL/MUART/MUSART_Program.o - .data 0x0000000000000000 0x0 Src/MCAL/MUART/MUSART_Program.o - .bss 0x0000000000000000 0x0 Src/MCAL/MUART/MUSART_Program.o - .text.MUART_Enable - 0x0000000000000000 0x7e Src/MCAL/MUART/MUSART_Program.o - .text.MUART_Disable - 0x0000000000000000 0x26 Src/MCAL/MUART/MUSART_Program.o - .text.MUART_Send_Byte - 0x0000000000000000 0x3c Src/MCAL/MUART/MUSART_Program.o - .text.MUART_Send_Data - 0x0000000000000000 0x5c Src/MCAL/MUART/MUSART_Program.o - .text.MUART_Receive_Byte - 0x0000000000000000 0x34 Src/MCAL/MUART/MUSART_Program.o - .text.MUART_Receive_Data - 0x0000000000000000 0x1c Src/MCAL/MUART/MUSART_Program.o - .text.Get_UART - 0x0000000000000000 0x44 Src/MCAL/MUART/MUSART_Program.o - .debug_info 0x0000000000000000 0xde4 Src/MCAL/MUART/MUSART_Program.o - .debug_abbrev 0x0000000000000000 0x25f Src/MCAL/MUART/MUSART_Program.o - .debug_aranges - 0x0000000000000000 0x50 Src/MCAL/MUART/MUSART_Program.o - .debug_ranges 0x0000000000000000 0x40 Src/MCAL/MUART/MUSART_Program.o - .debug_macro 0x0000000000000000 0x109 Src/MCAL/MUART/MUSART_Program.o - .debug_macro 0x0000000000000000 0xa60 Src/MCAL/MUART/MUSART_Program.o - .debug_macro 0x0000000000000000 0x3a Src/MCAL/MUART/MUSART_Program.o - .debug_macro 0x0000000000000000 0x52 Src/MCAL/MUART/MUSART_Program.o - .debug_macro 0x0000000000000000 0x22 Src/MCAL/MUART/MUSART_Program.o - .debug_macro 0x0000000000000000 0x40 Src/MCAL/MUART/MUSART_Program.o - .debug_macro 0x0000000000000000 0x18 Src/MCAL/MUART/MUSART_Program.o - .debug_macro 0x0000000000000000 0x94 Src/MCAL/MUART/MUSART_Program.o - .debug_macro 0x0000000000000000 0x3c Src/MCAL/MUART/MUSART_Program.o - .debug_macro 0x0000000000000000 0x34 Src/MCAL/MUART/MUSART_Program.o - .debug_macro 0x0000000000000000 0x174 Src/MCAL/MUART/MUSART_Program.o - .debug_macro 0x0000000000000000 0x57 Src/MCAL/MUART/MUSART_Program.o - .debug_macro 0x0000000000000000 0x52 Src/MCAL/MUART/MUSART_Program.o - .debug_macro 0x0000000000000000 0x1f Src/MCAL/MUART/MUSART_Program.o - .debug_macro 0x0000000000000000 0x43 Src/MCAL/MUART/MUSART_Program.o - .debug_macro 0x0000000000000000 0x20 Src/MCAL/MUART/MUSART_Program.o - .debug_macro 0x0000000000000000 0x1a3 Src/MCAL/MUART/MUSART_Program.o - .debug_macro 0x0000000000000000 0x330 Src/MCAL/MUART/MUSART_Program.o - .debug_macro 0x0000000000000000 0x1e1 Src/MCAL/MUART/MUSART_Program.o - .debug_macro 0x0000000000000000 0x2e Src/MCAL/MUART/MUSART_Program.o - .debug_macro 0x0000000000000000 0x2e Src/MCAL/MUART/MUSART_Program.o - .debug_line 0x0000000000000000 0x5b6 Src/MCAL/MUART/MUSART_Program.o - .debug_str 0x0000000000000000 0x7201 Src/MCAL/MUART/MUSART_Program.o - .comment 0x0000000000000000 0x7c Src/MCAL/MUART/MUSART_Program.o - .debug_frame 0x0000000000000000 0x114 Src/MCAL/MUART/MUSART_Program.o - .ARM.attributes - 0x0000000000000000 0x39 Src/MCAL/MUART/MUSART_Program.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .group 0x0000000000000000 0xc Src/main.o - .text 0x0000000000000000 0x0 Src/main.o - .data 0x0000000000000000 0x0 Src/main.o - .bss 0x0000000000000000 0x0 Src/main.o - .debug_macro 0x0000000000000000 0xa60 Src/main.o - .debug_macro 0x0000000000000000 0x3a Src/main.o - .debug_macro 0x0000000000000000 0x130 Src/main.o - .debug_macro 0x0000000000000000 0x2e Src/main.o - .debug_macro 0x0000000000000000 0x52 Src/main.o - .debug_macro 0x0000000000000000 0x22 Src/main.o - .debug_macro 0x0000000000000000 0x40 Src/main.o - .debug_macro 0x0000000000000000 0x18 Src/main.o - .debug_macro 0x0000000000000000 0x94 Src/main.o - .debug_macro 0x0000000000000000 0x3c Src/main.o - .debug_macro 0x0000000000000000 0x34 Src/main.o - .debug_macro 0x0000000000000000 0x174 Src/main.o - .debug_macro 0x0000000000000000 0x57 Src/main.o - .debug_macro 0x0000000000000000 0x52 Src/main.o - .debug_macro 0x0000000000000000 0x1f Src/main.o - .debug_macro 0x0000000000000000 0x43 Src/main.o - .debug_macro 0x0000000000000000 0x20 Src/main.o - .debug_macro 0x0000000000000000 0x1a3 Src/main.o - .debug_macro 0x0000000000000000 0x330 Src/main.o - .debug_macro 0x0000000000000000 0x1e1 Src/main.o - .debug_macro 0x0000000000000000 0x2e Src/main.o - .debug_macro 0x0000000000000000 0x34 Src/main.o - .debug_macro 0x0000000000000000 0x6a Src/main.o - .debug_macro 0x0000000000000000 0x2e Src/main.o - .debug_macro 0x0000000000000000 0x2e Src/main.o - .debug_macro 0x0000000000000000 0x10 Src/main.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .group 0x0000000000000000 0xc Src/syscalls.o - .text 0x0000000000000000 0x0 Src/syscalls.o - .data 0x0000000000000000 0x0 Src/syscalls.o - .bss 0x0000000000000000 0x0 Src/syscalls.o - .bss.__env 0x0000000000000000 0x4 Src/syscalls.o - .data.environ 0x0000000000000000 0x4 Src/syscalls.o - .text.initialise_monitor_handles - 0x0000000000000000 0xe Src/syscalls.o - .text._getpid 0x0000000000000000 0x10 Src/syscalls.o - .text._kill 0x0000000000000000 0x20 Src/syscalls.o - .text._exit 0x0000000000000000 0x14 Src/syscalls.o - .text._read 0x0000000000000000 0x3a Src/syscalls.o - .text._write 0x0000000000000000 0x38 Src/syscalls.o - .text._close 0x0000000000000000 0x18 Src/syscalls.o - .text._fstat 0x0000000000000000 0x20 Src/syscalls.o - .text._isatty 0x0000000000000000 0x16 Src/syscalls.o - .text._lseek 0x0000000000000000 0x1a Src/syscalls.o - .text._open 0x0000000000000000 0x1c Src/syscalls.o - .text._wait 0x0000000000000000 0x1e Src/syscalls.o - .text._unlink 0x0000000000000000 0x1e Src/syscalls.o - .text._times 0x0000000000000000 0x18 Src/syscalls.o - .text._stat 0x0000000000000000 0x20 Src/syscalls.o - .text._link 0x0000000000000000 0x20 Src/syscalls.o - .text._fork 0x0000000000000000 0x16 Src/syscalls.o - .text._execve 0x0000000000000000 0x22 Src/syscalls.o - .debug_info 0x0000000000000000 0xeb2 Src/syscalls.o - .debug_abbrev 0x0000000000000000 0x252 Src/syscalls.o - .debug_aranges - 0x0000000000000000 0xa8 Src/syscalls.o - .debug_ranges 0x0000000000000000 0x98 Src/syscalls.o - .debug_macro 0x0000000000000000 0x243 Src/syscalls.o - .debug_macro 0x0000000000000000 0xa60 Src/syscalls.o - .debug_macro 0x0000000000000000 0x22 Src/syscalls.o - .debug_macro 0x0000000000000000 0x40 Src/syscalls.o - .debug_macro 0x0000000000000000 0x18 Src/syscalls.o - .debug_macro 0x0000000000000000 0x94 Src/syscalls.o - .debug_macro 0x0000000000000000 0x3c Src/syscalls.o - .debug_macro 0x0000000000000000 0x34 Src/syscalls.o - .debug_macro 0x0000000000000000 0x57 Src/syscalls.o - .debug_macro 0x0000000000000000 0x174 Src/syscalls.o - .debug_macro 0x0000000000000000 0x330 Src/syscalls.o - .debug_macro 0x0000000000000000 0x52 Src/syscalls.o - .debug_macro 0x0000000000000000 0x1f Src/syscalls.o - .debug_macro 0x0000000000000000 0x43 Src/syscalls.o - .debug_macro 0x0000000000000000 0x20 Src/syscalls.o - .debug_macro 0x0000000000000000 0x1a3 Src/syscalls.o - .debug_macro 0x0000000000000000 0x10 Src/syscalls.o - .debug_macro 0x0000000000000000 0x35 Src/syscalls.o - .debug_macro 0x0000000000000000 0x10 Src/syscalls.o - .debug_macro 0x0000000000000000 0x10 Src/syscalls.o - .debug_macro 0x0000000000000000 0x10 Src/syscalls.o - .debug_macro 0x0000000000000000 0x6a Src/syscalls.o - .debug_macro 0x0000000000000000 0x1c Src/syscalls.o - .debug_macro 0x0000000000000000 0x52 Src/syscalls.o - .debug_macro 0x0000000000000000 0x40 Src/syscalls.o - .debug_macro 0x0000000000000000 0x10 Src/syscalls.o - .debug_macro 0x0000000000000000 0x40 Src/syscalls.o - .debug_macro 0x0000000000000000 0xd7 Src/syscalls.o - .debug_macro 0x0000000000000000 0x1c Src/syscalls.o - .debug_macro 0x0000000000000000 0x3d Src/syscalls.o - .debug_macro 0x0000000000000000 0x35 Src/syscalls.o - .debug_macro 0x0000000000000000 0x122 Src/syscalls.o - .debug_macro 0x0000000000000000 0x16 Src/syscalls.o - .debug_macro 0x0000000000000000 0x16 Src/syscalls.o - .debug_macro 0x0000000000000000 0x29 Src/syscalls.o - .debug_macro 0x0000000000000000 0x10 Src/syscalls.o - .debug_macro 0x0000000000000000 0x241 Src/syscalls.o - .debug_macro 0x0000000000000000 0x1c Src/syscalls.o - .debug_macro 0x0000000000000000 0x10 Src/syscalls.o - .debug_macro 0x0000000000000000 0x10 Src/syscalls.o - .debug_macro 0x0000000000000000 0x16 Src/syscalls.o - .debug_macro 0x0000000000000000 0x145 Src/syscalls.o - .debug_macro 0x0000000000000000 0x189 Src/syscalls.o - .debug_macro 0x0000000000000000 0x16 Src/syscalls.o - .debug_macro 0x0000000000000000 0x88 Src/syscalls.o - .debug_line 0x0000000000000000 0x739 Src/syscalls.o - .debug_str 0x0000000000000000 0x88ae Src/syscalls.o - .comment 0x0000000000000000 0x7c Src/syscalls.o - .debug_frame 0x0000000000000000 0x2ac Src/syscalls.o - .ARM.attributes - 0x0000000000000000 0x39 Src/syscalls.o - .group 0x0000000000000000 0xc Src/sysmem.o - .group 0x0000000000000000 0xc Src/sysmem.o - .group 0x0000000000000000 0xc Src/sysmem.o - .group 0x0000000000000000 0xc Src/sysmem.o - .group 0x0000000000000000 0xc Src/sysmem.o - .group 0x0000000000000000 0xc Src/sysmem.o - .group 0x0000000000000000 0xc Src/sysmem.o - .group 0x0000000000000000 0xc Src/sysmem.o - .group 0x0000000000000000 0xc Src/sysmem.o - .group 0x0000000000000000 0xc Src/sysmem.o - .group 0x0000000000000000 0xc Src/sysmem.o - .group 0x0000000000000000 0xc Src/sysmem.o - .group 0x0000000000000000 0xc Src/sysmem.o - .group 0x0000000000000000 0xc Src/sysmem.o - .group 0x0000000000000000 0xc Src/sysmem.o - .group 0x0000000000000000 0xc Src/sysmem.o - .group 0x0000000000000000 0xc Src/sysmem.o - .group 0x0000000000000000 0xc Src/sysmem.o - .group 0x0000000000000000 0xc Src/sysmem.o - .text 0x0000000000000000 0x0 Src/sysmem.o - .data 0x0000000000000000 0x0 Src/sysmem.o - .bss 0x0000000000000000 0x0 Src/sysmem.o - .bss.__sbrk_heap_end - 0x0000000000000000 0x4 Src/sysmem.o - .text._sbrk 0x0000000000000000 0x6c Src/sysmem.o - .debug_info 0x0000000000000000 0x985 Src/sysmem.o - .debug_abbrev 0x0000000000000000 0x19b Src/sysmem.o - .debug_aranges - 0x0000000000000000 0x20 Src/sysmem.o - .debug_ranges 0x0000000000000000 0x10 Src/sysmem.o - .debug_macro 0x0000000000000000 0xee Src/sysmem.o - .debug_macro 0x0000000000000000 0xa60 Src/sysmem.o - .debug_macro 0x0000000000000000 0x10 Src/sysmem.o - .debug_macro 0x0000000000000000 0x22 Src/sysmem.o - .debug_macro 0x0000000000000000 0x40 Src/sysmem.o - .debug_macro 0x0000000000000000 0x18 Src/sysmem.o - .debug_macro 0x0000000000000000 0x94 Src/sysmem.o - .debug_macro 0x0000000000000000 0x3c Src/sysmem.o - .debug_macro 0x0000000000000000 0x34 Src/sysmem.o - .debug_macro 0x0000000000000000 0x174 Src/sysmem.o - .debug_macro 0x0000000000000000 0x57 Src/sysmem.o - .debug_macro 0x0000000000000000 0x52 Src/sysmem.o - .debug_macro 0x0000000000000000 0x1f Src/sysmem.o - .debug_macro 0x0000000000000000 0x43 Src/sysmem.o - .debug_macro 0x0000000000000000 0x20 Src/sysmem.o - .debug_macro 0x0000000000000000 0x1a3 Src/sysmem.o - .debug_macro 0x0000000000000000 0x23b Src/sysmem.o - .debug_macro 0x0000000000000000 0xef Src/sysmem.o - .debug_macro 0x0000000000000000 0x6a Src/sysmem.o - .debug_macro 0x0000000000000000 0x1df Src/sysmem.o - .debug_line 0x0000000000000000 0x4c2 Src/sysmem.o - .debug_str 0x0000000000000000 0x5f86 Src/sysmem.o - .comment 0x0000000000000000 0x7c Src/sysmem.o - .debug_frame 0x0000000000000000 0x34 Src/sysmem.o - .ARM.attributes - 0x0000000000000000 0x39 Src/sysmem.o - .text 0x0000000000000000 0x14 Startup/startup_stm32f401rctx.o - .data 0x0000000000000000 0x0 Startup/startup_stm32f401rctx.o - .bss 0x0000000000000000 0x0 Startup/startup_stm32f401rctx.o - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) - .text.__errno 0x0000000000000000 0xc c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) - .debug_frame 0x0000000000000000 0x20 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-exit.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-exit.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-exit.o) - .text.exit 0x0000000000000000 0x28 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-exit.o) - .debug_frame 0x0000000000000000 0x28 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-exit.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-exit.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-impure.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-impure.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-impure.o) - .data._impure_ptr - 0x0000000000000000 0x4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-impure.o) - .data.impure_data - 0x0000000000000000 0x60 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-impure.o) - .rodata._global_impure_ptr - 0x0000000000000000 0x4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-impure.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-impure.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) - .text.memset 0x0000000000000000 0x10 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) - .debug_frame 0x0000000000000000 0x20 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_atan2.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_atan2.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_atan2.o) - .text.atan2 0x0000000000000000 0x4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_atan2.o) - .debug_frame 0x0000000000000000 0x20 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_atan2.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_atan2.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_pow.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_pow.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_pow.o) - .text.pow 0x0000000000000000 0x2e0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_pow.o) - .rodata.pow.str1.1 - 0x0000000000000000 0x4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_pow.o) - .debug_frame 0x0000000000000000 0x5c c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_pow.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_pow.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_sqrt.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_sqrt.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_sqrt.o) - .text.sqrt 0x0000000000000000 0xb4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_sqrt.o) - .rodata.sqrt.str1.1 - 0x0000000000000000 0x5 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_sqrt.o) - .debug_frame 0x0000000000000000 0x4c c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_sqrt.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_sqrt.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_atan2.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_atan2.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_atan2.o) - .text.__ieee754_atan2 - 0x0000000000000000 0x1bc c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_atan2.o) - .debug_frame 0x0000000000000000 0x44 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_atan2.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_atan2.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_pow.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_pow.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_pow.o) - .text.__ieee754_pow - 0x0000000000000000 0xa1c c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_pow.o) - .rodata.__ieee754_pow.str1.1 - 0x0000000000000000 0x1 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_pow.o) - .rodata.bp 0x0000000000000000 0x10 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_pow.o) - .rodata.dp_h 0x0000000000000000 0x10 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_pow.o) - .rodata.dp_l 0x0000000000000000 0x10 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_pow.o) - .debug_frame 0x0000000000000000 0x64 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_pow.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_pow.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_sqrt.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_sqrt.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_sqrt.o) - .text.__ieee754_sqrt - 0x0000000000000000 0x160 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_sqrt.o) - .debug_frame 0x0000000000000000 0x30 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_sqrt.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_sqrt.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_atan.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_atan.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_atan.o) - .text.atan 0x0000000000000000 0x340 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_atan.o) - .rodata.atanhi - 0x0000000000000000 0x20 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_atan.o) - .rodata.atanlo - 0x0000000000000000 0x20 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_atan.o) - .debug_frame 0x0000000000000000 0x38 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_atan.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_atan.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_fabs.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_fabs.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_fabs.o) - .text.fabs 0x0000000000000000 0x12 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_fabs.o) - .debug_frame 0x0000000000000000 0x20 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_fabs.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_fabs.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_finite.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_finite.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_finite.o) - .text.finite 0x0000000000000000 0x10 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_finite.o) - .debug_frame 0x0000000000000000 0x20 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_finite.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_finite.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_lib_ver.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_lib_ver.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_lib_ver.o) - .data.__fdlib_version - 0x0000000000000000 0x1 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_lib_ver.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_lib_ver.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_matherr.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_matherr.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_matherr.o) - .text.matherr 0x0000000000000000 0x4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_matherr.o) - .debug_frame 0x0000000000000000 0x20 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_matherr.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_matherr.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_nan.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_nan.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_nan.o) - .text.nan 0x0000000000000000 0x10 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_nan.o) - .debug_frame 0x0000000000000000 0x20 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_nan.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_nan.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_rint.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_rint.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_rint.o) - .text.rint 0x0000000000000000 0x108 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_rint.o) - .rodata.TWO52 0x0000000000000000 0x10 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_rint.o) - .debug_frame 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_rint.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_rint.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_scalbn.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_scalbn.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_scalbn.o) - .text.scalbn 0x0000000000000000 0xec c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_scalbn.o) - .debug_frame 0x0000000000000000 0x2c c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_scalbn.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_scalbn.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_copysign.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_copysign.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_copysign.o) - .text.copysign - 0x0000000000000000 0x1e c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_copysign.o) - .debug_frame 0x0000000000000000 0x20 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_copysign.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_copysign.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_addsubdf3.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_addsubdf3.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_muldivdf3.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_muldivdf3.o) - .text 0x0000000000000000 0x110 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_cmpdf2.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_cmpdf2.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_cmpdf2.o) - .debug_frame 0x0000000000000000 0xc4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_cmpdf2.o) - .ARM.attributes - 0x0000000000000000 0x22 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_cmpdf2.o) - .text 0x0000000000000000 0x2c c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_unorddf2.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_unorddf2.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_unorddf2.o) - .debug_frame 0x0000000000000000 0x20 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_unorddf2.o) - .ARM.attributes - 0x0000000000000000 0x22 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_unorddf2.o) - .text 0x0000000000000000 0x40 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_fixunsdfsi.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_fixunsdfsi.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_fixunsdfsi.o) - .debug_frame 0x0000000000000000 0x24 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_fixunsdfsi.o) - .ARM.attributes - 0x0000000000000000 0x22 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_fixunsdfsi.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_truncdfsf2.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_truncdfsf2.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtend.o - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtend.o - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtend.o - .eh_frame 0x0000000000000000 0x4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtend.o - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtend.o - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o - -Memory Configuration - -Name Origin Length Attributes -RAM 0x0000000020000000 0x0000000000010000 xrw -ROM 0x0000000008000000 0x0000000000040000 xr -*default* 0x0000000000000000 0xffffffffffffffff - -Linker script and memory map - -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/crt0.o -LOAD Src/Application/Car_Control.o -LOAD Src/Application/Collision_Avoidance.o -LOAD Src/Application/Motion_Planing.o -LOAD Src/Application/Path_Tracking.o -LOAD Src/Application/Scenario_Select.o -LOAD Src/HAL/HCOMPASS/HAL_COMPASS.o -LOAD Src/HAL/HMOTOR/HMOTOR.o -LOAD Src/HAL/HSERVO/HSERVO_Prog.o -LOAD Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o -LOAD Src/MCAL/MEXTI/MEXTI_Prog.o -LOAD Src/MCAL/MGPIO/MGPIO_Prog.o -LOAD Src/MCAL/MI2C/MI2C_Prog.o -LOAD Src/MCAL/MIWDT/MIWDT_Prog.o -LOAD Src/MCAL/MNVIC/MNVIC_Prog.o -LOAD Src/MCAL/MRCC/MRCC_Prog.o -LOAD Src/MCAL/MSPI/MSPI_Prog.o -LOAD Src/MCAL/MSTK/MSYSTICK_Prog.o -LOAD Src/MCAL/MTIMER/MTIMER_Prog.o -LOAD Src/MCAL/MUART/MUSART_Program.o -LOAD Src/main.o -LOAD Src/syscalls.o -LOAD Src/sysmem.o -LOAD Startup/startup_stm32f401rctx.o -START GROUP -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a -END GROUP -START GROUP -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a -END GROUP -START GROUP -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libnosys.a -END GROUP -START GROUP -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libnosys.a -END GROUP -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtend.o -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o - 0x0000000020010000 _estack = (ORIGIN (RAM) + LENGTH (RAM)) - 0x0000000000000200 _Min_Heap_Size = 0x200 - 0x0000000000000400 _Min_Stack_Size = 0x400 - -.isr_vector 0x0000000008000000 0x194 - 0x0000000008000000 . = ALIGN (0x4) - *(.isr_vector) - .isr_vector 0x0000000008000000 0x194 Startup/startup_stm32f401rctx.o - 0x0000000008000000 g_pfnVectors - 0x0000000008000194 . = ALIGN (0x4) - -.text 0x0000000008000198 0x2108 - 0x0000000008000198 . = ALIGN (0x4) - *(.text) - .text 0x0000000008000198 0x40 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - .text 0x00000000080001d8 0x378 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_addsubdf3.o) - 0x00000000080001d8 __aeabi_drsub - 0x00000000080001e0 __aeabi_dsub - 0x00000000080001e0 __subdf3 - 0x00000000080001e4 __aeabi_dadd - 0x00000000080001e4 __adddf3 - 0x000000000800045c __floatunsidf - 0x000000000800045c __aeabi_ui2d - 0x000000000800047c __floatsidf - 0x000000000800047c __aeabi_i2d - 0x00000000080004a0 __aeabi_f2d - 0x00000000080004a0 __extendsfdf2 - 0x00000000080004e4 __floatundidf - 0x00000000080004e4 __aeabi_ul2d - 0x00000000080004f4 __floatdidf - 0x00000000080004f4 __aeabi_l2d - .text 0x0000000008000550 0x424 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_muldivdf3.o) - 0x0000000008000550 __aeabi_dmul - 0x0000000008000550 __muldf3 - 0x00000000080007a4 __divdf3 - 0x00000000080007a4 __aeabi_ddiv - .text 0x0000000008000974 0xa0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_truncdfsf2.o) - 0x0000000008000974 __truncdfsf2 - 0x0000000008000974 __aeabi_d2f - *(.text*) - .text.Increment_Pulse_CallBack - 0x0000000008000a14 0x2c Src/HAL/HMOTOR/HMOTOR.o - 0x0000000008000a14 Increment_Pulse_CallBack - .text.HAL_MOTOR_Init - 0x0000000008000a40 0xbc Src/HAL/HMOTOR/HMOTOR.o - 0x0000000008000a40 HAL_MOTOR_Init - *fill* 0x0000000008000afc 0x4 - .text.HAL_MOTOR_MOVE - 0x0000000008000b00 0x12c Src/HAL/HMOTOR/HMOTOR.o - 0x0000000008000b00 HAL_MOTOR_MOVE - .text.HAL_MOTOR_STOP - 0x0000000008000c2c 0x34 Src/HAL/HMOTOR/HMOTOR.o - 0x0000000008000c2c HAL_MOTOR_STOP - .text.HSERVO_vServoInit - 0x0000000008000c60 0x1f0 Src/HAL/HSERVO/HSERVO_Prog.o - 0x0000000008000c60 HSERVO_vServoInit - .text.HSERVO_vServoDeg - 0x0000000008000e50 0x84 Src/HAL/HSERVO/HSERVO_Prog.o - 0x0000000008000e50 HSERVO_vServoDeg - .text.SYSCFG_vConfigEXTI_Line - 0x0000000008000ed4 0x74 Src/MCAL/MEXTI/MEXTI_Prog.o - 0x0000000008000ed4 SYSCFG_vConfigEXTI_Line - .text.MEXTI_vEnableInterrupt - 0x0000000008000f48 0x30 Src/MCAL/MEXTI/MEXTI_Prog.o - 0x0000000008000f48 MEXTI_vEnableInterrupt - .text.MEXTI_vInterruptTrigger - 0x0000000008000f78 0xb4 Src/MCAL/MEXTI/MEXTI_Prog.o - 0x0000000008000f78 MEXTI_vInterruptTrigger - .text.MEXTI_vCallBack - 0x000000000800102c 0x2c Src/MCAL/MEXTI/MEXTI_Prog.o - 0x000000000800102c MEXTI_vCallBack - .text.EXTI0_IRQHandler - 0x0000000008001058 0x24 Src/MCAL/MEXTI/MEXTI_Prog.o - 0x0000000008001058 EXTI0_IRQHandler - .text.EXTI1_IRQHandler - 0x000000000800107c 0x24 Src/MCAL/MEXTI/MEXTI_Prog.o - 0x000000000800107c EXTI1_IRQHandler - .text.EXTI2_IRQHandler - 0x00000000080010a0 0x24 Src/MCAL/MEXTI/MEXTI_Prog.o - 0x00000000080010a0 EXTI2_IRQHandler - .text.EXTI3_IRQHandler - 0x00000000080010c4 0x24 Src/MCAL/MEXTI/MEXTI_Prog.o - 0x00000000080010c4 EXTI3_IRQHandler - .text.EXTI4_IRQHandler - 0x00000000080010e8 0x24 Src/MCAL/MEXTI/MEXTI_Prog.o - 0x00000000080010e8 EXTI4_IRQHandler - .text.EXTI9_5_IRQHandler - 0x000000000800110c 0x144 Src/MCAL/MEXTI/MEXTI_Prog.o - 0x000000000800110c EXTI9_5_IRQHandler - .text.EXTI15_10_IRQHandler - 0x0000000008001250 0x184 Src/MCAL/MEXTI/MEXTI_Prog.o - 0x0000000008001250 EXTI15_10_IRQHandler - .text.MGPIO_vSetPinMode - 0x00000000080013d4 0xcc Src/MCAL/MGPIO/MGPIO_Prog.o - 0x00000000080013d4 MGPIO_vSetPinMode - .text.MGPIO_vSetPinValue - 0x00000000080014a0 0xd8 Src/MCAL/MGPIO/MGPIO_Prog.o - 0x00000000080014a0 MGPIO_vSetPinValue - .text.MGPIO_vSetAlternativeFunction - 0x0000000008001578 0x180 Src/MCAL/MGPIO/MGPIO_Prog.o - 0x0000000008001578 MGPIO_vSetAlternativeFunction - .text.MNVIC_vEnableInterrupt - 0x00000000080016f8 0x34 Src/MCAL/MNVIC/MNVIC_Prog.o - 0x00000000080016f8 MNVIC_vEnableInterrupt - .text.MRCC_vInit - 0x000000000800172c 0x4c Src/MCAL/MRCC/MRCC_Prog.o - 0x000000000800172c MRCC_vInit - .text.MRCC_vEnableClock - 0x0000000008001778 0x94 Src/MCAL/MRCC/MRCC_Prog.o - 0x0000000008001778 MRCC_vEnableClock - .text.SPI1_IRQHandler - 0x000000000800180c 0x4c Src/MCAL/MSPI/MSPI_Prog.o - 0x000000000800180c SPI1_IRQHandler - .text.SPI2_IRQHandler - 0x0000000008001858 0x4c Src/MCAL/MSPI/MSPI_Prog.o - 0x0000000008001858 SPI2_IRQHandler - .text.SPI3_IRQHandler - 0x00000000080018a4 0x4c Src/MCAL/MSPI/MSPI_Prog.o - 0x00000000080018a4 SPI3_IRQHandler - .text.SPI4_IRQHandler - 0x00000000080018f0 0x4c Src/MCAL/MSPI/MSPI_Prog.o - 0x00000000080018f0 SPI4_IRQHandler - .text.SysTick_Handler - 0x000000000800193c 0x1c Src/MCAL/MSTK/MSYSTICK_Prog.o - 0x000000000800193c SysTick_Handler - .text.GET_TIMER - 0x0000000008001958 0x44 Src/MCAL/MTIMER/MTIMER_Prog.o - 0x0000000008001958 GET_TIMER - .text.MTIMER_vPWM - 0x000000000800199c 0x25c Src/MCAL/MTIMER/MTIMER_Prog.o - 0x000000000800199c MTIMER_vPWM - .text.TIMER_ICU - 0x0000000008001bf8 0xf0 Src/MCAL/MTIMER/MTIMER_Prog.o - 0x0000000008001bf8 TIMER_ICU - .text.TIM1_UP_TIM10_IRQHandler - 0x0000000008001ce8 0x94 Src/MCAL/MTIMER/MTIMER_Prog.o - 0x0000000008001ce8 TIM1_UP_TIM10_IRQHandler - .text.TIM1_TRG_COM_TIM11_IRQHandler - 0x0000000008001d7c 0x88 Src/MCAL/MTIMER/MTIMER_Prog.o - 0x0000000008001d7c TIM1_TRG_COM_TIM11_IRQHandler - .text.TIM1_BRK_TIM9_IRQHandler - 0x0000000008001e04 0x9c Src/MCAL/MTIMER/MTIMER_Prog.o - 0x0000000008001e04 TIM1_BRK_TIM9_IRQHandler - .text.TIM1_CC_IRQHandler - 0x0000000008001ea0 0x8c Src/MCAL/MTIMER/MTIMER_Prog.o - 0x0000000008001ea0 TIM1_CC_IRQHandler - .text.TIM2_IRQHandler - 0x0000000008001f2c 0xf0 Src/MCAL/MTIMER/MTIMER_Prog.o - 0x0000000008001f2c TIM2_IRQHandler - .text.TIM3_IRQHandler - 0x000000000800201c 0xd4 Src/MCAL/MTIMER/MTIMER_Prog.o - 0x000000000800201c TIM3_IRQHandler - .text.main 0x00000000080020f0 0xfc Src/main.o - 0x00000000080020f0 main - .text.Reset_Handler - 0x00000000080021ec 0x50 Startup/startup_stm32f401rctx.o - 0x00000000080021ec Reset_Handler - .text.Default_Handler - 0x000000000800223c 0x2 Startup/startup_stm32f401rctx.o - 0x000000000800223c RTC_Alarm_IRQHandler - 0x000000000800223c DebugMon_Handler - 0x000000000800223c HardFault_Handler - 0x000000000800223c PVD_IRQHandler - 0x000000000800223c SDIO_IRQHandler - 0x000000000800223c TAMP_STAMP_IRQHandler - 0x000000000800223c PendSV_Handler - 0x000000000800223c NMI_Handler - 0x000000000800223c I2C3_ER_IRQHandler - 0x000000000800223c I2C2_EV_IRQHandler - 0x000000000800223c FPU_IRQHandler - 0x000000000800223c UsageFault_Handler - 0x000000000800223c I2C1_EV_IRQHandler - 0x000000000800223c RCC_IRQHandler - 0x000000000800223c Default_Handler - 0x000000000800223c ADC_IRQHandler - 0x000000000800223c I2C3_EV_IRQHandler - 0x000000000800223c RTC_WKUP_IRQHandler - 0x000000000800223c MemManage_Handler - 0x000000000800223c SVC_Handler - 0x000000000800223c OTG_FS_WKUP_IRQHandler - 0x000000000800223c I2C2_ER_IRQHandler - 0x000000000800223c FLASH_IRQHandler - 0x000000000800223c BusFault_Handler - 0x000000000800223c OTG_FS_IRQHandler - 0x000000000800223c I2C1_ER_IRQHandler - *fill* 0x000000000800223e 0x2 - .text.__libc_init_array - 0x0000000008002240 0x48 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) - 0x0000000008002240 __libc_init_array - *(.glue_7) - .glue_7 0x0000000008002288 0x0 linker stubs - *(.glue_7t) - .glue_7t 0x0000000008002288 0x0 linker stubs - *(.eh_frame) - .eh_frame 0x0000000008002288 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - *(.init) - .init 0x0000000008002288 0x4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o - 0x0000000008002288 _init - .init 0x000000000800228c 0x8 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o - *(.fini) - .fini 0x0000000008002294 0x4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o - 0x0000000008002294 _fini - .fini 0x0000000008002298 0x8 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o - 0x00000000080022a0 . = ALIGN (0x4) - 0x00000000080022a0 _etext = . - -.vfp11_veneer 0x00000000080022a0 0x0 - .vfp11_veneer 0x00000000080022a0 0x0 linker stubs - -.v4_bx 0x00000000080022a0 0x0 - .v4_bx 0x00000000080022a0 0x0 linker stubs - -.iplt 0x00000000080022a0 0x0 - .iplt 0x00000000080022a0 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - -.rodata 0x00000000080022a0 0x20 - 0x00000000080022a0 . = ALIGN (0x4) - *(.rodata) - .rodata 0x00000000080022a0 0x20 Src/MCAL/MTIMER/MTIMER_Prog.o - *(.rodata*) - 0x00000000080022c0 . = ALIGN (0x4) - -.rel.dyn 0x00000000080022c0 0x0 - .rel.iplt 0x00000000080022c0 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - -.ARM.extab 0x00000000080022c0 0x0 - 0x00000000080022c0 . = ALIGN (0x4) - *(.ARM.extab* .gnu.linkonce.armextab.*) - 0x00000000080022c0 . = ALIGN (0x4) - -.ARM 0x00000000080022c0 0x0 - 0x00000000080022c0 . = ALIGN (0x4) - 0x00000000080022c0 __exidx_start = . - *(.ARM.exidx*) - 0x00000000080022c0 __exidx_end = . - 0x00000000080022c0 . = ALIGN (0x4) - -.preinit_array 0x00000000080022c0 0x0 - 0x00000000080022c0 . = ALIGN (0x4) - 0x00000000080022c0 PROVIDE (__preinit_array_start = .) - *(.preinit_array*) - 0x00000000080022c0 PROVIDE (__preinit_array_end = .) - 0x00000000080022c0 . = ALIGN (0x4) - -.init_array 0x00000000080022c0 0x4 - 0x00000000080022c0 . = ALIGN (0x4) - 0x00000000080022c0 PROVIDE (__init_array_start = .) - *(SORT_BY_NAME(.init_array.*)) - *(.init_array*) - .init_array 0x00000000080022c0 0x4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - 0x00000000080022c4 PROVIDE (__init_array_end = .) - 0x00000000080022c4 . = ALIGN (0x4) - -.fini_array 0x00000000080022c4 0x4 - 0x00000000080022c4 . = ALIGN (0x4) - [!provide] PROVIDE (__fini_array_start = .) - *(SORT_BY_NAME(.fini_array.*)) - *(.fini_array*) - .fini_array 0x00000000080022c4 0x4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - [!provide] PROVIDE (__fini_array_end = .) - 0x00000000080022c8 . = ALIGN (0x4) - 0x00000000080022c8 _sidata = LOADADDR (.data) - -.data 0x0000000020000000 0x0 load address 0x00000000080022c8 - 0x0000000020000000 . = ALIGN (0x4) - 0x0000000020000000 _sdata = . - *(.data) - *(.data*) - 0x0000000020000000 . = ALIGN (0x4) - 0x0000000020000000 _edata = . - -.igot.plt 0x0000000020000000 0x0 load address 0x00000000080022c8 - .igot.plt 0x0000000020000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - 0x0000000020000000 . = ALIGN (0x4) - -.bss 0x0000000020000000 0x234 load address 0x00000000080022c8 - 0x0000000020000000 _sbss = . - 0x0000000020000000 __bss_start__ = _sbss - *(.bss) - .bss 0x0000000020000000 0x1c c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - *(.bss*) - .bss.encoder_pulses - 0x000000002000001c 0x4 Src/HAL/HMOTOR/HMOTOR.o - 0x000000002000001c encoder_pulses - .bss.temp_pulses - 0x0000000020000020 0x4 Src/HAL/HMOTOR/HMOTOR.o - 0x0000000020000020 temp_pulses - .bss.GLOBAL_EXTIPtr - 0x0000000020000024 0x40 Src/MCAL/MEXTI/MEXTI_Prog.o - .bss.SPIx_pvTxcallback - 0x0000000020000064 0x10 Src/MCAL/MSPI/MSPI_Prog.o - .bss.SPIx_pvRXcallback - 0x0000000020000074 0x10 Src/MCAL/MSPI/MSPI_Prog.o - .bss.GLOBAL_SYSTICK_CallBack - 0x0000000020000084 0x4 Src/MCAL/MSTK/MSYSTICK_Prog.o - .bss.GLOBAL_Ptr - 0x0000000020000088 0x20 Src/MCAL/MTIMER/MTIMER_Prog.o - .bss.Time 0x00000000200000a8 0x74 Src/MCAL/MTIMER/MTIMER_Prog.o - 0x00000000200000a8 Time - .bss.captureState.6238 - 0x000000002000011c 0x1d Src/MCAL/MTIMER/MTIMER_Prog.o - *fill* 0x0000000020000139 0x3 - .bss.captureValue1.6239 - 0x000000002000013c 0x74 Src/MCAL/MTIMER/MTIMER_Prog.o - .bss.captureValue2.6240 - 0x00000000200001b0 0x74 Src/MCAL/MTIMER/MTIMER_Prog.o - *(COMMON) - COMMON 0x0000000020000224 0xa Src/HAL/HMOTOR/HMOTOR.o - 0x0000000020000224 Motor_Pins - *fill* 0x000000002000022e 0x2 - COMMON 0x0000000020000230 0x2 Src/HAL/HSERVO/HSERVO_Prog.o - 0x0000000020000230 SERVO_STRUCT - 0x0000000020000234 . = ALIGN (0x4) - *fill* 0x0000000020000232 0x2 - 0x0000000020000234 _ebss = . - 0x0000000020000234 __bss_end__ = _ebss - -._user_heap_stack - 0x0000000020000234 0x604 load address 0x00000000080022c8 - 0x0000000020000238 . = ALIGN (0x8) - *fill* 0x0000000020000234 0x4 - [!provide] PROVIDE (end = .) - 0x0000000020000238 PROVIDE (_end = .) - 0x0000000020000438 . = (. + _Min_Heap_Size) - *fill* 0x0000000020000238 0x200 - 0x0000000020000838 . = (. + _Min_Stack_Size) - *fill* 0x0000000020000438 0x400 - 0x0000000020000838 . = ALIGN (0x8) - -/DISCARD/ - libc.a(*) - libm.a(*) - libgcc.a(*) - -.ARM.attributes - 0x0000000000000000 0x30 - *(.ARM.attributes) - .ARM.attributes - 0x0000000000000000 0x22 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o - .ARM.attributes - 0x0000000000000022 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - .ARM.attributes - 0x0000000000000056 0x39 Src/HAL/HMOTOR/HMOTOR.o - .ARM.attributes - 0x000000000000008f 0x39 Src/HAL/HSERVO/HSERVO_Prog.o - .ARM.attributes - 0x00000000000000c8 0x39 Src/MCAL/MEXTI/MEXTI_Prog.o - .ARM.attributes - 0x0000000000000101 0x39 Src/MCAL/MGPIO/MGPIO_Prog.o - .ARM.attributes - 0x000000000000013a 0x39 Src/MCAL/MNVIC/MNVIC_Prog.o - .ARM.attributes - 0x0000000000000173 0x39 Src/MCAL/MRCC/MRCC_Prog.o - .ARM.attributes - 0x00000000000001ac 0x39 Src/MCAL/MSPI/MSPI_Prog.o - .ARM.attributes - 0x00000000000001e5 0x39 Src/MCAL/MSTK/MSYSTICK_Prog.o - .ARM.attributes - 0x000000000000021e 0x39 Src/MCAL/MTIMER/MTIMER_Prog.o - .ARM.attributes - 0x0000000000000257 0x39 Src/main.o - .ARM.attributes - 0x0000000000000290 0x21 Startup/startup_stm32f401rctx.o - .ARM.attributes - 0x00000000000002b1 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) - .ARM.attributes - 0x00000000000002e5 0x22 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_addsubdf3.o) - .ARM.attributes - 0x0000000000000307 0x22 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_muldivdf3.o) - .ARM.attributes - 0x0000000000000329 0x22 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_truncdfsf2.o) - .ARM.attributes - 0x000000000000034b 0x22 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o -OUTPUT(AutoParkingCar.elf elf32-littlearm) - -.debug_info 0x0000000000000000 0x729e - .debug_info 0x0000000000000000 0xb68 Src/HAL/HMOTOR/HMOTOR.o - .debug_info 0x0000000000000b68 0x2cb Src/HAL/HSERVO/HSERVO_Prog.o - .debug_info 0x0000000000000e33 0xc68 Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_info 0x0000000000001a9b 0xb6f Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_info 0x000000000000260a 0xdda Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_info 0x00000000000033e4 0xbbc Src/MCAL/MRCC/MRCC_Prog.o - .debug_info 0x0000000000003fa0 0xbf4 Src/MCAL/MSPI/MSPI_Prog.o - .debug_info 0x0000000000004b94 0xa15 Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_info 0x00000000000055a9 0xffd Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_info 0x00000000000065a6 0xcd6 Src/main.o - .debug_info 0x000000000000727c 0x22 Startup/startup_stm32f401rctx.o - -.debug_abbrev 0x0000000000000000 0x138a - .debug_abbrev 0x0000000000000000 0x229 Src/HAL/HMOTOR/HMOTOR.o - .debug_abbrev 0x0000000000000229 0xee Src/HAL/HSERVO/HSERVO_Prog.o - .debug_abbrev 0x0000000000000317 0x205 Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_abbrev 0x000000000000051c 0x1e9 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_abbrev 0x0000000000000705 0x21f Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_abbrev 0x0000000000000924 0x1cf Src/MCAL/MRCC/MRCC_Prog.o - .debug_abbrev 0x0000000000000af3 0x238 Src/MCAL/MSPI/MSPI_Prog.o - .debug_abbrev 0x0000000000000d2b 0x22a Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_abbrev 0x0000000000000f55 0x25c Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_abbrev 0x00000000000011b1 0x1c7 Src/main.o - .debug_abbrev 0x0000000000001378 0x12 Startup/startup_stm32f401rctx.o - -.debug_aranges 0x0000000000000000 0x388 - .debug_aranges - 0x0000000000000000 0x38 Src/HAL/HMOTOR/HMOTOR.o - .debug_aranges - 0x0000000000000038 0x28 Src/HAL/HSERVO/HSERVO_Prog.o - .debug_aranges - 0x0000000000000060 0x98 Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_aranges - 0x00000000000000f8 0x58 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_aranges - 0x0000000000000150 0x58 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_aranges - 0x00000000000001a8 0x30 Src/MCAL/MRCC/MRCC_Prog.o - .debug_aranges - 0x00000000000001d8 0x80 Src/MCAL/MSPI/MSPI_Prog.o - .debug_aranges - 0x0000000000000258 0x58 Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_aranges - 0x00000000000002b0 0x90 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_aranges - 0x0000000000000340 0x20 Src/main.o - .debug_aranges - 0x0000000000000360 0x28 Startup/startup_stm32f401rctx.o - -.debug_ranges 0x0000000000000000 0x2e0 - .debug_ranges 0x0000000000000000 0x28 Src/HAL/HMOTOR/HMOTOR.o - .debug_ranges 0x0000000000000028 0x18 Src/HAL/HSERVO/HSERVO_Prog.o - .debug_ranges 0x0000000000000040 0x88 Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_ranges 0x00000000000000c8 0x48 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_ranges 0x0000000000000110 0x48 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_ranges 0x0000000000000158 0x20 Src/MCAL/MRCC/MRCC_Prog.o - .debug_ranges 0x0000000000000178 0x70 Src/MCAL/MSPI/MSPI_Prog.o - .debug_ranges 0x00000000000001e8 0x48 Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_ranges 0x0000000000000230 0x80 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_ranges 0x00000000000002b0 0x10 Src/main.o - .debug_ranges 0x00000000000002c0 0x20 Startup/startup_stm32f401rctx.o - -.debug_macro 0x0000000000000000 0x1177 - .debug_macro 0x0000000000000000 0x13c Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x000000000000013c 0x130 Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x000000000000026c 0x2e Src/HAL/HMOTOR/HMOTOR.o - .debug_macro 0x000000000000029a 0x50 Src/HAL/HSERVO/HSERVO_Prog.o - .debug_macro 0x00000000000002ea 0x1c Src/HAL/HSERVO/HSERVO_Prog.o - .debug_macro 0x0000000000000306 0x109 Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_macro 0x000000000000040f 0x2e Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_macro 0x000000000000043d 0x2e Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_macro 0x000000000000046b 0x103 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_macro 0x000000000000056e 0x2e Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_macro 0x000000000000059c 0x136 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_macro 0x00000000000006d2 0x103 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_macro 0x00000000000007d5 0x10 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_macro 0x00000000000007e5 0x22 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_macro 0x0000000000000807 0x109 Src/MCAL/MRCC/MRCC_Prog.o - .debug_macro 0x0000000000000910 0x16 Src/MCAL/MRCC/MRCC_Prog.o - .debug_macro 0x0000000000000926 0x7c Src/MCAL/MRCC/MRCC_Prog.o - .debug_macro 0x00000000000009a2 0x115 Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000ab7 0x88 Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000b3f 0x6a Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000ba9 0x16 Src/MCAL/MSPI/MSPI_Prog.o - .debug_macro 0x0000000000000bbf 0x109 Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_macro 0x0000000000000cc8 0x2e Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_macro 0x0000000000000cf6 0x2e Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_macro 0x0000000000000d24 0x109 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_macro 0x0000000000000e2d 0x108 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_macro 0x0000000000000f35 0x10 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_macro 0x0000000000000f45 0x1b6 Src/main.o - .debug_macro 0x00000000000010fb 0x7c Src/main.o - -.debug_line 0x0000000000000000 0x3a52 - .debug_line 0x0000000000000000 0x64b Src/HAL/HMOTOR/HMOTOR.o - .debug_line 0x000000000000064b 0x1a8 Src/HAL/HSERVO/HSERVO_Prog.o - .debug_line 0x00000000000007f3 0x66f Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_line 0x0000000000000e62 0x616 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_line 0x0000000000001478 0x585 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_line 0x00000000000019fd 0x558 Src/MCAL/MRCC/MRCC_Prog.o - .debug_line 0x0000000000001f55 0x6d9 Src/MCAL/MSPI/MSPI_Prog.o - .debug_line 0x000000000000262e 0x59e Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_line 0x0000000000002bcc 0x6cd Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_line 0x0000000000003299 0x735 Src/main.o - .debug_line 0x00000000000039ce 0x84 Startup/startup_stm32f401rctx.o - -.debug_str 0x0000000000000000 0x94e2 - .debug_str 0x0000000000000000 0x72b6 Src/HAL/HMOTOR/HMOTOR.o - 0x749f (size before relaxing) - .debug_str 0x00000000000072b6 0x1f6 Src/HAL/HSERVO/HSERVO_Prog.o - 0x337d (size before relaxing) - .debug_str 0x00000000000074ac 0x359 Src/MCAL/MEXTI/MEXTI_Prog.o - 0x72b1 (size before relaxing) - .debug_str 0x0000000000007805 0x2b6 Src/MCAL/MGPIO/MGPIO_Prog.o - 0x74a3 (size before relaxing) - .debug_str 0x0000000000007abb 0x629 Src/MCAL/MNVIC/MNVIC_Prog.o - 0x752a (size before relaxing) - .debug_str 0x00000000000080e4 0x3ac Src/MCAL/MRCC/MRCC_Prog.o - 0x72bf (size before relaxing) - .debug_str 0x0000000000008490 0x4bd Src/MCAL/MSPI/MSPI_Prog.o - 0x7696 (size before relaxing) - .debug_str 0x000000000000894d 0x226 Src/MCAL/MSTK/MSYSTICK_Prog.o - 0x7105 (size before relaxing) - .debug_str 0x0000000000008b73 0x714 Src/MCAL/MTIMER/MTIMER_Prog.o - 0x7677 (size before relaxing) - .debug_str 0x0000000000009287 0x22a Src/main.o - 0x7d24 (size before relaxing) - .debug_str 0x00000000000094b1 0x31 Startup/startup_stm32f401rctx.o - 0x5d (size before relaxing) - -.comment 0x0000000000000000 0x7b - .comment 0x0000000000000000 0x7b Src/HAL/HMOTOR/HMOTOR.o - 0x7c (size before relaxing) - .comment 0x000000000000007b 0x7c Src/HAL/HSERVO/HSERVO_Prog.o - .comment 0x000000000000007b 0x7c Src/MCAL/MEXTI/MEXTI_Prog.o - .comment 0x000000000000007b 0x7c Src/MCAL/MGPIO/MGPIO_Prog.o - .comment 0x000000000000007b 0x7c Src/MCAL/MNVIC/MNVIC_Prog.o - .comment 0x000000000000007b 0x7c Src/MCAL/MRCC/MRCC_Prog.o - .comment 0x000000000000007b 0x7c Src/MCAL/MSPI/MSPI_Prog.o - .comment 0x000000000000007b 0x7c Src/MCAL/MSTK/MSYSTICK_Prog.o - .comment 0x000000000000007b 0x7c Src/MCAL/MTIMER/MTIMER_Prog.o - .comment 0x000000000000007b 0x7c Src/main.o - -.debug_frame 0x0000000000000000 0xce4 - .debug_frame 0x0000000000000000 0x9c Src/HAL/HMOTOR/HMOTOR.o - .debug_frame 0x000000000000009c 0x58 Src/HAL/HSERVO/HSERVO_Prog.o - .debug_frame 0x00000000000000f4 0x23c Src/MCAL/MEXTI/MEXTI_Prog.o - .debug_frame 0x0000000000000330 0x150 Src/MCAL/MGPIO/MGPIO_Prog.o - .debug_frame 0x0000000000000480 0x150 Src/MCAL/MNVIC/MNVIC_Prog.o - .debug_frame 0x00000000000005d0 0x80 Src/MCAL/MRCC/MRCC_Prog.o - .debug_frame 0x0000000000000650 0x1e8 Src/MCAL/MSPI/MSPI_Prog.o - .debug_frame 0x0000000000000838 0x12c Src/MCAL/MSTK/MSYSTICK_Prog.o - .debug_frame 0x0000000000000964 0x204 Src/MCAL/MTIMER/MTIMER_Prog.o - .debug_frame 0x0000000000000b68 0x30 Src/main.o - .debug_frame 0x0000000000000b98 0x2c c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) - .debug_frame 0x0000000000000bc4 0xac c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_addsubdf3.o) - .debug_frame 0x0000000000000c70 0x50 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_muldivdf3.o) - .debug_frame 0x0000000000000cc0 0x24 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_truncdfsf2.o) diff --git a/AutoParkingCar/Debug/Src/Application/Car_Control.d b/AutoParkingCar/Debug/Src/Application/Car_Control.d deleted file mode 100644 index fe0d497..0000000 --- a/AutoParkingCar/Debug/Src/Application/Car_Control.d +++ /dev/null @@ -1,16 +0,0 @@ -Src/Application/Car_Control.o: ../Src/Application/Car_Control.c \ - ../Src/Application/Inc/CAR_CONTROL.h \ - ../Src/Application/Inc/../../HAL/HMOTOR/HMOTOR.h \ - g:\embedded\ systems\gp\autoparkingcar\src\lib\std_types.h \ - ../Src/Application/Inc/../../HAL/HSERVO/HSERVO_Int.h \ - ../Src/Application/Inc/../../LIB/STD_TYPES.h - -../Src/Application/Inc/CAR_CONTROL.h: - -../Src/Application/Inc/../../HAL/HMOTOR/HMOTOR.h: - -g:\embedded\ systems\gp\autoparkingcar\src\lib\std_types.h: - -../Src/Application/Inc/../../HAL/HSERVO/HSERVO_Int.h: - -../Src/Application/Inc/../../LIB/STD_TYPES.h: diff --git a/AutoParkingCar/Debug/Src/Application/Car_Control.su b/AutoParkingCar/Debug/Src/Application/Car_Control.su deleted file mode 100644 index e69de29..0000000 diff --git a/AutoParkingCar/Debug/Src/Application/Collision_Avoidance.d b/AutoParkingCar/Debug/Src/Application/Collision_Avoidance.d deleted file mode 100644 index 9d008d3..0000000 --- a/AutoParkingCar/Debug/Src/Application/Collision_Avoidance.d +++ /dev/null @@ -1,17 +0,0 @@ -Src/Application/Collision_Avoidance.o: \ - ../Src/Application/Collision_Avoidance.c \ - ../Src/Application/Inc/Collision_Avoidance.h \ - ../Src/Application/Inc/../../LIB/STD_TYPES.h \ - ../Src/Application/Inc/../../LIB/BIT_MATH.h \ - ../Src/Application/Inc/../../HAL/HMOTOR/HMOTOR.h \ - g:\embedded\ systems\gp\autoparkingcar\src\lib\std_types.h - -../Src/Application/Inc/Collision_Avoidance.h: - -../Src/Application/Inc/../../LIB/STD_TYPES.h: - -../Src/Application/Inc/../../LIB/BIT_MATH.h: - -../Src/Application/Inc/../../HAL/HMOTOR/HMOTOR.h: - -g:\embedded\ systems\gp\autoparkingcar\src\lib\std_types.h: diff --git a/AutoParkingCar/Debug/Src/Application/Collision_Avoidance.o b/AutoParkingCar/Debug/Src/Application/Collision_Avoidance.o deleted file mode 100644 index 68b603b74b857f73026bf8d12d37293984d21431..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56964 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
    $@xy3W2~<|NF1$Hq`F4o(n_ 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 Bk=+0Q diff --git a/AutoParkingCar/Debug/Src/Application/Collision_Avoidance.su b/AutoParkingCar/Debug/Src/Application/Collision_Avoidance.su deleted file mode 100644 index 549858b..0000000 --- a/AutoParkingCar/Debug/Src/Application/Collision_Avoidance.su +++ /dev/null @@ -1,9 +0,0 @@ -Collision_Avoidance.c:11:24:InitCollisionAvoidance 16 static -Collision_Avoidance.c:44:6:FR_CA_Scenario 4 static -Collision_Avoidance.c:52:6:FL_CA_Scenario 4 static -Collision_Avoidance.c:59:6:BR_CA_Scenario 4 static -Collision_Avoidance.c:67:6:BL_CA_Scenario 4 static -Collision_Avoidance.c:74:6:RF_CA_Scenario 4 static -Collision_Avoidance.c:82:6:RB_CA_Scenario 4 static -Collision_Avoidance.c:89:6:LF_CA_Scenario 4 static -Collision_Avoidance.c:96:6:LB_CA_Scenario 4 static diff --git a/AutoParkingCar/Debug/Src/Application/Motion_Planing.d b/AutoParkingCar/Debug/Src/Application/Motion_Planing.d deleted file mode 100644 index 2f0d587..0000000 --- a/AutoParkingCar/Debug/Src/Application/Motion_Planing.d +++ /dev/null @@ -1,25 +0,0 @@ -Src/Application/Motion_Planing.o: ../Src/Application/Motion_Planing.c \ - ../Src/Application/Inc/Motion_Planing.h \ - ../Src/Application/Inc/../../LIB/STD_TYPES.h \ - ../Src/Application/Inc/../Inc/Scenario_Select.h \ - ../Src/Application/../LIB/STD_TYPES.h \ - ../Src/Application/../MCAL/MTIMER/MTIMER_Int.h \ - ../Src/Application/../MCAL/MGPIO/MGPIO_int.h \ - ../Src/Application/../MCAL/MGPIO/../../LIB/STD_TYPES.h \ - ../Src/Application/../HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h - -../Src/Application/Inc/Motion_Planing.h: - -../Src/Application/Inc/../../LIB/STD_TYPES.h: - -../Src/Application/Inc/../Inc/Scenario_Select.h: - -../Src/Application/../LIB/STD_TYPES.h: - -../Src/Application/../MCAL/MTIMER/MTIMER_Int.h: - -../Src/Application/../MCAL/MGPIO/MGPIO_int.h: - -../Src/Application/../MCAL/MGPIO/../../LIB/STD_TYPES.h: - -../Src/Application/../HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h: diff --git a/AutoParkingCar/Debug/Src/Application/Motion_Planing.su b/AutoParkingCar/Debug/Src/Application/Motion_Planing.su deleted file mode 100644 index e69de29..0000000 diff --git a/AutoParkingCar/Debug/Src/Application/Path_Tracking.d b/AutoParkingCar/Debug/Src/Application/Path_Tracking.d deleted file mode 100644 index 0f60971..0000000 --- a/AutoParkingCar/Debug/Src/Application/Path_Tracking.d +++ /dev/null @@ -1,19 +0,0 @@ -Src/Application/Path_Tracking.o: ../Src/Application/Path_Tracking.c \ - ../Src/Application/Inc/Path_Tracking.h \ - ../Src/Application/Inc/../../LIB/STD_TYPES.h \ - ../Src/Application/Inc/../Inc/Motion_Planing.h \ - ../Src/Application/Inc/../Inc/../../LIB/STD_TYPES.h \ - ../Src/Application/Inc/../Inc/../Inc/Scenario_Select.h \ - ../Src/Application/Inc/../../LIB/BIT_MATH.h - -../Src/Application/Inc/Path_Tracking.h: - -../Src/Application/Inc/../../LIB/STD_TYPES.h: - -../Src/Application/Inc/../Inc/Motion_Planing.h: - -../Src/Application/Inc/../Inc/../../LIB/STD_TYPES.h: - -../Src/Application/Inc/../Inc/../Inc/Scenario_Select.h: - -../Src/Application/Inc/../../LIB/BIT_MATH.h: diff --git a/AutoParkingCar/Debug/Src/Application/Path_Tracking.o b/AutoParkingCar/Debug/Src/Application/Path_Tracking.o deleted file mode 100644 index d775e19616ed293b383b1e453dfdf30ddf90e7fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56196 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%0D>H<_Smf$#L}PoL)yZPhZ0_Xbmw# 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 diff --git a/AutoParkingCar/Debug/Src/HAL/HCOMPASS/HAL_COMPASS.su b/AutoParkingCar/Debug/Src/HAL/HCOMPASS/HAL_COMPASS.su deleted file mode 100644 index cc25f1a..0000000 --- a/AutoParkingCar/Debug/Src/HAL/HCOMPASS/HAL_COMPASS.su +++ /dev/null @@ -1 +0,0 @@ -HAL_COMPASS.c:9:6:HAL_CMP_vInit 4 static diff --git a/AutoParkingCar/Debug/Src/HAL/HCOMPASS/subdir.mk b/AutoParkingCar/Debug/Src/HAL/HCOMPASS/subdir.mk deleted file mode 100644 index d6c5732..0000000 --- a/AutoParkingCar/Debug/Src/HAL/HCOMPASS/subdir.mk +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Src/HAL/HCOMPASS/HAL_COMPASS.c - -OBJS += \ -./Src/HAL/HCOMPASS/HAL_COMPASS.o - -C_DEPS += \ -./Src/HAL/HCOMPASS/HAL_COMPASS.d - - -# Each subdirectory must supply rules for building sources it contributes -Src/HAL/HCOMPASS/HAL_COMPASS.o: ../Src/HAL/HCOMPASS/HAL_COMPASS.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/HAL/HCOMPASS/HAL_COMPASS.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Debug/Src/HAL/HMOTOR/HMOTOR.d b/AutoParkingCar/Debug/Src/HAL/HMOTOR/HMOTOR.d deleted file mode 100644 index 854689a..0000000 --- a/AutoParkingCar/Debug/Src/HAL/HMOTOR/HMOTOR.d +++ /dev/null @@ -1,27 +0,0 @@ -Src/HAL/HMOTOR/HMOTOR.o: ../Src/HAL/HMOTOR/HMOTOR.c \ - ../Src/HAL/HMOTOR/../../LIB/BIT_MATH.h \ - ../Src/HAL/HMOTOR/../../MCAL/MGPIO/MGPIO_Int.h \ - ../Src/HAL/HMOTOR/../../MCAL/MGPIO/../../LIB/STD_TYPES.h \ - ../Src/HAL/HMOTOR/../../MCAL/MGPIO/MGPIO_Config.h \ - ../Src/HAL/HMOTOR/HMOTOR.h ../Src/HAL/HMOTOR/../../LIB/STD_TYPES.h \ - ../Src/HAL/HMOTOR/../../MCAL/MTIMER/MTIMER_Int.h \ - ../Src/HAL/HMOTOR/../../MCAL/MEXTI/MEXTI_int.h \ - ../Src/HAL/HMOTOR/../../MCAL/MSTK/MSYSTICK_int.h - -../Src/HAL/HMOTOR/../../LIB/BIT_MATH.h: - -../Src/HAL/HMOTOR/../../MCAL/MGPIO/MGPIO_Int.h: - -../Src/HAL/HMOTOR/../../MCAL/MGPIO/../../LIB/STD_TYPES.h: - -../Src/HAL/HMOTOR/../../MCAL/MGPIO/MGPIO_Config.h: - -../Src/HAL/HMOTOR/HMOTOR.h: - -../Src/HAL/HMOTOR/../../LIB/STD_TYPES.h: - -../Src/HAL/HMOTOR/../../MCAL/MTIMER/MTIMER_Int.h: - -../Src/HAL/HMOTOR/../../MCAL/MEXTI/MEXTI_int.h: - -../Src/HAL/HMOTOR/../../MCAL/MSTK/MSYSTICK_int.h: diff --git a/AutoParkingCar/Debug/Src/HAL/HMOTOR/HMOTOR.o b/AutoParkingCar/Debug/Src/HAL/HMOTOR/HMOTOR.o deleted file mode 100644 index f0bc3d6618b89b7ef26be9ea6d06f5a6efc28948..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59612 zcmdSC2Yg)BwLW^z6j`?1ZGnx!9(Tz|@-&SkjKO1RRInNY-?z>>GiS!K;oke+``y35=R5nH zeRf@Y?X}ikd(Szs=6cgK4g1eDN{npCFn;-hyzzzwN{p>WT;7)J_Z`4az3&2cDNKepdYv^-JsDKEqvq{~1N~XPq&pe$5%nPk4LJ zoE=L~IBU-*b}Ttz%}3{);XC2}J)Juiov>!lGdqqtVa++6XWX~v?LFp_dG+uA{k`{V z_MDZyKWEKHUHbg`fB1Yg2wSnP|Hm?a_Rd(Gy`Nui`j`%5Olq>9muPHb|J14n>#u$= zTlR}lc6a@h`ioyTro4?3-+#vad#tb8{?l-+-N3Zm^;7HT)i0Lvx$DnL7)#eA-ri#z z?fS8Kbn%Z%e_gp@!S3h35!!I_?iasdE}1X!{2Ok>vx*Hb;+dh(=Kgw>#4MGV_S5AO zbD6}nzc%(i_qzAYeXsk@?EBNjXTI~NSI<2BPgfsv<2Tm-W#)*v*s5XmHkNJ9Ezi7W zEIqK4Z*P6>bvII&nUlhr1X=*Sc})MO*Z=Ezel>Z6vE&H!>ygqfY56;5ondUjKm4sb z5@dER$<8?U9^=j_QvS&~<@ZYYJvlWs_Ma9OO47X>})1Y;Cq4$wx1ka72TDMs+e?Fn`D$upt<*naJnDq0x0FU>dvj~%(!WeWH zPI?&R?713a&o#A_+13x@aan@5`$6^Y5#D-R3K3439L5D6_pRRtPMXeizI;7zUt-ML z_|z!m5c($3^>2!s7sMjhXT7hBqh`Df)d9 zkLA9w=%J{6KegzJRrdYNnep9*H*_ApoNG+;lmH8l!euZ1N%4_U6>7fBTQ$XnjJj~| zt+A?b%_#1Vv2q$4!u=ZF7Z$yS{`Vfs`>91Q6yts^?`IZ$q8Ina@qTX6U%+C#$Mb$( zQPWYlU&s3+i&7)FkMiDU%z9%6k~6(0oWPvFJOyty@YX1L1I)+U%=>d^KY}jxwzABI zIr|6w2%N|Oh^KHe@FYZ%iYzi_JlSLzS9rUxXL8bF8+mIKtwno!H!)LB(K~2r@8+BF zys&8Na@=qEChjjm+c2fVJ8&y&ZUp8`^RRJdT#HMgcl=j?qDR3Ky*qhp6cw@P zyCi+2L+Y5Z2|eKR-q7Y|hwU)DpO%<2<0FRmMu|8xzRU35#M{E6e>UR#n^9*p=tF1| z?`L>FeP+BTZFu*62YJja^05w|W&C+X_mLVte=bJRk;e3w@p|qYH1SsNn8|0wYcR!l zcbklB6c=F7c+WP!T!6|KpLs+kP+0sdW(s{XwfOdh2%IC|%q+ffEduA6MQGl+#s7v0 z%zJ^nnOFRoBN4br0!J3lB&~kT{MRH@^|1ILYIzAd1+-NBDNJVG%gk8_loZcdhrku` zO<8d-3h2E`0{-IL%MiF)@(CBevIT)_%){|bb@8in5cq_76avQ3 z>&*(hsVhG73gQ#3%@oY4N_p?&duHuJJN8oejF^IOgcpBze@8>0fQ_w+O=#=Sf zsTmKTZri-~+~d_=`c}4=?#=enw;jE7pQD$)xv3y;{InR;=W;Kd;s4*$8Q^p#z?WhVEp!?YuNHHo`?Ic zqNho{zkLt)n~RzoasT_j;{KGPy|uW1nels#!wD?%Jl1C(D>9GdF^|vDq-;Tn^Y`31 z64W^J5PzEI1;)GrAF-m2)cD9w&5c)*8XF)R2Vbwm17W|co{UkK6;9Y;l-VF9Eix}h zN$1`X#h~&oH9wE{#ljPo%e_&2$uh)RA(ZGT{urWpR|@SEA{!FaG!N69+uDU9c#k*# zlL`C*!jgBL+#AIwPemXqfr8>WCsR=}MxVRvaP*|N$9$RTJdH`z zn-UT?idSq!AZ@Z6J;lpdm_7+iExzkS1hz?FZt?pV9NvEU{>b81*5-7{ds*=xFzWvo;|xAOU~z4^b)apaiOmch(~?B!P9s$1=5H2{amooXp;|D?Q1WzZ&6b9zL1o zVPhOY-XL9z2L-sF=J}d5Iwz(hIJ#|O2+PZ*a&5$y3q~;Ud!I1LS{JM)jXr7JyU6x_ zsP}Bi3O9*$!T)K-{c88ecz+3~&l`1fT5x+jC!y0IP&^G0`^X}W4l{-(D>&cvJ>+)O zMg4|x&cXulLSx|t3CunVQ;6d-7PN;D=}Omih_qlqHkEUKTEuR{So?XD)nY2U~GzGtxJwe-vqW(UXR; zbP;AgbH;B`NPTb_y2qTEeX#7Wpf|IDk-@hO^QPq|Ob1l(K^e%#yy+g~wc?AYgjvCw zyY|Lcytg77I&H-hU=3!)tMYF1%8dbpR$HNgmGhXL-wO4voC+>#2H2CXz1xiCe{4l? z9&>sC|IC{<79l70r#a8cX?O*D)D8`;V4vEd!4>RPJ2bF@{c4Ad73^7azLkn+#ojZr zp~4m0R%Sy}SKP=PH0I2bhtP56s!|jO|5mx!6th^sGASSe=JM%tirmu|Oz%E?mO1nA z8`gtixRya&Ij+c!db#x$A9@Zm+|!RKT2s_C2d%FGF9QXKn?*%@V1FX*SK_ z)5(jCra7z89#iHx;udA&R^#2&8ORr-oWOLaufRu`f#;a+>Ddfs;-f;V9Qq z>vm3o*L?z}Ew|U}E%Jl&x~EO`7T&!cH&dp03oF15+|#E^T#t2i7tQdxPD! z&T>Z3htuu&Gu+;}A(YuYZ??DKJE!1g(i|&}$35TW_|m=4)NdRQJ??_J-qJMKmAl+y zCpl@R$6Yv8Lms!g*gN@Corp1IQqGs2!@QFtbJ3)3Z=rYc#wNs=dbpiN!DR33^T3il z?nzUuuiS<6ymQupWq7<(t^*(P7Jc%>D9wWhP+}z0PB6OhF_;drW-vFiJt(Vu% zmAoE7^~<;jj2xvpnb$wn@p?}euQQ5yeOB^)TfQ0qqw*TlDS{ZgB;T(~I=xcs(CK{s zGbz=hlGoqBTD`{QV5wfCXN=di1-$l3`YR;IW2^ZjD)A@D^Bd6eUZWPXhu65YlGpYD zUW=t9(|x>Oj}Gw~AD8Q~(t7_`&L>wbCMxG(w^JO zx4qJmt1wA>jh{=eEtlT;<~Bb0qO@wLoA+zM54^^SLeHP*=l%5AyxudF*Sn-mek5`3 zE9R4LOS^qRo)kjD^BON0yhbGjFnQb`FX{hD?%$RYKDL(6PnVJMYoW|mY4gK6`TVz% z@_wO;-$|`kNgpMAeEXo(;tgq^SET)yNZqf+==T~WlKwKGjY6T=$E8&Vr}6D7$+5-5 z`=^q;9!)l2{6gsPW70||3zarY`gPK?+fHGeCDN)-NX$Eh+Rv06e<*!=xO|1FA2Iu+ zRgYNC`;STQTqvzQBsB17JD-PzTDD5-Ef-F*M4r!;cCKz_ocLT`e?5iQ>m|p+IlM2H z`}*~~-z(q#L~?XXYCkUF^F31X7NMmD(rXt=%6p`b?h@MguA4C@Pv-SmdH#5s_xK3c z$E9D6!IXqJa^Ei0_sN(xo|3+MTPWdmDMP>XMW>9xH>IYpMj8K3p`t3Ou8}j5eDd7Nw3a{~y zv(R|rL|6q5|LyLdl<8$2eb*x6cQ8?-EY_OcU>S zSTrCsyl*3)+%7deTxzjZD0Wz8lM7_rT`GCalXC8t-i)l_SARU6*G~%-z1qk7izLnO z$tWx9;**u9^7<1=%_o#|tMv6&p|Q85UMEN!z97B!RiWp3C-SQrxn4cM`&OyfAEe(; zTfryyNl$%3=8=y`%8*X+{OWDIUMaapgksO=<&)J?s?&sKp6ce4+a={M3XOe5TJ;Ym zpKp_Xc|_X(ed)(usog+7-+o8Ryh&1vr}?BwQrIxe`zJ?uy-WJ{OrfGnCFYCL&NY(S z(>u7@4n}nXbq^6Ia$|rYAJM5KqxJKeUEa|*1 zy}3(L_`Pryx8!w)r2J!{|F`9sLNGSgfq^*vI!!I-pOWq{Amk@CMMrTx}A zJ}H%cT++b%GHH!Up_50Cfj(pG6xvviI0eSMR>nDBsQt$>UvEX41;!@H@uw-i9o@j| zG#LwfTX=t)Jh@fMvrnk{qeA%?3RTnI<2C9e<-6tiPNA+!v|)kK66W>0&Aj^18U@Cy zTX_u>^Q-H?8w-pMv`K+cvy|5}q#rMoR+=QW__E~kob=uKrTpp~sp)(DyiZNxbvVN7 zdlIKZM(CHMZN_!# zjc4FG?G3in^dPy$jGNe(vzGDg>^0~cNzt>4ZBwxQXj~`VKrUGLdM&P#!{A90W62Ht zy5!7dxCTq(xJJhLP0go{!u8lC>u^2(9ky-juSh>9*07hioIR@FxAZn4{IEON2zbo> zA0_(yuzu3P;<>1sw`4LXvfu*qQ*5vc%{iEl3NA4(MhAE=HP^8>E;Ijx1ihD=A4TgI ze8&8!AEABbKUucFn~yM&cg-hRmWy0>bpkGPor9k9Uh6uQmAb)oA!&G@>wD~^J6&i- z!@J+LjKukb>j6-Y)b*F$i)1C*Xna!R5FvK8M*X54vzY`hB)aEQES{n>NqE^@J-x9g^S5_N@q)JV>fu zHOd~p)ch(3{AFeWBLLMsnGEC#^BGp@O7lE^{&DluWq_;9*GOttn@JXOuUP}qD)^lF zY0}XB=EoWH0rO|1hzHGDcHTqgoouH4=I`0A-!*$lIo~sX!_2>LKEyu#fq59ot9vSN=UH5bYu64b`ie2Y= z3Q2pfcYT~gmoK`!%zdwW5_|1B_b)-r1vk0(un?bfzYb#Z z-s*l6d_vm1;3y_LV+wodh!dI9;y<#@R^J%Hb?q0H;@bHhOEpZ8E6h zDh}DhPG;L2e$gB;xOyRczab&33{QX5ls~3-7GQNVLVf+0%_nNc|`G zvZJ=W$#L@)^A{Tc-*&x(ruE+E`Y0>?9oH1byWe#?#)bC**BIYD=z1F6<$cI?KiSa} zuD39Ty-&JsWsCjL^#U8{Y4@!hr~mH0xfk%J`vS7&cimfN0zT$(7XdEwRGa{~%JWzO z;M1OW*t|D;9^oLn#q&Bk-FvI&MGl+WJnPB<`#rBP+wXg3@!i9o$RfZao-WSPk9z#f z?=ep^d-`$DS53eZo=wd5Nza!D0YCISz8vtBXA+y`X-|kr|HyMKN6(KvbxQ$1@w`z6 z_^Ia!w7T~h&*%!k&pa0~^sMJevi6^Q?k1mn&a>7Fc;55XHGmg9-ID>o@br@)UiAEu zJ^f41gNp$-7Q9WSe@ns29>DDdzh|2F7u?7E9x8Z}eewN*FQTob3s={(L;Rm-0)aPJ z-tZ6ESXJlG$F=%-R^*r&B(*h1t;F@%Umk($+KbrA>%KA-*XT7Y%KCFj*3GX?$F;4U zMBE+Pit8zpPsH`q-Z-xP=YTN0r+2dmLvui)-r@a>gHFYDbciL~S;HPXdnfby=*29_ zIZu)jE-*JSq07v7InRFF9Ay?)nfn$1t})-{V7%76oVB>lOe_OjZ*C^vyuthz$?DVQ zSO9R7dH#05XUywJL3f&8Vj;e6{yTHH%Y4HP_=foso9}MZ!y?>cZtMbl%lr?*z2^ER zz#HZy_VzpGrgp%)<{j05_skd90p2&?;gC4j^}-0?Jl92qfb(77B@?;G^)fr}GFK_v z@b|8FmH^&zZDcpUiPkT`;_aq9C_dL^pXa??Rjk@;8{;>9pLAlZ?U7E^PI$NpZB~(c)@e` z2EZ>ojjY3OJ!i5LfA9GjEB3M{(g%3OGk+%FRnJHW@b8{=?8MhR!|eS3@GPGK_=D#w zB)va+zRu9=p2xg^KY7k(f4$+UW()qOr<|pJ%X0xM_IJPMoQ&)I=ULYyuV8yGx|vxnSp?1?Ulu*Vu{X7p$xr(# znfCN$Wcf3WX6%`RXFu%uT}DUmtAv& zpQ#5mr1(|Z{^Tj^b^Ked_ynJ9 z80o;Z`BQw-^7SHI+pizP^~6nl(s3{2bWP?2(mk6oH~nZXuA5KaqU}|71nXIT_gW1f zb~4Mg!1UpIB%B{m*IStC!bjNti|(q$)%O+#gV9jHWyNPfFfQ}$>C+7OcA~os{4*;m zR(FmhS2sqRS2wn_b+vUE$zx6#9mD^FpTpX z8U5c|B`k=XK{Rc$u zYHEpfd_bJo=B}oLMqw8JmyzpGY8Qy2d?+zA{C``~2NTI{{X?mP_C}ThJ|IeG*9JIU z3Ad?8k_!zCC%0E@<63BZY|oC=sC7R&*4vv(f&8n z+GCvvg12dk+n8dD&{n)jJ_7e^AsxlxGmEH`3}by$SG*-Gh5f znQrhvWMPv)5~ zua&>PzP?>saM|K2bi6J%_Z7}vy=~vVCHwX*Eu8zeI}De{EbtX(!(6>@ zpUZs|Oi)Yg|T9s*xcE+1p>zi7ey0&P}I}-!rDMT1a zoiW}IB8sPWV{#kq-mQ0|-tyt@GPJ=SX-{+#JE*oKS?WvrmM--* zH?s&m<0u4@>qS7L*!^gi#O_aiV6_bUAl}kmvNM5Z=^gf+z-_11VpL zG&}|qB%#jk^`v_YDvR>{6@LB&V&yfJb@ixd*NO2aYkc_;5*q0r>K{V^ljGo7ARj(s zkF!%teUi34r1FQW)g&Ad$gs2NBn*@=Qmt)kt&Mh->@Gw1*r9*~jrgvS{xQ<6gC&q3 zx7EvdVj6ArR`&}H2pdR@Cdc{*Q|M<>P2GA_4&52>$77q@F&sjEu!`i)v4PYOUU$@X zf@gHLb$8UpN=8dF-4oxINN&e_YgAgT1M;k>?2rqIvb|)-$ne-OKC%#x&d^Qs_SY*&A^|O>{`}$c67CE zs_l$-c162ld82Z$e>6!->lqyx8{U;1jgNB7vr3)L?(Q2H?nw-Q@uYV5lew_9Wi~`s zX~9u5OddIf8A%NFLO$9}4u-^YxtG=CQA|CS zFi;snKa356UnEJ>plpk#4JdpNi{xc|G?i5Ps8;5VAP6oH$xz(3;gK;V>BN8#c*$-u zrM$^k-(e=+U20Fk+y9GmYCJtY1U@x91bWMvQU@a8gz_$nky^7%prWd#DpC`|_^FNr zLxIYw)X^A76iQk!Zaca#))1#E7_JOeSNd!Gm6d^rKUh^0tf>Zjv4{~I0ek`6;ZS@b zuMNo;#)o=_$A@|`-VunlgRfvLS|b+1V{N>#t+OjDB%)&rBJd+Bo?;C5INUmUs{quB`G`)kH$UNL5X^x`vD(psXSn$i-q=QHXo>v1nI!M+`Gidq-QXFHmVT#Jb{`?>JJ+)?=P)9hSK* zF>>5-c5np*H$TUBdMGi{H;UE|SbQ!Ns1EsSs;eWwsv3W!Do_cA%=r-ovY02zfqP|T zIg=9Rq}K6)fds@BM6r6SwlM~Yva7}78_tJPJ|EMD`9tTrvh3V7Ht1W0AR2Et?OTPp z8PW$Beopk#G9P=kTjfp_WiVmMoYR3mWx|Ti> zZSJb?Zmo^SHbNk5>+bSJ>(QJbmd=*eXiKalIg}VoaVTx>?CNN0ZD5agcg8y6&C&HS zbZQSW^}ND76dg=w2XB%w$&M=7vxIeFW?Nwq}`awDiAT6hLR(xL5Rok z_VIzyRJ=AZFtA?5G11mo-V7O7lWj&jup1vmhRHE5HUL~V#!ybts76xh)JSS5nJR&9 zRR&g`fCL8?KRO70zNCV2d`o;wtrwV*GH;+dWnTD}l<^)Z$RM&izdECw*s1_kJ4<-W z_7?=Wh)CDl5}Y)~QV^zwhmaG)s^$yV!?!9=st}G!q2$B8sgd{&Hq9tvw8l2UN)>NZ zery*7vzntRTH?*E!Nw+EqyjTYxGGTX4@GJM!BBM|60V7rvlBPgx5x3n#no*VZpm9B z_%=6-=nG(#k&RQ6wKX7cMd%oKPkDunfm>?5!i-TQWiw9AcX$YG09Gr^6a{FFw)!w` zhbX>}K^q;gtBN|bH3a-I4E1m*9IOe4s{=LuP_Qyk9juCw*&M*JpjtoxM)vKTO&nZR z80fBTiLo-8gUUFf%c$6Vu#(oF#sGz)#*ck#*ZMd+l|rw}KJ%3@&C)?o?QpV$Ntcq0 zMBxK5jiyG%GAZB%jBlpk4BV(rk%26hF+$01k^QWMx>>^GK4#BQnVcn?+tgZ^+h;t$sZEB%n*0;%#q1nSCe zWGnN-Kq@ghhT$5vIkg#E$lU??1kK)ee=%7FMMDi5uU@mNPkY;$d_ zy-RFQc9UgPDG_;EF_nNb$9y^RtPs)AaR1N%^0jJU8(O+VTCrw3v;+#vq0AwiwT*!K z@mv*gd$NKF4G&q0TtzHLqsx&-vLZ#JkG3y|d2M}LTXUXmjco>UaJCjr!*NR#Q3Gci zEMN^_i!3*Vz1A2fO9ZmbYRw^mAcU`YSH_YUp#a&{*xj<8Rfu(LYU|jbgn-(rLExbJ zeI$%X9h45m&}=j|H8i3(M@6;BXrh)3Dt!+s@9j^gQ5#4H_DBL1H%B{Sbu2tBiI9Dq za%^5YPFc3T9dxu2W>XCRXh&05Bc|V`T1eKIBR0l5I$=$fq!3QzrWXxbbbbUuGS{L7hmW##Lch_f(9;y~9rCY{E zWI@u&5IU;um~-Q`ViCqD%5)c5oK^i$aI=VA`C`oYCQyH7!$q`=!j1wjt zYeuoBHHU#9&)k!>0C3_4Sv5e`c5r4|_CRkL{#sK}llvD7Rfp^95KBc3*wE};+4Yus za+c3u#s+87zE!0w(DdneIU7twxxX%u9LlD9jCGSU8}9xML*M+n}l!D){ z?}R;COs$|0EaJef!dbw{TXibPuocH_qO&!p66))|NZCTswsD{%*4)JT+tfjn3n8eg}1tl*9o&zZD$vD4?CxT zju7%cIR!*E4Embh&-YYNr|Lr9a8Kzm2Dp(TnYwMIV-9bL4biGZa` z&6Y(oclcXfKz*$t+L9*$^d$xd6Jlt^U8#{>2C^51 zVo6UAjb>GWs0`i=;{%Iz%D|#7=C;8mPM}@nK^U3a>H(St2e>Hr8#ypm*7^d^YW zPy-IJh_)-q<%TRhXB`qS0PSJX4DI?5X$->Xt4c6ity>uz)NdJ~-5r!sPl|Q4$?&js zwcKVsP>pMEZtLuXte8t_So`Yeih$I}lQDS65*^mG8f-wdR4L27#rASRyHb;~tZAV5 zPT_HAZhW6r2Ein@^c;~Qig#=2euulscn4DR24={OfSCLK)@$HY|uYotBM4J zzLJp?wPe_kPlmd)IyKmn0&(@0SC#i*sVKS4Hw}EB$jki zyUPc|6NJ-vpWd-ETt2#^yf+X*jP$^8VyqnAe`{fQ?&X6Ijxx4we6Yt?-WT$fxA}c= zJ?vczXGGMXJZ-P>lw<9QYdxcQ25WS}83rp%ZZ97nP4v-j)|VQ>9Fe4SF;X^GwkI`O zHiR{Zc!Tq~Z|oQ!-}uz==NKR2;A30OwYwpsP383hjH@HaD7l9pWu|jc8P(wi%)Ygb zX55Tk=QM5NE2^&f1`FwXUp&Wpqbqgx!Z4Ob!*Isx3sPQ#??9iAH>-VdF;JEYqYwK6 z;OwF`AR{ycdvF4!D3^<9Q&?=olAp*3Xx=_xmD#DvQaTW;2&7mHbq-a`1FZH?|8Nft ztPPtt$D`|;Z0#A-P#|DXorZiB?}DjMjSN^-u+8NG)Da?o)}oaa?H$uMWe}uq=>iV% z3(m0q0G92-kucnjssmN97lkY7j*)3iSZOC-4{XMgNYlny0HkuI#Sqb)LR^`F`QWHcGs%t7M{aBg`!c(D&JsIu7GT8cV7#W&c z+PMZvYdSb=XFFE-@m`n7EVag3GQ&MyWT#TGk>V5Eb74Z)1@&FXnDi{sfs!n&ENxuS z;bPuyB%I*`wnV=%+CfJzivw7VmaUlRa)AgNPkJF^YRt^YDrGn{I!nlNy2(v2HwA*2 zoG853LlJ7Ko5&}}_TSLahM6qZ+*B8Z_m@4EDPHy`edJP>Srh5eP>*5UOs6=NvD(|( zeFhcE?si*`%@aKX98RqmPh4vbhl7!tN`Kg2U5%yYP^h}fAM@wUubu5pfiP+Sahw^7 z1S2YzaG`v|a@+dOw&oa!fT|RVn-j+LTpxu4hEQ~{xeX<#fxk-tR^*ysmA|sOstPhY z7H=pP3ulmN$U4AS05MXgkWf+fr?TY*8?a}QX2SK9_yXQ9hNXQdiTpqrlM ztp_{N*zorF02Yd*I@ZjmMbBE_mO=6!T(zK#JL=%0s1?6YGOg z{BVVIm`srK2c((f(|M?Z=0`kay1SC%R%hwC2TwIW+6SbWw`7%Q)ra7})&3zg10&|EhUWnC`O2&c0o;8;?G`FpX z?M0WiD7A@KhrP)NVI-SFJfeH63Xa#LB(Ve5fe`9p->Gk+8=sH~)&A<7g?Ee)r@cz5 z)hN|!M71U`(#1P77F;nqT9fN=+A`t7u08+@dG13j+48BDO)dLkp=^$Arie{Tt{4Z! zj%(>Mke#ST2(fcbyq+5!Ao9gxF+AqXjE8DaoM?64S_rrKfYr9}#mt?YLE>2tOcqdt zOk!_8Rz1aUJ}ZJ-lv;ygS^jqvAuNS4>n9h-@;V$CBY}7bHK1spm9}lJ!p}NogON=Y z6lY|(B`oqg)CP^NwuXtl1W#L=>m(?RBqQ`d?T#8`R)Wg9r#bx$dA7}y2iVZ?V*`;&wTUAZa zcFN$Owv@`2tPecdA0lJdCpfJ-dc=K8{-p;RO%@UPU;Zmn3_3g$#!xUwI{Ysba!G&%Aw4O$&q`p zWZBj7YZB+({3%c;5-iAK7fejlZ`JeCn>DAyUw{eD0h~L z=kFDgF(WESX5f@0p}UNhar|ZmAh-yOq)BU^8yeFog@EknP)@@G796Uvf(8zb8L7^C z5MssF_v45FFd~aPM>}h|YB9mGgJVk=h8NsHbt@qmsaQ^OX!{`hKbyrm4MPxV92~%* z*iAI{bHuF9sCY;@wcV_7{$PrH#!P>J9-sMEJO$K~-}X(*Y}o4`g%tvG22Bi5D6=LE z`-K=EXvm0SpDHC?@EKVMjdyKo!+w$yZnN;M@&zkoUtbanFhe*7qO+?d6s(7t-fs9! zwX&<^P?pmi&44V<^4+i*@&V%~``Ts|=qYaVv}ZiwG#34GGi_$cHrGEA8L7S3UKr;} z=dQ%a5N1gA10R+3`N2`kmCRn4w|JP3=SoyCK3sSzup&>7Z>Li@D69WW-ziI$_>h2a z32t&;!&I@ee|UU!39GCNds%j48&Ny((h_dfD&36->We$Nv%i<$p6D2T9q_4zhrR8O zWpn#R87w)ffHav?4?s%x7RAh>8%-Q)5X(6BHRB_Z_{6Kh@+!gnVlNz_L=>!OBZQQ- zK3cm$MkYlu%XP(;Y&xQK+}9y1m&%2#I+CNpBo1d**yyXER&kRx_A^;NCK7c55!Y@e zF&AbHDr_&UR$lAEf{M8Vr@wW1yT~X8Hp@9 zi``Op9obTWEe+TxiObr*So*O!qOPgC#kM|U^;kzQ1v>B;q@PRij=2O~gwkX?mwXcA zAP^2z)&wJ!p-OlYSPVybI``n^$*-1gAh*SkK+)>T)N*vHkrWOd7#fX_?dnfXpzG$m z)+x_c)ePNg0d#KBXZYvbVv8u2&>5A+?t810udEnr>@LmTF{AImFaqjTGu4{f;kRRkUfaasK23THDG=Sl)F>Bl!w*t96B6MM#GhhCqY zD}W7`bm*Z|09W{70Ed-)qG>0Q-RfuSjhX2RJV-3`mdYi}2YqHqk=Ta68~?)7*BqYw> zoIfE9yezx>pwA?pv z0!ln{kOxUUD=_BBIvKmh!GsjY_kJV}}n9mO#>TB>F3WKk8)E7{m;qB#$%p}T z=MhT=+$F?_PaPbM&UMA)P(h1@wj z00#(cCAV)JBxW%Q;RiXBW=1k5VP~e8%%*3O(1DydN7)d8C@YVmO)_VPC_!guV|y95Eegl!LrFA3rMeU3Yk%2Z1;q0N2@f~BbccZ5t`#wbzmrbFtcuNR-NU2^S zD9(qarM}~RSyi390v~GJV|)ksR2L^E{MOR)ea9S_s%04<=i-=Grh@L5W42_h|?vmrabb62T_FRn-&WCaX5>=3T{{MQ-MP!H*7d$M@Y{+ z+<+z`OC^y7YHqHzf-6?|7Rw!0z%#~l&PO;&qJPXMukud?0g2M~n@7H~Wnb2)QBU$7 z?CRJPS3CJc%QQ`$ZP@>omEPd(mt|zOvsJy*o?@R9W9=!m3_p$~2Y7kMI$EP$upZ+) z0_#*Ar<0^5E~0L#^6wZP?ca^Uf{TkS8#ApXE@0uHC0g5vJt2H4&OstJ=&A>{<~PLP z4+8^sLu(5U=CU*s$F_1x)948D=FH^5fq#J9*-FnJ>$Hcgst>=ZHrd}*Rb?50$YL{F zy&W5K@l^PLbnl0-`(Yy7B^woNDF>!cwKDkw9kpG%B_rp=bYe$c%jP`aD;WR8dyIu* zT=8IP0&A4boG?LHqOr)U)^UAV!8ohlXQd%qXSWbm0Z|HVjaIzNkrTX&F?bw+spZe0q*Vr-{SEX?1!bh9bCCd){3kFB6d@BkL9^>Rt_VQJ#fk| zR!M|X8k}-J6ld{RoxH{%L9RIAWJ?EjqIMlP0cNzotRg0@7otjOne?Rf(N>OgbCjWH zzM(;iMjkK-F(Qf{B<5*{n4||Isf`G&!2^y^x*a1BM$-O+?(h^Jy}GtdI2fQuyxpvk zo{^!E%ywly;-`lVcmYhk!B7>XbvW!*SA*uU8z<2_fu$ZcQn7E?`zvdF+=W4rG{XZ( zP!K)xkF@ZKgr6&GV;0Bo74P_rnJGv3hb5{9$#Dc8VzY%9S9PYNFee+UoQ|tlXT?!@ zflBM3JfLuK>nyzkq(;1EmOK{#Yw*oY;1RODqYK@~#jXQJS8d0Z_Ac&Ib$C5WB;SR}tEw-LxrR6Z3=MFKPgveDh-Px6)Eisq1V?88pZT{18 z*PiP&037_(oEC-^ia=lP#|Dz9T0P71m3ldpBahx^S)#)qq;pjxf zLH|gNGHeDSPhnCo}jGESYe|ds2S%>Hr+VwCDXa_ z-qB%rcw>`niuNp&!a5-)t6^rB>1jg{38Ws=FTG4NS+QZT-&+PnRiia1fQUh{JWOk< zwFOMB2#Kv$C_9_{L|y>4Sy|h10uzv0nC+E4OJkfcDdAe!YH6Kc$_;y#CJ6bDXX&w2 zIB(H556P(nDiLIM=VN;{BqqyW7=lt>GY#Fa*JDbIl?TI@}Jw4d0 z!z$U!4S7nj?PzJ8h)DjFag)j%K02|In0ak~aZr6RyHaY6JL*$dG}%0{6+ENBl}>QF zaON;!*2wAb!W{%S?;)3mKoSX6f`?#2bogzejyY?n()}=P$44w4V9UpjJ$(2CT{{8u z*|i%yfycnm@>_g;E=JeWR*pOxR>Kla<*q8Z;Y0)1d<DJ6g&U@a9Tw?q`aH1T)SmGtj_YQsNcdU*zTW~gyp7O z%1_FXp1tZ{f-O#ikZ;b$ICgA{hHMD$F}Tc>WbNH$8xsR498KOIL9Pg8Y~ExOL&NGG zgWYF)M*ByRiKqgZ18)&wY#UE^jgKbMDQrwkXiR)<(>7QlR5U6OMqLx6QXHirws(}q zQ4%c$3L(Y$$lC0|TfP-m3B@Sy!*gGWwTJTPK&emvLt!am+sYD+Hy~cl**Z}O&@Y$= z#oD%flv0+yVK;SHb}%i$A}_~K;E>Y;4x*rCpUi_?C(DoNpJnqP@+h(vy9MZxU>Vk} zZ39sLCfa(1yC7Dcn6)({Y3^dXh&9(+F)XoNj|Rvc zUod%Mbg}GCouICh$2`$23cDy}Hs_kD4lcB3N38R}g)qmlyQG(#!mP~Mjo#hU4kh2Hnea>=;MQ4u0a;d8u8-6<5az0SK&28znu7-F$c?Z=)+Yx`a@Rh_jBf7ucitJnQWSJxSC@ii4C1LH{_4 zNr;|BqV>_2KgZcGSQqZoRK?P2Axol@DZx5i#aeEZf*fSMo~qh`{M%CI530)_Ae}f* zYqGvQ#9>W#b5ZHcY%f7EXyQ_zLCeHt3E-ssj7frX*N(Ax-#B)5+2yL=xOC-*pSbyK14hxKbBLwI^n#4UlNEqPVM6P|B%84cO=IC zd#8vj$sQt-qs)>=aNDyoR<2y?v?ThYY6sRqfbdUj%Z;AKE+jZUPvD+lzfo5P86FuS zODte8I6(8|u}hqyv(Adq%{cB1qcXEIwuE9Vw(sRoj8C5$@ePBC-L^U0!Z?m^giIwz zPuMO#_UV6GPsb@V$~QBI38FBVxpOsnoGVS86zkY|-PICB>E#gOFi)PXt_f?F#n)msP9jG&=qi8>Cf31-mWh_rHkKxuV;^*cPDbC;-J4eP zAyHd7kn}n`p|D`}vZ;Oxgi{>sB^rj4)pa(t)LEU48B>1d0xnVU-MPa; z(PC>I`U)@D!30iyB|CIH=0hKzf)~+Y5vK&@?@|x@t5`&yTc-?O9E~!@z%18qYSr`H zs8_*k0b3E;{D8xf=>hAretQjNu~dKXUp|#HlW~XV4if~FCxm&qbriCz2er#d z;ZC(tw7FCy!p#Exqw(Z!>cW|}%pNL%-oPnq>{i9ZUtA zH_NFwWW)F+D*S|zeUrx-ah4e@4$*q}0yeec6dL59>j7CtDBd5Is`>#7VdCMIXVP*W zl59;OnMM&eC^^B_;YBKz619%20+vS{{2ei^KCMzB=2$-+LZ!hH4)RKGt*P18?Yx)N zNvVg64&_i`?FCWrLFazb3H;!(p;YD@Ihnhz!**sC`f`jwakrF3ILl#8M=|{2Az{iY zq%{XQ%OJ~D*#bk$3{=X=4Z=rl_GPckAt_;QVrj}c`=OaEPLeUG#Wzf3pwuaTJ9#A8 zcidV&$LXRB*+10f$Rd9^Mn*4wD#pNZ#i$g>4}!?J9HxaNr9ow7A=97-u}Gpp#lMEV zqC-x_Jvr|g0^YXaaR_+U$QN}1=7}Bl;q#jsVT8qii$!t1SVh=SS;JnC#*oaMVX6u( zJOK2#;ye|G(_uCa=S1sdV(X`5sO-UWYa|Z$qn^Zw_+a9+NFO%-t5a9W5}X%#jQqC* zk%mY1aCeFP_8np=-_~s-j^9poF5uDOUa~%$9$CepPeb@@v5R;{hgE;ShWNpTA zUw*5_rrYe;6+Wsy=(az-))n?Z>qkMd2I;J~q5NKwCAT}638X&Dou30fYpDQxk;R1$ zDJwP`9AvSB`we8ZBWF2IQw?5yXO$;8&CbRiYA=^%X2qu3)zme$G6hdxw7Pk(lt+=dD{k72;v43$uPwHm>R zVDOH@)?;mz=Px?pq*LZaN9Fz@Lwp-KRCe3k-|77b#;BrzWlP*>FAvjFf}B9p8oFRILNMj>{w%Bhl>wvEJr|qNX_K0#OahNlRAMeF4xI6ybhO?CT)mmdde?Qmphu>>={JD)I^4{ZD+8uvxV}XGt za{Mij_}R8y;CRRUj>?OFl*IpLCKi4>-tp%)7UjiXB=Kiv8ex$mHq&367k{zD2W{%# zV*5tWZQvK{9e-|Pxg*5%R^)|C^1`d~!uXwf$DiBS>|{2rcsp>b{YLSVYl)5oUq4uCMWDQJQ>>Jivpu6Cp^jM z&j}YAH{^sT8&Bkfrx-4mGlL?-pA(*H^yGx68K2AvPd6UP3C}Rz$_dXjR^S)9vwyRU z?ws&!3*?ZexZc#P-Og zHn%Y=@BQq&@SMEx+`MqHu^3IlRv{mrW&Gv+GHoKlEb!+wIpHIW287w__~eAM!SC&#o=+OfdW~gc#;(CIj%rMVs>1$sq9>fdPlJX7)%fwr%1BMH zHyH3I{JoV`63sp`q+(k|s3KJru1VDdaHdD1+F#vU84N_KlWF{zRArF826<$ZvH| zDi!Qahm$Gm1O0V8{IWgbSELiYfn+Kf>PbSj^GD$4jkA)&q3YhA-ekHLr~R^-;A)oc z?~@Pw6`@Gl@2~PlPz6>wm`+xvBf)U8CV(GK_4kIY`X}&%d~B{jMQ;i}Bbmk#1^6X+ z{LWk`lB)6d;`dkmi9jS>ovN1jSnk2;)BKN9tEv*H zNOdBR!d9I~UPS^C{IY5&T$6;mJ={J+DeU2?>Ph$bQNU1=oeKYHHg2W{foc$BC=v+t zhSQOr%AQmbztvIIlT3&46SS#hswd&MN+q6EEL0VK7&_3Cs_dzXB*F=FWjI~kQx&f2 zN!26+=>JGUa!8`BScz~|g&!x;q-(;-p0Ga^sEUMYLcP5K9PRAKCZk|wk5wZ6?hca= zRU~>*`e3@Mr?;v)0`H@AFdRtX^xR(j@?jYDmgMP9EZ#c!2Ezjs8}98*R;EG;{Eq{p zt8iX>O$tBjnod-QD&-SvA*g9+jM;FjQ)LQWhF>MAO!Ojl*pCedkqF8a?yZT0lk$za zkD?mkigYMZ)r$>*;WS7)gke$@PNjO%iAYZn2Vg|3uD154KovnIp!6R6+I1Qf5~xlE z(#d2G+_Nf^iBvM}PltlZP_J{PEAJN~omQ-a{<3Cv2dZpDv8uSUGc|^_vljf`q$+lN z5*@&%wjpdU+?lG^pD;G8(jKtuO&_DFtZi^zBmI4SsSyJ@XKj5$d}pl;O|iW+!^_l8 zrWT$B@_U~L*-QuBms&==KghKn>%OO42YW1rvJ|cMy9G<4j`8Fg`|18^$%nKEwD7ahqX$ znFxXHn?ToThVgA;!Vs-x%ISu&gzvW-A~jDL(0qms1FwuJz;hKpsmSlAAoGWagNE@K z5#Rrei0|Jco?#eAV(wvnCB&_UF_+Jg9_vN)1NolPi3=*$R3cOx&i+J7O+;!>u6YJ$ zCBp?(X*m%OL;9Z5IO9bX8x`9W*=~G)sv??9!YH!fh~h5A^A)dD{FLHX74KDiQSnv9 zzbR6AWPWp5Z{R}3QpHNeX2s2ly^7Z;en#;tir-TFzT(r0zfgQd@h^(+DHcI|WI5(3 zE>on;%;#$rPgd+x9929=@p8rc6(3c6M)4KJIS@~o?jpr1#aczm(tO{eIIQ>)#Y+{h zQ@lm->xvI5KB4$~#Xl>)r&t7;O6sk+TrsG4ykfKB7R9vUsNxlh_bEQC_>$slif<~K zkfoR}WjG>bH{x=|ZpDP+9>t3k_bT43c$;Dm1`5*|QanrX62)s3?^Jw1@o~kUEB;Q= zgc`u~rYkN`EK#gfY*O5)m{i=Mc(&qYiq|WCLGdodhZLVwd|vS_#b}{bo)*O|iYdi2 z6wg+?T=5#k>lJTPyi@TW#rqY%ulTm&B&a)VhdGLi6pvP{Qmj>MQ#@I*PjO6fuj2KJ zH!I$vc$?y#iuWkqulT0o+lnTX7?!V4aV`;jbH0X`6ER<`(r|>h)iBm*I7);H)vVzT z;tZJ1G(4<$w&LZAHz%C%DM>h|l?l-$^?7?nwO}>_X-h z`3?`MUAka0llLh9a)yDlDiLW5As$a$Xc#f#BEx9Y=bMN=!`Mn(Y#3?c62llEE;WpC z;xfZHhlq48QM{Un%sx$AVHlq!t~89>h^XwH#8Sh!hq%fx_7m~_W5lBknQ?%RpVGTd2_!GtF6kk&Oouafq$}jB?d{dvlt!QeyPEwqvI7e~5qVx;CU#{V! z6$6U2rLmpXD%L7CDYhwgE1s;FQ0!A2R2)^@qj-+uMT(az?p3^A@n*$a6mL_!Q}G_f z`xU>Z_^9Gjiq9y%p!h4rmlgk@_-DnxE557fRyky{;ta)N#RZCs6;~>jD~1$n6pvSo zDQ-|aQE`*vsftO(e#K$MamBL~&r`fu@k+%{DBhsBPw|V2w=3SIc(3Avia$_%T=7SW z&nmvC_#4Gn6<=5UtKvTu-&gdyEjlYwoTYfU;!%oA6-yOYD^@D5QH&}!D7GkeDsEAX zE2b2;E1sdaOYv;Q3lwcR@+u8qt9Ya0=M=xBc!%QMiuWn*SA1CUNyVQiKBxGS;_nn+ zQ+z}5O~tnrO_diXDNa+Iqc~r2k)kcX9nC&Me#PpI~DIyykGHqijOKjrTC2E3yQx|d|B}iihox8yW+cw zZcJ3AR&P+Y9IQn6eyq*$YPykbmogW`#bn-ot~Oe*#(4l9l;o~3x6;>C(r zDt>F@kPboD88!ry5e6I|Ec)CqF42XBE?yX zhbtbXxKy!JakXNl;u^)MVuNCfVyEI3#kgWhal7Ifin|ogR=hy*QpKwjZT;v*4S!DY zONw_W-mQ3_;(o=46`xf6iQ;pLFDd>`@ioOa6yH>QThZ3PCaM0zHEq)E9L4#HixihD z9<3NqtWsR7SgUC3ZEYIvRy@nyw7DE?XT?~3m#x*^ER_*a~vSgg1}ak1h`#d5`vVvXYQ ziZR6viYF>=Qan{Lso1YLtT?WCmg0Ge7b{+=_zA@u6!$59QSo-gyATS}pHuvj;vI^2E8eHLU-4nZCl!C9_?+TPioa8Q zP4NxIgX#5?R9~K^I7iXe?-yxU^nCD#qct2*tWsR7SgY8i*rwR6c(Nkcx{QRcN>TKGJRj9C?e^qT=P6#IXzQz(CglAzMX_HXKK_^IOBC&Pfa)&Ks}v7b&%^co z2kGkv`~H7hJ6)&sxmocGinl9%L($gfzpLR#6`xjoR`HjLzf=4V#Xl?lL-BpZ0@XWh z{oS_vFVN?7IAcHO+f{76{WyIeQ?%CwIyHQfqOGrQ)9|q3!TRaL_H#t*u~xB8af4!q z;{Pn7hyy9(&Ust?W@gc>B6@RGsjN&g8f1~*Cinbl=Ee*e` zNZ&5fcah?3McaPm)9^~g3PpPz>{t!kcB>OKe4?VgJ{H$-TG6&wjcNES#q$*}RlHi! zwo}>bY9F?LKkR%H)%LLaxkbaBivNGxGry+!-lO<{;tv#`P_*rs&ujQsimxcXuJ|{_ zw-sI5u9Fq%KT0|{TydeIZMUSKFW-k0k5P;&HY(co%8eR6RncA_-LBygMcYn!u7)pG z{J7$^iZ?0R_DOqP^)7w>ZN>eHk0{!9$)9QXMaADLzNYw}incw{UVrtf{cNh@9K|CP zZ98O%hF2>_6z%odIt|{VZTsTCG;F#px+qkfp?H|0ZC6~T;iDD*tK)Z-(rrMo zTJdVAKpHP%_9nk;hH2h`7I~BjB_@LsyDL$$A zQ^gk)f35hc;-3`XRD4I#t#mm>ahBpd#YKuM6w4LEifa_tD>f;%D{fLeO);f7plGir zoT=gS6faS{O7S{HdmZ5m8opie8;bWSepk_6Kd}8Fp4I2SRQ#{fi7ij(>lOcRrL#u+ zC93$pWxlvW%X7D)Eidoa@WYBWJ=*iebNc)x#osBurfACzHeJ50&rR*0Ns6}oJV(Q} z{9x0kJ&zo%@ALa3KRiqG$(Prb>T|oFe~S;fe*8Bggw8n-Fu6`FcFNhhZVaX|kKZ9) zn250O55yPw4dJbPj_)qi_oC0?d!qtJ6pST${-4Iq??sC$jN=DPQZdg7$l_~gCr{&T8K0b* z;?>v`awp60&#(`2uPa)aGCleJ42)W$uSuH8QAy07ot{3yca(zW`4Z8h7Cw7i^Ea+Zn&>astjnQ&E z9RmBeqd_+pbgH{Kp6ac68pGst7lQ7^2HmBgQ`?v0%?I7C2Hm$or!i}e_hZm$%$L(G z1fBWoK@w>8Q&DBif76{)^bYGf7SgG_vxLZdo0XfS+02_IA@Xj*Q=1^(W`cR=iASF1 zZ)yx>Q<<_)36VF-4P0%4cux|{`-*tvbvQ97`8VQm23B1Qi6K|Yg-Yw$6opcu7 zDLpKy%z5fRMBYX5IOyVSA(;0oac@I3-P^!3GgqdNcR$3XTT7$9Q<2Kd_>1*e?sYme z6Qrr!X9zA=*P*u|ns&pJ&gQ&-NQk^8cm-+VNpGH>2YMTl(}(c%jKk)r#?O(r=>{Cq z#M4-11+O|5SLsu{x6ZV>tRAn@b-qt&;gK#+^*YB}y*Z^rHLmA-KX3FW&M!Lo*J|J$ zh4<7Dyg7J2AMFO-$MA|Fcvs*ZKqvp6CFJ(^J9w(kwiV~2I)2OWT<>+Ag0 z9B=*Y?p%EN=ll5@;=TG(m3!g|>dO$k>+lM6;;H`U{JRV!0uEgLs$V4O5>xKi9m1a&yP;UwCRq zZ8`tu;f*2E{_Y{!w3mEaj&}#%D~QDF5OTc3@W#lu<#?mN)c(DMILDiXr)Oj~ zM^~I*c=yPZfATZOdyGcD&Aq{vDb#lDUA1R$9Q~s&l%I)uG+q(S?B&Fqeiwwj^P>84c zpW}T2PwlrY$NL+e+7Ly~0xE%61@%{_VoQf^_ZgTLk;3 z=h9Tmk4P$Q5uV0HHkYL()vaeE*HRjLxcfWsyQGRYLQt9Ea!Bp3Q_`F;n|X8_9?;F< KpMC?eIr=|bGS`v- diff --git a/AutoParkingCar/Debug/Src/HAL/HMOTOR/HMOTOR.su b/AutoParkingCar/Debug/Src/HAL/HMOTOR/HMOTOR.su deleted file mode 100644 index 60b701a..0000000 --- a/AutoParkingCar/Debug/Src/HAL/HMOTOR/HMOTOR.su +++ /dev/null @@ -1,4 +0,0 @@ -HMOTOR.c:17:6:Increment_Pulse_CallBack 4 static -HMOTOR.c:24:6:HAL_MOTOR_Init 24 static -HMOTOR.c:46:6:HAL_MOTOR_MOVE 40 static -HMOTOR.c:71:6:HAL_MOTOR_STOP 8 static diff --git a/AutoParkingCar/Debug/Src/HAL/HMOTOR/subdir.mk b/AutoParkingCar/Debug/Src/HAL/HMOTOR/subdir.mk deleted file mode 100644 index 72903ed..0000000 --- a/AutoParkingCar/Debug/Src/HAL/HMOTOR/subdir.mk +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Src/HAL/HMOTOR/HMOTOR.c - -OBJS += \ -./Src/HAL/HMOTOR/HMOTOR.o - -C_DEPS += \ -./Src/HAL/HMOTOR/HMOTOR.d - - -# Each subdirectory must supply rules for building sources it contributes -Src/HAL/HMOTOR/HMOTOR.o: ../Src/HAL/HMOTOR/HMOTOR.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/HAL/HMOTOR/HMOTOR.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Debug/Src/HAL/HSERVO/HSERVO_Prog.d b/AutoParkingCar/Debug/Src/HAL/HSERVO/HSERVO_Prog.d deleted file mode 100644 index d341c71..0000000 --- a/AutoParkingCar/Debug/Src/HAL/HSERVO/HSERVO_Prog.d +++ /dev/null @@ -1,18 +0,0 @@ -Src/HAL/HSERVO/HSERVO_Prog.o: ../Src/HAL/HSERVO/HSERVO_Prog.c \ - ../Src/HAL/HSERVO/../../MCAL/MRCC/MRCC_Int.h \ - ../Src/HAL/HSERVO/../../MCAL/MGPIO/MGPIO_Int.h \ - ../Src/HAL/HSERVO/../../MCAL/MGPIO/../../LIB/STD_TYPES.h \ - ../Src/HAL/HSERVO/../../MCAL/MTIMER/MTIMER_Int.h \ - ../Src/HAL/HSERVO/HSERVO_Config.h ../Src/HAL/HSERVO/HSERVO_Int.h - -../Src/HAL/HSERVO/../../MCAL/MRCC/MRCC_Int.h: - -../Src/HAL/HSERVO/../../MCAL/MGPIO/MGPIO_Int.h: - -../Src/HAL/HSERVO/../../MCAL/MGPIO/../../LIB/STD_TYPES.h: - -../Src/HAL/HSERVO/../../MCAL/MTIMER/MTIMER_Int.h: - -../Src/HAL/HSERVO/HSERVO_Config.h: - -../Src/HAL/HSERVO/HSERVO_Int.h: diff --git a/AutoParkingCar/Debug/Src/HAL/HSERVO/HSERVO_Prog.o b/AutoParkingCar/Debug/Src/HAL/HSERVO/HSERVO_Prog.o deleted file mode 100644 index 4755917fc27ba4f4498e37e923b02714cedfb689..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26576 zcmeHvdw3khm2ZzmGm4?{C8Gye zYgisOOGq|6LLkdRl4V&!SONqHuq^O7Y+$)u!cBl>c`XZBlAB8c3xtpW4)OlZsZ%}O zBN_62xqsgNr22JNS67`nbgMxZ+)7ZwlqM;{PT5uRx_K{BOno<@moH|GTD}La*G@uzX3{@a_NIANH$jmvw#5 z>$|31s~0@8Yr3tj99`GSeG}yxxSUJMxuib2rgG}~OH|+S&KBvqR@1bq>BU{sp1KyD z*Hx5rOHH~h=XD7s^fS7I^Ez<=YHIulQi(b`=-O>@XcYKBohwee$MyQyyPtPI1X(Df4OJ@ln~yg)>~p{0w)T>J?nQ?s zpI!LM;^z*#;U4z~A5ZMNc;ED#wTnJ%H$VfoylLmY%agzLZ6uQ<;z_9L_YXmB;JU2PcdshH8wyb5>S6F8fb#94#O`-M4x2G5@5 zR3Z>H8d^@L8x2inH=xmT_zHri93E_FY#g5pXl}g6&#=yi#+zJR=jYzRW1e^#caR1Q z7t)~7fHY*dk%o;%q!Gh|G-`N}_83h_V@5O5USp2;Y>#2g_3l90;+;Y|&->>{TfO%~ z3)^%%jfZtYSG?bDhGKf}K-%E_K2o>$A*7Aoe@5!@K8e)p{qB6jX!3p^X|vJvF__c1 zf@lIp`f~dB-Bu;XMzj%ll`` zsQtgex!Zda(njyO#02jTaPIX!fwal{zmYb3mw=)<-epMVdRHNB@dl92^Y$Wb^~RC5 zc{51od)Fgf;N66Dp|^r`k@vxN!)P~}0vI9Bk`d6*+~7Lsa18XE2f=LD!Nd?_PQwD6 zA3}X{8BO;e4Osj!F6L6fDE?b00lAG$n~p`xh2vCnXr!05MjxlUT5YCCqxLf0bi$%kIIW(hsh=CO)W!TGf( z>2krW&!NjJsoVHRPdKH7ct!{D-hRxM->9B$qH=D-q8{PBVo;m4mEkf-H1_dbT4R$$M_FOipL1^-Iw{P-F)}kUdn%hYxsame)KuY8N~GHG1g+j^caaQNT=QZdl^hRJdi6?5o0*cAp%EVAFG-$^2vhhxq|{^F&*yJ*JwM}; zAqc0(c!#<1Wxng;7WZ;1KjQjtVQTlcQpxXdJ^MT9eBK;NU&7FNjPD&p=^;${yw!Am zJ*VI2G9NQmH*)SZ|6R4WST!Xno8a1)do#$~c zDolSbCOk-Th|&kShO2ngM!DT2r$6M8dYdKo5Uyt}w?58&yp-v@l}G;(rhJlVSkCqA zfj!Avn*}lXScBo-`7UH`%8ZI0j}q6=Kud>diE}$yO*(q5AsO;(~*?(B2%)2DgPO# z7jgQp%EFfte3kk9Ke+Yt znHzb|fB9IVshYnR<83|=Kn#Q?qaRk z$oyHt(sda3w2}KB;r@;>H&$?u=CXF&&g~w~oNQ&TeuHVafa$zy0rlwJc1pj?G(5~@ z*fTR;V;y;v<=^9@GQFH`=BMWJ-COwX6->!5nYKIKRPvil;qQ6WR&ZYq;&BXd{TH&e zxsLlD;MVVCdj1#Z{}+$T6->F0d-pHguPd0sn|L(;lgH~NmeRAhObd_E1ds9$n6@6~ zz$T{WOU!}!EVqv^C*NeroWu0r%(X4$bT5~@nMYwM_jDz+Q(^$`LK>9=T_E&N4dqvSl%`>A1-2QA7%P~#vDtrZbmzak{nZB zWy)Kas@FO7a}DQn{=acsKj5eSkJKbqA?|fI=bX*_|0UP6xC?Hm(aWPiVFItQjK_{#F^};aKbr)#UgK4!VGZ+Y zF3Z?zmg={d&I_0)uklk~M4cYv46Y~0R6WM!FJ)>U0_$NxeC0KGCu4B$CtRe@7#>qMO=U z`CD+#bIg?_DaZCv%^e?5nG>(08cy0nEuQQrYU7~Y@T~a_^)^wNgETo!{ZIW3ou_|7 zt@K?--0BZfotcZN&uc#<%Gb@OlG(@INCzGwZODI>o?3rBl_}gw8d-`_$#NI9zTrZW z{f++)YsCDTvzPA8yOG+M|Eve;qAO6&_gq0z4|Vs) zv)%p0RN<7IF(aoNIrtk$pv*vDK9iG-Y-Y_LQTQ{8lrjUU!e^8zBoc<9s5A59V_Un1 zi1cD9X_hwSQ^l^cXi>zJnVHc^T!McCT(Mk3a^-P#A5RaUQn?F0$=$@*=$4VKsDQX* zcu*_WQ%AVI+Pr7??&T-!cF(!Qz0-HX?k_Igy$6?<5#WaXZ_`$+zQA00_C>?B2g`1k zcO%kR3o2UGe&Lo*&zeTZjE>GEL0L=Soc0UrfXOfy~>Fw?1csa!~z z>3kq+o{~zGas}jPO8o<=QYL{y#Y~?WFXaX@33DL6(KLPjojqIBfxGE!DH=BW<3)3Q zIg=`xgYiKW2^c)=Q4~m~5-3nCuNll02I5(BAVUTGU4F+ANOgu{p=1&dl+%THqGV>) zWJ**}wGj$(8=1j$W-wFQ#7&@RX0T+YvBJZozE=Ag8KE{1{|x$}-%bmQRLhD@^5 zkK&;q9`1t>2*XOLV#$mTCe0#PQ!12Gr^K^h4xRZr0#mC{TJfhw2sjalC`KHZ$aO|O zGZ^$yYfK%811FLgDbvS2EUNy=fNktar_=e)o_>BV;0GV@BylfhCOU>z`G#;w!Z4U3 zX5gZjIW?6_qhF|&h9PX^!J2a3=ilrP7=t)B^QD5XqvPDMk>Ss+@>5UNueT3cIqA3* zCZe|)k^)6)pa+j7*C?S-yzS`37{MnnO^i#QN;G$)G0#cRdckubF!mY zDy;I&%r{NGWAq)@o!Y*+Iy?-aC{9mIR<}=d_vO3eQhfPv)LK4%DrJV>F5|9o7%jsx+>7s)7um64Fy8s zSTq<4M0%>LL;hHnI!W!t3yFTSCp94ARxYYaEk!B!7sL>0B_{rdpu+*8t#7al&CEc( zNC1&RW0p-pE1)!F%aFZoY;>!r1h-g3FEFgOKyZ+1R^RX9*-ALMp~aZYixY7UNz-09_3`Nye3O@#;AU+oLYDx zyN<)Ar>CR}#SH83@}90xSHKta2V(wcFzD+TuWqYWCaSA^r=iE)RS|*Cp3cqVmC>QI zeB;$~MKh!8ys zxnh9|DXKH21*3jYl$j)%(Br(mkQ~@ZG^P@eABSCvCeyf)CF(_gseQJUEI&14MAJm5 zE9?)(f}wCU8j3}Nu~-yhA4{`|)I%&rp7Vs@VrspaD3*LwwHB@ZT!D-bnLA6kW477I znXjczO$0+{RmO3jx)=)5oKh^sODPy(#d6}D5@p|t6+XybovJ|{LJ=SBJecO1O{J8n z#K82Ka+b}MN|0SG6DX!QcYqlW=Djz8YbL)WdTEI80M&GDVZ7@V4I8 zU^vD_w8v+3Y%Sy?FSuUl~S$WRl7{=Z%Cu)j@!17cLnN=7R3<-t>BZ5)E9>JJk zFEvg!K(`@2!j>{_$V{e8T1TgUV;~<2WY<|Is|+?fm>J3X1Qmo7gcU>-^s!(K-3IlTT%u_Qx5Klw1wrm@#keP#oi=kjg5JFuu zC)Vs3>eL~OLex@?9k$MCP0)z4C`z(lh$k~N z6V}@!7&+GS0D1AfKI(Lh3Y(>%CQ%RCvQ4*T@$9W~BvJ=pP{5(Z)*{KiHX>Pbtg6(& z6!R%Kh5ebnet7(tBS2`FJz8}>&d(QqUd4g|x|NVtlnR2WnJPS8f8 zrJW02WEP<|@T{GSOw}tH82hrogq;^hnoLE+-ve(V27s$a?T90-_@wALK)E!pA0RE( z;PrO(I*(K+7Us2=-37;d)fFjlLX)%2D)EHiFiOZF(XENEmI{RsjlmqPq-Y&QYp@Nx z$WUba%W8@PyVYz+7E6R%m4IMJ17Q+v3^}`D%0c+lVaOV2V{kA<4{5_Bd?t5WOqFW%$JAlIFrAvU_@H5riO<21_kI zdwUEDMVa|>u^$NylT6Y|AF{a(df*)H23*5TUmvgavzflZffQx}wV06!x#s7Va_~SY zBxcs;oqGF|?*!GBy>Tu`v^V;c(tfapb{C&6|4DT z*>yBz7%`C%=50;8?7pfW&Z^9jiL)xBqt$IRODZ=~L6EDOZ7!r(1eX;5l17l!iF#XG zq>!cJQsQljv&j|{rE3LeU1BQb(w>@%&Cp_*edNqwmZX?sRgh4~k}cpQQ>f+uc`tS= zmdKvUPt_t6pQ7(!6<<&LV(Lwwp7v9{647wrW)$Hz6I(7hB%CBo32dM%&=U#w zhC>m5EEo*NdLnR`Vid%&wJBE2zO)iaw0WIsc>#Nn9P!vjxH9k1g?bN+*3EkGS(4eHu*z6Iuw_tWZO`tM z(xwB&YtcIIK2V4Q(f-_Emi8fPUfk@asxrP^Y>YHvSy`|}c>?LFZQJtI@sY7%#4mB6 zA?Jve`z`f~)hPuuuTY9YC1Qp|ht-sCns`fH8n(|}<-s_)D5<1UI~_2P1)+W2qx>h@ z5}{FsLO>O)pf3#rFTRr-;)OIEt8~VU7iA%hvX+bO->FTKMzub&yh|0JR%%sL-moGD zyG&@8Xs2BXI#ruc@dS373MvL*?^z<3FXR%wnrTo|yFJcK`xwrJCk2uy$nN0Pf>mZo=9WpOWLByxkrvbeuwEoeT2O|Z$Gvn9lZXoX8Mu69*a$1OQj9AIUv zH|k>3Y}S*^Ju1=$M;ilnx0r{T3{n}TyUHRchYyO&p*J8qd&=Q=MB#Z?As;U#`m?aR zI_}W7aU**$STW|z)cP`H37c`s`Cv`34@k0@XCZUCw`waY5F!7T8KDTn;)nXKhiLi zEJft$kX3rd650_b;>c7swUOCFhRB+RYN}Dr8sN7t5eWGH)NKr3=k}o;Qzr~z$ECWn zb9;D}>n*syWyiVU&WRnJ!+|JDaKNs!vU%hL1j~mh zEGsjqrb3Q?Yt>^h(<@BN=yQzTwxiCH+|dcSwPkYkoj$bfB;donkxU zphTAF!Wkli3(Gu%*dGY?#=_As0!gtz4}!ws2stjbsr=JPw>c$xca6-dy|Xhn)=<4Is1RkZ9u$&u zZW|sOTY3Jb`iuS8p|aa;Aor;^BUff)Yqf-+8E!ajkzPSa*i?BYDs0MTy1v&iw1sk_MD$_fU&M;N z;G)eNg$EqLR-PhPO>ttw>wQTTpq2%SH3=iurzo{nJem&nHB}evgKG275r%_yS)G<8 zVjK=ou8*9gfMIQm(=fYb650W)6 z$ZCnroz_H->5%QI@fZuw-k`rX80(E7QXfMosM^^>=9{>vV;6R{wKS3TMiaa;6ko|+ z$|6IYOVo$0W8OjJXuqjnF0?4EE&521^@2%rU3sw_b^Bwc zPA-nc&J4d-N6lFW)baqaSzaChX?Z|n=4jQn2G?wKuEA;O90IM@eB#~L#6)f5DPu9a zp7wAYT#VuYUa4@rNa(z<&(VdX4^7b{qsJ#?78 zH%tn{bJJ&WMi%unszQe{YBZktMA3vf;eMf!y0|gV;10E=H$C{(0zJ1_9=pxrVwP}d zv3;Hr3akziDZCSw%clm-WFejzRK(a^J0&$rA`kGcml~GZ3_E)`l1&pYon|9rrY%S0 zC5^=rnRA%YnDeDU?P=BTxfhd}9L0Hvc{Xt?@~dTb>xC*q{I(nkyzo)SHD@@KyyYPN z*X*7dIc=XM3gRd76l&WcC>6~>EE)}%AmtFlDHY5#7y;R8BW6j|#badC@(ZE!ZT!RV<%Q%ffaZ?e4 z<2N#cvLB+m>zLZC7Xc3N!U4ZDBy-OU!W^>AvP(lVTVHh;&{{dra!Jk9tP_fKVg-rd ztSd2!lhNBWvO9tIt$7h?6Fl}Y?Q+MlCA+){%T;)Sm=4JdL{xke!=$Nq2!omq_=REw zL(`dT%GX2AgBF3>t_>@l3a?L&o<4Fd{CDukwHu7W=Rtm4TP@Jz%IIdDyxrF&u z1w2{5hsc7OXNwHlAQLuGF(kskZV`xAWwG{^m#-1$P89~@rOYWQ<_QbA)fLC6S>sGp z*WDpOvCpY?A6@ecjjI0EfAau}Yg#?Kw`+6IoUN0`Ut2QM@YFerwXhNvQU%pi3P=HKs3KjN=9)(3 z>Di(s4wIw(Pt~AW{L1QAEr0C>3~v+i&{|$=jpOV%M)hl1Joa@PuBs2}wT)Bsdraad zP>*Yy-Ml*`e5mDGi<-K6Yr2G5^nA+m1DTB(l5RldkMng{{$T)V0KQnCo!Y5w0V>%lZ2!l(!%Dyhh`_{q}oqd|PNg-1xrG zez*;M8fQD)_*oWwN@qKo4SbfzKaZg@)%~PZLfwDMA_AY+*$y{8GIiEBm+L#&xDB7}iukdj?%HBB=ey|(JKN!= zPwZ@m8=oJ(jB9FzN-i{hz5f?Ls)git5ytx?oa+Ohl^QL!Cg^$>EU9uMj{J` z?*;MwNwrc5hlhuUBGpg@fB62P2OA%~Rex`6OC=VH@FU_r&^Lu$0jxtqk!o*G2y;?M@9$6hV?EC<;1s5R>wyx^vXh7wsJI|R1LJpAmNI0^BV@h z+m-llfV$%2W=4E6%7~9_8N-5PI;b4U8R5x-dEnfm4dYBge380SuD>YPe=FDDlk0z$ z>u2Tqmva5FT+hQeQ+-DeqP{MArjK0d`TOPiU*wu>Mgzoq z2epSzUj(FUvQQ0Bd$PR^P-oI`Lef-1d_-%|4=XJrgmD6iMgs~lzi_`#$_)yhDY#W| zRB%d=Y!TJFTksjd7X)7wd_(X}!A}I;)DJvAM{vI2!GebiE)zUfkoZZ@nS$pDULd$z z@N&T`1+NvnLGUKQTLteByjSo+!M%cy3qB?IjNl7`^xGdq*BgRw3X;8`d^ZdU;e5d( z1bYQf6kJP)@yy9}nGoiFSgywfFA}^`@LEF1_20_%oq`VwvV7pXZioPv!w2_VFMzMv z*5P@YiKso6BcPkEAupVdUn{^L_v1)Gh^Wy3A!9khH{ManKZy`uv1jBORr7QByq;0Z zCyMYj%{as#be(aPV7FjI@OZ(vpq5**1@wGTaFd`ZSQR{5@EpPO1TPTWEqJ-$m4ep_ z-XM6B;H`pp2;M9Bpx|D?#|57f{A2ay9V!2T;66c@$W@bIt6;m}62YScj~3+5=E0|c zT=xi`Aea!$2<8OKf~N^q1h)!q7n~5B7Q9gKQo%0^UM=`_LHgYn8o!$bZxg&r@IJwZ z1RoWALhxz9=LBC8d`O0ZinB6z%D zT(D1YK(HuCzpF#-nSxcpvjxu)JWucf!QFzF3tlOBtswoX2-SO&;H`pp2;M9Bpx|CX z`V|a%?kT}%1YZz*RqzeLHwEdp+32|s1osKLV6Z8_NsxZegs$5Kmk1suc(mYZ!GK_o z;0b~W!Hi%|uq=3*U`24N;C8_Y!D+z@1uqr+vf$N%Ul;s_;LU=!3Em}mpWs7+j|x5^ z__W}2f-ecaCiru~UkSb^_&dQ*1l^dZh>vpw=L;Szc(~v)!D9tG1w(?pf+q>41lI|! z7u+Cty5NxDh~StY{fsElwM+0~!OH}{B6yA9^@86Lq+ju)=WiFhTkrwFM+AQ;_@v;E z1)mpuMewJBzYu&|@O{CL1osPi;DAv3ErJUL7Yi;GTp_qhuv?IRL5!Y1UNA1$CpaKj z6x<|e3RVTr7CcArJi!YDcMD!Fc%|UAf;R}>BzUXf9fJ1?(r-c%y?X^87ko zUln{q@J+#Y1V0emC+KQY_0z9lQai1J?Se}Lj}kmuaJ67Sut)F&!GvH&Feg|RJWa47 zxK(hw;Dq3`;Dv&h3VvDeYQe7yenaqP!P^Ay61-3FA;CulpAdXn@HxSk1nGCDh(A9U z{FUH)g1-~|M9>XKm&(r(oG*B=;NgPw1GrS~Siw%gkRbgWF5N##FeSK7kbWGO?r#u0 zU2sT{e&v$xj|ol*?h?FM@G`-#2wo$2z2LV5ZxOs*@NU5e1RoLnq2QB(KNfsm@D;(I z3jRXyZNc{iKN8$8=$WJX(;~P~aIxT0!4-n51iJ+zg2xNS1^WaC1dD>31Wm!J;Ms!b z2%aZ+f#7bz%LT6#yjJiA!J7nc6}&_6Ucm|x?f-eZZD)@#V{eB*e|2u*o z2<{VfVQohDn*>`0+Xa^h9wm6R;A+8uV2|Jlf(gNlU{0_sc$y&0I=BC)uIK(=)${+? zg=#$h)OF!!jR*aVIK>$z2_Xv{4?r-1;|a)*kzC+{<7~KZbWKcepR8;KPL3-)OP}FI z@kyhLUeGqWHcw0#UHIvoF3Rkh88$q?Jqif&tzr5dCHy|qmNC@G=atQy@l!kYyA}KZ z&(^B6qYBN;*LT~ZuoCH^UX2N#w9>&u;td|eJdXn4SKSzEcoKc(D8 zTe%}_<>(mer5+#4kWx7;RrshcNB8JB7XO$YKC_%3W$N3dxSBqQFLY20 z3g*!`8UJ(~grLxez?Jx?cBmX7@xfkS354%Ko<4Ma{m8J_HxI#4il0$^B-*;ZtvI)l zW4ws^p3=;)-5bKWy}lz*pAY4zJ{mt=--PWMoEkSnul|cpa?qSsT6U08LK7=X{Sl`7U z{y1G3@Idwb)fqMVD1JGkztZkQsL!t}`IP$p74=<(azvljbCOewe^TGC5Qimw)Q7Ix z;-8coKC?C+TFj^yve*XCIF}XV&DN;jM>2siNi%?j{cfWvgS0UqQT&=)A)wclu)TXv+I5mE>&M?xt5?t$3 R(gAz9@1KclebZL%zX9wNUP1r> diff --git a/AutoParkingCar/Debug/Src/HAL/HSERVO/HSERVO_Prog.su b/AutoParkingCar/Debug/Src/HAL/HSERVO/HSERVO_Prog.su deleted file mode 100644 index b84ea81..0000000 --- a/AutoParkingCar/Debug/Src/HAL/HSERVO/HSERVO_Prog.su +++ /dev/null @@ -1,2 +0,0 @@ -HSERVO_Prog.c:29:6:HSERVO_vServoInit 16 static -HSERVO_Prog.c:89:6:HSERVO_vServoDeg 24 static diff --git a/AutoParkingCar/Debug/Src/HAL/HSERVO/subdir.mk b/AutoParkingCar/Debug/Src/HAL/HSERVO/subdir.mk deleted file mode 100644 index d1eb5fb..0000000 --- a/AutoParkingCar/Debug/Src/HAL/HSERVO/subdir.mk +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Src/HAL/HSERVO/HSERVO_Prog.c - -OBJS += \ -./Src/HAL/HSERVO/HSERVO_Prog.o - -C_DEPS += \ -./Src/HAL/HSERVO/HSERVO_Prog.d - - -# Each subdirectory must supply rules for building sources it contributes -Src/HAL/HSERVO/HSERVO_Prog.o: ../Src/HAL/HSERVO/HSERVO_Prog.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/HAL/HSERVO/HSERVO_Prog.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Debug/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.d b/AutoParkingCar/Debug/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.d deleted file mode 100644 index 91f34f7..0000000 --- a/AutoParkingCar/Debug/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.d +++ /dev/null @@ -1,23 +0,0 @@ -Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o: \ - ../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.c \ - ../Src/HAL/HULTRA_SONIC/../../MCAL/MRCC/MRCC_Int.h \ - ../Src/HAL/HULTRA_SONIC/../../MCAL/MGPIO/MGPIO_Int.h \ - g:\embedded\ systems\gp\autoparkingcar\src\lib\std_types.h \ - ../Src/HAL/HULTRA_SONIC/../../MCAL/MTIMER/MTIMER_Int.h \ - ../Src/HAL/HULTRA_SONIC/../../MCAL/MSTK/MSYSTICK_Int.h \ - ../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Config.h \ - ../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h - -../Src/HAL/HULTRA_SONIC/../../MCAL/MRCC/MRCC_Int.h: - -../Src/HAL/HULTRA_SONIC/../../MCAL/MGPIO/MGPIO_Int.h: - -g:\embedded\ systems\gp\autoparkingcar\src\lib\std_types.h: - -../Src/HAL/HULTRA_SONIC/../../MCAL/MTIMER/MTIMER_Int.h: - -../Src/HAL/HULTRA_SONIC/../../MCAL/MSTK/MSYSTICK_Int.h: - -../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Config.h: - -../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h: diff --git a/AutoParkingCar/Debug/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o b/AutoParkingCar/Debug/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o deleted file mode 100644 index 178452847b842c4e826112b1ea7802a4caad3da0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27560 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 W)5ke?GBe%{k#2E4gb!Q;ru!G)BZUzF diff --git a/AutoParkingCar/Debug/Src/MCAL/MEXTI/MEXTI_Prog.su b/AutoParkingCar/Debug/Src/MCAL/MEXTI/MEXTI_Prog.su deleted file mode 100644 index bd1589c..0000000 --- a/AutoParkingCar/Debug/Src/MCAL/MEXTI/MEXTI_Prog.su +++ /dev/null @@ -1,16 +0,0 @@ -MEXTI_Prog.c:20:6:SYSCFG_vConfigEXTI_Line 16 static -MEXTI_Prog.c:26:6:MEXTI_vEnableInterrupt 16 static -MEXTI_Prog.c:30:6:MEXTI_vDisableInterrupt 16 static -MEXTI_Prog.c:34:6:MEXTI_vEnableEvent 16 static -MEXTI_Prog.c:38:6:MEXTI_vDisableEvent 16 static -MEXTI_Prog.c:42:6:MEXTI_vInterruptTrigger 16 static -MEXTI_Prog.c:59:6:MEXTI_vSWevent 16 static -MEXTI_Prog.c:63:6:MEXTI_PtrReadInterruptFlag 16 static -MEXTI_Prog.c:68:6:MEXTI_vCallBack 16 static -MEXTI_Prog.c:75:6:EXTI0_IRQHandler 8 static -MEXTI_Prog.c:80:6:EXTI1_IRQHandler 8 static -MEXTI_Prog.c:85:6:EXTI2_IRQHandler 8 static -MEXTI_Prog.c:89:6:EXTI3_IRQHandler 8 static -MEXTI_Prog.c:93:6:EXTI4_IRQHandler 8 static -MEXTI_Prog.c:97:6:EXTI9_5_IRQHandler 8 static -MEXTI_Prog.c:119:6:EXTI15_10_IRQHandler 8 static diff --git a/AutoParkingCar/Debug/Src/MCAL/MEXTI/subdir.mk b/AutoParkingCar/Debug/Src/MCAL/MEXTI/subdir.mk deleted file mode 100644 index b53ead4..0000000 --- a/AutoParkingCar/Debug/Src/MCAL/MEXTI/subdir.mk +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Src/MCAL/MEXTI/MEXTI_Prog.c - -OBJS += \ -./Src/MCAL/MEXTI/MEXTI_Prog.o - -C_DEPS += \ -./Src/MCAL/MEXTI/MEXTI_Prog.d - - -# Each subdirectory must supply rules for building sources it contributes -Src/MCAL/MEXTI/MEXTI_Prog.o: ../Src/MCAL/MEXTI/MEXTI_Prog.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MEXTI/MEXTI_Prog.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Debug/Src/MCAL/MGPIO/MGPIO_Prog.d b/AutoParkingCar/Debug/Src/MCAL/MGPIO/MGPIO_Prog.d deleted file mode 100644 index c806678..0000000 --- a/AutoParkingCar/Debug/Src/MCAL/MGPIO/MGPIO_Prog.d +++ /dev/null @@ -1,14 +0,0 @@ -Src/MCAL/MGPIO/MGPIO_Prog.o: ../Src/MCAL/MGPIO/MGPIO_Prog.c \ - ../Src/MCAL/MGPIO/../../LIB/BIT_MATH.h \ - ../Src/MCAL/MGPIO/../../LIB/STD_TYPES.h ../Src/MCAL/MGPIO/MGPIO_Config.h \ - ../Src/MCAL/MGPIO/MGPIO_Private.h ../Src/MCAL/MGPIO/MGPIO_int.h - -../Src/MCAL/MGPIO/../../LIB/BIT_MATH.h: - -../Src/MCAL/MGPIO/../../LIB/STD_TYPES.h: - -../Src/MCAL/MGPIO/MGPIO_Config.h: - -../Src/MCAL/MGPIO/MGPIO_Private.h: - -../Src/MCAL/MGPIO/MGPIO_int.h: diff --git a/AutoParkingCar/Debug/Src/MCAL/MGPIO/MGPIO_Prog.o b/AutoParkingCar/Debug/Src/MCAL/MGPIO/MGPIO_Prog.o deleted file mode 100644 index dc638e5ed232b4c183c5817e551d5c1a5a4f2b37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60276 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ኌWIzR*^h&llAD`u+{br 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 Rx#J!7b;tROjRdsu{tpTZ@7DkT diff --git a/AutoParkingCar/Debug/Src/MCAL/MIWDT/MIWDT_Prog.su b/AutoParkingCar/Debug/Src/MCAL/MIWDT/MIWDT_Prog.su deleted file mode 100644 index 301f721..0000000 --- a/AutoParkingCar/Debug/Src/MCAL/MIWDT/MIWDT_Prog.su +++ /dev/null @@ -1,2 +0,0 @@ -MIWDT_Prog.c:21:6:MIWDG_vStart 16 static -MIWDT_Prog.c:44:6:MIWDG_vReload 4 static diff --git a/AutoParkingCar/Debug/Src/MCAL/MIWDT/subdir.mk b/AutoParkingCar/Debug/Src/MCAL/MIWDT/subdir.mk deleted file mode 100644 index 1b25746..0000000 --- a/AutoParkingCar/Debug/Src/MCAL/MIWDT/subdir.mk +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Src/MCAL/MIWDT/MIWDT_Prog.c - -OBJS += \ -./Src/MCAL/MIWDT/MIWDT_Prog.o - -C_DEPS += \ -./Src/MCAL/MIWDT/MIWDT_Prog.d - - -# Each subdirectory must supply rules for building sources it contributes -Src/MCAL/MIWDT/MIWDT_Prog.o: ../Src/MCAL/MIWDT/MIWDT_Prog.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MIWDT/MIWDT_Prog.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Debug/Src/MCAL/MNVIC/MNVIC_Prog.d b/AutoParkingCar/Debug/Src/MCAL/MNVIC/MNVIC_Prog.d deleted file mode 100644 index f5a7fd5..0000000 --- a/AutoParkingCar/Debug/Src/MCAL/MNVIC/MNVIC_Prog.d +++ /dev/null @@ -1,14 +0,0 @@ -Src/MCAL/MNVIC/MNVIC_Prog.o: ../Src/MCAL/MNVIC/MNVIC_Prog.c \ - ../Src/MCAL/MNVIC/../../LIB/BIT_MATH.h \ - ../Src/MCAL/MNVIC/../../LIB/STD_TYPES.h ../Src/MCAL/MNVIC/MNVIC_Config.h \ - ../Src/MCAL/MNVIC/MNVIC_Private.h ../Src/MCAL/MNVIC/MNVIC_int.h - -../Src/MCAL/MNVIC/../../LIB/BIT_MATH.h: - -../Src/MCAL/MNVIC/../../LIB/STD_TYPES.h: - -../Src/MCAL/MNVIC/MNVIC_Config.h: - -../Src/MCAL/MNVIC/MNVIC_Private.h: - -../Src/MCAL/MNVIC/MNVIC_int.h: diff --git a/AutoParkingCar/Debug/Src/MCAL/MNVIC/MNVIC_Prog.o b/AutoParkingCar/Debug/Src/MCAL/MNVIC/MNVIC_Prog.o deleted file mode 100644 index 8da588092c1e127109aaf0bf2fa3ecaf1f5c17db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59984 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 diff --git a/AutoParkingCar/Debug/Src/MCAL/MNVIC/MNVIC_Prog.su b/AutoParkingCar/Debug/Src/MCAL/MNVIC/MNVIC_Prog.su deleted file mode 100644 index 5cb484f..0000000 --- a/AutoParkingCar/Debug/Src/MCAL/MNVIC/MNVIC_Prog.su +++ /dev/null @@ -1,8 +0,0 @@ -MNVIC_Prog.c:18:6:MNVIC_vEnableInterrupt 16 static -MNVIC_Prog.c:24:6:MNVIC_vDisableInterrupt 16 static -MNVIC_Prog.c:31:6:MNVIC_vSetPendingFlag 16 static -MNVIC_Prog.c:37:6:MNVIC_vClearPendingFlag 16 static -MNVIC_Prog.c:43:4:MNVIC_u8ReadActiveFlag 24 static -MNVIC_Prog.c:51:6:MNVIC_vInitGrouping 16 static -MNVIC_Prog.c:57:6:MNVIC_vSetIntPriority 16 static -MNVIC_Prog.c:86:6:MNVIC_vTrigSoftwareInt 16 static diff --git a/AutoParkingCar/Debug/Src/MCAL/MNVIC/subdir.mk b/AutoParkingCar/Debug/Src/MCAL/MNVIC/subdir.mk deleted file mode 100644 index 95664fd..0000000 --- a/AutoParkingCar/Debug/Src/MCAL/MNVIC/subdir.mk +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Src/MCAL/MNVIC/MNVIC_Prog.c - -OBJS += \ -./Src/MCAL/MNVIC/MNVIC_Prog.o - -C_DEPS += \ -./Src/MCAL/MNVIC/MNVIC_Prog.d - - -# Each subdirectory must supply rules for building sources it contributes -Src/MCAL/MNVIC/MNVIC_Prog.o: ../Src/MCAL/MNVIC/MNVIC_Prog.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MNVIC/MNVIC_Prog.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Debug/Src/MCAL/MRCC/MRCC_Prog.d b/AutoParkingCar/Debug/Src/MCAL/MRCC/MRCC_Prog.d deleted file mode 100644 index c06f297..0000000 --- a/AutoParkingCar/Debug/Src/MCAL/MRCC/MRCC_Prog.d +++ /dev/null @@ -1,14 +0,0 @@ -Src/MCAL/MRCC/MRCC_Prog.o: ../Src/MCAL/MRCC/MRCC_Prog.c \ - ../Src/MCAL/MRCC/MRCC_Config.h ../Src/MCAL/MRCC/MRCC_Private.h \ - ../Src/MCAL/MRCC/../../LIB/BIT_MATH.h \ - ../Src/MCAL/MRCC/../../LIB/STD_TYPES.h ../Src/MCAL/MRCC/MRCC_Int.h - -../Src/MCAL/MRCC/MRCC_Config.h: - -../Src/MCAL/MRCC/MRCC_Private.h: - -../Src/MCAL/MRCC/../../LIB/BIT_MATH.h: - -../Src/MCAL/MRCC/../../LIB/STD_TYPES.h: - -../Src/MCAL/MRCC/MRCC_Int.h: diff --git a/AutoParkingCar/Debug/Src/MCAL/MRCC/MRCC_Prog.o b/AutoParkingCar/Debug/Src/MCAL/MRCC/MRCC_Prog.o deleted file mode 100644 index 7959447234a1de42b1da16aadbc68e579057e499..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56636 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 K&9N^!(*1uzGoyw8 diff --git a/AutoParkingCar/Debug/Src/MCAL/MRCC/MRCC_Prog.su b/AutoParkingCar/Debug/Src/MCAL/MRCC/MRCC_Prog.su deleted file mode 100644 index 1f840e4..0000000 --- a/AutoParkingCar/Debug/Src/MCAL/MRCC/MRCC_Prog.su +++ /dev/null @@ -1,3 +0,0 @@ -MRCC_Prog.c:18:6:MRCC_vInit 4 static -MRCC_Prog.c:54:6:MRCC_vEnableClock 16 static -MRCC_Prog.c:71:6:MRCC_vDisableClock 16 static diff --git a/AutoParkingCar/Debug/Src/MCAL/MRCC/subdir.mk b/AutoParkingCar/Debug/Src/MCAL/MRCC/subdir.mk deleted file mode 100644 index 3db3760..0000000 --- a/AutoParkingCar/Debug/Src/MCAL/MRCC/subdir.mk +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Src/MCAL/MRCC/MRCC_Prog.c - -OBJS += \ -./Src/MCAL/MRCC/MRCC_Prog.o - -C_DEPS += \ -./Src/MCAL/MRCC/MRCC_Prog.d - - -# Each subdirectory must supply rules for building sources it contributes -Src/MCAL/MRCC/MRCC_Prog.o: ../Src/MCAL/MRCC/MRCC_Prog.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MRCC/MRCC_Prog.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Debug/Src/MCAL/MSPI/MSPI_Prog.d b/AutoParkingCar/Debug/Src/MCAL/MSPI/MSPI_Prog.d deleted file mode 100644 index a7b4420..0000000 --- a/AutoParkingCar/Debug/Src/MCAL/MSPI/MSPI_Prog.d +++ /dev/null @@ -1,20 +0,0 @@ -Src/MCAL/MSPI/MSPI_Prog.o: ../Src/MCAL/MSPI/MSPI_Prog.c \ - ../Src/MCAL/MSPI/../../LIB/BIT_MATH.h \ - ../Src/MCAL/MSPI/../../LIB/STD_TYPES.h ../Src/MCAL/MSPI/MSPI_Private.h \ - ../Src/MCAL/MSPI/MSPI_int.h ../Src/MCAL/MSPI/MSPI_Config.h \ - ../Src/MCAL/MSPI/../MGPIO/MGPIO_int.h \ - ../Src/MCAL/MSPI/../MGPIO/../../LIB/STD_TYPES.h - -../Src/MCAL/MSPI/../../LIB/BIT_MATH.h: - -../Src/MCAL/MSPI/../../LIB/STD_TYPES.h: - -../Src/MCAL/MSPI/MSPI_Private.h: - -../Src/MCAL/MSPI/MSPI_int.h: - -../Src/MCAL/MSPI/MSPI_Config.h: - -../Src/MCAL/MSPI/../MGPIO/MGPIO_int.h: - -../Src/MCAL/MSPI/../MGPIO/../../LIB/STD_TYPES.h: diff --git a/AutoParkingCar/Debug/Src/MCAL/MSPI/MSPI_Prog.o b/AutoParkingCar/Debug/Src/MCAL/MSPI/MSPI_Prog.o deleted file mode 100644 index 1b5f821e96fc1b014464653f769c32439dde206d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64448 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

    +rV;mLp|j!_;$;c~=OelI|) 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

    bdZb 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 diff --git a/AutoParkingCar/Debug/Src/MCAL/MTIMER/MTIMER_Prog.su b/AutoParkingCar/Debug/Src/MCAL/MTIMER/MTIMER_Prog.su deleted file mode 100644 index b96ac85..0000000 --- a/AutoParkingCar/Debug/Src/MCAL/MTIMER/MTIMER_Prog.su +++ /dev/null @@ -1,15 +0,0 @@ -MTIMER_Prog.c:17:18:GET_TIMER 64 static -MTIMER_Prog.c:34:6:MTIMER_vPeriodicMS 24 static -MTIMER_Prog.c:55:6:MTIMER_vPWM 32 static -MTIMER_Prog.c:89:6:MTIMER_vICU 24 static -MTIMER_Prog.c:127:6:TIMER_ICU 24 static -MTIMER_Prog.c:167:5:MTIMER_GET_ICU 16 static -MTIMER_Prog.c:182:6:MTIMER_CallBack 16 static -MTIMER_Prog.c:193:6:TIM1_UP_TIM10_IRQHandler 8 static -MTIMER_Prog.c:233:6:TIM1_TRG_COM_TIM11_IRQHandler 8 static -MTIMER_Prog.c:268:6:TIM1_BRK_TIM9_IRQHandler 8 static -MTIMER_Prog.c:307:6:TIM1_CC_IRQHandler 8 static -MTIMER_Prog.c:337:6:TIM2_IRQHandler 8 static -MTIMER_Prog.c:382:6:TIM3_IRQHandler 8 static -MTIMER_Prog.c:426:6:TIM4_IRQHandler 8 static -MTIMER_Prog.c:470:6:TIM5_IRQHandler 8 static diff --git a/AutoParkingCar/Debug/Src/MCAL/MTIMER/subdir.mk b/AutoParkingCar/Debug/Src/MCAL/MTIMER/subdir.mk deleted file mode 100644 index 369b648..0000000 --- a/AutoParkingCar/Debug/Src/MCAL/MTIMER/subdir.mk +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Src/MCAL/MTIMER/MTIMER_Prog.c - -OBJS += \ -./Src/MCAL/MTIMER/MTIMER_Prog.o - -C_DEPS += \ -./Src/MCAL/MTIMER/MTIMER_Prog.d - - -# Each subdirectory must supply rules for building sources it contributes -Src/MCAL/MTIMER/MTIMER_Prog.o: ../Src/MCAL/MTIMER/MTIMER_Prog.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MTIMER/MTIMER_Prog.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Debug/Src/MCAL/MUART/MUSART_Program.d b/AutoParkingCar/Debug/Src/MCAL/MUART/MUSART_Program.d deleted file mode 100644 index 305e8b0..0000000 --- a/AutoParkingCar/Debug/Src/MCAL/MUART/MUSART_Program.d +++ /dev/null @@ -1,15 +0,0 @@ -Src/MCAL/MUART/MUSART_Program.o: ../Src/MCAL/MUART/MUSART_Program.c \ - ../Src/MCAL/MUART/../../LIB/STD_TYPES.h \ - ../Src/MCAL/MUART/../../LIB/BIT_MATH.h \ - ../Src/MCAL/MUART/MUSART_Interface.h ../Src/MCAL/MUART/MUSART_Private.h \ - ../Src/MCAL/MUART/MUSART_Config.h - -../Src/MCAL/MUART/../../LIB/STD_TYPES.h: - -../Src/MCAL/MUART/../../LIB/BIT_MATH.h: - -../Src/MCAL/MUART/MUSART_Interface.h: - -../Src/MCAL/MUART/MUSART_Private.h: - -../Src/MCAL/MUART/MUSART_Config.h: diff --git a/AutoParkingCar/Debug/Src/MCAL/MUART/MUSART_Program.o b/AutoParkingCar/Debug/Src/MCAL/MUART/MUSART_Program.o deleted file mode 100644 index 5a869c8d1c5d800cfa00f9919f7cd5fa2db46f3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58368 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

      _);1YZ(ABg@52;^vb5-YkqK7@ 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 diff --git a/AutoParkingCar/Debug/Src/MCAL/MUART/MUSART_Program.su b/AutoParkingCar/Debug/Src/MCAL/MUART/MUSART_Program.su deleted file mode 100644 index fddfdfb..0000000 --- a/AutoParkingCar/Debug/Src/MCAL/MUART/MUSART_Program.su +++ /dev/null @@ -1,7 +0,0 @@ -MUSART_Program.c:26:6:MUART_Enable 24 static -MUSART_Program.c:59:6:MUART_Disable 24 static -MUSART_Program.c:65:6:MUART_Send_Byte 24 static -MUSART_Program.c:72:6:MUART_Send_Data 24 static -MUSART_Program.c:86:4:MUART_Receive_Byte 24 static -MUSART_Program.c:97:6:MUART_Receive_Data 16 static -MUSART_Program.c:102:11:Get_UART 24 static diff --git a/AutoParkingCar/Debug/Src/MCAL/MUART/subdir.mk b/AutoParkingCar/Debug/Src/MCAL/MUART/subdir.mk deleted file mode 100644 index 44ec6a2..0000000 --- a/AutoParkingCar/Debug/Src/MCAL/MUART/subdir.mk +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Src/MCAL/MUART/MUSART_Program.c - -OBJS += \ -./Src/MCAL/MUART/MUSART_Program.o - -C_DEPS += \ -./Src/MCAL/MUART/MUSART_Program.d - - -# Each subdirectory must supply rules for building sources it contributes -Src/MCAL/MUART/MUSART_Program.o: ../Src/MCAL/MUART/MUSART_Program.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MUART/MUSART_Program.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Debug/Src/main.d b/AutoParkingCar/Debug/Src/main.d deleted file mode 100644 index f7995b5..0000000 --- a/AutoParkingCar/Debug/Src/main.d +++ /dev/null @@ -1,59 +0,0 @@ -Src/main.o: ../Src/main.c ../Src/MCAL/MRCC/MRCC_int.h \ - ../Src/MCAL/MGPIO/MGPIO_int.h ../Src/MCAL/MGPIO/../../LIB/STD_TYPES.h \ - ../Src/MCAL/MNVIC/MNVIC_int.h ../Src/MCAL/MEXTI/MEXTI_int.h \ - ../Src/MCAL/MEXTI/MEXTI_config.h ../Src/MCAL/MEXTI/MEXTI_Private.h \ - ../Src/MCAL/MEXTI/../../LIB/BIT_MATH.h \ - ../Src/MCAL/MEXTI/../../LIB/STD_TYPES.h ../Src/MCAL/MIWDT/MIWDT_int.h \ - ../Src/MCAL/MSTK/MSYSTICK_int.h ../Src/MCAL/MSPI/MSPI_int.h \ - ../Src/MCAL/MRCC/MRCC_private.h ../Src/MCAL/MRCC/../../LIB/BIT_MATH.h \ - ../Src/MCAL/MRCC/../../LIB/STD_TYPES.h \ - ../Src/MCAL/MUART/MUSART_Interface.h ../Src/MCAL/MUART/MUSART_Private.h \ - ../Src/MCAL/MUART/MUSART_Config.h ../Src/MCAL/MUART/MUSART_Private.h \ - ../Src/HAL/HMOTOR/HMOTOR.h ../Src/HAL/HMOTOR/../../LIB/STD_TYPES.h \ - ../Src/HAL/HSERVO/HSERVO_Int.h ../Src/MCAL/MTIMER/MTIMER_Int.h - -../Src/MCAL/MRCC/MRCC_int.h: - -../Src/MCAL/MGPIO/MGPIO_int.h: - -../Src/MCAL/MGPIO/../../LIB/STD_TYPES.h: - -../Src/MCAL/MNVIC/MNVIC_int.h: - -../Src/MCAL/MEXTI/MEXTI_int.h: - -../Src/MCAL/MEXTI/MEXTI_config.h: - -../Src/MCAL/MEXTI/MEXTI_Private.h: - -../Src/MCAL/MEXTI/../../LIB/BIT_MATH.h: - -../Src/MCAL/MEXTI/../../LIB/STD_TYPES.h: - -../Src/MCAL/MIWDT/MIWDT_int.h: - -../Src/MCAL/MSTK/MSYSTICK_int.h: - -../Src/MCAL/MSPI/MSPI_int.h: - -../Src/MCAL/MRCC/MRCC_private.h: - -../Src/MCAL/MRCC/../../LIB/BIT_MATH.h: - -../Src/MCAL/MRCC/../../LIB/STD_TYPES.h: - -../Src/MCAL/MUART/MUSART_Interface.h: - -../Src/MCAL/MUART/MUSART_Private.h: - -../Src/MCAL/MUART/MUSART_Config.h: - -../Src/MCAL/MUART/MUSART_Private.h: - -../Src/HAL/HMOTOR/HMOTOR.h: - -../Src/HAL/HMOTOR/../../LIB/STD_TYPES.h: - -../Src/HAL/HSERVO/HSERVO_Int.h: - -../Src/MCAL/MTIMER/MTIMER_Int.h: diff --git a/AutoParkingCar/Debug/Src/main.su b/AutoParkingCar/Debug/Src/main.su deleted file mode 100644 index e69de29..0000000 diff --git a/AutoParkingCar/Debug/Src/subdir.mk b/AutoParkingCar/Debug/Src/subdir.mk deleted file mode 100644 index cbae952..0000000 --- a/AutoParkingCar/Debug/Src/subdir.mk +++ /dev/null @@ -1,29 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Src/main.c \ -../Src/syscalls.c \ -../Src/sysmem.c - -OBJS += \ -./Src/main.o \ -./Src/syscalls.o \ -./Src/sysmem.o - -C_DEPS += \ -./Src/main.d \ -./Src/syscalls.d \ -./Src/sysmem.d - - -# Each subdirectory must supply rules for building sources it contributes -Src/main.o: ../Src/main.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/main.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Src/syscalls.o: ../Src/syscalls.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/syscalls.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Src/sysmem.o: ../Src/sysmem.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/sysmem.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Debug/Src/syscalls.d b/AutoParkingCar/Debug/Src/syscalls.d deleted file mode 100644 index a17a7f9..0000000 --- a/AutoParkingCar/Debug/Src/syscalls.d +++ /dev/null @@ -1 +0,0 @@ -Src/syscalls.o: ../Src/syscalls.c diff --git a/AutoParkingCar/Debug/Src/syscalls.o b/AutoParkingCar/Debug/Src/syscalls.o deleted file mode 100644 index d463217d2f4b5e8d34fb02466a3893e293cbf904..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78332 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 diff --git a/AutoParkingCar/Debug/Src/syscalls.su b/AutoParkingCar/Debug/Src/syscalls.su deleted file mode 100644 index 511cc15..0000000 --- a/AutoParkingCar/Debug/Src/syscalls.su +++ /dev/null @@ -1,18 +0,0 @@ -syscalls.c:44:6:initialise_monitor_handles 4 static -syscalls.c:48:5:_getpid 4 static -syscalls.c:53:5:_kill 16 static -syscalls.c:61:6:_exit 16 static -syscalls.c:67:27:_read 32 static -syscalls.c:80:27:_write 32 static -syscalls.c:92:5:_close 16 static -syscalls.c:99:5:_fstat 16 static -syscalls.c:106:5:_isatty 16 static -syscalls.c:112:5:_lseek 24 static -syscalls.c:120:5:_open 12 static -syscalls.c:128:5:_wait 16 static -syscalls.c:135:5:_unlink 16 static -syscalls.c:142:5:_times 16 static -syscalls.c:148:5:_stat 16 static -syscalls.c:155:5:_link 16 static -syscalls.c:163:5:_fork 8 static -syscalls.c:169:5:_execve 24 static diff --git a/AutoParkingCar/Debug/Src/sysmem.d b/AutoParkingCar/Debug/Src/sysmem.d deleted file mode 100644 index 4b55cad..0000000 --- a/AutoParkingCar/Debug/Src/sysmem.d +++ /dev/null @@ -1 +0,0 @@ -Src/sysmem.o: ../Src/sysmem.c diff --git a/AutoParkingCar/Debug/Src/sysmem.o b/AutoParkingCar/Debug/Src/sysmem.o deleted file mode 100644 index 6102bb95bccc4fbfb14ed79fd83f596abe05c001..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49336 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 diff --git a/AutoParkingCar/Debug/Src/sysmem.su b/AutoParkingCar/Debug/Src/sysmem.su deleted file mode 100644 index 8377996..0000000 --- a/AutoParkingCar/Debug/Src/sysmem.su +++ /dev/null @@ -1 +0,0 @@ -sysmem.c:53:7:_sbrk 32 static diff --git a/AutoParkingCar/Debug/Startup/startup_stm32f401rctx.d b/AutoParkingCar/Debug/Startup/startup_stm32f401rctx.d deleted file mode 100644 index 84049f0..0000000 --- a/AutoParkingCar/Debug/Startup/startup_stm32f401rctx.d +++ /dev/null @@ -1 +0,0 @@ -Startup/startup_stm32f401rctx.o: ../Startup/startup_stm32f401rctx.s diff --git a/AutoParkingCar/Debug/Startup/startup_stm32f401rctx.o b/AutoParkingCar/Debug/Startup/startup_stm32f401rctx.o deleted file mode 100644 index 02e6152f5b37106df21bade286db272657d95d5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4944 zcmeHKPiz!r6o0$h7O1q8KPm|5_77S?cH3=Hi>Pe3-F9i0uHCj)qYks(Y1z>3HnUTt zfhZD8JP;(2L}NH0;o!jpqFgk_5K|Km987?C@xZ|--b_58l7PSW&3xN$zDo4u$=A;O z-tWElz4yLvW@o;6vv)8V2n0wh@4`@W!?Ag-lh)!uk{4e_XBIQ#(k_fg5Z0RmIMA-@eL`eBAljmqa1=_9#LBtN-x| z97Vk#b@4fHyS|Qa=kU#fBM^y1vyN#ybF)NcS24=YOh;_8v#s5pa1KSv?u}I)#0U!Q z3^X>iH$s}_KQ#QcwTH&SozZA$RU{e=q5^pXexpDz0RAvn=M+?>-l)_J%Mgyh(ZFhI zs2QyZ)o-ldQopvEL#YLaH%f3mWjxKbyJT@1(R!?8$5TcnLE+=X~$|F(WS46kXKxdH_qfLfg> z*^YH+d%BZq>XxNfsJ+6yL_)q_FV-11;J(WUu1W~ipNHY;iqXBEl7?udR0W2pUgNbIUnBA@8vWHn zw0hA6Eky1EP#QzDj=CiQu10@+*Rk-mX+ZymVD6~_Fs1RL#^*GCSmSSjbCNwb;gsw$^;nbU+_Yo#o5lPzqK$GP zkE}o!ERS(k!{YO>RkoCP3vY&r1LQvYMKgvmUC2!sT+}da+nlEvvrweH=~SgkziH=_ zzPf2^CT$kYDXS9GJy-UJjF#c{o3dkxO1yZ-q)Ww$A!8Nu*|7>mha-iF0~MYb>oHQp zFUX0H#M2ogE6$2_cqC!GI53(~Ba?&iY`d-RK=t zi@T;_%@kW21(Po-n@RcF0r%DBRc_y5_-DkID?V-7Gitq|kv=1tU2++-J*goz3)Cf-?hze2VA{BZ{46#OC@u<4&TF8J{8ggb|a!$oQ=LJ`X-e^d)m_jxICqCR$*O z6Mf6rO>~7ZLG&FXn!mx=OY|dSlISL5AJz#E|6o7XhcShDG44U%j05PK5tBX6n8r6D z<6a`9pkNiz>x}mi)i7fFw2~1U#spunr%%-uwQm4BA((AetbuyG2(xai@=EfIuOx?vTYm`?+bTy zo_F(j$QLb@7mAZ56cRo&m&40P^_sR>oU%~f4M2ygS32Xv>4@n#b|E+CAo$-3Zfo(* z<~3x&?IqSn5S;Le7lNM)t-!HcFkDM4YAbXszZj3@73+I;kqnsIMn`5pg)e~{;F}v{@AAG`v6?d5o$%xd2!PBA^2(8yypYZ zYdF-p*HCvq;>gk;?d&^aIX#L|Ep;#F4_XZG>&m50KJ(=6h`k^p7hFQBV+Popl!ab2E|ta}AI zQp^H`oC0Z-1jsd67%|0)TteKhNW$OLJRi>2fP-toRgv>(=(1vv`S`0)G1DdV_d{jW HV%@(0;9yux diff --git a/AutoParkingCar/Debug/Startup/subdir.mk b/AutoParkingCar/Debug/Startup/subdir.mk deleted file mode 100644 index 6cd3c19..0000000 --- a/AutoParkingCar/Debug/Startup/subdir.mk +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -S_SRCS += \ -../Startup/startup_stm32f401rctx.s - -OBJS += \ -./Startup/startup_stm32f401rctx.o - -S_DEPS += \ -./Startup/startup_stm32f401rctx.d - - -# Each subdirectory must supply rules for building sources it contributes -Startup/startup_stm32f401rctx.o: ../Startup/startup_stm32f401rctx.s - arm-none-eabi-gcc -mcpu=cortex-m4 -g3 -c -x assembler-with-cpp -MMD -MP -MF"Startup/startup_stm32f401rctx.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" "$<" - diff --git a/AutoParkingCar/Debug/makefile b/AutoParkingCar/Debug/makefile deleted file mode 100644 index 0dd16fc..0000000 --- a/AutoParkingCar/Debug/makefile +++ /dev/null @@ -1,93 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include Startup/subdir.mk --include Src/MCAL/MUART/subdir.mk --include Src/MCAL/MTIMER/subdir.mk --include Src/MCAL/MSTK/subdir.mk --include Src/MCAL/MSPI/subdir.mk --include Src/MCAL/MRCC/subdir.mk --include Src/MCAL/MNVIC/subdir.mk --include Src/MCAL/MIWDT/subdir.mk --include Src/MCAL/MI2C/subdir.mk --include Src/MCAL/MGPIO/subdir.mk --include Src/MCAL/MEXTI/subdir.mk --include Src/HAL/HULTRA_SONIC/subdir.mk --include Src/HAL/HSERVO/subdir.mk --include Src/HAL/HMOTOR/subdir.mk --include Src/HAL/HCOMPASS/subdir.mk --include Src/Application/subdir.mk --include Src/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(S_DEPS)),) --include $(S_DEPS) -endif -ifneq ($(strip $(S_UPPER_DEPS)),) --include $(S_UPPER_DEPS) -endif -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables -EXECUTABLES += \ -AutoParkingCar.elf \ - -SIZE_OUTPUT += \ -default.size.stdout \ - -OBJDUMP_LIST += \ -AutoParkingCar.list \ - -OBJCOPY_BIN += \ -AutoParkingCar.bin \ - - -# All Target -all: AutoParkingCar.elf secondary-outputs - -# Tool invocations -AutoParkingCar.elf: $(OBJS) $(USER_OBJS) G:\Embedded\ Systems\GP\AutoParkingCar\STM32F401RCTX_FLASH.ld - arm-none-eabi-gcc -o "AutoParkingCar.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"G:\Embedded Systems\GP\AutoParkingCar\STM32F401RCTX_FLASH.ld" --specs=nosys.specs -Wl,-Map="AutoParkingCar.map" -Wl,--gc-sections -static --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -Wl,--end-group - @echo 'Finished building target: $@' - @echo ' ' - -default.size.stdout: $(EXECUTABLES) - arm-none-eabi-size $(EXECUTABLES) - @echo 'Finished building: $@' - @echo ' ' - -AutoParkingCar.list: $(EXECUTABLES) - arm-none-eabi-objdump -h -S $(EXECUTABLES) > "AutoParkingCar.list" - @echo 'Finished building: $@' - @echo ' ' - -AutoParkingCar.bin: $(EXECUTABLES) - arm-none-eabi-objcopy -O binary $(EXECUTABLES) "AutoParkingCar.bin" - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) * - -@echo ' ' - -secondary-outputs: $(SIZE_OUTPUT) $(OBJDUMP_LIST) $(OBJCOPY_BIN) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/AutoParkingCar/Debug/objects.list b/AutoParkingCar/Debug/objects.list deleted file mode 100644 index 225556c..0000000 --- a/AutoParkingCar/Debug/objects.list +++ /dev/null @@ -1,23 +0,0 @@ -"Src/Application/Car_Control.o" -"Src/Application/Collision_Avoidance.o" -"Src/Application/Motion_Planing.o" -"Src/Application/Path_Tracking.o" -"Src/Application/Scenario_Select.o" -"Src/HAL/HCOMPASS/HAL_COMPASS.o" -"Src/HAL/HMOTOR/HMOTOR.o" -"Src/HAL/HSERVO/HSERVO_Prog.o" -"Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o" -"Src/MCAL/MEXTI/MEXTI_Prog.o" -"Src/MCAL/MGPIO/MGPIO_Prog.o" -"Src/MCAL/MI2C/MI2C_Prog.o" -"Src/MCAL/MIWDT/MIWDT_Prog.o" -"Src/MCAL/MNVIC/MNVIC_Prog.o" -"Src/MCAL/MRCC/MRCC_Prog.o" -"Src/MCAL/MSPI/MSPI_Prog.o" -"Src/MCAL/MSTK/MSYSTICK_Prog.o" -"Src/MCAL/MTIMER/MTIMER_Prog.o" -"Src/MCAL/MUART/MUSART_Program.o" -"Src/main.o" -"Src/syscalls.o" -"Src/sysmem.o" -"Startup/startup_stm32f401rctx.o" diff --git a/AutoParkingCar/Debug/objects.mk b/AutoParkingCar/Debug/objects.mk deleted file mode 100644 index 742c2da..0000000 --- a/AutoParkingCar/Debug/objects.mk +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/AutoParkingCar/Debug/sources.mk b/AutoParkingCar/Debug/sources.mk deleted file mode 100644 index 4a9f5db..0000000 --- a/AutoParkingCar/Debug/sources.mk +++ /dev/null @@ -1,39 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -OBJ_SRCS := -S_SRCS := -C_SRCS := -S_UPPER_SRCS := -O_SRCS := -SIZE_OUTPUT := -OBJDUMP_LIST := -EXECUTABLES := -OBJS := -S_DEPS := -S_UPPER_DEPS := -C_DEPS := -OBJCOPY_BIN := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -Src/Application \ -Src/HAL/HCOMPASS \ -Src/HAL/HMOTOR \ -Src/HAL/HSERVO \ -Src/HAL/HULTRA_SONIC \ -Src/MCAL/MEXTI \ -Src/MCAL/MGPIO \ -Src/MCAL/MI2C \ -Src/MCAL/MIWDT \ -Src/MCAL/MNVIC \ -Src/MCAL/MRCC \ -Src/MCAL/MSPI \ -Src/MCAL/MSTK \ -Src/MCAL/MTIMER \ -Src/MCAL/MUART \ -Src \ -Startup \ - diff --git a/AutoParkingCar/Release/AutoParkingCar.bin b/AutoParkingCar/Release/AutoParkingCar.bin deleted file mode 100644 index b5fa8058b81afa035370bae61470d93dfa99fd7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2868 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 diff --git a/AutoParkingCar/Release/AutoParkingCar.list b/AutoParkingCar/Release/AutoParkingCar.list deleted file mode 100644 index 01a7964..0000000 --- a/AutoParkingCar/Release/AutoParkingCar.list +++ /dev/null @@ -1,1105 +0,0 @@ - -AutoParkingCar.elf: file format elf32-littlearm - -Sections: -Idx Name Size VMA LMA File off Algn - 0 .isr_vector 00000194 08000000 08000000 00010000 2**0 - CONTENTS, ALLOC, LOAD, READONLY, DATA - 1 .text 00000978 08000194 08000194 00010194 2**2 - CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .rodata 00000020 08000b0c 08000b0c 00010b0c 2**2 - CONTENTS, ALLOC, LOAD, READONLY, DATA - 3 .ARM.extab 00000000 08000b2c 08000b2c 00010b34 2**0 - CONTENTS - 4 .ARM 00000000 08000b2c 08000b2c 00010b34 2**0 - CONTENTS - 5 .preinit_array 00000000 08000b2c 08000b34 00010b34 2**0 - CONTENTS, ALLOC, LOAD, DATA - 6 .init_array 00000004 08000b2c 08000b2c 00010b2c 2**2 - CONTENTS, ALLOC, LOAD, DATA - 7 .fini_array 00000004 08000b30 08000b30 00010b30 2**2 - CONTENTS, ALLOC, LOAD, DATA - 8 .data 00000000 20000000 20000000 00010b34 2**0 - CONTENTS, ALLOC, LOAD, DATA - 9 .bss 00000234 20000000 08000b34 00020000 2**2 - ALLOC - 10 ._user_heap_stack 00000604 20000234 08000b34 00020234 2**0 - ALLOC - 11 .ARM.attributes 00000030 00000000 00000000 00010b34 2**0 - CONTENTS, READONLY - 12 .comment 0000007b 00000000 00000000 00010b64 2**0 - CONTENTS, READONLY - 13 .debug_frame 0000002c 00000000 00000000 00010be0 2**2 - CONTENTS, READONLY, DEBUGGING - -Disassembly of section .text: - -08000194 <__do_global_dtors_aux>: - 8000194: b510 push {r4, lr} - 8000196: 4c05 ldr r4, [pc, #20] ; (80001ac <__do_global_dtors_aux+0x18>) - 8000198: 7823 ldrb r3, [r4, #0] - 800019a: b933 cbnz r3, 80001aa <__do_global_dtors_aux+0x16> - 800019c: 4b04 ldr r3, [pc, #16] ; (80001b0 <__do_global_dtors_aux+0x1c>) - 800019e: b113 cbz r3, 80001a6 <__do_global_dtors_aux+0x12> - 80001a0: 4804 ldr r0, [pc, #16] ; (80001b4 <__do_global_dtors_aux+0x20>) - 80001a2: f3af 8000 nop.w - 80001a6: 2301 movs r3, #1 - 80001a8: 7023 strb r3, [r4, #0] - 80001aa: bd10 pop {r4, pc} - 80001ac: 20000000 .word 0x20000000 - 80001b0: 00000000 .word 0x00000000 - 80001b4: 08000af4 .word 0x08000af4 - -080001b8 : - 80001b8: b508 push {r3, lr} - 80001ba: 4b03 ldr r3, [pc, #12] ; (80001c8 ) - 80001bc: b11b cbz r3, 80001c6 - 80001be: 4903 ldr r1, [pc, #12] ; (80001cc ) - 80001c0: 4803 ldr r0, [pc, #12] ; (80001d0 ) - 80001c2: f3af 8000 nop.w - 80001c6: bd08 pop {r3, pc} - 80001c8: 00000000 .word 0x00000000 - 80001cc: 20000004 .word 0x20000004 - 80001d0: 08000af4 .word 0x08000af4 - -080001d4 : - 80001d4: 4a04 ldr r2, [pc, #16] ; (80001e8 ) - 80001d6: 6813 ldr r3, [r2, #0] - 80001d8: 3301 adds r3, #1 - 80001da: 6013 str r3, [r2, #0] - 80001dc: 4a03 ldr r2, [pc, #12] ; (80001ec ) - 80001de: 6813 ldr r3, [r2, #0] - 80001e0: 3301 adds r3, #1 - 80001e2: 6013 str r3, [r2, #0] - 80001e4: 4770 bx lr - 80001e6: bf00 nop - 80001e8: 2000001c .word 0x2000001c - 80001ec: 20000020 .word 0x20000020 - -080001f0 : - 80001f0: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - 80001f4: 4617 mov r7, r2 - 80001f6: 4a1b ldr r2, [pc, #108] ; (8000264 ) - 80001f8: f89d 5020 ldrb.w r5, [sp, #32] - 80001fc: f89d 6024 ldrb.w r6, [sp, #36] ; 0x24 - 8000200: 7010 strb r0, [r2, #0] - 8000202: 4698 mov r8, r3 - 8000204: 7097 strb r7, [r2, #2] - 8000206: 7115 strb r5, [r2, #4] - 8000208: 7051 strb r1, [r2, #1] - 800020a: 70d3 strb r3, [r2, #3] - 800020c: 7156 strb r6, [r2, #5] - 800020e: 2201 movs r2, #1 - 8000210: f89d 402c ldrb.w r4, [sp, #44] ; 0x2c - 8000214: f89d 9030 ldrb.w r9, [sp, #48] ; 0x30 - 8000218: f000 f958 bl 80004cc - 800021c: 4641 mov r1, r8 - 800021e: 4638 mov r0, r7 - 8000220: 2201 movs r2, #1 - 8000222: f000 f953 bl 80004cc - 8000226: 4631 mov r1, r6 - 8000228: 4628 mov r0, r5 - 800022a: 2202 movs r2, #2 - 800022c: f000 f94e bl 80004cc - 8000230: 2201 movs r2, #1 - 8000232: 4631 mov r1, r6 - 8000234: 4628 mov r0, r5 - 8000236: f000 f989 bl 800054c - 800023a: 4620 mov r0, r4 - 800023c: f000 f83c bl 80002b8 - 8000240: 4620 mov r0, r4 - 8000242: 2100 movs r1, #0 - 8000244: f000 f842 bl 80002cc - 8000248: 4621 mov r1, r4 - 800024a: 2001 movs r0, #1 - 800024c: f000 f81e bl 800028c - 8000250: 4620 mov r0, r4 - 8000252: 4905 ldr r1, [pc, #20] ; (8000268 ) - 8000254: f000 f85c bl 8000310 - 8000258: 4648 mov r0, r9 - 800025a: e8bd 43f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - 800025e: f000 b9d5 b.w 800060c - 8000262: bf00 nop - 8000264: 20000228 .word 0x20000228 - 8000268: 080001d5 .word 0x080001d5 - -0800026c : - 800026c: b510 push {r4, lr} - 800026e: 4c06 ldr r4, [pc, #24] ; (8000288 ) - 8000270: 2200 movs r2, #0 - 8000272: 7820 ldrb r0, [r4, #0] - 8000274: 7861 ldrb r1, [r4, #1] - 8000276: f000 f949 bl 800050c - 800027a: 78a0 ldrb r0, [r4, #2] - 800027c: 78e1 ldrb r1, [r4, #3] - 800027e: 2200 movs r2, #0 - 8000280: e8bd 4010 ldmia.w sp!, {r4, lr} - 8000284: f000 b942 b.w 800050c - 8000288: 20000228 .word 0x20000228 - -0800028c : - 800028c: f001 03fc and.w r3, r1, #252 ; 0xfc - 8000290: f103 4380 add.w r3, r3, #1073741824 ; 0x40000000 - 8000294: f503 339c add.w r3, r3, #79872 ; 0x13800 - 8000298: f001 0103 and.w r1, r1, #3 - 800029c: 689a ldr r2, [r3, #8] - 800029e: b510 push {r4, lr} - 80002a0: 0089 lsls r1, r1, #2 - 80002a2: 240f movs r4, #15 - 80002a4: 408c lsls r4, r1 - 80002a6: ea22 0204 bic.w r2, r2, r4 - 80002aa: 609a str r2, [r3, #8] - 80002ac: 689a ldr r2, [r3, #8] - 80002ae: fa00 f101 lsl.w r1, r0, r1 - 80002b2: 4311 orrs r1, r2 - 80002b4: 6099 str r1, [r3, #8] - 80002b6: bd10 pop {r4, pc} - -080002b8 : - 80002b8: 4a03 ldr r2, [pc, #12] ; (80002c8 ) - 80002ba: 2301 movs r3, #1 - 80002bc: 6811 ldr r1, [r2, #0] - 80002be: fa03 f000 lsl.w r0, r3, r0 - 80002c2: 4308 orrs r0, r1 - 80002c4: 6010 str r0, [r2, #0] - 80002c6: 4770 bx lr - 80002c8: 40013c00 .word 0x40013c00 - -080002cc : - 80002cc: 2901 cmp r1, #1 - 80002ce: d00e beq.n 80002ee - 80002d0: d302 bcc.n 80002d8 - 80002d2: 2902 cmp r1, #2 - 80002d4: d014 beq.n 8000300 - 80002d6: 4770 bx lr - 80002d8: 4b0c ldr r3, [pc, #48] ; (800030c ) - 80002da: 2101 movs r1, #1 - 80002dc: 689a ldr r2, [r3, #8] - 80002de: 4081 lsls r1, r0 - 80002e0: 430a orrs r2, r1 - 80002e2: 609a str r2, [r3, #8] - 80002e4: 68d8 ldr r0, [r3, #12] - 80002e6: ea20 0101 bic.w r1, r0, r1 - 80002ea: 60d9 str r1, [r3, #12] - 80002ec: 4770 bx lr - 80002ee: 4b07 ldr r3, [pc, #28] ; (800030c ) - 80002f0: 689a ldr r2, [r3, #8] - 80002f2: 4081 lsls r1, r0 - 80002f4: ea22 0201 bic.w r2, r2, r1 - 80002f8: 609a str r2, [r3, #8] - 80002fa: 68d8 ldr r0, [r3, #12] - 80002fc: 4301 orrs r1, r0 - 80002fe: e7f4 b.n 80002ea - 8000300: 4b02 ldr r3, [pc, #8] ; (800030c ) - 8000302: 2101 movs r1, #1 - 8000304: 689a ldr r2, [r3, #8] - 8000306: 4081 lsls r1, r0 - 8000308: 430a orrs r2, r1 - 800030a: e7f5 b.n 80002f8 - 800030c: 40013c00 .word 0x40013c00 - -08000310 : - 8000310: b111 cbz r1, 8000318 - 8000312: 4b02 ldr r3, [pc, #8] ; (800031c ) - 8000314: f843 1020 str.w r1, [r3, r0, lsl #2] - 8000318: 4770 bx lr - 800031a: bf00 nop - 800031c: 20000024 .word 0x20000024 - -08000320 : - 8000320: b508 push {r3, lr} - 8000322: 4b04 ldr r3, [pc, #16] ; (8000334 ) - 8000324: 681b ldr r3, [r3, #0] - 8000326: 4798 blx r3 - 8000328: 4a03 ldr r2, [pc, #12] ; (8000338 ) - 800032a: 6953 ldr r3, [r2, #20] - 800032c: f043 0301 orr.w r3, r3, #1 - 8000330: 6153 str r3, [r2, #20] - 8000332: bd08 pop {r3, pc} - 8000334: 20000024 .word 0x20000024 - 8000338: 40013c00 .word 0x40013c00 - -0800033c : - 800033c: b508 push {r3, lr} - 800033e: 4b04 ldr r3, [pc, #16] ; (8000350 ) - 8000340: 685b ldr r3, [r3, #4] - 8000342: 4798 blx r3 - 8000344: 4a03 ldr r2, [pc, #12] ; (8000354 ) - 8000346: 6953 ldr r3, [r2, #20] - 8000348: f043 0302 orr.w r3, r3, #2 - 800034c: 6153 str r3, [r2, #20] - 800034e: bd08 pop {r3, pc} - 8000350: 20000024 .word 0x20000024 - 8000354: 40013c00 .word 0x40013c00 - -08000358 : - 8000358: b508 push {r3, lr} - 800035a: 4b04 ldr r3, [pc, #16] ; (800036c ) - 800035c: 689b ldr r3, [r3, #8] - 800035e: 4798 blx r3 - 8000360: 4a03 ldr r2, [pc, #12] ; (8000370 ) - 8000362: 6953 ldr r3, [r2, #20] - 8000364: f043 0304 orr.w r3, r3, #4 - 8000368: 6153 str r3, [r2, #20] - 800036a: bd08 pop {r3, pc} - 800036c: 20000024 .word 0x20000024 - 8000370: 40013c00 .word 0x40013c00 - -08000374 : - 8000374: b508 push {r3, lr} - 8000376: 4b04 ldr r3, [pc, #16] ; (8000388 ) - 8000378: 68db ldr r3, [r3, #12] - 800037a: 4798 blx r3 - 800037c: 4a03 ldr r2, [pc, #12] ; (800038c ) - 800037e: 6953 ldr r3, [r2, #20] - 8000380: f043 0308 orr.w r3, r3, #8 - 8000384: 6153 str r3, [r2, #20] - 8000386: bd08 pop {r3, pc} - 8000388: 20000024 .word 0x20000024 - 800038c: 40013c00 .word 0x40013c00 - -08000390 : - 8000390: b508 push {r3, lr} - 8000392: 4b04 ldr r3, [pc, #16] ; (80003a4 ) - 8000394: 691b ldr r3, [r3, #16] - 8000396: 4798 blx r3 - 8000398: 4a03 ldr r2, [pc, #12] ; (80003a8 ) - 800039a: 6953 ldr r3, [r2, #20] - 800039c: f043 0310 orr.w r3, r3, #16 - 80003a0: 6153 str r3, [r2, #20] - 80003a2: bd08 pop {r3, pc} - 80003a4: 20000024 .word 0x20000024 - 80003a8: 40013c00 .word 0x40013c00 - -080003ac : - 80003ac: b538 push {r3, r4, r5, lr} - 80003ae: 4c1e ldr r4, [pc, #120] ; (8000428 ) - 80003b0: 4b1e ldr r3, [pc, #120] ; (800042c ) - 80003b2: 6961 ldr r1, [r4, #20] - 80003b4: 695a ldr r2, [r3, #20] - 80003b6: f011 0f20 tst.w r1, #32 - 80003ba: 4625 mov r5, r4 - 80003bc: d006 beq.n 80003cc - 80003be: b12a cbz r2, 80003cc - 80003c0: 4790 blx r2 - 80003c2: 6963 ldr r3, [r4, #20] - 80003c4: f043 0320 orr.w r3, r3, #32 - 80003c8: 6163 str r3, [r4, #20] - 80003ca: e009 b.n 80003e0 - 80003cc: 6969 ldr r1, [r5, #20] - 80003ce: 699a ldr r2, [r3, #24] - 80003d0: 0648 lsls r0, r1, #25 - 80003d2: d506 bpl.n 80003e2 - 80003d4: b12a cbz r2, 80003e2 - 80003d6: 4790 blx r2 - 80003d8: 696b ldr r3, [r5, #20] - 80003da: f043 0340 orr.w r3, r3, #64 ; 0x40 - 80003de: 616b str r3, [r5, #20] - 80003e0: bd38 pop {r3, r4, r5, pc} - 80003e2: 4c11 ldr r4, [pc, #68] ; (8000428 ) - 80003e4: 69da ldr r2, [r3, #28] - 80003e6: 6961 ldr r1, [r4, #20] - 80003e8: f011 0f80 tst.w r1, #128 ; 0x80 - 80003ec: 4625 mov r5, r4 - 80003ee: d005 beq.n 80003fc - 80003f0: b122 cbz r2, 80003fc - 80003f2: 4790 blx r2 - 80003f4: 6963 ldr r3, [r4, #20] - 80003f6: f043 0380 orr.w r3, r3, #128 ; 0x80 - 80003fa: e7e5 b.n 80003c8 - 80003fc: 6969 ldr r1, [r5, #20] - 80003fe: 6a1a ldr r2, [r3, #32] - 8000400: 05c9 lsls r1, r1, #23 - 8000402: d505 bpl.n 8000410 - 8000404: b122 cbz r2, 8000410 - 8000406: 4790 blx r2 - 8000408: 696b ldr r3, [r5, #20] - 800040a: f443 7380 orr.w r3, r3, #256 ; 0x100 - 800040e: e7e6 b.n 80003de - 8000410: 4c05 ldr r4, [pc, #20] ; (8000428 ) - 8000412: 6a5b ldr r3, [r3, #36] ; 0x24 - 8000414: 6962 ldr r2, [r4, #20] - 8000416: 0592 lsls r2, r2, #22 - 8000418: d5e2 bpl.n 80003e0 - 800041a: 2b00 cmp r3, #0 - 800041c: d0e0 beq.n 80003e0 - 800041e: 4798 blx r3 - 8000420: 6963 ldr r3, [r4, #20] - 8000422: f443 7300 orr.w r3, r3, #512 ; 0x200 - 8000426: e7cf b.n 80003c8 - 8000428: 40013c00 .word 0x40013c00 - 800042c: 20000024 .word 0x20000024 - -08000430 : - 8000430: b538 push {r3, r4, r5, lr} - 8000432: 4c24 ldr r4, [pc, #144] ; (80004c4 ) - 8000434: 4b24 ldr r3, [pc, #144] ; (80004c8 ) - 8000436: 6961 ldr r1, [r4, #20] - 8000438: 6a9a ldr r2, [r3, #40] ; 0x28 - 800043a: f411 6f80 tst.w r1, #1024 ; 0x400 - 800043e: 4625 mov r5, r4 - 8000440: d006 beq.n 8000450 - 8000442: b12a cbz r2, 8000450 - 8000444: 4790 blx r2 - 8000446: 6963 ldr r3, [r4, #20] - 8000448: f443 6380 orr.w r3, r3, #1024 ; 0x400 - 800044c: 6163 str r3, [r4, #20] - 800044e: bd38 pop {r3, r4, r5, pc} - 8000450: 6969 ldr r1, [r5, #20] - 8000452: 6ada ldr r2, [r3, #44] ; 0x2c - 8000454: 0508 lsls r0, r1, #20 - 8000456: d506 bpl.n 8000466 - 8000458: b12a cbz r2, 8000466 - 800045a: 4790 blx r2 - 800045c: 696b ldr r3, [r5, #20] - 800045e: f443 6300 orr.w r3, r3, #2048 ; 0x800 - 8000462: 616b str r3, [r5, #20] - 8000464: e7f3 b.n 800044e - 8000466: 4c17 ldr r4, [pc, #92] ; (80004c4 ) - 8000468: 6b1a ldr r2, [r3, #48] ; 0x30 - 800046a: 6961 ldr r1, [r4, #20] - 800046c: f411 5f80 tst.w r1, #4096 ; 0x1000 - 8000470: 4625 mov r5, r4 - 8000472: d005 beq.n 8000480 - 8000474: b122 cbz r2, 8000480 - 8000476: 4790 blx r2 - 8000478: 6963 ldr r3, [r4, #20] - 800047a: f443 5380 orr.w r3, r3, #4096 ; 0x1000 - 800047e: e7e5 b.n 800044c - 8000480: 6969 ldr r1, [r5, #20] - 8000482: 6b5a ldr r2, [r3, #52] ; 0x34 - 8000484: 0489 lsls r1, r1, #18 - 8000486: d505 bpl.n 8000494 - 8000488: b122 cbz r2, 8000494 - 800048a: 4790 blx r2 - 800048c: 696b ldr r3, [r5, #20] - 800048e: f443 5300 orr.w r3, r3, #8192 ; 0x2000 - 8000492: e7e6 b.n 8000462 - 8000494: 4c0b ldr r4, [pc, #44] ; (80004c4 ) - 8000496: 6b9a ldr r2, [r3, #56] ; 0x38 - 8000498: 6961 ldr r1, [r4, #20] - 800049a: f411 4f80 tst.w r1, #16384 ; 0x4000 - 800049e: 4625 mov r5, r4 - 80004a0: d005 beq.n 80004ae - 80004a2: b122 cbz r2, 80004ae - 80004a4: 4790 blx r2 - 80004a6: 6963 ldr r3, [r4, #20] - 80004a8: f443 4380 orr.w r3, r3, #16384 ; 0x4000 - 80004ac: e7ce b.n 800044c - 80004ae: 696a ldr r2, [r5, #20] - 80004b0: 6bdb ldr r3, [r3, #60] ; 0x3c - 80004b2: 0412 lsls r2, r2, #16 - 80004b4: d5cb bpl.n 800044e - 80004b6: 2b00 cmp r3, #0 - 80004b8: d0c9 beq.n 800044e - 80004ba: 4798 blx r3 - 80004bc: 696b ldr r3, [r5, #20] - 80004be: f443 4300 orr.w r3, r3, #32768 ; 0x8000 - 80004c2: e7ce b.n 8000462 - 80004c4: 40013c00 .word 0x40013c00 - 80004c8: 20000024 .word 0x20000024 - -080004cc : - 80004cc: 2801 cmp r0, #1 - 80004ce: b510 push {r4, lr} - 80004d0: d011 beq.n 80004f6 - 80004d2: d302 bcc.n 80004da - 80004d4: 2802 cmp r0, #2 - 80004d6: d010 beq.n 80004fa - 80004d8: bd10 pop {r4, pc} - 80004da: 4b09 ldr r3, [pc, #36] ; (8000500 ) - 80004dc: 6818 ldr r0, [r3, #0] - 80004de: 0049 lsls r1, r1, #1 - 80004e0: 2403 movs r4, #3 - 80004e2: 408c lsls r4, r1 - 80004e4: ea20 0004 bic.w r0, r0, r4 - 80004e8: 6018 str r0, [r3, #0] - 80004ea: 6818 ldr r0, [r3, #0] - 80004ec: fa02 f101 lsl.w r1, r2, r1 - 80004f0: 4301 orrs r1, r0 - 80004f2: 6019 str r1, [r3, #0] - 80004f4: e7f0 b.n 80004d8 - 80004f6: 4b03 ldr r3, [pc, #12] ; (8000504 ) - 80004f8: e7f0 b.n 80004dc - 80004fa: 4b03 ldr r3, [pc, #12] ; (8000508 ) - 80004fc: e7ee b.n 80004dc - 80004fe: bf00 nop - 8000500: 40020000 .word 0x40020000 - 8000504: 40020400 .word 0x40020400 - 8000508: 40020800 .word 0x40020800 - -0800050c : - 800050c: 2801 cmp r0, #1 - 800050e: d00e beq.n 800052e - 8000510: d302 bcc.n 8000518 - 8000512: 2802 cmp r0, #2 - 8000514: d00f beq.n 8000536 - 8000516: 4770 bx lr - 8000518: 2001 movs r0, #1 - 800051a: 4b09 ldr r3, [pc, #36] ; (8000540 ) - 800051c: 4088 lsls r0, r1 - 800051e: 2a01 cmp r2, #1 - 8000520: 6959 ldr r1, [r3, #20] - 8000522: bf0c ite eq - 8000524: 4308 orreq r0, r1 - 8000526: ea21 0000 bicne.w r0, r1, r0 - 800052a: 6158 str r0, [r3, #20] - 800052c: 4770 bx lr - 800052e: 4088 lsls r0, r1 - 8000530: 2a01 cmp r2, #1 - 8000532: 4b04 ldr r3, [pc, #16] ; (8000544 ) - 8000534: e7f4 b.n 8000520 - 8000536: 2001 movs r0, #1 - 8000538: 4088 lsls r0, r1 - 800053a: 2a01 cmp r2, #1 - 800053c: 4b02 ldr r3, [pc, #8] ; (8000548 ) - 800053e: e7ef b.n 8000520 - 8000540: 40020000 .word 0x40020000 - 8000544: 40020400 .word 0x40020400 - 8000548: 40020800 .word 0x40020800 - -0800054c : - 800054c: 2801 cmp r0, #1 - 800054e: b510 push {r4, lr} - 8000550: d023 beq.n 800059a - 8000552: d302 bcc.n 800055a - 8000554: 2802 cmp r0, #2 - 8000556: d040 beq.n 80005da - 8000558: bd10 pop {r4, pc} - 800055a: 2907 cmp r1, #7 - 800055c: 4c28 ldr r4, [pc, #160] ; (8000600 ) - 800055e: d80c bhi.n 800057a - 8000560: 6a23 ldr r3, [r4, #32] - 8000562: 0089 lsls r1, r1, #2 - 8000564: 200f movs r0, #15 - 8000566: 4088 lsls r0, r1 - 8000568: ea23 0300 bic.w r3, r3, r0 - 800056c: 6223 str r3, [r4, #32] - 800056e: 6a23 ldr r3, [r4, #32] - 8000570: fa02 f101 lsl.w r1, r2, r1 - 8000574: 4319 orrs r1, r3 - 8000576: 6221 str r1, [r4, #32] - 8000578: e7ee b.n 8000558 - 800057a: f1a1 0008 sub.w r0, r1, #8 - 800057e: b2c0 uxtb r0, r0 - 8000580: 6a63 ldr r3, [r4, #36] ; 0x24 - 8000582: 0080 lsls r0, r0, #2 - 8000584: 210f movs r1, #15 - 8000586: 4081 lsls r1, r0 - 8000588: ea23 0301 bic.w r3, r3, r1 - 800058c: 6263 str r3, [r4, #36] ; 0x24 - 800058e: 6a63 ldr r3, [r4, #36] ; 0x24 - 8000590: fa02 f100 lsl.w r1, r2, r0 - 8000594: 4319 orrs r1, r3 - 8000596: 6261 str r1, [r4, #36] ; 0x24 - 8000598: e7de b.n 8000558 - 800059a: 2907 cmp r1, #7 - 800059c: 4819 ldr r0, [pc, #100] ; (8000604 ) - 800059e: d80c bhi.n 80005ba - 80005a0: 6a03 ldr r3, [r0, #32] - 80005a2: 0089 lsls r1, r1, #2 - 80005a4: 240f movs r4, #15 - 80005a6: 408c lsls r4, r1 - 80005a8: ea23 0304 bic.w r3, r3, r4 - 80005ac: 6203 str r3, [r0, #32] - 80005ae: 6a03 ldr r3, [r0, #32] - 80005b0: fa02 f101 lsl.w r1, r2, r1 - 80005b4: 4319 orrs r1, r3 - 80005b6: 6201 str r1, [r0, #32] - 80005b8: e7ce b.n 8000558 - 80005ba: f1a1 0308 sub.w r3, r1, #8 - 80005be: b2db uxtb r3, r3 - 80005c0: 6a44 ldr r4, [r0, #36] ; 0x24 - 80005c2: 009b lsls r3, r3, #2 - 80005c4: 210f movs r1, #15 - 80005c6: 4099 lsls r1, r3 - 80005c8: ea24 0101 bic.w r1, r4, r1 - 80005cc: 6241 str r1, [r0, #36] ; 0x24 - 80005ce: 6a41 ldr r1, [r0, #36] ; 0x24 - 80005d0: fa02 f303 lsl.w r3, r2, r3 - 80005d4: 430b orrs r3, r1 - 80005d6: 6243 str r3, [r0, #36] ; 0x24 - 80005d8: e7be b.n 8000558 - 80005da: 2907 cmp r1, #7 - 80005dc: 480a ldr r0, [pc, #40] ; (8000608 ) - 80005de: d9df bls.n 80005a0 - 80005e0: 3908 subs r1, #8 - 80005e2: b2c9 uxtb r1, r1 - 80005e4: 6a43 ldr r3, [r0, #36] ; 0x24 - 80005e6: 0089 lsls r1, r1, #2 - 80005e8: 240f movs r4, #15 - 80005ea: 408c lsls r4, r1 - 80005ec: ea23 0304 bic.w r3, r3, r4 - 80005f0: 6243 str r3, [r0, #36] ; 0x24 - 80005f2: 6a43 ldr r3, [r0, #36] ; 0x24 - 80005f4: fa02 f101 lsl.w r1, r2, r1 - 80005f8: 4319 orrs r1, r3 - 80005fa: 6241 str r1, [r0, #36] ; 0x24 - 80005fc: e7ac b.n 8000558 - 80005fe: bf00 nop - 8000600: 40020000 .word 0x40020000 - 8000604: 40020400 .word 0x40020400 - 8000608: 40020800 .word 0x40020800 - -0800060c : - 800060c: 0942 lsrs r2, r0, #5 - 800060e: 2301 movs r3, #1 - 8000610: f000 001f and.w r0, r0, #31 - 8000614: fa03 f000 lsl.w r0, r3, r0 - 8000618: 4b01 ldr r3, [pc, #4] ; (8000620 ) - 800061a: f843 0022 str.w r0, [r3, r2, lsl #2] - 800061e: 4770 bx lr - 8000620: e000e100 .word 0xe000e100 - -08000624 : - 8000624: 4b08 ldr r3, [pc, #32] ; (8000648 ) - 8000626: 681a ldr r2, [r3, #0] - 8000628: f042 0201 orr.w r2, r2, #1 - 800062c: 601a str r2, [r3, #0] - 800062e: 681a ldr r2, [r3, #0] - 8000630: 0792 lsls r2, r2, #30 - 8000632: d5fc bpl.n 800062e - 8000634: 689a ldr r2, [r3, #8] - 8000636: f022 0203 bic.w r2, r2, #3 - 800063a: 609a str r2, [r3, #8] - 800063c: 4a02 ldr r2, [pc, #8] ; (8000648 ) - 800063e: 6893 ldr r3, [r2, #8] - 8000640: f013 0f0c tst.w r3, #12 - 8000644: d1fb bne.n 800063e - 8000646: 4770 bx lr - 8000648: 40023800 .word 0x40023800 - -0800064c : - 800064c: 285f cmp r0, #95 ; 0x5f - 800064e: 4b14 ldr r3, [pc, #80] ; (80006a0 ) - 8000650: d908 bls.n 8000664 - 8000652: 3860 subs r0, #96 ; 0x60 - 8000654: 6c59 ldr r1, [r3, #68] ; 0x44 - 8000656: b2c0 uxtb r0, r0 - 8000658: 2201 movs r2, #1 - 800065a: fa02 f000 lsl.w r0, r2, r0 - 800065e: 4308 orrs r0, r1 - 8000660: 6458 str r0, [r3, #68] ; 0x44 - 8000662: 4770 bx lr - 8000664: 283f cmp r0, #63 ; 0x3f - 8000666: d908 bls.n 800067a - 8000668: 3840 subs r0, #64 ; 0x40 - 800066a: 6c19 ldr r1, [r3, #64] ; 0x40 - 800066c: b2c0 uxtb r0, r0 - 800066e: 2201 movs r2, #1 - 8000670: fa02 f000 lsl.w r0, r2, r0 - 8000674: 4308 orrs r0, r1 - 8000676: 6418 str r0, [r3, #64] ; 0x40 - 8000678: 4770 bx lr - 800067a: 281f cmp r0, #31 - 800067c: d908 bls.n 8000690 - 800067e: 3820 subs r0, #32 - 8000680: 6b59 ldr r1, [r3, #52] ; 0x34 - 8000682: b2c0 uxtb r0, r0 - 8000684: 2201 movs r2, #1 - 8000686: fa02 f000 lsl.w r0, r2, r0 - 800068a: 4308 orrs r0, r1 - 800068c: 6358 str r0, [r3, #52] ; 0x34 - 800068e: 4770 bx lr - 8000690: 6b19 ldr r1, [r3, #48] ; 0x30 - 8000692: 2201 movs r2, #1 - 8000694: fa02 f000 lsl.w r0, r2, r0 - 8000698: 4308 orrs r0, r1 - 800069a: 6318 str r0, [r3, #48] ; 0x30 - 800069c: 4770 bx lr - 800069e: bf00 nop - 80006a0: 40023800 .word 0x40023800 - -080006a4 : - 80006a4: b510 push {r4, lr} - 80006a6: 4c09 ldr r4, [pc, #36] ; (80006cc ) - 80006a8: 68a2 ldr r2, [r4, #8] - 80006aa: 0792 lsls r2, r2, #30 - 80006ac: d503 bpl.n 80006b6 - 80006ae: 4b08 ldr r3, [pc, #32] ; (80006d0 ) - 80006b0: 681b ldr r3, [r3, #0] - 80006b2: b103 cbz r3, 80006b6 - 80006b4: 4798 blx r3 - 80006b6: 68a3 ldr r3, [r4, #8] - 80006b8: 07db lsls r3, r3, #31 - 80006ba: d505 bpl.n 80006c8 - 80006bc: 4b05 ldr r3, [pc, #20] ; (80006d4 ) - 80006be: 681b ldr r3, [r3, #0] - 80006c0: b113 cbz r3, 80006c8 - 80006c2: e8bd 4010 ldmia.w sp!, {r4, lr} - 80006c6: 4718 bx r3 - 80006c8: bd10 pop {r4, pc} - 80006ca: bf00 nop - 80006cc: 40013000 .word 0x40013000 - 80006d0: 20000074 .word 0x20000074 - 80006d4: 20000064 .word 0x20000064 - -080006d8 : - 80006d8: 4770 bx lr - -080006da : - 80006da: 4770 bx lr - -080006dc : - 80006dc: 4770 bx lr - ... - -080006e0 : - 80006e0: 4b02 ldr r3, [pc, #8] ; (80006ec ) - 80006e2: 681b ldr r3, [r3, #0] - 80006e4: b103 cbz r3, 80006e8 - 80006e6: 4718 bx r3 - 80006e8: 4770 bx lr - 80006ea: bf00 nop - 80006ec: 20000084 .word 0x20000084 - -080006f0 : - 80006f0: b570 push {r4, r5, r6, lr} - 80006f2: 4d09 ldr r5, [pc, #36] ; (8000718 ) - 80006f4: 4606 mov r6, r0 - 80006f6: cd0f ldmia r5!, {r0, r1, r2, r3} - 80006f8: b088 sub sp, #32 - 80006fa: 466c mov r4, sp - 80006fc: c40f stmia r4!, {r0, r1, r2, r3} - 80006fe: e895 000f ldmia.w r5, {r0, r1, r2, r3} - 8000702: e884 000f stmia.w r4, {r0, r1, r2, r3} - 8000706: ab08 add r3, sp, #32 - 8000708: eb03 0686 add.w r6, r3, r6, lsl #2 - 800070c: f856 0c24 ldr.w r0, [r6, #-36] - 8000710: f100 4080 add.w r0, r0, #1073741824 ; 0x40000000 - 8000714: b008 add sp, #32 - 8000716: bd70 pop {r4, r5, r6, pc} - 8000718: 08000b0c .word 0x08000b0c - -0800071c : - 800071c: b5f8 push {r3, r4, r5, r6, r7, lr} - 800071e: 4605 mov r5, r0 - 8000720: 3001 adds r0, #1 - 8000722: 460c mov r4, r1 - 8000724: f7ff ffe4 bl 80006f0 - 8000728: eb04 0385 add.w r3, r4, r5, lsl #2 - 800072c: 4d12 ldr r5, [pc, #72] ; (8000778 ) - 800072e: 6a01 ldr r1, [r0, #32] - 8000730: f815 c003 ldrb.w ip, [r5, r3] - 8000734: 4e11 ldr r6, [pc, #68] ; (800077c ) - 8000736: eb00 0284 add.w r2, r0, r4, lsl #2 - 800073a: 00a4 lsls r4, r4, #2 - 800073c: 3401 adds r4, #1 - 800073e: 2701 movs r7, #1 - 8000740: 6b52 ldr r2, [r2, #52] ; 0x34 - 8000742: fa07 f404 lsl.w r4, r7, r4 - 8000746: f1bc 0f00 cmp.w ip, #0 - 800074a: d105 bne.n 8000758 - 800074c: 430c orrs r4, r1 - 800074e: f846 2023 str.w r2, [r6, r3, lsl #2] - 8000752: 54ef strb r7, [r5, r3] - 8000754: 6204 str r4, [r0, #32] - 8000756: bdf8 pop {r3, r4, r5, r6, r7, pc} - 8000758: ea21 0404 bic.w r4, r1, r4 - 800075c: 4f08 ldr r7, [pc, #32] ; (8000780 ) - 800075e: f856 1023 ldr.w r1, [r6, r3, lsl #2] - 8000762: f847 2023 str.w r2, [r7, r3, lsl #2] - 8000766: 1a52 subs r2, r2, r1 - 8000768: 4906 ldr r1, [pc, #24] ; (8000784 ) - 800076a: 6204 str r4, [r0, #32] - 800076c: f841 2023 str.w r2, [r1, r3, lsl #2] - 8000770: 2200 movs r2, #0 - 8000772: 54ea strb r2, [r5, r3] - 8000774: e7ef b.n 8000756 - 8000776: bf00 nop - 8000778: 2000011c .word 0x2000011c - 800077c: 2000013c .word 0x2000013c - 8000780: 200001b0 .word 0x200001b0 - 8000784: 200000a8 .word 0x200000a8 - -08000788 : - 8000788: b510 push {r4, lr} - 800078a: 4c0f ldr r4, [pc, #60] ; (80007c8 ) - 800078c: 6921 ldr r1, [r4, #16] - 800078e: f011 0101 ands.w r1, r1, #1 - 8000792: d008 beq.n 80007a6 - 8000794: 4b0d ldr r3, [pc, #52] ; (80007cc ) - 8000796: 681b ldr r3, [r3, #0] - 8000798: b103 cbz r3, 800079c - 800079a: 4798 blx r3 - 800079c: 6923 ldr r3, [r4, #16] - 800079e: f023 0301 bic.w r3, r3, #1 - 80007a2: 6123 str r3, [r4, #16] - 80007a4: bd10 pop {r4, pc} - 80007a6: 4c0a ldr r4, [pc, #40] ; (80007d0 ) - 80007a8: 6923 ldr r3, [r4, #16] - 80007aa: 079a lsls r2, r3, #30 - 80007ac: d506 bpl.n 80007bc - 80007ae: 2006 movs r0, #6 - 80007b0: f7ff ffb4 bl 800071c - 80007b4: 6923 ldr r3, [r4, #16] - 80007b6: f023 0302 bic.w r3, r3, #2 - 80007ba: 6123 str r3, [r4, #16] - 80007bc: 6923 ldr r3, [r4, #16] - 80007be: 07db lsls r3, r3, #31 - 80007c0: d5f0 bpl.n 80007a4 - 80007c2: 4b02 ldr r3, [pc, #8] ; (80007cc ) - 80007c4: 699b ldr r3, [r3, #24] - 80007c6: e7e7 b.n 8000798 - 80007c8: 40010000 .word 0x40010000 - 80007cc: 20000088 .word 0x20000088 - 80007d0: 40014400 .word 0x40014400 - -080007d4 : - 80007d4: 4b0f ldr r3, [pc, #60] ; (8000814 ) - 80007d6: 691a ldr r2, [r3, #16] - 80007d8: 0691 lsls r1, r2, #26 - 80007da: b510 push {r4, lr} - 80007dc: d419 bmi.n 8000812 - 80007de: 6919 ldr r1, [r3, #16] - 80007e0: f3c1 1180 ubfx r1, r1, #6, #1 - 80007e4: b9a9 cbnz r1, 8000812 - 80007e6: 4c0c ldr r4, [pc, #48] ; (8000818 ) - 80007e8: 6923 ldr r3, [r4, #16] - 80007ea: 079a lsls r2, r3, #30 - 80007ec: d506 bpl.n 80007fc - 80007ee: 2007 movs r0, #7 - 80007f0: f7ff ff94 bl 800071c - 80007f4: 6923 ldr r3, [r4, #16] - 80007f6: f023 0302 bic.w r3, r3, #2 - 80007fa: 6123 str r3, [r4, #16] - 80007fc: 6923 ldr r3, [r4, #16] - 80007fe: 07db lsls r3, r3, #31 - 8000800: d507 bpl.n 8000812 - 8000802: 4b06 ldr r3, [pc, #24] ; (800081c ) - 8000804: 69db ldr r3, [r3, #28] - 8000806: b103 cbz r3, 800080a - 8000808: 4798 blx r3 - 800080a: 6923 ldr r3, [r4, #16] - 800080c: f023 0301 bic.w r3, r3, #1 - 8000810: 6123 str r3, [r4, #16] - 8000812: bd10 pop {r4, pc} - 8000814: 40010000 .word 0x40010000 - 8000818: 40014800 .word 0x40014800 - 800081c: 20000088 .word 0x20000088 - -08000820 : - 8000820: 4b13 ldr r3, [pc, #76] ; (8000870 ) - 8000822: 6919 ldr r1, [r3, #16] - 8000824: f3c1 11c0 ubfx r1, r1, #7, #1 - 8000828: b510 push {r4, lr} - 800082a: b9a9 cbnz r1, 8000858 - 800082c: 4c11 ldr r4, [pc, #68] ; (8000874 ) - 800082e: 6923 ldr r3, [r4, #16] - 8000830: 0798 lsls r0, r3, #30 - 8000832: d512 bpl.n 800085a - 8000834: 2005 movs r0, #5 - 8000836: f7ff ff71 bl 800071c - 800083a: 6923 ldr r3, [r4, #16] - 800083c: f023 0302 bic.w r3, r3, #2 - 8000840: 6123 str r3, [r4, #16] - 8000842: 6923 ldr r3, [r4, #16] - 8000844: 07db lsls r3, r3, #31 - 8000846: d507 bpl.n 8000858 - 8000848: 4b0b ldr r3, [pc, #44] ; (8000878 ) - 800084a: 695b ldr r3, [r3, #20] - 800084c: b103 cbz r3, 8000850 - 800084e: 4798 blx r3 - 8000850: 6923 ldr r3, [r4, #16] - 8000852: f023 0301 bic.w r3, r3, #1 - 8000856: 6123 str r3, [r4, #16] - 8000858: bd10 pop {r4, pc} - 800085a: 6923 ldr r3, [r4, #16] - 800085c: 075a lsls r2, r3, #29 - 800085e: d5f0 bpl.n 8000842 - 8000860: 2101 movs r1, #1 - 8000862: 2005 movs r0, #5 - 8000864: f7ff ff5a bl 800071c - 8000868: 6923 ldr r3, [r4, #16] - 800086a: f023 0304 bic.w r3, r3, #4 - 800086e: e7e7 b.n 8000840 - 8000870: 40010000 .word 0x40010000 - 8000874: 40014000 .word 0x40014000 - 8000878: 20000088 .word 0x20000088 - -0800087c : - 800087c: b510 push {r4, lr} - 800087e: 4c16 ldr r4, [pc, #88] ; (80008d8 ) - 8000880: 6920 ldr r0, [r4, #16] - 8000882: f3c0 0040 ubfx r0, r0, #1, #1 - 8000886: b140 cbz r0, 800089a - 8000888: 2100 movs r1, #0 - 800088a: 4608 mov r0, r1 - 800088c: f7ff ff46 bl 800071c - 8000890: 6923 ldr r3, [r4, #16] - 8000892: f023 0302 bic.w r3, r3, #2 - 8000896: 6123 str r3, [r4, #16] - 8000898: bd10 pop {r4, pc} - 800089a: 6922 ldr r2, [r4, #16] - 800089c: f3c2 0280 ubfx r2, r2, #2, #1 - 80008a0: b132 cbz r2, 80008b0 - 80008a2: 2101 movs r1, #1 - 80008a4: f7ff ff3a bl 800071c - 80008a8: 6923 ldr r3, [r4, #16] - 80008aa: f023 0304 bic.w r3, r3, #4 - 80008ae: e7f2 b.n 8000896 - 80008b0: 6920 ldr r0, [r4, #16] - 80008b2: f3c0 00c0 ubfx r0, r0, #3, #1 - 80008b6: b138 cbz r0, 80008c8 - 80008b8: 2102 movs r1, #2 - 80008ba: 4610 mov r0, r2 - 80008bc: f7ff ff2e bl 800071c - 80008c0: 6923 ldr r3, [r4, #16] - 80008c2: f023 0308 bic.w r3, r3, #8 - 80008c6: e7e6 b.n 8000896 - 80008c8: 2103 movs r1, #3 - 80008ca: f7ff ff27 bl 800071c - 80008ce: 6923 ldr r3, [r4, #16] - 80008d0: f023 0310 bic.w r3, r3, #16 - 80008d4: e7df b.n 8000896 - 80008d6: bf00 nop - 80008d8: 40010000 .word 0x40010000 - -080008dc : - 80008dc: b510 push {r4, lr} - 80008de: f04f 4480 mov.w r4, #1073741824 ; 0x40000000 - 80008e2: 6923 ldr r3, [r4, #16] - 80008e4: 079b lsls r3, r3, #30 - 80008e6: d515 bpl.n 8000914 - 80008e8: 2100 movs r1, #0 - 80008ea: 2001 movs r0, #1 - 80008ec: f7ff ff16 bl 800071c - 80008f0: 6923 ldr r3, [r4, #16] - 80008f2: f023 0302 bic.w r3, r3, #2 - 80008f6: 6123 str r3, [r4, #16] - 80008f8: f04f 4480 mov.w r4, #1073741824 ; 0x40000000 - 80008fc: 6923 ldr r3, [r4, #16] - 80008fe: 07db lsls r3, r3, #31 - 8000900: d507 bpl.n 8000912 - 8000902: 4b15 ldr r3, [pc, #84] ; (8000958 ) - 8000904: 685b ldr r3, [r3, #4] - 8000906: b103 cbz r3, 800090a - 8000908: 4798 blx r3 - 800090a: 6923 ldr r3, [r4, #16] - 800090c: f023 0301 bic.w r3, r3, #1 - 8000910: 6123 str r3, [r4, #16] - 8000912: bd10 pop {r4, pc} - 8000914: 6923 ldr r3, [r4, #16] - 8000916: 0758 lsls r0, r3, #29 - 8000918: d507 bpl.n 800092a - 800091a: 2101 movs r1, #1 - 800091c: 4608 mov r0, r1 - 800091e: f7ff fefd bl 800071c - 8000922: 6923 ldr r3, [r4, #16] - 8000924: f023 0304 bic.w r3, r3, #4 - 8000928: e7e5 b.n 80008f6 - 800092a: 6923 ldr r3, [r4, #16] - 800092c: 0719 lsls r1, r3, #28 - 800092e: d507 bpl.n 8000940 - 8000930: 2102 movs r1, #2 - 8000932: 2001 movs r0, #1 - 8000934: f7ff fef2 bl 800071c - 8000938: 6923 ldr r3, [r4, #16] - 800093a: f023 0308 bic.w r3, r3, #8 - 800093e: e7da b.n 80008f6 - 8000940: 6923 ldr r3, [r4, #16] - 8000942: 06da lsls r2, r3, #27 - 8000944: d5d8 bpl.n 80008f8 - 8000946: 2103 movs r1, #3 - 8000948: 2001 movs r0, #1 - 800094a: f7ff fee7 bl 800071c - 800094e: 6923 ldr r3, [r4, #16] - 8000950: f023 0310 bic.w r3, r3, #16 - 8000954: e7cf b.n 80008f6 - 8000956: bf00 nop - 8000958: 20000088 .word 0x20000088 - -0800095c : - 800095c: b510 push {r4, lr} - 800095e: 4c1d ldr r4, [pc, #116] ; (80009d4 ) - 8000960: 6923 ldr r3, [r4, #16] - 8000962: 079b lsls r3, r3, #30 - 8000964: d514 bpl.n 8000990 - 8000966: 2100 movs r1, #0 - 8000968: 2002 movs r0, #2 - 800096a: f7ff fed7 bl 800071c - 800096e: 6923 ldr r3, [r4, #16] - 8000970: f023 0302 bic.w r3, r3, #2 - 8000974: 6123 str r3, [r4, #16] - 8000976: 4c17 ldr r4, [pc, #92] ; (80009d4 ) - 8000978: 6923 ldr r3, [r4, #16] - 800097a: 07db lsls r3, r3, #31 - 800097c: d507 bpl.n 800098e - 800097e: 4b16 ldr r3, [pc, #88] ; (80009d8 ) - 8000980: 689b ldr r3, [r3, #8] - 8000982: b103 cbz r3, 8000986 - 8000984: 4798 blx r3 - 8000986: 6923 ldr r3, [r4, #16] - 8000988: f023 0301 bic.w r3, r3, #1 - 800098c: 6123 str r3, [r4, #16] - 800098e: bd10 pop {r4, pc} - 8000990: 6923 ldr r3, [r4, #16] - 8000992: 0758 lsls r0, r3, #29 - 8000994: d507 bpl.n 80009a6 - 8000996: 2101 movs r1, #1 - 8000998: 2002 movs r0, #2 - 800099a: f7ff febf bl 800071c - 800099e: 6923 ldr r3, [r4, #16] - 80009a0: f023 0304 bic.w r3, r3, #4 - 80009a4: e7e6 b.n 8000974 - 80009a6: 6923 ldr r3, [r4, #16] - 80009a8: 0719 lsls r1, r3, #28 - 80009aa: d507 bpl.n 80009bc - 80009ac: 2102 movs r1, #2 - 80009ae: 4608 mov r0, r1 - 80009b0: f7ff feb4 bl 800071c - 80009b4: 6923 ldr r3, [r4, #16] - 80009b6: f023 0308 bic.w r3, r3, #8 - 80009ba: e7db b.n 8000974 - 80009bc: 6923 ldr r3, [r4, #16] - 80009be: 06da lsls r2, r3, #27 - 80009c0: d5d9 bpl.n 8000976 - 80009c2: 2103 movs r1, #3 - 80009c4: 2002 movs r0, #2 - 80009c6: f7ff fea9 bl 800071c - 80009ca: 6923 ldr r3, [r4, #16] - 80009cc: f023 0310 bic.w r3, r3, #16 - 80009d0: e7d0 b.n 8000974 - 80009d2: bf00 nop - 80009d4: 40000400 .word 0x40000400 - 80009d8: 20000088 .word 0x20000088 - -080009dc
      : - 80009dc: b57f push {r0, r1, r2, r3, r4, r5, r6, lr} - 80009de: f7ff fe21 bl 8000624 - 80009e2: 2000 movs r0, #0 - 80009e4: f7ff fe32 bl 800064c - 80009e8: 2001 movs r0, #1 - 80009ea: f7ff fe2f bl 800064c - 80009ee: 2002 movs r0, #2 - 80009f0: f7ff fe2c bl 800064c - 80009f4: 206e movs r0, #110 ; 0x6e - 80009f6: f7ff fe29 bl 800064c - 80009fa: 2064 movs r0, #100 ; 0x64 - 80009fc: f7ff fe26 bl 800064c - 8000a00: 2051 movs r0, #81 ; 0x51 - 8000a02: f7ff fe23 bl 800064c - 8000a06: 2065 movs r0, #101 ; 0x65 - 8000a08: f7ff fe20 bl 800064c - 8000a0c: 2060 movs r0, #96 ; 0x60 - 8000a0e: f7ff fe1d bl 800064c - 8000a12: 2201 movs r2, #1 - 8000a14: 210d movs r1, #13 - 8000a16: 2002 movs r0, #2 - 8000a18: f7ff fd58 bl 80004cc - 8000a1c: 2200 movs r2, #0 - 8000a1e: 210d movs r1, #13 - 8000a20: 2002 movs r0, #2 - 8000a22: f7ff fd73 bl 800050c - 8000a26: 2308 movs r3, #8 - 8000a28: 2217 movs r2, #23 - 8000a2a: e9cd 3203 strd r3, r2, [sp, #12] - 8000a2e: 2101 movs r1, #1 - 8000a30: 2200 movs r2, #0 - 8000a32: e9cd 3101 strd r3, r1, [sp, #4] - 8000a36: 9200 str r2, [sp, #0] - 8000a38: 2302 movs r3, #2 - 8000a3a: 4610 mov r0, r2 - 8000a3c: f7ff fbd8 bl 80001f0 - 8000a40: f7ff fc14 bl 800026c - 8000a44: 4c03 ldr r4, [pc, #12] ; (8000a54 ) - 8000a46: 6823 ldr r3, [r4, #0] - 8000a48: f5b3 7f00 cmp.w r3, #512 ; 0x200 - 8000a4c: d1fc bne.n 8000a48 - 8000a4e: f7ff fc0d bl 800026c - 8000a52: e7f8 b.n 8000a46 - 8000a54: 20000224 .word 0x20000224 - -08000a58 : - 8000a58: 480d ldr r0, [pc, #52] ; (8000a90 ) - 8000a5a: 4685 mov sp, r0 - 8000a5c: f3af 8000 nop.w - 8000a60: 480c ldr r0, [pc, #48] ; (8000a94 ) - 8000a62: 490d ldr r1, [pc, #52] ; (8000a98 ) - 8000a64: 4a0d ldr r2, [pc, #52] ; (8000a9c ) - 8000a66: 2300 movs r3, #0 - 8000a68: e002 b.n 8000a70 - -08000a6a : - 8000a6a: 58d4 ldr r4, [r2, r3] - 8000a6c: 50c4 str r4, [r0, r3] - 8000a6e: 3304 adds r3, #4 - -08000a70 : - 8000a70: 18c4 adds r4, r0, r3 - 8000a72: 428c cmp r4, r1 - 8000a74: d3f9 bcc.n 8000a6a - 8000a76: 4a0a ldr r2, [pc, #40] ; (8000aa0 ) - 8000a78: 4c0a ldr r4, [pc, #40] ; (8000aa4 ) - 8000a7a: 2300 movs r3, #0 - 8000a7c: e001 b.n 8000a82 - -08000a7e : - 8000a7e: 6013 str r3, [r2, #0] - 8000a80: 3204 adds r2, #4 - -08000a82 : - 8000a82: 42a2 cmp r2, r4 - 8000a84: d3fb bcc.n 8000a7e - 8000a86: f000 f811 bl 8000aac <__libc_init_array> - 8000a8a: f7ff ffa7 bl 80009dc
      - -08000a8e : - 8000a8e: e7fe b.n 8000a8e - 8000a90: 20010000 .word 0x20010000 - 8000a94: 20000000 .word 0x20000000 - 8000a98: 20000000 .word 0x20000000 - 8000a9c: 08000b34 .word 0x08000b34 - 8000aa0: 20000000 .word 0x20000000 - 8000aa4: 20000234 .word 0x20000234 - -08000aa8 : - 8000aa8: e7fe b.n 8000aa8 - ... - -08000aac <__libc_init_array>: - 8000aac: b570 push {r4, r5, r6, lr} - 8000aae: 4e0d ldr r6, [pc, #52] ; (8000ae4 <__libc_init_array+0x38>) - 8000ab0: 4c0d ldr r4, [pc, #52] ; (8000ae8 <__libc_init_array+0x3c>) - 8000ab2: 1ba4 subs r4, r4, r6 - 8000ab4: 10a4 asrs r4, r4, #2 - 8000ab6: 2500 movs r5, #0 - 8000ab8: 42a5 cmp r5, r4 - 8000aba: d109 bne.n 8000ad0 <__libc_init_array+0x24> - 8000abc: 4e0b ldr r6, [pc, #44] ; (8000aec <__libc_init_array+0x40>) - 8000abe: 4c0c ldr r4, [pc, #48] ; (8000af0 <__libc_init_array+0x44>) - 8000ac0: f000 f818 bl 8000af4 <_init> - 8000ac4: 1ba4 subs r4, r4, r6 - 8000ac6: 10a4 asrs r4, r4, #2 - 8000ac8: 2500 movs r5, #0 - 8000aca: 42a5 cmp r5, r4 - 8000acc: d105 bne.n 8000ada <__libc_init_array+0x2e> - 8000ace: bd70 pop {r4, r5, r6, pc} - 8000ad0: f856 3025 ldr.w r3, [r6, r5, lsl #2] - 8000ad4: 4798 blx r3 - 8000ad6: 3501 adds r5, #1 - 8000ad8: e7ee b.n 8000ab8 <__libc_init_array+0xc> - 8000ada: f856 3025 ldr.w r3, [r6, r5, lsl #2] - 8000ade: 4798 blx r3 - 8000ae0: 3501 adds r5, #1 - 8000ae2: e7f2 b.n 8000aca <__libc_init_array+0x1e> - 8000ae4: 08000b2c .word 0x08000b2c - 8000ae8: 08000b2c .word 0x08000b2c - 8000aec: 08000b2c .word 0x08000b2c - 8000af0: 08000b30 .word 0x08000b30 - -08000af4 <_init>: - 8000af4: b5f8 push {r3, r4, r5, r6, r7, lr} - 8000af6: bf00 nop - 8000af8: bcf8 pop {r3, r4, r5, r6, r7} - 8000afa: bc08 pop {r3} - 8000afc: 469e mov lr, r3 - 8000afe: 4770 bx lr - -08000b00 <_fini>: - 8000b00: b5f8 push {r3, r4, r5, r6, r7, lr} - 8000b02: bf00 nop - 8000b04: bcf8 pop {r3, r4, r5, r6, r7} - 8000b06: bc08 pop {r3} - 8000b08: 469e mov lr, r3 - 8000b0a: 4770 bx lr diff --git a/AutoParkingCar/Release/AutoParkingCar.map b/AutoParkingCar/Release/AutoParkingCar.map deleted file mode 100644 index 8bd6593..0000000 --- a/AutoParkingCar/Release/AutoParkingCar.map +++ /dev/null @@ -1,872 +0,0 @@ -Archive member included to satisfy reference by file (symbol) - -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) - Src/syscalls.o (__errno) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-exit.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/crt0.o (exit) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-impure.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-exit.o) (_global_impure_ptr) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/crt0.o (__libc_init_array) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/crt0.o (memset) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_sqrt.o) - Src/Application/Motion_Planing.o (sqrt) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_sqrt.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_sqrt.o) (__ieee754_sqrt) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_lib_ver.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_sqrt.o) (__fdlib_version) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_matherr.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_sqrt.o) (matherr) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_addsubdf3.o) - Src/Application/Motion_Planing.o (__aeabi_dsub) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_muldivdf3.o) - Src/Application/Motion_Planing.o (__aeabi_dmul) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_cmpdf2.o) - Src/Application/Motion_Planing.o (__aeabi_dcmplt) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_unorddf2.o) - c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_sqrt.o) (__aeabi_dcmpun) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_fixunsdfsi.o) - Src/Application/Motion_Planing.o (__aeabi_d2uiz) -c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_truncdfsf2.o) - Src/Application/Motion_Planing.o (__aeabi_d2f) - -Allocating common symbols -Common symbol size file - -scenario 0x1 Src/Application/Motion_Planing.o -point_c 0x8 Src/Application/Motion_Planing.o -vth_pd 0x1 Src/Application/Motion_Planing.o -Scanned_Area 0x64 Src/Application/Motion_Planing.o -Motor_Pins 0xa Src/HAL/HMOTOR/HMOTOR.o -park_width 0x1 Src/Application/Motion_Planing.o -park_length 0x1 Src/Application/Motion_Planing.o -speed 0x1 Src/Application/Motion_Planing.o -vth 0x1 Src/Application/Motion_Planing.o -vth_pl 0x1 Src/Application/Motion_Planing.o - -Discarded input sections - - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o - .data 0x0000000000000000 0x4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - .text 0x0000000000000000 0x74 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/crt0.o - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/crt0.o - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/crt0.o - .ARM.extab 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/crt0.o - .ARM.exidx 0x0000000000000000 0x8 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/crt0.o - .ARM.attributes - 0x0000000000000000 0x20 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/crt0.o - .text 0x0000000000000000 0x0 Src/Application/Car_Control.o - .data 0x0000000000000000 0x0 Src/Application/Car_Control.o - .bss 0x0000000000000000 0x0 Src/Application/Car_Control.o - .text.CAR_CONTROL_Move - 0x0000000000000000 0x2 Src/Application/Car_Control.o - .text.CAR_CONTROL_Steer - 0x0000000000000000 0x24 Src/Application/Car_Control.o - .comment 0x0000000000000000 0x7c Src/Application/Car_Control.o - .ARM.attributes - 0x0000000000000000 0x39 Src/Application/Car_Control.o - .text 0x0000000000000000 0x0 Src/Application/Collision_Avoidance.o - .data 0x0000000000000000 0x0 Src/Application/Collision_Avoidance.o - .bss 0x0000000000000000 0x0 Src/Application/Collision_Avoidance.o - .comment 0x0000000000000000 0x7c Src/Application/Collision_Avoidance.o - .ARM.attributes - 0x0000000000000000 0x39 Src/Application/Collision_Avoidance.o - .text 0x0000000000000000 0x0 Src/Application/Motion_Planing.o - .data 0x0000000000000000 0x0 Src/Application/Motion_Planing.o - .bss 0x0000000000000000 0x0 Src/Application/Motion_Planing.o - .text.Set_Param_A - 0x0000000000000000 0xc Src/Application/Motion_Planing.o - .text.Set_Param_B - 0x0000000000000000 0xc Src/Application/Motion_Planing.o - .text.PaB_Path - 0x0000000000000000 0x158 Src/Application/Motion_Planing.o - .text.PeB_Path - 0x0000000000000000 0x6 Src/Application/Motion_Planing.o - .text.PeF_Path - 0x0000000000000000 0x6 Src/Application/Motion_Planing.o - .text.Scan_Process - 0x0000000000000000 0x110 Src/Application/Motion_Planing.o - .text.Scan 0x0000000000000000 0x34 Src/Application/Motion_Planing.o - .text.Process 0x0000000000000000 0x110 Src/Application/Motion_Planing.o - .bss.Distance1 - 0x0000000000000000 0x8 Src/Application/Motion_Planing.o - .bss._param_a 0x0000000000000000 0x4 Src/Application/Motion_Planing.o - .bss._param_b 0x0000000000000000 0x4 Src/Application/Motion_Planing.o - .bss.count 0x0000000000000000 0x1 Src/Application/Motion_Planing.o - .data.Car_Length - 0x0000000000000000 0x1 Src/Application/Motion_Planing.o - .data.Car_width - 0x0000000000000000 0x1 Src/Application/Motion_Planing.o - .comment 0x0000000000000000 0x7c Src/Application/Motion_Planing.o - .ARM.attributes - 0x0000000000000000 0x39 Src/Application/Motion_Planing.o - COMMON 0x0000000000000000 0x76 Src/Application/Motion_Planing.o - .text 0x0000000000000000 0x0 Src/Application/Path_Tracking.o - .data 0x0000000000000000 0x0 Src/Application/Path_Tracking.o - .bss 0x0000000000000000 0x0 Src/Application/Path_Tracking.o - .text.PT_TrackThePath - 0x0000000000000000 0x84 Src/Application/Path_Tracking.o - .comment 0x0000000000000000 0x7c Src/Application/Path_Tracking.o - .ARM.attributes - 0x0000000000000000 0x39 Src/Application/Path_Tracking.o - .text 0x0000000000000000 0x0 Src/Application/Scenario_Select.o - .data 0x0000000000000000 0x0 Src/Application/Scenario_Select.o - .bss 0x0000000000000000 0x0 Src/Application/Scenario_Select.o - .bss.senario 0x0000000000000000 0x1 Src/Application/Scenario_Select.o - .comment 0x0000000000000000 0x7c Src/Application/Scenario_Select.o - .ARM.attributes - 0x0000000000000000 0x39 Src/Application/Scenario_Select.o - .text 0x0000000000000000 0x0 Src/HAL/HCOMPASS/HAL_COMPASS.o - .data 0x0000000000000000 0x0 Src/HAL/HCOMPASS/HAL_COMPASS.o - .bss 0x0000000000000000 0x0 Src/HAL/HCOMPASS/HAL_COMPASS.o - .text.HAL_CMP_vInit - 0x0000000000000000 0x2 Src/HAL/HCOMPASS/HAL_COMPASS.o - .comment 0x0000000000000000 0x7c Src/HAL/HCOMPASS/HAL_COMPASS.o - .ARM.attributes - 0x0000000000000000 0x39 Src/HAL/HCOMPASS/HAL_COMPASS.o - .text 0x0000000000000000 0x0 Src/HAL/HMOTOR/HMOTOR.o - .data 0x0000000000000000 0x0 Src/HAL/HMOTOR/HMOTOR.o - .bss 0x0000000000000000 0x0 Src/HAL/HMOTOR/HMOTOR.o - .text.HAL_MOTOR_MOVE - 0x0000000000000000 0x6c Src/HAL/HMOTOR/HMOTOR.o - .text 0x0000000000000000 0x0 Src/HAL/HSERVO/HSERVO_Prog.o - .data 0x0000000000000000 0x0 Src/HAL/HSERVO/HSERVO_Prog.o - .bss 0x0000000000000000 0x0 Src/HAL/HSERVO/HSERVO_Prog.o - .text.HSERVO_vServoInit - 0x0000000000000000 0xbc Src/HAL/HSERVO/HSERVO_Prog.o - .text.HSERVO_vServoDeg - 0x0000000000000000 0x20 Src/HAL/HSERVO/HSERVO_Prog.o - .comment 0x0000000000000000 0x7c Src/HAL/HSERVO/HSERVO_Prog.o - .ARM.attributes - 0x0000000000000000 0x39 Src/HAL/HSERVO/HSERVO_Prog.o - .text 0x0000000000000000 0x0 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .data 0x0000000000000000 0x0 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .bss 0x0000000000000000 0x0 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .text.HULTRA_vInitialize - 0x0000000000000000 0xc6 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .text.HULTRA_vSendTrigger - 0x0000000000000000 0x2a Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .text.HULTRA_vGetDistance - 0x0000000000000000 0x34 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .comment 0x0000000000000000 0x7c Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .ARM.attributes - 0x0000000000000000 0x39 Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - .text 0x0000000000000000 0x0 Src/MCAL/MEXTI/MEXTI_Prog.o - .data 0x0000000000000000 0x0 Src/MCAL/MEXTI/MEXTI_Prog.o - .bss 0x0000000000000000 0x0 Src/MCAL/MEXTI/MEXTI_Prog.o - .text.MEXTI_vDisableInterrupt - 0x0000000000000000 0x18 Src/MCAL/MEXTI/MEXTI_Prog.o - .text.MEXTI_vEnableEvent - 0x0000000000000000 0x14 Src/MCAL/MEXTI/MEXTI_Prog.o - .text.MEXTI_vDisableEvent - 0x0000000000000000 0x18 Src/MCAL/MEXTI/MEXTI_Prog.o - .text.MEXTI_vSWevent - 0x0000000000000000 0x14 Src/MCAL/MEXTI/MEXTI_Prog.o - .text.MEXTI_PtrReadInterruptFlag - 0x0000000000000000 0x14 Src/MCAL/MEXTI/MEXTI_Prog.o - .text 0x0000000000000000 0x0 Src/MCAL/MGPIO/MGPIO_Prog.o - .data 0x0000000000000000 0x0 Src/MCAL/MGPIO/MGPIO_Prog.o - .bss 0x0000000000000000 0x0 Src/MCAL/MGPIO/MGPIO_Prog.o - .text.MGPIO_vSetPinOutPutType - 0x0000000000000000 0x40 Src/MCAL/MGPIO/MGPIO_Prog.o - .text.MGPIO_vSetPinOutPutSpeed - 0x0000000000000000 0x40 Src/MCAL/MGPIO/MGPIO_Prog.o - .text.MGPIO_vSetPinInPutType - 0x0000000000000000 0x40 Src/MCAL/MGPIO/MGPIO_Prog.o - .text.MGPIO_u8GetPinValue - 0x0000000000000000 0x30 Src/MCAL/MGPIO/MGPIO_Prog.o - .text.MGPIO_vSetPinAtomic - 0x0000000000000000 0x54 Src/MCAL/MGPIO/MGPIO_Prog.o - .text 0x0000000000000000 0x0 Src/MCAL/MI2C/MI2C_Prog.o - .data 0x0000000000000000 0x0 Src/MCAL/MI2C/MI2C_Prog.o - .bss 0x0000000000000000 0x0 Src/MCAL/MI2C/MI2C_Prog.o - .text.MI2C_vMasterInit - 0x0000000000000000 0x48 Src/MCAL/MI2C/MI2C_Prog.o - .text.MI2C_vSlaveInit - 0x0000000000000000 0x38 Src/MCAL/MI2C/MI2C_Prog.o - .text.MI2C_vGenerateStart - 0x0000000000000000 0x10 Src/MCAL/MI2C/MI2C_Prog.o - .text.MI2C_vClearStart - 0x0000000000000000 0x4 Src/MCAL/MI2C/MI2C_Prog.o - .text.MI2C_vClearADDR - 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .text.MI2C_u8SlaveRx - 0x0000000000000000 0x3c Src/MCAL/MI2C/MI2C_Prog.o - .text.MI2C_vMasterTx - 0x0000000000000000 0x40 Src/MCAL/MI2C/MI2C_Prog.o - .text.MI2C_vGenerateStop - 0x0000000000000000 0xa Src/MCAL/MI2C/MI2C_Prog.o - .rodata.CSWTCH.1 - 0x0000000000000000 0xc Src/MCAL/MI2C/MI2C_Prog.o - .comment 0x0000000000000000 0x7c Src/MCAL/MI2C/MI2C_Prog.o - .ARM.attributes - 0x0000000000000000 0x39 Src/MCAL/MI2C/MI2C_Prog.o - .text 0x0000000000000000 0x0 Src/MCAL/MIWDT/MIWDT_Prog.o - .data 0x0000000000000000 0x0 Src/MCAL/MIWDT/MIWDT_Prog.o - .bss 0x0000000000000000 0x0 Src/MCAL/MIWDT/MIWDT_Prog.o - .text.MIWDG_vStart - 0x0000000000000000 0x30 Src/MCAL/MIWDT/MIWDT_Prog.o - .text.MIWDG_vReload - 0x0000000000000000 0x10 Src/MCAL/MIWDT/MIWDT_Prog.o - .comment 0x0000000000000000 0x7c Src/MCAL/MIWDT/MIWDT_Prog.o - .ARM.attributes - 0x0000000000000000 0x39 Src/MCAL/MIWDT/MIWDT_Prog.o - .text 0x0000000000000000 0x0 Src/MCAL/MNVIC/MNVIC_Prog.o - .data 0x0000000000000000 0x0 Src/MCAL/MNVIC/MNVIC_Prog.o - .bss 0x0000000000000000 0x0 Src/MCAL/MNVIC/MNVIC_Prog.o - .text.MNVIC_vDisableInterrupt - 0x0000000000000000 0x1c Src/MCAL/MNVIC/MNVIC_Prog.o - .text.MNVIC_vSetPendingFlag - 0x0000000000000000 0x1c Src/MCAL/MNVIC/MNVIC_Prog.o - .text.MNVIC_vClearPendingFlag - 0x0000000000000000 0x1c Src/MCAL/MNVIC/MNVIC_Prog.o - .text.MNVIC_u8ReadActiveFlag - 0x0000000000000000 0x1c Src/MCAL/MNVIC/MNVIC_Prog.o - .text.MNVIC_vInitGrouping - 0x0000000000000000 0x1c Src/MCAL/MNVIC/MNVIC_Prog.o - .text.MNVIC_vSetIntPriority - 0x0000000000000000 0x54 Src/MCAL/MNVIC/MNVIC_Prog.o - .text.MNVIC_vTrigSoftwareInt - 0x0000000000000000 0x14 Src/MCAL/MNVIC/MNVIC_Prog.o - .bss.Global_u8GPMode - 0x0000000000000000 0x1 Src/MCAL/MNVIC/MNVIC_Prog.o - .text 0x0000000000000000 0x0 Src/MCAL/MRCC/MRCC_Prog.o - .data 0x0000000000000000 0x0 Src/MCAL/MRCC/MRCC_Prog.o - .bss 0x0000000000000000 0x0 Src/MCAL/MRCC/MRCC_Prog.o - .text.MRCC_vDisableClock - 0x0000000000000000 0x60 Src/MCAL/MRCC/MRCC_Prog.o - .text 0x0000000000000000 0x0 Src/MCAL/MSPI/MSPI_Prog.o - .data 0x0000000000000000 0x0 Src/MCAL/MSPI/MSPI_Prog.o - .bss 0x0000000000000000 0x0 Src/MCAL/MSPI/MSPI_Prog.o - .text.MSPI_vMasterInit - 0x0000000000000000 0x5c Src/MCAL/MSPI/MSPI_Prog.o - .text.MSPI_vSlaveInit - 0x0000000000000000 0x4c Src/MCAL/MSPI/MSPI_Prog.o - .text.MSPI_u8MasterTransceiver - 0x0000000000000000 0x48 Src/MCAL/MSPI/MSPI_Prog.o - .text.MSPI_u8SlaveTransceiver - 0x0000000000000000 0x44 Src/MCAL/MSPI/MSPI_Prog.o - .text.MSPI_vEnableRxInt - 0x0000000000000000 0x34 Src/MCAL/MSPI/MSPI_Prog.o - .text.MSPI_vEnableTxInt - 0x0000000000000000 0x34 Src/MCAL/MSPI/MSPI_Prog.o - .text.MSPI_vSetTxCallBackFunc - 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .text.MSPI_vSetRxCallBackFunc - 0x0000000000000000 0xc Src/MCAL/MSPI/MSPI_Prog.o - .text.MSPI_u8ReadRecievedData - 0x0000000000000000 0x1c Src/MCAL/MSPI/MSPI_Prog.o - .rodata.CSWTCH.3 - 0x0000000000000000 0x10 Src/MCAL/MSPI/MSPI_Prog.o - .text 0x0000000000000000 0x0 Src/MCAL/MSTK/MSYSTICK_Prog.o - .data 0x0000000000000000 0x0 Src/MCAL/MSTK/MSYSTICK_Prog.o - .bss 0x0000000000000000 0x0 Src/MCAL/MSTK/MSYSTICK_Prog.o - .text.MSYSTICK_vInit - 0x0000000000000000 0x18 Src/MCAL/MSTK/MSYSTICK_Prog.o - .text.MSYSTICK_vPeriodicMS - 0x0000000000000000 0x28 Src/MCAL/MSTK/MSYSTICK_Prog.o - .text.MSYSTICK_vDelayms - 0x0000000000000000 0x3c Src/MCAL/MSTK/MSYSTICK_Prog.o - .text.MSYSTICK_u32GetElapsedTime - 0x0000000000000000 0x14 Src/MCAL/MSTK/MSYSTICK_Prog.o - .text.MSYSTICK_u32GetRemainingTime - 0x0000000000000000 0x14 Src/MCAL/MSTK/MSYSTICK_Prog.o - .text.MSYSTICK_vStop - 0x0000000000000000 0x10 Src/MCAL/MSTK/MSYSTICK_Prog.o - .text.MSYSTICK_vCallBack - 0x0000000000000000 0xc Src/MCAL/MSTK/MSYSTICK_Prog.o - .text 0x0000000000000000 0x0 Src/MCAL/MTIMER/MTIMER_Prog.o - .data 0x0000000000000000 0x0 Src/MCAL/MTIMER/MTIMER_Prog.o - .bss 0x0000000000000000 0x0 Src/MCAL/MTIMER/MTIMER_Prog.o - .text.MTIMER_vPeriodicMS - 0x0000000000000000 0x20 Src/MCAL/MTIMER/MTIMER_Prog.o - .text.MTIMER_vPWM - 0x0000000000000000 0xae Src/MCAL/MTIMER/MTIMER_Prog.o - .text.MTIMER_vICU - 0x0000000000000000 0xa4 Src/MCAL/MTIMER/MTIMER_Prog.o - .text.MTIMER_GET_ICU - 0x0000000000000000 0x14 Src/MCAL/MTIMER/MTIMER_Prog.o - .text.MTIMER_CallBack - 0x0000000000000000 0x10 Src/MCAL/MTIMER/MTIMER_Prog.o - .text.TIM4_IRQHandler - 0x0000000000000000 0x80 Src/MCAL/MTIMER/MTIMER_Prog.o - .text.TIM5_IRQHandler - 0x0000000000000000 0x80 Src/MCAL/MTIMER/MTIMER_Prog.o - .text 0x0000000000000000 0x0 Src/MCAL/MUART/MUSART_Program.o - .data 0x0000000000000000 0x0 Src/MCAL/MUART/MUSART_Program.o - .bss 0x0000000000000000 0x0 Src/MCAL/MUART/MUSART_Program.o - .text.MUART_Receive_Data - 0x0000000000000000 0x2 Src/MCAL/MUART/MUSART_Program.o - .text.Get_UART - 0x0000000000000000 0x28 Src/MCAL/MUART/MUSART_Program.o - .text.MUART_Enable - 0x0000000000000000 0x54 Src/MCAL/MUART/MUSART_Program.o - .text.MUART_Disable - 0x0000000000000000 0x10 Src/MCAL/MUART/MUSART_Program.o - .text.MUART_Send_Byte - 0x0000000000000000 0x18 Src/MCAL/MUART/MUSART_Program.o - .text.MUART_Send_Data - 0x0000000000000000 0x18 Src/MCAL/MUART/MUSART_Program.o - .text.MUART_Receive_Byte - 0x0000000000000000 0x12 Src/MCAL/MUART/MUSART_Program.o - .comment 0x0000000000000000 0x7c Src/MCAL/MUART/MUSART_Program.o - .ARM.attributes - 0x0000000000000000 0x39 Src/MCAL/MUART/MUSART_Program.o - .text 0x0000000000000000 0x0 Src/main.o - .data 0x0000000000000000 0x0 Src/main.o - .bss 0x0000000000000000 0x0 Src/main.o - .text.test1 0x0000000000000000 0x2 Src/main.o - .text 0x0000000000000000 0x0 Src/syscalls.o - .data 0x0000000000000000 0x0 Src/syscalls.o - .bss 0x0000000000000000 0x0 Src/syscalls.o - .text.initialise_monitor_handles - 0x0000000000000000 0x2 Src/syscalls.o - .text._getpid 0x0000000000000000 0x4 Src/syscalls.o - .text._kill 0x0000000000000000 0x10 Src/syscalls.o - .text._exit 0x0000000000000000 0xc Src/syscalls.o - .text._read 0x0000000000000000 0x1c Src/syscalls.o - .text._write 0x0000000000000000 0x1c Src/syscalls.o - .text._close 0x0000000000000000 0x6 Src/syscalls.o - .text._fstat 0x0000000000000000 0xa Src/syscalls.o - .text._isatty 0x0000000000000000 0x4 Src/syscalls.o - .text._lseek 0x0000000000000000 0x4 Src/syscalls.o - .text._open 0x0000000000000000 0xa Src/syscalls.o - .text._wait 0x0000000000000000 0x10 Src/syscalls.o - .text._unlink 0x0000000000000000 0x10 Src/syscalls.o - .text._times 0x0000000000000000 0x6 Src/syscalls.o - .text._stat 0x0000000000000000 0xa Src/syscalls.o - .text._link 0x0000000000000000 0x10 Src/syscalls.o - .text._fork 0x0000000000000000 0x10 Src/syscalls.o - .text._execve 0x0000000000000000 0x10 Src/syscalls.o - .bss.__env 0x0000000000000000 0x4 Src/syscalls.o - .data.environ 0x0000000000000000 0x4 Src/syscalls.o - .comment 0x0000000000000000 0x7c Src/syscalls.o - .ARM.attributes - 0x0000000000000000 0x39 Src/syscalls.o - .text 0x0000000000000000 0x0 Src/sysmem.o - .data 0x0000000000000000 0x0 Src/sysmem.o - .bss 0x0000000000000000 0x0 Src/sysmem.o - .text._sbrk 0x0000000000000000 0x40 Src/sysmem.o - .bss.__sbrk_heap_end - 0x0000000000000000 0x4 Src/sysmem.o - .comment 0x0000000000000000 0x7c Src/sysmem.o - .ARM.attributes - 0x0000000000000000 0x39 Src/sysmem.o - .text 0x0000000000000000 0x14 Startup/startup_stm32f401rctx.o - .data 0x0000000000000000 0x0 Startup/startup_stm32f401rctx.o - .bss 0x0000000000000000 0x0 Startup/startup_stm32f401rctx.o - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) - .text.__errno 0x0000000000000000 0xc c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) - .debug_frame 0x0000000000000000 0x20 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-exit.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-exit.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-exit.o) - .text.exit 0x0000000000000000 0x28 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-exit.o) - .debug_frame 0x0000000000000000 0x28 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-exit.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-exit.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-impure.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-impure.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-impure.o) - .data._impure_ptr - 0x0000000000000000 0x4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-impure.o) - .data.impure_data - 0x0000000000000000 0x60 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-impure.o) - .rodata._global_impure_ptr - 0x0000000000000000 0x4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-impure.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-impure.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) - .text.memset 0x0000000000000000 0x10 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) - .debug_frame 0x0000000000000000 0x20 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_sqrt.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_sqrt.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_sqrt.o) - .text.sqrt 0x0000000000000000 0xb4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_sqrt.o) - .rodata.sqrt.str1.1 - 0x0000000000000000 0x5 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_sqrt.o) - .debug_frame 0x0000000000000000 0x4c c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_sqrt.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-w_sqrt.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_sqrt.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_sqrt.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_sqrt.o) - .text.__ieee754_sqrt - 0x0000000000000000 0x160 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_sqrt.o) - .debug_frame 0x0000000000000000 0x30 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_sqrt.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-e_sqrt.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_lib_ver.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_lib_ver.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_lib_ver.o) - .data.__fdlib_version - 0x0000000000000000 0x1 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_lib_ver.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_lib_ver.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_matherr.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_matherr.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_matherr.o) - .text.matherr 0x0000000000000000 0x4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_matherr.o) - .debug_frame 0x0000000000000000 0x20 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_matherr.o) - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a(lib_a-s_matherr.o) - .text 0x0000000000000000 0x378 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_addsubdf3.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_addsubdf3.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_addsubdf3.o) - .debug_frame 0x0000000000000000 0xac c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_addsubdf3.o) - .ARM.attributes - 0x0000000000000000 0x22 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_addsubdf3.o) - .text 0x0000000000000000 0x424 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_muldivdf3.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_muldivdf3.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_muldivdf3.o) - .debug_frame 0x0000000000000000 0x50 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_muldivdf3.o) - .ARM.attributes - 0x0000000000000000 0x22 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_muldivdf3.o) - .text 0x0000000000000000 0x110 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_cmpdf2.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_cmpdf2.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_cmpdf2.o) - .debug_frame 0x0000000000000000 0xc4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_cmpdf2.o) - .ARM.attributes - 0x0000000000000000 0x22 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_cmpdf2.o) - .text 0x0000000000000000 0x2c c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_unorddf2.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_unorddf2.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_unorddf2.o) - .debug_frame 0x0000000000000000 0x20 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_unorddf2.o) - .ARM.attributes - 0x0000000000000000 0x22 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_unorddf2.o) - .text 0x0000000000000000 0x40 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_fixunsdfsi.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_fixunsdfsi.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_fixunsdfsi.o) - .debug_frame 0x0000000000000000 0x24 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_fixunsdfsi.o) - .ARM.attributes - 0x0000000000000000 0x22 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_fixunsdfsi.o) - .text 0x0000000000000000 0xa0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_truncdfsf2.o) - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_truncdfsf2.o) - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_truncdfsf2.o) - .debug_frame 0x0000000000000000 0x24 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_truncdfsf2.o) - .ARM.attributes - 0x0000000000000000 0x22 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_truncdfsf2.o) - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtend.o - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtend.o - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtend.o - .eh_frame 0x0000000000000000 0x4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtend.o - .ARM.attributes - 0x0000000000000000 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtend.o - .text 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o - .data 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o - .bss 0x0000000000000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o - -Memory Configuration - -Name Origin Length Attributes -RAM 0x0000000020000000 0x0000000000010000 xrw -ROM 0x0000000008000000 0x0000000000040000 xr -*default* 0x0000000000000000 0xffffffffffffffff - -Linker script and memory map - -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/crt0.o -LOAD Src/Application/Car_Control.o -LOAD Src/Application/Collision_Avoidance.o -LOAD Src/Application/Motion_Planing.o -LOAD Src/Application/Path_Tracking.o -LOAD Src/Application/Scenario_Select.o -LOAD Src/HAL/HCOMPASS/HAL_COMPASS.o -LOAD Src/HAL/HMOTOR/HMOTOR.o -LOAD Src/HAL/HSERVO/HSERVO_Prog.o -LOAD Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o -LOAD Src/MCAL/MEXTI/MEXTI_Prog.o -LOAD Src/MCAL/MGPIO/MGPIO_Prog.o -LOAD Src/MCAL/MI2C/MI2C_Prog.o -LOAD Src/MCAL/MIWDT/MIWDT_Prog.o -LOAD Src/MCAL/MNVIC/MNVIC_Prog.o -LOAD Src/MCAL/MRCC/MRCC_Prog.o -LOAD Src/MCAL/MSPI/MSPI_Prog.o -LOAD Src/MCAL/MSTK/MSYSTICK_Prog.o -LOAD Src/MCAL/MTIMER/MTIMER_Prog.o -LOAD Src/MCAL/MUART/MUSART_Program.o -LOAD Src/main.o -LOAD Src/syscalls.o -LOAD Src/sysmem.o -LOAD Startup/startup_stm32f401rctx.o -START GROUP -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libm.a -END GROUP -START GROUP -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a -END GROUP -START GROUP -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libnosys.a -END GROUP -START GROUP -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libnosys.a -END GROUP -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtend.o -LOAD c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o - 0x0000000020010000 _estack = (ORIGIN (RAM) + LENGTH (RAM)) - 0x0000000000000200 _Min_Heap_Size = 0x200 - 0x0000000000000400 _Min_Stack_Size = 0x400 - -.isr_vector 0x0000000008000000 0x194 - 0x0000000008000000 . = ALIGN (0x4) - *(.isr_vector) - .isr_vector 0x0000000008000000 0x194 Startup/startup_stm32f401rctx.o - 0x0000000008000000 g_pfnVectors - 0x0000000008000194 . = ALIGN (0x4) - -.text 0x0000000008000194 0x978 - 0x0000000008000194 . = ALIGN (0x4) - *(.text) - .text 0x0000000008000194 0x40 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - *(.text*) - .text.Increment_Pulse_CallBack - 0x00000000080001d4 0x1c Src/HAL/HMOTOR/HMOTOR.o - 0x00000000080001d4 Increment_Pulse_CallBack - .text.HAL_MOTOR_Init - 0x00000000080001f0 0x7c Src/HAL/HMOTOR/HMOTOR.o - 0x00000000080001f0 HAL_MOTOR_Init - .text.HAL_MOTOR_STOP - 0x000000000800026c 0x20 Src/HAL/HMOTOR/HMOTOR.o - 0x000000000800026c HAL_MOTOR_STOP - .text.SYSCFG_vConfigEXTI_Line - 0x000000000800028c 0x2c Src/MCAL/MEXTI/MEXTI_Prog.o - 0x000000000800028c SYSCFG_vConfigEXTI_Line - .text.MEXTI_vEnableInterrupt - 0x00000000080002b8 0x14 Src/MCAL/MEXTI/MEXTI_Prog.o - 0x00000000080002b8 MEXTI_vEnableInterrupt - .text.MEXTI_vInterruptTrigger - 0x00000000080002cc 0x44 Src/MCAL/MEXTI/MEXTI_Prog.o - 0x00000000080002cc MEXTI_vInterruptTrigger - .text.MEXTI_vCallBack - 0x0000000008000310 0x10 Src/MCAL/MEXTI/MEXTI_Prog.o - 0x0000000008000310 MEXTI_vCallBack - .text.EXTI0_IRQHandler - 0x0000000008000320 0x1c Src/MCAL/MEXTI/MEXTI_Prog.o - 0x0000000008000320 EXTI0_IRQHandler - .text.EXTI1_IRQHandler - 0x000000000800033c 0x1c Src/MCAL/MEXTI/MEXTI_Prog.o - 0x000000000800033c EXTI1_IRQHandler - .text.EXTI2_IRQHandler - 0x0000000008000358 0x1c Src/MCAL/MEXTI/MEXTI_Prog.o - 0x0000000008000358 EXTI2_IRQHandler - .text.EXTI3_IRQHandler - 0x0000000008000374 0x1c Src/MCAL/MEXTI/MEXTI_Prog.o - 0x0000000008000374 EXTI3_IRQHandler - .text.EXTI4_IRQHandler - 0x0000000008000390 0x1c Src/MCAL/MEXTI/MEXTI_Prog.o - 0x0000000008000390 EXTI4_IRQHandler - .text.EXTI9_5_IRQHandler - 0x00000000080003ac 0x84 Src/MCAL/MEXTI/MEXTI_Prog.o - 0x00000000080003ac EXTI9_5_IRQHandler - .text.EXTI15_10_IRQHandler - 0x0000000008000430 0x9c Src/MCAL/MEXTI/MEXTI_Prog.o - 0x0000000008000430 EXTI15_10_IRQHandler - .text.MGPIO_vSetPinMode - 0x00000000080004cc 0x40 Src/MCAL/MGPIO/MGPIO_Prog.o - 0x00000000080004cc MGPIO_vSetPinMode - .text.MGPIO_vSetPinValue - 0x000000000800050c 0x40 Src/MCAL/MGPIO/MGPIO_Prog.o - 0x000000000800050c MGPIO_vSetPinValue - .text.MGPIO_vSetAlternativeFunction - 0x000000000800054c 0xc0 Src/MCAL/MGPIO/MGPIO_Prog.o - 0x000000000800054c MGPIO_vSetAlternativeFunction - .text.MNVIC_vEnableInterrupt - 0x000000000800060c 0x18 Src/MCAL/MNVIC/MNVIC_Prog.o - 0x000000000800060c MNVIC_vEnableInterrupt - .text.MRCC_vInit - 0x0000000008000624 0x28 Src/MCAL/MRCC/MRCC_Prog.o - 0x0000000008000624 MRCC_vInit - .text.MRCC_vEnableClock - 0x000000000800064c 0x58 Src/MCAL/MRCC/MRCC_Prog.o - 0x000000000800064c MRCC_vEnableClock - .text.SPI1_IRQHandler - 0x00000000080006a4 0x34 Src/MCAL/MSPI/MSPI_Prog.o - 0x00000000080006a4 SPI1_IRQHandler - .text.SPI2_IRQHandler - 0x00000000080006d8 0x2 Src/MCAL/MSPI/MSPI_Prog.o - 0x00000000080006d8 SPI2_IRQHandler - .text.SPI3_IRQHandler - 0x00000000080006da 0x2 Src/MCAL/MSPI/MSPI_Prog.o - 0x00000000080006da SPI3_IRQHandler - .text.SPI4_IRQHandler - 0x00000000080006dc 0x2 Src/MCAL/MSPI/MSPI_Prog.o - 0x00000000080006dc SPI4_IRQHandler - *fill* 0x00000000080006de 0x2 - .text.SysTick_Handler - 0x00000000080006e0 0x10 Src/MCAL/MSTK/MSYSTICK_Prog.o - 0x00000000080006e0 SysTick_Handler - .text.GET_TIMER - 0x00000000080006f0 0x2c Src/MCAL/MTIMER/MTIMER_Prog.o - 0x00000000080006f0 GET_TIMER - .text.TIMER_ICU - 0x000000000800071c 0x6c Src/MCAL/MTIMER/MTIMER_Prog.o - 0x000000000800071c TIMER_ICU - .text.TIM1_UP_TIM10_IRQHandler - 0x0000000008000788 0x4c Src/MCAL/MTIMER/MTIMER_Prog.o - 0x0000000008000788 TIM1_UP_TIM10_IRQHandler - .text.TIM1_TRG_COM_TIM11_IRQHandler - 0x00000000080007d4 0x4c Src/MCAL/MTIMER/MTIMER_Prog.o - 0x00000000080007d4 TIM1_TRG_COM_TIM11_IRQHandler - .text.TIM1_BRK_TIM9_IRQHandler - 0x0000000008000820 0x5c Src/MCAL/MTIMER/MTIMER_Prog.o - 0x0000000008000820 TIM1_BRK_TIM9_IRQHandler - .text.TIM1_CC_IRQHandler - 0x000000000800087c 0x60 Src/MCAL/MTIMER/MTIMER_Prog.o - 0x000000000800087c TIM1_CC_IRQHandler - .text.TIM2_IRQHandler - 0x00000000080008dc 0x80 Src/MCAL/MTIMER/MTIMER_Prog.o - 0x00000000080008dc TIM2_IRQHandler - .text.TIM3_IRQHandler - 0x000000000800095c 0x80 Src/MCAL/MTIMER/MTIMER_Prog.o - 0x000000000800095c TIM3_IRQHandler - .text.startup.main - 0x00000000080009dc 0x7c Src/main.o - 0x00000000080009dc main - .text.Reset_Handler - 0x0000000008000a58 0x50 Startup/startup_stm32f401rctx.o - 0x0000000008000a58 Reset_Handler - .text.Default_Handler - 0x0000000008000aa8 0x2 Startup/startup_stm32f401rctx.o - 0x0000000008000aa8 RTC_Alarm_IRQHandler - 0x0000000008000aa8 DebugMon_Handler - 0x0000000008000aa8 HardFault_Handler - 0x0000000008000aa8 PVD_IRQHandler - 0x0000000008000aa8 SDIO_IRQHandler - 0x0000000008000aa8 TAMP_STAMP_IRQHandler - 0x0000000008000aa8 PendSV_Handler - 0x0000000008000aa8 NMI_Handler - 0x0000000008000aa8 I2C3_ER_IRQHandler - 0x0000000008000aa8 I2C2_EV_IRQHandler - 0x0000000008000aa8 FPU_IRQHandler - 0x0000000008000aa8 UsageFault_Handler - 0x0000000008000aa8 I2C1_EV_IRQHandler - 0x0000000008000aa8 RCC_IRQHandler - 0x0000000008000aa8 Default_Handler - 0x0000000008000aa8 ADC_IRQHandler - 0x0000000008000aa8 I2C3_EV_IRQHandler - 0x0000000008000aa8 RTC_WKUP_IRQHandler - 0x0000000008000aa8 MemManage_Handler - 0x0000000008000aa8 SVC_Handler - 0x0000000008000aa8 OTG_FS_WKUP_IRQHandler - 0x0000000008000aa8 I2C2_ER_IRQHandler - 0x0000000008000aa8 FLASH_IRQHandler - 0x0000000008000aa8 BusFault_Handler - 0x0000000008000aa8 OTG_FS_IRQHandler - 0x0000000008000aa8 I2C1_ER_IRQHandler - *fill* 0x0000000008000aaa 0x2 - .text.__libc_init_array - 0x0000000008000aac 0x48 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) - 0x0000000008000aac __libc_init_array - *(.glue_7) - .glue_7 0x0000000008000af4 0x0 linker stubs - *(.glue_7t) - .glue_7t 0x0000000008000af4 0x0 linker stubs - *(.eh_frame) - .eh_frame 0x0000000008000af4 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - *(.init) - .init 0x0000000008000af4 0x4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o - 0x0000000008000af4 _init - .init 0x0000000008000af8 0x8 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o - *(.fini) - .fini 0x0000000008000b00 0x4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o - 0x0000000008000b00 _fini - .fini 0x0000000008000b04 0x8 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o - 0x0000000008000b0c . = ALIGN (0x4) - 0x0000000008000b0c _etext = . - -.vfp11_veneer 0x0000000008000b0c 0x0 - .vfp11_veneer 0x0000000008000b0c 0x0 linker stubs - -.v4_bx 0x0000000008000b0c 0x0 - .v4_bx 0x0000000008000b0c 0x0 linker stubs - -.iplt 0x0000000008000b0c 0x0 - .iplt 0x0000000008000b0c 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - -.rodata 0x0000000008000b0c 0x20 - 0x0000000008000b0c . = ALIGN (0x4) - *(.rodata) - .rodata 0x0000000008000b0c 0x20 Src/MCAL/MTIMER/MTIMER_Prog.o - *(.rodata*) - 0x0000000008000b2c . = ALIGN (0x4) - -.rel.dyn 0x0000000008000b2c 0x0 - .rel.iplt 0x0000000008000b2c 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - -.ARM.extab 0x0000000008000b2c 0x0 - 0x0000000008000b2c . = ALIGN (0x4) - *(.ARM.extab* .gnu.linkonce.armextab.*) - 0x0000000008000b2c . = ALIGN (0x4) - -.ARM 0x0000000008000b2c 0x0 - 0x0000000008000b2c . = ALIGN (0x4) - 0x0000000008000b2c __exidx_start = . - *(.ARM.exidx*) - 0x0000000008000b2c __exidx_end = . - 0x0000000008000b2c . = ALIGN (0x4) - -.preinit_array 0x0000000008000b2c 0x0 - 0x0000000008000b2c . = ALIGN (0x4) - 0x0000000008000b2c PROVIDE (__preinit_array_start = .) - *(.preinit_array*) - 0x0000000008000b2c PROVIDE (__preinit_array_end = .) - 0x0000000008000b2c . = ALIGN (0x4) - -.init_array 0x0000000008000b2c 0x4 - 0x0000000008000b2c . = ALIGN (0x4) - 0x0000000008000b2c PROVIDE (__init_array_start = .) - *(SORT_BY_NAME(.init_array.*)) - *(.init_array*) - .init_array 0x0000000008000b2c 0x4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - 0x0000000008000b30 PROVIDE (__init_array_end = .) - 0x0000000008000b30 . = ALIGN (0x4) - -.fini_array 0x0000000008000b30 0x4 - 0x0000000008000b30 . = ALIGN (0x4) - [!provide] PROVIDE (__fini_array_start = .) - *(SORT_BY_NAME(.fini_array.*)) - *(.fini_array*) - .fini_array 0x0000000008000b30 0x4 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - [!provide] PROVIDE (__fini_array_end = .) - 0x0000000008000b34 . = ALIGN (0x4) - 0x0000000008000b34 _sidata = LOADADDR (.data) - -.data 0x0000000020000000 0x0 load address 0x0000000008000b34 - 0x0000000020000000 . = ALIGN (0x4) - 0x0000000020000000 _sdata = . - *(.data) - *(.data*) - 0x0000000020000000 . = ALIGN (0x4) - 0x0000000020000000 _edata = . - -.igot.plt 0x0000000020000000 0x0 load address 0x0000000008000b34 - .igot.plt 0x0000000020000000 0x0 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - 0x0000000020000000 . = ALIGN (0x4) - -.bss 0x0000000020000000 0x234 load address 0x0000000008000b34 - 0x0000000020000000 _sbss = . - 0x0000000020000000 __bss_start__ = _sbss - *(.bss) - .bss 0x0000000020000000 0x1c c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - *(.bss*) - .bss.encoder_pulses - 0x000000002000001c 0x4 Src/HAL/HMOTOR/HMOTOR.o - 0x000000002000001c encoder_pulses - .bss.temp_pulses - 0x0000000020000020 0x4 Src/HAL/HMOTOR/HMOTOR.o - 0x0000000020000020 temp_pulses - .bss.GLOBAL_EXTIPtr - 0x0000000020000024 0x40 Src/MCAL/MEXTI/MEXTI_Prog.o - .bss.SPIx_pvRXcallback - 0x0000000020000064 0x10 Src/MCAL/MSPI/MSPI_Prog.o - .bss.SPIx_pvTxcallback - 0x0000000020000074 0x10 Src/MCAL/MSPI/MSPI_Prog.o - .bss.GLOBAL_SYSTICK_CallBack - 0x0000000020000084 0x4 Src/MCAL/MSTK/MSYSTICK_Prog.o - .bss.GLOBAL_Ptr - 0x0000000020000088 0x20 Src/MCAL/MTIMER/MTIMER_Prog.o - .bss.Time 0x00000000200000a8 0x74 Src/MCAL/MTIMER/MTIMER_Prog.o - 0x00000000200000a8 Time - .bss.captureState.6238 - 0x000000002000011c 0x1d Src/MCAL/MTIMER/MTIMER_Prog.o - *fill* 0x0000000020000139 0x3 - .bss.captureValue1.6239 - 0x000000002000013c 0x74 Src/MCAL/MTIMER/MTIMER_Prog.o - .bss.captureValue2.6240 - 0x00000000200001b0 0x74 Src/MCAL/MTIMER/MTIMER_Prog.o - .bss.x 0x0000000020000224 0x4 Src/main.o - 0x0000000020000224 x - *(COMMON) - COMMON 0x0000000020000228 0xa Src/HAL/HMOTOR/HMOTOR.o - 0x0000000020000228 Motor_Pins - 0x0000000020000234 . = ALIGN (0x4) - *fill* 0x0000000020000232 0x2 - 0x0000000020000234 _ebss = . - 0x0000000020000234 __bss_end__ = _ebss - -._user_heap_stack - 0x0000000020000234 0x604 load address 0x0000000008000b34 - 0x0000000020000238 . = ALIGN (0x8) - *fill* 0x0000000020000234 0x4 - [!provide] PROVIDE (end = .) - 0x0000000020000238 PROVIDE (_end = .) - 0x0000000020000438 . = (. + _Min_Heap_Size) - *fill* 0x0000000020000238 0x200 - 0x0000000020000838 . = (. + _Min_Stack_Size) - *fill* 0x0000000020000438 0x400 - 0x0000000020000838 . = ALIGN (0x8) - -/DISCARD/ - libc.a(*) - libm.a(*) - libgcc.a(*) - -.ARM.attributes - 0x0000000000000000 0x30 - *(.ARM.attributes) - .ARM.attributes - 0x0000000000000000 0x22 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o - .ARM.attributes - 0x0000000000000022 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - .ARM.attributes - 0x0000000000000056 0x39 Src/HAL/HMOTOR/HMOTOR.o - .ARM.attributes - 0x000000000000008f 0x39 Src/MCAL/MEXTI/MEXTI_Prog.o - .ARM.attributes - 0x00000000000000c8 0x39 Src/MCAL/MGPIO/MGPIO_Prog.o - .ARM.attributes - 0x0000000000000101 0x39 Src/MCAL/MNVIC/MNVIC_Prog.o - .ARM.attributes - 0x000000000000013a 0x39 Src/MCAL/MRCC/MRCC_Prog.o - .ARM.attributes - 0x0000000000000173 0x39 Src/MCAL/MSPI/MSPI_Prog.o - .ARM.attributes - 0x00000000000001ac 0x39 Src/MCAL/MSTK/MSYSTICK_Prog.o - .ARM.attributes - 0x00000000000001e5 0x39 Src/MCAL/MTIMER/MTIMER_Prog.o - .ARM.attributes - 0x000000000000021e 0x39 Src/main.o - .ARM.attributes - 0x0000000000000257 0x21 Startup/startup_stm32f401rctx.o - .ARM.attributes - 0x0000000000000278 0x34 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) - .ARM.attributes - 0x00000000000002ac 0x22 c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o -OUTPUT(AutoParkingCar.elf elf32-littlearm) - -.comment 0x0000000000000000 0x7b - .comment 0x0000000000000000 0x7b Src/HAL/HMOTOR/HMOTOR.o - 0x7c (size before relaxing) - .comment 0x000000000000007b 0x7c Src/MCAL/MEXTI/MEXTI_Prog.o - .comment 0x000000000000007b 0x7c Src/MCAL/MGPIO/MGPIO_Prog.o - .comment 0x000000000000007b 0x7c Src/MCAL/MNVIC/MNVIC_Prog.o - .comment 0x000000000000007b 0x7c Src/MCAL/MRCC/MRCC_Prog.o - .comment 0x000000000000007b 0x7c Src/MCAL/MSPI/MSPI_Prog.o - .comment 0x000000000000007b 0x7c Src/MCAL/MSTK/MSYSTICK_Prog.o - .comment 0x000000000000007b 0x7c Src/MCAL/MTIMER/MTIMER_Prog.o - .comment 0x000000000000007b 0x7c Src/main.o - -.debug_frame 0x0000000000000000 0x2c - .debug_frame 0x0000000000000000 0x2c c:/st/stm32cubeide_1.4.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) diff --git a/AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.su b/AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.su deleted file mode 100644 index e69de29..0000000 diff --git a/AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.su b/AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.su deleted file mode 100644 index e69de29..0000000 diff --git a/AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.su b/AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.su deleted file mode 100644 index e69de29..0000000 diff --git a/AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.su b/AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.su deleted file mode 100644 index e69de29..0000000 diff --git a/AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.su b/AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.su deleted file mode 100644 index e69de29..0000000 diff --git a/AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.su b/AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.su deleted file mode 100644 index e69de29..0000000 diff --git a/AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.su b/AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.su deleted file mode 100644 index e69de29..0000000 diff --git a/AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/subdir.mk b/AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/subdir.mk deleted file mode 100644 index 61c3722..0000000 --- a/AutoParkingCar/Release/Inc/STM32F4xx_HAL_Driver/Src/subdir.mk +++ /dev/null @@ -1,89 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c \ -../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c \ -../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c \ -../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c \ -../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c \ -../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c \ -../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c \ -../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c \ -../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c \ -../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c \ -../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c \ -../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c \ -../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c \ -../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c \ -../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c - -OBJS += \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o - -C_DEPS += \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.d \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.d \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.d \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.d \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.d \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.d \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.d \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.d \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.d \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.d \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.d \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.d \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.d \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.d \ -./Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.d - - -# Each subdirectory must supply rules for building sources it contributes -Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o: ../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o: ../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o: ../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o: ../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o: ../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o: ../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o: ../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o: ../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o: ../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o: ../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o: ../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o: ../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o: ../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o: ../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o: ../Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Inc/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Release/Src/Application/Car_Control.d b/AutoParkingCar/Release/Src/Application/Car_Control.d deleted file mode 100644 index 9d86cf8..0000000 --- a/AutoParkingCar/Release/Src/Application/Car_Control.d +++ /dev/null @@ -1,19 +0,0 @@ -Src/Application/Car_Control.o: ../Src/Application/Car_Control.c \ - ../Src/Application/Inc/CAR_CONTROL.h \ - ../Src/Application/Inc/../../HAL/HMOTOR/HMOTOR.h \ - g:\embedded\ systems\gp\autoparkingcar\src\lib\std_types.h \ - ../Src/Application/Inc/../../HAL/HSERVO/HSERVO_Int.h \ - g:\embedded\ systems\gp\autoparkingcar\src\mcal\mtimer\mtimer_int.h \ - ../Src/Application/Inc/../../LIB/STD_TYPES.h - -../Src/Application/Inc/CAR_CONTROL.h: - -../Src/Application/Inc/../../HAL/HMOTOR/HMOTOR.h: - -g:\embedded\ systems\gp\autoparkingcar\src\lib\std_types.h: - -../Src/Application/Inc/../../HAL/HSERVO/HSERVO_Int.h: - -g:\embedded\ systems\gp\autoparkingcar\src\mcal\mtimer\mtimer_int.h: - -../Src/Application/Inc/../../LIB/STD_TYPES.h: diff --git a/AutoParkingCar/Release/Src/Application/Car_Control.o b/AutoParkingCar/Release/Src/Application/Car_Control.o deleted file mode 100644 index f8e5f39a3552906231791876efba34fc72478001..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1184 zcma)4&2JJ>5TDm&fr5>cX#8kn*4o5v;y#z90`(+W3q6!#06o+gvI|ck0k*!~lA4(K zS9vt?ukhByn^!#5r*%RnMLuZ>`sIwb{?#vtQqy#q{(isN42qO|Kt4*E*gz^0n6<*V>&%(bCF> zWfm&NTgx~-={o_VXzrOst6~%?rn#e)X^|E*fiX*#rRkiFnB%h@?Payqc*w>s>-SmT zC>t(!CcS~i*>va+y@_U(Fi-gvR4dr7!yI=Agrch29uL@=(b$FLTB@Pt@z954_=r>0)EUwZ}?Rfq5ukn!;%;UJ#kVX0axP=wBw|Jx)fLA zVa%3VveS@9kLX%d&SSoNk-a^)Rd|F_Qcftg!@IUO3Ai_+J=hMwuC}^%^QhBm9(Ehv zlr1>g0b?8v+WV~+&F-|#_|$vK-e4M$E3*c$8A+i2yK&&SC<7kKfz)vF0Z?4D1Jw0> zpu#~f)up)R%b~CX+VjR^Ho-J_0n`ZsK6Fn5=418$qYZ?KIVB@_c+VIA%FW%4aB_3Y zIC&xW5tl~(7w$onFJ4#H!qDG~sW0J5Xp0?6lKuASu2bla!f>27_ACMb~mH+?% diff --git a/AutoParkingCar/Release/Src/Application/Car_Control.su b/AutoParkingCar/Release/Src/Application/Car_Control.su deleted file mode 100644 index 60e6cdd..0000000 --- a/AutoParkingCar/Release/Src/Application/Car_Control.su +++ /dev/null @@ -1,2 +0,0 @@ -Car_Control.c:4:6:CAR_CONTROL_Move 0 static -Car_Control.c:21:6:CAR_CONTROL_Steer 8 static diff --git a/AutoParkingCar/Release/Src/Application/Collision_Avoidance.d b/AutoParkingCar/Release/Src/Application/Collision_Avoidance.d deleted file mode 100644 index 87e10d2..0000000 --- a/AutoParkingCar/Release/Src/Application/Collision_Avoidance.d +++ /dev/null @@ -1,2 +0,0 @@ -Src/Application/Collision_Avoidance.o: \ - ../Src/Application/Collision_Avoidance.c diff --git a/AutoParkingCar/Release/Src/Application/Collision_Avoidance.o b/AutoParkingCar/Release/Src/Application/Collision_Avoidance.o deleted file mode 100644 index d9eb0d74130c15c547065b0609cd7f9c5a3748f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 800 zcmaJdKR*jE1%ua)z{_mbJQ4s;lY|t+6sIQK3<*nnsI0cexqxBYNAs zGER8k;WG{6v>uKs$B7hWpeNP!ca&8KOCuYmYlM6hxz|#P_=em>Y zKQzalW1}O^x&SPA>4&C;IrO94lL)PZz;JRVFe?avb-jL{5AYq%hnZpMJJu-V!Q5H@ zkpdQl_e?B`zTz%whBv z;2l9j63p^kk>y=Q`4dBI%Elq4zlxE=kRA}i9d67E5HHzp4f(7tz(PxkFiYJJ8^BZC diff --git a/AutoParkingCar/Release/Src/Application/Collision_Avoidance.su b/AutoParkingCar/Release/Src/Application/Collision_Avoidance.su deleted file mode 100644 index e69de29..0000000 diff --git a/AutoParkingCar/Release/Src/Application/Motion_Planing.d b/AutoParkingCar/Release/Src/Application/Motion_Planing.d deleted file mode 100644 index 2f0d587..0000000 --- a/AutoParkingCar/Release/Src/Application/Motion_Planing.d +++ /dev/null @@ -1,25 +0,0 @@ -Src/Application/Motion_Planing.o: ../Src/Application/Motion_Planing.c \ - ../Src/Application/Inc/Motion_Planing.h \ - ../Src/Application/Inc/../../LIB/STD_TYPES.h \ - ../Src/Application/Inc/../Inc/Scenario_Select.h \ - ../Src/Application/../LIB/STD_TYPES.h \ - ../Src/Application/../MCAL/MTIMER/MTIMER_Int.h \ - ../Src/Application/../MCAL/MGPIO/MGPIO_int.h \ - ../Src/Application/../MCAL/MGPIO/../../LIB/STD_TYPES.h \ - ../Src/Application/../HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h - -../Src/Application/Inc/Motion_Planing.h: - -../Src/Application/Inc/../../LIB/STD_TYPES.h: - -../Src/Application/Inc/../Inc/Scenario_Select.h: - -../Src/Application/../LIB/STD_TYPES.h: - -../Src/Application/../MCAL/MTIMER/MTIMER_Int.h: - -../Src/Application/../MCAL/MGPIO/MGPIO_int.h: - -../Src/Application/../MCAL/MGPIO/../../LIB/STD_TYPES.h: - -../Src/Application/../HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h: diff --git a/AutoParkingCar/Release/Src/Application/Motion_Planing.o b/AutoParkingCar/Release/Src/Application/Motion_Planing.o deleted file mode 100644 index ddbf2cfc4abc773c96cfea3e5649aa4ad4dfe157..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4716 zcma)8Z%iB65udeV#gQ)gj5ZfV+k1E9`+r;6j(zz?m8* zlTr6RSRXtUIz9T=HOP6_Y;Qi2mvS4j``?!r7v=tiAFjcbz-RTc+qw1lzgrjO<2f5& zCtr0|@r0XsJO3PifcNli3J&l#zKTD}`}rdZw(u_9H?Zn<(L1L!d1)Q`0pnU1udmwP zyncWE@^|I$0`B zJ@{BDxAL=o>|>d#t^Rr+JRa{E?H%hKZ_ZxZ+<55Xdq(qBSirJqEOv zG-S^>%H^wlJ3|fGf_yJ`#&Khf%aMi94eSlvr~B(~(;WX;zEkK`=CCMpyo2%oa<91d zXKSh7xlRu4#kJaKrEHycWu1T1)>($@{8>=Gow}~p75j9&JJfTs0c!?7=^me7yv$qk zheP=ST^0<4iQS3iov*!`^ ztP5S)JXUOQ=-@Ke%X*~%ey+>*-qBQ73M=dH%Ps`Vmzz%5->puSFVt>YzIgsbZR(dp zE4Ld%d-aO#erm-kl#2B$UGvWeu#a+q*4wwn*DcyyWjNP-0s22F>78fSk1+!KV0dt_ z&(k`5@7G8xZ!&L-2I$*HljHaK`B;U;X|J(u=XP*))_QIix0`F=8o9l;X5&qz zuEc1u;W1$ABWW$U*$7*VZp2m-wn0sa#RfYNJ9L{(*GRE~-Nd(>_;wTDVd6U!{;0l) z;!J9Mr-|=0#dDebE|b5~1s^sDk1&9e@Jl8!G~X-uQ-htCHTl1#`KhyNzzJ`ZU>Ce?;=ix? z-AcSl_{ik{qX{o-e9EC39&UYV!Yd|By+mBbUpL`R#B^$?vniexiAH{qK!=IdfaeOd!K9+KcMkx&T8zJqb0Z&UeNeajekn>lc>h-dAS7Fflz{X zLR`b@da!@Tk`mr*;fc7Ah$YVXBG4j1OB5zWDLf&hh1u|cK@UPWtXzBHvw^6tM`!2a zMUa`BE`q?>qAoJ@kt0a;4A5A*2ABa!=Nc%)jW@kk_DL(w<@(GfZj!n-=Vg@Vvr3Y>cl^?%i)PdVyGAtUxZB=;e zYst)`7&P|dL+A2YJnAX)yp?EU!=@>CJfH%fehuGrs_}OtCJsF`ACHeQUO(a|#S5a{ z81I%L9@T)w`x@%Tc%z8v|CkMy-z#V^#``&19kv{5`aJ}lm!P&f9K1096fVEQdIn0YLB;xheT zUy`@_1Rkx64W>Uv1L>^qDL>{TF4O7GHS#K+!mHPKbWUhEk@rniRemW3Jx%z7bEcT< z4dmffst@AOAcx0sZPV)7eZ)Wzrw{K?qxtAZTcYZ`hwiH^=>b;KL1PlirH=0 ze)Szz0OsC&T3)@rvon+Y5sjpZ#dH!fQ&U%!Xy(>kC1=|eS1H<#awnG^)0McY$3_$C zqOLC0Ez@Hf%E{Q6o=`^gMwEN0x$G5I%`?klmKs;{ zj#(>|6o)-1yJfqk=o7e3d>&E>yatn*`7#I^x@}XoXExH4Gn<5ePhgx*3MPEZr@3o5P#{IJ``MDMiv!+)va*kQJU#=}^1sL{V*aE|7 z+^130k9@1TR5?sore(owE_gCmVzdmni;f2w<{7ElLWLQ2(Qqqvoza%m7a7NOf;bG2 zBt8i+O?(QVh&*^2e>C?|)id+Ro)d71d)QMCG#nulw7lzrhLfUEP-{JiRNu> zA70 pqX2@=LjOjzZv;V_zbm@n;X{oJ@r z$Y4D?Fq|1TCdm|;NzIZuGEZ`3fh-!!-92@B)fRvOA732=km{L&!UNr5#Hl`Pz(kM7 z=s_t+_u&joCmvPX7*+rcSG0KO2j>kOiz}H6D;`9#4}e7vP01bHWfiG-gFsN$GB&7H+bTag0mJ*(xOg~S*!7B2G zQ2*nt|H9K}VCd(Cwi4S?P84;7F5j*Sv3JKwJ+1 diff --git a/AutoParkingCar/Release/Src/Application/Scenario_Select.su b/AutoParkingCar/Release/Src/Application/Scenario_Select.su deleted file mode 100644 index e69de29..0000000 diff --git a/AutoParkingCar/Release/Src/Application/subdir.mk b/AutoParkingCar/Release/Src/Application/subdir.mk deleted file mode 100644 index 2b795b0..0000000 --- a/AutoParkingCar/Release/Src/Application/subdir.mk +++ /dev/null @@ -1,39 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Src/Application/Car_Control.c \ -../Src/Application/Collision_Avoidance.c \ -../Src/Application/Motion_Planing.c \ -../Src/Application/Path_Tracking.c \ -../Src/Application/Scenario_Select.c - -OBJS += \ -./Src/Application/Car_Control.o \ -./Src/Application/Collision_Avoidance.o \ -./Src/Application/Motion_Planing.o \ -./Src/Application/Path_Tracking.o \ -./Src/Application/Scenario_Select.o - -C_DEPS += \ -./Src/Application/Car_Control.d \ -./Src/Application/Collision_Avoidance.d \ -./Src/Application/Motion_Planing.d \ -./Src/Application/Path_Tracking.d \ -./Src/Application/Scenario_Select.d - - -# Each subdirectory must supply rules for building sources it contributes -Src/Application/Car_Control.o: ../Src/Application/Car_Control.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/Application/Car_Control.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Src/Application/Collision_Avoidance.o: ../Src/Application/Collision_Avoidance.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/Application/Collision_Avoidance.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Src/Application/Motion_Planing.o: ../Src/Application/Motion_Planing.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/Application/Motion_Planing.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Src/Application/Path_Tracking.o: ../Src/Application/Path_Tracking.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/Application/Path_Tracking.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Src/Application/Scenario_Select.o: ../Src/Application/Scenario_Select.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/Application/Scenario_Select.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Release/Src/HAL/HCOMPASS/HAL_COMPASS.d b/AutoParkingCar/Release/Src/HAL/HCOMPASS/HAL_COMPASS.d deleted file mode 100644 index 468047b..0000000 --- a/AutoParkingCar/Release/Src/HAL/HCOMPASS/HAL_COMPASS.d +++ /dev/null @@ -1 +0,0 @@ -Src/HAL/HCOMPASS/HAL_COMPASS.o: ../Src/HAL/HCOMPASS/HAL_COMPASS.c diff --git a/AutoParkingCar/Release/Src/HAL/HCOMPASS/HAL_COMPASS.o b/AutoParkingCar/Release/Src/HAL/HCOMPASS/HAL_COMPASS.o deleted file mode 100644 index 8a5bca6df4f8ec2d4eeec399f3e514681c49d414..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 920 zcmah{%}T>S5S}${wSuTc@fTS|um!WGskGITrDzq5iq(UNNYbttuuV-?Q4o9qAHoOl zzN?ab_Kp11dR2qB<^KpuV(z|cULNw0?{55tg!UIQBS`XNb=iLPK%JXUS#44GzqMJsss^6OWU9W8m&Jb=GC9|p*tAvOm)(@?tTC>Souq>j0b#!^Z*L4K|3m!Yd zcF+nxve(MP4G3Vka2uEt1i)l~g#~}kvzFKC@GkOj)yx*ccbz-IgTBH30dts_GiPF6 z^k4iQQd?S#d1_04dFnM*kT-<-A8$3Tm+Y&0Ve02~wql+kgD7Rxr_hT&vai%VRP5P{ zq5$vcY$$+M%_nWL&j;dHR5^1NRlf3A?5jHTd&9(;BB52hZ}dW3 A?P>LAJoWyG*Qpa_i zD4021VY?kr*0CfSUC_0M0wBg=ekxAd(!9ke((Lh zpTGY%=9WZ`)_9S4raxK$b~5y7bBv_jJPnxl;f>0 zj1U?TIli6kNReLG87(F=rw|1{|_U>PQJn!7QH5h&7x#<(X+uPl`bC-*RzW?P} z&&QFyb6ecV{k?}k}6ML;+mn}{c(ojGq!FgmIoYu?z7yAJLVHBG;5L{{7iy z>2+nJpp;5VDLNG`=(1W|=XIq~u9d4QAHRS)Qy;)=0!JV#a-j^IfMG|nsvAl(Douj_ zM5om43HW<`r?}HxzjuH;!wqsn+%OmNg`N9u&H+EpoDZHKusnJ1kt$)2vy9m5!afKb z$@t&|;!}3cXGaux!SCYxO}=5X{C3plce(goCck8}y6mXU54iXNlRs>;j*iv~FPU|_ zjM!;jtkQfA?I`lX%ZDY5yl@hN=xL4VpLnxi%)-}A><8LPX2e}&06pP#7rx=bw_W%f z7q%}h=1K1-Y&0I4c@OL#JhpHJeJ^yu@93Ek|8EA+6F!NZsXvdc7ga(8&}e6SaCKfg zf^q#8q;xL5EEHkXfYB19)S|9zD5{aq)GIY5pOh<=OLFl;SeRYPo78+tEgK-sXHw~W zBdZvhvMNuS-!y8+VNYA%&;%&BsrqNG$L=yeTc+G#tH)5~jX ziVoTLvPp41-$+)~YvnbQv{Y8{CvCnxD(Uh{DtU}-)u`%u99hjVZYjMo2U0F2%`N8} znRg|}h>^J>SL%v`oz0~)U?>|}UZaJmfua_1nmU8Ho^)?KJpcpb`v6~V+_y6Tam&A9 zd3vw{g8)n9hX8Wq@xWan{|W%zk3a~3?v;lJXp-*-P|=58ZJ)WoS*sspY zi=OHzY36A>A;cimKH4zk0(wJl`*jxKdt`us&z}rJp;iL{Upax2!hfECLyGGx99J+G z`?!L+uJlX6wV-Csx!^*vxE(#yr|()n|Fb|Qj@NZ?6n-RcwVdS z=2=$;&S9Niu>a%5EIsFcX>XXZSN1$6y0Ohzh5H@tJ52YOIMnEWS!^^0rkBC^IyPoZ zFO3PO-Xqjo#T@BTU#3TIiBsAI*v8%FYUg@Ci<0nu#E0A@y_euHd@-OdTv^yng{Q CP?a43 diff --git a/AutoParkingCar/Release/Src/HAL/HMOTOR/HMOTOR.su b/AutoParkingCar/Release/Src/HAL/HMOTOR/HMOTOR.su deleted file mode 100644 index ee9e1fe..0000000 --- a/AutoParkingCar/Release/Src/HAL/HMOTOR/HMOTOR.su +++ /dev/null @@ -1,4 +0,0 @@ -HMOTOR.c:17:6:Increment_Pulse_CallBack 0 static -HMOTOR.c:24:6:HAL_MOTOR_Init 32 static -HMOTOR.c:46:6:HAL_MOTOR_MOVE 24 static -HMOTOR.c:70:6:HAL_MOTOR_STOP 8 static diff --git a/AutoParkingCar/Release/Src/HAL/HMOTOR/subdir.mk b/AutoParkingCar/Release/Src/HAL/HMOTOR/subdir.mk deleted file mode 100644 index 27db8ad..0000000 --- a/AutoParkingCar/Release/Src/HAL/HMOTOR/subdir.mk +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Src/HAL/HMOTOR/HMOTOR.c - -OBJS += \ -./Src/HAL/HMOTOR/HMOTOR.o - -C_DEPS += \ -./Src/HAL/HMOTOR/HMOTOR.d - - -# Each subdirectory must supply rules for building sources it contributes -Src/HAL/HMOTOR/HMOTOR.o: ../Src/HAL/HMOTOR/HMOTOR.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/HAL/HMOTOR/HMOTOR.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Release/Src/HAL/HSERVO/HSERVO_Prog.d b/AutoParkingCar/Release/Src/HAL/HSERVO/HSERVO_Prog.d deleted file mode 100644 index a8875f1..0000000 --- a/AutoParkingCar/Release/Src/HAL/HSERVO/HSERVO_Prog.d +++ /dev/null @@ -1,21 +0,0 @@ -Src/HAL/HSERVO/HSERVO_Prog.o: ../Src/HAL/HSERVO/HSERVO_Prog.c \ - ../Src/HAL/HSERVO/../../MCAL/MRCC/MRCC_Int.h \ - ../Src/HAL/HSERVO/../../MCAL/MGPIO/MGPIO_Int.h \ - ../Src/HAL/HSERVO/../../MCAL/MGPIO/../../LIB/STD_TYPES.h \ - ../Src/HAL/HSERVO/../../MCAL/MTIMER/MTIMER_Int.h \ - ../Src/HAL/HSERVO/HSERVO_Config.h ../Src/HAL/HSERVO/HSERVO_Int.h \ - ../Src/HAL/HSERVO/../../MCAl/MTIMER/MTIMER_Int.h - -../Src/HAL/HSERVO/../../MCAL/MRCC/MRCC_Int.h: - -../Src/HAL/HSERVO/../../MCAL/MGPIO/MGPIO_Int.h: - -../Src/HAL/HSERVO/../../MCAL/MGPIO/../../LIB/STD_TYPES.h: - -../Src/HAL/HSERVO/../../MCAL/MTIMER/MTIMER_Int.h: - -../Src/HAL/HSERVO/HSERVO_Config.h: - -../Src/HAL/HSERVO/HSERVO_Int.h: - -../Src/HAL/HSERVO/../../MCAl/MTIMER/MTIMER_Int.h: diff --git a/AutoParkingCar/Release/Src/HAL/HSERVO/HSERVO_Prog.o b/AutoParkingCar/Release/Src/HAL/HSERVO/HSERVO_Prog.o deleted file mode 100644 index b74e38751595c23e078914007dd1c8b56524d81a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1576 zcma)6%}*0S6rbrX1qw)Q#4iY$Zb)p6T}x?b@nHBY5Lsye<)DUa+Yy?yySQB%O-%F; z@IR2FXAg)s2_8Lo;UtL%Js1~nsGtcZ;(OgLY?~N;$(#4}o8P>hdF`XIsT8G@I6_H? z97lvOu~KP>S4@bskyb*J{+F$(#?bushaIvjo(NwZ9KJT!82_~9k%B404uAeWq~JAu zq~Vq=kJKKtb5aVujUE3WAT~YWrY&EJG9hT=g&<|S)>QX<3o6?UHEbT~o%Occ=BE{Y zJn6I55Z{9xUo2XK7Npmf(~XT5B+F`w?_2(j^^2j+b!mF6PZa)pJ)uis#Ex?U);ySl+<=ajw}OGIMP-elxnEV8nkQ%x>II1ufNB_qAb zXf(_ca-ZDG5EJc>#aPJT1+JEOnB5whQ7-dhhUaoT7fD1ihN@+kn8C~WQeM|stRHw1 zcgRo@E?MPjCQqmgZo`OfnEZZ3i4$*Iqtfj0c?04p+Ck3GBGKfxVcT+6FBZ85R4}WuYMMqqvtsfR9R7dO2{62W=Vk5xi{rh{gaxZO zXTs`n$bo|IjZ^V2Tof?%=i<)>WITP z0SPzXD)8Zc@R#vQ`7C?bwxsrtC2_)S!ju;fQP7fHrfdm6> i0ly6t&-H_1Z@_mXJFv+-ifkSXalG8PXAso)hqymWWc2(1 diff --git a/AutoParkingCar/Release/Src/HAL/HSERVO/HSERVO_Prog.su b/AutoParkingCar/Release/Src/HAL/HSERVO/HSERVO_Prog.su deleted file mode 100644 index 6c6cfa9..0000000 --- a/AutoParkingCar/Release/Src/HAL/HSERVO/HSERVO_Prog.su +++ /dev/null @@ -1,2 +0,0 @@ -HSERVO_Prog.c:18:6:HSERVO_vServoInit 8 static -HSERVO_Prog.c:70:6:HSERVO_vServoDeg 0 static diff --git a/AutoParkingCar/Release/Src/HAL/HSERVO/subdir.mk b/AutoParkingCar/Release/Src/HAL/HSERVO/subdir.mk deleted file mode 100644 index 80ae75d..0000000 --- a/AutoParkingCar/Release/Src/HAL/HSERVO/subdir.mk +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Src/HAL/HSERVO/HSERVO_Prog.c - -OBJS += \ -./Src/HAL/HSERVO/HSERVO_Prog.o - -C_DEPS += \ -./Src/HAL/HSERVO/HSERVO_Prog.d - - -# Each subdirectory must supply rules for building sources it contributes -Src/HAL/HSERVO/HSERVO_Prog.o: ../Src/HAL/HSERVO/HSERVO_Prog.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/HAL/HSERVO/HSERVO_Prog.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Release/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.d b/AutoParkingCar/Release/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.d deleted file mode 100644 index 2e92a09..0000000 --- a/AutoParkingCar/Release/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.d +++ /dev/null @@ -1,23 +0,0 @@ -Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o: \ - ../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.c \ - ../Src/HAL/HULTRA_SONIC/../../MCAL/MRCC/MRCC_Int.h \ - ../Src/HAL/HULTRA_SONIC/../../MCAL/MGPIO/MGPIO_int.h \ - g:\embedded\ systems\gp\autoparkingcar\src\lib\std_types.h \ - ../Src/HAL/HULTRA_SONIC/../../MCAL/MTIMER/MTIMER_Int.h \ - ../Src/HAL/HULTRA_SONIC/../../MCAL/MSTK/MSYSTICK_Int.h \ - ../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Config.h \ - ../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h - -../Src/HAL/HULTRA_SONIC/../../MCAL/MRCC/MRCC_Int.h: - -../Src/HAL/HULTRA_SONIC/../../MCAL/MGPIO/MGPIO_int.h: - -g:\embedded\ systems\gp\autoparkingcar\src\lib\std_types.h: - -../Src/HAL/HULTRA_SONIC/../../MCAL/MTIMER/MTIMER_Int.h: - -../Src/HAL/HULTRA_SONIC/../../MCAL/MSTK/MSYSTICK_Int.h: - -../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Config.h: - -../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h: diff --git a/AutoParkingCar/Release/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o b/AutoParkingCar/Release/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o deleted file mode 100644 index aa179498f80bc046c8618eb0a1db73df29839af1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2088 zcma)7&2Jl35TEDWIIi0?sYz*RT5G*jU;|zpr%GHTgpHGRt!A4jb|k*7wY{VZ{_1*d zwFtq93kMGT0bGg@M?i|ifxxBetrDe&=0>^TL;|UmDj{(o%+JzX8qfS@=Kbb< zu0LK`RT*Qzg+Ux1A%LGJoXo^I$HZY8jzT`#*$%2l)XC@Pc7NRy?u$p0uP&==uiZNH z=XU`)p@MYq*FOggz0f_Dn7$p5r(*_y4aj!}x1w$z=JcVCzYnxC4{^l)Ks)W7gCPGf;Ine81$i)F4?+_U2bpaq zi|Uk0JrgRECC95foC#G@LEhQRIP;^W&uoioNImA%&u5rxwU0j z<9s>0-85^Um0mBEi}{O{{<6`~uQj_+sW_Lh(lgWb5vVtNjS*+Tu$RrQjn^4xVZ4ZR&%#dvJVSZJ zPW}|Y5sIGxm?euv(V+#Ud#!2fRkXI{+RNO-_ho~E&shhh+UGj$w%I9)HFDI?9ne zi%NUZhT4`Tj;s?~V)SD`LRQ zcOMBPj1eErh4a0SzLzhKz`JJZNwS6N<(t9(NeN@bM>U-96ZDCX)=lyjf)8ES`K27` zXQ;S$9VduCyBIvr0a~gdAgGT diff --git a/AutoParkingCar/Release/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.su b/AutoParkingCar/Release/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.su deleted file mode 100644 index c82fabe..0000000 --- a/AutoParkingCar/Release/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.su +++ /dev/null @@ -1,3 +0,0 @@ -HULTRA_SONIC_Prog.c:17:6:HULTRA_vInitialize 16 static -HULTRA_SONIC_Prog.c:73:6:HULTRA_vSendTrigger 16 static -HULTRA_SONIC_Prog.c:86:6:HULTRA_vGetDistance 8 static diff --git a/AutoParkingCar/Release/Src/HAL/HULTRA_SONIC/subdir.mk b/AutoParkingCar/Release/Src/HAL/HULTRA_SONIC/subdir.mk deleted file mode 100644 index 6447c00..0000000 --- a/AutoParkingCar/Release/Src/HAL/HULTRA_SONIC/subdir.mk +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.c - -OBJS += \ -./Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o - -C_DEPS += \ -./Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.d - - -# Each subdirectory must supply rules for building sources it contributes -Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o: ../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Release/Src/MCAL/MEXTI/MEXTI_Prog.d b/AutoParkingCar/Release/Src/MCAL/MEXTI/MEXTI_Prog.d deleted file mode 100644 index f835f59..0000000 --- a/AutoParkingCar/Release/Src/MCAL/MEXTI/MEXTI_Prog.d +++ /dev/null @@ -1,14 +0,0 @@ -Src/MCAL/MEXTI/MEXTI_Prog.o: ../Src/MCAL/MEXTI/MEXTI_Prog.c \ - ../Src/MCAL/MEXTI/MEXTI_Config.h ../Src/MCAL/MEXTI/MEXTI_Private.h \ - ../Src/MCAL/MEXTI/../../LIB/BIT_MATH.h \ - ../Src/MCAL/MEXTI/../../LIB/STD_TYPES.h ../Src/MCAL/MEXTI/MEXTI_Int.h - -../Src/MCAL/MEXTI/MEXTI_Config.h: - -../Src/MCAL/MEXTI/MEXTI_Private.h: - -../Src/MCAL/MEXTI/../../LIB/BIT_MATH.h: - -../Src/MCAL/MEXTI/../../LIB/STD_TYPES.h: - -../Src/MCAL/MEXTI/MEXTI_Int.h: diff --git a/AutoParkingCar/Release/Src/MCAL/MEXTI/MEXTI_Prog.o b/AutoParkingCar/Release/Src/MCAL/MEXTI/MEXTI_Prog.o deleted file mode 100644 index e32715452aaca907c787972b412083bc6270f42d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4400 zcma)|rj(U|q}}e9#9I_dv3j#XUMrCdo20w-=&uM0{bfOUyE(zu&$0T<$qQ+)2tg zzu)h3zUO!E@7!}QAN0ot1VJFQ38bB@TZAlE>k(J4-nEk!vXcmF4@L1_F)ZG{&?Bsg zLMi24JVUm(oej0DIvu5nQi?nf?)k!>O?a<}hlEyNN_;@pJYny|T!g$Ngq(vyOLfWt zzSdPDR-^Yj^do!3WQT2R)MBF+D|BpIa@=rq)Gp0MYNEo9DDnLfJQbM@A;;^{;D|9`dX6B|Cxrxy+trapOYXb4i89v`7M>PDmT9eV?*q7E9Tq~yJN*X8)A(bUC+zJf{V?u=BT0_ z)qHEx_NNEjOS>RUoPhFuDD`j(+Tao>(`s)+2y4LR4kclq#o8c;(zLH! z%-V7&7n4a?P19~qdt6oyWs;mx{#w})YnXu?%EfV84&`DTb2vJ4#<`vYiQiqRj+G4h zFhhs0uS{!qX8g_{A-8Lg8|F;Fi}lrO5($T2klG`!yef@mv+2BaJe!l^qeDFbsjoB8 z)gA17E6{mjZc-_zGMM|idIG`D?qF9}htwzc$lVe$U3&uosXeErRVA->NMrj)hMrev z6YAuoI@#IRnaC-bWJ=1Z^IBfZW~9Jg(CK@V><>Z)imD_uBFHdwg|oSW`cCIiFL6Is zF;wZOa{HaN!sEgYv0ivWXb>8OCZXBcVt@YhYk)s?pOf7Cm-?|6nJC&0dl+nyvz=rc z<8d;UNL*apMSMVbEy`t$a3B&l$GdgD)}q|j$lxnDzJk-Q;CK(mdpLa$$5(QErOt;e zs?r+aKqOThU&ZB9#qre~U(NBxp-Cr+q=w^bbiRfH5VtoGXtqAvbbkGQvQZH#!+N|N zzg{_9MzNt)bsS&E@pYVjJ;&GU{7H+dw?>A31IIV${3jOG zV2upENsq5Po8XF!7J^P7O{QgZB6*Utn@OwA5%L`Le&QrAnl|eA;dvP`ZOqgU&%-nm zuORO;aS!>}v=8WfCHb1+tH@=>t|m838!PFD{qmb>W9C@RGGlv*3l0oCGmN;O)G>A~ z*~Qp(Bxu^FbiH~KHSG(!4fk`X|Mk(q@!?!{N=}lt0%@Bhk=Wsv_s7ODFkHxy_#5%? zKxBMAoXs59rgS`}WmI$Ke1Aqsq}9PpLCxh(%oV8nfR^9XZ{Yp&YKBJ{pQSgN)261> z9F>i~rrM@LdLybbX~6?&Wr~tvC7pg*NzM?=xNCfHK{=nFZcPtg&)a|%R;SDZrRL_SYs zbjVwk%ZM7~-cU3qxS@1R)LuX)U`{j2$V9CA&|)%CT2i}n)56N|rnW=#R*Bam8;Z?_ zn6k4WW&^MxW-G8EW>c^sZhNr74I2e3D05GqoXpP7;)5c?mx-(t3OOxtqM+tsZ#-&i z1P~s1IJt}lTajt>i()5uk)vM}JcluCyWod!<^SXGJmuF#A8mBqL*TG;6JXa;2zvSj zGX-NiR{-1o_MqHH9CsG%&Gf$DxQk$Krbo|fdjHVIvz<1&?$6+`=l2lo&DQ;suir@_GbJOw{IdyqqWH>cMNHoik>qk7M9dgp9<_$@;9 z`Z>MfE%f$tdJ8r^ydJ7I!Re*9&^yNIU9{=p*A3NskJCH7h2Gno-d8p~tP9oql+*ii z3%&E4-nTYA{5qm~mpHwvV4s3GZOCE!hSR%j)5HBr^{#Vz2jBt2cRX!W?*~rrs!b2S zuBhH0z}cVkWzY*zF_S~{A9LLBs+nV%|?g#{|!B>F!Vi4tg|gZx&Hu@&w=s) diff --git a/AutoParkingCar/Release/Src/MCAL/MEXTI/MEXTI_Prog.su b/AutoParkingCar/Release/Src/MCAL/MEXTI/MEXTI_Prog.su deleted file mode 100644 index 79669e4..0000000 --- a/AutoParkingCar/Release/Src/MCAL/MEXTI/MEXTI_Prog.su +++ /dev/null @@ -1,16 +0,0 @@ -MEXTI_Prog.c:20:6:SYSCFG_vConfigEXTI_Line 8 static -MEXTI_Prog.c:26:6:MEXTI_vEnableInterrupt 0 static -MEXTI_Prog.c:30:6:MEXTI_vDisableInterrupt 0 static -MEXTI_Prog.c:34:6:MEXTI_vEnableEvent 0 static -MEXTI_Prog.c:38:6:MEXTI_vDisableEvent 0 static -MEXTI_Prog.c:42:6:MEXTI_vInterruptTrigger 0 static -MEXTI_Prog.c:59:6:MEXTI_vSWevent 0 static -MEXTI_Prog.c:63:6:MEXTI_PtrReadInterruptFlag 0 static -MEXTI_Prog.c:68:6:MEXTI_vCallBack 0 static -MEXTI_Prog.c:75:6:EXTI0_IRQHandler 8 static -MEXTI_Prog.c:80:6:EXTI1_IRQHandler 8 static -MEXTI_Prog.c:85:6:EXTI2_IRQHandler 8 static -MEXTI_Prog.c:89:6:EXTI3_IRQHandler 8 static -MEXTI_Prog.c:93:6:EXTI4_IRQHandler 8 static -MEXTI_Prog.c:97:6:EXTI9_5_IRQHandler 16 static -MEXTI_Prog.c:119:6:EXTI15_10_IRQHandler 16 static diff --git a/AutoParkingCar/Release/Src/MCAL/MEXTI/subdir.mk b/AutoParkingCar/Release/Src/MCAL/MEXTI/subdir.mk deleted file mode 100644 index fe3fbc9..0000000 --- a/AutoParkingCar/Release/Src/MCAL/MEXTI/subdir.mk +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Src/MCAL/MEXTI/MEXTI_Prog.c - -OBJS += \ -./Src/MCAL/MEXTI/MEXTI_Prog.o - -C_DEPS += \ -./Src/MCAL/MEXTI/MEXTI_Prog.d - - -# Each subdirectory must supply rules for building sources it contributes -Src/MCAL/MEXTI/MEXTI_Prog.o: ../Src/MCAL/MEXTI/MEXTI_Prog.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/MCAL/MEXTI/MEXTI_Prog.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Release/Src/MCAL/MGPIO/MGPIO_Prog.d b/AutoParkingCar/Release/Src/MCAL/MGPIO/MGPIO_Prog.d deleted file mode 100644 index c806678..0000000 --- a/AutoParkingCar/Release/Src/MCAL/MGPIO/MGPIO_Prog.d +++ /dev/null @@ -1,14 +0,0 @@ -Src/MCAL/MGPIO/MGPIO_Prog.o: ../Src/MCAL/MGPIO/MGPIO_Prog.c \ - ../Src/MCAL/MGPIO/../../LIB/BIT_MATH.h \ - ../Src/MCAL/MGPIO/../../LIB/STD_TYPES.h ../Src/MCAL/MGPIO/MGPIO_Config.h \ - ../Src/MCAL/MGPIO/MGPIO_Private.h ../Src/MCAL/MGPIO/MGPIO_int.h - -../Src/MCAL/MGPIO/../../LIB/BIT_MATH.h: - -../Src/MCAL/MGPIO/../../LIB/STD_TYPES.h: - -../Src/MCAL/MGPIO/MGPIO_Config.h: - -../Src/MCAL/MGPIO/MGPIO_Private.h: - -../Src/MCAL/MGPIO/MGPIO_int.h: diff --git a/AutoParkingCar/Release/Src/MCAL/MGPIO/MGPIO_Prog.o b/AutoParkingCar/Release/Src/MCAL/MGPIO/MGPIO_Prog.o deleted file mode 100644 index 36b8fd2ed3740e6de0598bbb9ebfe23a235b0fc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2680 zcma)-U1%d!6vxkv}iXaFg_*8abU)JrL`XX6;=^|)fmOzDdtBWlAqUTQLrZd;L_L7@>&-wq( znS1W!-n{e7*)xO?V2wZ$4lRIo$Wa2b&X9y-5Cf8oT|U+peiD+gcI;{-AFnKdIPsAx z?@JIb#w)@-azM1P;_Z%@r~Ot3t^o)tNZ7-IN|M7)^hmp&BXT7FzDlNEt_)raYvcO> zFBR)K>XGtyIz*;3A^&^FAMbzumgo6f#Vz;w7w_|YfBdc|ez&;m#^1P4e6%fM^^rEn z^;{qyx4u{5Hi3Fh%-_X&|2j&&R~TUMk^4q^fsC-;Ouq&+ef z$&1&wtPfQ|3+#PnQ4LTzsePi~?2sujfAe2!id{}PIaSOVnoOP@+)b=~03*2LiG2_g zMq-V=$1!c(xYhaMAPhU(rL}iqWc&i^L@XI4)B$zf_@xt?99taR6=^*F4ifv4C>o+0 zPmCXFy!i9>>9tQW{-QduPe|6tqAvb9plQap7$05y^+tH%hi%Q1Lo+ltN7nd;TR-G9 z?I}5#d-i#GwN_hi%CFZN^2%yqCL_zfkxqKg6^1#@ z>yzN%Z|0|?=sStj7Q8arB4wnLuN8n@EUUl>+eC^shj*aUp z)Ko~?PaT4sFh8>=UmHPZrQ8n>wWzzb<^ZhELHt{Yd+_s zenDSvaXI?9vUY95DtVTWUAN6fRky88^GvH+vhnBvD9!U5wr=2PH@ahm&G6{ipx{Z@ zK{1+5P^d%c*6l5_kKa@3f2!Sr`^bl7dqscoUd3HYcMJLm?ndxRzwJ;;wT%t4ie=-K zrRcWZu#A>%Hu0q&v7JDU{w~>xJ-j2j3D`|D?sDv=;W>7HJ&qhbo&U!@;pX!`S4AId z?1nmx4)6MGv{eS-$T$P%UhWdwDt6WwcL5z#~S0Vpu@|R z(NGzLBjc`f+?U9$_ThfxxVy;h^x;O(kDuO}t_T2cdpN4m9>*_y7j-7hqOrgXm!T$Q yF-5P{X%IR_(DNvET1N~!y-C@-#VPFJU&D8F;x?LxHu`_#<-Wofon#_vZ2Aw@w7(qy diff --git a/AutoParkingCar/Release/Src/MCAL/MGPIO/MGPIO_Prog.su b/AutoParkingCar/Release/Src/MCAL/MGPIO/MGPIO_Prog.su deleted file mode 100644 index d85d04b..0000000 --- a/AutoParkingCar/Release/Src/MCAL/MGPIO/MGPIO_Prog.su +++ /dev/null @@ -1,8 +0,0 @@ -MGPIO_Prog.c:16:6:MGPIO_vSetPinMode 8 static -MGPIO_Prog.c:40:6:MGPIO_vSetPinOutPutType 0 static -MGPIO_Prog.c:65:6:MGPIO_vSetPinOutPutSpeed 8 static -MGPIO_Prog.c:89:6:MGPIO_vSetPinInPutType 8 static -MGPIO_Prog.c:113:4:MGPIO_u8GetPinValue 0 static -MGPIO_Prog.c:130:6:MGPIO_vSetPinValue 0 static -MGPIO_Prog.c:164:6:MGPIO_vSetPinAtomic 8 static -MGPIO_Prog.c:189:6:MGPIO_vSetAlternativeFunction 8 static diff --git a/AutoParkingCar/Release/Src/MCAL/MGPIO/subdir.mk b/AutoParkingCar/Release/Src/MCAL/MGPIO/subdir.mk deleted file mode 100644 index dc5ed27..0000000 --- a/AutoParkingCar/Release/Src/MCAL/MGPIO/subdir.mk +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Src/MCAL/MGPIO/MGPIO_Prog.c - -OBJS += \ -./Src/MCAL/MGPIO/MGPIO_Prog.o - -C_DEPS += \ -./Src/MCAL/MGPIO/MGPIO_Prog.d - - -# Each subdirectory must supply rules for building sources it contributes -Src/MCAL/MGPIO/MGPIO_Prog.o: ../Src/MCAL/MGPIO/MGPIO_Prog.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/MCAL/MGPIO/MGPIO_Prog.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Release/Src/MCAL/MI2C/MI2C_Prog.d b/AutoParkingCar/Release/Src/MCAL/MI2C/MI2C_Prog.d deleted file mode 100644 index de00eeb..0000000 --- a/AutoParkingCar/Release/Src/MCAL/MI2C/MI2C_Prog.d +++ /dev/null @@ -1,14 +0,0 @@ -Src/MCAL/MI2C/MI2C_Prog.o: ../Src/MCAL/MI2C/MI2C_Prog.c \ - ../Src/MCAL/MI2C/../../LIB/BIT_MATH.h \ - ../Src/MCAL/MI2C/../../LIB/STD_TYPES.h ../Src/MCAL/MI2C/MI2C_Config.h \ - ../Src/MCAL/MI2C/MI2C_Private.h ../Src/MCAL/MI2C/MI2C_int.h - -../Src/MCAL/MI2C/../../LIB/BIT_MATH.h: - -../Src/MCAL/MI2C/../../LIB/STD_TYPES.h: - -../Src/MCAL/MI2C/MI2C_Config.h: - -../Src/MCAL/MI2C/MI2C_Private.h: - -../Src/MCAL/MI2C/MI2C_int.h: diff --git a/AutoParkingCar/Release/Src/MCAL/MI2C/MI2C_Prog.o b/AutoParkingCar/Release/Src/MCAL/MI2C/MI2C_Prog.o deleted file mode 100644 index 84dd8ff39f0b07d836ac0a41261dc60c9e583c68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2624 zcma)8&2Jl35TCUjH;HRvoV0+`qK#98E8(r}RE>)`B-zl^Dn?ao1Z|4&+F9_T_=EK( z3IahS?x^C#hq!a#fGT>dS|pI*#sQ?rl{oPS1Q7`ii13@;ec6{SDvb29^P7*~do%lX zocEu9;gX^#Bt)Sc1&HX!xa%1??>=&Ll1@-0H@!P?rS_*<$h5P2N+i>`-d@@pja+XG zt);zOWM~Yn>^?0Gjm(=%dt;GIGXp=z^;c+ix_$5q-DSE+ZgMvf;;E3w^hpCb`#a4{ zL&=8oqHTSDXAo`Z*8O9D{oG&CEnc5N*R2nrM{=XLKfQaLnN`ZxtdHSIT{`&V?}M6k zEe_qfcdKUIhgP#D!9|0~#^@b!rqu1J-6ZEOsBTV$ez?`LW(>~H8ZB!LY_o3GY$J7t zRJPOXnuV$$d^W<_P$^NJ7U&hM8(1s4{;Zl?dGRH+-s^1))Yp5qTB}#*O6q*RR4A77 zZ1BE2Xv5b>+@-g>^{iF@v?l?vhPsjG2ZK2_tc1XhrF-U6;2Bcw9Xl&HnrpeWZT|pn@gy87h z4cR00qWna~D7k3tUrQ0SJ-6Kss0X?Blm(){;aB(2r!bj&VJgaN1-j$>QRO~)Ld zJO5jz5y|)1`+4);hny@X*Nh)0CRZ?Pyl62Gp9bV<@?UWUpHJSGza=4J;ynWcPoD+f z(I4^ndA@NBFW&D8mR!fXz`?xn;$R~FIg33@`tlP3g1Hye@dfO19XqIl&&Pd9V2L`ugD&rz0$6}e2*1I=!)Eir44Vp$INl~!U>}HQ9kYwZTX;Bb- z2QPgDpTIj`z#E}geG2s=AP9A4lap?8qXV-u-*>(_zDK> zM9PyGO2y(`EmL}Opw(Ts<7=;6Ppj1{IaAB)rjae^Z%qBT?^sfBgxf~WEa=&SVXSF+ zp5s}KG{%-`Y8g*-gyoAh?Zs}jvLU**a2(<2dENG`UbCfn;-u}j-JWJ{VV(R-*ezfq zmayzLFpg=w=z3DT)hnBjm`zq@BB{heY>{1K*P}PsO_pX$Y?EnU^%2*X2XG48r3MXL^8S246 zU%>a>9^ttFBpHbIR_@}}GEiXL9Y^>Rx}uWcVo;o}GXr!Aq5dQ{yH|Kp3x zYAdRDwUucd)gZfrehK|wI@;Uxduh(f)Hd%S5!T@tf#$DF>1s%jPSuc@zgMEs8J!=Z zfcmNB?SAS4Le&i7+bN EU*+b6w*UYD diff --git a/AutoParkingCar/Release/Src/MCAL/MIWDT/MIWDT_Prog.su b/AutoParkingCar/Release/Src/MCAL/MIWDT/MIWDT_Prog.su deleted file mode 100644 index 50bfd7a..0000000 --- a/AutoParkingCar/Release/Src/MCAL/MIWDT/MIWDT_Prog.su +++ /dev/null @@ -1,2 +0,0 @@ -MIWDT_Prog.c:21:6:MIWDG_vStart 0 static -MIWDT_Prog.c:44:6:MIWDG_vReload 0 static diff --git a/AutoParkingCar/Release/Src/MCAL/MIWDT/subdir.mk b/AutoParkingCar/Release/Src/MCAL/MIWDT/subdir.mk deleted file mode 100644 index 13c60d7..0000000 --- a/AutoParkingCar/Release/Src/MCAL/MIWDT/subdir.mk +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Src/MCAL/MIWDT/MIWDT_Prog.c - -OBJS += \ -./Src/MCAL/MIWDT/MIWDT_Prog.o - -C_DEPS += \ -./Src/MCAL/MIWDT/MIWDT_Prog.d - - -# Each subdirectory must supply rules for building sources it contributes -Src/MCAL/MIWDT/MIWDT_Prog.o: ../Src/MCAL/MIWDT/MIWDT_Prog.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/MCAL/MIWDT/MIWDT_Prog.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Release/Src/MCAL/MNVIC/MNVIC_Prog.d b/AutoParkingCar/Release/Src/MCAL/MNVIC/MNVIC_Prog.d deleted file mode 100644 index f5a7fd5..0000000 --- a/AutoParkingCar/Release/Src/MCAL/MNVIC/MNVIC_Prog.d +++ /dev/null @@ -1,14 +0,0 @@ -Src/MCAL/MNVIC/MNVIC_Prog.o: ../Src/MCAL/MNVIC/MNVIC_Prog.c \ - ../Src/MCAL/MNVIC/../../LIB/BIT_MATH.h \ - ../Src/MCAL/MNVIC/../../LIB/STD_TYPES.h ../Src/MCAL/MNVIC/MNVIC_Config.h \ - ../Src/MCAL/MNVIC/MNVIC_Private.h ../Src/MCAL/MNVIC/MNVIC_int.h - -../Src/MCAL/MNVIC/../../LIB/BIT_MATH.h: - -../Src/MCAL/MNVIC/../../LIB/STD_TYPES.h: - -../Src/MCAL/MNVIC/MNVIC_Config.h: - -../Src/MCAL/MNVIC/MNVIC_Private.h: - -../Src/MCAL/MNVIC/MNVIC_int.h: diff --git a/AutoParkingCar/Release/Src/MCAL/MNVIC/MNVIC_Prog.o b/AutoParkingCar/Release/Src/MCAL/MNVIC/MNVIC_Prog.o deleted file mode 100644 index 81b8e27fea1e1742d70c937602e3fc24e0019d94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2588 zcma)6-)|d55T4EXM@*WM*g;82)gEyWsi+Ufj$)U-I5Dl2q^_*Q@PbftjIL30FEPlPk5<6Ex;5cU^T{)aC9D&7jVQjioH2#m*5XLD8|?v*+ zW=Gandr9*AAo~jc;@ckbh1c(7De7h~nNDJ4+|%7p*$Ax{A44*+t!&J+aVK~YKJ^3+ z=%|T}*;~rx(A(3Ge*aTBIzKyoN&$GfU5GPyt`{DDd#4AcC!9V)`Vld zJNfL8yepG`9md#`LyD=aKkOYZ&lDf@jw2#3C>4wEstcv-@2geQYA>S#41zPI@_$Q5P)ULj2d!5a)v+P`G&VRp@7m42%f~S8wR_Ch(yjTYq@w*XYZGECZ2u}Mj zAf7}#<=H}>Mv4Mqi68FsXFOKe(;R+8;zuOD^Jv8)1)>r^D)FO&+Mg8|mH49)e^lbf zBz~;VpYT{QPa{QvF^NCc=MQS;;EK0u%+s9p;|RO?MW@`@Zbrvwa+ftpJXI5x`Nn8^ELRWdO(Eo{OtE$FY77 zTuf(-1Lj-4{=r)DM#VB4+78UyFkgpK)2!*u8{K@VQa0<{rR-m6>9rDg6&n8kHfY#xbkJ&@ z4rpZ1oZ<{+9&irjAMi?52>6C-;r9+zM8iJkC+r7mGvt-36j&+OiZa&ZTi15Xy*-YV z)Ud5;x@}uVt!wiRRrdeMEYj$0i>|UHEfd}F4VNdnq0FNgByZuM4)R~Ti^!4p9rQ%% zs*bElylaT*zY`*O4K(=U?IL~|?{kUw#RUaMH-uGyyPFcV~@(s3q zsuT4pvQr*}4{-SNc!ao$Lx{-tH#GR;-Sfqxjwa$AqwbG)5y6xQ=JE)hLA(Fn3W#Z) z5TR?XJ?%P(_o*P^OgtJn{NNjC3)g+bmjrM*1c@u&7~vioenCSV^*3=)9uqhySMjD$ ag`d#zD=Dr}91^OhpZ6Wsr6io_6Y4(>QD>6? diff --git a/AutoParkingCar/Release/Src/MCAL/MNVIC/MNVIC_Prog.su b/AutoParkingCar/Release/Src/MCAL/MNVIC/MNVIC_Prog.su deleted file mode 100644 index a9d43c8..0000000 --- a/AutoParkingCar/Release/Src/MCAL/MNVIC/MNVIC_Prog.su +++ /dev/null @@ -1,8 +0,0 @@ -MNVIC_Prog.c:18:6:MNVIC_vEnableInterrupt 0 static -MNVIC_Prog.c:24:6:MNVIC_vDisableInterrupt 0 static -MNVIC_Prog.c:31:6:MNVIC_vSetPendingFlag 0 static -MNVIC_Prog.c:37:6:MNVIC_vClearPendingFlag 0 static -MNVIC_Prog.c:43:4:MNVIC_u8ReadActiveFlag 0 static -MNVIC_Prog.c:51:6:MNVIC_vInitGrouping 0 static -MNVIC_Prog.c:57:6:MNVIC_vSetIntPriority 0 static -MNVIC_Prog.c:86:6:MNVIC_vTrigSoftwareInt 0 static diff --git a/AutoParkingCar/Release/Src/MCAL/MNVIC/subdir.mk b/AutoParkingCar/Release/Src/MCAL/MNVIC/subdir.mk deleted file mode 100644 index c11dcab..0000000 --- a/AutoParkingCar/Release/Src/MCAL/MNVIC/subdir.mk +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Src/MCAL/MNVIC/MNVIC_Prog.c - -OBJS += \ -./Src/MCAL/MNVIC/MNVIC_Prog.o - -C_DEPS += \ -./Src/MCAL/MNVIC/MNVIC_Prog.d - - -# Each subdirectory must supply rules for building sources it contributes -Src/MCAL/MNVIC/MNVIC_Prog.o: ../Src/MCAL/MNVIC/MNVIC_Prog.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/MCAL/MNVIC/MNVIC_Prog.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Release/Src/MCAL/MRCC/MRCC_Prog.d b/AutoParkingCar/Release/Src/MCAL/MRCC/MRCC_Prog.d deleted file mode 100644 index c06f297..0000000 --- a/AutoParkingCar/Release/Src/MCAL/MRCC/MRCC_Prog.d +++ /dev/null @@ -1,14 +0,0 @@ -Src/MCAL/MRCC/MRCC_Prog.o: ../Src/MCAL/MRCC/MRCC_Prog.c \ - ../Src/MCAL/MRCC/MRCC_Config.h ../Src/MCAL/MRCC/MRCC_Private.h \ - ../Src/MCAL/MRCC/../../LIB/BIT_MATH.h \ - ../Src/MCAL/MRCC/../../LIB/STD_TYPES.h ../Src/MCAL/MRCC/MRCC_Int.h - -../Src/MCAL/MRCC/MRCC_Config.h: - -../Src/MCAL/MRCC/MRCC_Private.h: - -../Src/MCAL/MRCC/../../LIB/BIT_MATH.h: - -../Src/MCAL/MRCC/../../LIB/STD_TYPES.h: - -../Src/MCAL/MRCC/MRCC_Int.h: diff --git a/AutoParkingCar/Release/Src/MCAL/MRCC/MRCC_Prog.o b/AutoParkingCar/Release/Src/MCAL/MRCC/MRCC_Prog.o deleted file mode 100644 index d7ac2a31fd4151041fd806d73e1ddc85059fe494..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1448 zcma)5O>fgc5S?{Cnv_;R8=y^5aidDO5;m?|H7*irizyM5AXHMREuh9u782#d!FCHs zNF2E$xb{ ztnV~Ge;_&G7j#p`cC}Mjky1yi`ecNiK=u-{qQ29JXe*t+Uypv-Mj!Y6p~X__cGv`I~u&WR7#Hj7tj%c9jP zt;%`Xa?Ez6COY(>?$+(Ls4byS{xPiSc+e&_tvV0|%Y|^vRZW_kkeaC*PRAAPF*=oQX+-}#suv~AOR+Ab{yV3}mn{~HOf#SYwd8UQgbAnvs z6}HU-1#gK7isibXFhcS740ebT(S4%)iQSZn-D=S`y5en8OwV)b*1ktw{GR`fDHO6Z z;-?w>*ZtM}7R-b?ehUV5{BB)FT?)s)bXP*Z=)SB^JoxRojzskRSpQl7cyQeo5>eep z#APnR%yn(7nU3|IMFzpEp!Ag6AAnk^FGyA46%eX`O08N!g(@Y2N~EHKJXC~pc6RLDiKF&JlbP?F zZ@xV#t#Cdcos%JJW^-Cc!45QY%8fE0!?DJ=UtP3`VZ zS8p?Fb4~0`t-&o?_fh8$Y-@G2Hm*D!J%4Ryyd~Nl{ruYOh7yJ$7#xZEqnrQ!w`p8j zoxhk}X?%3!V)i!v_eUj+QRHs+o68$lmFS~YS~kzAwWZzF6u&jUlKm9fE7_m$|4n2r z#ys)AS3U6u*#24tWibZVXf4%s;TmPX*Ibv+>)PRopTs>2yH1*Wv4Oe&gY99R{KYxv z9y>>hM>do;%mB?kmi?|<@a*mE=C5)b_aVUY#yrv5t~5=3nfPK~?HOC^61ByTP>KjV3Sj?A|cZwxtHaR^S zRK|ycfsxSgd%@wQ#f)a?D#HDN(O_tJBoqkjRmRm(bwnXfU|%q(_)B_T*UI`{<<#NC z^h^3eO3!5U%<%Yds-zXtS*4^`a^+mHpal1!&iENP9Kw7wT}$OaQgP^s6ibG_JUl%H z4K0n+O)g(Uhr3hil6vG`X}8oT^-BZN9`~UAyj#n2yaR4{u*v<@%Z?~vmpzPF7O)#y z93D5cA@){%EWX2rDL!Sx)gcaK@CbSyL6602dMtjZD&nb*Xdpv_px0pP9jUS!sw2kt z3Vg5dd={@gpT*f7LJGB&GrcB3uSw8j@tPis57A`Pn)tx%W$+1lK0%MgYkDkR)AI>> z&4OODpvNvrK1oKlv)(NN-x-ymRp7Up{9Z1I@mZE2)Siw7v{H{^ZnKwz_{IH zRC8v))fr2MP9ffDpN`M#65?I>RbW;>ziu<1nn*W1=iqnOLO7D4N8tD16~m0__Xzx6 zfiLdQZh_wi$I(OY{b_6+;D%Eco-(lq&RY1Gi5uV}?72}6Utpv8^p14kdH%}6bjCZN z3BGk;AN*`#I&&S+41YRs3&75XjA^xEMC3)4;0f%QA+z?~3x;4Xma*_p|? znNsmxH4Q@s3}qlP`&Ke?OdSdE(I_Bid2X?iIFZ)!`IMGE%RR~Es>c+nOlxIBFHIJ5 z22-xg=Cz7m!%HE?NaEdGPV2dfUV`b^%;alxm08`G$rawz@=H3KyA(1fJE)XxC3G#5(9=1+qGyh1hDJ*qnVU?! zeoQN5@|Y&#pnyjOJZ8scjeHXT`>+<&(;09bWVf0N4=UYmu9v}lOUeHtVe|(qKd9yR z7Yr?hy-{L)mXGjzWq^vGM-9|exeO{f)GalzyK9wD@snwb)T@ajyrm4bsG}HL{j4Oy z1F6(Paq2LHG6{@21*9kp?E z{|~U)^@b1}K_54+w}K8kFN?swH=K7_;9b~;_oKkOjy$@vxpBSk&|zQ46avbd)PK)S{K!puN8-Ivk~AFO}2~=sWx_=ffMiXAjbIce`CfoPyhe` diff --git a/AutoParkingCar/Release/Src/MCAL/MSPI/MSPI_Prog.su b/AutoParkingCar/Release/Src/MCAL/MSPI/MSPI_Prog.su deleted file mode 100644 index cdf958b..0000000 --- a/AutoParkingCar/Release/Src/MCAL/MSPI/MSPI_Prog.su +++ /dev/null @@ -1,13 +0,0 @@ -MSPI_Prog.c:20:6:MSPI_vMasterInit 0 static -MSPI_Prog.c:62:6:MSPI_vSlaveInit 0 static -MSPI_Prog.c:95:4:MSPI_u8MasterTransceiver 24 static -MSPI_Prog.c:136:4:MSPI_u8SlaveTransceiver 0 static -MSPI_Prog.c:165:6:MSPI_vEnableRxInt 0 static -MSPI_Prog.c:180:6:MSPI_vEnableTxInt 0 static -MSPI_Prog.c:198:6:MSPI_vSetTxCallBackFunc 0 static -MSPI_Prog.c:205:6:MSPI_vSetRxCallBackFunc 0 static -MSPI_Prog.c:213:4:MSPI_u8ReadRecievedData 0 static -MSPI_Prog.c:227:6:SPI1_IRQHandler 8 static -MSPI_Prog.c:237:6:SPI2_IRQHandler 0 static -MSPI_Prog.c:243:6:SPI3_IRQHandler 0 static -MSPI_Prog.c:249:6:SPI4_IRQHandler 0 static diff --git a/AutoParkingCar/Release/Src/MCAL/MSPI/subdir.mk b/AutoParkingCar/Release/Src/MCAL/MSPI/subdir.mk deleted file mode 100644 index 9cda7b4..0000000 --- a/AutoParkingCar/Release/Src/MCAL/MSPI/subdir.mk +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Src/MCAL/MSPI/MSPI_Prog.c - -OBJS += \ -./Src/MCAL/MSPI/MSPI_Prog.o - -C_DEPS += \ -./Src/MCAL/MSPI/MSPI_Prog.d - - -# Each subdirectory must supply rules for building sources it contributes -Src/MCAL/MSPI/MSPI_Prog.o: ../Src/MCAL/MSPI/MSPI_Prog.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/MCAL/MSPI/MSPI_Prog.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Release/Src/MCAL/MSTK/MSYSTICK_Prog.d b/AutoParkingCar/Release/Src/MCAL/MSTK/MSYSTICK_Prog.d deleted file mode 100644 index afb6120..0000000 --- a/AutoParkingCar/Release/Src/MCAL/MSTK/MSYSTICK_Prog.d +++ /dev/null @@ -1,15 +0,0 @@ -Src/MCAL/MSTK/MSYSTICK_Prog.o: ../Src/MCAL/MSTK/MSYSTICK_Prog.c \ - ../Src/MCAL/MSTK/MSYSTICK_Private.h \ - ../Src/MCAL/MSTK/../../LIB/BIT_MATH.h \ - ../Src/MCAL/MSTK/../../LIB/STD_TYPES.h \ - ../Src/MCAL/MSTK/MSYSTICK_Config.h ../Src/MCAL/MSTK/MSYSTICK_Int.h - -../Src/MCAL/MSTK/MSYSTICK_Private.h: - -../Src/MCAL/MSTK/../../LIB/BIT_MATH.h: - -../Src/MCAL/MSTK/../../LIB/STD_TYPES.h: - -../Src/MCAL/MSTK/MSYSTICK_Config.h: - -../Src/MCAL/MSTK/MSYSTICK_Int.h: diff --git a/AutoParkingCar/Release/Src/MCAL/MSTK/MSYSTICK_Prog.o b/AutoParkingCar/Release/Src/MCAL/MSTK/MSYSTICK_Prog.o deleted file mode 100644 index 87792e7d2f24635ee91a9da1c0a022ca75cd57b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2456 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 diff --git a/AutoParkingCar/Release/Src/MCAL/MUART/MUSART_Program.su b/AutoParkingCar/Release/Src/MCAL/MUART/MUSART_Program.su deleted file mode 100644 index 9493600..0000000 --- a/AutoParkingCar/Release/Src/MCAL/MUART/MUSART_Program.su +++ /dev/null @@ -1,7 +0,0 @@ -MUSART_Program.c:97:6:MUART_Receive_Data 0 static -MUSART_Program.c:102:11:Get_UART 0 static -MUSART_Program.c:26:6:MUART_Enable 8 static -MUSART_Program.c:59:6:MUART_Disable 8 static -MUSART_Program.c:65:6:MUART_Send_Byte 8 static -MUSART_Program.c:72:6:MUART_Send_Data 8 static -MUSART_Program.c:86:4:MUART_Receive_Byte 8 static diff --git a/AutoParkingCar/Release/Src/MCAL/MUART/subdir.mk b/AutoParkingCar/Release/Src/MCAL/MUART/subdir.mk deleted file mode 100644 index a0222ed..0000000 --- a/AutoParkingCar/Release/Src/MCAL/MUART/subdir.mk +++ /dev/null @@ -1,19 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Src/MCAL/MUART/MUSART_Program.c - -OBJS += \ -./Src/MCAL/MUART/MUSART_Program.o - -C_DEPS += \ -./Src/MCAL/MUART/MUSART_Program.d - - -# Each subdirectory must supply rules for building sources it contributes -Src/MCAL/MUART/MUSART_Program.o: ../Src/MCAL/MUART/MUSART_Program.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/MCAL/MUART/MUSART_Program.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Release/Src/main.d b/AutoParkingCar/Release/Src/main.d deleted file mode 100644 index 5d65c27..0000000 --- a/AutoParkingCar/Release/Src/main.d +++ /dev/null @@ -1,63 +0,0 @@ -Src/main.o: ../Src/main.c ../Src/MCAL/MRCC/MRCC_int.h \ - ../Src/MCAL/MGPIO/MGPIO_int.h ../Src/MCAL/MGPIO/../../LIB/STD_TYPES.h \ - ../Src/MCAL/MNVIC/MNVIC_int.h ../Src/MCAL/MEXTI/MEXTI_int.h \ - ../Src/MCAL/MEXTI/MEXTI_config.h ../Src/MCAL/MEXTI/MEXTI_Private.h \ - ../Src/MCAL/MEXTI/../../LIB/BIT_MATH.h \ - ../Src/MCAL/MEXTI/../../LIB/STD_TYPES.h ../Src/MCAL/MIWDT/MIWDT_int.h \ - ../Src/MCAL/MSTK/MSYSTICK_int.h ../Src/MCAL/MSPI/MSPI_int.h \ - ../Src/MCAL/MRCC/MRCC_private.h ../Src/MCAL/MRCC/../../LIB/BIT_MATH.h \ - ../Src/MCAL/MRCC/../../LIB/STD_TYPES.h \ - ../Src/MCAL/MUART/MUSART_Interface.h ../Src/MCAL/MUART/MUSART_Private.h \ - ../Src/MCAL/MUART/MUSART_Config.h ../Src/MCAL/MUART/MUSART_Private.h \ - ../Src/HAL/HMOTOR/HMOTOR.h ../Src/HAL/HMOTOR/../../LIB/STD_TYPES.h \ - ../Src/HAL/HSERVO/HSERVO_Int.h \ - ../Src/HAL/HSERVO/../../MCAl/MTIMER/MTIMER_Int.h \ - ../Src/MCAL/MTIMER/MTIMER_Int.h - -../Src/MCAL/MRCC/MRCC_int.h: - -../Src/MCAL/MGPIO/MGPIO_int.h: - -../Src/MCAL/MGPIO/../../LIB/STD_TYPES.h: - -../Src/MCAL/MNVIC/MNVIC_int.h: - -../Src/MCAL/MEXTI/MEXTI_int.h: - -../Src/MCAL/MEXTI/MEXTI_config.h: - -../Src/MCAL/MEXTI/MEXTI_Private.h: - -../Src/MCAL/MEXTI/../../LIB/BIT_MATH.h: - -../Src/MCAL/MEXTI/../../LIB/STD_TYPES.h: - -../Src/MCAL/MIWDT/MIWDT_int.h: - -../Src/MCAL/MSTK/MSYSTICK_int.h: - -../Src/MCAL/MSPI/MSPI_int.h: - -../Src/MCAL/MRCC/MRCC_private.h: - -../Src/MCAL/MRCC/../../LIB/BIT_MATH.h: - -../Src/MCAL/MRCC/../../LIB/STD_TYPES.h: - -../Src/MCAL/MUART/MUSART_Interface.h: - -../Src/MCAL/MUART/MUSART_Private.h: - -../Src/MCAL/MUART/MUSART_Config.h: - -../Src/MCAL/MUART/MUSART_Private.h: - -../Src/HAL/HMOTOR/HMOTOR.h: - -../Src/HAL/HMOTOR/../../LIB/STD_TYPES.h: - -../Src/HAL/HSERVO/HSERVO_Int.h: - -../Src/HAL/HSERVO/../../MCAl/MTIMER/MTIMER_Int.h: - -../Src/MCAL/MTIMER/MTIMER_Int.h: diff --git a/AutoParkingCar/Release/Src/main.o b/AutoParkingCar/Release/Src/main.o deleted file mode 100644 index c969c2919c0dc339c90d48074020d30cff086251..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1608 zcma)6TTc^F5T4U*xl}QL5Cn`_F42w!3wAOCXx? zAN(uo&oI$<-;Iwx7=19}%;`C{-4~tY%s1c6oZIY~z1ZB{VvK(bD67f#-Ohl^jIi2eK`j!`TW?(3=I!^e8r^BRHv%=7hwvbAjLxwM(d=F>0D zbi3u)Avch&WtPo+I-AdAmh_ylY-DxH$*h{Dp7MEv+W}wFk2dzLd%RiYj>DaFE?xC) zw|1iY{Inj_Jy$nZah=>#*vR7vY;ITUzzj4K1ZmD2+r z?$uq(b9le!&~CIjY;WvVtWvqOUlFTx=|Q=)M@6L?B=J)8O_F0EYC}jhA)Jw@OS~=d zu0&Jf1Hy5DEyC*n$Aq|uLpTZGOQi1@OQJG@^JZvQ5ktR&C(6Qi8iIjsVS`Z(0x-yd zit1uuCv8B{!xXPkji^O{ZW;%saa!wy5gUTxz<-0weS7W3$B49NV>|D-!v zz3w@gr(Sn7PxZ_l%%j@=E05|K-B;~}p}$>4b?(ihHm7&1M0FGShjFaSz!N+G)t*XE z9YlF_u98G`zIQT)AVjTqh>Z5lblgCBz57y(Mg<41)j|-GLFbwxh?GM@*n7VQI$AiW l*Qq~gU+OiwgE||U@EIq)B14K=51(pZ-bb9|sU$>|_XlPC*fanD diff --git a/AutoParkingCar/Release/Src/main.su b/AutoParkingCar/Release/Src/main.su deleted file mode 100644 index c85bde7..0000000 --- a/AutoParkingCar/Release/Src/main.su +++ /dev/null @@ -1,2 +0,0 @@ -main.c:22:6:test1 0 static -main.c:25:5:main 32 static diff --git a/AutoParkingCar/Release/Src/subdir.mk b/AutoParkingCar/Release/Src/subdir.mk deleted file mode 100644 index 2e205ac..0000000 --- a/AutoParkingCar/Release/Src/subdir.mk +++ /dev/null @@ -1,29 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../Src/main.c \ -../Src/syscalls.c \ -../Src/sysmem.c - -OBJS += \ -./Src/main.o \ -./Src/syscalls.o \ -./Src/sysmem.o - -C_DEPS += \ -./Src/main.d \ -./Src/syscalls.d \ -./Src/sysmem.d - - -# Each subdirectory must supply rules for building sources it contributes -Src/main.o: ../Src/main.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/main.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Src/syscalls.o: ../Src/syscalls.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/syscalls.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" -Src/sysmem.o: ../Src/sysmem.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -c -I../Inc -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/sysmem.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" - diff --git a/AutoParkingCar/Release/Src/syscalls.d b/AutoParkingCar/Release/Src/syscalls.d deleted file mode 100644 index a17a7f9..0000000 --- a/AutoParkingCar/Release/Src/syscalls.d +++ /dev/null @@ -1 +0,0 @@ -Src/syscalls.o: ../Src/syscalls.c diff --git a/AutoParkingCar/Release/Src/syscalls.o b/AutoParkingCar/Release/Src/syscalls.o deleted file mode 100644 index 912e1d707807fb304c9134cc188eaf37bce98f7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3812 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 S@Z#+eekTy "AutoParkingCar.list" - @echo 'Finished building: $@' - @echo ' ' - -AutoParkingCar.bin: $(EXECUTABLES) - arm-none-eabi-objcopy -O binary $(EXECUTABLES) "AutoParkingCar.bin" - @echo 'Finished building: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) * - -@echo ' ' - -secondary-outputs: $(SIZE_OUTPUT) $(OBJDUMP_LIST) $(OBJCOPY_BIN) - -.PHONY: all clean dependents -.SECONDARY: - --include ../makefile.targets diff --git a/AutoParkingCar/Release/objects.list b/AutoParkingCar/Release/objects.list deleted file mode 100644 index 225556c..0000000 --- a/AutoParkingCar/Release/objects.list +++ /dev/null @@ -1,23 +0,0 @@ -"Src/Application/Car_Control.o" -"Src/Application/Collision_Avoidance.o" -"Src/Application/Motion_Planing.o" -"Src/Application/Path_Tracking.o" -"Src/Application/Scenario_Select.o" -"Src/HAL/HCOMPASS/HAL_COMPASS.o" -"Src/HAL/HMOTOR/HMOTOR.o" -"Src/HAL/HSERVO/HSERVO_Prog.o" -"Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o" -"Src/MCAL/MEXTI/MEXTI_Prog.o" -"Src/MCAL/MGPIO/MGPIO_Prog.o" -"Src/MCAL/MI2C/MI2C_Prog.o" -"Src/MCAL/MIWDT/MIWDT_Prog.o" -"Src/MCAL/MNVIC/MNVIC_Prog.o" -"Src/MCAL/MRCC/MRCC_Prog.o" -"Src/MCAL/MSPI/MSPI_Prog.o" -"Src/MCAL/MSTK/MSYSTICK_Prog.o" -"Src/MCAL/MTIMER/MTIMER_Prog.o" -"Src/MCAL/MUART/MUSART_Program.o" -"Src/main.o" -"Src/syscalls.o" -"Src/sysmem.o" -"Startup/startup_stm32f401rctx.o" diff --git a/AutoParkingCar/Release/objects.mk b/AutoParkingCar/Release/objects.mk deleted file mode 100644 index 742c2da..0000000 --- a/AutoParkingCar/Release/objects.mk +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/AutoParkingCar/Release/sources.mk b/AutoParkingCar/Release/sources.mk deleted file mode 100644 index 4a9f5db..0000000 --- a/AutoParkingCar/Release/sources.mk +++ /dev/null @@ -1,39 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ELF_SRCS := -OBJ_SRCS := -S_SRCS := -C_SRCS := -S_UPPER_SRCS := -O_SRCS := -SIZE_OUTPUT := -OBJDUMP_LIST := -EXECUTABLES := -OBJS := -S_DEPS := -S_UPPER_DEPS := -C_DEPS := -OBJCOPY_BIN := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -Src/Application \ -Src/HAL/HCOMPASS \ -Src/HAL/HMOTOR \ -Src/HAL/HSERVO \ -Src/HAL/HULTRA_SONIC \ -Src/MCAL/MEXTI \ -Src/MCAL/MGPIO \ -Src/MCAL/MI2C \ -Src/MCAL/MIWDT \ -Src/MCAL/MNVIC \ -Src/MCAL/MRCC \ -Src/MCAL/MSPI \ -Src/MCAL/MSTK \ -Src/MCAL/MTIMER \ -Src/MCAL/MUART \ -Src \ -Startup \ - diff --git a/AutoParkingCar/STM32F401RCTX_FLASH.ld b/AutoParkingCar/STM32F401RCTX_FLASH.ld deleted file mode 100644 index e50e559..0000000 --- a/AutoParkingCar/STM32F401RCTX_FLASH.ld +++ /dev/null @@ -1,175 +0,0 @@ -/** - ****************************************************************************** - * @file LinkerScript.ld - * @author Auto-generated by STM32CubeIDE - * @brief Linker script for STM32F401RCTx Device from STM32F4 series - * 256Kbytes ROM - * 64Kbytes RAM - * - * Set heap size, stack size and stack location according - * to application requirements. - * - * Set memory bank area and size if external memory is used - ****************************************************************************** - * @attention - * - *

      © Copyright (c) 2020 STMicroelectronics. - * All rights reserved.

      - * - * This software component is licensed by ST under BSD 3-Clause license, - * the "License"; You may not use this file except in compliance with the - * License. You may obtain a copy of the License at: - * opensource.org/licenses/BSD-3-Clause - * - ****************************************************************************** - */ - -/* Entry Point */ -ENTRY(Reset_Handler) - -/* Highest address of the user mode stack */ -_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */ - -_Min_Heap_Size = 0x200; /* required amount of heap */ -_Min_Stack_Size = 0x400; /* required amount of stack */ - -/* Memories definition */ -MEMORY -{ - RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 64K - ROM (rx) : ORIGIN = 0x8000000, LENGTH = 256K -} - -/* Sections */ -SECTIONS -{ - /* The startup code into "ROM" Rom type memory */ - .isr_vector : - { - . = ALIGN(4); - KEEP(*(.isr_vector)) /* Startup code */ - . = ALIGN(4); - } >ROM - - /* The program code and other data into "ROM" Rom type memory */ - .text : - { - . = ALIGN(4); - *(.text) /* .text sections (code) */ - *(.text*) /* .text* sections (code) */ - *(.glue_7) /* glue arm to thumb code */ - *(.glue_7t) /* glue thumb to arm code */ - *(.eh_frame) - - KEEP (*(.init)) - KEEP (*(.fini)) - - . = ALIGN(4); - _etext = .; /* define a global symbols at end of code */ - } >ROM - - /* Constant data into "ROM" Rom type memory */ - .rodata : - { - . = ALIGN(4); - *(.rodata) /* .rodata sections (constants, strings, etc.) */ - *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ - . = ALIGN(4); - } >ROM - - .ARM.extab : { - . = ALIGN(4); - *(.ARM.extab* .gnu.linkonce.armextab.*) - . = ALIGN(4); - } >ROM - - .ARM : { - . = ALIGN(4); - __exidx_start = .; - *(.ARM.exidx*) - __exidx_end = .; - . = ALIGN(4); - } >ROM - - .preinit_array : - { - . = ALIGN(4); - PROVIDE_HIDDEN (__preinit_array_start = .); - KEEP (*(.preinit_array*)) - PROVIDE_HIDDEN (__preinit_array_end = .); - . = ALIGN(4); - } >ROM - - .init_array : - { - . = ALIGN(4); - PROVIDE_HIDDEN (__init_array_start = .); - KEEP (*(SORT(.init_array.*))) - KEEP (*(.init_array*)) - PROVIDE_HIDDEN (__init_array_end = .); - . = ALIGN(4); - } >ROM - - .fini_array : - { - . = ALIGN(4); - PROVIDE_HIDDEN (__fini_array_start = .); - KEEP (*(SORT(.fini_array.*))) - KEEP (*(.fini_array*)) - PROVIDE_HIDDEN (__fini_array_end = .); - . = ALIGN(4); - } >ROM - - /* Used by the startup to initialize data */ - _sidata = LOADADDR(.data); - - /* Initialized data sections into "RAM" Ram type memory */ - .data : - { - . = ALIGN(4); - _sdata = .; /* create a global symbol at data start */ - *(.data) /* .data sections */ - *(.data*) /* .data* sections */ - - . = ALIGN(4); - _edata = .; /* define a global symbol at data end */ - - } >RAM AT> ROM - - /* Uninitialized data section into "RAM" Ram type memory */ - . = ALIGN(4); - .bss : - { - /* This is used by the startup in order to initialize the .bss section */ - _sbss = .; /* define a global symbol at bss start */ - __bss_start__ = _sbss; - *(.bss) - *(.bss*) - *(COMMON) - - . = ALIGN(4); - _ebss = .; /* define a global symbol at bss end */ - __bss_end__ = _ebss; - } >RAM - - /* User_heap_stack section, used to check that there is enough "RAM" Ram type memory left */ - ._user_heap_stack : - { - . = ALIGN(8); - PROVIDE ( end = . ); - PROVIDE ( _end = . ); - . = . + _Min_Heap_Size; - . = . + _Min_Stack_Size; - . = ALIGN(8); - } >RAM - - /* Remove information from the compiler libraries */ - /DISCARD/ : - { - libc.a ( * ) - libm.a ( * ) - libgcc.a ( * ) - } - - .ARM.attributes 0 : { *(.ARM.attributes) } -} diff --git a/AutoParkingCar/Src/HAL/HSERVO/HSERVO_Int.h b/AutoParkingCar/Src/HAL/HSERVO/HSERVO_Int.h deleted file mode 100644 index 9109b07..0000000 --- a/AutoParkingCar/Src/HAL/HSERVO/HSERVO_Int.h +++ /dev/null @@ -1,74 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Amr ElMaghraby */ -/* Version : V1.0.3 */ -/* Data : 28 Dec 2023 */ -/* Description : HSERVO_Interface.h --> implementations */ -/* Module Features : */ -/* 01- HSERVO_vServoInit */ -/* 02- HSERVO_vServoDeg */ -/*******************************************************************************************************/ - -/*******************************************************************************************************/ -/* guard of file will call on time in .c */ -/*******************************************************************************************************/ -#ifndef HAL_HSERVO_HSERVO_INT_H_ -#define HAL_HSERVO_HSERVO_INT_H_ - -/*******************************************************************************************************/ -/* enum for Servo number */ -/*******************************************************************************************************/ -typedef enum { - SERVO1, SERVO2, SERVO3, SERVO4, SERVO5, - SERVO6, SERVO7, SERVO8, SERVO9, SERVO10, - SERVO11, SERVO12, SERVO13, SERVO14, SERVO15, - SERVO16, SERVO17, SERVO18, SERVO19, SERVO20, -} Enum_SERVO_NUM; -/*******************************************************************************************************/ - -/*******************************************************************************************************/ -/* APIs */ -/*******************************************************************************************************/ - -/*******************************************************************************************************/ -/* 01- HSERVO_vServoInit */ -/*-----------------------------------------------------------------------------------------------------*/ -/** - * @Description Initializes a servo motor connected to a specific TIMER and channel for PWM control. - * @param Copy_u8ServoNum: The enumeration representing the servo motor number. - * Expected to be Enum_SERVO_NUM ==> {SERVO1, SERVO2, ... , SERVO20} - * @param Copy_u8TimerNum: The enumeration representing the TIMER to be used for PWM control. - * Expected to be Enum_TIMER_NUM ==> { TIMER1, TIMER2, TIMER3, TIMER4, - * TIMER5, TIMER9, TIMER10, TIMER11 } - * @param Copy_u8ChannelNum: The channel number on the selected TIMER to which the servo is connected. - * Expected to be Enum_TIMER_CHs ==> { CH1, CH2, CH3, CH4 } - * - * @note This function configures the specified TIMER and channel to generate PWM signals suitable for - * servo control.Ensure that the corresponding timer and channel are available for servo control - * on the selected microcontroller. - * Additionally, adjust the servo-specific parameters, such as PWM frequency and duty cycle, - * based on servo specifications. - */ -void HSERVO_vServoInit(Enum_SERVO_NUM Copy_u8ServoNum,Enum_TIMER_NUM Copy_u8TimerNum,u8 Copy_u8ChannelNum); -/******************************************************************************************************/ - -/******************************************************************************************************/ -/* 01- HSERVO_vServoDeg */ -/*----------------------------------------------------------------------------------------------------*/ -/** - * @brief Moves a servo motor to a specified angle in degrees. - * @param Copy_u8ServoNum: The enumeration representing the servo motor number. - * Expected to be Enum_SERVO_NUM ==> {SERVO1, SERVO2, ... , SERVO20} - * @param Copy_u8Deg: The desired angle in degrees to which the servo motor should be positioned. - * Expected to be { ANY ANGLE from ( ZERO_POS - 45 ) to ( ZERO_POS + 45 ) } - * NOTE: Input Angle input will be added to ZERO_POS Macros defined - * in configuration file. - * @return: void - * @note This function adjusts the PWM signal sent to the specified servo motor to achieve the desired angle. - * Ensure that the servo motor is initialized using HSERVO_vServoInit before calling this function. - * Additionally, consider the servo motor specifications and adjust the PWM signal parameters accordingly. - * PWM signal: 20msec FullTime (0.5 => 2.5msec) Duty Cycle for 0 to 180 Deg. - */ -void HSERVO_vServoDeg(Enum_SERVO_NUM Copy_u8ServoNum,s8 Copy_s8Deg); -/******************************************************************************************************/ - -#endif /* HAL_HSERVO_HSERVO_INT_H_ */ diff --git a/AutoParkingCar/Src/main.c b/AutoParkingCar/Src/main.c deleted file mode 100644 index b6b7776..0000000 --- a/AutoParkingCar/Src/main.c +++ /dev/null @@ -1,71 +0,0 @@ - -#include"MCAL/MRCC/MRCC_int.h" -#include"MCAL/MGPIO/MGPIO_int.h" -#include"MCAL/MNVIC/MNVIC_int.h" -#include"MCAL/MEXTI/MEXTI_int.h" -#include"MCAL/MEXTI/MEXTI_config.h" -#include"MCAL/MEXTI/MEXTI_Private.h" -#include"MCAL/MIWDT/MIWDT_int.h" -#include"MCAL/MSTK/MSYSTICK_int.h" -#include"MCAL/MSPI/MSPI_int.h" -#include"MCAL/MRCC/MRCC_private.h" -#include"MCAL/MUART/MUSART_Interface.h" -#include"MCAL/MUART/MUSART_Config.h" -#include"MCAL/MUART/MUSART_Private.h" -#include"HAL/HMOTOR/HMOTOR.h" -#include"HAL/HSERVO/HSERVO_Int.h" -#include "MCAL/MTIMER/MTIMER_Int.h" - - -#define SCB_CPACR (*((volatile u32 *)0xE000ED88)) - - -int main (void){ - - SCB_CPACR |= ((3UL << 10 * 2) | (3UL << 11 * 2)); - MRCC_vInit(); - MRCC_vEnableClock(GPIOA_EN); - MRCC_vEnableClock(GPIOB_EN); - MRCC_vEnableClock(GPIOC_EN); - MRCC_vEnableClock(SYSCFG_EN); - MRCC_vEnableClock(USART1_EN); - MRCC_vEnableClock(USART2_EN); - MRCC_vEnableClock(USART6_EN); - MRCC_vEnableClock(TIM1_EN); - - - //*************************test******************************* - MGPIO_vSetPinMode(PORTC, PIN13, OUTPUT); - MGPIO_vSetPinValue(PORTC, PIN13, LOW); - //******************************************************** - - //***************************Motor***************************** - HAL_MOTOR_Init(PORTA, PIN1, PORTA, PIN2, PORTA, PIN8, - MGPIO_ALTFUNC_TIM12, EXTI8,NVIC_EXTI9_5); - HAL_MOTOR_STOP(); - /***********************************************************************/ - /****************switch***************************/ - MGPIO_vSetPinMode(PORTB, PIN4, INPUT); - MGPIO_vSetPinValue(PORTB, PIN4, LOW); - /*******************************Servo***********************************/ -// -// if(MGPIO_u8GetPinValue(PORTB, PIN4)){ - HSERVO_vServoInit(SERVO1, TIMER1, CH3); - HSERVO_vServoDeg(SERVO1, 0); - HAL_MOTOR_MOVE(FORWARD, 70 , 100); - HSERVO_vServoDeg(SERVO1, -30); - HAL_MOTOR_MOVE(BACKWARD, 50 , 60); - HSERVO_vServoDeg(SERVO1, 30); - HAL_MOTOR_MOVE(BACKWARD, 50 , 60); - HSERVO_vServoDeg(SERVO1, 0); - HAL_MOTOR_MOVE(FORWARD, 50 , 30); -// } - while(1){ - // HSERVO_vServoDeg(SERVO1, 30); - // MSYSTICK_vDelayms(100); - // HSERVO_vServoDeg(SERVO1, -30); - // MSYSTICK_vDelayms(100); - } - -} - diff --git a/AutoParkingCar/Src/syscalls.c b/AutoParkingCar/Src/syscalls.c deleted file mode 100644 index d190edf..0000000 --- a/AutoParkingCar/Src/syscalls.c +++ /dev/null @@ -1,176 +0,0 @@ -/** - ****************************************************************************** - * @file syscalls.c - * @author Auto-generated by STM32CubeIDE - * @brief STM32CubeIDE Minimal System calls file - * - * For more information about which c-functions - * need which of these lowlevel functions - * please consult the Newlib libc-manual - ****************************************************************************** - * @attention - * - * Copyright (c) 2020-2023 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ - -/* Includes */ -#include -#include -#include -#include -#include -#include -#include -#include - - -/* Variables */ -extern int __io_putchar(int ch) __attribute__((weak)); -extern int __io_getchar(void) __attribute__((weak)); - - -char *__env[1] = { 0 }; -char **environ = __env; - - -/* Functions */ -void initialise_monitor_handles() -{ -} - -int _getpid(void) -{ - return 1; -} - -int _kill(int pid, int sig) -{ - (void)pid; - (void)sig; - errno = EINVAL; - return -1; -} - -void _exit (int status) -{ - _kill(status, -1); - while (1) {} /* Make sure we hang here */ -} - -__attribute__((weak)) int _read(int file, char *ptr, int len) -{ - (void)file; - int DataIdx; - - for (DataIdx = 0; DataIdx < len; DataIdx++) - { - *ptr++ = __io_getchar(); - } - - return len; -} - -__attribute__((weak)) int _write(int file, char *ptr, int len) -{ - (void)file; - int DataIdx; - - for (DataIdx = 0; DataIdx < len; DataIdx++) - { - __io_putchar(*ptr++); - } - return len; -} - -int _close(int file) -{ - (void)file; - return -1; -} - - -int _fstat(int file, struct stat *st) -{ - (void)file; - st->st_mode = S_IFCHR; - return 0; -} - -int _isatty(int file) -{ - (void)file; - return 1; -} - -int _lseek(int file, int ptr, int dir) -{ - (void)file; - (void)ptr; - (void)dir; - return 0; -} - -int _open(char *path, int flags, ...) -{ - (void)path; - (void)flags; - /* Pretend like we always fail */ - return -1; -} - -int _wait(int *status) -{ - (void)status; - errno = ECHILD; - return -1; -} - -int _unlink(char *name) -{ - (void)name; - errno = ENOENT; - return -1; -} - -int _times(struct tms *buf) -{ - (void)buf; - return -1; -} - -int _stat(char *file, struct stat *st) -{ - (void)file; - st->st_mode = S_IFCHR; - return 0; -} - -int _link(char *old, char *new) -{ - (void)old; - (void)new; - errno = EMLINK; - return -1; -} - -int _fork(void) -{ - errno = EAGAIN; - return -1; -} - -int _execve(char *name, char **argv, char **env) -{ - (void)name; - (void)argv; - (void)env; - errno = ENOMEM; - return -1; -} diff --git a/AutoParkingCar/Src/sysmem.c b/AutoParkingCar/Src/sysmem.c deleted file mode 100644 index 921ecef..0000000 --- a/AutoParkingCar/Src/sysmem.c +++ /dev/null @@ -1,79 +0,0 @@ -/** - ****************************************************************************** - * @file sysmem.c - * @author Generated by STM32CubeIDE - * @brief STM32CubeIDE System Memory calls file - * - * For more information about which C functions - * need which of these lowlevel functions - * please consult the newlib libc manual - ****************************************************************************** - * @attention - * - * Copyright (c) 2023 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ - -/* Includes */ -#include -#include - -/** - * Pointer to the current high watermark of the heap usage - */ -static uint8_t *__sbrk_heap_end = NULL; - -/** - * @brief _sbrk() allocates memory to the newlib heap and is used by malloc - * and others from the C library - * - * @verbatim - * ############################################################################ - * # .data # .bss # newlib heap # MSP stack # - * # # # # Reserved by _Min_Stack_Size # - * ############################################################################ - * ^-- RAM start ^-- _end _estack, RAM end --^ - * @endverbatim - * - * This implementation starts allocating at the '_end' linker symbol - * The '_Min_Stack_Size' linker symbol reserves a memory for the MSP stack - * The implementation considers '_estack' linker symbol to be RAM end - * NOTE: If the MSP stack, at any point during execution, grows larger than the - * reserved size, please increase the '_Min_Stack_Size'. - * - * @param incr Memory size - * @return Pointer to allocated memory - */ -void *_sbrk(ptrdiff_t incr) -{ - extern uint8_t _end; /* Symbol defined in the linker script */ - extern uint8_t _estack; /* Symbol defined in the linker script */ - extern uint32_t _Min_Stack_Size; /* Symbol defined in the linker script */ - const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size; - const uint8_t *max_heap = (uint8_t *)stack_limit; - uint8_t *prev_heap_end; - - /* Initialize heap end at first call */ - if (NULL == __sbrk_heap_end) - { - __sbrk_heap_end = &_end; - } - - /* Protect heap from growing into the reserved MSP stack */ - if (__sbrk_heap_end + incr > max_heap) - { - errno = ENOMEM; - return (void *)-1; - } - - prev_heap_end = __sbrk_heap_end; - __sbrk_heap_end += incr; - - return (void *)prev_heap_end; -} diff --git a/AutoParkingCar/Startup/startup_stm32f401rctx.s b/AutoParkingCar/Startup/startup_stm32f401rctx.s deleted file mode 100644 index b780e16..0000000 --- a/AutoParkingCar/Startup/startup_stm32f401rctx.s +++ /dev/null @@ -1,372 +0,0 @@ -/** - ****************************************************************************** - * @file startup_stm32f401rctx.s - * @author Auto-generated by STM32CubeIDE - * @brief STM32F401RCTx device vector table for GCC toolchain. - * This module performs: - * - Set the initial SP - * - Set the initial PC == Reset_Handler, - * - Set the vector table entries with the exceptions ISR address - * - Branches to main in the C library (which eventually - * calls main()). - ****************************************************************************** - * @attention - * - *

      © Copyright (c) 2020 STMicroelectronics. - * All rights reserved.

      - * - * This software component is licensed by ST under BSD 3-Clause license, - * the "License"; You may not use this file except in compliance with the - * License. You may obtain a copy of the License at: - * opensource.org/licenses/BSD-3-Clause - * - ****************************************************************************** - */ - -.syntax unified -.cpu cortex-m4 -.fpu softvfp -.thumb - -.global g_pfnVectors -.global Default_Handler - -/* start address for the initialization values of the .data section. -defined in linker script */ -.word _sidata -/* start address for the .data section. defined in linker script */ -.word _sdata -/* end address for the .data section. defined in linker script */ -.word _edata -/* start address for the .bss section. defined in linker script */ -.word _sbss -/* end address for the .bss section. defined in linker script */ -.word _ebss - -/** - * @brief This is the code that gets called when the processor first - * starts execution following a reset event. Only the absolutely - * necessary set is performed, after which the application - * supplied main() routine is called. - * @param None - * @retval : None -*/ - - .section .text.Reset_Handler - .weak Reset_Handler - .type Reset_Handler, %function -Reset_Handler: - ldr r0, =_estack - mov sp, r0 /* set stack pointer */ -/* Call the clock system intitialization function.*/ - bl SystemInit - -/* Copy the data segment initializers from flash to SRAM */ - ldr r0, =_sdata - ldr r1, =_edata - ldr r2, =_sidata - movs r3, #0 - b LoopCopyDataInit - -CopyDataInit: - ldr r4, [r2, r3] - str r4, [r0, r3] - adds r3, r3, #4 - -LoopCopyDataInit: - adds r4, r0, r3 - cmp r4, r1 - bcc CopyDataInit - -/* Zero fill the bss segment. */ - ldr r2, =_sbss - ldr r4, =_ebss - movs r3, #0 - b LoopFillZerobss - -FillZerobss: - str r3, [r2] - adds r2, r2, #4 - -LoopFillZerobss: - cmp r2, r4 - bcc FillZerobss - -/* Call static constructors */ - bl __libc_init_array -/* Call the application's entry point.*/ - bl main - -LoopForever: - b LoopForever - - .size Reset_Handler, .-Reset_Handler - -/** - * @brief This is the code that gets called when the processor receives an - * unexpected interrupt. This simply enters an infinite loop, preserving - * the system state for examination by a debugger. - * - * @param None - * @retval : None -*/ - .section .text.Default_Handler,"ax",%progbits -Default_Handler: -Infinite_Loop: - b Infinite_Loop - .size Default_Handler, .-Default_Handler - -/****************************************************************************** -* -* The STM32F401RCTx vector table. Note that the proper constructs -* must be placed on this to ensure that it ends up at physical address -* 0x0000.0000. -* -******************************************************************************/ - .section .isr_vector,"a",%progbits - .type g_pfnVectors, %object - .size g_pfnVectors, .-g_pfnVectors - -g_pfnVectors: - .word _estack - .word Reset_Handler - .word NMI_Handler - .word HardFault_Handler - .word MemManage_Handler - .word BusFault_Handler - .word UsageFault_Handler - .word 0 - .word 0 - .word 0 - .word 0 - .word SVC_Handler - .word DebugMon_Handler - .word 0 - .word PendSV_Handler - .word SysTick_Handler - .word 0 /* Reserved */ - .word PVD_IRQHandler /* PVD through EXTI line detection interrupt */ - .word TAMP_STAMP_IRQHandler /* Tamper and TimeStamp interrupts through the EXTI line */ - .word RTC_WKUP_IRQHandler /* RTC Wakeup interrupt through the EXTI line */ - .word FLASH_IRQHandler /* FLASH global interrupt */ - .word RCC_IRQHandler /* RCC global interrupt */ - .word EXTI0_IRQHandler /* EXTI Line0 interrupt */ - .word EXTI1_IRQHandler /* EXTI Line1 interrupt */ - .word EXTI2_IRQHandler /* EXTI Line2 interrupt */ - .word EXTI3_IRQHandler /* EXTI Line3 interrupt */ - .word EXTI4_IRQHandler /* EXTI Line4 interrupt */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word ADC_IRQHandler /* ADC1 global interrupt */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word EXTI9_5_IRQHandler /* EXTI Line[9:5] interrupts */ - .word TIM1_BRK_TIM9_IRQHandler /* TIM1 Break interrupt and TIM9 global interrupt */ - .word TIM1_UP_TIM10_IRQHandler /* TIM1 Update interrupt and TIM10 global interrupt */ - .word TIM1_TRG_COM_TIM11_IRQHandler /* TIM1 Trigger and Commutation interrupts and TIM11 global interrupt */ - .word TIM1_CC_IRQHandler /* TIM1 Capture Compare interrupt */ - .word TIM2_IRQHandler /* TIM2 global interrupt */ - .word TIM3_IRQHandler /* TIM3 global interrupt */ - .word 0 /* Reserved */ - .word I2C1_EV_IRQHandler /* I2C1 event interrupt */ - .word I2C1_ER_IRQHandler /* I2C1 error interrupt */ - .word I2C2_EV_IRQHandler /* I2C2 event interrupt */ - .word I2C2_ER_IRQHandler /* I2C2 error interrupt */ - .word SPI1_IRQHandler /* SPI1 global interrupt */ - .word SPI2_IRQHandler /* SPI2 global interrupt */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word EXTI15_10_IRQHandler /* EXTI Line[15:10] interrupts */ - .word RTC_Alarm_IRQHandler /* RTC Alarms (A and B) through EXTI line interrupt */ - .word OTG_FS_WKUP_IRQHandler /* USB On-The-Go FS Wakeup through EXTI line interrupt */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word SDIO_IRQHandler /* SDIO global interrupt */ - .word 0 /* Reserved */ - .word SPI3_IRQHandler /* SPI3 global interrupt */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word OTG_FS_IRQHandler /* USB On The Go FS global interrupt */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word I2C3_EV_IRQHandler /* I2C3 event interrupt */ - .word I2C3_ER_IRQHandler /* I2C3 error interrupt */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word FPU_IRQHandler /* Floating point interrupt */ - .word 0 /* Reserved */ - .word 0 /* Reserved */ - .word SPI4_IRQHandler /* SPI4 global interrupt */ - -/******************************************************************************* -* -* Provide weak aliases for each Exception handler to the Default_Handler. -* As they are weak aliases, any function with the same name will override -* this definition. -* -*******************************************************************************/ - - .weak NMI_Handler - .thumb_set NMI_Handler,Default_Handler - - .weak HardFault_Handler - .thumb_set HardFault_Handler,Default_Handler - - .weak MemManage_Handler - .thumb_set MemManage_Handler,Default_Handler - - .weak BusFault_Handler - .thumb_set BusFault_Handler,Default_Handler - - .weak UsageFault_Handler - .thumb_set UsageFault_Handler,Default_Handler - - .weak SVC_Handler - .thumb_set SVC_Handler,Default_Handler - - .weak DebugMon_Handler - .thumb_set DebugMon_Handler,Default_Handler - - .weak PendSV_Handler - .thumb_set PendSV_Handler,Default_Handler - - .weak SysTick_Handler - .thumb_set SysTick_Handler,Default_Handler - - .weak PVD_IRQHandler - .thumb_set PVD_IRQHandler,Default_Handler - - .weak TAMP_STAMP_IRQHandler - .thumb_set TAMP_STAMP_IRQHandler,Default_Handler - - .weak RTC_WKUP_IRQHandler - .thumb_set RTC_WKUP_IRQHandler,Default_Handler - - .weak FLASH_IRQHandler - .thumb_set FLASH_IRQHandler,Default_Handler - - .weak RCC_IRQHandler - .thumb_set RCC_IRQHandler,Default_Handler - - .weak EXTI0_IRQHandler - .thumb_set EXTI0_IRQHandler,Default_Handler - - .weak EXTI1_IRQHandler - .thumb_set EXTI1_IRQHandler,Default_Handler - - .weak EXTI2_IRQHandler - .thumb_set EXTI2_IRQHandler,Default_Handler - - .weak EXTI3_IRQHandler - .thumb_set EXTI3_IRQHandler,Default_Handler - - .weak EXTI4_IRQHandler - .thumb_set EXTI4_IRQHandler,Default_Handler - - .weak ADC_IRQHandler - .thumb_set ADC_IRQHandler,Default_Handler - - .weak EXTI9_5_IRQHandler - .thumb_set EXTI9_5_IRQHandler,Default_Handler - - .weak TIM1_BRK_TIM9_IRQHandler - .thumb_set TIM1_BRK_TIM9_IRQHandler,Default_Handler - - .weak TIM1_UP_TIM10_IRQHandler - .thumb_set TIM1_UP_TIM10_IRQHandler,Default_Handler - - .weak TIM1_TRG_COM_TIM11_IRQHandler - .thumb_set TIM1_TRG_COM_TIM11_IRQHandler,Default_Handler - - .weak TIM1_CC_IRQHandler - .thumb_set TIM1_CC_IRQHandler,Default_Handler - - .weak TIM2_IRQHandler - .thumb_set TIM2_IRQHandler,Default_Handler - - .weak TIM3_IRQHandler - .thumb_set TIM3_IRQHandler,Default_Handler - - .weak I2C1_EV_IRQHandler - .thumb_set I2C1_EV_IRQHandler,Default_Handler - - .weak I2C1_ER_IRQHandler - .thumb_set I2C1_ER_IRQHandler,Default_Handler - - .weak I2C2_EV_IRQHandler - .thumb_set I2C2_EV_IRQHandler,Default_Handler - - .weak I2C2_ER_IRQHandler - .thumb_set I2C2_ER_IRQHandler,Default_Handler - - .weak SPI1_IRQHandler - .thumb_set SPI1_IRQHandler,Default_Handler - - .weak SPI2_IRQHandler - .thumb_set SPI2_IRQHandler,Default_Handler - - .weak EXTI15_10_IRQHandler - .thumb_set EXTI15_10_IRQHandler,Default_Handler - - .weak RTC_Alarm_IRQHandler - .thumb_set RTC_Alarm_IRQHandler,Default_Handler - - .weak OTG_FS_WKUP_IRQHandler - .thumb_set OTG_FS_WKUP_IRQHandler,Default_Handler - - .weak SDIO_IRQHandler - .thumb_set SDIO_IRQHandler,Default_Handler - - .weak SPI3_IRQHandler - .thumb_set SPI3_IRQHandler,Default_Handler - - .weak OTG_FS_IRQHandler - .thumb_set OTG_FS_IRQHandler,Default_Handler - - .weak I2C3_EV_IRQHandler - .thumb_set I2C3_EV_IRQHandler,Default_Handler - - .weak I2C3_ER_IRQHandler - .thumb_set I2C3_ER_IRQHandler,Default_Handler - - .weak FPU_IRQHandler - .thumb_set FPU_IRQHandler,Default_Handler - - .weak SPI4_IRQHandler - .thumb_set SPI4_IRQHandler,Default_Handler - - .weak SystemInit - -/************************ (C) COPYRIGHT STMicroelectonics *****END OF FILE****/ diff --git a/AutoParkingCar/Src/Application/Car_Control.c b/BlackPill/Src/APP/Car_Control.c similarity index 91% rename from AutoParkingCar/Src/Application/Car_Control.c rename to BlackPill/Src/APP/Car_Control.c index 25fe97a..4b9b5ff 100644 --- a/AutoParkingCar/Src/Application/Car_Control.c +++ b/BlackPill/Src/APP/Car_Control.c @@ -15,7 +15,7 @@ void CAR_CONTROL_Move(f32 distance, s8 direction) { u8 speed = 0; - HAL_MOTOR_MOVE(direction, speed); + // HAL_MOTOR_MOVE(direction, speed); } void CAR_CONTROL_Steer(s8 angle) { @@ -40,7 +40,7 @@ void CAR_CONTROL_Steer(s8 angle) { for (u8 i = 5; i < angle; i+5) { angle = 85 + i; - HSERVO_vServoDeg(angle,angle,angle); + // HSERVO_vServoDeg(angle,angle,angle); } } else @@ -52,7 +52,7 @@ void CAR_CONTROL_Steer(s8 angle) { for (u8 i = -5; i > angle; i-5) { angle = 85 + i; - HSERVO_vServoDeg(angle,angle,angle); + // HSERVO_vServoDeg(angle,angle,angle); } } diff --git a/AutoParkingCar/Src/Application/Collision_Avoidance.c b/BlackPill/Src/APP/Collision_Avoidance.c similarity index 100% rename from AutoParkingCar/Src/Application/Collision_Avoidance.c rename to BlackPill/Src/APP/Collision_Avoidance.c diff --git a/AutoParkingCar/Src/Application/Inc/Car_Control.h b/BlackPill/Src/APP/Inc/Car_Control.h similarity index 100% rename from AutoParkingCar/Src/Application/Inc/Car_Control.h rename to BlackPill/Src/APP/Inc/Car_Control.h diff --git a/AutoParkingCar/Src/Application/Inc/Collision_Avoidance.h b/BlackPill/Src/APP/Inc/Collision_Avoidance.h similarity index 100% rename from AutoParkingCar/Src/Application/Inc/Collision_Avoidance.h rename to BlackPill/Src/APP/Inc/Collision_Avoidance.h diff --git a/AutoParkingCar/Src/Application/Inc/Motion_Planing.h b/BlackPill/Src/APP/Inc/Motion_Planing.h similarity index 100% rename from AutoParkingCar/Src/Application/Inc/Motion_Planing.h rename to BlackPill/Src/APP/Inc/Motion_Planing.h diff --git a/AutoParkingCar/Src/Application/Inc/Path_Tracking.h b/BlackPill/Src/APP/Inc/Path_Tracking.h similarity index 100% rename from AutoParkingCar/Src/Application/Inc/Path_Tracking.h rename to BlackPill/Src/APP/Inc/Path_Tracking.h diff --git a/AutoParkingCar/Src/Application/Inc/Scenario_Select.h b/BlackPill/Src/APP/Inc/Scenario_Select.h similarity index 100% rename from AutoParkingCar/Src/Application/Inc/Scenario_Select.h rename to BlackPill/Src/APP/Inc/Scenario_Select.h diff --git a/AutoParkingCar/Src/Application/Motion_Planing.c b/BlackPill/Src/APP/Motion_Planing.c similarity index 95% rename from AutoParkingCar/Src/Application/Motion_Planing.c rename to BlackPill/Src/APP/Motion_Planing.c index 741c019..b63f212 100644 --- a/AutoParkingCar/Src/Application/Motion_Planing.c +++ b/BlackPill/Src/APP/Motion_Planing.c @@ -71,7 +71,8 @@ void Scan_Process (u8 Scanned_Area[], u8 speed) for (int i=0;i<100;i++) { HULTRA_vSendTrigger(PORTB, PIN12); - HULTRA_vGetDistance(&Distance1, TIMER1, CH2); + // TODO : fix this + //HULTRA_vGetDistance(&Distance1, TIMER1, CH2); Scanned_Area[i]=(u8)Distance1; if (((u8)Distance1 > Car_width) && ((u8)Distance1 < Car_Length) ) { @@ -104,7 +105,8 @@ void Scan(u8 Scanned_Area[]) for (int i=0;i<100;i++) { HULTRA_vSendTrigger(PORTB, PIN12); - HULTRA_vGetDistance(&Distance1, TIMER1, CH2); + // TODO : fix this + HULTRA_vGetDistance(ULTRA_SONIC1,&Distance1); Scanned_Area[i]=(u8)Distance1; } } diff --git a/AutoParkingCar/Src/Application/Path_Tracking.c b/BlackPill/Src/APP/Path_Tracking.c similarity index 100% rename from AutoParkingCar/Src/Application/Path_Tracking.c rename to BlackPill/Src/APP/Path_Tracking.c diff --git a/AutoParkingCar/Src/Application/Scenario_Select.c b/BlackPill/Src/APP/Scenario_Select.c similarity index 100% rename from AutoParkingCar/Src/Application/Scenario_Select.c rename to BlackPill/Src/APP/Scenario_Select.c diff --git a/AutoParkingCar/Src/HAL/.gitkeep b/BlackPill/Src/HAL/.gitkeep similarity index 100% rename from AutoParkingCar/Src/HAL/.gitkeep rename to BlackPill/Src/HAL/.gitkeep diff --git a/AutoParkingCar/Src/HAL/HCOMPASS/HAL_COMPASS.c b/BlackPill/Src/HAL/HCOMPASS/HAL_COMPASS.c similarity index 100% rename from AutoParkingCar/Src/HAL/HCOMPASS/HAL_COMPASS.c rename to BlackPill/Src/HAL/HCOMPASS/HAL_COMPASS.c diff --git a/AutoParkingCar/Src/HAL/HCOMPASS/HAL_COMPASS.h b/BlackPill/Src/HAL/HCOMPASS/HAL_COMPASS.h similarity index 100% rename from AutoParkingCar/Src/HAL/HCOMPASS/HAL_COMPASS.h rename to BlackPill/Src/HAL/HCOMPASS/HAL_COMPASS.h diff --git a/AutoParkingCar/Src/HAL/HMOTOR/HMOTOR.c b/BlackPill/Src/HAL/HMOTOR/HMOTOR.c similarity index 100% rename from AutoParkingCar/Src/HAL/HMOTOR/HMOTOR.c rename to BlackPill/Src/HAL/HMOTOR/HMOTOR.c diff --git a/AutoParkingCar/Src/HAL/HMOTOR/HMOTOR.h b/BlackPill/Src/HAL/HMOTOR/HMOTOR.h similarity index 100% rename from AutoParkingCar/Src/HAL/HMOTOR/HMOTOR.h rename to BlackPill/Src/HAL/HMOTOR/HMOTOR.h diff --git a/AutoParkingCar/Src/HAL/HSERVO/HSERVO_Config.h b/BlackPill/Src/HAL/HSERVO/HSERVO_Config.h similarity index 100% rename from AutoParkingCar/Src/HAL/HSERVO/HSERVO_Config.h rename to BlackPill/Src/HAL/HSERVO/HSERVO_Config.h diff --git a/Src/HAL/HSERVO/HSERVO_Int.h b/BlackPill/Src/HAL/HSERVO/HSERVO_Int.h similarity index 92% rename from Src/HAL/HSERVO/HSERVO_Int.h rename to BlackPill/Src/HAL/HSERVO/HSERVO_Int.h index 9109b07..cdabb77 100644 --- a/Src/HAL/HSERVO/HSERVO_Int.h +++ b/BlackPill/Src/HAL/HSERVO/HSERVO_Int.h @@ -14,6 +14,11 @@ #ifndef HAL_HSERVO_HSERVO_INT_H_ #define HAL_HSERVO_HSERVO_INT_H_ +/*******************************************************************************************************/ +/* Include files needed for HSERVO_Int.h */ +/*******************************************************************************************************/ +#include"../../LIB/STD_TYPES.h" //Standard Types Lib +#include "../../MCAL/MTIMER/MTIMER_Int.h" // TIMER (Timer Control) /*******************************************************************************************************/ /* enum for Servo number */ /*******************************************************************************************************/ diff --git a/AutoParkingCar/Src/HAL/HSERVO/HSERVO_Prog.c b/BlackPill/Src/HAL/HSERVO/HSERVO_Prog.c similarity index 100% rename from AutoParkingCar/Src/HAL/HSERVO/HSERVO_Prog.c rename to BlackPill/Src/HAL/HSERVO/HSERVO_Prog.c diff --git a/AutoParkingCar/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Config.h b/BlackPill/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Config.h similarity index 100% rename from AutoParkingCar/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Config.h rename to BlackPill/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Config.h diff --git a/AutoParkingCar/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h b/BlackPill/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h similarity index 93% rename from AutoParkingCar/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h rename to BlackPill/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h index 2dbc27c..b1effeb 100644 --- a/AutoParkingCar/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h +++ b/BlackPill/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h @@ -21,6 +21,11 @@ #ifndef HAL_HULTRA_SONIC_HULTRA_SONIC_INT_H_ #define HAL_HULTRA_SONIC_HULTRA_SONIC_INT_H_ +/*******************************************************************************************************/ +/* Include files needed for HULTRA_SONIC_Int.h */ +/*******************************************************************************************************/ +#include"../../LIB/STD_TYPES.h" //Standard Types Lib +#include "../../MCAL/MTIMER/MTIMER_Int.h" // TIMER (Timer Control) /********************************************************************************************************/ /* Enum for ULTRASONIC Numbering */ /********************************************************************************************************/ diff --git a/AutoParkingCar/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.c b/BlackPill/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.c similarity index 100% rename from AutoParkingCar/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.c rename to BlackPill/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.c diff --git a/AutoParkingCar/Src/LIB/BIT_MATH.h b/BlackPill/Src/LIB/BIT_MATH.h similarity index 100% rename from AutoParkingCar/Src/LIB/BIT_MATH.h rename to BlackPill/Src/LIB/BIT_MATH.h diff --git a/AutoParkingCar/Src/LIB/STD_TYPES.h b/BlackPill/Src/LIB/STD_TYPES.h similarity index 100% rename from AutoParkingCar/Src/LIB/STD_TYPES.h rename to BlackPill/Src/LIB/STD_TYPES.h diff --git a/AutoParkingCar/Src/MCAL/.gitkeep b/BlackPill/Src/MCAL/.gitkeep similarity index 100% rename from AutoParkingCar/Src/MCAL/.gitkeep rename to BlackPill/Src/MCAL/.gitkeep diff --git a/AutoParkingCar/Src/MCAL/MEXTI/MEXTI_Config.h b/BlackPill/Src/MCAL/MEXTI/MEXTI_Config.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MEXTI/MEXTI_Config.h rename to BlackPill/Src/MCAL/MEXTI/MEXTI_Config.h diff --git a/AutoParkingCar/Src/MCAL/MEXTI/MEXTI_Int.h b/BlackPill/Src/MCAL/MEXTI/MEXTI_Int.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MEXTI/MEXTI_Int.h rename to BlackPill/Src/MCAL/MEXTI/MEXTI_Int.h diff --git a/AutoParkingCar/Src/MCAL/MEXTI/MEXTI_Private.h b/BlackPill/Src/MCAL/MEXTI/MEXTI_Private.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MEXTI/MEXTI_Private.h rename to BlackPill/Src/MCAL/MEXTI/MEXTI_Private.h diff --git a/AutoParkingCar/Src/MCAL/MEXTI/MEXTI_Prog.c b/BlackPill/Src/MCAL/MEXTI/MEXTI_Prog.c similarity index 100% rename from AutoParkingCar/Src/MCAL/MEXTI/MEXTI_Prog.c rename to BlackPill/Src/MCAL/MEXTI/MEXTI_Prog.c diff --git a/AutoParkingCar/Src/MCAL/MGPIO/MGPIO_Config.h b/BlackPill/Src/MCAL/MGPIO/MGPIO_Config.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MGPIO/MGPIO_Config.h rename to BlackPill/Src/MCAL/MGPIO/MGPIO_Config.h diff --git a/AutoParkingCar/Src/MCAL/MGPIO/MGPIO_Private.h b/BlackPill/Src/MCAL/MGPIO/MGPIO_Private.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MGPIO/MGPIO_Private.h rename to BlackPill/Src/MCAL/MGPIO/MGPIO_Private.h diff --git a/AutoParkingCar/Src/MCAL/MGPIO/MGPIO_Prog.c b/BlackPill/Src/MCAL/MGPIO/MGPIO_Prog.c similarity index 100% rename from AutoParkingCar/Src/MCAL/MGPIO/MGPIO_Prog.c rename to BlackPill/Src/MCAL/MGPIO/MGPIO_Prog.c diff --git a/AutoParkingCar/Src/MCAL/MGPIO/MGPIO_int.h b/BlackPill/Src/MCAL/MGPIO/MGPIO_int.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MGPIO/MGPIO_int.h rename to BlackPill/Src/MCAL/MGPIO/MGPIO_int.h diff --git a/AutoParkingCar/Src/MCAL/MI2C/MI2C_Config.h b/BlackPill/Src/MCAL/MI2C/MI2C_Config.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MI2C/MI2C_Config.h rename to BlackPill/Src/MCAL/MI2C/MI2C_Config.h diff --git a/AutoParkingCar/Src/MCAL/MI2C/MI2C_Private.h b/BlackPill/Src/MCAL/MI2C/MI2C_Private.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MI2C/MI2C_Private.h rename to BlackPill/Src/MCAL/MI2C/MI2C_Private.h diff --git a/AutoParkingCar/Src/MCAL/MI2C/MI2C_Prog.c b/BlackPill/Src/MCAL/MI2C/MI2C_Prog.c similarity index 100% rename from AutoParkingCar/Src/MCAL/MI2C/MI2C_Prog.c rename to BlackPill/Src/MCAL/MI2C/MI2C_Prog.c diff --git a/AutoParkingCar/Src/MCAL/MI2C/MI2C_int.h b/BlackPill/Src/MCAL/MI2C/MI2C_int.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MI2C/MI2C_int.h rename to BlackPill/Src/MCAL/MI2C/MI2C_int.h diff --git a/AutoParkingCar/Src/MCAL/MIWDT/MIWDT_Config.h b/BlackPill/Src/MCAL/MIWDT/MIWDT_Config.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MIWDT/MIWDT_Config.h rename to BlackPill/Src/MCAL/MIWDT/MIWDT_Config.h diff --git a/AutoParkingCar/Src/MCAL/MIWDT/MIWDT_Private.h b/BlackPill/Src/MCAL/MIWDT/MIWDT_Private.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MIWDT/MIWDT_Private.h rename to BlackPill/Src/MCAL/MIWDT/MIWDT_Private.h diff --git a/AutoParkingCar/Src/MCAL/MIWDT/MIWDT_Prog.c b/BlackPill/Src/MCAL/MIWDT/MIWDT_Prog.c similarity index 100% rename from AutoParkingCar/Src/MCAL/MIWDT/MIWDT_Prog.c rename to BlackPill/Src/MCAL/MIWDT/MIWDT_Prog.c diff --git a/AutoParkingCar/Src/MCAL/MIWDT/MIWDT_int.h b/BlackPill/Src/MCAL/MIWDT/MIWDT_int.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MIWDT/MIWDT_int.h rename to BlackPill/Src/MCAL/MIWDT/MIWDT_int.h diff --git a/AutoParkingCar/Src/MCAL/MNVIC/MNVIC_Config.h b/BlackPill/Src/MCAL/MNVIC/MNVIC_Config.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MNVIC/MNVIC_Config.h rename to BlackPill/Src/MCAL/MNVIC/MNVIC_Config.h diff --git a/AutoParkingCar/Src/MCAL/MNVIC/MNVIC_Private.h b/BlackPill/Src/MCAL/MNVIC/MNVIC_Private.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MNVIC/MNVIC_Private.h rename to BlackPill/Src/MCAL/MNVIC/MNVIC_Private.h diff --git a/AutoParkingCar/Src/MCAL/MNVIC/MNVIC_Prog.c b/BlackPill/Src/MCAL/MNVIC/MNVIC_Prog.c similarity index 100% rename from AutoParkingCar/Src/MCAL/MNVIC/MNVIC_Prog.c rename to BlackPill/Src/MCAL/MNVIC/MNVIC_Prog.c diff --git a/AutoParkingCar/Src/MCAL/MNVIC/MNVIC_int.h b/BlackPill/Src/MCAL/MNVIC/MNVIC_int.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MNVIC/MNVIC_int.h rename to BlackPill/Src/MCAL/MNVIC/MNVIC_int.h diff --git a/AutoParkingCar/Src/MCAL/MRCC/MRCC_Config.h b/BlackPill/Src/MCAL/MRCC/MRCC_Config.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MRCC/MRCC_Config.h rename to BlackPill/Src/MCAL/MRCC/MRCC_Config.h diff --git a/AutoParkingCar/Src/MCAL/MRCC/MRCC_Int.h b/BlackPill/Src/MCAL/MRCC/MRCC_Int.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MRCC/MRCC_Int.h rename to BlackPill/Src/MCAL/MRCC/MRCC_Int.h diff --git a/AutoParkingCar/Src/MCAL/MRCC/MRCC_Private.h b/BlackPill/Src/MCAL/MRCC/MRCC_Private.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MRCC/MRCC_Private.h rename to BlackPill/Src/MCAL/MRCC/MRCC_Private.h diff --git a/AutoParkingCar/Src/MCAL/MRCC/MRCC_Prog.c b/BlackPill/Src/MCAL/MRCC/MRCC_Prog.c similarity index 100% rename from AutoParkingCar/Src/MCAL/MRCC/MRCC_Prog.c rename to BlackPill/Src/MCAL/MRCC/MRCC_Prog.c diff --git a/AutoParkingCar/Src/MCAL/MSPI/MSPI_Config.h b/BlackPill/Src/MCAL/MSPI/MSPI_Config.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MSPI/MSPI_Config.h rename to BlackPill/Src/MCAL/MSPI/MSPI_Config.h diff --git a/AutoParkingCar/Src/MCAL/MSPI/MSPI_Private.h b/BlackPill/Src/MCAL/MSPI/MSPI_Private.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MSPI/MSPI_Private.h rename to BlackPill/Src/MCAL/MSPI/MSPI_Private.h diff --git a/AutoParkingCar/Src/MCAL/MSPI/MSPI_Prog.c b/BlackPill/Src/MCAL/MSPI/MSPI_Prog.c similarity index 100% rename from AutoParkingCar/Src/MCAL/MSPI/MSPI_Prog.c rename to BlackPill/Src/MCAL/MSPI/MSPI_Prog.c diff --git a/AutoParkingCar/Src/MCAL/MSPI/MSPI_int.h b/BlackPill/Src/MCAL/MSPI/MSPI_int.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MSPI/MSPI_int.h rename to BlackPill/Src/MCAL/MSPI/MSPI_int.h diff --git a/AutoParkingCar/Src/MCAL/MSTK/MSYSTICK_Config.h b/BlackPill/Src/MCAL/MSTK/MSYSTICK_Config.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MSTK/MSYSTICK_Config.h rename to BlackPill/Src/MCAL/MSTK/MSYSTICK_Config.h diff --git a/AutoParkingCar/Src/MCAL/MSTK/MSYSTICK_Int.h b/BlackPill/Src/MCAL/MSTK/MSYSTICK_Int.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MSTK/MSYSTICK_Int.h rename to BlackPill/Src/MCAL/MSTK/MSYSTICK_Int.h diff --git a/AutoParkingCar/Src/MCAL/MSTK/MSYSTICK_Private.h b/BlackPill/Src/MCAL/MSTK/MSYSTICK_Private.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MSTK/MSYSTICK_Private.h rename to BlackPill/Src/MCAL/MSTK/MSYSTICK_Private.h diff --git a/AutoParkingCar/Src/MCAL/MSTK/MSYSTICK_Prog.c b/BlackPill/Src/MCAL/MSTK/MSYSTICK_Prog.c similarity index 100% rename from AutoParkingCar/Src/MCAL/MSTK/MSYSTICK_Prog.c rename to BlackPill/Src/MCAL/MSTK/MSYSTICK_Prog.c diff --git a/AutoParkingCar/Src/MCAL/MTIMER/MTIMER_Config.h b/BlackPill/Src/MCAL/MTIMER/MTIMER_Config.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MTIMER/MTIMER_Config.h rename to BlackPill/Src/MCAL/MTIMER/MTIMER_Config.h diff --git a/AutoParkingCar/Src/MCAL/MTIMER/MTIMER_Int.h b/BlackPill/Src/MCAL/MTIMER/MTIMER_Int.h similarity index 85% rename from AutoParkingCar/Src/MCAL/MTIMER/MTIMER_Int.h rename to BlackPill/Src/MCAL/MTIMER/MTIMER_Int.h index 3d75988..199c559 100644 --- a/AutoParkingCar/Src/MCAL/MTIMER/MTIMER_Int.h +++ b/BlackPill/Src/MCAL/MTIMER/MTIMER_Int.h @@ -17,11 +17,15 @@ #ifndef MCAL_MTIMER_MTIMER_INT_H_ #define MCAL_MTIMER_MTIMER_INT_H_ +/*******************************************************************************************************/ +/* Include files needed for MTIMER_Int.h */ +/*******************************************************************************************************/ +#include"../../LIB/STD_TYPES.h" //Standard Types Lib + /*******************************************************************************************************/ /* enum for Timer numbers */ /* ' TIMER 1, TIMER2, TIMER3, TIMER4, TIMER5, */ /* TIMER9, TIMER10, TIMER11' */ -/* */ /*******************************************************************************************************/ typedef enum{ TIMER1=1, @@ -72,7 +76,20 @@ void MTIMER_vPeriodicMS(Enum_TIMER_NUM Copy_u8TimerNum, u32 Copy_u32Delay); /******************************************************************************************************/ /******************************************************************************************************/ -/* 02- MTIMER_vPWM */ +/* 02- MTIMER_vClearCNT */ +/*----------------------------------------------------------------------------------------------------*/ +/** + * @Description Clears the counter (CNT) of the specified TIMER. + * @param Copy_u8TimerNum: The TIMER number to clear the counter. + * Expected to be Enum_TIMER_NUM ==> { TIMER1, TIMER2, TIMER3, TIMER4, + * TIMER5, TIMER9, TIMER10, TIMER11 } + * @return void + */ +void MTIMER_vClearCNT(Enum_TIMER_NUM Copy_u8TimerNum); +/******************************************************************************************************/ + +/******************************************************************************************************/ +/* 03- MTIMER_vPWM */ /*----------------------------------------------------------------------------------------------------*/ /** * @Description Configures the specified TIMER in PWM mode on a specific channel. @@ -89,7 +106,7 @@ void MTIMER_vPWM(Enum_TIMER_NUM Copy_u8TimerNum, Enum_TIMER_CHs Copy_u8Channel, /******************************************************************************************************/ /******************************************************************************************************/ -/* 03- MTIMER_vICU */ +/* 04- MTIMER_vICU */ /*----------------------------------------------------------------------------------------------------*/ /** * @Description Configures the specified TIMER to work as an Input Capture Unit (ICU) on a specific channel. @@ -104,7 +121,7 @@ void MTIMER_vICU(Enum_TIMER_NUM Copy_u8TimerNum, Enum_TIMER_CHs Copy_u8Channel); /******************************************************************************************************/ /******************************************************************************************************/ -/* 04- MTIMER_GET_ICU */ +/* 05- MTIMER_GET_ICU */ /*----------------------------------------------------------------------------------------------------*/ /** * @Description Retrieves the captured time value from an Input Capture event on the specified TIMER and channel. @@ -119,7 +136,7 @@ u32 MTIMER_GET_ICU(Enum_TIMER_NUM Copy_u8TimerNum, Enum_TIMER_CHs Copy_u8Channel /******************************************************************************************************/ /******************************************************************************************************/ -/* 05- MTIMER_CallBack */ +/* 06- MTIMER_CallBack */ /*----------------------------------------------------------------------------------------------------*/ /** * @Description Registers a callback function to be executed when the specified TIMER generates an interrupt. diff --git a/AutoParkingCar/Src/MCAL/MTIMER/MTIMER_Private.h b/BlackPill/Src/MCAL/MTIMER/MTIMER_Private.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MTIMER/MTIMER_Private.h rename to BlackPill/Src/MCAL/MTIMER/MTIMER_Private.h diff --git a/AutoParkingCar/Src/MCAL/MTIMER/MTIMER_Prog.c b/BlackPill/Src/MCAL/MTIMER/MTIMER_Prog.c similarity index 98% rename from AutoParkingCar/Src/MCAL/MTIMER/MTIMER_Prog.c rename to BlackPill/Src/MCAL/MTIMER/MTIMER_Prog.c index eb59cd3..95e729c 100644 --- a/AutoParkingCar/Src/MCAL/MTIMER/MTIMER_Prog.c +++ b/BlackPill/Src/MCAL/MTIMER/MTIMER_Prog.c @@ -16,7 +16,7 @@ u32 Time[29]={0}; TIM2_5_MemMap_t* GET_TIMER(u32 Copy_u8TimerNum){ u32 Timer_Offset[8] = TIMERS_OFFSET; - TIM2_5_MemMap_t* TIMx = (u32)TIM2 + Timer_Offset[Copy_u8TimerNum-1]; + TIM2_5_MemMap_t* TIMx = (TIM2_5_MemMap_t*)((u32)TIM2 + Timer_Offset[Copy_u8TimerNum-1]); return TIMx; } @@ -51,6 +51,14 @@ void MTIMER_vPeriodicMS(Enum_TIMER_NUM Copy_u8TimerNum, u32 Copy_u32Delay) { SET_BIT(TIMx->CR1, CEN); } +// Function to clear the counter (CNT) of the specified timer +void MTIMER_vClearCNT(Enum_TIMER_NUM Copy_u8TimerNum) { + // Get the base address of the specified timer + TIM2_5_MemMap_t* TIMx = GET_TIMER(Copy_u8TimerNum); + // Clear the counter value (CNT) by setting it to 0x00 + TIMx->CNT = 0x00; +} + void MTIMER_vPWM(Enum_TIMER_NUM Copy_u8TimerNum,Enum_TIMER_CHs Copy_u8Channel,u16 Copy_u16TotalTime_uSec,u16 Copy_u16PositiveDutyCycle_uSec){ TIM2_5_MemMap_t* TIMx = GET_TIMER(Copy_u8TimerNum); diff --git a/AutoParkingCar/Src/MCAL/MUART/MUSART_Config.h b/BlackPill/Src/MCAL/MUART/MUSART_Config.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MUART/MUSART_Config.h rename to BlackPill/Src/MCAL/MUART/MUSART_Config.h diff --git a/AutoParkingCar/Src/MCAL/MUART/MUSART_Interface.h b/BlackPill/Src/MCAL/MUART/MUSART_Interface.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MUART/MUSART_Interface.h rename to BlackPill/Src/MCAL/MUART/MUSART_Interface.h diff --git a/AutoParkingCar/Src/MCAL/MUART/MUSART_Private.h b/BlackPill/Src/MCAL/MUART/MUSART_Private.h similarity index 100% rename from AutoParkingCar/Src/MCAL/MUART/MUSART_Private.h rename to BlackPill/Src/MCAL/MUART/MUSART_Private.h diff --git a/AutoParkingCar/Src/MCAL/MUART/MUSART_Program.c b/BlackPill/Src/MCAL/MUART/MUSART_Program.c similarity index 100% rename from AutoParkingCar/Src/MCAL/MUART/MUSART_Program.c rename to BlackPill/Src/MCAL/MUART/MUSART_Program.c diff --git a/BlackPill_RC/Src/HAL/HCOMPASS/HAL_COMPASS.c b/BlackPill_RC/Src/HAL/HCOMPASS/HAL_COMPASS.c deleted file mode 100644 index e669f93..0000000 --- a/BlackPill_RC/Src/HAL/HCOMPASS/HAL_COMPASS.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - * HAL_COMPASS.c - * - * Created on: Dec 19, 2023 - * Author: Omar - */ - - -void HAL_CMP_vInit(){ - - /* Send CMP ADD with write */ - - /* Send ConfigREGA ADD --> 0x00 */ - - /* Send 0x70 --> 8 sampled average , 15 HZ data rate */ - - - /* Send CMP ADD with write */ - - /* Send ConfigREGB ADD --> 0x01 */ - - /* Send 0xA0 --> 5 Gain */ - - - /* Send CMP ADD with write */ - - /* Send ModREG ADD --> 0x02 */ - - /* Send 0x00 --> continuous measurment mode */ - - - /*** wait 6ms ***/ - - -} -void HAL_CMP_GetReading(); diff --git a/BlackPill_RC/Src/HAL/HCOMPASS/HAL_COMPASS.h b/BlackPill_RC/Src/HAL/HCOMPASS/HAL_COMPASS.h deleted file mode 100644 index 50a9098..0000000 --- a/BlackPill_RC/Src/HAL/HCOMPASS/HAL_COMPASS.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * HAL_COMPASS.h - * - * Created on: Dec 19, 2023 - * Author: Omar - */ - -#ifndef HAL_COMPASS_HAL_COMPASS_H_ -#define HAL_COMPASS_HAL_COMPASS_H_ - -/* The register pointer will be incremented by 1 automatically after the current register has been read -successfully.*/ - -/*The bus bit format is an 8-bit Data/Address -send and a 1-bit acknowledge bit*/ - -/*Negative binary values will be in two’s complement form*/ - -/*The HMC5883L Serial Clock (SCL) and Serial Data (SDA) lines require resistive pull-ups (Rp) between the master device -(usually a host microprocessor) and the HMC5883L*/ - -/******************* Compass 7-bit Address ********************/ -#define HAL_COMPASS_ADDRESS (0x1E) - -#define ADDRESS_PLUS_READ (0x3D) -#define ADDRESS_PLUS_WRITE (0x3C) - -/* Defined in I2C bus Specs */ -#define STD_SPEED /*100k*/ -#define FAST_SPEED /*400k*/ - -#define CMP_ERROR_VAL 4096 - -typedef enum{ - - ConfigREGA=0x00,/* Sampled Avreage , Data out rate , measure config*/ - ConfigREGB=0x01, /* gain */ - ModREG=0x02, /* operation mode */ - X_MSB=0x03, /*A*/ - X_LSB=0x04, /*B*/ - Z_MSB=0x05, - Z_LSB=0x06, - Y_MSB=0x07, - Y_LSB=0x08, - SR=0x09, /* LOCK , RDY */ - IdentREGA=0x0A, - IdentREGB=0x0B, - IdentREGC=0x0C, -} CMP_Mem_Map_t; - -void HAL_CMP_vInit(); -void HAL_CMP_GetReading(); - -#endif /* HAL_COMPASS_HAL_COMPASS_H_ */ diff --git a/BlackPill_RC/Src/HAL/HSERVO/HSERVO_Config.h b/BlackPill_RC/Src/HAL/HSERVO/HSERVO_Config.h deleted file mode 100644 index 1f853de..0000000 --- a/BlackPill_RC/Src/HAL/HSERVO/HSERVO_Config.h +++ /dev/null @@ -1,14 +0,0 @@ -/* - * HSERVO_Config.h - * - * Created on: Dec 21, 2023 - * Author: Hardware - */ - -#ifndef HAL_HSERVO_HSERVO_CONFIG_H_ -#define HAL_HSERVO_HSERVO_CONFIG_H_ - -//Value in usec -#define SERVO_FullPeriod 20000 - -#endif /* HAL_HSERVO_HSERVO_CONFIG_H_ */ diff --git a/BlackPill_RC/Src/HAL/HSERVO/HSERVO_Int.h b/BlackPill_RC/Src/HAL/HSERVO/HSERVO_Int.h deleted file mode 100644 index 5847187..0000000 --- a/BlackPill_RC/Src/HAL/HSERVO/HSERVO_Int.h +++ /dev/null @@ -1,15 +0,0 @@ -/* - * HSERVO_Int.h - * - * Created on: Dec 21, 2023 - * Author: Hardware - */ - -#ifndef HAL_HSERVO_HSERVO_INT_H_ -#define HAL_HSERVO_HSERVO_INT_H_ - -void HSERVO_vServoInit(u8 Copy_u8Port,u8 Copy_u8Pin); - -void HSERVO_vServoDeg(u32 Copy_u8Deg); - -#endif /* HAL_HSERVO_HSERVO_INT_H_ */ diff --git a/BlackPill_RC/Src/HAL/HSERVO/HSERVO_Prog.c b/BlackPill_RC/Src/HAL/HSERVO/HSERVO_Prog.c deleted file mode 100644 index 65039a4..0000000 --- a/BlackPill_RC/Src/HAL/HSERVO/HSERVO_Prog.c +++ /dev/null @@ -1,38 +0,0 @@ -/* - * HSERVO_Prog.c - * - * Created on: Dec 21, 2023 - * Author: Hardware - */ - -#include"../../MCAL/MRCC/MRCC_Int.h" - -#include"../../MCAL/MGPIO/MGPIO_Int.h" - -#include"../../MCAL/MTIMER/MTIMER_Int.h" - -#include"HSERVO_Config.h" -#include"HSERVO_Int.h" - -u8 Global_Channel = 1; - -void HSERVO_vServoInit(u8 Copy_u8Port,u8 Copy_u8Pin){ - MGPIO_vSetPinMode(Copy_u8Port, Copy_u8Pin, ALTFUNC); - MGPIO_vSetAlternativeFunction(Copy_u8Port, Copy_u8Pin, AF1); - MRCC_vEnableClock(TIM1_EN); - Global_Channel = Copy_u8Pin - 7; -} - -void HSERVO_vServoDeg(u32 Copy_u8Deg){ - if(Copy_u8Deg >180){ - Copy_u8Deg = 180; - } - u16 Positive_Duty = ( (Copy_u8Deg * 1000)/180 + 1000 ); - MTIMER1_vPWM(Global_Channel, SERVO_FullPeriod, Positive_Duty); -} - - - - - - diff --git a/BlackPill_RC/Src/LIB/BIT_MATH.h b/BlackPill_RC/Src/LIB/BIT_MATH.h deleted file mode 100644 index 379673b..0000000 --- a/BlackPill_RC/Src/LIB/BIT_MATH.h +++ /dev/null @@ -1,19 +0,0 @@ - -#ifndef LIB_BIT_MATH_H_ -#define LIB_BIT_MATH_H_ - -#define SET_BIT(var,Bit_No) (var |=(1<>Bit_No) & 0x01) - -#define CLR_SET(Var,Bit_No) (Var = ( (Var|=1<>Bit_No) & 0x03) - -#define SET_VAL(Var,Bit_No,Val) (Var |= (Val<CR2 |= (I2C_FREQ & 0x3F); - - /* Configure Address */ - if(config->addressSize == I2C_7_BIT){ - // clear address - I2Cn->OAR1 &= 0x00; - // Set the 7 bit address mode - I2Cn->OAR1 &= ~(1<<15); - I2Cn->OAR1 |= (1<<14); // This bit should be high by software (Reference Manual) - // write the address - I2Cn->OAR1 |= ((config->address<<1) & 0x00FE); - - } - else{ - // 10 bit addressing mode - } - - /* Speed Configuration */ - if(config->speedMode == I2C_STANDARD){ - //I2Cn->CCR = ((FREQ * (T_SCL/2)) & 0xFFF); - I2Cn->CCR = ((I2C_FREQ * ((1000U/config->speed)/2)) & 0xFFF); - } - else if(config->speedMode == I2C_FAST){ - // Fast mode - } - I2Cn->TRISE = ((I2C_FREQ + 1) & 0x3F); - - // Peripheral Enable - I2Cn->CR1 |= (1<ACK == I2C_ACK_EN) - I2Cn->CR1 |= (1<<10); - else - I2Cn->CR1 &= ~(1<<10); -} - -void I2C_voidMasterSendData(st_I2C_RegDef_t* I2Cn, u8 address, u8* data, u32 len, u8 repeatedStart){ - u8 slaveAddress; - - // Send Start bit - I2Cn->CR1 |= (1<SR1 & (1<DR = slaveAddress; - - // Wait for address to be sent - while(!(I2Cn->SR1 & (1<SR2; // Clear ADDR flag - (void)readSR2; - - // Send the data - for(u32 i=0; iSR1 & (1<DR = data[i]; - } - - // Send Stop bit - while( (!(I2Cn->SR1 & (1<CR1 |= (1<CR1 |= (1<SR1 & (1<DR = slaveAddress; - - // Wait for address to be sent - while(!(I2Cn->SR1 & (1<CR1 &= ~(1<<10); - - u8 readSR2 = I2Cn->SR2; // Clear ADDR flag - (void)readSR2; - - // Receive the data - for(i=0; iSR1 & (1<CR1 &= ~(1<<10); - if((i==len-1) && (repeatedStart == I2C_RS_DISABLE)) - I2Cn->CR1 |= (1<DR; - } - - // ReEnable ACK - I2Cn->CR1 |= (1<<10); -} - -void I2C_voidSlaveSendData(st_I2C_RegDef_t* I2Cn, u8 data){ - I2Cn->DR = data; -} - -void I2C_voidSlaveReceiveData(st_I2C_RegDef_t* I2Cn, u8* data){ - *data = I2Cn->DR; -} - -/*static void I2C_voidConfigurePins(st_I2C_RegDef_t* I2Cn){ - GPIO_Config_t I2C_config; - I2C_config.mode = GPIO_ALT_FN; - I2C_config.outType = GPIO_OPEN_DRAIN; - I2C_config.pupdState = GPIO_NO_PUPD; - I2C_config.speed = GPIO_HIGH_SPEED; - - if(I2Cn == I2C1){ - I2C_config.AltFuncMode = GPIO_AF4; - GPIO_voidInitPin(PORTB, I2C1_SCL_PIN, &I2C_config); // SCL - GPIO_voidInitPin(PORTB, I2C1_SDA_PIN, &I2C_config); // SDA - } - else if(I2Cn == I2C2){ - I2C_config.AltFuncMode = GPIO_AF4; - GPIO_voidInitPin(PORTB, 10, &I2C_config); // SCL - I2C_config.AltFuncMode = GPIO_AF9; - GPIO_voidInitPin(PORTB, 3, &I2C_config); // SDA - } - else if(I2Cn == I2C3){ - I2C_config.AltFuncMode = GPIO_AF4; - GPIO_voidInitPin(PORTA, 8, &I2C_config); // SCL - I2C_config.AltFuncMode = GPIO_AF9; - GPIO_voidInitPin(PORTB, 4, &I2C_config); // SDA - } -}*/ - -void I2C_voidReset(st_I2C_RegDef_t* I2Cn) -{ - I2Cn->CR1 |= (1<<15); -} - -void I2C_voidMasterSendDataIT(st_I2C_RegDef_t* I2Cn, I2C_HandleIT_t* handle){ - // Initialize handle variables - handle->TxOrRx = I2C_TX_MODE; - handle->index = 0; - handle->runningState = I2C_RUNNING; - - // Send Start bit - I2Cn->CR1 |= (1<TxOrRx = I2C_RX_MODE; - handle->index = 0; - handle->runningState = I2C_RUNNING; - - // Send Start bit - I2Cn->CR1 |= (1<SR1; - - // 1- SB - if(SR1 & (1<slaveAddress<<1); - if(handle->TxOrRx == I2C_TX_MODE) - slaveAddress &= ~(1); // Clear LSB to enter Transmission mode - else - slaveAddress |= (1); // Set LSB to enter Receiving mode - I2Cn->DR = slaveAddress; - (void)slaveAddress; - } - - // 2- ADDR - else if(SR1 & (1<SR2 & (1<<0) ) - { // Master - if( (handle->TxOrRx == I2C_RX_MODE) && (handle->len == 1) ) - I2Cn->CR1 &= ~(1<<10); // Disable the ACK - } - - // Clear ADDR flag in case Master or Slave - u8 readSR2 = I2Cn->SR2; - (void)readSR2; - } - - // 3- BTF - else if(SR1 & (1<TxOrRx == I2C_TX_MODE) - { - if(handle->index == handle->len){ - if(handle->repeatedStart == I2C_RS_DISABLE) - I2Cn->CR1 |= (1<runningState = I2C_FINISHED; - } - } - } - - // 4- STOPF - else if(SR1 & (1<CR1; - I2Cn->CR1 = readCR1; // Clear STOPF flag - (void)readCR1; - I2C_voidSlaveHandleCallBackFunction(I2Cn, I2C_EVENT_RECEPTION_FINISHED); - } - - // 5- RXNE - else if(SR1 & (1<SR2 & (1<<0)) ) // Master - { - if(handle->index == (handle->len-2)) - I2Cn->CR1 &= ~(1<<10); // Disable the ACK - - if((handle->index==handle->len-1) && (handle->repeatedStart == I2C_RS_DISABLE)) - I2Cn->CR1 |= (1<data[handle->index] = I2Cn->DR; - handle->index++; - - /* Notify Application Communication Ended */ - // To be Done - if(handle->index == handle->len){ - handle->runningState = I2C_FINISHED; - // ReEnable ACK - I2Cn->CR1 |= (1<<10); - } - } - else// Slave - { - I2C_voidSlaveHandleCallBackFunction(I2Cn, I2C_EVENT_RECEIVE_DATA); - } - } - - // 6- TXE - else if(SR1 & (1<SR2 & (1<<0)) ) // Master - { - if(handle->index < handle->len){ - I2Cn->DR = handle->data[handle->index]; - handle->index++; - } - } - else // Slave - { - I2C_voidSlaveHandleCallBackFunction(I2Cn, I2C_EVENT_REQUEST_DATA); - } - } -} - -void I2C_voidErrorInterruptHandler(st_I2C_RegDef_t* I2Cn, I2C_HandleIT_t* handle){ - u32 SR1 = I2Cn->SR1; - - // 1- BERR - if(SR1 & (1<SR1 &= ~(1<runningState = I2C_ERROR_BERR; - } - // 2- ARLO - else if(SR1 & (1<SR1 &= ~(1<runningState = I2C_ERROR_ARLO; - } - // 3- AF - else if(SR1 & (1<SR1 &= ~(1<SR2 & (1<<0)){ - handle->runningState = I2C_ERROR_AF; - } - else{ - I2C_voidSlaveHandleCallBackFunction(I2Cn, I2C_EVENT_TRANSMISSION_FINISHED); - } - } - // 4- OVR - else if(SR1 & (1<SR1 &= ~(1<runningState = I2C_ERROR_OVR; - } - // 5- PECERR - else if(SR1 & (1<SR1 &= ~(1<runningState = I2C_ERROR_PECERR; - } - // 6- TIMEOUT - else if(SR1 & (1<SR1 &= ~(1<runningState = I2C_ERROR_TIMEOUT; - } - -} - -void I2C_voidInterruptControl(st_I2C_RegDef_t* I2Cn, u8 state){ - if(state == I2C_INT_EN){ - // Enable Interrupt - I2Cn->CR2 |= (1<CR2 |= (1<CR2 |= (1<CR2 &= ~(1<CR2 &= ~(1<CR2 &= ~(1<EXTICR[Copy_u8EXTI_Num / PIN_PER_REG] &= ~(MASK4 << ( (Copy_u8EXTI_Num % PIN_PER_REG)*BIT_PER_PIN ) ); - SYSCFG->EXTICR[Copy_u8EXTI_Num / PIN_PER_REG] |= (Copy_u8Port << ( (Copy_u8EXTI_Num % PIN_PER_REG)*BIT_PER_PIN ) ); -} - -void MEXTI_vEnableInterrupt(Enum_MEXTI_No_t Copy_u8EXTI_Num){ - SET_BIT(EXTI->IMR,Copy_u8EXTI_Num); -} - -void MEXTI_vDisableInterrupt(u8 Copy_u8EXTI_Num){ - CLR_BIT(EXTI->IMR,Copy_u8EXTI_Num); -} - -void MEXTI_vEnableEvent(u8 Copy_u8EXTI_Num){ - SET_BIT(EXTI->EMR,Copy_u8EXTI_Num); -} - -void MEXTI_vDisableEvent(u8 Copy_u8EXTI_Num){ - CLR_BIT(EXTI->EMR,Copy_u8EXTI_Num); -} - -void MEXTI_vInterruptTrigger(Enum_MEXTI_No_t Copy_u8EXTI_Num,EXTI_TRIGGER Copy_u8Trig){ - switch(Copy_u8Trig){ - case RISING: - SET_BIT(EXTI->RTSR,Copy_u8EXTI_Num); - CLR_BIT(EXTI->FTSR,Copy_u8EXTI_Num); - break; - case FALLING: - CLR_BIT(EXTI->RTSR,Copy_u8EXTI_Num); - SET_BIT(EXTI->FTSR,Copy_u8EXTI_Num); - break; - case ONCHARGE: - SET_BIT(EXTI->RTSR,Copy_u8EXTI_Num); - SET_BIT(EXTI->FTSR,Copy_u8EXTI_Num); - break; - } -} - -void MEXTI_vSWevent(u8 Copy_u8EXTI_Num){ - SET_BIT(EXTI->SWIER,Copy_u8EXTI_Num); -} - -void MEXTI_PtrReadInterruptFlag(u8 Copy_u8EXTI_Num,u8* Copy_u8Reg){ - * Copy_u8Reg = GET_BIT(EXTI->PR,Copy_u8EXTI_Num); -} - - -void MEXTI_vCallBack(Enum_MEXTI_No_t Copy_u8InterruptNo ,void(*ptr)(void)){ - if( ptr != STD_NULL){ - GLOBAL_EXTIPtr[Copy_u8InterruptNo]=ptr; - } -} - - -void EXTI0_IRQHandler(void){ - GLOBAL_EXTIPtr[0](); - EXTI->PR |= 1; -} - -void EXTI1_IRQHandler(void){ - GLOBAL_EXTIPtr[1](); - EXTI->PR |= 1<<1; -} - -void EXTI2_IRQHandler(void){ - GLOBAL_EXTIPtr[2](); - EXTI->PR |= 1<<2; -} -void EXTI3_IRQHandler(void){ - GLOBAL_EXTIPtr[3](); - EXTI->PR |= 1<<3; -} -void EXTI4_IRQHandler(void){ - GLOBAL_EXTIPtr[4](); - EXTI->PR |= 1<<4; -} -void EXTI9_5_IRQHandler(void){ - if((GET_BIT(EXTI->PR,EXTI5)==1)&(GLOBAL_EXTIPtr[EXTI5]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI5](); - EXTI->PR |= 1<PR,EXTI6)==1)&(GLOBAL_EXTIPtr[EXTI6]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI6](); - EXTI->PR |= 1<PR,EXTI7)==1)&(GLOBAL_EXTIPtr[EXTI7]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI7](); - EXTI->PR |= 1<PR,EXTI8)==1)&(GLOBAL_EXTIPtr[EXTI8]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI8](); - EXTI->PR |= 1<PR,EXTI9)==1)&(GLOBAL_EXTIPtr[EXTI9]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI9](); - EXTI->PR |= 1<PR,EXTI10)==1)&(GLOBAL_EXTIPtr[EXTI10]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI10](); - EXTI->PR |= 1<PR,EXTI11)==1)&(GLOBAL_EXTIPtr[EXTI11]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI11](); - EXTI->PR |= 1<PR,EXTI12)==1)&(GLOBAL_EXTIPtr[EXTI12]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI12](); - EXTI->PR |= 1<PR,EXTI13)==1)&(GLOBAL_EXTIPtr[EXTI13]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI13](); - EXTI->PR |= 1<PR,EXTI14)==1)&(GLOBAL_EXTIPtr[EXTI14]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI14](); - EXTI->PR |= 1<PR,EXTI15)==1)&(GLOBAL_EXTIPtr[EXTI15]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI15](); - EXTI->PR |= 1< MODER &= ~(0b11<<(Copy_u8PinNo*2)); - /* set the desired mode*/ - GPIOA -> MODER |= (Copy_u8PinMode <<(Copy_u8PinNo*2)); - break; - case PORTB: - /*clear the current mode*/ - GPIOB -> MODER &= ~(0b11<<(Copy_u8PinNo*2)); - /* set the desired mode*/ - GPIOB -> MODER |= (Copy_u8PinMode <<(Copy_u8PinNo*2)); - break; - case PORTC: - /*clear the current mode*/ - GPIOC -> MODER &= ~(0b11<<(Copy_u8PinNo*2)); - /* set the desired mode*/ - GPIOC -> MODER |= (Copy_u8PinMode <<(Copy_u8PinNo*2)); - break; - } -} - -void MGPIO_vSetPinOutPutType( u8 Copy_u8PortID, u8 Copy_u8PinNo , u8 Copy_u8PinOutPutType){ - - switch(Copy_u8PortID){ - case PORTA: - if(Copy_u8PinOutPutType == GPIO_OPEN_DRAIN) - SET_BIT(GPIOA -> OTYPER , Copy_u8PinNo); - else - CLR_BIT(GPIOA -> OTYPER , Copy_u8PinNo); - break; - case PORTB: - if(Copy_u8PinOutPutType == GPIO_OPEN_DRAIN) - SET_BIT(GPIOB -> OTYPER , Copy_u8PinNo); - else - CLR_BIT(GPIOB -> OTYPER , Copy_u8PinNo); - break; - case PORTC: - if(Copy_u8PinOutPutType == GPIO_OPEN_DRAIN) - SET_BIT(GPIOC -> OTYPER , Copy_u8PinNo); - else - CLR_BIT(GPIOC -> OTYPER , Copy_u8PinNo); - break; - - } -} - -void MGPIO_vSetPinOutPutSpeed( u8 Copy_u8PortID, u8 Copy_u8PinNo , u8 Copy_u8PinOutPutSpeed){ - - switch(Copy_u8PortID){ - case PORTA: - /*clear the current speed*/ - GPIOA -> OSPEEDR &= ~(0b11<<(Copy_u8PinNo*2)); - /* set the desired speed*/ - GPIOA -> OSPEEDR |= (Copy_u8PinOutPutSpeed <<(Copy_u8PinNo*2)); - break; - case PORTB: - /*clear the current speed*/ - GPIOB -> OSPEEDR &= ~(0b11<<(Copy_u8PinNo*2)); - /* set the desired speed*/ - GPIOB -> OSPEEDR |= (Copy_u8PinOutPutSpeed <<(Copy_u8PinNo*2)); - break; - case PORTC: - /*clear the current speed*/ - GPIOC -> OSPEEDR &= ~(0b11<<(Copy_u8PinNo*2)); - /* set the desired speed*/ - GPIOC -> OSPEEDR |= (Copy_u8PinOutPutSpeed <<(Copy_u8PinNo*2)); - break; - } -} - -void MGPIO_vSetPinInPutType( u8 Copy_u8PortID, u8 Copy_u8PinNo , u8 Copy_u8PinInputType){ - - switch(Copy_u8PortID){ - case PORTA: - /*clear the current pull*/ - GPIOA -> PUPDR &= ~(0b11<<(Copy_u8PinNo*2)); - /* set the desired pull */ - GPIOA -> PUPDR |= (Copy_u8PinInputType <<(Copy_u8PinNo*2)); - break; - case PORTB: - /*clear the current pull */ - GPIOB -> PUPDR &= ~(0b11<<(Copy_u8PinNo*2)); - /* set the desired pull */ - GPIOB -> PUPDR |= (Copy_u8PinInputType <<(Copy_u8PinNo*2)); - break; - case PORTC: - /*clear the current pull */ - GPIOC -> PUPDR &= ~(0b11<<(Copy_u8PinNo*2)); - /* set the desired pull */ - GPIOC -> PUPDR |= (Copy_u8PinInputType <<(Copy_u8PinNo*2)); - break; - } -} - -u8 MGPIO_u8GetPinValue(u8 Copy_u8PortID, u8 Copy_u8PinNo){ - - u8 Local_u8PinVal = 0; - switch(Copy_u8PortID){ - case PORTA: - Local_u8PinVal= GET_BIT(GPIOA -> IDR , Copy_u8PinNo); - break; - case PORTB: - Local_u8PinVal= GET_BIT(GPIOB -> IDR , Copy_u8PinNo); - break; - case PORTC: - Local_u8PinVal= GET_BIT(GPIOC -> IDR , Copy_u8PinNo); - break; - } - return Local_u8PinVal; -} - -void MGPIO_vSetPinValue(u8 Copy_u8PortID, u8 Copy_u8PinNo ,u8 Copy_u8PinValue){ - - switch(Copy_u8PortID){ - case PORTA: - if(Copy_u8PinValue == HIGH) - SET_BIT(GPIOA -> ODR , Copy_u8PinNo); - else - CLR_BIT(GPIOA -> ODR , Copy_u8PinNo); - break; - case PORTB: - if(Copy_u8PinValue == HIGH) - SET_BIT(GPIOB -> ODR , Copy_u8PinNo); - else - CLR_BIT(GPIOB -> ODR , Copy_u8PinNo); - break; - case PORTC: - if(Copy_u8PinValue == HIGH) - SET_BIT(GPIOC -> ODR , Copy_u8PinNo); - else - CLR_BIT(GPIOC -> ODR , Copy_u8PinNo); - break; - - } -} - -/******* BSRR ********/ -/*** - * it seem to be wrong implementation - * as set_bit is REG |= 1<< pino --> read ,modify, write - * - * the correct atomic funtion should be - * set_bit_fast REG = 1<< pino --> write - * - * **/ -void MGPIO_vSetPinAtomic(u8 Copy_u8PortID, u8 Copy_u8PinNo ,u8 Copy_u8PinValue){ - - switch(Copy_u8PortID){ - case PORTA: - if(Copy_u8PinValue == HIGH) - SET_BIT(GPIOA -> BSRR , Copy_u8PinNo); - else - SET_BIT(GPIOA -> BSRR , (Copy_u8PinNo+16)); - break; - case PORTB: - if(Copy_u8PinValue == HIGH) - SET_BIT(GPIOB -> BSRR , Copy_u8PinNo); - else - SET_BIT(GPIOB -> BSRR , (Copy_u8PinNo+16)); - break; - case PORTC: - if(Copy_u8PinValue == HIGH) - SET_BIT(GPIOC -> BSRR , Copy_u8PinNo); - else - SET_BIT(GPIOC -> BSRR , (Copy_u8PinNo+16)); - break; - - } -} - -void MGPIO_vSetAlternativeFunction(u8 Copy_u8PortID, u8 Copy_u8PinNo ,u8 Copy_u8FunctionName){ - - - switch(Copy_u8PortID){ - case PORTA: - if(Copy_u8PinNo <=7 ){ - /* Clear the current alt func */ - GPIOA -> AFRL &= ~(0b1111 << (Copy_u8PinNo*4) ); - /* set the desired alt func */ - GPIOA -> AFRL |= (Copy_u8FunctionName <<(Copy_u8PinNo*4)); - } - else{ - Copy_u8PinNo-=8; - /* Clear the current alt func */ - GPIOA -> AFRH &= ~(0b1111 << (Copy_u8PinNo*4) ); - /* set the desired alt func */ - GPIOA -> AFRH |= (Copy_u8FunctionName <<(Copy_u8PinNo*4)); - } - break; - case PORTB: - if(Copy_u8PinNo <=7 ){ - /* Clear the current alt func */ - GPIOB -> AFRL &= ~(0b1111 << (Copy_u8PinNo*4) ); - /* set the desired alt func */ - GPIOB -> AFRL |= (Copy_u8FunctionName <<(Copy_u8PinNo*4)); - } - else{ - Copy_u8PinNo-=8; - /* Clear the current alt func */ - GPIOB -> AFRH &= ~(0b1111 << (Copy_u8PinNo*4) ); - /* set the desired alt func */ - GPIOB -> AFRH |= (Copy_u8FunctionName <<(Copy_u8PinNo*4)); - } - break; - case PORTC: - if(Copy_u8PinNo <=7 ){ - /* Clear the current alt func */ - GPIOC -> AFRL &= ~(0b1111 << (Copy_u8PinNo*4) ); - /* set the desired alt func */ - GPIOC -> AFRL |= (Copy_u8FunctionName <<(Copy_u8PinNo*4)); - } - else{ - Copy_u8PinNo-=8; - /* Clear the current alt func */ - GPIOC -> AFRH &= ~(0b1111 << (Copy_u8PinNo*4) ); - /* set the desired alt func */ - GPIOC -> AFRH |= (Copy_u8FunctionName <<(Copy_u8PinNo*4)); - } - break; - - } - - - -} diff --git a/BlackPill_RC/Src/MCAL/MGPIO/MGPIO_int.h b/BlackPill_RC/Src/MCAL/MGPIO/MGPIO_int.h deleted file mode 100644 index 07a5b7f..0000000 --- a/BlackPill_RC/Src/MCAL/MGPIO/MGPIO_int.h +++ /dev/null @@ -1,111 +0,0 @@ -/* - * MGPIO_int.h - * - * Created on: Oct 29, 2023 - * Author: Omar - */ - -#ifndef MCAL_MGPIO_MGPIO_INT_H_ -#define MCAL_MGPIO_MGPIO_INT_H_ -#include"../../LIB/STD_TYPES.h" -#define PIN0 0 -#define PIN1 1 -#define PIN2 2 -#define PIN3 3 -#define PIN4 4 -#define PIN5 5 -#define PIN6 6 -#define PIN7 7 -#define PIN8 8 -#define PIN9 9 -#define PIN10 10 -#define PIN11 11 -#define PIN12 12 -#define PIN13 13 -#define PIN14 14 -#define PIN15 15 - -#define INPUT 0b00 -#define OUTPUT 0b01 -#define ALTFUNC 0b10 -#define ANALOG 0b11 - -#define MGPIO_SPEED_LOW 0b00 -#define MGPIO_SPEED_MEDIUM 0b01 -#define MGPIO_SPEED_HIGH 0b10 -#define MGPIO_SPEED_VHIGH 0b11 - -#define NOPULL 0b00 -#define PULLUP 0b01 -#define PULLDOWN 0b10 - -typedef enum{ - - AF0=0, - AF1, - AF2, - AF3, - AF4, - AF5, - AF6, - AF7, - AF8, - AF9, - AF10, - AF11, - AF12, - AF13, - AF15 - -} ALTFUNC_Map_t; - -#define MGPIO_ALTFUNC_SYS AF0 -#define MGPIO_ALTFUNC_TIM12 AF1 -#define MGPIO_ALTFUNC_TIM35 AF2 -#define MGPIO_ALTFUNC_TIM911 AF3 -#define MGPIO_ALTFUNC_I2C13 AF4 -#define MGPIO_ALTFUNC_SPI14 AF5 -#define MGPIO_ALTFUNC_SPI3 AF6 -#define MGPIO_ALTFUNC_USART12 AF7 -#define MGPIO_ALTFUNC_USART6 AF8 -#define MGPIO_ALTFUNC_I2C23 AF9 -#define MGPIO_ALTFUNC_OTG_FS AF10 -#define MGPIO_ALTFUNC_NULL AF11 -#define MGPIO_ALTFUNC_SDIO AF12 -#define MGPIO_ALTFUNC_NULL2 AF13 -#define MGPIO_ALTFUNC_NULL3 AF14 -#define MGPIO_ALTFUNC_EVENTOUT AF15 - - -#define PORTA 0 -#define PORTB 1 -#define PORTC 2 - -#define GPIO_OPEN_DRAIN 1 -#define GPIO_PUSH_PULL 0 - -#define HIGH 1 -#define LOW 0 - -/****************** Functions ProtoType **********************************/ - -void MGPIO_vSetPinMode( u8 Copy_u8PortID, u8 Copy_u8PinNo , u8 Copy_u8PinMode); - -void MGPIO_vSetPinOutPutType( u8 Copy_u8PortID, u8 Copy_u8PinNo , u8 Copy_u8PinOutPutType); - -void MGPIO_vSetPinOutPutSpeed( u8 Copy_u8PortID, u8 Copy_u8PinNo , u8 Copy_u8PinOutPutSpeed); - -void MGPIO_vSetPinInPutType( u8 Copy_u8PortID, u8 Copy_u8PinNo , u8 Copy_u8PinInputType); - -u8 MGPIO_u8GetPinValue(u8 Copy_u8PortID, u8 Copy_u8PinNo); - -void MGPIO_vSetPinValue(u8 Copy_u8PortID, u8 Copy_u8PinNo ,u8 Copy_u8PinValue); - -/******* BSRR ********/ -void MGPIO_vSetPinAtomic(u8 Copy_u8PortID, u8 Copy_u8PinNo ,u8 Copy_u8PinValue); - -void MGPIO_vSetAlternativeFunction(u8 Copy_u8PortID, u8 Copy_u8PinNo ,u8 Copy_u8FunctionName); - - - -#endif /* MCAL_MGPIO_MGPIO_INT_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MI2C/MI2C_Config.h b/BlackPill_RC/Src/MCAL/MI2C/MI2C_Config.h deleted file mode 100644 index c41ef9d..0000000 --- a/BlackPill_RC/Src/MCAL/MI2C/MI2C_Config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - * MI2C_Config.h - * - * Created on: Jan 28, 2024 - * Author: Omar - */ - -#ifndef MCAL_MI2C_MI2C_CONFIG_H_ -#define MCAL_MI2C_MI2C_CONFIG_H_ - -/*The peripheral input clock frequency must be at least: -• 2 MHz in Sm mode -• 4 MHz in Fm mode -*/ -#define I2C_PCLK 16 // in MHZ - - -#endif /* MCAL_MI2C_MI2C_CONFIG_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MI2C/MI2C_Private.h b/BlackPill_RC/Src/MCAL/MI2C/MI2C_Private.h deleted file mode 100644 index a0821da..0000000 --- a/BlackPill_RC/Src/MCAL/MI2C/MI2C_Private.h +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************/ -/* Author : Omar Wael */ -/* Version : V0.0.0 */ -/* Date : Jan 28, 2024 */ -/* Description : Driver Functions Implementation */ -/* Features : Register Definition */ -/***************************************************************************/ - -/***************************************************************************/ -/* File Guard Will Call On Time in .c File */ -/***************************************************************************/ -#ifndef MCAL_MI2C_MI2C_PRIVATE_H_ -#define MCAL_MI2C_MI2C_PRIVATE_H_ - -/***************************************************************************/ -/* I2Cs BASE ADDRESS */ -/***************************************************************************/ - -#define I2C1_BASE_ADDR (0x40005400) -#define I2C2_BASE_ADDR (0x40005800) -#define I2C3_BASE_ADDR (0x40005C00) - - -/**************************************************************************/ -/* Register Definition :- */ -/* Features : Private File Can`t Be Edit By User */ -/* Description :- */ -/* - #define : YES */ -/* - union : NO */ -/* - struct : YEs */ -/**************************************************************************/ -/***************************************************************************/ -/* I2C REGISTERS MAP */ -/***************************************************************************/ - -typedef struct { - - volatile u32 CR1; - volatile u32 CR2; - volatile u32 OAR1; - volatile u32 OAR2; - volatile u32 DR; - volatile u32 SR1; - volatile u32 SR2; - volatile u32 CCR; - volatile u32 TRISE; - volatile u32 FLTR; - -}I2C_Mem_Map_t ; - -/***************************************************************************/ -/* POINTER TO I2C REGISTER */ -/***************************************************************************/ - -#define I2C1_REG ((volatile I2C_Mem_Map_t*)(I2C1_BASE_ADDR)) -#define I2C2_REG ((volatile I2C_Mem_Map_t*)(I2C2_BASE_ADDR)) -#define I2C3_REG ((volatile I2C_Mem_Map_t*)(I2C3_BASE_ADDR)) - -/***************************************************************************/ -/* SOME BITS POSITIONS */ -/***************************************************************************/ -#define CR1_PE 0 -#define CR1_START 8 -#define CR1_STOP 9 -#define CR1_ACK 10 -#define CR1_POS 11 -#define CR1_SWRST 15 - -#define SR1_SB 0 -#define SR1_ADDR 1 -#define SR1_BTF 2 -#define SR1_STOPF 4 -#define SR1_RXNE 6 -#define SR1_TXE 7 -#define SR1_AF 10 - -#define CCR_FS 15 - - - -#endif /* MCAL_MI2C_MI2C_PRIVATE_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MI2C/MI2C_Prog.c b/BlackPill_RC/Src/MCAL/MI2C/MI2C_Prog.c deleted file mode 100644 index 9d12dab..0000000 --- a/BlackPill_RC/Src/MCAL/MI2C/MI2C_Prog.c +++ /dev/null @@ -1,332 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Omar */ -/* Version : V0.0.0 */ -/* Data : 28 Jan 2024 */ -/* Description : MI2C_Prog.c --> implementations */ -/* Module Features : */ -/* 01- MI2C_vMasterInit */ -/* 02- MI2C_vMasterTx */ -/* 03- MI2C_u8MasterRx */ -/* 04- MI2C_vSlaveInit */ -/* 05- MI2C_u8SlaveRx */ -/* 06- MI2C_vSendSlaveADDR */ -/* 07- MI2C_vSendDataByte */ -/* 08- MI2C_vReadDataByte */ -/* 09- MI2C_vGenerateStart */ -/* 10- MI2C_vClearStart */ -/* 11- MI2C_vClearADDR */ -/* 12- MI2C_vGenerateStop */ -/*******************************************************************************************************/ - -/***************************************************************************/ -/* File Includes and Definitions */ -/***************************************************************************/ -#include "../../LIB/BIT_MATH.h" -#include "../../LIB/STD_TYPES.h" -#include "MI2C_Config.h" -#include "MI2C_Private.h" -#include "MI2C_int.h" - - -/***************************************************************************/ -/* Function Implementations */ -/***************************************************************************/ - - - -/*The following is the required sequence in master mode. -• Program the peripheral input clock in I2C_CR2 Register in order to generate correct -timings -• Configure the clock control registers -• Configure the rise time register -• Program the I2C_CR1 register to enable the peripheral -• Set the START bit in the I2C_CR1 register to generate a Start condition -The peripheral input clock frequency must be at least: -• 2 MHz in Sm mode -• 4 MHz in Fm mode -*/ - -void MI2C_vMasterInit(I2CNo_t Copy_I2CNumber){ - - volatile I2C_Mem_Map_t* I2Cx = NULL_PTR; - switch(Copy_I2CNumber){ - case I2C1: I2Cx=I2C1_REG; break; - case I2C2: I2Cx=I2C2_REG; break; - case I2C3: I2Cx=I2C3_REG; break; - - } - - /* disable peripheral for resting all regs */ - CLR_BIT(I2Cx->CR1,CR1_PE); - /* reset the peripheral */ - SET_BIT(I2Cx->CR1,CR1_SWRST); - CLR_BIT(I2Cx->CR1,CR1_SWRST); - - /* PLCK */ - I2Cx->CR2 |= I2C_PCLK ; - - /* configure clock control register */ - /*For instance: in Sm mode, to generate a 100 kHz SCL frequency: - If FREQR = 08, TPCLK1 = 125 ns so CCR must be programmed with 0x28 - (0x28 <=> 40d x 125 ns = 5000 ns*/ - I2Cx->CCR |= 0x50 ; - /* select standard mode */ - CLR_BIT(I2Cx->CCR,CCR_FS); - - /* configure rise time register */ - /*For instance: in Sm mode, the maximum allowed SCL rise time is 1000 ns. - If, in the I2C_CR2 register, the value of FREQ[5:0] bits is equal to 0x08 and TPCLK1 = 125 ns - therefore the TRISE[5:0] bits must be programmed with 09h. - (1000 ns / 125 ns = 8 + 1)*/ - I2Cx->TRISE = 17 ; - - /* Master own address */ - - - /* Peripheral Enable */ - SET_BIT(I2Cx->CR1,CR1_PE); - - - -} -I2C_ERRORSTATS_t MI2C_vMasterTx(I2CNo_t Copy_I2CNumber , u8 Copy_u8SlaveAddress , u8* Copy_u8Data , u8 Copy_u8DataLen,I2C_STOPSTAT_t StopStatus){ - - volatile I2C_Mem_Map_t* I2Cx = NULL_PTR; - switch(Copy_I2CNumber){ - case I2C1: I2Cx=I2C1_REG; break; - case I2C2: I2Cx=I2C2_REG; break; - case I2C3: I2Cx=I2C3_REG; break; - } - /* generate start */ - MI2C_vGenerateStart(I2Cx); - - /* clear start flag */ - MI2C_vClearStart(I2Cx); - - /* send slave address with write */ - //Copy_u8SlaveAddress = Copy_u8SlaveAddress<<1 ; - //Copy_u8SlaveAddress &= ~(1); - //I2Cx->DR= Copy_u8SlaveAddress ; - - MI2C_vSendSlaveADDR(I2Cx, Copy_u8SlaveAddress, WithWrite); - if(GET_BIT(I2Cx->SR1,SR1_AF)){ - return ADDRFAIL; - } - - - - /* clear ADDR flag */ - MI2C_vClearADDR(I2Cx); - u8 Count=0; - while(CountSR1,SR1_BTF) ); - - - Count++; - - } - - if(StopStatus == WithStop) - /* generate stop condition */ - MI2C_vGenerateStop(I2Cx); - return NoError; - -} - -u8 MI2C_u8MasterRx(I2CNo_t Copy_I2CNumber , u8 Copy_u8SlaveAddress, u8* RxData , u8 DataLen ){ - - volatile I2C_Mem_Map_t* I2Cx = NULL_PTR; - switch(Copy_I2CNumber){ - case I2C1: I2Cx=I2C1_REG; break; - case I2C2: I2Cx=I2C2_REG; break; - case I2C3: I2Cx=I2C3_REG; break; - } - /* Generate Start */ - MI2C_vGenerateStart(I2Cx); - /* Clear Start */ - MI2C_vClearStart(I2Cx); - /* send Slave address with read */ - MI2C_vSendSlaveADDR(I2Cx, Copy_u8SlaveAddress, WithRead); - - /* clear ADDR flag */ - MI2C_vClearADDR(I2Cx); - - u8 Count =0; - while(DataLen >2){ - RxData[Count]=MI2C_vReadDataByte(I2Cx); - Count++; - DataLen--; - /* Enable ACK */ - SET_BIT(I2Cx->CR1,CR1_ACK); - - } - /* read the second last data byte */ - RxData[Count]=MI2C_vReadDataByte(I2Cx); - /* Disable ACK */ - CLR_BIT(I2Cx->CR1,CR1_ACK); - /* Generate Stop */ - SET_BIT(I2Cx->SR1,SR1_STOPF); - - /* read last data byte */ - Count++; - RxData[Count]=MI2C_vReadDataByte(I2Cx); - - - - return 0 ; - - -} - -void MI2C_vSlaveInit(I2CNo_t Copy_I2CNumber , u8 Copy_u8SlaveOwnAddress){ - - volatile I2C_Mem_Map_t* I2Cx = NULL_PTR; - switch(Copy_I2CNumber){ - case I2C1: I2Cx=I2C1_REG; break; - case I2C2: I2Cx=I2C2_REG; break; - case I2C3: I2Cx=I2C3_REG; break; - } - - - /* disable peripheral for resting all regs */ - CLR_BIT(I2Cx->CR1,CR1_PE); - /* reset the peripheral */ - SET_BIT(I2Cx->CR1,CR1_SWRST); - CLR_BIT(I2Cx->CR1,CR1_SWRST); - - /* PLCK */ - I2Cx->CR2 |= I2C_PCLK ; - - /* configure clock control register */ - /*For instance: in Sm mode, to generate a 100 kHz SCL frequency: - If FREQR = 08, TPCLK1 = 125 ns so CCR must be programmed with 0x28 - (0x28 <=> 40d x 125 ns = 5000 ns*/ - I2Cx->CCR |= 0x50 ; - /* select standard mode */ - CLR_BIT(I2Cx->CCR,CCR_FS); - - /* configure rise time register */ - /*For instance: in Sm mode, the maximum allowed SCL rise time is 1000 ns. - If, in the I2C_CR2 register, the value of FREQ[5:0] bits is equal to 0x08 and TPCLK1 = 125 ns - therefore the TRISE[5:0] bits must be programmed with 09h. - (1000 ns / 125 ns = 8 + 1)*/ - I2Cx->TRISE = 17 ; - - /* slave own address */ - I2Cx->OAR1 = Copy_u8SlaveOwnAddress<<1 ; - - /* Peripheral Enable */ - SET_BIT(I2Cx->CR1,CR1_PE); - /* enable ACK */ - SET_BIT(I2Cx->CR1,CR1_ACK); - - - -} - -u8 MI2C_u8SlaveRx(I2CNo_t Copy_I2CNumber ){ - - volatile I2C_Mem_Map_t* I2Cx = NULL_PTR; - switch(Copy_I2CNumber){ - case I2C1: I2Cx=I2C1_REG; break; - case I2C2: I2Cx=I2C2_REG; break; - case I2C3: I2Cx=I2C3_REG; break; - } - /* check if the address flag is set */ - //while( !GET_BIT(I2Cx->SR1,SR1_ADDR)); - if( !GET_BIT(I2Cx->SR1,SR1_ADDR)) - return 0; - /* clear ADDR */ - MI2C_vClearADDR(I2Cx); - /* check the RX reg has received data */ - //while( !GET_BIT(I2Cx->SR1,SR1_RXNE)); - /* read DR */ - u8 Local_u8RxData = (u8)I2Cx->DR; - - /* check stop bit flag */ - //while( !GET_BIT(I2Cx->SR1,SR1_STOPF)); - /* clear stop bit flag */ - /* read SR1 */ - u8 Local_u8Dummy = I2Cx->SR1; - (void)Local_u8Dummy; - /*write CR1*/ - SET_BIT(I2Cx->CR1,CR1_STOP); - - return Local_u8RxData ; - -} - - - - -/******************************************************************************************************************************/ - -void MI2C_vSendSlaveADDR(volatile I2C_Mem_Map_t* I2Cx,u8 Copy_u8SlaveAddress,I2C_Dir_t Direction){ - - switch(Direction){ - case(WithWrite): - I2Cx->DR=(Copy_u8SlaveAddress<<1); break; - case(WithRead): - Copy_u8SlaveAddress= Copy_u8SlaveAddress<<1; - Copy_u8SlaveAddress |= 1; - I2Cx -> DR = Copy_u8SlaveAddress ; - break; - - } - -} - -void MI2C_vSendDataByte(volatile I2C_Mem_Map_t* I2Cx , u8 Copy_u8Data){ - - while( !GET_BIT(I2Cx->SR1,SR1_TXE) ); - I2Cx->DR = Copy_u8Data; - // TODO : use BTF ?? - -} - -u8 MI2C_vReadDataByte(volatile I2C_Mem_Map_t* I2Cx){ - - while(!GET_BIT(I2Cx->SR1,SR1_RXNE)); - u8 RxData = I2Cx ->DR ; - return RxData ; -} - -void MI2C_vGenerateStart(volatile I2C_Mem_Map_t* I2Cx){ - /* enable ACK */ - SET_BIT(I2Cx->CR1,CR1_ACK); - - SET_BIT(I2Cx->CR1,CR1_START); - /* hold on start flag until set */ - while( !GET_BIT(I2Cx->SR1,SR1_SB)); - -} - -void MI2C_vClearStart(volatile I2C_Mem_Map_t* I2Cx){ - - u32 Local_u8Dummy = I2Cx->SR1; - (void)Local_u8Dummy; - //TODO - /* writing data ( address ) in DR */ -} - -void MI2C_vClearADDR(volatile I2C_Mem_Map_t* I2Cx){ - - while( !GET_BIT(I2Cx->SR1,SR1_ADDR)); - u32 Local_u8Dummy = I2Cx->SR1; - Local_u8Dummy = I2Cx->SR2; - (void)Local_u8Dummy; -} - -void MI2C_vGenerateStop(volatile I2C_Mem_Map_t* I2Cx){ - - - SET_BIT(I2Cx->CR1,CR1_STOP); - -} - diff --git a/BlackPill_RC/Src/MCAL/MI2C/MI2C_int.h b/BlackPill_RC/Src/MCAL/MI2C/MI2C_int.h deleted file mode 100644 index e6fa2bc..0000000 --- a/BlackPill_RC/Src/MCAL/MI2C/MI2C_int.h +++ /dev/null @@ -1,194 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Omar */ -/* Version : V0.0.0 */ -/* Data : 28 Jan 2024 */ -/* Description : MI2C_Interface.h --> implementations */ -/* Module Features : */ -/* 01- MI2C_MasterInit */ -/* 02- MI2C_MasterTx */ -/* 03- MI2C_MasterRx */ -/* 04- MI2C_SlaveInit */ -/* 05- MI2C_SlaveRx */ -/* 06- MI2C_SendSlaveADDR */ -/* 07- MI2C_SendDataByte */ -/* 08- MI2C_ReadDataByte */ -/* 09- MI2C_GenerateStart */ -/* 10- MI2C_ClearStart */ -/* 11- MI2C_ClearADDR */ -/* 12- MI2C_GenerateStop */ -/*******************************************************************************************************/ - -/* test */ - -/***************************************************************************/ -/* File Guard Will Call On Time in .c File */ -/***************************************************************************/ -#ifndef MCAL_MI2C_MI2C_INT_H_ -#define MCAL_MI2C_MI2C_INT_H_ - -#include "MI2C_Private.h" - -/*----------------------------------------------------------------------------------------------------*/ -/* I2C_Number */ -/*----------------------------------------------------------------------------------------------------*/ -typedef enum { - - I2C1, - I2C2, - I2C3 -} I2CNo_t; - -/*----------------------------------------------------------------------------------------------------*/ -/* I2C_Direction */ -/*----------------------------------------------------------------------------------------------------*/ -typedef enum { - - WithWrite, - WithRead -} I2C_Dir_t; - -/*----------------------------------------------------------------------------------------------------*/ -/* I2C_STOPSTAT */ -/*----------------------------------------------------------------------------------------------------*/ -typedef enum { - - WithStop, - WithoutStop -} I2C_STOPSTAT_t; - -/*----------------------------------------------------------------------------------------------------*/ -/* I2C_ERRORSTATS */ -/*----------------------------------------------------------------------------------------------------*/ -typedef enum { - - ADDRFAIL, - NoError -} I2C_ERRORSTATS_t; - -/**************************** User APIs *************************************/ - -/*----------------------------------------------------------------------------------------------------*/ -/* 01- MI2C_MasterInit */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Initialize I2C as Master. */ -/* 2- Function Input -> @param Copy_I2CNumber = I2C1, I2C2, I2C3 */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MI2C_vMasterInit(I2CNo_t Copy_I2CNumber); - -/*----------------------------------------------------------------------------------------------------*/ -/* 02- MI2C_MasterTx */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Perform I2C Master transmission. */ -/* 2- Function Input -> @param Copy_I2CNumber = I2C1, I2C2, I2C3 */ -/* @param Copy_u8SlaveAddress = Slave address */ -/* @param Copy_u8Data = Pointer to Data to be transmitted */ -/* @param Copy_u8DataLen = Length of the data */ -/* @param StopStatus = WithStop or WithoutStop */ -/* 3- Function Return -> I2C_ERRORSTATS_t (Error status) */ -/*----------------------------------------------------------------------------------------------------*/ -I2C_ERRORSTATS_t MI2C_vMasterTx(I2CNo_t Copy_I2CNumber, u8 Copy_u8SlaveAddress, u8* Copy_u8Data, u8 Copy_u8DataLen, I2C_STOPSTAT_t StopStatus); - -/*----------------------------------------------------------------------------------------------------*/ -/* 03- MI2C_MasterRx */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Perform I2C Master reception. */ -/* 2- Function Input -> @param Copy_I2CNumber = I2C1, I2C2, I2C3 */ -/* @param Copy_u8SlaveAddress = Slave address */ -/* @param RxData = Pointer to the received data buffer */ -/* @param DataLen = Length of the data buffer */ -/* 3- Function Return -> u8 (Received data) */ -/*----------------------------------------------------------------------------------------------------*/ -u8 MI2C_u8MasterRx(I2CNo_t Copy_I2CNumber, u8 Copy_u8SlaveAddress, u8* RxData, u8 DataLen); - -/*----------------------------------------------------------------------------------------------------*/ -/* 04- MI2C_SlaveInit */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Initialize I2C as Slave. */ -/* 2- Function Input -> @param Copy_I2CNumber = I2C1, I2C2, I2C3 */ -/* @param Copy_u8SlaveOwnAddress = Slave's own address */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MI2C_vSlaveInit(I2CNo_t Copy_I2CNumber, u8 Copy_u8SlaveOwnAddress); - -/*----------------------------------------------------------------------------------------------------*/ -/* 05- MI2C_SlaveRx */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Perform I2C Slave reception. */ -/* 2- Function Input -> @param Copy_I2CNumber = I2C1, I2C2, I2C3 */ -/* 3- Function Return -> u8 (Received data) */ -/*----------------------------------------------------------------------------------------------------*/ -u8 MI2C_u8SlaveRx(I2CNo_t Copy_I2CNumber); - - - - -/************************* Helping APIs *************************************/ - -/*----------------------------------------------------------------------------------------------------*/ -/* 06- MI2C_SendSlaveADDR */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Send slave address in the specified direction. */ -/* 2- Function Input -> @param I2Cx = I2C memory map structure */ -/* @param Copy_u8SlaveAddress = Slave address */ -/* @param Direction = WithWrite or WithRead */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MI2C_vSendSlaveADDR(volatile I2C_Mem_Map_t* I2Cx, u8 Copy_u8SlaveAddress, I2C_Dir_t Direction); - -/*----------------------------------------------------------------------------------------------------*/ -/* 07- MI2C_SendDataByte */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Send a data byte on the I2C bus. */ -/* 2- Function Input -> @param I2Cx = I2C memory map structure */ -/* @param Copy_u8Data = Data to be transmitted */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MI2C_vSendDataByte(volatile I2C_Mem_Map_t* I2Cx, u8 Copy_u8Data); - -/*----------------------------------------------------------------------------------------------------*/ -/* 08- MI2C_ReadDataByte */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Read a data byte from the I2C bus. */ -/* 2- Function Input -> @param I2Cx = I2C memory map structure */ -/* 3- Function Return -> u8 (Received data) */ -/*----------------------------------------------------------------------------------------------------*/ -u8 MI2C_vReadDataByte(volatile I2C_Mem_Map_t* I2Cx); - -/*----------------------------------------------------------------------------------------------------*/ -/* 09- MI2C_GenerateStart */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Generate a START condition on the I2C bus. */ -/* 2- Function Input -> @param I2Cx = I2C memory map structure */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MI2C_vGenerateStart(volatile I2C_Mem_Map_t* I2Cx); - -/* 10- MI2C_ClearStart */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Clear the START condition on the I2C bus. */ -/* 2- Function Input -> @param I2Cx = I2C memory map structure */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MI2C_vClearStart(volatile I2C_Mem_Map_t* I2Cx); - -/*----------------------------------------------------------------------------------------------------*/ -/* 11- MI2C_ClearADDR */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Clear the ADDR flag in I2C_SR1 register. */ -/* 2- Function Input -> @param I2Cx = I2C memory map structure */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MI2C_vClearADDR(volatile I2C_Mem_Map_t* I2Cx); - -/*----------------------------------------------------------------------------------------------------*/ -/* 12- MI2C_GenerateStop */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Generate a STOP condition on the I2C bus. */ -/* 2- Function Input -> @param I2Cx = I2C memory map structure */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MI2C_vGenerateStop(volatile I2C_Mem_Map_t* I2Cx); - -#endif /* MCAL_MI2C_MI2C_INT_H_ */ - diff --git a/BlackPill_RC/Src/MCAL/MIWDT/MIWDT_Config.h b/BlackPill_RC/Src/MCAL/MIWDT/MIWDT_Config.h deleted file mode 100644 index 89c7311..0000000 --- a/BlackPill_RC/Src/MCAL/MIWDT/MIWDT_Config.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * MIWDT_Config.h - * - * Created on: Dec 6, 2023 - * Author: Omar - */ - -#ifndef MCAL_MIWDT_MIWDT_CONFIG_H_ -#define MCAL_MIWDT_MIWDT_CONFIG_H_ - -/* - * OPTIONS FOR TIMEOUT ARE : - * - * HALF_SEC - * _1_SEC - * _2_SEC - * _4_SEC - * _8_SEC - * _16_SEC - * _32_SEC - * - * */ - -#define TIMEOUT _8_SEC - -#endif /* MCAL_MIWDT_MIWDT_CONFIG_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MIWDT/MIWDT_Private.h b/BlackPill_RC/Src/MCAL/MIWDT/MIWDT_Private.h deleted file mode 100644 index efb2ce5..0000000 --- a/BlackPill_RC/Src/MCAL/MIWDT/MIWDT_Private.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * MIWDT_Private.h - * - * Created on: Dec 6, 2023 - * Author: Omar - */ - -#ifndef MCAL_MIWDT_MIWDT_PRIVATE_H_ -#define MCAL_MIWDT_MIWDT_PRIVATE_H_ - - -/********************* IWDG BASE ADDRESS ******************************/ - -#define IWDG_BASE_ADDRESS (0x40003000) - - - -/********************* IWDG REGISTERS *******************************/ - -typedef struct { - - u32 KR ; - u32 PR ; - u32 RLR ; - u32 SR ; - -} IWDG_Mem_Map_t; - -/********************* POINTER TO REG ******************************/ - -#define IWDG ((volatile IWDG_Mem_Map_t*)(IWDG_BASE_ADDRESS)) - -/********************** IWDG KEYS **************************/ - -#define IWDG_ENABLE_KEY (0x0000CCCC) -#define IWDG_RELOAD_KEY (0x0000AAAA) -#define IWDG_REG_MODIFY_KEY (0x00005555) - -/*********************** SOME PIN NUMBERS ************************/ - -#define SR_PVU 0 -#define SR_RVU 1 - - -#endif /* MCAL_MIWDT_MIWDT_PRIVATE_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MIWDT/MIWDT_Prog.c b/BlackPill_RC/Src/MCAL/MIWDT/MIWDT_Prog.c deleted file mode 100644 index f84d4fa..0000000 --- a/BlackPill_RC/Src/MCAL/MIWDT/MIWDT_Prog.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - * MIWDT.c - * - * Created on: Dec 6, 2023 - * Author: Omar - */ -#include"../../LIB/STD_TYPES.h" -#include "../../LIB/BIT_MATH.h" - -#include"MIWDT_Private.h" -#include"MIWDT_int.h" -#include"MIWDT_Config.h" - -/*, it is mandatory to wait -until RVU bit is reset before changing the reload value and to wait until PVU bit is reset -before changing the prescaler value -*/ - - - -void MIWDG_vStart( u8 Local_u8TimeOut){ - - - - /* start */ - IWDG->KR=IWDG_ENABLE_KEY; - /* Enable accesssing */ - IWDG->KR=IWDG_REG_MODIFY_KEY; - /* check if there is onging prescaler change */ - //while(GET_BIT(IWDG->SR,SR_PVU)==1); - /* set prescaler */ - IWDG->PR=Local_u8TimeOut; - - /* check if there is onging relaod change */ - //while(GET_BIT(IWDG->SR,SR_RVU)); - /* set the reload value */ - IWDG->RLR=0xFFF; - while(GET_BIT(IWDG->SR,SR_PVU)==1 || GET_BIT(IWDG->SR,SR_RVU)==1 ); - IWDG->KR = IWDG_RELOAD_KEY; // Reload the watchdog - //IWDG->KR = 0xCCCC; // Start the watchdog - -} - -void MIWDG_vReload(){ - - - - /* Reload Key */ - IWDG -> KR = IWDG_RELOAD_KEY; - - -} diff --git a/BlackPill_RC/Src/MCAL/MIWDT/MIWDT_int.h b/BlackPill_RC/Src/MCAL/MIWDT/MIWDT_int.h deleted file mode 100644 index eed8843..0000000 --- a/BlackPill_RC/Src/MCAL/MIWDT/MIWDT_int.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * MIWDT_int.h - * - * Created on: Dec 6, 2023 - * Author: Omar - */ - -#ifndef MCAL_MIWDT_MIWDT_INT_H_ -#define MCAL_MIWDT_MIWDT_INT_H_ - -/*************** PRESCALERS OPTIONS ***********************/ - -#define HALF_SEC 0 -#define _1_SEC 1 -#define _2_SEC 2 -#define _4_SEC 3 -#define _8_SEC 4 -#define _16_SEC 5 -#define _32_SEC 6 - - - -/**************** Functions Prototypes *********************/ - -void MIWDG_vStart( u8 Local_u8TimeOut); - -void MIWDG_vReload(); - - -#endif /* MCAL_MIWDT_MIWDT_INT_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MNVIC/MNVIC_Config.h b/BlackPill_RC/Src/MCAL/MNVIC/MNVIC_Config.h deleted file mode 100644 index 8d00849..0000000 --- a/BlackPill_RC/Src/MCAL/MNVIC/MNVIC_Config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * MNVIC_Config.h - * - * Created on: Oct 31, 2023 - * Author: Omar - */ - -#ifndef MCAL_MNVIC_MNVIC_CONFIG_H_ -#define MCAL_MNVIC_MNVIC_CONFIG_H_ - -/****************************************************/ -/* GROUPING OPTIONS ARE : GP0SUB16 */ -/* GP2SUB8 */ -/* GP4SUB4 */ -/* GP8SUB2 */ -/* GP16SUB0 */ -/****************************************************/ - -#define MNVIC_GROUPING GP4SUB4 - -#endif /* MCAL_MNVIC_MNVIC_CONFIG_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MNVIC/MNVIC_Private.h b/BlackPill_RC/Src/MCAL/MNVIC/MNVIC_Private.h deleted file mode 100644 index 0d2fce1..0000000 --- a/BlackPill_RC/Src/MCAL/MNVIC/MNVIC_Private.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * MNVIC_Private.h - * - * Created on: Oct 31, 2023 - * Author: Omar - */ - -#ifndef MCAL_MNVIC_MNVIC_PRIVATE_H_ -#define MCAL_MNVIC_MNVIC_PRIVATE_H_ - -/*********************************** REGISTERS AND ADDRESSES ************************************/ - -/*************** NVIC BASE ADDRES ***************/ -#define MNVIC_BASE_ADDR (0xE000E100) - - -/********************** NVIC REGISTERS ***************************/ -typedef struct { - - u32 ISER[8]; - u32 Reserved2[24]; - u32 ICER[8]; - u32 Reserved3[24]; - u32 ISPR[8]; - u32 Reserved4[24]; - u32 ICPR[8]; - u32 Reserved5[24]; - u32 IABR[8]; - u32 Reserved6[56]; - u8 IPR[60]; - u32 Reserved7[240]; - u32 STIR; - -}MNVIC_Mem_Map_t; - -/******************* Pointer to struct ***************/ -#define NVIC ((volatile MNVIC_Mem_Map_t*)MNVIC_BASE_ADDR) - -#define SCB_AIRCR *((volatile u32*)(0xE000ED0C)) - -#define VECTKEY (0x05FA0000) - -#endif /* MCAL_MNVIC_MNVIC_PRIVATE_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MNVIC/MNVIC_Prog.c b/BlackPill_RC/Src/MCAL/MNVIC/MNVIC_Prog.c deleted file mode 100644 index 525cf56..0000000 --- a/BlackPill_RC/Src/MCAL/MNVIC/MNVIC_Prog.c +++ /dev/null @@ -1,91 +0,0 @@ -/* - * MNVIC_Prog.c - * - * Created on: Oct 31, 2023 - * Author: Omar - */ - -#include "../../LIB/BIT_MATH.h" -#include "../../LIB/STD_TYPES.h" - -#include"MNVIC_Config.h" -#include"MNVIC_Private.h" -#include"MNVIC_int.h" - - -static MNVIC_Priority_GP Global_u8GPMode ; - -void MNVIC_vEnableInterrupt(Enum_MNVIC_NUM_t Copy_u8InterruptNo){ - - /* note : writing 0 to any bit has no effect so we can u atomic instruction like BSSR */ - SET_BIT_FAST( NVIC->ISER[ (Copy_u8InterruptNo/32) ] , (Copy_u8InterruptNo % 32) ); -} - -void MNVIC_vDisableInterrupt(u8 Copy_u8InterruptNo){ - - /* note : writing 0 to any bit has no effect so we can u atomic instruction like BSSR */ - SET_BIT_FAST( NVIC->ICER[ (Copy_u8InterruptNo/32) ] , (Copy_u8InterruptNo % 32) ); - -} - -void MNVIC_vSetPendingFlag (u8 Copy_u8InterruptNo){ - - /* note : writing 0 to any bit has no effect so we can u atomic instruction like BSSR */ - SET_BIT_FAST( NVIC->ISPR[ (Copy_u8InterruptNo/32) ] , (Copy_u8InterruptNo % 32) ); -} - -void MNVIC_vClearPendingFlag (u8 Copy_u8InterruptNo){ - - /* note : writing 0 to any bit has no effect so we can u atomic instruction like BSSR */ - SET_BIT_FAST( NVIC->ICPR[ (Copy_u8InterruptNo/32) ] , (Copy_u8InterruptNo % 32) ); -} - -u8 MNVIC_u8ReadActiveFlag( u8 Copy_u8InterruptNo ){ - - u8 Local_u8Flag = 0 ; - Local_u8Flag = GET_BIT( NVIC->IABR[ (Copy_u8InterruptNo/32) ] , (Copy_u8InterruptNo % 32) ); - return Local_u8Flag; - -} - -void MNVIC_vInitGrouping(MNVIC_Priority_GP Copy_u8Grouping){ - - SCB_AIRCR = (VECTKEY) | (Copy_u8Grouping<<8) ; - Global_u8GPMode= Copy_u8Grouping; -} - -void MNVIC_vSetIntPriority( u8 Copy_u8InterruptNo , MNVIC_GP_Options Copy_u8GP , MNVIC_SUB_Options Copy_u8SUB ){ - - switch(Global_u8GPMode){ - case GP0SUB16 : - NVIC -> IPR[Copy_u8InterruptNo] = (Copy_u8SUB<<4); break; - case GP2SUB8 : - NVIC -> IPR[Copy_u8InterruptNo] = ( (Copy_u8GP<<7)|(Copy_u8SUB<<4) ); break; - case GP4SUB4 : - NVIC -> IPR[Copy_u8InterruptNo] = ( (Copy_u8GP<<6)|(Copy_u8SUB<<4) ); break; - case GP8SUB2 : - NVIC -> IPR[Copy_u8InterruptNo] = ( (Copy_u8GP<<5)|(Copy_u8SUB<<4) ); break; - case GP16SUB0 : - NVIC -> IPR[Copy_u8InterruptNo] = (Copy_u8GP<<4) ; break; - - } - - /*u8 L_u8PrioValue = 0; - switch(Global_u8GPMode){ - case GP16SUB0 : L_u8PrioValue = Copy_u8GP; break; - case GP8SUB2 : L_u8PrioValue = (Copy_u8GP << 1) | Copy_u8SUB; break; - case GP4SUB4 : L_u8PrioValue = (Copy_u8GP << 2) | Copy_u8SUB; break; - case GP2SUB8 : L_u8PrioValue = (Copy_u8GP << 3) | Copy_u8SUB; break; - case GP0SUB16 : L_u8PrioValue = Copy_u8SUB; break; - } - - NVIC->IPR[Copy_u8InterruptNo] = L_u8PrioValue << 4;*/ - -} - -void MNVIC_vTrigSoftwareInt( u8 Copy_u8InterruptNo ){ - - NVIC -> STIR |= Copy_u8InterruptNo ; - -} - diff --git a/BlackPill_RC/Src/MCAL/MNVIC/MNVIC_int.h b/BlackPill_RC/Src/MCAL/MNVIC/MNVIC_int.h deleted file mode 100644 index 8de09c4..0000000 --- a/BlackPill_RC/Src/MCAL/MNVIC/MNVIC_int.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - * MNVIC_int.h - * - * Created on: Oct 31, 2023 - * Author: Omar - */ - -#ifndef MCAL_MNVIC_MNVIC_INT_H_ -#define MCAL_MNVIC_MNVIC_INT_H_ - -/*typedef enum { - - WWDG, - EXTI16, - EXTI - -} Enum_IntNames_t;*/ - -typedef enum { - - GP16SUB0=3, - GP8SUB2, - GP4SUB4, - GP2SUB8, - GP0SUB16 -} MNVIC_Priority_GP; - - -typedef enum{ - NVIC_WWDG=0, - NVIC_EXTI16, - NVIC_EXTI21, - NVIC_EXTI22, - NVIC_FLASH, - NVIC_RCC, - NVIC_EXTI0, - NVIC_EXTI1, - NVIC_EXTI2, - NVIC_EXTI3, - NVIC_EXTI4, - NVIC_DMA1_Stream0, - NVIC_DMA1_Stream1, - NVIC_DMA1_Stream2, - NVIC_DMA1_Stream3, //14 - NVIC_DMA1_Stream4, - NVIC_DMA1_Stream5, - NVIC_DMA1_Stream6, - NVIC_ADC, - NVIC_EXTI9_5 = 23, - NVIC_TIM1_BRK_TIM9, - NVIC_TIM1_UP_TIM10, - NVIC_TIM1_TRG_COM_TIM11, - NVIC_TIM1_CC, - NVIC_TIM2, - NVIC_TIM3, - NVIC_TIM4, - NVIC_I2C1_EV, - NVIC_I2C1_ER, - NVIC_I2C2_EV, - NVIC_I2C2_ER, - NVIC_SPI1, - NVIC_SPI2, - NVIC_USART1, - NVIC_USART2, - NVIC_EXTI15_10 = 40, - NVIC_EXTI17, - NVIC_EXTI18, - NVIC_DMA1_Stream7 =47, - NVIC_SDIO =49, - NVIC_TIM5, - NVIC_SPI3, - NVIC_DMA2_Stream0 =56, - NVIC_DMA2_Stream1, - NVIC_DMA2_Stream2, - NVIC_DMA2_Stream3, - NVIC_DMA2_Stream4, - NVIC_OTG_FS =67, - NVIC_DMA2_Stream5, - NVIC_DMA2_Stream6, - NVIC_DMA2_Stream7, - NVIC_USART6, - NVIC_I2C3_EV, - NVIC_I2C3_ER, - NVIC_FPU =81, - NVIC_SPI4 =84, -}Enum_MNVIC_NUM_t; - -typedef enum { - - GP0,GP1,GP2,GP3,GP4,GP5,GP6,GP7,GP8,GP9,GP10,GP11,GP12,GP13,GP14,GP15 -} MNVIC_GP_Options; - -typedef enum { - - SUB0,SUB1,SUB2,SUB3,SUB4,SUB5,SUB6,SUB7,SUB8,SUB9,SUB10,SUB11,SUB12,SUB13,SUB14,SUB15 - -} MNVIC_SUB_Options ; - - - -void MNVIC_vEnableInterrupt(u8 Copy_u8InterruptNo); - -void MNVIC_vDisableInterrupt(u8 Copy_u8InterruptNo); - -void MNVIC_vSetPendingFlag (u8 Copy_u8InterruptNo); - -void MNVIC_vClearPendingFlag (u8 Copy_u8InterruptNo); - -u8 MNVIC_u8ReadActiveFlag( u8 Copy_u8InterruptNo ); - -void MNVIC_vInitGrouping(MNVIC_Priority_GP Copy_u8Grouping); - -void MNVIC_vSetIntPriority( u8 Copy_u8InterruptNo , MNVIC_GP_Options Copy_u8GP , MNVIC_SUB_Options Copy_u8SUB ); - -void MNVIC_vTrigSoftwareInt( u8 Copy_u8InterruptNo ); - -#endif /* MCAL_MNVIC_MNVIC_INT_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MRCC/MRCC_Config.h b/BlackPill_RC/Src/MCAL/MRCC/MRCC_Config.h deleted file mode 100644 index 0bc6109..0000000 --- a/BlackPill_RC/Src/MCAL/MRCC/MRCC_Config.h +++ /dev/null @@ -1,15 +0,0 @@ -/* - * MRCC_Config.h - * - * Created on: Nov 5, 2023 - * Author: Hardware - */ - -#ifndef MCAL_MRCC_MRCC_CONFIG_H_ -#define MCAL_MRCC_MRCC_CONFIG_H_ - -#define RCC_SYS_CLK RCC_HSI - -#define RCC_CSS_ENABLE ENABLE - -#endif /* MCAL_MRCC_MRCC_CONFIG_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MRCC/MRCC_Int.h b/BlackPill_RC/Src/MCAL/MRCC/MRCC_Int.h deleted file mode 100644 index 33be692..0000000 --- a/BlackPill_RC/Src/MCAL/MRCC/MRCC_Int.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * MRCC_Int.h - * - * Created on: Nov 5, 2023 - * Author: Hardware - */ - -#ifndef MCAL_MRCC_MRCC_INT_H_ -#define MCAL_MRCC_MRCC_INT_H_ - - -typedef enum { - /* AHB1 */ - GPIOA_EN = 0, - GPIOB_EN, - GPIOC_EN, - CRC_EN = 12, - DMA1_EN = 21, - DMA2_EN, - - /* AHB2 */ - OTGFS_EN = (7 + 32), - /* APB1 */ - TIM2_EN = (0 + 64), - TIM3_EN, - TIM4_EN, - TIM5_EN, - WWDG_EN = (11 + 64), - SPI2_EN = (14 + 64), - SPI3_EN, - USART2_EN = (17 + 64), - I2C1_EN = (21 + 64), - I2C2_EN, - I2C3_EN, - PWR_EN = (28 + 64), - - /* APB2 */ - TIM1_EN = (0 + 96), - USART1_EN = (4 + 96), - USART6_EN, - ADC1_EN = (8 + 96), - SPI1_EN = (12 + 96), - SPI4_EN, - SYSCFG_EN, - TIM9_EN = (16 + 96), - TIM10_EN, - TIM11_EN -} PeripheralEnable_t; - -void MRCC_vInit(void); - -void MRCC_vEnableClock(PeripheralEnable_t Copy_u8PeripheralNo); - -void MRCC_vDisableClock(PeripheralEnable_t Copy_u8PeripheralNo); - - - -#endif /* MCAL_MRCC_MRCC_INT_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MRCC/MRCC_Private.h b/BlackPill_RC/Src/MCAL/MRCC/MRCC_Private.h deleted file mode 100644 index 4fa6a67..0000000 --- a/BlackPill_RC/Src/MCAL/MRCC/MRCC_Private.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * MRCC_Private.h - * - * Created on: Nov 5, 2023 - * Author: Hardware - */ - -#ifndef MCAL_MRCC_MRCC_PRIVATE_H_ -#define MCAL_MRCC_MRCC_PRIVATE_H_ - -#include"../../LIB/BIT_MATH.h" -#include "../../LIB/STD_TYPES.h" - -// RCC Base Address -#define RCC_Base_Add 0x40023800 - - - -#define RCC_HSE 0 -#define RCC_HSI 1 -#define RCC_PLL 2 - -/* CR: Clock Control Register */ -#define HSEON 16 -#define HSEBYP 18 -#define CSSON 19 -#define HSION 0 -#define PLLON 24 -#define HSIRDY 1 -#define HSERDY 17 -#define PLLRDY 25 - -/*CFGR: Clock Configuration Register*/ -#define SW0 0 -#define SW1 1 -#define SWS0 2 -#define SWS1 3 -#define SWS_HSI 0 -#define SWS_HSE 1 -#define SWS_PLL 2 - - -typedef struct{ - - u32 CR; - u32 PLLCFGR; - u32 CFGR; - u32 CIR; - u32 AHB1RSTR; - u32 AHB2RSTR; - u32 Reserved1; - u32 Reserved2; - u32 APB1RSTR; - u32 APB2RSTR; - u32 Reserved3; - u32 Reserved4; - u32 AHB1ENR; - u32 AHB2ENR; - u32 Reserved5; - u32 Reserved6; - u32 APB1ENR; - u32 APB2ENR; - u32 Reserved7; - u32 Reserved8; - u32 AHB1LPENR; - u32 AHB2LPENR; - u32 Reserved9; - u32 Reserved10; - u32 APB1LPENR; - u32 APB2LPENR; - u32 Reserved11; - u32 Reserved12; - u32 BDCR; - u32 CSR; - u32 Reserved13; - u32 Reserved14; - u32 SSCGR; - u32 PLLI2SCFGR; - u32 Reserved15; - u32 DCKCFGR; - -}RCC_MemMap_t; - -#define RCC ((volatile RCC_MemMap_t*) (RCC_Base_Add)) - - -#endif /* MCAL_MRCC_MRCC_PRIVATE_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MRCC/MRCC_Prog.c b/BlackPill_RC/Src/MCAL/MRCC/MRCC_Prog.c deleted file mode 100644 index 69b35c6..0000000 --- a/BlackPill_RC/Src/MCAL/MRCC/MRCC_Prog.c +++ /dev/null @@ -1,84 +0,0 @@ -/* - * MRCC_Prog.c - - * - * Created on: Nov 5, 2023 - * Author: Hardware - */ - -#include"MRCC_Config.h" -#include"MRCC_Private.h" -#include"MRCC_Int.h" - -void MRCC_vInit(void){ - /*CSS (ON/OFF)*/ - -#if RCC_SYS_CLK == RCC_HSE - //HSEBYP CLR -> Oscillator is Enabled 'Not Bypassed' - CLR_BIT(RCC->CR,HSEBYP); - //Enable Selected Clock - SET_BIT(RCC->CR,HSEON); - // Wait Until HSE is ready "Clock is working properly" - while( !GET_BIT(RCC->CR,HSERDY) ); - //Select System Clock - CLR_SET(RCC->CFGR,SW0); - //Wait until HSE is used as system clock source - while( GET_2BITS(RCC->CFGR,SWS0) != SWS_HSE ); -#elif RCC_SYS_CLK == RCC_HSI - //Enable Selected Clock - SET_BIT(RCC->CR,HSION); - // Wait Until HSI is ready "Clock is working properly" - while( !GET_BIT(RCC->CR,HSIRDY) ); - //Select System Clock - CLR_2BITS(RCC->CFGR,SW0); - //Wait until HSI is used as system clock source - while( GET_2BITS(RCC->CFGR,SWS0) != SWS_HSI ); -#elif RCC_SYS_CLK == RCC_PLL - //Select Clock - SET_CLR(RCC->CFGR,SW0); - //Wait until PLL is used as system clock source - //while( GET_2BITS(RCC->CFGR,SWS0) != SWS_PLL ); - //Enable Selected Clock - SET_BIT(RCC->CR,PLLON); - // Wait Until PLL is ready "Clock is working properly" - while( !GET_BIT(RCC->CR,PLLRDY) ); -#endif - -} - -void MRCC_vEnableClock(PeripheralEnable_t Copy_u8PeripheralNo){ - if(Copy_u8PeripheralNo >= 96){ - Copy_u8PeripheralNo -= 96; - SET_BIT(RCC->APB2ENR,Copy_u8PeripheralNo); - } - else if(Copy_u8PeripheralNo >= 64){ - Copy_u8PeripheralNo -= 64; - SET_BIT(RCC->APB1ENR,Copy_u8PeripheralNo); - } - else if(Copy_u8PeripheralNo >= 32){ - Copy_u8PeripheralNo -= 32; - SET_BIT(RCC->AHB2ENR,Copy_u8PeripheralNo); - } - else{ - SET_BIT(RCC->AHB1ENR,Copy_u8PeripheralNo);} -} - -void MRCC_vDisableClock(PeripheralEnable_t Copy_u8PeripheralNo){ - if(Copy_u8PeripheralNo >= 96){ - Copy_u8PeripheralNo -= 96; - CLR_BIT(RCC->APB2ENR,Copy_u8PeripheralNo); - } - else if(Copy_u8PeripheralNo >= 64){ - Copy_u8PeripheralNo -= 64; - CLR_BIT(RCC->APB1ENR,Copy_u8PeripheralNo); - } - else if(Copy_u8PeripheralNo >= 32){ - Copy_u8PeripheralNo -= 32; - CLR_BIT(RCC->AHB2ENR,Copy_u8PeripheralNo); - } - else{ - CLR_BIT(RCC->AHB1ENR,Copy_u8PeripheralNo);}; -} - - - diff --git a/BlackPill_RC/Src/MCAL/MSPI/MSPI_Config.h b/BlackPill_RC/Src/MCAL/MSPI/MSPI_Config.h deleted file mode 100644 index 57b399a..0000000 --- a/BlackPill_RC/Src/MCAL/MSPI/MSPI_Config.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * MSPI_Confing.h - * - * Created on: Dec 1, 2023 - * Author: Omar - */ - -#ifndef MCAL_MSPI_MSPI_CONFIG_H_ -#define MCAL_MSPI_MSPI_CONFIG_H_ - -/************** DATA FRAME ******************/ - -/* - * OPTIONS ARE : - * 1- FRAME_8_BIT - * 2- FRAME_16_BIT - * */ -#define DATA_FRAME FRAME_8_BIT - -/*************** BAUD RATE *************/ -// IN MASTER ONLY - -/* - * OPTIONS ARE : - * 000: fPCLK/2 - * 001: fPCLK/4 - * 010: fPCLK/8 - * 011: fPCLK/16 - * 100: fPCLK/32 - * 101: fPCLK/64 - * 110: fPCLK/128 - * 111: fPCLK/256 - * */ - -#define BAUD_RATE DIV8 - -#endif /* MCAL_MSPI_MSPI_CONFIG_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MSPI/MSPI_Private.h b/BlackPill_RC/Src/MCAL/MSPI/MSPI_Private.h deleted file mode 100644 index fc571c9..0000000 --- a/BlackPill_RC/Src/MCAL/MSPI/MSPI_Private.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************/ -/* Author : Omar Wael */ -/* Version : V0.0.0 */ -/* Date : 1 Dec 2023 */ -/* Description : Driver Functions Implementation */ -/* Features : Register Definition */ -/***************************************************************************/ - -/***************************************************************************/ -/* File Guard Will Call On Time in .c File */ -/***************************************************************************/ -#ifndef MCAL_MSPI_MSPI_PRIVATE_H_ -#define MCAL_MSPI_MSPI_PRIVATE_H_ - -/***************************************************************************/ -/* SPIs BASE ADDRESS */ -/***************************************************************************/ -#define SPI1_BASE_ADD (0x40013000) -#define SPI2_BASE_ADD (0x40003800) -#define SPI3_BASE_ADD (0x40003C00) -#define SPI4_BASE_ADD (0x40013400) - -/**************************************************************************/ -/* Register Definition :- */ -/* Features : Private File Can`t Be Edit By User */ -/* Description :- */ -/* - #define : YES */ -/* - union : NO */ -/* - struct : YEs */ -/**************************************************************************/ -/***************************************************************************/ -/* SPI REGISTERS MAP */ -/***************************************************************************/ -typedef struct{ - - u32 CR1; - u32 CR2 ; - u32 SR ; - u32 DR ; - u32 CRCPR ; - u32 RXCRCR ; - u32 TXCRCR ; - u32 I2SCFGR ; - u32 I2SPR ; - - -} SPI_Mem_Map_t; - -/***************************************************************************/ -/* POINTER TO SPI REGISTER */ -/***************************************************************************/ -#define SPI1 ((volatile SPI_Mem_Map_t*)(SPI1_BASE_ADD)) -#define SPI2 ((volatile SPI_Mem_Map_t*)(SPI2_BASE_ADD)) -#define SPI3 ((volatile SPI_Mem_Map_t*)(SPI3_BASE_ADD)) -#define SPI4 ((volatile SPI_Mem_Map_t*)(SPI4_BASE_ADD)) - -/***************************************************************************/ -/* SOME BITS NUMBERS */ -/***************************************************************************/ -#define CR1_BIDIMODE 15 -#define CR1_DFF 11 -#define CR1_SSM 9 -#define CR1_SSI 8 -#define CR1_SPE 6 -#define CR1_BR 3 -#define CR1_MSTR 2 - -#define CR2_TXEIE 7 -#define CR2_RXNEIE 6 -#define CR2_SSOE 2 - -#define SR_BSY 7 -#define SR_TXE 1 -#define SR_RXNE 0 - -#endif /* MCAL_MSPI_MSPI_PRIVATE_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MSPI/MSPI_Prog.c b/BlackPill_RC/Src/MCAL/MSPI/MSPI_Prog.c deleted file mode 100644 index f757adb..0000000 --- a/BlackPill_RC/Src/MCAL/MSPI/MSPI_Prog.c +++ /dev/null @@ -1,280 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Omar Wael */ -/* Version : V0.0.0 */ -/* Data : 1 Dec 2023 */ -/* Description : MSPI_Interface.c --> implementations */ -/* Module Features : */ -/* 01- MSPI_MasterInit */ -/* 02- MSPI_SlaveInit */ -/* 03- MSPI_EnableRxInt */ -/* 04- MSPI_EnableTxInt */ -/* 05- MSPI_MasterTransceiver */ -/* 06- MSPI_SlaveTransceiver */ -/* 07- MSPI_SetTxCallBackFunc */ -/* 08- MSPI_SetRxCallBackFunc */ -/* 09- MSPI_ReadRecievedData */ -/*******************************************************************************************************/ - -/***************************************************************************/ -/* File Includes and Definitions */ -/***************************************************************************/ -#include "../../LIB/BIT_MATH.h" -#include "../../LIB/STD_TYPES.h" - -#include"MSPI_Private.h" -#include"MSPI_int.h" -#include "MSPI_Config.h" -#include"../MGPIO/MGPIO_int.h" - -static void(*SPIx_pvTxcallback[4])(void)={STD_NULL}; -static void(*SPIx_pvRXcallback[4])(void)={STD_NULL}; - -void MSPI_vMasterInit( u8 Local_u8SPINo ){ - - volatile SPI_Mem_Map_t* SPIx = STD_NULL ; - switch(Local_u8SPINo){ - case MSPI1: SPIx=SPI1 ; break; - case MSPI2: SPIx=SPI2 ; break; - case MSPI3: SPIx=SPI3 ; break; - case MSPI4: SPIx=SPI4 ; break; - } - - if(SPIx != STD_NULL){ - /* BAUD RATE */ - SPIx ->CR1 |= (BAUD_RATE<< CR1_BR ); - - /* Default clock phase */ - - /* DATA FRAME */ -#if DATA_FRAME == FRAME_8_BIT - CLR_BIT(SPIx->CR1 ,CR1_DFF); - -#elif DATA_FRAME == FRAME_16_BIT - SET_BIT(SPIx->CR1,CR1_DFF); - -#endif - /* MSB or LSB */ - - /* NSS */ - /* In NSS software mode, - *set the SSM and SSI bits in the SPI_CR1 register - */ - SET_BIT(SPIx->CR1,CR1_SSM); - SET_BIT(SPIx->CR1,CR1_SSI); - /* Select as Master */ - SET_BIT(SPIx->CR1,CR1_MSTR); - - /* Enable SPI */ - SET_BIT(SPIx->CR1,CR1_SPE); - - } - -} - -void MSPI_vSlaveInit( u8 Local_u8SPINo ){ - - volatile SPI_Mem_Map_t* SPIx = STD_NULL ; - switch(Local_u8SPINo){ - case MSPI1: SPIx=SPI1 ; break; - case MSPI2: SPIx=SPI2 ; break; - case MSPI3: SPIx=SPI3 ; break; - case MSPI4: SPIx=SPI4 ; break; - } - if(SPIx != STD_NULL){ - - /* DATA FRAME */ - #if DATA_FRAME == FRAME_8_BIT - CLR_BIT(SPIx->CR1 ,CR1_DFF); - - #elif DATA_FRAME == FRAME_16_BIT - SET_BIT(SPIx->CR1,CR1_DFF); - - #endif - /* Clock Polarity & Clock Phase */ - - /* Frame format */ - /* NSS Bit --> Hardware */ - CLR_BIT(SPIx->CR1,CR1_SSM); - /* Select as SLAVE */ - CLR_BIT(SPIx->CR1,CR1_MSTR); - - /* Enable SPI */ - SET_BIT(SPIx->CR1,CR1_SPE); - - } -} - -u8 MSPI_u8MasterTransceiver( u8 Local_u8SPINo,u8 Local_u8SlavePort , u8 Local_u8SlavePin ,u8 Local_u8Data){ - - volatile SPI_Mem_Map_t* SPIx = STD_NULL ; - switch(Local_u8SPINo){ - case MSPI1: SPIx=SPI1 ; break; - case MSPI2: SPIx=SPI2 ; break; - case MSPI3: SPIx=SPI3 ; break; - case MSPI4: SPIx=SPI4 ; break; - } - - - // activate slave - MGPIO_vSetPinValue(Local_u8SlavePort,Local_u8SlavePin,LOW); - if(SPIx != STD_NULL){ - /* PUT DATA in Tx BUFFER */ - SPIx ->DR = Local_u8Data ; - - /* Wait until data is transmitted */ - while(GET_BIT(SPIx->SR,SR_TXE)==0); - - /* wait until data is received */ - while(GET_BIT(SPIx->SR,SR_RXNE)==0); - /* wait until busy flag is 0 */ - //while(GET_BIT(SPIx->SR,SR_BSY)==1); - - /* deactivate slave */ - MGPIO_vSetPinValue(Local_u8SlavePort,Local_u8SlavePin,HIGH); - - return (u8)SPIx->DR; - } - - - - return 0 ; - - - } - - - - -u8 MSPI_u8SlaveTransceiver( u8 Local_u8SPINo ,u8 Local_u8Data){ - - - volatile SPI_Mem_Map_t* SPIx = STD_NULL ; - switch(Local_u8SPINo){ - case MSPI1: SPIx=SPI1 ; break; - case MSPI2: SPIx=SPI2 ; break; - case MSPI3: SPIx=SPI3 ; break; - case MSPI4: SPIx=SPI4 ; break; - } - - if(SPIx != STD_NULL){ - /* PUT DATA in Tx BUFFER */ - SPIx ->DR = Local_u8Data ; - - /* Wait until data is transmitted */ - while(GET_BIT(SPIx->SR,SR_TXE)==0); - - /* wait until data is received */ - while(GET_BIT(SPIx->SR,SR_RXNE)==0); - /* wait until busy flag is 0 */ - //while(GET_BIT(SPIx->SR,SR_BSY)==1); - - return (u8)SPIx->DR; - } - - return 0 ; - } - -void MSPI_vEnableRxInt(u8 Local_u8SPINo){ - - volatile SPI_Mem_Map_t* SPIx = STD_NULL ; - switch(Local_u8SPINo){ - case MSPI1: SPIx=SPI1 ; break; - case MSPI2: SPIx=SPI2 ; break; - case MSPI3: SPIx=SPI3 ; break; - case MSPI4: SPIx=SPI4 ; break; - } - if ( SPIx == STD_NULL) - return; - - SET_BIT(SPIx->CR2,CR2_RXNEIE); -} - -void MSPI_vEnableTxInt(u8 Local_u8SPINo){ - - - volatile SPI_Mem_Map_t* SPIx = STD_NULL ; - switch(Local_u8SPINo){ - case MSPI1: SPIx=SPI1 ; break; - case MSPI2: SPIx=SPI2 ; break; - case MSPI3: SPIx=SPI3 ; break; - case MSPI4: SPIx=SPI4 ; break; - } - if ( SPIx == STD_NULL) - return; - - SET_BIT(SPIx->CR2,CR2_TXEIE); - } - - - -void MSPI_vSetTxCallBackFunc(u8 Local_u8SPINo,void(*Local_pvTxIRQ)(void)){ - - SPIx_pvTxcallback[Local_u8SPINo]=Local_pvTxIRQ; - - -} - -void MSPI_vSetRxCallBackFunc(u8 Local_u8SPINo,void(*Local_pvRxIRQ)(void)){ - - SPIx_pvRXcallback[Local_u8SPINo]=Local_pvRxIRQ; - - -} - - -u8 MSPI_u8ReadRecievedData(u8 Local_u8SPINo){ - - volatile SPI_Mem_Map_t* SPIx = STD_NULL ; - switch(Local_u8SPINo){ - case MSPI1: SPIx=SPI1 ; break; - case MSPI2: SPIx=SPI2 ; break; - case MSPI3: SPIx=SPI3 ; break; - case MSPI4: SPIx=SPI4 ; break; - } - u8 Local_u8ReceivedData = SPIx->DR; - return Local_u8ReceivedData; - -} - -void SPI1_IRQHandler(){ - - if( GET_BIT(SPI1->SR,SR_TXE) && SPIx_pvTxcallback[0]!=STD_NULL) - SPIx_pvTxcallback[0](); - - - if( GET_BIT(SPI1->SR,SR_RXNE) && SPIx_pvRXcallback[0]!=STD_NULL) - SPIx_pvRXcallback[0](); -} - -void SPI2_IRQHandler(){ - - if( GET_BIT(SPI1->SR,SR_TXE) && SPIx_pvTxcallback[1]!=STD_NULL) - SPIx_pvTxcallback[1](); - - - if( GET_BIT(SPI1->SR,SR_RXNE) && SPIx_pvRXcallback[1]!=STD_NULL) - SPIx_pvRXcallback[1](); - -} - -void SPI3_IRQHandler(){ - - if( GET_BIT(SPI1->SR,SR_TXE) && SPIx_pvTxcallback[2]!=STD_NULL) - SPIx_pvTxcallback[2](); - - - if( GET_BIT(SPI1->SR,SR_RXNE) && SPIx_pvRXcallback[2]!=STD_NULL) - SPIx_pvRXcallback[2](); - -} - -void SPI4_IRQHandler(){ - - if( GET_BIT(SPI1->SR,SR_TXE) && SPIx_pvTxcallback[3]!=STD_NULL) - SPIx_pvTxcallback[3](); - - - if( GET_BIT(SPI1->SR,SR_RXNE) && SPIx_pvRXcallback[3]!=STD_NULL) - SPIx_pvRXcallback[3](); - -} diff --git a/BlackPill_RC/Src/MCAL/MSPI/MSPI_int.h b/BlackPill_RC/Src/MCAL/MSPI/MSPI_int.h deleted file mode 100644 index d6ad5a2..0000000 --- a/BlackPill_RC/Src/MCAL/MSPI/MSPI_int.h +++ /dev/null @@ -1,157 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Omar Wael */ -/* Version : V0.0.0 */ -/* Data : 1 Dec 2023 */ -/* Description : MSPI_Interface.c --> implementations */ -/* Module Features : */ -/* 01- MSPI_MasterInit */ -/* 02- MSPI_SlaveInit */ -/* 03- MSPI_EnableRxInt */ -/* 04- MSPI_EnableTxInt */ -/* 05- MSPI_MasterTransceiver */ -/* 06- MSPI_SlaveTransceiver */ -/* 07- MSPI_SetTxCallBackFunc */ -/* 08- MSPI_SetRxCallBackFunc */ -/* 09- MSPI_ReadRecievedData */ -/*******************************************************************************************************/ - - -/***************************************************************************/ -/* File Guard Will Call On Time in .c File */ -/***************************************************************************/ -#ifndef MCAL_MSPI_MSPI_INT_H_ -#define MCAL_MSPI_MSPI_INT_H_ - -/* - * Since some SPI1 and SPI3/I2S3 pins may be mapped onto - * some pins used by the JTAG interface you may either: - * – map SPI/I2S onto other pins - * – disable the JTAG and use the SWD interface prior -*/ - - - -/***************************************************************************/ -/* DATA FRAME */ -/***************************************************************************/ -#define FRAME_8_BIT 0 -#define FRAME_16_BIT 1 - -/***************************************************************************/ -/* BAUD RATE */ -/***************************************************************************/ -#define DIV2 0b000 -#define DIV4 0b001 -#define DIV8 0b010 -#define DIV16 0b011 -#define DIV32 0b100 -#define DIV64 0b101 -#define DIV128 0b110 -#define DIV256 0b111 - - -/***************************************************************************/ -/* MSPI Indices */ -/***************************************************************************/ -#define MSPI1 0 -#define MSPI2 1 -#define MSPI3 2 -#define MSPI4 3 -/***************************************************************************/ -/* MSPI Mode */ -/***************************************************************************/ -#define MSPI_MASTER 1 -#define MSPI_SLAVE 0 - -/***************************************************************************/ -/* Function Declarations for MSPI module */ -/***************************************************************************/ - -/*----------------------------------------------------------------------------------------------------*/ -/* 01- MSPI_MasterInit */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Initialize MSPI as Master. */ -/* 2- Function Input -> @param Local_u8SPINo = MSPI1, MSPI2, MSPI3, MSPI4 */ -/* 3- Function Return -> void */ -/******************************************************************************************************/ -void MSPI_vMasterInit( u8 Local_u8SPINo ); - -/*----------------------------------------------------------------------------------------------------*/ -/* 02- MSPI_SlaveInit */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Initialize MSPI as Slave. */ -/* 2- Function Input -> @param Local_u8SPINo = MSPI1, MSPI2, MSPI3, MSPI4 */ -/* 3- Function Return -> void */ -/******************************************************************************************************/ -void MSPI_vSlaveInit( u8 Local_u8SPINo ); - -/*----------------------------------------------------------------------------------------------------*/ -/* 03- MSPI_EnableRxInt */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Enable RX interrupt for MSPI. */ -/* 2- Function Input -> @param Local_u8SPINo = MSPI1, MSPI2, MSPI3, MSPI4 */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MSPI_vEnableRxInt(u8 Local_u8SPINo); - -/*----------------------------------------------------------------------------------------------------*/ -/* 04- MSPI_EnableTxInt */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Enable TX interrupt for MSPI. */ -/* 2- Function Input -> @param Local_u8SPINo = MSPI1, MSPI2, MSPI3, MSPI4 */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MSPI_vEnableTxInt(u8 Local_u8SPINo); - -/*----------------------------------------------------------------------------------------------------*/ -/* 05- MSPI_MasterTransceiver */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Perform data transmission/reception in Master mode. */ -/* 2- Function Input -> @param Local_u8SPINo = MSPI1, MSPI2, MSPI3, MSPI4 */ -/* @param Local_u8SlavePort = Slave port number */ -/* @param Local_u8SlavePin = Slave pin number */ -/* @param Local_u8Data = Data to be transmitted/received */ -/* 3- Function Return -> u8 (Received data in case of Master reception) */ -/*----------------------------------------------------------------------------------------------------*/ -u8 MSPI_u8MasterTransceiver( u8 Local_u8SPINo,u8 Local_u8SlavePort , u8 Local_u8SlavePin ,u8 Local_u8Data); - -/*----------------------------------------------------------------------------------------------------*/ -/* 06- MSPI_SlaveTransceiver */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Perform data transmission/reception in Slave mode. */ -/* 2- Function Input -> @param Local_u8SPINo = MSPI1, MSPI2, MSPI3, MSPI4 */ -/* @param Local_u8Data = Data to be transmitted/received */ -/* 3- Function Return -> u8 (Received data in case of Slave reception) */ -/*----------------------------------------------------------------------------------------------------*/ -u8 MSPI_u8SlaveTransceiver( u8 Local_u8SPINo ,u8 Local_u8Data); - -/*----------------------------------------------------------------------------------------------------*/ -/* 07- MSPI_SetTxCallBackFunc */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Set the callback function for TX interrupt. */ -/* 2- Function Input -> @param Local_u8SPINo = MSPI1, MSPI2, MSPI3, MSPI4 */ -/* @param Local_pvTxIRQ = Pointer to the TX interrupt callback function */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MSPI_vSetTxCallBackFunc(u8 Local_u8SPINo,void(*Local_pvTxIRQ)(void)); - -/*----------------------------------------------------------------------------------------------------*/ -/* 08- MSPI_SetRxCallBackFunc */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Set the callback function for RX interrupt. */ -/* 2- Function Input -> @param Local_u8SPINo = MSPI1, MSPI2, MSPI3, MSPI4 */ -/* @param Local_pvRxIRQ = Pointer to the RX interrupt callback function */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MSPI_vSetRxCallBackFunc(u8 Local_u8SPINo,void(*Local_pvRxIRQ)(void)); - -/*----------------------------------------------------------------------------------------------------*/ -/* 09- MSPI_ReadRecievedData */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Read the received data in the RX buffer. */ -/* 2- Function Input -> @param Local_u8SPINo = MSPI1, MSPI2, MSPI3, MSPI4 */ -/* 3- Function Return -> u8 (Received data in the RX buffer) */ -/*----------------------------------------------------------------------------------------------------*/ -u8 MSPI_u8ReadRecievedData(u8 Local_u8SPINo); - -#endif /* MCAL_MSPI_MSPI_INT_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MSTK/MSYSTICK_Config.h b/BlackPill_RC/Src/MCAL/MSTK/MSYSTICK_Config.h deleted file mode 100644 index ae76692..0000000 --- a/BlackPill_RC/Src/MCAL/MSTK/MSYSTICK_Config.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * MSTK_Config.h - * - * Created on: Dec 3, 2023 - * Author: Hardware - */ - -#ifndef MCAL_MSTK_MSYSTICK_CONFIG_H_ -#define MCAL_MSTK_MSYSTICK_CONFIG_H_ - - -/*Define System Clock Speed in MHz*/ -#define CLOCK 16 - -/*Initialize SysTick Clock Source*/ -#define CLK_SOURCE MSYSTICK_AHB - -/*Clock Source ===> STK_CTRL bit 2 */ -#define MSYSTICK_AHB 1 -#define MSYSTICK_AHB8 0 - -#if CLK_SOURCE == MSYSTICK_AHB8 - #define STK_CLOCK CLOCK/8.0 -#elif CLK_SOURCE == MSYSTICK_AHB - #define STK_CLOCK CLOCK -#endif - -#endif /* MCAL_MSTK_MSYSTICK_CONFIG_H_ */ - diff --git a/BlackPill_RC/Src/MCAL/MSTK/MSYSTICK_Int.h b/BlackPill_RC/Src/MCAL/MSTK/MSYSTICK_Int.h deleted file mode 100644 index aadd171..0000000 --- a/BlackPill_RC/Src/MCAL/MSTK/MSYSTICK_Int.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * MSTK_Int.h - * - * Created on: Dec 3, 2023 - * Author: Hardware - */ - -#ifndef MCAL_MSTK_MSYSTICK_INT_H_ -#define MCAL_MSTK_MSYSTICK_INT_H_ - - -void MSYSTICK_vInit(void); - -void MSYSTICK_vTimeMS(u32 Copy_u32Delay); - -void MSYSTICK_vDelayms(u32 Copy_u32Delay); - -f32 MSYSTICK_u32GetElapsedTime(void); - -f32 MSYSTICK_u32GetRemainingTime(void); - -void MSYSTICK_vStop(void); - -void MSYSTICK_vCallBack(void(*ptr) (void)); - - -#endif /* MCAL_MSTK_MSYSTICK_INT_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MSTK/MSYSTICK_Private.h b/BlackPill_RC/Src/MCAL/MSTK/MSYSTICK_Private.h deleted file mode 100644 index a2e04af..0000000 --- a/BlackPill_RC/Src/MCAL/MSTK/MSYSTICK_Private.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * MSTK_Private.h - * - * Created on: Dec 3, 2023 - * Author: Hardware - */ - -#ifndef MCAL_MSTK_MSYSTICK_PRIVATE_H_ -#define MCAL_MSTK_MSYSTICK_PRIVATE_H_ - -#include"../../LIB/BIT_MATH.h" -#include "../../LIB/STD_TYPES.h" - -#define STK_BASE_ADD 0xE000E010 - - -#define CLR 0 -#define COUNT_FLAG 16 -#define STK_EN 0 -#define STK_INT 1 -#define STK_CLK_SOURCE 2 //Clock Source Pin Number - -typedef struct{ - u32 CTRL; - u32 LOAD; - u32 VAL; - u32 CALIB; -}STK_MemMap_t; - - -#define STK ((volatile STK_MemMap_t*) (STK_BASE_ADD)) - - - -#endif /* MCAL_MSTK_MSYSTICK_PRIVATE_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MSTK/MSYSTICK_Prog.c b/BlackPill_RC/Src/MCAL/MSTK/MSYSTICK_Prog.c deleted file mode 100644 index 6f30e8a..0000000 --- a/BlackPill_RC/Src/MCAL/MSTK/MSYSTICK_Prog.c +++ /dev/null @@ -1,82 +0,0 @@ -/* - * MSTK_Prog.c - * - * Created on: Dec 3, 2023 - * Author: Hardware - */ - -#include"MSYSTICK_Private.h" -#include"MSYSTICK_Config.h" -#include"MSYSTICK_Int.h" - -static void (*GLOBAL_SYSTICK_CallBack) (void)= STD_NULL; - -void MSYSTICK_vInit(void){ - - //Clock Source -#if CLK_SOURCE == MSYSTICK_AHB8 - CLR_BIT(STK->CTRL,STK_CLK_SOURCE); -#elif CLK_SOURCE == MSYSTICK_AHB - SET_BIT(STK->CTRL,STK_CLK_SOURCE); -#endif - //Clear Flag - CLR_BIT(STK->CTRL,STK_EN); -} - -void MSYSTICK_vTimeMS(u32 Copy_u32Delay){ - //Cal Value in mills sec - Copy_u32Delay = Copy_u32Delay * 1000 * STK_CLOCK; - //Load Reload Value - STK->LOAD = Copy_u32Delay - 1; - //CLR VAL Reg - STK->VAL = CLR; - //SET INT - SET_BIT(STK->CTRL,STK_INT); - //Enable SYSTICK - SET_BIT(STK->CTRL,STK_EN); -} - -void MSYSTICK_vDelayms(u32 Copy_u32Delay){ - - //Disable INT - CLR_BIT(STK->CTRL,STK_INT); - //Cal Value in mills sec - Copy_u32Delay = Copy_u32Delay * 1000 * STK_CLOCK; - //Load Reload Value - STK->LOAD = Copy_u32Delay; - //CLR VAL Reg - STK->VAL = CLR; - //Enable SYSTICK - SET_BIT(STK->CTRL,STK_EN); - //Wait Flag polling - while(!GET_BIT(STK->CTRL,COUNT_FLAG)); - //Disable SYSTICK - CLR_BIT(STK->CTRL,STK_EN); -} - -f32 MSYSTICK_u32GetElapsedTime(void){ - //Return Time in milli second - f32 Elapsed = (STK->LOAD - STK->VAL)*(1/(STK_CLOCK*1000)) ; - return Elapsed; -} - -f32 MSYSTICK_u32GetRemainingTime(void){ - //Return Time in milli second - return (STK->VAL)*(1/(STK_CLOCK*1000)); -} - -void MSYSTICK_vStop(void){ - CLR_BIT(STK->CTRL,STK_EN); -} - - -void MSYSTICK_vCallBack(void(*ptr) (void)){ - GLOBAL_SYSTICK_CallBack = ptr; -} - -void SysTick_Handler(void){ - if(GLOBAL_SYSTICK_CallBack != STD_NULL){ - GLOBAL_SYSTICK_CallBack(); - } -} - diff --git a/BlackPill_RC/Src/MCAL/MTIMER/MTIMER_Config.h b/BlackPill_RC/Src/MCAL/MTIMER/MTIMER_Config.h deleted file mode 100644 index a2e5bba..0000000 --- a/BlackPill_RC/Src/MCAL/MTIMER/MTIMER_Config.h +++ /dev/null @@ -1,14 +0,0 @@ -/* - * MTIMER_CONFIG.h - * - * Created on: Dec 19, 2023 - * Author: Hardware - */ - -#ifndef MCAL_MTIMER_MTIMER_CONFIG_H_ -#define MCAL_MTIMER_MTIMER_CONFIG_H_ - -//SYSTEM CLOCK IN MHZ -#define SYS_CLOCK 16 - -#endif /* MCAL_MTIMER_MTIMER_CONFIG_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MTIMER/MTIMER_Int.h b/BlackPill_RC/Src/MCAL/MTIMER/MTIMER_Int.h deleted file mode 100644 index 0606730..0000000 --- a/BlackPill_RC/Src/MCAL/MTIMER/MTIMER_Int.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * MTIMER_Int.h - * - * Created on: Dec 19, 2023 - * Author: Hardware - */ - -#ifndef MCAL_MTIMER_MTIMER_INT_H_ -#define MCAL_MTIMER_MTIMER_INT_H_ - -/*Channels*/ -#define CH1 1 -#define CH2 2 -#define CH3 3 -#define CH4 4 - -void MTIMER1_vTimeMS(u32 Copy_u32Delay); - -void MTIMER1_vPWM(u8 Copy_u8Channel,u16 Copy_u16TotalTime_uSec,u16 Copy_u16PositiveDutyCycle_uSec); - -void MTIMER1_vInitializeICU(); -u16 GET_ICU(void); -void MTIMER_CallBack(void(*ptr)(void)); - -#endif /* MCAL_MTIMER_MTIMER_INT_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MTIMER/MTIMER_Private.h b/BlackPill_RC/Src/MCAL/MTIMER/MTIMER_Private.h deleted file mode 100644 index 07e32f4..0000000 --- a/BlackPill_RC/Src/MCAL/MTIMER/MTIMER_Private.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * MTIMER_Private.h - * - * Created on: Dec 19, 2023 - * Author: Hardware - */ - -#ifndef MCAL_MTIMER_MTIMER_PRIVATE_H_ -#define MCAL_MTIMER_MTIMER_PRIVATE_H_ - -#include"../../LIB/BIT_MATH.h" -#include "../../LIB/STD_TYPES.h" - -#define TIMER1_Base_Add 0x40010000 -#define TIMER2_Base_Add 0x40000000 -#define TIMER3_Base_Add 0x40000400 -#define TIMER4_Base_Add 0x40000800 -#define TIMER5_Base_Add 0x40000C00 - -#define TIMER9_Base_Add 0x40014000 -#define TIMER10_Base_Add 0x40014400 -#define TIMER11_Base_Add 0x40014800 - -/*CR REGISTER BITS*/ -#define CEN 0 //Control Enable -#define OPM 3 //One Pulse Mode "RUN ONE TIME ONLY" -#define DIR 4 //Direction Up or Down Count -#define CMS0 5 //Center_Aligned Mode Selector -#define CMS1 6 -#define ARPE 7 //Auto Reload Preload Enable -/*DIER REGISTER BITS*/ -#define UIE 0 //Update Interrupt Enable -#define TIE 6 //Trigger Interrupt Enable -#define BIE 7 //Break Interrupt Enable -/*CCMRx REGISTER BITS 'OUTPUT'*/ -#define CCxS0 0 -#define CCxS1 1 -#define OCxFE 2 -#define OCxPE 3 -#define OCxM0 4 -#define OCxM1 5 -#define OCxM2 6 -#define OCxCE 7 -/*CCER REGISTER*/ -#define CCxE 0 -#define CCxP 1 -#define CCxNE 2 -#define CCxNP 3 - -typedef struct{ - u32 CR1; //Control Reg 1 - u32 CR2; //Control Reg 2 - u32 SMCR; - u32 DIER; //DMA/Interrupt Enable Reg - u32 SR; //Status Reg - u32 EGR; - u32 CCMR[2]; - u32 CCER; - u32 CNT; //COUNTER - u32 PSC; //PRESCALER - u32 ARR; //AUTO-RELOAD - u32 RCR; - u32 CCR[4]; - u32 BDTR; - u32 DCR; //DMA CONTROLLER - u32 DMAR; -}TIM_MemMap_t; - -#define TIM1 ((volatile TIM_MemMap_t *) (TIMER1_Base_Add)) -#define TIM2 ((volatile TIM_MemMap_t *) (TIMER2_Base_Add)) -#define TIM3 ((volatile TIM_MemMap_t *) (TIMER3_Base_Add)) -#define TIM4 ((volatile TIM_MemMap_t *) (TIMER4_Base_Add)) -#define TIM5 ((volatile TIM_MemMap_t *) (TIMER5_Base_Add)) - -#define TIM9 ((volatile TIM_MemMap_t *) (TIMER9_Base_Add)) -#define TIM10 ((volatile TIM_MemMap_t *) (TIMER10_Base_Add)) -#define TIM11 ((volatile TIM_MemMap_t *) (TIMER11_Base_Add)) - -#endif /* MCAL_MTIMER_MTIMER_PRIVATE_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MTIMER/MTIMER_Prog.c b/BlackPill_RC/Src/MCAL/MTIMER/MTIMER_Prog.c deleted file mode 100644 index aaec7c9..0000000 --- a/BlackPill_RC/Src/MCAL/MTIMER/MTIMER_Prog.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - * MTIMER_Prog.c - * - * Created on: Dec 19, 2023 - * Author: Hardware - */ -#include"MTIMER_Private.h" -#include"MTIMER_Int.h" -#include"MTIMER_Config.h" - - -static void (*GLOBAL_Ptr)(void)=STD_NULL; - -void ICU(void); -u16 Time=0; - -void MTIMER1_vTimeMS(u32 Copy_u32Delay){ - //Reset Control Reg Value - TIM1 -> CR1 = 0; - //Prescaler - TIM1 -> PSC = SYS_CLOCK*1000-1; - //Auto Reset Value - TIM1 -> ARR = Copy_u32Delay -1; - //Set Update Interrupt - SET_BIT(TIM1->DIER,UIE); - //Control Enabled 'Start To Run' - SET_BIT(TIM1 -> CR1,CEN); - } - -void MTIMER1_vPWM(u8 Copy_u8Channel,u16 Copy_u16TotalTime_uSec,u16 Copy_u16PositiveDutyCycle_uSec){ - - SET_BIT(TIM1->CR1,ARPE); // Enable auto-reload preload - CLR_BIT(TIM1->CR1,DIR); // UP COUNT - CLR_BIT(TIM1->CR1,CMS0); // 00: Edge-aligned mode. The counter counts up - CLR_BIT(TIM1->CR1,CMS1); // or down depending on the direction bit(DIR) - - //01: CCx channel is configured as output "PWM" - CLR_BIT(TIM1->CCMR[Copy_u8Channel / 3],(CCxS0+(((Copy_u8Channel-1)%2)*8))); - CLR_BIT(TIM1->CCMR[Copy_u8Channel / 3],(CCxS1+(((Copy_u8Channel-1)%2)*8))); - - // set prescaler - TIM1->PSC = SYS_CLOCK*10-1; - TIM1->ARR = (Copy_u16TotalTime_uSec*100)/1000-1; // Timer auto-reload to max <> - TIM1->CCR[Copy_u8Channel-1] = (Copy_u16PositiveDutyCycle_uSec*100)/1000-1; // << DUTY CYCLE >> - SET_BIT(TIM1->CCMR[Copy_u8Channel / 3],(OCxPE+(((Copy_u8Channel-1)%2)*8))); //1: Preload register on TIMx_CCRx enabled - - CLR_BIT(TIM1->CCMR[Copy_u8Channel / 3],(OCxM0+(((Copy_u8Channel-1)%2)*8)));// PWM Mode1 (high then low) - SET_BIT(TIM1->CCMR[Copy_u8Channel / 3],(OCxM1+(((Copy_u8Channel-1)%2)*8))); - SET_BIT(TIM1->CCMR[Copy_u8Channel / 3],(OCxM2+(((Copy_u8Channel-1)%2)*8))); - - CLR_BIT(TIM1->CCER,(CCxP+(Copy_u8Channel-1)*4)); //Polarity 0: active high - //SET_BIT(TIM1->EGR,0); //UG: Update generation - 1: Reinitialize counter&update registers - SET_BIT(TIM1->CCER,(CCxE+(Copy_u8Channel-1)*4)); //Bit 0 CC1E: Capture/Compare 1 output enable - SET_BIT(TIM1->BDTR,15);// MOE 1: OC and OCN outputs are enabled - - SET_BIT(TIM1->CR1,CEN);// Enable timer1 -} - - -void MTIMER1_vInitializeICU(){ - SET_BIT(TIM1->CR1,ARPE); // Enable auto-reload preload - CLR_BIT(TIM1->CR1,DIR); // UP COUNT - CLR_BIT(TIM1->CR1,CMS0); // 00: Edge-aligned mode. The counter counts up - CLR_BIT(TIM1->CR1,CMS1); // or down depending on the direction bit(DIR) - - //01: CCx channel is configured as ICU - SET_BIT(TIM1->CCMR[1],8); - CLR_BIT(TIM1->CCMR[1],9); - - // set prescaler - TIM1->PSC = 0; - TIM1 -> ARR = 0xFFFF; - - //SET_BIT(TIM1->EGR,0); //UG: Update generation - 1: Reinitialize counter&update registers - SET_BIT(TIM1->CCER,12); //Bit 0 CC1E: Capture/Compare 1 output enable - CLR_BIT(TIM1->CCER,13); - SET_BIT(TIM1-> DIER,4); - MTIMER_CallBack(&ICU); - SET_BIT(TIM1->CR1,CEN);// Enable timer1 - - -} -void ICU(void){ - static u8 x=0; - u16 T1,T2; - if (x ==0){ - T1 = TIM1->CCR[3]; - SET_BIT(TIM1->CCER,13); - x++; - } - else{ - T2 = TIM1->CCR[3]; - CLR_BIT(TIM1->CCER,13); - Time = T2 - T1; - x=0;} -} - -u16 GET_ICU(void){ - return Time; -} - - - -void MTIMER_CallBack(void(*ptr)(void)){ - GLOBAL_Ptr=ptr; -}/* - -void TIM1_UP_TIM10_IRQHandler(void){ - GLOBAL_Ptr(); -} - -void TIM1_TRG_COM_TIM11_IRQHandler(void){ - GLOBAL_Ptr(); -} - -void TIM1_BRK_TIM9_IRQHandler(void){ - GLOBAL_Ptr(); -} -*/ - -void TIM1_CC_IRQHandler(void){ - ICU(); - CLR_BIT(TIM1-> SR,4); -} - - - diff --git a/BlackPill_RC/Src/MCAL/MUART/MUSART_Config.h b/BlackPill_RC/Src/MCAL/MUART/MUSART_Config.h deleted file mode 100644 index b99b5c5..0000000 --- a/BlackPill_RC/Src/MCAL/MUART/MUSART_Config.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * MUSART_Config.h - * - * Created on: Jun 8, 2023 - * Author: John - */ - -#ifndef MUSART_CONFIG_H_ -#define MUSART_CONFIG_H_ - -/****************************************************************************/ -/* USART MODE SELECTION */ -/****************************************************************************/ -#define UART1 1 -#define UART2 2 -#define UART6 6 -/****************************************************************************/ -/* USART LENGTH MODES : 8-BIT , 9-BIT */ -/****************************************************************************/ -#define _8DATA_LENGTH_ 0 -#define _9DATA_LENGTH_ 1 -/****************************************************************************/ -/* USART STOP BIT MODES : 00 -> ONE_STOP , 10 -> TWO_STOP */ -/****************************************************************************/ - -#define USART1_ONE_STOP_BITS 00 -#define USART1_TWO_STOP_BITS 10 -#endif /* MUSART_CONFIG_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MUART/MUSART_Interface.h b/BlackPill_RC/Src/MCAL/MUART/MUSART_Interface.h deleted file mode 100644 index 41de49d..0000000 --- a/BlackPill_RC/Src/MCAL/MUART/MUSART_Interface.h +++ /dev/null @@ -1,26 +0,0 @@ -/***************************************************************************/ -/* Author : John Makkar */ -/* Version : V0.0.0 */ -/* Date : 8 Jun 2023 */ -/* Author : John */ -/* Description : Driver Functions Prototypes */ -/* Features : */ -/***************************************************************************/ - -#ifndef MUSART_INTERFACE_H_ -#define MUSART_INTERFACE_H_ - -#include "MUSART_Private.h" -/***************************************************************************/ -/* Functions Prototypes */ -/***************************************************************************/ -void MUART_Enable(u8 UART_Index); -void MUART_Disable(u8 UART_Index); -void MUART_Send_Byte(u8 UART_Index ,u8 data); -void MUART_Send_Data(u8 UART_Index ,u8* data); -u8 MUART_Receive_Byte(u8 UART_Index); -void MUART_Receive_Data(u8 UART_Index,u8 Buffer[] ,u8 max_size); -USART_REG Get_UART(u8 UART_Index); - - -#endif /* MUSART_INTERFACE_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MUART/MUSART_Private.h b/BlackPill_RC/Src/MCAL/MUART/MUSART_Private.h deleted file mode 100644 index 7777164..0000000 --- a/BlackPill_RC/Src/MCAL/MUART/MUSART_Private.h +++ /dev/null @@ -1,109 +0,0 @@ -/***************************************************************************/ -/* Author : John Makkar */ -/* Version : V0.0.0 */ -/* Date : 8 Jun 2023 */ -/* Author : John */ -/* Description : Driver Functions Implementation */ -/* Features : Register Definition */ -/***************************************************************************/ - -/***************************************************************************/ -/* File Guard Will Call On Time in .c File */ -/***************************************************************************/ -#ifndef MUSART_PRIVATE_H_ -#define MUSART_PRIVATE_H_ -/***************************************************************************/ -/* Base Address Of USARTx Register */ -/***************************************************************************/ -#define USART1_BASE_ADDRESS 0x40011000UL -#define USART2_BASE_ADDRESS 0x40004400UL -#define USART6_BASE_ADDRESS 0x40011400UL - - -/**************************************************************************/ -/* Register Definition :- */ -/* Features : Private File Can`t Be Edit By User */ -/* Description :- */ -/* - #define : YES */ -/* - union : NO */ -/* - struct : YED */ -/**************************************************************************/ - -typedef struct{ - u32 SBK :1 ; - u32 RWU :1 ; - u32 RE :1 ; - u32 TE :1 ; - u32 IDLEIE :1 ; - u32 RXNEIE :1 ; - u32 TCIE :1 ; - u32 TXEIE :1 ; - u32 PEIE :1 ; - u32 PS :1 ; - u32 PCE :1 ; - u32 WAKE :1 ; - u32 M :1 ; - u32 UE :1 ; - u32 RESERVER1:1 ; - u32 OVER8 :1 ; - u32 RESERVER2:16 ; -}USART_CR1; - -typedef struct{ - u32 ADD :4 ; - u32 RESERVER :1 ; - u32 LBDL :1 ; - u32 LBDIR :1 ; - u32 RESERVER1:1 ; - u32 LBCL :1 ; - u32 CPHA :1 ; - u32 CPOL :1 ; - u32 CLKEN :1 ; - u32 STOP :2 ; - u32 LINEN :1 ; - u32 RESERVER2:1 ; - u32 RESERVER3:16 ; -}USART_CR2; - -typedef struct{ - u32 EIE ; - u32 IREN ; - u32 IRLP ; - u32 HDSEL ; - u32 NACK ; - u32 SCEN ; - u32 DMAR ; - u32 RTSE ; - u32 CTSE ; - u32 CTSIE ; - u32 ONEBIT ; - u32 RESERVERD:19 ; -}USART_CR3; - -typedef struct{ - u32 PSC:8 ; - u32 GT :8 ; - u32 RESERVERD:16 ; -}USART_GTPR; - -typedef struct{ - u32 SR ; - u32 DR ; - u32 BRR ; - USART_CR1 CR1 ; - USART_CR2 CR2 ; - USART_CR3 CR3 ; - USART_GTPR GTPR ; -}USART_t; - -/***************************************************************************/ -/* Struct Macro Base Address Of USARTx */ -/***************************************************************************/ -typedef volatile USART_t* USART_REG; - -#define USART1_REG ((USART_REG)(USART1_BASE_ADDRESS)) -#define USART2_REG ((USART_REG)(USART2_BASE_ADDRESS)) -#define USART6_REG ((USART_REG)(USART6_BASE_ADDRESS)) - - -#endif /* MUSART_PRIVATE_H_ */ diff --git a/BlackPill_RC/Src/MCAL/MUART/MUSART_Program.c b/BlackPill_RC/Src/MCAL/MUART/MUSART_Program.c deleted file mode 100644 index ef5347a..0000000 --- a/BlackPill_RC/Src/MCAL/MUART/MUSART_Program.c +++ /dev/null @@ -1,116 +0,0 @@ -/***************************************************************************/ -/* Author : John Makkar */ -/* Version : V0.0.0 */ -/* Date : 8 Jun 2023 */ -/* Author : John */ -/* Description : Driver Functions Implementation */ -/* Features : */ -/***************************************************************************/ - -/***************************************************************************/ -/* Standard Types LIB */ -/***************************************************************************/ -#include "../../LIB/STD_TYPES.h" -#include "../../LIB/BIT_MATH.h" - -/***************************************************************************/ -/* MCAL Components */ -/***************************************************************************/ -#include "MUSART_Interface.h" -#include "MUSART_Config.h" -#include "MUSART_Private.h" -/***************************************************************************/ -/* Functions Implementations */ -/***************************************************************************/ - -void MUART_Enable(u8 UART_Index) -{ - USART_REG UARTx = Get_UART(UART_Index); - /*Enable Uart */ - UARTx ->CR1.UE = 1 ; - - /*Select BaudRate -> 9600*/ - UARTx ->BRR = 0x683; - - /* Select Stop Bits As 1-BIT */ - UARTx -> CR2.STOP |= (USART1_ONE_STOP_BITS << 12); - - /* ENABLE RX */ - UARTx ->CR1.RE = 1; - - /* ENABLE TX */ - UARTx ->CR1.TE = 1; - - /* Select No Sending BREAK */ - UARTx ->CR1.SBK = 0 ; - - /* Select Disable Parity */ - UARTx ->CR1.PCE = 0; - - /* SELECT WORD LENGHT AS 8DATA-BITS */ - UARTx ->CR1.M = _8DATA_LENGTH_ ; - - /*SELECT OVER SAMPLING BY 16*/ - UARTx ->CR1.OVER8 = 0; - -} - - -void MUART_Disable(u8 UART_Index) -{ - USART_REG UARTx = Get_UART(UART_Index); - UARTx ->CR1.UE = 0 ; -} - -void MUART_Send_Byte(u8 UART_Index ,u8 data){ - USART_REG UARTx = Get_UART(UART_Index); - while(GET_BIT(USART1_REG ->SR,7) == 0); - UARTx->DR = data; -} - - -void MUART_Send_Data(u8 UART_Index , u8 *data) -{ - u8 i = 0 ; - u8 length =sizeof(*data); - USART_REG UARTx = Get_UART(UART_Index); - for(i = 0; i < length; i++) - { - //Busy wait until transmission complete - while(GET_BIT(USART1_REG ->SR,7) == 0); - UARTx->DR = data[i] ; - } -} - - -u8 MUART_Receive_Byte(u8 UART_Index) -{ - u8 data ; - USART_REG UARTx = Get_UART(UART_Index); - //Busy wait until reception complete then read it - while(!GET_BIT(UARTx ->SR,5)); - data = (UARTx ->DR); - return (u8)data; -} - - -void MUART_Receive_Data(u8 UART_Index ,u8 Buffer[] ,u8 max_size) -{ - -} - -USART_REG Get_UART(u8 UART_Index){ - USART_REG UARTx ; - switch(UART_Index) - { - case 1: UARTx = USART1_REG ; break; - case 2: UARTx = USART2_REG ; break; - case 6: UARTx = USART6_REG ; break; - } - return UARTx; -} - - - - - diff --git a/Src/Application/Collision_Avoidance.c b/Src/Application/Collision_Avoidance.c deleted file mode 100644 index 993e3fa..0000000 --- a/Src/Application/Collision_Avoidance.c +++ /dev/null @@ -1,101 +0,0 @@ -/* - * File : Collision_Avoidance.c - * Layer : APP - * Created on : Feb 11, 2023 - * Author : Mariam Hossam - * Brief : This file contains the implementation of the Collision_Avoidance module APIs - */ -#include "Inc/Collision_Avoidance.h" - -static collisionAvoidanceFlag CA_Flag; -collisionAvoidanceFlag InitCollisionAvoidance(ULTRASONIC_ID_t ultrasonic_ID){ - CA_Flag = STD_HIGH; - HAL_MOTOR_STOP(); - switch(ultrasonic_ID){ - case FR_US: - FR_CA_Scenario(); - break; - case FL_US: - FL_CA_Scenario(); - break; - case BR_US: - BR_CA_Scenario(); - break; - case BL_US: - BL_CA_Scenario(); - break; - case RF_US: - RF_CA_Scenario(); - break; - case RB_US: - RB_CA_Scenario(); - break; - case LF_US: - LF_CA_Scenario(); - break; - case LB_US: - LB_CA_Scenario(); - break; - } - - return CA_Flag; -} - -void FR_CA_Scenario(){ - - /* - * Implementation of scenario to avoid the collision from FR direction - */ - CA_Flag = STD_LOW; -} - -void FL_CA_Scenario(){ - /* - * Implementation of scenario to avoid the collision from FL direction - */ - CA_Flag = STD_LOW; -} - -void BR_CA_Scenario(){ - /* - * Implementation of scenario to avoid the collision from BR direction - */ - CA_Flag = STD_LOW; - -} - -void BL_CA_Scenario(){ - /* - * Implementation of scenario to avoid the collision from BL direction - */ - CA_Flag = STD_LOW; -} - -void RF_CA_Scenario(){ - /* - * Implementation of scenario to avoid the collision from RF direction - */ - CA_Flag = STD_LOW; - -} - -void RB_CA_Scenario(){ - /* - * Implementation of scenario to avoid the collision from RB direction - */ - CA_Flag = STD_LOW; -} - -void LF_CA_Scenario(){ - /* - * Implementation of scenario to avoid the collision from LF direction - */ - CA_Flag = STD_LOW; -} - -void LB_CA_Scenario(){ - /* - * Implementation of scenario to avoid the collision from LB direction - */ - CA_Flag = STD_LOW; -} diff --git a/Src/Application/Inc/Car_Control.h b/Src/Application/Inc/Car_Control.h deleted file mode 100644 index bc3a28b..0000000 --- a/Src/Application/Inc/Car_Control.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef CAR_CONTROL_H -#define CAR_CONTROL_H - -#include "../../HAL/HMOTOR/HMOTOR.h" -#include "../../HAL/HSERVO/HSERVO_Int.h" -#include "../../LIB/STD_TYPES.h" - -// Function to initialize car control -void CAR_CONTROL_Init(); - -// Function to control the car movement -void CAR_CONTROL_Move(f32 distance, s8 direction); - -// The "distance & direction" are paremeters that must be specified in the path tracking! -// distance to move in cm -/* dirction if his target point is greater than the currect point -> send 1 - if his target point is smaller than the currect point -> send -1 */ - -// Function to control the steering angle of the car -void CAR_CONTROL_Steer(s8 angle); - -// The "angle" is a parameter that must be specified in the path tracking! - -#endif // CAR_CONTROL_H diff --git a/Src/Application/Inc/Collision_Avoidance.h b/Src/Application/Inc/Collision_Avoidance.h deleted file mode 100644 index 329a1b3..0000000 --- a/Src/Application/Inc/Collision_Avoidance.h +++ /dev/null @@ -1,160 +0,0 @@ -/* - * File : Collision_Avoidance.h - * Layer : APP - * Created on : Feb 11, 2023 - * Author : Mariam Hossam - * Brief : This file contains all prototypes for the interfaces can be used In The Main Application to use the Collision_Avoidance module - * - * ============================================================ - * || ----------- ----------- || - * || | U.S | | U.S | || - * || | F_L | | F_R | || - * || ----------- ----------- || - * || || - * || ------- ------- || - * || | | | | || - * || | U.S | | U.S | || - * || | L_F | | R_F | || - * || | | | | || - * || ------- ------- || - * || || - * || || - * || The Car Kit || - * || || - * || || - * || ------- ------- || - * || | | | | || - * || | U.S | | U.S | || - * || | L_B | | R_B | || - * || | | | | || - * || ------- ------- || - * || || - * || ----------- ----------- || - * || | U.S | | U.S | || - * || | B_L | | B_R | || - * || ----------- ----------- || - * ============================================================ - * - */ - -/*************************************************************************************************************************/ -/* File Guard */ -/*************************************************************************************************************************/ - -#ifndef COLLISION_AVOIDANCE_H_ -#define COLLISION_AVOIDANCE_H_ - -#include "../../LIB/STD_TYPES.h" -#include "../../LIB/BIT_MATH.h" -#include "../../HAL/HMOTOR/HMOTOR.h" - -typedef u8 collisionAvoidanceFlag; -/*************************************************************************************************************************/ -/* Enum for Ultrasonic ID */ -/*************************************************************************************************************************/ -typedef enum{ - FR_US=0, /* FR for Forward_Right Ultrasonic */ - FL_US, /* FL for Forward_Left Ultrasonic */ - BR_US, /* BR for Backward_Right Ultrasonic */ - BL_US, /* BL for Backward_Left Ultrasonic */ - RF_US, /* RF for Right_Forward Ultrasonic */ - RB_US, /* RB for Right_Backward Ultrasonic */ - LF_US, /* LF for Left_Forward Ultrasonic */ - LB_US /* LB for Left_Backward Ultrasonic */ -}ULTRASONIC_ID_t; - -/*************************************************************************************************************************/ -/* APIs */ -/*************************************************************************************************************************/ - -/*************************************************************************************************************************/ -/* 01-InitCollisionAvoidance */ -/*-----------------------------------------------------------------------------------------------------------------------*/ -/* @ Description : stops the motors and starts the collision avoidance scenario */ -/* according to the selected ultrasonic */ -/* @ Input parameters : @Param ultrasonic_ID : */ -/* the ultrasonic ID to select which scenario to avoid collision */ -/* optioins : */ -/* FR_US for Forward_Right Ultrasonic, FL_US for Forward_Left Ultrasonic */ -/* BR_US for Backward_Right Ultrasonic, BL_US for Backward_Left Ultrasonic */ -/* RF_US for Right_Forward Ultrasonic, RB_US for Right_Backward Ultrasonic */ -/* LF_US for Left_Forward Ultrasonic, LB_US for Left_Backward Ultrasonic */ -/* @ Return : collisionAvoidanceFlag : Flag indicating if Collision Avoidance is Active */ -/* STD_LOW if the selected scenario if finished */ -/* STD_HIGH if the selected scenario if not finished */ -/*************************************************************************************************************************/ -collisionAvoidanceFlag InitCollisionAvoidance(ULTRASONIC_ID_t ultrasonic_ID); - -/*************************************************************************************************************************/ -/* 02-FR_CA_Scenario */ -/*-----------------------------------------------------------------------------------------------------------------------*/ -/* @ Description : starts the collision avoidance scenario of the Forward Right ultrasonic */ -/* @ Input parameters : void */ -/* @ Return : void */ -/*************************************************************************************************************************/ -void FR_CA_Scenario(); - -/*************************************************************************************************************************/ -/* 03-FL_CA_Scenario */ -/*-----------------------------------------------------------------------------------------------------------------------*/ -/* @ Description : starts the collision avoidance scenario of the Forward Left ultrasonic */ -/* @ Input parameters : void */ -/* @ Return : void */ -/*************************************************************************************************************************/ -void FL_CA_Scenario(); - -/*************************************************************************************************************************/ -/* 04-BR_CA_Scenario */ -/*-----------------------------------------------------------------------------------------------------------------------*/ -/* @ Description : starts the collision avoidance scenario of the Backward Right ultrasonic */ -/* @ Input parameters : void */ -/* @ Return : void */ -/*************************************************************************************************************************/ -void BR_CA_Scenario(); - -/*************************************************************************************************************************/ -/* 05-BL_CA_Scenario */ -/*-----------------------------------------------------------------------------------------------------------------------*/ -/* @ Description : starts the collision avoidance scenario of the Backward Left ultrasonic */ -/* @ Input parameters : void */ -/* @ Return : void */ -/*************************************************************************************************************************/ -void BL_CA_Scenario(); - -/*************************************************************************************************************************/ -/* 06-RF_CA_Scenario */ -/*-----------------------------------------------------------------------------------------------------------------------*/ -/* @ Description : starts the collision avoidance scenario of the Right Forward ultrasonic */ -/* @ Input parameters : void */ -/* @ Return : void */ -/*************************************************************************************************************************/ -void RF_CA_Scenario(); - -/*************************************************************************************************************************/ -/* 07-RB_CA_Scenario */ -/*-----------------------------------------------------------------------------------------------------------------------*/ -/* @ Description : starts the collision avoidance scenario of the Right Backward ultrasonic */ -/* @ Input parameters : void */ -/* @ Return : void */ -/*************************************************************************************************************************/ -void RB_CA_Scenario(); - -/*************************************************************************************************************************/ -/* 08-LF_CA_Scenario */ -/*-----------------------------------------------------------------------------------------------------------------------*/ -/* @ Description : starts the collision avoidance scenario of the Left Forward ultrasonic */ -/* @ Input parameters : void */ -/* @ Return : void */ -/*************************************************************************************************************************/ -void LF_CA_Scenario(); - -/*************************************************************************************************************************/ -/* 09-LB_CA_Scenario */ -/*-----------------------------------------------------------------------------------------------------------------------*/ -/* @ Description : starts the collision avoidance scenario of the Left Backward ultrasonic */ -/* @ Input parameters : void */ -/* @ Return : void */ -/*************************************************************************************************************************/ -void LB_CA_Scenario(); - -#endif /*COLLISION_AVOIDANCE_H_*/ diff --git a/Src/Application/Inc/Motion_Planing.h b/Src/Application/Inc/Motion_Planing.h deleted file mode 100644 index c90e8b5..0000000 --- a/Src/Application/Inc/Motion_Planing.h +++ /dev/null @@ -1,63 +0,0 @@ -#ifndef MOTION_PLANNING_ -#define MOTION_PLANNING_ - -#include "../../LIB/STD_TYPES.h" -#include "../Inc/Scenario_Select.h" - - -typedef struct -{ - f32 x ; - f32 y ; - -}Point_t; - - -extern u8 Scanned_Area [100]; - -/* - Parameter setter functions. - - These parameters must be set as needed before using any path function. - - Each function should define how it uses each parameter, - and what values are expected. -*/ -void Set_Param_A(f32 new_value); -void Set_Param_B(f32 new_value); - -/* - In Parallel Backwards Parking, returns the y-coordinate given - a specific x-coordinate on the parking motion path. - - The origin is assumed to be the starting point of the path. - - The car is represented using the center of the rear axle. - - The method used for parking is the two circles method. - - The Radius is the same for each circle, - and should be set using Set_Param_A. - - The Saddle point is defined as the x-coordinate at which - the path transitions from circle 1 to circle 2. - and should be set using Set_Param_B. - - NOTE: all required parameters should be set before using this function -*/ -f32 PaB_Path (f32 x); - -//Perpendicular backward Path -f32 PeB_Path (f32 x); - -//perpendicular forward Path -f32 PeF_Path (f32 x); - -void Scan_Process(u8 Scanned_Area[] , u8 speed); -void Scan(u8 Scanned_Area[]); -void Process(u8 Scanned_Area[]); - -void Plot_The_Path(Scenario_t Scenario , .../*path */ ); - - -#endif /*MOTION_PLANNING_*/ diff --git a/Src/Application/Inc/Path_Tracking.h b/Src/Application/Inc/Path_Tracking.h deleted file mode 100644 index 0e0d615..0000000 --- a/Src/Application/Inc/Path_Tracking.h +++ /dev/null @@ -1,67 +0,0 @@ -#ifndef PATH_TRACKING_ -#define PATH_TRACKING_ - -#include "../../LIB/STD_TYPES.h" -#include "../Inc/Motion_Planing.h" -#include "../../LIB/BIT_MATH.h" - - -/******************************************************************************************************/ -/* LOC_GetCurrentLocation */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Get current location from imu sensor and return it as a point (x,y) */ -/* 2- Function Input -> void */ -/* 3- Function Return -> return Point_t >> the current poin */ -/******************************************************************************************************/ -static Point_t LOC_GetCurrentLocation (); - - - -/******************************************************************************************************/ -/* LOC_GetNextLocation */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Get the next point from the path by substitute in the mathematical */ -/* function */ -/* 2- Function Input -> @param Func_Path() = PaB_Path , PeB_Path , PeF_Path */ -/* 3- Function Return -> return Point_t >> the next point */ -/******************************************************************************************************/ -static Point_t LOC_GetNextLocation (f32 (*Func_Path)(f32 x)); - - - - -/******************************************************************************************************/ -/* LOC_GetDistanceBet2Points */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Get the distance between two points */ -/* 2- Function Input -> @param point1 >> current point */ -/* @param point2 >> next point */ -/* 3- Function Return -> return float distance in cm unit */ -/******************************************************************************************************/ -static f32 LOC_GetDistanceBet2Points (Point_t point1 ,Point_t point2 ); - - - -/******************************************************************************************************/ -/* LOC_GetAngleofslope */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Get the slope of line made by two points current and next points */ -/* 2- Function Input -> @param point1 >> current point */ -/* @param point2 >> next point */ -/* 3- Function Return -> return signed integer */ -/******************************************************************************************************/ -static s8 LOC_GetAngleofslope(Point_t point1 ,Point_t point2); - - - -/******************************************************************************************************/ -/* PT_TrackThePath */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> tracking the path by getting the current point and next point */ -/* 2- Function Input -> @param Func_Path() = PaB_Path , PeB_Path , PeF_Path */ -/* 3- Function Return -> void */ -/******************************************************************************************************/ -void PT_TrackThePath (f32 (*Func_Path)(f32 x)) ; - - -#endif /*PATH_TRACKING_*/ diff --git a/Src/Application/Inc/Scenario_Select.h b/Src/Application/Inc/Scenario_Select.h deleted file mode 100644 index 85fef2a..0000000 --- a/Src/Application/Inc/Scenario_Select.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef SENARIO_SELECT_ -#define SENARIO_SELECT_ - -typedef enum { - //parallel Backward - PaB , - //perpendicular forward - PeF , - //Perpendicular backward - PeB -}Scenario_t; - -#endif /*SENARIO_SELECT_*/ \ No newline at end of file diff --git a/Src/Application/Motion_Planing.c b/Src/Application/Motion_Planing.c deleted file mode 100644 index 741c019..0000000 --- a/Src/Application/Motion_Planing.c +++ /dev/null @@ -1,141 +0,0 @@ -#include "Inc/Motion_Planing.h" -#include "../LIB/STD_TYPES.h" -#include "../MCAL/MTIMER/MTIMER_Int.h" -#include "../MCAL/MGPIO/MGPIO_int.h" -#include "../HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h" - -// TODO: replace math.h with implementations as needed -#include - -f64 Distance1=0; -u8 speed,Car_Length=50,Car_width=35; -u8 vth,vth_pl,vth_pd,count=0; -u8 park_length, park_width; - -Point_t point_c; -Scenario_t scenario; - -u8 Scanned_Area[100]; - -f32 _param_a = 0; -f32 _param_b = 0; - -void Set_Param_A(f32 new_value) { _param_a = new_value; } -void Set_Param_B(f32 new_value) { _param_b = new_value; } - -/* - uses _param_a as the radius of the two circles. - uses _param_b as the x-coord of the saddle point. -*/ -f32 PaB_Path(f32 x) { - f32 y; - - // check if given x-coord is in the first circle - if (x <= _param_b) { - // x-coord is on the first circle - y = -sqrt(pow(_param_a, 2) - pow(x - _param_a, 2)); - } else { - // x-coord is on the second circle - - // theta is the angle between the two centers and the vertical axis - f32 sin_theta = 1 - _param_b / _param_a; - - // x_2 is the x-coord of the center of the second circle - f32 x_2 = _param_a - 2 * _param_a * sin_theta; - - // y_2 is the y-coord of the center of the second circle - f32 y_2 = - 2 * _param_a * sqrt(1 - pow(sin_theta, 2)); - - y = sqrt(pow(_param_a, 2) - pow(x - x_2, 2)) + y_2; - } - - return y; -} - -// Perpendicular backward Path -f32 PeB_Path(f32 x) { - // TODO: implement this. - return -1; -} - -// Perpendicular forward Path -f32 PeF_Path(f32 x) { - // TODO: implement this. - return -1; -} - -void Scan_Process (u8 Scanned_Area[], u8 speed) -{ - vth_pl=Car_Length/speed; // parallel parking - vth_pd=Car_width/speed; // perpendicular parking - for (int i=0;i<100;i++) - { - HULTRA_vSendTrigger(PORTB, PIN12); - HULTRA_vGetDistance(&Distance1, TIMER1, CH2); - Scanned_Area[i]=(u8)Distance1; - if (((u8)Distance1 > Car_width) && ((u8)Distance1 < Car_Length) ) - { - scenario =PaB; - vth=vth_pl; - count++; - } - else if (((u8)Distance1 > Car_Length)) - { - scenario =PeB; - vth=vth_pd; - count++; - } - if (count > vth) - { - park_length = (u8)Distance1; - park_width = count * speed; - // WE FOUND A PARKING SPACE - // if the car moves 5cm per sec , then vth should be > 7 sec - // if we are parking parallel & vth > 10 if prependicular - } - // MSYSTICK_vDelayms(1000); // Wait for a second - } - point_c.y=park_length/2; - point_c.x=park_width/2; -} - -void Scan(u8 Scanned_Area[]) -{ - for (int i=0;i<100;i++) - { - HULTRA_vSendTrigger(PORTB, PIN12); - HULTRA_vGetDistance(&Distance1, TIMER1, CH2); - Scanned_Area[i]=(u8)Distance1; - } -} -void Process(u8 Scanned_Area[]) -{ - for (int i=0;i<100;i++) - { - if ((Scanned_Area[i] > Car_width) && (Scanned_Area[i] < Car_Length) ) - { - scenario =PaB; - vth=vth_pl; - count++; - } - else if ((Distance1 > Car_Length)) - { - scenario =PeB; - vth=vth_pd; - count++; - } - if (count > vth) - { - park_length = Distance1; - park_width = count * speed; - // WE FOUND A PARKING SPACE - // if the car moves 5cm per sec , then vth should be > 7 sec - // if we are parking parallel & vth > 10 if prependicular - } - } - point_c.y=park_length/2; - point_c.x=park_width/2; -} - -void Plot_The_Path(Scenario_t Scenario , .../*path */ ); - diff --git a/Src/Application/Path_Tracking.c b/Src/Application/Path_Tracking.c deleted file mode 100644 index a3852ab..0000000 --- a/Src/Application/Path_Tracking.c +++ /dev/null @@ -1,55 +0,0 @@ -#include "Inc/Path_Tracking.h" - -static Point_t LOC_GetCurrentLocation (){ - Point_t current_point; - //code using MPU6050 - - //for test - current_point.x = 3.1 ; - current_point.y = 9.01 ; - return current_point ; -} - - -static Point_t LOC_GetNextLocation (f32 (*Func_Path)(f32 x)){ - Point_t current_point , next_point ; - f32 delta_x = 0.1 ; - f32 x_new , y_new ; - //get current point to increment its x by delta_x and get y_new by substituting - current_point = LOC_GetCurrentLocation(); - x_new = current_point.x + delta_x ; - y_new = Func_Path(x_new); - next_point.x = x_new ; - next_point.y = y_new ; - return next_point ; -} - -static f32 LOC_GetDistanceBet2Points (Point_t point1 ,Point_t point2 ){ - - return sqrt(pow(point2.x - point1.x, 2) + pow(point2.y - point1.y, 2)); -} - - -static s8 LOC_GetAngleofslope(Point_t point1 ,Point_t point2){ - f32 deltaX = point2.x - point1.x; - f32 deltaY = point2.y - point1.y; - - // Calculate the angle using arctangent - f32 angle = atan2(deltaY, deltaX); - - // Convert the angle from radians to degrees - angle = angle * (180.0 / PI); - - return (s8) angle; -} - -void PT_TrackThePath (f32 (*Func_Path)(f32 x)) { - f32 distance , angle ; - Point_t current_point , next_point ; - current_point = LOC_GetCurrentLocation(); - next_point = LOC_GetNextLocation(Func_Path); - distance = LOC_GetDistanceBet2Points(current_point, next_point); - angle = Get_Angle_of_slope(current_point, next_point); - - //It is expected to pass "distance , angle" to a control function will be finished soon -} diff --git a/Src/Application/Scenario_Select.c b/Src/Application/Scenario_Select.c deleted file mode 100644 index 3f4c0d5..0000000 --- a/Src/Application/Scenario_Select.c +++ /dev/null @@ -1,2 +0,0 @@ -#include "Inc/Scenario_Select.h" -Scenario_t senario = PaB ; diff --git a/Src/HAL/.gitkeep b/Src/HAL/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/Src/HAL/HCOMPASS/HAL_COMPASS.c b/Src/HAL/HCOMPASS/HAL_COMPASS.c deleted file mode 100644 index e669f93..0000000 --- a/Src/HAL/HCOMPASS/HAL_COMPASS.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - * HAL_COMPASS.c - * - * Created on: Dec 19, 2023 - * Author: Omar - */ - - -void HAL_CMP_vInit(){ - - /* Send CMP ADD with write */ - - /* Send ConfigREGA ADD --> 0x00 */ - - /* Send 0x70 --> 8 sampled average , 15 HZ data rate */ - - - /* Send CMP ADD with write */ - - /* Send ConfigREGB ADD --> 0x01 */ - - /* Send 0xA0 --> 5 Gain */ - - - /* Send CMP ADD with write */ - - /* Send ModREG ADD --> 0x02 */ - - /* Send 0x00 --> continuous measurment mode */ - - - /*** wait 6ms ***/ - - -} -void HAL_CMP_GetReading(); diff --git a/Src/HAL/HCOMPASS/HAL_COMPASS.h b/Src/HAL/HCOMPASS/HAL_COMPASS.h deleted file mode 100644 index 50a9098..0000000 --- a/Src/HAL/HCOMPASS/HAL_COMPASS.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * HAL_COMPASS.h - * - * Created on: Dec 19, 2023 - * Author: Omar - */ - -#ifndef HAL_COMPASS_HAL_COMPASS_H_ -#define HAL_COMPASS_HAL_COMPASS_H_ - -/* The register pointer will be incremented by 1 automatically after the current register has been read -successfully.*/ - -/*The bus bit format is an 8-bit Data/Address -send and a 1-bit acknowledge bit*/ - -/*Negative binary values will be in two’s complement form*/ - -/*The HMC5883L Serial Clock (SCL) and Serial Data (SDA) lines require resistive pull-ups (Rp) between the master device -(usually a host microprocessor) and the HMC5883L*/ - -/******************* Compass 7-bit Address ********************/ -#define HAL_COMPASS_ADDRESS (0x1E) - -#define ADDRESS_PLUS_READ (0x3D) -#define ADDRESS_PLUS_WRITE (0x3C) - -/* Defined in I2C bus Specs */ -#define STD_SPEED /*100k*/ -#define FAST_SPEED /*400k*/ - -#define CMP_ERROR_VAL 4096 - -typedef enum{ - - ConfigREGA=0x00,/* Sampled Avreage , Data out rate , measure config*/ - ConfigREGB=0x01, /* gain */ - ModREG=0x02, /* operation mode */ - X_MSB=0x03, /*A*/ - X_LSB=0x04, /*B*/ - Z_MSB=0x05, - Z_LSB=0x06, - Y_MSB=0x07, - Y_LSB=0x08, - SR=0x09, /* LOCK , RDY */ - IdentREGA=0x0A, - IdentREGB=0x0B, - IdentREGC=0x0C, -} CMP_Mem_Map_t; - -void HAL_CMP_vInit(); -void HAL_CMP_GetReading(); - -#endif /* HAL_COMPASS_HAL_COMPASS_H_ */ diff --git a/Src/HAL/HMOTOR/HMOTOR.c b/Src/HAL/HMOTOR/HMOTOR.c deleted file mode 100644 index ed7c18f..0000000 --- a/Src/HAL/HMOTOR/HMOTOR.c +++ /dev/null @@ -1,74 +0,0 @@ - -#include "../../LIB/BIT_MATH.h" -#include "../../MCAL/MGPIO/MGPIO_Int.h" -#include "../../MCAL/MGPIO/MGPIO_Config.h" -#include "HMOTOR.h" -#include "../../MCAL/MTIMER/MTIMER_Int.h" -#include"../../MCAL/MEXTI/MEXTI_int.h" -#include"../../MCAL/MSTK/MSYSTICK_int.h" - -#define WHEEL_AREA 26.4 -#define PULSES_PER_REVOLUTION 1024 - - -volatile MOTOR_PINS_t Motor_Pins ; -volatile u32 encoder_pulses = 0 ; -volatile u32 temp_pulses = 0 ; -void Increment_Pulse_CallBack(){ - encoder_pulses++ ; - temp_pulses++ ; -} - - - -void HAL_MOTOR_Init(u8 PORT_N1 , u8 PIN_N1, u8 PORT_N2 , u8 PIN_N2 ,u8 PORT_PWM , - u8 PIN_PWM, u8 PWM_TIMER , u8 ENCODER_EXTIx ,u8 NVIC_EXTIx){ - Motor_Pins.PORT_N1 = PORT_N1 ; - Motor_Pins.PORT_N2 = PORT_N2 ; - Motor_Pins.PORT_PWM = PORT_PWM ; - Motor_Pins.PIN_N1 = PIN_N1 ; - Motor_Pins.PIN_N2 = PIN_N2 ; - Motor_Pins.PIN_PWM = PIN_PWM ; - MGPIO_vSetPinMode(PORT_N1, PIN_N1, OUTPUT); - MGPIO_vSetPinMode(PORT_N2, PIN_N2, OUTPUT); - MGPIO_vSetPinMode(PORT_PWM, PIN_PWM,ALTFUNC); - MGPIO_vSetAlternativeFunction(PORT_PWM, PIN_PWM,PWM_TIMER); - - /********************Interrupt of encoder*****************************/ - MEXTI_vEnableInterrupt(ENCODER_EXTIx); - MEXTI_vInterruptTrigger(ENCODER_EXTIx, RISING); - SYSCFG_vConfigEXTI_Line(EXTI_PORTB, ENCODER_EXTIx); - MEXTI_vCallBack(ENCODER_EXTIx, Increment_Pulse_CallBack); - MNVIC_vEnableInterrupt(NVIC_EXTIx); -} - - -void HAL_MOTOR_MOVE(u8 DIRCTION ,u8 SPEED , f32 DISTANCE_cm_){ - f32 high_duty = (SPEED / 100.0) ; - f32 num_of_revolutions ; - u32 total_pulses = 0 ; - switch(DIRCTION){ - case BACKWARD : - MGPIO_vSetPinValue(Motor_Pins.PORT_N1, Motor_Pins.PIN_N1, HIGH); - MGPIO_vSetPinValue(Motor_Pins.PORT_N2, Motor_Pins.PIN_N2, LOW); - break; - case FORWARD: - MGPIO_vSetPinValue(Motor_Pins.PORT_N1, Motor_Pins.PIN_N1, LOW); - MGPIO_vSetPinValue(Motor_Pins.PORT_N2, Motor_Pins.PIN_N2, HIGH); - break; - } - /****************************speed********************************/ - MTIMER_vPWM(TIMER1, CH1, 10000, high_duty*10000); - /***************************distance******************************/ - num_of_revolutions = (DISTANCE_cm_/ WHEEL_AREA); -// num_of_revolutions = 4; - total_pulses = (u32)(num_of_revolutions * PULSES_PER_REVOLUTION); - while( total_pulses > temp_pulses ); - HAL_MOTOR_STOP(); - temp_pulses = 0 ; -} - -void HAL_MOTOR_STOP(){ - MGPIO_vSetPinValue(Motor_Pins.PORT_N1, Motor_Pins.PIN_N1, LOW); - MGPIO_vSetPinValue(Motor_Pins.PORT_N2, Motor_Pins.PIN_N2, LOW); -} diff --git a/Src/HAL/HMOTOR/HMOTOR.h b/Src/HAL/HMOTOR/HMOTOR.h deleted file mode 100644 index a61b89a..0000000 --- a/Src/HAL/HMOTOR/HMOTOR.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * HAL_MOTOR.h - * - * Created on: 31/1/2024 - * Author: Mohamed Hawas - */ - -#ifndef HAL_MOTOR_H_ -#define HAL_MOTOR_H_ - - -#include "../../LIB/STD_TYPES.h" - - -void HAL_MOTOR_Init ( u8 PORT_N1 , u8 PIN_N1, u8 PORT_N2 , u8 PIN_N2 ,u8 PORT_PWM , - u8 PIN_PWM, u8 PWM_TIMER , u8 ENCODER_EXTIx ,u8 NVIC_EXTIx); - -void HAL_MOTOR_MOVE(u8 DIRCTION ,u8 SPEED ,f32 DISTANCE_cm_); - -void HAL_MOTOR_STOP(); - - - - - - -/*************************Configuration************************/ -typedef struct { - //3 pins from the h-bridge - u8 PORT_N1 ; - u8 PIN_N1 ; - u8 PORT_N2 ; - u8 PIN_N2 ; - u8 PORT_PWM ; - u8 PIN_PWM ; - //2 pins from encoder - u8 PORT_SIGNAL1 ; - u8 PIN_SIGNAL1 ; - u8 PORT_SIGNAL2 ; - u8 PIN_SIGNAL2 ; - -}MOTOR_PINS_t; - -#define FORWARD 1 -#define BACKWARD 0 - - - - - - - - - - - - - - - - - - - -#endif /*HAL_MOTOR_H_*/ \ No newline at end of file diff --git a/Src/HAL/HSERVO/HSERVO_Config.h b/Src/HAL/HSERVO/HSERVO_Config.h deleted file mode 100644 index 8086f0c..0000000 --- a/Src/HAL/HSERVO/HSERVO_Config.h +++ /dev/null @@ -1,20 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Amr ElMaghraby */ -/* Version : V1.0.3 */ -/* Data : 28 Dec 2023 */ -/* Description : HSERVO_Config.h --> implementations */ -/*******************************************************************************************************/ - -#ifndef HAL_HSERVO_HSERVO_CONFIG_H_ -#define HAL_HSERVO_HSERVO_CONFIG_H_ - -//Value in usec -#define SERVO_FullPeriod 20000 - -//Macros for zero angle position as needed -#define ZERO_POS 85 - -//Define Number of required working Servos "MAX is 20" -#define TOT_SERVO_NUM 1 - -#endif /* HAL_HSERVO_HSERVO_CONFIG_H_ */ diff --git a/Src/HAL/HSERVO/HSERVO_Prog.c b/Src/HAL/HSERVO/HSERVO_Prog.c deleted file mode 100644 index bebdf58..0000000 --- a/Src/HAL/HSERVO/HSERVO_Prog.c +++ /dev/null @@ -1,105 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Amr ElMaghraby */ -/* Version : V1.0.3 */ -/* Data : 28 Dec 2023 */ -/* Description : HSERVO_Prog.c --> implementations */ -/* Module Features : */ -/* 01- HSERVO_vServoInit */ -/* 02- HSERVO_vServoDeg */ -/*******************************************************************************************************/ -// Include necessary MCU Abstraction Layer (MCAL) headers -#include "../../MCAL/MRCC/MRCC_Int.h" // RCC (Reset and Clock Control) -#include "../../MCAL/MGPIO/MGPIO_Int.h" // GPIO (General Purpose Input/Output) -#include "../../MCAL/MTIMER/MTIMER_Int.h" // TIMER (Timer Control) - -// Include HSERVO configuration and interface headers -#include "HSERVO_Config.h" -#include "HSERVO_Int.h" - -// Define a structure to store servo information -typedef struct { - Enum_TIMER_NUM TIMER; // Timer number associated with the servo - Enum_TIMER_CHs CHANNEL; // Timer channel associated with the servo -} LOC_SERVO_NUM; - -// Declare an array to store servo information for multiple servos -LOC_SERVO_NUM SERVO_STRUCT[TOT_SERVO_NUM]; - - -void HSERVO_vServoInit(Enum_SERVO_NUM Copy_u8ServoNum,Enum_TIMER_NUM Copy_u8TimerNum,u8 Copy_u8ChannelNum){ - // Configure GPIO pins and alternative functions based on the selected timer and channel - switch(Copy_u8TimerNum){ - case TIMER1: - MGPIO_vSetPinMode(PORTA, Copy_u8ChannelNum + 7 , ALTFUNC); - MGPIO_vSetAlternativeFunction(PORTA, Copy_u8ChannelNum + 7 , MGPIO_ALTFUNC_TIM12); - break; - case TIMER2: - if(Copy_u8ChannelNum == 1){ - MGPIO_vSetPinMode(PORTA, Copy_u8ChannelNum + 14 , ALTFUNC); - MGPIO_vSetAlternativeFunction(PORTA, Copy_u8ChannelNum + 14 , MGPIO_ALTFUNC_TIM12);} - else if(Copy_u8ChannelNum == 2){ - MGPIO_vSetPinMode(PORTB, Copy_u8ChannelNum + 1 , ALTFUNC); - MGPIO_vSetAlternativeFunction(PORTB, Copy_u8ChannelNum + 1 , MGPIO_ALTFUNC_TIM12); - } - else{ - MGPIO_vSetPinMode(PORTA, Copy_u8ChannelNum - 1 , ALTFUNC); - MGPIO_vSetAlternativeFunction(PORTA, Copy_u8ChannelNum - 1 , MGPIO_ALTFUNC_TIM12); - } - break; - case TIMER3: - if(Copy_u8ChannelNum 45) ? 45 : Copy_s8Deg; - - // Add Zero Position to the angle - Copy_s8Deg += ZERO_POS; - - // Calculate the positive duty cycle corresponding to the desired angle - u16 Positive_Duty = ((Copy_s8Deg * 2000) / 180) + 500; - - // Set the PWM signal to control the servo motor - MTIMER_vPWM(SERVO_STRUCT[Copy_u8ServoNum].TIMER, SERVO_STRUCT[Copy_u8ServoNum].CHANNEL, SERVO_FullPeriod, Positive_Duty); -} - - - - diff --git a/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Config.h b/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Config.h deleted file mode 100644 index 2965739..0000000 --- a/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Config.h +++ /dev/null @@ -1,17 +0,0 @@ -/********************************************************************************************************/ -/* Author : Amr ElMaghraby */ -/* Version : V1.0.5 */ -/* Data : 5 Feb 2024 */ -/* Description : HULTRA_SONIC_Config.h --> implementations */ -/********************************************************************************************************/ -#ifndef HAL_HULTRA_SONIC_HULTRA_SONIC_CONFIG_H_ -#define HAL_HULTRA_SONIC_HULTRA_SONIC_CONFIG_H_ - -//Macros for Trigger pulse width in msec -#define Trigger_Pulse_Width 20 - -//Number of ULtrasonic to be used "MAX 20" -#define TOT_ULTRA_SONIC_NUM 10 - - -#endif /* HAL_HULTRA_SONIC_HULTRA_SONIC_CONFIG_H_ */ diff --git a/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h b/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h deleted file mode 100644 index 2dbc27c..0000000 --- a/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h +++ /dev/null @@ -1,106 +0,0 @@ -/********************************************************************************************************/ -/* Author : Amr ElMaghraby */ -/* Version : V1.0.5 */ -/* Data : 5 Feb 2024 */ -/* Description : HULTRA_SONIC_Int.h --> implementations */ -/* Module Features : */ -/* @Functions: */ -/* 01- HULTRA_vInitialize */ -/* 02- HULTRA_vSendTrigger */ -/* 03- HULTRA_vGetDistance */ -/* @TypeDef: */ -/* @Enums: */ -/* 01- Enum_ULTRA_SONIC_NUM */ -/********************************************************************************************************/ - - -/*******************************************************************************************************/ -/* guard of file will call on time in .c */ -/*******************************************************************************************************/ - -#ifndef HAL_HULTRA_SONIC_HULTRA_SONIC_INT_H_ -#define HAL_HULTRA_SONIC_HULTRA_SONIC_INT_H_ - -/********************************************************************************************************/ -/* Enum for ULTRASONIC Numbering */ -/********************************************************************************************************/ -typedef enum{ - ULTRA_SONIC1,ULTRA_SONIC2,ULTRA_SONIC3,ULTRA_SONIC4,ULTRA_SONIC5, - ULTRA_SONIC6,ULTRA_SONIC7,ULTRA_SONIC8,ULTRA_SONIC9,ULTRA_SONIC10, - ULTRA_SONIC11,ULTRA_SONIC12,ULTRA_SONIC13,ULTRA_SONIC14,ULTRA_SONIC15, - ULTRA_SONIC16,ULTRA_SONIC17,ULTRA_SONIC18,ULTRA_SONIC19,ULTRA_SONIC20, -}Enum_ULTRA_SONIC_NUM; - - - - -/******************************************************************************************************/ -/* APIs */ -/******************************************************************************************************/ - -/******************************************************************************************************/ -/* 01- HULTRA_vInitialize */ -/*----------------------------------------------------------------------------------------------------*/ -/** - * @Description Initialize ultrasonic sensor parameters including GPIO and timer configurations. - * - *@param Copy_u8Ultra_NUM: Numbering ultrasonic as wanted to be used in the HULTRA_vGetDistance function. - * Expected to be Enum_ULTRA_SONIC_NUM { ULTRA_SONIC1 , .... , ULTRA_SONIC20 } - * - * @param Copy_u8TimerNum: The timer number used for ultrasonic sensor measurement. - * Expected to be Enum_TIMER_NUM ==> { TIMER1, TIMER2, TIMER3, TIMER4, - * TIMER5, TIMER9, TIMER10, TIMER11 } - * @param Copy_u8ChannelNum: The timer channel number used for ultrasonic sensor measurement. - * Expected to be Enum_TIMER_CHs ==> { CH1, CH2, CH3, CH4 } - * - * - * @return void - * - * @note This function sets up the GPIO pins and configures the specified timer for ultrasonic sensor interfacing. - * The ultrasonic sensor parameters are stored in the ULTRA_NUM array based on the timer and channel numbers. - */ -void HULTRA_vInitialize(Enum_ULTRA_SONIC_NUM Copy_u8Ultra_NUM,Enum_TIMER_NUM Copy_u8TimerNum, u8 Copy_u8ChannelNum); -/******************************************************************************************************/ - -/******************************************************************************************************/ -/* 02- HULTRA_vSendTrigger */ -/*----------------------------------------------------------------------------------------------------*/ -/** - * @Description Send a trigger signal to an ultrasonic sensor. - * - * @param Copy_u8Port: The GPIO port of the ultrasonic sensor trigger pin. - * Expected to be any defined port name {GPIOA, GPIOB, GPIOC} - * @param Copy_u8Pin: The GPIO pin of the ultrasonic sensor trigger. - * Expected to be any defined pin number {PIN1 , . . . , PIN15} - * - * @return void - * - * @note This function sets the specified pin as an OUTPUT, raises it to HIGH for a short duration, - * then brings it back to LOW. It is typically used to initiate distance measurements in ultrasonic sensors. - */ -void HULTRA_vSendTrigger(u8 Copy_u8Port, u8 Copy_u8Pin); -/******************************************************************************************************/ - -/******************************************************************************************************/ -/* 03- HULTRA_vGetDistance */ -/*----------------------------------------------------------------------------------------------------*/ -/** - * @Description Get the distance measurement from an ultrasonic sensor. - * - * @param Copy_u8Ultra_NUM: Write any ultrasonic number defined in initialization function as wanted. - * Expected to be Enum_ULTRA_SONIC_NUM { ULTRA_SONIC1 , .... , ULTRA_SONIC20 } - * @param Copy_f64Distance: Pointer to a variable to store the calculated distance. - * - * @return void - * - * @note This function calculates the distance based on the input from a specified timer channel. - * The calculated distance is stored in the variable pointed to by Copy_f64Distance. - * The formula used for the calculation assumes a speed of sound of 343 meters per second. - * The timer values are expected to represent the time taken for the ultrasonic signal to travel - * to an object and back, divided by 2 to get the one-way distance. - */ -void HULTRA_vGetDistance(Enum_ULTRA_SONIC_NUM Copy_u8Ultra_NUM,f64* Copy_f64Distance); - -/******************************************************************************************************/ - -#endif /* HAL_HULTRA_SONIC_HULTRA_SONIC_INT_H_ */ diff --git a/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.c b/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.c deleted file mode 100644 index 8ca6e47..0000000 --- a/Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.c +++ /dev/null @@ -1,112 +0,0 @@ -/********************************************************************************************************/ -/* Author : Amr ElMaghraby */ -/* Version : V1.0.5 */ -/* Data : 5 Feb 2024 */ -/* Description : HULTRA_SONIC_Prog.c --> implementations */ -/* Module Features : */ -/* @Functions: */ -/* 01- HULTRA_vInitialize */ -/* 02- HULTRA_vSendTrigger */ -/* 03- HULTRA_vGetDistance */ -/* @TypeDef: */ -/* @Enums: */ -/* 01- Enum_ULTRA_SONIC_NUM */ -/********************************************************************************************************/ - -#include "../../MCAL/MRCC/MRCC_Int.h" // MRCC: Reset and Clock Control driver -#include "../../MCAL/MGPIO/MGPIO_Int.h" // MGPIO: General Purpose Input/Output driver -#include "../../MCAL/MTIMER/MTIMER_Int.h" // MTIMER: Timer driver -#include "../../MCAL/MSTK/MSYSTICK_Int.h" // MSTK: SysTick timer driver - -#include "HULTRA_SONIC_Config.h" // Configuration header for the Ultrasonic Sensor -#include "HULTRA_SONIC_Int.h" // Interface header for the Ultrasonic Sensor - - -// Definition of a structure to hold Ultrasonic Sensor information -typedef struct { - Enum_TIMER_NUM TIMER; - Enum_TIMER_CHs CHANNELS; -} LOC_ULTRA_NUM; - -// Array to store information for multiple Ultrasonic Sensors -LOC_ULTRA_NUM ULTRA_STRUCT[TOT_ULTRA_SONIC_NUM]; - - -void HULTRA_vInitialize(Enum_ULTRA_SONIC_NUM Copy_u8Ultra_NUM,Enum_TIMER_NUM Copy_u8TimerNum, u8 Copy_u8ChannelNum) -{ // Configure GPIO pins and alternative functions based on the selected timer and channel - switch(Copy_u8TimerNum){ - case TIMER1: - MGPIO_vSetPinMode(PORTA, Copy_u8ChannelNum + 7 , ALTFUNC); - MGPIO_vSetAlternativeFunction(PORTA, Copy_u8ChannelNum + 7 , MGPIO_ALTFUNC_TIM12); - break; - case TIMER2: - if(Copy_u8ChannelNum == 1){ - MGPIO_vSetPinMode(PORTA, Copy_u8ChannelNum + 14 , ALTFUNC); - MGPIO_vSetAlternativeFunction(PORTA, Copy_u8ChannelNum + 14 , MGPIO_ALTFUNC_TIM12);} - else if(Copy_u8ChannelNum == 2){ - MGPIO_vSetPinMode(PORTB, Copy_u8ChannelNum + 1 , ALTFUNC); - MGPIO_vSetAlternativeFunction(PORTB, Copy_u8ChannelNum + 1 , MGPIO_ALTFUNC_TIM12); - } - else{ - MGPIO_vSetPinMode(PORTA, Copy_u8ChannelNum - 1 , ALTFUNC); - MGPIO_vSetAlternativeFunction(PORTA, Copy_u8ChannelNum - 1 , MGPIO_ALTFUNC_TIM12); - } - break; - case TIMER3: - if(Copy_u8ChannelNum>Bit_No) & 0x01) - -#define CLR_SET(Var,Bit_No) (Var = ( (Var|=1<>Bit_No) & 0x03) - -#define SET_VAL(Var,Bit_No,Val) (Var |= (Val< -#endif diff --git a/Src/LIB/STD_TYPES.h b/Src/LIB/STD_TYPES.h deleted file mode 100644 index e3d3d28..0000000 --- a/Src/LIB/STD_TYPES.h +++ /dev/null @@ -1,37 +0,0 @@ - -#ifndef LIB_STD_Type_H_ -#define LIB_STD_Type_H_ - -#define STD_NULL ((void*)0) -#define NULL_PTR ((void*)0) - -typedef unsigned char u8; -typedef signed char s8; -typedef signed short int s16; -typedef unsigned short int u16; -typedef signed long int s32; -typedef unsigned long int u32; -typedef float f32; -typedef double f64; -typedef long double f128; - -#ifndef FALSE -#define FALSE (0u) -#endif -#ifndef TRUE -#define TRUE (1u) -#endif -#ifndef STD_HIGH -#define STD_HIGH (0u) -#endif -#ifndef STD_LOW -#define STD_LOW (1u) -#endif -#ifndef STD_ON -#define STD_ON (1u) -#endif -#ifndef STD_OFF -#define STD_OFF (0u) -#endif - -#endif diff --git a/Src/MCAL/.gitkeep b/Src/MCAL/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/Src/MCAL/MEXTI/MEXTI_Config.h b/Src/MCAL/MEXTI/MEXTI_Config.h deleted file mode 100644 index e3c739f..0000000 --- a/Src/MCAL/MEXTI/MEXTI_Config.h +++ /dev/null @@ -1,14 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Amr Elmaghraby */ -/* Version : V0.0.0 */ -/* Data : 7 nov 2023 */ -/*******************************************************************************************************/ - -#ifndef MCAL_MEXTI_MEXTI_CONFIG_H_ -#define MCAL_MEXTI_MEXTI_CONFIG_H_ - - - - - -#endif /* MCAL_MEXTI_MEXTI_CONFIG_H_ */ diff --git a/Src/MCAL/MEXTI/MEXTI_Int.h b/Src/MCAL/MEXTI/MEXTI_Int.h deleted file mode 100644 index f4f5b66..0000000 --- a/Src/MCAL/MEXTI/MEXTI_Int.h +++ /dev/null @@ -1,145 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Amr Elmaghraby */ -/* Version : V0.0.0 */ -/* Data : 5 nov 2023 */ -/* Description : Interface file for interfacing with the user */ -/* Module Features : */ -/* 01- void SYSCFG_vConfigEXTI_Line(u8 Copy_u8Port,u8 Copy_u8EXTI_Num); */ -/* 02- void MEXTI_vEnableInterrupt(u8 Copy_u8EXTI_Num); */ -/* 03- void MEXTI_vDisableInterrupt(u8 Copy_u8EXTI_Num); */ -/* 04- void MEXTI_vEnableEvent(u8 Copy_u8EXTI_Num); */ -/* 05- void MEXTI_vDisableEvent(u8 Copy_u8EXTI_Num); */ -/* 06- void MEXTI_vInterruptTrigger(u8 Copy_u8EXTI_Num,EXTI_TRIGGER Copy_u8Trig); */ -/* 07- void MEXTI_vSWevent(u8 Copy_u8EXTI_Num); */ -/* 08- void MEXTI_u8ReadInterruptFlag(u8 Copy_u8EXTI_Num); */ -/*******************************************************************************************************/ - - -/*******************************************************************************************************/ -/* guard of file will call on time in .c */ -/*******************************************************************************************************/ -#ifndef MCAL_MEXTI_MEXTI_INT_H_ -#define MCAL_MEXTI_MEXTI_INT_H_ - -/********************************************************************************************************/ -/* macros of EXTI */ -/********************************************************************************************************/ -#define EXTI_PORTA 0 -#define EXTI_PORTB 1 -#define EXTI_PORTC 2 -#define EXTI_PORTD 3 -#define EXTI_PORTE 4 -#define EXTI_PORTH 7 - -typedef enum{ - RISING, - FALLING, - ONCHARGE -} EXTI_TRIGGER; - - -typedef enum { - - EXTI0, - EXTI1, - EXTI2, - EXTI3, - EXTI4, - EXTI5, - EXTI6, - EXTI7, - EXTI8, - EXTI9, - EXTI10, - EXTI11, - EXTI12, - EXTI13, - EXTI14, - EXTI15, -} Enum_MEXTI_No_t; -/*********************************************************************************************************/ -/* 01- SYSCFG_vConfigEXTI_Line */ -/*-------------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Configures the EXTI line for a specific port and EXTI number. */ -/* 2- Function Input -> Copy_u8Port: The port number to configure (e.g., GPIOA, GPIOB, etc.). */ -/* Copy_u8EXTI_Num: The EXTI number to configure (0-15). */ -/* 3- Function Return -> void */ -/******************************************************************************************************/ -void SYSCFG_vConfigEXTI_Line(u8 Copy_u8Port,u8 Copy_u8EXTI_Num); -/******************************************************************************************************/ - -/******************************************************************************************************/ -/* 02- MEXTI_vEnableInterrupt */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Enables the interrupt for a specific EXTI number. */ -/* 2- Function Input -> Copy_u8EXTI_Num: The EXTI number to enable the interrupt for (0-15). */ -/* 3- Function Return -> void */ -/******************************************************************************************************/ -void MEXTI_vEnableInterrupt(u8 Copy_u8EXTI_Num); -/******************************************************************************************************/ - -/******************************************************************************************************/ -/* 03- MEXTI_vDisableInterrupt */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Disables the interrupt for a specific EXTI number. */ -/* 2- Function Input -> Copy_u8EXTI_Num: The EXTI number to disable the interrupt for (0-15). */ -/* 3- Function Return -> void */ -/******************************************************************************************************/ -void MEXTI_vDisableInterrupt(u8 Copy_u8EXTI_Num); -/******************************************************************************************************/ - -/******************************************************************************************************/ -/* 04- MEXTI_vEnableEvent */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Enables the event for a specific EXTI number. */ -/* 2- Function Input -> Copy_u8EXTI_Num: The EXTI number to enable the event for (0-15). */ -/* 3- Function Return -> void */ -/******************************************************************************************************/ -void MEXTI_vEnableEvent(u8 Copy_u8EXTI_Num); -/******************************************************************************************************/ - -/******************************************************************************************************/ -/* 05- MEXTI_vDisableEvent */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Disables the event for a specific EXTI number. */ -/* 2- Function Input -> Copy_u8EXTI_Num: The EXTI number to disable the event for (0-15). */ -/* 3- Function Return -> void */ -/******************************************************************************************************/ -void MEXTI_vDisableEvent(u8 Copy_u8EXTI_Num); -/******************************************************************************************************/ - -/******************************************************************************************************/ -/* 06- MEXTI_vInterruptTrigger */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Configures the trigger type for a specific EXTI number. */ -/* 2- Function Input -> Copy_u8EXTI_Num: The EXTI number to configure the trigger for (0-15). */ -/* Copy_u8Trig: The trigger type (e.g., EXTI_TRIGGER_RISING_EDGE, */ -/* EXTI_TRIGGER_FALLING_EDGE, or EXTI_TRIGGER_BOTH_EDGES). */ -/* 3- Function Return -> void */ -/******************************************************************************************************/ -void MEXTI_vInterruptTrigger(u8 Copy_u8EXTI_Num,EXTI_TRIGGER Copy_u8Trig); -/******************************************************************************************************/ - -/******************************************************************************************************/ -/* 07- MEXTI_vSWevent */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Software triggers an event for a specific EXTI number. */ -/* 2- Function Input -> Copy_u8EXTI_Num: The EXTI number to trigger the event for (0-15). */ -/* 3- Function Return -> void */ -/******************************************************************************************************/ -void MEXTI_vSWevent(u8 Copy_u8EXTI_Num); -/******************************************************************************************************/ - -/******************************************************************************************************/ -/* 08- MEXTI_u8ReadInterruptFlag */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Reads the interrupt flag for a specific EXTI number. */ -/* 2- Function Input -> Copy_u8EXTI_Num: The EXTI number to read the interrupt flag for (0-15). */ -/* 3- Function Return -> The interrupt flag value (0 or 1). */ -/******************************************************************************************************/ -void MEXTI_u8ReadInterruptFlag(u8 Copy_u8EXTI_Num); -/******************************************************************************************************/ -void MEXTI_vCallBack(Enum_MEXTI_No_t Copy_u8InterruptNo ,void(*ptr)(void)); - - -#endif /* MCAL_MEXTI_MEXTI_INT_H_ */ diff --git a/Src/MCAL/MEXTI/MEXTI_Private.h b/Src/MCAL/MEXTI/MEXTI_Private.h deleted file mode 100644 index 8e94777..0000000 --- a/Src/MCAL/MEXTI/MEXTI_Private.h +++ /dev/null @@ -1,65 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Amr Elmaghraby */ -/* Version : V0.0.0 */ -/* Data : 5 nov 2023 */ -/* Description : Private File Can`t Be Edit By User */ -/*******************************************************************************************************/ - -/*******************************************************************************************************/ -/* guard of file will call on time in .c */ -/*******************************************************************************************************/ -#ifndef MCAL_MEXTI_MEXTI_PRIVATE_H_ -#define MCAL_MEXTI_MEXTI_PRIVATE_H_ - -/*******************************************************************************************************/ -/* LIB */ -/*******************************************************************************************************/ -#include"../../LIB/BIT_MATH.h" -#include"../../LIB/STD_TYPES.h" - -/*******************************************************************************************************/ -/* Base Address Of EXTI Register */ -/*******************************************************************************************************/ -#define EXTI_BASE_ADD 0x40013C00 -#define SYSCFG_BASE_ADD 0x40013800 - -/********************************************************************************************************/ -/* macros of EXTI */ -/********************************************************************************************************/ -#define PIN_PER_REG 4 -#define BIT_PER_PIN 4 -#define MASK4 15 - -/**************************************************************************/ -/* Register Definition :- */ -/* Features : Private File Can`t Be Edit By User */ -/* Description :- */ -/* - #define : YES */ -/* - union : NO */ -/* - struct : YES */ -/**************************************************************************/ -typedef struct{ - u32 IMR; - u32 EMR; - u32 RTSR; - u32 FTSR; - u32 SWIER; - u32 PR; -} EXTI_MemMap_t; - -typedef struct{ - u32 MEMRMP; - u32 PMC; - u32 EXTICR[4]; - u32 Reserved[2]; - u32 CMPCR; -} SYSCFG_MemMap_t; - -/***************************************************************************/ -/* Struct Macro Base Address Of RCC */ -/***************************************************************************/ -#define EXTI ((volatile EXTI_MemMap_t *) EXTI_BASE_ADD) -#define SYSCFG ((volatile SYSCFG_MemMap_t *) SYSCFG_BASE_ADD) - - -#endif /* MCAL_MEXTI_MEXTI_PRIVATE_H_ */ diff --git a/Src/MCAL/MEXTI/MEXTI_Prog.c b/Src/MCAL/MEXTI/MEXTI_Prog.c deleted file mode 100644 index e53dbb4..0000000 --- a/Src/MCAL/MEXTI/MEXTI_Prog.c +++ /dev/null @@ -1,147 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Amr Elmaghraby */ -/* Version : V0.0.0 */ -/* Data : 5 nov 2023 */ -/* Description : Driver Functions Implementation */ -/*******************************************************************************************************/ - -/***************************************************************************/ -/* MCAL Components */ -/***************************************************************************/ -#include"MEXTI_Config.h" -#include"MEXTI_Private.h" -#include"MEXTI_Int.h" - -/***************************************************************************/ -/* Functions Implementations */ -/***************************************************************************/ -static void (*GLOBAL_EXTIPtr[16])(void) = {STD_NULL}; - -void SYSCFG_vConfigEXTI_Line(u8 Copy_u8Port,Enum_MEXTI_No_t Copy_u8EXTI_Num){ - //Clear 4 Bits Before Write - SYSCFG->EXTICR[Copy_u8EXTI_Num / PIN_PER_REG] &= ~(MASK4 << ( (Copy_u8EXTI_Num % PIN_PER_REG)*BIT_PER_PIN ) ); - SYSCFG->EXTICR[Copy_u8EXTI_Num / PIN_PER_REG] |= (Copy_u8Port << ( (Copy_u8EXTI_Num % PIN_PER_REG)*BIT_PER_PIN ) ); -} - -void MEXTI_vEnableInterrupt(Enum_MEXTI_No_t Copy_u8EXTI_Num){ - SET_BIT(EXTI->IMR,Copy_u8EXTI_Num); -} - -void MEXTI_vDisableInterrupt(u8 Copy_u8EXTI_Num){ - CLR_BIT(EXTI->IMR,Copy_u8EXTI_Num); -} - -void MEXTI_vEnableEvent(u8 Copy_u8EXTI_Num){ - SET_BIT(EXTI->EMR,Copy_u8EXTI_Num); -} - -void MEXTI_vDisableEvent(u8 Copy_u8EXTI_Num){ - CLR_BIT(EXTI->EMR,Copy_u8EXTI_Num); -} - -void MEXTI_vInterruptTrigger(Enum_MEXTI_No_t Copy_u8EXTI_Num,EXTI_TRIGGER Copy_u8Trig){ - switch(Copy_u8Trig){ - case RISING: - SET_BIT(EXTI->RTSR,Copy_u8EXTI_Num); - CLR_BIT(EXTI->FTSR,Copy_u8EXTI_Num); - break; - case FALLING: - CLR_BIT(EXTI->RTSR,Copy_u8EXTI_Num); - SET_BIT(EXTI->FTSR,Copy_u8EXTI_Num); - break; - case ONCHARGE: - SET_BIT(EXTI->RTSR,Copy_u8EXTI_Num); - SET_BIT(EXTI->FTSR,Copy_u8EXTI_Num); - break; - } -} - -void MEXTI_vSWevent(u8 Copy_u8EXTI_Num){ - SET_BIT(EXTI->SWIER,Copy_u8EXTI_Num); -} - -void MEXTI_PtrReadInterruptFlag(u8 Copy_u8EXTI_Num,u8* Copy_u8Reg){ - * Copy_u8Reg = GET_BIT(EXTI->PR,Copy_u8EXTI_Num); -} - - -void MEXTI_vCallBack(Enum_MEXTI_No_t Copy_u8InterruptNo ,void(*ptr)(void)){ - if( ptr != STD_NULL){ - GLOBAL_EXTIPtr[Copy_u8InterruptNo]=ptr; - } -} - - -void EXTI0_IRQHandler(void){ - GLOBAL_EXTIPtr[0](); - EXTI->PR |= 1; -} - -void EXTI1_IRQHandler(void){ - GLOBAL_EXTIPtr[1](); - EXTI->PR |= 1<<1; -} - -void EXTI2_IRQHandler(void){ - GLOBAL_EXTIPtr[2](); - EXTI->PR |= 1<<2; -} -void EXTI3_IRQHandler(void){ - GLOBAL_EXTIPtr[3](); - EXTI->PR |= 1<<3; -} -void EXTI4_IRQHandler(void){ - GLOBAL_EXTIPtr[4](); - EXTI->PR |= 1<<4; -} -void EXTI9_5_IRQHandler(void){ - if((GET_BIT(EXTI->PR,EXTI5)==1)&(GLOBAL_EXTIPtr[EXTI5]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI5](); - EXTI->PR |= 1<PR,EXTI6)==1)&(GLOBAL_EXTIPtr[EXTI6]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI6](); - EXTI->PR |= 1<PR,EXTI7)==1)&(GLOBAL_EXTIPtr[EXTI7]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI7](); - EXTI->PR |= 1<PR,EXTI8)==1)&(GLOBAL_EXTIPtr[EXTI8]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI8](); - EXTI->PR |= 1<PR,EXTI9)==1)&(GLOBAL_EXTIPtr[EXTI9]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI9](); - EXTI->PR |= 1<PR,EXTI10)==1)&(GLOBAL_EXTIPtr[EXTI10]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI10](); - EXTI->PR |= 1<PR,EXTI11)==1)&(GLOBAL_EXTIPtr[EXTI11]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI11](); - EXTI->PR |= 1<PR,EXTI12)==1)&(GLOBAL_EXTIPtr[EXTI12]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI12](); - EXTI->PR |= 1<PR,EXTI13)==1)&(GLOBAL_EXTIPtr[EXTI13]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI13](); - EXTI->PR |= 1<PR,EXTI14)==1)&(GLOBAL_EXTIPtr[EXTI14]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI14](); - EXTI->PR |= 1<PR,EXTI15)==1)&(GLOBAL_EXTIPtr[EXTI15]!=STD_NULL)){ - GLOBAL_EXTIPtr[EXTI15](); - EXTI->PR |= 1< MODER &= ~(0b11<<(Copy_u8PinNo*2)); - /* set the desired mode*/ - GPIOA -> MODER |= (Copy_u8PinMode <<(Copy_u8PinNo*2)); - break; - case PORTB: - /*clear the current mode*/ - GPIOB -> MODER &= ~(0b11<<(Copy_u8PinNo*2)); - /* set the desired mode*/ - GPIOB -> MODER |= (Copy_u8PinMode <<(Copy_u8PinNo*2)); - break; - case PORTC: - /*clear the current mode*/ - GPIOC -> MODER &= ~(0b11<<(Copy_u8PinNo*2)); - /* set the desired mode*/ - GPIOC -> MODER |= (Copy_u8PinMode <<(Copy_u8PinNo*2)); - break; - } -} - -void MGPIO_vSetPinOutPutType( u8 Copy_u8PortID, u8 Copy_u8PinNo , u8 Copy_u8PinOutPutType){ - - switch(Copy_u8PortID){ - case PORTA: - if(Copy_u8PinOutPutType == GPIO_OPEN_DRAIN) - SET_BIT(GPIOA -> OTYPER , Copy_u8PinNo); - else - CLR_BIT(GPIOA -> OTYPER , Copy_u8PinNo); - break; - case PORTB: - if(Copy_u8PinOutPutType == GPIO_OPEN_DRAIN) - SET_BIT(GPIOB -> OTYPER , Copy_u8PinNo); - else - CLR_BIT(GPIOB -> OTYPER , Copy_u8PinNo); - break; - case PORTC: - if(Copy_u8PinOutPutType == GPIO_OPEN_DRAIN) - SET_BIT(GPIOC -> OTYPER , Copy_u8PinNo); - else - CLR_BIT(GPIOC -> OTYPER , Copy_u8PinNo); - break; - - } -} - -void MGPIO_vSetPinOutPutSpeed( u8 Copy_u8PortID, u8 Copy_u8PinNo , u8 Copy_u8PinOutPutSpeed){ - - switch(Copy_u8PortID){ - case PORTA: - /*clear the current speed*/ - GPIOA -> OSPEEDR &= ~(0b11<<(Copy_u8PinNo*2)); - /* set the desired speed*/ - GPIOA -> OSPEEDR |= (Copy_u8PinOutPutSpeed <<(Copy_u8PinNo*2)); - break; - case PORTB: - /*clear the current speed*/ - GPIOB -> OSPEEDR &= ~(0b11<<(Copy_u8PinNo*2)); - /* set the desired speed*/ - GPIOB -> OSPEEDR |= (Copy_u8PinOutPutSpeed <<(Copy_u8PinNo*2)); - break; - case PORTC: - /*clear the current speed*/ - GPIOC -> OSPEEDR &= ~(0b11<<(Copy_u8PinNo*2)); - /* set the desired speed*/ - GPIOC -> OSPEEDR |= (Copy_u8PinOutPutSpeed <<(Copy_u8PinNo*2)); - break; - } -} - -void MGPIO_vSetPinInPutType( u8 Copy_u8PortID, u8 Copy_u8PinNo , u8 Copy_u8PinInputType){ - - switch(Copy_u8PortID){ - case PORTA: - /*clear the current pull*/ - GPIOA -> PUPDR &= ~(0b11<<(Copy_u8PinNo*2)); - /* set the desired pull */ - GPIOA -> PUPDR |= (Copy_u8PinInputType <<(Copy_u8PinNo*2)); - break; - case PORTB: - /*clear the current pull */ - GPIOB -> PUPDR &= ~(0b11<<(Copy_u8PinNo*2)); - /* set the desired pull */ - GPIOB -> PUPDR |= (Copy_u8PinInputType <<(Copy_u8PinNo*2)); - break; - case PORTC: - /*clear the current pull */ - GPIOC -> PUPDR &= ~(0b11<<(Copy_u8PinNo*2)); - /* set the desired pull */ - GPIOC -> PUPDR |= (Copy_u8PinInputType <<(Copy_u8PinNo*2)); - break; - } -} - -u8 MGPIO_u8GetPinValue(u8 Copy_u8PortID, u8 Copy_u8PinNo){ - - u8 Local_u8PinVal = 0; - switch(Copy_u8PortID){ - case PORTA: - Local_u8PinVal= GET_BIT(GPIOA -> IDR , Copy_u8PinNo); - break; - case PORTB: - Local_u8PinVal= GET_BIT(GPIOB -> IDR , Copy_u8PinNo); - break; - case PORTC: - Local_u8PinVal= GET_BIT(GPIOC -> IDR , Copy_u8PinNo); - break; - } - return Local_u8PinVal; -} - -void MGPIO_vSetPinValue(u8 Copy_u8PortID, u8 Copy_u8PinNo ,u8 Copy_u8PinValue){ - - switch(Copy_u8PortID){ - case PORTA: - if(Copy_u8PinValue == HIGH) - SET_BIT(GPIOA -> ODR , Copy_u8PinNo); - else - CLR_BIT(GPIOA -> ODR , Copy_u8PinNo); - break; - case PORTB: - if(Copy_u8PinValue == HIGH) - SET_BIT(GPIOB -> ODR , Copy_u8PinNo); - else - CLR_BIT(GPIOB -> ODR , Copy_u8PinNo); - break; - case PORTC: - if(Copy_u8PinValue == HIGH) - SET_BIT(GPIOC -> ODR , Copy_u8PinNo); - else - CLR_BIT(GPIOC -> ODR , Copy_u8PinNo); - break; - - } -} - -/******* BSRR ********/ -/*** - * it seem to be wrong implementation - * as set_bit is REG |= 1<< pino --> read ,modify, write - * - * the correct atomic funtion should be - * set_bit_fast REG = 1<< pino --> write - * - * **/ -void MGPIO_vSetPinAtomic(u8 Copy_u8PortID, u8 Copy_u8PinNo ,u8 Copy_u8PinValue){ - - switch(Copy_u8PortID){ - case PORTA: - if(Copy_u8PinValue == HIGH) - SET_BIT(GPIOA -> BSRR , Copy_u8PinNo); - else - SET_BIT(GPIOA -> BSRR , (Copy_u8PinNo+16)); - break; - case PORTB: - if(Copy_u8PinValue == HIGH) - SET_BIT(GPIOB -> BSRR , Copy_u8PinNo); - else - SET_BIT(GPIOB -> BSRR , (Copy_u8PinNo+16)); - break; - case PORTC: - if(Copy_u8PinValue == HIGH) - SET_BIT(GPIOC -> BSRR , Copy_u8PinNo); - else - SET_BIT(GPIOC -> BSRR , (Copy_u8PinNo+16)); - break; - - } -} - -void MGPIO_vSetAlternativeFunction(u8 Copy_u8PortID, u8 Copy_u8PinNo ,u8 Copy_u8FunctionName){ - - - switch(Copy_u8PortID){ - case PORTA: - if(Copy_u8PinNo <=7 ){ - /* Clear the current alt func */ - GPIOA -> AFRL &= ~(0b1111 << (Copy_u8PinNo*4) ); - /* set the desired alt func */ - GPIOA -> AFRL |= (Copy_u8FunctionName <<(Copy_u8PinNo*4)); - } - else{ - Copy_u8PinNo-=8; - /* Clear the current alt func */ - GPIOA -> AFRH &= ~(0b1111 << (Copy_u8PinNo*4) ); - /* set the desired alt func */ - GPIOA -> AFRH |= (Copy_u8FunctionName <<(Copy_u8PinNo*4)); - } - break; - case PORTB: - if(Copy_u8PinNo <=7 ){ - /* Clear the current alt func */ - GPIOB -> AFRL &= ~(0b1111 << (Copy_u8PinNo*4) ); - /* set the desired alt func */ - GPIOB -> AFRL |= (Copy_u8FunctionName <<(Copy_u8PinNo*4)); - } - else{ - Copy_u8PinNo-=8; - /* Clear the current alt func */ - GPIOB -> AFRH &= ~(0b1111 << (Copy_u8PinNo*4) ); - /* set the desired alt func */ - GPIOB -> AFRH |= (Copy_u8FunctionName <<(Copy_u8PinNo*4)); - } - break; - case PORTC: - if(Copy_u8PinNo <=7 ){ - /* Clear the current alt func */ - GPIOC -> AFRL &= ~(0b1111 << (Copy_u8PinNo*4) ); - /* set the desired alt func */ - GPIOC -> AFRL |= (Copy_u8FunctionName <<(Copy_u8PinNo*4)); - } - else{ - Copy_u8PinNo-=8; - /* Clear the current alt func */ - GPIOC -> AFRH &= ~(0b1111 << (Copy_u8PinNo*4) ); - /* set the desired alt func */ - GPIOC -> AFRH |= (Copy_u8FunctionName <<(Copy_u8PinNo*4)); - } - break; - - } - - - -} diff --git a/Src/MCAL/MGPIO/MGPIO_int.h b/Src/MCAL/MGPIO/MGPIO_int.h deleted file mode 100644 index 07a5b7f..0000000 --- a/Src/MCAL/MGPIO/MGPIO_int.h +++ /dev/null @@ -1,111 +0,0 @@ -/* - * MGPIO_int.h - * - * Created on: Oct 29, 2023 - * Author: Omar - */ - -#ifndef MCAL_MGPIO_MGPIO_INT_H_ -#define MCAL_MGPIO_MGPIO_INT_H_ -#include"../../LIB/STD_TYPES.h" -#define PIN0 0 -#define PIN1 1 -#define PIN2 2 -#define PIN3 3 -#define PIN4 4 -#define PIN5 5 -#define PIN6 6 -#define PIN7 7 -#define PIN8 8 -#define PIN9 9 -#define PIN10 10 -#define PIN11 11 -#define PIN12 12 -#define PIN13 13 -#define PIN14 14 -#define PIN15 15 - -#define INPUT 0b00 -#define OUTPUT 0b01 -#define ALTFUNC 0b10 -#define ANALOG 0b11 - -#define MGPIO_SPEED_LOW 0b00 -#define MGPIO_SPEED_MEDIUM 0b01 -#define MGPIO_SPEED_HIGH 0b10 -#define MGPIO_SPEED_VHIGH 0b11 - -#define NOPULL 0b00 -#define PULLUP 0b01 -#define PULLDOWN 0b10 - -typedef enum{ - - AF0=0, - AF1, - AF2, - AF3, - AF4, - AF5, - AF6, - AF7, - AF8, - AF9, - AF10, - AF11, - AF12, - AF13, - AF15 - -} ALTFUNC_Map_t; - -#define MGPIO_ALTFUNC_SYS AF0 -#define MGPIO_ALTFUNC_TIM12 AF1 -#define MGPIO_ALTFUNC_TIM35 AF2 -#define MGPIO_ALTFUNC_TIM911 AF3 -#define MGPIO_ALTFUNC_I2C13 AF4 -#define MGPIO_ALTFUNC_SPI14 AF5 -#define MGPIO_ALTFUNC_SPI3 AF6 -#define MGPIO_ALTFUNC_USART12 AF7 -#define MGPIO_ALTFUNC_USART6 AF8 -#define MGPIO_ALTFUNC_I2C23 AF9 -#define MGPIO_ALTFUNC_OTG_FS AF10 -#define MGPIO_ALTFUNC_NULL AF11 -#define MGPIO_ALTFUNC_SDIO AF12 -#define MGPIO_ALTFUNC_NULL2 AF13 -#define MGPIO_ALTFUNC_NULL3 AF14 -#define MGPIO_ALTFUNC_EVENTOUT AF15 - - -#define PORTA 0 -#define PORTB 1 -#define PORTC 2 - -#define GPIO_OPEN_DRAIN 1 -#define GPIO_PUSH_PULL 0 - -#define HIGH 1 -#define LOW 0 - -/****************** Functions ProtoType **********************************/ - -void MGPIO_vSetPinMode( u8 Copy_u8PortID, u8 Copy_u8PinNo , u8 Copy_u8PinMode); - -void MGPIO_vSetPinOutPutType( u8 Copy_u8PortID, u8 Copy_u8PinNo , u8 Copy_u8PinOutPutType); - -void MGPIO_vSetPinOutPutSpeed( u8 Copy_u8PortID, u8 Copy_u8PinNo , u8 Copy_u8PinOutPutSpeed); - -void MGPIO_vSetPinInPutType( u8 Copy_u8PortID, u8 Copy_u8PinNo , u8 Copy_u8PinInputType); - -u8 MGPIO_u8GetPinValue(u8 Copy_u8PortID, u8 Copy_u8PinNo); - -void MGPIO_vSetPinValue(u8 Copy_u8PortID, u8 Copy_u8PinNo ,u8 Copy_u8PinValue); - -/******* BSRR ********/ -void MGPIO_vSetPinAtomic(u8 Copy_u8PortID, u8 Copy_u8PinNo ,u8 Copy_u8PinValue); - -void MGPIO_vSetAlternativeFunction(u8 Copy_u8PortID, u8 Copy_u8PinNo ,u8 Copy_u8FunctionName); - - - -#endif /* MCAL_MGPIO_MGPIO_INT_H_ */ diff --git a/Src/MCAL/MI2C/MI2C_Config.h b/Src/MCAL/MI2C/MI2C_Config.h deleted file mode 100644 index c8eaa1f..0000000 --- a/Src/MCAL/MI2C/MI2C_Config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - * MI2C_Config.h - * - * Created on: Jan 28, 2024 - * Author: Omar - */ - -#ifndef MCAL_MI2C_MI2C_CONFIG_H_ -#define MCAL_MI2C_MI2C_CONFIG_H_ - -/*The peripheral input clock frequency must be at least: -• 2 MHz in Sm mode -• 4 MHz in Fm mode -*/ -#define I2C_PCLK 16 // in MHZ - - -#endif /* MCAL_MI2C_MI2C_CONFIG_H_ */ diff --git a/Src/MCAL/MI2C/MI2C_Private.h b/Src/MCAL/MI2C/MI2C_Private.h deleted file mode 100644 index 0b22b62..0000000 --- a/Src/MCAL/MI2C/MI2C_Private.h +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************/ -/* Author : Omar Wael */ -/* Version : V0.0.0 */ -/* Date : Jan 28, 2024 */ -/* Description : Driver Functions Implementation */ -/* Features : Register Definition */ -/***************************************************************************/ - -/***************************************************************************/ -/* File Guard Will Call On Time in .c File */ -/***************************************************************************/ -#ifndef MCAL_MI2C_MI2C_PRIVATE_H_ -#define MCAL_MI2C_MI2C_PRIVATE_H_ - -/***************************************************************************/ -/* I2Cs BASE ADDRESS */ -/***************************************************************************/ - -#define I2C1_BASE_ADDR (0x40005400) -#define I2C2_BASE_ADDR (0x40005800) -#define I2C3_BASE_ADDR (0x40005C00) - - -/**************************************************************************/ -/* Register Definition :- */ -/* Features : Private File Can`t Be Edit By User */ -/* Description :- */ -/* - #define : YES */ -/* - union : NO */ -/* - struct : YEs */ -/**************************************************************************/ -/***************************************************************************/ -/* I2C REGISTERS MAP */ -/***************************************************************************/ - -typedef struct { - - volatile u32 CR1; - volatile u32 CR2; - volatile u32 OAR1; - volatile u32 OAR2; - volatile u32 DR; - volatile u32 SR1; - volatile u32 SR2; - volatile u32 CCR; - volatile u32 TRISE; - volatile u32 FLTR; - -}I2C_Mem_Map_t ; - -/***************************************************************************/ -/* POINTER TO I2C REGISTER */ -/***************************************************************************/ - -#define I2C1_REG ((volatile I2C_Mem_Map_t*)(I2C1_BASE_ADDR)) -#define I2C2_REG ((volatile I2C_Mem_Map_t*)(I2C2_BASE_ADDR)) -#define I2C3_REG ((volatile I2C_Mem_Map_t*)(I2C3_BASE_ADDR)) - -/***************************************************************************/ -/* SOME BITS POSITIONS */ -/***************************************************************************/ -#define CR1_PE 0 -#define CR1_START 8 -#define CR1_STOP 9 -#define CR1_ACK 10 -#define CR1_POS 11 -#define CR1_SWRST 15 - -#define SR1_SB 0 -#define SR1_ADDR 1 -#define SR1_BTF 2 -#define SR1_STOPF 4 -#define SR1_RXNE 6 -#define SR1_TXE 7 -#define SR1_AF 10 - -#define CCR_FS 15 - - - -#endif /* MCAL_MI2C_MI2C_PRIVATE_H_ */ diff --git a/Src/MCAL/MI2C/MI2C_Prog.c b/Src/MCAL/MI2C/MI2C_Prog.c deleted file mode 100644 index 65efd2b..0000000 --- a/Src/MCAL/MI2C/MI2C_Prog.c +++ /dev/null @@ -1,332 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Omar */ -/* Version : V0.0.0 */ -/* Data : 28 Jan 2024 */ -/* Description : MI2C_Prog.c --> implementations */ -/* Module Features : */ -/* 01- MI2C_vMasterInit */ -/* 02- MI2C_vMasterTx */ -/* 03- MI2C_u8MasterRx */ -/* 04- MI2C_vSlaveInit */ -/* 05- MI2C_u8SlaveRx */ -/* 06- MI2C_vSendSlaveADDR */ -/* 07- MI2C_vSendDataByte */ -/* 08- MI2C_vReadDataByte */ -/* 09- MI2C_vGenerateStart */ -/* 10- MI2C_vClearStart */ -/* 11- MI2C_vClearADDR */ -/* 12- MI2C_vGenerateStop */ -/*******************************************************************************************************/ - -/***************************************************************************/ -/* File Includes and Definitions */ -/***************************************************************************/ -#include "../../LIB/BIT_MATH.h" -#include "../../LIB/STD_TYPES.h" -#include "MI2C_Config.h" -#include "MI2C_Private.h" -#include "MI2C_int.h" - - -/***************************************************************************/ -/* Function Implementations */ -/***************************************************************************/ - - - -/*The following is the required sequence in master mode. -• Program the peripheral input clock in I2C_CR2 Register in order to generate correct -timings -• Configure the clock control registers -• Configure the rise time register -• Program the I2C_CR1 register to enable the peripheral -• Set the START bit in the I2C_CR1 register to generate a Start condition -The peripheral input clock frequency must be at least: -• 2 MHz in Sm mode -• 4 MHz in Fm mode -*/ - -void MI2C_vMasterInit(I2CNo_t Copy_I2CNumber){ - - volatile I2C_Mem_Map_t* I2Cx = NULL_PTR; - switch(Copy_I2CNumber){ - case I2C1: I2Cx=I2C1_REG; break; - case I2C2: I2Cx=I2C2_REG; break; - case I2C3: I2Cx=I2C3_REG; break; - - } - - /* disable peripheral for resting all regs */ - CLR_BIT(I2Cx->CR1,CR1_PE); - /* reset the peripheral */ - SET_BIT(I2Cx->CR1,CR1_SWRST); - CLR_BIT(I2Cx->CR1,CR1_SWRST); - - /* PLCK */ - I2Cx->CR2 |= I2C_PCLK ; - - /* configure clock control register */ - /*For instance: in Sm mode, to generate a 100 kHz SCL frequency: - If FREQR = 08, TPCLK1 = 125 ns so CCR must be programmed with 0x28 - (0x28 <=> 40d x 125 ns = 5000 ns*/ - I2Cx->CCR |= 0x50 ; - /* select standard mode */ - CLR_BIT(I2Cx->CCR,CCR_FS); - - /* configure rise time register */ - /*For instance: in Sm mode, the maximum allowed SCL rise time is 1000 ns. - If, in the I2C_CR2 register, the value of FREQ[5:0] bits is equal to 0x08 and TPCLK1 = 125 ns - therefore the TRISE[5:0] bits must be programmed with 09h. - (1000 ns / 125 ns = 8 + 1)*/ - I2Cx->TRISE = 17 ; - - /* Master own address */ - - - /* Peripheral Enable */ - SET_BIT(I2Cx->CR1,CR1_PE); - - - -} -I2C_ERRORSTATS_t MI2C_vMasterTx(I2CNo_t Copy_I2CNumber , u8 Copy_u8SlaveAddress , u8* Copy_u8Data , u8 Copy_u8DataLen,I2C_STOPSTAT_t StopStatus){ - - volatile I2C_Mem_Map_t* I2Cx = NULL_PTR; - switch(Copy_I2CNumber){ - case I2C1: I2Cx=I2C1_REG; break; - case I2C2: I2Cx=I2C2_REG; break; - case I2C3: I2Cx=I2C3_REG; break; - } - /* generate start */ - MI2C_vGenerateStart(I2Cx); - - /* clear start flag */ - MI2C_vClearStart(I2Cx); - - /* send slave address with write */ - //Copy_u8SlaveAddress = Copy_u8SlaveAddress<<1 ; - //Copy_u8SlaveAddress &= ~(1); - //I2Cx->DR= Copy_u8SlaveAddress ; - - MI2C_vSendSlaveADDR(I2Cx, Copy_u8SlaveAddress, WithWrite); - if(GET_BIT(I2Cx->SR1,SR1_AF)){ - return ADDRFAIL; - } - - - - /* clear ADDR flag */ - MI2C_vClearADDR(I2Cx); - u8 Count=0; - while(CountSR1,SR1_BTF) ); - - - Count++; - - } - - if(StopStatus == WithStop) - /* generate stop condition */ - MI2C_vGenerateStop(I2Cx); - return NoError; - -} - -u8 MI2C_u8MasterRx(I2CNo_t Copy_I2CNumber , u8 Copy_u8SlaveAddress, u8* RxData , u8 DataLen ){ - - volatile I2C_Mem_Map_t* I2Cx = NULL_PTR; - switch(Copy_I2CNumber){ - case I2C1: I2Cx=I2C1_REG; break; - case I2C2: I2Cx=I2C2_REG; break; - case I2C3: I2Cx=I2C3_REG; break; - } - /* Generate Start */ - MI2C_vGenerateStart(I2Cx); - /* Clear Start */ - MI2C_vClearStart(I2Cx); - /* send Slave address with read */ - MI2C_vSendSlaveADDR(I2Cx, Copy_u8SlaveAddress, WithRead); - - /* clear ADDR flag */ - MI2C_vClearADDR(I2Cx); - - u8 Count =0; - while(DataLen >2){ - RxData[Count]=MI2C_vReadDataByte(I2Cx); - Count++; - DataLen--; - /* Enable ACK */ - SET_BIT(I2Cx->CR1,CR1_ACK); - - } - /* read the second last data byte */ - RxData[Count]=MI2C_vReadDataByte(I2Cx); - /* Disable ACK */ - CLR_BIT(I2Cx->CR1,CR1_ACK); - /* Generate Stop */ - SET_BIT(I2Cx->SR1,SR1_STOPF); - - /* read last data byte */ - Count++; - RxData[Count]=MI2C_vReadDataByte(I2Cx); - - - - return 0 ; - - -} - -void MI2C_vSlaveInit(I2CNo_t Copy_I2CNumber , u8 Copy_u8SlaveOwnAddress){ - - volatile I2C_Mem_Map_t* I2Cx = NULL_PTR; - switch(Copy_I2CNumber){ - case I2C1: I2Cx=I2C1_REG; break; - case I2C2: I2Cx=I2C2_REG; break; - case I2C3: I2Cx=I2C3_REG; break; - } - - - /* disable peripheral for resting all regs */ - CLR_BIT(I2Cx->CR1,CR1_PE); - /* reset the peripheral */ - SET_BIT(I2Cx->CR1,CR1_SWRST); - CLR_BIT(I2Cx->CR1,CR1_SWRST); - - /* PLCK */ - I2Cx->CR2 |= I2C_PCLK ; - - /* configure clock control register */ - /*For instance: in Sm mode, to generate a 100 kHz SCL frequency: - If FREQR = 08, TPCLK1 = 125 ns so CCR must be programmed with 0x28 - (0x28 <=> 40d x 125 ns = 5000 ns*/ - I2Cx->CCR |= 0x50 ; - /* select standard mode */ - CLR_BIT(I2Cx->CCR,CCR_FS); - - /* configure rise time register */ - /*For instance: in Sm mode, the maximum allowed SCL rise time is 1000 ns. - If, in the I2C_CR2 register, the value of FREQ[5:0] bits is equal to 0x08 and TPCLK1 = 125 ns - therefore the TRISE[5:0] bits must be programmed with 09h. - (1000 ns / 125 ns = 8 + 1)*/ - I2Cx->TRISE = 17 ; - - /* slave own address */ - I2Cx->OAR1 = Copy_u8SlaveOwnAddress<<1 ; - - /* Peripheral Enable */ - SET_BIT(I2Cx->CR1,CR1_PE); - /* enable ACK */ - SET_BIT(I2Cx->CR1,CR1_ACK); - - - -} - -u8 MI2C_u8SlaveRx(I2CNo_t Copy_I2CNumber ){ - - volatile I2C_Mem_Map_t* I2Cx = NULL_PTR; - switch(Copy_I2CNumber){ - case I2C1: I2Cx=I2C1_REG; break; - case I2C2: I2Cx=I2C2_REG; break; - case I2C3: I2Cx=I2C3_REG; break; - } - /* check if the address flag is set */ - //while( !GET_BIT(I2Cx->SR1,SR1_ADDR)); - if( !GET_BIT(I2Cx->SR1,SR1_ADDR)) - return 0; - /* clear ADDR */ - MI2C_vClearADDR(I2Cx); - /* check the RX reg has received data */ - //while( !GET_BIT(I2Cx->SR1,SR1_RXNE)); - /* read DR */ - u8 Local_u8RxData = (u8)I2Cx->DR; - - /* check stop bit flag */ - //while( !GET_BIT(I2Cx->SR1,SR1_STOPF)); - /* clear stop bit flag */ - /* read SR1 */ - u8 Local_u8Dummy = I2Cx->SR1; - (void)Local_u8Dummy; - /*write CR1*/ - SET_BIT(I2Cx->CR1,CR1_STOP); - - return Local_u8RxData ; - -} - - - - -/******************************************************************************************************************************/ - -void MI2C_vSendSlaveADDR(volatile I2C_Mem_Map_t* I2Cx,u8 Copy_u8SlaveAddress,I2C_Dir_t Direction){ - - switch(Direction){ - case(WithWrite): - I2Cx->DR=(Copy_u8SlaveAddress<<1); break; - case(WithRead): - Copy_u8SlaveAddress= Copy_u8SlaveAddress<<1; - Copy_u8SlaveAddress |= 1; - I2Cx -> DR = Copy_u8SlaveAddress ; - break; - - } - -} - -void MI2C_vSendDataByte(volatile I2C_Mem_Map_t* I2Cx , u8 Copy_u8Data){ - - while( !GET_BIT(I2Cx->SR1,SR1_TXE) ); - I2Cx->DR = Copy_u8Data; - // TODO : use BTF ?? - -} - -u8 MI2C_vReadDataByte(volatile I2C_Mem_Map_t* I2Cx){ - - while(!GET_BIT(I2Cx->SR1,SR1_RXNE)); - u8 RxData = I2Cx ->DR ; - return RxData ; -} - -void MI2C_vGenerateStart(volatile I2C_Mem_Map_t* I2Cx){ - /* enable ACK */ - SET_BIT(I2Cx->CR1,CR1_ACK); - - SET_BIT(I2Cx->CR1,CR1_START); - /* hold on start flag until set */ - while( !GET_BIT(I2Cx->SR1,SR1_SB)); - -} - -void MI2C_vClearStart(volatile I2C_Mem_Map_t* I2Cx){ - - u32 Local_u8Dummy = I2Cx->SR1; - (void)Local_u8Dummy; - //TODO - /* writing data ( address ) in DR */ -} - -void MI2C_vClearADDR(volatile I2C_Mem_Map_t* I2Cx){ - - while( !GET_BIT(I2Cx->SR1,SR1_ADDR)); - u32 Local_u8Dummy = I2Cx->SR1; - Local_u8Dummy = I2Cx->SR2; - (void)Local_u8Dummy; -} - -void MI2C_vGenerateStop(volatile I2C_Mem_Map_t* I2Cx){ - - - SET_BIT(I2Cx->CR1,CR1_STOP); - -} - diff --git a/Src/MCAL/MI2C/MI2C_int.h b/Src/MCAL/MI2C/MI2C_int.h deleted file mode 100644 index e6fa2bc..0000000 --- a/Src/MCAL/MI2C/MI2C_int.h +++ /dev/null @@ -1,194 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Omar */ -/* Version : V0.0.0 */ -/* Data : 28 Jan 2024 */ -/* Description : MI2C_Interface.h --> implementations */ -/* Module Features : */ -/* 01- MI2C_MasterInit */ -/* 02- MI2C_MasterTx */ -/* 03- MI2C_MasterRx */ -/* 04- MI2C_SlaveInit */ -/* 05- MI2C_SlaveRx */ -/* 06- MI2C_SendSlaveADDR */ -/* 07- MI2C_SendDataByte */ -/* 08- MI2C_ReadDataByte */ -/* 09- MI2C_GenerateStart */ -/* 10- MI2C_ClearStart */ -/* 11- MI2C_ClearADDR */ -/* 12- MI2C_GenerateStop */ -/*******************************************************************************************************/ - -/* test */ - -/***************************************************************************/ -/* File Guard Will Call On Time in .c File */ -/***************************************************************************/ -#ifndef MCAL_MI2C_MI2C_INT_H_ -#define MCAL_MI2C_MI2C_INT_H_ - -#include "MI2C_Private.h" - -/*----------------------------------------------------------------------------------------------------*/ -/* I2C_Number */ -/*----------------------------------------------------------------------------------------------------*/ -typedef enum { - - I2C1, - I2C2, - I2C3 -} I2CNo_t; - -/*----------------------------------------------------------------------------------------------------*/ -/* I2C_Direction */ -/*----------------------------------------------------------------------------------------------------*/ -typedef enum { - - WithWrite, - WithRead -} I2C_Dir_t; - -/*----------------------------------------------------------------------------------------------------*/ -/* I2C_STOPSTAT */ -/*----------------------------------------------------------------------------------------------------*/ -typedef enum { - - WithStop, - WithoutStop -} I2C_STOPSTAT_t; - -/*----------------------------------------------------------------------------------------------------*/ -/* I2C_ERRORSTATS */ -/*----------------------------------------------------------------------------------------------------*/ -typedef enum { - - ADDRFAIL, - NoError -} I2C_ERRORSTATS_t; - -/**************************** User APIs *************************************/ - -/*----------------------------------------------------------------------------------------------------*/ -/* 01- MI2C_MasterInit */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Initialize I2C as Master. */ -/* 2- Function Input -> @param Copy_I2CNumber = I2C1, I2C2, I2C3 */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MI2C_vMasterInit(I2CNo_t Copy_I2CNumber); - -/*----------------------------------------------------------------------------------------------------*/ -/* 02- MI2C_MasterTx */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Perform I2C Master transmission. */ -/* 2- Function Input -> @param Copy_I2CNumber = I2C1, I2C2, I2C3 */ -/* @param Copy_u8SlaveAddress = Slave address */ -/* @param Copy_u8Data = Pointer to Data to be transmitted */ -/* @param Copy_u8DataLen = Length of the data */ -/* @param StopStatus = WithStop or WithoutStop */ -/* 3- Function Return -> I2C_ERRORSTATS_t (Error status) */ -/*----------------------------------------------------------------------------------------------------*/ -I2C_ERRORSTATS_t MI2C_vMasterTx(I2CNo_t Copy_I2CNumber, u8 Copy_u8SlaveAddress, u8* Copy_u8Data, u8 Copy_u8DataLen, I2C_STOPSTAT_t StopStatus); - -/*----------------------------------------------------------------------------------------------------*/ -/* 03- MI2C_MasterRx */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Perform I2C Master reception. */ -/* 2- Function Input -> @param Copy_I2CNumber = I2C1, I2C2, I2C3 */ -/* @param Copy_u8SlaveAddress = Slave address */ -/* @param RxData = Pointer to the received data buffer */ -/* @param DataLen = Length of the data buffer */ -/* 3- Function Return -> u8 (Received data) */ -/*----------------------------------------------------------------------------------------------------*/ -u8 MI2C_u8MasterRx(I2CNo_t Copy_I2CNumber, u8 Copy_u8SlaveAddress, u8* RxData, u8 DataLen); - -/*----------------------------------------------------------------------------------------------------*/ -/* 04- MI2C_SlaveInit */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Initialize I2C as Slave. */ -/* 2- Function Input -> @param Copy_I2CNumber = I2C1, I2C2, I2C3 */ -/* @param Copy_u8SlaveOwnAddress = Slave's own address */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MI2C_vSlaveInit(I2CNo_t Copy_I2CNumber, u8 Copy_u8SlaveOwnAddress); - -/*----------------------------------------------------------------------------------------------------*/ -/* 05- MI2C_SlaveRx */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Perform I2C Slave reception. */ -/* 2- Function Input -> @param Copy_I2CNumber = I2C1, I2C2, I2C3 */ -/* 3- Function Return -> u8 (Received data) */ -/*----------------------------------------------------------------------------------------------------*/ -u8 MI2C_u8SlaveRx(I2CNo_t Copy_I2CNumber); - - - - -/************************* Helping APIs *************************************/ - -/*----------------------------------------------------------------------------------------------------*/ -/* 06- MI2C_SendSlaveADDR */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Send slave address in the specified direction. */ -/* 2- Function Input -> @param I2Cx = I2C memory map structure */ -/* @param Copy_u8SlaveAddress = Slave address */ -/* @param Direction = WithWrite or WithRead */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MI2C_vSendSlaveADDR(volatile I2C_Mem_Map_t* I2Cx, u8 Copy_u8SlaveAddress, I2C_Dir_t Direction); - -/*----------------------------------------------------------------------------------------------------*/ -/* 07- MI2C_SendDataByte */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Send a data byte on the I2C bus. */ -/* 2- Function Input -> @param I2Cx = I2C memory map structure */ -/* @param Copy_u8Data = Data to be transmitted */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MI2C_vSendDataByte(volatile I2C_Mem_Map_t* I2Cx, u8 Copy_u8Data); - -/*----------------------------------------------------------------------------------------------------*/ -/* 08- MI2C_ReadDataByte */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Read a data byte from the I2C bus. */ -/* 2- Function Input -> @param I2Cx = I2C memory map structure */ -/* 3- Function Return -> u8 (Received data) */ -/*----------------------------------------------------------------------------------------------------*/ -u8 MI2C_vReadDataByte(volatile I2C_Mem_Map_t* I2Cx); - -/*----------------------------------------------------------------------------------------------------*/ -/* 09- MI2C_GenerateStart */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Generate a START condition on the I2C bus. */ -/* 2- Function Input -> @param I2Cx = I2C memory map structure */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MI2C_vGenerateStart(volatile I2C_Mem_Map_t* I2Cx); - -/* 10- MI2C_ClearStart */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Clear the START condition on the I2C bus. */ -/* 2- Function Input -> @param I2Cx = I2C memory map structure */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MI2C_vClearStart(volatile I2C_Mem_Map_t* I2Cx); - -/*----------------------------------------------------------------------------------------------------*/ -/* 11- MI2C_ClearADDR */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Clear the ADDR flag in I2C_SR1 register. */ -/* 2- Function Input -> @param I2Cx = I2C memory map structure */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MI2C_vClearADDR(volatile I2C_Mem_Map_t* I2Cx); - -/*----------------------------------------------------------------------------------------------------*/ -/* 12- MI2C_GenerateStop */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Generate a STOP condition on the I2C bus. */ -/* 2- Function Input -> @param I2Cx = I2C memory map structure */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MI2C_vGenerateStop(volatile I2C_Mem_Map_t* I2Cx); - -#endif /* MCAL_MI2C_MI2C_INT_H_ */ - diff --git a/Src/MCAL/MIWDT/MIWDT_Config.h b/Src/MCAL/MIWDT/MIWDT_Config.h deleted file mode 100644 index 89c7311..0000000 --- a/Src/MCAL/MIWDT/MIWDT_Config.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * MIWDT_Config.h - * - * Created on: Dec 6, 2023 - * Author: Omar - */ - -#ifndef MCAL_MIWDT_MIWDT_CONFIG_H_ -#define MCAL_MIWDT_MIWDT_CONFIG_H_ - -/* - * OPTIONS FOR TIMEOUT ARE : - * - * HALF_SEC - * _1_SEC - * _2_SEC - * _4_SEC - * _8_SEC - * _16_SEC - * _32_SEC - * - * */ - -#define TIMEOUT _8_SEC - -#endif /* MCAL_MIWDT_MIWDT_CONFIG_H_ */ diff --git a/Src/MCAL/MIWDT/MIWDT_Private.h b/Src/MCAL/MIWDT/MIWDT_Private.h deleted file mode 100644 index efb2ce5..0000000 --- a/Src/MCAL/MIWDT/MIWDT_Private.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * MIWDT_Private.h - * - * Created on: Dec 6, 2023 - * Author: Omar - */ - -#ifndef MCAL_MIWDT_MIWDT_PRIVATE_H_ -#define MCAL_MIWDT_MIWDT_PRIVATE_H_ - - -/********************* IWDG BASE ADDRESS ******************************/ - -#define IWDG_BASE_ADDRESS (0x40003000) - - - -/********************* IWDG REGISTERS *******************************/ - -typedef struct { - - u32 KR ; - u32 PR ; - u32 RLR ; - u32 SR ; - -} IWDG_Mem_Map_t; - -/********************* POINTER TO REG ******************************/ - -#define IWDG ((volatile IWDG_Mem_Map_t*)(IWDG_BASE_ADDRESS)) - -/********************** IWDG KEYS **************************/ - -#define IWDG_ENABLE_KEY (0x0000CCCC) -#define IWDG_RELOAD_KEY (0x0000AAAA) -#define IWDG_REG_MODIFY_KEY (0x00005555) - -/*********************** SOME PIN NUMBERS ************************/ - -#define SR_PVU 0 -#define SR_RVU 1 - - -#endif /* MCAL_MIWDT_MIWDT_PRIVATE_H_ */ diff --git a/Src/MCAL/MIWDT/MIWDT_Prog.c b/Src/MCAL/MIWDT/MIWDT_Prog.c deleted file mode 100644 index f84d4fa..0000000 --- a/Src/MCAL/MIWDT/MIWDT_Prog.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - * MIWDT.c - * - * Created on: Dec 6, 2023 - * Author: Omar - */ -#include"../../LIB/STD_TYPES.h" -#include "../../LIB/BIT_MATH.h" - -#include"MIWDT_Private.h" -#include"MIWDT_int.h" -#include"MIWDT_Config.h" - -/*, it is mandatory to wait -until RVU bit is reset before changing the reload value and to wait until PVU bit is reset -before changing the prescaler value -*/ - - - -void MIWDG_vStart( u8 Local_u8TimeOut){ - - - - /* start */ - IWDG->KR=IWDG_ENABLE_KEY; - /* Enable accesssing */ - IWDG->KR=IWDG_REG_MODIFY_KEY; - /* check if there is onging prescaler change */ - //while(GET_BIT(IWDG->SR,SR_PVU)==1); - /* set prescaler */ - IWDG->PR=Local_u8TimeOut; - - /* check if there is onging relaod change */ - //while(GET_BIT(IWDG->SR,SR_RVU)); - /* set the reload value */ - IWDG->RLR=0xFFF; - while(GET_BIT(IWDG->SR,SR_PVU)==1 || GET_BIT(IWDG->SR,SR_RVU)==1 ); - IWDG->KR = IWDG_RELOAD_KEY; // Reload the watchdog - //IWDG->KR = 0xCCCC; // Start the watchdog - -} - -void MIWDG_vReload(){ - - - - /* Reload Key */ - IWDG -> KR = IWDG_RELOAD_KEY; - - -} diff --git a/Src/MCAL/MIWDT/MIWDT_int.h b/Src/MCAL/MIWDT/MIWDT_int.h deleted file mode 100644 index eed8843..0000000 --- a/Src/MCAL/MIWDT/MIWDT_int.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * MIWDT_int.h - * - * Created on: Dec 6, 2023 - * Author: Omar - */ - -#ifndef MCAL_MIWDT_MIWDT_INT_H_ -#define MCAL_MIWDT_MIWDT_INT_H_ - -/*************** PRESCALERS OPTIONS ***********************/ - -#define HALF_SEC 0 -#define _1_SEC 1 -#define _2_SEC 2 -#define _4_SEC 3 -#define _8_SEC 4 -#define _16_SEC 5 -#define _32_SEC 6 - - - -/**************** Functions Prototypes *********************/ - -void MIWDG_vStart( u8 Local_u8TimeOut); - -void MIWDG_vReload(); - - -#endif /* MCAL_MIWDT_MIWDT_INT_H_ */ diff --git a/Src/MCAL/MNVIC/MNVIC_Config.h b/Src/MCAL/MNVIC/MNVIC_Config.h deleted file mode 100644 index 8d00849..0000000 --- a/Src/MCAL/MNVIC/MNVIC_Config.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * MNVIC_Config.h - * - * Created on: Oct 31, 2023 - * Author: Omar - */ - -#ifndef MCAL_MNVIC_MNVIC_CONFIG_H_ -#define MCAL_MNVIC_MNVIC_CONFIG_H_ - -/****************************************************/ -/* GROUPING OPTIONS ARE : GP0SUB16 */ -/* GP2SUB8 */ -/* GP4SUB4 */ -/* GP8SUB2 */ -/* GP16SUB0 */ -/****************************************************/ - -#define MNVIC_GROUPING GP4SUB4 - -#endif /* MCAL_MNVIC_MNVIC_CONFIG_H_ */ diff --git a/Src/MCAL/MNVIC/MNVIC_Private.h b/Src/MCAL/MNVIC/MNVIC_Private.h deleted file mode 100644 index 0d2fce1..0000000 --- a/Src/MCAL/MNVIC/MNVIC_Private.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * MNVIC_Private.h - * - * Created on: Oct 31, 2023 - * Author: Omar - */ - -#ifndef MCAL_MNVIC_MNVIC_PRIVATE_H_ -#define MCAL_MNVIC_MNVIC_PRIVATE_H_ - -/*********************************** REGISTERS AND ADDRESSES ************************************/ - -/*************** NVIC BASE ADDRES ***************/ -#define MNVIC_BASE_ADDR (0xE000E100) - - -/********************** NVIC REGISTERS ***************************/ -typedef struct { - - u32 ISER[8]; - u32 Reserved2[24]; - u32 ICER[8]; - u32 Reserved3[24]; - u32 ISPR[8]; - u32 Reserved4[24]; - u32 ICPR[8]; - u32 Reserved5[24]; - u32 IABR[8]; - u32 Reserved6[56]; - u8 IPR[60]; - u32 Reserved7[240]; - u32 STIR; - -}MNVIC_Mem_Map_t; - -/******************* Pointer to struct ***************/ -#define NVIC ((volatile MNVIC_Mem_Map_t*)MNVIC_BASE_ADDR) - -#define SCB_AIRCR *((volatile u32*)(0xE000ED0C)) - -#define VECTKEY (0x05FA0000) - -#endif /* MCAL_MNVIC_MNVIC_PRIVATE_H_ */ diff --git a/Src/MCAL/MNVIC/MNVIC_Prog.c b/Src/MCAL/MNVIC/MNVIC_Prog.c deleted file mode 100644 index 525cf56..0000000 --- a/Src/MCAL/MNVIC/MNVIC_Prog.c +++ /dev/null @@ -1,91 +0,0 @@ -/* - * MNVIC_Prog.c - * - * Created on: Oct 31, 2023 - * Author: Omar - */ - -#include "../../LIB/BIT_MATH.h" -#include "../../LIB/STD_TYPES.h" - -#include"MNVIC_Config.h" -#include"MNVIC_Private.h" -#include"MNVIC_int.h" - - -static MNVIC_Priority_GP Global_u8GPMode ; - -void MNVIC_vEnableInterrupt(Enum_MNVIC_NUM_t Copy_u8InterruptNo){ - - /* note : writing 0 to any bit has no effect so we can u atomic instruction like BSSR */ - SET_BIT_FAST( NVIC->ISER[ (Copy_u8InterruptNo/32) ] , (Copy_u8InterruptNo % 32) ); -} - -void MNVIC_vDisableInterrupt(u8 Copy_u8InterruptNo){ - - /* note : writing 0 to any bit has no effect so we can u atomic instruction like BSSR */ - SET_BIT_FAST( NVIC->ICER[ (Copy_u8InterruptNo/32) ] , (Copy_u8InterruptNo % 32) ); - -} - -void MNVIC_vSetPendingFlag (u8 Copy_u8InterruptNo){ - - /* note : writing 0 to any bit has no effect so we can u atomic instruction like BSSR */ - SET_BIT_FAST( NVIC->ISPR[ (Copy_u8InterruptNo/32) ] , (Copy_u8InterruptNo % 32) ); -} - -void MNVIC_vClearPendingFlag (u8 Copy_u8InterruptNo){ - - /* note : writing 0 to any bit has no effect so we can u atomic instruction like BSSR */ - SET_BIT_FAST( NVIC->ICPR[ (Copy_u8InterruptNo/32) ] , (Copy_u8InterruptNo % 32) ); -} - -u8 MNVIC_u8ReadActiveFlag( u8 Copy_u8InterruptNo ){ - - u8 Local_u8Flag = 0 ; - Local_u8Flag = GET_BIT( NVIC->IABR[ (Copy_u8InterruptNo/32) ] , (Copy_u8InterruptNo % 32) ); - return Local_u8Flag; - -} - -void MNVIC_vInitGrouping(MNVIC_Priority_GP Copy_u8Grouping){ - - SCB_AIRCR = (VECTKEY) | (Copy_u8Grouping<<8) ; - Global_u8GPMode= Copy_u8Grouping; -} - -void MNVIC_vSetIntPriority( u8 Copy_u8InterruptNo , MNVIC_GP_Options Copy_u8GP , MNVIC_SUB_Options Copy_u8SUB ){ - - switch(Global_u8GPMode){ - case GP0SUB16 : - NVIC -> IPR[Copy_u8InterruptNo] = (Copy_u8SUB<<4); break; - case GP2SUB8 : - NVIC -> IPR[Copy_u8InterruptNo] = ( (Copy_u8GP<<7)|(Copy_u8SUB<<4) ); break; - case GP4SUB4 : - NVIC -> IPR[Copy_u8InterruptNo] = ( (Copy_u8GP<<6)|(Copy_u8SUB<<4) ); break; - case GP8SUB2 : - NVIC -> IPR[Copy_u8InterruptNo] = ( (Copy_u8GP<<5)|(Copy_u8SUB<<4) ); break; - case GP16SUB0 : - NVIC -> IPR[Copy_u8InterruptNo] = (Copy_u8GP<<4) ; break; - - } - - /*u8 L_u8PrioValue = 0; - switch(Global_u8GPMode){ - case GP16SUB0 : L_u8PrioValue = Copy_u8GP; break; - case GP8SUB2 : L_u8PrioValue = (Copy_u8GP << 1) | Copy_u8SUB; break; - case GP4SUB4 : L_u8PrioValue = (Copy_u8GP << 2) | Copy_u8SUB; break; - case GP2SUB8 : L_u8PrioValue = (Copy_u8GP << 3) | Copy_u8SUB; break; - case GP0SUB16 : L_u8PrioValue = Copy_u8SUB; break; - } - - NVIC->IPR[Copy_u8InterruptNo] = L_u8PrioValue << 4;*/ - -} - -void MNVIC_vTrigSoftwareInt( u8 Copy_u8InterruptNo ){ - - NVIC -> STIR |= Copy_u8InterruptNo ; - -} - diff --git a/Src/MCAL/MNVIC/MNVIC_int.h b/Src/MCAL/MNVIC/MNVIC_int.h deleted file mode 100644 index 8de09c4..0000000 --- a/Src/MCAL/MNVIC/MNVIC_int.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - * MNVIC_int.h - * - * Created on: Oct 31, 2023 - * Author: Omar - */ - -#ifndef MCAL_MNVIC_MNVIC_INT_H_ -#define MCAL_MNVIC_MNVIC_INT_H_ - -/*typedef enum { - - WWDG, - EXTI16, - EXTI - -} Enum_IntNames_t;*/ - -typedef enum { - - GP16SUB0=3, - GP8SUB2, - GP4SUB4, - GP2SUB8, - GP0SUB16 -} MNVIC_Priority_GP; - - -typedef enum{ - NVIC_WWDG=0, - NVIC_EXTI16, - NVIC_EXTI21, - NVIC_EXTI22, - NVIC_FLASH, - NVIC_RCC, - NVIC_EXTI0, - NVIC_EXTI1, - NVIC_EXTI2, - NVIC_EXTI3, - NVIC_EXTI4, - NVIC_DMA1_Stream0, - NVIC_DMA1_Stream1, - NVIC_DMA1_Stream2, - NVIC_DMA1_Stream3, //14 - NVIC_DMA1_Stream4, - NVIC_DMA1_Stream5, - NVIC_DMA1_Stream6, - NVIC_ADC, - NVIC_EXTI9_5 = 23, - NVIC_TIM1_BRK_TIM9, - NVIC_TIM1_UP_TIM10, - NVIC_TIM1_TRG_COM_TIM11, - NVIC_TIM1_CC, - NVIC_TIM2, - NVIC_TIM3, - NVIC_TIM4, - NVIC_I2C1_EV, - NVIC_I2C1_ER, - NVIC_I2C2_EV, - NVIC_I2C2_ER, - NVIC_SPI1, - NVIC_SPI2, - NVIC_USART1, - NVIC_USART2, - NVIC_EXTI15_10 = 40, - NVIC_EXTI17, - NVIC_EXTI18, - NVIC_DMA1_Stream7 =47, - NVIC_SDIO =49, - NVIC_TIM5, - NVIC_SPI3, - NVIC_DMA2_Stream0 =56, - NVIC_DMA2_Stream1, - NVIC_DMA2_Stream2, - NVIC_DMA2_Stream3, - NVIC_DMA2_Stream4, - NVIC_OTG_FS =67, - NVIC_DMA2_Stream5, - NVIC_DMA2_Stream6, - NVIC_DMA2_Stream7, - NVIC_USART6, - NVIC_I2C3_EV, - NVIC_I2C3_ER, - NVIC_FPU =81, - NVIC_SPI4 =84, -}Enum_MNVIC_NUM_t; - -typedef enum { - - GP0,GP1,GP2,GP3,GP4,GP5,GP6,GP7,GP8,GP9,GP10,GP11,GP12,GP13,GP14,GP15 -} MNVIC_GP_Options; - -typedef enum { - - SUB0,SUB1,SUB2,SUB3,SUB4,SUB5,SUB6,SUB7,SUB8,SUB9,SUB10,SUB11,SUB12,SUB13,SUB14,SUB15 - -} MNVIC_SUB_Options ; - - - -void MNVIC_vEnableInterrupt(u8 Copy_u8InterruptNo); - -void MNVIC_vDisableInterrupt(u8 Copy_u8InterruptNo); - -void MNVIC_vSetPendingFlag (u8 Copy_u8InterruptNo); - -void MNVIC_vClearPendingFlag (u8 Copy_u8InterruptNo); - -u8 MNVIC_u8ReadActiveFlag( u8 Copy_u8InterruptNo ); - -void MNVIC_vInitGrouping(MNVIC_Priority_GP Copy_u8Grouping); - -void MNVIC_vSetIntPriority( u8 Copy_u8InterruptNo , MNVIC_GP_Options Copy_u8GP , MNVIC_SUB_Options Copy_u8SUB ); - -void MNVIC_vTrigSoftwareInt( u8 Copy_u8InterruptNo ); - -#endif /* MCAL_MNVIC_MNVIC_INT_H_ */ diff --git a/Src/MCAL/MRCC/MRCC_Config.h b/Src/MCAL/MRCC/MRCC_Config.h deleted file mode 100644 index 9eca79f..0000000 --- a/Src/MCAL/MRCC/MRCC_Config.h +++ /dev/null @@ -1,15 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Amr Elmaghraby */ -/* Version : V0.0.0 */ -/* Data : 5 nov 2023 */ -/* Description : Configuration */ -/*******************************************************************************************************/ - -#ifndef MCAL_MRCC_MRCC_CONFIG_H_ -#define MCAL_MRCC_MRCC_CONFIG_H_ - -#define RCC_SYS_CLK RCC_HSI - -#define RCC_CSS_ENABLE ENABLE - -#endif /* MCAL_MRCC_MRCC_CONFIG_H_ */ diff --git a/Src/MCAL/MRCC/MRCC_Int.h b/Src/MCAL/MRCC/MRCC_Int.h deleted file mode 100644 index 0f88e5d..0000000 --- a/Src/MCAL/MRCC/MRCC_Int.h +++ /dev/null @@ -1,88 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Amr Elmaghraby */ -/* Version : V0.0.0 */ -/* Data : 5 nov 2023 */ -/* Description : RCC_Prog.c --> implementations */ -/* Module Features : */ -/* 01- void MRCC_vInit(void); */ -/* 02- void MRCC_vEnableClock(PeripheralEnable_t Copy_u8PeripheralNo); */ -/* 03- void MRCC_vDisableClock(PeripheralEnable_t Copy_u8PeripheralNo); */ -/*******************************************************************************************************/ - - -/*******************************************************************************************************/ -/* guard of file will call on time in .c */ -/*******************************************************************************************************/ -#ifndef MCAL_MRCC_MRCC_INT_H_ -#define MCAL_MRCC_MRCC_INT_H_ - - -typedef enum { - /* AHB1 */ - GPIOA_EN = 0, - GPIOB_EN, - GPIOC_EN, - CRC_EN = 12, - DMA1_EN = 21, - DMA2_EN, - - /* AHB2 */ - OTGFS_EN = (7 + 32), - /* APB1 */ - TIM2_EN = (0 + 64), - TIM3_EN, - TIM4_EN, - TIM5_EN, - WWDG_EN = (11 + 64), - SPI2_EN = (14 + 64), - SPI3_EN, - USART2_EN = (17 + 64), - I2C1_EN = (21 + 64), - I2C2_EN, - I2C3_EN, - PWR_EN = (28 + 64), - - /* APB2 */ - TIM1_EN = (0 + 96), - USART1_EN = (4 + 96), - USART6_EN, - ADC1_EN = (8 + 96), - SPI1_EN = (12 + 96), - SPI4_EN, - SYSCFG_EN, - TIM9_EN = (16 + 96), - TIM10_EN, - TIM11_EN -} PeripheralEnable_t; -/******************************************************************************************************/ -/* 01- MRCC_vInit */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Function Initializing RCC */ -/* 2- Function Input -> void */ -/* 3- Function Return -> void */ -/******************************************************************************************************/ -void MRCC_vInit(void); -/******************************************************************************************************/ - -/******************************************************************************************************/ -/* 02- MRCC_vEnableClock */ -/*-----------------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Function Enable Clock for a certain peripheral */ -/* 2- Function Input -> @param Copy_u8PeripheralNo = Number of peripheral from enum PeripheralEnable_t */ -/* 3- Function Return -> void */ -/*************************************************************************************************************/ -void MRCC_vEnableClock(PeripheralEnable_t Copy_u8PeripheralNo); -/*************************************************************************************************************/ - -/******************************************************************************************************/ -/* 03- MRCC_vDisableClock */ -/*-----------------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Function Disable Clock for a certain peripheral */ -/* 2- Function Input -> @param Copy_u8PeripheralNo = Number of peripheral from enum PeripheralEnable_t */ -/* 3- Function Return -> void */ -/*************************************************************************************************************/ -void MRCC_vDisableClock(PeripheralEnable_t Copy_u8PeripheralNo); -/*************************************************************************************************************/ - - -#endif /* MCAL_MRCC_MRCC_INT_H_ */ diff --git a/Src/MCAL/MRCC/MRCC_Private.h b/Src/MCAL/MRCC/MRCC_Private.h deleted file mode 100644 index d02858e..0000000 --- a/Src/MCAL/MRCC/MRCC_Private.h +++ /dev/null @@ -1,104 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Amr Elmaghraby */ -/* Version : V0.0.0 */ -/* Data : 5 nov 2023 */ -/* Description : RCC_Prog.c --> implementations */ -/*******************************************************************************************************/ - -/*******************************************************************************************************/ -/* guard of file will call on time in .c */ -/*******************************************************************************************************/ -#ifndef MCAL_MRCC_MRCC_PRIVATE_H_ -#define MCAL_MRCC_MRCC_PRIVATE_H_ - -/*******************************************************************************************************/ -/* LIB */ -/*******************************************************************************************************/ -#include"../../LIB/BIT_MATH.h" -#include "../../LIB/STD_TYPES.h" - -/***************************************************************************/ -/* Base Address Of RCC Register */ -/***************************************************************************/ -#define RCC_Base_Add 0x40023800 - -/********************************************************************************************************/ -/* macros of RCC */ -/********************************************************************************************************/ - -#define RCC_HSE 0 -#define RCC_HSI 1 -#define RCC_PLL 2 - -/* CR: Clock Control Register */ -#define HSEON 16 -#define HSEBYP 18 -#define CSSON 19 -#define HSION 0 -#define PLLON 24 -#define HSIRDY 1 -#define HSERDY 17 -#define PLLRDY 25 - -/*CFGR: Clock Configuration Register*/ -#define SW0 0 -#define SW1 1 -#define SWS0 2 -#define SWS1 3 -#define SWS_HSI 0 -#define SWS_HSE 1 -#define SWS_PLL 2 - -/**************************************************************************/ -/* Register Definition :- */ -/* Features : Private File Can`t Be Edit By User */ -/* Description :- */ -/* - #define : YES */ -/* - union : NO */ -/* - struct : YES */ -/**************************************************************************/ -typedef struct{ - u32 CR; - u32 PLLCFGR; - u32 CFGR; - u32 CIR; - u32 AHB1RSTR; - u32 AHB2RSTR; - u32 Reserved1; - u32 Reserved2; - u32 APB1RSTR; - u32 APB2RSTR; - u32 Reserved3; - u32 Reserved4; - u32 AHB1ENR; - u32 AHB2ENR; - u32 Reserved5; - u32 Reserved6; - u32 APB1ENR; - u32 APB2ENR; - u32 Reserved7; - u32 Reserved8; - u32 AHB1LPENR; - u32 AHB2LPENR; - u32 Reserved9; - u32 Reserved10; - u32 APB1LPENR; - u32 APB2LPENR; - u32 Reserved11; - u32 Reserved12; - u32 BDCR; - u32 CSR; - u32 Reserved13; - u32 Reserved14; - u32 SSCGR; - u32 PLLI2SCFGR; - u32 Reserved15; - u32 DCKCFGR; -}RCC_MemMap_t; -/***************************************************************************/ -/* Struct Macro Base Address Of RCC */ -/***************************************************************************/ -#define RCC ((volatile RCC_MemMap_t*) (RCC_Base_Add)) - - -#endif /* MCAL_MRCC_MRCC_PRIVATE_H_ */ diff --git a/Src/MCAL/MRCC/MRCC_Prog.c b/Src/MCAL/MRCC/MRCC_Prog.c deleted file mode 100644 index f6e85ea..0000000 --- a/Src/MCAL/MRCC/MRCC_Prog.c +++ /dev/null @@ -1,89 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Amr Elmaghraby */ -/* Version : V0.0.0 */ -/* Data : 5 nov 2023 */ -/* Description : Driver Functions Implementation */ -/*******************************************************************************************************/ - -/***************************************************************************/ -/* MCAL Components */ -/***************************************************************************/ -#include"MRCC_Config.h" -#include"MRCC_Private.h" -#include"MRCC_Int.h" - -/***************************************************************************/ -/* Functions Implementations */ -/***************************************************************************/ -void MRCC_vInit(void){ - /*CSS (ON/OFF)*/ - -#if RCC_SYS_CLK == RCC_HSE - //HSEBYP CLR -> Oscillator is Enabled 'Not Bypassed' - CLR_BIT(RCC->CR,HSEBYP); - //Enable Selected Clock - SET_BIT(RCC->CR,HSEON); - // Wait Until HSE is ready "Clock is working properly" - while( !GET_BIT(RCC->CR,HSERDY) ); - //Select System Clock - CLR_SET(RCC->CFGR,SW0); - //Wait until HSE is used as system clock source - while( GET_2BITS(RCC->CFGR,SWS0) != SWS_HSE ); -#elif RCC_SYS_CLK == RCC_HSI - //Enable Selected Clock - SET_BIT(RCC->CR,HSION); - // Wait Until HSI is ready "Clock is working properly" - while( !GET_BIT(RCC->CR,HSIRDY) ); - //Select System Clock - CLR_2BITS(RCC->CFGR,SW0); - //Wait until HSI is used as system clock source - while( GET_2BITS(RCC->CFGR,SWS0) != SWS_HSI ); -#elif RCC_SYS_CLK == RCC_PLL - //Select Clock - SET_CLR(RCC->CFGR,SW0); - //Wait until PLL is used as system clock source - //while( GET_2BITS(RCC->CFGR,SWS0) != SWS_PLL ); - //Enable Selected Clock - SET_BIT(RCC->CR,PLLON); - // Wait Until PLL is ready "Clock is working properly" - while( !GET_BIT(RCC->CR,PLLRDY) ); -#endif - -} - -void MRCC_vEnableClock(PeripheralEnable_t Copy_u8PeripheralNo){ - if(Copy_u8PeripheralNo >= 96){ - Copy_u8PeripheralNo -= 96; - SET_BIT(RCC->APB2ENR,Copy_u8PeripheralNo); - } - else if(Copy_u8PeripheralNo >= 64){ - Copy_u8PeripheralNo -= 64; - SET_BIT(RCC->APB1ENR,Copy_u8PeripheralNo); - } - else if(Copy_u8PeripheralNo >= 32){ - Copy_u8PeripheralNo -= 32; - SET_BIT(RCC->AHB2ENR,Copy_u8PeripheralNo); - } - else{ - SET_BIT(RCC->AHB1ENR,Copy_u8PeripheralNo);} -} - -void MRCC_vDisableClock(PeripheralEnable_t Copy_u8PeripheralNo){ - if(Copy_u8PeripheralNo >= 96){ - Copy_u8PeripheralNo -= 96; - CLR_BIT(RCC->APB2ENR,Copy_u8PeripheralNo); - } - else if(Copy_u8PeripheralNo >= 64){ - Copy_u8PeripheralNo -= 64; - CLR_BIT(RCC->APB1ENR,Copy_u8PeripheralNo); - } - else if(Copy_u8PeripheralNo >= 32){ - Copy_u8PeripheralNo -= 32; - CLR_BIT(RCC->AHB2ENR,Copy_u8PeripheralNo); - } - else{ - CLR_BIT(RCC->AHB1ENR,Copy_u8PeripheralNo);}; -} - - - diff --git a/Src/MCAL/MSPI/MSPI_Config.h b/Src/MCAL/MSPI/MSPI_Config.h deleted file mode 100644 index de1c73e..0000000 --- a/Src/MCAL/MSPI/MSPI_Config.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * MSPI_Confing.h - * - * Created on: Dec 1, 2023 - * Author: Omar - */ - -#ifndef MCAL_MSPI_MSPI_CONFIG_H_ -#define MCAL_MSPI_MSPI_CONFIG_H_ - -/************** DATA FRAME ******************/ - -/* - * OPTIONS ARE : - * 1- FRAME_8_BIT - * 2- FRAME_16_BIT - * */ -#define DATA_FRAME FRAME_8_BIT - -/*************** BAUD RATE *************/ -// IN MASTER ONLY - -/* - * OPTIONS ARE : - * 000: fPCLK/2 - * 001: fPCLK/4 - * 010: fPCLK/8 - * 011: fPCLK/16 - * 100: fPCLK/32 - * 101: fPCLK/64 - * 110: fPCLK/128 - * 111: fPCLK/256 - * */ - -#define BAUD_RATE DIV8 - -#endif /* MCAL_MSPI_MSPI_CONFIG_H_ */ diff --git a/Src/MCAL/MSPI/MSPI_Private.h b/Src/MCAL/MSPI/MSPI_Private.h deleted file mode 100644 index 2457f86..0000000 --- a/Src/MCAL/MSPI/MSPI_Private.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************/ -/* Author : Omar Wael */ -/* Version : V0.0.0 */ -/* Date : 1 Dec 2023 */ -/* Description : Driver Functions Implementation */ -/* Features : Register Definition */ -/***************************************************************************/ - -/***************************************************************************/ -/* File Guard Will Call On Time in .c File */ -/***************************************************************************/ -#ifndef MCAL_MSPI_MSPI_PRIVATE_H_ -#define MCAL_MSPI_MSPI_PRIVATE_H_ - -/***************************************************************************/ -/* SPIs BASE ADDRESS */ -/***************************************************************************/ -#define SPI1_BASE_ADD (0x40013000) -#define SPI2_BASE_ADD (0x40003800) -#define SPI3_BASE_ADD (0x40003C00) -#define SPI4_BASE_ADD (0x40013400) - -/**************************************************************************/ -/* Register Definition :- */ -/* Features : Private File Can`t Be Edit By User */ -/* Description :- */ -/* - #define : YES */ -/* - union : NO */ -/* - struct : YEs */ -/**************************************************************************/ -/***************************************************************************/ -/* SPI REGISTERS MAP */ -/***************************************************************************/ -typedef struct{ - - u32 CR1; - u32 CR2 ; - u32 SR ; - u32 DR ; - u32 CRCPR ; - u32 RXCRCR ; - u32 TXCRCR ; - u32 I2SCFGR ; - u32 I2SPR ; - - -} SPI_Mem_Map_t; - -/***************************************************************************/ -/* POINTER TO SPI REGISTER */ -/***************************************************************************/ -#define SPI1 ((volatile SPI_Mem_Map_t*)(SPI1_BASE_ADD)) -#define SPI2 ((volatile SPI_Mem_Map_t*)(SPI2_BASE_ADD)) -#define SPI3 ((volatile SPI_Mem_Map_t*)(SPI3_BASE_ADD)) -#define SPI4 ((volatile SPI_Mem_Map_t*)(SPI4_BASE_ADD)) - -/***************************************************************************/ -/* SOME BITS NUMBERS */ -/***************************************************************************/ -#define CR1_BIDIMODE 15 -#define CR1_DFF 11 -#define CR1_SSM 9 -#define CR1_SSI 8 -#define CR1_SPE 6 -#define CR1_BR 3 -#define CR1_MSTR 2 - -#define CR2_TXEIE 7 -#define CR2_RXNEIE 6 -#define CR2_SSOE 2 - -#define SR_BSY 7 -#define SR_TXE 1 -#define SR_RXNE 0 - -#endif /* MCAL_MSPI_MSPI_PRIVATE_H_ */ diff --git a/Src/MCAL/MSPI/MSPI_Prog.c b/Src/MCAL/MSPI/MSPI_Prog.c deleted file mode 100644 index fbff8f6..0000000 --- a/Src/MCAL/MSPI/MSPI_Prog.c +++ /dev/null @@ -1,280 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Omar Wael */ -/* Version : V0.0.0 */ -/* Data : 1 Dec 2023 */ -/* Description : MSPI_Interface.c --> implementations */ -/* Module Features : */ -/* 01- MSPI_MasterInit */ -/* 02- MSPI_SlaveInit */ -/* 03- MSPI_EnableRxInt */ -/* 04- MSPI_EnableTxInt */ -/* 05- MSPI_MasterTransceiver */ -/* 06- MSPI_SlaveTransceiver */ -/* 07- MSPI_SetTxCallBackFunc */ -/* 08- MSPI_SetRxCallBackFunc */ -/* 09- MSPI_ReadRecievedData */ -/*******************************************************************************************************/ - -/***************************************************************************/ -/* File Includes and Definitions */ -/***************************************************************************/ -#include "../../LIB/BIT_MATH.h" -#include "../../LIB/STD_TYPES.h" - -#include"MSPI_Private.h" -#include"MSPI_int.h" -#include "MSPI_Config.h" -#include"../MGPIO/MGPIO_int.h" - -static void(*SPIx_pvTxcallback[4])(void)={STD_NULL}; -static void(*SPIx_pvRXcallback[4])(void)={STD_NULL}; - -void MSPI_vMasterInit( u8 Local_u8SPINo ){ - - volatile SPI_Mem_Map_t* SPIx = STD_NULL ; - switch(Local_u8SPINo){ - case MSPI1: SPIx=SPI1 ; break; - case MSPI2: SPIx=SPI2 ; break; - case MSPI3: SPIx=SPI3 ; break; - case MSPI4: SPIx=SPI4 ; break; - } - - if(SPIx != STD_NULL){ - /* BAUD RATE */ - SPIx ->CR1 |= (BAUD_RATE<< CR1_BR ); - - /* Default clock phase */ - - /* DATA FRAME */ -#if DATA_FRAME == FRAME_8_BIT - CLR_BIT(SPIx->CR1 ,CR1_DFF); - -#elif DATA_FRAME == FRAME_16_BIT - SET_BIT(SPIx->CR1,CR1_DFF); - -#endif - /* MSB or LSB */ - - /* NSS */ - /* In NSS software mode, - *set the SSM and SSI bits in the SPI_CR1 register - */ - SET_BIT(SPIx->CR1,CR1_SSM); - SET_BIT(SPIx->CR1,CR1_SSI); - /* Select as Master */ - SET_BIT(SPIx->CR1,CR1_MSTR); - - /* Enable SPI */ - SET_BIT(SPIx->CR1,CR1_SPE); - - } - -} - -void MSPI_vSlaveInit( u8 Local_u8SPINo ){ - - volatile SPI_Mem_Map_t* SPIx = STD_NULL ; - switch(Local_u8SPINo){ - case MSPI1: SPIx=SPI1 ; break; - case MSPI2: SPIx=SPI2 ; break; - case MSPI3: SPIx=SPI3 ; break; - case MSPI4: SPIx=SPI4 ; break; - } - if(SPIx != STD_NULL){ - - /* DATA FRAME */ - #if DATA_FRAME == FRAME_8_BIT - CLR_BIT(SPIx->CR1 ,CR1_DFF); - - #elif DATA_FRAME == FRAME_16_BIT - SET_BIT(SPIx->CR1,CR1_DFF); - - #endif - /* Clock Polarity & Clock Phase */ - - /* Frame format */ - /* NSS Bit --> Hardware */ - CLR_BIT(SPIx->CR1,CR1_SSM); - /* Select as SLAVE */ - CLR_BIT(SPIx->CR1,CR1_MSTR); - - /* Enable SPI */ - SET_BIT(SPIx->CR1,CR1_SPE); - - } -} - -u8 MSPI_u8MasterTransceiver( u8 Local_u8SPINo,u8 Local_u8SlavePort , u8 Local_u8SlavePin ,u8 Local_u8Data){ - - volatile SPI_Mem_Map_t* SPIx = STD_NULL ; - switch(Local_u8SPINo){ - case MSPI1: SPIx=SPI1 ; break; - case MSPI2: SPIx=SPI2 ; break; - case MSPI3: SPIx=SPI3 ; break; - case MSPI4: SPIx=SPI4 ; break; - } - - - // activate slave - MGPIO_vSetPinValue(Local_u8SlavePort,Local_u8SlavePin,LOW); - if(SPIx != STD_NULL){ - /* PUT DATA in Tx BUFFER */ - SPIx ->DR = Local_u8Data ; - - /* Wait until data is transmitted */ - while(GET_BIT(SPIx->SR,SR_TXE)==0); - - /* wait until data is received */ - while(GET_BIT(SPIx->SR,SR_RXNE)==0); - /* wait until busy flag is 0 */ - //while(GET_BIT(SPIx->SR,SR_BSY)==1); - - /* deactivate slave */ - MGPIO_vSetPinValue(Local_u8SlavePort,Local_u8SlavePin,HIGH); - - return (u8)SPIx->DR; - } - - - - return 0 ; - - - } - - - - -u8 MSPI_u8SlaveTransceiver( u8 Local_u8SPINo ,u8 Local_u8Data){ - - - volatile SPI_Mem_Map_t* SPIx = STD_NULL ; - switch(Local_u8SPINo){ - case MSPI1: SPIx=SPI1 ; break; - case MSPI2: SPIx=SPI2 ; break; - case MSPI3: SPIx=SPI3 ; break; - case MSPI4: SPIx=SPI4 ; break; - } - - if(SPIx != STD_NULL){ - /* PUT DATA in Tx BUFFER */ - SPIx ->DR = Local_u8Data ; - - /* Wait until data is transmitted */ - while(GET_BIT(SPIx->SR,SR_TXE)==0); - - /* wait until data is received */ - while(GET_BIT(SPIx->SR,SR_RXNE)==0); - /* wait until busy flag is 0 */ - //while(GET_BIT(SPIx->SR,SR_BSY)==1); - - return (u8)SPIx->DR; - } - - return 0 ; - } - -void MSPI_vEnableRxInt(u8 Local_u8SPINo){ - - volatile SPI_Mem_Map_t* SPIx = STD_NULL ; - switch(Local_u8SPINo){ - case MSPI1: SPIx=SPI1 ; break; - case MSPI2: SPIx=SPI2 ; break; - case MSPI3: SPIx=SPI3 ; break; - case MSPI4: SPIx=SPI4 ; break; - } - if ( SPIx == STD_NULL) - return; - - SET_BIT(SPIx->CR2,CR2_RXNEIE); -} - -void MSPI_vEnableTxInt(u8 Local_u8SPINo){ - - - volatile SPI_Mem_Map_t* SPIx = STD_NULL ; - switch(Local_u8SPINo){ - case MSPI1: SPIx=SPI1 ; break; - case MSPI2: SPIx=SPI2 ; break; - case MSPI3: SPIx=SPI3 ; break; - case MSPI4: SPIx=SPI4 ; break; - } - if ( SPIx == STD_NULL) - return; - - SET_BIT(SPIx->CR2,CR2_TXEIE); - } - - - -void MSPI_vSetTxCallBackFunc(u8 Local_u8SPINo,void(*Local_pvTxIRQ)(void)){ - - SPIx_pvTxcallback[Local_u8SPINo]=Local_pvTxIRQ; - - -} - -void MSPI_vSetRxCallBackFunc(u8 Local_u8SPINo,void(*Local_pvRxIRQ)(void)){ - - SPIx_pvRXcallback[Local_u8SPINo]=Local_pvRxIRQ; - - -} - - -u8 MSPI_u8ReadRecievedData(u8 Local_u8SPINo){ - - volatile SPI_Mem_Map_t* SPIx = STD_NULL ; - switch(Local_u8SPINo){ - case MSPI1: SPIx=SPI1 ; break; - case MSPI2: SPIx=SPI2 ; break; - case MSPI3: SPIx=SPI3 ; break; - case MSPI4: SPIx=SPI4 ; break; - } - u8 Local_u8ReceivedData = SPIx->DR; - return Local_u8ReceivedData; - -} - -void SPI1_IRQHandler(){ - - if( GET_BIT(SPI1->SR,SR_TXE) && SPIx_pvTxcallback[0]!=STD_NULL) - SPIx_pvTxcallback[0](); - - - if( GET_BIT(SPI1->SR,SR_RXNE) && SPIx_pvRXcallback[0]!=STD_NULL) - SPIx_pvRXcallback[0](); -} - -void SPI2_IRQHandler(){ - - if( GET_BIT(SPI1->SR,SR_TXE) && SPIx_pvTxcallback[1]!=STD_NULL) - SPIx_pvTxcallback[1](); - - - if( GET_BIT(SPI1->SR,SR_RXNE) && SPIx_pvRXcallback[1]!=STD_NULL) - SPIx_pvRXcallback[1](); - -} - -void SPI3_IRQHandler(){ - - if( GET_BIT(SPI1->SR,SR_TXE) && SPIx_pvTxcallback[2]!=STD_NULL) - SPIx_pvTxcallback[2](); - - - if( GET_BIT(SPI1->SR,SR_RXNE) && SPIx_pvRXcallback[2]!=STD_NULL) - SPIx_pvRXcallback[2](); - -} - -void SPI4_IRQHandler(){ - - if( GET_BIT(SPI1->SR,SR_TXE) && SPIx_pvTxcallback[3]!=STD_NULL) - SPIx_pvTxcallback[3](); - - - if( GET_BIT(SPI1->SR,SR_RXNE) && SPIx_pvRXcallback[3]!=STD_NULL) - SPIx_pvRXcallback[3](); - -} diff --git a/Src/MCAL/MSPI/MSPI_int.h b/Src/MCAL/MSPI/MSPI_int.h deleted file mode 100644 index e546735..0000000 --- a/Src/MCAL/MSPI/MSPI_int.h +++ /dev/null @@ -1,157 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Omar Wael */ -/* Version : V0.0.0 */ -/* Data : 1 Dec 2023 */ -/* Description : MSPI_Interface.c --> implementations */ -/* Module Features : */ -/* 01- MSPI_MasterInit */ -/* 02- MSPI_SlaveInit */ -/* 03- MSPI_EnableRxInt */ -/* 04- MSPI_EnableTxInt */ -/* 05- MSPI_MasterTransceiver */ -/* 06- MSPI_SlaveTransceiver */ -/* 07- MSPI_SetTxCallBackFunc */ -/* 08- MSPI_SetRxCallBackFunc */ -/* 09- MSPI_ReadRecievedData */ -/*******************************************************************************************************/ - - -/***************************************************************************/ -/* File Guard Will Call On Time in .c File */ -/***************************************************************************/ -#ifndef MCAL_MSPI_MSPI_INT_H_ -#define MCAL_MSPI_MSPI_INT_H_ - -/* - * Since some SPI1 and SPI3/I2S3 pins may be mapped onto - * some pins used by the JTAG interface you may either: - * – map SPI/I2S onto other pins - * – disable the JTAG and use the SWD interface prior -*/ - - - -/***************************************************************************/ -/* DATA FRAME */ -/***************************************************************************/ -#define FRAME_8_BIT 0 -#define FRAME_16_BIT 1 - -/***************************************************************************/ -/* BAUD RATE */ -/***************************************************************************/ -#define DIV2 0b000 -#define DIV4 0b001 -#define DIV8 0b010 -#define DIV16 0b011 -#define DIV32 0b100 -#define DIV64 0b101 -#define DIV128 0b110 -#define DIV256 0b111 - - -/***************************************************************************/ -/* MSPI Indices */ -/***************************************************************************/ -#define MSPI1 0 -#define MSPI2 1 -#define MSPI3 2 -#define MSPI4 3 -/***************************************************************************/ -/* MSPI Mode */ -/***************************************************************************/ -#define MSPI_MASTER 1 -#define MSPI_SLAVE 0 - -/***************************************************************************/ -/* Function Declarations for MSPI module */ -/***************************************************************************/ - -/*----------------------------------------------------------------------------------------------------*/ -/* 01- MSPI_MasterInit */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Initialize MSPI as Master. */ -/* 2- Function Input -> @param Local_u8SPINo = MSPI1, MSPI2, MSPI3, MSPI4 */ -/* 3- Function Return -> void */ -/******************************************************************************************************/ -void MSPI_vMasterInit( u8 Local_u8SPINo ); - -/*----------------------------------------------------------------------------------------------------*/ -/* 02- MSPI_SlaveInit */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Initialize MSPI as Slave. */ -/* 2- Function Input -> @param Local_u8SPINo = MSPI1, MSPI2, MSPI3, MSPI4 */ -/* 3- Function Return -> void */ -/******************************************************************************************************/ -void MSPI_vSlaveInit( u8 Local_u8SPINo ); - -/*----------------------------------------------------------------------------------------------------*/ -/* 03- MSPI_EnableRxInt */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Enable RX interrupt for MSPI. */ -/* 2- Function Input -> @param Local_u8SPINo = MSPI1, MSPI2, MSPI3, MSPI4 */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MSPI_vEnableRxInt(u8 Local_u8SPINo); - -/*----------------------------------------------------------------------------------------------------*/ -/* 04- MSPI_EnableTxInt */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Enable TX interrupt for MSPI. */ -/* 2- Function Input -> @param Local_u8SPINo = MSPI1, MSPI2, MSPI3, MSPI4 */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MSPI_vEnableTxInt(u8 Local_u8SPINo); - -/*----------------------------------------------------------------------------------------------------*/ -/* 05- MSPI_MasterTransceiver */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Perform data transmission/reception in Master mode. */ -/* 2- Function Input -> @param Local_u8SPINo = MSPI1, MSPI2, MSPI3, MSPI4 */ -/* @param Local_u8SlavePort = Slave port number */ -/* @param Local_u8SlavePin = Slave pin number */ -/* @param Local_u8Data = Data to be transmitted/received */ -/* 3- Function Return -> u8 (Received data in case of Master reception) */ -/*----------------------------------------------------------------------------------------------------*/ -u8 MSPI_u8MasterTransceiver( u8 Local_u8SPINo,u8 Local_u8SlavePort , u8 Local_u8SlavePin ,u8 Local_u8Data); - -/*----------------------------------------------------------------------------------------------------*/ -/* 06- MSPI_SlaveTransceiver */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Perform data transmission/reception in Slave mode. */ -/* 2- Function Input -> @param Local_u8SPINo = MSPI1, MSPI2, MSPI3, MSPI4 */ -/* @param Local_u8Data = Data to be transmitted/received */ -/* 3- Function Return -> u8 (Received data in case of Slave reception) */ -/*----------------------------------------------------------------------------------------------------*/ -u8 MSPI_u8SlaveTransceiver( u8 Local_u8SPINo ,u8 Local_u8Data); - -/*----------------------------------------------------------------------------------------------------*/ -/* 07- MSPI_SetTxCallBackFunc */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Set the callback function for TX interrupt. */ -/* 2- Function Input -> @param Local_u8SPINo = MSPI1, MSPI2, MSPI3, MSPI4 */ -/* @param Local_pvTxIRQ = Pointer to the TX interrupt callback function */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MSPI_vSetTxCallBackFunc(u8 Local_u8SPINo,void(*Local_pvTxIRQ)(void)); - -/*----------------------------------------------------------------------------------------------------*/ -/* 08- MSPI_SetRxCallBackFunc */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Set the callback function for RX interrupt. */ -/* 2- Function Input -> @param Local_u8SPINo = MSPI1, MSPI2, MSPI3, MSPI4 */ -/* @param Local_pvRxIRQ = Pointer to the RX interrupt callback function */ -/* 3- Function Return -> void */ -/*----------------------------------------------------------------------------------------------------*/ -void MSPI_vSetRxCallBackFunc(u8 Local_u8SPINo,void(*Local_pvRxIRQ)(void)); - -/*----------------------------------------------------------------------------------------------------*/ -/* 09- MSPI_ReadRecievedData */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Read the received data in the RX buffer. */ -/* 2- Function Input -> @param Local_u8SPINo = MSPI1, MSPI2, MSPI3, MSPI4 */ -/* 3- Function Return -> u8 (Received data in the RX buffer) */ -/*----------------------------------------------------------------------------------------------------*/ -u8 MSPI_u8ReadRecievedData(u8 Local_u8SPINo); - -#endif /* MCAL_MSPI_MSPI_INT_H_ */ diff --git a/Src/MCAL/MSTK/MSYSTICK_Config.h b/Src/MCAL/MSTK/MSYSTICK_Config.h deleted file mode 100644 index ecf8631..0000000 --- a/Src/MCAL/MSTK/MSYSTICK_Config.h +++ /dev/null @@ -1,36 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Amr Elmaghraby */ -/* Version : V0.0.0 */ -/* Data : 5 nov 2023 */ -/*******************************************************************************************************/ - -/*******************************************************************************************************/ -/* guard of file will call on time in .c */ -/*******************************************************************************************************/ -#ifndef MCAL_MSTK_MSYSTICK_CONFIG_H_ -#define MCAL_MSTK_MSYSTICK_CONFIG_H_ - -/********************************************************************************************************/ -/* macros of systick */ -/********************************************************************************************************/ - -/*Define System Clock Speed in MHz*/ -#define CLOCK 16 - -/*Initialize SysTick Clock Source*/ -#define CLK_SOURCE MSYSTICK_AHB - -#define MAX_LOAD_VALUE 16777215 //2^24 - 1 - -/*Clock Source ===> STK_CTRL bit 2 */ -#define MSYSTICK_AHB 1 -#define MSYSTICK_AHB8 0 - -#if CLK_SOURCE == MSYSTICK_AHB8 - #define STK_CLOCK CLOCK/8.0 -#elif CLK_SOURCE == MSYSTICK_AHB - #define STK_CLOCK CLOCK -#endif - -#endif /* MCAL_MSTK_MSYSTICK_CONFIG_H_ */ - diff --git a/Src/MCAL/MSTK/MSYSTICK_Int.h b/Src/MCAL/MSTK/MSYSTICK_Int.h deleted file mode 100644 index aeec24f..0000000 --- a/Src/MCAL/MSTK/MSYSTICK_Int.h +++ /dev/null @@ -1,84 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Amr Elmaghraby */ -/* Version : V0.0.0 */ -/* Data : 5 nov 2023 */ -/* Module Features : */ -/* 01- void MSYSTICK_vInit(void); */ -/* 02- void MSYSTICK_vPeriodicMS(u32 Copy_u32Delay); */ -/* 03- void MSYSTICK_vDelayms(u32 Copy_u32Delay); */ -/* 04- f32 MSYSTICK_u32GetElapsedTime(void); */ -/* 05- f32 MSYSTICK_u32GetRemainingTime(void); */ -/* 06- void MSYSTICK_vStop(void); */ -/*******************************************************************************************************/ - - -/*******************************************************************************************************/ -/* guard of file will call on time in .c */ -/*******************************************************************************************************/ -#ifndef MCAL_MSTK_MSYSTICK_INT_H_ -#define MCAL_MSTK_MSYSTICK_INT_H_ - -/******************************************************************************************************/ -/* 01- MSYSTICK_vInit */ -/*-----------------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Function Initialize SYSTICK */ -/* 2- Function Input -> void */ -/* 3- Function Return -> void */ -/*************************************************************************************************************/ -void MSYSTICK_vInit(void); -/*************************************************************************************************************/ - -/******************************************************************************************************/ -/* 02- MSYSTICK_vPeriodicMS */ -/*-----------------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Function with millisecond delay using interrupt */ -/* 2- Function Input -> @param Copy_u32Delay = desired delay in millisecond */ -/* 3- Function Return -> void */ -/*************************************************************************************************************/ -void MSYSTICK_vPeriodicMS(u32 Copy_u32Delay); -/*************************************************************************************************************/ - -/******************************************************************************************************/ -/* 03- MSYSTICK_vDelayms */ -/*-----------------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Function with millisecond delay using polling */ -/* 2- Function Input -> @param Copy_u32Delay = desired delay in millisecond */ -/* 3- Function Return -> void */ -/*************************************************************************************************************/ -void MSYSTICK_vDelayms(u32 Copy_u32Delay); -/*************************************************************************************************************/ - -/******************************************************************************************************/ -/* 04- MSYSTICK_u32GetElapsedTime */ -/*-----------------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Function to get the time passed since the systick started */ -/* 2- Function Input -> void */ -/* 3- Function Return -> Elapsed time (float) */ -/*************************************************************************************************************/ -f32 MSYSTICK_u32GetElapsedTime(void); -/*************************************************************************************************************/ - -/******************************************************************************************************/ -/* 05- MSYSTICK_u32GetRemainingTime */ -/*-----------------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Function to get the remaining time until the desired delay */ -/* 2- Function Input -> void */ -/* 3- Function Return -> Remaining time (float) */ -/*************************************************************************************************************/ -f32 MSYSTICK_u32GetRemainingTime(void); -/*************************************************************************************************************/ - -/******************************************************************************************************/ -/* 06- MSYSTICK_vStop */ -/*-----------------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Function to stop systick */ -/* 2- Function Input -> void */ -/* 3- Function Return -> void */ -/*************************************************************************************************************/ -void MSYSTICK_vStop(void); -/******************************************************************************************************/ - -void MSYSTICK_vCallBack(void(*ptr) (void)); - - -#endif /* MCAL_MSTK_MSYSTICK_INT_H_ */ diff --git a/Src/MCAL/MSTK/MSYSTICK_Private.h b/Src/MCAL/MSTK/MSYSTICK_Private.h deleted file mode 100644 index 7ee9ddf..0000000 --- a/Src/MCAL/MSTK/MSYSTICK_Private.h +++ /dev/null @@ -1,55 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Amr Elmaghraby */ -/* Version : V0.0.0 */ -/* Data : 5 nov 2023 */ -/* Description : Driver Functions Implementation */ -/* Features : Register Definition */ -/*******************************************************************************************************/ - -/*******************************************************************************************************/ -/* guard of file will call on time in .c */ -/*******************************************************************************************************/ -#ifndef MCAL_MSTK_MSYSTICK_PRIVATE_H_ -#define MCAL_MSTK_MSYSTICK_PRIVATE_H_ -/*******************************************************************************************************/ -/* LIB */ -/*******************************************************************************************************/ -#include"../../LIB/BIT_MATH.h" -#include "../../LIB/STD_TYPES.h" -/***************************************************************************/ -/* Base Address Of Systick Register */ -/***************************************************************************/ -#define STK_BASE_ADD 0xE000E010 - -/********************************************************************************************************/ -/* macros of Systick */ -/********************************************************************************************************/ -#define CLR 0 -#define COUNT_FLAG 16 -#define STK_EN 0 -#define STK_INT 1 -#define STK_CLK_SOURCE 2 //Clock Source Pin Number - -/**************************************************************************/ -/* Register Definition :- */ -/* Features : Private File Can`t Be Edit By User */ -/* Description :- */ -/* - #define : YES */ -/* - union : NO */ -/* - struct : YES */ -/**************************************************************************/ -typedef struct{ - u32 CTRL; - u32 LOAD; - u32 VAL; - u32 CALIB; -}STK_MemMap_t; - -/***************************************************************************/ -/* Struct Macro Base Address Of Systick */ -/***************************************************************************/ -#define STK ((volatile STK_MemMap_t*) (STK_BASE_ADD)) - - - -#endif /* MCAL_MSTK_MSYSTICK_PRIVATE_H_ */ diff --git a/Src/MCAL/MSTK/MSYSTICK_Prog.c b/Src/MCAL/MSTK/MSYSTICK_Prog.c deleted file mode 100644 index b45f8f8..0000000 --- a/Src/MCAL/MSTK/MSYSTICK_Prog.c +++ /dev/null @@ -1,90 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Amr Elmaghraby */ -/* Version : V0.0.0 */ -/* Data : 5 nov 2023 */ -/* Description : Driver Functions Implementation */ -/*******************************************************************************************************/ -/***************************************************************************/ -/* MCAL Components */ -/***************************************************************************/ -#include"MSYSTICK_Private.h" -#include"MSYSTICK_Config.h" -#include"MSYSTICK_Int.h" - -/***************************************************************************/ -/* Functions Implementations */ -/***************************************************************************/ -static void (*GLOBAL_SYSTICK_CallBack) (void)= STD_NULL; - -void MSYSTICK_vInit(void){ - - //Clock Source -#if CLK_SOURCE == MSYSTICK_AHB8 - CLR_BIT(STK->CTRL,STK_CLK_SOURCE); -#elif CLK_SOURCE == MSYSTICK_AHB - SET_BIT(STK->CTRL,STK_CLK_SOURCE); -#endif - //Clear Flag - CLR_BIT(STK->CTRL,STK_EN); -} - -void MSYSTICK_vPeriodicMS(u32 Copy_u32Delay){ - //Cal Value in mills sec - Copy_u32Delay = Copy_u32Delay * 1000 * STK_CLOCK; - //Load Reload Value - STK->LOAD = Copy_u32Delay - 1; - //CLR VAL Reg - STK->VAL = CLR; - //SET INT - SET_BIT(STK->CTRL,STK_INT); - //Enable SYSTICK - SET_BIT(STK->CTRL,STK_EN); -} - -void MSYSTICK_vDelayms(u32 Copy_u32Delay){ - /* MAX Delay: ((1or8)/SYS_CLOCK)* 2^24 " 1.04sec for HSI " */ - //Disable INT - CLR_BIT(STK->CTRL,STK_INT); - //Cal Value in mills sec - if( (Copy_u32Delay*1000 * STK_CLOCK) >= MAX_LOAD_VALUE) - Copy_u32Delay = MAX_LOAD_VALUE; - else - Copy_u32Delay = Copy_u32Delay * 1000 * STK_CLOCK; - //Load Reload Value - STK->LOAD = Copy_u32Delay; - //CLR VAL Reg - STK->VAL = CLR; - //Enable SYSTICK - SET_BIT(STK->CTRL,STK_EN); - //Wait Flag polling - while(!GET_BIT(STK->CTRL,COUNT_FLAG)); - //Disable SYSTICK - CLR_BIT(STK->CTRL,STK_EN); -} - -f32 MSYSTICK_u32GetElapsedTime(void){ - //Return Time in milli second - f32 Elapsed = (STK->LOAD - STK->VAL)*(1/(STK_CLOCK*1000)) ; - return Elapsed; -} - -f32 MSYSTICK_u32GetRemainingTime(void){ - //Return Time in milli second - return (STK->VAL)*(1/(STK_CLOCK*1000)); -} - -void MSYSTICK_vStop(void){ - CLR_BIT(STK->CTRL,STK_EN); -} - - -void MSYSTICK_vCallBack(void(*ptr) (void)){ - GLOBAL_SYSTICK_CallBack = ptr; -} - -void SysTick_Handler(void){ - if(GLOBAL_SYSTICK_CallBack != STD_NULL){ - GLOBAL_SYSTICK_CallBack(); - } -} - diff --git a/Src/MCAL/MTIMER/MTIMER_Config.h b/Src/MCAL/MTIMER/MTIMER_Config.h deleted file mode 100644 index a2e5bba..0000000 --- a/Src/MCAL/MTIMER/MTIMER_Config.h +++ /dev/null @@ -1,14 +0,0 @@ -/* - * MTIMER_CONFIG.h - * - * Created on: Dec 19, 2023 - * Author: Hardware - */ - -#ifndef MCAL_MTIMER_MTIMER_CONFIG_H_ -#define MCAL_MTIMER_MTIMER_CONFIG_H_ - -//SYSTEM CLOCK IN MHZ -#define SYS_CLOCK 16 - -#endif /* MCAL_MTIMER_MTIMER_CONFIG_H_ */ diff --git a/Src/MCAL/MTIMER/MTIMER_Int.h b/Src/MCAL/MTIMER/MTIMER_Int.h deleted file mode 100644 index 3d75988..0000000 --- a/Src/MCAL/MTIMER/MTIMER_Int.h +++ /dev/null @@ -1,135 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Amr ElMaghraby */ -/* Version : V0.0.0 */ -/* Data : 28 Jan 2024 */ -/* Description : MTimer_Prog.c --> implementations */ -/* Module Features : */ -/* 01- MTIMER_vPeriodicMS */ -/* 02- MTIMER_vPWM */ -/* 03- MTIMER_vICU */ -/* 04- MTIMER_GET_ICU */ -/* 05- MTIMER_CallBack */ -/*******************************************************************************************************/ - -/*******************************************************************************************************/ -/* guard of file will call on time in .c */ -/*******************************************************************************************************/ -#ifndef MCAL_MTIMER_MTIMER_INT_H_ -#define MCAL_MTIMER_MTIMER_INT_H_ - -/*******************************************************************************************************/ -/* enum for Timer numbers */ -/* ' TIMER 1, TIMER2, TIMER3, TIMER4, TIMER5, */ -/* TIMER9, TIMER10, TIMER11' */ -/* */ -/*******************************************************************************************************/ -typedef enum{ - TIMER1=1, - TIMER2, - TIMER3, - TIMER4, - TIMER5, - TIMER9, - TIMER10, - TIMER11, -}Enum_TIMER_NUM; -/*******************************************************************************************************/ - -/*******************************************************************************************************/ -/* enum for Timer channel numbers */ -/* FOR TIMER 1, TIMER2, TIMER3, TIMER4, TIMER5 ==> CH1,CH2,CH3,CH4 */ -/* FOR TIMER9 ==> CH1,CH2 */ -/* FOR TIMER10, TIMER11 ==> CH1 */ -/*******************************************************************************************************/ -typedef enum{ - CH1=1, - CH2, - CH3, - CH4, -}Enum_TIMER_CHs; -/*******************************************************************************************************/ - - - -/******************************************************************************************************/ -/* APIs */ -/******************************************************************************************************/ - - -/******************************************************************************************************/ -/* 01- MTIMER_vPeriodicMS */ -/*----------------------------------------------------------------------------------------------------*/ -/** - * @Description Configures the specified TIMER for generating periodic interrupts with a delay in milliseconds. - * @param Copy_u8TimerNum: The TIMER number to be configured. - * Expected to be Enum_TIMER_NUM ==> { TIMER1, TIMER2, TIMER3, TIMER4, - * TIMER5, TIMER9, TIMER10, TIMER11 } - * @param Copy_u32Delay: The delay in milliseconds for the periodic interrupt. - * Expected to be Value from 1 to 2^32-1 "4294967296" - * @return void - */ -void MTIMER_vPeriodicMS(Enum_TIMER_NUM Copy_u8TimerNum, u32 Copy_u32Delay); -/******************************************************************************************************/ - -/******************************************************************************************************/ -/* 02- MTIMER_vPWM */ -/*----------------------------------------------------------------------------------------------------*/ -/** - * @Description Configures the specified TIMER in PWM mode on a specific channel. - * @param Copy_u8TimerNum: The TIMER number to be configured. - * Expected to be Enum_TIMER_NUM ==> { TIMER1, TIMER2, TIMER3, TIMER4, - * TIMER5, TIMER9, TIMER10, TIMER11 } - * @param Copy_u8Channel: The channel on which PWM is configured. - * Expected to be Enum_TIMER_CHs ==> { CH1, CH2, CH3, CH4 } - * @param Copy_u16TotalTime_uSec: The total time period for the PWM signal in microseconds. - * @param Copy_u16PositiveDutyCycle_uSec: The positive duty cycle of the PWM signal in microseconds. - * @return void - */ -void MTIMER_vPWM(Enum_TIMER_NUM Copy_u8TimerNum, Enum_TIMER_CHs Copy_u8Channel, u16 Copy_u16TotalTime_uSec, u16 Copy_u16PositiveDutyCycle_uSec); -/******************************************************************************************************/ - -/******************************************************************************************************/ -/* 03- MTIMER_vICU */ -/*----------------------------------------------------------------------------------------------------*/ -/** - * @Description Configures the specified TIMER to work as an Input Capture Unit (ICU) on a specific channel. - * @param Copy_u8TimerNum: The TIMER number to be configured. - * Expected to be Enum_TIMER_NUM ==> { TIMER1, TIMER2, TIMER3, TIMER4, - * TIMER5, TIMER9, TIMER10, TIMER11 } - * @param Copy_u8Channel: The channel on which the Input Capture Unit is configured. - * Expected to be Enum_TIMER_CHs ==> { CH1, CH2, CH3, CH4 } - * @return void - */ -void MTIMER_vICU(Enum_TIMER_NUM Copy_u8TimerNum, Enum_TIMER_CHs Copy_u8Channel); -/******************************************************************************************************/ - -/******************************************************************************************************/ -/* 04- MTIMER_GET_ICU */ -/*----------------------------------------------------------------------------------------------------*/ -/** - * @Description Retrieves the captured time value from an Input Capture event on the specified TIMER and channel. - * @param Copy_u8TimerNum: The TIMER number from which to retrieve the captured time. - * Expected to be Enum_TIMER_NUM ==> { TIMER1, TIMER2, TIMER3, TIMER4, - * TIMER5, TIMER9, TIMER10, TIMER11 } - * @param Copy_u8Channel: The channel on which the Input Capture event occurred. - * Expected to be Enum_TIMER_CHs ==> { CH1, CH2, CH3, CH4 } - * @return The captured time value. - */ -u32 MTIMER_GET_ICU(Enum_TIMER_NUM Copy_u8TimerNum, Enum_TIMER_CHs Copy_u8Channel); -/******************************************************************************************************/ - -/******************************************************************************************************/ -/* 05- MTIMER_CallBack */ -/*----------------------------------------------------------------------------------------------------*/ -/** - * @Description Registers a callback function to be executed when the specified TIMER generates an interrupt. - * @param Copy_u8TimerNum: The TIMER number for which the callback is registered. - * Expected to be Enum_TIMER_NUM ==> { TIMER1, TIMER2, TIMER3, TIMER4, - * TIMER5, TIMER9, TIMER10, TIMER11 } - * @param ptr: A function pointer to the callback function."Expected to be given address of callback function" - * @return void - */ -void MTIMER_CallBack(Enum_TIMER_NUM Copy_u8TimerNum, void (*ptr)(void)); -/******************************************************************************************************/ - -#endif /* MCAL_MTIMER_MTIMER_INT_H_ */ diff --git a/Src/MCAL/MTIMER/MTIMER_Private.h b/Src/MCAL/MTIMER/MTIMER_Private.h deleted file mode 100644 index 925ab8f..0000000 --- a/Src/MCAL/MTIMER/MTIMER_Private.h +++ /dev/null @@ -1,158 +0,0 @@ -/* - * MTIMER_Private.h - * - * Created on: Dec 19, 2023 - * Author: Hardware - */ - -#ifndef MCAL_MTIMER_MTIMER_PRIVATE_H_ -#define MCAL_MTIMER_MTIMER_PRIVATE_H_ - -#include"../../LIB/BIT_MATH.h" -#include "../../LIB/STD_TYPES.h" - -#define TIMER1_Base_Add 0x40010000 -#define TIMER2_Base_Add 0x40000000 -#define TIMER3_Base_Add 0x40000400 -#define TIMER4_Base_Add 0x40000800 -#define TIMER5_Base_Add 0x40000C00 - -#define TIMER9_Base_Add 0x40014000 -#define TIMER10_Base_Add 0x40014400 -#define TIMER11_Base_Add 0x40014800 - -//Initialize with TIMER2 as it's LOWEST ADD -#define TIMERS_OFFSET \ - { \ - (TIMER1_Base_Add - TIMER2_Base_Add), \ - (TIMER2_Base_Add - TIMER2_Base_Add), \ - (TIMER3_Base_Add - TIMER2_Base_Add), \ - (TIMER4_Base_Add - TIMER2_Base_Add), \ - (TIMER5_Base_Add - TIMER2_Base_Add), \ - (TIMER9_Base_Add - TIMER2_Base_Add), \ - (TIMER10_Base_Add - TIMER2_Base_Add), \ - (TIMER11_Base_Add - TIMER2_Base_Add) \ - } - - - - -/*CR REGISTER BITS*/ -#define CEN 0 //Control Enable -#define OPM 3 //One Pulse Mode "RUN ONE TIME ONLY" -#define DIR 4 //Direction Up or Down Count -#define CMS0 5 //Center_Aligned Mode Selector -#define CMS1 6 -#define ARPE 7 //Auto Reload Preload Enable -/*DIER REGISTER BITS*/ -#define UIE 0 //Update Interrupt Enable -#define TIE 6 //Trigger Interrupt Enable -#define BIE 7 //Break Interrupt Enable -/*CCMRx REGISTER BITS 'OUTPUT'*/ -#define CCxS0 0 -#define CCxS1 1 -#define OCxFE 2 -#define OCxPE 3 -#define OCxM0 4 -#define OCxM1 5 -#define OCxM2 6 -#define OCxCE 7 -/*CCMRx REGISTER BITS 'INPUT'*/ -#define ICxF0 4 -#define ICxF1 5 -#define ICxF2 6 -#define ICxF3 7 -/*CCER REGISTER*/ // ( .. + 3 * x ) -#define CCxE 0 -#define CCxP 1 -#define CCxNE 2 -#define CCxNP 3 - -typedef struct{ - u32 CR1; //Control Reg 1 - u32 CR2; //Control Reg 2 - u32 SMCR; - u32 DIER; //DMA/Interrupt Enable Reg - u32 SR; //Status Reg - u32 EGR; - u32 CCMR[2]; - u32 CCER; - u32 CNT; //COUNTER - u32 PSC; //PRESCALER - u32 ARR; //AUTO-RELOAD - u32 RCR; - u32 CCR[4]; - u32 BDTR; - u32 DCR; //DMA CONTROLLER - u32 DMAR; - u32 RESERVED; -}TIM1_MemMap_t; - -typedef struct{ - u32 CR1; //Control Reg 1 - u32 CR2; //Control Reg 2 - u32 SMCR; - u32 DIER; //DMA/Interrupt Enable Reg - u32 SR; //Status Reg - u32 EGR; - u32 CCMR[2]; - u32 CCER; - u32 CNT; //COUNTER - u32 PSC; //PRESCALER - u32 ARR; //AUTO-RELOAD - u32 RESERVED1; - u32 CCR[4]; - u32 RESERVED2; - u32 DCR; //DMA CONTROLLER - u32 DMAR; - u32 TIM2_OR; -}TIM2_5_MemMap_t; - -typedef struct{ - u32 CR1; //Control Reg 1 - u32 RESERVED1; - u32 SMCR; - u32 DIER; //DMA/Interrupt Enable Reg - u32 SR; //Status Reg - u32 EGR; - u32 CCMR[1]; - u32 RESERVED2; - u32 CCER; - u32 CNT; //COUNTER - u32 PSC; //PRESCALER - u32 ARR; //AUTO-RELOAD - u32 RESERVED3; - u32 CCR[2]; - u32 RESERVED4[5]; -}TIM9_MemMap_t; - -typedef struct{ - u32 CR1; //Control Reg 1 - u32 RESERVED1; - u32 SMCR; - u32 DIER; //DMA/Interrupt Enable Reg - u32 SR; //Status Reg - u32 EGR; - u32 CCMR[1]; - u32 RESERVED2; - u32 CCER; - u32 CNT; //COUNTER - u32 PSC; //PRESCALER - u32 ARR; //AUTO-RELOAD - u32 RESERVED3; - u32 CCR[1]; - u32 RESERVED[6]; - u32 TIMx_OR; -}TIM10_11_MemMap_t; - -#define TIM1 ((volatile TIM1_MemMap_t *) (TIMER1_Base_Add)) -#define TIM2 ((volatile TIM2_5_MemMap_t *) (TIMER2_Base_Add)) -#define TIM3 ((volatile TIM2_5_MemMap_t *) (TIMER3_Base_Add)) -#define TIM4 ((volatile TIM2_5_MemMap_t *) (TIMER4_Base_Add)) -#define TIM5 ((volatile TIM2_5_MemMap_t *) (TIMER5_Base_Add)) - -#define TIM9 ((volatile TIM9_MemMap_t *) (TIMER9_Base_Add)) -#define TIM10 ((volatile TIM10_11_MemMap_t *) (TIMER10_Base_Add)) -#define TIM11 ((volatile TIM10_11_MemMap_t *) (TIMER11_Base_Add)) - -#endif /* MCAL_MTIMER_MTIMER_PRIVATE_H_ */ diff --git a/Src/MCAL/MTIMER/MTIMER_Prog.c b/Src/MCAL/MTIMER/MTIMER_Prog.c deleted file mode 100644 index eb59cd3..0000000 --- a/Src/MCAL/MTIMER/MTIMER_Prog.c +++ /dev/null @@ -1,509 +0,0 @@ -/* - * MTIMER_Prog.c - * - * Created on: Dec 19, 2023 - * Author: Hardware - */ -#include"MTIMER_Private.h" -#include"MTIMER_Int.h" -#include"MTIMER_Config.h" - - -static void (*GLOBAL_Ptr[8])(void)={STD_NULL}; - -void TIMER_ICU(Enum_TIMER_NUM Copy_u8TimerNum,Enum_TIMER_CHs Copy_u8ChannelNum); -u32 Time[29]={0}; - -TIM2_5_MemMap_t* GET_TIMER(u32 Copy_u8TimerNum){ - u32 Timer_Offset[8] = TIMERS_OFFSET; - TIM2_5_MemMap_t* TIMx = (u32)TIM2 + Timer_Offset[Copy_u8TimerNum-1]; - return TIMx; -} - -/** - * @brief Configure the specified timer for a periodic delay in milliseconds. - * - * @param Copy_u8TimerNum: The timer number to be configured. - * @param Copy_u32Delay: The desired delay in milliseconds. - * - * @note This function configures the timer with the specified number for a periodic delay. - * The timer is set up to generate an interrupt after the specified delay. - * for TIMERS 1,3,4,9,10,11 MAXIMUM Allowable Delay is 65.536 sec - * for TIMER 2,5 MAXIMUM Allowable Delay is 49.71 DAY!! - */ -void MTIMER_vPeriodicMS(Enum_TIMER_NUM Copy_u8TimerNum, u32 Copy_u32Delay) { - // Get the base address of the specified timer - TIM2_5_MemMap_t* TIMx = GET_TIMER(Copy_u8TimerNum); - - // Reset Control Register 1 Value - TIMx->CR1 = 0; - - // Set the prescaler value to achieve a 1ms time base - TIMx->PSC = SYS_CLOCK * 1000 - 1; - - // Set the auto-reload value to achieve the desired delay - TIMx->ARR = Copy_u32Delay - 1; - - // Set the Update Interrupt Enable bit to enable the interrupt - SET_BIT(TIMx->DIER, UIE); - - // Set the Counter Enable bit to start the timer - SET_BIT(TIMx->CR1, CEN); -} - - -void MTIMER_vPWM(Enum_TIMER_NUM Copy_u8TimerNum,Enum_TIMER_CHs Copy_u8Channel,u16 Copy_u16TotalTime_uSec,u16 Copy_u16PositiveDutyCycle_uSec){ - TIM2_5_MemMap_t* TIMx = GET_TIMER(Copy_u8TimerNum); - SET_BIT( TIMx->CR1 , ARPE ); // Enable auto-reload preload - CLR_BIT( TIMx->CR1 , DIR); // UP COUNT - CLR_BIT( TIMx->CR1 , CMS0); // 00: Edge-aligned mode. The counter counts up - CLR_BIT( TIMx->CR1 , CMS1); // or down depending on the direction bit(DIR) - - //01: CCx channel is configured as output "PWM" - CLR_BIT( TIMx->CCMR[Copy_u8Channel / 3] , ( CCxS0+(((Copy_u8Channel-1)%2)*8)) ); - CLR_BIT( TIMx->CCMR[Copy_u8Channel / 3] , ( CCxS1+(((Copy_u8Channel-1)%2)*8)) ); - - // set prescaler - /* TIME Calculation of Total Period: - * Total_Period = (PSC / (SYS_CLOCK * 10^6)) * ARR - */ - TIMx->PSC = SYS_CLOCK*10-1; - TIMx->ARR = ( Copy_u16TotalTime_uSec*100 )/1000; // Timer auto-reload to max <> - TIMx->CCR[Copy_u8Channel-1] = ( Copy_u16PositiveDutyCycle_uSec*100 )/1000; // << DUTY CYCLE >> - SET_BIT( TIMx->CCMR[Copy_u8Channel / 3] , ( OCxPE+(((Copy_u8Channel-1)%2)*8)) ); //1: Preload register on TIMx_CCRx enabled - - CLR_BIT( TIMx->CCMR[Copy_u8Channel / 3] , ( OCxM0+(((Copy_u8Channel-1)%2)*8)) );// PWM Mode1 (high then low) - SET_BIT( TIMx->CCMR[Copy_u8Channel / 3] , ( OCxM1+(((Copy_u8Channel-1)%2)*8)) ); - SET_BIT( TIMx->CCMR[Copy_u8Channel / 3] , ( OCxM2+(((Copy_u8Channel-1)%2)*8)) ); - - CLR_BIT( TIMx->CCER ,( CCxP + (Copy_u8Channel-1)*4) ); //Polarity 0: active high - //SET_BIT(TIMx->EGR,0); //UG: Update generation - 1: Reinitialize counter&update registers - SET_BIT( TIMx->CCER , ( CCxE+(Copy_u8Channel-1)*4) ); //Bit 0 CC1E: Capture/Compare 1 output enable - SET_BIT( TIMx->RESERVED2 , 15 );// MOE 1: OC and OCN outputs are enabled - - SET_BIT( TIMx->CR1 , CEN );// Enable timer1 - TIMx->CNT = 0xFFFFFFFF; -} - - -void MTIMER_vICU(Enum_TIMER_NUM Copy_u8TimerNum,Enum_TIMER_CHs Copy_u8Channel){ - TIM2_5_MemMap_t* TIMx = GET_TIMER(Copy_u8TimerNum); - SET_BIT( TIMx->CR1 , ARPE ); // Enable auto-reload preload - CLR_BIT( TIMx->CR1 , DIR ); // UP COUNT - CLR_BIT( TIMx->CR1 , CMS0 ); // 00: Edge-aligned mode. The counter counts up - CLR_BIT( TIMx->CR1 , CMS1 ); // or down depending on the direction bit(DIR) - - //01: CCx channel is configured as ICU - SET_BIT( TIMx->CCMR[Copy_u8Channel / 3] , ( CCxS0 + ( ((Copy_u8Channel-1)%2)*8)) ); - CLR_BIT( TIMx->CCMR[Copy_u8Channel / 3] , ( CCxS1 + ( ((Copy_u8Channel-1)%2)*8)) ); - - //FILTERING - SET_BIT(TIMx->CCMR[Copy_u8Channel / 3],( ICxF0 + ( ((Copy_u8Channel-1)%2)*8))); - SET_BIT(TIMx->CCMR[Copy_u8Channel / 3],( ICxF1 + ( ((Copy_u8Channel-1)%2)*8))); - CLR_BIT(TIMx->CCMR[Copy_u8Channel / 3],( ICxF2 + ( ((Copy_u8Channel-1)%2)*8))); - CLR_BIT(TIMx->CCMR[Copy_u8Channel / 3],( ICxF3 + ( ((Copy_u8Channel-1)%2)*8))); - - // set prescaler - TIMx->PSC = SYS_CLOCK * 100; - TIMx -> ARR = 0xFFFFFFFF; - - //SET_BIT(TIMx->EGR,0); //UG: Update generation - 1: Reinitialize counter&update registers - SET_BIT( TIMx->CCER , ( CCxE + (Copy_u8Channel-1)*4) ); //Bit 0 CC1E: Capture/Compare 1 output enable - CLR_BIT( TIMx->CCER , ( CCxP + (Copy_u8Channel-1)*4) ); - SET_BIT( TIMx-> DIER , Copy_u8Channel ); - - SET_BIT( TIMx->CR1 , CEN );// Enable timer1 - TIMx-> CNT = 0xFFFFFFFF; - -} - -/** - * @brief Input Capture Unit (ICU) function. - * @note This function captures the time difference between rising and falling edges - * on Timer 1, Channel 4. It uses the capture/compare registers and sets the - * timer to capture the rising edge first, then the falling edge. - * @return None - */ -void TIMER_ICU(Enum_TIMER_NUM Copy_u8TimerNum,Enum_TIMER_CHs Copy_u8ChannelNum) { - static u8 captureState[29] = {0}; - static u32 captureValue1[29] = {0}; - static u32 captureValue2[29] = {0}; - TIM2_5_MemMap_t* TIMx = GET_TIMER(Copy_u8TimerNum+1); - if (captureState[(4*Copy_u8TimerNum+Copy_u8ChannelNum)] == 0) { - // Capture the time on the rising edge - captureValue1[(4*Copy_u8TimerNum+Copy_u8ChannelNum)] = TIMx->CCR[Copy_u8ChannelNum]; - - // Enable falling edge capture - SET_BIT(TIMx->CCER, (CCxP + Copy_u8ChannelNum*4) ); - - // Move to the next state - captureState[(4*Copy_u8TimerNum+Copy_u8ChannelNum)] = 1; - } else { - // Capture the time on the falling edge - captureValue2[(4*Copy_u8TimerNum+Copy_u8ChannelNum)] = TIMx->CCR[Copy_u8ChannelNum]; - - // Enable rising edge capture - CLR_BIT(TIMx->CCER, (CCxP + Copy_u8ChannelNum*4) ); - - // Calculate the time difference - Time[(4*Copy_u8TimerNum+Copy_u8ChannelNum)] = captureValue2[(4*Copy_u8TimerNum+Copy_u8ChannelNum)] - captureValue1[(4*Copy_u8TimerNum+Copy_u8ChannelNum)]; - - // Reset state value - captureState[(4*Copy_u8TimerNum+Copy_u8ChannelNum)] = 0; - } -} - - - -/** - * @brief Get the ICU (Input Capture Unit) value for a specific timer and channel. - * - * @param Copy_u8TimerNum: The timer number (TIMER2 or TIMER5). - * @param Copy_u8Channel: The channel number. - * - * @return The ICU value for the specified timer and channel. - * If the timer is TIMER2 or TIMER5, the result is divided by (SYS_CLOCK * 100). - */ -u32 MTIMER_GET_ICU(Enum_TIMER_NUM Copy_u8TimerNum, Enum_TIMER_CHs Copy_u8Channel) { - return Time[(4 * (Copy_u8TimerNum - 1) + (Copy_u8Channel - 1))]; -} - - -/** - * @brief Set a callback function for a specific timer. - * - * @param Copy_u8TimerNum: The timer number. - * @param ptr: A pointer to the callback function to be set. - * - * @return void. - * - * @note The callback function will be called when the specified timer triggers an interrupt. - */ -void MTIMER_CallBack(Enum_TIMER_NUM Copy_u8TimerNum, void (*ptr)(void)) { - // Set the callback function pointer in the GLOBAL_Ptr array - GLOBAL_Ptr[Copy_u8TimerNum - 1] = ptr; -} - - -/** - * @brief Interrupt handler for TIM1 and TIM10 interrupts. - * - * @note This function is called when either TIM1 or TIM10 triggers an interrupt. - */ -void TIM1_UP_TIM10_IRQHandler(void) { - // Check if the update interrupt flag of TIM1 is set - if (GET_BIT(TIM1->SR, 0)) { - // Check if a callback function is registered for TIM1 - if (GLOBAL_Ptr[0] != STD_NULL) { - // Call the callback function for TIM1 - GLOBAL_Ptr[0](); - } - // Clear the update interrupt flag of TIM1 - CLR_BIT(TIM1->SR, 0); - } else { - // Check if the capture/compare interrupt flag for CH1 of TIM10 is set - if (GET_BIT(TIM10->SR, 1)) { - // Call the TIMER_ICU function for handling CH1 interrupt of TIM10 - TIMER_ICU(TIMER10 - 1, CH1 - 1); - // Clear the capture/compare interrupt flag for CH1 of TIM10 - CLR_BIT(TIM10->SR, CH1); - } - // Check if the update interrupt flag of TIM10 is set - if (GET_BIT(TIM10->SR, 0)) { - // Check if a callback function is registered for TIM10 (at index 6 in GLOBAL_Ptr array) - if (GLOBAL_Ptr[6] != STD_NULL) { - // Call the callback function for TIM10 - GLOBAL_Ptr[6](); - // Clear the update interrupt flag of TIM10 - CLR_BIT(TIM10->SR, 0); - } else { - // Clear the update interrupt flag of TIM10 without calling a callback function - CLR_BIT(TIM10->SR, 0); - } - } - } -} - - -/** - * @brief Interrupt handler for TIM1 trigger/completion and TIM11 interrupts. - * - * @note This function is called when either TIM1 triggers a trigger/completion or TIM11 triggers an interrupt. - */ -void TIM1_TRG_COM_TIM11_IRQHandler(void) { - // Check if the trigger interrupt or COM interrupt flag of TIM1 is set - if (GET_BIT(TIM1->SR, 5) || GET_BIT(TIM1->SR, 6)) { - // Handle TIMER1 trigger or COM interrupt - // Add the necessary code or call a function for TIMER1 trigger or COM handling - } else { - // Check if the capture/compare interrupt flag for CH1 of TIM11 is set - if (GET_BIT(TIM11->SR, 1)) { - // Call the TIMER_ICU function for handling CH1 interrupt of TIM11 - TIMER_ICU(TIMER11 - 1, CH1 - 1); - // Clear the capture/compare interrupt flag for CH1 of TIM11 - CLR_BIT(TIM11->SR, CH1); - } - // Check if the update interrupt flag of TIM11 is set - if (GET_BIT(TIM11->SR, 0)) { - // Check if a callback function is registered for TIM11 (at index 7 in GLOBAL_Ptr array) - if (GLOBAL_Ptr[7] != STD_NULL) { - // Call the callback function for TIM11 - GLOBAL_Ptr[7](); - // Clear the update interrupt flag of TIM11 - CLR_BIT(TIM11->SR, 0); - } else { - // Clear the update interrupt flag of TIM11 without calling a callback function - CLR_BIT(TIM11->SR, 0); - } - } - } -} - - -/** - * @brief Interrupt handler for TIM1 break and TIM9 interrupts. - * - * @note This function is called when either TIM1 triggers a break interrupt or TIM9 triggers an interrupt. - */ -void TIM1_BRK_TIM9_IRQHandler(void) { - // Check if the break interrupt flag of TIM1 is set - if (GET_BIT(TIM1->SR, 7)) { - // Handle TIMER1 break interrupt - // Add the necessary code or call a function for TIMER1 break handling - } else { - // Check if the capture/compare interrupt flag for CH1 of TIM9 is set - if (GET_BIT(TIM9->SR, 1)) { - // Call the TIMER_ICU function for handling CH1 interrupt of TIM9 - TIMER_ICU(TIMER9 - 1, CH1 - 1); - // Clear the capture/compare interrupt flag for CH1 of TIM9 - CLR_BIT(TIM9->SR, CH1); - } else if (GET_BIT(TIM9->SR, 2)) { - // Call the TIMER_ICU function for handling CH2 interrupt of TIM9 - TIMER_ICU(TIMER9 - 1, CH2 - 1); - // Clear the capture/compare interrupt flag for CH2 of TIM9 - CLR_BIT(TIM9->SR, CH2); - } - // Check if the update interrupt flag of TIM9 is set - if (GET_BIT(TIM9->SR, 0)) { - // Check if a callback function is registered for TIM9 (at index 5 in GLOBAL_Ptr array) - if (GLOBAL_Ptr[5] != STD_NULL) { - // Call the callback function for TIM9 - GLOBAL_Ptr[5](); - // Clear the update interrupt flag of TIM9 - CLR_BIT(TIM9->SR, 0); - } else { - // Clear the update interrupt flag of TIM9 without calling a callback function - CLR_BIT(TIM9->SR, 0); - } - } - } -} - -/** - * @brief Interrupt handler for TIM1 capture/compare interrupts. - * - * @note This function is called when any of the capture/compare channels (CH1-CH4) of TIM1 triggers an interrupt. - */ -void TIM1_CC_IRQHandler(void) { - // Check if the capture/compare interrupt flag for CH1 of TIM1 is set - if (GET_BIT(TIM1->SR, 1)) { - // Call the TIMER_ICU function for handling CH1 interrupt of TIM1 - TIMER_ICU(TIMER1 - 1, CH1 - 1); - // Clear the capture/compare interrupt flag for CH1 of TIM1 - CLR_BIT(TIM1->SR, CH1); - } else if (GET_BIT(TIM1->SR, 2)) { - // Call the TIMER_ICU function for handling CH2 interrupt of TIM1 - TIMER_ICU(TIMER1 - 1, CH2 - 1); - // Clear the capture/compare interrupt flag for CH2 of TIM1 - CLR_BIT(TIM1->SR, CH2); - } else if (GET_BIT(TIM1->SR, 3)) { - // Call the TIMER_ICU function for handling CH3 interrupt of TIM1 - TIMER_ICU(TIMER1 - 1, CH3 - 1); - // Clear the capture/compare interrupt flag for CH3 of TIM1 - CLR_BIT(TIM1->SR, CH3); - } else { - // Call the TIMER_ICU function for handling CH4 interrupt of TIM1 - TIMER_ICU(TIMER1 - 1, CH4 - 1); - // Clear the capture/compare interrupt flag for CH4 of TIM1 - CLR_BIT(TIM1->SR, CH4); - } -} - -/** - * @brief Interrupt handler for TIM2 capture/compare and update interrupts. - * - * @note This function is called when any of the capture/compare channels (CH1-CH4) or the update interrupt of TIM2 triggers an interrupt. - */ -void TIM2_IRQHandler(void) { - // Check if the capture/compare interrupt flag for CH1 of TIM2 is set - if (GET_BIT(TIM2->SR, 1)) { - // Call the TIMER_ICU function for handling CH1 interrupt of TIM2 - TIMER_ICU(TIMER2 - 1, CH1 - 1); - // Clear the capture/compare interrupt flag for CH1 of TIM2 - CLR_BIT(TIM2->SR, CH1); - } else if (GET_BIT(TIM2->SR, 2)) { - // Call the TIMER_ICU function for handling CH2 interrupt of TIM2 - TIMER_ICU(TIMER2 - 1, CH2 - 1); - // Clear the capture/compare interrupt flag for CH2 of TIM2 - CLR_BIT(TIM2->SR, CH2); - } else if (GET_BIT(TIM2->SR, 3)) { - // Call the TIMER_ICU function for handling CH3 interrupt of TIM2 - TIMER_ICU(TIMER2 - 1, CH3 - 1); - // Clear the capture/compare interrupt flag for CH3 of TIM2 - CLR_BIT(TIM2->SR, CH3); - } else if (GET_BIT(TIM2->SR, 4)) { - // Call the TIMER_ICU function for handling CH4 interrupt of TIM2 - TIMER_ICU(TIMER2 - 1, CH4 - 1); - // Clear the capture/compare interrupt flag for CH4 of TIM2 - CLR_BIT(TIM2->SR, CH4); - } - - // Check if the update interrupt flag of TIM2 is set - if (GET_BIT(TIM2->SR, 0)) { - // Check if a callback function is registered for TIM2 (at index 2 in GLOBAL_Ptr array) - if (GLOBAL_Ptr[1] != STD_NULL) { - // Call the callback function for TIM2 - GLOBAL_Ptr[1](); - // Clear the update interrupt flag of TIM2 - CLR_BIT(TIM2->SR, 0); - } else { - // Clear the update interrupt flag of TIM2 without calling a callback function - CLR_BIT(TIM2->SR, 0); - } - } -} - - -/** - * @brief Interrupt handler for TIM3 capture/compare and update interrupts. - * - * @note This function is called when any of the capture/compare channels (CH1-CH4) or the update interrupt of TIM3 triggers an interrupt. - */ -void TIM3_IRQHandler(void) { - // Check if the capture/compare interrupt flag for CH1 of TIM3 is set - if (GET_BIT(TIM3->SR, 1)) { - // Call the TIMER_ICU function for handling CH1 interrupt of TIM3 - TIMER_ICU(TIMER3 - 1, CH1 - 1); - // Clear the capture/compare interrupt flag for CH1 of TIM3 - CLR_BIT(TIM3->SR, CH1); - } else if (GET_BIT(TIM3->SR, 2)) { - // Call the TIMER_ICU function for handling CH2 interrupt of TIM3 - TIMER_ICU(TIMER3 - 1, CH2 - 1); - // Clear the capture/compare interrupt flag for CH2 of TIM3 - CLR_BIT(TIM3->SR, CH2); - } else if (GET_BIT(TIM3->SR, 3)) { - // Call the TIMER_ICU function for handling CH3 interrupt of TIM3 - TIMER_ICU(TIMER3 - 1, CH3 - 1); - // Clear the capture/compare interrupt flag for CH3 of TIM3 - CLR_BIT(TIM3->SR, CH3); - } else if (GET_BIT(TIM3->SR, 4)) { - // Call the TIMER_ICU function for handling CH4 interrupt of TIM3 - TIMER_ICU(TIMER3 - 1, CH4 - 1); - // Clear the capture/compare interrupt flag for CH4 of TIM3 - CLR_BIT(TIM3->SR, CH4); - } - - // Check if the update interrupt flag of TIM3 is set - if (GET_BIT(TIM3->SR, 0)) { - // Check if a callback function is registered for TIM3 (at index 3 in GLOBAL_Ptr array) - if (GLOBAL_Ptr[2] != STD_NULL) { - // Call the callback function for TIM3 - GLOBAL_Ptr[2](); - // Clear the update interrupt flag of TIM3 - CLR_BIT(TIM3->SR, 0); - } else { - // Clear the update interrupt flag of TIM3 without calling a callback function - CLR_BIT(TIM3->SR, 0); - } - } -} - -/** - * @brief Interrupt handler for TIM4 capture/compare and update interrupts. - * - * @note This function is called when any of the capture/compare channels (CH1-CH4) or the update interrupt of TIM4 triggers an interrupt. - */ -void TIM4_IRQHandler(void) { - // Check if the capture/compare interrupt flag for CH1 of TIM4 is set - if (GET_BIT(TIM4->SR, 1)) { - // Call the TIMER_ICU function for handling CH1 interrupt of TIM4 - TIMER_ICU(TIMER4 - 1, CH1 - 1); - // Clear the capture/compare interrupt flag for CH1 of TIM4 - CLR_BIT(TIM4->SR, CH1); - } else if (GET_BIT(TIM4->SR, 2)) { - // Call the TIMER_ICU function for handling CH2 interrupt of TIM4 - TIMER_ICU(TIMER4 - 1, CH2 - 1); - // Clear the capture/compare interrupt flag for CH2 of TIM4 - CLR_BIT(TIM4->SR, CH2); - } else if (GET_BIT(TIM4->SR, 3)) { - // Call the TIMER_ICU function for handling CH3 interrupt of TIM4 - TIMER_ICU(TIMER4 - 1, CH3 - 1); - // Clear the capture/compare interrupt flag for CH3 of TIM4 - CLR_BIT(TIM4->SR, CH3); - } else if (GET_BIT(TIM4->SR, 4)) { - // Call the TIMER_ICU function for handling CH4 interrupt of TIM4 - TIMER_ICU(TIMER4 - 1, CH4 - 1); - // Clear the capture/compare interrupt flag for CH4 of TIM4 - CLR_BIT(TIM4->SR, CH4); - } - - // Check if the update interrupt flag of TIM4 is set - if (GET_BIT(TIM4->SR, 0)) { - // Check if a callback function is registered for TIM4 (at index 4 in GLOBAL_Ptr array) - if (GLOBAL_Ptr[3] != STD_NULL) { - // Call the callback function for TIM4 - GLOBAL_Ptr[3](); - // Clear the update interrupt flag of TIM4 - CLR_BIT(TIM4->SR, 0); - } else { - // Clear the update interrupt flag of TIM4 without calling a callback function - CLR_BIT(TIM4->SR, 0); - } - } -} - -/** - * @brief Interrupt handler for TIM5 capture/compare and update interrupts. - * - * @note This function is called when any of the capture/compare channels (CH1-CH4) or the update interrupt of TIM5 triggers an interrupt. - */ -void TIM5_IRQHandler(void) { - // Check if the capture/compare interrupt flag for CH1 of TIM5 is set - if (GET_BIT(TIM5->SR, 1)) { - // Call the TIMER_ICU function for handling CH1 interrupt of TIM5 - TIMER_ICU(TIMER5 - 1, CH1 - 1); - // Clear the capture/compare interrupt flag for CH1 of TIM5 - CLR_BIT(TIM5->SR, CH1); - } else if (GET_BIT(TIM5->SR, 2)) { - // Call the TIMER_ICU function for handling CH2 interrupt of TIM5 - TIMER_ICU(TIMER5 - 1, CH2 - 1); - // Clear the capture/compare interrupt flag for CH2 of TIM5 - CLR_BIT(TIM5->SR, CH2); - } else if (GET_BIT(TIM5->SR, 3)) { - // Call the TIMER_ICU function for handling CH3 interrupt of TIM5 - TIMER_ICU(TIMER5 - 1, CH3 - 1); - // Clear the capture/compare interrupt flag for CH3 of TIM5 - CLR_BIT(TIM5->SR, CH3); - } else if (GET_BIT(TIM5->SR, 4)) { - // Call the TIMER_ICU function for handling CH4 interrupt of TIM5 - TIMER_ICU(TIMER5 - 1, CH4 - 1); - // Clear the capture/compare interrupt flag for CH4 of TIM5 - CLR_BIT(TIM5->SR, CH4); - } - - // Check if the update interrupt flag of TIM5 is set - if (GET_BIT(TIM5->SR, 0)) { - // Check if a callback function is registered for TIM5 (at index 5 in GLOBAL_Ptr array) - if (GLOBAL_Ptr[4] != STD_NULL) { - // Call the callback function for TIM5 - GLOBAL_Ptr[4](); - // Clear the update interrupt flag of TIM5 - CLR_BIT(TIM5->SR, 0); - } else { - // Clear the update interrupt flag of TIM5 without calling a callback function - CLR_BIT(TIM5->SR, 0); - } - } -} - - diff --git a/Src/MCAL/MUART/MUSART_Config.h b/Src/MCAL/MUART/MUSART_Config.h deleted file mode 100644 index 03fca4d..0000000 --- a/Src/MCAL/MUART/MUSART_Config.h +++ /dev/null @@ -1,12 +0,0 @@ -/* - * MUSART_Config.h - * - * Created on: Jun 8, 2023 - * Author: Mohamed Hawas - */ - -#ifndef MUSART_CONFIG_H_ -#define MUSART_CONFIG_H_ - - -#endif /* MUSART_CONFIG_H_ */ diff --git a/Src/MCAL/MUART/MUSART_Interface.h b/Src/MCAL/MUART/MUSART_Interface.h deleted file mode 100644 index 4cd7b32..0000000 --- a/Src/MCAL/MUART/MUSART_Interface.h +++ /dev/null @@ -1,128 +0,0 @@ -/*******************************************************************************************************/ -/* Author : Mohamed Hawas */ -/* Version : V0.0.0 */ -/* Data : 23 May 2022 */ -/* Description : MUSART_Interface.c --> implementations */ -/* Module Features : */ -/* 01- MUART_Enable */ -/* 02- MUART_Disable */ -/* 03- MUART_Send_Byte */ -/* 04- MUART_Send_Data */ -/* 05- MUART_Receive_Byte */ -/* 06- MUART_Receive_Data */ -/*******************************************************************************************************/ - - -/*******************************************************************************************************/ -/* guard of file will call on time in .c */ -/*******************************************************************************************************/ -#ifndef MUSART_INTERFACE_H_ -#define MUSART_INTERFACE_H_ - - -/*******************************************************************************************************/ -/* LIB */ -/*******************************************************************************************************/ -#include "MUSART_Private.h" -/********************************************************************************************************/ -/* macros of UARTx */ -/********************************************************************************************************/ -#define UART1 1 -#define UART2 2 -#define UART6 6 - - -/*******************************************************************************************************/ -/* USART LENGTH MODES : 8-BIT , 9-BIT */ -/*******************************************************************************************************/ -#define _8DATA_LENGTH_ 0 -#define _9DATA_LENGTH_ 1 - - -/******************************************************************************************************/ -/* USART STOP BIT MODES : 00 -> ONE_STOP , 10 -> TWO_STOP */ -/******************************************************************************************************/ -#define USART1_ONE_STOP_BITS 00 -#define USART1_TWO_STOP_BITS 10 - - -/******************************************************************************************************/ -/* APIs */ -/******************************************************************************************************/ - -/******************************************************************************************************/ -/* 01- MUART_Enable */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Function Enable UART */ -/* 2- Function Input -> @param UART_Index = UART1 , UART2 , UART6 */ -/* 3- Function Return -> void */ -/******************************************************************************************************/ -void MUART_Enable(u8 UART_Index); -/******************************************************************************************************/ - -/******************************************************************************************************/ -/* 02- MUART_Disable */ -/*----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Function Disable UART */ -/* 2- Function Input -> @param UART_Index = UART1 , UART2 , UART6 */ -/* 3- Function Return -> void */ -/******************************************************************************************************/ -void MUART_Disable(u8 UART_Index); -/******************************************************************************************************/ - - - -/*******************************************************************************************************/ -/* 03- MUART_Send_Byte */ -/*-----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Function Send 1 byte */ -/* 2- Function Input -> @param UART_Index = UART1 , UART2 , UART6 */ -/* @param data = should be 1 byte */ -/* 3- Function Return -> void */ -/*******************************************************************************************************/ -void MUART_Send_Byte(u8 UART_Index ,u8 data); -/*******************************************************************************************************/ - - - -/*******************************************************************************************************/ -/* 04- MUART_Send_Data */ -/*-----------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Function Send Data (array , string , ...) */ -/* 2- Function Input -> @param UART_Index = UART1 , UART2 , UART6 */ -/* @param data = Can be array , string or any data */ -/* 3- Function Return -> void */ -/*******************************************************************************************************/ -void MUART_Send_Data(u8 UART_Index ,u8* data); -/*********************************************************************************************************/ - - -/********************************************************************************************************/ -/* 05- MUART_Receive_Byte */ -/*------------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Function Receive Byte */ -/* 2- Function Input -> @param UART_Index = UART1 , UART2 , UART6 */ -/* 3- Function Return -> 1 Byte */ -/********************************************************************************************************/ -u8 MUART_Receive_Byte(u8 UART_Index); -/********************************************************************************************************/ - - -/********************************************************************************************************/ -/* 06- MUART_Receive_Data */ -/*------------------------------------------------------------------------------------------------------*/ -/* 1- Function Description -> Function Receive Data */ -/* 2- Function Input -> @param UART_Index = UART1 , UART2 , UART6 */ -/* @param Buffer[] = the received Data */ -/* @param max_size = size of array */ -/* 3- Function Return -> 1 Byte */ -/********************************************************************************************************/ -void MUART_Receive_Data(u8 UART_Index,u8 Buffer[] ,u8 max_size); -/********************************************************************************************************/ - - -/*Helper Function*/ -USART_REG Get_UART(u8 UART_Index); - - -#endif /* MUSART_INTERFACE_H_ */ diff --git a/Src/MCAL/MUART/MUSART_Private.h b/Src/MCAL/MUART/MUSART_Private.h deleted file mode 100644 index 7b6f62f..0000000 --- a/Src/MCAL/MUART/MUSART_Private.h +++ /dev/null @@ -1,108 +0,0 @@ -/***************************************************************************/ -/* Author : Mohamed Hawas */ -/* Version : V0.0.0 */ -/* Date : 8 Jun 2023 */ -/* Description : Driver Functions Implementation */ -/* Features : Register Definition */ -/***************************************************************************/ - -/***************************************************************************/ -/* File Guard Will Call On Time in .c File */ -/***************************************************************************/ -#ifndef MUSART_PRIVATE_H_ -#define MUSART_PRIVATE_H_ -/***************************************************************************/ -/* Base Address Of USARTx Register */ -/***************************************************************************/ -#define USART1_BASE_ADDRESS 0x40011000UL -#define USART2_BASE_ADDRESS 0x40004400UL -#define USART6_BASE_ADDRESS 0x40011400UL - - -/**************************************************************************/ -/* Register Definition :- */ -/* Features : Private File Can`t Be Edit By User */ -/* Description :- */ -/* - #define : YES */ -/* - union : NO */ -/* - struct : YED */ -/**************************************************************************/ - -typedef struct{ - u32 SBK :1 ; - u32 RWU :1 ; - u32 RE :1 ; - u32 TE :1 ; - u32 IDLEIE :1 ; - u32 RXNEIE :1 ; - u32 TCIE :1 ; - u32 TXEIE :1 ; - u32 PEIE :1 ; - u32 PS :1 ; - u32 PCE :1 ; - u32 WAKE :1 ; - u32 M :1 ; - u32 UE :1 ; - u32 RESERVER1:1 ; - u32 OVER8 :1 ; - u32 RESERVER2:16 ; -}USART_CR1; - -typedef struct{ - u32 ADD :4 ; - u32 RESERVER :1 ; - u32 LBDL :1 ; - u32 LBDIR :1 ; - u32 RESERVER1:1 ; - u32 LBCL :1 ; - u32 CPHA :1 ; - u32 CPOL :1 ; - u32 CLKEN :1 ; - u32 STOP :2 ; - u32 LINEN :1 ; - u32 RESERVER2:1 ; - u32 RESERVER3:16 ; -}USART_CR2; - -typedef struct{ - u32 EIE ; - u32 IREN ; - u32 IRLP ; - u32 HDSEL ; - u32 NACK ; - u32 SCEN ; - u32 DMAR ; - u32 RTSE ; - u32 CTSE ; - u32 CTSIE ; - u32 ONEBIT ; - u32 RESERVERD:19 ; -}USART_CR3; - -typedef struct{ - u32 PSC:8 ; - u32 GT :8 ; - u32 RESERVERD:16 ; -}USART_GTPR; - -typedef struct{ - u32 SR ; - u32 DR ; - u32 BRR ; - USART_CR1 CR1 ; - USART_CR2 CR2 ; - USART_CR3 CR3 ; - USART_GTPR GTPR ; -}USART_t; - -/***************************************************************************/ -/* Struct Macro Base Address Of USARTx */ -/***************************************************************************/ -typedef volatile USART_t* USART_REG; - -#define USART1_REG ((USART_REG)(USART1_BASE_ADDRESS)) -#define USART2_REG ((USART_REG)(USART2_BASE_ADDRESS)) -#define USART6_REG ((USART_REG)(USART6_BASE_ADDRESS)) - - -#endif /* MUSART_PRIVATE_H_ */ diff --git a/Src/MCAL/MUART/MUSART_Program.c b/Src/MCAL/MUART/MUSART_Program.c deleted file mode 100644 index 71be7fa..0000000 --- a/Src/MCAL/MUART/MUSART_Program.c +++ /dev/null @@ -1,116 +0,0 @@ -/***************************************************************************/ -/* Author : Mohamed Hawas */ -/* Version : V0.0.0 */ -/* Date : 8 Jun 2023 */ -/* Author : John */ -/* Description : Driver Functions Implementation */ -/* Features : */ -/***************************************************************************/ - -/***************************************************************************/ -/* Standard Types LIB */ -/***************************************************************************/ -#include "../../LIB/STD_TYPES.h" -#include "../../LIB/BIT_MATH.h" - -/***************************************************************************/ -/* MCAL Components */ -/***************************************************************************/ -#include "MUSART_Interface.h" -#include "MUSART_Config.h" -#include "MUSART_Private.h" -/***************************************************************************/ -/* Functions Implementations */ -/***************************************************************************/ - -void MUART_Enable(u8 UART_Index) -{ - USART_REG UARTx = Get_UART(UART_Index); - /*Enable Uart */ - UARTx ->CR1.UE = 1 ; - - /*Select BaudRate -> 9600*/ - UARTx ->BRR = 0x683; - - /* Select Stop Bits As 1-BIT */ - UARTx -> CR2.STOP |= (USART1_ONE_STOP_BITS << 12); - - /* ENABLE RX */ - UARTx ->CR1.RE = 1; - - /* ENABLE TX */ - UARTx ->CR1.TE = 1; - - /* Select No Sending BREAK */ - UARTx ->CR1.SBK = 0 ; - - /* Select Disable Parity */ - UARTx ->CR1.PCE = 0; - - /* SELECT WORD LENGHT AS 8DATA-BITS */ - UARTx ->CR1.M = _8DATA_LENGTH_ ; - - /*SELECT OVER SAMPLING BY 16*/ - UARTx ->CR1.OVER8 = 0; - -} - - -void MUART_Disable(u8 UART_Index) -{ - USART_REG UARTx = Get_UART(UART_Index); - UARTx ->CR1.UE = 0 ; -} - -void MUART_Send_Byte(u8 UART_Index ,u8 data){ - USART_REG UARTx = Get_UART(UART_Index); - while(GET_BIT(USART1_REG ->SR,7) == 0); - UARTx->DR = data; -} - - -void MUART_Send_Data(u8 UART_Index , u8 *data) -{ - u8 i = 0 ; - u8 length =sizeof(*data); - USART_REG UARTx = Get_UART(UART_Index); - for(i = 0; i < length; i++) - { - //Busy wait until transmission complete - while(GET_BIT(USART1_REG ->SR,7) == 0); - UARTx->DR = data[i] ; - } -} - - -u8 MUART_Receive_Byte(u8 UART_Index) -{ - u8 data ; - USART_REG UARTx = Get_UART(UART_Index); - //Busy wait until reception complete then read it - while(!GET_BIT(UARTx ->SR,5)); - data = (UARTx ->DR); - return (u8)data; -} - - -void MUART_Receive_Data(u8 UART_Index ,u8 Buffer[] ,u8 max_size) -{ - -} - -USART_REG Get_UART(u8 UART_Index){ - USART_REG UARTx ; - switch(UART_Index) - { - case 1: UARTx = USART1_REG ; break; - case 2: UARTx = USART2_REG ; break; - case 6: UARTx = USART6_REG ; break; - } - return UARTx; -} - - - - - From 5cb5e8e3de7d635593ce664b17f6e9a45510e165 Mon Sep 17 00:00:00 2001 From: Mohamed Hawas <57467484+Mohamed-Hawas@users.noreply.github.com> Date: Sat, 17 Feb 2024 19:07:46 +0200 Subject: [PATCH 2/2] update sync --- .gitignore | 8 +- .metadata/.ide.log | 116 + .metadata/.lock | 0 .metadata/.log | 372 ++ .metadata/.log4j.xml | 18 + .../1.4.0.202007081208 | 0 .metadata/.plugins/org.eclipse.cdt.core/.log | 3 + .../AutoParkingCar.1708127098218.pdom | Bin 0 -> 741376 bytes .../AutoParkingCar.language.settings.xml | 5213 +++++++++++++++++ .../org.eclipse.cdt.make.core/specs.c | 1 + .../org.eclipse.cdt.make.core/specs.cpp | 1 + .../dialog_settings.xml | 5 + .../spec.c | 0 .../AutoParkingCar.build.log | 134 + .../org.eclipse.cdt.ui/dialog_settings.xml | 7 + .../org.eclipse.cdt.ui/global-build.log | 135 + .../.indexes/c4/properties.index | Bin 0 -> 129 bytes .../AutoParkingCar/.indexes/properties.index | Bin 0 -> 157 bytes .../.projects/AutoParkingCar/.markers | Bin 0 -> 6235 bytes .../.root/.indexes/history.version | 1 + .../.root/.indexes/properties.index | Bin 0 -> 104 bytes .../.root/.indexes/properties.version | 1 + .../org.eclipse.core.resources/.root/3.tree | Bin 0 -> 15708 bytes .../.safetable/org.eclipse.core.resources | Bin 0 -> 683 bytes .../com.st.stm32cube.ide.mcu.ide.oss.prefs | 2 + ....eclipse.cdt.core.prj-AutoParkingCar.prefs | 2 + .../org.eclipse.cdt.managedbuilder.core.prefs | 2 + .../.settings/org.eclipse.cdt.ui.prefs | 4 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.rse.core.prefs | 4 + .../.settings/org.eclipse.rse.ui.prefs | 2 + .../.settings/org.eclipse.ui.editors.prefs | 2 + .../.settings/org.eclipse.ui.ide.prefs | 6 + .../.settings/org.eclipse.ui.navigator.prefs | 3 + .../.settings/org.eclipse.ui.prefs | 2 + .../.settings/org.eclipse.ui.workbench.prefs | 3 + .../org.eclipse.e4.workbench/workbench.xmi | 1895 ++++++ .metadata/.plugins/org.eclipse.rse.core/.log | 0 ...al.core.RSELocalConnectionInitializer.mark | 0 .../FP.local.files_0/node.properties | 57 + .../H.local_16/node.properties | 25 + .../PRF.desktop-09o4gtd_32535/node.properties | 7 + .metadata/.plugins/org.eclipse.rse.ui/.log | 0 .../org.eclipse.ui.ide/dialog_settings.xml | 14 + .../dialog_settings.xml | 19 + .../org.eclipse.ui.workbench/workingsets.xml | 4 + .metadata/version.ini | 3 + RemoteSystemsTempFiles/.project | 12 + 48 files changed, 8079 insertions(+), 6 deletions(-) create mode 100644 .metadata/.ide.log create mode 100644 .metadata/.lock create mode 100644 .metadata/.log create mode 100644 .metadata/.log4j.xml create mode 100644 .metadata/.plugins/com.st.stm32cube.ide.mcu.informationcenter/1.4.0.202007081208 create mode 100644 .metadata/.plugins/org.eclipse.cdt.core/.log create mode 100644 .metadata/.plugins/org.eclipse.cdt.core/AutoParkingCar.1708127098218.pdom create mode 100644 .metadata/.plugins/org.eclipse.cdt.core/AutoParkingCar.language.settings.xml create mode 100644 .metadata/.plugins/org.eclipse.cdt.make.core/specs.c create mode 100644 .metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp create mode 100644 .metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml create mode 100644 .metadata/.plugins/org.eclipse.cdt.managedbuilder.core/spec.c create mode 100644 .metadata/.plugins/org.eclipse.cdt.ui/AutoParkingCar.build.log create mode 100644 .metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml create mode 100644 .metadata/.plugins/org.eclipse.cdt.ui/global-build.log create mode 100644 .metadata/.plugins/org.eclipse.core.resources/.projects/AutoParkingCar/.indexes/c4/properties.index create mode 100644 .metadata/.plugins/org.eclipse.core.resources/.projects/AutoParkingCar/.indexes/properties.index create mode 100644 .metadata/.plugins/org.eclipse.core.resources/.projects/AutoParkingCar/.markers create mode 100644 .metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version create mode 100644 .metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index create mode 100644 .metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version create mode 100644 .metadata/.plugins/org.eclipse.core.resources/.root/3.tree create mode 100644 .metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/com.st.stm32cube.ide.mcu.ide.oss.prefs create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.core.prj-AutoParkingCar.prefs create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.ui.prefs create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.core.prefs create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.ui.prefs create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.navigator.prefs create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs create mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs create mode 100644 .metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi create mode 100644 .metadata/.plugins/org.eclipse.rse.core/.log create mode 100644 .metadata/.plugins/org.eclipse.rse.core/initializerMarks/org.eclipse.rse.internal.core.RSELocalConnectionInitializer.mark create mode 100644 .metadata/.plugins/org.eclipse.rse.core/profiles/PRF.desktop-09o4gtd_32535/FP.local.files_0/node.properties create mode 100644 .metadata/.plugins/org.eclipse.rse.core/profiles/PRF.desktop-09o4gtd_32535/H.local_16/node.properties create mode 100644 .metadata/.plugins/org.eclipse.rse.core/profiles/PRF.desktop-09o4gtd_32535/node.properties create mode 100644 .metadata/.plugins/org.eclipse.rse.ui/.log create mode 100644 .metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml create mode 100644 .metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml create mode 100644 .metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml create mode 100644 .metadata/version.ini create mode 100644 RemoteSystemsTempFiles/.project diff --git a/.gitignore b/.gitignore index 99bf015..05ee1c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,8 @@ # Ignore BlackPill_RC/ folder and its contents BlackPill/* -<<<<<<< HEAD -.metadata/ -RemoteSystemsTempFiles/ -.gitignore -======= ->>>>>>> f8298a5c481fe8d6f83b6d6c7b2f18afb624c791 + + # Exclude specific subfolders within BlackPill_RC/ !BlackPill/Src/MCAL/ !BlackPill/Src/HAL/ diff --git a/.metadata/.ide.log b/.metadata/.ide.log new file mode 100644 index 0000000..ecd4358 --- /dev/null +++ b/.metadata/.ide.log @@ -0,0 +1,116 @@ +2024-02-17 01:43:08,522 [INFO] Activator:178 - + + +2024-02-17 01:43:08,525 [INFO] Activator:179 - !SESSION log4j initialized +2024-02-17 01:43:12,293 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:43:12,298 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:43:12,385 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:43:12,385 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:43:12,471 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:43:12,472 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:43:38,989 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:43:38,990 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:43:39,069 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:43:39,070 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:43:39,151 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:43:39,152 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:43:39,237 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:43:39,238 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:43:39,318 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:43:39,319 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:43:39,404 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:43:39,407 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:43:39,492 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:43:39,492 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:43:39,568 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:43:39,569 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:43:39,649 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:43:39,649 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:43:39,735 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:43:39,736 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:43:39,818 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:43:39,818 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:43:39,897 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:43:39,898 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:43:40,964 [INFO] RetryExec:97 - I/O exception (java.net.SocketException) caught when processing request to {s}->https://sw-center.st.com:443: Socket Closed +2024-02-17 01:43:40,966 [INFO] RetryExec:113 - Retrying request to {s}->https://sw-center.st.com:443 +2024-02-17 01:43:45,622 [INFO] Activator:178 - + + +2024-02-17 01:43:45,626 [INFO] Activator:179 - !SESSION log4j initialized +2024-02-17 01:44:00,346 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:44:00,349 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:44:04,006 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:44:04,007 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:44:04,087 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:44:04,088 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:44:04,167 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:44:04,168 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:44:04,251 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:44:04,252 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:44:04,338 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:44:04,339 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:44:04,421 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:44:04,422 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:44:04,508 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:44:04,509 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:44:04,597 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:44:04,600 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:44:04,683 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:44:04,683 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:44:04,767 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:44:04,768 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:44:04,855 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:44:04,856 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:44:04,939 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:44:04,940 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:44:05,821 [INFO] RetryExec:97 - I/O exception (java.net.SocketException) caught when processing request to {s}->https://sw-center.st.com:443: Socket Closed +2024-02-17 01:44:05,828 [INFO] RetryExec:113 - Retrying request to {s}->https://sw-center.st.com:443 +2024-02-17 01:44:10,151 [INFO] Activator:178 - + + +2024-02-17 01:44:10,154 [INFO] Activator:179 - !SESSION log4j initialized +2024-02-17 01:44:14,366 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:44:14,370 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:44:14,579 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:44:14,579 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:44:14,660 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:44:14,660 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:45:05,105 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:45:05,106 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:45:05,198 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:45:05,199 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:45:05,282 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:45:05,282 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:45:05,428 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:45:05,429 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:45:05,683 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:45:05,684 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:45:05,915 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:45:05,916 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:45:06,052 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:45:06,052 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:45:06,184 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:45:06,185 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:45:06,318 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:45:06,319 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:45:06,437 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:45:06,438 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 01:45:06,601 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 01:45:06,602 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 02:06:24,668 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 02:06:24,669 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 02:06:24,758 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 02:06:24,761 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 02:06:24,843 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 02:06:24,844 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 02:11:12,880 [INFO] Activator:178 - + + +2024-02-17 02:11:12,887 [INFO] Activator:179 - !SESSION log4j initialized +2024-02-17 02:11:18,340 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 02:11:18,342 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 02:11:18,425 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 02:11:18,426 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] +2024-02-17 02:11:18,525 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] [Fatal Error] :1:1: Premature end of file. +2024-02-17 02:11:18,526 [ERROR] LogOutputStream:74 - [STDERR_REDIRECT] diff --git a/.metadata/.lock b/.metadata/.lock new file mode 100644 index 0000000..e69de29 diff --git a/.metadata/.log b/.metadata/.log new file mode 100644 index 0000000..14e6822 --- /dev/null +++ b/.metadata/.log @@ -0,0 +1,372 @@ +!SESSION 2024-02-17 01:42:55.110 ----------------------------------------------- +eclipse.buildId=Version 1.4.0 +java.version=1.8.0_252 +java.vendor=AdoptOpenJDK +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Command-line arguments: -os win32 -ws win32 -arch x86_64 -data G:\Embedded Systems\GP\GP_Git\Embeddedians + +!ENTRY com.st.stm32cube.ide.mcu.informationcenter 1 1 2024-02-17 01:43:08.520 +!MESSAGE Log4j initialized with config file G:\Embedded Systems\GP\GP_Git\Embeddedians\.metadata\.log4j.xml + +!ENTRY com.st.stm32cube.ide.mcu.ide 1 1 2024-02-17 01:43:12.288 +!MESSAGE Started RMI Server, listening on port 41337 + +!ENTRY com.st.stm32cube.ide.mcu.ide 4 4 2024-02-17 01:43:12.922 +!MESSAGE com.st.stm32cube.ide.mcu.ide/META-INF/version/build_ref file not found, build reference will not be reported into properties + +!ENTRY org.eclipse.equinox.p2.metadata.repository 4 0 2024-02-17 01:43:40.969 +!MESSAGE Unexpected error loading extension: org.eclipse.equinox.p2.metadata.repository.simpleRepository +!STACK 0 +java.lang.NullPointerException + at org.osgi.util.tracker.ServiceTracker.(ServiceTracker.java:187) + at org.osgi.util.tracker.ServiceTracker.(ServiceTracker.java:250) + at org.eclipse.ecf.internal.provider.filetransfer.httpclient45.Activator.getHttpClientFactory(Activator.java:239) + at org.eclipse.ecf.internal.provider.filetransfer.httpclient45.Activator.getBrowseHttpClient(Activator.java:264) + at org.eclipse.ecf.provider.filetransfer.httpclient45.HttpClientBrowseFileTransferFactory$1.sendBrowseRequest(HttpClientBrowseFileTransferFactory.java:57) + at org.eclipse.ecf.provider.filetransfer.browse.MultiProtocolFileSystemBrowserAdapter.sendBrowseRequest(MultiProtocolFileSystemBrowserAdapter.java:95) + at org.eclipse.equinox.internal.p2.transport.ecf.FileInfoReader.sendBrowseRequest(FileInfoReader.java:184) + at org.eclipse.equinox.internal.p2.transport.ecf.FileInfoReader.getRemoteFiles(FileInfoReader.java:109) + at org.eclipse.equinox.internal.p2.transport.ecf.FileInfoReader.getRemoteFile(FileInfoReader.java:125) + at org.eclipse.equinox.internal.p2.transport.ecf.FileInfoReader.getLastModified(FileInfoReader.java:130) + at org.eclipse.equinox.internal.p2.transport.ecf.RepositoryTransport.getLastModified(RepositoryTransport.java:249) + at org.eclipse.equinox.internal.p2.repository.CacheManager.createCache(CacheManager.java:229) + at org.eclipse.equinox.internal.p2.metadata.repository.SimpleMetadataRepositoryFactory.getLocalFile(SimpleMetadataRepositoryFactory.java:69) + at org.eclipse.equinox.internal.p2.metadata.repository.SimpleMetadataRepositoryFactory.load(SimpleMetadataRepositoryFactory.java:89) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.factoryLoad(MetadataRepositoryManager.java:63) + at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:775) + at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:676) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:110) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:105) + at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository.addChild(CompositeMetadataRepository.java:171) + at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository.(CompositeMetadataRepository.java:113) + at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepositoryFactory.load(CompositeMetadataRepositoryFactory.java:124) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.factoryLoad(MetadataRepositoryManager.java:63) + at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:775) + at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:676) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:110) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:105) + at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository.addChild(CompositeMetadataRepository.java:171) + at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository.(CompositeMetadataRepository.java:113) + at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepositoryFactory.load(CompositeMetadataRepositoryFactory.java:124) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.factoryLoad(MetadataRepositoryManager.java:63) + at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:775) + at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:676) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:110) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:105) + at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository.addChild(CompositeMetadataRepository.java:171) + at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository.(CompositeMetadataRepository.java:113) + at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepositoryFactory.load(CompositeMetadataRepositoryFactory.java:124) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.factoryLoad(MetadataRepositoryManager.java:63) + at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:775) + at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:676) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:110) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:105) + at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker.getAvailableRepositories(UpdateChecker.java:152) + at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker.checkForUpdates(UpdateChecker.java:130) + at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker$UpdateCheckThread.run(UpdateChecker.java:78) +!SESSION 2024-02-17 01:43:41.324 ----------------------------------------------- +eclipse.buildId=Version 1.4.0 +java.version=1.8.0_252 +java.vendor=AdoptOpenJDK +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Command-line arguments: -os win32 -ws win32 -arch x86_64 -data G:\Embedded Systems\GP\GP_Git\Embeddedians + +!ENTRY com.st.stm32cube.ide.mcu.informationcenter 1 1 2024-02-17 01:43:45.620 +!MESSAGE Log4j initialized with config file G:\Embedded Systems\GP\GP_Git\Embeddedians\.metadata\.log4j.xml + +!ENTRY com.st.stm32cube.ide.mcu.ide 1 1 2024-02-17 01:43:50.185 +!MESSAGE Started RMI Server, listening on port 41337 + +!ENTRY com.st.stm32cube.ide.mcu.ide 4 4 2024-02-17 01:43:50.791 +!MESSAGE com.st.stm32cube.ide.mcu.ide/META-INF/version/build_ref file not found, build reference will not be reported into properties + +!ENTRY org.eclipse.equinox.p2.core 4 0 2024-02-17 01:44:05.836 +!MESSAGE Provisioning exception +!STACK 1 +org.eclipse.equinox.p2.core.ProvisionException: Error while reading from repository: http://sw-center.st.com/stm32cubeide/updatesite1/1.10.0/content.xml.xz. + at org.eclipse.equinox.internal.p2.repository.CacheManager.updateCache(CacheManager.java:430) + at org.eclipse.equinox.internal.p2.repository.CacheManager.createCacheFromFile(CacheManager.java:136) + at org.eclipse.equinox.internal.p2.metadata.repository.XZedSimpleMetadataRepositoryFactory.getLocalFile(XZedSimpleMetadataRepositoryFactory.java:60) + at org.eclipse.equinox.internal.p2.metadata.repository.XZedSimpleMetadataRepositoryFactory.load(XZedSimpleMetadataRepositoryFactory.java:80) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.factoryLoad(MetadataRepositoryManager.java:63) + at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:775) + at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:676) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:110) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:105) + at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository.addChild(CompositeMetadataRepository.java:171) + at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository.(CompositeMetadataRepository.java:113) + at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepositoryFactory.load(CompositeMetadataRepositoryFactory.java:124) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.factoryLoad(MetadataRepositoryManager.java:63) + at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:775) + at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:676) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:110) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:105) + at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker.getAvailableRepositories(UpdateChecker.java:152) + at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker.checkForUpdates(UpdateChecker.java:130) + at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker$UpdateCheckThread.run(UpdateChecker.java:78) +!SUBENTRY 1 org.eclipse.equinox.p2.transport.ecf 4 1002 2024-02-17 01:44:05.837 +!MESSAGE Error while reading from repository: http://sw-center.st.com/stm32cubeide/updatesite1/1.10.0/content.xml.xz. + +!ENTRY org.eclipse.equinox.p2.metadata.repository 4 1002 2024-02-17 01:44:05.838 +!MESSAGE Unable to read repository at http://sw-center.st.com/stm32cubeide/updatesite1. +!STACK 1 +org.eclipse.equinox.p2.core.ProvisionException: Error while reading from repository: http://sw-center.st.com/stm32cubeide/updatesite1/1.10.0/content.xml.xz. + at org.eclipse.equinox.internal.p2.repository.CacheManager.updateCache(CacheManager.java:430) + at org.eclipse.equinox.internal.p2.repository.CacheManager.createCacheFromFile(CacheManager.java:136) + at org.eclipse.equinox.internal.p2.metadata.repository.XZedSimpleMetadataRepositoryFactory.getLocalFile(XZedSimpleMetadataRepositoryFactory.java:60) + at org.eclipse.equinox.internal.p2.metadata.repository.XZedSimpleMetadataRepositoryFactory.load(XZedSimpleMetadataRepositoryFactory.java:80) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.factoryLoad(MetadataRepositoryManager.java:63) + at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:775) + at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:676) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:110) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:105) + at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository.addChild(CompositeMetadataRepository.java:171) + at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository.(CompositeMetadataRepository.java:113) + at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepositoryFactory.load(CompositeMetadataRepositoryFactory.java:124) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.factoryLoad(MetadataRepositoryManager.java:63) + at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:775) + at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:676) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:110) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:105) + at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker.getAvailableRepositories(UpdateChecker.java:152) + at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker.checkForUpdates(UpdateChecker.java:130) + at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker$UpdateCheckThread.run(UpdateChecker.java:78) +!SUBENTRY 1 org.eclipse.equinox.p2.transport.ecf 4 1002 2024-02-17 01:44:05.838 +!MESSAGE Error while reading from repository: http://sw-center.st.com/stm32cubeide/updatesite1/1.10.0/content.xml.xz. + +!ENTRY org.eclipse.equinox.p2.metadata.repository 4 0 2024-02-17 01:44:05.839 +!MESSAGE Unexpected error loading extension: org.eclipse.equinox.p2.metadata.repository.compositeRepository +!STACK 0 +java.lang.NullPointerException + at org.osgi.util.tracker.ServiceTracker.(ServiceTracker.java:187) + at org.osgi.util.tracker.ServiceTracker.(ServiceTracker.java:250) + at org.eclipse.ecf.internal.provider.filetransfer.httpclient45.Activator.getHttpClientFactory(Activator.java:239) + at org.eclipse.ecf.internal.provider.filetransfer.httpclient45.Activator.getBrowseHttpClient(Activator.java:264) + at org.eclipse.ecf.provider.filetransfer.httpclient45.HttpClientBrowseFileTransferFactory$1.sendBrowseRequest(HttpClientBrowseFileTransferFactory.java:57) + at org.eclipse.ecf.provider.filetransfer.browse.MultiProtocolFileSystemBrowserAdapter.sendBrowseRequest(MultiProtocolFileSystemBrowserAdapter.java:95) + at org.eclipse.equinox.internal.p2.transport.ecf.FileInfoReader.sendBrowseRequest(FileInfoReader.java:184) + at org.eclipse.equinox.internal.p2.transport.ecf.FileInfoReader.getRemoteFiles(FileInfoReader.java:109) + at org.eclipse.equinox.internal.p2.transport.ecf.FileInfoReader.getRemoteFile(FileInfoReader.java:125) + at org.eclipse.equinox.internal.p2.transport.ecf.FileInfoReader.getLastModified(FileInfoReader.java:130) + at org.eclipse.equinox.internal.p2.transport.ecf.RepositoryTransport.getLastModified(RepositoryTransport.java:249) + at org.eclipse.equinox.internal.p2.repository.CacheManager.createCache(CacheManager.java:229) + at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepositoryFactory.getLocalFile(CompositeMetadataRepositoryFactory.java:77) + at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepositoryFactory.load(CompositeMetadataRepositoryFactory.java:100) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.factoryLoad(MetadataRepositoryManager.java:63) + at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:775) + at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:676) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:110) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:105) + at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker.getAvailableRepositories(UpdateChecker.java:152) + at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker.checkForUpdates(UpdateChecker.java:130) + at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker$UpdateCheckThread.run(UpdateChecker.java:78) + +!ENTRY org.eclipse.equinox.p2.metadata.repository 4 0 2024-02-17 01:44:05.842 +!MESSAGE Unexpected error loading extension: org.eclipse.equinox.p2.metadata.repository.simpleRepository +!STACK 0 +java.lang.NullPointerException + at org.osgi.util.tracker.ServiceTracker.(ServiceTracker.java:187) + at org.osgi.util.tracker.ServiceTracker.(ServiceTracker.java:250) + at org.eclipse.ecf.internal.provider.filetransfer.httpclient45.Activator.getHttpClientFactory(Activator.java:239) + at org.eclipse.ecf.internal.provider.filetransfer.httpclient45.Activator.getBrowseHttpClient(Activator.java:264) + at org.eclipse.ecf.provider.filetransfer.httpclient45.HttpClientBrowseFileTransferFactory$1.sendBrowseRequest(HttpClientBrowseFileTransferFactory.java:57) + at org.eclipse.ecf.provider.filetransfer.browse.MultiProtocolFileSystemBrowserAdapter.sendBrowseRequest(MultiProtocolFileSystemBrowserAdapter.java:95) + at org.eclipse.equinox.internal.p2.transport.ecf.FileInfoReader.sendBrowseRequest(FileInfoReader.java:184) + at org.eclipse.equinox.internal.p2.transport.ecf.FileInfoReader.getRemoteFiles(FileInfoReader.java:109) + at org.eclipse.equinox.internal.p2.transport.ecf.FileInfoReader.getRemoteFile(FileInfoReader.java:125) + at org.eclipse.equinox.internal.p2.transport.ecf.FileInfoReader.getLastModified(FileInfoReader.java:130) + at org.eclipse.equinox.internal.p2.transport.ecf.RepositoryTransport.getLastModified(RepositoryTransport.java:249) + at org.eclipse.equinox.internal.p2.repository.CacheManager.createCache(CacheManager.java:229) + at org.eclipse.equinox.internal.p2.metadata.repository.SimpleMetadataRepositoryFactory.getLocalFile(SimpleMetadataRepositoryFactory.java:69) + at org.eclipse.equinox.internal.p2.metadata.repository.SimpleMetadataRepositoryFactory.load(SimpleMetadataRepositoryFactory.java:89) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.factoryLoad(MetadataRepositoryManager.java:63) + at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:775) + at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:676) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:110) + at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:105) + at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker.getAvailableRepositories(UpdateChecker.java:152) + at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker.checkForUpdates(UpdateChecker.java:130) + at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker$UpdateCheckThread.run(UpdateChecker.java:78) +!SESSION 2024-02-17 01:44:06.029 ----------------------------------------------- +eclipse.buildId=Version 1.4.0 +java.version=1.8.0_252 +java.vendor=AdoptOpenJDK +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Command-line arguments: -os win32 -ws win32 -arch x86_64 -data G:\Embedded Systems\GP\GP_Git\Embeddedians + +!ENTRY com.st.stm32cube.ide.mcu.informationcenter 1 1 2024-02-17 01:44:10.150 +!MESSAGE Log4j initialized with config file G:\Embedded Systems\GP\GP_Git\Embeddedians\.metadata\.log4j.xml + +!ENTRY com.st.stm32cube.ide.mcu.ide 1 1 2024-02-17 01:44:14.186 +!MESSAGE Started RMI Server, listening on port 41337 + +!ENTRY com.st.stm32cube.ide.mcu.ide 4 4 2024-02-17 01:44:14.796 +!MESSAGE com.st.stm32cube.ide.mcu.ide/META-INF/version/build_ref file not found, build reference will not be reported into properties + +!ENTRY org.eclipse.equinox.p2.transport.ecf 2 0 2024-02-17 01:44:57.749 +!MESSAGE Connection to http://sw-center.st.com/stm32cubeide/updatesite1/p2.index failed on Connect to sw-center.st.com:443 [sw-center.st.com/23.76.204.156, sw-center.st.com/23.76.204.147] failed: Connection timed out: connect. Retry attempt 0 started +!STACK 0 +org.apache.http.conn.HttpHostConnectException: Connect to sw-center.st.com:443 [sw-center.st.com/23.76.204.156, sw-center.st.com/23.76.204.147] failed: Connection timed out: connect + at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:159) + at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:373) + at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:394) + at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:237) + at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185) + at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) + at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) + at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) + at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) + at org.eclipse.ecf.provider.filetransfer.httpclient45.HttpClientRetrieveFileTransfer.performConnect(HttpClientRetrieveFileTransfer.java:1000) + at org.eclipse.ecf.provider.filetransfer.httpclient45.HttpClientRetrieveFileTransfer.access$0(HttpClientRetrieveFileTransfer.java:992) + at org.eclipse.ecf.provider.filetransfer.httpclient45.HttpClientRetrieveFileTransfer$1.performFileTransfer(HttpClientRetrieveFileTransfer.java:988) + at org.eclipse.ecf.filetransfer.FileTransferJob.run(FileTransferJob.java:74) + at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) +Caused by: java.net.ConnectException: Connection timed out: connect + at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) + at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) + at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) + at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) + at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) + at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) + at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) + at java.net.Socket.connect(Socket.java:607) + at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:339) + at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142) + ... 13 more + +!ENTRY org.eclipse.cdt.core 1 0 2024-02-17 01:45:02.243 +!MESSAGE Indexed 'AutoParkingCar' (22 sources, 97 headers) in 2.33 sec: 3,834 declarations; 6,800 references; 1 unresolved inclusions; 1 syntax errors; 3 unresolved names (0.028%) +!SESSION 2024-02-17 02:11:04.230 ----------------------------------------------- +eclipse.buildId=Version 1.4.0 +java.version=1.8.0_252 +java.vendor=AdoptOpenJDK +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Command-line arguments: -os win32 -ws win32 -arch x86_64 + +!ENTRY com.st.stm32cube.ide.mcu.informationcenter 1 1 2024-02-17 02:11:12.866 +!MESSAGE Log4j initialized with config file G:\Embedded Systems\GP\GP_Git\Embeddedians\.metadata\.log4j.xml + +!ENTRY com.st.stm32cube.ide.mcu.ide 1 1 2024-02-17 02:11:18.185 +!MESSAGE Started RMI Server, listening on port 41337 + +!ENTRY com.st.stm32cube.ide.mcu.ide 4 4 2024-02-17 02:11:18.775 +!MESSAGE com.st.stm32cube.ide.mcu.ide/META-INF/version/build_ref file not found, build reference will not be reported into properties + +!ENTRY org.eclipse.ui 4 0 2024-02-17 04:21:25.727 +!MESSAGE Unhandled event loop exception +!STACK 0 +java.lang.IllegalArgumentException: Argument not valid + at org.eclipse.swt.SWT.error(SWT.java:4692) + at org.eclipse.swt.SWT.error(SWT.java:4626) + at org.eclipse.swt.SWT.error(SWT.java:4597) + at org.eclipse.swt.graphics.GC.setFont(GC.java:4322) + at org.eclipse.swt.custom.CTabFolderRenderer.computeSize(CTabFolderRenderer.java:352) + at org.eclipse.e4.ui.workbench.renderers.swt.CTabRendering.computeSize(CTabRendering.java:201) + at org.eclipse.swt.custom.CTabFolder.setItemSize(CTabFolder.java:2845) + at org.eclipse.swt.custom.CTabFolder.updateItems(CTabFolder.java:3791) + at org.eclipse.swt.custom.CTabFolder.updateItems(CTabFolder.java:3724) + at org.eclipse.swt.custom.CTabFolder.onResize(CTabFolder.java:2116) + at org.eclipse.swt.custom.CTabFolder.lambda$0(CTabFolder.java:337) + at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89) + at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4173) + at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057) + at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1081) + at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) + at org.eclipse.swt.widgets.Control.sendResize(Control.java:3062) + at org.eclipse.swt.widgets.Composite.sendResize(Composite.java:1035) + at org.eclipse.swt.widgets.Composite.setBoundsInPixels(Composite.java:1085) + at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3231) + at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3227) + at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3303) + at org.eclipse.swt.widgets.Control.setBounds(Control.java:3299) + at org.eclipse.e4.ui.workbench.renderers.swt.SashLayout.setRectangle(SashLayout.java:286) + at org.eclipse.e4.ui.workbench.renderers.swt.SashLayout.tileSubNodes(SashLayout.java:231) + at org.eclipse.e4.ui.workbench.renderers.swt.SashLayout.tileSubNodes(SashLayout.java:274) + at org.eclipse.e4.ui.workbench.renderers.swt.SashLayout.tileSubNodes(SashLayout.java:274) + at org.eclipse.e4.ui.workbench.renderers.swt.SashLayout.tileSubNodes(SashLayout.java:274) + at org.eclipse.e4.ui.workbench.renderers.swt.SashLayout.layout(SashLayout.java:148) + at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1361) + at org.eclipse.swt.widgets.Composite.sendResize(Composite.java:1039) + at org.eclipse.swt.widgets.Composite.setBoundsInPixels(Composite.java:1085) + at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3231) + at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3227) + at org.eclipse.swt.widgets.Control.setBounds(Control.java:3222) + at org.eclipse.swt.layout.FillLayout.layout(FillLayout.java:207) + at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1361) + at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1763) + at org.eclipse.swt.widgets.Control.windowProc(Control.java:4834) + at org.eclipse.swt.widgets.Display.windowProc(Display.java:4812) + at org.eclipse.swt.internal.win32.OS.DefWindowProc(Native Method) + at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:91) + at org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:5665) + at org.eclipse.swt.widgets.Control.windowProc(Control.java:4847) + at org.eclipse.swt.widgets.Display.windowProc(Display.java:4812) + at org.eclipse.swt.internal.win32.OS.SetWindowPos(Native Method) + at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3270) + at org.eclipse.swt.widgets.Composite.setBoundsInPixels(Composite.java:1079) + at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3231) + at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3227) + at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3303) + at org.eclipse.swt.widgets.Control.setBounds(Control.java:3299) + at org.eclipse.swt.custom.StackLayout.layout(StackLayout.java:126) + at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1361) + at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1763) + at org.eclipse.swt.widgets.Control.windowProc(Control.java:4834) + at org.eclipse.swt.widgets.Display.windowProc(Display.java:4812) + at org.eclipse.swt.internal.win32.OS.DefWindowProc(Native Method) + at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:91) + at org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:5665) + at org.eclipse.swt.widgets.Control.windowProc(Control.java:4847) + at org.eclipse.swt.widgets.Display.windowProc(Display.java:4820) + at org.eclipse.swt.internal.win32.OS.EndDeferWindowPos(Native Method) + at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:1009) + at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:975) + at org.eclipse.swt.widgets.Composite.setResizeChildren(Composite.java:1187) + at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1767) + at org.eclipse.swt.widgets.Control.windowProc(Control.java:4834) + at org.eclipse.swt.widgets.Display.windowProc(Display.java:4812) + at org.eclipse.swt.internal.win32.OS.DefWindowProc(Native Method) + at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:91) + at org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:5665) + at org.eclipse.swt.widgets.Control.windowProc(Control.java:4847) + at org.eclipse.swt.widgets.Display.windowProc(Display.java:4812) + at org.eclipse.swt.internal.win32.OS.SetWindowPos(Native Method) + at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3270) + at org.eclipse.swt.widgets.Composite.setBoundsInPixels(Composite.java:1079) + at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3231) + at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3227) + at org.eclipse.swt.widgets.Control.setBounds(Control.java:3222) + at org.eclipse.swt.layout.FillLayout.layout(FillLayout.java:207) + at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1361) + at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1763) + at org.eclipse.swt.widgets.Control.windowProc(Control.java:4834) + at org.eclipse.swt.widgets.Display.windowProc(Display.java:4812) + at org.eclipse.swt.internal.win32.OS.DefWindowProc(Native Method) + at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:91) + at org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:5665) + at org.eclipse.swt.widgets.Control.windowProc(Control.java:4847) + at org.eclipse.swt.widgets.Display.windowProc(Display.java:4820) + at org.eclipse.swt.internal.win32.OS.EndDeferWindowPos(Native Method) + at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:1009) + at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:975) + at org.eclipse.swt.widgets.Composite.setResizeChildren(Composite.java:1187) + at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1767) + at org.eclipse.swt.widgets.Canvas.WM_SIZE(Canvas.java:452) + at org.eclipse.swt.widgets.Decorations.WM_SIZE(Decorations.java:1667) + at org.eclipse.swt.widgets.Control.windowProc(Control.java:4834) + at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:348) + at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1501) + at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2138) + at org.eclipse.swt.widgets.Display.windowProc(Display.java:4820) + at org.eclipse.swt.internal.win32.OS.DefWindowProc(Native Method) + at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:508) + at org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:5665) + at org.eclipse.swt.widgets.Canvas.WM_WINDOWPOSCHANGED(Canvas.java:459) + at org.eclipse.swt.widgets.Control.windowProc(Control.java:4847) + at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:348) + at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1501) + at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2138) + at org.eclipse.swt.widgets.Display.windowProc(Display.java:4812) + at org.eclipse.swt.internal.win32.OS.SetMenu(Native Method) + at org.eclipse.swt.widgets.Decorations.setMenuBar(Decorations.java:1058) + at org.e \ No newline at end of file diff --git a/.metadata/.log4j.xml b/.metadata/.log4j.xml new file mode 100644 index 0000000..425c328 --- /dev/null +++ b/.metadata/.log4j.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.metadata/.plugins/com.st.stm32cube.ide.mcu.informationcenter/1.4.0.202007081208 b/.metadata/.plugins/com.st.stm32cube.ide.mcu.informationcenter/1.4.0.202007081208 new file mode 100644 index 0000000..e69de29 diff --git a/.metadata/.plugins/org.eclipse.cdt.core/.log b/.metadata/.plugins/org.eclipse.cdt.core/.log new file mode 100644 index 0000000..59312b3 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.cdt.core/.log @@ -0,0 +1,3 @@ +*** SESSION Feb 17, 2024 01:43:05.63 ------------------------------------------- +*** SESSION Feb 17, 2024 01:43:45.83 ------------------------------------------- +*** SESSION Feb 17, 2024 01:44:10.34 ------------------------------------------- diff --git a/.metadata/.plugins/org.eclipse.cdt.core/AutoParkingCar.1708127098218.pdom b/.metadata/.plugins/org.eclipse.cdt.core/AutoParkingCar.1708127098218.pdom new file mode 100644 index 0000000000000000000000000000000000000000..010aad1960aabdfb7c6dba1b505fd00c69055052 GIT binary patch literal 741376 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
      tU_ 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 G}O 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c b/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c @@ -0,0 +1 @@ + diff --git a/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp b/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp @@ -0,0 +1 @@ + diff --git a/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml b/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml new file mode 100644 index 0000000..1cb58a4 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.cdt.make.ui/dialog_settings.xml @@ -0,0 +1,5 @@ + +

      +
      +
      +
      diff --git a/.metadata/.plugins/org.eclipse.cdt.managedbuilder.core/spec.c b/.metadata/.plugins/org.eclipse.cdt.managedbuilder.core/spec.c new file mode 100644 index 0000000..e69de29 diff --git a/.metadata/.plugins/org.eclipse.cdt.ui/AutoParkingCar.build.log b/.metadata/.plugins/org.eclipse.cdt.ui/AutoParkingCar.build.log new file mode 100644 index 0000000..e34b3f5 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.cdt.ui/AutoParkingCar.build.log @@ -0,0 +1,134 @@ +01:45:35 **** Build of configuration Debug for project AutoParkingCar **** +make -j8 all +arm-none-eabi-gcc -mcpu=cortex-m4 -g3 -c -x assembler-with-cpp -MMD -MP -MF"Startup/startup_stm32f401rctx.d" -MT"Startup/startup_stm32f401rctx.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Startup/startup_stm32f401rctx.o" "../Startup/startup_stm32f401rctx.s" +arm-none-eabi-gcc "../Src/MCAL/MUART/MUSART_Program.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MUART/MUSART_Program.d" -MT"Src/MCAL/MUART/MUSART_Program.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/MCAL/MUART/MUSART_Program.o" +arm-none-eabi-gcc "../Src/MCAL/MTIMER/MTIMER_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MTIMER/MTIMER_Prog.d" -MT"Src/MCAL/MTIMER/MTIMER_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/MCAL/MTIMER/MTIMER_Prog.o" +arm-none-eabi-gcc "../Src/MCAL/MSTK/MSYSTICK_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MSTK/MSYSTICK_Prog.d" -MT"Src/MCAL/MSTK/MSYSTICK_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/MCAL/MSTK/MSYSTICK_Prog.o" +arm-none-eabi-gcc "../Src/MCAL/MSPI/MSPI_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MSPI/MSPI_Prog.d" -MT"Src/MCAL/MSPI/MSPI_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/MCAL/MSPI/MSPI_Prog.o" +arm-none-eabi-gcc "../Src/MCAL/MRCC/MRCC_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MRCC/MRCC_Prog.d" -MT"Src/MCAL/MRCC/MRCC_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/MCAL/MRCC/MRCC_Prog.o" +arm-none-eabi-gcc "../Src/MCAL/MNVIC/MNVIC_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MNVIC/MNVIC_Prog.d" -MT"Src/MCAL/MNVIC/MNVIC_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/MCAL/MNVIC/MNVIC_Prog.o" +arm-none-eabi-gcc "../Src/MCAL/MIWDT/MIWDT_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MIWDT/MIWDT_Prog.d" -MT"Src/MCAL/MIWDT/MIWDT_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/MCAL/MIWDT/MIWDT_Prog.o" +../Src/MCAL/MTIMER/MTIMER_Prog.c: In function 'GET_TIMER': +../Src/MCAL/MTIMER/MTIMER_Prog.c:19:26: warning: initialization makes pointer from integer without a cast [-Wint-conversion] + TIM2_5_MemMap_t* TIMx = (u32)TIM2 + Timer_Offset[Copy_u8TimerNum-1]; + ^ +arm-none-eabi-gcc "../Src/MCAL/MI2C/MI2C_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MI2C/MI2C_Prog.d" -MT"Src/MCAL/MI2C/MI2C_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/MCAL/MI2C/MI2C_Prog.o" +arm-none-eabi-gcc "../Src/MCAL/MGPIO/MGPIO_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MGPIO/MGPIO_Prog.d" -MT"Src/MCAL/MGPIO/MGPIO_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/MCAL/MGPIO/MGPIO_Prog.o" +arm-none-eabi-gcc "../Src/MCAL/MEXTI/MEXTI_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MEXTI/MEXTI_Prog.d" -MT"Src/MCAL/MEXTI/MEXTI_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/MCAL/MEXTI/MEXTI_Prog.o" +arm-none-eabi-gcc "../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.d" -MT"Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o" +arm-none-eabi-gcc "../Src/HAL/HSERVO/HSERVO_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/HAL/HSERVO/HSERVO_Prog.d" -MT"Src/HAL/HSERVO/HSERVO_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/HAL/HSERVO/HSERVO_Prog.o" +arm-none-eabi-gcc "../Src/HAL/HMOTOR/HMOTOR.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/HAL/HMOTOR/HMOTOR.d" -MT"Src/HAL/HMOTOR/HMOTOR.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/HAL/HMOTOR/HMOTOR.o" +arm-none-eabi-gcc "../Src/HAL/HCOMPASS/HAL_COMPASS.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/HAL/HCOMPASS/HAL_COMPASS.d" -MT"Src/HAL/HCOMPASS/HAL_COMPASS.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/HAL/HCOMPASS/HAL_COMPASS.o" +arm-none-eabi-gcc "../Src/Application/Car_Control.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/Application/Car_Control.d" -MT"Src/Application/Car_Control.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/Application/Car_Control.o" +../Src/HAL/HMOTOR/HMOTOR.c: In function 'HAL_MOTOR_Init': +../Src/HAL/HMOTOR/HMOTOR.c:42:2: warning: implicit declaration of function 'MNVIC_vEnableInterrupt'; did you mean 'MEXTI_vEnableInterrupt'? [-Wimplicit-function-declaration] + MNVIC_vEnableInterrupt(NVIC_EXTIx); + ^~~~~~~~~~~~~~~~~~~~~~ + MEXTI_vEnableInterrupt +arm-none-eabi-gcc "../Src/Application/Collision_Avoidance.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/Application/Collision_Avoidance.d" -MT"Src/Application/Collision_Avoidance.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/Application/Collision_Avoidance.o" +arm-none-eabi-gcc "../Src/Application/Motion_Planing.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/Application/Motion_Planing.d" -MT"Src/Application/Motion_Planing.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/Application/Motion_Planing.o" +In file included from ../Src/Application/Inc/CAR_CONTROL.h:5:0, + from ../Src/Application/Car_Control.c:1: +../Src/Application/Inc/../../HAL/HSERVO/HSERVO_Int.h:51:55: error: unknown type name 'Enum_TIMER_NUM'; did you mean 'Enum_SERVO_NUM'? + void HSERVO_vServoInit(Enum_SERVO_NUM Copy_u8ServoNum,Enum_TIMER_NUM Copy_u8TimerNum,u8 Copy_u8ChannelNum); + ^~~~~~~~~~~~~~ + Enum_SERVO_NUM +../Src/Application/Car_Control.c: In function 'CAR_CONTROL_Move': +../Src/Application/Car_Control.c:18:6: error: too few arguments to function 'HAL_MOTOR_MOVE' + HAL_MOTOR_MOVE(direction, speed); + ^~~~~~~~~~~~~~ +In file included from ../Src/Application/Inc/CAR_CONTROL.h:4:0, + from ../Src/Application/Car_Control.c:1: +../Src/Application/Inc/../../HAL/HMOTOR/HMOTOR.h:18:6: note: declared here + void HAL_MOTOR_MOVE(u8 DIRCTION ,u8 SPEED ,f32 DISTANCE_cm_); + ^~~~~~~~~~~~~~ +../Src/Application/Car_Control.c: In function 'CAR_CONTROL_Steer': +../Src/Application/Car_Control.c:40:36: warning: statement with no effect [-Wunused-value] + for (u8 i = 5; i < angle; i+5) + ~^~ +../Src/Application/Car_Control.c:43:14: error: too many arguments to function 'HSERVO_vServoDeg' + HSERVO_vServoDeg(angle,angle,angle); + ^~~~~~~~~~~~~~~~ +In file included from ../Src/Application/Inc/CAR_CONTROL.h:5:0, + from ../Src/Application/Car_Control.c:1: +../Src/Application/Inc/../../HAL/HSERVO/HSERVO_Int.h:71:6: note: declared here + void HSERVO_vServoDeg(Enum_SERVO_NUM Copy_u8ServoNum,s8 Copy_s8Deg); + ^~~~~~~~~~~~~~~~ +../Src/Application/Car_Control.c:52:37: warning: statement with no effect [-Wunused-value] + for (u8 i = -5; i > angle; i-5) + ~^~ +../Src/Application/Car_Control.c:55:14: error: too many arguments to function 'HSERVO_vServoDeg' + HSERVO_vServoDeg(angle,angle,angle); + ^~~~~~~~~~~~~~~~ +In file included from ../Src/Application/Inc/CAR_CONTROL.h:5:0, + from ../Src/Application/Car_Control.c:1: +../Src/Application/Inc/../../HAL/HSERVO/HSERVO_Int.h:71:6: note: declared here + void HSERVO_vServoDeg(Enum_SERVO_NUM Copy_u8ServoNum,s8 Copy_s8Deg); + ^~~~~~~~~~~~~~~~ +arm-none-eabi-gcc "../Src/Application/Path_Tracking.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/Application/Path_Tracking.d" -MT"Src/Application/Path_Tracking.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/Application/Path_Tracking.o" +make: *** [Src/Application/subdir.mk:30: Src/Application/Car_Control.o] Error 1 +make: *** Waiting for unfinished jobs.... +../Src/Application/Motion_Planing.c: In function 'Scan_Process': +../Src/Application/Motion_Planing.c:74:23: error: incompatible type for argument 1 of 'HULTRA_vGetDistance' + HULTRA_vGetDistance(&Distance1, TIMER1, CH2); + ^ +In file included from ../Src/Application/Motion_Planing.c:5:0: +../Src/Application/../HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h:102:6: note: expected 'Enum_ULTRA_SONIC_NUM {aka enum }' but argument is of type 'f64 * {aka double *}' + void HULTRA_vGetDistance(Enum_ULTRA_SONIC_NUM Copy_u8Ultra_NUM,f64* Copy_f64Distance); + ^~~~~~~~~~~~~~~~~~~ +../Src/Application/Motion_Planing.c:74:35: warning: passing argument 2 of 'HULTRA_vGetDistance' makes pointer from integer without a cast [-Wint-conversion] + HULTRA_vGetDistance(&Distance1, TIMER1, CH2); + ^~~~~~ +In file included from ../Src/Application/Motion_Planing.c:5:0: +../Src/Application/../HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h:102:6: note: expected 'f64 * {aka double *}' but argument is of type 'int' + void HULTRA_vGetDistance(Enum_ULTRA_SONIC_NUM Copy_u8Ultra_NUM,f64* Copy_f64Distance); + ^~~~~~~~~~~~~~~~~~~ +../Src/Application/Motion_Planing.c:74:3: error: too many arguments to function 'HULTRA_vGetDistance' + HULTRA_vGetDistance(&Distance1, TIMER1, CH2); + ^~~~~~~~~~~~~~~~~~~ +In file included from ../Src/Application/Motion_Planing.c:5:0: +../Src/Application/../HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h:102:6: note: declared here + void HULTRA_vGetDistance(Enum_ULTRA_SONIC_NUM Copy_u8Ultra_NUM,f64* Copy_f64Distance); + ^~~~~~~~~~~~~~~~~~~ +../Src/Application/Motion_Planing.c: In function 'Scan': +../Src/Application/Motion_Planing.c:107:23: error: incompatible type for argument 1 of 'HULTRA_vGetDistance' + HULTRA_vGetDistance(&Distance1, TIMER1, CH2); + ^ +In file included from ../Src/Application/Motion_Planing.c:5:0: +../Src/Application/../HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h:102:6: note: expected 'Enum_ULTRA_SONIC_NUM {aka enum }' but argument is of type 'f64 * {aka double *}' + void HULTRA_vGetDistance(Enum_ULTRA_SONIC_NUM Copy_u8Ultra_NUM,f64* Copy_f64Distance); + ^~~~~~~~~~~~~~~~~~~ +../Src/Application/Motion_Planing.c:107:35: warning: passing argument 2 of 'HULTRA_vGetDistance' makes pointer from integer without a cast [-Wint-conversion] + HULTRA_vGetDistance(&Distance1, TIMER1, CH2); + ^~~~~~ +In file included from ../Src/Application/Motion_Planing.c:5:0: +../Src/Application/../HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h:102:6: note: expected 'f64 * {aka double *}' but argument is of type 'int' + void HULTRA_vGetDistance(Enum_ULTRA_SONIC_NUM Copy_u8Ultra_NUM,f64* Copy_f64Distance); + ^~~~~~~~~~~~~~~~~~~ +../Src/Application/Motion_Planing.c:107:3: error: too many arguments to function 'HULTRA_vGetDistance' + HULTRA_vGetDistance(&Distance1, TIMER1, CH2); + ^~~~~~~~~~~~~~~~~~~ +In file included from ../Src/Application/Motion_Planing.c:5:0: +../Src/Application/../HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h:102:6: note: declared here + void HULTRA_vGetDistance(Enum_ULTRA_SONIC_NUM Copy_u8Ultra_NUM,f64* Copy_f64Distance); + ^~~~~~~~~~~~~~~~~~~ +make: *** [Src/Application/subdir.mk:34: Src/Application/Motion_Planing.o] Error 1 +../Src/Application/Path_Tracking.c: In function 'PT_TrackThePath': +../Src/Application/Path_Tracking.c:52:10: warning: implicit declaration of function 'Get_Angle_of_slope'; did you mean 'LOC_GetAngleofslope'? [-Wimplicit-function-declaration] + angle = Get_Angle_of_slope(current_point, next_point); + ^~~~~~~~~~~~~~~~~~ + LOC_GetAngleofslope +../Src/Application/Path_Tracking.c:47:17: warning: variable 'angle' set but not used [-Wunused-but-set-variable] + f32 distance , angle ; + ^~~~~ +../Src/Application/Path_Tracking.c:47:6: warning: variable 'distance' set but not used [-Wunused-but-set-variable] + f32 distance , angle ; + ^~~~~~~~ +At top level: +../Src/Application/Path_Tracking.c:33:11: warning: 'LOC_GetAngleofslope' defined but not used [-Wunused-function] + static s8 LOC_GetAngleofslope(Point_t point1 ,Point_t point2){ + ^~~~~~~~~~~~~~~~~~~ +"make -j8 all" terminated with exit code 2. Build might be incomplete. + +01:45:37 Build Failed. 11 errors, 10 warnings. (took 1s.793ms) + diff --git a/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml b/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml new file mode 100644 index 0000000..8e47957 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.cdt.ui/dialog_settings.xml @@ -0,0 +1,7 @@ + +
      +
      +
      +
      +
      +
      diff --git a/.metadata/.plugins/org.eclipse.cdt.ui/global-build.log b/.metadata/.plugins/org.eclipse.cdt.ui/global-build.log new file mode 100644 index 0000000..e6fc750 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.cdt.ui/global-build.log @@ -0,0 +1,135 @@ +01:45:34 **** Clean-only build of configuration Debug for project AutoParkingCar **** +make -j8 clean +rm -rf * + +01:45:35 **** Build of configuration Debug for project AutoParkingCar **** +make -j8 all +arm-none-eabi-gcc -mcpu=cortex-m4 -g3 -c -x assembler-with-cpp -MMD -MP -MF"Startup/startup_stm32f401rctx.d" -MT"Startup/startup_stm32f401rctx.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Startup/startup_stm32f401rctx.o" "../Startup/startup_stm32f401rctx.s" +arm-none-eabi-gcc "../Src/MCAL/MUART/MUSART_Program.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MUART/MUSART_Program.d" -MT"Src/MCAL/MUART/MUSART_Program.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/MCAL/MUART/MUSART_Program.o" +arm-none-eabi-gcc "../Src/MCAL/MTIMER/MTIMER_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MTIMER/MTIMER_Prog.d" -MT"Src/MCAL/MTIMER/MTIMER_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/MCAL/MTIMER/MTIMER_Prog.o" +arm-none-eabi-gcc "../Src/MCAL/MSTK/MSYSTICK_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MSTK/MSYSTICK_Prog.d" -MT"Src/MCAL/MSTK/MSYSTICK_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/MCAL/MSTK/MSYSTICK_Prog.o" +arm-none-eabi-gcc "../Src/MCAL/MSPI/MSPI_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MSPI/MSPI_Prog.d" -MT"Src/MCAL/MSPI/MSPI_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/MCAL/MSPI/MSPI_Prog.o" +arm-none-eabi-gcc "../Src/MCAL/MRCC/MRCC_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MRCC/MRCC_Prog.d" -MT"Src/MCAL/MRCC/MRCC_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/MCAL/MRCC/MRCC_Prog.o" +arm-none-eabi-gcc "../Src/MCAL/MNVIC/MNVIC_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MNVIC/MNVIC_Prog.d" -MT"Src/MCAL/MNVIC/MNVIC_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/MCAL/MNVIC/MNVIC_Prog.o" +arm-none-eabi-gcc "../Src/MCAL/MIWDT/MIWDT_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MIWDT/MIWDT_Prog.d" -MT"Src/MCAL/MIWDT/MIWDT_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/MCAL/MIWDT/MIWDT_Prog.o" +../Src/MCAL/MTIMER/MTIMER_Prog.c: In function 'GET_TIMER': +../Src/MCAL/MTIMER/MTIMER_Prog.c:19:26: warning: initialization makes pointer from integer without a cast [-Wint-conversion] + TIM2_5_MemMap_t* TIMx = (u32)TIM2 + Timer_Offset[Copy_u8TimerNum-1]; + ^ +arm-none-eabi-gcc "../Src/MCAL/MI2C/MI2C_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MI2C/MI2C_Prog.d" -MT"Src/MCAL/MI2C/MI2C_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/MCAL/MI2C/MI2C_Prog.o" +arm-none-eabi-gcc "../Src/MCAL/MGPIO/MGPIO_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MGPIO/MGPIO_Prog.d" -MT"Src/MCAL/MGPIO/MGPIO_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/MCAL/MGPIO/MGPIO_Prog.o" +arm-none-eabi-gcc "../Src/MCAL/MEXTI/MEXTI_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/MCAL/MEXTI/MEXTI_Prog.d" -MT"Src/MCAL/MEXTI/MEXTI_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/MCAL/MEXTI/MEXTI_Prog.o" +arm-none-eabi-gcc "../Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.d" -MT"Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/HAL/HULTRA_SONIC/HULTRA_SONIC_Prog.o" +arm-none-eabi-gcc "../Src/HAL/HSERVO/HSERVO_Prog.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/HAL/HSERVO/HSERVO_Prog.d" -MT"Src/HAL/HSERVO/HSERVO_Prog.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/HAL/HSERVO/HSERVO_Prog.o" +arm-none-eabi-gcc "../Src/HAL/HMOTOR/HMOTOR.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/HAL/HMOTOR/HMOTOR.d" -MT"Src/HAL/HMOTOR/HMOTOR.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/HAL/HMOTOR/HMOTOR.o" +arm-none-eabi-gcc "../Src/HAL/HCOMPASS/HAL_COMPASS.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/HAL/HCOMPASS/HAL_COMPASS.d" -MT"Src/HAL/HCOMPASS/HAL_COMPASS.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/HAL/HCOMPASS/HAL_COMPASS.o" +arm-none-eabi-gcc "../Src/Application/Car_Control.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/Application/Car_Control.d" -MT"Src/Application/Car_Control.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/Application/Car_Control.o" +../Src/HAL/HMOTOR/HMOTOR.c: In function 'HAL_MOTOR_Init': +../Src/HAL/HMOTOR/HMOTOR.c:42:2: warning: implicit declaration of function 'MNVIC_vEnableInterrupt'; did you mean 'MEXTI_vEnableInterrupt'? [-Wimplicit-function-declaration] + MNVIC_vEnableInterrupt(NVIC_EXTIx); + ^~~~~~~~~~~~~~~~~~~~~~ + MEXTI_vEnableInterrupt +arm-none-eabi-gcc "../Src/Application/Collision_Avoidance.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/Application/Collision_Avoidance.d" -MT"Src/Application/Collision_Avoidance.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/Application/Collision_Avoidance.o" +arm-none-eabi-gcc "../Src/Application/Motion_Planing.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/Application/Motion_Planing.d" -MT"Src/Application/Motion_Planing.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/Application/Motion_Planing.o" +In file included from ../Src/Application/Inc/CAR_CONTROL.h:5:0, + from ../Src/Application/Car_Control.c:1: +../Src/Application/Inc/../../HAL/HSERVO/HSERVO_Int.h:51:55: error: unknown type name 'Enum_TIMER_NUM'; did you mean 'Enum_SERVO_NUM'? + void HSERVO_vServoInit(Enum_SERVO_NUM Copy_u8ServoNum,Enum_TIMER_NUM Copy_u8TimerNum,u8 Copy_u8ChannelNum); + ^~~~~~~~~~~~~~ + Enum_SERVO_NUM +../Src/Application/Car_Control.c: In function 'CAR_CONTROL_Move': +../Src/Application/Car_Control.c:18:6: error: too few arguments to function 'HAL_MOTOR_MOVE' + HAL_MOTOR_MOVE(direction, speed); + ^~~~~~~~~~~~~~ +In file included from ../Src/Application/Inc/CAR_CONTROL.h:4:0, + from ../Src/Application/Car_Control.c:1: +../Src/Application/Inc/../../HAL/HMOTOR/HMOTOR.h:18:6: note: declared here + void HAL_MOTOR_MOVE(u8 DIRCTION ,u8 SPEED ,f32 DISTANCE_cm_); + ^~~~~~~~~~~~~~ +../Src/Application/Car_Control.c: In function 'CAR_CONTROL_Steer': +../Src/Application/Car_Control.c:40:36: warning: statement with no effect [-Wunused-value] + for (u8 i = 5; i < angle; i+5) + ~^~ +../Src/Application/Car_Control.c:43:14: error: too many arguments to function 'HSERVO_vServoDeg' + HSERVO_vServoDeg(angle,angle,angle); + ^~~~~~~~~~~~~~~~ +In file included from ../Src/Application/Inc/CAR_CONTROL.h:5:0, + from ../Src/Application/Car_Control.c:1: +../Src/Application/Inc/../../HAL/HSERVO/HSERVO_Int.h:71:6: note: declared here + void HSERVO_vServoDeg(Enum_SERVO_NUM Copy_u8ServoNum,s8 Copy_s8Deg); + ^~~~~~~~~~~~~~~~ +../Src/Application/Car_Control.c:52:37: warning: statement with no effect [-Wunused-value] + for (u8 i = -5; i > angle; i-5) + ~^~ +../Src/Application/Car_Control.c:55:14: error: too many arguments to function 'HSERVO_vServoDeg' + HSERVO_vServoDeg(angle,angle,angle); + ^~~~~~~~~~~~~~~~ +In file included from ../Src/Application/Inc/CAR_CONTROL.h:5:0, + from ../Src/Application/Car_Control.c:1: +../Src/Application/Inc/../../HAL/HSERVO/HSERVO_Int.h:71:6: note: declared here + void HSERVO_vServoDeg(Enum_SERVO_NUM Copy_u8ServoNum,s8 Copy_s8Deg); + ^~~~~~~~~~~~~~~~ +arm-none-eabi-gcc "../Src/Application/Path_Tracking.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32 -DSTM32F4 -DSTM32F401RCTx -DDEBUG -c -I../Inc -I../Inc/STM32F4xx_HAL_Driver/Inc/Legacy -I../Inc/STM32F4xx_HAL_Driver/Inc -I../Inc/CMSIS/Device/ST/STM32F4xx/Include -I../Inc/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fstack-usage -MMD -MP -MF"Src/Application/Path_Tracking.d" -MT"Src/Application/Path_Tracking.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Src/Application/Path_Tracking.o" +make: *** [Src/Application/subdir.mk:30: Src/Application/Car_Control.o] Error 1 +make: *** Waiting for unfinished jobs.... +../Src/Application/Motion_Planing.c: In function 'Scan_Process': +../Src/Application/Motion_Planing.c:74:23: error: incompatible type for argument 1 of 'HULTRA_vGetDistance' + HULTRA_vGetDistance(&Distance1, TIMER1, CH2); + ^ +In file included from ../Src/Application/Motion_Planing.c:5:0: +../Src/Application/../HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h:102:6: note: expected 'Enum_ULTRA_SONIC_NUM {aka enum }' but argument is of type 'f64 * {aka double *}' + void HULTRA_vGetDistance(Enum_ULTRA_SONIC_NUM Copy_u8Ultra_NUM,f64* Copy_f64Distance); + ^~~~~~~~~~~~~~~~~~~ +../Src/Application/Motion_Planing.c:74:35: warning: passing argument 2 of 'HULTRA_vGetDistance' makes pointer from integer without a cast [-Wint-conversion] + HULTRA_vGetDistance(&Distance1, TIMER1, CH2); + ^~~~~~ +In file included from ../Src/Application/Motion_Planing.c:5:0: +../Src/Application/../HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h:102:6: note: expected 'f64 * {aka double *}' but argument is of type 'int' + void HULTRA_vGetDistance(Enum_ULTRA_SONIC_NUM Copy_u8Ultra_NUM,f64* Copy_f64Distance); + ^~~~~~~~~~~~~~~~~~~ +../Src/Application/Motion_Planing.c:74:3: error: too many arguments to function 'HULTRA_vGetDistance' + HULTRA_vGetDistance(&Distance1, TIMER1, CH2); + ^~~~~~~~~~~~~~~~~~~ +In file included from ../Src/Application/Motion_Planing.c:5:0: +../Src/Application/../HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h:102:6: note: declared here + void HULTRA_vGetDistance(Enum_ULTRA_SONIC_NUM Copy_u8Ultra_NUM,f64* Copy_f64Distance); + ^~~~~~~~~~~~~~~~~~~ +../Src/Application/Motion_Planing.c: In function 'Scan': +../Src/Application/Motion_Planing.c:107:23: error: incompatible type for argument 1 of 'HULTRA_vGetDistance' + HULTRA_vGetDistance(&Distance1, TIMER1, CH2); + ^ +In file included from ../Src/Application/Motion_Planing.c:5:0: +../Src/Application/../HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h:102:6: note: expected 'Enum_ULTRA_SONIC_NUM {aka enum }' but argument is of type 'f64 * {aka double *}' + void HULTRA_vGetDistance(Enum_ULTRA_SONIC_NUM Copy_u8Ultra_NUM,f64* Copy_f64Distance); + ^~~~~~~~~~~~~~~~~~~ +../Src/Application/Motion_Planing.c:107:35: warning: passing argument 2 of 'HULTRA_vGetDistance' makes pointer from integer without a cast [-Wint-conversion] + HULTRA_vGetDistance(&Distance1, TIMER1, CH2); + ^~~~~~ +In file included from ../Src/Application/Motion_Planing.c:5:0: +../Src/Application/../HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h:102:6: note: expected 'f64 * {aka double *}' but argument is of type 'int' + void HULTRA_vGetDistance(Enum_ULTRA_SONIC_NUM Copy_u8Ultra_NUM,f64* Copy_f64Distance); + ^~~~~~~~~~~~~~~~~~~ +../Src/Application/Motion_Planing.c:107:3: error: too many arguments to function 'HULTRA_vGetDistance' + HULTRA_vGetDistance(&Distance1, TIMER1, CH2); + ^~~~~~~~~~~~~~~~~~~ +In file included from ../Src/Application/Motion_Planing.c:5:0: +../Src/Application/../HAL/HULTRA_SONIC/HULTRA_SONIC_Int.h:102:6: note: declared here + void HULTRA_vGetDistance(Enum_ULTRA_SONIC_NUM Copy_u8Ultra_NUM,f64* Copy_f64Distance); + ^~~~~~~~~~~~~~~~~~~ +make: *** [Src/Application/subdir.mk:34: Src/Application/Motion_Planing.o] Error 1 +../Src/Application/Path_Tracking.c: In function 'PT_TrackThePath': +../Src/Application/Path_Tracking.c:52:10: warning: implicit declaration of function 'Get_Angle_of_slope'; did you mean 'LOC_GetAngleofslope'? [-Wimplicit-function-declaration] + angle = Get_Angle_of_slope(current_point, next_point); + ^~~~~~~~~~~~~~~~~~ + LOC_GetAngleofslope +../Src/Application/Path_Tracking.c:47:17: warning: variable 'angle' set but not used [-Wunused-but-set-variable] + f32 distance , angle ; + ^~~~~ +../Src/Application/Path_Tracking.c:47:6: warning: variable 'distance' set but not used [-Wunused-but-set-variable] + f32 distance , angle ; + ^~~~~~~~ +At top level: +../Src/Application/Path_Tracking.c:33:11: warning: 'LOC_GetAngleofslope' defined but not used [-Wunused-function] + static s8 LOC_GetAngleofslope(Point_t point1 ,Point_t point2){ + ^~~~~~~~~~~~~~~~~~~ +"make -j8 all" terminated with exit code 2. Build might be incomplete. diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/AutoParkingCar/.indexes/c4/properties.index b/.metadata/.plugins/org.eclipse.core.resources/.projects/AutoParkingCar/.indexes/c4/properties.index new file mode 100644 index 0000000000000000000000000000000000000000..8a2c620909d9c07980705bed2ee2e574846d5aa9 GIT binary patch literal 129 zcmYj}F$#o05Cms075sxAm<@e^n2WwZ#z6*jS9-_5-yiA)7gkeUfrtWCae~Bsw!}i= zLv6;&Dw`ce`82lViZpKwU9C7S9<}5XqWxl?G5%(%UmlPTgA)3#N1Q{MaR;T{D8!w z?99A$=fomCLvsTQLnCtoOA8}I3q6oBCI(4#GjbENfrfz$l26GjPR=h&ElN!ZPEO3r YOD%HF&r8cpcgxI41)DF3W`1!p0PaaKw*UYD literal 0 HcmV?d00001 diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/AutoParkingCar/.markers b/.metadata/.plugins/org.eclipse.core.resources/.projects/AutoParkingCar/.markers new file mode 100644 index 0000000000000000000000000000000000000000..4b29df63e3ebd2c7bab234c0e072811f8aace96a GIT binary patch literal 6235 zcmdT|U31$+6kXe-NeiW&CVUhMY^JnsTx>TVZKo-1NFCD};y9DIEi;{t*hp(z*xJ>s zRu17~c;J~|zymxK2AH(NLx-Qh8?XEc{s25Muq&-%k1X4wsVV5ekt5kY_uO;uJy!sL z6gZM!b~#-~tZ9;Z0Wl!|=^wL6aDuXW4(lz`c5qHNcuuDb=WIr|TG#^PV8X#|%uK$M z6dy@~qv}eojhKnVJ@Ts#>J7v;IbuBdmpH(MUs#0Ut7R&`PFrswB0|d1yRgU@WpEZ8 zYMBJDxz-kD60bNCUp%bb|HVHCCllVuD5I*xi|Sl&R3bH6ffCMWD@I6~3hDLHhcwd( z={7RCpd8i&+b*e@#B>_ifFIB;Cnt`6{J#&fAra=oIqi;K7qN}0_+ItnI}k&Nso90a zAzJLHZA9^>jG6vr1e+F~LZr ziAO1!4$K*cBaS6JxNY(VBoyLW4eK1<$=-H}>tG|>MlBcL4Z~Yd@Fo2G0mVvZ7&fIT{2( zdy_z1UGM7sQ`O2!1)7#EhK$rUZ^&aCxMqj1fGpgU~29k zFnGx%I<;&u^Mwc?-?6bbFM>V`XCbYL{u+bErlN6I(U^@yyw93z*vN6@P}>7I*B79e z7)|Uzo0^1U25XF3P@dMs8`+)>0!5g`TKcx5inrC|* zh#W{THn1_I!;OauG#yFu|5ffmLhgb5unDy;$keI~>2hVs$pQ70%HrH8DEUMt%+yT| z4Y3I!=A}*cfQ}m!&0bq3^%mA>O>4C890po!bOyJ*e7XGz+$ z;M=po*JZnYrl%_?-}c~X74iHiBEAx=Z!nEyRB7m74!1=2B9uevD!crp_;*%Z7CzHo z`FbGdece7dtROFp0`gnI&%?A4jNQkA`dNkge0Q< zeUcDpr-%G$MgCEcjw-7g%d7bto~>1XymInG1>ku6n1`+Tod7=%1mC}$%4@eu1+85q z(kGVWEM>0EdrGQYe6L#Sz3maID&w=XTaC+7L#QHP=|m(;V1Jw4VZRB8j5jdDVY92Y zjr#zc?VD9^LCvc@RgjpInAKws@KPk^NHdW-e?GoFzUGo9q1(jwbp%-$ri;Y2v}&nb z+|br;mV2`3UG}$Wd3h-u>%7X%@2U`Ai-bN>y07~X?jHab`_k?E)y>LUsgPIZ)qA4_ z)CUg&&Wr;875t$s)_x(EbnU_d%)pOP6G4Nz(qm^nO?!P~&%v6G9ABRGP74>>v!B#d zyx%IyGoye!Sm6PL9~6W)MgakLSo2ial|w02pF}L=3*SV9k{ye>&ecI=Msgn(bP(DD zFcYPwazXUua%ryMy=d!<`W`3H&vTNAp-y#bagbA;y4&Scr#+{tH?ZD>rjUhLw&6Bq zO|i%@;bd5AXNWQV%$LjQFIBFdkA?8$H-iwK{HY7!5f7p89q?N9ZMd{F7*Aq4gy)4= zcusvi2+yf|U3kVkJVQ_{?xBc$y6LCcYm51^-yQc-E%D0ZMgJu9baS5$|6TD|mYb+$ Re&ie3$GNjk`Z0fR{0)mncf$Yx literal 0 HcmV?d00001 diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version new file mode 100644 index 0000000..25cb955 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index new file mode 100644 index 0000000000000000000000000000000000000000..a4cbf37bd092effda6f93a760314966dc196377f GIT binary patch literal 104 zcmYkzI}U>|5Cy=u^b{#*IE0Cj_|+VNT)VG{l voyJ6$nB$q0883~yakn|>kBbE(q?J1Z)ssH!#%y6bQ2KtF{Ll_>KX%;(w%{D| literal 0 HcmV?d00001 diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version new file mode 100644 index 0000000..6b2aaa7 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/3.tree b/.metadata/.plugins/org.eclipse.core.resources/.root/3.tree new file mode 100644 index 0000000000000000000000000000000000000000..76c4325f7ce11d620be9ad33eee37820b83da52b GIT binary patch literal 15708 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 literal 0 HcmV?d00001 diff --git a/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources new file mode 100644 index 0000000000000000000000000000000000000000..bc04e38a183f894068d230821a4bfdbc4000df7e GIT binary patch literal 683 zcmZ?R*xjhShe1S2b=vdAllRFf=Oz}Hq!uZZBqrsg@^UE$CzdFSs9pF z8JQ}$x`rqi85o)HawX@aCKkD*=9DDH=NF~xr6%WO78IxIC8w0=CFd8V+LjcR0u8~T zstBkuEi)&zSg$k_sxk#+lxsynW>I2EW_})aLk-OhEDVh-j4e!!Esb!Ro|2kWnoguE zh;VCaZhi^SV+c>_>y;FxrrH|wavg~H{TUpDfuDP-cb6Y?plOh%CFT?p8KzLBv + + + activeSchemeId:org.eclipse.ui.defaultAcceleratorConfiguration + ModelMigrationProcessor.001 + + + + + + + + topLevel + shellMaximized + + + + + persp.actionSet:com.st.stm32cube.ide.mcu.informationcenter.actionSet3 + persp.actionSet:org.eclipse.ui.cheatsheets.actionSet + persp.actionSet:org.eclipse.rse.core.search.searchActionSet + persp.actionSet:org.eclipse.search.searchActionSet + persp.actionSet:org.eclipse.text.quicksearch.actionSet + persp.actionSet:org.eclipse.ui.edit.text.actionSet.annotationNavigation + persp.actionSet:org.eclipse.ui.edit.text.actionSet.navigation + persp.actionSet:org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo + persp.actionSet:org.eclipse.ui.externaltools.ExternalToolsSet + persp.actionSet:org.eclipse.ui.actionSet.keyBindings + persp.actionSet:org.eclipse.ui.actionSet.openFiles + persp.actionSet:org.eclipse.cdt.ui.SearchActionSet + persp.actionSet:org.eclipse.cdt.ui.CElementCreationActionSet + persp.actionSet:org.eclipse.ui.NavigateActionSet + persp.viewSC:org.eclipse.ui.console.ConsoleView + persp.viewSC:org.eclipse.search.ui.views.SearchView + persp.viewSC:org.eclipse.ui.views.ContentOutline + persp.viewSC:org.eclipse.ui.views.ProblemView + persp.viewSC:org.eclipse.cdt.ui.CView + persp.viewSC:org.eclipse.ui.views.ResourceNavigator + persp.viewSC:org.eclipse.ui.views.PropertySheet + persp.viewSC:org.eclipse.ui.views.TaskList + persp.newWizSC:org.eclipse.cdt.ui.wizards.ConvertToMakeWizard + persp.newWizSC:org.eclipse.cdt.ui.wizards.NewMakeFromExisting + persp.newWizSC:org.eclipse.cdt.ui.wizard.project + persp.newWizSC:org.eclipse.cdt.ui.wizards.NewSourceFolderCreationWizard + persp.newWizSC:org.eclipse.cdt.ui.wizards.NewFolderCreationWizard + persp.newWizSC:org.eclipse.cdt.ui.wizards.NewSourceFileCreationWizard + persp.newWizSC:org.eclipse.cdt.ui.wizards.NewHeaderFileCreationWizard + persp.newWizSC:org.eclipse.cdt.ui.wizards.NewFileCreationWizard + persp.newWizSC:org.eclipse.cdt.ui.wizards.NewClassCreationWizard + persp.perspSC:org.eclipse.debug.ui.DebugPerspective + persp.perspSC:org.eclipse.team.ui.TeamSynchronizingPerspective + persp.actionSet:org.eclipse.debug.ui.launchActionSet + persp.actionSet:org.eclipse.cdt.ui.buildConfigActionSet + persp.actionSet:org.eclipse.cdt.ui.NavigationActionSet + persp.actionSet:org.eclipse.cdt.ui.OpenActionSet + persp.actionSet:org.eclipse.cdt.ui.CodingActionSet + persp.actionSet:org.eclipse.ui.edit.text.actionSet.presentation + persp.showIn:org.eclipse.cdt.ui.includeBrowser + persp.showIn:org.eclipse.cdt.ui.CView + persp.showIn:org.eclipse.ui.navigator.ProjectExplorer + persp.viewSC:org.eclipse.ui.navigator.ProjectExplorer + persp.viewSC:org.eclipse.cdt.ui.includeBrowser + persp.actionSet:org.eclipse.debug.ui.breakpointActionSet + persp.newWizSC:com.st.stm32cube.common.projectcreation.ui.stm32projectwizard + persp.newWizSC:com.st.stm32cube.common.projectcreation.ui.stm32projectfromiocwizard + persp.viewSC:org.eclipse.cdt.make.ui.views.MakeView + persp.actionSet:org.eclipse.cdt.make.ui.makeTargetActionSet + persp.showIn:org.eclipse.cdt.codan.internal.ui.views.ProblemDetails + persp.viewSC:org.eclipse.cdt.codan.internal.ui.views.ProblemDetails + persp.viewSC:com.st.stm32cube.ide.mcu.buildanalyzer.view + persp.viewSC:com.st.stm32cube.ide.mcu.stackanalyzer.stackanalyzer.view + persp.viewSC:com.st.stm32cube.ide.mcu.sfrview + + + + View + categoryTag:General + + + View + categoryTag:C/C++ + + + View + categoryTag:General + + + View + categoryTag:General + + + + + + + Minimized + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:Make + + + + + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + + Minimized + + View + categoryTag:C/C++ + + + View + categoryTag:C/C++ + + + + + + + + + active + + View + categoryTag:Help + + + View + categoryTag:General + + + View + categoryTag:Help + + + + + + + View + categoryTag:Help + + + + + + View + categoryTag:General + activeOnClose + active + + ViewMenu + menuContribution:menu + + + + + + + View + categoryTag:Help + + + + org.eclipse.e4.primaryDataStack + EditorStack + + + Editor + removeOnHide + org.eclipse.cdt.ui.editor.CEditor + + + + Editor + removeOnHide + org.eclipse.cdt.ui.editor.CEditor + + + + + + + + View + categoryTag:General + + ViewMenu + menuContribution:menu + + + + + + + View + categoryTag:C/C++ + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + + View + categoryTag:General + + ViewMenu + menuContribution:menu + + + + + + + + View + categoryTag:General + + ViewMenu + menuContribution:menu + + + + + + + + View + categoryTag:General + + ViewMenu + menuContribution:menu + + + + + + + + View + categoryTag:General + + ViewMenu + menuContribution:menu + + + + + + + + View + categoryTag:General + + ViewMenu + menuContribution:menu + + + + + + + View + categoryTag:General + + + + + + View + categoryTag:Make + + ViewMenu + menuContribution:menu + + + + + + + + View + categoryTag:C/C++ + + ViewMenu + menuContribution:menu + + + + + + + + View + categoryTag:C/C++ + + ViewMenu + menuContribution:menu + + + + + + toolbarSeparator + + + + Draggable + + + + toolbarSeparator + + + + Draggable + + + toolbarSeparator + + + + Draggable + + + Draggable + + + Draggable + + + Draggable + + + toolbarSeparator + + + + Draggable + + + + Draggable + + + toolbarSeparator + + + + toolbarSeparator + + + + Draggable + + + stretch + SHOW_RESTORE_MENU + + + Draggable + HIDEABLE + SHOW_RESTORE_MENU + + + + + stretch + + + Draggable + + + Draggable + + + + + TrimStack + Draggable + + + + + TrimStack + Draggable + + + TrimStack + Draggable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + platform:win32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + platform:win32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Editor + removeOnHide + + + + + View + categoryTag:Device Configuration Tool + + + + + View + categoryTag:C/C++ + + + + + View + categoryTag:SWV + + + + + View + categoryTag:SWV + + + + + View + categoryTag:SWV + + + + + View + categoryTag:SWV + + + + + View + categoryTag:SWV + + + + + View + categoryTag:SWV + + + + + View + categoryTag:SWV + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:C/C++ + + + + + View + categoryTag:C/C++ + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Make + + + + + View + categoryTag:C/C++ + + + + + View + categoryTag:C/C++ + + + + + View + categoryTag:C/C++ + + + + + View + categoryTag:C/C++ + + + + + View + categoryTag:C/C++ + + + + + View + categoryTag:General + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Debug + + + + + View + categoryTag:Help + + + + + View + categoryTag:Connections + + + + + View + categoryTag:Remote Systems + + + + + View + categoryTag:Remote Systems + + + + + View + categoryTag:Remote Systems + + + + + View + categoryTag:Remote Systems + + + + + View + categoryTag:Remote Systems + + + + + View + categoryTag:Remote Systems + + + + + View + categoryTag:Remote Systems + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:Team + + + + + View + categoryTag:Team + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:Help + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + + View + categoryTag:General + + + + glue + move_after:PerspectiveSpacer + SHOW_RESTORE_MENU + + + move_after:Spacer Glue + HIDEABLE + SHOW_RESTORE_MENU + + + glue + move_after:SearchField + SHOW_RESTORE_MENU + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.metadata/.plugins/org.eclipse.rse.core/.log b/.metadata/.plugins/org.eclipse.rse.core/.log new file mode 100644 index 0000000..e69de29 diff --git a/.metadata/.plugins/org.eclipse.rse.core/initializerMarks/org.eclipse.rse.internal.core.RSELocalConnectionInitializer.mark b/.metadata/.plugins/org.eclipse.rse.core/initializerMarks/org.eclipse.rse.internal.core.RSELocalConnectionInitializer.mark new file mode 100644 index 0000000..e69de29 diff --git a/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.desktop-09o4gtd_32535/FP.local.files_0/node.properties b/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.desktop-09o4gtd_32535/FP.local.files_0/node.properties new file mode 100644 index 0000000..8bbf40d --- /dev/null +++ b/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.desktop-09o4gtd_32535/FP.local.files_0/node.properties @@ -0,0 +1,57 @@ +# RSE DOM Node +00-name=DESKTOP-09O4GTD\:local.files +01-type=FilterPool +03-attr.default=true +03-attr.deletable=true +03-attr.id=local.files +03-attr.nonRenamable=false +03-attr.owningParentName=null +03-attr.release=200 +03-attr.singleFilterStringOnly=false +03-attr.singleFilterStringOnlyESet=false +03-attr.stringsCaseSensitive=true +03-attr.supportsDuplicateFilterStrings=false +03-attr.supportsNestedFilters=true +03-attr.type=default +06-child.00000.00-name=My Home +06-child.00000.01-type=Filter +06-child.00000.03-attr.default=false +06-child.00000.03-attr.filterType=default +06-child.00000.03-attr.id=My Home +06-child.00000.03-attr.nonChangable=false +06-child.00000.03-attr.nonDeletable=false +06-child.00000.03-attr.nonRenamable=false +06-child.00000.03-attr.promptable=false +06-child.00000.03-attr.relativeOrder=0 +06-child.00000.03-attr.release=200 +06-child.00000.03-attr.singleFilterStringOnly=false +06-child.00000.03-attr.stringsCaseSensitive=false +06-child.00000.03-attr.stringsNonChangable=false +06-child.00000.03-attr.supportsDuplicateFilterStrings=false +06-child.00000.03-attr.supportsNestedFilters=true +06-child.00000.06-child.00000.00-name=C\:\\Users\\Hawas\\* +06-child.00000.06-child.00000.01-type=FilterString +06-child.00000.06-child.00000.03-attr.default=false +06-child.00000.06-child.00000.03-attr.string=C\:\\Users\\Hawas\\* +06-child.00000.06-child.00000.03-attr.type=default +06-child.00001.00-name=Drives +06-child.00001.01-type=Filter +06-child.00001.03-attr.default=false +06-child.00001.03-attr.filterType=default +06-child.00001.03-attr.id=Drives +06-child.00001.03-attr.nonChangable=false +06-child.00001.03-attr.nonDeletable=false +06-child.00001.03-attr.nonRenamable=false +06-child.00001.03-attr.promptable=false +06-child.00001.03-attr.relativeOrder=0 +06-child.00001.03-attr.release=200 +06-child.00001.03-attr.singleFilterStringOnly=false +06-child.00001.03-attr.stringsCaseSensitive=false +06-child.00001.03-attr.stringsNonChangable=false +06-child.00001.03-attr.supportsDuplicateFilterStrings=false +06-child.00001.03-attr.supportsNestedFilters=true +06-child.00001.06-child.00000.00-name=* +06-child.00001.06-child.00000.01-type=FilterString +06-child.00001.06-child.00000.03-attr.default=false +06-child.00001.06-child.00000.03-attr.string=* +06-child.00001.06-child.00000.03-attr.type=default diff --git a/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.desktop-09o4gtd_32535/H.local_16/node.properties b/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.desktop-09o4gtd_32535/H.local_16/node.properties new file mode 100644 index 0000000..979d977 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.desktop-09o4gtd_32535/H.local_16/node.properties @@ -0,0 +1,25 @@ +# RSE DOM Node +00-name=Local +01-type=Host +03-attr.description= +03-attr.hostname=LOCALHOST +03-attr.offline=false +03-attr.promptable=false +03-attr.systemType=org.eclipse.rse.systemtype.local +03-attr.type=Local +06-child.00000.00-name=Local Connector Service +06-child.00000.01-type=ConnectorService +06-child.00000.03-attr.group=Local Connector Service +06-child.00000.03-attr.port=0 +06-child.00000.03-attr.useSSL=false +06-child.00000.06-child.00000.00-name=Local Files +06-child.00000.06-child.00000.01-type=SubSystem +06-child.00000.06-child.00000.03-attr.hidden=false +06-child.00000.06-child.00000.03-attr.type=local.files +06-child.00000.06-child.00000.06-child.00000.00-name=DESKTOP-09O4GTD___DESKTOP-09O4GTD\:local.files +06-child.00000.06-child.00000.06-child.00000.01-type=FilterPoolReference +06-child.00000.06-child.00000.06-child.00000.03-attr.refID=local.files +06-child.00000.06-child.00001.00-name=Local Shells +06-child.00000.06-child.00001.01-type=SubSystem +06-child.00000.06-child.00001.03-attr.hidden=false +06-child.00000.06-child.00001.03-attr.type=local.shells diff --git a/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.desktop-09o4gtd_32535/node.properties b/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.desktop-09o4gtd_32535/node.properties new file mode 100644 index 0000000..4cd82eb --- /dev/null +++ b/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.desktop-09o4gtd_32535/node.properties @@ -0,0 +1,7 @@ +# RSE DOM Node +00-name=DESKTOP-09O4GTD +01-type=Profile +03-attr.defaultPrivate=true +03-attr.isActive=true +05-ref.00000=FP.local.files_0 +05-ref.00001=H.local_16 diff --git a/.metadata/.plugins/org.eclipse.rse.ui/.log b/.metadata/.plugins/org.eclipse.rse.ui/.log new file mode 100644 index 0000000..e69de29 diff --git a/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml b/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml new file mode 100644 index 0000000..540a1be --- /dev/null +++ b/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml @@ -0,0 +1,14 @@ + +

      +
      + +
      +
      + + +
      +
      + + +
      +
      diff --git a/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml b/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml new file mode 100644 index 0000000..dbc3030 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml @@ -0,0 +1,19 @@ + +
      +
      + + + + + + + + + + +
      +
      +
      +
      +
      +
      diff --git a/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml b/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml new file mode 100644 index 0000000..f64bff8 --- /dev/null +++ b/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.metadata/version.ini b/.metadata/version.ini new file mode 100644 index 0000000..bf00c34 --- /dev/null +++ b/.metadata/version.ini @@ -0,0 +1,3 @@ +#Sat Feb 17 02:11:09 EET 2024 +org.eclipse.core.runtime=2 +org.eclipse.platform=4.13.0.v20190916-1045 diff --git a/RemoteSystemsTempFiles/.project b/RemoteSystemsTempFiles/.project new file mode 100644 index 0000000..5447a64 --- /dev/null +++ b/RemoteSystemsTempFiles/.project @@ -0,0 +1,12 @@ + + + RemoteSystemsTempFiles + + + + + + + org.eclipse.rse.ui.remoteSystemsTempNature + +