diff --git a/TD-1-test/Core/Src/main.c b/TD-1-test/Core/Src/main.c index 95b2f7f..99ce018 100644 --- a/TD-1-test/Core/Src/main.c +++ b/TD-1-test/Core/Src/main.c @@ -267,6 +267,9 @@ static void MX_GPIO_Init(void) } /* USER CODE BEGIN 4 */ +void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { + *(volatile uint32_t *)0x40020014 ^= (1 << 5); +} /* USER CODE END 4 */ diff --git a/TD-1-test/Core/Src/stm32l1xx_it.c b/TD-1-test/Core/Src/stm32l1xx_it.c index 1227bc5..76c4590 100644 --- a/TD-1-test/Core/Src/stm32l1xx_it.c +++ b/TD-1-test/Core/Src/stm32l1xx_it.c @@ -205,8 +205,6 @@ void EXTI15_10_IRQHandler(void) { /* USER CODE BEGIN EXTI15_10_IRQn 0 */ - *(volatile uint32_t *)0x40020014 ^= (1 << 5); - /* USER CODE END EXTI15_10_IRQn 0 */ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13); diff --git a/TD-1-test/Debug/Core/Src/main.cyclo b/TD-1-test/Debug/Core/Src/main.cyclo index 87e9df5..9f42002 100644 --- a/TD-1-test/Debug/Core/Src/main.cyclo +++ b/TD-1-test/Debug/Core/Src/main.cyclo @@ -2,4 +2,5 @@ ../Core/Src/main.c:154:6:SystemClock_Config 3 ../Core/Src/main.c:198:13:MX_USART2_UART_Init 2 ../Core/Src/main.c:231:13:MX_GPIO_Init 1 -../Core/Src/main.c:277:6:Error_Handler 1 +../Core/Src/main.c:270:6:HAL_GPIO_EXTI_Callback 1 +../Core/Src/main.c:280:6:Error_Handler 1 diff --git a/TD-1-test/Debug/Core/Src/main.o b/TD-1-test/Debug/Core/Src/main.o index 971cb13..2ffd1e3 100644 Binary files a/TD-1-test/Debug/Core/Src/main.o and b/TD-1-test/Debug/Core/Src/main.o differ diff --git a/TD-1-test/Debug/Core/Src/main.su b/TD-1-test/Debug/Core/Src/main.su index 86ecf6b..7b95337 100644 --- a/TD-1-test/Debug/Core/Src/main.su +++ b/TD-1-test/Debug/Core/Src/main.su @@ -2,4 +2,5 @@ ../Core/Src/main.c:154:6:SystemClock_Config 80 static ../Core/Src/main.c:198:13:MX_USART2_UART_Init 8 static ../Core/Src/main.c:231:13:MX_GPIO_Init 48 static -../Core/Src/main.c:277:6:Error_Handler 4 static,ignoring_inline_asm +../Core/Src/main.c:270:6:HAL_GPIO_EXTI_Callback 16 static +../Core/Src/main.c:280:6:Error_Handler 4 static,ignoring_inline_asm diff --git a/TD-1-test/Debug/Core/Src/stm32l1xx_it.o b/TD-1-test/Debug/Core/Src/stm32l1xx_it.o index 0d5a31a..61f5448 100644 Binary files a/TD-1-test/Debug/Core/Src/stm32l1xx_it.o and b/TD-1-test/Debug/Core/Src/stm32l1xx_it.o differ diff --git a/TD-1-test/Debug/TD-1-test.elf b/TD-1-test/Debug/TD-1-test.elf index e8b61ea..27c6fcf 100755 Binary files a/TD-1-test/Debug/TD-1-test.elf and b/TD-1-test/Debug/TD-1-test.elf differ diff --git a/TD-1-test/Debug/TD-1-test.list b/TD-1-test/Debug/TD-1-test.list index ff53d4b..5e7726f 100644 --- a/TD-1-test/Debug/TD-1-test.list +++ b/TD-1-test/Debug/TD-1-test.list @@ -27,25 +27,25 @@ Idx Name Size VMA LMA File off Algn ALLOC 11 .ARM.attributes 00000029 00000000 00000000 0000300c 2**0 CONTENTS, READONLY - 12 .debug_info 00006af0 00000000 00000000 00003035 2**0 + 12 .debug_info 00006afc 00000000 00000000 00003035 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 13 .debug_abbrev 000012f9 00000000 00000000 00009b25 2**0 + 13 .debug_abbrev 0000130c 00000000 00000000 00009b31 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 14 .debug_aranges 00000620 00000000 00000000 0000ae20 2**3 + 14 .debug_aranges 00000628 00000000 00000000 0000ae40 2**3 CONTENTS, READONLY, DEBUGGING, OCTETS - 15 .debug_rnglists 000004ad 00000000 00000000 0000b440 2**0 + 15 .debug_rnglists 000004b3 00000000 00000000 0000b468 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 16 .debug_macro 00014879 00000000 00000000 0000b8ed 2**0 + 16 .debug_macro 00014879 00000000 00000000 0000b91b 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 17 .debug_line 0000705c 00000000 00000000 00020166 2**0 + 17 .debug_line 00007071 00000000 00000000 00020194 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 18 .debug_str 000819bb 00000000 00000000 000271c2 2**0 + 18 .debug_str 000819bb 00000000 00000000 00027205 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 19 .comment 00000043 00000000 00000000 000a8b7d 2**0 + 19 .comment 00000043 00000000 00000000 000a8bc0 2**0 CONTENTS, READONLY - 20 .debug_frame 00001824 00000000 00000000 000a8bc0 2**2 + 20 .debug_frame 0000184c 00000000 00000000 000a8c04 2**2 CONTENTS, READONLY, DEBUGGING, OCTETS - 21 .debug_line_str 00000069 00000000 00000000 000aa3e4 2**0 + 21 .debug_line_str 00000069 00000000 00000000 000aa450 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS Disassembly of section .text: @@ -386,7 +386,7 @@ int main(void) /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); - 80004b6: f000 f9d6 bl 8000866 + 80004b6: f000 f9e0 bl 800087a /* USER CODE BEGIN Init */ /* USER CODE END Init */ @@ -494,7 +494,7 @@ void SystemClock_Config(void) 8000538: d001 beq.n 800053e { Error_Handler(); - 800053a: f000 f8b3 bl 80006a4 + 800053a: f000 f8c5 bl 80006c8 } /** Initializes the CPU, AHB and APB buses clocks @@ -526,7 +526,7 @@ void SystemClock_Config(void) 8000560: d001 beq.n 8000566 { Error_Handler(); - 8000562: f000 f89f bl 80006a4 + 8000562: f000 f8b1 bl 80006c8 } } 8000566: bf00 nop @@ -590,7 +590,7 @@ static void MX_USART2_UART_Init(void) 80005b4: d001 beq.n 80005ba { Error_Handler(); - 80005b6: f000 f875 bl 80006a4 + 80005b6: f000 f887 bl 80006c8 } /* USER CODE BEGIN USART2_Init 2 */ @@ -676,7 +676,7 @@ static void MX_GPIO_Init(void) 800063e: 2200 movs r2, #0 8000640: 2120 movs r1, #32 8000642: 4816 ldr r0, [pc, #88] @ (800069c ) - 8000644: f000 fc1c bl 8000e80 + 8000644: f000 fc26 bl 8000e94 /*Configure GPIO pin : PC13 */ GPIO_InitStruct.Pin = GPIO_PIN_13; @@ -692,7 +692,7 @@ static void MX_GPIO_Init(void) 8000658: f107 0314 add.w r3, r7, #20 800065c: 4619 mov r1, r3 800065e: 4810 ldr r0, [pc, #64] @ (80006a0 ) - 8000660: f000 fa7e bl 8000b60 + 8000660: f000 fa88 bl 8000b74 /*Configure GPIO pin : LD2_Pin */ GPIO_InitStruct.Pin = LD2_Pin; @@ -711,17 +711,17 @@ static void MX_GPIO_Init(void) 8000674: f107 0314 add.w r3, r7, #20 8000678: 4619 mov r1, r3 800067a: 4808 ldr r0, [pc, #32] @ (800069c ) - 800067c: f000 fa70 bl 8000b60 + 800067c: f000 fa7a bl 8000b74 /* EXTI interrupt init*/ HAL_NVIC_SetPriority(EXTI15_10_IRQn, 0, 0); 8000680: 2200 movs r2, #0 8000682: 2100 movs r1, #0 8000684: 2028 movs r0, #40 @ 0x28 - 8000686: f000 fa34 bl 8000af2 + 8000686: f000 fa3e bl 8000b06 HAL_NVIC_EnableIRQ(EXTI15_10_IRQn); 800068a: 2028 movs r0, #40 @ 0x28 - 800068c: f000 fa4d bl 8000b2a + 800068c: f000 fa57 bl 8000b3e /* USER CODE BEGIN MX_GPIO_Init_2 */ @@ -735,1660 +735,1651 @@ static void MX_GPIO_Init(void) 800069c: 40020000 .word 0x40020000 80006a0: 40020800 .word 0x40020800 -080006a4 : +080006a4 : + +/* USER CODE BEGIN 4 */ +void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { + 80006a4: b480 push {r7} + 80006a6: b083 sub sp, #12 + 80006a8: af00 add r7, sp, #0 + 80006aa: 4603 mov r3, r0 + 80006ac: 80fb strh r3, [r7, #6] + *(volatile uint32_t *)0x40020014 ^= (1 << 5); + 80006ae: 4b05 ldr r3, [pc, #20] @ (80006c4 ) + 80006b0: 681b ldr r3, [r3, #0] + 80006b2: 4a04 ldr r2, [pc, #16] @ (80006c4 ) + 80006b4: f083 0320 eor.w r3, r3, #32 + 80006b8: 6013 str r3, [r2, #0] +} + 80006ba: bf00 nop + 80006bc: 370c adds r7, #12 + 80006be: 46bd mov sp, r7 + 80006c0: bc80 pop {r7} + 80006c2: 4770 bx lr + 80006c4: 40020014 .word 0x40020014 + +080006c8 : /** * @brief This function is executed in case of error occurrence. * @retval None */ void Error_Handler(void) { - 80006a4: b480 push {r7} - 80006a6: af00 add r7, sp, #0 + 80006c8: b480 push {r7} + 80006ca: af00 add r7, sp, #0 \details Disables IRQ interrupts by setting the I-bit in the CPSR. Can only be executed in Privileged modes. */ __STATIC_FORCEINLINE void __disable_irq(void) { __ASM volatile ("cpsid i" : : : "memory"); - 80006a8: b672 cpsid i + 80006cc: b672 cpsid i } - 80006aa: bf00 nop + 80006ce: bf00 nop /* USER CODE BEGIN Error_Handler_Debug */ /* User can add his own implementation to report the HAL error return state */ __disable_irq(); while (1) - 80006ac: bf00 nop - 80006ae: e7fd b.n 80006ac + 80006d0: bf00 nop + 80006d2: e7fd b.n 80006d0 -080006b0 : +080006d4 : /* USER CODE END 0 */ /** * Initializes the Global MSP. */ void HAL_MspInit(void) { - 80006b0: b580 push {r7, lr} - 80006b2: b084 sub sp, #16 - 80006b4: af00 add r7, sp, #0 + 80006d4: b580 push {r7, lr} + 80006d6: b084 sub sp, #16 + 80006d8: af00 add r7, sp, #0 /* USER CODE BEGIN MspInit 0 */ /* USER CODE END MspInit 0 */ __HAL_RCC_COMP_CLK_ENABLE(); - 80006b6: 4b15 ldr r3, [pc, #84] @ (800070c ) - 80006b8: 6a5b ldr r3, [r3, #36] @ 0x24 - 80006ba: 4a14 ldr r2, [pc, #80] @ (800070c ) - 80006bc: f043 4300 orr.w r3, r3, #2147483648 @ 0x80000000 - 80006c0: 6253 str r3, [r2, #36] @ 0x24 - 80006c2: 4b12 ldr r3, [pc, #72] @ (800070c ) - 80006c4: 6a5b ldr r3, [r3, #36] @ 0x24 - 80006c6: f003 4300 and.w r3, r3, #2147483648 @ 0x80000000 - 80006ca: 60fb str r3, [r7, #12] - 80006cc: 68fb ldr r3, [r7, #12] - __HAL_RCC_SYSCFG_CLK_ENABLE(); - 80006ce: 4b0f ldr r3, [pc, #60] @ (800070c ) - 80006d0: 6a1b ldr r3, [r3, #32] - 80006d2: 4a0e ldr r2, [pc, #56] @ (800070c ) - 80006d4: f043 0301 orr.w r3, r3, #1 - 80006d8: 6213 str r3, [r2, #32] - 80006da: 4b0c ldr r3, [pc, #48] @ (800070c ) - 80006dc: 6a1b ldr r3, [r3, #32] - 80006de: f003 0301 and.w r3, r3, #1 - 80006e2: 60bb str r3, [r7, #8] - 80006e4: 68bb ldr r3, [r7, #8] - __HAL_RCC_PWR_CLK_ENABLE(); - 80006e6: 4b09 ldr r3, [pc, #36] @ (800070c ) + 80006da: 4b15 ldr r3, [pc, #84] @ (8000730 ) + 80006dc: 6a5b ldr r3, [r3, #36] @ 0x24 + 80006de: 4a14 ldr r2, [pc, #80] @ (8000730 ) + 80006e0: f043 4300 orr.w r3, r3, #2147483648 @ 0x80000000 + 80006e4: 6253 str r3, [r2, #36] @ 0x24 + 80006e6: 4b12 ldr r3, [pc, #72] @ (8000730 ) 80006e8: 6a5b ldr r3, [r3, #36] @ 0x24 - 80006ea: 4a08 ldr r2, [pc, #32] @ (800070c ) - 80006ec: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 - 80006f0: 6253 str r3, [r2, #36] @ 0x24 - 80006f2: 4b06 ldr r3, [pc, #24] @ (800070c ) - 80006f4: 6a5b ldr r3, [r3, #36] @ 0x24 - 80006f6: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 - 80006fa: 607b str r3, [r7, #4] - 80006fc: 687b ldr r3, [r7, #4] + 80006ea: f003 4300 and.w r3, r3, #2147483648 @ 0x80000000 + 80006ee: 60fb str r3, [r7, #12] + 80006f0: 68fb ldr r3, [r7, #12] + __HAL_RCC_SYSCFG_CLK_ENABLE(); + 80006f2: 4b0f ldr r3, [pc, #60] @ (8000730 ) + 80006f4: 6a1b ldr r3, [r3, #32] + 80006f6: 4a0e ldr r2, [pc, #56] @ (8000730 ) + 80006f8: f043 0301 orr.w r3, r3, #1 + 80006fc: 6213 str r3, [r2, #32] + 80006fe: 4b0c ldr r3, [pc, #48] @ (8000730 ) + 8000700: 6a1b ldr r3, [r3, #32] + 8000702: f003 0301 and.w r3, r3, #1 + 8000706: 60bb str r3, [r7, #8] + 8000708: 68bb ldr r3, [r7, #8] + __HAL_RCC_PWR_CLK_ENABLE(); + 800070a: 4b09 ldr r3, [pc, #36] @ (8000730 ) + 800070c: 6a5b ldr r3, [r3, #36] @ 0x24 + 800070e: 4a08 ldr r2, [pc, #32] @ (8000730 ) + 8000710: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 + 8000714: 6253 str r3, [r2, #36] @ 0x24 + 8000716: 4b06 ldr r3, [pc, #24] @ (8000730 ) + 8000718: 6a5b ldr r3, [r3, #36] @ 0x24 + 800071a: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 800071e: 607b str r3, [r7, #4] + 8000720: 687b ldr r3, [r7, #4] HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_0); - 80006fe: 2007 movs r0, #7 - 8000700: f000 f9ec bl 8000adc + 8000722: 2007 movs r0, #7 + 8000724: f000 f9e4 bl 8000af0 /* System interrupt init*/ /* USER CODE BEGIN MspInit 1 */ /* USER CODE END MspInit 1 */ } - 8000704: bf00 nop - 8000706: 3710 adds r7, #16 - 8000708: 46bd mov sp, r7 - 800070a: bd80 pop {r7, pc} - 800070c: 40023800 .word 0x40023800 + 8000728: bf00 nop + 800072a: 3710 adds r7, #16 + 800072c: 46bd mov sp, r7 + 800072e: bd80 pop {r7, pc} + 8000730: 40023800 .word 0x40023800 -08000710 : +08000734 : * This function configures the hardware resources used in this example * @param huart: UART handle pointer * @retval None */ void HAL_UART_MspInit(UART_HandleTypeDef* huart) { - 8000710: b580 push {r7, lr} - 8000712: b08a sub sp, #40 @ 0x28 - 8000714: af00 add r7, sp, #0 - 8000716: 6078 str r0, [r7, #4] + 8000734: b580 push {r7, lr} + 8000736: b08a sub sp, #40 @ 0x28 + 8000738: af00 add r7, sp, #0 + 800073a: 6078 str r0, [r7, #4] GPIO_InitTypeDef GPIO_InitStruct = {0}; - 8000718: f107 0314 add.w r3, r7, #20 - 800071c: 2200 movs r2, #0 - 800071e: 601a str r2, [r3, #0] - 8000720: 605a str r2, [r3, #4] - 8000722: 609a str r2, [r3, #8] - 8000724: 60da str r2, [r3, #12] - 8000726: 611a str r2, [r3, #16] + 800073c: f107 0314 add.w r3, r7, #20 + 8000740: 2200 movs r2, #0 + 8000742: 601a str r2, [r3, #0] + 8000744: 605a str r2, [r3, #4] + 8000746: 609a str r2, [r3, #8] + 8000748: 60da str r2, [r3, #12] + 800074a: 611a str r2, [r3, #16] if(huart->Instance==USART2) - 8000728: 687b ldr r3, [r7, #4] - 800072a: 681b ldr r3, [r3, #0] - 800072c: 4a17 ldr r2, [pc, #92] @ (800078c ) - 800072e: 4293 cmp r3, r2 - 8000730: d127 bne.n 8000782 + 800074c: 687b ldr r3, [r7, #4] + 800074e: 681b ldr r3, [r3, #0] + 8000750: 4a17 ldr r2, [pc, #92] @ (80007b0 ) + 8000752: 4293 cmp r3, r2 + 8000754: d127 bne.n 80007a6 { /* USER CODE BEGIN USART2_MspInit 0 */ /* USER CODE END USART2_MspInit 0 */ /* Peripheral clock enable */ __HAL_RCC_USART2_CLK_ENABLE(); - 8000732: 4b17 ldr r3, [pc, #92] @ (8000790 ) - 8000734: 6a5b ldr r3, [r3, #36] @ 0x24 - 8000736: 4a16 ldr r2, [pc, #88] @ (8000790 ) - 8000738: f443 3300 orr.w r3, r3, #131072 @ 0x20000 - 800073c: 6253 str r3, [r2, #36] @ 0x24 - 800073e: 4b14 ldr r3, [pc, #80] @ (8000790 ) - 8000740: 6a5b ldr r3, [r3, #36] @ 0x24 - 8000742: f403 3300 and.w r3, r3, #131072 @ 0x20000 - 8000746: 613b str r3, [r7, #16] - 8000748: 693b ldr r3, [r7, #16] + 8000756: 4b17 ldr r3, [pc, #92] @ (80007b4 ) + 8000758: 6a5b ldr r3, [r3, #36] @ 0x24 + 800075a: 4a16 ldr r2, [pc, #88] @ (80007b4 ) + 800075c: f443 3300 orr.w r3, r3, #131072 @ 0x20000 + 8000760: 6253 str r3, [r2, #36] @ 0x24 + 8000762: 4b14 ldr r3, [pc, #80] @ (80007b4 ) + 8000764: 6a5b ldr r3, [r3, #36] @ 0x24 + 8000766: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 800076a: 613b str r3, [r7, #16] + 800076c: 693b ldr r3, [r7, #16] __HAL_RCC_GPIOA_CLK_ENABLE(); - 800074a: 4b11 ldr r3, [pc, #68] @ (8000790 ) - 800074c: 69db ldr r3, [r3, #28] - 800074e: 4a10 ldr r2, [pc, #64] @ (8000790 ) - 8000750: f043 0301 orr.w r3, r3, #1 - 8000754: 61d3 str r3, [r2, #28] - 8000756: 4b0e ldr r3, [pc, #56] @ (8000790 ) - 8000758: 69db ldr r3, [r3, #28] - 800075a: f003 0301 and.w r3, r3, #1 - 800075e: 60fb str r3, [r7, #12] - 8000760: 68fb ldr r3, [r7, #12] + 800076e: 4b11 ldr r3, [pc, #68] @ (80007b4 ) + 8000770: 69db ldr r3, [r3, #28] + 8000772: 4a10 ldr r2, [pc, #64] @ (80007b4 ) + 8000774: f043 0301 orr.w r3, r3, #1 + 8000778: 61d3 str r3, [r2, #28] + 800077a: 4b0e ldr r3, [pc, #56] @ (80007b4 ) + 800077c: 69db ldr r3, [r3, #28] + 800077e: f003 0301 and.w r3, r3, #1 + 8000782: 60fb str r3, [r7, #12] + 8000784: 68fb ldr r3, [r7, #12] /**USART2 GPIO Configuration PA2 ------> USART2_TX PA3 ------> USART2_RX */ GPIO_InitStruct.Pin = USART_TX_Pin|USART_RX_Pin; - 8000762: 230c movs r3, #12 - 8000764: 617b str r3, [r7, #20] + 8000786: 230c movs r3, #12 + 8000788: 617b str r3, [r7, #20] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8000766: 2302 movs r3, #2 - 8000768: 61bb str r3, [r7, #24] + 800078a: 2302 movs r3, #2 + 800078c: 61bb str r3, [r7, #24] GPIO_InitStruct.Pull = GPIO_NOPULL; - 800076a: 2300 movs r3, #0 - 800076c: 61fb str r3, [r7, #28] + 800078e: 2300 movs r3, #0 + 8000790: 61fb str r3, [r7, #28] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 800076e: 2303 movs r3, #3 - 8000770: 623b str r3, [r7, #32] + 8000792: 2303 movs r3, #3 + 8000794: 623b str r3, [r7, #32] GPIO_InitStruct.Alternate = GPIO_AF7_USART2; - 8000772: 2307 movs r3, #7 - 8000774: 627b str r3, [r7, #36] @ 0x24 + 8000796: 2307 movs r3, #7 + 8000798: 627b str r3, [r7, #36] @ 0x24 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - 8000776: f107 0314 add.w r3, r7, #20 - 800077a: 4619 mov r1, r3 - 800077c: 4805 ldr r0, [pc, #20] @ (8000794 ) - 800077e: f000 f9ef bl 8000b60 + 800079a: f107 0314 add.w r3, r7, #20 + 800079e: 4619 mov r1, r3 + 80007a0: 4805 ldr r0, [pc, #20] @ (80007b8 ) + 80007a2: f000 f9e7 bl 8000b74 /* USER CODE END USART2_MspInit 1 */ } } - 8000782: bf00 nop - 8000784: 3728 adds r7, #40 @ 0x28 - 8000786: 46bd mov sp, r7 - 8000788: bd80 pop {r7, pc} - 800078a: bf00 nop - 800078c: 40004400 .word 0x40004400 - 8000790: 40023800 .word 0x40023800 - 8000794: 40020000 .word 0x40020000 + 80007a6: bf00 nop + 80007a8: 3728 adds r7, #40 @ 0x28 + 80007aa: 46bd mov sp, r7 + 80007ac: bd80 pop {r7, pc} + 80007ae: bf00 nop + 80007b0: 40004400 .word 0x40004400 + 80007b4: 40023800 .word 0x40023800 + 80007b8: 40020000 .word 0x40020000 -08000798 : +080007bc : /******************************************************************************/ /** * @brief This function handles Non maskable interrupt. */ void NMI_Handler(void) { - 8000798: b480 push {r7} - 800079a: af00 add r7, sp, #0 + 80007bc: b480 push {r7} + 80007be: af00 add r7, sp, #0 /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ /* USER CODE END NonMaskableInt_IRQn 0 */ /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ while (1) - 800079c: bf00 nop - 800079e: e7fd b.n 800079c + 80007c0: bf00 nop + 80007c2: e7fd b.n 80007c0 -080007a0 : +080007c4 : /** * @brief This function handles Hard fault interrupt. */ void HardFault_Handler(void) { - 80007a0: b480 push {r7} - 80007a2: af00 add r7, sp, #0 + 80007c4: b480 push {r7} + 80007c6: af00 add r7, sp, #0 /* USER CODE BEGIN HardFault_IRQn 0 */ /* USER CODE END HardFault_IRQn 0 */ while (1) - 80007a4: bf00 nop - 80007a6: e7fd b.n 80007a4 + 80007c8: bf00 nop + 80007ca: e7fd b.n 80007c8 -080007a8 : +080007cc : /** * @brief This function handles Memory management fault. */ void MemManage_Handler(void) { - 80007a8: b480 push {r7} - 80007aa: af00 add r7, sp, #0 + 80007cc: b480 push {r7} + 80007ce: af00 add r7, sp, #0 /* USER CODE BEGIN MemoryManagement_IRQn 0 */ /* USER CODE END MemoryManagement_IRQn 0 */ while (1) - 80007ac: bf00 nop - 80007ae: e7fd b.n 80007ac + 80007d0: bf00 nop + 80007d2: e7fd b.n 80007d0 -080007b0 : +080007d4 : /** * @brief This function handles Pre-fetch fault, memory access fault. */ void BusFault_Handler(void) { - 80007b0: b480 push {r7} - 80007b2: af00 add r7, sp, #0 + 80007d4: b480 push {r7} + 80007d6: af00 add r7, sp, #0 /* USER CODE BEGIN BusFault_IRQn 0 */ /* USER CODE END BusFault_IRQn 0 */ while (1) - 80007b4: bf00 nop - 80007b6: e7fd b.n 80007b4 + 80007d8: bf00 nop + 80007da: e7fd b.n 80007d8 -080007b8 : +080007dc : /** * @brief This function handles Undefined instruction or illegal state. */ void UsageFault_Handler(void) { - 80007b8: b480 push {r7} - 80007ba: af00 add r7, sp, #0 + 80007dc: b480 push {r7} + 80007de: af00 add r7, sp, #0 /* USER CODE BEGIN UsageFault_IRQn 0 */ /* USER CODE END UsageFault_IRQn 0 */ while (1) - 80007bc: bf00 nop - 80007be: e7fd b.n 80007bc + 80007e0: bf00 nop + 80007e2: e7fd b.n 80007e0 -080007c0 : +080007e4 : /** * @brief This function handles System service call via SWI instruction. */ void SVC_Handler(void) { - 80007c0: b480 push {r7} - 80007c2: af00 add r7, sp, #0 + 80007e4: b480 push {r7} + 80007e6: af00 add r7, sp, #0 /* USER CODE END SVC_IRQn 0 */ /* USER CODE BEGIN SVC_IRQn 1 */ /* USER CODE END SVC_IRQn 1 */ } - 80007c4: bf00 nop - 80007c6: 46bd mov sp, r7 - 80007c8: bc80 pop {r7} - 80007ca: 4770 bx lr + 80007e8: bf00 nop + 80007ea: 46bd mov sp, r7 + 80007ec: bc80 pop {r7} + 80007ee: 4770 bx lr -080007cc : +080007f0 : /** * @brief This function handles Debug monitor. */ void DebugMon_Handler(void) { - 80007cc: b480 push {r7} - 80007ce: af00 add r7, sp, #0 + 80007f0: b480 push {r7} + 80007f2: af00 add r7, sp, #0 /* USER CODE END DebugMonitor_IRQn 0 */ /* USER CODE BEGIN DebugMonitor_IRQn 1 */ /* USER CODE END DebugMonitor_IRQn 1 */ } - 80007d0: bf00 nop - 80007d2: 46bd mov sp, r7 - 80007d4: bc80 pop {r7} - 80007d6: 4770 bx lr + 80007f4: bf00 nop + 80007f6: 46bd mov sp, r7 + 80007f8: bc80 pop {r7} + 80007fa: 4770 bx lr -080007d8 : +080007fc : /** * @brief This function handles Pendable request for system service. */ void PendSV_Handler(void) { - 80007d8: b480 push {r7} - 80007da: af00 add r7, sp, #0 + 80007fc: b480 push {r7} + 80007fe: af00 add r7, sp, #0 /* USER CODE END PendSV_IRQn 0 */ /* USER CODE BEGIN PendSV_IRQn 1 */ /* USER CODE END PendSV_IRQn 1 */ } - 80007dc: bf00 nop - 80007de: 46bd mov sp, r7 - 80007e0: bc80 pop {r7} - 80007e2: 4770 bx lr + 8000800: bf00 nop + 8000802: 46bd mov sp, r7 + 8000804: bc80 pop {r7} + 8000806: 4770 bx lr -080007e4 : +08000808 : /** * @brief This function handles System tick timer. */ void SysTick_Handler(void) { - 80007e4: b580 push {r7, lr} - 80007e6: af00 add r7, sp, #0 + 8000808: b580 push {r7, lr} + 800080a: af00 add r7, sp, #0 /* USER CODE BEGIN SysTick_IRQn 0 */ /* USER CODE END SysTick_IRQn 0 */ HAL_IncTick(); - 80007e8: f000 f890 bl 800090c + 800080c: f000 f888 bl 8000920 /* USER CODE BEGIN SysTick_IRQn 1 */ /* USER CODE END SysTick_IRQn 1 */ } - 80007ec: bf00 nop - 80007ee: bd80 pop {r7, pc} + 8000810: bf00 nop + 8000812: bd80 pop {r7, pc} -080007f0 : +08000814 : /** * @brief This function handles EXTI line[15:10] interrupts. */ void EXTI15_10_IRQHandler(void) { - 80007f0: b580 push {r7, lr} - 80007f2: af00 add r7, sp, #0 + 8000814: b580 push {r7, lr} + 8000816: af00 add r7, sp, #0 /* USER CODE BEGIN EXTI15_10_IRQn 0 */ - *(volatile uint32_t *)0x40020014 ^= (1 << 5); - 80007f4: 4b05 ldr r3, [pc, #20] @ (800080c ) - 80007f6: 681b ldr r3, [r3, #0] - 80007f8: 4a04 ldr r2, [pc, #16] @ (800080c ) - 80007fa: f083 0320 eor.w r3, r3, #32 - 80007fe: 6013 str r3, [r2, #0] - /* USER CODE END EXTI15_10_IRQn 0 */ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13); - 8000800: f44f 5000 mov.w r0, #8192 @ 0x2000 - 8000804: f000 fb54 bl 8000eb0 + 8000818: f44f 5000 mov.w r0, #8192 @ 0x2000 + 800081c: f000 fb52 bl 8000ec4 /* USER CODE BEGIN EXTI15_10_IRQn 1 */ /* USER CODE END EXTI15_10_IRQn 1 */ } - 8000808: bf00 nop - 800080a: bd80 pop {r7, pc} - 800080c: 40020014 .word 0x40020014 + 8000820: bf00 nop + 8000822: bd80 pop {r7, pc} -08000810 : +08000824 : * SystemCoreClock variable. * @param None * @retval None */ void SystemInit (void) { - 8000810: b480 push {r7} - 8000812: af00 add r7, sp, #0 + 8000824: b480 push {r7} + 8000826: af00 add r7, sp, #0 /* Configure the Vector Table location -------------------------------------*/ #if defined(USER_VECT_TAB_ADDRESS) SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */ #endif /* USER_VECT_TAB_ADDRESS */ } - 8000814: bf00 nop - 8000816: 46bd mov sp, r7 - 8000818: bc80 pop {r7} - 800081a: 4770 bx lr + 8000828: bf00 nop + 800082a: 46bd mov sp, r7 + 800082c: bc80 pop {r7} + 800082e: 4770 bx lr -0800081c : +08000830 : .type Reset_Handler, %function Reset_Handler: /* Call the clock system initialization function.*/ bl SystemInit - 800081c: f7ff fff8 bl 8000810 + 8000830: f7ff fff8 bl 8000824 /* Copy the data segment initializers from flash to SRAM */ ldr r0, =_sdata - 8000820: 480b ldr r0, [pc, #44] @ (8000850 ) + 8000834: 480b ldr r0, [pc, #44] @ (8000864 ) ldr r1, =_edata - 8000822: 490c ldr r1, [pc, #48] @ (8000854 ) + 8000836: 490c ldr r1, [pc, #48] @ (8000868 ) ldr r2, =_sidata - 8000824: 4a0c ldr r2, [pc, #48] @ (8000858 ) + 8000838: 4a0c ldr r2, [pc, #48] @ (800086c ) movs r3, #0 - 8000826: 2300 movs r3, #0 + 800083a: 2300 movs r3, #0 b LoopCopyDataInit - 8000828: e002 b.n 8000830 + 800083c: e002 b.n 8000844 -0800082a : +0800083e : CopyDataInit: ldr r4, [r2, r3] - 800082a: 58d4 ldr r4, [r2, r3] + 800083e: 58d4 ldr r4, [r2, r3] str r4, [r0, r3] - 800082c: 50c4 str r4, [r0, r3] + 8000840: 50c4 str r4, [r0, r3] adds r3, r3, #4 - 800082e: 3304 adds r3, #4 + 8000842: 3304 adds r3, #4 -08000830 : +08000844 : LoopCopyDataInit: adds r4, r0, r3 - 8000830: 18c4 adds r4, r0, r3 + 8000844: 18c4 adds r4, r0, r3 cmp r4, r1 - 8000832: 428c cmp r4, r1 + 8000846: 428c cmp r4, r1 bcc CopyDataInit - 8000834: d3f9 bcc.n 800082a + 8000848: d3f9 bcc.n 800083e /* Zero fill the bss segment. */ ldr r2, =_sbss - 8000836: 4a09 ldr r2, [pc, #36] @ (800085c ) + 800084a: 4a09 ldr r2, [pc, #36] @ (8000870 ) ldr r4, =_ebss - 8000838: 4c09 ldr r4, [pc, #36] @ (8000860 ) + 800084c: 4c09 ldr r4, [pc, #36] @ (8000874 ) movs r3, #0 - 800083a: 2300 movs r3, #0 + 800084e: 2300 movs r3, #0 b LoopFillZerobss - 800083c: e001 b.n 8000842 + 8000850: e001 b.n 8000856 -0800083e : +08000852 : FillZerobss: str r3, [r2] - 800083e: 6013 str r3, [r2, #0] + 8000852: 6013 str r3, [r2, #0] adds r2, r2, #4 - 8000840: 3204 adds r2, #4 + 8000854: 3204 adds r2, #4 -08000842 : +08000856 : LoopFillZerobss: cmp r2, r4 - 8000842: 42a2 cmp r2, r4 + 8000856: 42a2 cmp r2, r4 bcc FillZerobss - 8000844: d3fb bcc.n 800083e + 8000858: d3fb bcc.n 8000852 /* Call static constructors */ bl __libc_init_array - 8000846: f001 fa87 bl 8001d58 <__libc_init_array> + 800085a: f001 fa7d bl 8001d58 <__libc_init_array> /* Call the application's entry point.*/ bl main - 800084a: f7ff fe31 bl 80004b0
+ 800085e: f7ff fe27 bl 80004b0
bx lr - 800084e: 4770 bx lr + 8000862: 4770 bx lr ldr r0, =_sdata - 8000850: 20000000 .word 0x20000000 + 8000864: 20000000 .word 0x20000000 ldr r1, =_edata - 8000854: 2000000c .word 0x2000000c + 8000868: 2000000c .word 0x2000000c ldr r2, =_sidata - 8000858: 08001dec .word 0x08001dec + 800086c: 08001dec .word 0x08001dec ldr r2, =_sbss - 800085c: 2000000c .word 0x2000000c + 8000870: 2000000c .word 0x2000000c ldr r4, =_ebss - 8000860: 20000074 .word 0x20000074 + 8000874: 20000074 .word 0x20000074 -08000864 : +08000878 : * @retval : None */ .section .text.Default_Handler,"ax",%progbits Default_Handler: Infinite_Loop: b Infinite_Loop - 8000864: e7fe b.n 8000864 + 8000878: e7fe b.n 8000878 -08000866 : +0800087a : * In the default implementation,Systick is used as source of time base. * the tick variable is incremented each 1ms in its ISR. * @retval HAL status */ HAL_StatusTypeDef HAL_Init(void) { - 8000866: b580 push {r7, lr} - 8000868: b082 sub sp, #8 - 800086a: af00 add r7, sp, #0 + 800087a: b580 push {r7, lr} + 800087c: b082 sub sp, #8 + 800087e: af00 add r7, sp, #0 HAL_StatusTypeDef status = HAL_OK; - 800086c: 2300 movs r3, #0 - 800086e: 71fb strb r3, [r7, #7] + 8000880: 2300 movs r3, #0 + 8000882: 71fb strb r3, [r7, #7] #if (PREFETCH_ENABLE != 0) __HAL_FLASH_PREFETCH_BUFFER_ENABLE(); #endif /* PREFETCH_ENABLE */ /* Set Interrupt Group Priority */ HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); - 8000870: 2003 movs r0, #3 - 8000872: f000 f933 bl 8000adc + 8000884: 2003 movs r0, #3 + 8000886: f000 f933 bl 8000af0 /* Use systick as time base source and configure 1ms tick (default clock after Reset is MSI) */ if (HAL_InitTick(TICK_INT_PRIORITY) != HAL_OK) - 8000876: 2000 movs r0, #0 - 8000878: f000 f80e bl 8000898 - 800087c: 4603 mov r3, r0 - 800087e: 2b00 cmp r3, #0 - 8000880: d002 beq.n 8000888 + 800088a: 2000 movs r0, #0 + 800088c: f000 f80e bl 80008ac + 8000890: 4603 mov r3, r0 + 8000892: 2b00 cmp r3, #0 + 8000894: d002 beq.n 800089c { status = HAL_ERROR; - 8000882: 2301 movs r3, #1 - 8000884: 71fb strb r3, [r7, #7] - 8000886: e001 b.n 800088c + 8000896: 2301 movs r3, #1 + 8000898: 71fb strb r3, [r7, #7] + 800089a: e001 b.n 80008a0 } else { /* Init the low level hardware */ HAL_MspInit(); - 8000888: f7ff ff12 bl 80006b0 + 800089c: f7ff ff1a bl 80006d4 } /* Return function status */ return status; - 800088c: 79fb ldrb r3, [r7, #7] + 80008a0: 79fb ldrb r3, [r7, #7] } - 800088e: 4618 mov r0, r3 - 8000890: 3708 adds r7, #8 - 8000892: 46bd mov sp, r7 - 8000894: bd80 pop {r7, pc} + 80008a2: 4618 mov r0, r3 + 80008a4: 3708 adds r7, #8 + 80008a6: 46bd mov sp, r7 + 80008a8: bd80 pop {r7, pc} ... -08000898 : +080008ac : * implementation in user file. * @param TickPriority Tick interrupt priority. * @retval HAL status */ __weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) { - 8000898: b580 push {r7, lr} - 800089a: b084 sub sp, #16 - 800089c: af00 add r7, sp, #0 - 800089e: 6078 str r0, [r7, #4] + 80008ac: b580 push {r7, lr} + 80008ae: b084 sub sp, #16 + 80008b0: af00 add r7, sp, #0 + 80008b2: 6078 str r0, [r7, #4] HAL_StatusTypeDef status = HAL_OK; - 80008a0: 2300 movs r3, #0 - 80008a2: 73fb strb r3, [r7, #15] + 80008b4: 2300 movs r3, #0 + 80008b6: 73fb strb r3, [r7, #15] if (uwTickFreq != 0U) - 80008a4: 4b16 ldr r3, [pc, #88] @ (8000900 ) - 80008a6: 681b ldr r3, [r3, #0] - 80008a8: 2b00 cmp r3, #0 - 80008aa: d022 beq.n 80008f2 + 80008b8: 4b16 ldr r3, [pc, #88] @ (8000914 ) + 80008ba: 681b ldr r3, [r3, #0] + 80008bc: 2b00 cmp r3, #0 + 80008be: d022 beq.n 8000906 { /*Configure the SysTick to have interrupt in 1ms time basis*/ if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) == 0U) - 80008ac: 4b15 ldr r3, [pc, #84] @ (8000904 ) - 80008ae: 681a ldr r2, [r3, #0] - 80008b0: 4b13 ldr r3, [pc, #76] @ (8000900 ) - 80008b2: 681b ldr r3, [r3, #0] - 80008b4: f44f 717a mov.w r1, #1000 @ 0x3e8 - 80008b8: fbb1 f3f3 udiv r3, r1, r3 - 80008bc: fbb2 f3f3 udiv r3, r2, r3 - 80008c0: 4618 mov r0, r3 - 80008c2: f000 f940 bl 8000b46 - 80008c6: 4603 mov r3, r0 - 80008c8: 2b00 cmp r3, #0 - 80008ca: d10f bne.n 80008ec + 80008c0: 4b15 ldr r3, [pc, #84] @ (8000918 ) + 80008c2: 681a ldr r2, [r3, #0] + 80008c4: 4b13 ldr r3, [pc, #76] @ (8000914 ) + 80008c6: 681b ldr r3, [r3, #0] + 80008c8: f44f 717a mov.w r1, #1000 @ 0x3e8 + 80008cc: fbb1 f3f3 udiv r3, r1, r3 + 80008d0: fbb2 f3f3 udiv r3, r2, r3 + 80008d4: 4618 mov r0, r3 + 80008d6: f000 f940 bl 8000b5a + 80008da: 4603 mov r3, r0 + 80008dc: 2b00 cmp r3, #0 + 80008de: d10f bne.n 8000900 { /* Configure the SysTick IRQ priority */ if (TickPriority < (1UL << __NVIC_PRIO_BITS)) - 80008cc: 687b ldr r3, [r7, #4] - 80008ce: 2b0f cmp r3, #15 - 80008d0: d809 bhi.n 80008e6 + 80008e0: 687b ldr r3, [r7, #4] + 80008e2: 2b0f cmp r3, #15 + 80008e4: d809 bhi.n 80008fa { HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U); - 80008d2: 2200 movs r2, #0 - 80008d4: 6879 ldr r1, [r7, #4] - 80008d6: f04f 30ff mov.w r0, #4294967295 @ 0xffffffff - 80008da: f000 f90a bl 8000af2 + 80008e6: 2200 movs r2, #0 + 80008e8: 6879 ldr r1, [r7, #4] + 80008ea: f04f 30ff mov.w r0, #4294967295 @ 0xffffffff + 80008ee: f000 f90a bl 8000b06 uwTickPrio = TickPriority; - 80008de: 4a0a ldr r2, [pc, #40] @ (8000908 ) - 80008e0: 687b ldr r3, [r7, #4] - 80008e2: 6013 str r3, [r2, #0] - 80008e4: e007 b.n 80008f6 + 80008f2: 4a0a ldr r2, [pc, #40] @ (800091c ) + 80008f4: 687b ldr r3, [r7, #4] + 80008f6: 6013 str r3, [r2, #0] + 80008f8: e007 b.n 800090a } else { status = HAL_ERROR; - 80008e6: 2301 movs r3, #1 - 80008e8: 73fb strb r3, [r7, #15] - 80008ea: e004 b.n 80008f6 + 80008fa: 2301 movs r3, #1 + 80008fc: 73fb strb r3, [r7, #15] + 80008fe: e004 b.n 800090a } } else { status = HAL_ERROR; - 80008ec: 2301 movs r3, #1 - 80008ee: 73fb strb r3, [r7, #15] - 80008f0: e001 b.n 80008f6 + 8000900: 2301 movs r3, #1 + 8000902: 73fb strb r3, [r7, #15] + 8000904: e001 b.n 800090a } } else { status = HAL_ERROR; - 80008f2: 2301 movs r3, #1 - 80008f4: 73fb strb r3, [r7, #15] + 8000906: 2301 movs r3, #1 + 8000908: 73fb strb r3, [r7, #15] } /* Return function status */ return status; - 80008f6: 7bfb ldrb r3, [r7, #15] + 800090a: 7bfb ldrb r3, [r7, #15] } - 80008f8: 4618 mov r0, r3 - 80008fa: 3710 adds r7, #16 - 80008fc: 46bd mov sp, r7 - 80008fe: bd80 pop {r7, pc} - 8000900: 20000008 .word 0x20000008 - 8000904: 20000000 .word 0x20000000 - 8000908: 20000004 .word 0x20000004 + 800090c: 4618 mov r0, r3 + 800090e: 3710 adds r7, #16 + 8000910: 46bd mov sp, r7 + 8000912: bd80 pop {r7, pc} + 8000914: 20000008 .word 0x20000008 + 8000918: 20000000 .word 0x20000000 + 800091c: 20000004 .word 0x20000004 -0800090c : +08000920 : * @note This function is declared as __weak to be overwritten in case of other * implementations in user file. * @retval None */ __weak void HAL_IncTick(void) { - 800090c: b480 push {r7} - 800090e: af00 add r7, sp, #0 + 8000920: b480 push {r7} + 8000922: af00 add r7, sp, #0 uwTick += uwTickFreq; - 8000910: 4b05 ldr r3, [pc, #20] @ (8000928 ) - 8000912: 681a ldr r2, [r3, #0] - 8000914: 4b05 ldr r3, [pc, #20] @ (800092c ) - 8000916: 681b ldr r3, [r3, #0] - 8000918: 4413 add r3, r2 - 800091a: 4a03 ldr r2, [pc, #12] @ (8000928 ) - 800091c: 6013 str r3, [r2, #0] + 8000924: 4b05 ldr r3, [pc, #20] @ (800093c ) + 8000926: 681a ldr r2, [r3, #0] + 8000928: 4b05 ldr r3, [pc, #20] @ (8000940 ) + 800092a: 681b ldr r3, [r3, #0] + 800092c: 4413 add r3, r2 + 800092e: 4a03 ldr r2, [pc, #12] @ (800093c ) + 8000930: 6013 str r3, [r2, #0] } - 800091e: bf00 nop - 8000920: 46bd mov sp, r7 - 8000922: bc80 pop {r7} - 8000924: 4770 bx lr - 8000926: bf00 nop - 8000928: 20000070 .word 0x20000070 - 800092c: 20000008 .word 0x20000008 + 8000932: bf00 nop + 8000934: 46bd mov sp, r7 + 8000936: bc80 pop {r7} + 8000938: 4770 bx lr + 800093a: bf00 nop + 800093c: 20000070 .word 0x20000070 + 8000940: 20000008 .word 0x20000008 -08000930 : +08000944 : * @note This function is declared as __weak to be overwritten in case of other * implementations in user file. * @retval tick value */ __weak uint32_t HAL_GetTick(void) { - 8000930: b480 push {r7} - 8000932: af00 add r7, sp, #0 + 8000944: b480 push {r7} + 8000946: af00 add r7, sp, #0 return uwTick; - 8000934: 4b02 ldr r3, [pc, #8] @ (8000940 ) - 8000936: 681b ldr r3, [r3, #0] + 8000948: 4b02 ldr r3, [pc, #8] @ (8000954 ) + 800094a: 681b ldr r3, [r3, #0] } - 8000938: 4618 mov r0, r3 - 800093a: 46bd mov sp, r7 - 800093c: bc80 pop {r7} - 800093e: 4770 bx lr - 8000940: 20000070 .word 0x20000070 + 800094c: 4618 mov r0, r3 + 800094e: 46bd mov sp, r7 + 8000950: bc80 pop {r7} + 8000952: 4770 bx lr + 8000954: 20000070 .word 0x20000070 -08000944 <__NVIC_SetPriorityGrouping>: +08000958 <__NVIC_SetPriorityGrouping>: In case of a conflict between priority grouping and available priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. \param [in] PriorityGroup Priority grouping field. */ __STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) { - 8000944: b480 push {r7} - 8000946: b085 sub sp, #20 - 8000948: af00 add r7, sp, #0 - 800094a: 6078 str r0, [r7, #4] + 8000958: b480 push {r7} + 800095a: b085 sub sp, #20 + 800095c: af00 add r7, sp, #0 + 800095e: 6078 str r0, [r7, #4] uint32_t reg_value; uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - 800094c: 687b ldr r3, [r7, #4] - 800094e: f003 0307 and.w r3, r3, #7 - 8000952: 60fb str r3, [r7, #12] + 8000960: 687b ldr r3, [r7, #4] + 8000962: f003 0307 and.w r3, r3, #7 + 8000966: 60fb str r3, [r7, #12] reg_value = SCB->AIRCR; /* read old register configuration */ - 8000954: 4b0c ldr r3, [pc, #48] @ (8000988 <__NVIC_SetPriorityGrouping+0x44>) - 8000956: 68db ldr r3, [r3, #12] - 8000958: 60bb str r3, [r7, #8] + 8000968: 4b0c ldr r3, [pc, #48] @ (800099c <__NVIC_SetPriorityGrouping+0x44>) + 800096a: 68db ldr r3, [r3, #12] + 800096c: 60bb str r3, [r7, #8] reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - 800095a: 68ba ldr r2, [r7, #8] - 800095c: f64f 03ff movw r3, #63743 @ 0xf8ff - 8000960: 4013 ands r3, r2 - 8000962: 60bb str r3, [r7, #8] + 800096e: 68ba ldr r2, [r7, #8] + 8000970: f64f 03ff movw r3, #63743 @ 0xf8ff + 8000974: 4013 ands r3, r2 + 8000976: 60bb str r3, [r7, #8] reg_value = (reg_value | ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - 8000964: 68fb ldr r3, [r7, #12] - 8000966: 021a lsls r2, r3, #8 + 8000978: 68fb ldr r3, [r7, #12] + 800097a: 021a lsls r2, r3, #8 ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - 8000968: 68bb ldr r3, [r7, #8] - 800096a: 4313 orrs r3, r2 + 800097c: 68bb ldr r3, [r7, #8] + 800097e: 4313 orrs r3, r2 reg_value = (reg_value | - 800096c: f043 63bf orr.w r3, r3, #100139008 @ 0x5f80000 - 8000970: f443 3300 orr.w r3, r3, #131072 @ 0x20000 - 8000974: 60bb str r3, [r7, #8] + 8000980: f043 63bf orr.w r3, r3, #100139008 @ 0x5f80000 + 8000984: f443 3300 orr.w r3, r3, #131072 @ 0x20000 + 8000988: 60bb str r3, [r7, #8] SCB->AIRCR = reg_value; - 8000976: 4a04 ldr r2, [pc, #16] @ (8000988 <__NVIC_SetPriorityGrouping+0x44>) - 8000978: 68bb ldr r3, [r7, #8] - 800097a: 60d3 str r3, [r2, #12] + 800098a: 4a04 ldr r2, [pc, #16] @ (800099c <__NVIC_SetPriorityGrouping+0x44>) + 800098c: 68bb ldr r3, [r7, #8] + 800098e: 60d3 str r3, [r2, #12] } - 800097c: bf00 nop - 800097e: 3714 adds r7, #20 - 8000980: 46bd mov sp, r7 - 8000982: bc80 pop {r7} - 8000984: 4770 bx lr - 8000986: bf00 nop - 8000988: e000ed00 .word 0xe000ed00 + 8000990: bf00 nop + 8000992: 3714 adds r7, #20 + 8000994: 46bd mov sp, r7 + 8000996: bc80 pop {r7} + 8000998: 4770 bx lr + 800099a: bf00 nop + 800099c: e000ed00 .word 0xe000ed00 -0800098c <__NVIC_GetPriorityGrouping>: +080009a0 <__NVIC_GetPriorityGrouping>: \brief Get Priority Grouping \details Reads the priority grouping field from the NVIC Interrupt Controller. \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). */ __STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) { - 800098c: b480 push {r7} - 800098e: af00 add r7, sp, #0 + 80009a0: b480 push {r7} + 80009a2: af00 add r7, sp, #0 return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); - 8000990: 4b04 ldr r3, [pc, #16] @ (80009a4 <__NVIC_GetPriorityGrouping+0x18>) - 8000992: 68db ldr r3, [r3, #12] - 8000994: 0a1b lsrs r3, r3, #8 - 8000996: f003 0307 and.w r3, r3, #7 + 80009a4: 4b04 ldr r3, [pc, #16] @ (80009b8 <__NVIC_GetPriorityGrouping+0x18>) + 80009a6: 68db ldr r3, [r3, #12] + 80009a8: 0a1b lsrs r3, r3, #8 + 80009aa: f003 0307 and.w r3, r3, #7 } - 800099a: 4618 mov r0, r3 - 800099c: 46bd mov sp, r7 - 800099e: bc80 pop {r7} - 80009a0: 4770 bx lr - 80009a2: bf00 nop - 80009a4: e000ed00 .word 0xe000ed00 + 80009ae: 4618 mov r0, r3 + 80009b0: 46bd mov sp, r7 + 80009b2: bc80 pop {r7} + 80009b4: 4770 bx lr + 80009b6: bf00 nop + 80009b8: e000ed00 .word 0xe000ed00 -080009a8 <__NVIC_EnableIRQ>: +080009bc <__NVIC_EnableIRQ>: \details Enables a device specific interrupt in the NVIC interrupt controller. \param [in] IRQn Device specific interrupt number. \note IRQn must not be negative. */ __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) { - 80009a8: b480 push {r7} - 80009aa: b083 sub sp, #12 - 80009ac: af00 add r7, sp, #0 - 80009ae: 4603 mov r3, r0 - 80009b0: 71fb strb r3, [r7, #7] + 80009bc: b480 push {r7} + 80009be: b083 sub sp, #12 + 80009c0: af00 add r7, sp, #0 + 80009c2: 4603 mov r3, r0 + 80009c4: 71fb strb r3, [r7, #7] if ((int32_t)(IRQn) >= 0) - 80009b2: f997 3007 ldrsb.w r3, [r7, #7] - 80009b6: 2b00 cmp r3, #0 - 80009b8: db0b blt.n 80009d2 <__NVIC_EnableIRQ+0x2a> + 80009c6: f997 3007 ldrsb.w r3, [r7, #7] + 80009ca: 2b00 cmp r3, #0 + 80009cc: db0b blt.n 80009e6 <__NVIC_EnableIRQ+0x2a> { NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - 80009ba: 79fb ldrb r3, [r7, #7] - 80009bc: f003 021f and.w r2, r3, #31 - 80009c0: 4906 ldr r1, [pc, #24] @ (80009dc <__NVIC_EnableIRQ+0x34>) - 80009c2: f997 3007 ldrsb.w r3, [r7, #7] - 80009c6: 095b lsrs r3, r3, #5 - 80009c8: 2001 movs r0, #1 - 80009ca: fa00 f202 lsl.w r2, r0, r2 - 80009ce: f841 2023 str.w r2, [r1, r3, lsl #2] + 80009ce: 79fb ldrb r3, [r7, #7] + 80009d0: f003 021f and.w r2, r3, #31 + 80009d4: 4906 ldr r1, [pc, #24] @ (80009f0 <__NVIC_EnableIRQ+0x34>) + 80009d6: f997 3007 ldrsb.w r3, [r7, #7] + 80009da: 095b lsrs r3, r3, #5 + 80009dc: 2001 movs r0, #1 + 80009de: fa00 f202 lsl.w r2, r0, r2 + 80009e2: f841 2023 str.w r2, [r1, r3, lsl #2] } } - 80009d2: bf00 nop - 80009d4: 370c adds r7, #12 - 80009d6: 46bd mov sp, r7 - 80009d8: bc80 pop {r7} - 80009da: 4770 bx lr - 80009dc: e000e100 .word 0xe000e100 + 80009e6: bf00 nop + 80009e8: 370c adds r7, #12 + 80009ea: 46bd mov sp, r7 + 80009ec: bc80 pop {r7} + 80009ee: 4770 bx lr + 80009f0: e000e100 .word 0xe000e100 -080009e0 <__NVIC_SetPriority>: +080009f4 <__NVIC_SetPriority>: \param [in] IRQn Interrupt number. \param [in] priority Priority to set. \note The priority cannot be set for every processor exception. */ __STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) { - 80009e0: b480 push {r7} - 80009e2: b083 sub sp, #12 - 80009e4: af00 add r7, sp, #0 - 80009e6: 4603 mov r3, r0 - 80009e8: 6039 str r1, [r7, #0] - 80009ea: 71fb strb r3, [r7, #7] + 80009f4: b480 push {r7} + 80009f6: b083 sub sp, #12 + 80009f8: af00 add r7, sp, #0 + 80009fa: 4603 mov r3, r0 + 80009fc: 6039 str r1, [r7, #0] + 80009fe: 71fb strb r3, [r7, #7] if ((int32_t)(IRQn) >= 0) - 80009ec: f997 3007 ldrsb.w r3, [r7, #7] - 80009f0: 2b00 cmp r3, #0 - 80009f2: db0a blt.n 8000a0a <__NVIC_SetPriority+0x2a> + 8000a00: f997 3007 ldrsb.w r3, [r7, #7] + 8000a04: 2b00 cmp r3, #0 + 8000a06: db0a blt.n 8000a1e <__NVIC_SetPriority+0x2a> { NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - 80009f4: 683b ldr r3, [r7, #0] - 80009f6: b2da uxtb r2, r3 - 80009f8: 490c ldr r1, [pc, #48] @ (8000a2c <__NVIC_SetPriority+0x4c>) - 80009fa: f997 3007 ldrsb.w r3, [r7, #7] - 80009fe: 0112 lsls r2, r2, #4 - 8000a00: b2d2 uxtb r2, r2 - 8000a02: 440b add r3, r1 - 8000a04: f883 2300 strb.w r2, [r3, #768] @ 0x300 + 8000a08: 683b ldr r3, [r7, #0] + 8000a0a: b2da uxtb r2, r3 + 8000a0c: 490c ldr r1, [pc, #48] @ (8000a40 <__NVIC_SetPriority+0x4c>) + 8000a0e: f997 3007 ldrsb.w r3, [r7, #7] + 8000a12: 0112 lsls r2, r2, #4 + 8000a14: b2d2 uxtb r2, r2 + 8000a16: 440b add r3, r1 + 8000a18: f883 2300 strb.w r2, [r3, #768] @ 0x300 } else { SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); } } - 8000a08: e00a b.n 8000a20 <__NVIC_SetPriority+0x40> + 8000a1c: e00a b.n 8000a34 <__NVIC_SetPriority+0x40> SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - 8000a0a: 683b ldr r3, [r7, #0] - 8000a0c: b2da uxtb r2, r3 - 8000a0e: 4908 ldr r1, [pc, #32] @ (8000a30 <__NVIC_SetPriority+0x50>) - 8000a10: 79fb ldrb r3, [r7, #7] - 8000a12: f003 030f and.w r3, r3, #15 - 8000a16: 3b04 subs r3, #4 - 8000a18: 0112 lsls r2, r2, #4 - 8000a1a: b2d2 uxtb r2, r2 - 8000a1c: 440b add r3, r1 - 8000a1e: 761a strb r2, [r3, #24] + 8000a1e: 683b ldr r3, [r7, #0] + 8000a20: b2da uxtb r2, r3 + 8000a22: 4908 ldr r1, [pc, #32] @ (8000a44 <__NVIC_SetPriority+0x50>) + 8000a24: 79fb ldrb r3, [r7, #7] + 8000a26: f003 030f and.w r3, r3, #15 + 8000a2a: 3b04 subs r3, #4 + 8000a2c: 0112 lsls r2, r2, #4 + 8000a2e: b2d2 uxtb r2, r2 + 8000a30: 440b add r3, r1 + 8000a32: 761a strb r2, [r3, #24] } - 8000a20: bf00 nop - 8000a22: 370c adds r7, #12 - 8000a24: 46bd mov sp, r7 - 8000a26: bc80 pop {r7} - 8000a28: 4770 bx lr - 8000a2a: bf00 nop - 8000a2c: e000e100 .word 0xe000e100 - 8000a30: e000ed00 .word 0xe000ed00 + 8000a34: bf00 nop + 8000a36: 370c adds r7, #12 + 8000a38: 46bd mov sp, r7 + 8000a3a: bc80 pop {r7} + 8000a3c: 4770 bx lr + 8000a3e: bf00 nop + 8000a40: e000e100 .word 0xe000e100 + 8000a44: e000ed00 .word 0xe000ed00 -08000a34 : +08000a48 : \param [in] PreemptPriority Preemptive priority value (starting from 0). \param [in] SubPriority Subpriority value (starting from 0). \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). */ __STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) { - 8000a34: b480 push {r7} - 8000a36: b089 sub sp, #36 @ 0x24 - 8000a38: af00 add r7, sp, #0 - 8000a3a: 60f8 str r0, [r7, #12] - 8000a3c: 60b9 str r1, [r7, #8] - 8000a3e: 607a str r2, [r7, #4] + 8000a48: b480 push {r7} + 8000a4a: b089 sub sp, #36 @ 0x24 + 8000a4c: af00 add r7, sp, #0 + 8000a4e: 60f8 str r0, [r7, #12] + 8000a50: 60b9 str r1, [r7, #8] + 8000a52: 607a str r2, [r7, #4] uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - 8000a40: 68fb ldr r3, [r7, #12] - 8000a42: f003 0307 and.w r3, r3, #7 - 8000a46: 61fb str r3, [r7, #28] + 8000a54: 68fb ldr r3, [r7, #12] + 8000a56: f003 0307 and.w r3, r3, #7 + 8000a5a: 61fb str r3, [r7, #28] uint32_t PreemptPriorityBits; uint32_t SubPriorityBits; PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - 8000a48: 69fb ldr r3, [r7, #28] - 8000a4a: f1c3 0307 rsb r3, r3, #7 - 8000a4e: 2b04 cmp r3, #4 - 8000a50: bf28 it cs - 8000a52: 2304 movcs r3, #4 - 8000a54: 61bb str r3, [r7, #24] + 8000a5c: 69fb ldr r3, [r7, #28] + 8000a5e: f1c3 0307 rsb r3, r3, #7 + 8000a62: 2b04 cmp r3, #4 + 8000a64: bf28 it cs + 8000a66: 2304 movcs r3, #4 + 8000a68: 61bb str r3, [r7, #24] SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - 8000a56: 69fb ldr r3, [r7, #28] - 8000a58: 3304 adds r3, #4 - 8000a5a: 2b06 cmp r3, #6 - 8000a5c: d902 bls.n 8000a64 - 8000a5e: 69fb ldr r3, [r7, #28] - 8000a60: 3b03 subs r3, #3 - 8000a62: e000 b.n 8000a66 - 8000a64: 2300 movs r3, #0 - 8000a66: 617b str r3, [r7, #20] + 8000a6a: 69fb ldr r3, [r7, #28] + 8000a6c: 3304 adds r3, #4 + 8000a6e: 2b06 cmp r3, #6 + 8000a70: d902 bls.n 8000a78 + 8000a72: 69fb ldr r3, [r7, #28] + 8000a74: 3b03 subs r3, #3 + 8000a76: e000 b.n 8000a7a + 8000a78: 2300 movs r3, #0 + 8000a7a: 617b str r3, [r7, #20] return ( ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - 8000a68: f04f 32ff mov.w r2, #4294967295 @ 0xffffffff - 8000a6c: 69bb ldr r3, [r7, #24] - 8000a6e: fa02 f303 lsl.w r3, r2, r3 - 8000a72: 43da mvns r2, r3 - 8000a74: 68bb ldr r3, [r7, #8] - 8000a76: 401a ands r2, r3 - 8000a78: 697b ldr r3, [r7, #20] - 8000a7a: 409a lsls r2, r3 + 8000a7c: f04f 32ff mov.w r2, #4294967295 @ 0xffffffff + 8000a80: 69bb ldr r3, [r7, #24] + 8000a82: fa02 f303 lsl.w r3, r2, r3 + 8000a86: 43da mvns r2, r3 + 8000a88: 68bb ldr r3, [r7, #8] + 8000a8a: 401a ands r2, r3 + 8000a8c: 697b ldr r3, [r7, #20] + 8000a8e: 409a lsls r2, r3 ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - 8000a7c: f04f 31ff mov.w r1, #4294967295 @ 0xffffffff - 8000a80: 697b ldr r3, [r7, #20] - 8000a82: fa01 f303 lsl.w r3, r1, r3 - 8000a86: 43d9 mvns r1, r3 - 8000a88: 687b ldr r3, [r7, #4] - 8000a8a: 400b ands r3, r1 + 8000a90: f04f 31ff mov.w r1, #4294967295 @ 0xffffffff + 8000a94: 697b ldr r3, [r7, #20] + 8000a96: fa01 f303 lsl.w r3, r1, r3 + 8000a9a: 43d9 mvns r1, r3 + 8000a9c: 687b ldr r3, [r7, #4] + 8000a9e: 400b ands r3, r1 ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - 8000a8c: 4313 orrs r3, r2 + 8000aa0: 4313 orrs r3, r2 ); } - 8000a8e: 4618 mov r0, r3 - 8000a90: 3724 adds r7, #36 @ 0x24 - 8000a92: 46bd mov sp, r7 - 8000a94: bc80 pop {r7} - 8000a96: 4770 bx lr + 8000aa2: 4618 mov r0, r3 + 8000aa4: 3724 adds r7, #36 @ 0x24 + 8000aa6: 46bd mov sp, r7 + 8000aa8: bc80 pop {r7} + 8000aaa: 4770 bx lr -08000a98 : +08000aac : \note When the variable __Vendor_SysTickConfig is set to 1, then the function SysTick_Config is not included. In this case, the file device.h must contain a vendor-specific implementation of this function. */ __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) { - 8000a98: b580 push {r7, lr} - 8000a9a: b082 sub sp, #8 - 8000a9c: af00 add r7, sp, #0 - 8000a9e: 6078 str r0, [r7, #4] + 8000aac: b580 push {r7, lr} + 8000aae: b082 sub sp, #8 + 8000ab0: af00 add r7, sp, #0 + 8000ab2: 6078 str r0, [r7, #4] if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - 8000aa0: 687b ldr r3, [r7, #4] - 8000aa2: 3b01 subs r3, #1 - 8000aa4: f1b3 7f80 cmp.w r3, #16777216 @ 0x1000000 - 8000aa8: d301 bcc.n 8000aae + 8000ab4: 687b ldr r3, [r7, #4] + 8000ab6: 3b01 subs r3, #1 + 8000ab8: f1b3 7f80 cmp.w r3, #16777216 @ 0x1000000 + 8000abc: d301 bcc.n 8000ac2 { return (1UL); /* Reload value impossible */ - 8000aaa: 2301 movs r3, #1 - 8000aac: e00f b.n 8000ace + 8000abe: 2301 movs r3, #1 + 8000ac0: e00f b.n 8000ae2 } SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - 8000aae: 4a0a ldr r2, [pc, #40] @ (8000ad8 ) - 8000ab0: 687b ldr r3, [r7, #4] - 8000ab2: 3b01 subs r3, #1 - 8000ab4: 6053 str r3, [r2, #4] + 8000ac2: 4a0a ldr r2, [pc, #40] @ (8000aec ) + 8000ac4: 687b ldr r3, [r7, #4] + 8000ac6: 3b01 subs r3, #1 + 8000ac8: 6053 str r3, [r2, #4] NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - 8000ab6: 210f movs r1, #15 - 8000ab8: f04f 30ff mov.w r0, #4294967295 @ 0xffffffff - 8000abc: f7ff ff90 bl 80009e0 <__NVIC_SetPriority> + 8000aca: 210f movs r1, #15 + 8000acc: f04f 30ff mov.w r0, #4294967295 @ 0xffffffff + 8000ad0: f7ff ff90 bl 80009f4 <__NVIC_SetPriority> SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - 8000ac0: 4b05 ldr r3, [pc, #20] @ (8000ad8 ) - 8000ac2: 2200 movs r2, #0 - 8000ac4: 609a str r2, [r3, #8] + 8000ad4: 4b05 ldr r3, [pc, #20] @ (8000aec ) + 8000ad6: 2200 movs r2, #0 + 8000ad8: 609a str r2, [r3, #8] SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - 8000ac6: 4b04 ldr r3, [pc, #16] @ (8000ad8 ) - 8000ac8: 2207 movs r2, #7 - 8000aca: 601a str r2, [r3, #0] + 8000ada: 4b04 ldr r3, [pc, #16] @ (8000aec ) + 8000adc: 2207 movs r2, #7 + 8000ade: 601a str r2, [r3, #0] SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ return (0UL); /* Function successful */ - 8000acc: 2300 movs r3, #0 + 8000ae0: 2300 movs r3, #0 } - 8000ace: 4618 mov r0, r3 - 8000ad0: 3708 adds r7, #8 - 8000ad2: 46bd mov sp, r7 - 8000ad4: bd80 pop {r7, pc} - 8000ad6: bf00 nop - 8000ad8: e000e010 .word 0xe000e010 + 8000ae2: 4618 mov r0, r3 + 8000ae4: 3708 adds r7, #8 + 8000ae6: 46bd mov sp, r7 + 8000ae8: bd80 pop {r7, pc} + 8000aea: bf00 nop + 8000aec: e000e010 .word 0xe000e010 -08000adc : +08000af0 : * @note When the NVIC_PriorityGroup_0 is selected, IRQ pre-emption is no more possible. * The pending IRQ priority will be managed only by the subpriority. * @retval None */ void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) { - 8000adc: b580 push {r7, lr} - 8000ade: b082 sub sp, #8 - 8000ae0: af00 add r7, sp, #0 - 8000ae2: 6078 str r0, [r7, #4] + 8000af0: b580 push {r7, lr} + 8000af2: b082 sub sp, #8 + 8000af4: af00 add r7, sp, #0 + 8000af6: 6078 str r0, [r7, #4] /* Check the parameters */ assert_param(IS_NVIC_PRIORITY_GROUP(PriorityGroup)); /* Set the PRIGROUP[10:8] bits according to the PriorityGroup parameter value */ NVIC_SetPriorityGrouping(PriorityGroup); - 8000ae4: 6878 ldr r0, [r7, #4] - 8000ae6: f7ff ff2d bl 8000944 <__NVIC_SetPriorityGrouping> + 8000af8: 6878 ldr r0, [r7, #4] + 8000afa: f7ff ff2d bl 8000958 <__NVIC_SetPriorityGrouping> } - 8000aea: bf00 nop - 8000aec: 3708 adds r7, #8 - 8000aee: 46bd mov sp, r7 - 8000af0: bd80 pop {r7, pc} + 8000afe: bf00 nop + 8000b00: 3708 adds r7, #8 + 8000b02: 46bd mov sp, r7 + 8000b04: bd80 pop {r7, pc} -08000af2 : +08000b06 : * This parameter can be a value between 0 and 15 * A lower priority value indicates a higher priority. * @retval None */ void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority) { - 8000af2: b580 push {r7, lr} - 8000af4: b086 sub sp, #24 - 8000af6: af00 add r7, sp, #0 - 8000af8: 4603 mov r3, r0 - 8000afa: 60b9 str r1, [r7, #8] - 8000afc: 607a str r2, [r7, #4] - 8000afe: 73fb strb r3, [r7, #15] + 8000b06: b580 push {r7, lr} + 8000b08: b086 sub sp, #24 + 8000b0a: af00 add r7, sp, #0 + 8000b0c: 4603 mov r3, r0 + 8000b0e: 60b9 str r1, [r7, #8] + 8000b10: 607a str r2, [r7, #4] + 8000b12: 73fb strb r3, [r7, #15] uint32_t prioritygroup = 0x00; - 8000b00: 2300 movs r3, #0 - 8000b02: 617b str r3, [r7, #20] + 8000b14: 2300 movs r3, #0 + 8000b16: 617b str r3, [r7, #20] /* Check the parameters */ assert_param(IS_NVIC_SUB_PRIORITY(SubPriority)); assert_param(IS_NVIC_PREEMPTION_PRIORITY(PreemptPriority)); prioritygroup = NVIC_GetPriorityGrouping(); - 8000b04: f7ff ff42 bl 800098c <__NVIC_GetPriorityGrouping> - 8000b08: 6178 str r0, [r7, #20] + 8000b18: f7ff ff42 bl 80009a0 <__NVIC_GetPriorityGrouping> + 8000b1c: 6178 str r0, [r7, #20] NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority)); - 8000b0a: 687a ldr r2, [r7, #4] - 8000b0c: 68b9 ldr r1, [r7, #8] - 8000b0e: 6978 ldr r0, [r7, #20] - 8000b10: f7ff ff90 bl 8000a34 - 8000b14: 4602 mov r2, r0 - 8000b16: f997 300f ldrsb.w r3, [r7, #15] - 8000b1a: 4611 mov r1, r2 - 8000b1c: 4618 mov r0, r3 - 8000b1e: f7ff ff5f bl 80009e0 <__NVIC_SetPriority> + 8000b1e: 687a ldr r2, [r7, #4] + 8000b20: 68b9 ldr r1, [r7, #8] + 8000b22: 6978 ldr r0, [r7, #20] + 8000b24: f7ff ff90 bl 8000a48 + 8000b28: 4602 mov r2, r0 + 8000b2a: f997 300f ldrsb.w r3, [r7, #15] + 8000b2e: 4611 mov r1, r2 + 8000b30: 4618 mov r0, r3 + 8000b32: f7ff ff5f bl 80009f4 <__NVIC_SetPriority> } - 8000b22: bf00 nop - 8000b24: 3718 adds r7, #24 - 8000b26: 46bd mov sp, r7 - 8000b28: bd80 pop {r7, pc} + 8000b36: bf00 nop + 8000b38: 3718 adds r7, #24 + 8000b3a: 46bd mov sp, r7 + 8000b3c: bd80 pop {r7, pc} -08000b2a : +08000b3e : * This parameter can be an enumerator of IRQn_Type enumeration * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32l1xx.h)) * @retval None */ void HAL_NVIC_EnableIRQ(IRQn_Type IRQn) { - 8000b2a: b580 push {r7, lr} - 8000b2c: b082 sub sp, #8 - 8000b2e: af00 add r7, sp, #0 - 8000b30: 4603 mov r3, r0 - 8000b32: 71fb strb r3, [r7, #7] + 8000b3e: b580 push {r7, lr} + 8000b40: b082 sub sp, #8 + 8000b42: af00 add r7, sp, #0 + 8000b44: 4603 mov r3, r0 + 8000b46: 71fb strb r3, [r7, #7] /* Check the parameters */ assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); /* Enable interrupt */ NVIC_EnableIRQ(IRQn); - 8000b34: f997 3007 ldrsb.w r3, [r7, #7] - 8000b38: 4618 mov r0, r3 - 8000b3a: f7ff ff35 bl 80009a8 <__NVIC_EnableIRQ> + 8000b48: f997 3007 ldrsb.w r3, [r7, #7] + 8000b4c: 4618 mov r0, r3 + 8000b4e: f7ff ff35 bl 80009bc <__NVIC_EnableIRQ> } - 8000b3e: bf00 nop - 8000b40: 3708 adds r7, #8 - 8000b42: 46bd mov sp, r7 - 8000b44: bd80 pop {r7, pc} + 8000b52: bf00 nop + 8000b54: 3708 adds r7, #8 + 8000b56: 46bd mov sp, r7 + 8000b58: bd80 pop {r7, pc} -08000b46 : +08000b5a : * @param TicksNumb Specifies the ticks Number of ticks between two interrupts. * @retval status: - 0 Function succeeded. * - 1 Function failed. */ uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb) { - 8000b46: b580 push {r7, lr} - 8000b48: b082 sub sp, #8 - 8000b4a: af00 add r7, sp, #0 - 8000b4c: 6078 str r0, [r7, #4] + 8000b5a: b580 push {r7, lr} + 8000b5c: b082 sub sp, #8 + 8000b5e: af00 add r7, sp, #0 + 8000b60: 6078 str r0, [r7, #4] return SysTick_Config(TicksNumb); - 8000b4e: 6878 ldr r0, [r7, #4] - 8000b50: f7ff ffa2 bl 8000a98 - 8000b54: 4603 mov r3, r0 + 8000b62: 6878 ldr r0, [r7, #4] + 8000b64: f7ff ffa2 bl 8000aac + 8000b68: 4603 mov r3, r0 } - 8000b56: 4618 mov r0, r3 - 8000b58: 3708 adds r7, #8 - 8000b5a: 46bd mov sp, r7 - 8000b5c: bd80 pop {r7, pc} + 8000b6a: 4618 mov r0, r3 + 8000b6c: 3708 adds r7, #8 + 8000b6e: 46bd mov sp, r7 + 8000b70: bd80 pop {r7, pc} ... -08000b60 : +08000b74 : * @param GPIO_Init pointer to a GPIO_InitTypeDef structure that contains * the configuration information for the specified GPIO peripheral. * @retval None */ void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init) { - 8000b60: b480 push {r7} - 8000b62: b087 sub sp, #28 - 8000b64: af00 add r7, sp, #0 - 8000b66: 6078 str r0, [r7, #4] - 8000b68: 6039 str r1, [r7, #0] + 8000b74: b480 push {r7} + 8000b76: b087 sub sp, #28 + 8000b78: af00 add r7, sp, #0 + 8000b7a: 6078 str r0, [r7, #4] + 8000b7c: 6039 str r1, [r7, #0] uint32_t position = 0x00; - 8000b6a: 2300 movs r3, #0 - 8000b6c: 617b str r3, [r7, #20] + 8000b7e: 2300 movs r3, #0 + 8000b80: 617b str r3, [r7, #20] uint32_t iocurrent = 0x00; - 8000b6e: 2300 movs r3, #0 - 8000b70: 60fb str r3, [r7, #12] + 8000b82: 2300 movs r3, #0 + 8000b84: 60fb str r3, [r7, #12] uint32_t temp = 0x00; - 8000b72: 2300 movs r3, #0 - 8000b74: 613b str r3, [r7, #16] + 8000b86: 2300 movs r3, #0 + 8000b88: 613b str r3, [r7, #16] assert_param(IS_GPIO_ALL_INSTANCE(GPIOx)); assert_param(IS_GPIO_PIN(GPIO_Init->Pin)); assert_param(IS_GPIO_MODE(GPIO_Init->Mode)); /* Configure the port pins */ while (((GPIO_Init->Pin) >> position) != 0) - 8000b76: e160 b.n 8000e3a + 8000b8a: e160 b.n 8000e4e { /* Get current io position */ iocurrent = (GPIO_Init->Pin) & (1U << position); - 8000b78: 683b ldr r3, [r7, #0] - 8000b7a: 681a ldr r2, [r3, #0] - 8000b7c: 2101 movs r1, #1 - 8000b7e: 697b ldr r3, [r7, #20] - 8000b80: fa01 f303 lsl.w r3, r1, r3 - 8000b84: 4013 ands r3, r2 - 8000b86: 60fb str r3, [r7, #12] + 8000b8c: 683b ldr r3, [r7, #0] + 8000b8e: 681a ldr r2, [r3, #0] + 8000b90: 2101 movs r1, #1 + 8000b92: 697b ldr r3, [r7, #20] + 8000b94: fa01 f303 lsl.w r3, r1, r3 + 8000b98: 4013 ands r3, r2 + 8000b9a: 60fb str r3, [r7, #12] if (iocurrent) - 8000b88: 68fb ldr r3, [r7, #12] - 8000b8a: 2b00 cmp r3, #0 - 8000b8c: f000 8152 beq.w 8000e34 + 8000b9c: 68fb ldr r3, [r7, #12] + 8000b9e: 2b00 cmp r3, #0 + 8000ba0: f000 8152 beq.w 8000e48 { /*--------------------- GPIO Mode Configuration ------------------------*/ /* In case of Output or Alternate function mode selection */ if (((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || - 8000b90: 683b ldr r3, [r7, #0] - 8000b92: 685b ldr r3, [r3, #4] - 8000b94: f003 0303 and.w r3, r3, #3 - 8000b98: 2b01 cmp r3, #1 - 8000b9a: d005 beq.n 8000ba8 + 8000ba4: 683b ldr r3, [r7, #0] + 8000ba6: 685b ldr r3, [r3, #4] + 8000ba8: f003 0303 and.w r3, r3, #3 + 8000bac: 2b01 cmp r3, #1 + 8000bae: d005 beq.n 8000bbc ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)) - 8000b9c: 683b ldr r3, [r7, #0] - 8000b9e: 685b ldr r3, [r3, #4] - 8000ba0: f003 0303 and.w r3, r3, #3 + 8000bb0: 683b ldr r3, [r7, #0] + 8000bb2: 685b ldr r3, [r3, #4] + 8000bb4: f003 0303 and.w r3, r3, #3 if (((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || - 8000ba4: 2b02 cmp r3, #2 - 8000ba6: d130 bne.n 8000c0a + 8000bb8: 2b02 cmp r3, #2 + 8000bba: d130 bne.n 8000c1e { /* Check the Speed parameter */ assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); /* Configure the IO Speed */ temp = GPIOx->OSPEEDR; - 8000ba8: 687b ldr r3, [r7, #4] - 8000baa: 689b ldr r3, [r3, #8] - 8000bac: 613b str r3, [r7, #16] + 8000bbc: 687b ldr r3, [r7, #4] + 8000bbe: 689b ldr r3, [r3, #8] + 8000bc0: 613b str r3, [r7, #16] CLEAR_BIT(temp, GPIO_OSPEEDER_OSPEEDR0 << (position * 2)); - 8000bae: 697b ldr r3, [r7, #20] - 8000bb0: 005b lsls r3, r3, #1 - 8000bb2: 2203 movs r2, #3 - 8000bb4: fa02 f303 lsl.w r3, r2, r3 - 8000bb8: 43db mvns r3, r3 - 8000bba: 693a ldr r2, [r7, #16] - 8000bbc: 4013 ands r3, r2 - 8000bbe: 613b str r3, [r7, #16] - SET_BIT(temp, GPIO_Init->Speed << (position * 2)); - 8000bc0: 683b ldr r3, [r7, #0] - 8000bc2: 68da ldr r2, [r3, #12] - 8000bc4: 697b ldr r3, [r7, #20] - 8000bc6: 005b lsls r3, r3, #1 + 8000bc2: 697b ldr r3, [r7, #20] + 8000bc4: 005b lsls r3, r3, #1 + 8000bc6: 2203 movs r2, #3 8000bc8: fa02 f303 lsl.w r3, r2, r3 - 8000bcc: 693a ldr r2, [r7, #16] - 8000bce: 4313 orrs r3, r2 - 8000bd0: 613b str r3, [r7, #16] + 8000bcc: 43db mvns r3, r3 + 8000bce: 693a ldr r2, [r7, #16] + 8000bd0: 4013 ands r3, r2 + 8000bd2: 613b str r3, [r7, #16] + SET_BIT(temp, GPIO_Init->Speed << (position * 2)); + 8000bd4: 683b ldr r3, [r7, #0] + 8000bd6: 68da ldr r2, [r3, #12] + 8000bd8: 697b ldr r3, [r7, #20] + 8000bda: 005b lsls r3, r3, #1 + 8000bdc: fa02 f303 lsl.w r3, r2, r3 + 8000be0: 693a ldr r2, [r7, #16] + 8000be2: 4313 orrs r3, r2 + 8000be4: 613b str r3, [r7, #16] GPIOx->OSPEEDR = temp; - 8000bd2: 687b ldr r3, [r7, #4] - 8000bd4: 693a ldr r2, [r7, #16] - 8000bd6: 609a str r2, [r3, #8] + 8000be6: 687b ldr r3, [r7, #4] + 8000be8: 693a ldr r2, [r7, #16] + 8000bea: 609a str r2, [r3, #8] /* Configure the IO Output Type */ temp = GPIOx->OTYPER; - 8000bd8: 687b ldr r3, [r7, #4] - 8000bda: 685b ldr r3, [r3, #4] - 8000bdc: 613b str r3, [r7, #16] + 8000bec: 687b ldr r3, [r7, #4] + 8000bee: 685b ldr r3, [r3, #4] + 8000bf0: 613b str r3, [r7, #16] CLEAR_BIT(temp, GPIO_OTYPER_OT_0 << position) ; - 8000bde: 2201 movs r2, #1 - 8000be0: 697b ldr r3, [r7, #20] - 8000be2: fa02 f303 lsl.w r3, r2, r3 - 8000be6: 43db mvns r3, r3 - 8000be8: 693a ldr r2, [r7, #16] - 8000bea: 4013 ands r3, r2 - 8000bec: 613b str r3, [r7, #16] + 8000bf2: 2201 movs r2, #1 + 8000bf4: 697b ldr r3, [r7, #20] + 8000bf6: fa02 f303 lsl.w r3, r2, r3 + 8000bfa: 43db mvns r3, r3 + 8000bfc: 693a ldr r2, [r7, #16] + 8000bfe: 4013 ands r3, r2 + 8000c00: 613b str r3, [r7, #16] SET_BIT(temp, ((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position); - 8000bee: 683b ldr r3, [r7, #0] - 8000bf0: 685b ldr r3, [r3, #4] - 8000bf2: 091b lsrs r3, r3, #4 - 8000bf4: f003 0201 and.w r2, r3, #1 - 8000bf8: 697b ldr r3, [r7, #20] - 8000bfa: fa02 f303 lsl.w r3, r2, r3 - 8000bfe: 693a ldr r2, [r7, #16] - 8000c00: 4313 orrs r3, r2 - 8000c02: 613b str r3, [r7, #16] + 8000c02: 683b ldr r3, [r7, #0] + 8000c04: 685b ldr r3, [r3, #4] + 8000c06: 091b lsrs r3, r3, #4 + 8000c08: f003 0201 and.w r2, r3, #1 + 8000c0c: 697b ldr r3, [r7, #20] + 8000c0e: fa02 f303 lsl.w r3, r2, r3 + 8000c12: 693a ldr r2, [r7, #16] + 8000c14: 4313 orrs r3, r2 + 8000c16: 613b str r3, [r7, #16] GPIOx->OTYPER = temp; - 8000c04: 687b ldr r3, [r7, #4] - 8000c06: 693a ldr r2, [r7, #16] - 8000c08: 605a str r2, [r3, #4] + 8000c18: 687b ldr r3, [r7, #4] + 8000c1a: 693a ldr r2, [r7, #16] + 8000c1c: 605a str r2, [r3, #4] } if ((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG) - 8000c0a: 683b ldr r3, [r7, #0] - 8000c0c: 685b ldr r3, [r3, #4] - 8000c0e: f003 0303 and.w r3, r3, #3 - 8000c12: 2b03 cmp r3, #3 - 8000c14: d017 beq.n 8000c46 + 8000c1e: 683b ldr r3, [r7, #0] + 8000c20: 685b ldr r3, [r3, #4] + 8000c22: f003 0303 and.w r3, r3, #3 + 8000c26: 2b03 cmp r3, #3 + 8000c28: d017 beq.n 8000c5a { /* Check the Pull parameter */ assert_param(IS_GPIO_PULL(GPIO_Init->Pull)); /* Activate the Pull-up or Pull down resistor for the current IO */ temp = GPIOx->PUPDR; - 8000c16: 687b ldr r3, [r7, #4] - 8000c18: 68db ldr r3, [r3, #12] - 8000c1a: 613b str r3, [r7, #16] + 8000c2a: 687b ldr r3, [r7, #4] + 8000c2c: 68db ldr r3, [r3, #12] + 8000c2e: 613b str r3, [r7, #16] CLEAR_BIT(temp, GPIO_PUPDR_PUPDR0 << (position * 2)); - 8000c1c: 697b ldr r3, [r7, #20] - 8000c1e: 005b lsls r3, r3, #1 - 8000c20: 2203 movs r2, #3 - 8000c22: fa02 f303 lsl.w r3, r2, r3 - 8000c26: 43db mvns r3, r3 - 8000c28: 693a ldr r2, [r7, #16] - 8000c2a: 4013 ands r3, r2 - 8000c2c: 613b str r3, [r7, #16] - SET_BIT(temp, (GPIO_Init->Pull) << (position * 2)); - 8000c2e: 683b ldr r3, [r7, #0] - 8000c30: 689a ldr r2, [r3, #8] - 8000c32: 697b ldr r3, [r7, #20] - 8000c34: 005b lsls r3, r3, #1 + 8000c30: 697b ldr r3, [r7, #20] + 8000c32: 005b lsls r3, r3, #1 + 8000c34: 2203 movs r2, #3 8000c36: fa02 f303 lsl.w r3, r2, r3 - 8000c3a: 693a ldr r2, [r7, #16] - 8000c3c: 4313 orrs r3, r2 - 8000c3e: 613b str r3, [r7, #16] + 8000c3a: 43db mvns r3, r3 + 8000c3c: 693a ldr r2, [r7, #16] + 8000c3e: 4013 ands r3, r2 + 8000c40: 613b str r3, [r7, #16] + SET_BIT(temp, (GPIO_Init->Pull) << (position * 2)); + 8000c42: 683b ldr r3, [r7, #0] + 8000c44: 689a ldr r2, [r3, #8] + 8000c46: 697b ldr r3, [r7, #20] + 8000c48: 005b lsls r3, r3, #1 + 8000c4a: fa02 f303 lsl.w r3, r2, r3 + 8000c4e: 693a ldr r2, [r7, #16] + 8000c50: 4313 orrs r3, r2 + 8000c52: 613b str r3, [r7, #16] GPIOx->PUPDR = temp; - 8000c40: 687b ldr r3, [r7, #4] - 8000c42: 693a ldr r2, [r7, #16] - 8000c44: 60da str r2, [r3, #12] + 8000c54: 687b ldr r3, [r7, #4] + 8000c56: 693a ldr r2, [r7, #16] + 8000c58: 60da str r2, [r3, #12] } /* In case of Alternate function mode selection */ if ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF) - 8000c46: 683b ldr r3, [r7, #0] - 8000c48: 685b ldr r3, [r3, #4] - 8000c4a: f003 0303 and.w r3, r3, #3 - 8000c4e: 2b02 cmp r3, #2 - 8000c50: d123 bne.n 8000c9a + 8000c5a: 683b ldr r3, [r7, #0] + 8000c5c: 685b ldr r3, [r3, #4] + 8000c5e: f003 0303 and.w r3, r3, #3 + 8000c62: 2b02 cmp r3, #2 + 8000c64: d123 bne.n 8000cae assert_param(IS_GPIO_AF_INSTANCE(GPIOx)); assert_param(IS_GPIO_AF(GPIO_Init->Alternate)); /* Configure Alternate function mapped with the current IO */ /* Identify AFRL or AFRH register based on IO position*/ temp = GPIOx->AFR[position >> 3]; - 8000c52: 697b ldr r3, [r7, #20] - 8000c54: 08da lsrs r2, r3, #3 - 8000c56: 687b ldr r3, [r7, #4] - 8000c58: 3208 adds r2, #8 - 8000c5a: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 8000c5e: 613b str r3, [r7, #16] + 8000c66: 697b ldr r3, [r7, #20] + 8000c68: 08da lsrs r2, r3, #3 + 8000c6a: 687b ldr r3, [r7, #4] + 8000c6c: 3208 adds r2, #8 + 8000c6e: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 8000c72: 613b str r3, [r7, #16] CLEAR_BIT(temp, 0xFU << ((uint32_t)(position & 0x07U) * 4)); - 8000c60: 697b ldr r3, [r7, #20] - 8000c62: f003 0307 and.w r3, r3, #7 - 8000c66: 009b lsls r3, r3, #2 - 8000c68: 220f movs r2, #15 - 8000c6a: fa02 f303 lsl.w r3, r2, r3 - 8000c6e: 43db mvns r3, r3 - 8000c70: 693a ldr r2, [r7, #16] - 8000c72: 4013 ands r3, r2 - 8000c74: 613b str r3, [r7, #16] + 8000c74: 697b ldr r3, [r7, #20] + 8000c76: f003 0307 and.w r3, r3, #7 + 8000c7a: 009b lsls r3, r3, #2 + 8000c7c: 220f movs r2, #15 + 8000c7e: fa02 f303 lsl.w r3, r2, r3 + 8000c82: 43db mvns r3, r3 + 8000c84: 693a ldr r2, [r7, #16] + 8000c86: 4013 ands r3, r2 + 8000c88: 613b str r3, [r7, #16] SET_BIT(temp, (uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & 0x07U) * 4)); - 8000c76: 683b ldr r3, [r7, #0] - 8000c78: 691a ldr r2, [r3, #16] - 8000c7a: 697b ldr r3, [r7, #20] - 8000c7c: f003 0307 and.w r3, r3, #7 - 8000c80: 009b lsls r3, r3, #2 - 8000c82: fa02 f303 lsl.w r3, r2, r3 - 8000c86: 693a ldr r2, [r7, #16] - 8000c88: 4313 orrs r3, r2 - 8000c8a: 613b str r3, [r7, #16] + 8000c8a: 683b ldr r3, [r7, #0] + 8000c8c: 691a ldr r2, [r3, #16] + 8000c8e: 697b ldr r3, [r7, #20] + 8000c90: f003 0307 and.w r3, r3, #7 + 8000c94: 009b lsls r3, r3, #2 + 8000c96: fa02 f303 lsl.w r3, r2, r3 + 8000c9a: 693a ldr r2, [r7, #16] + 8000c9c: 4313 orrs r3, r2 + 8000c9e: 613b str r3, [r7, #16] GPIOx->AFR[position >> 3] = temp; - 8000c8c: 697b ldr r3, [r7, #20] - 8000c8e: 08da lsrs r2, r3, #3 - 8000c90: 687b ldr r3, [r7, #4] - 8000c92: 3208 adds r2, #8 - 8000c94: 6939 ldr r1, [r7, #16] - 8000c96: f843 1022 str.w r1, [r3, r2, lsl #2] + 8000ca0: 697b ldr r3, [r7, #20] + 8000ca2: 08da lsrs r2, r3, #3 + 8000ca4: 687b ldr r3, [r7, #4] + 8000ca6: 3208 adds r2, #8 + 8000ca8: 6939 ldr r1, [r7, #16] + 8000caa: f843 1022 str.w r1, [r3, r2, lsl #2] } /* Configure IO Direction mode (Input, Output, Alternate or Analog) */ temp = GPIOx->MODER; - 8000c9a: 687b ldr r3, [r7, #4] - 8000c9c: 681b ldr r3, [r3, #0] - 8000c9e: 613b str r3, [r7, #16] + 8000cae: 687b ldr r3, [r7, #4] + 8000cb0: 681b ldr r3, [r3, #0] + 8000cb2: 613b str r3, [r7, #16] CLEAR_BIT(temp, GPIO_MODER_MODER0 << (position * 2)); - 8000ca0: 697b ldr r3, [r7, #20] - 8000ca2: 005b lsls r3, r3, #1 - 8000ca4: 2203 movs r2, #3 - 8000ca6: fa02 f303 lsl.w r3, r2, r3 - 8000caa: 43db mvns r3, r3 - 8000cac: 693a ldr r2, [r7, #16] - 8000cae: 4013 ands r3, r2 - 8000cb0: 613b str r3, [r7, #16] + 8000cb4: 697b ldr r3, [r7, #20] + 8000cb6: 005b lsls r3, r3, #1 + 8000cb8: 2203 movs r2, #3 + 8000cba: fa02 f303 lsl.w r3, r2, r3 + 8000cbe: 43db mvns r3, r3 + 8000cc0: 693a ldr r2, [r7, #16] + 8000cc2: 4013 ands r3, r2 + 8000cc4: 613b str r3, [r7, #16] SET_BIT(temp, (GPIO_Init->Mode & GPIO_MODE) << (position * 2)); - 8000cb2: 683b ldr r3, [r7, #0] - 8000cb4: 685b ldr r3, [r3, #4] - 8000cb6: f003 0203 and.w r2, r3, #3 - 8000cba: 697b ldr r3, [r7, #20] - 8000cbc: 005b lsls r3, r3, #1 - 8000cbe: fa02 f303 lsl.w r3, r2, r3 - 8000cc2: 693a ldr r2, [r7, #16] - 8000cc4: 4313 orrs r3, r2 - 8000cc6: 613b str r3, [r7, #16] + 8000cc6: 683b ldr r3, [r7, #0] + 8000cc8: 685b ldr r3, [r3, #4] + 8000cca: f003 0203 and.w r2, r3, #3 + 8000cce: 697b ldr r3, [r7, #20] + 8000cd0: 005b lsls r3, r3, #1 + 8000cd2: fa02 f303 lsl.w r3, r2, r3 + 8000cd6: 693a ldr r2, [r7, #16] + 8000cd8: 4313 orrs r3, r2 + 8000cda: 613b str r3, [r7, #16] GPIOx->MODER = temp; - 8000cc8: 687b ldr r3, [r7, #4] - 8000cca: 693a ldr r2, [r7, #16] - 8000ccc: 601a str r2, [r3, #0] + 8000cdc: 687b ldr r3, [r7, #4] + 8000cde: 693a ldr r2, [r7, #16] + 8000ce0: 601a str r2, [r3, #0] /*--------------------- EXTI Mode Configuration ------------------------*/ /* Configure the External Interrupt or event for the current IO */ if ((GPIO_Init->Mode & EXTI_MODE) != 0x00U) - 8000cce: 683b ldr r3, [r7, #0] - 8000cd0: 685b ldr r3, [r3, #4] - 8000cd2: f403 3340 and.w r3, r3, #196608 @ 0x30000 - 8000cd6: 2b00 cmp r3, #0 - 8000cd8: f000 80ac beq.w 8000e34 + 8000ce2: 683b ldr r3, [r7, #0] + 8000ce4: 685b ldr r3, [r3, #4] + 8000ce6: f403 3340 and.w r3, r3, #196608 @ 0x30000 + 8000cea: 2b00 cmp r3, #0 + 8000cec: f000 80ac beq.w 8000e48 { /* Enable SYSCFG Clock */ __HAL_RCC_SYSCFG_CLK_ENABLE(); - 8000cdc: 4b5e ldr r3, [pc, #376] @ (8000e58 ) - 8000cde: 6a1b ldr r3, [r3, #32] - 8000ce0: 4a5d ldr r2, [pc, #372] @ (8000e58 ) - 8000ce2: f043 0301 orr.w r3, r3, #1 - 8000ce6: 6213 str r3, [r2, #32] - 8000ce8: 4b5b ldr r3, [pc, #364] @ (8000e58 ) - 8000cea: 6a1b ldr r3, [r3, #32] - 8000cec: f003 0301 and.w r3, r3, #1 - 8000cf0: 60bb str r3, [r7, #8] - 8000cf2: 68bb ldr r3, [r7, #8] + 8000cf0: 4b5e ldr r3, [pc, #376] @ (8000e6c ) + 8000cf2: 6a1b ldr r3, [r3, #32] + 8000cf4: 4a5d ldr r2, [pc, #372] @ (8000e6c ) + 8000cf6: f043 0301 orr.w r3, r3, #1 + 8000cfa: 6213 str r3, [r2, #32] + 8000cfc: 4b5b ldr r3, [pc, #364] @ (8000e6c ) + 8000cfe: 6a1b ldr r3, [r3, #32] + 8000d00: f003 0301 and.w r3, r3, #1 + 8000d04: 60bb str r3, [r7, #8] + 8000d06: 68bb ldr r3, [r7, #8] temp = SYSCFG->EXTICR[position >> 2]; - 8000cf4: 4a59 ldr r2, [pc, #356] @ (8000e5c ) - 8000cf6: 697b ldr r3, [r7, #20] - 8000cf8: 089b lsrs r3, r3, #2 - 8000cfa: 3302 adds r3, #2 - 8000cfc: f852 3023 ldr.w r3, [r2, r3, lsl #2] - 8000d00: 613b str r3, [r7, #16] + 8000d08: 4a59 ldr r2, [pc, #356] @ (8000e70 ) + 8000d0a: 697b ldr r3, [r7, #20] + 8000d0c: 089b lsrs r3, r3, #2 + 8000d0e: 3302 adds r3, #2 + 8000d10: f852 3023 ldr.w r3, [r2, r3, lsl #2] + 8000d14: 613b str r3, [r7, #16] CLEAR_BIT(temp, (0x0FU) << (4 * (position & 0x03))); - 8000d02: 697b ldr r3, [r7, #20] - 8000d04: f003 0303 and.w r3, r3, #3 - 8000d08: 009b lsls r3, r3, #2 - 8000d0a: 220f movs r2, #15 - 8000d0c: fa02 f303 lsl.w r3, r2, r3 - 8000d10: 43db mvns r3, r3 - 8000d12: 693a ldr r2, [r7, #16] - 8000d14: 4013 ands r3, r2 - 8000d16: 613b str r3, [r7, #16] + 8000d16: 697b ldr r3, [r7, #20] + 8000d18: f003 0303 and.w r3, r3, #3 + 8000d1c: 009b lsls r3, r3, #2 + 8000d1e: 220f movs r2, #15 + 8000d20: fa02 f303 lsl.w r3, r2, r3 + 8000d24: 43db mvns r3, r3 + 8000d26: 693a ldr r2, [r7, #16] + 8000d28: 4013 ands r3, r2 + 8000d2a: 613b str r3, [r7, #16] SET_BIT(temp, (GPIO_GET_INDEX(GPIOx)) << (4 * (position & 0x03))); - 8000d18: 687b ldr r3, [r7, #4] - 8000d1a: 4a51 ldr r2, [pc, #324] @ (8000e60 ) - 8000d1c: 4293 cmp r3, r2 - 8000d1e: d025 beq.n 8000d6c - 8000d20: 687b ldr r3, [r7, #4] - 8000d22: 4a50 ldr r2, [pc, #320] @ (8000e64 ) - 8000d24: 4293 cmp r3, r2 - 8000d26: d01f beq.n 8000d68 - 8000d28: 687b ldr r3, [r7, #4] - 8000d2a: 4a4f ldr r2, [pc, #316] @ (8000e68 ) - 8000d2c: 4293 cmp r3, r2 - 8000d2e: d019 beq.n 8000d64 - 8000d30: 687b ldr r3, [r7, #4] - 8000d32: 4a4e ldr r2, [pc, #312] @ (8000e6c ) - 8000d34: 4293 cmp r3, r2 - 8000d36: d013 beq.n 8000d60 - 8000d38: 687b ldr r3, [r7, #4] - 8000d3a: 4a4d ldr r2, [pc, #308] @ (8000e70 ) - 8000d3c: 4293 cmp r3, r2 - 8000d3e: d00d beq.n 8000d5c - 8000d40: 687b ldr r3, [r7, #4] - 8000d42: 4a4c ldr r2, [pc, #304] @ (8000e74 ) - 8000d44: 4293 cmp r3, r2 - 8000d46: d007 beq.n 8000d58 - 8000d48: 687b ldr r3, [r7, #4] - 8000d4a: 4a4b ldr r2, [pc, #300] @ (8000e78 ) - 8000d4c: 4293 cmp r3, r2 - 8000d4e: d101 bne.n 8000d54 - 8000d50: 2306 movs r3, #6 - 8000d52: e00c b.n 8000d6e - 8000d54: 2307 movs r3, #7 - 8000d56: e00a b.n 8000d6e - 8000d58: 2305 movs r3, #5 - 8000d5a: e008 b.n 8000d6e - 8000d5c: 2304 movs r3, #4 - 8000d5e: e006 b.n 8000d6e - 8000d60: 2303 movs r3, #3 - 8000d62: e004 b.n 8000d6e - 8000d64: 2302 movs r3, #2 - 8000d66: e002 b.n 8000d6e - 8000d68: 2301 movs r3, #1 - 8000d6a: e000 b.n 8000d6e - 8000d6c: 2300 movs r3, #0 - 8000d6e: 697a ldr r2, [r7, #20] - 8000d70: f002 0203 and.w r2, r2, #3 - 8000d74: 0092 lsls r2, r2, #2 - 8000d76: 4093 lsls r3, r2 - 8000d78: 693a ldr r2, [r7, #16] - 8000d7a: 4313 orrs r3, r2 - 8000d7c: 613b str r3, [r7, #16] + 8000d2c: 687b ldr r3, [r7, #4] + 8000d2e: 4a51 ldr r2, [pc, #324] @ (8000e74 ) + 8000d30: 4293 cmp r3, r2 + 8000d32: d025 beq.n 8000d80 + 8000d34: 687b ldr r3, [r7, #4] + 8000d36: 4a50 ldr r2, [pc, #320] @ (8000e78 ) + 8000d38: 4293 cmp r3, r2 + 8000d3a: d01f beq.n 8000d7c + 8000d3c: 687b ldr r3, [r7, #4] + 8000d3e: 4a4f ldr r2, [pc, #316] @ (8000e7c ) + 8000d40: 4293 cmp r3, r2 + 8000d42: d019 beq.n 8000d78 + 8000d44: 687b ldr r3, [r7, #4] + 8000d46: 4a4e ldr r2, [pc, #312] @ (8000e80 ) + 8000d48: 4293 cmp r3, r2 + 8000d4a: d013 beq.n 8000d74 + 8000d4c: 687b ldr r3, [r7, #4] + 8000d4e: 4a4d ldr r2, [pc, #308] @ (8000e84 ) + 8000d50: 4293 cmp r3, r2 + 8000d52: d00d beq.n 8000d70 + 8000d54: 687b ldr r3, [r7, #4] + 8000d56: 4a4c ldr r2, [pc, #304] @ (8000e88 ) + 8000d58: 4293 cmp r3, r2 + 8000d5a: d007 beq.n 8000d6c + 8000d5c: 687b ldr r3, [r7, #4] + 8000d5e: 4a4b ldr r2, [pc, #300] @ (8000e8c ) + 8000d60: 4293 cmp r3, r2 + 8000d62: d101 bne.n 8000d68 + 8000d64: 2306 movs r3, #6 + 8000d66: e00c b.n 8000d82 + 8000d68: 2307 movs r3, #7 + 8000d6a: e00a b.n 8000d82 + 8000d6c: 2305 movs r3, #5 + 8000d6e: e008 b.n 8000d82 + 8000d70: 2304 movs r3, #4 + 8000d72: e006 b.n 8000d82 + 8000d74: 2303 movs r3, #3 + 8000d76: e004 b.n 8000d82 + 8000d78: 2302 movs r3, #2 + 8000d7a: e002 b.n 8000d82 + 8000d7c: 2301 movs r3, #1 + 8000d7e: e000 b.n 8000d82 + 8000d80: 2300 movs r3, #0 + 8000d82: 697a ldr r2, [r7, #20] + 8000d84: f002 0203 and.w r2, r2, #3 + 8000d88: 0092 lsls r2, r2, #2 + 8000d8a: 4093 lsls r3, r2 + 8000d8c: 693a ldr r2, [r7, #16] + 8000d8e: 4313 orrs r3, r2 + 8000d90: 613b str r3, [r7, #16] SYSCFG->EXTICR[position >> 2] = temp; - 8000d7e: 4937 ldr r1, [pc, #220] @ (8000e5c ) - 8000d80: 697b ldr r3, [r7, #20] - 8000d82: 089b lsrs r3, r3, #2 - 8000d84: 3302 adds r3, #2 - 8000d86: 693a ldr r2, [r7, #16] - 8000d88: f841 2023 str.w r2, [r1, r3, lsl #2] + 8000d92: 4937 ldr r1, [pc, #220] @ (8000e70 ) + 8000d94: 697b ldr r3, [r7, #20] + 8000d96: 089b lsrs r3, r3, #2 + 8000d98: 3302 adds r3, #2 + 8000d9a: 693a ldr r2, [r7, #16] + 8000d9c: f841 2023 str.w r2, [r1, r3, lsl #2] /* Clear Rising Falling edge configuration */ temp = EXTI->RTSR; - 8000d8c: 4b3b ldr r3, [pc, #236] @ (8000e7c ) - 8000d8e: 689b ldr r3, [r3, #8] - 8000d90: 613b str r3, [r7, #16] + 8000da0: 4b3b ldr r3, [pc, #236] @ (8000e90 ) + 8000da2: 689b ldr r3, [r3, #8] + 8000da4: 613b str r3, [r7, #16] CLEAR_BIT(temp, (uint32_t)iocurrent); - 8000d92: 68fb ldr r3, [r7, #12] - 8000d94: 43db mvns r3, r3 - 8000d96: 693a ldr r2, [r7, #16] - 8000d98: 4013 ands r3, r2 - 8000d9a: 613b str r3, [r7, #16] + 8000da6: 68fb ldr r3, [r7, #12] + 8000da8: 43db mvns r3, r3 + 8000daa: 693a ldr r2, [r7, #16] + 8000dac: 4013 ands r3, r2 + 8000dae: 613b str r3, [r7, #16] if ((GPIO_Init->Mode & TRIGGER_RISING) != 0x00U) - 8000d9c: 683b ldr r3, [r7, #0] - 8000d9e: 685b ldr r3, [r3, #4] - 8000da0: f403 1380 and.w r3, r3, #1048576 @ 0x100000 - 8000da4: 2b00 cmp r3, #0 - 8000da6: d003 beq.n 8000db0 + 8000db0: 683b ldr r3, [r7, #0] + 8000db2: 685b ldr r3, [r3, #4] + 8000db4: f403 1380 and.w r3, r3, #1048576 @ 0x100000 + 8000db8: 2b00 cmp r3, #0 + 8000dba: d003 beq.n 8000dc4 { SET_BIT(temp, iocurrent); - 8000da8: 693a ldr r2, [r7, #16] - 8000daa: 68fb ldr r3, [r7, #12] - 8000dac: 4313 orrs r3, r2 - 8000dae: 613b str r3, [r7, #16] + 8000dbc: 693a ldr r2, [r7, #16] + 8000dbe: 68fb ldr r3, [r7, #12] + 8000dc0: 4313 orrs r3, r2 + 8000dc2: 613b str r3, [r7, #16] } EXTI->RTSR = temp; - 8000db0: 4a32 ldr r2, [pc, #200] @ (8000e7c ) - 8000db2: 693b ldr r3, [r7, #16] - 8000db4: 6093 str r3, [r2, #8] + 8000dc4: 4a32 ldr r2, [pc, #200] @ (8000e90 ) + 8000dc6: 693b ldr r3, [r7, #16] + 8000dc8: 6093 str r3, [r2, #8] temp = EXTI->FTSR; - 8000db6: 4b31 ldr r3, [pc, #196] @ (8000e7c ) - 8000db8: 68db ldr r3, [r3, #12] - 8000dba: 613b str r3, [r7, #16] + 8000dca: 4b31 ldr r3, [pc, #196] @ (8000e90 ) + 8000dcc: 68db ldr r3, [r3, #12] + 8000dce: 613b str r3, [r7, #16] CLEAR_BIT(temp, (uint32_t)iocurrent); - 8000dbc: 68fb ldr r3, [r7, #12] - 8000dbe: 43db mvns r3, r3 - 8000dc0: 693a ldr r2, [r7, #16] - 8000dc2: 4013 ands r3, r2 - 8000dc4: 613b str r3, [r7, #16] + 8000dd0: 68fb ldr r3, [r7, #12] + 8000dd2: 43db mvns r3, r3 + 8000dd4: 693a ldr r2, [r7, #16] + 8000dd6: 4013 ands r3, r2 + 8000dd8: 613b str r3, [r7, #16] if ((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00U) - 8000dc6: 683b ldr r3, [r7, #0] - 8000dc8: 685b ldr r3, [r3, #4] - 8000dca: f403 1300 and.w r3, r3, #2097152 @ 0x200000 - 8000dce: 2b00 cmp r3, #0 - 8000dd0: d003 beq.n 8000dda + 8000dda: 683b ldr r3, [r7, #0] + 8000ddc: 685b ldr r3, [r3, #4] + 8000dde: f403 1300 and.w r3, r3, #2097152 @ 0x200000 + 8000de2: 2b00 cmp r3, #0 + 8000de4: d003 beq.n 8000dee { SET_BIT(temp, iocurrent); - 8000dd2: 693a ldr r2, [r7, #16] - 8000dd4: 68fb ldr r3, [r7, #12] - 8000dd6: 4313 orrs r3, r2 - 8000dd8: 613b str r3, [r7, #16] + 8000de6: 693a ldr r2, [r7, #16] + 8000de8: 68fb ldr r3, [r7, #12] + 8000dea: 4313 orrs r3, r2 + 8000dec: 613b str r3, [r7, #16] } EXTI->FTSR = temp; - 8000dda: 4a28 ldr r2, [pc, #160] @ (8000e7c ) - 8000ddc: 693b ldr r3, [r7, #16] - 8000dde: 60d3 str r3, [r2, #12] + 8000dee: 4a28 ldr r2, [pc, #160] @ (8000e90 ) + 8000df0: 693b ldr r3, [r7, #16] + 8000df2: 60d3 str r3, [r2, #12] temp = EXTI->EMR; - 8000de0: 4b26 ldr r3, [pc, #152] @ (8000e7c ) - 8000de2: 685b ldr r3, [r3, #4] - 8000de4: 613b str r3, [r7, #16] + 8000df4: 4b26 ldr r3, [pc, #152] @ (8000e90 ) + 8000df6: 685b ldr r3, [r3, #4] + 8000df8: 613b str r3, [r7, #16] CLEAR_BIT(temp, (uint32_t)iocurrent); - 8000de6: 68fb ldr r3, [r7, #12] - 8000de8: 43db mvns r3, r3 - 8000dea: 693a ldr r2, [r7, #16] - 8000dec: 4013 ands r3, r2 - 8000dee: 613b str r3, [r7, #16] + 8000dfa: 68fb ldr r3, [r7, #12] + 8000dfc: 43db mvns r3, r3 + 8000dfe: 693a ldr r2, [r7, #16] + 8000e00: 4013 ands r3, r2 + 8000e02: 613b str r3, [r7, #16] if ((GPIO_Init->Mode & EXTI_EVT) != 0x00U) - 8000df0: 683b ldr r3, [r7, #0] - 8000df2: 685b ldr r3, [r3, #4] - 8000df4: f403 3300 and.w r3, r3, #131072 @ 0x20000 - 8000df8: 2b00 cmp r3, #0 - 8000dfa: d003 beq.n 8000e04 + 8000e04: 683b ldr r3, [r7, #0] + 8000e06: 685b ldr r3, [r3, #4] + 8000e08: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 8000e0c: 2b00 cmp r3, #0 + 8000e0e: d003 beq.n 8000e18 { SET_BIT(temp, iocurrent); - 8000dfc: 693a ldr r2, [r7, #16] - 8000dfe: 68fb ldr r3, [r7, #12] - 8000e00: 4313 orrs r3, r2 - 8000e02: 613b str r3, [r7, #16] + 8000e10: 693a ldr r2, [r7, #16] + 8000e12: 68fb ldr r3, [r7, #12] + 8000e14: 4313 orrs r3, r2 + 8000e16: 613b str r3, [r7, #16] } EXTI->EMR = temp; - 8000e04: 4a1d ldr r2, [pc, #116] @ (8000e7c ) - 8000e06: 693b ldr r3, [r7, #16] - 8000e08: 6053 str r3, [r2, #4] + 8000e18: 4a1d ldr r2, [pc, #116] @ (8000e90 ) + 8000e1a: 693b ldr r3, [r7, #16] + 8000e1c: 6053 str r3, [r2, #4] /* Clear EXTI line configuration */ temp = EXTI->IMR; - 8000e0a: 4b1c ldr r3, [pc, #112] @ (8000e7c ) - 8000e0c: 681b ldr r3, [r3, #0] - 8000e0e: 613b str r3, [r7, #16] + 8000e1e: 4b1c ldr r3, [pc, #112] @ (8000e90 ) + 8000e20: 681b ldr r3, [r3, #0] + 8000e22: 613b str r3, [r7, #16] CLEAR_BIT(temp, (uint32_t)iocurrent); - 8000e10: 68fb ldr r3, [r7, #12] - 8000e12: 43db mvns r3, r3 - 8000e14: 693a ldr r2, [r7, #16] - 8000e16: 4013 ands r3, r2 - 8000e18: 613b str r3, [r7, #16] + 8000e24: 68fb ldr r3, [r7, #12] + 8000e26: 43db mvns r3, r3 + 8000e28: 693a ldr r2, [r7, #16] + 8000e2a: 4013 ands r3, r2 + 8000e2c: 613b str r3, [r7, #16] if ((GPIO_Init->Mode & EXTI_IT) != 0x00U) - 8000e1a: 683b ldr r3, [r7, #0] - 8000e1c: 685b ldr r3, [r3, #4] - 8000e1e: f403 3380 and.w r3, r3, #65536 @ 0x10000 - 8000e22: 2b00 cmp r3, #0 - 8000e24: d003 beq.n 8000e2e + 8000e2e: 683b ldr r3, [r7, #0] + 8000e30: 685b ldr r3, [r3, #4] + 8000e32: f403 3380 and.w r3, r3, #65536 @ 0x10000 + 8000e36: 2b00 cmp r3, #0 + 8000e38: d003 beq.n 8000e42 { SET_BIT(temp, iocurrent); - 8000e26: 693a ldr r2, [r7, #16] - 8000e28: 68fb ldr r3, [r7, #12] - 8000e2a: 4313 orrs r3, r2 - 8000e2c: 613b str r3, [r7, #16] + 8000e3a: 693a ldr r2, [r7, #16] + 8000e3c: 68fb ldr r3, [r7, #12] + 8000e3e: 4313 orrs r3, r2 + 8000e40: 613b str r3, [r7, #16] } EXTI->IMR = temp; - 8000e2e: 4a13 ldr r2, [pc, #76] @ (8000e7c ) - 8000e30: 693b ldr r3, [r7, #16] - 8000e32: 6013 str r3, [r2, #0] + 8000e42: 4a13 ldr r2, [pc, #76] @ (8000e90 ) + 8000e44: 693b ldr r3, [r7, #16] + 8000e46: 6013 str r3, [r2, #0] } } position++; - 8000e34: 697b ldr r3, [r7, #20] - 8000e36: 3301 adds r3, #1 - 8000e38: 617b str r3, [r7, #20] + 8000e48: 697b ldr r3, [r7, #20] + 8000e4a: 3301 adds r3, #1 + 8000e4c: 617b str r3, [r7, #20] while (((GPIO_Init->Pin) >> position) != 0) - 8000e3a: 683b ldr r3, [r7, #0] - 8000e3c: 681a ldr r2, [r3, #0] - 8000e3e: 697b ldr r3, [r7, #20] - 8000e40: fa22 f303 lsr.w r3, r2, r3 - 8000e44: 2b00 cmp r3, #0 - 8000e46: f47f ae97 bne.w 8000b78 + 8000e4e: 683b ldr r3, [r7, #0] + 8000e50: 681a ldr r2, [r3, #0] + 8000e52: 697b ldr r3, [r7, #20] + 8000e54: fa22 f303 lsr.w r3, r2, r3 + 8000e58: 2b00 cmp r3, #0 + 8000e5a: f47f ae97 bne.w 8000b8c } } - 8000e4a: bf00 nop - 8000e4c: bf00 nop - 8000e4e: 371c adds r7, #28 - 8000e50: 46bd mov sp, r7 - 8000e52: bc80 pop {r7} - 8000e54: 4770 bx lr - 8000e56: bf00 nop - 8000e58: 40023800 .word 0x40023800 - 8000e5c: 40010000 .word 0x40010000 - 8000e60: 40020000 .word 0x40020000 - 8000e64: 40020400 .word 0x40020400 - 8000e68: 40020800 .word 0x40020800 - 8000e6c: 40020c00 .word 0x40020c00 - 8000e70: 40021000 .word 0x40021000 - 8000e74: 40021400 .word 0x40021400 - 8000e78: 40021800 .word 0x40021800 - 8000e7c: 40010400 .word 0x40010400 + 8000e5e: bf00 nop + 8000e60: bf00 nop + 8000e62: 371c adds r7, #28 + 8000e64: 46bd mov sp, r7 + 8000e66: bc80 pop {r7} + 8000e68: 4770 bx lr + 8000e6a: bf00 nop + 8000e6c: 40023800 .word 0x40023800 + 8000e70: 40010000 .word 0x40010000 + 8000e74: 40020000 .word 0x40020000 + 8000e78: 40020400 .word 0x40020400 + 8000e7c: 40020800 .word 0x40020800 + 8000e80: 40020c00 .word 0x40020c00 + 8000e84: 40021000 .word 0x40021000 + 8000e88: 40021400 .word 0x40021400 + 8000e8c: 40021800 .word 0x40021800 + 8000e90: 40010400 .word 0x40010400 -08000e80 : +08000e94 : * @arg GPIO_PIN_RESET: to clear the port pin * @arg GPIO_PIN_SET: to set the port pin * @retval None */ void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState) { - 8000e80: b480 push {r7} - 8000e82: b083 sub sp, #12 - 8000e84: af00 add r7, sp, #0 - 8000e86: 6078 str r0, [r7, #4] - 8000e88: 460b mov r3, r1 - 8000e8a: 807b strh r3, [r7, #2] - 8000e8c: 4613 mov r3, r2 - 8000e8e: 707b strb r3, [r7, #1] + 8000e94: b480 push {r7} + 8000e96: b083 sub sp, #12 + 8000e98: af00 add r7, sp, #0 + 8000e9a: 6078 str r0, [r7, #4] + 8000e9c: 460b mov r3, r1 + 8000e9e: 807b strh r3, [r7, #2] + 8000ea0: 4613 mov r3, r2 + 8000ea2: 707b strb r3, [r7, #1] /* Check the parameters */ assert_param(IS_GPIO_PIN(GPIO_Pin)); assert_param(IS_GPIO_PIN_ACTION(PinState)); if (PinState != GPIO_PIN_RESET) - 8000e90: 787b ldrb r3, [r7, #1] - 8000e92: 2b00 cmp r3, #0 - 8000e94: d003 beq.n 8000e9e + 8000ea4: 787b ldrb r3, [r7, #1] + 8000ea6: 2b00 cmp r3, #0 + 8000ea8: d003 beq.n 8000eb2 { GPIOx->BSRR = (uint32_t)GPIO_Pin; - 8000e96: 887a ldrh r2, [r7, #2] - 8000e98: 687b ldr r3, [r7, #4] - 8000e9a: 619a str r2, [r3, #24] + 8000eaa: 887a ldrh r2, [r7, #2] + 8000eac: 687b ldr r3, [r7, #4] + 8000eae: 619a str r2, [r3, #24] } else { GPIOx->BSRR = (uint32_t)GPIO_Pin << 16 ; } } - 8000e9c: e003 b.n 8000ea6 + 8000eb0: e003 b.n 8000eba GPIOx->BSRR = (uint32_t)GPIO_Pin << 16 ; - 8000e9e: 887b ldrh r3, [r7, #2] - 8000ea0: 041a lsls r2, r3, #16 - 8000ea2: 687b ldr r3, [r7, #4] - 8000ea4: 619a str r2, [r3, #24] + 8000eb2: 887b ldrh r3, [r7, #2] + 8000eb4: 041a lsls r2, r3, #16 + 8000eb6: 687b ldr r3, [r7, #4] + 8000eb8: 619a str r2, [r3, #24] } - 8000ea6: bf00 nop - 8000ea8: 370c adds r7, #12 - 8000eaa: 46bd mov sp, r7 - 8000eac: bc80 pop {r7} - 8000eae: 4770 bx lr + 8000eba: bf00 nop + 8000ebc: 370c adds r7, #12 + 8000ebe: 46bd mov sp, r7 + 8000ec0: bc80 pop {r7} + 8000ec2: 4770 bx lr -08000eb0 : +08000ec4 : * @brief This function handles EXTI interrupt request. * @param GPIO_Pin Specifies the port pin connected to corresponding EXTI line. * @retval None */ void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin) { - 8000eb0: b580 push {r7, lr} - 8000eb2: b082 sub sp, #8 - 8000eb4: af00 add r7, sp, #0 - 8000eb6: 4603 mov r3, r0 - 8000eb8: 80fb strh r3, [r7, #6] + 8000ec4: b580 push {r7, lr} + 8000ec6: b082 sub sp, #8 + 8000ec8: af00 add r7, sp, #0 + 8000eca: 4603 mov r3, r0 + 8000ecc: 80fb strh r3, [r7, #6] /* EXTI line interrupt detected */ if (__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET) - 8000eba: 4b08 ldr r3, [pc, #32] @ (8000edc ) - 8000ebc: 695a ldr r2, [r3, #20] - 8000ebe: 88fb ldrh r3, [r7, #6] - 8000ec0: 4013 ands r3, r2 - 8000ec2: 2b00 cmp r3, #0 - 8000ec4: d006 beq.n 8000ed4 + 8000ece: 4b08 ldr r3, [pc, #32] @ (8000ef0 ) + 8000ed0: 695a ldr r2, [r3, #20] + 8000ed2: 88fb ldrh r3, [r7, #6] + 8000ed4: 4013 ands r3, r2 + 8000ed6: 2b00 cmp r3, #0 + 8000ed8: d006 beq.n 8000ee8 { __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin); - 8000ec6: 4a05 ldr r2, [pc, #20] @ (8000edc ) - 8000ec8: 88fb ldrh r3, [r7, #6] - 8000eca: 6153 str r3, [r2, #20] + 8000eda: 4a05 ldr r2, [pc, #20] @ (8000ef0 ) + 8000edc: 88fb ldrh r3, [r7, #6] + 8000ede: 6153 str r3, [r2, #20] HAL_GPIO_EXTI_Callback(GPIO_Pin); - 8000ecc: 88fb ldrh r3, [r7, #6] - 8000ece: 4618 mov r0, r3 - 8000ed0: f000 f806 bl 8000ee0 + 8000ee0: 88fb ldrh r3, [r7, #6] + 8000ee2: 4618 mov r0, r3 + 8000ee4: f7ff fbde bl 80006a4 } } - 8000ed4: bf00 nop - 8000ed6: 3708 adds r7, #8 - 8000ed8: 46bd mov sp, r7 - 8000eda: bd80 pop {r7, pc} - 8000edc: 40010400 .word 0x40010400 - -08000ee0 : - * @brief EXTI line detection callbacks. - * @param GPIO_Pin Specifies the port pin connected to corresponding EXTI line. - * @retval None - */ -__weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) -{ - 8000ee0: b480 push {r7} - 8000ee2: b083 sub sp, #12 - 8000ee4: af00 add r7, sp, #0 - 8000ee6: 4603 mov r3, r0 - 8000ee8: 80fb strh r3, [r7, #6] - UNUSED(GPIO_Pin); - - /* NOTE : This function Should not be modified, when the callback is needed, - the HAL_GPIO_EXTI_Callback could be implemented in the user file - */ -} - 8000eea: bf00 nop - 8000eec: 370c adds r7, #12 - 8000eee: 46bd mov sp, r7 - 8000ef0: bc80 pop {r7} - 8000ef2: 4770 bx lr + 8000ee8: bf00 nop + 8000eea: 3708 adds r7, #8 + 8000eec: 46bd mov sp, r7 + 8000eee: bd80 pop {r7, pc} + 8000ef0: 40010400 .word 0x40010400 08000ef4 : * supported by this macro. User should request a transition to HSE Off @@ -2533,7 +2524,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) { /* Get Start Tick */ tickstart = HAL_GetTick(); - 8000fcc: f7ff fcb0 bl 8000930 + 8000fcc: f7ff fcba bl 8000944 8000fd0: 6138 str r0, [r7, #16] /* Wait till HSE is ready */ @@ -2541,7 +2532,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) 8000fd2: e008 b.n 8000fe6 { if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) - 8000fd4: f7ff fcac bl 8000930 + 8000fd4: f7ff fcb6 bl 8000944 8000fd8: 4602 mov r2, r0 8000fda: 693b ldr r3, [r7, #16] 8000fdc: 1ad3 subs r3, r2, r3 @@ -2564,7 +2555,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) { /* Get Start Tick */ tickstart = HAL_GetTick(); - 8000ff4: f7ff fc9c bl 8000930 + 8000ff4: f7ff fca6 bl 8000944 8000ff8: 6138 str r0, [r7, #16] /* Wait till HSE is disabled */ @@ -2572,7 +2563,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) 8000ffa: e008 b.n 800100e { if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) - 8000ffc: f7ff fc98 bl 8000930 + 8000ffc: f7ff fca2 bl 8000944 8001000: 4602 mov r2, r0 8001002: 693b ldr r3, [r7, #16] 8001004: 1ad3 subs r3, r2, r3 @@ -2670,7 +2661,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) /* Get Start Tick */ tickstart = HAL_GetTick(); - 8001078: f7ff fc5a bl 8000930 + 8001078: f7ff fc64 bl 8000944 800107c: 6138 str r0, [r7, #16] /* Wait till HSI is ready */ @@ -2678,7 +2669,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) 800107e: e008 b.n 8001092 { if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE) - 8001080: f7ff fc56 bl 8000930 + 8001080: f7ff fc60 bl 8000944 8001084: 4602 mov r2, r0 8001086: 693b ldr r3, [r7, #16] 8001088: 1ad3 subs r3, r2, r3 @@ -2720,7 +2711,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) /* Get Start Tick */ tickstart = HAL_GetTick(); - 80010ba: f7ff fc39 bl 8000930 + 80010ba: f7ff fc43 bl 8000944 80010be: 6138 str r0, [r7, #16] /* Wait till HSI is disabled */ @@ -2728,7 +2719,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) 80010c0: e008 b.n 80010d4 { if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE) - 80010c2: f7ff fc35 bl 8000930 + 80010c2: f7ff fc3f bl 8000944 80010c6: 4602 mov r2, r0 80010c8: 693b ldr r3, [r7, #16] 80010ca: 1ad3 subs r3, r2, r3 @@ -2896,7 +2887,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) 80011be: 4b85 ldr r3, [pc, #532] @ (80013d4 ) 80011c0: 681b ldr r3, [r3, #0] 80011c2: 4618 mov r0, r3 - 80011c4: f7ff fb68 bl 8000898 + 80011c4: f7ff fb72 bl 80008ac 80011c8: 4603 mov r3, r0 80011ca: 73fb strb r3, [r7, #15] if(status != HAL_OK) @@ -2926,7 +2917,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) /* Get Start Tick */ tickstart = HAL_GetTick(); - 80011e4: f7ff fba4 bl 8000930 + 80011e4: f7ff fbae bl 8000944 80011e8: 6138 str r0, [r7, #16] /* Wait till MSI is ready */ @@ -2934,7 +2925,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) 80011ea: e008 b.n 80011fe { if((HAL_GetTick() - tickstart) > MSI_TIMEOUT_VALUE) - 80011ec: f7ff fba0 bl 8000930 + 80011ec: f7ff fbaa bl 8000944 80011f0: 4602 mov r2, r0 80011f2: 693b ldr r3, [r7, #16] 80011f4: 1ad3 subs r3, r2, r3 @@ -2988,7 +2979,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) /* Get Start Tick */ tickstart = HAL_GetTick(); - 8001238: f7ff fb7a bl 8000930 + 8001238: f7ff fb84 bl 8000944 800123c: 6138 str r0, [r7, #16] /* Wait till MSI is ready */ @@ -2996,7 +2987,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) 800123e: e008 b.n 8001252 { if((HAL_GetTick() - tickstart) > MSI_TIMEOUT_VALUE) - 8001240: f7ff fb76 bl 8000930 + 8001240: f7ff fb80 bl 8000944 8001244: 4602 mov r2, r0 8001246: 693b ldr r3, [r7, #16] 8001248: 1ad3 subs r3, r2, r3 @@ -3042,7 +3033,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) /* Get Start Tick */ tickstart = HAL_GetTick(); - 8001278: f7ff fb5a bl 8000930 + 8001278: f7ff fb64 bl 8000944 800127c: 6138 str r0, [r7, #16] /* Wait till LSI is ready */ @@ -3050,7 +3041,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) 800127e: e008 b.n 8001292 { if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE) - 8001280: f7ff fb56 bl 8000930 + 8001280: f7ff fb60 bl 8000944 8001284: 4602 mov r2, r0 8001286: 693b ldr r3, [r7, #16] 8001288: 1ad3 subs r3, r2, r3 @@ -3079,7 +3070,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) /* Get Start Tick */ tickstart = HAL_GetTick(); - 80012a6: f7ff fb43 bl 8000930 + 80012a6: f7ff fb4d bl 8000944 80012aa: 6138 str r0, [r7, #16] /* Wait till LSI is disabled */ @@ -3087,7 +3078,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) 80012ac: e008 b.n 80012c0 { if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE) - 80012ae: f7ff fb3f bl 8000930 + 80012ae: f7ff fb49 bl 8000944 80012b2: 4602 mov r2, r0 80012b4: 693b ldr r3, [r7, #16] 80012b6: 1ad3 subs r3, r2, r3 @@ -3163,14 +3154,14 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) /* Wait for Backup domain Write protection disable */ tickstart = HAL_GetTick(); - 800131e: f7ff fb07 bl 8000930 + 800131e: f7ff fb11 bl 8000944 8001322: 6138 str r0, [r7, #16] while(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) 8001324: e008 b.n 8001338 { if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) - 8001326: f7ff fb03 bl 8000930 + 8001326: f7ff fb0d bl 8000944 800132a: 4602 mov r2, r0 800132c: 693b ldr r3, [r7, #16] 800132e: 1ad3 subs r3, r2, r3 @@ -3251,7 +3242,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) { /* Get Start Tick */ tickstart = HAL_GetTick(); - 80013be: f7ff fab7 bl 8000930 + 80013be: f7ff fac1 bl 8000944 80013c2: 6138 str r0, [r7, #16] /* Wait till LSE is ready */ @@ -3267,7 +3258,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) 80013e0: 40007000 .word 0x40007000 { if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) - 80013e4: f7ff faa4 bl 8000930 + 80013e4: f7ff faae bl 8000944 80013e8: 4602 mov r2, r0 80013ea: 693b ldr r3, [r7, #16] 80013ec: 1ad3 subs r3, r2, r3 @@ -3291,7 +3282,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) { /* Get Start Tick */ tickstart = HAL_GetTick(); - 8001408: f7ff fa92 bl 8000930 + 8001408: f7ff fa9c bl 8000944 800140c: 6138 str r0, [r7, #16] /* Wait till LSE is disabled */ @@ -3299,7 +3290,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) 800140e: e00a b.n 8001426 { if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) - 8001410: f7ff fa8e bl 8000930 + 8001410: f7ff fa98 bl 8000944 8001414: 4602 mov r2, r0 8001416: 693b ldr r3, [r7, #16] 8001418: 1ad3 subs r3, r2, r3 @@ -3366,7 +3357,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) /* Get Start Tick */ tickstart = HAL_GetTick(); - 8001460: f7ff fa66 bl 8000930 + 8001460: f7ff fa70 bl 8000944 8001464: 6138 str r0, [r7, #16] /* Wait till PLL is disabled */ @@ -3374,7 +3365,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) 8001466: e008 b.n 800147a { if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) - 8001468: f7ff fa62 bl 8000930 + 8001468: f7ff fa6c bl 8000944 800146c: 4602 mov r2, r0 800146e: 693b ldr r3, [r7, #16] 8001470: 1ad3 subs r3, r2, r3 @@ -3419,7 +3410,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) /* Get Start Tick */ tickstart = HAL_GetTick(); - 80014aa: f7ff fa41 bl 8000930 + 80014aa: f7ff fa4b bl 8000944 80014ae: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ @@ -3427,7 +3418,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) 80014b0: e008 b.n 80014c4 { if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) - 80014b2: f7ff fa3d bl 8000930 + 80014b2: f7ff fa47 bl 8000944 80014b6: 4602 mov r2, r0 80014b8: 693b ldr r3, [r7, #16] 80014ba: 1ad3 subs r3, r2, r3 @@ -3456,7 +3447,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) /* Get Start Tick */ tickstart = HAL_GetTick(); - 80014d8: f7ff fa2a bl 8000930 + 80014d8: f7ff fa34 bl 8000944 80014dc: 6138 str r0, [r7, #16] /* Wait till PLL is disabled */ @@ -3464,7 +3455,7 @@ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) 80014de: e008 b.n 80014f2 { if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) - 80014e0: f7ff fa26 bl 8000930 + 80014e0: f7ff fa30 bl 8000944 80014e4: 4602 mov r2, r0 80014e6: 693b ldr r3, [r7, #16] 80014e8: 1ad3 subs r3, r2, r3 @@ -3734,7 +3725,7 @@ HAL_StatusTypeDef HAL_RCC_ClockConfig(const RCC_ClkInitTypeDef *RCC_ClkInitStru /* Get Start Tick */ tickstart = HAL_GetTick(); - 8001640: f7ff f976 bl 8000930 + 8001640: f7ff f980 bl 8000944 8001644: 60f8 str r0, [r7, #12] if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) @@ -3747,7 +3738,7 @@ HAL_StatusTypeDef HAL_RCC_ClockConfig(const RCC_ClkInitTypeDef *RCC_ClkInitStru 800164e: e00a b.n 8001666 { if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE) - 8001650: f7ff f96e bl 8000930 + 8001650: f7ff f978 bl 8000944 8001654: 4602 mov r2, r0 8001656: 68fb ldr r3, [r7, #12] 8001658: 1ad3 subs r3, r2, r3 @@ -3778,7 +3769,7 @@ HAL_StatusTypeDef HAL_RCC_ClockConfig(const RCC_ClkInitTypeDef *RCC_ClkInitStru 800167c: e00a b.n 8001694 { if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE) - 800167e: f7ff f957 bl 8000930 + 800167e: f7ff f961 bl 8000944 8001682: 4602 mov r2, r0 8001684: 68fb ldr r3, [r7, #12] 8001686: 1ad3 subs r3, r2, r3 @@ -3809,7 +3800,7 @@ HAL_StatusTypeDef HAL_RCC_ClockConfig(const RCC_ClkInitTypeDef *RCC_ClkInitStru 80016aa: e00a b.n 80016c2 { if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE) - 80016ac: f7ff f940 bl 8000930 + 80016ac: f7ff f94a bl 8000944 80016b0: 4602 mov r2, r0 80016b2: 68fb ldr r3, [r7, #12] 80016b4: 1ad3 subs r3, r2, r3 @@ -3833,7 +3824,7 @@ HAL_StatusTypeDef HAL_RCC_ClockConfig(const RCC_ClkInitTypeDef *RCC_ClkInitStru while(__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_MSI) { if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE) - 80016d0: f7ff f92e bl 8000930 + 80016d0: f7ff f938 bl 8000944 80016d4: 4602 mov r2, r0 80016d6: 68fb ldr r3, [r7, #12] 80016d8: 1ad3 subs r3, r2, r3 @@ -3957,7 +3948,7 @@ HAL_StatusTypeDef HAL_RCC_ClockConfig(const RCC_ClkInitTypeDef *RCC_ClkInitStru 800178e: 4b0a ldr r3, [pc, #40] @ (80017b8 ) 8001790: 681b ldr r3, [r3, #0] 8001792: 4618 mov r0, r3 - 8001794: f7ff f880 bl 8000898 + 8001794: f7ff f88a bl 80008ac 8001798: 4603 mov r3, r0 800179a: 72fb strb r3, [r7, #11] @@ -4462,7 +4453,7 @@ HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) /* Init the low level hardware : GPIO, CLOCK */ HAL_UART_MspInit(huart); 8001b06: 6878 ldr r0, [r7, #4] - 8001b08: f7fe fe02 bl 8000710 + 8001b08: f7fe fe14 bl 8000734 #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ } diff --git a/TD-1-test/Debug/TD-1-test.map b/TD-1-test/Debug/TD-1-test.map index 1d47b9c..dcbb568 100644 --- a/TD-1-test/Debug/TD-1-test.map +++ b/TD-1-test/Debug/TD-1-test.map @@ -1330,6 +1330,8 @@ Discarded input sections 0x00000000 0x32 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o .text.HAL_GPIO_LockPin 0x00000000 0x4e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .text.HAL_GPIO_EXTI_Callback + 0x00000000 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o .debug_macro 0x00000000 0xacc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o .debug_macro 0x00000000 0x109 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o .debug_macro 0x00000000 0x2e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o @@ -2263,158 +2265,158 @@ LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.id 0x08000574 0x54 ./Core/Src/main.o .text.MX_GPIO_Init 0x080005c8 0xdc ./Core/Src/main.o - .text.Error_Handler - 0x080006a4 0xc ./Core/Src/main.o - 0x080006a4 Error_Handler - .text.HAL_MspInit - 0x080006b0 0x60 ./Core/Src/stm32l1xx_hal_msp.o - 0x080006b0 HAL_MspInit - .text.HAL_UART_MspInit - 0x08000710 0x88 ./Core/Src/stm32l1xx_hal_msp.o - 0x08000710 HAL_UART_MspInit - .text.NMI_Handler - 0x08000798 0x8 ./Core/Src/stm32l1xx_it.o - 0x08000798 NMI_Handler - .text.HardFault_Handler - 0x080007a0 0x8 ./Core/Src/stm32l1xx_it.o - 0x080007a0 HardFault_Handler - .text.MemManage_Handler - 0x080007a8 0x8 ./Core/Src/stm32l1xx_it.o - 0x080007a8 MemManage_Handler - .text.BusFault_Handler - 0x080007b0 0x8 ./Core/Src/stm32l1xx_it.o - 0x080007b0 BusFault_Handler - .text.UsageFault_Handler - 0x080007b8 0x8 ./Core/Src/stm32l1xx_it.o - 0x080007b8 UsageFault_Handler - .text.SVC_Handler - 0x080007c0 0xc ./Core/Src/stm32l1xx_it.o - 0x080007c0 SVC_Handler - .text.DebugMon_Handler - 0x080007cc 0xc ./Core/Src/stm32l1xx_it.o - 0x080007cc DebugMon_Handler - .text.PendSV_Handler - 0x080007d8 0xc ./Core/Src/stm32l1xx_it.o - 0x080007d8 PendSV_Handler - .text.SysTick_Handler - 0x080007e4 0xc ./Core/Src/stm32l1xx_it.o - 0x080007e4 SysTick_Handler - .text.EXTI15_10_IRQHandler - 0x080007f0 0x20 ./Core/Src/stm32l1xx_it.o - 0x080007f0 EXTI15_10_IRQHandler - .text.SystemInit - 0x08000810 0xc ./Core/Src/system_stm32l1xx.o - 0x08000810 SystemInit - .text.Reset_Handler - 0x0800081c 0x48 ./Core/Startup/startup_stm32l152retx.o - 0x0800081c Reset_Handler - .text.Default_Handler - 0x08000864 0x2 ./Core/Startup/startup_stm32l152retx.o - 0x08000864 DMA2_Channel3_IRQHandler - 0x08000864 EXTI2_IRQHandler - 0x08000864 COMP_ACQ_IRQHandler - 0x08000864 TIM10_IRQHandler - 0x08000864 USB_HP_IRQHandler - 0x08000864 TIM6_IRQHandler - 0x08000864 PVD_IRQHandler - 0x08000864 EXTI3_IRQHandler - 0x08000864 EXTI0_IRQHandler - 0x08000864 I2C2_EV_IRQHandler - 0x08000864 SPI1_IRQHandler - 0x08000864 USB_FS_WKUP_IRQHandler - 0x08000864 DMA2_Channel2_IRQHandler - 0x08000864 DMA1_Channel4_IRQHandler - 0x08000864 ADC1_IRQHandler - 0x08000864 USART3_IRQHandler - 0x08000864 DMA1_Channel7_IRQHandler - 0x08000864 LCD_IRQHandler - 0x08000864 UART5_IRQHandler - 0x08000864 TIM4_IRQHandler - 0x08000864 DMA2_Channel1_IRQHandler - 0x08000864 I2C1_EV_IRQHandler - 0x08000864 DMA1_Channel6_IRQHandler - 0x08000864 UART4_IRQHandler - 0x08000864 DMA2_Channel4_IRQHandler - 0x08000864 TIM3_IRQHandler - 0x08000864 RCC_IRQHandler - 0x08000864 DMA1_Channel1_IRQHandler - 0x08000864 Default_Handler - 0x08000864 TIM7_IRQHandler - 0x08000864 TIM5_IRQHandler - 0x08000864 EXTI9_5_IRQHandler - 0x08000864 TIM9_IRQHandler - 0x08000864 TAMPER_STAMP_IRQHandler - 0x08000864 RTC_WKUP_IRQHandler - 0x08000864 SPI2_IRQHandler - 0x08000864 DMA2_Channel5_IRQHandler - 0x08000864 DMA1_Channel5_IRQHandler - 0x08000864 USB_LP_IRQHandler - 0x08000864 EXTI4_IRQHandler - 0x08000864 DMA1_Channel3_IRQHandler - 0x08000864 COMP_IRQHandler - 0x08000864 WWDG_IRQHandler - 0x08000864 TIM2_IRQHandler - 0x08000864 DAC_IRQHandler - 0x08000864 EXTI1_IRQHandler - 0x08000864 TIM11_IRQHandler - 0x08000864 USART2_IRQHandler - 0x08000864 I2C2_ER_IRQHandler - 0x08000864 DMA1_Channel2_IRQHandler - 0x08000864 FLASH_IRQHandler - 0x08000864 USART1_IRQHandler - 0x08000864 SPI3_IRQHandler - 0x08000864 I2C1_ER_IRQHandler - 0x08000864 RTC_Alarm_IRQHandler - .text.HAL_Init - 0x08000866 0x30 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o - 0x08000866 HAL_Init - *fill* 0x08000896 0x2 - .text.HAL_InitTick - 0x08000898 0x74 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o - 0x08000898 HAL_InitTick - .text.HAL_IncTick - 0x0800090c 0x24 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o - 0x0800090c HAL_IncTick - .text.HAL_GetTick - 0x08000930 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o - 0x08000930 HAL_GetTick - .text.__NVIC_SetPriorityGrouping - 0x08000944 0x48 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o - .text.__NVIC_GetPriorityGrouping - 0x0800098c 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o - .text.__NVIC_EnableIRQ - 0x080009a8 0x38 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o - .text.__NVIC_SetPriority - 0x080009e0 0x54 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o - .text.NVIC_EncodePriority - 0x08000a34 0x64 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o - .text.SysTick_Config - 0x08000a98 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o - .text.HAL_NVIC_SetPriorityGrouping - 0x08000adc 0x16 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o - 0x08000adc HAL_NVIC_SetPriorityGrouping - .text.HAL_NVIC_SetPriority - 0x08000af2 0x38 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o - 0x08000af2 HAL_NVIC_SetPriority - .text.HAL_NVIC_EnableIRQ - 0x08000b2a 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o - 0x08000b2a HAL_NVIC_EnableIRQ - .text.HAL_SYSTICK_Config - 0x08000b46 0x18 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o - 0x08000b46 HAL_SYSTICK_Config - *fill* 0x08000b5e 0x2 - .text.HAL_GPIO_Init - 0x08000b60 0x320 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o - 0x08000b60 HAL_GPIO_Init - .text.HAL_GPIO_WritePin - 0x08000e80 0x30 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o - 0x08000e80 HAL_GPIO_WritePin - .text.HAL_GPIO_EXTI_IRQHandler - 0x08000eb0 0x30 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o - 0x08000eb0 HAL_GPIO_EXTI_IRQHandler .text.HAL_GPIO_EXTI_Callback - 0x08000ee0 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o - 0x08000ee0 HAL_GPIO_EXTI_Callback + 0x080006a4 0x24 ./Core/Src/main.o + 0x080006a4 HAL_GPIO_EXTI_Callback + .text.Error_Handler + 0x080006c8 0xc ./Core/Src/main.o + 0x080006c8 Error_Handler + .text.HAL_MspInit + 0x080006d4 0x60 ./Core/Src/stm32l1xx_hal_msp.o + 0x080006d4 HAL_MspInit + .text.HAL_UART_MspInit + 0x08000734 0x88 ./Core/Src/stm32l1xx_hal_msp.o + 0x08000734 HAL_UART_MspInit + .text.NMI_Handler + 0x080007bc 0x8 ./Core/Src/stm32l1xx_it.o + 0x080007bc NMI_Handler + .text.HardFault_Handler + 0x080007c4 0x8 ./Core/Src/stm32l1xx_it.o + 0x080007c4 HardFault_Handler + .text.MemManage_Handler + 0x080007cc 0x8 ./Core/Src/stm32l1xx_it.o + 0x080007cc MemManage_Handler + .text.BusFault_Handler + 0x080007d4 0x8 ./Core/Src/stm32l1xx_it.o + 0x080007d4 BusFault_Handler + .text.UsageFault_Handler + 0x080007dc 0x8 ./Core/Src/stm32l1xx_it.o + 0x080007dc UsageFault_Handler + .text.SVC_Handler + 0x080007e4 0xc ./Core/Src/stm32l1xx_it.o + 0x080007e4 SVC_Handler + .text.DebugMon_Handler + 0x080007f0 0xc ./Core/Src/stm32l1xx_it.o + 0x080007f0 DebugMon_Handler + .text.PendSV_Handler + 0x080007fc 0xc ./Core/Src/stm32l1xx_it.o + 0x080007fc PendSV_Handler + .text.SysTick_Handler + 0x08000808 0xc ./Core/Src/stm32l1xx_it.o + 0x08000808 SysTick_Handler + .text.EXTI15_10_IRQHandler + 0x08000814 0x10 ./Core/Src/stm32l1xx_it.o + 0x08000814 EXTI15_10_IRQHandler + .text.SystemInit + 0x08000824 0xc ./Core/Src/system_stm32l1xx.o + 0x08000824 SystemInit + .text.Reset_Handler + 0x08000830 0x48 ./Core/Startup/startup_stm32l152retx.o + 0x08000830 Reset_Handler + .text.Default_Handler + 0x08000878 0x2 ./Core/Startup/startup_stm32l152retx.o + 0x08000878 DMA2_Channel3_IRQHandler + 0x08000878 EXTI2_IRQHandler + 0x08000878 COMP_ACQ_IRQHandler + 0x08000878 TIM10_IRQHandler + 0x08000878 USB_HP_IRQHandler + 0x08000878 TIM6_IRQHandler + 0x08000878 PVD_IRQHandler + 0x08000878 EXTI3_IRQHandler + 0x08000878 EXTI0_IRQHandler + 0x08000878 I2C2_EV_IRQHandler + 0x08000878 SPI1_IRQHandler + 0x08000878 USB_FS_WKUP_IRQHandler + 0x08000878 DMA2_Channel2_IRQHandler + 0x08000878 DMA1_Channel4_IRQHandler + 0x08000878 ADC1_IRQHandler + 0x08000878 USART3_IRQHandler + 0x08000878 DMA1_Channel7_IRQHandler + 0x08000878 LCD_IRQHandler + 0x08000878 UART5_IRQHandler + 0x08000878 TIM4_IRQHandler + 0x08000878 DMA2_Channel1_IRQHandler + 0x08000878 I2C1_EV_IRQHandler + 0x08000878 DMA1_Channel6_IRQHandler + 0x08000878 UART4_IRQHandler + 0x08000878 DMA2_Channel4_IRQHandler + 0x08000878 TIM3_IRQHandler + 0x08000878 RCC_IRQHandler + 0x08000878 DMA1_Channel1_IRQHandler + 0x08000878 Default_Handler + 0x08000878 TIM7_IRQHandler + 0x08000878 TIM5_IRQHandler + 0x08000878 EXTI9_5_IRQHandler + 0x08000878 TIM9_IRQHandler + 0x08000878 TAMPER_STAMP_IRQHandler + 0x08000878 RTC_WKUP_IRQHandler + 0x08000878 SPI2_IRQHandler + 0x08000878 DMA2_Channel5_IRQHandler + 0x08000878 DMA1_Channel5_IRQHandler + 0x08000878 USB_LP_IRQHandler + 0x08000878 EXTI4_IRQHandler + 0x08000878 DMA1_Channel3_IRQHandler + 0x08000878 COMP_IRQHandler + 0x08000878 WWDG_IRQHandler + 0x08000878 TIM2_IRQHandler + 0x08000878 DAC_IRQHandler + 0x08000878 EXTI1_IRQHandler + 0x08000878 TIM11_IRQHandler + 0x08000878 USART2_IRQHandler + 0x08000878 I2C2_ER_IRQHandler + 0x08000878 DMA1_Channel2_IRQHandler + 0x08000878 FLASH_IRQHandler + 0x08000878 USART1_IRQHandler + 0x08000878 SPI3_IRQHandler + 0x08000878 I2C1_ER_IRQHandler + 0x08000878 RTC_Alarm_IRQHandler + .text.HAL_Init + 0x0800087a 0x30 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x0800087a HAL_Init + *fill* 0x080008aa 0x2 + .text.HAL_InitTick + 0x080008ac 0x74 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x080008ac HAL_InitTick + .text.HAL_IncTick + 0x08000920 0x24 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x08000920 HAL_IncTick + .text.HAL_GetTick + 0x08000944 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x08000944 HAL_GetTick + .text.__NVIC_SetPriorityGrouping + 0x08000958 0x48 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_GetPriorityGrouping + 0x080009a0 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_EnableIRQ + 0x080009bc 0x38 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.__NVIC_SetPriority + 0x080009f4 0x54 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.NVIC_EncodePriority + 0x08000a48 0x64 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.SysTick_Config + 0x08000aac 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .text.HAL_NVIC_SetPriorityGrouping + 0x08000af0 0x16 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + 0x08000af0 HAL_NVIC_SetPriorityGrouping + .text.HAL_NVIC_SetPriority + 0x08000b06 0x38 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + 0x08000b06 HAL_NVIC_SetPriority + .text.HAL_NVIC_EnableIRQ + 0x08000b3e 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + 0x08000b3e HAL_NVIC_EnableIRQ + .text.HAL_SYSTICK_Config + 0x08000b5a 0x18 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + 0x08000b5a HAL_SYSTICK_Config + *fill* 0x08000b72 0x2 + .text.HAL_GPIO_Init + 0x08000b74 0x320 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + 0x08000b74 HAL_GPIO_Init + .text.HAL_GPIO_WritePin + 0x08000e94 0x30 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + 0x08000e94 HAL_GPIO_WritePin + .text.HAL_GPIO_EXTI_IRQHandler + 0x08000ec4 0x30 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + 0x08000ec4 HAL_GPIO_EXTI_IRQHandler .text.HAL_RCC_OscConfig 0x08000ef4 0x660 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o 0x08000ef4 HAL_RCC_OscConfig @@ -2629,74 +2631,74 @@ LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.id LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libm.a LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a -.debug_info 0x00000000 0x6af0 - .debug_info 0x00000000 0xcc1 ./Core/Src/main.o - .debug_info 0x00000cc1 0x80f ./Core/Src/stm32l1xx_hal_msp.o - .debug_info 0x000014d0 0x164 ./Core/Src/stm32l1xx_it.o - .debug_info 0x00001634 0x27c ./Core/Src/system_stm32l1xx.o - .debug_info 0x000018b0 0x30 ./Core/Startup/startup_stm32l152retx.o - .debug_info 0x000018e0 0x6ef ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o - .debug_info 0x00001fcf 0xce5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o - .debug_info 0x00002cb4 0x5b2 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o - .debug_info 0x00003266 0x99b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o - .debug_info 0x00003c01 0x2eef ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_uart.o +.debug_info 0x00000000 0x6afc + .debug_info 0x00000000 0xce5 ./Core/Src/main.o + .debug_info 0x00000ce5 0x80f ./Core/Src/stm32l1xx_hal_msp.o + .debug_info 0x000014f4 0x14c ./Core/Src/stm32l1xx_it.o + .debug_info 0x00001640 0x27c ./Core/Src/system_stm32l1xx.o + .debug_info 0x000018bc 0x30 ./Core/Startup/startup_stm32l152retx.o + .debug_info 0x000018ec 0x6ef ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_info 0x00001fdb 0xce5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_info 0x00002cc0 0x5b2 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_info 0x00003272 0x99b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_info 0x00003c0d 0x2eef ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_uart.o -.debug_abbrev 0x00000000 0x12f9 - .debug_abbrev 0x00000000 0x25b ./Core/Src/main.o - .debug_abbrev 0x0000025b 0x1aa ./Core/Src/stm32l1xx_hal_msp.o - .debug_abbrev 0x00000405 0xa0 ./Core/Src/stm32l1xx_it.o - .debug_abbrev 0x000004a5 0x11c ./Core/Src/system_stm32l1xx.o - .debug_abbrev 0x000005c1 0x24 ./Core/Startup/startup_stm32l152retx.o - .debug_abbrev 0x000005e5 0x275 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o - .debug_abbrev 0x0000085a 0x31c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o - .debug_abbrev 0x00000b76 0x1d4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o - .debug_abbrev 0x00000d4a 0x2b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o - .debug_abbrev 0x00001002 0x2f7 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_uart.o +.debug_abbrev 0x00000000 0x130c + .debug_abbrev 0x00000000 0x26e ./Core/Src/main.o + .debug_abbrev 0x0000026e 0x1aa ./Core/Src/stm32l1xx_hal_msp.o + .debug_abbrev 0x00000418 0xa0 ./Core/Src/stm32l1xx_it.o + .debug_abbrev 0x000004b8 0x11c ./Core/Src/system_stm32l1xx.o + .debug_abbrev 0x000005d4 0x24 ./Core/Startup/startup_stm32l152retx.o + .debug_abbrev 0x000005f8 0x275 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_abbrev 0x0000086d 0x31c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_abbrev 0x00000b89 0x1d4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_abbrev 0x00000d5d 0x2b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_abbrev 0x00001015 0x2f7 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_uart.o -.debug_aranges 0x00000000 0x620 +.debug_aranges 0x00000000 0x628 .debug_aranges - 0x00000000 0x40 ./Core/Src/main.o + 0x00000000 0x48 ./Core/Src/main.o .debug_aranges - 0x00000040 0x30 ./Core/Src/stm32l1xx_hal_msp.o + 0x00000048 0x30 ./Core/Src/stm32l1xx_hal_msp.o .debug_aranges - 0x00000070 0x68 ./Core/Src/stm32l1xx_it.o + 0x00000078 0x68 ./Core/Src/stm32l1xx_it.o .debug_aranges - 0x000000d8 0x28 ./Core/Src/system_stm32l1xx.o + 0x000000e0 0x28 ./Core/Src/system_stm32l1xx.o .debug_aranges - 0x00000100 0x28 ./Core/Startup/startup_stm32l152retx.o + 0x00000108 0x28 ./Core/Startup/startup_stm32l152retx.o .debug_aranges - 0x00000128 0xe0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x00000130 0xe0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o .debug_aranges - 0x00000208 0x128 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + 0x00000210 0x128 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o .debug_aranges - 0x00000330 0x58 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + 0x00000338 0x58 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o .debug_aranges - 0x00000388 0x90 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + 0x00000390 0x90 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o .debug_aranges - 0x00000418 0x208 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_uart.o + 0x00000420 0x208 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_uart.o .debug_rnglists - 0x00000000 0x4ad + 0x00000000 0x4b3 .debug_rnglists - 0x00000000 0x2d ./Core/Src/main.o + 0x00000000 0x33 ./Core/Src/main.o .debug_rnglists - 0x0000002d 0x20 ./Core/Src/stm32l1xx_hal_msp.o + 0x00000033 0x20 ./Core/Src/stm32l1xx_hal_msp.o .debug_rnglists - 0x0000004d 0x49 ./Core/Src/stm32l1xx_it.o + 0x00000053 0x49 ./Core/Src/stm32l1xx_it.o .debug_rnglists - 0x00000096 0x1a ./Core/Src/system_stm32l1xx.o + 0x0000009c 0x1a ./Core/Src/system_stm32l1xx.o .debug_rnglists - 0x000000b0 0x19 ./Core/Startup/startup_stm32l152retx.o + 0x000000b6 0x19 ./Core/Startup/startup_stm32l152retx.o .debug_rnglists - 0x000000c9 0xa3 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x000000cf 0xa3 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o .debug_rnglists - 0x0000016c 0xd9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + 0x00000172 0xd9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o .debug_rnglists - 0x00000245 0x3f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + 0x0000024b 0x3f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o .debug_rnglists - 0x00000284 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + 0x0000028a 0x6d ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o .debug_rnglists - 0x000002f1 0x1bc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_uart.o + 0x000002f7 0x1bc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_uart.o .debug_macro 0x00000000 0x14879 .debug_macro 0x00000000 0x1aa ./Core/Src/main.o @@ -2743,23 +2745,23 @@ LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.id .debug_macro 0x00014530 0x1ad ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o .debug_macro 0x000146dd 0x19c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_uart.o -.debug_line 0x00000000 0x705c - .debug_line 0x00000000 0x77e ./Core/Src/main.o - .debug_line 0x0000077e 0x6df ./Core/Src/stm32l1xx_hal_msp.o - .debug_line 0x00000e5d 0x75d ./Core/Src/stm32l1xx_it.o - .debug_line 0x000015ba 0x731 ./Core/Src/system_stm32l1xx.o - .debug_line 0x00001ceb 0x79 ./Core/Startup/startup_stm32l152retx.o - .debug_line 0x00001d64 0x95c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o - .debug_line 0x000026c0 0xc2b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o - .debug_line 0x000032eb 0x9a0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o - .debug_line 0x00003c8b 0xf20 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o - .debug_line 0x00004bab 0x24b1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_uart.o +.debug_line 0x00000000 0x7071 + .debug_line 0x00000000 0x799 ./Core/Src/main.o + .debug_line 0x00000799 0x6df ./Core/Src/stm32l1xx_hal_msp.o + .debug_line 0x00000e78 0x757 ./Core/Src/stm32l1xx_it.o + .debug_line 0x000015cf 0x731 ./Core/Src/system_stm32l1xx.o + .debug_line 0x00001d00 0x79 ./Core/Startup/startup_stm32l152retx.o + .debug_line 0x00001d79 0x95c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_line 0x000026d5 0xc2b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_line 0x00003300 0x9a0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_line 0x00003ca0 0xf20 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_line 0x00004bc0 0x24b1 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_uart.o .debug_str 0x00000000 0x819bb .debug_str 0x00000000 0x819bb ./Core/Src/main.o - 0x8094e (size before relaxing) + 0x8096e (size before relaxing) .debug_str 0x000819bb 0x803d4 ./Core/Src/stm32l1xx_hal_msp.o - .debug_str 0x000819bb 0x7ff80 ./Core/Src/stm32l1xx_it.o + .debug_str 0x000819bb 0x7ff6c ./Core/Src/stm32l1xx_it.o .debug_str 0x000819bb 0x7fe7b ./Core/Src/system_stm32l1xx.o .debug_str 0x000819bb 0x85 ./Core/Startup/startup_stm32l152retx.o .debug_str 0x000819bb 0x805a3 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o @@ -2780,20 +2782,20 @@ LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.id .comment 0x00000043 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o .comment 0x00000043 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_uart.o -.debug_frame 0x00000000 0x1824 - .debug_frame 0x00000000 0xac ./Core/Src/main.o - .debug_frame 0x000000ac 0x7c ./Core/Src/stm32l1xx_hal_msp.o - .debug_frame 0x00000128 0x120 ./Core/Src/stm32l1xx_it.o - .debug_frame 0x00000248 0x58 ./Core/Src/system_stm32l1xx.o - .debug_frame 0x000002a0 0x33c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o - .debug_frame 0x000005dc 0x4e8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o - .debug_frame 0x00000ac4 0x14c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o - .debug_frame 0x00000c10 0x224 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o - .debug_frame 0x00000e34 0x944 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_uart.o - .debug_frame 0x00001778 0x20 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) - .debug_frame 0x00001798 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) - .debug_frame 0x000017c4 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) - .debug_frame 0x000017f0 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) +.debug_frame 0x00000000 0x184c + .debug_frame 0x00000000 0xd4 ./Core/Src/main.o + .debug_frame 0x000000d4 0x7c ./Core/Src/stm32l1xx_hal_msp.o + .debug_frame 0x00000150 0x120 ./Core/Src/stm32l1xx_it.o + .debug_frame 0x00000270 0x58 ./Core/Src/system_stm32l1xx.o + .debug_frame 0x000002c8 0x33c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_frame 0x00000604 0x4e8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_frame 0x00000aec 0x14c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_frame 0x00000c38 0x224 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .debug_frame 0x00000e5c 0x944 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_uart.o + .debug_frame 0x000017a0 0x20 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-memset.o) + .debug_frame 0x000017c0 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc_nano.a(libc_a-init.o) + .debug_frame 0x000017ec 0x2c /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_aeabi_uldivmod.o) + .debug_frame 0x00001818 0x34 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.macos64_1.0.0.202411102158/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v7-m/nofp/libgcc.a(_udivmoddi4.o) .debug_line_str 0x00000000 0x69