face_recognition

This commit is contained in:
Siwat Sirichai 2023-09-23 13:03:15 +07:00
parent 6c44c742e8
commit 5bd4b4c100
16 changed files with 9681 additions and 9417 deletions

View File

@ -8,9 +8,9 @@ class access_control:
_door_state: bool = 0
serial_adapter: serial.Serial
def __init__(self, serial_port: str):
self.serial_adapter = serial.Serial(serial_port,baudrate=115200)
Thread(target=self.read_serial).start()
Thread(target=self._process_payload).start()
self.serial_adapter = serial.Serial(serial_port,baudrate=9600)
#Thread(target=self.read_serial).start()
#Thread(target=self._process_payload).start()
def read_serial(self):
while True:
if self.serial_adapter.in_waiting:

View File

@ -5,6 +5,8 @@ import time
stm32 = access_control("COM12")
time.sleep(1)
stm32.lock_door()
#stm32.unlock_door()
time.sleep(1)
#door_state = False
#while True:
#print(stm32._in_payloads)

View File

@ -59,12 +59,18 @@ UART_HandleTypeDef huart2;
/* Definitions for mainTask */
osThreadId_t mainTaskHandle;
const osThreadAttr_t mainTask_attributes = { .name = "mainTask", .stack_size =
128 * 4, .priority = (osPriority_t) osPriorityNormal, };
const osThreadAttr_t mainTask_attributes = {
.name = "mainTask",
.stack_size = 128 * 4,
.priority = (osPriority_t) osPriorityNormal,
};
/* Definitions for doorHandler */
osThreadId_t doorHandlerHandle;
const osThreadAttr_t doorHandler_attributes = { .name = "doorHandler",
.stack_size = 128 * 4, .priority = (osPriority_t) osPriorityLow, };
const osThreadAttr_t doorHandler_attributes = {
.name = "doorHandler",
.stack_size = 128 * 4,
.priority = (osPriority_t) osPriorityLow,
};
/* USER CODE BEGIN PV */
uint8_t uart_buffer[10];
uint8_t uart_index = 0;
@ -95,201 +101,207 @@ void startDoorHandleTask(void *argument);
/* USER CODE END 0 */
/**
* @brief The application entry point.
* @retval int
*/
int main(void) {
/* USER CODE BEGIN 1 */
* @brief The application entry point.
* @retval int
*/
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART2_UART_Init();
/* USER CODE BEGIN 2 */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART2_UART_Init();
/* USER CODE BEGIN 2 */
memset(uart_buffer, 0, 10);
/* USER CODE END 2 */
/* USER CODE END 2 */
/* Init scheduler */
osKernelInitialize();
/* Init scheduler */
osKernelInitialize();
/* USER CODE BEGIN RTOS_MUTEX */
/* USER CODE BEGIN RTOS_MUTEX */
/* add mutexes, ... */
/* USER CODE END RTOS_MUTEX */
/* USER CODE END RTOS_MUTEX */
/* USER CODE BEGIN RTOS_SEMAPHORES */
/* USER CODE BEGIN RTOS_SEMAPHORES */
/* add semaphores, ... */
/* USER CODE END RTOS_SEMAPHORES */
/* USER CODE END RTOS_SEMAPHORES */
/* USER CODE BEGIN RTOS_TIMERS */
/* USER CODE BEGIN RTOS_TIMERS */
/* start timers, add new ones, ... */
/* USER CODE END RTOS_TIMERS */
/* USER CODE END RTOS_TIMERS */
/* USER CODE BEGIN RTOS_QUEUES */
/* USER CODE BEGIN RTOS_QUEUES */
/* add queues, ... */
/* USER CODE END RTOS_QUEUES */
/* USER CODE END RTOS_QUEUES */
/* Create the thread(s) */
/* creation of mainTask */
mainTaskHandle = osThreadNew(StartMainTask, NULL, &mainTask_attributes);
/* Create the thread(s) */
/* creation of mainTask */
mainTaskHandle = osThreadNew(StartMainTask, NULL, &mainTask_attributes);
/* creation of doorHandler */
doorHandlerHandle = osThreadNew(startDoorHandleTask, NULL,
&doorHandler_attributes);
/* creation of doorHandler */
doorHandlerHandle = osThreadNew(startDoorHandleTask, NULL, &doorHandler_attributes);
/* USER CODE BEGIN RTOS_THREADS */
/* USER CODE BEGIN RTOS_THREADS */
/* add threads, ... */
/* USER CODE END RTOS_THREADS */
/* USER CODE END RTOS_THREADS */
/* USER CODE BEGIN RTOS_EVENTS */
/* USER CODE BEGIN RTOS_EVENTS */
/* add events, ... */
/* USER CODE END RTOS_EVENTS */
/* USER CODE END RTOS_EVENTS */
/* Start scheduler */
osKernelStart();
/* Start scheduler */
osKernelStart();
/* We should never get here as control is now taken by the scheduler */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
/* We should never get here as control is now taken by the scheduler */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1) {
}
/* USER CODE END WHILE */
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
/* USER CODE BEGIN 3 */
/* USER CODE END 3 */
/* USER CODE END 3 */
}
/**
* @brief System Clock Configuration
* @retval None
*/
void SystemClock_Config(void) {
RCC_OscInitTypeDef RCC_OscInitStruct = { 0 };
RCC_ClkInitTypeDef RCC_ClkInitStruct = { 0 };
* @brief System Clock Configuration
* @retval None
*/
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
/** Configure the main internal regulator output voltage
*/
__HAL_RCC_PWR_CLK_ENABLE();
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
/** Configure the main internal regulator output voltage
*/
__HAL_RCC_PWR_CLK_ENABLE();
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
/** Initializes the RCC Oscillators according to the specified parameters
* in the RCC_OscInitTypeDef structure.
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
RCC_OscInitStruct.PLL.PLLM = 16;
RCC_OscInitStruct.PLL.PLLN = 336;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4;
RCC_OscInitStruct.PLL.PLLQ = 4;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
Error_Handler();
}
/** Initializes the RCC Oscillators according to the specified parameters
* in the RCC_OscInitTypeDef structure.
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
RCC_OscInitStruct.PLL.PLLM = 16;
RCC_OscInitStruct.PLL.PLLN = 336;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4;
RCC_OscInitStruct.PLL.PLLQ = 4;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
{
Error_Handler();
}
/** Initializes the CPU, AHB and APB buses clocks
*/
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
| RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
/** Initializes the CPU, AHB and APB buses clocks
*/
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) {
Error_Handler();
}
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
{
Error_Handler();
}
}
/**
* @brief USART2 Initialization Function
* @param None
* @retval None
*/
static void MX_USART2_UART_Init(void) {
* @brief USART2 Initialization Function
* @param None
* @retval None
*/
static void MX_USART2_UART_Init(void)
{
/* USER CODE BEGIN USART2_Init 0 */
/* USER CODE BEGIN USART2_Init 0 */
/* USER CODE END USART2_Init 0 */
/* USER CODE END USART2_Init 0 */
/* USER CODE BEGIN USART2_Init 1 */
/* USER CODE BEGIN USART2_Init 1 */
/* USER CODE END USART2_Init 1 */
huart2.Instance = USART2;
huart2.Init.BaudRate = 115200;
huart2.Init.WordLength = UART_WORDLENGTH_8B;
huart2.Init.StopBits = UART_STOPBITS_1;
huart2.Init.Parity = UART_PARITY_NONE;
huart2.Init.Mode = UART_MODE_TX_RX;
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart2.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart2) != HAL_OK) {
Error_Handler();
}
/* USER CODE BEGIN USART2_Init 2 */
/* USER CODE END USART2_Init 1 */
huart2.Instance = USART2;
huart2.Init.BaudRate = 9600;
huart2.Init.WordLength = UART_WORDLENGTH_8B;
huart2.Init.StopBits = UART_STOPBITS_1;
huart2.Init.Parity = UART_PARITY_NONE;
huart2.Init.Mode = UART_MODE_TX_RX;
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart2.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart2) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN USART2_Init 2 */
/* USER CODE END USART2_Init 2 */
/* USER CODE END USART2_Init 2 */
}
/**
* @brief GPIO Initialization Function
* @param None
* @retval None
*/
static void MX_GPIO_Init(void) {
GPIO_InitTypeDef GPIO_InitStruct = { 0 };
/* USER CODE BEGIN MX_GPIO_Init_1 */
/* USER CODE END MX_GPIO_Init_1 */
* @brief GPIO Initialization Function
* @param None
* @retval None
*/
static void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* USER CODE BEGIN MX_GPIO_Init_1 */
/* USER CODE END MX_GPIO_Init_1 */
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOH_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOH_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOA, LD2_Pin | Door_Lock_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOA, LD2_Pin|Door_Lock_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin : B1_Pin */
GPIO_InitStruct.Pin = B1_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(B1_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : B1_Pin */
GPIO_InitStruct.Pin = B1_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(B1_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pins : LD2_Pin Door_Lock_Pin */
GPIO_InitStruct.Pin = LD2_Pin | Door_Lock_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure GPIO pins : LD2_Pin Door_Lock_Pin */
GPIO_InitStruct.Pin = LD2_Pin|Door_Lock_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure GPIO pin : Door_Sensor_Pin */
GPIO_InitStruct.Pin = Door_Sensor_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(Door_Sensor_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : Door_Sensor_Pin */
GPIO_InitStruct.Pin = Door_Sensor_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(Door_Sensor_GPIO_Port, &GPIO_InitStruct);
/* USER CODE BEGIN MX_GPIO_Init_2 */
/* USER CODE END MX_GPIO_Init_2 */
/* USER CODE BEGIN MX_GPIO_Init_2 */
/* USER CODE END MX_GPIO_Init_2 */
}
/* USER CODE BEGIN 4 */
@ -303,8 +315,9 @@ static void MX_GPIO_Init(void) {
* @retval None
*/
/* USER CODE END Header_StartMainTask */
void StartMainTask(void *argument) {
/* USER CODE BEGIN 5 */
void StartMainTask(void *argument)
{
/* USER CODE BEGIN 5 */
memset(uart_buffer, 0, 10);
/* USER CODE END 2 */
@ -312,7 +325,7 @@ void StartMainTask(void *argument) {
/* USER CODE BEGIN WHILE */
while (1) {
if (HAL_UART_Receive(&huart2, uart_buffer + uart_index, 1, 250)
if (HAL_UART_Receive(&huart2, uart_buffer + uart_index, 1, 1000)
== HAL_OK) {
uart_index++;
if (uart_buffer[uart_index - 1] == 0xFF) {
@ -333,11 +346,14 @@ void StartMainTask(void *argument) {
}
uart_index = 0;
memset(uart_buffer, 0, 10);
} else if (uart_index > sizeof(uart_buffer)-1) {
memset(uart_buffer, 0, 10);
uart_index=0;
}
}
vTaskDelay(1);
}
/* USER CODE END 5 */
/* USER CODE END 5 */
}
/* USER CODE BEGIN Header_startDoorHandleTask */
@ -347,8 +363,9 @@ void StartMainTask(void *argument) {
* @retval None
*/
/* USER CODE END Header_startDoorHandleTask */
void startDoorHandleTask(void *argument) {
/* USER CODE BEGIN startDoorHandleTask */
void startDoorHandleTask(void *argument)
{
/* USER CODE BEGIN startDoorHandleTask */
/* Infinite loop */
for (;;) {
door_state = HAL_GPIO_ReadPin(DOOR_SENSOR_BANK, DOOR_SENSOR_PIN);
@ -384,40 +401,42 @@ void startDoorHandleTask(void *argument) {
vTaskDelay(100);
}
/* USER CODE END startDoorHandleTask */
/* USER CODE END startDoorHandleTask */
}
/**
* @brief Period elapsed callback in non blocking mode
* @note This function is called when TIM1 interrupt took place, inside
* HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
* a global variable "uwTick" used as application time base.
* @param htim : TIM handle
* @retval None
*/
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
/* USER CODE BEGIN Callback 0 */
* @brief Period elapsed callback in non blocking mode
* @note This function is called when TIM1 interrupt took place, inside
* HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
* a global variable "uwTick" used as application time base.
* @param htim : TIM handle
* @retval None
*/
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
/* USER CODE BEGIN Callback 0 */
/* USER CODE END Callback 0 */
if (htim->Instance == TIM1) {
HAL_IncTick();
}
/* USER CODE BEGIN Callback 1 */
/* USER CODE END Callback 0 */
if (htim->Instance == TIM1) {
HAL_IncTick();
}
/* USER CODE BEGIN Callback 1 */
/* USER CODE END Callback 1 */
/* USER CODE END Callback 1 */
}
/**
* @brief This function is executed in case of error occurrence.
* @retval None
*/
void Error_Handler(void) {
/* USER CODE BEGIN Error_Handler_Debug */
* @brief This function is executed in case of error occurrence.
* @retval None
*/
void Error_Handler(void)
{
/* USER CODE BEGIN Error_Handler_Debug */
/* User can add his own implementation to report the HAL error return state */
__disable_irq();
while (1) {
}
/* USER CODE END Error_Handler_Debug */
/* USER CODE END Error_Handler_Debug */
}
#ifdef USE_FULL_ASSERT

View File

@ -1,8 +1,8 @@
../Core/Src/main.c:101:5:main 1
../Core/Src/main.c:183:6:SystemClock_Config 3
../Core/Src/main.c:227:13:MX_USART2_UART_Init 2
../Core/Src/main.c:258:13:MX_GPIO_Init 1
../Core/Src/main.c:306:6:StartMainTask 7
../Core/Src/main.c:350:6:startDoorHandleTask 8
../Core/Src/main.c:398:6:HAL_TIM_PeriodElapsedCallback 2
../Core/Src/main.c:414:6:Error_Handler 1
../Core/Src/main.c:107:5:main 1
../Core/Src/main.c:189:6:SystemClock_Config 3
../Core/Src/main.c:236:13:MX_USART2_UART_Init 2
../Core/Src/main.c:269:13:MX_GPIO_Init 1
../Core/Src/main.c:318:6:StartMainTask 8
../Core/Src/main.c:366:6:startDoorHandleTask 8
../Core/Src/main.c:415:6:HAL_TIM_PeriodElapsedCallback 2
../Core/Src/main.c:432:6:Error_Handler 1

View File

@ -1,8 +1,8 @@
../Core/Src/main.c:101:5:main 8 static
../Core/Src/main.c:183:6:SystemClock_Config 88 static
../Core/Src/main.c:227:13:MX_USART2_UART_Init 8 static
../Core/Src/main.c:258:13:MX_GPIO_Init 48 static
../Core/Src/main.c:306:6:StartMainTask 24 static
../Core/Src/main.c:350:6:startDoorHandleTask 16 static
../Core/Src/main.c:398:6:HAL_TIM_PeriodElapsedCallback 16 static
../Core/Src/main.c:414:6:Error_Handler 4 static,ignoring_inline_asm
../Core/Src/main.c:107:5:main 8 static
../Core/Src/main.c:189:6:SystemClock_Config 88 static
../Core/Src/main.c:236:13:MX_USART2_UART_Init 8 static
../Core/Src/main.c:269:13:MX_GPIO_Init 48 static
../Core/Src/main.c:318:6:StartMainTask 24 static
../Core/Src/main.c:366:6:startDoorHandleTask 16 static
../Core/Src/main.c:415:6:HAL_TIM_PeriodElapsedCallback 16 static
../Core/Src/main.c:432:6:Error_Handler 4 static,ignoring_inline_asm

File diff suppressed because it is too large Load Diff

View File

@ -4531,7 +4531,7 @@ LOAD C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.ext
0x0000000008000000 g_pfnVectors
0x0000000008000198 . = ALIGN (0x4)
.text 0x00000000080001a0 0x5488
.text 0x00000000080001a0 0x54a8
0x00000000080001a0 . = ALIGN (0x4)
*(.text)
.text 0x00000000080001a0 0x40 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o
@ -4553,545 +4553,546 @@ LOAD C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.ext
.text.MX_GPIO_Init
0x0000000008000668 0xf8 ./Core/Src/main.o
.text.StartMainTask
0x0000000008000760 0xd8 ./Core/Src/main.o
0x0000000008000760 0xf4 ./Core/Src/main.o
0x0000000008000760 StartMainTask
.text.startDoorHandleTask
0x0000000008000838 0x100 ./Core/Src/main.o
0x0000000008000838 startDoorHandleTask
0x0000000008000854 0x100 ./Core/Src/main.o
0x0000000008000854 startDoorHandleTask
.text.HAL_TIM_PeriodElapsedCallback
0x0000000008000938 0x24 ./Core/Src/main.o
0x0000000008000938 HAL_TIM_PeriodElapsedCallback
0x0000000008000954 0x24 ./Core/Src/main.o
0x0000000008000954 HAL_TIM_PeriodElapsedCallback
.text.Error_Handler
0x000000000800095c 0xa ./Core/Src/main.o
0x000000000800095c Error_Handler
*fill* 0x0000000008000966 0x2
0x0000000008000978 0xa ./Core/Src/main.o
0x0000000008000978 Error_Handler
*fill* 0x0000000008000982 0x2
.text.HAL_MspInit
0x0000000008000968 0x58 ./Core/Src/stm32f4xx_hal_msp.o
0x0000000008000968 HAL_MspInit
0x0000000008000984 0x58 ./Core/Src/stm32f4xx_hal_msp.o
0x0000000008000984 HAL_MspInit
.text.HAL_UART_MspInit
0x00000000080009c0 0x90 ./Core/Src/stm32f4xx_hal_msp.o
0x00000000080009c0 HAL_UART_MspInit
0x00000000080009dc 0x90 ./Core/Src/stm32f4xx_hal_msp.o
0x00000000080009dc HAL_UART_MspInit
.text.HAL_InitTick
0x0000000008000a50 0xe4 ./Core/Src/stm32f4xx_hal_timebase_tim.o
0x0000000008000a50 HAL_InitTick
0x0000000008000a6c 0xe4 ./Core/Src/stm32f4xx_hal_timebase_tim.o
0x0000000008000a6c HAL_InitTick
.text.NMI_Handler
0x0000000008000b34 0x6 ./Core/Src/stm32f4xx_it.o
0x0000000008000b34 NMI_Handler
0x0000000008000b50 0x6 ./Core/Src/stm32f4xx_it.o
0x0000000008000b50 NMI_Handler
.text.HardFault_Handler
0x0000000008000b3a 0x6 ./Core/Src/stm32f4xx_it.o
0x0000000008000b3a HardFault_Handler
0x0000000008000b56 0x6 ./Core/Src/stm32f4xx_it.o
0x0000000008000b56 HardFault_Handler
.text.MemManage_Handler
0x0000000008000b40 0x6 ./Core/Src/stm32f4xx_it.o
0x0000000008000b40 MemManage_Handler
0x0000000008000b5c 0x6 ./Core/Src/stm32f4xx_it.o
0x0000000008000b5c MemManage_Handler
.text.BusFault_Handler
0x0000000008000b46 0x6 ./Core/Src/stm32f4xx_it.o
0x0000000008000b46 BusFault_Handler
0x0000000008000b62 0x6 ./Core/Src/stm32f4xx_it.o
0x0000000008000b62 BusFault_Handler
.text.UsageFault_Handler
0x0000000008000b4c 0x6 ./Core/Src/stm32f4xx_it.o
0x0000000008000b4c UsageFault_Handler
0x0000000008000b68 0x6 ./Core/Src/stm32f4xx_it.o
0x0000000008000b68 UsageFault_Handler
.text.DebugMon_Handler
0x0000000008000b52 0xe ./Core/Src/stm32f4xx_it.o
0x0000000008000b52 DebugMon_Handler
0x0000000008000b6e 0xe ./Core/Src/stm32f4xx_it.o
0x0000000008000b6e DebugMon_Handler
.text.TIM1_UP_TIM10_IRQHandler
0x0000000008000b60 0x14 ./Core/Src/stm32f4xx_it.o
0x0000000008000b60 TIM1_UP_TIM10_IRQHandler
0x0000000008000b7c 0x14 ./Core/Src/stm32f4xx_it.o
0x0000000008000b7c TIM1_UP_TIM10_IRQHandler
.text.SystemInit
0x0000000008000b74 0x24 ./Core/Src/system_stm32f4xx.o
0x0000000008000b74 SystemInit
0x0000000008000b90 0x24 ./Core/Src/system_stm32f4xx.o
0x0000000008000b90 SystemInit
.text.Reset_Handler
0x0000000008000b98 0x50 ./Core/Startup/startup_stm32f411retx.o
0x0000000008000b98 Reset_Handler
0x0000000008000bb4 0x50 ./Core/Startup/startup_stm32f411retx.o
0x0000000008000bb4 Reset_Handler
.text.Default_Handler
0x0000000008000be8 0x2 ./Core/Startup/startup_stm32f411retx.o
0x0000000008000be8 RTC_Alarm_IRQHandler
0x0000000008000be8 EXTI2_IRQHandler
0x0000000008000be8 SPI4_IRQHandler
0x0000000008000be8 TIM1_CC_IRQHandler
0x0000000008000be8 DMA2_Stream5_IRQHandler
0x0000000008000be8 DMA1_Stream5_IRQHandler
0x0000000008000be8 PVD_IRQHandler
0x0000000008000be8 SDIO_IRQHandler
0x0000000008000be8 TAMP_STAMP_IRQHandler
0x0000000008000be8 EXTI3_IRQHandler
0x0000000008000be8 I2C3_ER_IRQHandler
0x0000000008000be8 EXTI0_IRQHandler
0x0000000008000be8 I2C2_EV_IRQHandler
0x0000000008000be8 DMA1_Stream2_IRQHandler
0x0000000008000be8 FPU_IRQHandler
0x0000000008000be8 DMA2_Stream2_IRQHandler
0x0000000008000be8 SPI1_IRQHandler
0x0000000008000be8 TIM1_BRK_TIM9_IRQHandler
0x0000000008000be8 DMA2_Stream3_IRQHandler
0x0000000008000be8 USART6_IRQHandler
0x0000000008000be8 DMA2_Stream0_IRQHandler
0x0000000008000be8 TIM4_IRQHandler
0x0000000008000be8 I2C1_EV_IRQHandler
0x0000000008000be8 DMA1_Stream6_IRQHandler
0x0000000008000be8 DMA1_Stream1_IRQHandler
0x0000000008000be8 TIM3_IRQHandler
0x0000000008000be8 RCC_IRQHandler
0x0000000008000be8 Default_Handler
0x0000000008000be8 EXTI15_10_IRQHandler
0x0000000008000be8 ADC_IRQHandler
0x0000000008000be8 DMA1_Stream7_IRQHandler
0x0000000008000be8 SPI5_IRQHandler
0x0000000008000be8 TIM5_IRQHandler
0x0000000008000be8 DMA2_Stream7_IRQHandler
0x0000000008000be8 I2C3_EV_IRQHandler
0x0000000008000be8 EXTI9_5_IRQHandler
0x0000000008000be8 RTC_WKUP_IRQHandler
0x0000000008000be8 SPI2_IRQHandler
0x0000000008000be8 DMA1_Stream0_IRQHandler
0x0000000008000be8 EXTI4_IRQHandler
0x0000000008000be8 WWDG_IRQHandler
0x0000000008000be8 TIM2_IRQHandler
0x0000000008000be8 OTG_FS_WKUP_IRQHandler
0x0000000008000be8 TIM1_TRG_COM_TIM11_IRQHandler
0x0000000008000be8 EXTI1_IRQHandler
0x0000000008000be8 USART2_IRQHandler
0x0000000008000be8 I2C2_ER_IRQHandler
0x0000000008000be8 DMA2_Stream1_IRQHandler
0x0000000008000be8 FLASH_IRQHandler
0x0000000008000be8 DMA2_Stream4_IRQHandler
0x0000000008000be8 USART1_IRQHandler
0x0000000008000be8 OTG_FS_IRQHandler
0x0000000008000be8 SPI3_IRQHandler
0x0000000008000be8 DMA1_Stream4_IRQHandler
0x0000000008000be8 I2C1_ER_IRQHandler
0x0000000008000be8 DMA2_Stream6_IRQHandler
0x0000000008000be8 DMA1_Stream3_IRQHandler
*fill* 0x0000000008000bea 0x2
0x0000000008000c04 0x2 ./Core/Startup/startup_stm32f411retx.o
0x0000000008000c04 RTC_Alarm_IRQHandler
0x0000000008000c04 EXTI2_IRQHandler
0x0000000008000c04 SPI4_IRQHandler
0x0000000008000c04 TIM1_CC_IRQHandler
0x0000000008000c04 DMA2_Stream5_IRQHandler
0x0000000008000c04 DMA1_Stream5_IRQHandler
0x0000000008000c04 PVD_IRQHandler
0x0000000008000c04 SDIO_IRQHandler
0x0000000008000c04 TAMP_STAMP_IRQHandler
0x0000000008000c04 EXTI3_IRQHandler
0x0000000008000c04 I2C3_ER_IRQHandler
0x0000000008000c04 EXTI0_IRQHandler
0x0000000008000c04 I2C2_EV_IRQHandler
0x0000000008000c04 DMA1_Stream2_IRQHandler
0x0000000008000c04 FPU_IRQHandler
0x0000000008000c04 DMA2_Stream2_IRQHandler
0x0000000008000c04 SPI1_IRQHandler
0x0000000008000c04 TIM1_BRK_TIM9_IRQHandler
0x0000000008000c04 DMA2_Stream3_IRQHandler
0x0000000008000c04 USART6_IRQHandler
0x0000000008000c04 DMA2_Stream0_IRQHandler
0x0000000008000c04 TIM4_IRQHandler
0x0000000008000c04 I2C1_EV_IRQHandler
0x0000000008000c04 DMA1_Stream6_IRQHandler
0x0000000008000c04 DMA1_Stream1_IRQHandler
0x0000000008000c04 TIM3_IRQHandler
0x0000000008000c04 RCC_IRQHandler
0x0000000008000c04 Default_Handler
0x0000000008000c04 EXTI15_10_IRQHandler
0x0000000008000c04 ADC_IRQHandler
0x0000000008000c04 DMA1_Stream7_IRQHandler
0x0000000008000c04 SPI5_IRQHandler
0x0000000008000c04 TIM5_IRQHandler
0x0000000008000c04 DMA2_Stream7_IRQHandler
0x0000000008000c04 I2C3_EV_IRQHandler
0x0000000008000c04 EXTI9_5_IRQHandler
0x0000000008000c04 RTC_WKUP_IRQHandler
0x0000000008000c04 SPI2_IRQHandler
0x0000000008000c04 DMA1_Stream0_IRQHandler
0x0000000008000c04 EXTI4_IRQHandler
0x0000000008000c04 WWDG_IRQHandler
0x0000000008000c04 TIM2_IRQHandler
0x0000000008000c04 OTG_FS_WKUP_IRQHandler
0x0000000008000c04 TIM1_TRG_COM_TIM11_IRQHandler
0x0000000008000c04 EXTI1_IRQHandler
0x0000000008000c04 USART2_IRQHandler
0x0000000008000c04 I2C2_ER_IRQHandler
0x0000000008000c04 DMA2_Stream1_IRQHandler
0x0000000008000c04 FLASH_IRQHandler
0x0000000008000c04 DMA2_Stream4_IRQHandler
0x0000000008000c04 USART1_IRQHandler
0x0000000008000c04 OTG_FS_IRQHandler
0x0000000008000c04 SPI3_IRQHandler
0x0000000008000c04 DMA1_Stream4_IRQHandler
0x0000000008000c04 I2C1_ER_IRQHandler
0x0000000008000c04 DMA2_Stream6_IRQHandler
0x0000000008000c04 DMA1_Stream3_IRQHandler
*fill* 0x0000000008000c06 0x2
.text.HAL_Init
0x0000000008000bec 0x44 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o
0x0000000008000bec HAL_Init
0x0000000008000c08 0x44 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o
0x0000000008000c08 HAL_Init
.text.HAL_IncTick
0x0000000008000c30 0x28 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o
0x0000000008000c30 HAL_IncTick
0x0000000008000c4c 0x28 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o
0x0000000008000c4c HAL_IncTick
.text.HAL_GetTick
0x0000000008000c58 0x18 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o
0x0000000008000c58 HAL_GetTick
0x0000000008000c74 0x18 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o
0x0000000008000c74 HAL_GetTick
.text.__NVIC_SetPriorityGrouping
0x0000000008000c70 0x48 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o
0x0000000008000c8c 0x48 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o
.text.__NVIC_GetPriorityGrouping
0x0000000008000cb8 0x1c ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o
0x0000000008000cd4 0x1c ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o
.text.__NVIC_EnableIRQ
0x0000000008000cd4 0x3c ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o
0x0000000008000cf0 0x3c ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o
.text.__NVIC_SetPriority
0x0000000008000d10 0x54 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o
0x0000000008000d2c 0x54 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o
.text.NVIC_EncodePriority
0x0000000008000d64 0x66 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o
0x0000000008000d80 0x66 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o
.text.HAL_NVIC_SetPriorityGrouping
0x0000000008000dca 0x16 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o
0x0000000008000dca HAL_NVIC_SetPriorityGrouping
0x0000000008000de6 0x16 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o
0x0000000008000de6 HAL_NVIC_SetPriorityGrouping
.text.HAL_NVIC_SetPriority
0x0000000008000de0 0x38 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o
0x0000000008000de0 HAL_NVIC_SetPriority
0x0000000008000dfc 0x38 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o
0x0000000008000dfc HAL_NVIC_SetPriority
.text.HAL_NVIC_EnableIRQ
0x0000000008000e18 0x1c ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o
0x0000000008000e18 HAL_NVIC_EnableIRQ
0x0000000008000e34 0x1c ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o
0x0000000008000e34 HAL_NVIC_EnableIRQ
.text.HAL_GPIO_Init
0x0000000008000e34 0x308 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o
0x0000000008000e34 HAL_GPIO_Init
0x0000000008000e50 0x308 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o
0x0000000008000e50 HAL_GPIO_Init
.text.HAL_GPIO_ReadPin
0x000000000800113c 0x30 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o
0x000000000800113c HAL_GPIO_ReadPin
0x0000000008001158 0x30 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o
0x0000000008001158 HAL_GPIO_ReadPin
.text.HAL_GPIO_WritePin
0x000000000800116c 0x32 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o
0x000000000800116c HAL_GPIO_WritePin
*fill* 0x000000000800119e 0x2
0x0000000008001188 0x32 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o
0x0000000008001188 HAL_GPIO_WritePin
*fill* 0x00000000080011ba 0x2
.text.HAL_RCC_OscConfig
0x00000000080011a0 0x4f0 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o
0x00000000080011a0 HAL_RCC_OscConfig
0x00000000080011bc 0x4f0 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o
0x00000000080011bc HAL_RCC_OscConfig
.text.HAL_RCC_ClockConfig
0x0000000008001690 0x1cc ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o
0x0000000008001690 HAL_RCC_ClockConfig
0x00000000080016ac 0x1cc ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o
0x00000000080016ac HAL_RCC_ClockConfig
.text.HAL_RCC_GetSysClockFreq
0x000000000800185c 0x20c ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o
0x000000000800185c HAL_RCC_GetSysClockFreq
0x0000000008001878 0x20c ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o
0x0000000008001878 HAL_RCC_GetSysClockFreq
.text.HAL_RCC_GetHCLKFreq
0x0000000008001a68 0x18 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o
0x0000000008001a68 HAL_RCC_GetHCLKFreq
0x0000000008001a84 0x18 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o
0x0000000008001a84 HAL_RCC_GetHCLKFreq
.text.HAL_RCC_GetPCLK1Freq
0x0000000008001a80 0x28 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o
0x0000000008001a80 HAL_RCC_GetPCLK1Freq
0x0000000008001a9c 0x28 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o
0x0000000008001a9c HAL_RCC_GetPCLK1Freq
.text.HAL_RCC_GetPCLK2Freq
0x0000000008001aa8 0x28 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o
0x0000000008001aa8 HAL_RCC_GetPCLK2Freq
0x0000000008001ac4 0x28 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o
0x0000000008001ac4 HAL_RCC_GetPCLK2Freq
.text.HAL_RCC_GetClockConfig
0x0000000008001ad0 0x64 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o
0x0000000008001ad0 HAL_RCC_GetClockConfig
0x0000000008001aec 0x64 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o
0x0000000008001aec HAL_RCC_GetClockConfig
.text.HAL_TIM_Base_Init
0x0000000008001b34 0x9e ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
0x0000000008001b34 HAL_TIM_Base_Init
0x0000000008001b50 0x9e ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
0x0000000008001b50 HAL_TIM_Base_Init
.text.HAL_TIM_Base_MspInit
0x0000000008001bd2 0x14 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
0x0000000008001bd2 HAL_TIM_Base_MspInit
*fill* 0x0000000008001be6 0x2
0x0000000008001bee 0x14 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
0x0000000008001bee HAL_TIM_Base_MspInit
*fill* 0x0000000008001c02 0x2
.text.HAL_TIM_Base_Start_IT
0x0000000008001be8 0xc4 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
0x0000000008001be8 HAL_TIM_Base_Start_IT
0x0000000008001c04 0xc4 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
0x0000000008001c04 HAL_TIM_Base_Start_IT
.text.HAL_TIM_IRQHandler
0x0000000008001cac 0x210 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
0x0000000008001cac HAL_TIM_IRQHandler
0x0000000008001cc8 0x210 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
0x0000000008001cc8 HAL_TIM_IRQHandler
.text.HAL_TIM_OC_DelayElapsedCallback
0x0000000008001ebc 0x14 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
0x0000000008001ebc HAL_TIM_OC_DelayElapsedCallback
0x0000000008001ed8 0x14 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
0x0000000008001ed8 HAL_TIM_OC_DelayElapsedCallback
.text.HAL_TIM_IC_CaptureCallback
0x0000000008001ed0 0x14 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
0x0000000008001ed0 HAL_TIM_IC_CaptureCallback
0x0000000008001eec 0x14 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
0x0000000008001eec HAL_TIM_IC_CaptureCallback
.text.HAL_TIM_PWM_PulseFinishedCallback
0x0000000008001ee4 0x14 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
0x0000000008001ee4 HAL_TIM_PWM_PulseFinishedCallback
0x0000000008001f00 0x14 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
0x0000000008001f00 HAL_TIM_PWM_PulseFinishedCallback
.text.HAL_TIM_TriggerCallback
0x0000000008001ef8 0x14 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
0x0000000008001ef8 HAL_TIM_TriggerCallback
0x0000000008001f14 0x14 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
0x0000000008001f14 HAL_TIM_TriggerCallback
.text.TIM_Base_SetConfig
0x0000000008001f0c 0x100 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
0x0000000008001f0c TIM_Base_SetConfig
0x0000000008001f28 0x100 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
0x0000000008001f28 TIM_Base_SetConfig
.text.HAL_TIMEx_CommutCallback
0x000000000800200c 0x14 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o
0x000000000800200c HAL_TIMEx_CommutCallback
0x0000000008002028 0x14 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o
0x0000000008002028 HAL_TIMEx_CommutCallback
.text.HAL_TIMEx_BreakCallback
0x0000000008002020 0x14 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o
0x0000000008002020 HAL_TIMEx_BreakCallback
0x000000000800203c 0x14 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o
0x000000000800203c HAL_TIMEx_BreakCallback
.text.HAL_UART_Init
0x0000000008002034 0x9a ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o
0x0000000008002034 HAL_UART_Init
0x0000000008002050 0x9a ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o
0x0000000008002050 HAL_UART_Init
.text.HAL_UART_Transmit
0x00000000080020ce 0x124 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o
0x00000000080020ce HAL_UART_Transmit
0x00000000080020ea 0x124 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o
0x00000000080020ea HAL_UART_Transmit
.text.HAL_UART_Receive
0x00000000080021f2 0x144 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o
0x00000000080021f2 HAL_UART_Receive
0x000000000800220e 0x144 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o
0x000000000800220e HAL_UART_Receive
.text.UART_WaitOnFlagUntilTimeout
0x0000000008002336 0xdc ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o
*fill* 0x0000000008002412 0x2
0x0000000008002352 0xdc ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o
*fill* 0x000000000800242e 0x2
.text.UART_SetConfig
0x0000000008002414 0x4e8 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o
0x0000000008002430 0x4e8 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o
.text.__NVIC_SetPriority
0x00000000080028fc 0x54 ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.o
0x0000000008002918 0x54 ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.o
.text.SysTick_Handler
0x0000000008002950 0x20 ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.o
0x0000000008002950 SysTick_Handler
0x000000000800296c 0x20 ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.o
0x000000000800296c SysTick_Handler
.text.SVC_Setup
0x0000000008002970 0x12 ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.o
*fill* 0x0000000008002982 0x2
0x000000000800298c 0x12 ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.o
*fill* 0x000000000800299e 0x2
.text.osKernelInitialize
0x0000000008002984 0x48 ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.o
0x0000000008002984 osKernelInitialize
0x00000000080029a0 0x48 ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.o
0x00000000080029a0 osKernelInitialize
.text.osKernelStart
0x00000000080029cc 0x4c ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.o
0x00000000080029cc osKernelStart
0x00000000080029e8 0x4c ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.o
0x00000000080029e8 osKernelStart
.text.osThreadNew
0x0000000008002a18 0x124 ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.o
0x0000000008002a18 osThreadNew
0x0000000008002a34 0x124 ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.o
0x0000000008002a34 osThreadNew
.text.vApplicationGetIdleTaskMemory
0x0000000008002b3c 0x34 ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.o
0x0000000008002b3c vApplicationGetIdleTaskMemory
0x0000000008002b58 0x34 ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.o
0x0000000008002b58 vApplicationGetIdleTaskMemory
.text.vApplicationGetTimerTaskMemory
0x0000000008002b70 0x34 ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.o
0x0000000008002b70 vApplicationGetTimerTaskMemory
0x0000000008002b8c 0x34 ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.o
0x0000000008002b8c vApplicationGetTimerTaskMemory
.text.vListInitialise
0x0000000008002ba4 0x40 ./Middlewares/Third_Party/FreeRTOS/Source/list.o
0x0000000008002ba4 vListInitialise
0x0000000008002bc0 0x40 ./Middlewares/Third_Party/FreeRTOS/Source/list.o
0x0000000008002bc0 vListInitialise
.text.vListInitialiseItem
0x0000000008002be4 0x1a ./Middlewares/Third_Party/FreeRTOS/Source/list.o
0x0000000008002be4 vListInitialiseItem
0x0000000008002c00 0x1a ./Middlewares/Third_Party/FreeRTOS/Source/list.o
0x0000000008002c00 vListInitialiseItem
.text.vListInsertEnd
0x0000000008002bfe 0x48 ./Middlewares/Third_Party/FreeRTOS/Source/list.o
0x0000000008002bfe vListInsertEnd
0x0000000008002c1a 0x48 ./Middlewares/Third_Party/FreeRTOS/Source/list.o
0x0000000008002c1a vListInsertEnd
.text.vListInsert
0x0000000008002c46 0x72 ./Middlewares/Third_Party/FreeRTOS/Source/list.o
0x0000000008002c46 vListInsert
0x0000000008002c62 0x72 ./Middlewares/Third_Party/FreeRTOS/Source/list.o
0x0000000008002c62 vListInsert
.text.uxListRemove
0x0000000008002cb8 0x54 ./Middlewares/Third_Party/FreeRTOS/Source/list.o
0x0000000008002cb8 uxListRemove
0x0000000008002cd4 0x54 ./Middlewares/Third_Party/FreeRTOS/Source/list.o
0x0000000008002cd4 uxListRemove
.text.xQueueGenericReset
0x0000000008002d0c 0xd0 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
0x0000000008002d0c xQueueGenericReset
0x0000000008002d28 0xd0 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
0x0000000008002d28 xQueueGenericReset
.text.xQueueGenericCreateStatic
0x0000000008002ddc 0xf0 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
0x0000000008002ddc xQueueGenericCreateStatic
0x0000000008002df8 0xf0 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
0x0000000008002df8 xQueueGenericCreateStatic
.text.prvInitialiseNewQueue
0x0000000008002ecc 0x46 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
*fill* 0x0000000008002f12 0x2
0x0000000008002ee8 0x46 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
*fill* 0x0000000008002f2e 0x2
.text.xQueueGenericSend
0x0000000008002f14 0x1fc ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
0x0000000008002f14 xQueueGenericSend
0x0000000008002f30 0x1fc ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
0x0000000008002f30 xQueueGenericSend
.text.xQueueGenericSendFromISR
0x0000000008003110 0x136 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
0x0000000008003110 xQueueGenericSendFromISR
*fill* 0x0000000008003246 0x2
0x000000000800312c 0x136 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
0x000000000800312c xQueueGenericSendFromISR
*fill* 0x0000000008003262 0x2
.text.xQueueReceive
0x0000000008003248 0x1c0 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
0x0000000008003248 xQueueReceive
0x0000000008003264 0x1c0 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
0x0000000008003264 xQueueReceive
.text.prvCopyDataToQueue
0x0000000008003408 0xd4 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
0x0000000008003424 0xd4 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
.text.prvCopyDataFromQueue
0x00000000080034dc 0x4c ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
0x00000000080034f8 0x4c ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
.text.prvUnlockQueue
0x0000000008003528 0xa4 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
0x0000000008003544 0xa4 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
.text.prvIsQueueEmpty
0x00000000080035cc 0x2c ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
0x00000000080035e8 0x2c ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
.text.prvIsQueueFull
0x00000000080035f8 0x30 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
0x0000000008003614 0x30 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
.text.vQueueAddToRegistry
0x0000000008003628 0x54 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
0x0000000008003628 vQueueAddToRegistry
0x0000000008003644 0x54 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
0x0000000008003644 vQueueAddToRegistry
.text.vQueueWaitForMessageRestricted
0x000000000800367c 0x68 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
0x000000000800367c vQueueWaitForMessageRestricted
0x0000000008003698 0x68 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
0x0000000008003698 vQueueWaitForMessageRestricted
.text.xTaskCreateStatic
0x00000000080036e4 0xba ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x00000000080036e4 xTaskCreateStatic
0x0000000008003700 0xba ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003700 xTaskCreateStatic
.text.xTaskCreate
0x000000000800379e 0x8a ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x000000000800379e xTaskCreate
0x00000000080037ba 0x8a ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x00000000080037ba xTaskCreate
.text.prvInitialiseNewTask
0x0000000008003828 0x14c ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003844 0x14c ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
.text.prvAddNewTaskToReadyList
0x0000000008003974 0xe0 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003990 0xe0 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
.text.vTaskDelay
0x0000000008003a54 0x68 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003a54 vTaskDelay
0x0000000008003a70 0x68 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003a70 vTaskDelay
.text.vTaskStartScheduler
0x0000000008003abc 0xe0 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003abc vTaskStartScheduler
0x0000000008003ad8 0xe0 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003ad8 vTaskStartScheduler
.text.vTaskSuspendAll
0x0000000008003b9c 0x1c ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003b9c vTaskSuspendAll
0x0000000008003bb8 0x1c ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003bb8 vTaskSuspendAll
.text.xTaskResumeAll
0x0000000008003bb8 0x13c ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003bb8 xTaskResumeAll
0x0000000008003bd4 0x13c ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003bd4 xTaskResumeAll
.text.xTaskGetTickCount
0x0000000008003cf4 0x20 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003cf4 xTaskGetTickCount
0x0000000008003d10 0x20 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003d10 xTaskGetTickCount
.text.xTaskIncrementTick
0x0000000008003d14 0x174 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003d14 xTaskIncrementTick
0x0000000008003d30 0x174 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003d30 xTaskIncrementTick
.text.vTaskSwitchContext
0x0000000008003e88 0xc8 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003e88 vTaskSwitchContext
0x0000000008003ea4 0xc8 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003ea4 vTaskSwitchContext
.text.vTaskPlaceOnEventList
0x0000000008003f50 0x48 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003f50 vTaskPlaceOnEventList
0x0000000008003f6c 0x48 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003f6c vTaskPlaceOnEventList
.text.vTaskPlaceOnEventListRestricted
0x0000000008003f98 0x58 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003f98 vTaskPlaceOnEventListRestricted
0x0000000008003fb4 0x58 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003fb4 vTaskPlaceOnEventListRestricted
.text.xTaskRemoveFromEventList
0x0000000008003ff0 0xc8 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008003ff0 xTaskRemoveFromEventList
0x000000000800400c 0xc8 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x000000000800400c xTaskRemoveFromEventList
.text.vTaskInternalSetTimeOutState
0x00000000080040b8 0x2c ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x00000000080040b8 vTaskInternalSetTimeOutState
0x00000000080040d4 0x2c ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x00000000080040d4 vTaskInternalSetTimeOutState
.text.xTaskCheckForTimeOut
0x00000000080040e4 0xc4 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x00000000080040e4 xTaskCheckForTimeOut
0x0000000008004100 0xc4 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008004100 xTaskCheckForTimeOut
.text.vTaskMissedYield
0x00000000080041a8 0x18 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x00000000080041a8 vTaskMissedYield
0x00000000080041c4 0x18 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x00000000080041c4 vTaskMissedYield
.text.prvIdleTask
0x00000000080041c0 0x30 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x00000000080041dc 0x30 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
.text.prvInitialiseTaskLists
0x00000000080041f0 0x80 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x000000000800420c 0x80 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
.text.prvCheckTasksWaitingTermination
0x0000000008004270 0x5c ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x000000000800428c 0x5c ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
.text.prvDeleteTCB
0x00000000080042cc 0x68 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x00000000080042e8 0x68 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
.text.prvResetNextTaskUnblockTime
0x0000000008004334 0x40 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008004350 0x40 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
.text.xTaskGetSchedulerState
0x0000000008004374 0x3c ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008004374 xTaskGetSchedulerState
0x0000000008004390 0x3c ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x0000000008004390 xTaskGetSchedulerState
.text.xTaskPriorityDisinherit
0x00000000080043b0 0xdc ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x00000000080043b0 xTaskPriorityDisinherit
0x00000000080043cc 0xdc ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x00000000080043cc xTaskPriorityDisinherit
.text.prvAddCurrentTaskToDelayedList
0x000000000800448c 0xa8 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
0x00000000080044a8 0xa8 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
.text.xTimerCreateTimerTask
0x0000000008004534 0x90 ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
0x0000000008004534 xTimerCreateTimerTask
0x0000000008004550 0x90 ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
0x0000000008004550 xTimerCreateTimerTask
.text.xTimerGenericCommand
0x00000000080045c4 0x9c ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
0x00000000080045c4 xTimerGenericCommand
0x00000000080045e0 0x9c ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
0x00000000080045e0 xTimerGenericCommand
.text.prvProcessExpiredTimer
0x0000000008004660 0x98 ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
0x000000000800467c 0x98 ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
.text.prvTimerTask
0x00000000080046f8 0x24 ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
0x0000000008004714 0x24 ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
.text.prvProcessTimerOrBlockTask
0x000000000800471c 0x9c ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
0x0000000008004738 0x9c ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
.text.prvGetNextExpireTime
0x00000000080047b8 0x48 ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
0x00000000080047d4 0x48 ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
.text.prvSampleTimeNow
0x0000000008004800 0x40 ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
0x000000000800481c 0x40 ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
.text.prvInsertTimerInActiveList
0x0000000008004840 0x84 ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
0x000000000800485c 0x84 ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
.text.prvProcessReceivedCommands
0x00000000080048c4 0x1c4 ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
0x00000000080048e0 0x1c4 ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
.text.prvSwitchTimerLists
0x0000000008004a88 0xc8 ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
0x0000000008004aa4 0xc8 ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
.text.prvCheckForValidListAndQueue
0x0000000008004b50 0x80 ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
0x0000000008004b6c 0x80 ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
.text.pxPortInitialiseStack
0x0000000008004bd0 0x68 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
0x0000000008004bd0 pxPortInitialiseStack
0x0000000008004bec 0x68 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
0x0000000008004bec pxPortInitialiseStack
.text.prvTaskExitError
0x0000000008004c38 0x58 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
0x0000000008004c54 0x58 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
*fill* 0x0000000008004cac 0x4
.text.SVC_Handler
0x0000000008004c90 0x28 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
0x0000000008004c90 SVC_Handler
0x0000000008004cb0 0x28 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
0x0000000008004cb0 SVC_Handler
.text.prvPortStartFirstTask
0x0000000008004cb8 0x28 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
0x0000000008004cd8 0x28 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
.text.xPortStartScheduler
0x0000000008004ce0 0x144 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
0x0000000008004ce0 xPortStartScheduler
0x0000000008004d00 0x144 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
0x0000000008004d00 xPortStartScheduler
.text.vPortEnterCritical
0x0000000008004e24 0x60 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
0x0000000008004e24 vPortEnterCritical
0x0000000008004e44 0x60 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
0x0000000008004e44 vPortEnterCritical
.text.vPortExitCritical
0x0000000008004e84 0x54 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
0x0000000008004e84 vPortExitCritical
*fill* 0x0000000008004ed8 0x8
0x0000000008004ea4 0x54 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
0x0000000008004ea4 vPortExitCritical
*fill* 0x0000000008004ef8 0x8
.text.PendSV_Handler
0x0000000008004ee0 0x68 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
0x0000000008004ee0 PendSV_Handler
0x0000000008004f00 0x68 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
0x0000000008004f00 PendSV_Handler
.text.xPortSysTickHandler
0x0000000008004f48 0x44 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
0x0000000008004f48 xPortSysTickHandler
0x0000000008004f68 0x44 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
0x0000000008004f68 xPortSysTickHandler
.text.vPortSetupTimerInterrupt
0x0000000008004f8c 0x48 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
0x0000000008004f8c vPortSetupTimerInterrupt
0x0000000008004fac 0x48 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
0x0000000008004fac vPortSetupTimerInterrupt
.text.vPortEnableVFP
0x0000000008004fd4 0x14 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
0x0000000008004ff4 0x14 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
.text.vPortValidateInterruptPriority
0x0000000008004fe8 0x80 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
0x0000000008004fe8 vPortValidateInterruptPriority
0x0000000008005008 0x80 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
0x0000000008005008 vPortValidateInterruptPriority
.text.pvPortMalloc
0x0000000008005068 0x198 ./Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.o
0x0000000008005068 pvPortMalloc
0x0000000008005088 0x198 ./Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.o
0x0000000008005088 pvPortMalloc
.text.vPortFree
0x0000000008005200 0xc4 ./Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.o
0x0000000008005200 vPortFree
0x0000000008005220 0xc4 ./Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.o
0x0000000008005220 vPortFree
.text.prvHeapInit
0x00000000080052c4 0xc4 ./Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.o
0x00000000080052e4 0xc4 ./Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.o
.text.prvInsertBlockIntoFreeList
0x0000000008005388 0xb4 ./Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.o
.text.memset 0x000000000800543c 0x10 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memset.o)
0x000000000800543c memset
0x00000000080053a8 0xb4 ./Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.o
.text.memset 0x000000000800545c 0x10 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memset.o)
0x000000000800545c memset
.text._reclaim_reent
0x000000000800544c 0xac C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reent.o)
0x000000000800544c _reclaim_reent
0x000000000800546c 0xac C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-reent.o)
0x000000000800546c _reclaim_reent
.text.__libc_init_array
0x00000000080054f8 0x48 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-init.o)
0x00000000080054f8 __libc_init_array
0x0000000008005518 0x48 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-init.o)
0x0000000008005518 __libc_init_array
.text.__retarget_lock_acquire_recursive
0x0000000008005540 0x2 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o)
0x0000000008005540 __retarget_lock_acquire_recursive
0x0000000008005560 0x2 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o)
0x0000000008005560 __retarget_lock_acquire_recursive
.text.__retarget_lock_release_recursive
0x0000000008005542 0x2 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o)
0x0000000008005542 __retarget_lock_release_recursive
.text.memcpy 0x0000000008005544 0x1c C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memcpy-stub.o)
0x0000000008005544 memcpy
.text._free_r 0x0000000008005560 0x98 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-freer.o)
0x0000000008005560 _free_r
0x0000000008005562 0x2 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-lock.o)
0x0000000008005562 __retarget_lock_release_recursive
.text.memcpy 0x0000000008005564 0x1c C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-memcpy-stub.o)
0x0000000008005564 memcpy
.text._free_r 0x0000000008005580 0x98 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-freer.o)
0x0000000008005580 _free_r
.text.__malloc_lock
0x00000000080055f8 0xc C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mlock.o)
0x00000000080055f8 __malloc_lock
0x0000000008005618 0xc C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mlock.o)
0x0000000008005618 __malloc_lock
.text.__malloc_unlock
0x0000000008005604 0xc C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mlock.o)
0x0000000008005604 __malloc_unlock
0x0000000008005624 0xc C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-mlock.o)
0x0000000008005624 __malloc_unlock
*(.glue_7)
.glue_7 0x0000000008005610 0x0 linker stubs
.glue_7 0x0000000008005630 0x0 linker stubs
*(.glue_7t)
.glue_7t 0x0000000008005610 0x0 linker stubs
.glue_7t 0x0000000008005630 0x0 linker stubs
*(.eh_frame)
.eh_frame 0x0000000008005610 0x0 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o
.eh_frame 0x0000000008005630 0x0 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o
*(.init)
.init 0x0000000008005610 0x4 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crti.o
0x0000000008005610 _init
.init 0x0000000008005614 0x8 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtn.o
.init 0x0000000008005630 0x4 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crti.o
0x0000000008005630 _init
.init 0x0000000008005634 0x8 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtn.o
*(.fini)
.fini 0x000000000800561c 0x4 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crti.o
0x000000000800561c _fini
.fini 0x0000000008005620 0x8 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtn.o
0x0000000008005628 . = ALIGN (0x4)
0x0000000008005628 _etext = .
.fini 0x000000000800563c 0x4 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crti.o
0x000000000800563c _fini
.fini 0x0000000008005640 0x8 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtn.o
0x0000000008005648 . = ALIGN (0x4)
0x0000000008005648 _etext = .
.vfp11_veneer 0x0000000008005628 0x0
.vfp11_veneer 0x0000000008005628 0x0 linker stubs
.vfp11_veneer 0x0000000008005648 0x0
.vfp11_veneer 0x0000000008005648 0x0 linker stubs
.v4_bx 0x0000000008005628 0x0
.v4_bx 0x0000000008005628 0x0 linker stubs
.v4_bx 0x0000000008005648 0x0
.v4_bx 0x0000000008005648 0x0 linker stubs
.iplt 0x0000000008005628 0x0
.iplt 0x0000000008005628 0x0 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o
.iplt 0x0000000008005648 0x0
.iplt 0x0000000008005648 0x0 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o
.rodata 0x0000000008005628 0x90
0x0000000008005628 . = ALIGN (0x4)
.rodata 0x0000000008005648 0x90
0x0000000008005648 . = ALIGN (0x4)
*(.rodata)
.rodata 0x0000000008005628 0x18 ./Core/Src/main.o
.rodata 0x0000000008005640 0x5 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
*fill* 0x0000000008005645 0x3
.rodata 0x0000000008005648 0xd ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
.rodata 0x0000000008005648 0x18 ./Core/Src/main.o
.rodata 0x0000000008005660 0x5 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
*fill* 0x0000000008005665 0x3
.rodata 0x0000000008005668 0xd ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
*(.rodata*)
*fill* 0x0000000008005655 0x3
*fill* 0x0000000008005675 0x3
.rodata.mainTask_attributes
0x0000000008005658 0x24 ./Core/Src/main.o
0x0000000008005658 mainTask_attributes
0x0000000008005678 0x24 ./Core/Src/main.o
0x0000000008005678 mainTask_attributes
.rodata.doorHandler_attributes
0x000000000800567c 0x24 ./Core/Src/main.o
0x000000000800567c doorHandler_attributes
0x000000000800569c 0x24 ./Core/Src/main.o
0x000000000800569c doorHandler_attributes
.rodata.AHBPrescTable
0x00000000080056a0 0x10 ./Core/Src/system_stm32f4xx.o
0x00000000080056a0 AHBPrescTable
0x00000000080056c0 0x10 ./Core/Src/system_stm32f4xx.o
0x00000000080056c0 AHBPrescTable
.rodata.APBPrescTable
0x00000000080056b0 0x8 ./Core/Src/system_stm32f4xx.o
0x00000000080056b0 APBPrescTable
0x00000000080056b8 . = ALIGN (0x4)
0x00000000080056d0 0x8 ./Core/Src/system_stm32f4xx.o
0x00000000080056d0 APBPrescTable
0x00000000080056d8 . = ALIGN (0x4)
.ARM.extab 0x00000000080056b8 0x0
0x00000000080056b8 . = ALIGN (0x4)
.ARM.extab 0x00000000080056d8 0x0
0x00000000080056d8 . = ALIGN (0x4)
*(.ARM.extab* .gnu.linkonce.armextab.*)
0x00000000080056b8 . = ALIGN (0x4)
0x00000000080056d8 . = ALIGN (0x4)
.ARM 0x00000000080056b8 0x8
0x00000000080056b8 . = ALIGN (0x4)
0x00000000080056b8 __exidx_start = .
.ARM 0x00000000080056d8 0x8
0x00000000080056d8 . = ALIGN (0x4)
0x00000000080056d8 __exidx_start = .
*(.ARM.exidx*)
.ARM.exidx 0x00000000080056b8 0x8 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard\libgcc.a(_udivmoddi4.o)
0x00000000080056c0 __exidx_end = .
0x00000000080056c0 . = ALIGN (0x4)
.ARM.exidx 0x00000000080056d8 0x8 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard\libgcc.a(_udivmoddi4.o)
0x00000000080056e0 __exidx_end = .
0x00000000080056e0 . = ALIGN (0x4)
.rel.dyn 0x00000000080056c0 0x0
.rel.iplt 0x00000000080056c0 0x0 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o
.rel.dyn 0x00000000080056e0 0x0
.rel.iplt 0x00000000080056e0 0x0 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o
.preinit_array 0x00000000080056c0 0x0
0x00000000080056c0 . = ALIGN (0x4)
0x00000000080056c0 PROVIDE (__preinit_array_start = .)
.preinit_array 0x00000000080056e0 0x0
0x00000000080056e0 . = ALIGN (0x4)
0x00000000080056e0 PROVIDE (__preinit_array_start = .)
*(.preinit_array*)
0x00000000080056c0 PROVIDE (__preinit_array_end = .)
0x00000000080056c0 . = ALIGN (0x4)
0x00000000080056e0 PROVIDE (__preinit_array_end = .)
0x00000000080056e0 . = ALIGN (0x4)
.init_array 0x00000000080056c0 0x4
0x00000000080056c0 . = ALIGN (0x4)
0x00000000080056c0 PROVIDE (__init_array_start = .)
.init_array 0x00000000080056e0 0x4
0x00000000080056e0 . = ALIGN (0x4)
0x00000000080056e0 PROVIDE (__init_array_start = .)
*(SORT_BY_NAME(.init_array.*))
*(.init_array*)
.init_array 0x00000000080056c0 0x4 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o
0x00000000080056c4 PROVIDE (__init_array_end = .)
0x00000000080056c4 . = ALIGN (0x4)
.init_array 0x00000000080056e0 0x4 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o
0x00000000080056e4 PROVIDE (__init_array_end = .)
0x00000000080056e4 . = ALIGN (0x4)
.fini_array 0x00000000080056c4 0x4
0x00000000080056c4 . = ALIGN (0x4)
.fini_array 0x00000000080056e4 0x4
0x00000000080056e4 . = ALIGN (0x4)
[!provide] PROVIDE (__fini_array_start = .)
*(SORT_BY_NAME(.fini_array.*))
*(.fini_array*)
.fini_array 0x00000000080056c4 0x4 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o
.fini_array 0x00000000080056e4 0x4 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o
[!provide] PROVIDE (__fini_array_end = .)
0x00000000080056c8 . = ALIGN (0x4)
0x00000000080056c8 _sidata = LOADADDR (.data)
0x00000000080056e8 . = ALIGN (0x4)
0x00000000080056e8 _sidata = LOADADDR (.data)
.data 0x0000000020000000 0x60 load address 0x00000000080056c8
.data 0x0000000020000000 0x60 load address 0x00000000080056e8
0x0000000020000000 . = ALIGN (0x4)
0x0000000020000000 _sdata = .
*(.data)
@ -5119,11 +5120,11 @@ LOAD C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.ext
0x0000000020000060 . = ALIGN (0x4)
0x0000000020000060 _edata = .
.igot.plt 0x0000000020000060 0x0 load address 0x0000000008005728
.igot.plt 0x0000000020000060 0x0 load address 0x0000000008005748
.igot.plt 0x0000000020000060 0x0 C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202305231506/tools/bin/../lib/gcc/arm-none-eabi/11.3.1/thumb/v7e-m+fp/hard/crtbegin.o
0x0000000020000060 . = ALIGN (0x4)
.bss 0x0000000020000060 0x4bf4 load address 0x0000000008005728
.bss 0x0000000020000060 0x4bf4 load address 0x0000000008005748
0x0000000020000060 _sbss = .
0x0000000020000060 __bss_start__ = _sbss
*(.bss)
@ -5274,7 +5275,7 @@ LOAD C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.ext
0x0000000020004c54 __bss_end__ = _ebss
._user_heap_stack
0x0000000020004c54 0x3004 load address 0x0000000008005728
0x0000000020004c54 0x3004 load address 0x0000000008005748
0x0000000020004c58 . = ALIGN (0x8)
*fill* 0x0000000020004c54 0x4
[!provide] PROVIDE (end = .)
@ -5569,27 +5570,27 @@ LOAD C:/ST/STM32CubeIDE_1.13.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.ext
.debug_macro 0x0000000000003164 0x233 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
.debug_macro 0x0000000000003397 0x1c0 ./Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.o
.debug_line 0x0000000000000000 0x157dd
.debug_line 0x0000000000000000 0xc25 ./Core/Src/main.o
.debug_line 0x0000000000000c25 0x795 ./Core/Src/stm32f4xx_hal_msp.o
.debug_line 0x00000000000013ba 0x7b4 ./Core/Src/stm32f4xx_hal_timebase_tim.o
.debug_line 0x0000000000001b6e 0x7e3 ./Core/Src/stm32f4xx_it.o
.debug_line 0x0000000000002351 0x7c8 ./Core/Src/system_stm32f4xx.o
.debug_line 0x0000000000002b19 0x7a ./Core/Startup/startup_stm32f411retx.o
.debug_line 0x0000000000002b93 0xa2e ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o
.debug_line 0x00000000000035c1 0xcdd ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o
.debug_line 0x000000000000429e 0xb66 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o
.debug_line 0x0000000000004e04 0xda7 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o
.debug_line 0x0000000000005bab 0x34f4 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
.debug_line 0x000000000000909f 0x19c6 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o
.debug_line 0x000000000000aa65 0x2ad0 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o
.debug_line 0x000000000000d535 0x244f ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.o
.debug_line 0x000000000000f984 0x797 ./Middlewares/Third_Party/FreeRTOS/Source/list.o
.debug_line 0x000000000001011b 0x1761 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
.debug_line 0x000000000001187c 0x1e51 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
.debug_line 0x00000000000136cd 0xdfb ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
.debug_line 0x00000000000144c8 0x957 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
.debug_line 0x0000000000014e1f 0x9be ./Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.o
.debug_line 0x0000000000000000 0x157ed
.debug_line 0x0000000000000000 0xc35 ./Core/Src/main.o
.debug_line 0x0000000000000c35 0x795 ./Core/Src/stm32f4xx_hal_msp.o
.debug_line 0x00000000000013ca 0x7b4 ./Core/Src/stm32f4xx_hal_timebase_tim.o
.debug_line 0x0000000000001b7e 0x7e3 ./Core/Src/stm32f4xx_it.o
.debug_line 0x0000000000002361 0x7c8 ./Core/Src/system_stm32f4xx.o
.debug_line 0x0000000000002b29 0x7a ./Core/Startup/startup_stm32f411retx.o
.debug_line 0x0000000000002ba3 0xa2e ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o
.debug_line 0x00000000000035d1 0xcdd ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o
.debug_line 0x00000000000042ae 0xb66 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o
.debug_line 0x0000000000004e14 0xda7 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o
.debug_line 0x0000000000005bbb 0x34f4 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
.debug_line 0x00000000000090af 0x19c6 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o
.debug_line 0x000000000000aa75 0x2ad0 ./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o
.debug_line 0x000000000000d545 0x244f ./Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.o
.debug_line 0x000000000000f994 0x797 ./Middlewares/Third_Party/FreeRTOS/Source/list.o
.debug_line 0x000000000001012b 0x1761 ./Middlewares/Third_Party/FreeRTOS/Source/queue.o
.debug_line 0x000000000001188c 0x1e51 ./Middlewares/Third_Party/FreeRTOS/Source/tasks.o
.debug_line 0x00000000000136dd 0xdfb ./Middlewares/Third_Party/FreeRTOS/Source/timers.o
.debug_line 0x00000000000144d8 0x957 ./Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.o
.debug_line 0x0000000000014e2f 0x9be ./Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.o
.debug_str 0x0000000000000000 0x9856e
.debug_str 0x0000000000000000 0x8fada ./Core/Src/main.o

View File

@ -177,7 +177,8 @@ RCC.VCOOutputFreq_Value=336000000
RCC.VcooutputI2S=96000000
SH.GPXTI13.0=GPIO_EXTI13
SH.GPXTI13.ConfNb=1
USART2.IPParameters=VirtualMode,WordLength
USART2.BaudRate=9600
USART2.IPParameters=VirtualMode,WordLength,BaudRate
USART2.VirtualMode=VM_ASYNC
USART2.WordLength=WORDLENGTH_8B
VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2

BIN
face_recognition/boom.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

View File

@ -0,0 +1,15 @@
import cv2
cam = cv2.VideoCapture(0)
while True:
check, frame = cam.read()
cv2.imshow('video', frame)
key = cv2.waitKey(1)
if key == 27:
break
cam.release()
cv2.destroyAllWindows()

View File

@ -0,0 +1,102 @@
import face_recognition as face
import numpy as np
import cv2
#ORIGINAL_CODE_CREDIT: https://github.com/ageitgey/face_recognition/blob/master/examples/facerec_from_webcam_faster.py
#ดึงวิดีโอตัวอย่างเข้ามา, ถ้าต้องการใช้webcamให้ใส่เป็น
video_capture = cv2.VideoCapture(0)
#ใบหน้าคนที่ต้องการรู้จำเป็นreference #คนที่1
boom_image = face.load_image_file("boom.jpg")
boom_face_encoding = face.face_encodings(boom_image)[0]
tat_image = face.load_image_file("tat.jpg")
tat_face_encoding = face.face_encodings(tat_image)[0]
'''
#ใบหน้าคนที่ต้องการรู้จำเป็นreference #คนที่2
oat_image = face.load_image_file("oat.jpg")
oat_face_encoding = face.face_encodings(oat_image)[0]
'''
#ประกาศตัวแปร
face_locations = []
face_encodings = []
face_names = []
face_percent = []
#ตัวแปรนี้ใช้สำหรับคิดเฟรมเว้นเฟรมเพื่อเพิ่มfps
process_this_frame = True
known_face_encodings = [boom_face_encoding, tat_face_encoding]
known_face_names = ["BOOM", "TAT"]
#loopคำนวณแต่ละเฟรมของวิดีโอ
while True:
#อ่านค่าแต่ละเฟรมจากวิดีโอ
ret, frame = video_capture.read()
if ret:
#ลดขนาดสองเท่าเพื่อเพิ่มfps
small_frame = cv2.resize(frame, (0,0), fx=0.5,fy=0.5)
#เปลี่ยน bgrเป็น rgb
#rgb_small_frame = small_frame[:,:,::-1]
rgb_small_frame = np.ascontiguousarray(small_frame[:, :, ::-1])
face_names = []
face_percent = []
if process_this_frame:
#ค้นหาตำแหน่งใบหน้าในเฟรม
face_locations = face.face_locations(rgb_small_frame)
#นำใบหน้ามาหาfeaturesต่างๆที่เป็นเอกลักษณ์
face_encodings = face.face_encodings(rgb_small_frame, face_locations)
#เทียบแต่ละใบหน้า
for face_encoding in face_encodings:
face_distances = face.face_distance(known_face_encodings, face_encoding)
best = np.argmin(face_distances)
face_percent_value = 1-face_distances[best]
#กรองใบหน้าที่ความมั่นใจ50% ปล.สามารถลองเปลี่ยนได้
if face_percent_value >= 0.4:
name = known_face_names[best]
percent = round(face_percent_value*100,2)
face_percent.append(percent)
else:
name = "UNKNOWN"
face_percent.append(0)
face_names.append(name)
#วาดกล่องและtextเมื่อแสดงผลออกมาออกมา
for (top,right,bottom, left), name, percent in zip(face_locations, face_names, face_percent):
top*= 2
right*= 2
bottom*= 2
left*= 2
if name == "UNKNOWN":
color = [46,2,209]
else:
color = [255,102,51]
cv2.rectangle(frame, (left,top), (right,bottom), color, 2)
cv2.rectangle(frame, (left-1, top -30), (right+1,top), color, cv2.FILLED)
cv2.rectangle(frame, (left-1, bottom), (right+1,bottom+30), color, cv2.FILLED)
font = cv2.FONT_HERSHEY_DUPLEX
cv2.putText(frame, name, (left+6, top-6), font, 0.6, (255,255,255), 1)
cv2.putText(frame, "MATCH: "+str(percent)+"%", (left+6, bottom+23), font, 0.6, (255,255,255), 1)
#สลับค่าเป็นค่าตรงข้ามเพื่อให้คิดเฟรมเว้นเฟรม
process_this_frame = not process_this_frame
#แสดงผลลัพท์ออกมา
cv2.imshow("Video", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
#ล้างค่าต่างๆเมื่อปิดโปรแกรม
video_capture.release()
cv2.destroyAllWindows()

View File

@ -0,0 +1,105 @@
import face_recognition
import cv2
import numpy as np
import matplotlib.pyplot as plt
# This is a demo of running face recognition on live video from your webcam. It's a little more complicated than the
# other example, but it includes some basic performance tweaks to make things run a lot faster:
# 1. Process each video frame at 1/4 resolution (though still display it at full resolution)
# 2. Only detect faces in every other frame of video.
# PLEASE NOTE: This example requires OpenCV (the `cv2` library) to be installed only to read from your webcam.
# OpenCV is *not* required to use the face_recognition library. It's only required if you want to run this
# specific demo. If you have trouble installing it, try any of the other demos that don't require it instead.
# Get a reference to webcam #0 (the default one)
video_capture = cv2.VideoCapture(0)
# Load a sample picture and learn how to recognize it.
PUN_image = face_recognition.load_image_file("PUN.jpg")
PUN_face_encoding = face_recognition.face_encodings(PUN_image)[0]
# Load a second sample picture and learn how to recognize it.
TAT_image = face_recognition.load_image_file("tat.jpg")
TAT_face_encoding = face_recognition.face_encodings(TAT_image)[0]
# Create arrays of known face encodings and their names
known_face_encodings = [
PUN_face_encoding,
TAT_face_encoding
]
known_face_names = [
"PUN",
"TAT"
]
# Initialize some variables
face_locations = []
face_encodings = []
face_names = []
process_this_frame = True
while True:
# Grab a single frame of video
ret, frame = video_capture.read()
# Only process every other frame of video to save time
if process_this_frame:
# Resize frame of video to 1/4 size for faster face recognition processing
small_frame = cv2.resize(frame, (0, 0), fx=0.25, fy=0.25)
# Convert the image from BGR color (which OpenCV uses) to RGB color (which face_recognition uses)
rgb_small_frame = np.ascontiguousarray(small_frame[:, :, ::-1])
# Find all the faces and face encodings in the current frame of video
face_locations = face_recognition.face_locations(rgb_small_frame)
face_encodings = face_recognition.face_encodings(rgb_small_frame, face_locations)
face_names = []
for face_encoding in face_encodings:
# See if the face is a match for the known face(s)
matches = face_recognition.compare_faces(known_face_encodings, face_encoding)
name = "Unknown"
# # If a match was found in known_face_encodings, just use the first one.
# if True in matches:
# first_match_index = matches.index(True)
# name = known_face_names[first_match_index]
# Or instead, use the known face with the smallest distance to the new face
face_distances = face_recognition.face_distance(known_face_encodings, face_encoding)
best_match_index = np.argmin(face_distances)
if matches[best_match_index]:
name = known_face_names[best_match_index]
face_names.append(name)
process_this_frame = not process_this_frame
# Display the results
for (top, right, bottom, left), name in zip(face_locations, face_names):
# Scale back up face locations since the frame we detected in was scaled to 1/4 size
top *= 4
right *= 4
bottom *= 4
left *= 4
# Draw a box around the face
cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2)
# Draw a label with a name below the face
cv2.rectangle(frame, (left, bottom - 35), (right, bottom), (0, 0, 255), cv2.FILLED)
font = cv2.FONT_HERSHEY_DUPLEX
cv2.putText(frame, name, (left + 6, bottom - 6), font, 1.0, (255, 255, 255), 1)
# Display the resulting image
cv2.imshow('Video', frame)
# Hit 'q' on the keyboard to quit!
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# Release handle to the webcam
video_capture.release()
cv2.destroyAllWindows()

BIN
face_recognition/tat.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB