diff --git a/103ze/.settings/language.settings.xml b/103ze/.settings/language.settings.xml
index 90db629..af83ebf 100644
--- a/103ze/.settings/language.settings.xml
+++ b/103ze/.settings/language.settings.xml
@@ -13,7 +13,7 @@
-
+
@@ -37,7 +37,7 @@
-
+
diff --git a/103ze/Debug/103ze_code.bin b/103ze/Debug/103ze_code.bin
index 3382a07..e29b4d6 100644
Binary files a/103ze/Debug/103ze_code.bin and b/103ze/Debug/103ze_code.bin differ
diff --git a/103ze/Debug/103ze_code.elf b/103ze/Debug/103ze_code.elf
index 67cb5fb..ef6fdcb 100644
Binary files a/103ze/Debug/103ze_code.elf and b/103ze/Debug/103ze_code.elf differ
diff --git a/103ze/Debug/103ze_code.list b/103ze/Debug/103ze_code.list
index 91d25ba..aea4a13 100644
--- a/103ze/Debug/103ze_code.list
+++ b/103ze/Debug/103ze_code.list
@@ -5,45 +5,45 @@ Sections:
Idx Name Size VMA LMA File off Algn
0 .isr_vector 000001e4 08000000 08000000 00010000 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 1 .text 00006664 080001e4 080001e4 000101e4 2**2
+ 1 .text 00005d68 080001e4 080001e4 000101e4 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
- 2 .rodata 00000b9c 08006848 08006848 00016848 2**2
+ 2 .rodata 00000b60 08005f4c 08005f4c 00015f4c 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 3 .ARM.extab 00000000 080073e4 080073e4 00020088 2**0
+ 3 .ARM.extab 00000000 08006aac 08006aac 00020024 2**0
CONTENTS
- 4 .ARM 00000000 080073e4 080073e4 00020088 2**0
+ 4 .ARM 00000000 08006aac 08006aac 00020024 2**0
CONTENTS
- 5 .preinit_array 00000000 080073e4 080073e4 00020088 2**0
+ 5 .preinit_array 00000000 08006aac 08006aac 00020024 2**0
CONTENTS, ALLOC, LOAD, DATA
- 6 .init_array 00000004 080073e4 080073e4 000173e4 2**2
+ 6 .init_array 00000004 08006aac 08006aac 00016aac 2**2
CONTENTS, ALLOC, LOAD, DATA
- 7 .fini_array 00000004 080073e8 080073e8 000173e8 2**2
+ 7 .fini_array 00000004 08006ab0 08006ab0 00016ab0 2**2
CONTENTS, ALLOC, LOAD, DATA
- 8 .data 00000088 20000000 080073ec 00020000 2**2
+ 8 .data 00000024 20000000 08006ab4 00020000 2**2
CONTENTS, ALLOC, LOAD, DATA
- 9 .bss 000007d8 20000088 08007474 00020088 2**2
+ 9 .bss 000007bc 20000024 08006ad8 00020024 2**2
ALLOC
- 10 ._user_heap_stack 00001000 20000860 08007474 00020860 2**0
+ 10 ._user_heap_stack 00001000 200007e0 08006ad8 000207e0 2**0
ALLOC
- 11 .ARM.attributes 00000029 00000000 00000000 00020088 2**0
+ 11 .ARM.attributes 00000029 00000000 00000000 00020024 2**0
CONTENTS, READONLY
- 12 .debug_info 0000ed98 00000000 00000000 000200b1 2**0
+ 12 .debug_info 0000e347 00000000 00000000 0002004d 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 13 .debug_abbrev 00002ced 00000000 00000000 0002ee49 2**0
+ 13 .debug_abbrev 00002b1d 00000000 00000000 0002e394 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 14 .debug_aranges 00000c18 00000000 00000000 00031b38 2**3
+ 14 .debug_aranges 00000bf8 00000000 00000000 00030eb8 2**3
CONTENTS, READONLY, DEBUGGING, OCTETS
- 15 .debug_ranges 00000ab0 00000000 00000000 00032750 2**3
+ 15 .debug_ranges 00000aa0 00000000 00000000 00031ab0 2**3
CONTENTS, READONLY, DEBUGGING, OCTETS
- 16 .debug_macro 0001abc9 00000000 00000000 00033200 2**0
+ 16 .debug_macro 0001a88f 00000000 00000000 00032550 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 17 .debug_line 000102bc 00000000 00000000 0004ddc9 2**0
+ 17 .debug_line 0000fdb5 00000000 00000000 0004cddf 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 18 .debug_str 00093fbe 00000000 00000000 0005e085 2**0
+ 18 .debug_str 00093ad3 00000000 00000000 0005cb94 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 19 .comment 00000053 00000000 00000000 000f2043 2**0
+ 19 .comment 00000053 00000000 00000000 000f0667 2**0
CONTENTS, READONLY
- 20 .debug_frame 000032d8 00000000 00000000 000f2098 2**2
+ 20 .debug_frame 00002e84 00000000 00000000 000f06bc 2**2
CONTENTS, READONLY, DEBUGGING, OCTETS
Disassembly of section .text:
@@ -60,9 +60,9 @@ Disassembly of section .text:
80001f6: 2301 movs r3, #1
80001f8: 7023 strb r3, [r4, #0]
80001fa: bd10 pop {r4, pc}
- 80001fc: 20000088 .word 0x20000088
+ 80001fc: 20000024 .word 0x20000024
8000200: 00000000 .word 0x00000000
- 8000204: 08006830 .word 0x08006830
+ 8000204: 08005f34 .word 0x08005f34
08000208 :
8000208: b508 push {r3, lr}
@@ -73,8 +73,8 @@ Disassembly of section .text:
8000212: f3af 8000 nop.w
8000216: bd08 pop {r3, pc}
8000218: 00000000 .word 0x00000000
- 800021c: 2000008c .word 0x2000008c
- 8000220: 08006830 .word 0x08006830
+ 800021c: 20000028 .word 0x20000028
+ 8000220: 08005f34 .word 0x08005f34
08000224 :
/**
@@ -91,7 +91,7 @@ int main(void)
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
- 8000228: f000 fade bl 80007e8
+ 8000228: f000 faa8 bl 800077c
/* USER CODE BEGIN Init */
/* USER CODE END Init */
@@ -111,10 +111,10 @@ int main(void)
MX_SPI2_Init();
8000238: f000 f84a bl 80002d0
MX_FATFS_Init();
- 800023c: f002 f86e bl 800231c
+ 800023c: f002 f838 bl 80022b0
/* USER CODE BEGIN 2 */
my_main();
- 8000240: f004 fa84 bl 800474c
+ 8000240: f004 fa4e bl 80046e0
/* USER CODE END 2 */
@@ -138,7 +138,7 @@ void SystemClock_Config(void)
8000250: 2228 movs r2, #40 ; 0x28
8000252: 2100 movs r1, #0
8000254: 4618 mov r0, r3
- 8000256: f005 fea9 bl 8005fac
+ 8000256: f005 fe65 bl 8005f24
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
800025a: 1d3b adds r3, r7, #4
800025c: 2200 movs r2, #0
@@ -175,7 +175,7 @@ void SystemClock_Config(void)
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
800028a: f107 0318 add.w r3, r7, #24
800028e: 4618 mov r0, r3
- 8000290: f000 fdc0 bl 8000e14
+ 8000290: f000 fd8a bl 8000da8
8000294: 4603 mov r3, r0
8000296: 2b00 cmp r3, #0
8000298: d001 beq.n 800029e
@@ -206,7 +206,7 @@ void SystemClock_Config(void)
80002b4: 1d3b adds r3, r7, #4
80002b6: 2102 movs r1, #2
80002b8: 4618 mov r0, r3
- 80002ba: f001 f82b bl 8001314
+ 80002ba: f000 fff5 bl 80012a8
80002be: 4603 mov r3, r0
80002c0: 2b00 cmp r3, #0
80002c2: d001 beq.n 80002c8
@@ -284,7 +284,7 @@ static void MX_SPI2_Init(void)
800031e: 62da str r2, [r3, #44] ; 0x2c
if (HAL_SPI_Init(&hspi2) != HAL_OK)
8000320: 4804 ldr r0, [pc, #16] ; (8000334 )
- 8000322: f001 f95f bl 80015e4
+ 8000322: f001 f929 bl 8001578
8000326: 4603 mov r3, r0
8000328: 2b00 cmp r3, #0
800032a: d001 beq.n 8000330
@@ -299,7 +299,7 @@ static void MX_SPI2_Init(void)
}
8000330: bf00 nop
8000332: bd80 pop {r7, pc}
- 8000334: 200000e4 .word 0x200000e4
+ 8000334: 20000074 .word 0x20000074
8000338: 40003800 .word 0x40003800
0800033c :
@@ -382,14 +382,14 @@ static void MX_GPIO_Init(void)
80003c8: 2200 movs r2, #0
80003ca: f241 0101 movw r1, #4097 ; 0x1001
80003ce: 481c ldr r0, [pc, #112] ; (8000440 )
- 80003d0: f000 fd08 bl 8000de4
+ 80003d0: f000 fcd2 bl 8000d78
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(SD_E_GPIO_Port, SD_E_Pin, GPIO_PIN_RESET);
80003d4: 2200 movs r2, #0
80003d6: 2104 movs r1, #4
80003d8: 481a ldr r0, [pc, #104] ; (8000444 )
- 80003da: f000 fd03 bl 8000de4
+ 80003da: f000 fccd bl 8000d78
/*Configure GPIO pin : LCD_BL_Pin */
GPIO_InitStruct.Pin = LCD_BL_Pin;
@@ -408,7 +408,7 @@ static void MX_GPIO_Init(void)
80003ee: f107 0318 add.w r3, r7, #24
80003f2: 4619 mov r1, r3
80003f4: 4812 ldr r0, [pc, #72] ; (8000440 )
- 80003f6: f000 fb61 bl 8000abc
+ 80003f6: f000 fb2b bl 8000a50
/*Configure GPIO pin : FLASH_E_Pin */
GPIO_InitStruct.Pin = FLASH_E_Pin;
@@ -427,7 +427,7 @@ static void MX_GPIO_Init(void)
800040c: f107 0318 add.w r3, r7, #24
8000410: 4619 mov r1, r3
8000412: 480b ldr r0, [pc, #44] ; (8000440 )
- 8000414: f000 fb52 bl 8000abc
+ 8000414: f000 fb1c bl 8000a50
/*Configure GPIO pin : SD_E_Pin */
GPIO_InitStruct.Pin = SD_E_Pin;
@@ -446,7 +446,7 @@ static void MX_GPIO_Init(void)
8000428: f107 0318 add.w r3, r7, #24
800042c: 4619 mov r1, r3
800042e: 4805 ldr r0, [pc, #20] ; (8000444 )
- 8000430: f000 fb44 bl 8000abc
+ 8000430: f000 fb0e bl 8000a50
}
8000434: bf00 nop
@@ -575,7 +575,7 @@ static void MX_FSMC_Init(void)
80004dc: 2200 movs r2, #0
80004de: 4619 mov r1, r3
80004e0: 4808 ldr r0, [pc, #32] ; (8000504 )
- 80004e2: f001 fdf7 bl 80020d4
+ 80004e2: f001 fdc1 bl 8002068
80004e6: 4603 mov r3, r0
80004e8: 2b00 cmp r3, #0
80004ea: d001 beq.n 80004f0
@@ -602,7 +602,7 @@ static void MX_FSMC_Init(void)
80004fe: 3720 adds r7, #32
8000500: 46bd mov sp, r7
8000502: bd80 pop {r7, pc}
- 8000504: 2000013c .word 0x2000013c
+ 8000504: 200000cc .word 0x200000cc
8000508: a0000104 .word 0xa0000104
800050c: 40010000 .word 0x40010000
@@ -768,7 +768,7 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
80005de: f107 0310 add.w r3, r7, #16
80005e2: 4619 mov r1, r3
80005e4: 480b ldr r0, [pc, #44] ; (8000614 )
- 80005e6: f000 fa69 bl 8000abc
+ 80005e6: f000 fa33 bl 8000a50
GPIO_InitStruct.Pin = GPIO_PIN_14;
80005ea: f44f 4380 mov.w r3, #16384 ; 0x4000
@@ -783,7 +783,7 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
80005f8: f107 0310 add.w r3, r7, #16
80005fc: 4619 mov r1, r3
80005fe: 4805 ldr r0, [pc, #20] ; (8000614 )
- 8000600: f000 fa5c bl 8000abc
+ 8000600: f000 fa26 bl 8000a50
/* USER CODE BEGIN SPI2_MspInit 1 */
/* USER CODE END SPI2_MspInit 1 */
@@ -860,7 +860,7 @@ static void HAL_FSMC_MspInit(void){
8000660: f107 0308 add.w r3, r7, #8
8000664: 4619 mov r1, r3
8000666: 4813 ldr r0, [pc, #76] ; (80006b4 )
- 8000668: f000 fa28 bl 8000abc
+ 8000668: f000 f9f2 bl 8000a50
GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10
800066c: f64f 7380 movw r3, #65408 ; 0xff80
@@ -877,7 +877,7 @@ static void HAL_FSMC_MspInit(void){
800067a: f107 0308 add.w r3, r7, #8
800067e: 4619 mov r1, r3
8000680: 480d ldr r0, [pc, #52] ; (80006b8 )
- 8000682: f000 fa1b bl 8000abc
+ 8000682: f000 f9e5 bl 8000a50
GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_14
8000686: f24c 7333 movw r3, #50995 ; 0xc733
@@ -894,7 +894,7 @@ static void HAL_FSMC_MspInit(void){
8000694: f107 0308 add.w r3, r7, #8
8000698: 4619 mov r1, r3
800069a: 4808 ldr r0, [pc, #32] ; (80006bc )
- 800069c: f000 fa0e bl 8000abc
+ 800069c: f000 f9d8 bl 8000a50
80006a0: e000 b.n 80006a4
return;
80006a2: bf00 nop
@@ -907,7 +907,7 @@ static void HAL_FSMC_MspInit(void){
80006a6: 46bd mov sp, r7
80006a8: bd80 pop {r7, pc}
80006aa: bf00 nop
- 80006ac: 200000a4 .word 0x200000a4
+ 80006ac: 20000040 .word 0x20000040
80006b0: 40021000 .word 0x40021000
80006b4: 40012000 .word 0x40012000
80006b8: 40011800 .word 0x40011800
@@ -1083,15346 +1083,14319 @@ void SysTick_Handler(void)
/* USER CODE END SysTick_IRQn 0 */
HAL_IncTick();
- 800071a: f000 f8ab bl 8000874
+ 800071a: f000 f875 bl 8000808
/* USER CODE BEGIN SysTick_IRQn 1 */
/* USER CODE END SysTick_IRQn 1 */
}
800071e: bf00 nop
8000720: bd80 pop {r7, pc}
- ...
-08000724 <_sbrk>:
- *
- * @param incr Memory size
- * @return Pointer to allocated memory
- */
-void *_sbrk(ptrdiff_t incr)
-{
- 8000724: b580 push {r7, lr}
- 8000726: b086 sub sp, #24
- 8000728: af00 add r7, sp, #0
- 800072a: 6078 str r0, [r7, #4]
- extern uint8_t _end; /* Symbol defined in the linker script */
- extern uint8_t _estack; /* Symbol defined in the linker script */
- extern uint32_t _Min_Stack_Size; /* Symbol defined in the linker script */
- const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size;
- 800072c: 4a14 ldr r2, [pc, #80] ; (8000780 <_sbrk+0x5c>)
- 800072e: 4b15 ldr r3, [pc, #84] ; (8000784 <_sbrk+0x60>)
- 8000730: 1ad3 subs r3, r2, r3
- 8000732: 617b str r3, [r7, #20]
- const uint8_t *max_heap = (uint8_t *)stack_limit;
- 8000734: 697b ldr r3, [r7, #20]
- 8000736: 613b str r3, [r7, #16]
- uint8_t *prev_heap_end;
-
- /* Initialize heap end at first call */
- if (NULL == __sbrk_heap_end)
- 8000738: 4b13 ldr r3, [pc, #76] ; (8000788 <_sbrk+0x64>)
- 800073a: 681b ldr r3, [r3, #0]
- 800073c: 2b00 cmp r3, #0
- 800073e: d102 bne.n 8000746 <_sbrk+0x22>
- {
- __sbrk_heap_end = &_end;
- 8000740: 4b11 ldr r3, [pc, #68] ; (8000788 <_sbrk+0x64>)
- 8000742: 4a12 ldr r2, [pc, #72] ; (800078c <_sbrk+0x68>)
- 8000744: 601a str r2, [r3, #0]
- }
-
- /* Protect heap from growing into the reserved MSP stack */
- if (__sbrk_heap_end + incr > max_heap)
- 8000746: 4b10 ldr r3, [pc, #64] ; (8000788 <_sbrk+0x64>)
- 8000748: 681a ldr r2, [r3, #0]
- 800074a: 687b ldr r3, [r7, #4]
- 800074c: 4413 add r3, r2
- 800074e: 693a ldr r2, [r7, #16]
- 8000750: 429a cmp r2, r3
- 8000752: d207 bcs.n 8000764 <_sbrk+0x40>
- {
- errno = ENOMEM;
- 8000754: f005 fc00 bl 8005f58 <__errno>
- 8000758: 4603 mov r3, r0
- 800075a: 220c movs r2, #12
- 800075c: 601a str r2, [r3, #0]
- return (void *)-1;
- 800075e: f04f 33ff mov.w r3, #4294967295
- 8000762: e009 b.n 8000778 <_sbrk+0x54>
- }
-
- prev_heap_end = __sbrk_heap_end;
- 8000764: 4b08 ldr r3, [pc, #32] ; (8000788 <_sbrk+0x64>)
- 8000766: 681b ldr r3, [r3, #0]
- 8000768: 60fb str r3, [r7, #12]
- __sbrk_heap_end += incr;
- 800076a: 4b07 ldr r3, [pc, #28] ; (8000788 <_sbrk+0x64>)
- 800076c: 681a ldr r2, [r3, #0]
- 800076e: 687b ldr r3, [r7, #4]
- 8000770: 4413 add r3, r2
- 8000772: 4a05 ldr r2, [pc, #20] ; (8000788 <_sbrk+0x64>)
- 8000774: 6013 str r3, [r2, #0]
-
- return (void *)prev_heap_end;
- 8000776: 68fb ldr r3, [r7, #12]
-}
- 8000778: 4618 mov r0, r3
- 800077a: 3718 adds r7, #24
- 800077c: 46bd mov sp, r7
- 800077e: bd80 pop {r7, pc}
- 8000780: 20010000 .word 0x20010000
- 8000784: 00000800 .word 0x00000800
- 8000788: 200000a8 .word 0x200000a8
- 800078c: 20000860 .word 0x20000860
-
-08000790 :
+08000722 :
* @note This function should be used only after reset.
* @param None
* @retval None
*/
void SystemInit (void)
{
- 8000790: b480 push {r7}
- 8000792: af00 add r7, sp, #0
+ 8000722: b480 push {r7}
+ 8000724: 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 */
}
- 8000794: bf00 nop
- 8000796: 46bd mov sp, r7
- 8000798: bc80 pop {r7}
- 800079a: 4770 bx lr
+ 8000726: bf00 nop
+ 8000728: 46bd mov sp, r7
+ 800072a: bc80 pop {r7}
+ 800072c: 4770 bx lr
+ ...
-0800079c :
+08000730 :
.weak Reset_Handler
.type Reset_Handler, %function
Reset_Handler:
/* Copy the data segment initializers from flash to SRAM */
movs r1, #0
- 800079c: 2100 movs r1, #0
+ 8000730: 2100 movs r1, #0
b LoopCopyDataInit
- 800079e: e003 b.n 80007a8
+ 8000732: e003 b.n 800073c
-080007a0 :
+08000734 :
CopyDataInit:
ldr r3, =_sidata
- 80007a0: 4b0b ldr r3, [pc, #44] ; (80007d0 )
+ 8000734: 4b0b ldr r3, [pc, #44] ; (8000764 )
ldr r3, [r3, r1]
- 80007a2: 585b ldr r3, [r3, r1]
+ 8000736: 585b ldr r3, [r3, r1]
str r3, [r0, r1]
- 80007a4: 5043 str r3, [r0, r1]
+ 8000738: 5043 str r3, [r0, r1]
adds r1, r1, #4
- 80007a6: 3104 adds r1, #4
+ 800073a: 3104 adds r1, #4
-080007a8 :
+0800073c :
LoopCopyDataInit:
ldr r0, =_sdata
- 80007a8: 480a ldr r0, [pc, #40] ; (80007d4 )
+ 800073c: 480a ldr r0, [pc, #40] ; (8000768 )
ldr r3, =_edata
- 80007aa: 4b0b ldr r3, [pc, #44] ; (80007d8 )
+ 800073e: 4b0b ldr r3, [pc, #44] ; (800076c )
adds r2, r0, r1
- 80007ac: 1842 adds r2, r0, r1
+ 8000740: 1842 adds r2, r0, r1
cmp r2, r3
- 80007ae: 429a cmp r2, r3
+ 8000742: 429a cmp r2, r3
bcc CopyDataInit
- 80007b0: d3f6 bcc.n 80007a0
+ 8000744: d3f6 bcc.n 8000734
ldr r2, =_sbss
- 80007b2: 4a0a ldr r2, [pc, #40] ; (80007dc )
+ 8000746: 4a0a ldr r2, [pc, #40] ; (8000770 )
b LoopFillZerobss
- 80007b4: e002 b.n 80007bc
+ 8000748: e002 b.n 8000750
-080007b6 :
+0800074a :
/* Zero fill the bss segment. */
FillZerobss:
movs r3, #0
- 80007b6: 2300 movs r3, #0
+ 800074a: 2300 movs r3, #0
str r3, [r2], #4
- 80007b8: f842 3b04 str.w r3, [r2], #4
+ 800074c: f842 3b04 str.w r3, [r2], #4
-080007bc :
+08000750 :
LoopFillZerobss:
ldr r3, = _ebss
- 80007bc: 4b08 ldr r3, [pc, #32] ; (80007e0 )
+ 8000750: 4b08 ldr r3, [pc, #32] ; (8000774 )
cmp r2, r3
- 80007be: 429a cmp r2, r3
+ 8000752: 429a cmp r2, r3
bcc FillZerobss
- 80007c0: d3f9 bcc.n 80007b6
+ 8000754: d3f9 bcc.n 800074a
/* Call the clock system intitialization function.*/
bl SystemInit
- 80007c2: f7ff ffe5 bl 8000790
+ 8000756: f7ff ffe4 bl 8000722
/* Call static constructors */
bl __libc_init_array
- 80007c6: f005 fbcd bl 8005f64 <__libc_init_array>
+ 800075a: f005 fbbf bl 8005edc <__libc_init_array>
/* Call the application's entry point.*/
bl main
- 80007ca: f7ff fd2b bl 8000224
+ 800075e: f7ff fd61 bl 8000224
bx lr
- 80007ce: 4770 bx lr
+ 8000762: 4770 bx lr
ldr r3, =_sidata
- 80007d0: 080073ec .word 0x080073ec
+ 8000764: 08006ab4 .word 0x08006ab4
ldr r0, =_sdata
- 80007d4: 20000000 .word 0x20000000
+ 8000768: 20000000 .word 0x20000000
ldr r3, =_edata
- 80007d8: 20000088 .word 0x20000088
+ 800076c: 20000024 .word 0x20000024
ldr r2, =_sbss
- 80007dc: 20000088 .word 0x20000088
+ 8000770: 20000024 .word 0x20000024
ldr r3, = _ebss
- 80007e0: 20000860 .word 0x20000860
+ 8000774: 200007e0 .word 0x200007e0
-080007e4 :
+08000778 :
* @retval : None
*/
.section .text.Default_Handler,"ax",%progbits
Default_Handler:
Infinite_Loop:
b Infinite_Loop
- 80007e4: e7fe b.n 80007e4
+ 8000778: e7fe b.n 8000778
...
-080007e8 :
+0800077c :
* need to ensure that the SysTick time base is always set to 1 millisecond
* to have correct HAL operation.
* @retval HAL status
*/
HAL_StatusTypeDef HAL_Init(void)
{
- 80007e8: b580 push {r7, lr}
- 80007ea: af00 add r7, sp, #0
+ 800077c: b580 push {r7, lr}
+ 800077e: af00 add r7, sp, #0
defined(STM32F102x6) || defined(STM32F102xB) || \
defined(STM32F103x6) || defined(STM32F103xB) || defined(STM32F103xE) || defined(STM32F103xG) || \
defined(STM32F105xC) || defined(STM32F107xC)
/* Prefetch buffer is not available on value line devices */
__HAL_FLASH_PREFETCH_BUFFER_ENABLE();
- 80007ec: 4b08 ldr r3, [pc, #32] ; (8000810 )
- 80007ee: 681b ldr r3, [r3, #0]
- 80007f0: 4a07 ldr r2, [pc, #28] ; (8000810 )
- 80007f2: f043 0310 orr.w r3, r3, #16
- 80007f6: 6013 str r3, [r2, #0]
+ 8000780: 4b08 ldr r3, [pc, #32] ; (80007a4 )
+ 8000782: 681b ldr r3, [r3, #0]
+ 8000784: 4a07 ldr r2, [pc, #28] ; (80007a4 )
+ 8000786: f043 0310 orr.w r3, r3, #16
+ 800078a: 6013 str r3, [r2, #0]
#endif
#endif /* PREFETCH_ENABLE */
/* Set Interrupt Group Priority */
HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
- 80007f8: 2003 movs r0, #3
- 80007fa: f000 f92b bl 8000a54
+ 800078c: 2003 movs r0, #3
+ 800078e: f000 f92b bl 80009e8
/* Use systick as time base source and configure 1ms tick (default clock after Reset is HSI) */
HAL_InitTick(TICK_INT_PRIORITY);
- 80007fe: 2000 movs r0, #0
- 8000800: f000 f808 bl 8000814
+ 8000792: 2000 movs r0, #0
+ 8000794: f000 f808 bl 80007a8
/* Init the low level hardware */
HAL_MspInit();
- 8000804: f7ff fe8a bl 800051c
+ 8000798: f7ff fec0 bl 800051c
/* Return function status */
return HAL_OK;
- 8000808: 2300 movs r3, #0
+ 800079c: 2300 movs r3, #0
}
- 800080a: 4618 mov r0, r3
- 800080c: bd80 pop {r7, pc}
- 800080e: bf00 nop
- 8000810: 40022000 .word 0x40022000
+ 800079e: 4618 mov r0, r3
+ 80007a0: bd80 pop {r7, pc}
+ 80007a2: bf00 nop
+ 80007a4: 40022000 .word 0x40022000
-08000814 :
+080007a8 :
* implementation in user file.
* @param TickPriority Tick interrupt priority.
* @retval HAL status
*/
__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
{
- 8000814: b580 push {r7, lr}
- 8000816: b082 sub sp, #8
- 8000818: af00 add r7, sp, #0
- 800081a: 6078 str r0, [r7, #4]
+ 80007a8: b580 push {r7, lr}
+ 80007aa: b082 sub sp, #8
+ 80007ac: af00 add r7, sp, #0
+ 80007ae: 6078 str r0, [r7, #4]
/* Configure the SysTick to have interrupt in 1ms time basis*/
if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U)
- 800081c: 4b12 ldr r3, [pc, #72] ; (8000868 )
- 800081e: 681a ldr r2, [r3, #0]
- 8000820: 4b12 ldr r3, [pc, #72] ; (800086c )
- 8000822: 781b ldrb r3, [r3, #0]
- 8000824: 4619 mov r1, r3
- 8000826: f44f 737a mov.w r3, #1000 ; 0x3e8
- 800082a: fbb3 f3f1 udiv r3, r3, r1
- 800082e: fbb2 f3f3 udiv r3, r2, r3
- 8000832: 4618 mov r0, r3
- 8000834: f000 f935 bl 8000aa2
- 8000838: 4603 mov r3, r0
- 800083a: 2b00 cmp r3, #0
- 800083c: d001 beq.n 8000842
+ 80007b0: 4b12 ldr r3, [pc, #72] ; (80007fc )
+ 80007b2: 681a ldr r2, [r3, #0]
+ 80007b4: 4b12 ldr r3, [pc, #72] ; (8000800 )
+ 80007b6: 781b ldrb r3, [r3, #0]
+ 80007b8: 4619 mov r1, r3
+ 80007ba: f44f 737a mov.w r3, #1000 ; 0x3e8
+ 80007be: fbb3 f3f1 udiv r3, r3, r1
+ 80007c2: fbb2 f3f3 udiv r3, r2, r3
+ 80007c6: 4618 mov r0, r3
+ 80007c8: f000 f935 bl 8000a36
+ 80007cc: 4603 mov r3, r0
+ 80007ce: 2b00 cmp r3, #0
+ 80007d0: d001 beq.n 80007d6
{
return HAL_ERROR;
- 800083e: 2301 movs r3, #1
- 8000840: e00e b.n 8000860
+ 80007d2: 2301 movs r3, #1
+ 80007d4: e00e b.n 80007f4
}
/* Configure the SysTick IRQ priority */
if (TickPriority < (1UL << __NVIC_PRIO_BITS))
- 8000842: 687b ldr r3, [r7, #4]
- 8000844: 2b0f cmp r3, #15
- 8000846: d80a bhi.n 800085e
+ 80007d6: 687b ldr r3, [r7, #4]
+ 80007d8: 2b0f cmp r3, #15
+ 80007da: d80a bhi.n 80007f2
{
HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U);
- 8000848: 2200 movs r2, #0
- 800084a: 6879 ldr r1, [r7, #4]
- 800084c: f04f 30ff mov.w r0, #4294967295
- 8000850: f000 f90b bl 8000a6a
+ 80007dc: 2200 movs r2, #0
+ 80007de: 6879 ldr r1, [r7, #4]
+ 80007e0: f04f 30ff mov.w r0, #4294967295
+ 80007e4: f000 f90b bl 80009fe
uwTickPrio = TickPriority;
- 8000854: 4a06 ldr r2, [pc, #24] ; (8000870 )
- 8000856: 687b ldr r3, [r7, #4]
- 8000858: 6013 str r3, [r2, #0]
+ 80007e8: 4a06 ldr r2, [pc, #24] ; (8000804 )
+ 80007ea: 687b ldr r3, [r7, #4]
+ 80007ec: 6013 str r3, [r2, #0]
{
return HAL_ERROR;
}
/* Return function status */
return HAL_OK;
- 800085a: 2300 movs r3, #0
- 800085c: e000 b.n 8000860
+ 80007ee: 2300 movs r3, #0
+ 80007f0: e000 b.n 80007f4
return HAL_ERROR;
- 800085e: 2301 movs r3, #1
+ 80007f2: 2301 movs r3, #1
}
- 8000860: 4618 mov r0, r3
- 8000862: 3708 adds r7, #8
- 8000864: 46bd mov sp, r7
- 8000866: bd80 pop {r7, pc}
- 8000868: 20000000 .word 0x20000000
- 800086c: 20000008 .word 0x20000008
- 8000870: 20000004 .word 0x20000004
+ 80007f4: 4618 mov r0, r3
+ 80007f6: 3708 adds r7, #8
+ 80007f8: 46bd mov sp, r7
+ 80007fa: bd80 pop {r7, pc}
+ 80007fc: 20000000 .word 0x20000000
+ 8000800: 20000008 .word 0x20000008
+ 8000804: 20000004 .word 0x20000004
-08000874 :
+08000808 :
* @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)
{
- 8000874: b480 push {r7}
- 8000876: af00 add r7, sp, #0
+ 8000808: b480 push {r7}
+ 800080a: af00 add r7, sp, #0
uwTick += uwTickFreq;
- 8000878: 4b05 ldr r3, [pc, #20] ; (8000890 )
- 800087a: 781b ldrb r3, [r3, #0]
- 800087c: 461a mov r2, r3
- 800087e: 4b05 ldr r3, [pc, #20] ; (8000894 )
- 8000880: 681b ldr r3, [r3, #0]
- 8000882: 4413 add r3, r2
- 8000884: 4a03 ldr r2, [pc, #12] ; (8000894 )
- 8000886: 6013 str r3, [r2, #0]
+ 800080c: 4b05 ldr r3, [pc, #20] ; (8000824 )
+ 800080e: 781b ldrb r3, [r3, #0]
+ 8000810: 461a mov r2, r3
+ 8000812: 4b05 ldr r3, [pc, #20] ; (8000828 )
+ 8000814: 681b ldr r3, [r3, #0]
+ 8000816: 4413 add r3, r2
+ 8000818: 4a03 ldr r2, [pc, #12] ; (8000828 )
+ 800081a: 6013 str r3, [r2, #0]
}
- 8000888: bf00 nop
- 800088a: 46bd mov sp, r7
- 800088c: bc80 pop {r7}
- 800088e: 4770 bx lr
- 8000890: 20000008 .word 0x20000008
- 8000894: 20000184 .word 0x20000184
+ 800081c: bf00 nop
+ 800081e: 46bd mov sp, r7
+ 8000820: bc80 pop {r7}
+ 8000822: 4770 bx lr
+ 8000824: 20000008 .word 0x20000008
+ 8000828: 20000114 .word 0x20000114
-08000898 :
+0800082c :
* @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)
{
- 8000898: b480 push {r7}
- 800089a: af00 add r7, sp, #0
+ 800082c: b480 push {r7}
+ 800082e: af00 add r7, sp, #0
return uwTick;
- 800089c: 4b02 ldr r3, [pc, #8] ; (80008a8 )
- 800089e: 681b ldr r3, [r3, #0]
+ 8000830: 4b02 ldr r3, [pc, #8] ; (800083c )
+ 8000832: 681b ldr r3, [r3, #0]
}
- 80008a0: 4618 mov r0, r3
- 80008a2: 46bd mov sp, r7
- 80008a4: bc80 pop {r7}
- 80008a6: 4770 bx lr
- 80008a8: 20000184 .word 0x20000184
+ 8000834: 4618 mov r0, r3
+ 8000836: 46bd mov sp, r7
+ 8000838: bc80 pop {r7}
+ 800083a: 4770 bx lr
+ 800083c: 20000114 .word 0x20000114
-080008ac :
+08000840 :
* implementations in user file.
* @param Delay specifies the delay time length, in milliseconds.
* @retval None
*/
__weak void HAL_Delay(uint32_t Delay)
{
- 80008ac: b580 push {r7, lr}
- 80008ae: b084 sub sp, #16
- 80008b0: af00 add r7, sp, #0
- 80008b2: 6078 str r0, [r7, #4]
+ 8000840: b580 push {r7, lr}
+ 8000842: b084 sub sp, #16
+ 8000844: af00 add r7, sp, #0
+ 8000846: 6078 str r0, [r7, #4]
uint32_t tickstart = HAL_GetTick();
- 80008b4: f7ff fff0 bl 8000898
- 80008b8: 60b8 str r0, [r7, #8]
+ 8000848: f7ff fff0 bl 800082c
+ 800084c: 60b8 str r0, [r7, #8]
uint32_t wait = Delay;
- 80008ba: 687b ldr r3, [r7, #4]
- 80008bc: 60fb str r3, [r7, #12]
+ 800084e: 687b ldr r3, [r7, #4]
+ 8000850: 60fb str r3, [r7, #12]
/* Add a freq to guarantee minimum wait */
if (wait < HAL_MAX_DELAY)
- 80008be: 68fb ldr r3, [r7, #12]
- 80008c0: f1b3 3fff cmp.w r3, #4294967295
- 80008c4: d005 beq.n 80008d2
+ 8000852: 68fb ldr r3, [r7, #12]
+ 8000854: f1b3 3fff cmp.w r3, #4294967295
+ 8000858: d005 beq.n 8000866
{
wait += (uint32_t)(uwTickFreq);
- 80008c6: 4b0a ldr r3, [pc, #40] ; (80008f0 )
- 80008c8: 781b ldrb r3, [r3, #0]
- 80008ca: 461a mov r2, r3
- 80008cc: 68fb ldr r3, [r7, #12]
- 80008ce: 4413 add r3, r2
- 80008d0: 60fb str r3, [r7, #12]
+ 800085a: 4b0a ldr r3, [pc, #40] ; (8000884 )
+ 800085c: 781b ldrb r3, [r3, #0]
+ 800085e: 461a mov r2, r3
+ 8000860: 68fb ldr r3, [r7, #12]
+ 8000862: 4413 add r3, r2
+ 8000864: 60fb str r3, [r7, #12]
}
while ((HAL_GetTick() - tickstart) < wait)
- 80008d2: bf00 nop
- 80008d4: f7ff ffe0 bl 8000898
- 80008d8: 4602 mov r2, r0
- 80008da: 68bb ldr r3, [r7, #8]
- 80008dc: 1ad3 subs r3, r2, r3
- 80008de: 68fa ldr r2, [r7, #12]
- 80008e0: 429a cmp r2, r3
- 80008e2: d8f7 bhi.n 80008d4
+ 8000866: bf00 nop
+ 8000868: f7ff ffe0 bl 800082c
+ 800086c: 4602 mov r2, r0
+ 800086e: 68bb ldr r3, [r7, #8]
+ 8000870: 1ad3 subs r3, r2, r3
+ 8000872: 68fa ldr r2, [r7, #12]
+ 8000874: 429a cmp r2, r3
+ 8000876: d8f7 bhi.n 8000868
{
}
}
- 80008e4: bf00 nop
- 80008e6: bf00 nop
- 80008e8: 3710 adds r7, #16
- 80008ea: 46bd mov sp, r7
- 80008ec: bd80 pop {r7, pc}
- 80008ee: bf00 nop
- 80008f0: 20000008 .word 0x20000008
+ 8000878: bf00 nop
+ 800087a: bf00 nop
+ 800087c: 3710 adds r7, #16
+ 800087e: 46bd mov sp, r7
+ 8000880: bd80 pop {r7, pc}
+ 8000882: bf00 nop
+ 8000884: 20000008 .word 0x20000008
-080008f4 <__NVIC_SetPriorityGrouping>:
+08000888 <__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)
{
- 80008f4: b480 push {r7}
- 80008f6: b085 sub sp, #20
- 80008f8: af00 add r7, sp, #0
- 80008fa: 6078 str r0, [r7, #4]
+ 8000888: b480 push {r7}
+ 800088a: b085 sub sp, #20
+ 800088c: af00 add r7, sp, #0
+ 800088e: 6078 str r0, [r7, #4]
uint32_t reg_value;
uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
- 80008fc: 687b ldr r3, [r7, #4]
- 80008fe: f003 0307 and.w r3, r3, #7
- 8000902: 60fb str r3, [r7, #12]
+ 8000890: 687b ldr r3, [r7, #4]
+ 8000892: f003 0307 and.w r3, r3, #7
+ 8000896: 60fb str r3, [r7, #12]
reg_value = SCB->AIRCR; /* read old register configuration */
- 8000904: 4b0c ldr r3, [pc, #48] ; (8000938 <__NVIC_SetPriorityGrouping+0x44>)
- 8000906: 68db ldr r3, [r3, #12]
- 8000908: 60bb str r3, [r7, #8]
+ 8000898: 4b0c ldr r3, [pc, #48] ; (80008cc <__NVIC_SetPriorityGrouping+0x44>)
+ 800089a: 68db ldr r3, [r3, #12]
+ 800089c: 60bb str r3, [r7, #8]
reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */
- 800090a: 68ba ldr r2, [r7, #8]
- 800090c: f64f 03ff movw r3, #63743 ; 0xf8ff
- 8000910: 4013 ands r3, r2
- 8000912: 60bb str r3, [r7, #8]
+ 800089e: 68ba ldr r2, [r7, #8]
+ 80008a0: f64f 03ff movw r3, #63743 ; 0xf8ff
+ 80008a4: 4013 ands r3, r2
+ 80008a6: 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 */
- 8000914: 68fb ldr r3, [r7, #12]
- 8000916: 021a lsls r2, r3, #8
+ 80008a8: 68fb ldr r3, [r7, #12]
+ 80008aa: 021a lsls r2, r3, #8
((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
- 8000918: 68bb ldr r3, [r7, #8]
- 800091a: 4313 orrs r3, r2
+ 80008ac: 68bb ldr r3, [r7, #8]
+ 80008ae: 4313 orrs r3, r2
reg_value = (reg_value |
- 800091c: f043 63bf orr.w r3, r3, #100139008 ; 0x5f80000
- 8000920: f443 3300 orr.w r3, r3, #131072 ; 0x20000
- 8000924: 60bb str r3, [r7, #8]
+ 80008b0: f043 63bf orr.w r3, r3, #100139008 ; 0x5f80000
+ 80008b4: f443 3300 orr.w r3, r3, #131072 ; 0x20000
+ 80008b8: 60bb str r3, [r7, #8]
SCB->AIRCR = reg_value;
- 8000926: 4a04 ldr r2, [pc, #16] ; (8000938 <__NVIC_SetPriorityGrouping+0x44>)
- 8000928: 68bb ldr r3, [r7, #8]
- 800092a: 60d3 str r3, [r2, #12]
+ 80008ba: 4a04 ldr r2, [pc, #16] ; (80008cc <__NVIC_SetPriorityGrouping+0x44>)
+ 80008bc: 68bb ldr r3, [r7, #8]
+ 80008be: 60d3 str r3, [r2, #12]
}
- 800092c: bf00 nop
- 800092e: 3714 adds r7, #20
- 8000930: 46bd mov sp, r7
- 8000932: bc80 pop {r7}
- 8000934: 4770 bx lr
- 8000936: bf00 nop
- 8000938: e000ed00 .word 0xe000ed00
+ 80008c0: bf00 nop
+ 80008c2: 3714 adds r7, #20
+ 80008c4: 46bd mov sp, r7
+ 80008c6: bc80 pop {r7}
+ 80008c8: 4770 bx lr
+ 80008ca: bf00 nop
+ 80008cc: e000ed00 .word 0xe000ed00
-0800093c <__NVIC_GetPriorityGrouping>:
+080008d0 <__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)
{
- 800093c: b480 push {r7}
- 800093e: af00 add r7, sp, #0
+ 80008d0: b480 push {r7}
+ 80008d2: af00 add r7, sp, #0
return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos));
- 8000940: 4b04 ldr r3, [pc, #16] ; (8000954 <__NVIC_GetPriorityGrouping+0x18>)
- 8000942: 68db ldr r3, [r3, #12]
- 8000944: 0a1b lsrs r3, r3, #8
- 8000946: f003 0307 and.w r3, r3, #7
+ 80008d4: 4b04 ldr r3, [pc, #16] ; (80008e8 <__NVIC_GetPriorityGrouping+0x18>)
+ 80008d6: 68db ldr r3, [r3, #12]
+ 80008d8: 0a1b lsrs r3, r3, #8
+ 80008da: f003 0307 and.w r3, r3, #7
}
- 800094a: 4618 mov r0, r3
- 800094c: 46bd mov sp, r7
- 800094e: bc80 pop {r7}
- 8000950: 4770 bx lr
- 8000952: bf00 nop
- 8000954: e000ed00 .word 0xe000ed00
+ 80008de: 4618 mov r0, r3
+ 80008e0: 46bd mov sp, r7
+ 80008e2: bc80 pop {r7}
+ 80008e4: 4770 bx lr
+ 80008e6: bf00 nop
+ 80008e8: e000ed00 .word 0xe000ed00
-08000958 <__NVIC_SetPriority>:
+080008ec <__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)
{
- 8000958: b480 push {r7}
- 800095a: b083 sub sp, #12
- 800095c: af00 add r7, sp, #0
- 800095e: 4603 mov r3, r0
- 8000960: 6039 str r1, [r7, #0]
- 8000962: 71fb strb r3, [r7, #7]
+ 80008ec: b480 push {r7}
+ 80008ee: b083 sub sp, #12
+ 80008f0: af00 add r7, sp, #0
+ 80008f2: 4603 mov r3, r0
+ 80008f4: 6039 str r1, [r7, #0]
+ 80008f6: 71fb strb r3, [r7, #7]
if ((int32_t)(IRQn) >= 0)
- 8000964: f997 3007 ldrsb.w r3, [r7, #7]
- 8000968: 2b00 cmp r3, #0
- 800096a: db0a blt.n 8000982 <__NVIC_SetPriority+0x2a>
+ 80008f8: f997 3007 ldrsb.w r3, [r7, #7]
+ 80008fc: 2b00 cmp r3, #0
+ 80008fe: db0a blt.n 8000916 <__NVIC_SetPriority+0x2a>
{
NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
- 800096c: 683b ldr r3, [r7, #0]
- 800096e: b2da uxtb r2, r3
- 8000970: 490c ldr r1, [pc, #48] ; (80009a4 <__NVIC_SetPriority+0x4c>)
- 8000972: f997 3007 ldrsb.w r3, [r7, #7]
- 8000976: 0112 lsls r2, r2, #4
- 8000978: b2d2 uxtb r2, r2
- 800097a: 440b add r3, r1
- 800097c: f883 2300 strb.w r2, [r3, #768] ; 0x300
+ 8000900: 683b ldr r3, [r7, #0]
+ 8000902: b2da uxtb r2, r3
+ 8000904: 490c ldr r1, [pc, #48] ; (8000938 <__NVIC_SetPriority+0x4c>)
+ 8000906: f997 3007 ldrsb.w r3, [r7, #7]
+ 800090a: 0112 lsls r2, r2, #4
+ 800090c: b2d2 uxtb r2, r2
+ 800090e: 440b add r3, r1
+ 8000910: 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);
}
}
- 8000980: e00a b.n 8000998 <__NVIC_SetPriority+0x40>
+ 8000914: e00a b.n 800092c <__NVIC_SetPriority+0x40>
SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
- 8000982: 683b ldr r3, [r7, #0]
- 8000984: b2da uxtb r2, r3
- 8000986: 4908 ldr r1, [pc, #32] ; (80009a8 <__NVIC_SetPriority+0x50>)
- 8000988: 79fb ldrb r3, [r7, #7]
- 800098a: f003 030f and.w r3, r3, #15
- 800098e: 3b04 subs r3, #4
- 8000990: 0112 lsls r2, r2, #4
- 8000992: b2d2 uxtb r2, r2
- 8000994: 440b add r3, r1
- 8000996: 761a strb r2, [r3, #24]
+ 8000916: 683b ldr r3, [r7, #0]
+ 8000918: b2da uxtb r2, r3
+ 800091a: 4908 ldr r1, [pc, #32] ; (800093c <__NVIC_SetPriority+0x50>)
+ 800091c: 79fb ldrb r3, [r7, #7]
+ 800091e: f003 030f and.w r3, r3, #15
+ 8000922: 3b04 subs r3, #4
+ 8000924: 0112 lsls r2, r2, #4
+ 8000926: b2d2 uxtb r2, r2
+ 8000928: 440b add r3, r1
+ 800092a: 761a strb r2, [r3, #24]
}
- 8000998: bf00 nop
- 800099a: 370c adds r7, #12
- 800099c: 46bd mov sp, r7
- 800099e: bc80 pop {r7}
- 80009a0: 4770 bx lr
- 80009a2: bf00 nop
- 80009a4: e000e100 .word 0xe000e100
- 80009a8: e000ed00 .word 0xe000ed00
+ 800092c: bf00 nop
+ 800092e: 370c adds r7, #12
+ 8000930: 46bd mov sp, r7
+ 8000932: bc80 pop {r7}
+ 8000934: 4770 bx lr
+ 8000936: bf00 nop
+ 8000938: e000e100 .word 0xe000e100
+ 800093c: e000ed00 .word 0xe000ed00
-080009ac :
+08000940 :
\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)
{
- 80009ac: b480 push {r7}
- 80009ae: b089 sub sp, #36 ; 0x24
- 80009b0: af00 add r7, sp, #0
- 80009b2: 60f8 str r0, [r7, #12]
- 80009b4: 60b9 str r1, [r7, #8]
- 80009b6: 607a str r2, [r7, #4]
+ 8000940: b480 push {r7}
+ 8000942: b089 sub sp, #36 ; 0x24
+ 8000944: af00 add r7, sp, #0
+ 8000946: 60f8 str r0, [r7, #12]
+ 8000948: 60b9 str r1, [r7, #8]
+ 800094a: 607a str r2, [r7, #4]
uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
- 80009b8: 68fb ldr r3, [r7, #12]
- 80009ba: f003 0307 and.w r3, r3, #7
- 80009be: 61fb str r3, [r7, #28]
+ 800094c: 68fb ldr r3, [r7, #12]
+ 800094e: f003 0307 and.w r3, r3, #7
+ 8000952: 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);
- 80009c0: 69fb ldr r3, [r7, #28]
- 80009c2: f1c3 0307 rsb r3, r3, #7
- 80009c6: 2b04 cmp r3, #4
- 80009c8: bf28 it cs
- 80009ca: 2304 movcs r3, #4
- 80009cc: 61bb str r3, [r7, #24]
+ 8000954: 69fb ldr r3, [r7, #28]
+ 8000956: f1c3 0307 rsb r3, r3, #7
+ 800095a: 2b04 cmp r3, #4
+ 800095c: bf28 it cs
+ 800095e: 2304 movcs r3, #4
+ 8000960: 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));
- 80009ce: 69fb ldr r3, [r7, #28]
- 80009d0: 3304 adds r3, #4
- 80009d2: 2b06 cmp r3, #6
- 80009d4: d902 bls.n 80009dc
- 80009d6: 69fb ldr r3, [r7, #28]
- 80009d8: 3b03 subs r3, #3
- 80009da: e000 b.n 80009de
- 80009dc: 2300 movs r3, #0
- 80009de: 617b str r3, [r7, #20]
+ 8000962: 69fb ldr r3, [r7, #28]
+ 8000964: 3304 adds r3, #4
+ 8000966: 2b06 cmp r3, #6
+ 8000968: d902 bls.n 8000970
+ 800096a: 69fb ldr r3, [r7, #28]
+ 800096c: 3b03 subs r3, #3
+ 800096e: e000 b.n 8000972
+ 8000970: 2300 movs r3, #0
+ 8000972: 617b str r3, [r7, #20]
return (
((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
- 80009e0: f04f 32ff mov.w r2, #4294967295
- 80009e4: 69bb ldr r3, [r7, #24]
- 80009e6: fa02 f303 lsl.w r3, r2, r3
- 80009ea: 43da mvns r2, r3
- 80009ec: 68bb ldr r3, [r7, #8]
- 80009ee: 401a ands r2, r3
- 80009f0: 697b ldr r3, [r7, #20]
- 80009f2: 409a lsls r2, r3
+ 8000974: f04f 32ff mov.w r2, #4294967295
+ 8000978: 69bb ldr r3, [r7, #24]
+ 800097a: fa02 f303 lsl.w r3, r2, r3
+ 800097e: 43da mvns r2, r3
+ 8000980: 68bb ldr r3, [r7, #8]
+ 8000982: 401a ands r2, r3
+ 8000984: 697b ldr r3, [r7, #20]
+ 8000986: 409a lsls r2, r3
((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL)))
- 80009f4: f04f 31ff mov.w r1, #4294967295
- 80009f8: 697b ldr r3, [r7, #20]
- 80009fa: fa01 f303 lsl.w r3, r1, r3
- 80009fe: 43d9 mvns r1, r3
- 8000a00: 687b ldr r3, [r7, #4]
- 8000a02: 400b ands r3, r1
+ 8000988: f04f 31ff mov.w r1, #4294967295
+ 800098c: 697b ldr r3, [r7, #20]
+ 800098e: fa01 f303 lsl.w r3, r1, r3
+ 8000992: 43d9 mvns r1, r3
+ 8000994: 687b ldr r3, [r7, #4]
+ 8000996: 400b ands r3, r1
((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
- 8000a04: 4313 orrs r3, r2
+ 8000998: 4313 orrs r3, r2
);
}
- 8000a06: 4618 mov r0, r3
- 8000a08: 3724 adds r7, #36 ; 0x24
- 8000a0a: 46bd mov sp, r7
- 8000a0c: bc80 pop {r7}
- 8000a0e: 4770 bx lr
+ 800099a: 4618 mov r0, r3
+ 800099c: 3724 adds r7, #36 ; 0x24
+ 800099e: 46bd mov sp, r7
+ 80009a0: bc80 pop {r7}
+ 80009a2: 4770 bx lr
-08000a10 :
+080009a4 :
\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)
{
- 8000a10: b580 push {r7, lr}
- 8000a12: b082 sub sp, #8
- 8000a14: af00 add r7, sp, #0
- 8000a16: 6078 str r0, [r7, #4]
+ 80009a4: b580 push {r7, lr}
+ 80009a6: b082 sub sp, #8
+ 80009a8: af00 add r7, sp, #0
+ 80009aa: 6078 str r0, [r7, #4]
if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk)
- 8000a18: 687b ldr r3, [r7, #4]
- 8000a1a: 3b01 subs r3, #1
- 8000a1c: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000
- 8000a20: d301 bcc.n 8000a26
+ 80009ac: 687b ldr r3, [r7, #4]
+ 80009ae: 3b01 subs r3, #1
+ 80009b0: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000
+ 80009b4: d301 bcc.n 80009ba
{
return (1UL); /* Reload value impossible */
- 8000a22: 2301 movs r3, #1
- 8000a24: e00f b.n 8000a46
+ 80009b6: 2301 movs r3, #1
+ 80009b8: e00f b.n 80009da
}
SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */
- 8000a26: 4a0a ldr r2, [pc, #40] ; (8000a50 )
- 8000a28: 687b ldr r3, [r7, #4]
- 8000a2a: 3b01 subs r3, #1
- 8000a2c: 6053 str r3, [r2, #4]
+ 80009ba: 4a0a ldr r2, [pc, #40] ; (80009e4 )
+ 80009bc: 687b ldr r3, [r7, #4]
+ 80009be: 3b01 subs r3, #1
+ 80009c0: 6053 str r3, [r2, #4]
NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */
- 8000a2e: 210f movs r1, #15
- 8000a30: f04f 30ff mov.w r0, #4294967295
- 8000a34: f7ff ff90 bl 8000958 <__NVIC_SetPriority>
+ 80009c2: 210f movs r1, #15
+ 80009c4: f04f 30ff mov.w r0, #4294967295
+ 80009c8: f7ff ff90 bl 80008ec <__NVIC_SetPriority>
SysTick->VAL = 0UL; /* Load the SysTick Counter Value */
- 8000a38: 4b05 ldr r3, [pc, #20] ; (8000a50 )
- 8000a3a: 2200 movs r2, #0
- 8000a3c: 609a str r2, [r3, #8]
+ 80009cc: 4b05 ldr r3, [pc, #20] ; (80009e4 )
+ 80009ce: 2200 movs r2, #0
+ 80009d0: 609a str r2, [r3, #8]
SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
- 8000a3e: 4b04 ldr r3, [pc, #16] ; (8000a50 )
- 8000a40: 2207 movs r2, #7
- 8000a42: 601a str r2, [r3, #0]
+ 80009d2: 4b04 ldr r3, [pc, #16] ; (80009e4 )
+ 80009d4: 2207 movs r2, #7
+ 80009d6: 601a str r2, [r3, #0]
SysTick_CTRL_TICKINT_Msk |
SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */
return (0UL); /* Function successful */
- 8000a44: 2300 movs r3, #0
+ 80009d8: 2300 movs r3, #0
}
- 8000a46: 4618 mov r0, r3
- 8000a48: 3708 adds r7, #8
- 8000a4a: 46bd mov sp, r7
- 8000a4c: bd80 pop {r7, pc}
- 8000a4e: bf00 nop
- 8000a50: e000e010 .word 0xe000e010
+ 80009da: 4618 mov r0, r3
+ 80009dc: 3708 adds r7, #8
+ 80009de: 46bd mov sp, r7
+ 80009e0: bd80 pop {r7, pc}
+ 80009e2: bf00 nop
+ 80009e4: e000e010 .word 0xe000e010
-08000a54 :
+080009e8 :
* @note When the NVIC_PriorityGroup_0 is selected, IRQ preemption is no more possible.
* The pending IRQ priority will be managed only by the subpriority.
* @retval None
*/
void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
{
- 8000a54: b580 push {r7, lr}
- 8000a56: b082 sub sp, #8
- 8000a58: af00 add r7, sp, #0
- 8000a5a: 6078 str r0, [r7, #4]
+ 80009e8: b580 push {r7, lr}
+ 80009ea: b082 sub sp, #8
+ 80009ec: af00 add r7, sp, #0
+ 80009ee: 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);
- 8000a5c: 6878 ldr r0, [r7, #4]
- 8000a5e: f7ff ff49 bl 80008f4 <__NVIC_SetPriorityGrouping>
+ 80009f0: 6878 ldr r0, [r7, #4]
+ 80009f2: f7ff ff49 bl 8000888 <__NVIC_SetPriorityGrouping>
}
- 8000a62: bf00 nop
- 8000a64: 3708 adds r7, #8
- 8000a66: 46bd mov sp, r7
- 8000a68: bd80 pop {r7, pc}
+ 80009f6: bf00 nop
+ 80009f8: 3708 adds r7, #8
+ 80009fa: 46bd mov sp, r7
+ 80009fc: bd80 pop {r7, pc}
-08000a6a :
+080009fe :
* 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)
{
- 8000a6a: b580 push {r7, lr}
- 8000a6c: b086 sub sp, #24
- 8000a6e: af00 add r7, sp, #0
- 8000a70: 4603 mov r3, r0
- 8000a72: 60b9 str r1, [r7, #8]
- 8000a74: 607a str r2, [r7, #4]
- 8000a76: 73fb strb r3, [r7, #15]
+ 80009fe: b580 push {r7, lr}
+ 8000a00: b086 sub sp, #24
+ 8000a02: af00 add r7, sp, #0
+ 8000a04: 4603 mov r3, r0
+ 8000a06: 60b9 str r1, [r7, #8]
+ 8000a08: 607a str r2, [r7, #4]
+ 8000a0a: 73fb strb r3, [r7, #15]
uint32_t prioritygroup = 0x00U;
- 8000a78: 2300 movs r3, #0
- 8000a7a: 617b str r3, [r7, #20]
+ 8000a0c: 2300 movs r3, #0
+ 8000a0e: 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();
- 8000a7c: f7ff ff5e bl 800093c <__NVIC_GetPriorityGrouping>
- 8000a80: 6178 str r0, [r7, #20]
+ 8000a10: f7ff ff5e bl 80008d0 <__NVIC_GetPriorityGrouping>
+ 8000a14: 6178 str r0, [r7, #20]
NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority));
- 8000a82: 687a ldr r2, [r7, #4]
- 8000a84: 68b9 ldr r1, [r7, #8]
- 8000a86: 6978 ldr r0, [r7, #20]
- 8000a88: f7ff ff90 bl 80009ac
- 8000a8c: 4602 mov r2, r0
- 8000a8e: f997 300f ldrsb.w r3, [r7, #15]
- 8000a92: 4611 mov r1, r2
- 8000a94: 4618 mov r0, r3
- 8000a96: f7ff ff5f bl 8000958 <__NVIC_SetPriority>
+ 8000a16: 687a ldr r2, [r7, #4]
+ 8000a18: 68b9 ldr r1, [r7, #8]
+ 8000a1a: 6978 ldr r0, [r7, #20]
+ 8000a1c: f7ff ff90 bl 8000940
+ 8000a20: 4602 mov r2, r0
+ 8000a22: f997 300f ldrsb.w r3, [r7, #15]
+ 8000a26: 4611 mov r1, r2
+ 8000a28: 4618 mov r0, r3
+ 8000a2a: f7ff ff5f bl 80008ec <__NVIC_SetPriority>
}
- 8000a9a: bf00 nop
- 8000a9c: 3718 adds r7, #24
- 8000a9e: 46bd mov sp, r7
- 8000aa0: bd80 pop {r7, pc}
+ 8000a2e: bf00 nop
+ 8000a30: 3718 adds r7, #24
+ 8000a32: 46bd mov sp, r7
+ 8000a34: bd80 pop {r7, pc}
-08000aa2 :
+08000a36 :
* @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)
{
- 8000aa2: b580 push {r7, lr}
- 8000aa4: b082 sub sp, #8
- 8000aa6: af00 add r7, sp, #0
- 8000aa8: 6078 str r0, [r7, #4]
+ 8000a36: b580 push {r7, lr}
+ 8000a38: b082 sub sp, #8
+ 8000a3a: af00 add r7, sp, #0
+ 8000a3c: 6078 str r0, [r7, #4]
return SysTick_Config(TicksNumb);
- 8000aaa: 6878 ldr r0, [r7, #4]
- 8000aac: f7ff ffb0 bl 8000a10
- 8000ab0: 4603 mov r3, r0
+ 8000a3e: 6878 ldr r0, [r7, #4]
+ 8000a40: f7ff ffb0 bl 80009a4
+ 8000a44: 4603 mov r3, r0
}
- 8000ab2: 4618 mov r0, r3
- 8000ab4: 3708 adds r7, #8
- 8000ab6: 46bd mov sp, r7
- 8000ab8: bd80 pop {r7, pc}
+ 8000a46: 4618 mov r0, r3
+ 8000a48: 3708 adds r7, #8
+ 8000a4a: 46bd mov sp, r7
+ 8000a4c: bd80 pop {r7, pc}
...
-08000abc :
+08000a50 :
* @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)
{
- 8000abc: b480 push {r7}
- 8000abe: b08b sub sp, #44 ; 0x2c
- 8000ac0: af00 add r7, sp, #0
- 8000ac2: 6078 str r0, [r7, #4]
- 8000ac4: 6039 str r1, [r7, #0]
+ 8000a50: b480 push {r7}
+ 8000a52: b08b sub sp, #44 ; 0x2c
+ 8000a54: af00 add r7, sp, #0
+ 8000a56: 6078 str r0, [r7, #4]
+ 8000a58: 6039 str r1, [r7, #0]
uint32_t position = 0x00u;
- 8000ac6: 2300 movs r3, #0
- 8000ac8: 627b str r3, [r7, #36] ; 0x24
+ 8000a5a: 2300 movs r3, #0
+ 8000a5c: 627b str r3, [r7, #36] ; 0x24
uint32_t ioposition;
uint32_t iocurrent;
uint32_t temp;
uint32_t config = 0x00u;
- 8000aca: 2300 movs r3, #0
- 8000acc: 623b str r3, [r7, #32]
+ 8000a5e: 2300 movs r3, #0
+ 8000a60: 623b str r3, [r7, #32]
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) != 0x00u)
- 8000ace: e179 b.n 8000dc4
+ 8000a62: e179 b.n 8000d58
{
/* Get the IO position */
ioposition = (0x01uL << position);
- 8000ad0: 2201 movs r2, #1
- 8000ad2: 6a7b ldr r3, [r7, #36] ; 0x24
- 8000ad4: fa02 f303 lsl.w r3, r2, r3
- 8000ad8: 61fb str r3, [r7, #28]
+ 8000a64: 2201 movs r2, #1
+ 8000a66: 6a7b ldr r3, [r7, #36] ; 0x24
+ 8000a68: fa02 f303 lsl.w r3, r2, r3
+ 8000a6c: 61fb str r3, [r7, #28]
/* Get the current IO position */
iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition;
- 8000ada: 683b ldr r3, [r7, #0]
- 8000adc: 681b ldr r3, [r3, #0]
- 8000ade: 69fa ldr r2, [r7, #28]
- 8000ae0: 4013 ands r3, r2
- 8000ae2: 61bb str r3, [r7, #24]
+ 8000a6e: 683b ldr r3, [r7, #0]
+ 8000a70: 681b ldr r3, [r3, #0]
+ 8000a72: 69fa ldr r2, [r7, #28]
+ 8000a74: 4013 ands r3, r2
+ 8000a76: 61bb str r3, [r7, #24]
if (iocurrent == ioposition)
- 8000ae4: 69ba ldr r2, [r7, #24]
- 8000ae6: 69fb ldr r3, [r7, #28]
- 8000ae8: 429a cmp r2, r3
- 8000aea: f040 8168 bne.w 8000dbe
+ 8000a78: 69ba ldr r2, [r7, #24]
+ 8000a7a: 69fb ldr r3, [r7, #28]
+ 8000a7c: 429a cmp r2, r3
+ 8000a7e: f040 8168 bne.w 8000d52
{
/* Check the Alternate function parameters */
assert_param(IS_GPIO_AF_INSTANCE(GPIOx));
/* Based on the required mode, filling config variable with MODEy[1:0] and CNFy[3:2] corresponding bits */
switch (GPIO_Init->Mode)
- 8000aee: 683b ldr r3, [r7, #0]
- 8000af0: 685b ldr r3, [r3, #4]
- 8000af2: 4aa0 ldr r2, [pc, #640] ; (8000d74 )
- 8000af4: 4293 cmp r3, r2
- 8000af6: d05e beq.n 8000bb6
- 8000af8: 4a9e ldr r2, [pc, #632] ; (8000d74 )
- 8000afa: 4293 cmp r3, r2
- 8000afc: d875 bhi.n 8000bea
- 8000afe: 4a9e ldr r2, [pc, #632] ; (8000d78 )
- 8000b00: 4293 cmp r3, r2
- 8000b02: d058 beq.n 8000bb6
- 8000b04: 4a9c ldr r2, [pc, #624] ; (8000d78 )
- 8000b06: 4293 cmp r3, r2
- 8000b08: d86f bhi.n 8000bea
- 8000b0a: 4a9c ldr r2, [pc, #624] ; (8000d7c )
- 8000b0c: 4293 cmp r3, r2
- 8000b0e: d052 beq.n 8000bb6
- 8000b10: 4a9a ldr r2, [pc, #616] ; (8000d7c )
- 8000b12: 4293 cmp r3, r2
- 8000b14: d869 bhi.n 8000bea
- 8000b16: 4a9a ldr r2, [pc, #616] ; (8000d80 )
- 8000b18: 4293 cmp r3, r2
- 8000b1a: d04c beq.n 8000bb6
- 8000b1c: 4a98 ldr r2, [pc, #608] ; (8000d80 )
+ 8000a82: 683b ldr r3, [r7, #0]
+ 8000a84: 685b ldr r3, [r3, #4]
+ 8000a86: 4aa0 ldr r2, [pc, #640] ; (8000d08 )
+ 8000a88: 4293 cmp r3, r2
+ 8000a8a: d05e beq.n 8000b4a
+ 8000a8c: 4a9e ldr r2, [pc, #632] ; (8000d08 )
+ 8000a8e: 4293 cmp r3, r2
+ 8000a90: d875 bhi.n 8000b7e
+ 8000a92: 4a9e ldr r2, [pc, #632] ; (8000d0c )
+ 8000a94: 4293 cmp r3, r2
+ 8000a96: d058 beq.n 8000b4a
+ 8000a98: 4a9c ldr r2, [pc, #624] ; (8000d0c )
+ 8000a9a: 4293 cmp r3, r2
+ 8000a9c: d86f bhi.n 8000b7e
+ 8000a9e: 4a9c ldr r2, [pc, #624] ; (8000d10 )
+ 8000aa0: 4293 cmp r3, r2
+ 8000aa2: d052 beq.n 8000b4a
+ 8000aa4: 4a9a ldr r2, [pc, #616] ; (8000d10 )
+ 8000aa6: 4293 cmp r3, r2
+ 8000aa8: d869 bhi.n 8000b7e
+ 8000aaa: 4a9a ldr r2, [pc, #616] ; (8000d14 )
+ 8000aac: 4293 cmp r3, r2
+ 8000aae: d04c beq.n 8000b4a
+ 8000ab0: 4a98 ldr r2, [pc, #608] ; (8000d14 )
+ 8000ab2: 4293 cmp r3, r2
+ 8000ab4: d863 bhi.n 8000b7e
+ 8000ab6: 4a98 ldr r2, [pc, #608] ; (8000d18 )
+ 8000ab8: 4293 cmp r3, r2
+ 8000aba: d046 beq.n 8000b4a
+ 8000abc: 4a96 ldr r2, [pc, #600] ; (8000d18 )
+ 8000abe: 4293 cmp r3, r2
+ 8000ac0: d85d bhi.n 8000b7e
+ 8000ac2: 2b12 cmp r3, #18
+ 8000ac4: d82a bhi.n 8000b1c
+ 8000ac6: 2b12 cmp r3, #18
+ 8000ac8: d859 bhi.n 8000b7e
+ 8000aca: a201 add r2, pc, #4 ; (adr r2, 8000ad0 )
+ 8000acc: f852 f023 ldr.w pc, [r2, r3, lsl #2]
+ 8000ad0: 08000b4b .word 0x08000b4b
+ 8000ad4: 08000b25 .word 0x08000b25
+ 8000ad8: 08000b37 .word 0x08000b37
+ 8000adc: 08000b79 .word 0x08000b79
+ 8000ae0: 08000b7f .word 0x08000b7f
+ 8000ae4: 08000b7f .word 0x08000b7f
+ 8000ae8: 08000b7f .word 0x08000b7f
+ 8000aec: 08000b7f .word 0x08000b7f
+ 8000af0: 08000b7f .word 0x08000b7f
+ 8000af4: 08000b7f .word 0x08000b7f
+ 8000af8: 08000b7f .word 0x08000b7f
+ 8000afc: 08000b7f .word 0x08000b7f
+ 8000b00: 08000b7f .word 0x08000b7f
+ 8000b04: 08000b7f .word 0x08000b7f
+ 8000b08: 08000b7f .word 0x08000b7f
+ 8000b0c: 08000b7f .word 0x08000b7f
+ 8000b10: 08000b7f .word 0x08000b7f
+ 8000b14: 08000b2d .word 0x08000b2d
+ 8000b18: 08000b41 .word 0x08000b41
+ 8000b1c: 4a7f ldr r2, [pc, #508] ; (8000d1c )
8000b1e: 4293 cmp r3, r2
- 8000b20: d863 bhi.n 8000bea
- 8000b22: 4a98 ldr r2, [pc, #608] ; (8000d84 )
- 8000b24: 4293 cmp r3, r2
- 8000b26: d046 beq.n 8000bb6
- 8000b28: 4a96 ldr r2, [pc, #600] ; (8000d84 )
- 8000b2a: 4293 cmp r3, r2
- 8000b2c: d85d bhi.n 8000bea
- 8000b2e: 2b12 cmp r3, #18
- 8000b30: d82a bhi.n 8000b88
- 8000b32: 2b12 cmp r3, #18
- 8000b34: d859 bhi.n 8000bea
- 8000b36: a201 add r2, pc, #4 ; (adr r2, 8000b3c )
- 8000b38: f852 f023 ldr.w pc, [r2, r3, lsl #2]
- 8000b3c: 08000bb7 .word 0x08000bb7
- 8000b40: 08000b91 .word 0x08000b91
- 8000b44: 08000ba3 .word 0x08000ba3
- 8000b48: 08000be5 .word 0x08000be5
- 8000b4c: 08000beb .word 0x08000beb
- 8000b50: 08000beb .word 0x08000beb
- 8000b54: 08000beb .word 0x08000beb
- 8000b58: 08000beb .word 0x08000beb
- 8000b5c: 08000beb .word 0x08000beb
- 8000b60: 08000beb .word 0x08000beb
- 8000b64: 08000beb .word 0x08000beb
- 8000b68: 08000beb .word 0x08000beb
- 8000b6c: 08000beb .word 0x08000beb
- 8000b70: 08000beb .word 0x08000beb
- 8000b74: 08000beb .word 0x08000beb
- 8000b78: 08000beb .word 0x08000beb
- 8000b7c: 08000beb .word 0x08000beb
- 8000b80: 08000b99 .word 0x08000b99
- 8000b84: 08000bad .word 0x08000bad
- 8000b88: 4a7f ldr r2, [pc, #508] ; (8000d88 )
- 8000b8a: 4293 cmp r3, r2
- 8000b8c: d013 beq.n 8000bb6
+ 8000b20: d013 beq.n 8000b4a
config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_ANALOG;
break;
/* Parameters are checked with assert_param */
default:
break;
- 8000b8e: e02c b.n 8000bea
+ 8000b22: e02c b.n 8000b7e
config = GPIO_Init->Speed + GPIO_CR_CNF_GP_OUTPUT_PP;
- 8000b90: 683b ldr r3, [r7, #0]
- 8000b92: 68db ldr r3, [r3, #12]
- 8000b94: 623b str r3, [r7, #32]
+ 8000b24: 683b ldr r3, [r7, #0]
+ 8000b26: 68db ldr r3, [r3, #12]
+ 8000b28: 623b str r3, [r7, #32]
break;
- 8000b96: e029 b.n 8000bec
+ 8000b2a: e029 b.n 8000b80
config = GPIO_Init->Speed + GPIO_CR_CNF_GP_OUTPUT_OD;
- 8000b98: 683b ldr r3, [r7, #0]
- 8000b9a: 68db ldr r3, [r3, #12]
- 8000b9c: 3304 adds r3, #4
- 8000b9e: 623b str r3, [r7, #32]
+ 8000b2c: 683b ldr r3, [r7, #0]
+ 8000b2e: 68db ldr r3, [r3, #12]
+ 8000b30: 3304 adds r3, #4
+ 8000b32: 623b str r3, [r7, #32]
break;
- 8000ba0: e024 b.n 8000bec
+ 8000b34: e024 b.n 8000b80
config = GPIO_Init->Speed + GPIO_CR_CNF_AF_OUTPUT_PP;
- 8000ba2: 683b ldr r3, [r7, #0]
- 8000ba4: 68db ldr r3, [r3, #12]
- 8000ba6: 3308 adds r3, #8
- 8000ba8: 623b str r3, [r7, #32]
+ 8000b36: 683b ldr r3, [r7, #0]
+ 8000b38: 68db ldr r3, [r3, #12]
+ 8000b3a: 3308 adds r3, #8
+ 8000b3c: 623b str r3, [r7, #32]
break;
- 8000baa: e01f b.n 8000bec
+ 8000b3e: e01f b.n 8000b80
config = GPIO_Init->Speed + GPIO_CR_CNF_AF_OUTPUT_OD;
- 8000bac: 683b ldr r3, [r7, #0]
- 8000bae: 68db ldr r3, [r3, #12]
- 8000bb0: 330c adds r3, #12
- 8000bb2: 623b str r3, [r7, #32]
+ 8000b40: 683b ldr r3, [r7, #0]
+ 8000b42: 68db ldr r3, [r3, #12]
+ 8000b44: 330c adds r3, #12
+ 8000b46: 623b str r3, [r7, #32]
break;
- 8000bb4: e01a b.n 8000bec
+ 8000b48: e01a b.n 8000b80
if (GPIO_Init->Pull == GPIO_NOPULL)
- 8000bb6: 683b ldr r3, [r7, #0]
- 8000bb8: 689b ldr r3, [r3, #8]
- 8000bba: 2b00 cmp r3, #0
- 8000bbc: d102 bne.n 8000bc4
+ 8000b4a: 683b ldr r3, [r7, #0]
+ 8000b4c: 689b ldr r3, [r3, #8]
+ 8000b4e: 2b00 cmp r3, #0
+ 8000b50: d102 bne.n 8000b58
config = GPIO_CR_MODE_INPUT + GPIO_CR_CNF_INPUT_FLOATING;
- 8000bbe: 2304 movs r3, #4
- 8000bc0: 623b str r3, [r7, #32]
+ 8000b52: 2304 movs r3, #4
+ 8000b54: 623b str r3, [r7, #32]
break;
- 8000bc2: e013 b.n 8000bec
+ 8000b56: e013 b.n 8000b80