From 875d99e14d10e5a5912a1bc7dc47270a5ee8794f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20MARQUET?= <72651575+BreizhHardware@users.noreply.github.com> Date: Tue, 1 Jul 2025 11:44:16 +0200 Subject: [PATCH] TP6 Exo 1 P2 --- TP6_ACCELEROMETRE/Core/Src/main.c | 20 +- TP6_ACCELEROMETRE/Debug/Core/Src/main.cyclo | 10 +- TP6_ACCELEROMETRE/Debug/Core/Src/main.o | Bin 738352 -> 739004 bytes TP6_ACCELEROMETRE/Debug/Core/Src/main.su | 10 +- TP6_ACCELEROMETRE/Debug/TP6_ACCELEROMETRE.elf | Bin 728928 -> 729164 bytes .../Debug/TP6_ACCELEROMETRE.list | 8593 +++++++++-------- TP6_ACCELEROMETRE/Debug/TP6_ACCELEROMETRE.map | 534 +- .../TP6_ACCELEROMETRE Debug.launch | 14 +- 8 files changed, 4637 insertions(+), 4544 deletions(-) diff --git a/TP6_ACCELEROMETRE/Core/Src/main.c b/TP6_ACCELEROMETRE/Core/Src/main.c index 66e5288..4ed7098 100644 --- a/TP6_ACCELEROMETRE/Core/Src/main.c +++ b/TP6_ACCELEROMETRE/Core/Src/main.c @@ -57,6 +57,9 @@ static void MX_I2C1_Init(void); /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ +uint8_t Z_VALUE = 0; +uint8_t Y_VALUE = 0; +uint8_t X_VALUE = 0; /* USER CODE END 0 */ @@ -106,7 +109,7 @@ int main(void) HAL_I2C_Master_Transmit(&hi2c1, 0xD6, data, 2, 100); HAL_Delay(100); - adresse[0] = 0x2D; + /* USER CODE END 2 */ @@ -122,6 +125,7 @@ int main(void) HAL_I2C_Master_Transmit(&hi2c1, 0xD6, adress, 1, 100); HAL_I2C_Master_Receive(&hi2c1, 0xD6, rData, 1, 100); */ + adresse[0] = 0x2D; HAL_I2C_Master_Transmit(&hi2c1, 0xD6, adresse, 1, 100); HAL_I2C_Master_Receive(&hi2c1, 0xD6, rData, 1, 100); @@ -131,6 +135,20 @@ int main(void) GPIOA -> ODR &= ~(1<<5); } + Z_VALUE = rData[0]; + + adresse[0] = 0x29; + HAL_I2C_Master_Transmit(&hi2c1, 0xD6, adresse, 1, 100); + HAL_I2C_Master_Receive(&hi2c1, 0xD6, rData, 1, 100); + + X_VALUE = rData[0]; + + adresse[0] = 0x2B; + HAL_I2C_Master_Transmit(&hi2c1, 0xD6, adresse, 1, 100); + HAL_I2C_Master_Receive(&hi2c1, 0xD6, rData, 1, 100); + + Y_VALUE = rData[0]; + HAL_Delay(100); } /* USER CODE END 3 */ diff --git a/TP6_ACCELEROMETRE/Debug/Core/Src/main.cyclo b/TP6_ACCELEROMETRE/Debug/Core/Src/main.cyclo index aacf163..11e4e61 100644 --- a/TP6_ACCELEROMETRE/Debug/Core/Src/main.cyclo +++ b/TP6_ACCELEROMETRE/Debug/Core/Src/main.cyclo @@ -1,5 +1,5 @@ -../Core/Src/main.c:67:5:main 3 -../Core/Src/main.c:143:6:SystemClock_Config 3 -../Core/Src/main.c:184:13:MX_I2C1_Init 2 -../Core/Src/main.c:218:13:MX_GPIO_Init 1 -../Core/Src/main.c:252:6:Error_Handler 1 +../Core/Src/main.c:70:5:main 3 +../Core/Src/main.c:161:6:SystemClock_Config 3 +../Core/Src/main.c:202:13:MX_I2C1_Init 2 +../Core/Src/main.c:236:13:MX_GPIO_Init 1 +../Core/Src/main.c:270:6:Error_Handler 1 diff --git a/TP6_ACCELEROMETRE/Debug/Core/Src/main.o b/TP6_ACCELEROMETRE/Debug/Core/Src/main.o index 400da3bb2e3a19b095bcd91b59d1286e5523018c..226aa652954a38858a9632b54b49f33758ce0ad2 100644 GIT binary patch delta 193048 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 LXt#q6=Au39 delta 191620 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 z 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 W&0e=KYZuJVwpf#qel0pmU;hW}>FPZI delta 113031 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 diff --git a/TP6_ACCELEROMETRE/Debug/TP6_ACCELEROMETRE.list b/TP6_ACCELEROMETRE/Debug/TP6_ACCELEROMETRE.list index b0e6d65..2a5c555 100644 --- a/TP6_ACCELEROMETRE/Debug/TP6_ACCELEROMETRE.list +++ b/TP6_ACCELEROMETRE/Debug/TP6_ACCELEROMETRE.list @@ -5,47 +5,47 @@ Sections: Idx Name Size VMA LMA File off Algn 0 .isr_vector 0000013c 08000000 08000000 00001000 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA - 1 .text 000028f4 0800013c 0800013c 0000113c 2**2 + 1 .text 00002960 0800013c 0800013c 0000113c 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .rodata 00000024 08002a30 08002a30 00003a30 2**2 + 2 .rodata 00000024 08002a9c 08002a9c 00003a9c 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA - 3 .ARM.extab 00000000 08002a54 08002a54 0000400c 2**0 + 3 .ARM.extab 00000000 08002ac0 08002ac0 0000400c 2**0 CONTENTS, READONLY - 4 .ARM 00000008 08002a54 08002a54 00003a54 2**2 + 4 .ARM 00000008 08002ac0 08002ac0 00003ac0 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA - 5 .preinit_array 00000000 08002a5c 08002a5c 0000400c 2**0 + 5 .preinit_array 00000000 08002ac8 08002ac8 0000400c 2**0 CONTENTS, ALLOC, LOAD, DATA - 6 .init_array 00000004 08002a5c 08002a5c 00003a5c 2**2 + 6 .init_array 00000004 08002ac8 08002ac8 00003ac8 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA - 7 .fini_array 00000004 08002a60 08002a60 00003a60 2**2 + 7 .fini_array 00000004 08002acc 08002acc 00003acc 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA - 8 .data 0000000c 20000000 08002a64 00004000 2**2 + 8 .data 0000000c 20000000 08002ad0 00004000 2**2 CONTENTS, ALLOC, LOAD, DATA - 9 .bss 00000074 2000000c 08002a70 0000400c 2**2 + 9 .bss 00000078 2000000c 08002adc 0000400c 2**2 ALLOC - 10 ._user_heap_stack 00000600 20000080 08002a70 00004080 2**0 + 10 ._user_heap_stack 00000604 20000084 08002adc 00004084 2**0 ALLOC 11 .ARM.attributes 00000029 00000000 00000000 0000400c 2**0 CONTENTS, READONLY - 12 .debug_info 00005e7d 00000000 00000000 00004035 2**0 + 12 .debug_info 00005eb0 00000000 00000000 00004035 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 13 .debug_abbrev 0000124c 00000000 00000000 00009eb2 2**0 + 13 .debug_abbrev 0000124d 00000000 00000000 00009ee5 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 14 .debug_aranges 000006b8 00000000 00000000 0000b100 2**3 + 14 .debug_aranges 000006b8 00000000 00000000 0000b138 2**3 CONTENTS, READONLY, DEBUGGING, OCTETS - 15 .debug_rnglists 00000527 00000000 00000000 0000b7b8 2**0 + 15 .debug_rnglists 00000527 00000000 00000000 0000b7f0 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 16 .debug_macro 00015119 00000000 00000000 0000bcdf 2**0 + 16 .debug_macro 00015119 00000000 00000000 0000bd17 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 17 .debug_line 000086cf 00000000 00000000 00020df8 2**0 + 17 .debug_line 000086f1 00000000 00000000 00020e30 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 18 .debug_str 00084ad6 00000000 00000000 000294c7 2**0 + 18 .debug_str 00084aee 00000000 00000000 00029521 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 19 .comment 00000043 00000000 00000000 000adf9d 2**0 + 19 .comment 00000043 00000000 00000000 000ae00f 2**0 CONTENTS, READONLY - 20 .debug_frame 00001b4c 00000000 00000000 000adfe0 2**2 + 20 .debug_frame 00001b4c 00000000 00000000 000ae054 2**2 CONTENTS, READONLY, DEBUGGING, OCTETS - 21 .debug_line_str 00000071 00000000 00000000 000afb2c 2**0 + 21 .debug_line_str 00000071 00000000 00000000 000afba0 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS Disassembly of section .text: @@ -64,7 +64,7 @@ Disassembly of section .text: 8000152: bd10 pop {r4, pc} 8000154: 2000000c .word 0x2000000c 8000158: 00000000 .word 0x00000000 - 800015c: 08002a18 .word 0x08002a18 + 800015c: 08002a84 .word 0x08002a84 08000160 : 8000160: b508 push {r3, lr} @@ -76,7 +76,7 @@ Disassembly of section .text: 800016e: bd08 pop {r3, pc} 8000170: 00000000 .word 0x00000000 8000174: 20000010 .word 0x20000010 - 8000178: 08002a18 .word 0x08002a18 + 8000178: 08002a84 .word 0x08002a84 0800017c <__aeabi_uldivmod>: 800017c: b953 cbnz r3, 8000194 <__aeabi_uldivmod+0x18> @@ -386,23 +386,23 @@ int main(void) /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); - 80004b6: f000 f9cc bl 8000852 + 80004b6: f000 fa02 bl 80008be /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); - 80004ba: f000 f849 bl 8000550 + 80004ba: f000 f87f bl 80005bc /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); - 80004be: f000 f8bb bl 8000638 + 80004be: f000 f8f1 bl 80006a4 MX_I2C1_Init(); - 80004c2: f000 f88b bl 80005dc + 80004c2: f000 f8c1 bl 8000648 /* WHO_AM_I uint8_t adress[1] = {0x0F}; @@ -432,44 +432,44 @@ int main(void) 80004de: 9300 str r3, [sp, #0] 80004e0: 2302 movs r3, #2 80004e2: 21d6 movs r1, #214 @ 0xd6 - 80004e4: 4818 ldr r0, [pc, #96] @ (8000548 ) - 80004e6: f000 fe15 bl 8001114 + 80004e4: 4830 ldr r0, [pc, #192] @ (80005a8 ) + 80004e6: f000 fe4b bl 8001180 HAL_Delay(100); 80004ea: 2064 movs r0, #100 @ 0x64 - 80004ec: f000 fa20 bl 8000930 - adresse[0] = 0x2D; - 80004f0: 232d movs r3, #45 @ 0x2d - 80004f2: 733b strb r3, [r7, #12] + 80004ec: f000 fa56 bl 800099c /* USER CODE BEGIN 3 */ /* WHO_AM_I HAL_I2C_Master_Transmit(&hi2c1, 0xD6, adress, 1, 100); HAL_I2C_Master_Receive(&hi2c1, 0xD6, rData, 1, 100); */ + adresse[0] = 0x2D; + 80004f0: 232d movs r3, #45 @ 0x2d + 80004f2: 733b strb r3, [r7, #12] HAL_I2C_Master_Transmit(&hi2c1, 0xD6, adresse, 1, 100); 80004f4: f107 020c add.w r2, r7, #12 80004f8: 2364 movs r3, #100 @ 0x64 80004fa: 9300 str r3, [sp, #0] 80004fc: 2301 movs r3, #1 80004fe: 21d6 movs r1, #214 @ 0xd6 - 8000500: 4811 ldr r0, [pc, #68] @ (8000548 ) - 8000502: f000 fe07 bl 8001114 + 8000500: 4829 ldr r0, [pc, #164] @ (80005a8 ) + 8000502: f000 fe3d bl 8001180 HAL_I2C_Master_Receive(&hi2c1, 0xD6, rData, 1, 100); 8000506: f107 0208 add.w r2, r7, #8 800050a: 2364 movs r3, #100 @ 0x64 800050c: 9300 str r3, [sp, #0] 800050e: 2301 movs r3, #1 8000510: 21d6 movs r1, #214 @ 0xd6 - 8000512: 480d ldr r0, [pc, #52] @ (8000548 ) - 8000514: f000 fefc bl 8001310 + 8000512: 4825 ldr r0, [pc, #148] @ (80005a8 ) + 8000514: f000 ff32 bl 800137c if((rData[0]>=0) && (rData[0]<=128)){ 8000518: 7a3b ldrb r3, [r7, #8] 800051a: 2b80 cmp r3, #128 @ 0x80 800051c: d806 bhi.n 800052c GPIOA -> ODR |= (1<<5); - 800051e: 4b0b ldr r3, [pc, #44] @ (800054c ) + 800051e: 4b23 ldr r3, [pc, #140] @ (80005ac ) 8000520: 695b ldr r3, [r3, #20] - 8000522: 4a0a ldr r2, [pc, #40] @ (800054c ) + 8000522: 4a22 ldr r2, [pc, #136] @ (80005ac ) 8000524: f043 0320 orr.w r3, r3, #32 8000528: 6153 str r3, [r2, #20] 800052a: e008 b.n 800053e @@ -478,6515 +478,6572 @@ int main(void) 800052e: 2b80 cmp r3, #128 @ 0x80 8000530: d905 bls.n 800053e GPIOA -> ODR &= ~(1<<5); - 8000532: 4b06 ldr r3, [pc, #24] @ (800054c ) + 8000532: 4b1e ldr r3, [pc, #120] @ (80005ac ) 8000534: 695b ldr r3, [r3, #20] - 8000536: 4a05 ldr r2, [pc, #20] @ (800054c ) + 8000536: 4a1d ldr r2, [pc, #116] @ (80005ac ) 8000538: f023 0320 bic.w r3, r3, #32 800053c: 6153 str r3, [r2, #20] } - HAL_Delay(100); - 800053e: 2064 movs r0, #100 @ 0x64 - 8000540: f000 f9f6 bl 8000930 - HAL_I2C_Master_Transmit(&hi2c1, 0xD6, adresse, 1, 100); - 8000544: e7d6 b.n 80004f4 - 8000546: bf00 nop - 8000548: 20000028 .word 0x20000028 - 800054c: 40020000 .word 0x40020000 + Z_VALUE = rData[0]; + 800053e: 7a3a ldrb r2, [r7, #8] + 8000540: 4b1b ldr r3, [pc, #108] @ (80005b0 ) + 8000542: 701a strb r2, [r3, #0] -08000550 : + adresse[0] = 0x29; + 8000544: 2329 movs r3, #41 @ 0x29 + 8000546: 733b strb r3, [r7, #12] + HAL_I2C_Master_Transmit(&hi2c1, 0xD6, adresse, 1, 100); + 8000548: f107 020c add.w r2, r7, #12 + 800054c: 2364 movs r3, #100 @ 0x64 + 800054e: 9300 str r3, [sp, #0] + 8000550: 2301 movs r3, #1 + 8000552: 21d6 movs r1, #214 @ 0xd6 + 8000554: 4814 ldr r0, [pc, #80] @ (80005a8 ) + 8000556: f000 fe13 bl 8001180 + HAL_I2C_Master_Receive(&hi2c1, 0xD6, rData, 1, 100); + 800055a: f107 0208 add.w r2, r7, #8 + 800055e: 2364 movs r3, #100 @ 0x64 + 8000560: 9300 str r3, [sp, #0] + 8000562: 2301 movs r3, #1 + 8000564: 21d6 movs r1, #214 @ 0xd6 + 8000566: 4810 ldr r0, [pc, #64] @ (80005a8 ) + 8000568: f000 ff08 bl 800137c + + X_VALUE = rData[0]; + 800056c: 7a3a ldrb r2, [r7, #8] + 800056e: 4b11 ldr r3, [pc, #68] @ (80005b4 ) + 8000570: 701a strb r2, [r3, #0] + + adresse[0] = 0x2B; + 8000572: 232b movs r3, #43 @ 0x2b + 8000574: 733b strb r3, [r7, #12] + HAL_I2C_Master_Transmit(&hi2c1, 0xD6, adresse, 1, 100); + 8000576: f107 020c add.w r2, r7, #12 + 800057a: 2364 movs r3, #100 @ 0x64 + 800057c: 9300 str r3, [sp, #0] + 800057e: 2301 movs r3, #1 + 8000580: 21d6 movs r1, #214 @ 0xd6 + 8000582: 4809 ldr r0, [pc, #36] @ (80005a8 ) + 8000584: f000 fdfc bl 8001180 + HAL_I2C_Master_Receive(&hi2c1, 0xD6, rData, 1, 100); + 8000588: f107 0208 add.w r2, r7, #8 + 800058c: 2364 movs r3, #100 @ 0x64 + 800058e: 9300 str r3, [sp, #0] + 8000590: 2301 movs r3, #1 + 8000592: 21d6 movs r1, #214 @ 0xd6 + 8000594: 4804 ldr r0, [pc, #16] @ (80005a8 ) + 8000596: f000 fef1 bl 800137c + + Y_VALUE = rData[0]; + 800059a: 7a3a ldrb r2, [r7, #8] + 800059c: 4b06 ldr r3, [pc, #24] @ (80005b8 ) + 800059e: 701a strb r2, [r3, #0] + + HAL_Delay(100); + 80005a0: 2064 movs r0, #100 @ 0x64 + 80005a2: f000 f9fb bl 800099c + adresse[0] = 0x2D; + 80005a6: e7a3 b.n 80004f0 + 80005a8: 20000028 .word 0x20000028 + 80005ac: 40020000 .word 0x40020000 + 80005b0: 2000007c .word 0x2000007c + 80005b4: 2000007e .word 0x2000007e + 80005b8: 2000007d .word 0x2000007d + +080005bc : /** * @brief System Clock Configuration * @retval None */ void SystemClock_Config(void) { - 8000550: b580 push {r7, lr} - 8000552: b092 sub sp, #72 @ 0x48 - 8000554: af00 add r7, sp, #0 + 80005bc: b580 push {r7, lr} + 80005be: b092 sub sp, #72 @ 0x48 + 80005c0: af00 add r7, sp, #0 RCC_OscInitTypeDef RCC_OscInitStruct = {0}; - 8000556: f107 0314 add.w r3, r7, #20 - 800055a: 2234 movs r2, #52 @ 0x34 - 800055c: 2100 movs r1, #0 - 800055e: 4618 mov r0, r3 - 8000560: f002 fa2e bl 80029c0 + 80005c2: f107 0314 add.w r3, r7, #20 + 80005c6: 2234 movs r2, #52 @ 0x34 + 80005c8: 2100 movs r1, #0 + 80005ca: 4618 mov r0, r3 + 80005cc: f002 fa2e bl 8002a2c RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; - 8000564: 463b mov r3, r7 - 8000566: 2200 movs r2, #0 - 8000568: 601a str r2, [r3, #0] - 800056a: 605a str r2, [r3, #4] - 800056c: 609a str r2, [r3, #8] - 800056e: 60da str r2, [r3, #12] - 8000570: 611a str r2, [r3, #16] + 80005d0: 463b mov r3, r7 + 80005d2: 2200 movs r2, #0 + 80005d4: 601a str r2, [r3, #0] + 80005d6: 605a str r2, [r3, #4] + 80005d8: 609a str r2, [r3, #8] + 80005da: 60da str r2, [r3, #12] + 80005dc: 611a str r2, [r3, #16] /** Configure the main internal regulator output voltage */ __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); - 8000572: 4b19 ldr r3, [pc, #100] @ (80005d8 ) - 8000574: 681b ldr r3, [r3, #0] - 8000576: f423 53c0 bic.w r3, r3, #6144 @ 0x1800 - 800057a: 4a17 ldr r2, [pc, #92] @ (80005d8 ) - 800057c: f443 6300 orr.w r3, r3, #2048 @ 0x800 - 8000580: 6013 str r3, [r2, #0] + 80005de: 4b19 ldr r3, [pc, #100] @ (8000644 ) + 80005e0: 681b ldr r3, [r3, #0] + 80005e2: f423 53c0 bic.w r3, r3, #6144 @ 0x1800 + 80005e6: 4a17 ldr r2, [pc, #92] @ (8000644 ) + 80005e8: f443 6300 orr.w r3, r3, #2048 @ 0x800 + 80005ec: 6013 str r3, [r2, #0] /** Initializes the RCC Oscillators according to the specified parameters * in the RCC_OscInitTypeDef structure. */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; - 8000582: 2302 movs r3, #2 - 8000584: 617b str r3, [r7, #20] + 80005ee: 2302 movs r3, #2 + 80005f0: 617b str r3, [r7, #20] RCC_OscInitStruct.HSIState = RCC_HSI_ON; - 8000586: 2301 movs r3, #1 - 8000588: 623b str r3, [r7, #32] + 80005f2: 2301 movs r3, #1 + 80005f4: 623b str r3, [r7, #32] RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; - 800058a: 2310 movs r3, #16 - 800058c: 627b str r3, [r7, #36] @ 0x24 + 80005f6: 2310 movs r3, #16 + 80005f8: 627b str r3, [r7, #36] @ 0x24 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; - 800058e: 2300 movs r3, #0 - 8000590: 63bb str r3, [r7, #56] @ 0x38 + 80005fa: 2300 movs r3, #0 + 80005fc: 63bb str r3, [r7, #56] @ 0x38 if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) - 8000592: f107 0314 add.w r3, r7, #20 - 8000596: 4618 mov r0, r3 - 8000598: f001 fc72 bl 8001e80 - 800059c: 4603 mov r3, r0 - 800059e: 2b00 cmp r3, #0 - 80005a0: d001 beq.n 80005a6 + 80005fe: f107 0314 add.w r3, r7, #20 + 8000602: 4618 mov r0, r3 + 8000604: f001 fc72 bl 8001eec + 8000608: 4603 mov r3, r0 + 800060a: 2b00 cmp r3, #0 + 800060c: d001 beq.n 8000612 { Error_Handler(); - 80005a2: f000 f887 bl 80006b4 + 800060e: f000 f887 bl 8000720 } /** Initializes the CPU, AHB and APB buses clocks */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK - 80005a6: 230f movs r3, #15 - 80005a8: 603b str r3, [r7, #0] + 8000612: 230f movs r3, #15 + 8000614: 603b str r3, [r7, #0] |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; - 80005aa: 2301 movs r3, #1 - 80005ac: 607b str r3, [r7, #4] + 8000616: 2301 movs r3, #1 + 8000618: 607b str r3, [r7, #4] RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; - 80005ae: 2300 movs r3, #0 - 80005b0: 60bb str r3, [r7, #8] + 800061a: 2300 movs r3, #0 + 800061c: 60bb str r3, [r7, #8] RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; - 80005b2: 2300 movs r3, #0 - 80005b4: 60fb str r3, [r7, #12] + 800061e: 2300 movs r3, #0 + 8000620: 60fb str r3, [r7, #12] RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; - 80005b6: 2300 movs r3, #0 - 80005b8: 613b str r3, [r7, #16] + 8000622: 2300 movs r3, #0 + 8000624: 613b str r3, [r7, #16] if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) - 80005ba: 463b mov r3, r7 - 80005bc: 2100 movs r1, #0 - 80005be: 4618 mov r0, r3 - 80005c0: f001 ff8e bl 80024e0 - 80005c4: 4603 mov r3, r0 - 80005c6: 2b00 cmp r3, #0 - 80005c8: d001 beq.n 80005ce + 8000626: 463b mov r3, r7 + 8000628: 2100 movs r1, #0 + 800062a: 4618 mov r0, r3 + 800062c: f001 ff8e bl 800254c + 8000630: 4603 mov r3, r0 + 8000632: 2b00 cmp r3, #0 + 8000634: d001 beq.n 800063a { Error_Handler(); - 80005ca: f000 f873 bl 80006b4 + 8000636: f000 f873 bl 8000720 } } - 80005ce: bf00 nop - 80005d0: 3748 adds r7, #72 @ 0x48 - 80005d2: 46bd mov sp, r7 - 80005d4: bd80 pop {r7, pc} - 80005d6: bf00 nop - 80005d8: 40007000 .word 0x40007000 + 800063a: bf00 nop + 800063c: 3748 adds r7, #72 @ 0x48 + 800063e: 46bd mov sp, r7 + 8000640: bd80 pop {r7, pc} + 8000642: bf00 nop + 8000644: 40007000 .word 0x40007000 -080005dc : +08000648 : * @brief I2C1 Initialization Function * @param None * @retval None */ static void MX_I2C1_Init(void) { - 80005dc: b580 push {r7, lr} - 80005de: af00 add r7, sp, #0 + 8000648: b580 push {r7, lr} + 800064a: af00 add r7, sp, #0 /* USER CODE END I2C1_Init 0 */ /* USER CODE BEGIN I2C1_Init 1 */ /* USER CODE END I2C1_Init 1 */ hi2c1.Instance = I2C1; - 80005e0: 4b12 ldr r3, [pc, #72] @ (800062c ) - 80005e2: 4a13 ldr r2, [pc, #76] @ (8000630 ) - 80005e4: 601a str r2, [r3, #0] + 800064c: 4b12 ldr r3, [pc, #72] @ (8000698 ) + 800064e: 4a13 ldr r2, [pc, #76] @ (800069c ) + 8000650: 601a str r2, [r3, #0] hi2c1.Init.ClockSpeed = 100000; - 80005e6: 4b11 ldr r3, [pc, #68] @ (800062c ) - 80005e8: 4a12 ldr r2, [pc, #72] @ (8000634 ) - 80005ea: 605a str r2, [r3, #4] + 8000652: 4b11 ldr r3, [pc, #68] @ (8000698 ) + 8000654: 4a12 ldr r2, [pc, #72] @ (80006a0 ) + 8000656: 605a str r2, [r3, #4] hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2; - 80005ec: 4b0f ldr r3, [pc, #60] @ (800062c ) - 80005ee: 2200 movs r2, #0 - 80005f0: 609a str r2, [r3, #8] + 8000658: 4b0f ldr r3, [pc, #60] @ (8000698 ) + 800065a: 2200 movs r2, #0 + 800065c: 609a str r2, [r3, #8] hi2c1.Init.OwnAddress1 = 0; - 80005f2: 4b0e ldr r3, [pc, #56] @ (800062c ) - 80005f4: 2200 movs r2, #0 - 80005f6: 60da str r2, [r3, #12] + 800065e: 4b0e ldr r3, [pc, #56] @ (8000698 ) + 8000660: 2200 movs r2, #0 + 8000662: 60da str r2, [r3, #12] hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; - 80005f8: 4b0c ldr r3, [pc, #48] @ (800062c ) - 80005fa: f44f 4280 mov.w r2, #16384 @ 0x4000 - 80005fe: 611a str r2, [r3, #16] + 8000664: 4b0c ldr r3, [pc, #48] @ (8000698 ) + 8000666: f44f 4280 mov.w r2, #16384 @ 0x4000 + 800066a: 611a str r2, [r3, #16] hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; - 8000600: 4b0a ldr r3, [pc, #40] @ (800062c ) - 8000602: 2200 movs r2, #0 - 8000604: 615a str r2, [r3, #20] + 800066c: 4b0a ldr r3, [pc, #40] @ (8000698 ) + 800066e: 2200 movs r2, #0 + 8000670: 615a str r2, [r3, #20] hi2c1.Init.OwnAddress2 = 0; - 8000606: 4b09 ldr r3, [pc, #36] @ (800062c ) - 8000608: 2200 movs r2, #0 - 800060a: 619a str r2, [r3, #24] + 8000672: 4b09 ldr r3, [pc, #36] @ (8000698 ) + 8000674: 2200 movs r2, #0 + 8000676: 619a str r2, [r3, #24] hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; - 800060c: 4b07 ldr r3, [pc, #28] @ (800062c ) - 800060e: 2200 movs r2, #0 - 8000610: 61da str r2, [r3, #28] + 8000678: 4b07 ldr r3, [pc, #28] @ (8000698 ) + 800067a: 2200 movs r2, #0 + 800067c: 61da str r2, [r3, #28] hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; - 8000612: 4b06 ldr r3, [pc, #24] @ (800062c ) - 8000614: 2200 movs r2, #0 - 8000616: 621a str r2, [r3, #32] + 800067e: 4b06 ldr r3, [pc, #24] @ (8000698 ) + 8000680: 2200 movs r2, #0 + 8000682: 621a str r2, [r3, #32] if (HAL_I2C_Init(&hi2c1) != HAL_OK) - 8000618: 4804 ldr r0, [pc, #16] @ (800062c ) - 800061a: f000 fc37 bl 8000e8c - 800061e: 4603 mov r3, r0 - 8000620: 2b00 cmp r3, #0 - 8000622: d001 beq.n 8000628 + 8000684: 4804 ldr r0, [pc, #16] @ (8000698 ) + 8000686: f000 fc37 bl 8000ef8 + 800068a: 4603 mov r3, r0 + 800068c: 2b00 cmp r3, #0 + 800068e: d001 beq.n 8000694 { Error_Handler(); - 8000624: f000 f846 bl 80006b4 + 8000690: f000 f846 bl 8000720 } /* USER CODE BEGIN I2C1_Init 2 */ /* USER CODE END I2C1_Init 2 */ } - 8000628: bf00 nop - 800062a: bd80 pop {r7, pc} - 800062c: 20000028 .word 0x20000028 - 8000630: 40005400 .word 0x40005400 - 8000634: 000186a0 .word 0x000186a0 + 8000694: bf00 nop + 8000696: bd80 pop {r7, pc} + 8000698: 20000028 .word 0x20000028 + 800069c: 40005400 .word 0x40005400 + 80006a0: 000186a0 .word 0x000186a0 -08000638 : +080006a4 : * @brief GPIO Initialization Function * @param None * @retval None */ static void MX_GPIO_Init(void) { - 8000638: b580 push {r7, lr} - 800063a: b088 sub sp, #32 - 800063c: af00 add r7, sp, #0 + 80006a4: b580 push {r7, lr} + 80006a6: b088 sub sp, #32 + 80006a8: af00 add r7, sp, #0 GPIO_InitTypeDef GPIO_InitStruct = {0}; - 800063e: f107 030c add.w r3, r7, #12 - 8000642: 2200 movs r2, #0 - 8000644: 601a str r2, [r3, #0] - 8000646: 605a str r2, [r3, #4] - 8000648: 609a str r2, [r3, #8] - 800064a: 60da str r2, [r3, #12] - 800064c: 611a str r2, [r3, #16] + 80006aa: f107 030c add.w r3, r7, #12 + 80006ae: 2200 movs r2, #0 + 80006b0: 601a str r2, [r3, #0] + 80006b2: 605a str r2, [r3, #4] + 80006b4: 609a str r2, [r3, #8] + 80006b6: 60da str r2, [r3, #12] + 80006b8: 611a str r2, [r3, #16] /* USER CODE BEGIN MX_GPIO_Init_1 */ /* USER CODE END MX_GPIO_Init_1 */ /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOA_CLK_ENABLE(); - 800064e: 4b17 ldr r3, [pc, #92] @ (80006ac ) - 8000650: 69db ldr r3, [r3, #28] - 8000652: 4a16 ldr r2, [pc, #88] @ (80006ac ) - 8000654: f043 0301 orr.w r3, r3, #1 - 8000658: 61d3 str r3, [r2, #28] - 800065a: 4b14 ldr r3, [pc, #80] @ (80006ac ) - 800065c: 69db ldr r3, [r3, #28] - 800065e: f003 0301 and.w r3, r3, #1 - 8000662: 60bb str r3, [r7, #8] - 8000664: 68bb ldr r3, [r7, #8] + 80006ba: 4b17 ldr r3, [pc, #92] @ (8000718 ) + 80006bc: 69db ldr r3, [r3, #28] + 80006be: 4a16 ldr r2, [pc, #88] @ (8000718 ) + 80006c0: f043 0301 orr.w r3, r3, #1 + 80006c4: 61d3 str r3, [r2, #28] + 80006c6: 4b14 ldr r3, [pc, #80] @ (8000718 ) + 80006c8: 69db ldr r3, [r3, #28] + 80006ca: f003 0301 and.w r3, r3, #1 + 80006ce: 60bb str r3, [r7, #8] + 80006d0: 68bb ldr r3, [r7, #8] __HAL_RCC_GPIOB_CLK_ENABLE(); - 8000666: 4b11 ldr r3, [pc, #68] @ (80006ac ) - 8000668: 69db ldr r3, [r3, #28] - 800066a: 4a10 ldr r2, [pc, #64] @ (80006ac ) - 800066c: f043 0302 orr.w r3, r3, #2 - 8000670: 61d3 str r3, [r2, #28] - 8000672: 4b0e ldr r3, [pc, #56] @ (80006ac ) - 8000674: 69db ldr r3, [r3, #28] - 8000676: f003 0302 and.w r3, r3, #2 - 800067a: 607b str r3, [r7, #4] - 800067c: 687b ldr r3, [r7, #4] + 80006d2: 4b11 ldr r3, [pc, #68] @ (8000718 ) + 80006d4: 69db ldr r3, [r3, #28] + 80006d6: 4a10 ldr r2, [pc, #64] @ (8000718 ) + 80006d8: f043 0302 orr.w r3, r3, #2 + 80006dc: 61d3 str r3, [r2, #28] + 80006de: 4b0e ldr r3, [pc, #56] @ (8000718 ) + 80006e0: 69db ldr r3, [r3, #28] + 80006e2: f003 0302 and.w r3, r3, #2 + 80006e6: 607b str r3, [r7, #4] + 80006e8: 687b ldr r3, [r7, #4] /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET); - 800067e: 2200 movs r2, #0 - 8000680: 2120 movs r1, #32 - 8000682: 480b ldr r0, [pc, #44] @ (80006b0 ) - 8000684: f000 fbea bl 8000e5c + 80006ea: 2200 movs r2, #0 + 80006ec: 2120 movs r1, #32 + 80006ee: 480b ldr r0, [pc, #44] @ (800071c ) + 80006f0: f000 fbea bl 8000ec8 /*Configure GPIO pin : PA5 */ GPIO_InitStruct.Pin = GPIO_PIN_5; - 8000688: 2320 movs r3, #32 - 800068a: 60fb str r3, [r7, #12] + 80006f4: 2320 movs r3, #32 + 80006f6: 60fb str r3, [r7, #12] GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 800068c: 2301 movs r3, #1 - 800068e: 613b str r3, [r7, #16] + 80006f8: 2301 movs r3, #1 + 80006fa: 613b str r3, [r7, #16] GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000690: 2300 movs r3, #0 - 8000692: 617b str r3, [r7, #20] + 80006fc: 2300 movs r3, #0 + 80006fe: 617b str r3, [r7, #20] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8000694: 2300 movs r3, #0 - 8000696: 61bb str r3, [r7, #24] + 8000700: 2300 movs r3, #0 + 8000702: 61bb str r3, [r7, #24] HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - 8000698: f107 030c add.w r3, r7, #12 - 800069c: 4619 mov r1, r3 - 800069e: 4804 ldr r0, [pc, #16] @ (80006b0 ) - 80006a0: f000 fa4c bl 8000b3c + 8000704: f107 030c add.w r3, r7, #12 + 8000708: 4619 mov r1, r3 + 800070a: 4804 ldr r0, [pc, #16] @ (800071c ) + 800070c: f000 fa4c bl 8000ba8 /* USER CODE BEGIN MX_GPIO_Init_2 */ /* USER CODE END MX_GPIO_Init_2 */ } - 80006a4: bf00 nop - 80006a6: 3720 adds r7, #32 - 80006a8: 46bd mov sp, r7 - 80006aa: bd80 pop {r7, pc} - 80006ac: 40023800 .word 0x40023800 - 80006b0: 40020000 .word 0x40020000 + 8000710: bf00 nop + 8000712: 3720 adds r7, #32 + 8000714: 46bd mov sp, r7 + 8000716: bd80 pop {r7, pc} + 8000718: 40023800 .word 0x40023800 + 800071c: 40020000 .word 0x40020000 -080006b4 : +08000720 : /** * @brief This function is executed in case of error occurrence. * @retval None */ void Error_Handler(void) { - 80006b4: b480 push {r7} - 80006b6: af00 add r7, sp, #0 + 8000720: b480 push {r7} + 8000722: 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"); - 80006b8: b672 cpsid i + 8000724: b672 cpsid i } - 80006ba: bf00 nop + 8000726: 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) - 80006bc: bf00 nop - 80006be: e7fd b.n 80006bc + 8000728: bf00 nop + 800072a: e7fd b.n 8000728 -080006c0 : +0800072c : /* USER CODE END 0 */ /** * Initializes the Global MSP. */ void HAL_MspInit(void) { - 80006c0: b480 push {r7} - 80006c2: b085 sub sp, #20 - 80006c4: af00 add r7, sp, #0 + 800072c: b480 push {r7} + 800072e: b085 sub sp, #20 + 8000730: af00 add r7, sp, #0 /* USER CODE BEGIN MspInit 0 */ /* USER CODE END MspInit 0 */ __HAL_RCC_COMP_CLK_ENABLE(); - 80006c6: 4b14 ldr r3, [pc, #80] @ (8000718 ) - 80006c8: 6a5b ldr r3, [r3, #36] @ 0x24 - 80006ca: 4a13 ldr r2, [pc, #76] @ (8000718 ) - 80006cc: f043 4300 orr.w r3, r3, #2147483648 @ 0x80000000 - 80006d0: 6253 str r3, [r2, #36] @ 0x24 - 80006d2: 4b11 ldr r3, [pc, #68] @ (8000718 ) - 80006d4: 6a5b ldr r3, [r3, #36] @ 0x24 - 80006d6: f003 4300 and.w r3, r3, #2147483648 @ 0x80000000 - 80006da: 60fb str r3, [r7, #12] - 80006dc: 68fb ldr r3, [r7, #12] + 8000732: 4b14 ldr r3, [pc, #80] @ (8000784 ) + 8000734: 6a5b ldr r3, [r3, #36] @ 0x24 + 8000736: 4a13 ldr r2, [pc, #76] @ (8000784 ) + 8000738: f043 4300 orr.w r3, r3, #2147483648 @ 0x80000000 + 800073c: 6253 str r3, [r2, #36] @ 0x24 + 800073e: 4b11 ldr r3, [pc, #68] @ (8000784 ) + 8000740: 6a5b ldr r3, [r3, #36] @ 0x24 + 8000742: f003 4300 and.w r3, r3, #2147483648 @ 0x80000000 + 8000746: 60fb str r3, [r7, #12] + 8000748: 68fb ldr r3, [r7, #12] __HAL_RCC_SYSCFG_CLK_ENABLE(); - 80006de: 4b0e ldr r3, [pc, #56] @ (8000718 ) - 80006e0: 6a1b ldr r3, [r3, #32] - 80006e2: 4a0d ldr r2, [pc, #52] @ (8000718 ) - 80006e4: f043 0301 orr.w r3, r3, #1 - 80006e8: 6213 str r3, [r2, #32] - 80006ea: 4b0b ldr r3, [pc, #44] @ (8000718 ) - 80006ec: 6a1b ldr r3, [r3, #32] - 80006ee: f003 0301 and.w r3, r3, #1 - 80006f2: 60bb str r3, [r7, #8] - 80006f4: 68bb ldr r3, [r7, #8] + 800074a: 4b0e ldr r3, [pc, #56] @ (8000784 ) + 800074c: 6a1b ldr r3, [r3, #32] + 800074e: 4a0d ldr r2, [pc, #52] @ (8000784 ) + 8000750: f043 0301 orr.w r3, r3, #1 + 8000754: 6213 str r3, [r2, #32] + 8000756: 4b0b ldr r3, [pc, #44] @ (8000784 ) + 8000758: 6a1b ldr r3, [r3, #32] + 800075a: f003 0301 and.w r3, r3, #1 + 800075e: 60bb str r3, [r7, #8] + 8000760: 68bb ldr r3, [r7, #8] __HAL_RCC_PWR_CLK_ENABLE(); - 80006f6: 4b08 ldr r3, [pc, #32] @ (8000718 ) - 80006f8: 6a5b ldr r3, [r3, #36] @ 0x24 - 80006fa: 4a07 ldr r2, [pc, #28] @ (8000718 ) - 80006fc: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 - 8000700: 6253 str r3, [r2, #36] @ 0x24 - 8000702: 4b05 ldr r3, [pc, #20] @ (8000718 ) - 8000704: 6a5b ldr r3, [r3, #36] @ 0x24 - 8000706: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 - 800070a: 607b str r3, [r7, #4] - 800070c: 687b ldr r3, [r7, #4] + 8000762: 4b08 ldr r3, [pc, #32] @ (8000784 ) + 8000764: 6a5b ldr r3, [r3, #36] @ 0x24 + 8000766: 4a07 ldr r2, [pc, #28] @ (8000784 ) + 8000768: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 + 800076c: 6253 str r3, [r2, #36] @ 0x24 + 800076e: 4b05 ldr r3, [pc, #20] @ (8000784 ) + 8000770: 6a5b ldr r3, [r3, #36] @ 0x24 + 8000772: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 8000776: 607b str r3, [r7, #4] + 8000778: 687b ldr r3, [r7, #4] /* System interrupt init*/ /* USER CODE BEGIN MspInit 1 */ /* USER CODE END MspInit 1 */ } - 800070e: bf00 nop - 8000710: 3714 adds r7, #20 - 8000712: 46bd mov sp, r7 - 8000714: bc80 pop {r7} - 8000716: 4770 bx lr - 8000718: 40023800 .word 0x40023800 + 800077a: bf00 nop + 800077c: 3714 adds r7, #20 + 800077e: 46bd mov sp, r7 + 8000780: bc80 pop {r7} + 8000782: 4770 bx lr + 8000784: 40023800 .word 0x40023800 -0800071c : +08000788 : * This function configures the hardware resources used in this example * @param hi2c: I2C handle pointer * @retval None */ void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c) { - 800071c: b580 push {r7, lr} - 800071e: b08a sub sp, #40 @ 0x28 - 8000720: af00 add r7, sp, #0 - 8000722: 6078 str r0, [r7, #4] + 8000788: b580 push {r7, lr} + 800078a: b08a sub sp, #40 @ 0x28 + 800078c: af00 add r7, sp, #0 + 800078e: 6078 str r0, [r7, #4] GPIO_InitTypeDef GPIO_InitStruct = {0}; - 8000724: f107 0314 add.w r3, r7, #20 - 8000728: 2200 movs r2, #0 - 800072a: 601a str r2, [r3, #0] - 800072c: 605a str r2, [r3, #4] - 800072e: 609a str r2, [r3, #8] - 8000730: 60da str r2, [r3, #12] - 8000732: 611a str r2, [r3, #16] + 8000790: f107 0314 add.w r3, r7, #20 + 8000794: 2200 movs r2, #0 + 8000796: 601a str r2, [r3, #0] + 8000798: 605a str r2, [r3, #4] + 800079a: 609a str r2, [r3, #8] + 800079c: 60da str r2, [r3, #12] + 800079e: 611a str r2, [r3, #16] if(hi2c->Instance==I2C1) - 8000734: 687b ldr r3, [r7, #4] - 8000736: 681b ldr r3, [r3, #0] - 8000738: 4a17 ldr r2, [pc, #92] @ (8000798 ) - 800073a: 4293 cmp r3, r2 - 800073c: d128 bne.n 8000790 + 80007a0: 687b ldr r3, [r7, #4] + 80007a2: 681b ldr r3, [r3, #0] + 80007a4: 4a17 ldr r2, [pc, #92] @ (8000804 ) + 80007a6: 4293 cmp r3, r2 + 80007a8: d128 bne.n 80007fc { /* USER CODE BEGIN I2C1_MspInit 0 */ /* USER CODE END I2C1_MspInit 0 */ __HAL_RCC_GPIOB_CLK_ENABLE(); - 800073e: 4b17 ldr r3, [pc, #92] @ (800079c ) - 8000740: 69db ldr r3, [r3, #28] - 8000742: 4a16 ldr r2, [pc, #88] @ (800079c ) - 8000744: f043 0302 orr.w r3, r3, #2 - 8000748: 61d3 str r3, [r2, #28] - 800074a: 4b14 ldr r3, [pc, #80] @ (800079c ) - 800074c: 69db ldr r3, [r3, #28] - 800074e: f003 0302 and.w r3, r3, #2 - 8000752: 613b str r3, [r7, #16] - 8000754: 693b ldr r3, [r7, #16] + 80007aa: 4b17 ldr r3, [pc, #92] @ (8000808 ) + 80007ac: 69db ldr r3, [r3, #28] + 80007ae: 4a16 ldr r2, [pc, #88] @ (8000808 ) + 80007b0: f043 0302 orr.w r3, r3, #2 + 80007b4: 61d3 str r3, [r2, #28] + 80007b6: 4b14 ldr r3, [pc, #80] @ (8000808 ) + 80007b8: 69db ldr r3, [r3, #28] + 80007ba: f003 0302 and.w r3, r3, #2 + 80007be: 613b str r3, [r7, #16] + 80007c0: 693b ldr r3, [r7, #16] /**I2C1 GPIO Configuration PB8 ------> I2C1_SCL PB9 ------> I2C1_SDA */ GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9; - 8000756: f44f 7340 mov.w r3, #768 @ 0x300 - 800075a: 617b str r3, [r7, #20] + 80007c2: f44f 7340 mov.w r3, #768 @ 0x300 + 80007c6: 617b str r3, [r7, #20] GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; - 800075c: 2312 movs r3, #18 - 800075e: 61bb str r3, [r7, #24] + 80007c8: 2312 movs r3, #18 + 80007ca: 61bb str r3, [r7, #24] GPIO_InitStruct.Pull = GPIO_NOPULL; - 8000760: 2300 movs r3, #0 - 8000762: 61fb str r3, [r7, #28] + 80007cc: 2300 movs r3, #0 + 80007ce: 61fb str r3, [r7, #28] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 8000764: 2303 movs r3, #3 - 8000766: 623b str r3, [r7, #32] + 80007d0: 2303 movs r3, #3 + 80007d2: 623b str r3, [r7, #32] GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; - 8000768: 2304 movs r3, #4 - 800076a: 627b str r3, [r7, #36] @ 0x24 + 80007d4: 2304 movs r3, #4 + 80007d6: 627b str r3, [r7, #36] @ 0x24 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - 800076c: f107 0314 add.w r3, r7, #20 - 8000770: 4619 mov r1, r3 - 8000772: 480b ldr r0, [pc, #44] @ (80007a0 ) - 8000774: f000 f9e2 bl 8000b3c + 80007d8: f107 0314 add.w r3, r7, #20 + 80007dc: 4619 mov r1, r3 + 80007de: 480b ldr r0, [pc, #44] @ (800080c ) + 80007e0: f000 f9e2 bl 8000ba8 /* Peripheral clock enable */ __HAL_RCC_I2C1_CLK_ENABLE(); - 8000778: 4b08 ldr r3, [pc, #32] @ (800079c ) - 800077a: 6a5b ldr r3, [r3, #36] @ 0x24 - 800077c: 4a07 ldr r2, [pc, #28] @ (800079c ) - 800077e: f443 1300 orr.w r3, r3, #2097152 @ 0x200000 - 8000782: 6253 str r3, [r2, #36] @ 0x24 - 8000784: 4b05 ldr r3, [pc, #20] @ (800079c ) - 8000786: 6a5b ldr r3, [r3, #36] @ 0x24 - 8000788: f403 1300 and.w r3, r3, #2097152 @ 0x200000 - 800078c: 60fb str r3, [r7, #12] - 800078e: 68fb ldr r3, [r7, #12] + 80007e4: 4b08 ldr r3, [pc, #32] @ (8000808 ) + 80007e6: 6a5b ldr r3, [r3, #36] @ 0x24 + 80007e8: 4a07 ldr r2, [pc, #28] @ (8000808 ) + 80007ea: f443 1300 orr.w r3, r3, #2097152 @ 0x200000 + 80007ee: 6253 str r3, [r2, #36] @ 0x24 + 80007f0: 4b05 ldr r3, [pc, #20] @ (8000808 ) + 80007f2: 6a5b ldr r3, [r3, #36] @ 0x24 + 80007f4: f403 1300 and.w r3, r3, #2097152 @ 0x200000 + 80007f8: 60fb str r3, [r7, #12] + 80007fa: 68fb ldr r3, [r7, #12] /* USER CODE END I2C1_MspInit 1 */ } } - 8000790: bf00 nop - 8000792: 3728 adds r7, #40 @ 0x28 - 8000794: 46bd mov sp, r7 - 8000796: bd80 pop {r7, pc} - 8000798: 40005400 .word 0x40005400 - 800079c: 40023800 .word 0x40023800 - 80007a0: 40020400 .word 0x40020400 + 80007fc: bf00 nop + 80007fe: 3728 adds r7, #40 @ 0x28 + 8000800: 46bd mov sp, r7 + 8000802: bd80 pop {r7, pc} + 8000804: 40005400 .word 0x40005400 + 8000808: 40023800 .word 0x40023800 + 800080c: 40020400 .word 0x40020400 -080007a4 : +08000810 : /******************************************************************************/ /** * @brief This function handles Non maskable interrupt. */ void NMI_Handler(void) { - 80007a4: b480 push {r7} - 80007a6: af00 add r7, sp, #0 + 8000810: b480 push {r7} + 8000812: 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) - 80007a8: bf00 nop - 80007aa: e7fd b.n 80007a8 + 8000814: bf00 nop + 8000816: e7fd b.n 8000814 -080007ac : +08000818 : /** * @brief This function handles Hard fault interrupt. */ void HardFault_Handler(void) { - 80007ac: b480 push {r7} - 80007ae: af00 add r7, sp, #0 + 8000818: b480 push {r7} + 800081a: af00 add r7, sp, #0 /* USER CODE BEGIN HardFault_IRQn 0 */ /* USER CODE END HardFault_IRQn 0 */ while (1) - 80007b0: bf00 nop - 80007b2: e7fd b.n 80007b0 + 800081c: bf00 nop + 800081e: e7fd b.n 800081c -080007b4 : +08000820 : /** * @brief This function handles Memory management fault. */ void MemManage_Handler(void) { - 80007b4: b480 push {r7} - 80007b6: af00 add r7, sp, #0 + 8000820: b480 push {r7} + 8000822: af00 add r7, sp, #0 /* USER CODE BEGIN MemoryManagement_IRQn 0 */ /* USER CODE END MemoryManagement_IRQn 0 */ while (1) - 80007b8: bf00 nop - 80007ba: e7fd b.n 80007b8 + 8000824: bf00 nop + 8000826: e7fd b.n 8000824 -080007bc : +08000828 : /** * @brief This function handles Pre-fetch fault, memory access fault. */ void BusFault_Handler(void) { - 80007bc: b480 push {r7} - 80007be: af00 add r7, sp, #0 + 8000828: b480 push {r7} + 800082a: af00 add r7, sp, #0 /* USER CODE BEGIN BusFault_IRQn 0 */ /* USER CODE END BusFault_IRQn 0 */ while (1) - 80007c0: bf00 nop - 80007c2: e7fd b.n 80007c0 + 800082c: bf00 nop + 800082e: e7fd b.n 800082c -080007c4 : +08000830 : /** * @brief This function handles Undefined instruction or illegal state. */ void UsageFault_Handler(void) { - 80007c4: b480 push {r7} - 80007c6: af00 add r7, sp, #0 + 8000830: b480 push {r7} + 8000832: af00 add r7, sp, #0 /* USER CODE BEGIN UsageFault_IRQn 0 */ /* USER CODE END UsageFault_IRQn 0 */ while (1) - 80007c8: bf00 nop - 80007ca: e7fd b.n 80007c8 + 8000834: bf00 nop + 8000836: e7fd b.n 8000834 -080007cc : +08000838 : /** * @brief This function handles System service call via SWI instruction. */ void SVC_Handler(void) { - 80007cc: b480 push {r7} - 80007ce: af00 add r7, sp, #0 + 8000838: b480 push {r7} + 800083a: af00 add r7, sp, #0 /* USER CODE END SVC_IRQn 0 */ /* USER CODE BEGIN SVC_IRQn 1 */ /* USER CODE END SVC_IRQn 1 */ } - 80007d0: bf00 nop - 80007d2: 46bd mov sp, r7 - 80007d4: bc80 pop {r7} - 80007d6: 4770 bx lr + 800083c: bf00 nop + 800083e: 46bd mov sp, r7 + 8000840: bc80 pop {r7} + 8000842: 4770 bx lr -080007d8 : +08000844 : /** * @brief This function handles Debug monitor. */ void DebugMon_Handler(void) { - 80007d8: b480 push {r7} - 80007da: af00 add r7, sp, #0 + 8000844: b480 push {r7} + 8000846: af00 add r7, sp, #0 /* USER CODE END DebugMonitor_IRQn 0 */ /* USER CODE BEGIN DebugMonitor_IRQn 1 */ /* USER CODE END DebugMonitor_IRQn 1 */ } - 80007dc: bf00 nop - 80007de: 46bd mov sp, r7 - 80007e0: bc80 pop {r7} - 80007e2: 4770 bx lr + 8000848: bf00 nop + 800084a: 46bd mov sp, r7 + 800084c: bc80 pop {r7} + 800084e: 4770 bx lr -080007e4 : +08000850 : /** * @brief This function handles Pendable request for system service. */ void PendSV_Handler(void) { - 80007e4: b480 push {r7} - 80007e6: af00 add r7, sp, #0 + 8000850: b480 push {r7} + 8000852: af00 add r7, sp, #0 /* USER CODE END PendSV_IRQn 0 */ /* USER CODE BEGIN PendSV_IRQn 1 */ /* USER CODE END PendSV_IRQn 1 */ } - 80007e8: bf00 nop - 80007ea: 46bd mov sp, r7 - 80007ec: bc80 pop {r7} - 80007ee: 4770 bx lr + 8000854: bf00 nop + 8000856: 46bd mov sp, r7 + 8000858: bc80 pop {r7} + 800085a: 4770 bx lr -080007f0 : +0800085c : /** * @brief This function handles System tick timer. */ void SysTick_Handler(void) { - 80007f0: b580 push {r7, lr} - 80007f2: af00 add r7, sp, #0 + 800085c: b580 push {r7, lr} + 800085e: af00 add r7, sp, #0 /* USER CODE BEGIN SysTick_IRQn 0 */ /* USER CODE END SysTick_IRQn 0 */ HAL_IncTick(); - 80007f4: f000 f880 bl 80008f8 + 8000860: f000 f880 bl 8000964 /* USER CODE BEGIN SysTick_IRQn 1 */ /* USER CODE END SysTick_IRQn 1 */ } - 80007f8: bf00 nop - 80007fa: bd80 pop {r7, pc} + 8000864: bf00 nop + 8000866: bd80 pop {r7, pc} -080007fc : +08000868 : * SystemCoreClock variable. * @param None * @retval None */ void SystemInit (void) { - 80007fc: b480 push {r7} - 80007fe: af00 add r7, sp, #0 + 8000868: b480 push {r7} + 800086a: 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 */ } - 8000800: bf00 nop - 8000802: 46bd mov sp, r7 - 8000804: bc80 pop {r7} - 8000806: 4770 bx lr + 800086c: bf00 nop + 800086e: 46bd mov sp, r7 + 8000870: bc80 pop {r7} + 8000872: 4770 bx lr -08000808 : +08000874 : .type Reset_Handler, %function Reset_Handler: /* Call the clock system initialization function.*/ bl SystemInit - 8000808: f7ff fff8 bl 80007fc + 8000874: f7ff fff8 bl 8000868 /* Copy the data segment initializers from flash to SRAM */ ldr r0, =_sdata - 800080c: 480b ldr r0, [pc, #44] @ (800083c ) + 8000878: 480b ldr r0, [pc, #44] @ (80008a8 ) ldr r1, =_edata - 800080e: 490c ldr r1, [pc, #48] @ (8000840 ) + 800087a: 490c ldr r1, [pc, #48] @ (80008ac ) ldr r2, =_sidata - 8000810: 4a0c ldr r2, [pc, #48] @ (8000844 ) + 800087c: 4a0c ldr r2, [pc, #48] @ (80008b0 ) movs r3, #0 - 8000812: 2300 movs r3, #0 + 800087e: 2300 movs r3, #0 b LoopCopyDataInit - 8000814: e002 b.n 800081c + 8000880: e002 b.n 8000888 -08000816 : +08000882 : CopyDataInit: ldr r4, [r2, r3] - 8000816: 58d4 ldr r4, [r2, r3] + 8000882: 58d4 ldr r4, [r2, r3] str r4, [r0, r3] - 8000818: 50c4 str r4, [r0, r3] + 8000884: 50c4 str r4, [r0, r3] adds r3, r3, #4 - 800081a: 3304 adds r3, #4 + 8000886: 3304 adds r3, #4 -0800081c : +08000888 : LoopCopyDataInit: adds r4, r0, r3 - 800081c: 18c4 adds r4, r0, r3 + 8000888: 18c4 adds r4, r0, r3 cmp r4, r1 - 800081e: 428c cmp r4, r1 + 800088a: 428c cmp r4, r1 bcc CopyDataInit - 8000820: d3f9 bcc.n 8000816 + 800088c: d3f9 bcc.n 8000882 /* Zero fill the bss segment. */ ldr r2, =_sbss - 8000822: 4a09 ldr r2, [pc, #36] @ (8000848 ) + 800088e: 4a09 ldr r2, [pc, #36] @ (80008b4 ) ldr r4, =_ebss - 8000824: 4c09 ldr r4, [pc, #36] @ (800084c ) + 8000890: 4c09 ldr r4, [pc, #36] @ (80008b8 ) movs r3, #0 - 8000826: 2300 movs r3, #0 + 8000892: 2300 movs r3, #0 b LoopFillZerobss - 8000828: e001 b.n 800082e + 8000894: e001 b.n 800089a -0800082a : +08000896 : FillZerobss: str r3, [r2] - 800082a: 6013 str r3, [r2, #0] + 8000896: 6013 str r3, [r2, #0] adds r2, r2, #4 - 800082c: 3204 adds r2, #4 + 8000898: 3204 adds r2, #4 -0800082e : +0800089a : LoopFillZerobss: cmp r2, r4 - 800082e: 42a2 cmp r2, r4 + 800089a: 42a2 cmp r2, r4 bcc FillZerobss - 8000830: d3fb bcc.n 800082a + 800089c: d3fb bcc.n 8000896 /* Call static constructors */ bl __libc_init_array - 8000832: f002 f8cd bl 80029d0 <__libc_init_array> + 800089e: f002 f8cd bl 8002a3c <__libc_init_array> /* Call the application's entry point.*/ bl main - 8000836: f7ff fe3b bl 80004b0
+ 80008a2: f7ff fe05 bl 80004b0
bx lr - 800083a: 4770 bx lr + 80008a6: 4770 bx lr ldr r0, =_sdata - 800083c: 20000000 .word 0x20000000 + 80008a8: 20000000 .word 0x20000000 ldr r1, =_edata - 8000840: 2000000c .word 0x2000000c + 80008ac: 2000000c .word 0x2000000c ldr r2, =_sidata - 8000844: 08002a64 .word 0x08002a64 + 80008b0: 08002ad0 .word 0x08002ad0 ldr r2, =_sbss - 8000848: 2000000c .word 0x2000000c + 80008b4: 2000000c .word 0x2000000c ldr r4, =_ebss - 800084c: 20000080 .word 0x20000080 + 80008b8: 20000084 .word 0x20000084 -08000850 : +080008bc : * @retval : None */ .section .text.Default_Handler,"ax",%progbits Default_Handler: Infinite_Loop: b Infinite_Loop - 8000850: e7fe b.n 8000850 + 80008bc: e7fe b.n 80008bc -08000852 : +080008be : * 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) { - 8000852: b580 push {r7, lr} - 8000854: b082 sub sp, #8 - 8000856: af00 add r7, sp, #0 + 80008be: b580 push {r7, lr} + 80008c0: b082 sub sp, #8 + 80008c2: af00 add r7, sp, #0 HAL_StatusTypeDef status = HAL_OK; - 8000858: 2300 movs r3, #0 - 800085a: 71fb strb r3, [r7, #7] + 80008c4: 2300 movs r3, #0 + 80008c6: 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); - 800085c: 2003 movs r0, #3 - 800085e: f000 f939 bl 8000ad4 + 80008c8: 2003 movs r0, #3 + 80008ca: f000 f939 bl 8000b40 /* Use systick as time base source and configure 1ms tick (default clock after Reset is MSI) */ if (HAL_InitTick(TICK_INT_PRIORITY) != HAL_OK) - 8000862: 200f movs r0, #15 - 8000864: f000 f80e bl 8000884 - 8000868: 4603 mov r3, r0 - 800086a: 2b00 cmp r3, #0 - 800086c: d002 beq.n 8000874 + 80008ce: 200f movs r0, #15 + 80008d0: f000 f80e bl 80008f0 + 80008d4: 4603 mov r3, r0 + 80008d6: 2b00 cmp r3, #0 + 80008d8: d002 beq.n 80008e0 { status = HAL_ERROR; - 800086e: 2301 movs r3, #1 - 8000870: 71fb strb r3, [r7, #7] - 8000872: e001 b.n 8000878 + 80008da: 2301 movs r3, #1 + 80008dc: 71fb strb r3, [r7, #7] + 80008de: e001 b.n 80008e4 } else { /* Init the low level hardware */ HAL_MspInit(); - 8000874: f7ff ff24 bl 80006c0 + 80008e0: f7ff ff24 bl 800072c } /* Return function status */ return status; - 8000878: 79fb ldrb r3, [r7, #7] + 80008e4: 79fb ldrb r3, [r7, #7] } - 800087a: 4618 mov r0, r3 - 800087c: 3708 adds r7, #8 - 800087e: 46bd mov sp, r7 - 8000880: bd80 pop {r7, pc} + 80008e6: 4618 mov r0, r3 + 80008e8: 3708 adds r7, #8 + 80008ea: 46bd mov sp, r7 + 80008ec: bd80 pop {r7, pc} ... -08000884 : +080008f0 : * implementation in user file. * @param TickPriority Tick interrupt priority. * @retval HAL status */ __weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) { - 8000884: b580 push {r7, lr} - 8000886: b084 sub sp, #16 - 8000888: af00 add r7, sp, #0 - 800088a: 6078 str r0, [r7, #4] + 80008f0: b580 push {r7, lr} + 80008f2: b084 sub sp, #16 + 80008f4: af00 add r7, sp, #0 + 80008f6: 6078 str r0, [r7, #4] HAL_StatusTypeDef status = HAL_OK; - 800088c: 2300 movs r3, #0 - 800088e: 73fb strb r3, [r7, #15] + 80008f8: 2300 movs r3, #0 + 80008fa: 73fb strb r3, [r7, #15] if (uwTickFreq != 0U) - 8000890: 4b16 ldr r3, [pc, #88] @ (80008ec ) - 8000892: 681b ldr r3, [r3, #0] - 8000894: 2b00 cmp r3, #0 - 8000896: d022 beq.n 80008de + 80008fc: 4b16 ldr r3, [pc, #88] @ (8000958 ) + 80008fe: 681b ldr r3, [r3, #0] + 8000900: 2b00 cmp r3, #0 + 8000902: d022 beq.n 800094a { /*Configure the SysTick to have interrupt in 1ms time basis*/ if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) == 0U) - 8000898: 4b15 ldr r3, [pc, #84] @ (80008f0 ) - 800089a: 681a ldr r2, [r3, #0] - 800089c: 4b13 ldr r3, [pc, #76] @ (80008ec ) - 800089e: 681b ldr r3, [r3, #0] - 80008a0: f44f 717a mov.w r1, #1000 @ 0x3e8 - 80008a4: fbb1 f3f3 udiv r3, r1, r3 - 80008a8: fbb2 f3f3 udiv r3, r2, r3 - 80008ac: 4618 mov r0, r3 - 80008ae: f000 f938 bl 8000b22 - 80008b2: 4603 mov r3, r0 - 80008b4: 2b00 cmp r3, #0 - 80008b6: d10f bne.n 80008d8 + 8000904: 4b15 ldr r3, [pc, #84] @ (800095c ) + 8000906: 681a ldr r2, [r3, #0] + 8000908: 4b13 ldr r3, [pc, #76] @ (8000958 ) + 800090a: 681b ldr r3, [r3, #0] + 800090c: f44f 717a mov.w r1, #1000 @ 0x3e8 + 8000910: fbb1 f3f3 udiv r3, r1, r3 + 8000914: fbb2 f3f3 udiv r3, r2, r3 + 8000918: 4618 mov r0, r3 + 800091a: f000 f938 bl 8000b8e + 800091e: 4603 mov r3, r0 + 8000920: 2b00 cmp r3, #0 + 8000922: d10f bne.n 8000944 { /* Configure the SysTick IRQ priority */ if (TickPriority < (1UL << __NVIC_PRIO_BITS)) - 80008b8: 687b ldr r3, [r7, #4] - 80008ba: 2b0f cmp r3, #15 - 80008bc: d809 bhi.n 80008d2 + 8000924: 687b ldr r3, [r7, #4] + 8000926: 2b0f cmp r3, #15 + 8000928: d809 bhi.n 800093e { HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U); - 80008be: 2200 movs r2, #0 - 80008c0: 6879 ldr r1, [r7, #4] - 80008c2: f04f 30ff mov.w r0, #4294967295 @ 0xffffffff - 80008c6: f000 f910 bl 8000aea + 800092a: 2200 movs r2, #0 + 800092c: 6879 ldr r1, [r7, #4] + 800092e: f04f 30ff mov.w r0, #4294967295 @ 0xffffffff + 8000932: f000 f910 bl 8000b56 uwTickPrio = TickPriority; - 80008ca: 4a0a ldr r2, [pc, #40] @ (80008f4 ) - 80008cc: 687b ldr r3, [r7, #4] - 80008ce: 6013 str r3, [r2, #0] - 80008d0: e007 b.n 80008e2 + 8000936: 4a0a ldr r2, [pc, #40] @ (8000960 ) + 8000938: 687b ldr r3, [r7, #4] + 800093a: 6013 str r3, [r2, #0] + 800093c: e007 b.n 800094e } else { status = HAL_ERROR; - 80008d2: 2301 movs r3, #1 - 80008d4: 73fb strb r3, [r7, #15] - 80008d6: e004 b.n 80008e2 + 800093e: 2301 movs r3, #1 + 8000940: 73fb strb r3, [r7, #15] + 8000942: e004 b.n 800094e } } else { status = HAL_ERROR; - 80008d8: 2301 movs r3, #1 - 80008da: 73fb strb r3, [r7, #15] - 80008dc: e001 b.n 80008e2 + 8000944: 2301 movs r3, #1 + 8000946: 73fb strb r3, [r7, #15] + 8000948: e001 b.n 800094e } } else { status = HAL_ERROR; - 80008de: 2301 movs r3, #1 - 80008e0: 73fb strb r3, [r7, #15] + 800094a: 2301 movs r3, #1 + 800094c: 73fb strb r3, [r7, #15] } /* Return function status */ return status; - 80008e2: 7bfb ldrb r3, [r7, #15] + 800094e: 7bfb ldrb r3, [r7, #15] } - 80008e4: 4618 mov r0, r3 - 80008e6: 3710 adds r7, #16 - 80008e8: 46bd mov sp, r7 - 80008ea: bd80 pop {r7, pc} - 80008ec: 20000008 .word 0x20000008 - 80008f0: 20000000 .word 0x20000000 - 80008f4: 20000004 .word 0x20000004 + 8000950: 4618 mov r0, r3 + 8000952: 3710 adds r7, #16 + 8000954: 46bd mov sp, r7 + 8000956: bd80 pop {r7, pc} + 8000958: 20000008 .word 0x20000008 + 800095c: 20000000 .word 0x20000000 + 8000960: 20000004 .word 0x20000004 -080008f8 : +08000964 : * @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) { - 80008f8: b480 push {r7} - 80008fa: af00 add r7, sp, #0 + 8000964: b480 push {r7} + 8000966: af00 add r7, sp, #0 uwTick += uwTickFreq; - 80008fc: 4b05 ldr r3, [pc, #20] @ (8000914 ) - 80008fe: 681a ldr r2, [r3, #0] - 8000900: 4b05 ldr r3, [pc, #20] @ (8000918 ) - 8000902: 681b ldr r3, [r3, #0] - 8000904: 4413 add r3, r2 - 8000906: 4a03 ldr r2, [pc, #12] @ (8000914 ) - 8000908: 6013 str r3, [r2, #0] + 8000968: 4b05 ldr r3, [pc, #20] @ (8000980 ) + 800096a: 681a ldr r2, [r3, #0] + 800096c: 4b05 ldr r3, [pc, #20] @ (8000984 ) + 800096e: 681b ldr r3, [r3, #0] + 8000970: 4413 add r3, r2 + 8000972: 4a03 ldr r2, [pc, #12] @ (8000980 ) + 8000974: 6013 str r3, [r2, #0] } - 800090a: bf00 nop - 800090c: 46bd mov sp, r7 - 800090e: bc80 pop {r7} - 8000910: 4770 bx lr - 8000912: bf00 nop - 8000914: 2000007c .word 0x2000007c - 8000918: 20000008 .word 0x20000008 + 8000976: bf00 nop + 8000978: 46bd mov sp, r7 + 800097a: bc80 pop {r7} + 800097c: 4770 bx lr + 800097e: bf00 nop + 8000980: 20000080 .word 0x20000080 + 8000984: 20000008 .word 0x20000008 -0800091c : +08000988 : * @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) { - 800091c: b480 push {r7} - 800091e: af00 add r7, sp, #0 + 8000988: b480 push {r7} + 800098a: af00 add r7, sp, #0 return uwTick; - 8000920: 4b02 ldr r3, [pc, #8] @ (800092c ) - 8000922: 681b ldr r3, [r3, #0] + 800098c: 4b02 ldr r3, [pc, #8] @ (8000998 ) + 800098e: 681b ldr r3, [r3, #0] } - 8000924: 4618 mov r0, r3 - 8000926: 46bd mov sp, r7 - 8000928: bc80 pop {r7} - 800092a: 4770 bx lr - 800092c: 2000007c .word 0x2000007c + 8000990: 4618 mov r0, r3 + 8000992: 46bd mov sp, r7 + 8000994: bc80 pop {r7} + 8000996: 4770 bx lr + 8000998: 20000080 .word 0x20000080 -08000930 : +0800099c : * implementations in user file. * @param Delay specifies the delay time length, in milliseconds. * @retval None */ __weak void HAL_Delay(uint32_t Delay) { - 8000930: b580 push {r7, lr} - 8000932: b084 sub sp, #16 - 8000934: af00 add r7, sp, #0 - 8000936: 6078 str r0, [r7, #4] + 800099c: b580 push {r7, lr} + 800099e: b084 sub sp, #16 + 80009a0: af00 add r7, sp, #0 + 80009a2: 6078 str r0, [r7, #4] uint32_t tickstart = HAL_GetTick(); - 8000938: f7ff fff0 bl 800091c - 800093c: 60b8 str r0, [r7, #8] + 80009a4: f7ff fff0 bl 8000988 + 80009a8: 60b8 str r0, [r7, #8] uint32_t wait = Delay; - 800093e: 687b ldr r3, [r7, #4] - 8000940: 60fb str r3, [r7, #12] + 80009aa: 687b ldr r3, [r7, #4] + 80009ac: 60fb str r3, [r7, #12] /* Add a period to guaranty minimum wait */ if (wait < HAL_MAX_DELAY) - 8000942: 68fb ldr r3, [r7, #12] - 8000944: f1b3 3fff cmp.w r3, #4294967295 @ 0xffffffff - 8000948: d004 beq.n 8000954 + 80009ae: 68fb ldr r3, [r7, #12] + 80009b0: f1b3 3fff cmp.w r3, #4294967295 @ 0xffffffff + 80009b4: d004 beq.n 80009c0 { wait += (uint32_t)(uwTickFreq); - 800094a: 4b09 ldr r3, [pc, #36] @ (8000970 ) - 800094c: 681b ldr r3, [r3, #0] - 800094e: 68fa ldr r2, [r7, #12] - 8000950: 4413 add r3, r2 - 8000952: 60fb str r3, [r7, #12] + 80009b6: 4b09 ldr r3, [pc, #36] @ (80009dc ) + 80009b8: 681b ldr r3, [r3, #0] + 80009ba: 68fa ldr r2, [r7, #12] + 80009bc: 4413 add r3, r2 + 80009be: 60fb str r3, [r7, #12] } while((HAL_GetTick() - tickstart) < wait) - 8000954: bf00 nop - 8000956: f7ff ffe1 bl 800091c - 800095a: 4602 mov r2, r0 - 800095c: 68bb ldr r3, [r7, #8] - 800095e: 1ad3 subs r3, r2, r3 - 8000960: 68fa ldr r2, [r7, #12] - 8000962: 429a cmp r2, r3 - 8000964: d8f7 bhi.n 8000956 + 80009c0: bf00 nop + 80009c2: f7ff ffe1 bl 8000988 + 80009c6: 4602 mov r2, r0 + 80009c8: 68bb ldr r3, [r7, #8] + 80009ca: 1ad3 subs r3, r2, r3 + 80009cc: 68fa ldr r2, [r7, #12] + 80009ce: 429a cmp r2, r3 + 80009d0: d8f7 bhi.n 80009c2 { } } - 8000966: bf00 nop - 8000968: bf00 nop - 800096a: 3710 adds r7, #16 - 800096c: 46bd mov sp, r7 - 800096e: bd80 pop {r7, pc} - 8000970: 20000008 .word 0x20000008 + 80009d2: bf00 nop + 80009d4: bf00 nop + 80009d6: 3710 adds r7, #16 + 80009d8: 46bd mov sp, r7 + 80009da: bd80 pop {r7, pc} + 80009dc: 20000008 .word 0x20000008 -08000974 <__NVIC_SetPriorityGrouping>: +080009e0 <__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) { - 8000974: b480 push {r7} - 8000976: b085 sub sp, #20 - 8000978: af00 add r7, sp, #0 - 800097a: 6078 str r0, [r7, #4] + 80009e0: b480 push {r7} + 80009e2: b085 sub sp, #20 + 80009e4: af00 add r7, sp, #0 + 80009e6: 6078 str r0, [r7, #4] uint32_t reg_value; uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - 800097c: 687b ldr r3, [r7, #4] - 800097e: f003 0307 and.w r3, r3, #7 - 8000982: 60fb str r3, [r7, #12] + 80009e8: 687b ldr r3, [r7, #4] + 80009ea: f003 0307 and.w r3, r3, #7 + 80009ee: 60fb str r3, [r7, #12] reg_value = SCB->AIRCR; /* read old register configuration */ - 8000984: 4b0c ldr r3, [pc, #48] @ (80009b8 <__NVIC_SetPriorityGrouping+0x44>) - 8000986: 68db ldr r3, [r3, #12] - 8000988: 60bb str r3, [r7, #8] + 80009f0: 4b0c ldr r3, [pc, #48] @ (8000a24 <__NVIC_SetPriorityGrouping+0x44>) + 80009f2: 68db ldr r3, [r3, #12] + 80009f4: 60bb str r3, [r7, #8] reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - 800098a: 68ba ldr r2, [r7, #8] - 800098c: f64f 03ff movw r3, #63743 @ 0xf8ff - 8000990: 4013 ands r3, r2 - 8000992: 60bb str r3, [r7, #8] + 80009f6: 68ba ldr r2, [r7, #8] + 80009f8: f64f 03ff movw r3, #63743 @ 0xf8ff + 80009fc: 4013 ands r3, r2 + 80009fe: 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 */ - 8000994: 68fb ldr r3, [r7, #12] - 8000996: 021a lsls r2, r3, #8 + 8000a00: 68fb ldr r3, [r7, #12] + 8000a02: 021a lsls r2, r3, #8 ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - 8000998: 68bb ldr r3, [r7, #8] - 800099a: 4313 orrs r3, r2 + 8000a04: 68bb ldr r3, [r7, #8] + 8000a06: 4313 orrs r3, r2 reg_value = (reg_value | - 800099c: f043 63bf orr.w r3, r3, #100139008 @ 0x5f80000 - 80009a0: f443 3300 orr.w r3, r3, #131072 @ 0x20000 - 80009a4: 60bb str r3, [r7, #8] + 8000a08: f043 63bf orr.w r3, r3, #100139008 @ 0x5f80000 + 8000a0c: f443 3300 orr.w r3, r3, #131072 @ 0x20000 + 8000a10: 60bb str r3, [r7, #8] SCB->AIRCR = reg_value; - 80009a6: 4a04 ldr r2, [pc, #16] @ (80009b8 <__NVIC_SetPriorityGrouping+0x44>) - 80009a8: 68bb ldr r3, [r7, #8] - 80009aa: 60d3 str r3, [r2, #12] + 8000a12: 4a04 ldr r2, [pc, #16] @ (8000a24 <__NVIC_SetPriorityGrouping+0x44>) + 8000a14: 68bb ldr r3, [r7, #8] + 8000a16: 60d3 str r3, [r2, #12] } - 80009ac: bf00 nop - 80009ae: 3714 adds r7, #20 - 80009b0: 46bd mov sp, r7 - 80009b2: bc80 pop {r7} - 80009b4: 4770 bx lr - 80009b6: bf00 nop - 80009b8: e000ed00 .word 0xe000ed00 + 8000a18: bf00 nop + 8000a1a: 3714 adds r7, #20 + 8000a1c: 46bd mov sp, r7 + 8000a1e: bc80 pop {r7} + 8000a20: 4770 bx lr + 8000a22: bf00 nop + 8000a24: e000ed00 .word 0xe000ed00 -080009bc <__NVIC_GetPriorityGrouping>: +08000a28 <__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) { - 80009bc: b480 push {r7} - 80009be: af00 add r7, sp, #0 + 8000a28: b480 push {r7} + 8000a2a: af00 add r7, sp, #0 return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); - 80009c0: 4b04 ldr r3, [pc, #16] @ (80009d4 <__NVIC_GetPriorityGrouping+0x18>) - 80009c2: 68db ldr r3, [r3, #12] - 80009c4: 0a1b lsrs r3, r3, #8 - 80009c6: f003 0307 and.w r3, r3, #7 + 8000a2c: 4b04 ldr r3, [pc, #16] @ (8000a40 <__NVIC_GetPriorityGrouping+0x18>) + 8000a2e: 68db ldr r3, [r3, #12] + 8000a30: 0a1b lsrs r3, r3, #8 + 8000a32: f003 0307 and.w r3, r3, #7 } - 80009ca: 4618 mov r0, r3 - 80009cc: 46bd mov sp, r7 - 80009ce: bc80 pop {r7} - 80009d0: 4770 bx lr - 80009d2: bf00 nop - 80009d4: e000ed00 .word 0xe000ed00 + 8000a36: 4618 mov r0, r3 + 8000a38: 46bd mov sp, r7 + 8000a3a: bc80 pop {r7} + 8000a3c: 4770 bx lr + 8000a3e: bf00 nop + 8000a40: e000ed00 .word 0xe000ed00 -080009d8 <__NVIC_SetPriority>: +08000a44 <__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) { - 80009d8: b480 push {r7} - 80009da: b083 sub sp, #12 - 80009dc: af00 add r7, sp, #0 - 80009de: 4603 mov r3, r0 - 80009e0: 6039 str r1, [r7, #0] - 80009e2: 71fb strb r3, [r7, #7] + 8000a44: b480 push {r7} + 8000a46: b083 sub sp, #12 + 8000a48: af00 add r7, sp, #0 + 8000a4a: 4603 mov r3, r0 + 8000a4c: 6039 str r1, [r7, #0] + 8000a4e: 71fb strb r3, [r7, #7] if ((int32_t)(IRQn) >= 0) - 80009e4: f997 3007 ldrsb.w r3, [r7, #7] - 80009e8: 2b00 cmp r3, #0 - 80009ea: db0a blt.n 8000a02 <__NVIC_SetPriority+0x2a> + 8000a50: f997 3007 ldrsb.w r3, [r7, #7] + 8000a54: 2b00 cmp r3, #0 + 8000a56: db0a blt.n 8000a6e <__NVIC_SetPriority+0x2a> { NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - 80009ec: 683b ldr r3, [r7, #0] - 80009ee: b2da uxtb r2, r3 - 80009f0: 490c ldr r1, [pc, #48] @ (8000a24 <__NVIC_SetPriority+0x4c>) - 80009f2: f997 3007 ldrsb.w r3, [r7, #7] - 80009f6: 0112 lsls r2, r2, #4 - 80009f8: b2d2 uxtb r2, r2 - 80009fa: 440b add r3, r1 - 80009fc: f883 2300 strb.w r2, [r3, #768] @ 0x300 + 8000a58: 683b ldr r3, [r7, #0] + 8000a5a: b2da uxtb r2, r3 + 8000a5c: 490c ldr r1, [pc, #48] @ (8000a90 <__NVIC_SetPriority+0x4c>) + 8000a5e: f997 3007 ldrsb.w r3, [r7, #7] + 8000a62: 0112 lsls r2, r2, #4 + 8000a64: b2d2 uxtb r2, r2 + 8000a66: 440b add r3, r1 + 8000a68: 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); } } - 8000a00: e00a b.n 8000a18 <__NVIC_SetPriority+0x40> + 8000a6c: e00a b.n 8000a84 <__NVIC_SetPriority+0x40> SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - 8000a02: 683b ldr r3, [r7, #0] - 8000a04: b2da uxtb r2, r3 - 8000a06: 4908 ldr r1, [pc, #32] @ (8000a28 <__NVIC_SetPriority+0x50>) - 8000a08: 79fb ldrb r3, [r7, #7] - 8000a0a: f003 030f and.w r3, r3, #15 - 8000a0e: 3b04 subs r3, #4 - 8000a10: 0112 lsls r2, r2, #4 - 8000a12: b2d2 uxtb r2, r2 - 8000a14: 440b add r3, r1 - 8000a16: 761a strb r2, [r3, #24] + 8000a6e: 683b ldr r3, [r7, #0] + 8000a70: b2da uxtb r2, r3 + 8000a72: 4908 ldr r1, [pc, #32] @ (8000a94 <__NVIC_SetPriority+0x50>) + 8000a74: 79fb ldrb r3, [r7, #7] + 8000a76: f003 030f and.w r3, r3, #15 + 8000a7a: 3b04 subs r3, #4 + 8000a7c: 0112 lsls r2, r2, #4 + 8000a7e: b2d2 uxtb r2, r2 + 8000a80: 440b add r3, r1 + 8000a82: 761a strb r2, [r3, #24] } - 8000a18: bf00 nop - 8000a1a: 370c adds r7, #12 - 8000a1c: 46bd mov sp, r7 - 8000a1e: bc80 pop {r7} - 8000a20: 4770 bx lr - 8000a22: bf00 nop - 8000a24: e000e100 .word 0xe000e100 - 8000a28: e000ed00 .word 0xe000ed00 + 8000a84: bf00 nop + 8000a86: 370c adds r7, #12 + 8000a88: 46bd mov sp, r7 + 8000a8a: bc80 pop {r7} + 8000a8c: 4770 bx lr + 8000a8e: bf00 nop + 8000a90: e000e100 .word 0xe000e100 + 8000a94: e000ed00 .word 0xe000ed00 -08000a2c : +08000a98 : \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) { - 8000a2c: b480 push {r7} - 8000a2e: b089 sub sp, #36 @ 0x24 - 8000a30: af00 add r7, sp, #0 - 8000a32: 60f8 str r0, [r7, #12] - 8000a34: 60b9 str r1, [r7, #8] - 8000a36: 607a str r2, [r7, #4] + 8000a98: b480 push {r7} + 8000a9a: b089 sub sp, #36 @ 0x24 + 8000a9c: af00 add r7, sp, #0 + 8000a9e: 60f8 str r0, [r7, #12] + 8000aa0: 60b9 str r1, [r7, #8] + 8000aa2: 607a str r2, [r7, #4] uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - 8000a38: 68fb ldr r3, [r7, #12] - 8000a3a: f003 0307 and.w r3, r3, #7 - 8000a3e: 61fb str r3, [r7, #28] + 8000aa4: 68fb ldr r3, [r7, #12] + 8000aa6: f003 0307 and.w r3, r3, #7 + 8000aaa: 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); - 8000a40: 69fb ldr r3, [r7, #28] - 8000a42: f1c3 0307 rsb r3, r3, #7 - 8000a46: 2b04 cmp r3, #4 - 8000a48: bf28 it cs - 8000a4a: 2304 movcs r3, #4 - 8000a4c: 61bb str r3, [r7, #24] + 8000aac: 69fb ldr r3, [r7, #28] + 8000aae: f1c3 0307 rsb r3, r3, #7 + 8000ab2: 2b04 cmp r3, #4 + 8000ab4: bf28 it cs + 8000ab6: 2304 movcs r3, #4 + 8000ab8: 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)); - 8000a4e: 69fb ldr r3, [r7, #28] - 8000a50: 3304 adds r3, #4 - 8000a52: 2b06 cmp r3, #6 - 8000a54: d902 bls.n 8000a5c - 8000a56: 69fb ldr r3, [r7, #28] - 8000a58: 3b03 subs r3, #3 - 8000a5a: e000 b.n 8000a5e - 8000a5c: 2300 movs r3, #0 - 8000a5e: 617b str r3, [r7, #20] + 8000aba: 69fb ldr r3, [r7, #28] + 8000abc: 3304 adds r3, #4 + 8000abe: 2b06 cmp r3, #6 + 8000ac0: d902 bls.n 8000ac8 + 8000ac2: 69fb ldr r3, [r7, #28] + 8000ac4: 3b03 subs r3, #3 + 8000ac6: e000 b.n 8000aca + 8000ac8: 2300 movs r3, #0 + 8000aca: 617b str r3, [r7, #20] return ( ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - 8000a60: f04f 32ff mov.w r2, #4294967295 @ 0xffffffff - 8000a64: 69bb ldr r3, [r7, #24] - 8000a66: fa02 f303 lsl.w r3, r2, r3 - 8000a6a: 43da mvns r2, r3 - 8000a6c: 68bb ldr r3, [r7, #8] - 8000a6e: 401a ands r2, r3 - 8000a70: 697b ldr r3, [r7, #20] - 8000a72: 409a lsls r2, r3 + 8000acc: f04f 32ff mov.w r2, #4294967295 @ 0xffffffff + 8000ad0: 69bb ldr r3, [r7, #24] + 8000ad2: fa02 f303 lsl.w r3, r2, r3 + 8000ad6: 43da mvns r2, r3 + 8000ad8: 68bb ldr r3, [r7, #8] + 8000ada: 401a ands r2, r3 + 8000adc: 697b ldr r3, [r7, #20] + 8000ade: 409a lsls r2, r3 ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - 8000a74: f04f 31ff mov.w r1, #4294967295 @ 0xffffffff - 8000a78: 697b ldr r3, [r7, #20] - 8000a7a: fa01 f303 lsl.w r3, r1, r3 - 8000a7e: 43d9 mvns r1, r3 - 8000a80: 687b ldr r3, [r7, #4] - 8000a82: 400b ands r3, r1 + 8000ae0: f04f 31ff mov.w r1, #4294967295 @ 0xffffffff + 8000ae4: 697b ldr r3, [r7, #20] + 8000ae6: fa01 f303 lsl.w r3, r1, r3 + 8000aea: 43d9 mvns r1, r3 + 8000aec: 687b ldr r3, [r7, #4] + 8000aee: 400b ands r3, r1 ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - 8000a84: 4313 orrs r3, r2 + 8000af0: 4313 orrs r3, r2 ); } - 8000a86: 4618 mov r0, r3 - 8000a88: 3724 adds r7, #36 @ 0x24 - 8000a8a: 46bd mov sp, r7 - 8000a8c: bc80 pop {r7} - 8000a8e: 4770 bx lr + 8000af2: 4618 mov r0, r3 + 8000af4: 3724 adds r7, #36 @ 0x24 + 8000af6: 46bd mov sp, r7 + 8000af8: bc80 pop {r7} + 8000afa: 4770 bx lr -08000a90 : +08000afc : \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) { - 8000a90: b580 push {r7, lr} - 8000a92: b082 sub sp, #8 - 8000a94: af00 add r7, sp, #0 - 8000a96: 6078 str r0, [r7, #4] + 8000afc: b580 push {r7, lr} + 8000afe: b082 sub sp, #8 + 8000b00: af00 add r7, sp, #0 + 8000b02: 6078 str r0, [r7, #4] if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - 8000a98: 687b ldr r3, [r7, #4] - 8000a9a: 3b01 subs r3, #1 - 8000a9c: f1b3 7f80 cmp.w r3, #16777216 @ 0x1000000 - 8000aa0: d301 bcc.n 8000aa6 + 8000b04: 687b ldr r3, [r7, #4] + 8000b06: 3b01 subs r3, #1 + 8000b08: f1b3 7f80 cmp.w r3, #16777216 @ 0x1000000 + 8000b0c: d301 bcc.n 8000b12 { return (1UL); /* Reload value impossible */ - 8000aa2: 2301 movs r3, #1 - 8000aa4: e00f b.n 8000ac6 + 8000b0e: 2301 movs r3, #1 + 8000b10: e00f b.n 8000b32 } SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - 8000aa6: 4a0a ldr r2, [pc, #40] @ (8000ad0 ) - 8000aa8: 687b ldr r3, [r7, #4] - 8000aaa: 3b01 subs r3, #1 - 8000aac: 6053 str r3, [r2, #4] + 8000b12: 4a0a ldr r2, [pc, #40] @ (8000b3c ) + 8000b14: 687b ldr r3, [r7, #4] + 8000b16: 3b01 subs r3, #1 + 8000b18: 6053 str r3, [r2, #4] NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - 8000aae: 210f movs r1, #15 - 8000ab0: f04f 30ff mov.w r0, #4294967295 @ 0xffffffff - 8000ab4: f7ff ff90 bl 80009d8 <__NVIC_SetPriority> + 8000b1a: 210f movs r1, #15 + 8000b1c: f04f 30ff mov.w r0, #4294967295 @ 0xffffffff + 8000b20: f7ff ff90 bl 8000a44 <__NVIC_SetPriority> SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - 8000ab8: 4b05 ldr r3, [pc, #20] @ (8000ad0 ) - 8000aba: 2200 movs r2, #0 - 8000abc: 609a str r2, [r3, #8] + 8000b24: 4b05 ldr r3, [pc, #20] @ (8000b3c ) + 8000b26: 2200 movs r2, #0 + 8000b28: 609a str r2, [r3, #8] SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - 8000abe: 4b04 ldr r3, [pc, #16] @ (8000ad0 ) - 8000ac0: 2207 movs r2, #7 - 8000ac2: 601a str r2, [r3, #0] + 8000b2a: 4b04 ldr r3, [pc, #16] @ (8000b3c ) + 8000b2c: 2207 movs r2, #7 + 8000b2e: 601a str r2, [r3, #0] SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ return (0UL); /* Function successful */ - 8000ac4: 2300 movs r3, #0 + 8000b30: 2300 movs r3, #0 } - 8000ac6: 4618 mov r0, r3 - 8000ac8: 3708 adds r7, #8 - 8000aca: 46bd mov sp, r7 - 8000acc: bd80 pop {r7, pc} - 8000ace: bf00 nop - 8000ad0: e000e010 .word 0xe000e010 + 8000b32: 4618 mov r0, r3 + 8000b34: 3708 adds r7, #8 + 8000b36: 46bd mov sp, r7 + 8000b38: bd80 pop {r7, pc} + 8000b3a: bf00 nop + 8000b3c: e000e010 .word 0xe000e010 -08000ad4 : +08000b40 : * @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) { - 8000ad4: b580 push {r7, lr} - 8000ad6: b082 sub sp, #8 - 8000ad8: af00 add r7, sp, #0 - 8000ada: 6078 str r0, [r7, #4] + 8000b40: b580 push {r7, lr} + 8000b42: b082 sub sp, #8 + 8000b44: af00 add r7, sp, #0 + 8000b46: 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); - 8000adc: 6878 ldr r0, [r7, #4] - 8000ade: f7ff ff49 bl 8000974 <__NVIC_SetPriorityGrouping> + 8000b48: 6878 ldr r0, [r7, #4] + 8000b4a: f7ff ff49 bl 80009e0 <__NVIC_SetPriorityGrouping> } - 8000ae2: bf00 nop - 8000ae4: 3708 adds r7, #8 - 8000ae6: 46bd mov sp, r7 - 8000ae8: bd80 pop {r7, pc} + 8000b4e: bf00 nop + 8000b50: 3708 adds r7, #8 + 8000b52: 46bd mov sp, r7 + 8000b54: bd80 pop {r7, pc} -08000aea : +08000b56 : * 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) { - 8000aea: b580 push {r7, lr} - 8000aec: b086 sub sp, #24 - 8000aee: af00 add r7, sp, #0 - 8000af0: 4603 mov r3, r0 - 8000af2: 60b9 str r1, [r7, #8] - 8000af4: 607a str r2, [r7, #4] - 8000af6: 73fb strb r3, [r7, #15] + 8000b56: b580 push {r7, lr} + 8000b58: b086 sub sp, #24 + 8000b5a: af00 add r7, sp, #0 + 8000b5c: 4603 mov r3, r0 + 8000b5e: 60b9 str r1, [r7, #8] + 8000b60: 607a str r2, [r7, #4] + 8000b62: 73fb strb r3, [r7, #15] uint32_t prioritygroup = 0x00; - 8000af8: 2300 movs r3, #0 - 8000afa: 617b str r3, [r7, #20] + 8000b64: 2300 movs r3, #0 + 8000b66: 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(); - 8000afc: f7ff ff5e bl 80009bc <__NVIC_GetPriorityGrouping> - 8000b00: 6178 str r0, [r7, #20] + 8000b68: f7ff ff5e bl 8000a28 <__NVIC_GetPriorityGrouping> + 8000b6c: 6178 str r0, [r7, #20] NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority)); - 8000b02: 687a ldr r2, [r7, #4] - 8000b04: 68b9 ldr r1, [r7, #8] - 8000b06: 6978 ldr r0, [r7, #20] - 8000b08: f7ff ff90 bl 8000a2c - 8000b0c: 4602 mov r2, r0 - 8000b0e: f997 300f ldrsb.w r3, [r7, #15] - 8000b12: 4611 mov r1, r2 - 8000b14: 4618 mov r0, r3 - 8000b16: f7ff ff5f bl 80009d8 <__NVIC_SetPriority> + 8000b6e: 687a ldr r2, [r7, #4] + 8000b70: 68b9 ldr r1, [r7, #8] + 8000b72: 6978 ldr r0, [r7, #20] + 8000b74: f7ff ff90 bl 8000a98 + 8000b78: 4602 mov r2, r0 + 8000b7a: f997 300f ldrsb.w r3, [r7, #15] + 8000b7e: 4611 mov r1, r2 + 8000b80: 4618 mov r0, r3 + 8000b82: f7ff ff5f bl 8000a44 <__NVIC_SetPriority> } - 8000b1a: bf00 nop - 8000b1c: 3718 adds r7, #24 - 8000b1e: 46bd mov sp, r7 - 8000b20: bd80 pop {r7, pc} + 8000b86: bf00 nop + 8000b88: 3718 adds r7, #24 + 8000b8a: 46bd mov sp, r7 + 8000b8c: bd80 pop {r7, pc} -08000b22 : +08000b8e : * @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) { - 8000b22: b580 push {r7, lr} - 8000b24: b082 sub sp, #8 - 8000b26: af00 add r7, sp, #0 - 8000b28: 6078 str r0, [r7, #4] + 8000b8e: b580 push {r7, lr} + 8000b90: b082 sub sp, #8 + 8000b92: af00 add r7, sp, #0 + 8000b94: 6078 str r0, [r7, #4] return SysTick_Config(TicksNumb); - 8000b2a: 6878 ldr r0, [r7, #4] - 8000b2c: f7ff ffb0 bl 8000a90 - 8000b30: 4603 mov r3, r0 + 8000b96: 6878 ldr r0, [r7, #4] + 8000b98: f7ff ffb0 bl 8000afc + 8000b9c: 4603 mov r3, r0 } - 8000b32: 4618 mov r0, r3 - 8000b34: 3708 adds r7, #8 - 8000b36: 46bd mov sp, r7 - 8000b38: bd80 pop {r7, pc} + 8000b9e: 4618 mov r0, r3 + 8000ba0: 3708 adds r7, #8 + 8000ba2: 46bd mov sp, r7 + 8000ba4: bd80 pop {r7, pc} ... -08000b3c : +08000ba8 : * @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) { - 8000b3c: b480 push {r7} - 8000b3e: b087 sub sp, #28 - 8000b40: af00 add r7, sp, #0 - 8000b42: 6078 str r0, [r7, #4] - 8000b44: 6039 str r1, [r7, #0] + 8000ba8: b480 push {r7} + 8000baa: b087 sub sp, #28 + 8000bac: af00 add r7, sp, #0 + 8000bae: 6078 str r0, [r7, #4] + 8000bb0: 6039 str r1, [r7, #0] uint32_t position = 0x00; - 8000b46: 2300 movs r3, #0 - 8000b48: 617b str r3, [r7, #20] + 8000bb2: 2300 movs r3, #0 + 8000bb4: 617b str r3, [r7, #20] uint32_t iocurrent = 0x00; - 8000b4a: 2300 movs r3, #0 - 8000b4c: 60fb str r3, [r7, #12] + 8000bb6: 2300 movs r3, #0 + 8000bb8: 60fb str r3, [r7, #12] uint32_t temp = 0x00; - 8000b4e: 2300 movs r3, #0 - 8000b50: 613b str r3, [r7, #16] + 8000bba: 2300 movs r3, #0 + 8000bbc: 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) - 8000b52: e160 b.n 8000e16 + 8000bbe: e160 b.n 8000e82 { /* Get current io position */ iocurrent = (GPIO_Init->Pin) & (1U << position); - 8000b54: 683b ldr r3, [r7, #0] - 8000b56: 681a ldr r2, [r3, #0] - 8000b58: 2101 movs r1, #1 - 8000b5a: 697b ldr r3, [r7, #20] - 8000b5c: fa01 f303 lsl.w r3, r1, r3 - 8000b60: 4013 ands r3, r2 - 8000b62: 60fb str r3, [r7, #12] + 8000bc0: 683b ldr r3, [r7, #0] + 8000bc2: 681a ldr r2, [r3, #0] + 8000bc4: 2101 movs r1, #1 + 8000bc6: 697b ldr r3, [r7, #20] + 8000bc8: fa01 f303 lsl.w r3, r1, r3 + 8000bcc: 4013 ands r3, r2 + 8000bce: 60fb str r3, [r7, #12] if (iocurrent) - 8000b64: 68fb ldr r3, [r7, #12] - 8000b66: 2b00 cmp r3, #0 - 8000b68: f000 8152 beq.w 8000e10 + 8000bd0: 68fb ldr r3, [r7, #12] + 8000bd2: 2b00 cmp r3, #0 + 8000bd4: f000 8152 beq.w 8000e7c { /*--------------------- GPIO Mode Configuration ------------------------*/ /* In case of Output or Alternate function mode selection */ if (((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || - 8000b6c: 683b ldr r3, [r7, #0] - 8000b6e: 685b ldr r3, [r3, #4] - 8000b70: f003 0303 and.w r3, r3, #3 - 8000b74: 2b01 cmp r3, #1 - 8000b76: d005 beq.n 8000b84 + 8000bd8: 683b ldr r3, [r7, #0] + 8000bda: 685b ldr r3, [r3, #4] + 8000bdc: f003 0303 and.w r3, r3, #3 + 8000be0: 2b01 cmp r3, #1 + 8000be2: d005 beq.n 8000bf0 ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)) - 8000b78: 683b ldr r3, [r7, #0] - 8000b7a: 685b ldr r3, [r3, #4] - 8000b7c: f003 0303 and.w r3, r3, #3 + 8000be4: 683b ldr r3, [r7, #0] + 8000be6: 685b ldr r3, [r3, #4] + 8000be8: f003 0303 and.w r3, r3, #3 if (((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || - 8000b80: 2b02 cmp r3, #2 - 8000b82: d130 bne.n 8000be6 + 8000bec: 2b02 cmp r3, #2 + 8000bee: d130 bne.n 8000c52 { /* Check the Speed parameter */ assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); /* Configure the IO Speed */ temp = GPIOx->OSPEEDR; - 8000b84: 687b ldr r3, [r7, #4] - 8000b86: 689b ldr r3, [r3, #8] - 8000b88: 613b str r3, [r7, #16] + 8000bf0: 687b ldr r3, [r7, #4] + 8000bf2: 689b ldr r3, [r3, #8] + 8000bf4: 613b str r3, [r7, #16] CLEAR_BIT(temp, GPIO_OSPEEDER_OSPEEDR0 << (position * 2)); - 8000b8a: 697b ldr r3, [r7, #20] - 8000b8c: 005b lsls r3, r3, #1 - 8000b8e: 2203 movs r2, #3 - 8000b90: fa02 f303 lsl.w r3, r2, r3 - 8000b94: 43db mvns r3, r3 - 8000b96: 693a ldr r2, [r7, #16] - 8000b98: 4013 ands r3, r2 - 8000b9a: 613b str r3, [r7, #16] + 8000bf6: 697b ldr r3, [r7, #20] + 8000bf8: 005b lsls r3, r3, #1 + 8000bfa: 2203 movs r2, #3 + 8000bfc: fa02 f303 lsl.w r3, r2, r3 + 8000c00: 43db mvns r3, r3 + 8000c02: 693a ldr r2, [r7, #16] + 8000c04: 4013 ands r3, r2 + 8000c06: 613b str r3, [r7, #16] SET_BIT(temp, GPIO_Init->Speed << (position * 2)); - 8000b9c: 683b ldr r3, [r7, #0] - 8000b9e: 68da ldr r2, [r3, #12] - 8000ba0: 697b ldr r3, [r7, #20] - 8000ba2: 005b lsls r3, r3, #1 - 8000ba4: fa02 f303 lsl.w r3, r2, r3 - 8000ba8: 693a ldr r2, [r7, #16] - 8000baa: 4313 orrs r3, r2 - 8000bac: 613b str r3, [r7, #16] + 8000c08: 683b ldr r3, [r7, #0] + 8000c0a: 68da ldr r2, [r3, #12] + 8000c0c: 697b ldr r3, [r7, #20] + 8000c0e: 005b lsls r3, r3, #1 + 8000c10: fa02 f303 lsl.w r3, r2, r3 + 8000c14: 693a ldr r2, [r7, #16] + 8000c16: 4313 orrs r3, r2 + 8000c18: 613b str r3, [r7, #16] GPIOx->OSPEEDR = temp; - 8000bae: 687b ldr r3, [r7, #4] - 8000bb0: 693a ldr r2, [r7, #16] - 8000bb2: 609a str r2, [r3, #8] + 8000c1a: 687b ldr r3, [r7, #4] + 8000c1c: 693a ldr r2, [r7, #16] + 8000c1e: 609a str r2, [r3, #8] /* Configure the IO Output Type */ temp = GPIOx->OTYPER; - 8000bb4: 687b ldr r3, [r7, #4] - 8000bb6: 685b ldr r3, [r3, #4] - 8000bb8: 613b str r3, [r7, #16] + 8000c20: 687b ldr r3, [r7, #4] + 8000c22: 685b ldr r3, [r3, #4] + 8000c24: 613b str r3, [r7, #16] CLEAR_BIT(temp, GPIO_OTYPER_OT_0 << position) ; - 8000bba: 2201 movs r2, #1 - 8000bbc: 697b ldr r3, [r7, #20] - 8000bbe: fa02 f303 lsl.w r3, r2, r3 - 8000bc2: 43db mvns r3, r3 - 8000bc4: 693a ldr r2, [r7, #16] - 8000bc6: 4013 ands r3, r2 - 8000bc8: 613b str r3, [r7, #16] + 8000c26: 2201 movs r2, #1 + 8000c28: 697b ldr r3, [r7, #20] + 8000c2a: fa02 f303 lsl.w r3, r2, r3 + 8000c2e: 43db mvns r3, r3 + 8000c30: 693a ldr r2, [r7, #16] + 8000c32: 4013 ands r3, r2 + 8000c34: 613b str r3, [r7, #16] SET_BIT(temp, ((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position); - 8000bca: 683b ldr r3, [r7, #0] - 8000bcc: 685b ldr r3, [r3, #4] - 8000bce: 091b lsrs r3, r3, #4 - 8000bd0: f003 0201 and.w r2, r3, #1 - 8000bd4: 697b ldr r3, [r7, #20] - 8000bd6: fa02 f303 lsl.w r3, r2, r3 - 8000bda: 693a ldr r2, [r7, #16] - 8000bdc: 4313 orrs r3, r2 - 8000bde: 613b str r3, [r7, #16] + 8000c36: 683b ldr r3, [r7, #0] + 8000c38: 685b ldr r3, [r3, #4] + 8000c3a: 091b lsrs r3, r3, #4 + 8000c3c: f003 0201 and.w r2, r3, #1 + 8000c40: 697b ldr r3, [r7, #20] + 8000c42: fa02 f303 lsl.w r3, r2, r3 + 8000c46: 693a ldr r2, [r7, #16] + 8000c48: 4313 orrs r3, r2 + 8000c4a: 613b str r3, [r7, #16] GPIOx->OTYPER = temp; - 8000be0: 687b ldr r3, [r7, #4] - 8000be2: 693a ldr r2, [r7, #16] - 8000be4: 605a str r2, [r3, #4] + 8000c4c: 687b ldr r3, [r7, #4] + 8000c4e: 693a ldr r2, [r7, #16] + 8000c50: 605a str r2, [r3, #4] } if ((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG) - 8000be6: 683b ldr r3, [r7, #0] - 8000be8: 685b ldr r3, [r3, #4] - 8000bea: f003 0303 and.w r3, r3, #3 - 8000bee: 2b03 cmp r3, #3 - 8000bf0: d017 beq.n 8000c22 + 8000c52: 683b ldr r3, [r7, #0] + 8000c54: 685b ldr r3, [r3, #4] + 8000c56: f003 0303 and.w r3, r3, #3 + 8000c5a: 2b03 cmp r3, #3 + 8000c5c: d017 beq.n 8000c8e { /* 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; - 8000bf2: 687b ldr r3, [r7, #4] - 8000bf4: 68db ldr r3, [r3, #12] - 8000bf6: 613b str r3, [r7, #16] + 8000c5e: 687b ldr r3, [r7, #4] + 8000c60: 68db ldr r3, [r3, #12] + 8000c62: 613b str r3, [r7, #16] CLEAR_BIT(temp, GPIO_PUPDR_PUPDR0 << (position * 2)); - 8000bf8: 697b ldr r3, [r7, #20] - 8000bfa: 005b lsls r3, r3, #1 - 8000bfc: 2203 movs r2, #3 - 8000bfe: fa02 f303 lsl.w r3, r2, r3 - 8000c02: 43db mvns r3, r3 - 8000c04: 693a ldr r2, [r7, #16] - 8000c06: 4013 ands r3, r2 - 8000c08: 613b str r3, [r7, #16] + 8000c64: 697b ldr r3, [r7, #20] + 8000c66: 005b lsls r3, r3, #1 + 8000c68: 2203 movs r2, #3 + 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] SET_BIT(temp, (GPIO_Init->Pull) << (position * 2)); - 8000c0a: 683b ldr r3, [r7, #0] - 8000c0c: 689a ldr r2, [r3, #8] - 8000c0e: 697b ldr r3, [r7, #20] - 8000c10: 005b lsls r3, r3, #1 - 8000c12: fa02 f303 lsl.w r3, r2, r3 - 8000c16: 693a ldr r2, [r7, #16] - 8000c18: 4313 orrs r3, r2 - 8000c1a: 613b str r3, [r7, #16] + 8000c76: 683b ldr r3, [r7, #0] + 8000c78: 689a ldr r2, [r3, #8] + 8000c7a: 697b ldr r3, [r7, #20] + 8000c7c: 005b lsls r3, r3, #1 + 8000c7e: fa02 f303 lsl.w r3, r2, r3 + 8000c82: 693a ldr r2, [r7, #16] + 8000c84: 4313 orrs r3, r2 + 8000c86: 613b str r3, [r7, #16] GPIOx->PUPDR = temp; - 8000c1c: 687b ldr r3, [r7, #4] - 8000c1e: 693a ldr r2, [r7, #16] - 8000c20: 60da str r2, [r3, #12] + 8000c88: 687b ldr r3, [r7, #4] + 8000c8a: 693a ldr r2, [r7, #16] + 8000c8c: 60da str r2, [r3, #12] } /* In case of Alternate function mode selection */ if ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF) - 8000c22: 683b ldr r3, [r7, #0] - 8000c24: 685b ldr r3, [r3, #4] - 8000c26: f003 0303 and.w r3, r3, #3 - 8000c2a: 2b02 cmp r3, #2 - 8000c2c: d123 bne.n 8000c76 + 8000c8e: 683b ldr r3, [r7, #0] + 8000c90: 685b ldr r3, [r3, #4] + 8000c92: f003 0303 and.w r3, r3, #3 + 8000c96: 2b02 cmp r3, #2 + 8000c98: d123 bne.n 8000ce2 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]; - 8000c2e: 697b ldr r3, [r7, #20] - 8000c30: 08da lsrs r2, r3, #3 - 8000c32: 687b ldr r3, [r7, #4] - 8000c34: 3208 adds r2, #8 - 8000c36: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 8000c3a: 613b str r3, [r7, #16] + 8000c9a: 697b ldr r3, [r7, #20] + 8000c9c: 08da lsrs r2, r3, #3 + 8000c9e: 687b ldr r3, [r7, #4] + 8000ca0: 3208 adds r2, #8 + 8000ca2: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 8000ca6: 613b str r3, [r7, #16] CLEAR_BIT(temp, 0xFU << ((uint32_t)(position & 0x07U) * 4)); - 8000c3c: 697b ldr r3, [r7, #20] - 8000c3e: f003 0307 and.w r3, r3, #7 - 8000c42: 009b lsls r3, r3, #2 - 8000c44: 220f movs r2, #15 - 8000c46: fa02 f303 lsl.w r3, r2, r3 - 8000c4a: 43db mvns r3, r3 - 8000c4c: 693a ldr r2, [r7, #16] - 8000c4e: 4013 ands r3, r2 - 8000c50: 613b str r3, [r7, #16] + 8000ca8: 697b ldr r3, [r7, #20] + 8000caa: f003 0307 and.w r3, r3, #7 + 8000cae: 009b lsls r3, r3, #2 + 8000cb0: 220f movs r2, #15 + 8000cb2: fa02 f303 lsl.w r3, r2, r3 + 8000cb6: 43db mvns r3, r3 + 8000cb8: 693a ldr r2, [r7, #16] + 8000cba: 4013 ands r3, r2 + 8000cbc: 613b str r3, [r7, #16] SET_BIT(temp, (uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & 0x07U) * 4)); - 8000c52: 683b ldr r3, [r7, #0] - 8000c54: 691a ldr r2, [r3, #16] - 8000c56: 697b ldr r3, [r7, #20] - 8000c58: f003 0307 and.w r3, r3, #7 - 8000c5c: 009b lsls r3, r3, #2 - 8000c5e: fa02 f303 lsl.w r3, r2, r3 - 8000c62: 693a ldr r2, [r7, #16] - 8000c64: 4313 orrs r3, r2 - 8000c66: 613b str r3, [r7, #16] + 8000cbe: 683b ldr r3, [r7, #0] + 8000cc0: 691a ldr r2, [r3, #16] + 8000cc2: 697b ldr r3, [r7, #20] + 8000cc4: f003 0307 and.w r3, r3, #7 + 8000cc8: 009b lsls r3, r3, #2 + 8000cca: fa02 f303 lsl.w r3, r2, r3 + 8000cce: 693a ldr r2, [r7, #16] + 8000cd0: 4313 orrs r3, r2 + 8000cd2: 613b str r3, [r7, #16] GPIOx->AFR[position >> 3] = temp; - 8000c68: 697b ldr r3, [r7, #20] - 8000c6a: 08da lsrs r2, r3, #3 - 8000c6c: 687b ldr r3, [r7, #4] - 8000c6e: 3208 adds r2, #8 - 8000c70: 6939 ldr r1, [r7, #16] - 8000c72: f843 1022 str.w r1, [r3, r2, lsl #2] + 8000cd4: 697b ldr r3, [r7, #20] + 8000cd6: 08da lsrs r2, r3, #3 + 8000cd8: 687b ldr r3, [r7, #4] + 8000cda: 3208 adds r2, #8 + 8000cdc: 6939 ldr r1, [r7, #16] + 8000cde: f843 1022 str.w r1, [r3, r2, lsl #2] } /* Configure IO Direction mode (Input, Output, Alternate or Analog) */ temp = GPIOx->MODER; - 8000c76: 687b ldr r3, [r7, #4] - 8000c78: 681b ldr r3, [r3, #0] - 8000c7a: 613b str r3, [r7, #16] + 8000ce2: 687b ldr r3, [r7, #4] + 8000ce4: 681b ldr r3, [r3, #0] + 8000ce6: 613b str r3, [r7, #16] CLEAR_BIT(temp, GPIO_MODER_MODER0 << (position * 2)); - 8000c7c: 697b ldr r3, [r7, #20] - 8000c7e: 005b lsls r3, r3, #1 - 8000c80: 2203 movs r2, #3 - 8000c82: fa02 f303 lsl.w r3, r2, r3 - 8000c86: 43db mvns r3, r3 - 8000c88: 693a ldr r2, [r7, #16] - 8000c8a: 4013 ands r3, r2 - 8000c8c: 613b str r3, [r7, #16] + 8000ce8: 697b ldr r3, [r7, #20] + 8000cea: 005b lsls r3, r3, #1 + 8000cec: 2203 movs r2, #3 + 8000cee: fa02 f303 lsl.w r3, r2, r3 + 8000cf2: 43db mvns r3, r3 + 8000cf4: 693a ldr r2, [r7, #16] + 8000cf6: 4013 ands r3, r2 + 8000cf8: 613b str r3, [r7, #16] SET_BIT(temp, (GPIO_Init->Mode & GPIO_MODE) << (position * 2)); - 8000c8e: 683b ldr r3, [r7, #0] - 8000c90: 685b ldr r3, [r3, #4] - 8000c92: f003 0203 and.w r2, r3, #3 - 8000c96: 697b ldr r3, [r7, #20] - 8000c98: 005b lsls r3, r3, #1 - 8000c9a: fa02 f303 lsl.w r3, r2, r3 - 8000c9e: 693a ldr r2, [r7, #16] - 8000ca0: 4313 orrs r3, r2 - 8000ca2: 613b str r3, [r7, #16] + 8000cfa: 683b ldr r3, [r7, #0] + 8000cfc: 685b ldr r3, [r3, #4] + 8000cfe: f003 0203 and.w r2, r3, #3 + 8000d02: 697b ldr r3, [r7, #20] + 8000d04: 005b lsls r3, r3, #1 + 8000d06: fa02 f303 lsl.w r3, r2, r3 + 8000d0a: 693a ldr r2, [r7, #16] + 8000d0c: 4313 orrs r3, r2 + 8000d0e: 613b str r3, [r7, #16] GPIOx->MODER = temp; - 8000ca4: 687b ldr r3, [r7, #4] - 8000ca6: 693a ldr r2, [r7, #16] - 8000ca8: 601a str r2, [r3, #0] + 8000d10: 687b ldr r3, [r7, #4] + 8000d12: 693a ldr r2, [r7, #16] + 8000d14: 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) - 8000caa: 683b ldr r3, [r7, #0] - 8000cac: 685b ldr r3, [r3, #4] - 8000cae: f403 3340 and.w r3, r3, #196608 @ 0x30000 - 8000cb2: 2b00 cmp r3, #0 - 8000cb4: f000 80ac beq.w 8000e10 + 8000d16: 683b ldr r3, [r7, #0] + 8000d18: 685b ldr r3, [r3, #4] + 8000d1a: f403 3340 and.w r3, r3, #196608 @ 0x30000 + 8000d1e: 2b00 cmp r3, #0 + 8000d20: f000 80ac beq.w 8000e7c { /* Enable SYSCFG Clock */ __HAL_RCC_SYSCFG_CLK_ENABLE(); - 8000cb8: 4b5e ldr r3, [pc, #376] @ (8000e34 ) - 8000cba: 6a1b ldr r3, [r3, #32] - 8000cbc: 4a5d ldr r2, [pc, #372] @ (8000e34 ) - 8000cbe: f043 0301 orr.w r3, r3, #1 - 8000cc2: 6213 str r3, [r2, #32] - 8000cc4: 4b5b ldr r3, [pc, #364] @ (8000e34 ) - 8000cc6: 6a1b ldr r3, [r3, #32] - 8000cc8: f003 0301 and.w r3, r3, #1 - 8000ccc: 60bb str r3, [r7, #8] - 8000cce: 68bb ldr r3, [r7, #8] + 8000d24: 4b5e ldr r3, [pc, #376] @ (8000ea0 ) + 8000d26: 6a1b ldr r3, [r3, #32] + 8000d28: 4a5d ldr r2, [pc, #372] @ (8000ea0 ) + 8000d2a: f043 0301 orr.w r3, r3, #1 + 8000d2e: 6213 str r3, [r2, #32] + 8000d30: 4b5b ldr r3, [pc, #364] @ (8000ea0 ) + 8000d32: 6a1b ldr r3, [r3, #32] + 8000d34: f003 0301 and.w r3, r3, #1 + 8000d38: 60bb str r3, [r7, #8] + 8000d3a: 68bb ldr r3, [r7, #8] temp = SYSCFG->EXTICR[position >> 2]; - 8000cd0: 4a59 ldr r2, [pc, #356] @ (8000e38 ) - 8000cd2: 697b ldr r3, [r7, #20] - 8000cd4: 089b lsrs r3, r3, #2 - 8000cd6: 3302 adds r3, #2 - 8000cd8: f852 3023 ldr.w r3, [r2, r3, lsl #2] - 8000cdc: 613b str r3, [r7, #16] + 8000d3c: 4a59 ldr r2, [pc, #356] @ (8000ea4 ) + 8000d3e: 697b ldr r3, [r7, #20] + 8000d40: 089b lsrs r3, r3, #2 + 8000d42: 3302 adds r3, #2 + 8000d44: f852 3023 ldr.w r3, [r2, r3, lsl #2] + 8000d48: 613b str r3, [r7, #16] CLEAR_BIT(temp, (0x0FU) << (4 * (position & 0x03))); - 8000cde: 697b ldr r3, [r7, #20] - 8000ce0: f003 0303 and.w r3, r3, #3 - 8000ce4: 009b lsls r3, r3, #2 - 8000ce6: 220f movs r2, #15 - 8000ce8: fa02 f303 lsl.w r3, r2, r3 - 8000cec: 43db mvns r3, r3 - 8000cee: 693a ldr r2, [r7, #16] - 8000cf0: 4013 ands r3, r2 - 8000cf2: 613b str r3, [r7, #16] + 8000d4a: 697b ldr r3, [r7, #20] + 8000d4c: f003 0303 and.w r3, r3, #3 + 8000d50: 009b lsls r3, r3, #2 + 8000d52: 220f movs r2, #15 + 8000d54: fa02 f303 lsl.w r3, r2, r3 + 8000d58: 43db mvns r3, r3 + 8000d5a: 693a ldr r2, [r7, #16] + 8000d5c: 4013 ands r3, r2 + 8000d5e: 613b str r3, [r7, #16] SET_BIT(temp, (GPIO_GET_INDEX(GPIOx)) << (4 * (position & 0x03))); - 8000cf4: 687b ldr r3, [r7, #4] - 8000cf6: 4a51 ldr r2, [pc, #324] @ (8000e3c ) - 8000cf8: 4293 cmp r3, r2 - 8000cfa: d025 beq.n 8000d48 - 8000cfc: 687b ldr r3, [r7, #4] - 8000cfe: 4a50 ldr r2, [pc, #320] @ (8000e40 ) - 8000d00: 4293 cmp r3, r2 - 8000d02: d01f beq.n 8000d44 - 8000d04: 687b ldr r3, [r7, #4] - 8000d06: 4a4f ldr r2, [pc, #316] @ (8000e44 ) - 8000d08: 4293 cmp r3, r2 - 8000d0a: d019 beq.n 8000d40 - 8000d0c: 687b ldr r3, [r7, #4] - 8000d0e: 4a4e ldr r2, [pc, #312] @ (8000e48 ) - 8000d10: 4293 cmp r3, r2 - 8000d12: d013 beq.n 8000d3c - 8000d14: 687b ldr r3, [r7, #4] - 8000d16: 4a4d ldr r2, [pc, #308] @ (8000e4c ) - 8000d18: 4293 cmp r3, r2 - 8000d1a: d00d beq.n 8000d38 - 8000d1c: 687b ldr r3, [r7, #4] - 8000d1e: 4a4c ldr r2, [pc, #304] @ (8000e50 ) - 8000d20: 4293 cmp r3, r2 - 8000d22: d007 beq.n 8000d34 - 8000d24: 687b ldr r3, [r7, #4] - 8000d26: 4a4b ldr r2, [pc, #300] @ (8000e54 ) - 8000d28: 4293 cmp r3, r2 - 8000d2a: d101 bne.n 8000d30 - 8000d2c: 2306 movs r3, #6 - 8000d2e: e00c b.n 8000d4a - 8000d30: 2307 movs r3, #7 - 8000d32: e00a b.n 8000d4a - 8000d34: 2305 movs r3, #5 - 8000d36: e008 b.n 8000d4a - 8000d38: 2304 movs r3, #4 - 8000d3a: e006 b.n 8000d4a - 8000d3c: 2303 movs r3, #3 - 8000d3e: e004 b.n 8000d4a - 8000d40: 2302 movs r3, #2 - 8000d42: e002 b.n 8000d4a - 8000d44: 2301 movs r3, #1 - 8000d46: e000 b.n 8000d4a - 8000d48: 2300 movs r3, #0 - 8000d4a: 697a ldr r2, [r7, #20] - 8000d4c: f002 0203 and.w r2, r2, #3 - 8000d50: 0092 lsls r2, r2, #2 - 8000d52: 4093 lsls r3, r2 - 8000d54: 693a ldr r2, [r7, #16] - 8000d56: 4313 orrs r3, r2 - 8000d58: 613b str r3, [r7, #16] + 8000d60: 687b ldr r3, [r7, #4] + 8000d62: 4a51 ldr r2, [pc, #324] @ (8000ea8 ) + 8000d64: 4293 cmp r3, r2 + 8000d66: d025 beq.n 8000db4 + 8000d68: 687b ldr r3, [r7, #4] + 8000d6a: 4a50 ldr r2, [pc, #320] @ (8000eac ) + 8000d6c: 4293 cmp r3, r2 + 8000d6e: d01f beq.n 8000db0 + 8000d70: 687b ldr r3, [r7, #4] + 8000d72: 4a4f ldr r2, [pc, #316] @ (8000eb0 ) + 8000d74: 4293 cmp r3, r2 + 8000d76: d019 beq.n 8000dac + 8000d78: 687b ldr r3, [r7, #4] + 8000d7a: 4a4e ldr r2, [pc, #312] @ (8000eb4 ) + 8000d7c: 4293 cmp r3, r2 + 8000d7e: d013 beq.n 8000da8 + 8000d80: 687b ldr r3, [r7, #4] + 8000d82: 4a4d ldr r2, [pc, #308] @ (8000eb8 ) + 8000d84: 4293 cmp r3, r2 + 8000d86: d00d beq.n 8000da4 + 8000d88: 687b ldr r3, [r7, #4] + 8000d8a: 4a4c ldr r2, [pc, #304] @ (8000ebc ) + 8000d8c: 4293 cmp r3, r2 + 8000d8e: d007 beq.n 8000da0 + 8000d90: 687b ldr r3, [r7, #4] + 8000d92: 4a4b ldr r2, [pc, #300] @ (8000ec0 ) + 8000d94: 4293 cmp r3, r2 + 8000d96: d101 bne.n 8000d9c + 8000d98: 2306 movs r3, #6 + 8000d9a: e00c b.n 8000db6 + 8000d9c: 2307 movs r3, #7 + 8000d9e: e00a b.n 8000db6 + 8000da0: 2305 movs r3, #5 + 8000da2: e008 b.n 8000db6 + 8000da4: 2304 movs r3, #4 + 8000da6: e006 b.n 8000db6 + 8000da8: 2303 movs r3, #3 + 8000daa: e004 b.n 8000db6 + 8000dac: 2302 movs r3, #2 + 8000dae: e002 b.n 8000db6 + 8000db0: 2301 movs r3, #1 + 8000db2: e000 b.n 8000db6 + 8000db4: 2300 movs r3, #0 + 8000db6: 697a ldr r2, [r7, #20] + 8000db8: f002 0203 and.w r2, r2, #3 + 8000dbc: 0092 lsls r2, r2, #2 + 8000dbe: 4093 lsls r3, r2 + 8000dc0: 693a ldr r2, [r7, #16] + 8000dc2: 4313 orrs r3, r2 + 8000dc4: 613b str r3, [r7, #16] SYSCFG->EXTICR[position >> 2] = temp; - 8000d5a: 4937 ldr r1, [pc, #220] @ (8000e38 ) - 8000d5c: 697b ldr r3, [r7, #20] - 8000d5e: 089b lsrs r3, r3, #2 - 8000d60: 3302 adds r3, #2 - 8000d62: 693a ldr r2, [r7, #16] - 8000d64: f841 2023 str.w r2, [r1, r3, lsl #2] + 8000dc6: 4937 ldr r1, [pc, #220] @ (8000ea4 ) + 8000dc8: 697b ldr r3, [r7, #20] + 8000dca: 089b lsrs r3, r3, #2 + 8000dcc: 3302 adds r3, #2 + 8000dce: 693a ldr r2, [r7, #16] + 8000dd0: f841 2023 str.w r2, [r1, r3, lsl #2] /* Clear Rising Falling edge configuration */ temp = EXTI->RTSR; - 8000d68: 4b3b ldr r3, [pc, #236] @ (8000e58 ) - 8000d6a: 689b ldr r3, [r3, #8] - 8000d6c: 613b str r3, [r7, #16] + 8000dd4: 4b3b ldr r3, [pc, #236] @ (8000ec4 ) + 8000dd6: 689b ldr r3, [r3, #8] + 8000dd8: 613b str r3, [r7, #16] CLEAR_BIT(temp, (uint32_t)iocurrent); - 8000d6e: 68fb ldr r3, [r7, #12] - 8000d70: 43db mvns r3, r3 - 8000d72: 693a ldr r2, [r7, #16] - 8000d74: 4013 ands r3, r2 - 8000d76: 613b str r3, [r7, #16] + 8000dda: 68fb ldr r3, [r7, #12] + 8000ddc: 43db mvns r3, r3 + 8000dde: 693a ldr r2, [r7, #16] + 8000de0: 4013 ands r3, r2 + 8000de2: 613b str r3, [r7, #16] if ((GPIO_Init->Mode & TRIGGER_RISING) != 0x00U) - 8000d78: 683b ldr r3, [r7, #0] - 8000d7a: 685b ldr r3, [r3, #4] - 8000d7c: f403 1380 and.w r3, r3, #1048576 @ 0x100000 - 8000d80: 2b00 cmp r3, #0 - 8000d82: d003 beq.n 8000d8c + 8000de4: 683b ldr r3, [r7, #0] + 8000de6: 685b ldr r3, [r3, #4] + 8000de8: f403 1380 and.w r3, r3, #1048576 @ 0x100000 + 8000dec: 2b00 cmp r3, #0 + 8000dee: d003 beq.n 8000df8 { SET_BIT(temp, iocurrent); - 8000d84: 693a ldr r2, [r7, #16] - 8000d86: 68fb ldr r3, [r7, #12] - 8000d88: 4313 orrs r3, r2 - 8000d8a: 613b str r3, [r7, #16] + 8000df0: 693a ldr r2, [r7, #16] + 8000df2: 68fb ldr r3, [r7, #12] + 8000df4: 4313 orrs r3, r2 + 8000df6: 613b str r3, [r7, #16] } EXTI->RTSR = temp; - 8000d8c: 4a32 ldr r2, [pc, #200] @ (8000e58 ) - 8000d8e: 693b ldr r3, [r7, #16] - 8000d90: 6093 str r3, [r2, #8] + 8000df8: 4a32 ldr r2, [pc, #200] @ (8000ec4 ) + 8000dfa: 693b ldr r3, [r7, #16] + 8000dfc: 6093 str r3, [r2, #8] temp = EXTI->FTSR; - 8000d92: 4b31 ldr r3, [pc, #196] @ (8000e58 ) - 8000d94: 68db ldr r3, [r3, #12] - 8000d96: 613b str r3, [r7, #16] + 8000dfe: 4b31 ldr r3, [pc, #196] @ (8000ec4 ) + 8000e00: 68db ldr r3, [r3, #12] + 8000e02: 613b str r3, [r7, #16] CLEAR_BIT(temp, (uint32_t)iocurrent); - 8000d98: 68fb ldr r3, [r7, #12] - 8000d9a: 43db mvns r3, r3 - 8000d9c: 693a ldr r2, [r7, #16] - 8000d9e: 4013 ands r3, r2 - 8000da0: 613b str r3, [r7, #16] + 8000e04: 68fb ldr r3, [r7, #12] + 8000e06: 43db mvns r3, r3 + 8000e08: 693a ldr r2, [r7, #16] + 8000e0a: 4013 ands r3, r2 + 8000e0c: 613b str r3, [r7, #16] if ((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00U) - 8000da2: 683b ldr r3, [r7, #0] - 8000da4: 685b ldr r3, [r3, #4] - 8000da6: f403 1300 and.w r3, r3, #2097152 @ 0x200000 - 8000daa: 2b00 cmp r3, #0 - 8000dac: d003 beq.n 8000db6 + 8000e0e: 683b ldr r3, [r7, #0] + 8000e10: 685b ldr r3, [r3, #4] + 8000e12: f403 1300 and.w r3, r3, #2097152 @ 0x200000 + 8000e16: 2b00 cmp r3, #0 + 8000e18: d003 beq.n 8000e22 { SET_BIT(temp, iocurrent); - 8000dae: 693a ldr r2, [r7, #16] - 8000db0: 68fb ldr r3, [r7, #12] - 8000db2: 4313 orrs r3, r2 - 8000db4: 613b str r3, [r7, #16] + 8000e1a: 693a ldr r2, [r7, #16] + 8000e1c: 68fb ldr r3, [r7, #12] + 8000e1e: 4313 orrs r3, r2 + 8000e20: 613b str r3, [r7, #16] } EXTI->FTSR = temp; - 8000db6: 4a28 ldr r2, [pc, #160] @ (8000e58 ) - 8000db8: 693b ldr r3, [r7, #16] - 8000dba: 60d3 str r3, [r2, #12] + 8000e22: 4a28 ldr r2, [pc, #160] @ (8000ec4 ) + 8000e24: 693b ldr r3, [r7, #16] + 8000e26: 60d3 str r3, [r2, #12] temp = EXTI->EMR; - 8000dbc: 4b26 ldr r3, [pc, #152] @ (8000e58 ) - 8000dbe: 685b ldr r3, [r3, #4] - 8000dc0: 613b str r3, [r7, #16] + 8000e28: 4b26 ldr r3, [pc, #152] @ (8000ec4 ) + 8000e2a: 685b ldr r3, [r3, #4] + 8000e2c: 613b str r3, [r7, #16] CLEAR_BIT(temp, (uint32_t)iocurrent); - 8000dc2: 68fb ldr r3, [r7, #12] - 8000dc4: 43db mvns r3, r3 - 8000dc6: 693a ldr r2, [r7, #16] - 8000dc8: 4013 ands r3, r2 - 8000dca: 613b str r3, [r7, #16] + 8000e2e: 68fb ldr r3, [r7, #12] + 8000e30: 43db mvns r3, r3 + 8000e32: 693a ldr r2, [r7, #16] + 8000e34: 4013 ands r3, r2 + 8000e36: 613b str r3, [r7, #16] if ((GPIO_Init->Mode & EXTI_EVT) != 0x00U) - 8000dcc: 683b ldr r3, [r7, #0] - 8000dce: 685b ldr r3, [r3, #4] - 8000dd0: f403 3300 and.w r3, r3, #131072 @ 0x20000 - 8000dd4: 2b00 cmp r3, #0 - 8000dd6: d003 beq.n 8000de0 + 8000e38: 683b ldr r3, [r7, #0] + 8000e3a: 685b ldr r3, [r3, #4] + 8000e3c: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 8000e40: 2b00 cmp r3, #0 + 8000e42: d003 beq.n 8000e4c { SET_BIT(temp, iocurrent); - 8000dd8: 693a ldr r2, [r7, #16] - 8000dda: 68fb ldr r3, [r7, #12] - 8000ddc: 4313 orrs r3, r2 - 8000dde: 613b str r3, [r7, #16] + 8000e44: 693a ldr r2, [r7, #16] + 8000e46: 68fb ldr r3, [r7, #12] + 8000e48: 4313 orrs r3, r2 + 8000e4a: 613b str r3, [r7, #16] } EXTI->EMR = temp; - 8000de0: 4a1d ldr r2, [pc, #116] @ (8000e58 ) - 8000de2: 693b ldr r3, [r7, #16] - 8000de4: 6053 str r3, [r2, #4] + 8000e4c: 4a1d ldr r2, [pc, #116] @ (8000ec4 ) + 8000e4e: 693b ldr r3, [r7, #16] + 8000e50: 6053 str r3, [r2, #4] /* Clear EXTI line configuration */ temp = EXTI->IMR; - 8000de6: 4b1c ldr r3, [pc, #112] @ (8000e58 ) - 8000de8: 681b ldr r3, [r3, #0] - 8000dea: 613b str r3, [r7, #16] + 8000e52: 4b1c ldr r3, [pc, #112] @ (8000ec4 ) + 8000e54: 681b ldr r3, [r3, #0] + 8000e56: 613b str r3, [r7, #16] CLEAR_BIT(temp, (uint32_t)iocurrent); - 8000dec: 68fb ldr r3, [r7, #12] - 8000dee: 43db mvns r3, r3 - 8000df0: 693a ldr r2, [r7, #16] - 8000df2: 4013 ands r3, r2 - 8000df4: 613b str r3, [r7, #16] + 8000e58: 68fb ldr r3, [r7, #12] + 8000e5a: 43db mvns r3, r3 + 8000e5c: 693a ldr r2, [r7, #16] + 8000e5e: 4013 ands r3, r2 + 8000e60: 613b str r3, [r7, #16] if ((GPIO_Init->Mode & EXTI_IT) != 0x00U) - 8000df6: 683b ldr r3, [r7, #0] - 8000df8: 685b ldr r3, [r3, #4] - 8000dfa: f403 3380 and.w r3, r3, #65536 @ 0x10000 - 8000dfe: 2b00 cmp r3, #0 - 8000e00: d003 beq.n 8000e0a + 8000e62: 683b ldr r3, [r7, #0] + 8000e64: 685b ldr r3, [r3, #4] + 8000e66: f403 3380 and.w r3, r3, #65536 @ 0x10000 + 8000e6a: 2b00 cmp r3, #0 + 8000e6c: d003 beq.n 8000e76 { SET_BIT(temp, iocurrent); - 8000e02: 693a ldr r2, [r7, #16] - 8000e04: 68fb ldr r3, [r7, #12] - 8000e06: 4313 orrs r3, r2 - 8000e08: 613b str r3, [r7, #16] + 8000e6e: 693a ldr r2, [r7, #16] + 8000e70: 68fb ldr r3, [r7, #12] + 8000e72: 4313 orrs r3, r2 + 8000e74: 613b str r3, [r7, #16] } EXTI->IMR = temp; - 8000e0a: 4a13 ldr r2, [pc, #76] @ (8000e58 ) - 8000e0c: 693b ldr r3, [r7, #16] - 8000e0e: 6013 str r3, [r2, #0] + 8000e76: 4a13 ldr r2, [pc, #76] @ (8000ec4 ) + 8000e78: 693b ldr r3, [r7, #16] + 8000e7a: 6013 str r3, [r2, #0] } } position++; - 8000e10: 697b ldr r3, [r7, #20] - 8000e12: 3301 adds r3, #1 - 8000e14: 617b str r3, [r7, #20] + 8000e7c: 697b ldr r3, [r7, #20] + 8000e7e: 3301 adds r3, #1 + 8000e80: 617b str r3, [r7, #20] while (((GPIO_Init->Pin) >> position) != 0) - 8000e16: 683b ldr r3, [r7, #0] - 8000e18: 681a ldr r2, [r3, #0] - 8000e1a: 697b ldr r3, [r7, #20] - 8000e1c: fa22 f303 lsr.w r3, r2, r3 - 8000e20: 2b00 cmp r3, #0 - 8000e22: f47f ae97 bne.w 8000b54 + 8000e82: 683b ldr r3, [r7, #0] + 8000e84: 681a ldr r2, [r3, #0] + 8000e86: 697b ldr r3, [r7, #20] + 8000e88: fa22 f303 lsr.w r3, r2, r3 + 8000e8c: 2b00 cmp r3, #0 + 8000e8e: f47f ae97 bne.w 8000bc0 } } - 8000e26: bf00 nop - 8000e28: bf00 nop - 8000e2a: 371c adds r7, #28 - 8000e2c: 46bd mov sp, r7 - 8000e2e: bc80 pop {r7} - 8000e30: 4770 bx lr - 8000e32: bf00 nop - 8000e34: 40023800 .word 0x40023800 - 8000e38: 40010000 .word 0x40010000 - 8000e3c: 40020000 .word 0x40020000 - 8000e40: 40020400 .word 0x40020400 - 8000e44: 40020800 .word 0x40020800 - 8000e48: 40020c00 .word 0x40020c00 - 8000e4c: 40021000 .word 0x40021000 - 8000e50: 40021400 .word 0x40021400 - 8000e54: 40021800 .word 0x40021800 - 8000e58: 40010400 .word 0x40010400 + 8000e92: bf00 nop + 8000e94: bf00 nop + 8000e96: 371c adds r7, #28 + 8000e98: 46bd mov sp, r7 + 8000e9a: bc80 pop {r7} + 8000e9c: 4770 bx lr + 8000e9e: bf00 nop + 8000ea0: 40023800 .word 0x40023800 + 8000ea4: 40010000 .word 0x40010000 + 8000ea8: 40020000 .word 0x40020000 + 8000eac: 40020400 .word 0x40020400 + 8000eb0: 40020800 .word 0x40020800 + 8000eb4: 40020c00 .word 0x40020c00 + 8000eb8: 40021000 .word 0x40021000 + 8000ebc: 40021400 .word 0x40021400 + 8000ec0: 40021800 .word 0x40021800 + 8000ec4: 40010400 .word 0x40010400 -08000e5c : +08000ec8 : * @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) { - 8000e5c: b480 push {r7} - 8000e5e: b083 sub sp, #12 - 8000e60: af00 add r7, sp, #0 - 8000e62: 6078 str r0, [r7, #4] - 8000e64: 460b mov r3, r1 - 8000e66: 807b strh r3, [r7, #2] - 8000e68: 4613 mov r3, r2 - 8000e6a: 707b strb r3, [r7, #1] + 8000ec8: b480 push {r7} + 8000eca: b083 sub sp, #12 + 8000ecc: af00 add r7, sp, #0 + 8000ece: 6078 str r0, [r7, #4] + 8000ed0: 460b mov r3, r1 + 8000ed2: 807b strh r3, [r7, #2] + 8000ed4: 4613 mov r3, r2 + 8000ed6: 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) - 8000e6c: 787b ldrb r3, [r7, #1] - 8000e6e: 2b00 cmp r3, #0 - 8000e70: d003 beq.n 8000e7a + 8000ed8: 787b ldrb r3, [r7, #1] + 8000eda: 2b00 cmp r3, #0 + 8000edc: d003 beq.n 8000ee6 { GPIOx->BSRR = (uint32_t)GPIO_Pin; - 8000e72: 887a ldrh r2, [r7, #2] - 8000e74: 687b ldr r3, [r7, #4] - 8000e76: 619a str r2, [r3, #24] + 8000ede: 887a ldrh r2, [r7, #2] + 8000ee0: 687b ldr r3, [r7, #4] + 8000ee2: 619a str r2, [r3, #24] } else { GPIOx->BSRR = (uint32_t)GPIO_Pin << 16 ; } } - 8000e78: e003 b.n 8000e82 + 8000ee4: e003 b.n 8000eee GPIOx->BSRR = (uint32_t)GPIO_Pin << 16 ; - 8000e7a: 887b ldrh r3, [r7, #2] - 8000e7c: 041a lsls r2, r3, #16 - 8000e7e: 687b ldr r3, [r7, #4] - 8000e80: 619a str r2, [r3, #24] + 8000ee6: 887b ldrh r3, [r7, #2] + 8000ee8: 041a lsls r2, r3, #16 + 8000eea: 687b ldr r3, [r7, #4] + 8000eec: 619a str r2, [r3, #24] } - 8000e82: bf00 nop - 8000e84: 370c adds r7, #12 - 8000e86: 46bd mov sp, r7 - 8000e88: bc80 pop {r7} - 8000e8a: 4770 bx lr + 8000eee: bf00 nop + 8000ef0: 370c adds r7, #12 + 8000ef2: 46bd mov sp, r7 + 8000ef4: bc80 pop {r7} + 8000ef6: 4770 bx lr -08000e8c : +08000ef8 : * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains * the configuration information for the specified I2C. * @retval HAL status */ HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c) { - 8000e8c: b580 push {r7, lr} - 8000e8e: b084 sub sp, #16 - 8000e90: af00 add r7, sp, #0 - 8000e92: 6078 str r0, [r7, #4] + 8000ef8: b580 push {r7, lr} + 8000efa: b084 sub sp, #16 + 8000efc: af00 add r7, sp, #0 + 8000efe: 6078 str r0, [r7, #4] uint32_t freqrange; uint32_t pclk1; /* Check the I2C handle allocation */ if (hi2c == NULL) - 8000e94: 687b ldr r3, [r7, #4] - 8000e96: 2b00 cmp r3, #0 - 8000e98: d101 bne.n 8000e9e + 8000f00: 687b ldr r3, [r7, #4] + 8000f02: 2b00 cmp r3, #0 + 8000f04: d101 bne.n 8000f0a { return HAL_ERROR; - 8000e9a: 2301 movs r3, #1 - 8000e9c: e12b b.n 80010f6 + 8000f06: 2301 movs r3, #1 + 8000f08: e12b b.n 8001162 assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); if (hi2c->State == HAL_I2C_STATE_RESET) - 8000e9e: 687b ldr r3, [r7, #4] - 8000ea0: f893 303d ldrb.w r3, [r3, #61] @ 0x3d - 8000ea4: b2db uxtb r3, r3 - 8000ea6: 2b00 cmp r3, #0 - 8000ea8: d106 bne.n 8000eb8 + 8000f0a: 687b ldr r3, [r7, #4] + 8000f0c: f893 303d ldrb.w r3, [r3, #61] @ 0x3d + 8000f10: b2db uxtb r3, r3 + 8000f12: 2b00 cmp r3, #0 + 8000f14: d106 bne.n 8000f24 { /* Allocate lock resource and initialize it */ hi2c->Lock = HAL_UNLOCKED; - 8000eaa: 687b ldr r3, [r7, #4] - 8000eac: 2200 movs r2, #0 - 8000eae: f883 203c strb.w r2, [r3, #60] @ 0x3c + 8000f16: 687b ldr r3, [r7, #4] + 8000f18: 2200 movs r2, #0 + 8000f1a: f883 203c strb.w r2, [r3, #60] @ 0x3c /* Init the low level hardware : GPIO, CLOCK, NVIC */ hi2c->MspInitCallback(hi2c); #else /* Init the low level hardware : GPIO, CLOCK, NVIC */ HAL_I2C_MspInit(hi2c); - 8000eb2: 6878 ldr r0, [r7, #4] - 8000eb4: f7ff fc32 bl 800071c + 8000f1e: 6878 ldr r0, [r7, #4] + 8000f20: f7ff fc32 bl 8000788 #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ } hi2c->State = HAL_I2C_STATE_BUSY; - 8000eb8: 687b ldr r3, [r7, #4] - 8000eba: 2224 movs r2, #36 @ 0x24 - 8000ebc: f883 203d strb.w r2, [r3, #61] @ 0x3d + 8000f24: 687b ldr r3, [r7, #4] + 8000f26: 2224 movs r2, #36 @ 0x24 + 8000f28: f883 203d strb.w r2, [r3, #61] @ 0x3d /* Disable the selected I2C peripheral */ __HAL_I2C_DISABLE(hi2c); - 8000ec0: 687b ldr r3, [r7, #4] - 8000ec2: 681b ldr r3, [r3, #0] - 8000ec4: 681a ldr r2, [r3, #0] - 8000ec6: 687b ldr r3, [r7, #4] - 8000ec8: 681b ldr r3, [r3, #0] - 8000eca: f022 0201 bic.w r2, r2, #1 - 8000ece: 601a str r2, [r3, #0] + 8000f2c: 687b ldr r3, [r7, #4] + 8000f2e: 681b ldr r3, [r3, #0] + 8000f30: 681a ldr r2, [r3, #0] + 8000f32: 687b ldr r3, [r7, #4] + 8000f34: 681b ldr r3, [r3, #0] + 8000f36: f022 0201 bic.w r2, r2, #1 + 8000f3a: 601a str r2, [r3, #0] /*Reset I2C*/ hi2c->Instance->CR1 |= I2C_CR1_SWRST; - 8000ed0: 687b ldr r3, [r7, #4] - 8000ed2: 681b ldr r3, [r3, #0] - 8000ed4: 681a ldr r2, [r3, #0] - 8000ed6: 687b ldr r3, [r7, #4] - 8000ed8: 681b ldr r3, [r3, #0] - 8000eda: f442 4200 orr.w r2, r2, #32768 @ 0x8000 - 8000ede: 601a str r2, [r3, #0] + 8000f3c: 687b ldr r3, [r7, #4] + 8000f3e: 681b ldr r3, [r3, #0] + 8000f40: 681a ldr r2, [r3, #0] + 8000f42: 687b ldr r3, [r7, #4] + 8000f44: 681b ldr r3, [r3, #0] + 8000f46: f442 4200 orr.w r2, r2, #32768 @ 0x8000 + 8000f4a: 601a str r2, [r3, #0] hi2c->Instance->CR1 &= ~I2C_CR1_SWRST; - 8000ee0: 687b ldr r3, [r7, #4] - 8000ee2: 681b ldr r3, [r3, #0] - 8000ee4: 681a ldr r2, [r3, #0] - 8000ee6: 687b ldr r3, [r7, #4] - 8000ee8: 681b ldr r3, [r3, #0] - 8000eea: f422 4200 bic.w r2, r2, #32768 @ 0x8000 - 8000eee: 601a str r2, [r3, #0] + 8000f4c: 687b ldr r3, [r7, #4] + 8000f4e: 681b ldr r3, [r3, #0] + 8000f50: 681a ldr r2, [r3, #0] + 8000f52: 687b ldr r3, [r7, #4] + 8000f54: 681b ldr r3, [r3, #0] + 8000f56: f422 4200 bic.w r2, r2, #32768 @ 0x8000 + 8000f5a: 601a str r2, [r3, #0] /* Get PCLK1 frequency */ pclk1 = HAL_RCC_GetPCLK1Freq(); - 8000ef0: f001 fcf2 bl 80028d8 - 8000ef4: 60f8 str r0, [r7, #12] + 8000f5c: f001 fcf2 bl 8002944 + 8000f60: 60f8 str r0, [r7, #12] /* Check the minimum allowed PCLK1 frequency */ if (I2C_MIN_PCLK_FREQ(pclk1, hi2c->Init.ClockSpeed) == 1U) - 8000ef6: 687b ldr r3, [r7, #4] - 8000ef8: 685b ldr r3, [r3, #4] - 8000efa: 4a81 ldr r2, [pc, #516] @ (8001100 ) - 8000efc: 4293 cmp r3, r2 - 8000efe: d807 bhi.n 8000f10 - 8000f00: 68fb ldr r3, [r7, #12] - 8000f02: 4a80 ldr r2, [pc, #512] @ (8001104 ) - 8000f04: 4293 cmp r3, r2 - 8000f06: bf94 ite ls - 8000f08: 2301 movls r3, #1 - 8000f0a: 2300 movhi r3, #0 - 8000f0c: b2db uxtb r3, r3 - 8000f0e: e006 b.n 8000f1e - 8000f10: 68fb ldr r3, [r7, #12] - 8000f12: 4a7d ldr r2, [pc, #500] @ (8001108 ) - 8000f14: 4293 cmp r3, r2 - 8000f16: bf94 ite ls - 8000f18: 2301 movls r3, #1 - 8000f1a: 2300 movhi r3, #0 - 8000f1c: b2db uxtb r3, r3 - 8000f1e: 2b00 cmp r3, #0 - 8000f20: d001 beq.n 8000f26 + 8000f62: 687b ldr r3, [r7, #4] + 8000f64: 685b ldr r3, [r3, #4] + 8000f66: 4a81 ldr r2, [pc, #516] @ (800116c ) + 8000f68: 4293 cmp r3, r2 + 8000f6a: d807 bhi.n 8000f7c + 8000f6c: 68fb ldr r3, [r7, #12] + 8000f6e: 4a80 ldr r2, [pc, #512] @ (8001170 ) + 8000f70: 4293 cmp r3, r2 + 8000f72: bf94 ite ls + 8000f74: 2301 movls r3, #1 + 8000f76: 2300 movhi r3, #0 + 8000f78: b2db uxtb r3, r3 + 8000f7a: e006 b.n 8000f8a + 8000f7c: 68fb ldr r3, [r7, #12] + 8000f7e: 4a7d ldr r2, [pc, #500] @ (8001174 ) + 8000f80: 4293 cmp r3, r2 + 8000f82: bf94 ite ls + 8000f84: 2301 movls r3, #1 + 8000f86: 2300 movhi r3, #0 + 8000f88: b2db uxtb r3, r3 + 8000f8a: 2b00 cmp r3, #0 + 8000f8c: d001 beq.n 8000f92 { return HAL_ERROR; - 8000f22: 2301 movs r3, #1 - 8000f24: e0e7 b.n 80010f6 + 8000f8e: 2301 movs r3, #1 + 8000f90: e0e7 b.n 8001162 } /* Calculate frequency range */ freqrange = I2C_FREQRANGE(pclk1); - 8000f26: 68fb ldr r3, [r7, #12] - 8000f28: 4a78 ldr r2, [pc, #480] @ (800110c ) - 8000f2a: fba2 2303 umull r2, r3, r2, r3 - 8000f2e: 0c9b lsrs r3, r3, #18 - 8000f30: 60bb str r3, [r7, #8] + 8000f92: 68fb ldr r3, [r7, #12] + 8000f94: 4a78 ldr r2, [pc, #480] @ (8001178 ) + 8000f96: fba2 2303 umull r2, r3, r2, r3 + 8000f9a: 0c9b lsrs r3, r3, #18 + 8000f9c: 60bb str r3, [r7, #8] /*---------------------------- I2Cx CR2 Configuration ----------------------*/ /* Configure I2Cx: Frequency range */ MODIFY_REG(hi2c->Instance->CR2, I2C_CR2_FREQ, freqrange); - 8000f32: 687b ldr r3, [r7, #4] - 8000f34: 681b ldr r3, [r3, #0] - 8000f36: 685b ldr r3, [r3, #4] - 8000f38: f023 013f bic.w r1, r3, #63 @ 0x3f - 8000f3c: 687b ldr r3, [r7, #4] - 8000f3e: 681b ldr r3, [r3, #0] - 8000f40: 68ba ldr r2, [r7, #8] - 8000f42: 430a orrs r2, r1 - 8000f44: 605a str r2, [r3, #4] + 8000f9e: 687b ldr r3, [r7, #4] + 8000fa0: 681b ldr r3, [r3, #0] + 8000fa2: 685b ldr r3, [r3, #4] + 8000fa4: f023 013f bic.w r1, r3, #63 @ 0x3f + 8000fa8: 687b ldr r3, [r7, #4] + 8000faa: 681b ldr r3, [r3, #0] + 8000fac: 68ba ldr r2, [r7, #8] + 8000fae: 430a orrs r2, r1 + 8000fb0: 605a str r2, [r3, #4] /*---------------------------- I2Cx TRISE Configuration --------------------*/ /* Configure I2Cx: Rise Time */ MODIFY_REG(hi2c->Instance->TRISE, I2C_TRISE_TRISE, I2C_RISE_TIME(freqrange, hi2c->Init.ClockSpeed)); - 8000f46: 687b ldr r3, [r7, #4] - 8000f48: 681b ldr r3, [r3, #0] - 8000f4a: 6a1b ldr r3, [r3, #32] - 8000f4c: f023 013f bic.w r1, r3, #63 @ 0x3f - 8000f50: 687b ldr r3, [r7, #4] - 8000f52: 685b ldr r3, [r3, #4] - 8000f54: 4a6a ldr r2, [pc, #424] @ (8001100 ) - 8000f56: 4293 cmp r3, r2 - 8000f58: d802 bhi.n 8000f60 - 8000f5a: 68bb ldr r3, [r7, #8] - 8000f5c: 3301 adds r3, #1 - 8000f5e: e009 b.n 8000f74 - 8000f60: 68bb ldr r3, [r7, #8] - 8000f62: f44f 7296 mov.w r2, #300 @ 0x12c - 8000f66: fb02 f303 mul.w r3, r2, r3 - 8000f6a: 4a69 ldr r2, [pc, #420] @ (8001110 ) - 8000f6c: fba2 2303 umull r2, r3, r2, r3 - 8000f70: 099b lsrs r3, r3, #6 - 8000f72: 3301 adds r3, #1 - 8000f74: 687a ldr r2, [r7, #4] - 8000f76: 6812 ldr r2, [r2, #0] - 8000f78: 430b orrs r3, r1 - 8000f7a: 6213 str r3, [r2, #32] + 8000fb2: 687b ldr r3, [r7, #4] + 8000fb4: 681b ldr r3, [r3, #0] + 8000fb6: 6a1b ldr r3, [r3, #32] + 8000fb8: f023 013f bic.w r1, r3, #63 @ 0x3f + 8000fbc: 687b ldr r3, [r7, #4] + 8000fbe: 685b ldr r3, [r3, #4] + 8000fc0: 4a6a ldr r2, [pc, #424] @ (800116c ) + 8000fc2: 4293 cmp r3, r2 + 8000fc4: d802 bhi.n 8000fcc + 8000fc6: 68bb ldr r3, [r7, #8] + 8000fc8: 3301 adds r3, #1 + 8000fca: e009 b.n 8000fe0 + 8000fcc: 68bb ldr r3, [r7, #8] + 8000fce: f44f 7296 mov.w r2, #300 @ 0x12c + 8000fd2: fb02 f303 mul.w r3, r2, r3 + 8000fd6: 4a69 ldr r2, [pc, #420] @ (800117c ) + 8000fd8: fba2 2303 umull r2, r3, r2, r3 + 8000fdc: 099b lsrs r3, r3, #6 + 8000fde: 3301 adds r3, #1 + 8000fe0: 687a ldr r2, [r7, #4] + 8000fe2: 6812 ldr r2, [r2, #0] + 8000fe4: 430b orrs r3, r1 + 8000fe6: 6213 str r3, [r2, #32] /*---------------------------- I2Cx CCR Configuration ----------------------*/ /* Configure I2Cx: Speed */ MODIFY_REG(hi2c->Instance->CCR, (I2C_CCR_FS | I2C_CCR_DUTY | I2C_CCR_CCR), I2C_SPEED(pclk1, hi2c->Init.ClockSpeed, hi2c->Init.DutyCycle)); - 8000f7c: 687b ldr r3, [r7, #4] - 8000f7e: 681b ldr r3, [r3, #0] - 8000f80: 69db ldr r3, [r3, #28] - 8000f82: f423 424f bic.w r2, r3, #52992 @ 0xcf00 - 8000f86: f022 02ff bic.w r2, r2, #255 @ 0xff - 8000f8a: 687b ldr r3, [r7, #4] - 8000f8c: 685b ldr r3, [r3, #4] - 8000f8e: 495c ldr r1, [pc, #368] @ (8001100 ) - 8000f90: 428b cmp r3, r1 - 8000f92: d819 bhi.n 8000fc8 - 8000f94: 68fb ldr r3, [r7, #12] - 8000f96: 1e59 subs r1, r3, #1 - 8000f98: 687b ldr r3, [r7, #4] - 8000f9a: 685b ldr r3, [r3, #4] - 8000f9c: 005b lsls r3, r3, #1 - 8000f9e: fbb1 f3f3 udiv r3, r1, r3 - 8000fa2: 1c59 adds r1, r3, #1 - 8000fa4: f640 73fc movw r3, #4092 @ 0xffc - 8000fa8: 400b ands r3, r1 - 8000faa: 2b00 cmp r3, #0 - 8000fac: d00a beq.n 8000fc4 - 8000fae: 68fb ldr r3, [r7, #12] - 8000fb0: 1e59 subs r1, r3, #1 - 8000fb2: 687b ldr r3, [r7, #4] - 8000fb4: 685b ldr r3, [r3, #4] - 8000fb6: 005b lsls r3, r3, #1 - 8000fb8: fbb1 f3f3 udiv r3, r1, r3 - 8000fbc: 3301 adds r3, #1 - 8000fbe: f3c3 030b ubfx r3, r3, #0, #12 - 8000fc2: e051 b.n 8001068 - 8000fc4: 2304 movs r3, #4 - 8000fc6: e04f b.n 8001068 - 8000fc8: 687b ldr r3, [r7, #4] - 8000fca: 689b ldr r3, [r3, #8] - 8000fcc: 2b00 cmp r3, #0 - 8000fce: d111 bne.n 8000ff4 - 8000fd0: 68fb ldr r3, [r7, #12] - 8000fd2: 1e58 subs r0, r3, #1 - 8000fd4: 687b ldr r3, [r7, #4] - 8000fd6: 6859 ldr r1, [r3, #4] - 8000fd8: 460b mov r3, r1 - 8000fda: 005b lsls r3, r3, #1 - 8000fdc: 440b add r3, r1 - 8000fde: fbb0 f3f3 udiv r3, r0, r3 - 8000fe2: 3301 adds r3, #1 - 8000fe4: f3c3 030b ubfx r3, r3, #0, #12 - 8000fe8: 2b00 cmp r3, #0 - 8000fea: bf0c ite eq - 8000fec: 2301 moveq r3, #1 - 8000fee: 2300 movne r3, #0 - 8000ff0: b2db uxtb r3, r3 - 8000ff2: e012 b.n 800101a - 8000ff4: 68fb ldr r3, [r7, #12] - 8000ff6: 1e58 subs r0, r3, #1 - 8000ff8: 687b ldr r3, [r7, #4] - 8000ffa: 6859 ldr r1, [r3, #4] - 8000ffc: 460b mov r3, r1 - 8000ffe: 009b lsls r3, r3, #2 - 8001000: 440b add r3, r1 - 8001002: 0099 lsls r1, r3, #2 - 8001004: 440b add r3, r1 - 8001006: fbb0 f3f3 udiv r3, r0, r3 - 800100a: 3301 adds r3, #1 - 800100c: f3c3 030b ubfx r3, r3, #0, #12 - 8001010: 2b00 cmp r3, #0 - 8001012: bf0c ite eq - 8001014: 2301 moveq r3, #1 - 8001016: 2300 movne r3, #0 - 8001018: b2db uxtb r3, r3 - 800101a: 2b00 cmp r3, #0 - 800101c: d001 beq.n 8001022 - 800101e: 2301 movs r3, #1 - 8001020: e022 b.n 8001068 - 8001022: 687b ldr r3, [r7, #4] - 8001024: 689b ldr r3, [r3, #8] - 8001026: 2b00 cmp r3, #0 - 8001028: d10e bne.n 8001048 - 800102a: 68fb ldr r3, [r7, #12] - 800102c: 1e58 subs r0, r3, #1 - 800102e: 687b ldr r3, [r7, #4] - 8001030: 6859 ldr r1, [r3, #4] - 8001032: 460b mov r3, r1 - 8001034: 005b lsls r3, r3, #1 - 8001036: 440b add r3, r1 - 8001038: fbb0 f3f3 udiv r3, r0, r3 - 800103c: 3301 adds r3, #1 - 800103e: f3c3 030b ubfx r3, r3, #0, #12 - 8001042: f443 4300 orr.w r3, r3, #32768 @ 0x8000 - 8001046: e00f b.n 8001068 - 8001048: 68fb ldr r3, [r7, #12] - 800104a: 1e58 subs r0, r3, #1 - 800104c: 687b ldr r3, [r7, #4] - 800104e: 6859 ldr r1, [r3, #4] - 8001050: 460b mov r3, r1 - 8001052: 009b lsls r3, r3, #2 - 8001054: 440b add r3, r1 - 8001056: 0099 lsls r1, r3, #2 - 8001058: 440b add r3, r1 - 800105a: fbb0 f3f3 udiv r3, r0, r3 - 800105e: 3301 adds r3, #1 - 8001060: f3c3 030b ubfx r3, r3, #0, #12 - 8001064: f443 4340 orr.w r3, r3, #49152 @ 0xc000 - 8001068: 6879 ldr r1, [r7, #4] - 800106a: 6809 ldr r1, [r1, #0] - 800106c: 4313 orrs r3, r2 - 800106e: 61cb str r3, [r1, #28] + 8000fe8: 687b ldr r3, [r7, #4] + 8000fea: 681b ldr r3, [r3, #0] + 8000fec: 69db ldr r3, [r3, #28] + 8000fee: f423 424f bic.w r2, r3, #52992 @ 0xcf00 + 8000ff2: f022 02ff bic.w r2, r2, #255 @ 0xff + 8000ff6: 687b ldr r3, [r7, #4] + 8000ff8: 685b ldr r3, [r3, #4] + 8000ffa: 495c ldr r1, [pc, #368] @ (800116c ) + 8000ffc: 428b cmp r3, r1 + 8000ffe: d819 bhi.n 8001034 + 8001000: 68fb ldr r3, [r7, #12] + 8001002: 1e59 subs r1, r3, #1 + 8001004: 687b ldr r3, [r7, #4] + 8001006: 685b ldr r3, [r3, #4] + 8001008: 005b lsls r3, r3, #1 + 800100a: fbb1 f3f3 udiv r3, r1, r3 + 800100e: 1c59 adds r1, r3, #1 + 8001010: f640 73fc movw r3, #4092 @ 0xffc + 8001014: 400b ands r3, r1 + 8001016: 2b00 cmp r3, #0 + 8001018: d00a beq.n 8001030 + 800101a: 68fb ldr r3, [r7, #12] + 800101c: 1e59 subs r1, r3, #1 + 800101e: 687b ldr r3, [r7, #4] + 8001020: 685b ldr r3, [r3, #4] + 8001022: 005b lsls r3, r3, #1 + 8001024: fbb1 f3f3 udiv r3, r1, r3 + 8001028: 3301 adds r3, #1 + 800102a: f3c3 030b ubfx r3, r3, #0, #12 + 800102e: e051 b.n 80010d4 + 8001030: 2304 movs r3, #4 + 8001032: e04f b.n 80010d4 + 8001034: 687b ldr r3, [r7, #4] + 8001036: 689b ldr r3, [r3, #8] + 8001038: 2b00 cmp r3, #0 + 800103a: d111 bne.n 8001060 + 800103c: 68fb ldr r3, [r7, #12] + 800103e: 1e58 subs r0, r3, #1 + 8001040: 687b ldr r3, [r7, #4] + 8001042: 6859 ldr r1, [r3, #4] + 8001044: 460b mov r3, r1 + 8001046: 005b lsls r3, r3, #1 + 8001048: 440b add r3, r1 + 800104a: fbb0 f3f3 udiv r3, r0, r3 + 800104e: 3301 adds r3, #1 + 8001050: f3c3 030b ubfx r3, r3, #0, #12 + 8001054: 2b00 cmp r3, #0 + 8001056: bf0c ite eq + 8001058: 2301 moveq r3, #1 + 800105a: 2300 movne r3, #0 + 800105c: b2db uxtb r3, r3 + 800105e: e012 b.n 8001086 + 8001060: 68fb ldr r3, [r7, #12] + 8001062: 1e58 subs r0, r3, #1 + 8001064: 687b ldr r3, [r7, #4] + 8001066: 6859 ldr r1, [r3, #4] + 8001068: 460b mov r3, r1 + 800106a: 009b lsls r3, r3, #2 + 800106c: 440b add r3, r1 + 800106e: 0099 lsls r1, r3, #2 + 8001070: 440b add r3, r1 + 8001072: fbb0 f3f3 udiv r3, r0, r3 + 8001076: 3301 adds r3, #1 + 8001078: f3c3 030b ubfx r3, r3, #0, #12 + 800107c: 2b00 cmp r3, #0 + 800107e: bf0c ite eq + 8001080: 2301 moveq r3, #1 + 8001082: 2300 movne r3, #0 + 8001084: b2db uxtb r3, r3 + 8001086: 2b00 cmp r3, #0 + 8001088: d001 beq.n 800108e + 800108a: 2301 movs r3, #1 + 800108c: e022 b.n 80010d4 + 800108e: 687b ldr r3, [r7, #4] + 8001090: 689b ldr r3, [r3, #8] + 8001092: 2b00 cmp r3, #0 + 8001094: d10e bne.n 80010b4 + 8001096: 68fb ldr r3, [r7, #12] + 8001098: 1e58 subs r0, r3, #1 + 800109a: 687b ldr r3, [r7, #4] + 800109c: 6859 ldr r1, [r3, #4] + 800109e: 460b mov r3, r1 + 80010a0: 005b lsls r3, r3, #1 + 80010a2: 440b add r3, r1 + 80010a4: fbb0 f3f3 udiv r3, r0, r3 + 80010a8: 3301 adds r3, #1 + 80010aa: f3c3 030b ubfx r3, r3, #0, #12 + 80010ae: f443 4300 orr.w r3, r3, #32768 @ 0x8000 + 80010b2: e00f b.n 80010d4 + 80010b4: 68fb ldr r3, [r7, #12] + 80010b6: 1e58 subs r0, r3, #1 + 80010b8: 687b ldr r3, [r7, #4] + 80010ba: 6859 ldr r1, [r3, #4] + 80010bc: 460b mov r3, r1 + 80010be: 009b lsls r3, r3, #2 + 80010c0: 440b add r3, r1 + 80010c2: 0099 lsls r1, r3, #2 + 80010c4: 440b add r3, r1 + 80010c6: fbb0 f3f3 udiv r3, r0, r3 + 80010ca: 3301 adds r3, #1 + 80010cc: f3c3 030b ubfx r3, r3, #0, #12 + 80010d0: f443 4340 orr.w r3, r3, #49152 @ 0xc000 + 80010d4: 6879 ldr r1, [r7, #4] + 80010d6: 6809 ldr r1, [r1, #0] + 80010d8: 4313 orrs r3, r2 + 80010da: 61cb str r3, [r1, #28] /*---------------------------- I2Cx CR1 Configuration ----------------------*/ /* Configure I2Cx: Generalcall and NoStretch mode */ MODIFY_REG(hi2c->Instance->CR1, (I2C_CR1_ENGC | I2C_CR1_NOSTRETCH), (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode)); - 8001070: 687b ldr r3, [r7, #4] - 8001072: 681b ldr r3, [r3, #0] - 8001074: 681b ldr r3, [r3, #0] - 8001076: f023 01c0 bic.w r1, r3, #192 @ 0xc0 - 800107a: 687b ldr r3, [r7, #4] - 800107c: 69da ldr r2, [r3, #28] - 800107e: 687b ldr r3, [r7, #4] - 8001080: 6a1b ldr r3, [r3, #32] - 8001082: 431a orrs r2, r3 - 8001084: 687b ldr r3, [r7, #4] - 8001086: 681b ldr r3, [r3, #0] - 8001088: 430a orrs r2, r1 - 800108a: 601a str r2, [r3, #0] + 80010dc: 687b ldr r3, [r7, #4] + 80010de: 681b ldr r3, [r3, #0] + 80010e0: 681b ldr r3, [r3, #0] + 80010e2: f023 01c0 bic.w r1, r3, #192 @ 0xc0 + 80010e6: 687b ldr r3, [r7, #4] + 80010e8: 69da ldr r2, [r3, #28] + 80010ea: 687b ldr r3, [r7, #4] + 80010ec: 6a1b ldr r3, [r3, #32] + 80010ee: 431a orrs r2, r3 + 80010f0: 687b ldr r3, [r7, #4] + 80010f2: 681b ldr r3, [r3, #0] + 80010f4: 430a orrs r2, r1 + 80010f6: 601a str r2, [r3, #0] /*---------------------------- I2Cx OAR1 Configuration ---------------------*/ /* Configure I2Cx: Own Address1 and addressing mode */ MODIFY_REG(hi2c->Instance->OAR1, (I2C_OAR1_ADDMODE | I2C_OAR1_ADD8_9 | I2C_OAR1_ADD1_7 | I2C_OAR1_ADD0), (hi2c->Init.AddressingMode | hi2c->Init.OwnAddress1)); - 800108c: 687b ldr r3, [r7, #4] - 800108e: 681b ldr r3, [r3, #0] - 8001090: 689b ldr r3, [r3, #8] - 8001092: f423 4303 bic.w r3, r3, #33536 @ 0x8300 - 8001096: f023 03ff bic.w r3, r3, #255 @ 0xff - 800109a: 687a ldr r2, [r7, #4] - 800109c: 6911 ldr r1, [r2, #16] - 800109e: 687a ldr r2, [r7, #4] - 80010a0: 68d2 ldr r2, [r2, #12] - 80010a2: 4311 orrs r1, r2 - 80010a4: 687a ldr r2, [r7, #4] - 80010a6: 6812 ldr r2, [r2, #0] - 80010a8: 430b orrs r3, r1 - 80010aa: 6093 str r3, [r2, #8] + 80010f8: 687b ldr r3, [r7, #4] + 80010fa: 681b ldr r3, [r3, #0] + 80010fc: 689b ldr r3, [r3, #8] + 80010fe: f423 4303 bic.w r3, r3, #33536 @ 0x8300 + 8001102: f023 03ff bic.w r3, r3, #255 @ 0xff + 8001106: 687a ldr r2, [r7, #4] + 8001108: 6911 ldr r1, [r2, #16] + 800110a: 687a ldr r2, [r7, #4] + 800110c: 68d2 ldr r2, [r2, #12] + 800110e: 4311 orrs r1, r2 + 8001110: 687a ldr r2, [r7, #4] + 8001112: 6812 ldr r2, [r2, #0] + 8001114: 430b orrs r3, r1 + 8001116: 6093 str r3, [r2, #8] /*---------------------------- I2Cx OAR2 Configuration ---------------------*/ /* Configure I2Cx: Dual mode and Own Address2 */ MODIFY_REG(hi2c->Instance->OAR2, (I2C_OAR2_ENDUAL | I2C_OAR2_ADD2), (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2)); - 80010ac: 687b ldr r3, [r7, #4] - 80010ae: 681b ldr r3, [r3, #0] - 80010b0: 68db ldr r3, [r3, #12] - 80010b2: f023 01ff bic.w r1, r3, #255 @ 0xff - 80010b6: 687b ldr r3, [r7, #4] - 80010b8: 695a ldr r2, [r3, #20] - 80010ba: 687b ldr r3, [r7, #4] - 80010bc: 699b ldr r3, [r3, #24] - 80010be: 431a orrs r2, r3 - 80010c0: 687b ldr r3, [r7, #4] - 80010c2: 681b ldr r3, [r3, #0] - 80010c4: 430a orrs r2, r1 - 80010c6: 60da str r2, [r3, #12] + 8001118: 687b ldr r3, [r7, #4] + 800111a: 681b ldr r3, [r3, #0] + 800111c: 68db ldr r3, [r3, #12] + 800111e: f023 01ff bic.w r1, r3, #255 @ 0xff + 8001122: 687b ldr r3, [r7, #4] + 8001124: 695a ldr r2, [r3, #20] + 8001126: 687b ldr r3, [r7, #4] + 8001128: 699b ldr r3, [r3, #24] + 800112a: 431a orrs r2, r3 + 800112c: 687b ldr r3, [r7, #4] + 800112e: 681b ldr r3, [r3, #0] + 8001130: 430a orrs r2, r1 + 8001132: 60da str r2, [r3, #12] /* Enable the selected I2C peripheral */ __HAL_I2C_ENABLE(hi2c); - 80010c8: 687b ldr r3, [r7, #4] - 80010ca: 681b ldr r3, [r3, #0] - 80010cc: 681a ldr r2, [r3, #0] - 80010ce: 687b ldr r3, [r7, #4] - 80010d0: 681b ldr r3, [r3, #0] - 80010d2: f042 0201 orr.w r2, r2, #1 - 80010d6: 601a str r2, [r3, #0] + 8001134: 687b ldr r3, [r7, #4] + 8001136: 681b ldr r3, [r3, #0] + 8001138: 681a ldr r2, [r3, #0] + 800113a: 687b ldr r3, [r7, #4] + 800113c: 681b ldr r3, [r3, #0] + 800113e: f042 0201 orr.w r2, r2, #1 + 8001142: 601a str r2, [r3, #0] hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 80010d8: 687b ldr r3, [r7, #4] - 80010da: 2200 movs r2, #0 - 80010dc: 641a str r2, [r3, #64] @ 0x40 + 8001144: 687b ldr r3, [r7, #4] + 8001146: 2200 movs r2, #0 + 8001148: 641a str r2, [r3, #64] @ 0x40 hi2c->State = HAL_I2C_STATE_READY; - 80010de: 687b ldr r3, [r7, #4] - 80010e0: 2220 movs r2, #32 - 80010e2: f883 203d strb.w r2, [r3, #61] @ 0x3d + 800114a: 687b ldr r3, [r7, #4] + 800114c: 2220 movs r2, #32 + 800114e: f883 203d strb.w r2, [r3, #61] @ 0x3d hi2c->PreviousState = I2C_STATE_NONE; - 80010e6: 687b ldr r3, [r7, #4] - 80010e8: 2200 movs r2, #0 - 80010ea: 631a str r2, [r3, #48] @ 0x30 + 8001152: 687b ldr r3, [r7, #4] + 8001154: 2200 movs r2, #0 + 8001156: 631a str r2, [r3, #48] @ 0x30 hi2c->Mode = HAL_I2C_MODE_NONE; - 80010ec: 687b ldr r3, [r7, #4] - 80010ee: 2200 movs r2, #0 - 80010f0: f883 203e strb.w r2, [r3, #62] @ 0x3e + 8001158: 687b ldr r3, [r7, #4] + 800115a: 2200 movs r2, #0 + 800115c: f883 203e strb.w r2, [r3, #62] @ 0x3e return HAL_OK; - 80010f4: 2300 movs r3, #0 + 8001160: 2300 movs r3, #0 } - 80010f6: 4618 mov r0, r3 - 80010f8: 3710 adds r7, #16 - 80010fa: 46bd mov sp, r7 - 80010fc: bd80 pop {r7, pc} - 80010fe: bf00 nop - 8001100: 000186a0 .word 0x000186a0 - 8001104: 001e847f .word 0x001e847f - 8001108: 003d08ff .word 0x003d08ff - 800110c: 431bde83 .word 0x431bde83 - 8001110: 10624dd3 .word 0x10624dd3 + 8001162: 4618 mov r0, r3 + 8001164: 3710 adds r7, #16 + 8001166: 46bd mov sp, r7 + 8001168: bd80 pop {r7, pc} + 800116a: bf00 nop + 800116c: 000186a0 .word 0x000186a0 + 8001170: 001e847f .word 0x001e847f + 8001174: 003d08ff .word 0x003d08ff + 8001178: 431bde83 .word 0x431bde83 + 800117c: 10624dd3 .word 0x10624dd3 -08001114 : +08001180 : * @param Size Amount of data to be sent * @param Timeout Timeout duration * @retval HAL status */ HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout) { - 8001114: b580 push {r7, lr} - 8001116: b088 sub sp, #32 - 8001118: af02 add r7, sp, #8 - 800111a: 60f8 str r0, [r7, #12] - 800111c: 607a str r2, [r7, #4] - 800111e: 461a mov r2, r3 - 8001120: 460b mov r3, r1 - 8001122: 817b strh r3, [r7, #10] - 8001124: 4613 mov r3, r2 - 8001126: 813b strh r3, [r7, #8] + 8001180: b580 push {r7, lr} + 8001182: b088 sub sp, #32 + 8001184: af02 add r7, sp, #8 + 8001186: 60f8 str r0, [r7, #12] + 8001188: 607a str r2, [r7, #4] + 800118a: 461a mov r2, r3 + 800118c: 460b mov r3, r1 + 800118e: 817b strh r3, [r7, #10] + 8001190: 4613 mov r3, r2 + 8001192: 813b strh r3, [r7, #8] /* Init tickstart for timeout management*/ uint32_t tickstart = HAL_GetTick(); - 8001128: f7ff fbf8 bl 800091c - 800112c: 6178 str r0, [r7, #20] + 8001194: f7ff fbf8 bl 8000988 + 8001198: 6178 str r0, [r7, #20] if (hi2c->State == HAL_I2C_STATE_READY) - 800112e: 68fb ldr r3, [r7, #12] - 8001130: f893 303d ldrb.w r3, [r3, #61] @ 0x3d - 8001134: b2db uxtb r3, r3 - 8001136: 2b20 cmp r3, #32 - 8001138: f040 80e0 bne.w 80012fc + 800119a: 68fb ldr r3, [r7, #12] + 800119c: f893 303d ldrb.w r3, [r3, #61] @ 0x3d + 80011a0: b2db uxtb r3, r3 + 80011a2: 2b20 cmp r3, #32 + 80011a4: f040 80e0 bne.w 8001368 { /* Wait until BUSY flag is reset */ if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_OK) - 800113c: 697b ldr r3, [r7, #20] - 800113e: 9300 str r3, [sp, #0] - 8001140: 2319 movs r3, #25 - 8001142: 2201 movs r2, #1 - 8001144: 4970 ldr r1, [pc, #448] @ (8001308 ) - 8001146: 68f8 ldr r0, [r7, #12] - 8001148: f000 fc64 bl 8001a14 - 800114c: 4603 mov r3, r0 - 800114e: 2b00 cmp r3, #0 - 8001150: d001 beq.n 8001156 + 80011a8: 697b ldr r3, [r7, #20] + 80011aa: 9300 str r3, [sp, #0] + 80011ac: 2319 movs r3, #25 + 80011ae: 2201 movs r2, #1 + 80011b0: 4970 ldr r1, [pc, #448] @ (8001374 ) + 80011b2: 68f8 ldr r0, [r7, #12] + 80011b4: f000 fc64 bl 8001a80 + 80011b8: 4603 mov r3, r0 + 80011ba: 2b00 cmp r3, #0 + 80011bc: d001 beq.n 80011c2 { return HAL_BUSY; - 8001152: 2302 movs r3, #2 - 8001154: e0d3 b.n 80012fe + 80011be: 2302 movs r3, #2 + 80011c0: e0d3 b.n 800136a } /* Process Locked */ __HAL_LOCK(hi2c); - 8001156: 68fb ldr r3, [r7, #12] - 8001158: f893 303c ldrb.w r3, [r3, #60] @ 0x3c - 800115c: 2b01 cmp r3, #1 - 800115e: d101 bne.n 8001164 - 8001160: 2302 movs r3, #2 - 8001162: e0cc b.n 80012fe - 8001164: 68fb ldr r3, [r7, #12] - 8001166: 2201 movs r2, #1 - 8001168: f883 203c strb.w r2, [r3, #60] @ 0x3c + 80011c2: 68fb ldr r3, [r7, #12] + 80011c4: f893 303c ldrb.w r3, [r3, #60] @ 0x3c + 80011c8: 2b01 cmp r3, #1 + 80011ca: d101 bne.n 80011d0 + 80011cc: 2302 movs r3, #2 + 80011ce: e0cc b.n 800136a + 80011d0: 68fb ldr r3, [r7, #12] + 80011d2: 2201 movs r2, #1 + 80011d4: f883 203c strb.w r2, [r3, #60] @ 0x3c /* Check if the I2C is already enabled */ if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) - 800116c: 68fb ldr r3, [r7, #12] - 800116e: 681b ldr r3, [r3, #0] - 8001170: 681b ldr r3, [r3, #0] - 8001172: f003 0301 and.w r3, r3, #1 - 8001176: 2b01 cmp r3, #1 - 8001178: d007 beq.n 800118a + 80011d8: 68fb ldr r3, [r7, #12] + 80011da: 681b ldr r3, [r3, #0] + 80011dc: 681b ldr r3, [r3, #0] + 80011de: f003 0301 and.w r3, r3, #1 + 80011e2: 2b01 cmp r3, #1 + 80011e4: d007 beq.n 80011f6 { /* Enable I2C peripheral */ __HAL_I2C_ENABLE(hi2c); - 800117a: 68fb ldr r3, [r7, #12] - 800117c: 681b ldr r3, [r3, #0] - 800117e: 681a ldr r2, [r3, #0] - 8001180: 68fb ldr r3, [r7, #12] - 8001182: 681b ldr r3, [r3, #0] - 8001184: f042 0201 orr.w r2, r2, #1 - 8001188: 601a str r2, [r3, #0] + 80011e6: 68fb ldr r3, [r7, #12] + 80011e8: 681b ldr r3, [r3, #0] + 80011ea: 681a ldr r2, [r3, #0] + 80011ec: 68fb ldr r3, [r7, #12] + 80011ee: 681b ldr r3, [r3, #0] + 80011f0: f042 0201 orr.w r2, r2, #1 + 80011f4: 601a str r2, [r3, #0] } /* Disable Pos */ CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); - 800118a: 68fb ldr r3, [r7, #12] - 800118c: 681b ldr r3, [r3, #0] - 800118e: 681a ldr r2, [r3, #0] - 8001190: 68fb ldr r3, [r7, #12] - 8001192: 681b ldr r3, [r3, #0] - 8001194: f422 6200 bic.w r2, r2, #2048 @ 0x800 - 8001198: 601a str r2, [r3, #0] + 80011f6: 68fb ldr r3, [r7, #12] + 80011f8: 681b ldr r3, [r3, #0] + 80011fa: 681a ldr r2, [r3, #0] + 80011fc: 68fb ldr r3, [r7, #12] + 80011fe: 681b ldr r3, [r3, #0] + 8001200: f422 6200 bic.w r2, r2, #2048 @ 0x800 + 8001204: 601a str r2, [r3, #0] hi2c->State = HAL_I2C_STATE_BUSY_TX; - 800119a: 68fb ldr r3, [r7, #12] - 800119c: 2221 movs r2, #33 @ 0x21 - 800119e: f883 203d strb.w r2, [r3, #61] @ 0x3d + 8001206: 68fb ldr r3, [r7, #12] + 8001208: 2221 movs r2, #33 @ 0x21 + 800120a: f883 203d strb.w r2, [r3, #61] @ 0x3d hi2c->Mode = HAL_I2C_MODE_MASTER; - 80011a2: 68fb ldr r3, [r7, #12] - 80011a4: 2210 movs r2, #16 - 80011a6: f883 203e strb.w r2, [r3, #62] @ 0x3e + 800120e: 68fb ldr r3, [r7, #12] + 8001210: 2210 movs r2, #16 + 8001212: f883 203e strb.w r2, [r3, #62] @ 0x3e hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 80011aa: 68fb ldr r3, [r7, #12] - 80011ac: 2200 movs r2, #0 - 80011ae: 641a str r2, [r3, #64] @ 0x40 + 8001216: 68fb ldr r3, [r7, #12] + 8001218: 2200 movs r2, #0 + 800121a: 641a str r2, [r3, #64] @ 0x40 /* Prepare transfer parameters */ hi2c->pBuffPtr = pData; - 80011b0: 68fb ldr r3, [r7, #12] - 80011b2: 687a ldr r2, [r7, #4] - 80011b4: 625a str r2, [r3, #36] @ 0x24 + 800121c: 68fb ldr r3, [r7, #12] + 800121e: 687a ldr r2, [r7, #4] + 8001220: 625a str r2, [r3, #36] @ 0x24 hi2c->XferCount = Size; - 80011b6: 68fb ldr r3, [r7, #12] - 80011b8: 893a ldrh r2, [r7, #8] - 80011ba: 855a strh r2, [r3, #42] @ 0x2a + 8001222: 68fb ldr r3, [r7, #12] + 8001224: 893a ldrh r2, [r7, #8] + 8001226: 855a strh r2, [r3, #42] @ 0x2a hi2c->XferSize = hi2c->XferCount; - 80011bc: 68fb ldr r3, [r7, #12] - 80011be: 8d5b ldrh r3, [r3, #42] @ 0x2a - 80011c0: b29a uxth r2, r3 - 80011c2: 68fb ldr r3, [r7, #12] - 80011c4: 851a strh r2, [r3, #40] @ 0x28 + 8001228: 68fb ldr r3, [r7, #12] + 800122a: 8d5b ldrh r3, [r3, #42] @ 0x2a + 800122c: b29a uxth r2, r3 + 800122e: 68fb ldr r3, [r7, #12] + 8001230: 851a strh r2, [r3, #40] @ 0x28 hi2c->XferOptions = I2C_NO_OPTION_FRAME; - 80011c6: 68fb ldr r3, [r7, #12] - 80011c8: 4a50 ldr r2, [pc, #320] @ (800130c ) - 80011ca: 62da str r2, [r3, #44] @ 0x2c + 8001232: 68fb ldr r3, [r7, #12] + 8001234: 4a50 ldr r2, [pc, #320] @ (8001378 ) + 8001236: 62da str r2, [r3, #44] @ 0x2c /* Send Slave Address */ if (I2C_MasterRequestWrite(hi2c, DevAddress, Timeout, tickstart) != HAL_OK) - 80011cc: 8979 ldrh r1, [r7, #10] - 80011ce: 697b ldr r3, [r7, #20] - 80011d0: 6a3a ldr r2, [r7, #32] - 80011d2: 68f8 ldr r0, [r7, #12] - 80011d4: f000 face bl 8001774 - 80011d8: 4603 mov r3, r0 - 80011da: 2b00 cmp r3, #0 - 80011dc: d001 beq.n 80011e2 + 8001238: 8979 ldrh r1, [r7, #10] + 800123a: 697b ldr r3, [r7, #20] + 800123c: 6a3a ldr r2, [r7, #32] + 800123e: 68f8 ldr r0, [r7, #12] + 8001240: f000 face bl 80017e0 + 8001244: 4603 mov r3, r0 + 8001246: 2b00 cmp r3, #0 + 8001248: d001 beq.n 800124e { return HAL_ERROR; - 80011de: 2301 movs r3, #1 - 80011e0: e08d b.n 80012fe + 800124a: 2301 movs r3, #1 + 800124c: e08d b.n 800136a } /* Clear ADDR flag */ __HAL_I2C_CLEAR_ADDRFLAG(hi2c); - 80011e2: 2300 movs r3, #0 - 80011e4: 613b str r3, [r7, #16] - 80011e6: 68fb ldr r3, [r7, #12] - 80011e8: 681b ldr r3, [r3, #0] - 80011ea: 695b ldr r3, [r3, #20] - 80011ec: 613b str r3, [r7, #16] - 80011ee: 68fb ldr r3, [r7, #12] - 80011f0: 681b ldr r3, [r3, #0] - 80011f2: 699b ldr r3, [r3, #24] - 80011f4: 613b str r3, [r7, #16] - 80011f6: 693b ldr r3, [r7, #16] + 800124e: 2300 movs r3, #0 + 8001250: 613b str r3, [r7, #16] + 8001252: 68fb ldr r3, [r7, #12] + 8001254: 681b ldr r3, [r3, #0] + 8001256: 695b ldr r3, [r3, #20] + 8001258: 613b str r3, [r7, #16] + 800125a: 68fb ldr r3, [r7, #12] + 800125c: 681b ldr r3, [r3, #0] + 800125e: 699b ldr r3, [r3, #24] + 8001260: 613b str r3, [r7, #16] + 8001262: 693b ldr r3, [r7, #16] while (hi2c->XferSize > 0U) - 80011f8: e066 b.n 80012c8 + 8001264: e066 b.n 8001334 { /* Wait until TXE flag is set */ if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) - 80011fa: 697a ldr r2, [r7, #20] - 80011fc: 6a39 ldr r1, [r7, #32] - 80011fe: 68f8 ldr r0, [r7, #12] - 8001200: f000 fd22 bl 8001c48 - 8001204: 4603 mov r3, r0 - 8001206: 2b00 cmp r3, #0 - 8001208: d00d beq.n 8001226 + 8001266: 697a ldr r2, [r7, #20] + 8001268: 6a39 ldr r1, [r7, #32] + 800126a: 68f8 ldr r0, [r7, #12] + 800126c: f000 fd22 bl 8001cb4 + 8001270: 4603 mov r3, r0 + 8001272: 2b00 cmp r3, #0 + 8001274: d00d beq.n 8001292 { if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) - 800120a: 68fb ldr r3, [r7, #12] - 800120c: 6c1b ldr r3, [r3, #64] @ 0x40 - 800120e: 2b04 cmp r3, #4 - 8001210: d107 bne.n 8001222 + 8001276: 68fb ldr r3, [r7, #12] + 8001278: 6c1b ldr r3, [r3, #64] @ 0x40 + 800127a: 2b04 cmp r3, #4 + 800127c: d107 bne.n 800128e { /* Generate Stop */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); - 8001212: 68fb ldr r3, [r7, #12] - 8001214: 681b ldr r3, [r3, #0] - 8001216: 681a ldr r2, [r3, #0] - 8001218: 68fb ldr r3, [r7, #12] - 800121a: 681b ldr r3, [r3, #0] - 800121c: f442 7200 orr.w r2, r2, #512 @ 0x200 - 8001220: 601a str r2, [r3, #0] + 800127e: 68fb ldr r3, [r7, #12] + 8001280: 681b ldr r3, [r3, #0] + 8001282: 681a ldr r2, [r3, #0] + 8001284: 68fb ldr r3, [r7, #12] + 8001286: 681b ldr r3, [r3, #0] + 8001288: f442 7200 orr.w r2, r2, #512 @ 0x200 + 800128c: 601a str r2, [r3, #0] } return HAL_ERROR; - 8001222: 2301 movs r3, #1 - 8001224: e06b b.n 80012fe + 800128e: 2301 movs r3, #1 + 8001290: e06b b.n 800136a } /* Write data to DR */ hi2c->Instance->DR = *hi2c->pBuffPtr; - 8001226: 68fb ldr r3, [r7, #12] - 8001228: 6a5b ldr r3, [r3, #36] @ 0x24 - 800122a: 781a ldrb r2, [r3, #0] - 800122c: 68fb ldr r3, [r7, #12] - 800122e: 681b ldr r3, [r3, #0] - 8001230: 611a str r2, [r3, #16] + 8001292: 68fb ldr r3, [r7, #12] + 8001294: 6a5b ldr r3, [r3, #36] @ 0x24 + 8001296: 781a ldrb r2, [r3, #0] + 8001298: 68fb ldr r3, [r7, #12] + 800129a: 681b ldr r3, [r3, #0] + 800129c: 611a str r2, [r3, #16] /* Increment Buffer pointer */ hi2c->pBuffPtr++; - 8001232: 68fb ldr r3, [r7, #12] - 8001234: 6a5b ldr r3, [r3, #36] @ 0x24 - 8001236: 1c5a adds r2, r3, #1 - 8001238: 68fb ldr r3, [r7, #12] - 800123a: 625a str r2, [r3, #36] @ 0x24 + 800129e: 68fb ldr r3, [r7, #12] + 80012a0: 6a5b ldr r3, [r3, #36] @ 0x24 + 80012a2: 1c5a adds r2, r3, #1 + 80012a4: 68fb ldr r3, [r7, #12] + 80012a6: 625a str r2, [r3, #36] @ 0x24 /* Update counter */ hi2c->XferCount--; - 800123c: 68fb ldr r3, [r7, #12] - 800123e: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8001240: b29b uxth r3, r3 - 8001242: 3b01 subs r3, #1 - 8001244: b29a uxth r2, r3 - 8001246: 68fb ldr r3, [r7, #12] - 8001248: 855a strh r2, [r3, #42] @ 0x2a + 80012a8: 68fb ldr r3, [r7, #12] + 80012aa: 8d5b ldrh r3, [r3, #42] @ 0x2a + 80012ac: b29b uxth r3, r3 + 80012ae: 3b01 subs r3, #1 + 80012b0: b29a uxth r2, r3 + 80012b2: 68fb ldr r3, [r7, #12] + 80012b4: 855a strh r2, [r3, #42] @ 0x2a hi2c->XferSize--; - 800124a: 68fb ldr r3, [r7, #12] - 800124c: 8d1b ldrh r3, [r3, #40] @ 0x28 - 800124e: 3b01 subs r3, #1 - 8001250: b29a uxth r2, r3 - 8001252: 68fb ldr r3, [r7, #12] - 8001254: 851a strh r2, [r3, #40] @ 0x28 + 80012b6: 68fb ldr r3, [r7, #12] + 80012b8: 8d1b ldrh r3, [r3, #40] @ 0x28 + 80012ba: 3b01 subs r3, #1 + 80012bc: b29a uxth r2, r3 + 80012be: 68fb ldr r3, [r7, #12] + 80012c0: 851a strh r2, [r3, #40] @ 0x28 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) && (hi2c->XferSize != 0U)) - 8001256: 68fb ldr r3, [r7, #12] - 8001258: 681b ldr r3, [r3, #0] - 800125a: 695b ldr r3, [r3, #20] - 800125c: f003 0304 and.w r3, r3, #4 - 8001260: 2b04 cmp r3, #4 - 8001262: d11b bne.n 800129c - 8001264: 68fb ldr r3, [r7, #12] - 8001266: 8d1b ldrh r3, [r3, #40] @ 0x28 - 8001268: 2b00 cmp r3, #0 - 800126a: d017 beq.n 800129c + 80012c2: 68fb ldr r3, [r7, #12] + 80012c4: 681b ldr r3, [r3, #0] + 80012c6: 695b ldr r3, [r3, #20] + 80012c8: f003 0304 and.w r3, r3, #4 + 80012cc: 2b04 cmp r3, #4 + 80012ce: d11b bne.n 8001308 + 80012d0: 68fb ldr r3, [r7, #12] + 80012d2: 8d1b ldrh r3, [r3, #40] @ 0x28 + 80012d4: 2b00 cmp r3, #0 + 80012d6: d017 beq.n 8001308 { /* Write data to DR */ hi2c->Instance->DR = *hi2c->pBuffPtr; - 800126c: 68fb ldr r3, [r7, #12] - 800126e: 6a5b ldr r3, [r3, #36] @ 0x24 - 8001270: 781a ldrb r2, [r3, #0] - 8001272: 68fb ldr r3, [r7, #12] - 8001274: 681b ldr r3, [r3, #0] - 8001276: 611a str r2, [r3, #16] + 80012d8: 68fb ldr r3, [r7, #12] + 80012da: 6a5b ldr r3, [r3, #36] @ 0x24 + 80012dc: 781a ldrb r2, [r3, #0] + 80012de: 68fb ldr r3, [r7, #12] + 80012e0: 681b ldr r3, [r3, #0] + 80012e2: 611a str r2, [r3, #16] /* Increment Buffer pointer */ hi2c->pBuffPtr++; - 8001278: 68fb ldr r3, [r7, #12] - 800127a: 6a5b ldr r3, [r3, #36] @ 0x24 - 800127c: 1c5a adds r2, r3, #1 - 800127e: 68fb ldr r3, [r7, #12] - 8001280: 625a str r2, [r3, #36] @ 0x24 + 80012e4: 68fb ldr r3, [r7, #12] + 80012e6: 6a5b ldr r3, [r3, #36] @ 0x24 + 80012e8: 1c5a adds r2, r3, #1 + 80012ea: 68fb ldr r3, [r7, #12] + 80012ec: 625a str r2, [r3, #36] @ 0x24 /* Update counter */ hi2c->XferCount--; - 8001282: 68fb ldr r3, [r7, #12] - 8001284: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8001286: b29b uxth r3, r3 - 8001288: 3b01 subs r3, #1 - 800128a: b29a uxth r2, r3 - 800128c: 68fb ldr r3, [r7, #12] - 800128e: 855a strh r2, [r3, #42] @ 0x2a + 80012ee: 68fb ldr r3, [r7, #12] + 80012f0: 8d5b ldrh r3, [r3, #42] @ 0x2a + 80012f2: b29b uxth r3, r3 + 80012f4: 3b01 subs r3, #1 + 80012f6: b29a uxth r2, r3 + 80012f8: 68fb ldr r3, [r7, #12] + 80012fa: 855a strh r2, [r3, #42] @ 0x2a hi2c->XferSize--; - 8001290: 68fb ldr r3, [r7, #12] - 8001292: 8d1b ldrh r3, [r3, #40] @ 0x28 - 8001294: 3b01 subs r3, #1 - 8001296: b29a uxth r2, r3 - 8001298: 68fb ldr r3, [r7, #12] - 800129a: 851a strh r2, [r3, #40] @ 0x28 + 80012fc: 68fb ldr r3, [r7, #12] + 80012fe: 8d1b ldrh r3, [r3, #40] @ 0x28 + 8001300: 3b01 subs r3, #1 + 8001302: b29a uxth r2, r3 + 8001304: 68fb ldr r3, [r7, #12] + 8001306: 851a strh r2, [r3, #40] @ 0x28 } /* Wait until BTF flag is set */ if (I2C_WaitOnBTFFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) - 800129c: 697a ldr r2, [r7, #20] - 800129e: 6a39 ldr r1, [r7, #32] - 80012a0: 68f8 ldr r0, [r7, #12] - 80012a2: f000 fd19 bl 8001cd8 - 80012a6: 4603 mov r3, r0 - 80012a8: 2b00 cmp r3, #0 - 80012aa: d00d beq.n 80012c8 + 8001308: 697a ldr r2, [r7, #20] + 800130a: 6a39 ldr r1, [r7, #32] + 800130c: 68f8 ldr r0, [r7, #12] + 800130e: f000 fd19 bl 8001d44 + 8001312: 4603 mov r3, r0 + 8001314: 2b00 cmp r3, #0 + 8001316: d00d beq.n 8001334 { if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) - 80012ac: 68fb ldr r3, [r7, #12] - 80012ae: 6c1b ldr r3, [r3, #64] @ 0x40 - 80012b0: 2b04 cmp r3, #4 - 80012b2: d107 bne.n 80012c4 + 8001318: 68fb ldr r3, [r7, #12] + 800131a: 6c1b ldr r3, [r3, #64] @ 0x40 + 800131c: 2b04 cmp r3, #4 + 800131e: d107 bne.n 8001330 { /* Generate Stop */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); - 80012b4: 68fb ldr r3, [r7, #12] - 80012b6: 681b ldr r3, [r3, #0] - 80012b8: 681a ldr r2, [r3, #0] - 80012ba: 68fb ldr r3, [r7, #12] - 80012bc: 681b ldr r3, [r3, #0] - 80012be: f442 7200 orr.w r2, r2, #512 @ 0x200 - 80012c2: 601a str r2, [r3, #0] + 8001320: 68fb ldr r3, [r7, #12] + 8001322: 681b ldr r3, [r3, #0] + 8001324: 681a ldr r2, [r3, #0] + 8001326: 68fb ldr r3, [r7, #12] + 8001328: 681b ldr r3, [r3, #0] + 800132a: f442 7200 orr.w r2, r2, #512 @ 0x200 + 800132e: 601a str r2, [r3, #0] } return HAL_ERROR; - 80012c4: 2301 movs r3, #1 - 80012c6: e01a b.n 80012fe + 8001330: 2301 movs r3, #1 + 8001332: e01a b.n 800136a while (hi2c->XferSize > 0U) - 80012c8: 68fb ldr r3, [r7, #12] - 80012ca: 8d1b ldrh r3, [r3, #40] @ 0x28 - 80012cc: 2b00 cmp r3, #0 - 80012ce: d194 bne.n 80011fa + 8001334: 68fb ldr r3, [r7, #12] + 8001336: 8d1b ldrh r3, [r3, #40] @ 0x28 + 8001338: 2b00 cmp r3, #0 + 800133a: d194 bne.n 8001266 } } /* Generate Stop */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); - 80012d0: 68fb ldr r3, [r7, #12] - 80012d2: 681b ldr r3, [r3, #0] - 80012d4: 681a ldr r2, [r3, #0] - 80012d6: 68fb ldr r3, [r7, #12] - 80012d8: 681b ldr r3, [r3, #0] - 80012da: f442 7200 orr.w r2, r2, #512 @ 0x200 - 80012de: 601a str r2, [r3, #0] + 800133c: 68fb ldr r3, [r7, #12] + 800133e: 681b ldr r3, [r3, #0] + 8001340: 681a ldr r2, [r3, #0] + 8001342: 68fb ldr r3, [r7, #12] + 8001344: 681b ldr r3, [r3, #0] + 8001346: f442 7200 orr.w r2, r2, #512 @ 0x200 + 800134a: 601a str r2, [r3, #0] hi2c->State = HAL_I2C_STATE_READY; - 80012e0: 68fb ldr r3, [r7, #12] - 80012e2: 2220 movs r2, #32 - 80012e4: f883 203d strb.w r2, [r3, #61] @ 0x3d + 800134c: 68fb ldr r3, [r7, #12] + 800134e: 2220 movs r2, #32 + 8001350: f883 203d strb.w r2, [r3, #61] @ 0x3d hi2c->Mode = HAL_I2C_MODE_NONE; - 80012e8: 68fb ldr r3, [r7, #12] - 80012ea: 2200 movs r2, #0 - 80012ec: f883 203e strb.w r2, [r3, #62] @ 0x3e + 8001354: 68fb ldr r3, [r7, #12] + 8001356: 2200 movs r2, #0 + 8001358: f883 203e strb.w r2, [r3, #62] @ 0x3e /* Process Unlocked */ __HAL_UNLOCK(hi2c); - 80012f0: 68fb ldr r3, [r7, #12] - 80012f2: 2200 movs r2, #0 - 80012f4: f883 203c strb.w r2, [r3, #60] @ 0x3c + 800135c: 68fb ldr r3, [r7, #12] + 800135e: 2200 movs r2, #0 + 8001360: f883 203c strb.w r2, [r3, #60] @ 0x3c return HAL_OK; - 80012f8: 2300 movs r3, #0 - 80012fa: e000 b.n 80012fe + 8001364: 2300 movs r3, #0 + 8001366: e000 b.n 800136a } else { return HAL_BUSY; - 80012fc: 2302 movs r3, #2 + 8001368: 2302 movs r3, #2 } } - 80012fe: 4618 mov r0, r3 - 8001300: 3718 adds r7, #24 - 8001302: 46bd mov sp, r7 - 8001304: bd80 pop {r7, pc} - 8001306: bf00 nop - 8001308: 00100002 .word 0x00100002 - 800130c: ffff0000 .word 0xffff0000 + 800136a: 4618 mov r0, r3 + 800136c: 3718 adds r7, #24 + 800136e: 46bd mov sp, r7 + 8001370: bd80 pop {r7, pc} + 8001372: bf00 nop + 8001374: 00100002 .word 0x00100002 + 8001378: ffff0000 .word 0xffff0000 -08001310 : +0800137c : * @param Size Amount of data to be sent * @param Timeout Timeout duration * @retval HAL status */ HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout) { - 8001310: b580 push {r7, lr} - 8001312: b08c sub sp, #48 @ 0x30 - 8001314: af02 add r7, sp, #8 - 8001316: 60f8 str r0, [r7, #12] - 8001318: 607a str r2, [r7, #4] - 800131a: 461a mov r2, r3 - 800131c: 460b mov r3, r1 - 800131e: 817b strh r3, [r7, #10] - 8001320: 4613 mov r3, r2 - 8001322: 813b strh r3, [r7, #8] + 800137c: b580 push {r7, lr} + 800137e: b08c sub sp, #48 @ 0x30 + 8001380: af02 add r7, sp, #8 + 8001382: 60f8 str r0, [r7, #12] + 8001384: 607a str r2, [r7, #4] + 8001386: 461a mov r2, r3 + 8001388: 460b mov r3, r1 + 800138a: 817b strh r3, [r7, #10] + 800138c: 4613 mov r3, r2 + 800138e: 813b strh r3, [r7, #8] /* Init tickstart for timeout management*/ uint32_t tickstart = HAL_GetTick(); - 8001324: f7ff fafa bl 800091c - 8001328: 6278 str r0, [r7, #36] @ 0x24 + 8001390: f7ff fafa bl 8000988 + 8001394: 6278 str r0, [r7, #36] @ 0x24 if (hi2c->State == HAL_I2C_STATE_READY) - 800132a: 68fb ldr r3, [r7, #12] - 800132c: f893 303d ldrb.w r3, [r3, #61] @ 0x3d - 8001330: b2db uxtb r3, r3 - 8001332: 2b20 cmp r3, #32 - 8001334: f040 8217 bne.w 8001766 + 8001396: 68fb ldr r3, [r7, #12] + 8001398: f893 303d ldrb.w r3, [r3, #61] @ 0x3d + 800139c: b2db uxtb r3, r3 + 800139e: 2b20 cmp r3, #32 + 80013a0: f040 8217 bne.w 80017d2 { /* Wait until BUSY flag is reset */ if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_OK) - 8001338: 6a7b ldr r3, [r7, #36] @ 0x24 - 800133a: 9300 str r3, [sp, #0] - 800133c: 2319 movs r3, #25 - 800133e: 2201 movs r2, #1 - 8001340: 497c ldr r1, [pc, #496] @ (8001534 ) - 8001342: 68f8 ldr r0, [r7, #12] - 8001344: f000 fb66 bl 8001a14 - 8001348: 4603 mov r3, r0 - 800134a: 2b00 cmp r3, #0 - 800134c: d001 beq.n 8001352 + 80013a4: 6a7b ldr r3, [r7, #36] @ 0x24 + 80013a6: 9300 str r3, [sp, #0] + 80013a8: 2319 movs r3, #25 + 80013aa: 2201 movs r2, #1 + 80013ac: 497c ldr r1, [pc, #496] @ (80015a0 ) + 80013ae: 68f8 ldr r0, [r7, #12] + 80013b0: f000 fb66 bl 8001a80 + 80013b4: 4603 mov r3, r0 + 80013b6: 2b00 cmp r3, #0 + 80013b8: d001 beq.n 80013be { return HAL_BUSY; - 800134e: 2302 movs r3, #2 - 8001350: e20a b.n 8001768 + 80013ba: 2302 movs r3, #2 + 80013bc: e20a b.n 80017d4 } /* Process Locked */ __HAL_LOCK(hi2c); - 8001352: 68fb ldr r3, [r7, #12] - 8001354: f893 303c ldrb.w r3, [r3, #60] @ 0x3c - 8001358: 2b01 cmp r3, #1 - 800135a: d101 bne.n 8001360 - 800135c: 2302 movs r3, #2 - 800135e: e203 b.n 8001768 - 8001360: 68fb ldr r3, [r7, #12] - 8001362: 2201 movs r2, #1 - 8001364: f883 203c strb.w r2, [r3, #60] @ 0x3c + 80013be: 68fb ldr r3, [r7, #12] + 80013c0: f893 303c ldrb.w r3, [r3, #60] @ 0x3c + 80013c4: 2b01 cmp r3, #1 + 80013c6: d101 bne.n 80013cc + 80013c8: 2302 movs r3, #2 + 80013ca: e203 b.n 80017d4 + 80013cc: 68fb ldr r3, [r7, #12] + 80013ce: 2201 movs r2, #1 + 80013d0: f883 203c strb.w r2, [r3, #60] @ 0x3c /* Check if the I2C is already enabled */ if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) - 8001368: 68fb ldr r3, [r7, #12] - 800136a: 681b ldr r3, [r3, #0] - 800136c: 681b ldr r3, [r3, #0] - 800136e: f003 0301 and.w r3, r3, #1 - 8001372: 2b01 cmp r3, #1 - 8001374: d007 beq.n 8001386 + 80013d4: 68fb ldr r3, [r7, #12] + 80013d6: 681b ldr r3, [r3, #0] + 80013d8: 681b ldr r3, [r3, #0] + 80013da: f003 0301 and.w r3, r3, #1 + 80013de: 2b01 cmp r3, #1 + 80013e0: d007 beq.n 80013f2 { /* Enable I2C peripheral */ __HAL_I2C_ENABLE(hi2c); - 8001376: 68fb ldr r3, [r7, #12] - 8001378: 681b ldr r3, [r3, #0] - 800137a: 681a ldr r2, [r3, #0] - 800137c: 68fb ldr r3, [r7, #12] - 800137e: 681b ldr r3, [r3, #0] - 8001380: f042 0201 orr.w r2, r2, #1 - 8001384: 601a str r2, [r3, #0] + 80013e2: 68fb ldr r3, [r7, #12] + 80013e4: 681b ldr r3, [r3, #0] + 80013e6: 681a ldr r2, [r3, #0] + 80013e8: 68fb ldr r3, [r7, #12] + 80013ea: 681b ldr r3, [r3, #0] + 80013ec: f042 0201 orr.w r2, r2, #1 + 80013f0: 601a str r2, [r3, #0] } /* Disable Pos */ CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); - 8001386: 68fb ldr r3, [r7, #12] - 8001388: 681b ldr r3, [r3, #0] - 800138a: 681a ldr r2, [r3, #0] - 800138c: 68fb ldr r3, [r7, #12] - 800138e: 681b ldr r3, [r3, #0] - 8001390: f422 6200 bic.w r2, r2, #2048 @ 0x800 - 8001394: 601a str r2, [r3, #0] + 80013f2: 68fb ldr r3, [r7, #12] + 80013f4: 681b ldr r3, [r3, #0] + 80013f6: 681a ldr r2, [r3, #0] + 80013f8: 68fb ldr r3, [r7, #12] + 80013fa: 681b ldr r3, [r3, #0] + 80013fc: f422 6200 bic.w r2, r2, #2048 @ 0x800 + 8001400: 601a str r2, [r3, #0] hi2c->State = HAL_I2C_STATE_BUSY_RX; - 8001396: 68fb ldr r3, [r7, #12] - 8001398: 2222 movs r2, #34 @ 0x22 - 800139a: f883 203d strb.w r2, [r3, #61] @ 0x3d + 8001402: 68fb ldr r3, [r7, #12] + 8001404: 2222 movs r2, #34 @ 0x22 + 8001406: f883 203d strb.w r2, [r3, #61] @ 0x3d hi2c->Mode = HAL_I2C_MODE_MASTER; - 800139e: 68fb ldr r3, [r7, #12] - 80013a0: 2210 movs r2, #16 - 80013a2: f883 203e strb.w r2, [r3, #62] @ 0x3e + 800140a: 68fb ldr r3, [r7, #12] + 800140c: 2210 movs r2, #16 + 800140e: f883 203e strb.w r2, [r3, #62] @ 0x3e hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - 80013a6: 68fb ldr r3, [r7, #12] - 80013a8: 2200 movs r2, #0 - 80013aa: 641a str r2, [r3, #64] @ 0x40 + 8001412: 68fb ldr r3, [r7, #12] + 8001414: 2200 movs r2, #0 + 8001416: 641a str r2, [r3, #64] @ 0x40 /* Prepare transfer parameters */ hi2c->pBuffPtr = pData; - 80013ac: 68fb ldr r3, [r7, #12] - 80013ae: 687a ldr r2, [r7, #4] - 80013b0: 625a str r2, [r3, #36] @ 0x24 + 8001418: 68fb ldr r3, [r7, #12] + 800141a: 687a ldr r2, [r7, #4] + 800141c: 625a str r2, [r3, #36] @ 0x24 hi2c->XferCount = Size; - 80013b2: 68fb ldr r3, [r7, #12] - 80013b4: 893a ldrh r2, [r7, #8] - 80013b6: 855a strh r2, [r3, #42] @ 0x2a + 800141e: 68fb ldr r3, [r7, #12] + 8001420: 893a ldrh r2, [r7, #8] + 8001422: 855a strh r2, [r3, #42] @ 0x2a hi2c->XferSize = hi2c->XferCount; - 80013b8: 68fb ldr r3, [r7, #12] - 80013ba: 8d5b ldrh r3, [r3, #42] @ 0x2a - 80013bc: b29a uxth r2, r3 - 80013be: 68fb ldr r3, [r7, #12] - 80013c0: 851a strh r2, [r3, #40] @ 0x28 + 8001424: 68fb ldr r3, [r7, #12] + 8001426: 8d5b ldrh r3, [r3, #42] @ 0x2a + 8001428: b29a uxth r2, r3 + 800142a: 68fb ldr r3, [r7, #12] + 800142c: 851a strh r2, [r3, #40] @ 0x28 hi2c->XferOptions = I2C_NO_OPTION_FRAME; - 80013c2: 68fb ldr r3, [r7, #12] - 80013c4: 4a5c ldr r2, [pc, #368] @ (8001538 ) - 80013c6: 62da str r2, [r3, #44] @ 0x2c + 800142e: 68fb ldr r3, [r7, #12] + 8001430: 4a5c ldr r2, [pc, #368] @ (80015a4 ) + 8001432: 62da str r2, [r3, #44] @ 0x2c /* Send Slave Address */ if (I2C_MasterRequestRead(hi2c, DevAddress, Timeout, tickstart) != HAL_OK) - 80013c8: 8979 ldrh r1, [r7, #10] - 80013ca: 6a7b ldr r3, [r7, #36] @ 0x24 - 80013cc: 6b3a ldr r2, [r7, #48] @ 0x30 - 80013ce: 68f8 ldr r0, [r7, #12] - 80013d0: f000 fa52 bl 8001878 - 80013d4: 4603 mov r3, r0 - 80013d6: 2b00 cmp r3, #0 - 80013d8: d001 beq.n 80013de + 8001434: 8979 ldrh r1, [r7, #10] + 8001436: 6a7b ldr r3, [r7, #36] @ 0x24 + 8001438: 6b3a ldr r2, [r7, #48] @ 0x30 + 800143a: 68f8 ldr r0, [r7, #12] + 800143c: f000 fa52 bl 80018e4 + 8001440: 4603 mov r3, r0 + 8001442: 2b00 cmp r3, #0 + 8001444: d001 beq.n 800144a { return HAL_ERROR; - 80013da: 2301 movs r3, #1 - 80013dc: e1c4 b.n 8001768 + 8001446: 2301 movs r3, #1 + 8001448: e1c4 b.n 80017d4 } if (hi2c->XferSize == 0U) - 80013de: 68fb ldr r3, [r7, #12] - 80013e0: 8d1b ldrh r3, [r3, #40] @ 0x28 - 80013e2: 2b00 cmp r3, #0 - 80013e4: d113 bne.n 800140e + 800144a: 68fb ldr r3, [r7, #12] + 800144c: 8d1b ldrh r3, [r3, #40] @ 0x28 + 800144e: 2b00 cmp r3, #0 + 8001450: d113 bne.n 800147a { /* Clear ADDR flag */ __HAL_I2C_CLEAR_ADDRFLAG(hi2c); - 80013e6: 2300 movs r3, #0 - 80013e8: 623b str r3, [r7, #32] - 80013ea: 68fb ldr r3, [r7, #12] - 80013ec: 681b ldr r3, [r3, #0] - 80013ee: 695b ldr r3, [r3, #20] - 80013f0: 623b str r3, [r7, #32] - 80013f2: 68fb ldr r3, [r7, #12] - 80013f4: 681b ldr r3, [r3, #0] - 80013f6: 699b ldr r3, [r3, #24] - 80013f8: 623b str r3, [r7, #32] - 80013fa: 6a3b ldr r3, [r7, #32] - - /* Generate Stop */ - SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); - 80013fc: 68fb ldr r3, [r7, #12] - 80013fe: 681b ldr r3, [r3, #0] - 8001400: 681a ldr r2, [r3, #0] - 8001402: 68fb ldr r3, [r7, #12] - 8001404: 681b ldr r3, [r3, #0] - 8001406: f442 7200 orr.w r2, r2, #512 @ 0x200 - 800140a: 601a str r2, [r3, #0] - 800140c: e198 b.n 8001740 - } - else if (hi2c->XferSize == 1U) - 800140e: 68fb ldr r3, [r7, #12] - 8001410: 8d1b ldrh r3, [r3, #40] @ 0x28 - 8001412: 2b01 cmp r3, #1 - 8001414: d11b bne.n 800144e - { - /* Disable Acknowledge */ - CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); - 8001416: 68fb ldr r3, [r7, #12] - 8001418: 681b ldr r3, [r3, #0] - 800141a: 681a ldr r2, [r3, #0] - 800141c: 68fb ldr r3, [r7, #12] - 800141e: 681b ldr r3, [r3, #0] - 8001420: f422 6280 bic.w r2, r2, #1024 @ 0x400 - 8001424: 601a str r2, [r3, #0] - - /* Clear ADDR flag */ - __HAL_I2C_CLEAR_ADDRFLAG(hi2c); - 8001426: 2300 movs r3, #0 - 8001428: 61fb str r3, [r7, #28] - 800142a: 68fb ldr r3, [r7, #12] - 800142c: 681b ldr r3, [r3, #0] - 800142e: 695b ldr r3, [r3, #20] - 8001430: 61fb str r3, [r7, #28] - 8001432: 68fb ldr r3, [r7, #12] - 8001434: 681b ldr r3, [r3, #0] - 8001436: 699b ldr r3, [r3, #24] - 8001438: 61fb str r3, [r7, #28] - 800143a: 69fb ldr r3, [r7, #28] - - /* Generate Stop */ - SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); - 800143c: 68fb ldr r3, [r7, #12] - 800143e: 681b ldr r3, [r3, #0] - 8001440: 681a ldr r2, [r3, #0] - 8001442: 68fb ldr r3, [r7, #12] - 8001444: 681b ldr r3, [r3, #0] - 8001446: f442 7200 orr.w r2, r2, #512 @ 0x200 - 800144a: 601a str r2, [r3, #0] - 800144c: e178 b.n 8001740 - } - else if (hi2c->XferSize == 2U) - 800144e: 68fb ldr r3, [r7, #12] - 8001450: 8d1b ldrh r3, [r3, #40] @ 0x28 - 8001452: 2b02 cmp r3, #2 - 8001454: d11b bne.n 800148e - { - /* Disable Acknowledge */ - CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + 8001452: 2300 movs r3, #0 + 8001454: 623b str r3, [r7, #32] 8001456: 68fb ldr r3, [r7, #12] 8001458: 681b ldr r3, [r3, #0] - 800145a: 681a ldr r2, [r3, #0] - 800145c: 68fb ldr r3, [r7, #12] - 800145e: 681b ldr r3, [r3, #0] - 8001460: f422 6280 bic.w r2, r2, #1024 @ 0x400 - 8001464: 601a str r2, [r3, #0] + 800145a: 695b ldr r3, [r3, #20] + 800145c: 623b str r3, [r7, #32] + 800145e: 68fb ldr r3, [r7, #12] + 8001460: 681b ldr r3, [r3, #0] + 8001462: 699b ldr r3, [r3, #24] + 8001464: 623b str r3, [r7, #32] + 8001466: 6a3b ldr r3, [r7, #32] + + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + 8001468: 68fb ldr r3, [r7, #12] + 800146a: 681b ldr r3, [r3, #0] + 800146c: 681a ldr r2, [r3, #0] + 800146e: 68fb ldr r3, [r7, #12] + 8001470: 681b ldr r3, [r3, #0] + 8001472: f442 7200 orr.w r2, r2, #512 @ 0x200 + 8001476: 601a str r2, [r3, #0] + 8001478: e198 b.n 80017ac + } + else if (hi2c->XferSize == 1U) + 800147a: 68fb ldr r3, [r7, #12] + 800147c: 8d1b ldrh r3, [r3, #40] @ 0x28 + 800147e: 2b01 cmp r3, #1 + 8001480: d11b bne.n 80014ba + { + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + 8001482: 68fb ldr r3, [r7, #12] + 8001484: 681b ldr r3, [r3, #0] + 8001486: 681a ldr r2, [r3, #0] + 8001488: 68fb ldr r3, [r7, #12] + 800148a: 681b ldr r3, [r3, #0] + 800148c: f422 6280 bic.w r2, r2, #1024 @ 0x400 + 8001490: 601a str r2, [r3, #0] + + /* Clear ADDR flag */ + __HAL_I2C_CLEAR_ADDRFLAG(hi2c); + 8001492: 2300 movs r3, #0 + 8001494: 61fb str r3, [r7, #28] + 8001496: 68fb ldr r3, [r7, #12] + 8001498: 681b ldr r3, [r3, #0] + 800149a: 695b ldr r3, [r3, #20] + 800149c: 61fb str r3, [r7, #28] + 800149e: 68fb ldr r3, [r7, #12] + 80014a0: 681b ldr r3, [r3, #0] + 80014a2: 699b ldr r3, [r3, #24] + 80014a4: 61fb str r3, [r7, #28] + 80014a6: 69fb ldr r3, [r7, #28] + + /* Generate Stop */ + SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); + 80014a8: 68fb ldr r3, [r7, #12] + 80014aa: 681b ldr r3, [r3, #0] + 80014ac: 681a ldr r2, [r3, #0] + 80014ae: 68fb ldr r3, [r7, #12] + 80014b0: 681b ldr r3, [r3, #0] + 80014b2: f442 7200 orr.w r2, r2, #512 @ 0x200 + 80014b6: 601a str r2, [r3, #0] + 80014b8: e178 b.n 80017ac + } + else if (hi2c->XferSize == 2U) + 80014ba: 68fb ldr r3, [r7, #12] + 80014bc: 8d1b ldrh r3, [r3, #40] @ 0x28 + 80014be: 2b02 cmp r3, #2 + 80014c0: d11b bne.n 80014fa + { + /* Disable Acknowledge */ + CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); + 80014c2: 68fb ldr r3, [r7, #12] + 80014c4: 681b ldr r3, [r3, #0] + 80014c6: 681a ldr r2, [r3, #0] + 80014c8: 68fb ldr r3, [r7, #12] + 80014ca: 681b ldr r3, [r3, #0] + 80014cc: f422 6280 bic.w r2, r2, #1024 @ 0x400 + 80014d0: 601a str r2, [r3, #0] /* Enable Pos */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_POS); - 8001466: 68fb ldr r3, [r7, #12] - 8001468: 681b ldr r3, [r3, #0] - 800146a: 681a ldr r2, [r3, #0] - 800146c: 68fb ldr r3, [r7, #12] - 800146e: 681b ldr r3, [r3, #0] - 8001470: f442 6200 orr.w r2, r2, #2048 @ 0x800 - 8001474: 601a str r2, [r3, #0] + 80014d2: 68fb ldr r3, [r7, #12] + 80014d4: 681b ldr r3, [r3, #0] + 80014d6: 681a ldr r2, [r3, #0] + 80014d8: 68fb ldr r3, [r7, #12] + 80014da: 681b ldr r3, [r3, #0] + 80014dc: f442 6200 orr.w r2, r2, #2048 @ 0x800 + 80014e0: 601a str r2, [r3, #0] /* Clear ADDR flag */ __HAL_I2C_CLEAR_ADDRFLAG(hi2c); - 8001476: 2300 movs r3, #0 - 8001478: 61bb str r3, [r7, #24] - 800147a: 68fb ldr r3, [r7, #12] - 800147c: 681b ldr r3, [r3, #0] - 800147e: 695b ldr r3, [r3, #20] - 8001480: 61bb str r3, [r7, #24] - 8001482: 68fb ldr r3, [r7, #12] - 8001484: 681b ldr r3, [r3, #0] - 8001486: 699b ldr r3, [r3, #24] - 8001488: 61bb str r3, [r7, #24] - 800148a: 69bb ldr r3, [r7, #24] - 800148c: e158 b.n 8001740 + 80014e2: 2300 movs r3, #0 + 80014e4: 61bb str r3, [r7, #24] + 80014e6: 68fb ldr r3, [r7, #12] + 80014e8: 681b ldr r3, [r3, #0] + 80014ea: 695b ldr r3, [r3, #20] + 80014ec: 61bb str r3, [r7, #24] + 80014ee: 68fb ldr r3, [r7, #12] + 80014f0: 681b ldr r3, [r3, #0] + 80014f2: 699b ldr r3, [r3, #24] + 80014f4: 61bb str r3, [r7, #24] + 80014f6: 69bb ldr r3, [r7, #24] + 80014f8: e158 b.n 80017ac } else { /* Enable Acknowledge */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); - 800148e: 68fb ldr r3, [r7, #12] - 8001490: 681b ldr r3, [r3, #0] - 8001492: 681a ldr r2, [r3, #0] - 8001494: 68fb ldr r3, [r7, #12] - 8001496: 681b ldr r3, [r3, #0] - 8001498: f442 6280 orr.w r2, r2, #1024 @ 0x400 - 800149c: 601a str r2, [r3, #0] + 80014fa: 68fb ldr r3, [r7, #12] + 80014fc: 681b ldr r3, [r3, #0] + 80014fe: 681a ldr r2, [r3, #0] + 8001500: 68fb ldr r3, [r7, #12] + 8001502: 681b ldr r3, [r3, #0] + 8001504: f442 6280 orr.w r2, r2, #1024 @ 0x400 + 8001508: 601a str r2, [r3, #0] /* Clear ADDR flag */ __HAL_I2C_CLEAR_ADDRFLAG(hi2c); - 800149e: 2300 movs r3, #0 - 80014a0: 617b str r3, [r7, #20] - 80014a2: 68fb ldr r3, [r7, #12] - 80014a4: 681b ldr r3, [r3, #0] - 80014a6: 695b ldr r3, [r3, #20] - 80014a8: 617b str r3, [r7, #20] - 80014aa: 68fb ldr r3, [r7, #12] - 80014ac: 681b ldr r3, [r3, #0] - 80014ae: 699b ldr r3, [r3, #24] - 80014b0: 617b str r3, [r7, #20] - 80014b2: 697b ldr r3, [r7, #20] + 800150a: 2300 movs r3, #0 + 800150c: 617b str r3, [r7, #20] + 800150e: 68fb ldr r3, [r7, #12] + 8001510: 681b ldr r3, [r3, #0] + 8001512: 695b ldr r3, [r3, #20] + 8001514: 617b str r3, [r7, #20] + 8001516: 68fb ldr r3, [r7, #12] + 8001518: 681b ldr r3, [r3, #0] + 800151a: 699b ldr r3, [r3, #24] + 800151c: 617b str r3, [r7, #20] + 800151e: 697b ldr r3, [r7, #20] } while (hi2c->XferSize > 0U) - 80014b4: e144 b.n 8001740 + 8001520: e144 b.n 80017ac { if (hi2c->XferSize <= 3U) - 80014b6: 68fb ldr r3, [r7, #12] - 80014b8: 8d1b ldrh r3, [r3, #40] @ 0x28 - 80014ba: 2b03 cmp r3, #3 - 80014bc: f200 80f1 bhi.w 80016a2 + 8001522: 68fb ldr r3, [r7, #12] + 8001524: 8d1b ldrh r3, [r3, #40] @ 0x28 + 8001526: 2b03 cmp r3, #3 + 8001528: f200 80f1 bhi.w 800170e { /* One byte */ if (hi2c->XferSize == 1U) - 80014c0: 68fb ldr r3, [r7, #12] - 80014c2: 8d1b ldrh r3, [r3, #40] @ 0x28 - 80014c4: 2b01 cmp r3, #1 - 80014c6: d123 bne.n 8001510 + 800152c: 68fb ldr r3, [r7, #12] + 800152e: 8d1b ldrh r3, [r3, #40] @ 0x28 + 8001530: 2b01 cmp r3, #1 + 8001532: d123 bne.n 800157c { /* Wait until RXNE flag is set */ if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) - 80014c8: 6a7a ldr r2, [r7, #36] @ 0x24 - 80014ca: 6b39 ldr r1, [r7, #48] @ 0x30 - 80014cc: 68f8 ldr r0, [r7, #12] - 80014ce: f000 fc4b bl 8001d68 - 80014d2: 4603 mov r3, r0 - 80014d4: 2b00 cmp r3, #0 - 80014d6: d001 beq.n 80014dc + 8001534: 6a7a ldr r2, [r7, #36] @ 0x24 + 8001536: 6b39 ldr r1, [r7, #48] @ 0x30 + 8001538: 68f8 ldr r0, [r7, #12] + 800153a: f000 fc4b bl 8001dd4 + 800153e: 4603 mov r3, r0 + 8001540: 2b00 cmp r3, #0 + 8001542: d001 beq.n 8001548 { return HAL_ERROR; - 80014d8: 2301 movs r3, #1 - 80014da: e145 b.n 8001768 + 8001544: 2301 movs r3, #1 + 8001546: e145 b.n 80017d4 } /* Read data from DR */ *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; - 80014dc: 68fb ldr r3, [r7, #12] - 80014de: 681b ldr r3, [r3, #0] - 80014e0: 691a ldr r2, [r3, #16] - 80014e2: 68fb ldr r3, [r7, #12] - 80014e4: 6a5b ldr r3, [r3, #36] @ 0x24 - 80014e6: b2d2 uxtb r2, r2 - 80014e8: 701a strb r2, [r3, #0] + 8001548: 68fb ldr r3, [r7, #12] + 800154a: 681b ldr r3, [r3, #0] + 800154c: 691a ldr r2, [r3, #16] + 800154e: 68fb ldr r3, [r7, #12] + 8001550: 6a5b ldr r3, [r3, #36] @ 0x24 + 8001552: b2d2 uxtb r2, r2 + 8001554: 701a strb r2, [r3, #0] /* Increment Buffer pointer */ hi2c->pBuffPtr++; - 80014ea: 68fb ldr r3, [r7, #12] - 80014ec: 6a5b ldr r3, [r3, #36] @ 0x24 - 80014ee: 1c5a adds r2, r3, #1 - 80014f0: 68fb ldr r3, [r7, #12] - 80014f2: 625a str r2, [r3, #36] @ 0x24 + 8001556: 68fb ldr r3, [r7, #12] + 8001558: 6a5b ldr r3, [r3, #36] @ 0x24 + 800155a: 1c5a adds r2, r3, #1 + 800155c: 68fb ldr r3, [r7, #12] + 800155e: 625a str r2, [r3, #36] @ 0x24 /* Update counter */ hi2c->XferSize--; - 80014f4: 68fb ldr r3, [r7, #12] - 80014f6: 8d1b ldrh r3, [r3, #40] @ 0x28 - 80014f8: 3b01 subs r3, #1 - 80014fa: b29a uxth r2, r3 - 80014fc: 68fb ldr r3, [r7, #12] - 80014fe: 851a strh r2, [r3, #40] @ 0x28 + 8001560: 68fb ldr r3, [r7, #12] + 8001562: 8d1b ldrh r3, [r3, #40] @ 0x28 + 8001564: 3b01 subs r3, #1 + 8001566: b29a uxth r2, r3 + 8001568: 68fb ldr r3, [r7, #12] + 800156a: 851a strh r2, [r3, #40] @ 0x28 hi2c->XferCount--; - 8001500: 68fb ldr r3, [r7, #12] - 8001502: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8001504: b29b uxth r3, r3 - 8001506: 3b01 subs r3, #1 - 8001508: b29a uxth r2, r3 - 800150a: 68fb ldr r3, [r7, #12] - 800150c: 855a strh r2, [r3, #42] @ 0x2a - 800150e: e117 b.n 8001740 + 800156c: 68fb ldr r3, [r7, #12] + 800156e: 8d5b ldrh r3, [r3, #42] @ 0x2a + 8001570: b29b uxth r3, r3 + 8001572: 3b01 subs r3, #1 + 8001574: b29a uxth r2, r3 + 8001576: 68fb ldr r3, [r7, #12] + 8001578: 855a strh r2, [r3, #42] @ 0x2a + 800157a: e117 b.n 80017ac } /* Two bytes */ else if (hi2c->XferSize == 2U) - 8001510: 68fb ldr r3, [r7, #12] - 8001512: 8d1b ldrh r3, [r3, #40] @ 0x28 - 8001514: 2b02 cmp r3, #2 - 8001516: d14e bne.n 80015b6 + 800157c: 68fb ldr r3, [r7, #12] + 800157e: 8d1b ldrh r3, [r3, #40] @ 0x28 + 8001580: 2b02 cmp r3, #2 + 8001582: d14e bne.n 8001622 { /* Wait until BTF flag is set */ if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) - 8001518: 6a7b ldr r3, [r7, #36] @ 0x24 - 800151a: 9300 str r3, [sp, #0] - 800151c: 6b3b ldr r3, [r7, #48] @ 0x30 - 800151e: 2200 movs r2, #0 - 8001520: 4906 ldr r1, [pc, #24] @ (800153c ) - 8001522: 68f8 ldr r0, [r7, #12] - 8001524: f000 fa76 bl 8001a14 - 8001528: 4603 mov r3, r0 - 800152a: 2b00 cmp r3, #0 - 800152c: d008 beq.n 8001540 + 8001584: 6a7b ldr r3, [r7, #36] @ 0x24 + 8001586: 9300 str r3, [sp, #0] + 8001588: 6b3b ldr r3, [r7, #48] @ 0x30 + 800158a: 2200 movs r2, #0 + 800158c: 4906 ldr r1, [pc, #24] @ (80015a8 ) + 800158e: 68f8 ldr r0, [r7, #12] + 8001590: f000 fa76 bl 8001a80 + 8001594: 4603 mov r3, r0 + 8001596: 2b00 cmp r3, #0 + 8001598: d008 beq.n 80015ac { return HAL_ERROR; - 800152e: 2301 movs r3, #1 - 8001530: e11a b.n 8001768 - 8001532: bf00 nop - 8001534: 00100002 .word 0x00100002 - 8001538: ffff0000 .word 0xffff0000 - 800153c: 00010004 .word 0x00010004 + 800159a: 2301 movs r3, #1 + 800159c: e11a b.n 80017d4 + 800159e: bf00 nop + 80015a0: 00100002 .word 0x00100002 + 80015a4: ffff0000 .word 0xffff0000 + 80015a8: 00010004 .word 0x00010004 } /* Generate Stop */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); - 8001540: 68fb ldr r3, [r7, #12] - 8001542: 681b ldr r3, [r3, #0] - 8001544: 681a ldr r2, [r3, #0] - 8001546: 68fb ldr r3, [r7, #12] - 8001548: 681b ldr r3, [r3, #0] - 800154a: f442 7200 orr.w r2, r2, #512 @ 0x200 - 800154e: 601a str r2, [r3, #0] + 80015ac: 68fb ldr r3, [r7, #12] + 80015ae: 681b ldr r3, [r3, #0] + 80015b0: 681a ldr r2, [r3, #0] + 80015b2: 68fb ldr r3, [r7, #12] + 80015b4: 681b ldr r3, [r3, #0] + 80015b6: f442 7200 orr.w r2, r2, #512 @ 0x200 + 80015ba: 601a str r2, [r3, #0] /* Read data from DR */ *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; - 8001550: 68fb ldr r3, [r7, #12] - 8001552: 681b ldr r3, [r3, #0] - 8001554: 691a ldr r2, [r3, #16] - 8001556: 68fb ldr r3, [r7, #12] - 8001558: 6a5b ldr r3, [r3, #36] @ 0x24 - 800155a: b2d2 uxtb r2, r2 - 800155c: 701a strb r2, [r3, #0] + 80015bc: 68fb ldr r3, [r7, #12] + 80015be: 681b ldr r3, [r3, #0] + 80015c0: 691a ldr r2, [r3, #16] + 80015c2: 68fb ldr r3, [r7, #12] + 80015c4: 6a5b ldr r3, [r3, #36] @ 0x24 + 80015c6: b2d2 uxtb r2, r2 + 80015c8: 701a strb r2, [r3, #0] /* Increment Buffer pointer */ hi2c->pBuffPtr++; - 800155e: 68fb ldr r3, [r7, #12] - 8001560: 6a5b ldr r3, [r3, #36] @ 0x24 - 8001562: 1c5a adds r2, r3, #1 - 8001564: 68fb ldr r3, [r7, #12] - 8001566: 625a str r2, [r3, #36] @ 0x24 + 80015ca: 68fb ldr r3, [r7, #12] + 80015cc: 6a5b ldr r3, [r3, #36] @ 0x24 + 80015ce: 1c5a adds r2, r3, #1 + 80015d0: 68fb ldr r3, [r7, #12] + 80015d2: 625a str r2, [r3, #36] @ 0x24 /* Update counter */ hi2c->XferSize--; - 8001568: 68fb ldr r3, [r7, #12] - 800156a: 8d1b ldrh r3, [r3, #40] @ 0x28 - 800156c: 3b01 subs r3, #1 - 800156e: b29a uxth r2, r3 - 8001570: 68fb ldr r3, [r7, #12] - 8001572: 851a strh r2, [r3, #40] @ 0x28 + 80015d4: 68fb ldr r3, [r7, #12] + 80015d6: 8d1b ldrh r3, [r3, #40] @ 0x28 + 80015d8: 3b01 subs r3, #1 + 80015da: b29a uxth r2, r3 + 80015dc: 68fb ldr r3, [r7, #12] + 80015de: 851a strh r2, [r3, #40] @ 0x28 hi2c->XferCount--; - 8001574: 68fb ldr r3, [r7, #12] - 8001576: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8001578: b29b uxth r3, r3 - 800157a: 3b01 subs r3, #1 - 800157c: b29a uxth r2, r3 - 800157e: 68fb ldr r3, [r7, #12] - 8001580: 855a strh r2, [r3, #42] @ 0x2a + 80015e0: 68fb ldr r3, [r7, #12] + 80015e2: 8d5b ldrh r3, [r3, #42] @ 0x2a + 80015e4: b29b uxth r3, r3 + 80015e6: 3b01 subs r3, #1 + 80015e8: b29a uxth r2, r3 + 80015ea: 68fb ldr r3, [r7, #12] + 80015ec: 855a strh r2, [r3, #42] @ 0x2a /* Read data from DR */ *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; - 8001582: 68fb ldr r3, [r7, #12] - 8001584: 681b ldr r3, [r3, #0] - 8001586: 691a ldr r2, [r3, #16] - 8001588: 68fb ldr r3, [r7, #12] - 800158a: 6a5b ldr r3, [r3, #36] @ 0x24 - 800158c: b2d2 uxtb r2, r2 - 800158e: 701a strb r2, [r3, #0] + 80015ee: 68fb ldr r3, [r7, #12] + 80015f0: 681b ldr r3, [r3, #0] + 80015f2: 691a ldr r2, [r3, #16] + 80015f4: 68fb ldr r3, [r7, #12] + 80015f6: 6a5b ldr r3, [r3, #36] @ 0x24 + 80015f8: b2d2 uxtb r2, r2 + 80015fa: 701a strb r2, [r3, #0] /* Increment Buffer pointer */ hi2c->pBuffPtr++; - 8001590: 68fb ldr r3, [r7, #12] - 8001592: 6a5b ldr r3, [r3, #36] @ 0x24 - 8001594: 1c5a adds r2, r3, #1 - 8001596: 68fb ldr r3, [r7, #12] - 8001598: 625a str r2, [r3, #36] @ 0x24 + 80015fc: 68fb ldr r3, [r7, #12] + 80015fe: 6a5b ldr r3, [r3, #36] @ 0x24 + 8001600: 1c5a adds r2, r3, #1 + 8001602: 68fb ldr r3, [r7, #12] + 8001604: 625a str r2, [r3, #36] @ 0x24 /* Update counter */ hi2c->XferSize--; - 800159a: 68fb ldr r3, [r7, #12] - 800159c: 8d1b ldrh r3, [r3, #40] @ 0x28 - 800159e: 3b01 subs r3, #1 - 80015a0: b29a uxth r2, r3 - 80015a2: 68fb ldr r3, [r7, #12] - 80015a4: 851a strh r2, [r3, #40] @ 0x28 + 8001606: 68fb ldr r3, [r7, #12] + 8001608: 8d1b ldrh r3, [r3, #40] @ 0x28 + 800160a: 3b01 subs r3, #1 + 800160c: b29a uxth r2, r3 + 800160e: 68fb ldr r3, [r7, #12] + 8001610: 851a strh r2, [r3, #40] @ 0x28 hi2c->XferCount--; - 80015a6: 68fb ldr r3, [r7, #12] - 80015a8: 8d5b ldrh r3, [r3, #42] @ 0x2a - 80015aa: b29b uxth r3, r3 - 80015ac: 3b01 subs r3, #1 - 80015ae: b29a uxth r2, r3 - 80015b0: 68fb ldr r3, [r7, #12] - 80015b2: 855a strh r2, [r3, #42] @ 0x2a - 80015b4: e0c4 b.n 8001740 + 8001612: 68fb ldr r3, [r7, #12] + 8001614: 8d5b ldrh r3, [r3, #42] @ 0x2a + 8001616: b29b uxth r3, r3 + 8001618: 3b01 subs r3, #1 + 800161a: b29a uxth r2, r3 + 800161c: 68fb ldr r3, [r7, #12] + 800161e: 855a strh r2, [r3, #42] @ 0x2a + 8001620: e0c4 b.n 80017ac } /* 3 Last bytes */ else { /* Wait until BTF flag is set */ if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) - 80015b6: 6a7b ldr r3, [r7, #36] @ 0x24 - 80015b8: 9300 str r3, [sp, #0] - 80015ba: 6b3b ldr r3, [r7, #48] @ 0x30 - 80015bc: 2200 movs r2, #0 - 80015be: 496c ldr r1, [pc, #432] @ (8001770 ) - 80015c0: 68f8 ldr r0, [r7, #12] - 80015c2: f000 fa27 bl 8001a14 - 80015c6: 4603 mov r3, r0 - 80015c8: 2b00 cmp r3, #0 - 80015ca: d001 beq.n 80015d0 + 8001622: 6a7b ldr r3, [r7, #36] @ 0x24 + 8001624: 9300 str r3, [sp, #0] + 8001626: 6b3b ldr r3, [r7, #48] @ 0x30 + 8001628: 2200 movs r2, #0 + 800162a: 496c ldr r1, [pc, #432] @ (80017dc ) + 800162c: 68f8 ldr r0, [r7, #12] + 800162e: f000 fa27 bl 8001a80 + 8001632: 4603 mov r3, r0 + 8001634: 2b00 cmp r3, #0 + 8001636: d001 beq.n 800163c { return HAL_ERROR; - 80015cc: 2301 movs r3, #1 - 80015ce: e0cb b.n 8001768 + 8001638: 2301 movs r3, #1 + 800163a: e0cb b.n 80017d4 } /* Disable Acknowledge */ CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); - 80015d0: 68fb ldr r3, [r7, #12] - 80015d2: 681b ldr r3, [r3, #0] - 80015d4: 681a ldr r2, [r3, #0] - 80015d6: 68fb ldr r3, [r7, #12] - 80015d8: 681b ldr r3, [r3, #0] - 80015da: f422 6280 bic.w r2, r2, #1024 @ 0x400 - 80015de: 601a str r2, [r3, #0] + 800163c: 68fb ldr r3, [r7, #12] + 800163e: 681b ldr r3, [r3, #0] + 8001640: 681a ldr r2, [r3, #0] + 8001642: 68fb ldr r3, [r7, #12] + 8001644: 681b ldr r3, [r3, #0] + 8001646: f422 6280 bic.w r2, r2, #1024 @ 0x400 + 800164a: 601a str r2, [r3, #0] /* Read data from DR */ *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; - 80015e0: 68fb ldr r3, [r7, #12] - 80015e2: 681b ldr r3, [r3, #0] - 80015e4: 691a ldr r2, [r3, #16] - 80015e6: 68fb ldr r3, [r7, #12] - 80015e8: 6a5b ldr r3, [r3, #36] @ 0x24 - 80015ea: b2d2 uxtb r2, r2 - 80015ec: 701a strb r2, [r3, #0] + 800164c: 68fb ldr r3, [r7, #12] + 800164e: 681b ldr r3, [r3, #0] + 8001650: 691a ldr r2, [r3, #16] + 8001652: 68fb ldr r3, [r7, #12] + 8001654: 6a5b ldr r3, [r3, #36] @ 0x24 + 8001656: b2d2 uxtb r2, r2 + 8001658: 701a strb r2, [r3, #0] /* Increment Buffer pointer */ hi2c->pBuffPtr++; - 80015ee: 68fb ldr r3, [r7, #12] - 80015f0: 6a5b ldr r3, [r3, #36] @ 0x24 - 80015f2: 1c5a adds r2, r3, #1 - 80015f4: 68fb ldr r3, [r7, #12] - 80015f6: 625a str r2, [r3, #36] @ 0x24 + 800165a: 68fb ldr r3, [r7, #12] + 800165c: 6a5b ldr r3, [r3, #36] @ 0x24 + 800165e: 1c5a adds r2, r3, #1 + 8001660: 68fb ldr r3, [r7, #12] + 8001662: 625a str r2, [r3, #36] @ 0x24 /* Update counter */ hi2c->XferSize--; - 80015f8: 68fb ldr r3, [r7, #12] - 80015fa: 8d1b ldrh r3, [r3, #40] @ 0x28 - 80015fc: 3b01 subs r3, #1 - 80015fe: b29a uxth r2, r3 - 8001600: 68fb ldr r3, [r7, #12] - 8001602: 851a strh r2, [r3, #40] @ 0x28 + 8001664: 68fb ldr r3, [r7, #12] + 8001666: 8d1b ldrh r3, [r3, #40] @ 0x28 + 8001668: 3b01 subs r3, #1 + 800166a: b29a uxth r2, r3 + 800166c: 68fb ldr r3, [r7, #12] + 800166e: 851a strh r2, [r3, #40] @ 0x28 hi2c->XferCount--; - 8001604: 68fb ldr r3, [r7, #12] - 8001606: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8001608: b29b uxth r3, r3 - 800160a: 3b01 subs r3, #1 - 800160c: b29a uxth r2, r3 - 800160e: 68fb ldr r3, [r7, #12] - 8001610: 855a strh r2, [r3, #42] @ 0x2a + 8001670: 68fb ldr r3, [r7, #12] + 8001672: 8d5b ldrh r3, [r3, #42] @ 0x2a + 8001674: b29b uxth r3, r3 + 8001676: 3b01 subs r3, #1 + 8001678: b29a uxth r2, r3 + 800167a: 68fb ldr r3, [r7, #12] + 800167c: 855a strh r2, [r3, #42] @ 0x2a /* Wait until BTF flag is set */ if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) - 8001612: 6a7b ldr r3, [r7, #36] @ 0x24 - 8001614: 9300 str r3, [sp, #0] - 8001616: 6b3b ldr r3, [r7, #48] @ 0x30 - 8001618: 2200 movs r2, #0 - 800161a: 4955 ldr r1, [pc, #340] @ (8001770 ) - 800161c: 68f8 ldr r0, [r7, #12] - 800161e: f000 f9f9 bl 8001a14 - 8001622: 4603 mov r3, r0 - 8001624: 2b00 cmp r3, #0 - 8001626: d001 beq.n 800162c + 800167e: 6a7b ldr r3, [r7, #36] @ 0x24 + 8001680: 9300 str r3, [sp, #0] + 8001682: 6b3b ldr r3, [r7, #48] @ 0x30 + 8001684: 2200 movs r2, #0 + 8001686: 4955 ldr r1, [pc, #340] @ (80017dc ) + 8001688: 68f8 ldr r0, [r7, #12] + 800168a: f000 f9f9 bl 8001a80 + 800168e: 4603 mov r3, r0 + 8001690: 2b00 cmp r3, #0 + 8001692: d001 beq.n 8001698 { return HAL_ERROR; - 8001628: 2301 movs r3, #1 - 800162a: e09d b.n 8001768 + 8001694: 2301 movs r3, #1 + 8001696: e09d b.n 80017d4 } /* Generate Stop */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); - 800162c: 68fb ldr r3, [r7, #12] - 800162e: 681b ldr r3, [r3, #0] - 8001630: 681a ldr r2, [r3, #0] - 8001632: 68fb ldr r3, [r7, #12] - 8001634: 681b ldr r3, [r3, #0] - 8001636: f442 7200 orr.w r2, r2, #512 @ 0x200 - 800163a: 601a str r2, [r3, #0] + 8001698: 68fb ldr r3, [r7, #12] + 800169a: 681b ldr r3, [r3, #0] + 800169c: 681a ldr r2, [r3, #0] + 800169e: 68fb ldr r3, [r7, #12] + 80016a0: 681b ldr r3, [r3, #0] + 80016a2: f442 7200 orr.w r2, r2, #512 @ 0x200 + 80016a6: 601a str r2, [r3, #0] /* Read data from DR */ *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; - 800163c: 68fb ldr r3, [r7, #12] - 800163e: 681b ldr r3, [r3, #0] - 8001640: 691a ldr r2, [r3, #16] - 8001642: 68fb ldr r3, [r7, #12] - 8001644: 6a5b ldr r3, [r3, #36] @ 0x24 - 8001646: b2d2 uxtb r2, r2 - 8001648: 701a strb r2, [r3, #0] + 80016a8: 68fb ldr r3, [r7, #12] + 80016aa: 681b ldr r3, [r3, #0] + 80016ac: 691a ldr r2, [r3, #16] + 80016ae: 68fb ldr r3, [r7, #12] + 80016b0: 6a5b ldr r3, [r3, #36] @ 0x24 + 80016b2: b2d2 uxtb r2, r2 + 80016b4: 701a strb r2, [r3, #0] /* Increment Buffer pointer */ hi2c->pBuffPtr++; - 800164a: 68fb ldr r3, [r7, #12] - 800164c: 6a5b ldr r3, [r3, #36] @ 0x24 - 800164e: 1c5a adds r2, r3, #1 - 8001650: 68fb ldr r3, [r7, #12] - 8001652: 625a str r2, [r3, #36] @ 0x24 + 80016b6: 68fb ldr r3, [r7, #12] + 80016b8: 6a5b ldr r3, [r3, #36] @ 0x24 + 80016ba: 1c5a adds r2, r3, #1 + 80016bc: 68fb ldr r3, [r7, #12] + 80016be: 625a str r2, [r3, #36] @ 0x24 /* Update counter */ hi2c->XferSize--; - 8001654: 68fb ldr r3, [r7, #12] - 8001656: 8d1b ldrh r3, [r3, #40] @ 0x28 - 8001658: 3b01 subs r3, #1 - 800165a: b29a uxth r2, r3 - 800165c: 68fb ldr r3, [r7, #12] - 800165e: 851a strh r2, [r3, #40] @ 0x28 + 80016c0: 68fb ldr r3, [r7, #12] + 80016c2: 8d1b ldrh r3, [r3, #40] @ 0x28 + 80016c4: 3b01 subs r3, #1 + 80016c6: b29a uxth r2, r3 + 80016c8: 68fb ldr r3, [r7, #12] + 80016ca: 851a strh r2, [r3, #40] @ 0x28 hi2c->XferCount--; - 8001660: 68fb ldr r3, [r7, #12] - 8001662: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8001664: b29b uxth r3, r3 - 8001666: 3b01 subs r3, #1 - 8001668: b29a uxth r2, r3 - 800166a: 68fb ldr r3, [r7, #12] - 800166c: 855a strh r2, [r3, #42] @ 0x2a + 80016cc: 68fb ldr r3, [r7, #12] + 80016ce: 8d5b ldrh r3, [r3, #42] @ 0x2a + 80016d0: b29b uxth r3, r3 + 80016d2: 3b01 subs r3, #1 + 80016d4: b29a uxth r2, r3 + 80016d6: 68fb ldr r3, [r7, #12] + 80016d8: 855a strh r2, [r3, #42] @ 0x2a /* Read data from DR */ *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; - 800166e: 68fb ldr r3, [r7, #12] - 8001670: 681b ldr r3, [r3, #0] - 8001672: 691a ldr r2, [r3, #16] - 8001674: 68fb ldr r3, [r7, #12] - 8001676: 6a5b ldr r3, [r3, #36] @ 0x24 - 8001678: b2d2 uxtb r2, r2 - 800167a: 701a strb r2, [r3, #0] + 80016da: 68fb ldr r3, [r7, #12] + 80016dc: 681b ldr r3, [r3, #0] + 80016de: 691a ldr r2, [r3, #16] + 80016e0: 68fb ldr r3, [r7, #12] + 80016e2: 6a5b ldr r3, [r3, #36] @ 0x24 + 80016e4: b2d2 uxtb r2, r2 + 80016e6: 701a strb r2, [r3, #0] /* Increment Buffer pointer */ hi2c->pBuffPtr++; - 800167c: 68fb ldr r3, [r7, #12] - 800167e: 6a5b ldr r3, [r3, #36] @ 0x24 - 8001680: 1c5a adds r2, r3, #1 - 8001682: 68fb ldr r3, [r7, #12] - 8001684: 625a str r2, [r3, #36] @ 0x24 + 80016e8: 68fb ldr r3, [r7, #12] + 80016ea: 6a5b ldr r3, [r3, #36] @ 0x24 + 80016ec: 1c5a adds r2, r3, #1 + 80016ee: 68fb ldr r3, [r7, #12] + 80016f0: 625a str r2, [r3, #36] @ 0x24 /* Update counter */ hi2c->XferSize--; - 8001686: 68fb ldr r3, [r7, #12] - 8001688: 8d1b ldrh r3, [r3, #40] @ 0x28 - 800168a: 3b01 subs r3, #1 - 800168c: b29a uxth r2, r3 - 800168e: 68fb ldr r3, [r7, #12] - 8001690: 851a strh r2, [r3, #40] @ 0x28 + 80016f2: 68fb ldr r3, [r7, #12] + 80016f4: 8d1b ldrh r3, [r3, #40] @ 0x28 + 80016f6: 3b01 subs r3, #1 + 80016f8: b29a uxth r2, r3 + 80016fa: 68fb ldr r3, [r7, #12] + 80016fc: 851a strh r2, [r3, #40] @ 0x28 hi2c->XferCount--; - 8001692: 68fb ldr r3, [r7, #12] - 8001694: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8001696: b29b uxth r3, r3 - 8001698: 3b01 subs r3, #1 - 800169a: b29a uxth r2, r3 - 800169c: 68fb ldr r3, [r7, #12] - 800169e: 855a strh r2, [r3, #42] @ 0x2a - 80016a0: e04e b.n 8001740 + 80016fe: 68fb ldr r3, [r7, #12] + 8001700: 8d5b ldrh r3, [r3, #42] @ 0x2a + 8001702: b29b uxth r3, r3 + 8001704: 3b01 subs r3, #1 + 8001706: b29a uxth r2, r3 + 8001708: 68fb ldr r3, [r7, #12] + 800170a: 855a strh r2, [r3, #42] @ 0x2a + 800170c: e04e b.n 80017ac } } else { /* Wait until RXNE flag is set */ if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) - 80016a2: 6a7a ldr r2, [r7, #36] @ 0x24 - 80016a4: 6b39 ldr r1, [r7, #48] @ 0x30 - 80016a6: 68f8 ldr r0, [r7, #12] - 80016a8: f000 fb5e bl 8001d68 - 80016ac: 4603 mov r3, r0 - 80016ae: 2b00 cmp r3, #0 - 80016b0: d001 beq.n 80016b6 + 800170e: 6a7a ldr r2, [r7, #36] @ 0x24 + 8001710: 6b39 ldr r1, [r7, #48] @ 0x30 + 8001712: 68f8 ldr r0, [r7, #12] + 8001714: f000 fb5e bl 8001dd4 + 8001718: 4603 mov r3, r0 + 800171a: 2b00 cmp r3, #0 + 800171c: d001 beq.n 8001722 { return HAL_ERROR; - 80016b2: 2301 movs r3, #1 - 80016b4: e058 b.n 8001768 + 800171e: 2301 movs r3, #1 + 8001720: e058 b.n 80017d4 } /* Read data from DR */ *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; - 80016b6: 68fb ldr r3, [r7, #12] - 80016b8: 681b ldr r3, [r3, #0] - 80016ba: 691a ldr r2, [r3, #16] - 80016bc: 68fb ldr r3, [r7, #12] - 80016be: 6a5b ldr r3, [r3, #36] @ 0x24 - 80016c0: b2d2 uxtb r2, r2 - 80016c2: 701a strb r2, [r3, #0] + 8001722: 68fb ldr r3, [r7, #12] + 8001724: 681b ldr r3, [r3, #0] + 8001726: 691a ldr r2, [r3, #16] + 8001728: 68fb ldr r3, [r7, #12] + 800172a: 6a5b ldr r3, [r3, #36] @ 0x24 + 800172c: b2d2 uxtb r2, r2 + 800172e: 701a strb r2, [r3, #0] /* Increment Buffer pointer */ hi2c->pBuffPtr++; - 80016c4: 68fb ldr r3, [r7, #12] - 80016c6: 6a5b ldr r3, [r3, #36] @ 0x24 - 80016c8: 1c5a adds r2, r3, #1 - 80016ca: 68fb ldr r3, [r7, #12] - 80016cc: 625a str r2, [r3, #36] @ 0x24 + 8001730: 68fb ldr r3, [r7, #12] + 8001732: 6a5b ldr r3, [r3, #36] @ 0x24 + 8001734: 1c5a adds r2, r3, #1 + 8001736: 68fb ldr r3, [r7, #12] + 8001738: 625a str r2, [r3, #36] @ 0x24 /* Update counter */ hi2c->XferSize--; - 80016ce: 68fb ldr r3, [r7, #12] - 80016d0: 8d1b ldrh r3, [r3, #40] @ 0x28 - 80016d2: 3b01 subs r3, #1 - 80016d4: b29a uxth r2, r3 - 80016d6: 68fb ldr r3, [r7, #12] - 80016d8: 851a strh r2, [r3, #40] @ 0x28 + 800173a: 68fb ldr r3, [r7, #12] + 800173c: 8d1b ldrh r3, [r3, #40] @ 0x28 + 800173e: 3b01 subs r3, #1 + 8001740: b29a uxth r2, r3 + 8001742: 68fb ldr r3, [r7, #12] + 8001744: 851a strh r2, [r3, #40] @ 0x28 hi2c->XferCount--; - 80016da: 68fb ldr r3, [r7, #12] - 80016dc: 8d5b ldrh r3, [r3, #42] @ 0x2a - 80016de: b29b uxth r3, r3 - 80016e0: 3b01 subs r3, #1 - 80016e2: b29a uxth r2, r3 - 80016e4: 68fb ldr r3, [r7, #12] - 80016e6: 855a strh r2, [r3, #42] @ 0x2a + 8001746: 68fb ldr r3, [r7, #12] + 8001748: 8d5b ldrh r3, [r3, #42] @ 0x2a + 800174a: b29b uxth r3, r3 + 800174c: 3b01 subs r3, #1 + 800174e: b29a uxth r2, r3 + 8001750: 68fb ldr r3, [r7, #12] + 8001752: 855a strh r2, [r3, #42] @ 0x2a if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) - 80016e8: 68fb ldr r3, [r7, #12] - 80016ea: 681b ldr r3, [r3, #0] - 80016ec: 695b ldr r3, [r3, #20] - 80016ee: f003 0304 and.w r3, r3, #4 - 80016f2: 2b04 cmp r3, #4 - 80016f4: d124 bne.n 8001740 + 8001754: 68fb ldr r3, [r7, #12] + 8001756: 681b ldr r3, [r3, #0] + 8001758: 695b ldr r3, [r3, #20] + 800175a: f003 0304 and.w r3, r3, #4 + 800175e: 2b04 cmp r3, #4 + 8001760: d124 bne.n 80017ac { if (hi2c->XferSize == 3U) - 80016f6: 68fb ldr r3, [r7, #12] - 80016f8: 8d1b ldrh r3, [r3, #40] @ 0x28 - 80016fa: 2b03 cmp r3, #3 - 80016fc: d107 bne.n 800170e + 8001762: 68fb ldr r3, [r7, #12] + 8001764: 8d1b ldrh r3, [r3, #40] @ 0x28 + 8001766: 2b03 cmp r3, #3 + 8001768: d107 bne.n 800177a { /* Disable Acknowledge */ CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); - 80016fe: 68fb ldr r3, [r7, #12] - 8001700: 681b ldr r3, [r3, #0] - 8001702: 681a ldr r2, [r3, #0] - 8001704: 68fb ldr r3, [r7, #12] - 8001706: 681b ldr r3, [r3, #0] - 8001708: f422 6280 bic.w r2, r2, #1024 @ 0x400 - 800170c: 601a str r2, [r3, #0] + 800176a: 68fb ldr r3, [r7, #12] + 800176c: 681b ldr r3, [r3, #0] + 800176e: 681a ldr r2, [r3, #0] + 8001770: 68fb ldr r3, [r7, #12] + 8001772: 681b ldr r3, [r3, #0] + 8001774: f422 6280 bic.w r2, r2, #1024 @ 0x400 + 8001778: 601a str r2, [r3, #0] } /* Read data from DR */ *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; - 800170e: 68fb ldr r3, [r7, #12] - 8001710: 681b ldr r3, [r3, #0] - 8001712: 691a ldr r2, [r3, #16] - 8001714: 68fb ldr r3, [r7, #12] - 8001716: 6a5b ldr r3, [r3, #36] @ 0x24 - 8001718: b2d2 uxtb r2, r2 - 800171a: 701a strb r2, [r3, #0] + 800177a: 68fb ldr r3, [r7, #12] + 800177c: 681b ldr r3, [r3, #0] + 800177e: 691a ldr r2, [r3, #16] + 8001780: 68fb ldr r3, [r7, #12] + 8001782: 6a5b ldr r3, [r3, #36] @ 0x24 + 8001784: b2d2 uxtb r2, r2 + 8001786: 701a strb r2, [r3, #0] /* Increment Buffer pointer */ hi2c->pBuffPtr++; - 800171c: 68fb ldr r3, [r7, #12] - 800171e: 6a5b ldr r3, [r3, #36] @ 0x24 - 8001720: 1c5a adds r2, r3, #1 - 8001722: 68fb ldr r3, [r7, #12] - 8001724: 625a str r2, [r3, #36] @ 0x24 + 8001788: 68fb ldr r3, [r7, #12] + 800178a: 6a5b ldr r3, [r3, #36] @ 0x24 + 800178c: 1c5a adds r2, r3, #1 + 800178e: 68fb ldr r3, [r7, #12] + 8001790: 625a str r2, [r3, #36] @ 0x24 /* Update counter */ hi2c->XferSize--; - 8001726: 68fb ldr r3, [r7, #12] - 8001728: 8d1b ldrh r3, [r3, #40] @ 0x28 - 800172a: 3b01 subs r3, #1 - 800172c: b29a uxth r2, r3 - 800172e: 68fb ldr r3, [r7, #12] - 8001730: 851a strh r2, [r3, #40] @ 0x28 + 8001792: 68fb ldr r3, [r7, #12] + 8001794: 8d1b ldrh r3, [r3, #40] @ 0x28 + 8001796: 3b01 subs r3, #1 + 8001798: b29a uxth r2, r3 + 800179a: 68fb ldr r3, [r7, #12] + 800179c: 851a strh r2, [r3, #40] @ 0x28 hi2c->XferCount--; - 8001732: 68fb ldr r3, [r7, #12] - 8001734: 8d5b ldrh r3, [r3, #42] @ 0x2a - 8001736: b29b uxth r3, r3 - 8001738: 3b01 subs r3, #1 - 800173a: b29a uxth r2, r3 - 800173c: 68fb ldr r3, [r7, #12] - 800173e: 855a strh r2, [r3, #42] @ 0x2a + 800179e: 68fb ldr r3, [r7, #12] + 80017a0: 8d5b ldrh r3, [r3, #42] @ 0x2a + 80017a2: b29b uxth r3, r3 + 80017a4: 3b01 subs r3, #1 + 80017a6: b29a uxth r2, r3 + 80017a8: 68fb ldr r3, [r7, #12] + 80017aa: 855a strh r2, [r3, #42] @ 0x2a while (hi2c->XferSize > 0U) - 8001740: 68fb ldr r3, [r7, #12] - 8001742: 8d1b ldrh r3, [r3, #40] @ 0x28 - 8001744: 2b00 cmp r3, #0 - 8001746: f47f aeb6 bne.w 80014b6 + 80017ac: 68fb ldr r3, [r7, #12] + 80017ae: 8d1b ldrh r3, [r3, #40] @ 0x28 + 80017b0: 2b00 cmp r3, #0 + 80017b2: f47f aeb6 bne.w 8001522 } } } hi2c->State = HAL_I2C_STATE_READY; - 800174a: 68fb ldr r3, [r7, #12] - 800174c: 2220 movs r2, #32 - 800174e: f883 203d strb.w r2, [r3, #61] @ 0x3d + 80017b6: 68fb ldr r3, [r7, #12] + 80017b8: 2220 movs r2, #32 + 80017ba: f883 203d strb.w r2, [r3, #61] @ 0x3d hi2c->Mode = HAL_I2C_MODE_NONE; - 8001752: 68fb ldr r3, [r7, #12] - 8001754: 2200 movs r2, #0 - 8001756: f883 203e strb.w r2, [r3, #62] @ 0x3e + 80017be: 68fb ldr r3, [r7, #12] + 80017c0: 2200 movs r2, #0 + 80017c2: f883 203e strb.w r2, [r3, #62] @ 0x3e /* Process Unlocked */ __HAL_UNLOCK(hi2c); - 800175a: 68fb ldr r3, [r7, #12] - 800175c: 2200 movs r2, #0 - 800175e: f883 203c strb.w r2, [r3, #60] @ 0x3c + 80017c6: 68fb ldr r3, [r7, #12] + 80017c8: 2200 movs r2, #0 + 80017ca: f883 203c strb.w r2, [r3, #60] @ 0x3c return HAL_OK; - 8001762: 2300 movs r3, #0 - 8001764: e000 b.n 8001768 + 80017ce: 2300 movs r3, #0 + 80017d0: e000 b.n 80017d4 } else { return HAL_BUSY; - 8001766: 2302 movs r3, #2 + 80017d2: 2302 movs r3, #2 } } - 8001768: 4618 mov r0, r3 - 800176a: 3728 adds r7, #40 @ 0x28 - 800176c: 46bd mov sp, r7 - 800176e: bd80 pop {r7, pc} - 8001770: 00010004 .word 0x00010004 + 80017d4: 4618 mov r0, r3 + 80017d6: 3728 adds r7, #40 @ 0x28 + 80017d8: 46bd mov sp, r7 + 80017da: bd80 pop {r7, pc} + 80017dc: 00010004 .word 0x00010004 -08001774 : +080017e0 : * @param Timeout Timeout duration * @param Tickstart Tick start value * @retval HAL status */ static HAL_StatusTypeDef I2C_MasterRequestWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Timeout, uint32_t Tickstart) { - 8001774: b580 push {r7, lr} - 8001776: b088 sub sp, #32 - 8001778: af02 add r7, sp, #8 - 800177a: 60f8 str r0, [r7, #12] - 800177c: 607a str r2, [r7, #4] - 800177e: 603b str r3, [r7, #0] - 8001780: 460b mov r3, r1 - 8001782: 817b strh r3, [r7, #10] + 80017e0: b580 push {r7, lr} + 80017e2: b088 sub sp, #32 + 80017e4: af02 add r7, sp, #8 + 80017e6: 60f8 str r0, [r7, #12] + 80017e8: 607a str r2, [r7, #4] + 80017ea: 603b str r3, [r7, #0] + 80017ec: 460b mov r3, r1 + 80017ee: 817b strh r3, [r7, #10] /* Declaration of temporary variable to prevent undefined behavior of volatile usage */ uint32_t CurrentXferOptions = hi2c->XferOptions; - 8001784: 68fb ldr r3, [r7, #12] - 8001786: 6adb ldr r3, [r3, #44] @ 0x2c - 8001788: 617b str r3, [r7, #20] + 80017f0: 68fb ldr r3, [r7, #12] + 80017f2: 6adb ldr r3, [r3, #44] @ 0x2c + 80017f4: 617b str r3, [r7, #20] /* Generate Start condition if first transfer */ if ((CurrentXferOptions == I2C_FIRST_AND_LAST_FRAME) || (CurrentXferOptions == I2C_FIRST_FRAME) || (CurrentXferOptions == I2C_NO_OPTION_FRAME)) - 800178a: 697b ldr r3, [r7, #20] - 800178c: 2b08 cmp r3, #8 - 800178e: d006 beq.n 800179e - 8001790: 697b ldr r3, [r7, #20] - 8001792: 2b01 cmp r3, #1 - 8001794: d003 beq.n 800179e - 8001796: 697b ldr r3, [r7, #20] - 8001798: f513 3f80 cmn.w r3, #65536 @ 0x10000 - 800179c: d108 bne.n 80017b0 + 80017f6: 697b ldr r3, [r7, #20] + 80017f8: 2b08 cmp r3, #8 + 80017fa: d006 beq.n 800180a + 80017fc: 697b ldr r3, [r7, #20] + 80017fe: 2b01 cmp r3, #1 + 8001800: d003 beq.n 800180a + 8001802: 697b ldr r3, [r7, #20] + 8001804: f513 3f80 cmn.w r3, #65536 @ 0x10000 + 8001808: d108 bne.n 800181c { /* Generate Start */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); - 800179e: 68fb ldr r3, [r7, #12] - 80017a0: 681b ldr r3, [r3, #0] - 80017a2: 681a ldr r2, [r3, #0] - 80017a4: 68fb ldr r3, [r7, #12] - 80017a6: 681b ldr r3, [r3, #0] - 80017a8: f442 7280 orr.w r2, r2, #256 @ 0x100 - 80017ac: 601a str r2, [r3, #0] - 80017ae: e00b b.n 80017c8 + 800180a: 68fb ldr r3, [r7, #12] + 800180c: 681b ldr r3, [r3, #0] + 800180e: 681a ldr r2, [r3, #0] + 8001810: 68fb ldr r3, [r7, #12] + 8001812: 681b ldr r3, [r3, #0] + 8001814: f442 7280 orr.w r2, r2, #256 @ 0x100 + 8001818: 601a str r2, [r3, #0] + 800181a: e00b b.n 8001834 } else if (hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) - 80017b0: 68fb ldr r3, [r7, #12] - 80017b2: 6b1b ldr r3, [r3, #48] @ 0x30 - 80017b4: 2b12 cmp r3, #18 - 80017b6: d107 bne.n 80017c8 + 800181c: 68fb ldr r3, [r7, #12] + 800181e: 6b1b ldr r3, [r3, #48] @ 0x30 + 8001820: 2b12 cmp r3, #18 + 8001822: d107 bne.n 8001834 { /* Generate ReStart */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); - 80017b8: 68fb ldr r3, [r7, #12] - 80017ba: 681b ldr r3, [r3, #0] - 80017bc: 681a ldr r2, [r3, #0] - 80017be: 68fb ldr r3, [r7, #12] - 80017c0: 681b ldr r3, [r3, #0] - 80017c2: f442 7280 orr.w r2, r2, #256 @ 0x100 - 80017c6: 601a str r2, [r3, #0] + 8001824: 68fb ldr r3, [r7, #12] + 8001826: 681b ldr r3, [r3, #0] + 8001828: 681a ldr r2, [r3, #0] + 800182a: 68fb ldr r3, [r7, #12] + 800182c: 681b ldr r3, [r3, #0] + 800182e: f442 7280 orr.w r2, r2, #256 @ 0x100 + 8001832: 601a str r2, [r3, #0] { /* Do nothing */ } /* Wait until SB flag is set */ if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) - 80017c8: 683b ldr r3, [r7, #0] - 80017ca: 9300 str r3, [sp, #0] - 80017cc: 687b ldr r3, [r7, #4] - 80017ce: 2200 movs r2, #0 - 80017d0: f04f 1101 mov.w r1, #65537 @ 0x10001 - 80017d4: 68f8 ldr r0, [r7, #12] - 80017d6: f000 f91d bl 8001a14 - 80017da: 4603 mov r3, r0 - 80017dc: 2b00 cmp r3, #0 - 80017de: d00d beq.n 80017fc + 8001834: 683b ldr r3, [r7, #0] + 8001836: 9300 str r3, [sp, #0] + 8001838: 687b ldr r3, [r7, #4] + 800183a: 2200 movs r2, #0 + 800183c: f04f 1101 mov.w r1, #65537 @ 0x10001 + 8001840: 68f8 ldr r0, [r7, #12] + 8001842: f000 f91d bl 8001a80 + 8001846: 4603 mov r3, r0 + 8001848: 2b00 cmp r3, #0 + 800184a: d00d beq.n 8001868 { if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) - 80017e0: 68fb ldr r3, [r7, #12] - 80017e2: 681b ldr r3, [r3, #0] - 80017e4: 681b ldr r3, [r3, #0] - 80017e6: f403 7380 and.w r3, r3, #256 @ 0x100 - 80017ea: f5b3 7f80 cmp.w r3, #256 @ 0x100 - 80017ee: d103 bne.n 80017f8 + 800184c: 68fb ldr r3, [r7, #12] + 800184e: 681b ldr r3, [r3, #0] + 8001850: 681b ldr r3, [r3, #0] + 8001852: f403 7380 and.w r3, r3, #256 @ 0x100 + 8001856: f5b3 7f80 cmp.w r3, #256 @ 0x100 + 800185a: d103 bne.n 8001864 { hi2c->ErrorCode = HAL_I2C_WRONG_START; - 80017f0: 68fb ldr r3, [r7, #12] - 80017f2: f44f 7200 mov.w r2, #512 @ 0x200 - 80017f6: 641a str r2, [r3, #64] @ 0x40 + 800185c: 68fb ldr r3, [r7, #12] + 800185e: f44f 7200 mov.w r2, #512 @ 0x200 + 8001862: 641a str r2, [r3, #64] @ 0x40 } return HAL_TIMEOUT; - 80017f8: 2303 movs r3, #3 - 80017fa: e035 b.n 8001868 + 8001864: 2303 movs r3, #3 + 8001866: e035 b.n 80018d4 } if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) - 80017fc: 68fb ldr r3, [r7, #12] - 80017fe: 691b ldr r3, [r3, #16] - 8001800: f5b3 4f80 cmp.w r3, #16384 @ 0x4000 - 8001804: d108 bne.n 8001818 + 8001868: 68fb ldr r3, [r7, #12] + 800186a: 691b ldr r3, [r3, #16] + 800186c: f5b3 4f80 cmp.w r3, #16384 @ 0x4000 + 8001870: d108 bne.n 8001884 { /* Send slave address */ hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(DevAddress); - 8001806: 897b ldrh r3, [r7, #10] - 8001808: b2db uxtb r3, r3 - 800180a: 461a mov r2, r3 - 800180c: 68fb ldr r3, [r7, #12] - 800180e: 681b ldr r3, [r3, #0] - 8001810: f002 02fe and.w r2, r2, #254 @ 0xfe - 8001814: 611a str r2, [r3, #16] - 8001816: e01b b.n 8001850 + 8001872: 897b ldrh r3, [r7, #10] + 8001874: b2db uxtb r3, r3 + 8001876: 461a mov r2, r3 + 8001878: 68fb ldr r3, [r7, #12] + 800187a: 681b ldr r3, [r3, #0] + 800187c: f002 02fe and.w r2, r2, #254 @ 0xfe + 8001880: 611a str r2, [r3, #16] + 8001882: e01b b.n 80018bc } else { /* Send header of slave address */ hi2c->Instance->DR = I2C_10BIT_HEADER_WRITE(DevAddress); - 8001818: 897b ldrh r3, [r7, #10] - 800181a: 11db asrs r3, r3, #7 - 800181c: b2db uxtb r3, r3 - 800181e: f003 0306 and.w r3, r3, #6 - 8001822: b2db uxtb r3, r3 - 8001824: f063 030f orn r3, r3, #15 - 8001828: b2da uxtb r2, r3 - 800182a: 68fb ldr r3, [r7, #12] - 800182c: 681b ldr r3, [r3, #0] - 800182e: 611a str r2, [r3, #16] + 8001884: 897b ldrh r3, [r7, #10] + 8001886: 11db asrs r3, r3, #7 + 8001888: b2db uxtb r3, r3 + 800188a: f003 0306 and.w r3, r3, #6 + 800188e: b2db uxtb r3, r3 + 8001890: f063 030f orn r3, r3, #15 + 8001894: b2da uxtb r2, r3 + 8001896: 68fb ldr r3, [r7, #12] + 8001898: 681b ldr r3, [r3, #0] + 800189a: 611a str r2, [r3, #16] /* Wait until ADD10 flag is set */ if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADD10, Timeout, Tickstart) != HAL_OK) - 8001830: 683b ldr r3, [r7, #0] - 8001832: 687a ldr r2, [r7, #4] - 8001834: 490e ldr r1, [pc, #56] @ (8001870 ) - 8001836: 68f8 ldr r0, [r7, #12] - 8001838: f000 f966 bl 8001b08 - 800183c: 4603 mov r3, r0 - 800183e: 2b00 cmp r3, #0 - 8001840: d001 beq.n 8001846 + 800189c: 683b ldr r3, [r7, #0] + 800189e: 687a ldr r2, [r7, #4] + 80018a0: 490e ldr r1, [pc, #56] @ (80018dc ) + 80018a2: 68f8 ldr r0, [r7, #12] + 80018a4: f000 f966 bl 8001b74 + 80018a8: 4603 mov r3, r0 + 80018aa: 2b00 cmp r3, #0 + 80018ac: d001 beq.n 80018b2 { return HAL_ERROR; - 8001842: 2301 movs r3, #1 - 8001844: e010 b.n 8001868 + 80018ae: 2301 movs r3, #1 + 80018b0: e010 b.n 80018d4 } /* Send slave address */ hi2c->Instance->DR = I2C_10BIT_ADDRESS(DevAddress); - 8001846: 897b ldrh r3, [r7, #10] - 8001848: b2da uxtb r2, r3 - 800184a: 68fb ldr r3, [r7, #12] - 800184c: 681b ldr r3, [r3, #0] - 800184e: 611a str r2, [r3, #16] + 80018b2: 897b ldrh r3, [r7, #10] + 80018b4: b2da uxtb r2, r3 + 80018b6: 68fb ldr r3, [r7, #12] + 80018b8: 681b ldr r3, [r3, #0] + 80018ba: 611a str r2, [r3, #16] } /* Wait until ADDR flag is set */ if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) - 8001850: 683b ldr r3, [r7, #0] - 8001852: 687a ldr r2, [r7, #4] - 8001854: 4907 ldr r1, [pc, #28] @ (8001874 ) - 8001856: 68f8 ldr r0, [r7, #12] - 8001858: f000 f956 bl 8001b08 - 800185c: 4603 mov r3, r0 - 800185e: 2b00 cmp r3, #0 - 8001860: d001 beq.n 8001866 + 80018bc: 683b ldr r3, [r7, #0] + 80018be: 687a ldr r2, [r7, #4] + 80018c0: 4907 ldr r1, [pc, #28] @ (80018e0 ) + 80018c2: 68f8 ldr r0, [r7, #12] + 80018c4: f000 f956 bl 8001b74 + 80018c8: 4603 mov r3, r0 + 80018ca: 2b00 cmp r3, #0 + 80018cc: d001 beq.n 80018d2 { return HAL_ERROR; - 8001862: 2301 movs r3, #1 - 8001864: e000 b.n 8001868 + 80018ce: 2301 movs r3, #1 + 80018d0: e000 b.n 80018d4 } return HAL_OK; - 8001866: 2300 movs r3, #0 + 80018d2: 2300 movs r3, #0 } - 8001868: 4618 mov r0, r3 - 800186a: 3718 adds r7, #24 - 800186c: 46bd mov sp, r7 - 800186e: bd80 pop {r7, pc} - 8001870: 00010008 .word 0x00010008 - 8001874: 00010002 .word 0x00010002 + 80018d4: 4618 mov r0, r3 + 80018d6: 3718 adds r7, #24 + 80018d8: 46bd mov sp, r7 + 80018da: bd80 pop {r7, pc} + 80018dc: 00010008 .word 0x00010008 + 80018e0: 00010002 .word 0x00010002 -08001878 : +080018e4 : * @param Timeout Timeout duration * @param Tickstart Tick start value * @retval HAL status */ static HAL_StatusTypeDef I2C_MasterRequestRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Timeout, uint32_t Tickstart) { - 8001878: b580 push {r7, lr} - 800187a: b088 sub sp, #32 - 800187c: af02 add r7, sp, #8 - 800187e: 60f8 str r0, [r7, #12] - 8001880: 607a str r2, [r7, #4] - 8001882: 603b str r3, [r7, #0] - 8001884: 460b mov r3, r1 - 8001886: 817b strh r3, [r7, #10] + 80018e4: b580 push {r7, lr} + 80018e6: b088 sub sp, #32 + 80018e8: af02 add r7, sp, #8 + 80018ea: 60f8 str r0, [r7, #12] + 80018ec: 607a str r2, [r7, #4] + 80018ee: 603b str r3, [r7, #0] + 80018f0: 460b mov r3, r1 + 80018f2: 817b strh r3, [r7, #10] /* Declaration of temporary variable to prevent undefined behavior of volatile usage */ uint32_t CurrentXferOptions = hi2c->XferOptions; - 8001888: 68fb ldr r3, [r7, #12] - 800188a: 6adb ldr r3, [r3, #44] @ 0x2c - 800188c: 617b str r3, [r7, #20] + 80018f4: 68fb ldr r3, [r7, #12] + 80018f6: 6adb ldr r3, [r3, #44] @ 0x2c + 80018f8: 617b str r3, [r7, #20] /* Enable Acknowledge */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); - 800188e: 68fb ldr r3, [r7, #12] - 8001890: 681b ldr r3, [r3, #0] - 8001892: 681a ldr r2, [r3, #0] - 8001894: 68fb ldr r3, [r7, #12] - 8001896: 681b ldr r3, [r3, #0] - 8001898: f442 6280 orr.w r2, r2, #1024 @ 0x400 - 800189c: 601a str r2, [r3, #0] + 80018fa: 68fb ldr r3, [r7, #12] + 80018fc: 681b ldr r3, [r3, #0] + 80018fe: 681a ldr r2, [r3, #0] + 8001900: 68fb ldr r3, [r7, #12] + 8001902: 681b ldr r3, [r3, #0] + 8001904: f442 6280 orr.w r2, r2, #1024 @ 0x400 + 8001908: 601a str r2, [r3, #0] /* Generate Start condition if first transfer */ if ((CurrentXferOptions == I2C_FIRST_AND_LAST_FRAME) || (CurrentXferOptions == I2C_FIRST_FRAME) || (CurrentXferOptions == I2C_NO_OPTION_FRAME)) - 800189e: 697b ldr r3, [r7, #20] - 80018a0: 2b08 cmp r3, #8 - 80018a2: d006 beq.n 80018b2 - 80018a4: 697b ldr r3, [r7, #20] - 80018a6: 2b01 cmp r3, #1 - 80018a8: d003 beq.n 80018b2 - 80018aa: 697b ldr r3, [r7, #20] - 80018ac: f513 3f80 cmn.w r3, #65536 @ 0x10000 - 80018b0: d108 bne.n 80018c4 + 800190a: 697b ldr r3, [r7, #20] + 800190c: 2b08 cmp r3, #8 + 800190e: d006 beq.n 800191e + 8001910: 697b ldr r3, [r7, #20] + 8001912: 2b01 cmp r3, #1 + 8001914: d003 beq.n 800191e + 8001916: 697b ldr r3, [r7, #20] + 8001918: f513 3f80 cmn.w r3, #65536 @ 0x10000 + 800191c: d108 bne.n 8001930 { /* Generate Start */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); - 80018b2: 68fb ldr r3, [r7, #12] - 80018b4: 681b ldr r3, [r3, #0] - 80018b6: 681a ldr r2, [r3, #0] - 80018b8: 68fb ldr r3, [r7, #12] - 80018ba: 681b ldr r3, [r3, #0] - 80018bc: f442 7280 orr.w r2, r2, #256 @ 0x100 - 80018c0: 601a str r2, [r3, #0] - 80018c2: e00b b.n 80018dc + 800191e: 68fb ldr r3, [r7, #12] + 8001920: 681b ldr r3, [r3, #0] + 8001922: 681a ldr r2, [r3, #0] + 8001924: 68fb ldr r3, [r7, #12] + 8001926: 681b ldr r3, [r3, #0] + 8001928: f442 7280 orr.w r2, r2, #256 @ 0x100 + 800192c: 601a str r2, [r3, #0] + 800192e: e00b b.n 8001948 } else if (hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) - 80018c4: 68fb ldr r3, [r7, #12] - 80018c6: 6b1b ldr r3, [r3, #48] @ 0x30 - 80018c8: 2b11 cmp r3, #17 - 80018ca: d107 bne.n 80018dc + 8001930: 68fb ldr r3, [r7, #12] + 8001932: 6b1b ldr r3, [r3, #48] @ 0x30 + 8001934: 2b11 cmp r3, #17 + 8001936: d107 bne.n 8001948 { /* Generate ReStart */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); - 80018cc: 68fb ldr r3, [r7, #12] - 80018ce: 681b ldr r3, [r3, #0] - 80018d0: 681a ldr r2, [r3, #0] - 80018d2: 68fb ldr r3, [r7, #12] - 80018d4: 681b ldr r3, [r3, #0] - 80018d6: f442 7280 orr.w r2, r2, #256 @ 0x100 - 80018da: 601a str r2, [r3, #0] + 8001938: 68fb ldr r3, [r7, #12] + 800193a: 681b ldr r3, [r3, #0] + 800193c: 681a ldr r2, [r3, #0] + 800193e: 68fb ldr r3, [r7, #12] + 8001940: 681b ldr r3, [r3, #0] + 8001942: f442 7280 orr.w r2, r2, #256 @ 0x100 + 8001946: 601a str r2, [r3, #0] { /* Do nothing */ } /* Wait until SB flag is set */ if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) - 80018dc: 683b ldr r3, [r7, #0] - 80018de: 9300 str r3, [sp, #0] - 80018e0: 687b ldr r3, [r7, #4] - 80018e2: 2200 movs r2, #0 - 80018e4: f04f 1101 mov.w r1, #65537 @ 0x10001 - 80018e8: 68f8 ldr r0, [r7, #12] - 80018ea: f000 f893 bl 8001a14 - 80018ee: 4603 mov r3, r0 - 80018f0: 2b00 cmp r3, #0 - 80018f2: d00d beq.n 8001910 + 8001948: 683b ldr r3, [r7, #0] + 800194a: 9300 str r3, [sp, #0] + 800194c: 687b ldr r3, [r7, #4] + 800194e: 2200 movs r2, #0 + 8001950: f04f 1101 mov.w r1, #65537 @ 0x10001 + 8001954: 68f8 ldr r0, [r7, #12] + 8001956: f000 f893 bl 8001a80 + 800195a: 4603 mov r3, r0 + 800195c: 2b00 cmp r3, #0 + 800195e: d00d beq.n 800197c { if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) - 80018f4: 68fb ldr r3, [r7, #12] - 80018f6: 681b ldr r3, [r3, #0] - 80018f8: 681b ldr r3, [r3, #0] - 80018fa: f403 7380 and.w r3, r3, #256 @ 0x100 - 80018fe: f5b3 7f80 cmp.w r3, #256 @ 0x100 - 8001902: d103 bne.n 800190c + 8001960: 68fb ldr r3, [r7, #12] + 8001962: 681b ldr r3, [r3, #0] + 8001964: 681b ldr r3, [r3, #0] + 8001966: f403 7380 and.w r3, r3, #256 @ 0x100 + 800196a: f5b3 7f80 cmp.w r3, #256 @ 0x100 + 800196e: d103 bne.n 8001978 { hi2c->ErrorCode = HAL_I2C_WRONG_START; - 8001904: 68fb ldr r3, [r7, #12] - 8001906: f44f 7200 mov.w r2, #512 @ 0x200 - 800190a: 641a str r2, [r3, #64] @ 0x40 + 8001970: 68fb ldr r3, [r7, #12] + 8001972: f44f 7200 mov.w r2, #512 @ 0x200 + 8001976: 641a str r2, [r3, #64] @ 0x40 } return HAL_TIMEOUT; - 800190c: 2303 movs r3, #3 - 800190e: e079 b.n 8001a04 + 8001978: 2303 movs r3, #3 + 800197a: e079 b.n 8001a70 } if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) - 8001910: 68fb ldr r3, [r7, #12] - 8001912: 691b ldr r3, [r3, #16] - 8001914: f5b3 4f80 cmp.w r3, #16384 @ 0x4000 - 8001918: d108 bne.n 800192c + 800197c: 68fb ldr r3, [r7, #12] + 800197e: 691b ldr r3, [r3, #16] + 8001980: f5b3 4f80 cmp.w r3, #16384 @ 0x4000 + 8001984: d108 bne.n 8001998 { /* Send slave address */ hi2c->Instance->DR = I2C_7BIT_ADD_READ(DevAddress); - 800191a: 897b ldrh r3, [r7, #10] - 800191c: b2db uxtb r3, r3 - 800191e: f043 0301 orr.w r3, r3, #1 - 8001922: b2da uxtb r2, r3 - 8001924: 68fb ldr r3, [r7, #12] - 8001926: 681b ldr r3, [r3, #0] - 8001928: 611a str r2, [r3, #16] - 800192a: e05f b.n 80019ec + 8001986: 897b ldrh r3, [r7, #10] + 8001988: b2db uxtb r3, r3 + 800198a: f043 0301 orr.w r3, r3, #1 + 800198e: b2da uxtb r2, r3 + 8001990: 68fb ldr r3, [r7, #12] + 8001992: 681b ldr r3, [r3, #0] + 8001994: 611a str r2, [r3, #16] + 8001996: e05f b.n 8001a58 } else { /* Send header of slave address */ hi2c->Instance->DR = I2C_10BIT_HEADER_WRITE(DevAddress); - 800192c: 897b ldrh r3, [r7, #10] - 800192e: 11db asrs r3, r3, #7 - 8001930: b2db uxtb r3, r3 - 8001932: f003 0306 and.w r3, r3, #6 - 8001936: b2db uxtb r3, r3 - 8001938: f063 030f orn r3, r3, #15 - 800193c: b2da uxtb r2, r3 - 800193e: 68fb ldr r3, [r7, #12] - 8001940: 681b ldr r3, [r3, #0] - 8001942: 611a str r2, [r3, #16] + 8001998: 897b ldrh r3, [r7, #10] + 800199a: 11db asrs r3, r3, #7 + 800199c: b2db uxtb r3, r3 + 800199e: f003 0306 and.w r3, r3, #6 + 80019a2: b2db uxtb r3, r3 + 80019a4: f063 030f orn r3, r3, #15 + 80019a8: b2da uxtb r2, r3 + 80019aa: 68fb ldr r3, [r7, #12] + 80019ac: 681b ldr r3, [r3, #0] + 80019ae: 611a str r2, [r3, #16] /* Wait until ADD10 flag is set */ if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADD10, Timeout, Tickstart) != HAL_OK) - 8001944: 683b ldr r3, [r7, #0] - 8001946: 687a ldr r2, [r7, #4] - 8001948: 4930 ldr r1, [pc, #192] @ (8001a0c ) - 800194a: 68f8 ldr r0, [r7, #12] - 800194c: f000 f8dc bl 8001b08 - 8001950: 4603 mov r3, r0 - 8001952: 2b00 cmp r3, #0 - 8001954: d001 beq.n 800195a + 80019b0: 683b ldr r3, [r7, #0] + 80019b2: 687a ldr r2, [r7, #4] + 80019b4: 4930 ldr r1, [pc, #192] @ (8001a78 ) + 80019b6: 68f8 ldr r0, [r7, #12] + 80019b8: f000 f8dc bl 8001b74 + 80019bc: 4603 mov r3, r0 + 80019be: 2b00 cmp r3, #0 + 80019c0: d001 beq.n 80019c6 { return HAL_ERROR; - 8001956: 2301 movs r3, #1 - 8001958: e054 b.n 8001a04 + 80019c2: 2301 movs r3, #1 + 80019c4: e054 b.n 8001a70 } /* Send slave address */ hi2c->Instance->DR = I2C_10BIT_ADDRESS(DevAddress); - 800195a: 897b ldrh r3, [r7, #10] - 800195c: b2da uxtb r2, r3 - 800195e: 68fb ldr r3, [r7, #12] - 8001960: 681b ldr r3, [r3, #0] - 8001962: 611a str r2, [r3, #16] + 80019c6: 897b ldrh r3, [r7, #10] + 80019c8: b2da uxtb r2, r3 + 80019ca: 68fb ldr r3, [r7, #12] + 80019cc: 681b ldr r3, [r3, #0] + 80019ce: 611a str r2, [r3, #16] /* Wait until ADDR flag is set */ if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) - 8001964: 683b ldr r3, [r7, #0] - 8001966: 687a ldr r2, [r7, #4] - 8001968: 4929 ldr r1, [pc, #164] @ (8001a10 ) - 800196a: 68f8 ldr r0, [r7, #12] - 800196c: f000 f8cc bl 8001b08 - 8001970: 4603 mov r3, r0 - 8001972: 2b00 cmp r3, #0 - 8001974: d001 beq.n 800197a + 80019d0: 683b ldr r3, [r7, #0] + 80019d2: 687a ldr r2, [r7, #4] + 80019d4: 4929 ldr r1, [pc, #164] @ (8001a7c ) + 80019d6: 68f8 ldr r0, [r7, #12] + 80019d8: f000 f8cc bl 8001b74 + 80019dc: 4603 mov r3, r0 + 80019de: 2b00 cmp r3, #0 + 80019e0: d001 beq.n 80019e6 { return HAL_ERROR; - 8001976: 2301 movs r3, #1 - 8001978: e044 b.n 8001a04 + 80019e2: 2301 movs r3, #1 + 80019e4: e044 b.n 8001a70 } /* Clear ADDR flag */ __HAL_I2C_CLEAR_ADDRFLAG(hi2c); - 800197a: 2300 movs r3, #0 - 800197c: 613b str r3, [r7, #16] - 800197e: 68fb ldr r3, [r7, #12] - 8001980: 681b ldr r3, [r3, #0] - 8001982: 695b ldr r3, [r3, #20] - 8001984: 613b str r3, [r7, #16] - 8001986: 68fb ldr r3, [r7, #12] - 8001988: 681b ldr r3, [r3, #0] - 800198a: 699b ldr r3, [r3, #24] - 800198c: 613b str r3, [r7, #16] - 800198e: 693b ldr r3, [r7, #16] + 80019e6: 2300 movs r3, #0 + 80019e8: 613b str r3, [r7, #16] + 80019ea: 68fb ldr r3, [r7, #12] + 80019ec: 681b ldr r3, [r3, #0] + 80019ee: 695b ldr r3, [r3, #20] + 80019f0: 613b str r3, [r7, #16] + 80019f2: 68fb ldr r3, [r7, #12] + 80019f4: 681b ldr r3, [r3, #0] + 80019f6: 699b ldr r3, [r3, #24] + 80019f8: 613b str r3, [r7, #16] + 80019fa: 693b ldr r3, [r7, #16] /* Generate Restart */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); - 8001990: 68fb ldr r3, [r7, #12] - 8001992: 681b ldr r3, [r3, #0] - 8001994: 681a ldr r2, [r3, #0] - 8001996: 68fb ldr r3, [r7, #12] - 8001998: 681b ldr r3, [r3, #0] - 800199a: f442 7280 orr.w r2, r2, #256 @ 0x100 - 800199e: 601a str r2, [r3, #0] + 80019fc: 68fb ldr r3, [r7, #12] + 80019fe: 681b ldr r3, [r3, #0] + 8001a00: 681a ldr r2, [r3, #0] + 8001a02: 68fb ldr r3, [r7, #12] + 8001a04: 681b ldr r3, [r3, #0] + 8001a06: f442 7280 orr.w r2, r2, #256 @ 0x100 + 8001a0a: 601a str r2, [r3, #0] /* Wait until SB flag is set */ if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) - 80019a0: 683b ldr r3, [r7, #0] - 80019a2: 9300 str r3, [sp, #0] - 80019a4: 687b ldr r3, [r7, #4] - 80019a6: 2200 movs r2, #0 - 80019a8: f04f 1101 mov.w r1, #65537 @ 0x10001 - 80019ac: 68f8 ldr r0, [r7, #12] - 80019ae: f000 f831 bl 8001a14 - 80019b2: 4603 mov r3, r0 - 80019b4: 2b00 cmp r3, #0 - 80019b6: d00d beq.n 80019d4 + 8001a0c: 683b ldr r3, [r7, #0] + 8001a0e: 9300 str r3, [sp, #0] + 8001a10: 687b ldr r3, [r7, #4] + 8001a12: 2200 movs r2, #0 + 8001a14: f04f 1101 mov.w r1, #65537 @ 0x10001 + 8001a18: 68f8 ldr r0, [r7, #12] + 8001a1a: f000 f831 bl 8001a80 + 8001a1e: 4603 mov r3, r0 + 8001a20: 2b00 cmp r3, #0 + 8001a22: d00d beq.n 8001a40 { if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) - 80019b8: 68fb ldr r3, [r7, #12] - 80019ba: 681b ldr r3, [r3, #0] - 80019bc: 681b ldr r3, [r3, #0] - 80019be: f403 7380 and.w r3, r3, #256 @ 0x100 - 80019c2: f5b3 7f80 cmp.w r3, #256 @ 0x100 - 80019c6: d103 bne.n 80019d0 + 8001a24: 68fb ldr r3, [r7, #12] + 8001a26: 681b ldr r3, [r3, #0] + 8001a28: 681b ldr r3, [r3, #0] + 8001a2a: f403 7380 and.w r3, r3, #256 @ 0x100 + 8001a2e: f5b3 7f80 cmp.w r3, #256 @ 0x100 + 8001a32: d103 bne.n 8001a3c { hi2c->ErrorCode = HAL_I2C_WRONG_START; - 80019c8: 68fb ldr r3, [r7, #12] - 80019ca: f44f 7200 mov.w r2, #512 @ 0x200 - 80019ce: 641a str r2, [r3, #64] @ 0x40 + 8001a34: 68fb ldr r3, [r7, #12] + 8001a36: f44f 7200 mov.w r2, #512 @ 0x200 + 8001a3a: 641a str r2, [r3, #64] @ 0x40 } return HAL_TIMEOUT; - 80019d0: 2303 movs r3, #3 - 80019d2: e017 b.n 8001a04 + 8001a3c: 2303 movs r3, #3 + 8001a3e: e017 b.n 8001a70 } /* Send header of slave address */ hi2c->Instance->DR = I2C_10BIT_HEADER_READ(DevAddress); - 80019d4: 897b ldrh r3, [r7, #10] - 80019d6: 11db asrs r3, r3, #7 - 80019d8: b2db uxtb r3, r3 - 80019da: f003 0306 and.w r3, r3, #6 - 80019de: b2db uxtb r3, r3 - 80019e0: f063 030e orn r3, r3, #14 - 80019e4: b2da uxtb r2, r3 - 80019e6: 68fb ldr r3, [r7, #12] - 80019e8: 681b ldr r3, [r3, #0] - 80019ea: 611a str r2, [r3, #16] + 8001a40: 897b ldrh r3, [r7, #10] + 8001a42: 11db asrs r3, r3, #7 + 8001a44: b2db uxtb r3, r3 + 8001a46: f003 0306 and.w r3, r3, #6 + 8001a4a: b2db uxtb r3, r3 + 8001a4c: f063 030e orn r3, r3, #14 + 8001a50: b2da uxtb r2, r3 + 8001a52: 68fb ldr r3, [r7, #12] + 8001a54: 681b ldr r3, [r3, #0] + 8001a56: 611a str r2, [r3, #16] } /* Wait until ADDR flag is set */ if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) - 80019ec: 683b ldr r3, [r7, #0] - 80019ee: 687a ldr r2, [r7, #4] - 80019f0: 4907 ldr r1, [pc, #28] @ (8001a10 ) - 80019f2: 68f8 ldr r0, [r7, #12] - 80019f4: f000 f888 bl 8001b08 - 80019f8: 4603 mov r3, r0 - 80019fa: 2b00 cmp r3, #0 - 80019fc: d001 beq.n 8001a02 + 8001a58: 683b ldr r3, [r7, #0] + 8001a5a: 687a ldr r2, [r7, #4] + 8001a5c: 4907 ldr r1, [pc, #28] @ (8001a7c ) + 8001a5e: 68f8 ldr r0, [r7, #12] + 8001a60: f000 f888 bl 8001b74 + 8001a64: 4603 mov r3, r0 + 8001a66: 2b00 cmp r3, #0 + 8001a68: d001 beq.n 8001a6e { return HAL_ERROR; - 80019fe: 2301 movs r3, #1 - 8001a00: e000 b.n 8001a04 + 8001a6a: 2301 movs r3, #1 + 8001a6c: e000 b.n 8001a70 } return HAL_OK; - 8001a02: 2300 movs r3, #0 + 8001a6e: 2300 movs r3, #0 } - 8001a04: 4618 mov r0, r3 - 8001a06: 3718 adds r7, #24 - 8001a08: 46bd mov sp, r7 - 8001a0a: bd80 pop {r7, pc} - 8001a0c: 00010008 .word 0x00010008 - 8001a10: 00010002 .word 0x00010002 + 8001a70: 4618 mov r0, r3 + 8001a72: 3718 adds r7, #24 + 8001a74: 46bd mov sp, r7 + 8001a76: bd80 pop {r7, pc} + 8001a78: 00010008 .word 0x00010008 + 8001a7c: 00010002 .word 0x00010002 -08001a14 : +08001a80 : * @param Timeout Timeout duration * @param Tickstart Tick start value * @retval HAL status */ static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagStatus Status, uint32_t Timeout, uint32_t Tickstart) { - 8001a14: b580 push {r7, lr} - 8001a16: b084 sub sp, #16 - 8001a18: af00 add r7, sp, #0 - 8001a1a: 60f8 str r0, [r7, #12] - 8001a1c: 60b9 str r1, [r7, #8] - 8001a1e: 603b str r3, [r7, #0] - 8001a20: 4613 mov r3, r2 - 8001a22: 71fb strb r3, [r7, #7] + 8001a80: b580 push {r7, lr} + 8001a82: b084 sub sp, #16 + 8001a84: af00 add r7, sp, #0 + 8001a86: 60f8 str r0, [r7, #12] + 8001a88: 60b9 str r1, [r7, #8] + 8001a8a: 603b str r3, [r7, #0] + 8001a8c: 4613 mov r3, r2 + 8001a8e: 71fb strb r3, [r7, #7] /* Wait until flag is set */ while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) - 8001a24: e048 b.n 8001ab8 + 8001a90: e048 b.n 8001b24 { /* Check for the Timeout */ if (Timeout != HAL_MAX_DELAY) - 8001a26: 683b ldr r3, [r7, #0] - 8001a28: f1b3 3fff cmp.w r3, #4294967295 @ 0xffffffff - 8001a2c: d044 beq.n 8001ab8 + 8001a92: 683b ldr r3, [r7, #0] + 8001a94: f1b3 3fff cmp.w r3, #4294967295 @ 0xffffffff + 8001a98: d044 beq.n 8001b24 { if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) - 8001a2e: f7fe ff75 bl 800091c - 8001a32: 4602 mov r2, r0 - 8001a34: 69bb ldr r3, [r7, #24] - 8001a36: 1ad3 subs r3, r2, r3 - 8001a38: 683a ldr r2, [r7, #0] - 8001a3a: 429a cmp r2, r3 - 8001a3c: d302 bcc.n 8001a44 - 8001a3e: 683b ldr r3, [r7, #0] - 8001a40: 2b00 cmp r3, #0 - 8001a42: d139 bne.n 8001ab8 + 8001a9a: f7fe ff75 bl 8000988 + 8001a9e: 4602 mov r2, r0 + 8001aa0: 69bb ldr r3, [r7, #24] + 8001aa2: 1ad3 subs r3, r2, r3 + 8001aa4: 683a ldr r2, [r7, #0] + 8001aa6: 429a cmp r2, r3 + 8001aa8: d302 bcc.n 8001ab0 + 8001aaa: 683b ldr r3, [r7, #0] + 8001aac: 2b00 cmp r3, #0 + 8001aae: d139 bne.n 8001b24 { if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)) - 8001a44: 68bb ldr r3, [r7, #8] - 8001a46: 0c1b lsrs r3, r3, #16 - 8001a48: b2db uxtb r3, r3 - 8001a4a: 2b01 cmp r3, #1 - 8001a4c: d10d bne.n 8001a6a - 8001a4e: 68fb ldr r3, [r7, #12] - 8001a50: 681b ldr r3, [r3, #0] - 8001a52: 695b ldr r3, [r3, #20] - 8001a54: 43da mvns r2, r3 - 8001a56: 68bb ldr r3, [r7, #8] - 8001a58: 4013 ands r3, r2 - 8001a5a: b29b uxth r3, r3 - 8001a5c: 2b00 cmp r3, #0 - 8001a5e: bf0c ite eq - 8001a60: 2301 moveq r3, #1 - 8001a62: 2300 movne r3, #0 - 8001a64: b2db uxtb r3, r3 - 8001a66: 461a mov r2, r3 - 8001a68: e00c b.n 8001a84 - 8001a6a: 68fb ldr r3, [r7, #12] - 8001a6c: 681b ldr r3, [r3, #0] - 8001a6e: 699b ldr r3, [r3, #24] - 8001a70: 43da mvns r2, r3 - 8001a72: 68bb ldr r3, [r7, #8] - 8001a74: 4013 ands r3, r2 - 8001a76: b29b uxth r3, r3 - 8001a78: 2b00 cmp r3, #0 - 8001a7a: bf0c ite eq - 8001a7c: 2301 moveq r3, #1 - 8001a7e: 2300 movne r3, #0 - 8001a80: b2db uxtb r3, r3 - 8001a82: 461a mov r2, r3 - 8001a84: 79fb ldrb r3, [r7, #7] - 8001a86: 429a cmp r2, r3 - 8001a88: d116 bne.n 8001ab8 + 8001ab0: 68bb ldr r3, [r7, #8] + 8001ab2: 0c1b lsrs r3, r3, #16 + 8001ab4: b2db uxtb r3, r3 + 8001ab6: 2b01 cmp r3, #1 + 8001ab8: d10d bne.n 8001ad6 + 8001aba: 68fb ldr r3, [r7, #12] + 8001abc: 681b ldr r3, [r3, #0] + 8001abe: 695b ldr r3, [r3, #20] + 8001ac0: 43da mvns r2, r3 + 8001ac2: 68bb ldr r3, [r7, #8] + 8001ac4: 4013 ands r3, r2 + 8001ac6: b29b uxth r3, r3 + 8001ac8: 2b00 cmp r3, #0 + 8001aca: bf0c ite eq + 8001acc: 2301 moveq r3, #1 + 8001ace: 2300 movne r3, #0 + 8001ad0: b2db uxtb r3, r3 + 8001ad2: 461a mov r2, r3 + 8001ad4: e00c b.n 8001af0 + 8001ad6: 68fb ldr r3, [r7, #12] + 8001ad8: 681b ldr r3, [r3, #0] + 8001ada: 699b ldr r3, [r3, #24] + 8001adc: 43da mvns r2, r3 + 8001ade: 68bb ldr r3, [r7, #8] + 8001ae0: 4013 ands r3, r2 + 8001ae2: b29b uxth r3, r3 + 8001ae4: 2b00 cmp r3, #0 + 8001ae6: bf0c ite eq + 8001ae8: 2301 moveq r3, #1 + 8001aea: 2300 movne r3, #0 + 8001aec: b2db uxtb r3, r3 + 8001aee: 461a mov r2, r3 + 8001af0: 79fb ldrb r3, [r7, #7] + 8001af2: 429a cmp r2, r3 + 8001af4: d116 bne.n 8001b24 { hi2c->PreviousState = I2C_STATE_NONE; - 8001a8a: 68fb ldr r3, [r7, #12] - 8001a8c: 2200 movs r2, #0 - 8001a8e: 631a str r2, [r3, #48] @ 0x30 + 8001af6: 68fb ldr r3, [r7, #12] + 8001af8: 2200 movs r2, #0 + 8001afa: 631a str r2, [r3, #48] @ 0x30 hi2c->State = HAL_I2C_STATE_READY; - 8001a90: 68fb ldr r3, [r7, #12] - 8001a92: 2220 movs r2, #32 - 8001a94: f883 203d strb.w r2, [r3, #61] @ 0x3d + 8001afc: 68fb ldr r3, [r7, #12] + 8001afe: 2220 movs r2, #32 + 8001b00: f883 203d strb.w r2, [r3, #61] @ 0x3d hi2c->Mode = HAL_I2C_MODE_NONE; - 8001a98: 68fb ldr r3, [r7, #12] - 8001a9a: 2200 movs r2, #0 - 8001a9c: f883 203e strb.w r2, [r3, #62] @ 0x3e + 8001b04: 68fb ldr r3, [r7, #12] + 8001b06: 2200 movs r2, #0 + 8001b08: f883 203e strb.w r2, [r3, #62] @ 0x3e hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; - 8001aa0: 68fb ldr r3, [r7, #12] - 8001aa2: 6c1b ldr r3, [r3, #64] @ 0x40 - 8001aa4: f043 0220 orr.w r2, r3, #32 - 8001aa8: 68fb ldr r3, [r7, #12] - 8001aaa: 641a str r2, [r3, #64] @ 0x40 + 8001b0c: 68fb ldr r3, [r7, #12] + 8001b0e: 6c1b ldr r3, [r3, #64] @ 0x40 + 8001b10: f043 0220 orr.w r2, r3, #32 + 8001b14: 68fb ldr r3, [r7, #12] + 8001b16: 641a str r2, [r3, #64] @ 0x40 /* Process Unlocked */ __HAL_UNLOCK(hi2c); - 8001aac: 68fb ldr r3, [r7, #12] - 8001aae: 2200 movs r2, #0 - 8001ab0: f883 203c strb.w r2, [r3, #60] @ 0x3c + 8001b18: 68fb ldr r3, [r7, #12] + 8001b1a: 2200 movs r2, #0 + 8001b1c: f883 203c strb.w r2, [r3, #60] @ 0x3c return HAL_ERROR; - 8001ab4: 2301 movs r3, #1 - 8001ab6: e023 b.n 8001b00 + 8001b20: 2301 movs r3, #1 + 8001b22: e023 b.n 8001b6c while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) - 8001ab8: 68bb ldr r3, [r7, #8] - 8001aba: 0c1b lsrs r3, r3, #16 - 8001abc: b2db uxtb r3, r3 - 8001abe: 2b01 cmp r3, #1 - 8001ac0: d10d bne.n 8001ade - 8001ac2: 68fb ldr r3, [r7, #12] - 8001ac4: 681b ldr r3, [r3, #0] - 8001ac6: 695b ldr r3, [r3, #20] - 8001ac8: 43da mvns r2, r3 - 8001aca: 68bb ldr r3, [r7, #8] - 8001acc: 4013 ands r3, r2 - 8001ace: b29b uxth r3, r3 - 8001ad0: 2b00 cmp r3, #0 - 8001ad2: bf0c ite eq - 8001ad4: 2301 moveq r3, #1 - 8001ad6: 2300 movne r3, #0 - 8001ad8: b2db uxtb r3, r3 - 8001ada: 461a mov r2, r3 - 8001adc: e00c b.n 8001af8 - 8001ade: 68fb ldr r3, [r7, #12] - 8001ae0: 681b ldr r3, [r3, #0] - 8001ae2: 699b ldr r3, [r3, #24] - 8001ae4: 43da mvns r2, r3 - 8001ae6: 68bb ldr r3, [r7, #8] - 8001ae8: 4013 ands r3, r2 - 8001aea: b29b uxth r3, r3 - 8001aec: 2b00 cmp r3, #0 - 8001aee: bf0c ite eq - 8001af0: 2301 moveq r3, #1 - 8001af2: 2300 movne r3, #0 - 8001af4: b2db uxtb r3, r3 - 8001af6: 461a mov r2, r3 - 8001af8: 79fb ldrb r3, [r7, #7] - 8001afa: 429a cmp r2, r3 - 8001afc: d093 beq.n 8001a26 + 8001b24: 68bb ldr r3, [r7, #8] + 8001b26: 0c1b lsrs r3, r3, #16 + 8001b28: b2db uxtb r3, r3 + 8001b2a: 2b01 cmp r3, #1 + 8001b2c: d10d bne.n 8001b4a + 8001b2e: 68fb ldr r3, [r7, #12] + 8001b30: 681b ldr r3, [r3, #0] + 8001b32: 695b ldr r3, [r3, #20] + 8001b34: 43da mvns r2, r3 + 8001b36: 68bb ldr r3, [r7, #8] + 8001b38: 4013 ands r3, r2 + 8001b3a: b29b uxth r3, r3 + 8001b3c: 2b00 cmp r3, #0 + 8001b3e: bf0c ite eq + 8001b40: 2301 moveq r3, #1 + 8001b42: 2300 movne r3, #0 + 8001b44: b2db uxtb r3, r3 + 8001b46: 461a mov r2, r3 + 8001b48: e00c b.n 8001b64 + 8001b4a: 68fb ldr r3, [r7, #12] + 8001b4c: 681b ldr r3, [r3, #0] + 8001b4e: 699b ldr r3, [r3, #24] + 8001b50: 43da mvns r2, r3 + 8001b52: 68bb ldr r3, [r7, #8] + 8001b54: 4013 ands r3, r2 + 8001b56: b29b uxth r3, r3 + 8001b58: 2b00 cmp r3, #0 + 8001b5a: bf0c ite eq + 8001b5c: 2301 moveq r3, #1 + 8001b5e: 2300 movne r3, #0 + 8001b60: b2db uxtb r3, r3 + 8001b62: 461a mov r2, r3 + 8001b64: 79fb ldrb r3, [r7, #7] + 8001b66: 429a cmp r2, r3 + 8001b68: d093 beq.n 8001a92 } } } } return HAL_OK; - 8001afe: 2300 movs r3, #0 + 8001b6a: 2300 movs r3, #0 } - 8001b00: 4618 mov r0, r3 - 8001b02: 3710 adds r7, #16 - 8001b04: 46bd mov sp, r7 - 8001b06: bd80 pop {r7, pc} + 8001b6c: 4618 mov r0, r3 + 8001b6e: 3710 adds r7, #16 + 8001b70: 46bd mov sp, r7 + 8001b72: bd80 pop {r7, pc} -08001b08 : +08001b74 : * @param Timeout Timeout duration * @param Tickstart Tick start value * @retval HAL status */ static HAL_StatusTypeDef I2C_WaitOnMasterAddressFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, uint32_t Timeout, uint32_t Tickstart) { - 8001b08: b580 push {r7, lr} - 8001b0a: b084 sub sp, #16 - 8001b0c: af00 add r7, sp, #0 - 8001b0e: 60f8 str r0, [r7, #12] - 8001b10: 60b9 str r1, [r7, #8] - 8001b12: 607a str r2, [r7, #4] - 8001b14: 603b str r3, [r7, #0] + 8001b74: b580 push {r7, lr} + 8001b76: b084 sub sp, #16 + 8001b78: af00 add r7, sp, #0 + 8001b7a: 60f8 str r0, [r7, #12] + 8001b7c: 60b9 str r1, [r7, #8] + 8001b7e: 607a str r2, [r7, #4] + 8001b80: 603b str r3, [r7, #0] while (__HAL_I2C_GET_FLAG(hi2c, Flag) == RESET) - 8001b16: e071 b.n 8001bfc + 8001b82: e071 b.n 8001c68 { if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) - 8001b18: 68fb ldr r3, [r7, #12] - 8001b1a: 681b ldr r3, [r3, #0] - 8001b1c: 695b ldr r3, [r3, #20] - 8001b1e: f403 6380 and.w r3, r3, #1024 @ 0x400 - 8001b22: f5b3 6f80 cmp.w r3, #1024 @ 0x400 - 8001b26: d123 bne.n 8001b70 + 8001b84: 68fb ldr r3, [r7, #12] + 8001b86: 681b ldr r3, [r3, #0] + 8001b88: 695b ldr r3, [r3, #20] + 8001b8a: f403 6380 and.w r3, r3, #1024 @ 0x400 + 8001b8e: f5b3 6f80 cmp.w r3, #1024 @ 0x400 + 8001b92: d123 bne.n 8001bdc { /* Generate Stop */ SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); - 8001b28: 68fb ldr r3, [r7, #12] - 8001b2a: 681b ldr r3, [r3, #0] - 8001b2c: 681a ldr r2, [r3, #0] - 8001b2e: 68fb ldr r3, [r7, #12] - 8001b30: 681b ldr r3, [r3, #0] - 8001b32: f442 7200 orr.w r2, r2, #512 @ 0x200 - 8001b36: 601a str r2, [r3, #0] + 8001b94: 68fb ldr r3, [r7, #12] + 8001b96: 681b ldr r3, [r3, #0] + 8001b98: 681a ldr r2, [r3, #0] + 8001b9a: 68fb ldr r3, [r7, #12] + 8001b9c: 681b ldr r3, [r3, #0] + 8001b9e: f442 7200 orr.w r2, r2, #512 @ 0x200 + 8001ba2: 601a str r2, [r3, #0] /* Clear AF Flag */ __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); - 8001b38: 68fb ldr r3, [r7, #12] - 8001b3a: 681b ldr r3, [r3, #0] - 8001b3c: f46f 6280 mvn.w r2, #1024 @ 0x400 - 8001b40: 615a str r2, [r3, #20] + 8001ba4: 68fb ldr r3, [r7, #12] + 8001ba6: 681b ldr r3, [r3, #0] + 8001ba8: f46f 6280 mvn.w r2, #1024 @ 0x400 + 8001bac: 615a str r2, [r3, #20] hi2c->PreviousState = I2C_STATE_NONE; - 8001b42: 68fb ldr r3, [r7, #12] - 8001b44: 2200 movs r2, #0 - 8001b46: 631a str r2, [r3, #48] @ 0x30 + 8001bae: 68fb ldr r3, [r7, #12] + 8001bb0: 2200 movs r2, #0 + 8001bb2: 631a str r2, [r3, #48] @ 0x30 hi2c->State = HAL_I2C_STATE_READY; - 8001b48: 68fb ldr r3, [r7, #12] - 8001b4a: 2220 movs r2, #32 - 8001b4c: f883 203d strb.w r2, [r3, #61] @ 0x3d + 8001bb4: 68fb ldr r3, [r7, #12] + 8001bb6: 2220 movs r2, #32 + 8001bb8: f883 203d strb.w r2, [r3, #61] @ 0x3d hi2c->Mode = HAL_I2C_MODE_NONE; - 8001b50: 68fb ldr r3, [r7, #12] - 8001b52: 2200 movs r2, #0 - 8001b54: f883 203e strb.w r2, [r3, #62] @ 0x3e + 8001bbc: 68fb ldr r3, [r7, #12] + 8001bbe: 2200 movs r2, #0 + 8001bc0: f883 203e strb.w r2, [r3, #62] @ 0x3e hi2c->ErrorCode |= HAL_I2C_ERROR_AF; - 8001b58: 68fb ldr r3, [r7, #12] - 8001b5a: 6c1b ldr r3, [r3, #64] @ 0x40 - 8001b5c: f043 0204 orr.w r2, r3, #4 - 8001b60: 68fb ldr r3, [r7, #12] - 8001b62: 641a str r2, [r3, #64] @ 0x40 + 8001bc4: 68fb ldr r3, [r7, #12] + 8001bc6: 6c1b ldr r3, [r3, #64] @ 0x40 + 8001bc8: f043 0204 orr.w r2, r3, #4 + 8001bcc: 68fb ldr r3, [r7, #12] + 8001bce: 641a str r2, [r3, #64] @ 0x40 /* Process Unlocked */ __HAL_UNLOCK(hi2c); - 8001b64: 68fb ldr r3, [r7, #12] - 8001b66: 2200 movs r2, #0 - 8001b68: f883 203c strb.w r2, [r3, #60] @ 0x3c + 8001bd0: 68fb ldr r3, [r7, #12] + 8001bd2: 2200 movs r2, #0 + 8001bd4: f883 203c strb.w r2, [r3, #60] @ 0x3c return HAL_ERROR; - 8001b6c: 2301 movs r3, #1 - 8001b6e: e067 b.n 8001c40 + 8001bd8: 2301 movs r3, #1 + 8001bda: e067 b.n 8001cac } /* Check for the Timeout */ if (Timeout != HAL_MAX_DELAY) - 8001b70: 687b ldr r3, [r7, #4] - 8001b72: f1b3 3fff cmp.w r3, #4294967295 @ 0xffffffff - 8001b76: d041 beq.n 8001bfc + 8001bdc: 687b ldr r3, [r7, #4] + 8001bde: f1b3 3fff cmp.w r3, #4294967295 @ 0xffffffff + 8001be2: d041 beq.n 8001c68 { if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) - 8001b78: f7fe fed0 bl 800091c - 8001b7c: 4602 mov r2, r0 - 8001b7e: 683b ldr r3, [r7, #0] - 8001b80: 1ad3 subs r3, r2, r3 - 8001b82: 687a ldr r2, [r7, #4] - 8001b84: 429a cmp r2, r3 - 8001b86: d302 bcc.n 8001b8e - 8001b88: 687b ldr r3, [r7, #4] - 8001b8a: 2b00 cmp r3, #0 - 8001b8c: d136 bne.n 8001bfc + 8001be4: f7fe fed0 bl 8000988 + 8001be8: 4602 mov r2, r0 + 8001bea: 683b ldr r3, [r7, #0] + 8001bec: 1ad3 subs r3, r2, r3 + 8001bee: 687a ldr r2, [r7, #4] + 8001bf0: 429a cmp r2, r3 + 8001bf2: d302 bcc.n 8001bfa + 8001bf4: 687b ldr r3, [r7, #4] + 8001bf6: 2b00 cmp r3, #0 + 8001bf8: d136 bne.n 8001c68 { if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == RESET)) - 8001b8e: 68bb ldr r3, [r7, #8] - 8001b90: 0c1b lsrs r3, r3, #16 - 8001b92: b2db uxtb r3, r3 - 8001b94: 2b01 cmp r3, #1 - 8001b96: d10c bne.n 8001bb2 - 8001b98: 68fb ldr r3, [r7, #12] - 8001b9a: 681b ldr r3, [r3, #0] - 8001b9c: 695b ldr r3, [r3, #20] - 8001b9e: 43da mvns r2, r3 - 8001ba0: 68bb ldr r3, [r7, #8] - 8001ba2: 4013 ands r3, r2 - 8001ba4: b29b uxth r3, r3 - 8001ba6: 2b00 cmp r3, #0 - 8001ba8: bf14 ite ne - 8001baa: 2301 movne r3, #1 - 8001bac: 2300 moveq r3, #0 - 8001bae: b2db uxtb r3, r3 - 8001bb0: e00b b.n 8001bca - 8001bb2: 68fb ldr r3, [r7, #12] - 8001bb4: 681b ldr r3, [r3, #0] - 8001bb6: 699b ldr r3, [r3, #24] - 8001bb8: 43da mvns r2, r3 - 8001bba: 68bb ldr r3, [r7, #8] - 8001bbc: 4013 ands r3, r2 - 8001bbe: b29b uxth r3, r3 - 8001bc0: 2b00 cmp r3, #0 - 8001bc2: bf14 ite ne - 8001bc4: 2301 movne r3, #1 - 8001bc6: 2300 moveq r3, #0 - 8001bc8: b2db uxtb r3, r3 - 8001bca: 2b00 cmp r3, #0 - 8001bcc: d016 beq.n 8001bfc + 8001bfa: 68bb ldr r3, [r7, #8] + 8001bfc: 0c1b lsrs r3, r3, #16 + 8001bfe: b2db uxtb r3, r3 + 8001c00: 2b01 cmp r3, #1 + 8001c02: d10c bne.n 8001c1e + 8001c04: 68fb ldr r3, [r7, #12] + 8001c06: 681b ldr r3, [r3, #0] + 8001c08: 695b ldr r3, [r3, #20] + 8001c0a: 43da mvns r2, r3 + 8001c0c: 68bb ldr r3, [r7, #8] + 8001c0e: 4013 ands r3, r2 + 8001c10: b29b uxth r3, r3 + 8001c12: 2b00 cmp r3, #0 + 8001c14: bf14 ite ne + 8001c16: 2301 movne r3, #1 + 8001c18: 2300 moveq r3, #0 + 8001c1a: b2db uxtb r3, r3 + 8001c1c: e00b b.n 8001c36 + 8001c1e: 68fb ldr r3, [r7, #12] + 8001c20: 681b ldr r3, [r3, #0] + 8001c22: 699b ldr r3, [r3, #24] + 8001c24: 43da mvns r2, r3 + 8001c26: 68bb ldr r3, [r7, #8] + 8001c28: 4013 ands r3, r2 + 8001c2a: b29b uxth r3, r3 + 8001c2c: 2b00 cmp r3, #0 + 8001c2e: bf14 ite ne + 8001c30: 2301 movne r3, #1 + 8001c32: 2300 moveq r3, #0 + 8001c34: b2db uxtb r3, r3 + 8001c36: 2b00 cmp r3, #0 + 8001c38: d016 beq.n 8001c68 { hi2c->PreviousState = I2C_STATE_NONE; - 8001bce: 68fb ldr r3, [r7, #12] - 8001bd0: 2200 movs r2, #0 - 8001bd2: 631a str r2, [r3, #48] @ 0x30 + 8001c3a: 68fb ldr r3, [r7, #12] + 8001c3c: 2200 movs r2, #0 + 8001c3e: 631a str r2, [r3, #48] @ 0x30 hi2c->State = HAL_I2C_STATE_READY; - 8001bd4: 68fb ldr r3, [r7, #12] - 8001bd6: 2220 movs r2, #32 - 8001bd8: f883 203d strb.w r2, [r3, #61] @ 0x3d + 8001c40: 68fb ldr r3, [r7, #12] + 8001c42: 2220 movs r2, #32 + 8001c44: f883 203d strb.w r2, [r3, #61] @ 0x3d hi2c->Mode = HAL_I2C_MODE_NONE; - 8001bdc: 68fb ldr r3, [r7, #12] - 8001bde: 2200 movs r2, #0 - 8001be0: f883 203e strb.w r2, [r3, #62] @ 0x3e + 8001c48: 68fb ldr r3, [r7, #12] + 8001c4a: 2200 movs r2, #0 + 8001c4c: f883 203e strb.w r2, [r3, #62] @ 0x3e hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; - 8001be4: 68fb ldr r3, [r7, #12] - 8001be6: 6c1b ldr r3, [r3, #64] @ 0x40 - 8001be8: f043 0220 orr.w r2, r3, #32 - 8001bec: 68fb ldr r3, [r7, #12] - 8001bee: 641a str r2, [r3, #64] @ 0x40 + 8001c50: 68fb ldr r3, [r7, #12] + 8001c52: 6c1b ldr r3, [r3, #64] @ 0x40 + 8001c54: f043 0220 orr.w r2, r3, #32 + 8001c58: 68fb ldr r3, [r7, #12] + 8001c5a: 641a str r2, [r3, #64] @ 0x40 /* Process Unlocked */ __HAL_UNLOCK(hi2c); - 8001bf0: 68fb ldr r3, [r7, #12] - 8001bf2: 2200 movs r2, #0 - 8001bf4: f883 203c strb.w r2, [r3, #60] @ 0x3c + 8001c5c: 68fb ldr r3, [r7, #12] + 8001c5e: 2200 movs r2, #0 + 8001c60: f883 203c strb.w r2, [r3, #60] @ 0x3c return HAL_ERROR; - 8001bf8: 2301 movs r3, #1 - 8001bfa: e021 b.n 8001c40 + 8001c64: 2301 movs r3, #1 + 8001c66: e021 b.n 8001cac while (__HAL_I2C_GET_FLAG(hi2c, Flag) == RESET) - 8001bfc: 68bb ldr r3, [r7, #8] - 8001bfe: 0c1b lsrs r3, r3, #16 - 8001c00: b2db uxtb r3, r3 - 8001c02: 2b01 cmp r3, #1 - 8001c04: d10c bne.n 8001c20 - 8001c06: 68fb ldr r3, [r7, #12] - 8001c08: 681b ldr r3, [r3, #0] - 8001c0a: 695b ldr r3, [r3, #20] - 8001c0c: 43da mvns r2, r3 - 8001c0e: 68bb ldr r3, [r7, #8] - 8001c10: 4013 ands r3, r2 - 8001c12: b29b uxth r3, r3 - 8001c14: 2b00 cmp r3, #0 - 8001c16: bf14 ite ne - 8001c18: 2301 movne r3, #1 - 8001c1a: 2300 moveq r3, #0 - 8001c1c: b2db uxtb r3, r3 - 8001c1e: e00b b.n 8001c38 - 8001c20: 68fb ldr r3, [r7, #12] - 8001c22: 681b ldr r3, [r3, #0] - 8001c24: 699b ldr r3, [r3, #24] - 8001c26: 43da mvns r2, r3 - 8001c28: 68bb ldr r3, [r7, #8] - 8001c2a: 4013 ands r3, r2 - 8001c2c: b29b uxth r3, r3 - 8001c2e: 2b00 cmp r3, #0 - 8001c30: bf14 ite ne - 8001c32: 2301 movne r3, #1 - 8001c34: 2300 moveq r3, #0 - 8001c36: b2db uxtb r3, r3 - 8001c38: 2b00 cmp r3, #0 - 8001c3a: f47f af6d bne.w 8001b18 + 8001c68: 68bb ldr r3, [r7, #8] + 8001c6a: 0c1b lsrs r3, r3, #16 + 8001c6c: b2db uxtb r3, r3 + 8001c6e: 2b01 cmp r3, #1 + 8001c70: d10c bne.n 8001c8c + 8001c72: 68fb ldr r3, [r7, #12] + 8001c74: 681b ldr r3, [r3, #0] + 8001c76: 695b ldr r3, [r3, #20] + 8001c78: 43da mvns r2, r3 + 8001c7a: 68bb ldr r3, [r7, #8] + 8001c7c: 4013 ands r3, r2 + 8001c7e: b29b uxth r3, r3 + 8001c80: 2b00 cmp r3, #0 + 8001c82: bf14 ite ne + 8001c84: 2301 movne r3, #1 + 8001c86: 2300 moveq r3, #0 + 8001c88: b2db uxtb r3, r3 + 8001c8a: e00b b.n 8001ca4 + 8001c8c: 68fb ldr r3, [r7, #12] + 8001c8e: 681b ldr r3, [r3, #0] + 8001c90: 699b ldr r3, [r3, #24] + 8001c92: 43da mvns r2, r3 + 8001c94: 68bb ldr r3, [r7, #8] + 8001c96: 4013 ands r3, r2 + 8001c98: b29b uxth r3, r3 + 8001c9a: 2b00 cmp r3, #0 + 8001c9c: bf14 ite ne + 8001c9e: 2301 movne r3, #1 + 8001ca0: 2300 moveq r3, #0 + 8001ca2: b2db uxtb r3, r3 + 8001ca4: 2b00 cmp r3, #0 + 8001ca6: f47f af6d bne.w 8001b84 } } } } return HAL_OK; - 8001c3e: 2300 movs r3, #0 + 8001caa: 2300 movs r3, #0 } - 8001c40: 4618 mov r0, r3 - 8001c42: 3710 adds r7, #16 - 8001c44: 46bd mov sp, r7 - 8001c46: bd80 pop {r7, pc} + 8001cac: 4618 mov r0, r3 + 8001cae: 3710 adds r7, #16 + 8001cb0: 46bd mov sp, r7 + 8001cb2: bd80 pop {r7, pc} -08001c48 : +08001cb4 : * @param Timeout Timeout duration * @param Tickstart Tick start value * @retval HAL status */ static HAL_StatusTypeDef I2C_WaitOnTXEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Tickstart) { - 8001c48: b580 push {r7, lr} - 8001c4a: b084 sub sp, #16 - 8001c4c: af00 add r7, sp, #0 - 8001c4e: 60f8 str r0, [r7, #12] - 8001c50: 60b9 str r1, [r7, #8] - 8001c52: 607a str r2, [r7, #4] + 8001cb4: b580 push {r7, lr} + 8001cb6: b084 sub sp, #16 + 8001cb8: af00 add r7, sp, #0 + 8001cba: 60f8 str r0, [r7, #12] + 8001cbc: 60b9 str r1, [r7, #8] + 8001cbe: 607a str r2, [r7, #4] while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) - 8001c54: e034 b.n 8001cc0 + 8001cc0: e034 b.n 8001d2c { /* Check if a NACK is detected */ if (I2C_IsAcknowledgeFailed(hi2c) != HAL_OK) - 8001c56: 68f8 ldr r0, [r7, #12] - 8001c58: f000 f8e3 bl 8001e22 - 8001c5c: 4603 mov r3, r0 - 8001c5e: 2b00 cmp r3, #0 - 8001c60: d001 beq.n 8001c66 + 8001cc2: 68f8 ldr r0, [r7, #12] + 8001cc4: f000 f8e3 bl 8001e8e + 8001cc8: 4603 mov r3, r0 + 8001cca: 2b00 cmp r3, #0 + 8001ccc: d001 beq.n 8001cd2 { return HAL_ERROR; - 8001c62: 2301 movs r3, #1 - 8001c64: e034 b.n 8001cd0 + 8001cce: 2301 movs r3, #1 + 8001cd0: e034 b.n 8001d3c } /* Check for the Timeout */ if (Timeout != HAL_MAX_DELAY) - 8001c66: 68bb ldr r3, [r7, #8] - 8001c68: f1b3 3fff cmp.w r3, #4294967295 @ 0xffffffff - 8001c6c: d028 beq.n 8001cc0 + 8001cd2: 68bb ldr r3, [r7, #8] + 8001cd4: f1b3 3fff cmp.w r3, #4294967295 @ 0xffffffff + 8001cd8: d028 beq.n 8001d2c { if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) - 8001c6e: f7fe fe55 bl 800091c - 8001c72: 4602 mov r2, r0 - 8001c74: 687b ldr r3, [r7, #4] - 8001c76: 1ad3 subs r3, r2, r3 - 8001c78: 68ba ldr r2, [r7, #8] - 8001c7a: 429a cmp r2, r3 - 8001c7c: d302 bcc.n 8001c84 - 8001c7e: 68bb ldr r3, [r7, #8] - 8001c80: 2b00 cmp r3, #0 - 8001c82: d11d bne.n 8001cc0 + 8001cda: f7fe fe55 bl 8000988 + 8001cde: 4602 mov r2, r0 + 8001ce0: 687b ldr r3, [r7, #4] + 8001ce2: 1ad3 subs r3, r2, r3 + 8001ce4: 68ba ldr r2, [r7, #8] + 8001ce6: 429a cmp r2, r3 + 8001ce8: d302 bcc.n 8001cf0 + 8001cea: 68bb ldr r3, [r7, #8] + 8001cec: 2b00 cmp r3, #0 + 8001cee: d11d bne.n 8001d2c { if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET)) - 8001c84: 68fb ldr r3, [r7, #12] - 8001c86: 681b ldr r3, [r3, #0] - 8001c88: 695b ldr r3, [r3, #20] - 8001c8a: f003 0380 and.w r3, r3, #128 @ 0x80 - 8001c8e: 2b80 cmp r3, #128 @ 0x80 - 8001c90: d016 beq.n 8001cc0 + 8001cf0: 68fb ldr r3, [r7, #12] + 8001cf2: 681b ldr r3, [r3, #0] + 8001cf4: 695b ldr r3, [r3, #20] + 8001cf6: f003 0380 and.w r3, r3, #128 @ 0x80 + 8001cfa: 2b80 cmp r3, #128 @ 0x80 + 8001cfc: d016 beq.n 8001d2c { hi2c->PreviousState = I2C_STATE_NONE; - 8001c92: 68fb ldr r3, [r7, #12] - 8001c94: 2200 movs r2, #0 - 8001c96: 631a str r2, [r3, #48] @ 0x30 + 8001cfe: 68fb ldr r3, [r7, #12] + 8001d00: 2200 movs r2, #0 + 8001d02: 631a str r2, [r3, #48] @ 0x30 hi2c->State = HAL_I2C_STATE_READY; - 8001c98: 68fb ldr r3, [r7, #12] - 8001c9a: 2220 movs r2, #32 - 8001c9c: f883 203d strb.w r2, [r3, #61] @ 0x3d + 8001d04: 68fb ldr r3, [r7, #12] + 8001d06: 2220 movs r2, #32 + 8001d08: f883 203d strb.w r2, [r3, #61] @ 0x3d hi2c->Mode = HAL_I2C_MODE_NONE; - 8001ca0: 68fb ldr r3, [r7, #12] - 8001ca2: 2200 movs r2, #0 - 8001ca4: f883 203e strb.w r2, [r3, #62] @ 0x3e + 8001d0c: 68fb ldr r3, [r7, #12] + 8001d0e: 2200 movs r2, #0 + 8001d10: f883 203e strb.w r2, [r3, #62] @ 0x3e hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; - 8001ca8: 68fb ldr r3, [r7, #12] - 8001caa: 6c1b ldr r3, [r3, #64] @ 0x40 - 8001cac: f043 0220 orr.w r2, r3, #32 - 8001cb0: 68fb ldr r3, [r7, #12] - 8001cb2: 641a str r2, [r3, #64] @ 0x40 + 8001d14: 68fb ldr r3, [r7, #12] + 8001d16: 6c1b ldr r3, [r3, #64] @ 0x40 + 8001d18: f043 0220 orr.w r2, r3, #32 + 8001d1c: 68fb ldr r3, [r7, #12] + 8001d1e: 641a str r2, [r3, #64] @ 0x40 /* Process Unlocked */ __HAL_UNLOCK(hi2c); - 8001cb4: 68fb ldr r3, [r7, #12] - 8001cb6: 2200 movs r2, #0 - 8001cb8: f883 203c strb.w r2, [r3, #60] @ 0x3c + 8001d20: 68fb ldr r3, [r7, #12] + 8001d22: 2200 movs r2, #0 + 8001d24: f883 203c strb.w r2, [r3, #60] @ 0x3c return HAL_ERROR; - 8001cbc: 2301 movs r3, #1 - 8001cbe: e007 b.n 8001cd0 + 8001d28: 2301 movs r3, #1 + 8001d2a: e007 b.n 8001d3c while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) - 8001cc0: 68fb ldr r3, [r7, #12] - 8001cc2: 681b ldr r3, [r3, #0] - 8001cc4: 695b ldr r3, [r3, #20] - 8001cc6: f003 0380 and.w r3, r3, #128 @ 0x80 - 8001cca: 2b80 cmp r3, #128 @ 0x80 - 8001ccc: d1c3 bne.n 8001c56 + 8001d2c: 68fb ldr r3, [r7, #12] + 8001d2e: 681b ldr r3, [r3, #0] + 8001d30: 695b ldr r3, [r3, #20] + 8001d32: f003 0380 and.w r3, r3, #128 @ 0x80 + 8001d36: 2b80 cmp r3, #128 @ 0x80 + 8001d38: d1c3 bne.n 8001cc2 } } } } return HAL_OK; - 8001cce: 2300 movs r3, #0 + 8001d3a: 2300 movs r3, #0 } - 8001cd0: 4618 mov r0, r3 - 8001cd2: 3710 adds r7, #16 - 8001cd4: 46bd mov sp, r7 - 8001cd6: bd80 pop {r7, pc} + 8001d3c: 4618 mov r0, r3 + 8001d3e: 3710 adds r7, #16 + 8001d40: 46bd mov sp, r7 + 8001d42: bd80 pop {r7, pc} -08001cd8 : +08001d44 : * @param Timeout Timeout duration * @param Tickstart Tick start value * @retval HAL status */ static HAL_StatusTypeDef I2C_WaitOnBTFFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Tickstart) { - 8001cd8: b580 push {r7, lr} - 8001cda: b084 sub sp, #16 - 8001cdc: af00 add r7, sp, #0 - 8001cde: 60f8 str r0, [r7, #12] - 8001ce0: 60b9 str r1, [r7, #8] - 8001ce2: 607a str r2, [r7, #4] + 8001d44: b580 push {r7, lr} + 8001d46: b084 sub sp, #16 + 8001d48: af00 add r7, sp, #0 + 8001d4a: 60f8 str r0, [r7, #12] + 8001d4c: 60b9 str r1, [r7, #8] + 8001d4e: 607a str r2, [r7, #4] while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == RESET) - 8001ce4: e034 b.n 8001d50 + 8001d50: e034 b.n 8001dbc { /* Check if a NACK is detected */ if (I2C_IsAcknowledgeFailed(hi2c) != HAL_OK) - 8001ce6: 68f8 ldr r0, [r7, #12] - 8001ce8: f000 f89b bl 8001e22 - 8001cec: 4603 mov r3, r0 - 8001cee: 2b00 cmp r3, #0 - 8001cf0: d001 beq.n 8001cf6 + 8001d52: 68f8 ldr r0, [r7, #12] + 8001d54: f000 f89b bl 8001e8e + 8001d58: 4603 mov r3, r0 + 8001d5a: 2b00 cmp r3, #0 + 8001d5c: d001 beq.n 8001d62 { return HAL_ERROR; - 8001cf2: 2301 movs r3, #1 - 8001cf4: e034 b.n 8001d60 + 8001d5e: 2301 movs r3, #1 + 8001d60: e034 b.n 8001dcc } /* Check for the Timeout */ if (Timeout != HAL_MAX_DELAY) - 8001cf6: 68bb ldr r3, [r7, #8] - 8001cf8: f1b3 3fff cmp.w r3, #4294967295 @ 0xffffffff - 8001cfc: d028 beq.n 8001d50 + 8001d62: 68bb ldr r3, [r7, #8] + 8001d64: f1b3 3fff cmp.w r3, #4294967295 @ 0xffffffff + 8001d68: d028 beq.n 8001dbc { if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) - 8001cfe: f7fe fe0d bl 800091c - 8001d02: 4602 mov r2, r0 - 8001d04: 687b ldr r3, [r7, #4] - 8001d06: 1ad3 subs r3, r2, r3 - 8001d08: 68ba ldr r2, [r7, #8] - 8001d0a: 429a cmp r2, r3 - 8001d0c: d302 bcc.n 8001d14 - 8001d0e: 68bb ldr r3, [r7, #8] - 8001d10: 2b00 cmp r3, #0 - 8001d12: d11d bne.n 8001d50 + 8001d6a: f7fe fe0d bl 8000988 + 8001d6e: 4602 mov r2, r0 + 8001d70: 687b ldr r3, [r7, #4] + 8001d72: 1ad3 subs r3, r2, r3 + 8001d74: 68ba ldr r2, [r7, #8] + 8001d76: 429a cmp r2, r3 + 8001d78: d302 bcc.n 8001d80 + 8001d7a: 68bb ldr r3, [r7, #8] + 8001d7c: 2b00 cmp r3, #0 + 8001d7e: d11d bne.n 8001dbc { if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == RESET)) - 8001d14: 68fb ldr r3, [r7, #12] - 8001d16: 681b ldr r3, [r3, #0] - 8001d18: 695b ldr r3, [r3, #20] - 8001d1a: f003 0304 and.w r3, r3, #4 - 8001d1e: 2b04 cmp r3, #4 - 8001d20: d016 beq.n 8001d50 + 8001d80: 68fb ldr r3, [r7, #12] + 8001d82: 681b ldr r3, [r3, #0] + 8001d84: 695b ldr r3, [r3, #20] + 8001d86: f003 0304 and.w r3, r3, #4 + 8001d8a: 2b04 cmp r3, #4 + 8001d8c: d016 beq.n 8001dbc { hi2c->PreviousState = I2C_STATE_NONE; - 8001d22: 68fb ldr r3, [r7, #12] - 8001d24: 2200 movs r2, #0 - 8001d26: 631a str r2, [r3, #48] @ 0x30 + 8001d8e: 68fb ldr r3, [r7, #12] + 8001d90: 2200 movs r2, #0 + 8001d92: 631a str r2, [r3, #48] @ 0x30 hi2c->State = HAL_I2C_STATE_READY; - 8001d28: 68fb ldr r3, [r7, #12] - 8001d2a: 2220 movs r2, #32 - 8001d2c: f883 203d strb.w r2, [r3, #61] @ 0x3d + 8001d94: 68fb ldr r3, [r7, #12] + 8001d96: 2220 movs r2, #32 + 8001d98: f883 203d strb.w r2, [r3, #61] @ 0x3d hi2c->Mode = HAL_I2C_MODE_NONE; - 8001d30: 68fb ldr r3, [r7, #12] - 8001d32: 2200 movs r2, #0 - 8001d34: f883 203e strb.w r2, [r3, #62] @ 0x3e + 8001d9c: 68fb ldr r3, [r7, #12] + 8001d9e: 2200 movs r2, #0 + 8001da0: f883 203e strb.w r2, [r3, #62] @ 0x3e hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; - 8001d38: 68fb ldr r3, [r7, #12] - 8001d3a: 6c1b ldr r3, [r3, #64] @ 0x40 - 8001d3c: f043 0220 orr.w r2, r3, #32 - 8001d40: 68fb ldr r3, [r7, #12] - 8001d42: 641a str r2, [r3, #64] @ 0x40 + 8001da4: 68fb ldr r3, [r7, #12] + 8001da6: 6c1b ldr r3, [r3, #64] @ 0x40 + 8001da8: f043 0220 orr.w r2, r3, #32 + 8001dac: 68fb ldr r3, [r7, #12] + 8001dae: 641a str r2, [r3, #64] @ 0x40 /* Process Unlocked */ __HAL_UNLOCK(hi2c); - 8001d44: 68fb ldr r3, [r7, #12] - 8001d46: 2200 movs r2, #0 - 8001d48: f883 203c strb.w r2, [r3, #60] @ 0x3c + 8001db0: 68fb ldr r3, [r7, #12] + 8001db2: 2200 movs r2, #0 + 8001db4: f883 203c strb.w r2, [r3, #60] @ 0x3c return HAL_ERROR; - 8001d4c: 2301 movs r3, #1 - 8001d4e: e007 b.n 8001d60 + 8001db8: 2301 movs r3, #1 + 8001dba: e007 b.n 8001dcc while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == RESET) - 8001d50: 68fb ldr r3, [r7, #12] - 8001d52: 681b ldr r3, [r3, #0] - 8001d54: 695b ldr r3, [r3, #20] - 8001d56: f003 0304 and.w r3, r3, #4 - 8001d5a: 2b04 cmp r3, #4 - 8001d5c: d1c3 bne.n 8001ce6 + 8001dbc: 68fb ldr r3, [r7, #12] + 8001dbe: 681b ldr r3, [r3, #0] + 8001dc0: 695b ldr r3, [r3, #20] + 8001dc2: f003 0304 and.w r3, r3, #4 + 8001dc6: 2b04 cmp r3, #4 + 8001dc8: d1c3 bne.n 8001d52 } } } } return HAL_OK; - 8001d5e: 2300 movs r3, #0 + 8001dca: 2300 movs r3, #0 } - 8001d60: 4618 mov r0, r3 - 8001d62: 3710 adds r7, #16 - 8001d64: 46bd mov sp, r7 - 8001d66: bd80 pop {r7, pc} + 8001dcc: 4618 mov r0, r3 + 8001dce: 3710 adds r7, #16 + 8001dd0: 46bd mov sp, r7 + 8001dd2: bd80 pop {r7, pc} -08001d68 : +08001dd4 : * @param Timeout Timeout duration * @param Tickstart Tick start value * @retval HAL status */ static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Tickstart) { - 8001d68: b580 push {r7, lr} - 8001d6a: b084 sub sp, #16 - 8001d6c: af00 add r7, sp, #0 - 8001d6e: 60f8 str r0, [r7, #12] - 8001d70: 60b9 str r1, [r7, #8] - 8001d72: 607a str r2, [r7, #4] + 8001dd4: b580 push {r7, lr} + 8001dd6: b084 sub sp, #16 + 8001dd8: af00 add r7, sp, #0 + 8001dda: 60f8 str r0, [r7, #12] + 8001ddc: 60b9 str r1, [r7, #8] + 8001dde: 607a str r2, [r7, #4] while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) - 8001d74: e049 b.n 8001e0a + 8001de0: e049 b.n 8001e76 { /* Check if a STOPF is detected */ if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) - 8001d76: 68fb ldr r3, [r7, #12] - 8001d78: 681b ldr r3, [r3, #0] - 8001d7a: 695b ldr r3, [r3, #20] - 8001d7c: f003 0310 and.w r3, r3, #16 - 8001d80: 2b10 cmp r3, #16 - 8001d82: d119 bne.n 8001db8 + 8001de2: 68fb ldr r3, [r7, #12] + 8001de4: 681b ldr r3, [r3, #0] + 8001de6: 695b ldr r3, [r3, #20] + 8001de8: f003 0310 and.w r3, r3, #16 + 8001dec: 2b10 cmp r3, #16 + 8001dee: d119 bne.n 8001e24 { /* Clear STOP Flag */ __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); - 8001d84: 68fb ldr r3, [r7, #12] - 8001d86: 681b ldr r3, [r3, #0] - 8001d88: f06f 0210 mvn.w r2, #16 - 8001d8c: 615a str r2, [r3, #20] + 8001df0: 68fb ldr r3, [r7, #12] + 8001df2: 681b ldr r3, [r3, #0] + 8001df4: f06f 0210 mvn.w r2, #16 + 8001df8: 615a str r2, [r3, #20] hi2c->PreviousState = I2C_STATE_NONE; - 8001d8e: 68fb ldr r3, [r7, #12] - 8001d90: 2200 movs r2, #0 - 8001d92: 631a str r2, [r3, #48] @ 0x30 + 8001dfa: 68fb ldr r3, [r7, #12] + 8001dfc: 2200 movs r2, #0 + 8001dfe: 631a str r2, [r3, #48] @ 0x30 hi2c->State = HAL_I2C_STATE_READY; - 8001d94: 68fb ldr r3, [r7, #12] - 8001d96: 2220 movs r2, #32 - 8001d98: f883 203d strb.w r2, [r3, #61] @ 0x3d + 8001e00: 68fb ldr r3, [r7, #12] + 8001e02: 2220 movs r2, #32 + 8001e04: f883 203d strb.w r2, [r3, #61] @ 0x3d hi2c->Mode = HAL_I2C_MODE_NONE; - 8001d9c: 68fb ldr r3, [r7, #12] - 8001d9e: 2200 movs r2, #0 - 8001da0: f883 203e strb.w r2, [r3, #62] @ 0x3e + 8001e08: 68fb ldr r3, [r7, #12] + 8001e0a: 2200 movs r2, #0 + 8001e0c: f883 203e strb.w r2, [r3, #62] @ 0x3e hi2c->ErrorCode |= HAL_I2C_ERROR_NONE; - 8001da4: 68fb ldr r3, [r7, #12] - 8001da6: 6c1a ldr r2, [r3, #64] @ 0x40 - 8001da8: 68fb ldr r3, [r7, #12] - 8001daa: 641a str r2, [r3, #64] @ 0x40 + 8001e10: 68fb ldr r3, [r7, #12] + 8001e12: 6c1a ldr r2, [r3, #64] @ 0x40 + 8001e14: 68fb ldr r3, [r7, #12] + 8001e16: 641a str r2, [r3, #64] @ 0x40 /* Process Unlocked */ __HAL_UNLOCK(hi2c); - 8001dac: 68fb ldr r3, [r7, #12] - 8001dae: 2200 movs r2, #0 - 8001db0: f883 203c strb.w r2, [r3, #60] @ 0x3c + 8001e18: 68fb ldr r3, [r7, #12] + 8001e1a: 2200 movs r2, #0 + 8001e1c: f883 203c strb.w r2, [r3, #60] @ 0x3c return HAL_ERROR; - 8001db4: 2301 movs r3, #1 - 8001db6: e030 b.n 8001e1a + 8001e20: 2301 movs r3, #1 + 8001e22: e030 b.n 8001e86 } /* Check for the Timeout */ if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) - 8001db8: f7fe fdb0 bl 800091c - 8001dbc: 4602 mov r2, r0 - 8001dbe: 687b ldr r3, [r7, #4] - 8001dc0: 1ad3 subs r3, r2, r3 - 8001dc2: 68ba ldr r2, [r7, #8] - 8001dc4: 429a cmp r2, r3 - 8001dc6: d302 bcc.n 8001dce - 8001dc8: 68bb ldr r3, [r7, #8] - 8001dca: 2b00 cmp r3, #0 - 8001dcc: d11d bne.n 8001e0a + 8001e24: f7fe fdb0 bl 8000988 + 8001e28: 4602 mov r2, r0 + 8001e2a: 687b ldr r3, [r7, #4] + 8001e2c: 1ad3 subs r3, r2, r3 + 8001e2e: 68ba ldr r2, [r7, #8] + 8001e30: 429a cmp r2, r3 + 8001e32: d302 bcc.n 8001e3a + 8001e34: 68bb ldr r3, [r7, #8] + 8001e36: 2b00 cmp r3, #0 + 8001e38: d11d bne.n 8001e76 { if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)) - 8001dce: 68fb ldr r3, [r7, #12] - 8001dd0: 681b ldr r3, [r3, #0] - 8001dd2: 695b ldr r3, [r3, #20] - 8001dd4: f003 0340 and.w r3, r3, #64 @ 0x40 - 8001dd8: 2b40 cmp r3, #64 @ 0x40 - 8001dda: d016 beq.n 8001e0a + 8001e3a: 68fb ldr r3, [r7, #12] + 8001e3c: 681b ldr r3, [r3, #0] + 8001e3e: 695b ldr r3, [r3, #20] + 8001e40: f003 0340 and.w r3, r3, #64 @ 0x40 + 8001e44: 2b40 cmp r3, #64 @ 0x40 + 8001e46: d016 beq.n 8001e76 { hi2c->PreviousState = I2C_STATE_NONE; - 8001ddc: 68fb ldr r3, [r7, #12] - 8001dde: 2200 movs r2, #0 - 8001de0: 631a str r2, [r3, #48] @ 0x30 + 8001e48: 68fb ldr r3, [r7, #12] + 8001e4a: 2200 movs r2, #0 + 8001e4c: 631a str r2, [r3, #48] @ 0x30 hi2c->State = HAL_I2C_STATE_READY; - 8001de2: 68fb ldr r3, [r7, #12] - 8001de4: 2220 movs r2, #32 - 8001de6: f883 203d strb.w r2, [r3, #61] @ 0x3d + 8001e4e: 68fb ldr r3, [r7, #12] + 8001e50: 2220 movs r2, #32 + 8001e52: f883 203d strb.w r2, [r3, #61] @ 0x3d hi2c->Mode = HAL_I2C_MODE_NONE; - 8001dea: 68fb ldr r3, [r7, #12] - 8001dec: 2200 movs r2, #0 - 8001dee: f883 203e strb.w r2, [r3, #62] @ 0x3e + 8001e56: 68fb ldr r3, [r7, #12] + 8001e58: 2200 movs r2, #0 + 8001e5a: f883 203e strb.w r2, [r3, #62] @ 0x3e hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; - 8001df2: 68fb ldr r3, [r7, #12] - 8001df4: 6c1b ldr r3, [r3, #64] @ 0x40 - 8001df6: f043 0220 orr.w r2, r3, #32 - 8001dfa: 68fb ldr r3, [r7, #12] - 8001dfc: 641a str r2, [r3, #64] @ 0x40 + 8001e5e: 68fb ldr r3, [r7, #12] + 8001e60: 6c1b ldr r3, [r3, #64] @ 0x40 + 8001e62: f043 0220 orr.w r2, r3, #32 + 8001e66: 68fb ldr r3, [r7, #12] + 8001e68: 641a str r2, [r3, #64] @ 0x40 /* Process Unlocked */ __HAL_UNLOCK(hi2c); - 8001dfe: 68fb ldr r3, [r7, #12] - 8001e00: 2200 movs r2, #0 - 8001e02: f883 203c strb.w r2, [r3, #60] @ 0x3c + 8001e6a: 68fb ldr r3, [r7, #12] + 8001e6c: 2200 movs r2, #0 + 8001e6e: f883 203c strb.w r2, [r3, #60] @ 0x3c return HAL_ERROR; - 8001e06: 2301 movs r3, #1 - 8001e08: e007 b.n 8001e1a + 8001e72: 2301 movs r3, #1 + 8001e74: e007 b.n 8001e86 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) - 8001e0a: 68fb ldr r3, [r7, #12] - 8001e0c: 681b ldr r3, [r3, #0] - 8001e0e: 695b ldr r3, [r3, #20] - 8001e10: f003 0340 and.w r3, r3, #64 @ 0x40 - 8001e14: 2b40 cmp r3, #64 @ 0x40 - 8001e16: d1ae bne.n 8001d76 + 8001e76: 68fb ldr r3, [r7, #12] + 8001e78: 681b ldr r3, [r3, #0] + 8001e7a: 695b ldr r3, [r3, #20] + 8001e7c: f003 0340 and.w r3, r3, #64 @ 0x40 + 8001e80: 2b40 cmp r3, #64 @ 0x40 + 8001e82: d1ae bne.n 8001de2 } } } return HAL_OK; - 8001e18: 2300 movs r3, #0 + 8001e84: 2300 movs r3, #0 } - 8001e1a: 4618 mov r0, r3 - 8001e1c: 3710 adds r7, #16 - 8001e1e: 46bd mov sp, r7 - 8001e20: bd80 pop {r7, pc} + 8001e86: 4618 mov r0, r3 + 8001e88: 3710 adds r7, #16 + 8001e8a: 46bd mov sp, r7 + 8001e8c: bd80 pop {r7, pc} -08001e22 : +08001e8e : * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains * the configuration information for the specified I2C. * @retval HAL status */ static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c) { - 8001e22: b480 push {r7} - 8001e24: b083 sub sp, #12 - 8001e26: af00 add r7, sp, #0 - 8001e28: 6078 str r0, [r7, #4] + 8001e8e: b480 push {r7} + 8001e90: b083 sub sp, #12 + 8001e92: af00 add r7, sp, #0 + 8001e94: 6078 str r0, [r7, #4] if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) - 8001e2a: 687b ldr r3, [r7, #4] - 8001e2c: 681b ldr r3, [r3, #0] - 8001e2e: 695b ldr r3, [r3, #20] - 8001e30: f403 6380 and.w r3, r3, #1024 @ 0x400 - 8001e34: f5b3 6f80 cmp.w r3, #1024 @ 0x400 - 8001e38: d11b bne.n 8001e72 + 8001e96: 687b ldr r3, [r7, #4] + 8001e98: 681b ldr r3, [r3, #0] + 8001e9a: 695b ldr r3, [r3, #20] + 8001e9c: f403 6380 and.w r3, r3, #1024 @ 0x400 + 8001ea0: f5b3 6f80 cmp.w r3, #1024 @ 0x400 + 8001ea4: d11b bne.n 8001ede { /* Clear NACKF Flag */ __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); - 8001e3a: 687b ldr r3, [r7, #4] - 8001e3c: 681b ldr r3, [r3, #0] - 8001e3e: f46f 6280 mvn.w r2, #1024 @ 0x400 - 8001e42: 615a str r2, [r3, #20] + 8001ea6: 687b ldr r3, [r7, #4] + 8001ea8: 681b ldr r3, [r3, #0] + 8001eaa: f46f 6280 mvn.w r2, #1024 @ 0x400 + 8001eae: 615a str r2, [r3, #20] hi2c->PreviousState = I2C_STATE_NONE; - 8001e44: 687b ldr r3, [r7, #4] - 8001e46: 2200 movs r2, #0 - 8001e48: 631a str r2, [r3, #48] @ 0x30 + 8001eb0: 687b ldr r3, [r7, #4] + 8001eb2: 2200 movs r2, #0 + 8001eb4: 631a str r2, [r3, #48] @ 0x30 hi2c->State = HAL_I2C_STATE_READY; - 8001e4a: 687b ldr r3, [r7, #4] - 8001e4c: 2220 movs r2, #32 - 8001e4e: f883 203d strb.w r2, [r3, #61] @ 0x3d + 8001eb6: 687b ldr r3, [r7, #4] + 8001eb8: 2220 movs r2, #32 + 8001eba: f883 203d strb.w r2, [r3, #61] @ 0x3d hi2c->Mode = HAL_I2C_MODE_NONE; - 8001e52: 687b ldr r3, [r7, #4] - 8001e54: 2200 movs r2, #0 - 8001e56: f883 203e strb.w r2, [r3, #62] @ 0x3e + 8001ebe: 687b ldr r3, [r7, #4] + 8001ec0: 2200 movs r2, #0 + 8001ec2: f883 203e strb.w r2, [r3, #62] @ 0x3e hi2c->ErrorCode |= HAL_I2C_ERROR_AF; - 8001e5a: 687b ldr r3, [r7, #4] - 8001e5c: 6c1b ldr r3, [r3, #64] @ 0x40 - 8001e5e: f043 0204 orr.w r2, r3, #4 - 8001e62: 687b ldr r3, [r7, #4] - 8001e64: 641a str r2, [r3, #64] @ 0x40 + 8001ec6: 687b ldr r3, [r7, #4] + 8001ec8: 6c1b ldr r3, [r3, #64] @ 0x40 + 8001eca: f043 0204 orr.w r2, r3, #4 + 8001ece: 687b ldr r3, [r7, #4] + 8001ed0: 641a str r2, [r3, #64] @ 0x40 /* Process Unlocked */ __HAL_UNLOCK(hi2c); - 8001e66: 687b ldr r3, [r7, #4] - 8001e68: 2200 movs r2, #0 - 8001e6a: f883 203c strb.w r2, [r3, #60] @ 0x3c + 8001ed2: 687b ldr r3, [r7, #4] + 8001ed4: 2200 movs r2, #0 + 8001ed6: f883 203c strb.w r2, [r3, #60] @ 0x3c return HAL_ERROR; - 8001e6e: 2301 movs r3, #1 - 8001e70: e000 b.n 8001e74 + 8001eda: 2301 movs r3, #1 + 8001edc: e000 b.n 8001ee0 } return HAL_OK; - 8001e72: 2300 movs r3, #0 + 8001ede: 2300 movs r3, #0 } - 8001e74: 4618 mov r0, r3 - 8001e76: 370c adds r7, #12 - 8001e78: 46bd mov sp, r7 - 8001e7a: bc80 pop {r7} - 8001e7c: 4770 bx lr + 8001ee0: 4618 mov r0, r3 + 8001ee2: 370c adds r7, #12 + 8001ee4: 46bd mov sp, r7 + 8001ee6: bc80 pop {r7} + 8001ee8: 4770 bx lr ... -08001e80 : +08001eec : * supported by this macro. User should request a transition to HSE Off * first and then HSE On or HSE Bypass. * @retval HAL status */ HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) { - 8001e80: b580 push {r7, lr} - 8001e82: b088 sub sp, #32 - 8001e84: af00 add r7, sp, #0 - 8001e86: 6078 str r0, [r7, #4] + 8001eec: b580 push {r7, lr} + 8001eee: b088 sub sp, #32 + 8001ef0: af00 add r7, sp, #0 + 8001ef2: 6078 str r0, [r7, #4] uint32_t tickstart; HAL_StatusTypeDef status; uint32_t sysclk_source, pll_config; /* Check the parameters */ if(RCC_OscInitStruct == NULL) - 8001e88: 687b ldr r3, [r7, #4] - 8001e8a: 2b00 cmp r3, #0 - 8001e8c: d101 bne.n 8001e92 + 8001ef4: 687b ldr r3, [r7, #4] + 8001ef6: 2b00 cmp r3, #0 + 8001ef8: d101 bne.n 8001efe { return HAL_ERROR; - 8001e8e: 2301 movs r3, #1 - 8001e90: e31d b.n 80024ce + 8001efa: 2301 movs r3, #1 + 8001efc: e31d b.n 800253a } assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); sysclk_source = __HAL_RCC_GET_SYSCLK_SOURCE(); - 8001e92: 4b94 ldr r3, [pc, #592] @ (80020e4 ) - 8001e94: 689b ldr r3, [r3, #8] - 8001e96: f003 030c and.w r3, r3, #12 - 8001e9a: 61bb str r3, [r7, #24] + 8001efe: 4b94 ldr r3, [pc, #592] @ (8002150 ) + 8001f00: 689b ldr r3, [r3, #8] + 8001f02: f003 030c and.w r3, r3, #12 + 8001f06: 61bb str r3, [r7, #24] pll_config = __HAL_RCC_GET_PLL_OSCSOURCE(); - 8001e9c: 4b91 ldr r3, [pc, #580] @ (80020e4 ) - 8001e9e: 689b ldr r3, [r3, #8] - 8001ea0: f403 3380 and.w r3, r3, #65536 @ 0x10000 - 8001ea4: 617b str r3, [r7, #20] + 8001f08: 4b91 ldr r3, [pc, #580] @ (8002150 ) + 8001f0a: 689b ldr r3, [r3, #8] + 8001f0c: f403 3380 and.w r3, r3, #65536 @ 0x10000 + 8001f10: 617b str r3, [r7, #20] /*------------------------------- HSE Configuration ------------------------*/ if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) - 8001ea6: 687b ldr r3, [r7, #4] - 8001ea8: 681b ldr r3, [r3, #0] - 8001eaa: f003 0301 and.w r3, r3, #1 - 8001eae: 2b00 cmp r3, #0 - 8001eb0: d07b beq.n 8001faa + 8001f12: 687b ldr r3, [r7, #4] + 8001f14: 681b ldr r3, [r3, #0] + 8001f16: f003 0301 and.w r3, r3, #1 + 8001f1a: 2b00 cmp r3, #0 + 8001f1c: d07b beq.n 8002016 { /* Check the parameters */ assert_param(IS_RCC_HSE(RCC_OscInitStruct->HSEState)); /* When the HSE is used as system clock or clock source for PLL in these cases it is not allowed to be disabled */ if((sysclk_source == RCC_SYSCLKSOURCE_STATUS_HSE) - 8001eb2: 69bb ldr r3, [r7, #24] - 8001eb4: 2b08 cmp r3, #8 - 8001eb6: d006 beq.n 8001ec6 + 8001f1e: 69bb ldr r3, [r7, #24] + 8001f20: 2b08 cmp r3, #8 + 8001f22: d006 beq.n 8001f32 || ((sysclk_source == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (pll_config == RCC_PLLSOURCE_HSE))) - 8001eb8: 69bb ldr r3, [r7, #24] - 8001eba: 2b0c cmp r3, #12 - 8001ebc: d10f bne.n 8001ede - 8001ebe: 697b ldr r3, [r7, #20] - 8001ec0: f5b3 3f80 cmp.w r3, #65536 @ 0x10000 - 8001ec4: d10b bne.n 8001ede + 8001f24: 69bb ldr r3, [r7, #24] + 8001f26: 2b0c cmp r3, #12 + 8001f28: d10f bne.n 8001f4a + 8001f2a: 697b ldr r3, [r7, #20] + 8001f2c: f5b3 3f80 cmp.w r3, #65536 @ 0x10000 + 8001f30: d10b bne.n 8001f4a { if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != 0U) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) - 8001ec6: 4b87 ldr r3, [pc, #540] @ (80020e4 ) - 8001ec8: 681b ldr r3, [r3, #0] - 8001eca: f403 3300 and.w r3, r3, #131072 @ 0x20000 - 8001ece: 2b00 cmp r3, #0 - 8001ed0: d06a beq.n 8001fa8 - 8001ed2: 687b ldr r3, [r7, #4] - 8001ed4: 685b ldr r3, [r3, #4] - 8001ed6: 2b00 cmp r3, #0 - 8001ed8: d166 bne.n 8001fa8 + 8001f32: 4b87 ldr r3, [pc, #540] @ (8002150 ) + 8001f34: 681b ldr r3, [r3, #0] + 8001f36: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 8001f3a: 2b00 cmp r3, #0 + 8001f3c: d06a beq.n 8002014 + 8001f3e: 687b ldr r3, [r7, #4] + 8001f40: 685b ldr r3, [r3, #4] + 8001f42: 2b00 cmp r3, #0 + 8001f44: d166 bne.n 8002014 { return HAL_ERROR; - 8001eda: 2301 movs r3, #1 - 8001edc: e2f7 b.n 80024ce + 8001f46: 2301 movs r3, #1 + 8001f48: e2f7 b.n 800253a } } else { /* Set the new HSE configuration ---------------------------------------*/ __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); - 8001ede: 687b ldr r3, [r7, #4] - 8001ee0: 685b ldr r3, [r3, #4] - 8001ee2: 2b01 cmp r3, #1 - 8001ee4: d106 bne.n 8001ef4 - 8001ee6: 4b7f ldr r3, [pc, #508] @ (80020e4 ) - 8001ee8: 681b ldr r3, [r3, #0] - 8001eea: 4a7e ldr r2, [pc, #504] @ (80020e4 ) - 8001eec: f443 3380 orr.w r3, r3, #65536 @ 0x10000 - 8001ef0: 6013 str r3, [r2, #0] - 8001ef2: e02d b.n 8001f50 - 8001ef4: 687b ldr r3, [r7, #4] - 8001ef6: 685b ldr r3, [r3, #4] - 8001ef8: 2b00 cmp r3, #0 - 8001efa: d10c bne.n 8001f16 - 8001efc: 4b79 ldr r3, [pc, #484] @ (80020e4 ) - 8001efe: 681b ldr r3, [r3, #0] - 8001f00: 4a78 ldr r2, [pc, #480] @ (80020e4 ) - 8001f02: f423 3380 bic.w r3, r3, #65536 @ 0x10000 - 8001f06: 6013 str r3, [r2, #0] - 8001f08: 4b76 ldr r3, [pc, #472] @ (80020e4 ) - 8001f0a: 681b ldr r3, [r3, #0] - 8001f0c: 4a75 ldr r2, [pc, #468] @ (80020e4 ) - 8001f0e: f423 2380 bic.w r3, r3, #262144 @ 0x40000 - 8001f12: 6013 str r3, [r2, #0] - 8001f14: e01c b.n 8001f50 - 8001f16: 687b ldr r3, [r7, #4] - 8001f18: 685b ldr r3, [r3, #4] - 8001f1a: 2b05 cmp r3, #5 - 8001f1c: d10c bne.n 8001f38 - 8001f1e: 4b71 ldr r3, [pc, #452] @ (80020e4 ) - 8001f20: 681b ldr r3, [r3, #0] - 8001f22: 4a70 ldr r2, [pc, #448] @ (80020e4 ) - 8001f24: f443 2380 orr.w r3, r3, #262144 @ 0x40000 - 8001f28: 6013 str r3, [r2, #0] - 8001f2a: 4b6e ldr r3, [pc, #440] @ (80020e4 ) - 8001f2c: 681b ldr r3, [r3, #0] - 8001f2e: 4a6d ldr r2, [pc, #436] @ (80020e4 ) - 8001f30: f443 3380 orr.w r3, r3, #65536 @ 0x10000 - 8001f34: 6013 str r3, [r2, #0] - 8001f36: e00b b.n 8001f50 - 8001f38: 4b6a ldr r3, [pc, #424] @ (80020e4 ) - 8001f3a: 681b ldr r3, [r3, #0] - 8001f3c: 4a69 ldr r2, [pc, #420] @ (80020e4 ) - 8001f3e: f423 3380 bic.w r3, r3, #65536 @ 0x10000 - 8001f42: 6013 str r3, [r2, #0] - 8001f44: 4b67 ldr r3, [pc, #412] @ (80020e4 ) - 8001f46: 681b ldr r3, [r3, #0] - 8001f48: 4a66 ldr r2, [pc, #408] @ (80020e4 ) - 8001f4a: f423 2380 bic.w r3, r3, #262144 @ 0x40000 - 8001f4e: 6013 str r3, [r2, #0] + 8001f4a: 687b ldr r3, [r7, #4] + 8001f4c: 685b ldr r3, [r3, #4] + 8001f4e: 2b01 cmp r3, #1 + 8001f50: d106 bne.n 8001f60 + 8001f52: 4b7f ldr r3, [pc, #508] @ (8002150 ) + 8001f54: 681b ldr r3, [r3, #0] + 8001f56: 4a7e ldr r2, [pc, #504] @ (8002150 ) + 8001f58: f443 3380 orr.w r3, r3, #65536 @ 0x10000 + 8001f5c: 6013 str r3, [r2, #0] + 8001f5e: e02d b.n 8001fbc + 8001f60: 687b ldr r3, [r7, #4] + 8001f62: 685b ldr r3, [r3, #4] + 8001f64: 2b00 cmp r3, #0 + 8001f66: d10c bne.n 8001f82 + 8001f68: 4b79 ldr r3, [pc, #484] @ (8002150 ) + 8001f6a: 681b ldr r3, [r3, #0] + 8001f6c: 4a78 ldr r2, [pc, #480] @ (8002150 ) + 8001f6e: f423 3380 bic.w r3, r3, #65536 @ 0x10000 + 8001f72: 6013 str r3, [r2, #0] + 8001f74: 4b76 ldr r3, [pc, #472] @ (8002150 ) + 8001f76: 681b ldr r3, [r3, #0] + 8001f78: 4a75 ldr r2, [pc, #468] @ (8002150 ) + 8001f7a: f423 2380 bic.w r3, r3, #262144 @ 0x40000 + 8001f7e: 6013 str r3, [r2, #0] + 8001f80: e01c b.n 8001fbc + 8001f82: 687b ldr r3, [r7, #4] + 8001f84: 685b ldr r3, [r3, #4] + 8001f86: 2b05 cmp r3, #5 + 8001f88: d10c bne.n 8001fa4 + 8001f8a: 4b71 ldr r3, [pc, #452] @ (8002150 ) + 8001f8c: 681b ldr r3, [r3, #0] + 8001f8e: 4a70 ldr r2, [pc, #448] @ (8002150 ) + 8001f90: f443 2380 orr.w r3, r3, #262144 @ 0x40000 + 8001f94: 6013 str r3, [r2, #0] + 8001f96: 4b6e ldr r3, [pc, #440] @ (8002150 ) + 8001f98: 681b ldr r3, [r3, #0] + 8001f9a: 4a6d ldr r2, [pc, #436] @ (8002150 ) + 8001f9c: f443 3380 orr.w r3, r3, #65536 @ 0x10000 + 8001fa0: 6013 str r3, [r2, #0] + 8001fa2: e00b b.n 8001fbc + 8001fa4: 4b6a ldr r3, [pc, #424] @ (8002150 ) + 8001fa6: 681b ldr r3, [r3, #0] + 8001fa8: 4a69 ldr r2, [pc, #420] @ (8002150 ) + 8001faa: f423 3380 bic.w r3, r3, #65536 @ 0x10000 + 8001fae: 6013 str r3, [r2, #0] + 8001fb0: 4b67 ldr r3, [pc, #412] @ (8002150 ) + 8001fb2: 681b ldr r3, [r3, #0] + 8001fb4: 4a66 ldr r2, [pc, #408] @ (8002150 ) + 8001fb6: f423 2380 bic.w r3, r3, #262144 @ 0x40000 + 8001fba: 6013 str r3, [r2, #0] /* Check the HSE State */ if(RCC_OscInitStruct->HSEState != RCC_HSE_OFF) - 8001f50: 687b ldr r3, [r7, #4] - 8001f52: 685b ldr r3, [r3, #4] - 8001f54: 2b00 cmp r3, #0 - 8001f56: d013 beq.n 8001f80 + 8001fbc: 687b ldr r3, [r7, #4] + 8001fbe: 685b ldr r3, [r3, #4] + 8001fc0: 2b00 cmp r3, #0 + 8001fc2: d013 beq.n 8001fec { /* Get Start Tick */ tickstart = HAL_GetTick(); - 8001f58: f7fe fce0 bl 800091c - 8001f5c: 6138 str r0, [r7, #16] + 8001fc4: f7fe fce0 bl 8000988 + 8001fc8: 6138 str r0, [r7, #16] /* Wait till HSE is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == 0U) - 8001f5e: e008 b.n 8001f72 + 8001fca: e008 b.n 8001fde { if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) - 8001f60: f7fe fcdc bl 800091c - 8001f64: 4602 mov r2, r0 - 8001f66: 693b ldr r3, [r7, #16] - 8001f68: 1ad3 subs r3, r2, r3 - 8001f6a: 2b64 cmp r3, #100 @ 0x64 - 8001f6c: d901 bls.n 8001f72 + 8001fcc: f7fe fcdc bl 8000988 + 8001fd0: 4602 mov r2, r0 + 8001fd2: 693b ldr r3, [r7, #16] + 8001fd4: 1ad3 subs r3, r2, r3 + 8001fd6: 2b64 cmp r3, #100 @ 0x64 + 8001fd8: d901 bls.n 8001fde { return HAL_TIMEOUT; - 8001f6e: 2303 movs r3, #3 - 8001f70: e2ad b.n 80024ce + 8001fda: 2303 movs r3, #3 + 8001fdc: e2ad b.n 800253a while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == 0U) - 8001f72: 4b5c ldr r3, [pc, #368] @ (80020e4 ) - 8001f74: 681b ldr r3, [r3, #0] - 8001f76: f403 3300 and.w r3, r3, #131072 @ 0x20000 - 8001f7a: 2b00 cmp r3, #0 - 8001f7c: d0f0 beq.n 8001f60 - 8001f7e: e014 b.n 8001faa + 8001fde: 4b5c ldr r3, [pc, #368] @ (8002150 ) + 8001fe0: 681b ldr r3, [r3, #0] + 8001fe2: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 8001fe6: 2b00 cmp r3, #0 + 8001fe8: d0f0 beq.n 8001fcc + 8001fea: e014 b.n 8002016 } } else { /* Get Start Tick */ tickstart = HAL_GetTick(); - 8001f80: f7fe fccc bl 800091c - 8001f84: 6138 str r0, [r7, #16] + 8001fec: f7fe fccc bl 8000988 + 8001ff0: 6138 str r0, [r7, #16] /* Wait till HSE is disabled */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != 0U) - 8001f86: e008 b.n 8001f9a + 8001ff2: e008 b.n 8002006 { if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) - 8001f88: f7fe fcc8 bl 800091c - 8001f8c: 4602 mov r2, r0 - 8001f8e: 693b ldr r3, [r7, #16] - 8001f90: 1ad3 subs r3, r2, r3 - 8001f92: 2b64 cmp r3, #100 @ 0x64 - 8001f94: d901 bls.n 8001f9a + 8001ff4: f7fe fcc8 bl 8000988 + 8001ff8: 4602 mov r2, r0 + 8001ffa: 693b ldr r3, [r7, #16] + 8001ffc: 1ad3 subs r3, r2, r3 + 8001ffe: 2b64 cmp r3, #100 @ 0x64 + 8002000: d901 bls.n 8002006 { return HAL_TIMEOUT; - 8001f96: 2303 movs r3, #3 - 8001f98: e299 b.n 80024ce + 8002002: 2303 movs r3, #3 + 8002004: e299 b.n 800253a while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != 0U) - 8001f9a: 4b52 ldr r3, [pc, #328] @ (80020e4 ) - 8001f9c: 681b ldr r3, [r3, #0] - 8001f9e: f403 3300 and.w r3, r3, #131072 @ 0x20000 - 8001fa2: 2b00 cmp r3, #0 - 8001fa4: d1f0 bne.n 8001f88 - 8001fa6: e000 b.n 8001faa + 8002006: 4b52 ldr r3, [pc, #328] @ (8002150 ) + 8002008: 681b ldr r3, [r3, #0] + 800200a: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 800200e: 2b00 cmp r3, #0 + 8002010: d1f0 bne.n 8001ff4 + 8002012: e000 b.n 8002016 if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != 0U) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) - 8001fa8: bf00 nop + 8002014: bf00 nop } } } } /*----------------------------- HSI Configuration --------------------------*/ if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) - 8001faa: 687b ldr r3, [r7, #4] - 8001fac: 681b ldr r3, [r3, #0] - 8001fae: f003 0302 and.w r3, r3, #2 - 8001fb2: 2b00 cmp r3, #0 - 8001fb4: d05a beq.n 800206c + 8002016: 687b ldr r3, [r7, #4] + 8002018: 681b ldr r3, [r3, #0] + 800201a: f003 0302 and.w r3, r3, #2 + 800201e: 2b00 cmp r3, #0 + 8002020: d05a beq.n 80020d8 /* Check the parameters */ assert_param(IS_RCC_HSI(RCC_OscInitStruct->HSIState)); assert_param(IS_RCC_CALIBRATION_VALUE(RCC_OscInitStruct->HSICalibrationValue)); /* Check if HSI is used as system clock or as PLL source when PLL is selected as system clock */ if((sysclk_source == RCC_SYSCLKSOURCE_STATUS_HSI) - 8001fb6: 69bb ldr r3, [r7, #24] - 8001fb8: 2b04 cmp r3, #4 - 8001fba: d005 beq.n 8001fc8 + 8002022: 69bb ldr r3, [r7, #24] + 8002024: 2b04 cmp r3, #4 + 8002026: d005 beq.n 8002034 || ((sysclk_source == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && (pll_config == RCC_PLLSOURCE_HSI))) - 8001fbc: 69bb ldr r3, [r7, #24] - 8001fbe: 2b0c cmp r3, #12 - 8001fc0: d119 bne.n 8001ff6 - 8001fc2: 697b ldr r3, [r7, #20] - 8001fc4: 2b00 cmp r3, #0 - 8001fc6: d116 bne.n 8001ff6 + 8002028: 69bb ldr r3, [r7, #24] + 800202a: 2b0c cmp r3, #12 + 800202c: d119 bne.n 8002062 + 800202e: 697b ldr r3, [r7, #20] + 8002030: 2b00 cmp r3, #0 + 8002032: d116 bne.n 8002062 { /* When HSI is used as system clock it will not disabled */ if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != 0U) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) - 8001fc8: 4b46 ldr r3, [pc, #280] @ (80020e4 ) - 8001fca: 681b ldr r3, [r3, #0] - 8001fcc: f003 0302 and.w r3, r3, #2 - 8001fd0: 2b00 cmp r3, #0 - 8001fd2: d005 beq.n 8001fe0 - 8001fd4: 687b ldr r3, [r7, #4] - 8001fd6: 68db ldr r3, [r3, #12] - 8001fd8: 2b01 cmp r3, #1 - 8001fda: d001 beq.n 8001fe0 + 8002034: 4b46 ldr r3, [pc, #280] @ (8002150 ) + 8002036: 681b ldr r3, [r3, #0] + 8002038: f003 0302 and.w r3, r3, #2 + 800203c: 2b00 cmp r3, #0 + 800203e: d005 beq.n 800204c + 8002040: 687b ldr r3, [r7, #4] + 8002042: 68db ldr r3, [r3, #12] + 8002044: 2b01 cmp r3, #1 + 8002046: d001 beq.n 800204c { return HAL_ERROR; - 8001fdc: 2301 movs r3, #1 - 8001fde: e276 b.n 80024ce + 8002048: 2301 movs r3, #1 + 800204a: e276 b.n 800253a } /* Otherwise, just the calibration is allowed */ else { /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); - 8001fe0: 4b40 ldr r3, [pc, #256] @ (80020e4 ) - 8001fe2: 685b ldr r3, [r3, #4] - 8001fe4: f423 52f8 bic.w r2, r3, #7936 @ 0x1f00 - 8001fe8: 687b ldr r3, [r7, #4] - 8001fea: 691b ldr r3, [r3, #16] - 8001fec: 021b lsls r3, r3, #8 - 8001fee: 493d ldr r1, [pc, #244] @ (80020e4 ) - 8001ff0: 4313 orrs r3, r2 - 8001ff2: 604b str r3, [r1, #4] + 800204c: 4b40 ldr r3, [pc, #256] @ (8002150 ) + 800204e: 685b ldr r3, [r3, #4] + 8002050: f423 52f8 bic.w r2, r3, #7936 @ 0x1f00 + 8002054: 687b ldr r3, [r7, #4] + 8002056: 691b ldr r3, [r3, #16] + 8002058: 021b lsls r3, r3, #8 + 800205a: 493d ldr r1, [pc, #244] @ (8002150 ) + 800205c: 4313 orrs r3, r2 + 800205e: 604b str r3, [r1, #4] if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != 0U) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) - 8001ff4: e03a b.n 800206c + 8002060: e03a b.n 80020d8 } } else { /* Check the HSI State */ if(RCC_OscInitStruct->HSIState != RCC_HSI_OFF) - 8001ff6: 687b ldr r3, [r7, #4] - 8001ff8: 68db ldr r3, [r3, #12] - 8001ffa: 2b00 cmp r3, #0 - 8001ffc: d020 beq.n 8002040 + 8002062: 687b ldr r3, [r7, #4] + 8002064: 68db ldr r3, [r3, #12] + 8002066: 2b00 cmp r3, #0 + 8002068: d020 beq.n 80020ac { /* Enable the Internal High Speed oscillator (HSI). */ __HAL_RCC_HSI_ENABLE(); - 8001ffe: 4b3a ldr r3, [pc, #232] @ (80020e8 ) - 8002000: 2201 movs r2, #1 - 8002002: 601a str r2, [r3, #0] + 800206a: 4b3a ldr r3, [pc, #232] @ (8002154 ) + 800206c: 2201 movs r2, #1 + 800206e: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8002004: f7fe fc8a bl 800091c - 8002008: 6138 str r0, [r7, #16] + 8002070: f7fe fc8a bl 8000988 + 8002074: 6138 str r0, [r7, #16] /* Wait till HSI is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == 0U) - 800200a: e008 b.n 800201e + 8002076: e008 b.n 800208a { if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE) - 800200c: f7fe fc86 bl 800091c - 8002010: 4602 mov r2, r0 - 8002012: 693b ldr r3, [r7, #16] - 8002014: 1ad3 subs r3, r2, r3 - 8002016: 2b02 cmp r3, #2 - 8002018: d901 bls.n 800201e + 8002078: f7fe fc86 bl 8000988 + 800207c: 4602 mov r2, r0 + 800207e: 693b ldr r3, [r7, #16] + 8002080: 1ad3 subs r3, r2, r3 + 8002082: 2b02 cmp r3, #2 + 8002084: d901 bls.n 800208a { return HAL_TIMEOUT; - 800201a: 2303 movs r3, #3 - 800201c: e257 b.n 80024ce + 8002086: 2303 movs r3, #3 + 8002088: e257 b.n 800253a while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == 0U) - 800201e: 4b31 ldr r3, [pc, #196] @ (80020e4 ) - 8002020: 681b ldr r3, [r3, #0] - 8002022: f003 0302 and.w r3, r3, #2 - 8002026: 2b00 cmp r3, #0 - 8002028: d0f0 beq.n 800200c + 800208a: 4b31 ldr r3, [pc, #196] @ (8002150 ) + 800208c: 681b ldr r3, [r3, #0] + 800208e: f003 0302 and.w r3, r3, #2 + 8002092: 2b00 cmp r3, #0 + 8002094: d0f0 beq.n 8002078 } } /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); - 800202a: 4b2e ldr r3, [pc, #184] @ (80020e4 ) - 800202c: 685b ldr r3, [r3, #4] - 800202e: f423 52f8 bic.w r2, r3, #7936 @ 0x1f00 - 8002032: 687b ldr r3, [r7, #4] - 8002034: 691b ldr r3, [r3, #16] - 8002036: 021b lsls r3, r3, #8 - 8002038: 492a ldr r1, [pc, #168] @ (80020e4 ) - 800203a: 4313 orrs r3, r2 - 800203c: 604b str r3, [r1, #4] - 800203e: e015 b.n 800206c + 8002096: 4b2e ldr r3, [pc, #184] @ (8002150 ) + 8002098: 685b ldr r3, [r3, #4] + 800209a: f423 52f8 bic.w r2, r3, #7936 @ 0x1f00 + 800209e: 687b ldr r3, [r7, #4] + 80020a0: 691b ldr r3, [r3, #16] + 80020a2: 021b lsls r3, r3, #8 + 80020a4: 492a ldr r1, [pc, #168] @ (8002150 ) + 80020a6: 4313 orrs r3, r2 + 80020a8: 604b str r3, [r1, #4] + 80020aa: e015 b.n 80020d8 } else { /* Disable the Internal High Speed oscillator (HSI). */ __HAL_RCC_HSI_DISABLE(); - 8002040: 4b29 ldr r3, [pc, #164] @ (80020e8 ) - 8002042: 2200 movs r2, #0 - 8002044: 601a str r2, [r3, #0] + 80020ac: 4b29 ldr r3, [pc, #164] @ (8002154 ) + 80020ae: 2200 movs r2, #0 + 80020b0: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8002046: f7fe fc69 bl 800091c - 800204a: 6138 str r0, [r7, #16] + 80020b2: f7fe fc69 bl 8000988 + 80020b6: 6138 str r0, [r7, #16] /* Wait till HSI is disabled */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != 0U) - 800204c: e008 b.n 8002060 + 80020b8: e008 b.n 80020cc { if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE) - 800204e: f7fe fc65 bl 800091c - 8002052: 4602 mov r2, r0 - 8002054: 693b ldr r3, [r7, #16] - 8002056: 1ad3 subs r3, r2, r3 - 8002058: 2b02 cmp r3, #2 - 800205a: d901 bls.n 8002060 + 80020ba: f7fe fc65 bl 8000988 + 80020be: 4602 mov r2, r0 + 80020c0: 693b ldr r3, [r7, #16] + 80020c2: 1ad3 subs r3, r2, r3 + 80020c4: 2b02 cmp r3, #2 + 80020c6: d901 bls.n 80020cc { return HAL_TIMEOUT; - 800205c: 2303 movs r3, #3 - 800205e: e236 b.n 80024ce + 80020c8: 2303 movs r3, #3 + 80020ca: e236 b.n 800253a while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != 0U) - 8002060: 4b20 ldr r3, [pc, #128] @ (80020e4 ) - 8002062: 681b ldr r3, [r3, #0] - 8002064: f003 0302 and.w r3, r3, #2 - 8002068: 2b00 cmp r3, #0 - 800206a: d1f0 bne.n 800204e + 80020cc: 4b20 ldr r3, [pc, #128] @ (8002150 ) + 80020ce: 681b ldr r3, [r3, #0] + 80020d0: f003 0302 and.w r3, r3, #2 + 80020d4: 2b00 cmp r3, #0 + 80020d6: d1f0 bne.n 80020ba } } } } /*----------------------------- MSI Configuration --------------------------*/ if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_MSI) == RCC_OSCILLATORTYPE_MSI) - 800206c: 687b ldr r3, [r7, #4] - 800206e: 681b ldr r3, [r3, #0] - 8002070: f003 0310 and.w r3, r3, #16 - 8002074: 2b00 cmp r3, #0 - 8002076: f000 80b8 beq.w 80021ea + 80020d8: 687b ldr r3, [r7, #4] + 80020da: 681b ldr r3, [r3, #0] + 80020dc: f003 0310 and.w r3, r3, #16 + 80020e0: 2b00 cmp r3, #0 + 80020e2: f000 80b8 beq.w 8002256 { /* When the MSI is used as system clock it will not be disabled */ if(sysclk_source == RCC_CFGR_SWS_MSI) - 800207a: 69bb ldr r3, [r7, #24] - 800207c: 2b00 cmp r3, #0 - 800207e: d170 bne.n 8002162 + 80020e6: 69bb ldr r3, [r7, #24] + 80020e8: 2b00 cmp r3, #0 + 80020ea: d170 bne.n 80021ce { if((__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) != 0U) && (RCC_OscInitStruct->MSIState == RCC_MSI_OFF)) - 8002080: 4b18 ldr r3, [pc, #96] @ (80020e4 ) - 8002082: 681b ldr r3, [r3, #0] - 8002084: f403 7300 and.w r3, r3, #512 @ 0x200 - 8002088: 2b00 cmp r3, #0 - 800208a: d005 beq.n 8002098 - 800208c: 687b ldr r3, [r7, #4] - 800208e: 699b ldr r3, [r3, #24] - 8002090: 2b00 cmp r3, #0 - 8002092: d101 bne.n 8002098 + 80020ec: 4b18 ldr r3, [pc, #96] @ (8002150 ) + 80020ee: 681b ldr r3, [r3, #0] + 80020f0: f403 7300 and.w r3, r3, #512 @ 0x200 + 80020f4: 2b00 cmp r3, #0 + 80020f6: d005 beq.n 8002104 + 80020f8: 687b ldr r3, [r7, #4] + 80020fa: 699b ldr r3, [r3, #24] + 80020fc: 2b00 cmp r3, #0 + 80020fe: d101 bne.n 8002104 { return HAL_ERROR; - 8002094: 2301 movs r3, #1 - 8002096: e21a b.n 80024ce + 8002100: 2301 movs r3, #1 + 8002102: e21a b.n 800253a assert_param(IS_RCC_MSI_CLOCK_RANGE(RCC_OscInitStruct->MSIClockRange)); /* To correctly read data from FLASH memory, the number of wait states (LATENCY) must be correctly programmed according to the frequency of the CPU clock (HCLK) and the supply voltage of the device. */ if(RCC_OscInitStruct->MSIClockRange > __HAL_RCC_GET_MSI_RANGE()) - 8002098: 687b ldr r3, [r7, #4] - 800209a: 6a1a ldr r2, [r3, #32] - 800209c: 4b11 ldr r3, [pc, #68] @ (80020e4 ) - 800209e: 685b ldr r3, [r3, #4] - 80020a0: f403 4360 and.w r3, r3, #57344 @ 0xe000 - 80020a4: 429a cmp r2, r3 - 80020a6: d921 bls.n 80020ec + 8002104: 687b ldr r3, [r7, #4] + 8002106: 6a1a ldr r2, [r3, #32] + 8002108: 4b11 ldr r3, [pc, #68] @ (8002150 ) + 800210a: 685b ldr r3, [r3, #4] + 800210c: f403 4360 and.w r3, r3, #57344 @ 0xe000 + 8002110: 429a cmp r2, r3 + 8002112: d921 bls.n 8002158 { /* First increase number of wait states update if necessary */ if(RCC_SetFlashLatencyFromMSIRange(RCC_OscInitStruct->MSIClockRange) != HAL_OK) - 80020a8: 687b ldr r3, [r7, #4] - 80020aa: 6a1b ldr r3, [r3, #32] - 80020ac: 4618 mov r0, r3 - 80020ae: f000 fc27 bl 8002900 - 80020b2: 4603 mov r3, r0 - 80020b4: 2b00 cmp r3, #0 - 80020b6: d001 beq.n 80020bc + 8002114: 687b ldr r3, [r7, #4] + 8002116: 6a1b ldr r3, [r3, #32] + 8002118: 4618 mov r0, r3 + 800211a: f000 fc27 bl 800296c + 800211e: 4603 mov r3, r0 + 8002120: 2b00 cmp r3, #0 + 8002122: d001 beq.n 8002128 { return HAL_ERROR; - 80020b8: 2301 movs r3, #1 - 80020ba: e208 b.n 80024ce + 8002124: 2301 movs r3, #1 + 8002126: e208 b.n 800253a } /* Selects the Multiple Speed oscillator (MSI) clock range .*/ __HAL_RCC_MSI_RANGE_CONFIG(RCC_OscInitStruct->MSIClockRange); - 80020bc: 4b09 ldr r3, [pc, #36] @ (80020e4 ) - 80020be: 685b ldr r3, [r3, #4] - 80020c0: f423 4260 bic.w r2, r3, #57344 @ 0xe000 - 80020c4: 687b ldr r3, [r7, #4] - 80020c6: 6a1b ldr r3, [r3, #32] - 80020c8: 4906 ldr r1, [pc, #24] @ (80020e4 ) - 80020ca: 4313 orrs r3, r2 - 80020cc: 604b str r3, [r1, #4] + 8002128: 4b09 ldr r3, [pc, #36] @ (8002150 ) + 800212a: 685b ldr r3, [r3, #4] + 800212c: f423 4260 bic.w r2, r3, #57344 @ 0xe000 + 8002130: 687b ldr r3, [r7, #4] + 8002132: 6a1b ldr r3, [r3, #32] + 8002134: 4906 ldr r1, [pc, #24] @ (8002150 ) + 8002136: 4313 orrs r3, r2 + 8002138: 604b str r3, [r1, #4] /* Adjusts the Multiple Speed oscillator (MSI) calibration value.*/ __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->MSICalibrationValue); - 80020ce: 4b05 ldr r3, [pc, #20] @ (80020e4 ) - 80020d0: 685b ldr r3, [r3, #4] - 80020d2: f023 427f bic.w r2, r3, #4278190080 @ 0xff000000 - 80020d6: 687b ldr r3, [r7, #4] - 80020d8: 69db ldr r3, [r3, #28] - 80020da: 061b lsls r3, r3, #24 - 80020dc: 4901 ldr r1, [pc, #4] @ (80020e4 ) - 80020de: 4313 orrs r3, r2 - 80020e0: 604b str r3, [r1, #4] - 80020e2: e020 b.n 8002126 - 80020e4: 40023800 .word 0x40023800 - 80020e8: 42470000 .word 0x42470000 + 800213a: 4b05 ldr r3, [pc, #20] @ (8002150 ) + 800213c: 685b ldr r3, [r3, #4] + 800213e: f023 427f bic.w r2, r3, #4278190080 @ 0xff000000 + 8002142: 687b ldr r3, [r7, #4] + 8002144: 69db ldr r3, [r3, #28] + 8002146: 061b lsls r3, r3, #24 + 8002148: 4901 ldr r1, [pc, #4] @ (8002150 ) + 800214a: 4313 orrs r3, r2 + 800214c: 604b str r3, [r1, #4] + 800214e: e020 b.n 8002192 + 8002150: 40023800 .word 0x40023800 + 8002154: 42470000 .word 0x42470000 } else { /* Else, keep current flash latency while decreasing applies */ /* Selects the Multiple Speed oscillator (MSI) clock range .*/ __HAL_RCC_MSI_RANGE_CONFIG(RCC_OscInitStruct->MSIClockRange); - 80020ec: 4b99 ldr r3, [pc, #612] @ (8002354 ) - 80020ee: 685b ldr r3, [r3, #4] - 80020f0: f423 4260 bic.w r2, r3, #57344 @ 0xe000 - 80020f4: 687b ldr r3, [r7, #4] - 80020f6: 6a1b ldr r3, [r3, #32] - 80020f8: 4996 ldr r1, [pc, #600] @ (8002354 ) - 80020fa: 4313 orrs r3, r2 - 80020fc: 604b str r3, [r1, #4] + 8002158: 4b99 ldr r3, [pc, #612] @ (80023c0 ) + 800215a: 685b ldr r3, [r3, #4] + 800215c: f423 4260 bic.w r2, r3, #57344 @ 0xe000 + 8002160: 687b ldr r3, [r7, #4] + 8002162: 6a1b ldr r3, [r3, #32] + 8002164: 4996 ldr r1, [pc, #600] @ (80023c0 ) + 8002166: 4313 orrs r3, r2 + 8002168: 604b str r3, [r1, #4] /* Adjusts the Multiple Speed oscillator (MSI) calibration value.*/ __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->MSICalibrationValue); - 80020fe: 4b95 ldr r3, [pc, #596] @ (8002354 ) - 8002100: 685b ldr r3, [r3, #4] - 8002102: f023 427f bic.w r2, r3, #4278190080 @ 0xff000000 - 8002106: 687b ldr r3, [r7, #4] - 8002108: 69db ldr r3, [r3, #28] - 800210a: 061b lsls r3, r3, #24 - 800210c: 4991 ldr r1, [pc, #580] @ (8002354 ) - 800210e: 4313 orrs r3, r2 - 8002110: 604b str r3, [r1, #4] + 800216a: 4b95 ldr r3, [pc, #596] @ (80023c0 ) + 800216c: 685b ldr r3, [r3, #4] + 800216e: f023 427f bic.w r2, r3, #4278190080 @ 0xff000000 + 8002172: 687b ldr r3, [r7, #4] + 8002174: 69db ldr r3, [r3, #28] + 8002176: 061b lsls r3, r3, #24 + 8002178: 4991 ldr r1, [pc, #580] @ (80023c0 ) + 800217a: 4313 orrs r3, r2 + 800217c: 604b str r3, [r1, #4] /* Decrease number of wait states update if necessary */ if(RCC_SetFlashLatencyFromMSIRange(RCC_OscInitStruct->MSIClockRange) != HAL_OK) - 8002112: 687b ldr r3, [r7, #4] - 8002114: 6a1b ldr r3, [r3, #32] - 8002116: 4618 mov r0, r3 - 8002118: f000 fbf2 bl 8002900 - 800211c: 4603 mov r3, r0 - 800211e: 2b00 cmp r3, #0 - 8002120: d001 beq.n 8002126 + 800217e: 687b ldr r3, [r7, #4] + 8002180: 6a1b ldr r3, [r3, #32] + 8002182: 4618 mov r0, r3 + 8002184: f000 fbf2 bl 800296c + 8002188: 4603 mov r3, r0 + 800218a: 2b00 cmp r3, #0 + 800218c: d001 beq.n 8002192 { return HAL_ERROR; - 8002122: 2301 movs r3, #1 - 8002124: e1d3 b.n 80024ce + 800218e: 2301 movs r3, #1 + 8002190: e1d3 b.n 800253a } } /* Update the SystemCoreClock global variable */ SystemCoreClock = (32768U * (1UL << ((RCC_OscInitStruct->MSIClockRange >> RCC_ICSCR_MSIRANGE_Pos) + 1U))) - 8002126: 687b ldr r3, [r7, #4] - 8002128: 6a1b ldr r3, [r3, #32] - 800212a: 0b5b lsrs r3, r3, #13 - 800212c: 3301 adds r3, #1 - 800212e: f44f 4200 mov.w r2, #32768 @ 0x8000 - 8002132: fa02 f303 lsl.w r3, r2, r3 + 8002192: 687b ldr r3, [r7, #4] + 8002194: 6a1b ldr r3, [r3, #32] + 8002196: 0b5b lsrs r3, r3, #13 + 8002198: 3301 adds r3, #1 + 800219a: f44f 4200 mov.w r2, #32768 @ 0x8000 + 800219e: fa02 f303 lsl.w r3, r2, r3 >> AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos)]; - 8002136: 4a87 ldr r2, [pc, #540] @ (8002354 ) - 8002138: 6892 ldr r2, [r2, #8] - 800213a: 0912 lsrs r2, r2, #4 - 800213c: f002 020f and.w r2, r2, #15 - 8002140: 4985 ldr r1, [pc, #532] @ (8002358 ) - 8002142: 5c8a ldrb r2, [r1, r2] - 8002144: 40d3 lsrs r3, r2 + 80021a2: 4a87 ldr r2, [pc, #540] @ (80023c0 ) + 80021a4: 6892 ldr r2, [r2, #8] + 80021a6: 0912 lsrs r2, r2, #4 + 80021a8: f002 020f and.w r2, r2, #15 + 80021ac: 4985 ldr r1, [pc, #532] @ (80023c4 ) + 80021ae: 5c8a ldrb r2, [r1, r2] + 80021b0: 40d3 lsrs r3, r2 SystemCoreClock = (32768U * (1UL << ((RCC_OscInitStruct->MSIClockRange >> RCC_ICSCR_MSIRANGE_Pos) + 1U))) - 8002146: 4a85 ldr r2, [pc, #532] @ (800235c ) - 8002148: 6013 str r3, [r2, #0] + 80021b2: 4a85 ldr r2, [pc, #532] @ (80023c8 ) + 80021b4: 6013 str r3, [r2, #0] /* Configure the source of time base considering new system clocks settings*/ status = HAL_InitTick(uwTickPrio); - 800214a: 4b85 ldr r3, [pc, #532] @ (8002360 ) - 800214c: 681b ldr r3, [r3, #0] - 800214e: 4618 mov r0, r3 - 8002150: f7fe fb98 bl 8000884 - 8002154: 4603 mov r3, r0 - 8002156: 73fb strb r3, [r7, #15] + 80021b6: 4b85 ldr r3, [pc, #532] @ (80023cc ) + 80021b8: 681b ldr r3, [r3, #0] + 80021ba: 4618 mov r0, r3 + 80021bc: f7fe fb98 bl 80008f0 + 80021c0: 4603 mov r3, r0 + 80021c2: 73fb strb r3, [r7, #15] if(status != HAL_OK) - 8002158: 7bfb ldrb r3, [r7, #15] - 800215a: 2b00 cmp r3, #0 - 800215c: d045 beq.n 80021ea + 80021c4: 7bfb ldrb r3, [r7, #15] + 80021c6: 2b00 cmp r3, #0 + 80021c8: d045 beq.n 8002256 { return status; - 800215e: 7bfb ldrb r3, [r7, #15] - 8002160: e1b5 b.n 80024ce + 80021ca: 7bfb ldrb r3, [r7, #15] + 80021cc: e1b5 b.n 800253a { /* Check MSI State */ assert_param(IS_RCC_MSI(RCC_OscInitStruct->MSIState)); /* Check the MSI State */ if(RCC_OscInitStruct->MSIState != RCC_MSI_OFF) - 8002162: 687b ldr r3, [r7, #4] - 8002164: 699b ldr r3, [r3, #24] - 8002166: 2b00 cmp r3, #0 - 8002168: d029 beq.n 80021be + 80021ce: 687b ldr r3, [r7, #4] + 80021d0: 699b ldr r3, [r3, #24] + 80021d2: 2b00 cmp r3, #0 + 80021d4: d029 beq.n 800222a { /* Enable the Multi Speed oscillator (MSI). */ __HAL_RCC_MSI_ENABLE(); - 800216a: 4b7e ldr r3, [pc, #504] @ (8002364 ) - 800216c: 2201 movs r2, #1 - 800216e: 601a str r2, [r3, #0] + 80021d6: 4b7e ldr r3, [pc, #504] @ (80023d0 ) + 80021d8: 2201 movs r2, #1 + 80021da: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8002170: f7fe fbd4 bl 800091c - 8002174: 6138 str r0, [r7, #16] + 80021dc: f7fe fbd4 bl 8000988 + 80021e0: 6138 str r0, [r7, #16] /* Wait till MSI is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) == 0U) - 8002176: e008 b.n 800218a + 80021e2: e008 b.n 80021f6 { if((HAL_GetTick() - tickstart) > MSI_TIMEOUT_VALUE) - 8002178: f7fe fbd0 bl 800091c - 800217c: 4602 mov r2, r0 - 800217e: 693b ldr r3, [r7, #16] - 8002180: 1ad3 subs r3, r2, r3 - 8002182: 2b02 cmp r3, #2 - 8002184: d901 bls.n 800218a + 80021e4: f7fe fbd0 bl 8000988 + 80021e8: 4602 mov r2, r0 + 80021ea: 693b ldr r3, [r7, #16] + 80021ec: 1ad3 subs r3, r2, r3 + 80021ee: 2b02 cmp r3, #2 + 80021f0: d901 bls.n 80021f6 { return HAL_TIMEOUT; - 8002186: 2303 movs r3, #3 - 8002188: e1a1 b.n 80024ce + 80021f2: 2303 movs r3, #3 + 80021f4: e1a1 b.n 800253a while(__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) == 0U) - 800218a: 4b72 ldr r3, [pc, #456] @ (8002354 ) - 800218c: 681b ldr r3, [r3, #0] - 800218e: f403 7300 and.w r3, r3, #512 @ 0x200 - 8002192: 2b00 cmp r3, #0 - 8002194: d0f0 beq.n 8002178 + 80021f6: 4b72 ldr r3, [pc, #456] @ (80023c0 ) + 80021f8: 681b ldr r3, [r3, #0] + 80021fa: f403 7300 and.w r3, r3, #512 @ 0x200 + 80021fe: 2b00 cmp r3, #0 + 8002200: d0f0 beq.n 80021e4 /* Check MSICalibrationValue and MSIClockRange input parameters */ assert_param(IS_RCC_MSICALIBRATION_VALUE(RCC_OscInitStruct->MSICalibrationValue)); assert_param(IS_RCC_MSI_CLOCK_RANGE(RCC_OscInitStruct->MSIClockRange)); /* Selects the Multiple Speed oscillator (MSI) clock range .*/ __HAL_RCC_MSI_RANGE_CONFIG(RCC_OscInitStruct->MSIClockRange); - 8002196: 4b6f ldr r3, [pc, #444] @ (8002354 ) - 8002198: 685b ldr r3, [r3, #4] - 800219a: f423 4260 bic.w r2, r3, #57344 @ 0xe000 - 800219e: 687b ldr r3, [r7, #4] - 80021a0: 6a1b ldr r3, [r3, #32] - 80021a2: 496c ldr r1, [pc, #432] @ (8002354 ) - 80021a4: 4313 orrs r3, r2 - 80021a6: 604b str r3, [r1, #4] + 8002202: 4b6f ldr r3, [pc, #444] @ (80023c0 ) + 8002204: 685b ldr r3, [r3, #4] + 8002206: f423 4260 bic.w r2, r3, #57344 @ 0xe000 + 800220a: 687b ldr r3, [r7, #4] + 800220c: 6a1b ldr r3, [r3, #32] + 800220e: 496c ldr r1, [pc, #432] @ (80023c0 ) + 8002210: 4313 orrs r3, r2 + 8002212: 604b str r3, [r1, #4] /* Adjusts the Multiple Speed oscillator (MSI) calibration value.*/ __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->MSICalibrationValue); - 80021a8: 4b6a ldr r3, [pc, #424] @ (8002354 ) - 80021aa: 685b ldr r3, [r3, #4] - 80021ac: f023 427f bic.w r2, r3, #4278190080 @ 0xff000000 - 80021b0: 687b ldr r3, [r7, #4] - 80021b2: 69db ldr r3, [r3, #28] - 80021b4: 061b lsls r3, r3, #24 - 80021b6: 4967 ldr r1, [pc, #412] @ (8002354 ) - 80021b8: 4313 orrs r3, r2 - 80021ba: 604b str r3, [r1, #4] - 80021bc: e015 b.n 80021ea + 8002214: 4b6a ldr r3, [pc, #424] @ (80023c0 ) + 8002216: 685b ldr r3, [r3, #4] + 8002218: f023 427f bic.w r2, r3, #4278190080 @ 0xff000000 + 800221c: 687b ldr r3, [r7, #4] + 800221e: 69db ldr r3, [r3, #28] + 8002220: 061b lsls r3, r3, #24 + 8002222: 4967 ldr r1, [pc, #412] @ (80023c0 ) + 8002224: 4313 orrs r3, r2 + 8002226: 604b str r3, [r1, #4] + 8002228: e015 b.n 8002256 } else { /* Disable the Multi Speed oscillator (MSI). */ __HAL_RCC_MSI_DISABLE(); - 80021be: 4b69 ldr r3, [pc, #420] @ (8002364 ) - 80021c0: 2200 movs r2, #0 - 80021c2: 601a str r2, [r3, #0] + 800222a: 4b69 ldr r3, [pc, #420] @ (80023d0 ) + 800222c: 2200 movs r2, #0 + 800222e: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 80021c4: f7fe fbaa bl 800091c - 80021c8: 6138 str r0, [r7, #16] + 8002230: f7fe fbaa bl 8000988 + 8002234: 6138 str r0, [r7, #16] /* Wait till MSI is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) != 0U) - 80021ca: e008 b.n 80021de + 8002236: e008 b.n 800224a { if((HAL_GetTick() - tickstart) > MSI_TIMEOUT_VALUE) - 80021cc: f7fe fba6 bl 800091c - 80021d0: 4602 mov r2, r0 - 80021d2: 693b ldr r3, [r7, #16] - 80021d4: 1ad3 subs r3, r2, r3 - 80021d6: 2b02 cmp r3, #2 - 80021d8: d901 bls.n 80021de + 8002238: f7fe fba6 bl 8000988 + 800223c: 4602 mov r2, r0 + 800223e: 693b ldr r3, [r7, #16] + 8002240: 1ad3 subs r3, r2, r3 + 8002242: 2b02 cmp r3, #2 + 8002244: d901 bls.n 800224a { return HAL_TIMEOUT; - 80021da: 2303 movs r3, #3 - 80021dc: e177 b.n 80024ce + 8002246: 2303 movs r3, #3 + 8002248: e177 b.n 800253a while(__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) != 0U) - 80021de: 4b5d ldr r3, [pc, #372] @ (8002354 ) - 80021e0: 681b ldr r3, [r3, #0] - 80021e2: f403 7300 and.w r3, r3, #512 @ 0x200 - 80021e6: 2b00 cmp r3, #0 - 80021e8: d1f0 bne.n 80021cc + 800224a: 4b5d ldr r3, [pc, #372] @ (80023c0 ) + 800224c: 681b ldr r3, [r3, #0] + 800224e: f403 7300 and.w r3, r3, #512 @ 0x200 + 8002252: 2b00 cmp r3, #0 + 8002254: d1f0 bne.n 8002238 } } } } /*------------------------------ LSI Configuration -------------------------*/ if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) - 80021ea: 687b ldr r3, [r7, #4] - 80021ec: 681b ldr r3, [r3, #0] - 80021ee: f003 0308 and.w r3, r3, #8 - 80021f2: 2b00 cmp r3, #0 - 80021f4: d030 beq.n 8002258 + 8002256: 687b ldr r3, [r7, #4] + 8002258: 681b ldr r3, [r3, #0] + 800225a: f003 0308 and.w r3, r3, #8 + 800225e: 2b00 cmp r3, #0 + 8002260: d030 beq.n 80022c4 { /* Check the parameters */ assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState)); /* Check the LSI State */ if(RCC_OscInitStruct->LSIState != RCC_LSI_OFF) - 80021f6: 687b ldr r3, [r7, #4] - 80021f8: 695b ldr r3, [r3, #20] - 80021fa: 2b00 cmp r3, #0 - 80021fc: d016 beq.n 800222c + 8002262: 687b ldr r3, [r7, #4] + 8002264: 695b ldr r3, [r3, #20] + 8002266: 2b00 cmp r3, #0 + 8002268: d016 beq.n 8002298 { /* Enable the Internal Low Speed oscillator (LSI). */ __HAL_RCC_LSI_ENABLE(); - 80021fe: 4b5a ldr r3, [pc, #360] @ (8002368 ) - 8002200: 2201 movs r2, #1 - 8002202: 601a str r2, [r3, #0] + 800226a: 4b5a ldr r3, [pc, #360] @ (80023d4 ) + 800226c: 2201 movs r2, #1 + 800226e: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8002204: f7fe fb8a bl 800091c - 8002208: 6138 str r0, [r7, #16] + 8002270: f7fe fb8a bl 8000988 + 8002274: 6138 str r0, [r7, #16] /* Wait till LSI is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == 0U) - 800220a: e008 b.n 800221e + 8002276: e008 b.n 800228a { if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE) - 800220c: f7fe fb86 bl 800091c - 8002210: 4602 mov r2, r0 - 8002212: 693b ldr r3, [r7, #16] - 8002214: 1ad3 subs r3, r2, r3 - 8002216: 2b02 cmp r3, #2 - 8002218: d901 bls.n 800221e + 8002278: f7fe fb86 bl 8000988 + 800227c: 4602 mov r2, r0 + 800227e: 693b ldr r3, [r7, #16] + 8002280: 1ad3 subs r3, r2, r3 + 8002282: 2b02 cmp r3, #2 + 8002284: d901 bls.n 800228a { return HAL_TIMEOUT; - 800221a: 2303 movs r3, #3 - 800221c: e157 b.n 80024ce + 8002286: 2303 movs r3, #3 + 8002288: e157 b.n 800253a while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == 0U) - 800221e: 4b4d ldr r3, [pc, #308] @ (8002354 ) - 8002220: 6b5b ldr r3, [r3, #52] @ 0x34 - 8002222: f003 0302 and.w r3, r3, #2 - 8002226: 2b00 cmp r3, #0 - 8002228: d0f0 beq.n 800220c - 800222a: e015 b.n 8002258 + 800228a: 4b4d ldr r3, [pc, #308] @ (80023c0 ) + 800228c: 6b5b ldr r3, [r3, #52] @ 0x34 + 800228e: f003 0302 and.w r3, r3, #2 + 8002292: 2b00 cmp r3, #0 + 8002294: d0f0 beq.n 8002278 + 8002296: e015 b.n 80022c4 } } else { /* Disable the Internal Low Speed oscillator (LSI). */ __HAL_RCC_LSI_DISABLE(); - 800222c: 4b4e ldr r3, [pc, #312] @ (8002368 ) - 800222e: 2200 movs r2, #0 - 8002230: 601a str r2, [r3, #0] + 8002298: 4b4e ldr r3, [pc, #312] @ (80023d4 ) + 800229a: 2200 movs r2, #0 + 800229c: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8002232: f7fe fb73 bl 800091c - 8002236: 6138 str r0, [r7, #16] + 800229e: f7fe fb73 bl 8000988 + 80022a2: 6138 str r0, [r7, #16] /* Wait till LSI is disabled */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != 0U) - 8002238: e008 b.n 800224c + 80022a4: e008 b.n 80022b8 { if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE) - 800223a: f7fe fb6f bl 800091c - 800223e: 4602 mov r2, r0 - 8002240: 693b ldr r3, [r7, #16] - 8002242: 1ad3 subs r3, r2, r3 - 8002244: 2b02 cmp r3, #2 - 8002246: d901 bls.n 800224c + 80022a6: f7fe fb6f bl 8000988 + 80022aa: 4602 mov r2, r0 + 80022ac: 693b ldr r3, [r7, #16] + 80022ae: 1ad3 subs r3, r2, r3 + 80022b0: 2b02 cmp r3, #2 + 80022b2: d901 bls.n 80022b8 { return HAL_TIMEOUT; - 8002248: 2303 movs r3, #3 - 800224a: e140 b.n 80024ce + 80022b4: 2303 movs r3, #3 + 80022b6: e140 b.n 800253a while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != 0U) - 800224c: 4b41 ldr r3, [pc, #260] @ (8002354 ) - 800224e: 6b5b ldr r3, [r3, #52] @ 0x34 - 8002250: f003 0302 and.w r3, r3, #2 - 8002254: 2b00 cmp r3, #0 - 8002256: d1f0 bne.n 800223a + 80022b8: 4b41 ldr r3, [pc, #260] @ (80023c0 ) + 80022ba: 6b5b ldr r3, [r3, #52] @ 0x34 + 80022bc: f003 0302 and.w r3, r3, #2 + 80022c0: 2b00 cmp r3, #0 + 80022c2: d1f0 bne.n 80022a6 } } } } /*------------------------------ LSE Configuration -------------------------*/ if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) - 8002258: 687b ldr r3, [r7, #4] - 800225a: 681b ldr r3, [r3, #0] - 800225c: f003 0304 and.w r3, r3, #4 - 8002260: 2b00 cmp r3, #0 - 8002262: f000 80b5 beq.w 80023d0 + 80022c4: 687b ldr r3, [r7, #4] + 80022c6: 681b ldr r3, [r3, #0] + 80022c8: f003 0304 and.w r3, r3, #4 + 80022cc: 2b00 cmp r3, #0 + 80022ce: f000 80b5 beq.w 800243c { FlagStatus pwrclkchanged = RESET; - 8002266: 2300 movs r3, #0 - 8002268: 77fb strb r3, [r7, #31] + 80022d2: 2300 movs r3, #0 + 80022d4: 77fb strb r3, [r7, #31] /* Check the parameters */ assert_param(IS_RCC_LSE(RCC_OscInitStruct->LSEState)); /* Update LSE configuration in Backup Domain control register */ /* Requires to enable write access to Backup Domain of necessary */ if(__HAL_RCC_PWR_IS_CLK_DISABLED()) - 800226a: 4b3a ldr r3, [pc, #232] @ (8002354 ) - 800226c: 6a5b ldr r3, [r3, #36] @ 0x24 - 800226e: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 - 8002272: 2b00 cmp r3, #0 - 8002274: d10d bne.n 8002292 + 80022d6: 4b3a ldr r3, [pc, #232] @ (80023c0 ) + 80022d8: 6a5b ldr r3, [r3, #36] @ 0x24 + 80022da: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 80022de: 2b00 cmp r3, #0 + 80022e0: d10d bne.n 80022fe { __HAL_RCC_PWR_CLK_ENABLE(); - 8002276: 4b37 ldr r3, [pc, #220] @ (8002354 ) - 8002278: 6a5b ldr r3, [r3, #36] @ 0x24 - 800227a: 4a36 ldr r2, [pc, #216] @ (8002354 ) - 800227c: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 - 8002280: 6253 str r3, [r2, #36] @ 0x24 - 8002282: 4b34 ldr r3, [pc, #208] @ (8002354 ) - 8002284: 6a5b ldr r3, [r3, #36] @ 0x24 - 8002286: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 - 800228a: 60bb str r3, [r7, #8] - 800228c: 68bb ldr r3, [r7, #8] + 80022e2: 4b37 ldr r3, [pc, #220] @ (80023c0 ) + 80022e4: 6a5b ldr r3, [r3, #36] @ 0x24 + 80022e6: 4a36 ldr r2, [pc, #216] @ (80023c0 ) + 80022e8: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 + 80022ec: 6253 str r3, [r2, #36] @ 0x24 + 80022ee: 4b34 ldr r3, [pc, #208] @ (80023c0 ) + 80022f0: 6a5b ldr r3, [r3, #36] @ 0x24 + 80022f2: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 80022f6: 60bb str r3, [r7, #8] + 80022f8: 68bb ldr r3, [r7, #8] pwrclkchanged = SET; - 800228e: 2301 movs r3, #1 - 8002290: 77fb strb r3, [r7, #31] + 80022fa: 2301 movs r3, #1 + 80022fc: 77fb strb r3, [r7, #31] } if(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) - 8002292: 4b36 ldr r3, [pc, #216] @ (800236c ) - 8002294: 681b ldr r3, [r3, #0] - 8002296: f403 7380 and.w r3, r3, #256 @ 0x100 - 800229a: 2b00 cmp r3, #0 - 800229c: d118 bne.n 80022d0 + 80022fe: 4b36 ldr r3, [pc, #216] @ (80023d8 ) + 8002300: 681b ldr r3, [r3, #0] + 8002302: f403 7380 and.w r3, r3, #256 @ 0x100 + 8002306: 2b00 cmp r3, #0 + 8002308: d118 bne.n 800233c { /* Enable write access to Backup domain */ SET_BIT(PWR->CR, PWR_CR_DBP); - 800229e: 4b33 ldr r3, [pc, #204] @ (800236c ) - 80022a0: 681b ldr r3, [r3, #0] - 80022a2: 4a32 ldr r2, [pc, #200] @ (800236c ) - 80022a4: f443 7380 orr.w r3, r3, #256 @ 0x100 - 80022a8: 6013 str r3, [r2, #0] + 800230a: 4b33 ldr r3, [pc, #204] @ (80023d8 ) + 800230c: 681b ldr r3, [r3, #0] + 800230e: 4a32 ldr r2, [pc, #200] @ (80023d8 ) + 8002310: f443 7380 orr.w r3, r3, #256 @ 0x100 + 8002314: 6013 str r3, [r2, #0] /* Wait for Backup domain Write protection disable */ tickstart = HAL_GetTick(); - 80022aa: f7fe fb37 bl 800091c - 80022ae: 6138 str r0, [r7, #16] + 8002316: f7fe fb37 bl 8000988 + 800231a: 6138 str r0, [r7, #16] while(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) - 80022b0: e008 b.n 80022c4 + 800231c: e008 b.n 8002330 { if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) - 80022b2: f7fe fb33 bl 800091c - 80022b6: 4602 mov r2, r0 - 80022b8: 693b ldr r3, [r7, #16] - 80022ba: 1ad3 subs r3, r2, r3 - 80022bc: 2b64 cmp r3, #100 @ 0x64 - 80022be: d901 bls.n 80022c4 + 800231e: f7fe fb33 bl 8000988 + 8002322: 4602 mov r2, r0 + 8002324: 693b ldr r3, [r7, #16] + 8002326: 1ad3 subs r3, r2, r3 + 8002328: 2b64 cmp r3, #100 @ 0x64 + 800232a: d901 bls.n 8002330 { return HAL_TIMEOUT; - 80022c0: 2303 movs r3, #3 - 80022c2: e104 b.n 80024ce + 800232c: 2303 movs r3, #3 + 800232e: e104 b.n 800253a while(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) - 80022c4: 4b29 ldr r3, [pc, #164] @ (800236c ) - 80022c6: 681b ldr r3, [r3, #0] - 80022c8: f403 7380 and.w r3, r3, #256 @ 0x100 - 80022cc: 2b00 cmp r3, #0 - 80022ce: d0f0 beq.n 80022b2 + 8002330: 4b29 ldr r3, [pc, #164] @ (80023d8 ) + 8002332: 681b ldr r3, [r3, #0] + 8002334: f403 7380 and.w r3, r3, #256 @ 0x100 + 8002338: 2b00 cmp r3, #0 + 800233a: d0f0 beq.n 800231e } } } /* Set the new LSE configuration -----------------------------------------*/ __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState); - 80022d0: 687b ldr r3, [r7, #4] - 80022d2: 689b ldr r3, [r3, #8] - 80022d4: 2b01 cmp r3, #1 - 80022d6: d106 bne.n 80022e6 - 80022d8: 4b1e ldr r3, [pc, #120] @ (8002354 ) - 80022da: 6b5b ldr r3, [r3, #52] @ 0x34 - 80022dc: 4a1d ldr r2, [pc, #116] @ (8002354 ) - 80022de: f443 7380 orr.w r3, r3, #256 @ 0x100 - 80022e2: 6353 str r3, [r2, #52] @ 0x34 - 80022e4: e02d b.n 8002342 - 80022e6: 687b ldr r3, [r7, #4] - 80022e8: 689b ldr r3, [r3, #8] - 80022ea: 2b00 cmp r3, #0 - 80022ec: d10c bne.n 8002308 - 80022ee: 4b19 ldr r3, [pc, #100] @ (8002354 ) - 80022f0: 6b5b ldr r3, [r3, #52] @ 0x34 - 80022f2: 4a18 ldr r2, [pc, #96] @ (8002354 ) - 80022f4: f423 7380 bic.w r3, r3, #256 @ 0x100 - 80022f8: 6353 str r3, [r2, #52] @ 0x34 - 80022fa: 4b16 ldr r3, [pc, #88] @ (8002354 ) - 80022fc: 6b5b ldr r3, [r3, #52] @ 0x34 - 80022fe: 4a15 ldr r2, [pc, #84] @ (8002354 ) - 8002300: f423 6380 bic.w r3, r3, #1024 @ 0x400 - 8002304: 6353 str r3, [r2, #52] @ 0x34 - 8002306: e01c b.n 8002342 - 8002308: 687b ldr r3, [r7, #4] - 800230a: 689b ldr r3, [r3, #8] - 800230c: 2b05 cmp r3, #5 - 800230e: d10c bne.n 800232a - 8002310: 4b10 ldr r3, [pc, #64] @ (8002354 ) - 8002312: 6b5b ldr r3, [r3, #52] @ 0x34 - 8002314: 4a0f ldr r2, [pc, #60] @ (8002354 ) - 8002316: f443 6380 orr.w r3, r3, #1024 @ 0x400 - 800231a: 6353 str r3, [r2, #52] @ 0x34 - 800231c: 4b0d ldr r3, [pc, #52] @ (8002354 ) - 800231e: 6b5b ldr r3, [r3, #52] @ 0x34 - 8002320: 4a0c ldr r2, [pc, #48] @ (8002354 ) - 8002322: f443 7380 orr.w r3, r3, #256 @ 0x100 - 8002326: 6353 str r3, [r2, #52] @ 0x34 - 8002328: e00b b.n 8002342 - 800232a: 4b0a ldr r3, [pc, #40] @ (8002354 ) - 800232c: 6b5b ldr r3, [r3, #52] @ 0x34 - 800232e: 4a09 ldr r2, [pc, #36] @ (8002354 ) - 8002330: f423 7380 bic.w r3, r3, #256 @ 0x100 - 8002334: 6353 str r3, [r2, #52] @ 0x34 - 8002336: 4b07 ldr r3, [pc, #28] @ (8002354 ) - 8002338: 6b5b ldr r3, [r3, #52] @ 0x34 - 800233a: 4a06 ldr r2, [pc, #24] @ (8002354 ) - 800233c: f423 6380 bic.w r3, r3, #1024 @ 0x400 - 8002340: 6353 str r3, [r2, #52] @ 0x34 + 800233c: 687b ldr r3, [r7, #4] + 800233e: 689b ldr r3, [r3, #8] + 8002340: 2b01 cmp r3, #1 + 8002342: d106 bne.n 8002352 + 8002344: 4b1e ldr r3, [pc, #120] @ (80023c0 ) + 8002346: 6b5b ldr r3, [r3, #52] @ 0x34 + 8002348: 4a1d ldr r2, [pc, #116] @ (80023c0 ) + 800234a: f443 7380 orr.w r3, r3, #256 @ 0x100 + 800234e: 6353 str r3, [r2, #52] @ 0x34 + 8002350: e02d b.n 80023ae + 8002352: 687b ldr r3, [r7, #4] + 8002354: 689b ldr r3, [r3, #8] + 8002356: 2b00 cmp r3, #0 + 8002358: d10c bne.n 8002374 + 800235a: 4b19 ldr r3, [pc, #100] @ (80023c0 ) + 800235c: 6b5b ldr r3, [r3, #52] @ 0x34 + 800235e: 4a18 ldr r2, [pc, #96] @ (80023c0 ) + 8002360: f423 7380 bic.w r3, r3, #256 @ 0x100 + 8002364: 6353 str r3, [r2, #52] @ 0x34 + 8002366: 4b16 ldr r3, [pc, #88] @ (80023c0 ) + 8002368: 6b5b ldr r3, [r3, #52] @ 0x34 + 800236a: 4a15 ldr r2, [pc, #84] @ (80023c0 ) + 800236c: f423 6380 bic.w r3, r3, #1024 @ 0x400 + 8002370: 6353 str r3, [r2, #52] @ 0x34 + 8002372: e01c b.n 80023ae + 8002374: 687b ldr r3, [r7, #4] + 8002376: 689b ldr r3, [r3, #8] + 8002378: 2b05 cmp r3, #5 + 800237a: d10c bne.n 8002396 + 800237c: 4b10 ldr r3, [pc, #64] @ (80023c0 ) + 800237e: 6b5b ldr r3, [r3, #52] @ 0x34 + 8002380: 4a0f ldr r2, [pc, #60] @ (80023c0 ) + 8002382: f443 6380 orr.w r3, r3, #1024 @ 0x400 + 8002386: 6353 str r3, [r2, #52] @ 0x34 + 8002388: 4b0d ldr r3, [pc, #52] @ (80023c0 ) + 800238a: 6b5b ldr r3, [r3, #52] @ 0x34 + 800238c: 4a0c ldr r2, [pc, #48] @ (80023c0 ) + 800238e: f443 7380 orr.w r3, r3, #256 @ 0x100 + 8002392: 6353 str r3, [r2, #52] @ 0x34 + 8002394: e00b b.n 80023ae + 8002396: 4b0a ldr r3, [pc, #40] @ (80023c0 ) + 8002398: 6b5b ldr r3, [r3, #52] @ 0x34 + 800239a: 4a09 ldr r2, [pc, #36] @ (80023c0 ) + 800239c: f423 7380 bic.w r3, r3, #256 @ 0x100 + 80023a0: 6353 str r3, [r2, #52] @ 0x34 + 80023a2: 4b07 ldr r3, [pc, #28] @ (80023c0 ) + 80023a4: 6b5b ldr r3, [r3, #52] @ 0x34 + 80023a6: 4a06 ldr r2, [pc, #24] @ (80023c0 ) + 80023a8: f423 6380 bic.w r3, r3, #1024 @ 0x400 + 80023ac: 6353 str r3, [r2, #52] @ 0x34 /* Check the LSE State */ if(RCC_OscInitStruct->LSEState != RCC_LSE_OFF) - 8002342: 687b ldr r3, [r7, #4] - 8002344: 689b ldr r3, [r3, #8] - 8002346: 2b00 cmp r3, #0 - 8002348: d024 beq.n 8002394 + 80023ae: 687b ldr r3, [r7, #4] + 80023b0: 689b ldr r3, [r3, #8] + 80023b2: 2b00 cmp r3, #0 + 80023b4: d024 beq.n 8002400 { /* Get Start Tick */ tickstart = HAL_GetTick(); - 800234a: f7fe fae7 bl 800091c - 800234e: 6138 str r0, [r7, #16] + 80023b6: f7fe fae7 bl 8000988 + 80023ba: 6138 str r0, [r7, #16] /* Wait till LSE is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == 0U) - 8002350: e019 b.n 8002386 - 8002352: bf00 nop - 8002354: 40023800 .word 0x40023800 - 8002358: 08002a3c .word 0x08002a3c - 800235c: 20000000 .word 0x20000000 - 8002360: 20000004 .word 0x20000004 - 8002364: 42470020 .word 0x42470020 - 8002368: 42470680 .word 0x42470680 - 800236c: 40007000 .word 0x40007000 + 80023bc: e019 b.n 80023f2 + 80023be: bf00 nop + 80023c0: 40023800 .word 0x40023800 + 80023c4: 08002aa8 .word 0x08002aa8 + 80023c8: 20000000 .word 0x20000000 + 80023cc: 20000004 .word 0x20000004 + 80023d0: 42470020 .word 0x42470020 + 80023d4: 42470680 .word 0x42470680 + 80023d8: 40007000 .word 0x40007000 { if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) - 8002370: f7fe fad4 bl 800091c - 8002374: 4602 mov r2, r0 - 8002376: 693b ldr r3, [r7, #16] - 8002378: 1ad3 subs r3, r2, r3 - 800237a: f241 3288 movw r2, #5000 @ 0x1388 - 800237e: 4293 cmp r3, r2 - 8002380: d901 bls.n 8002386 + 80023dc: f7fe fad4 bl 8000988 + 80023e0: 4602 mov r2, r0 + 80023e2: 693b ldr r3, [r7, #16] + 80023e4: 1ad3 subs r3, r2, r3 + 80023e6: f241 3288 movw r2, #5000 @ 0x1388 + 80023ea: 4293 cmp r3, r2 + 80023ec: d901 bls.n 80023f2 { return HAL_TIMEOUT; - 8002382: 2303 movs r3, #3 - 8002384: e0a3 b.n 80024ce + 80023ee: 2303 movs r3, #3 + 80023f0: e0a3 b.n 800253a while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == 0U) - 8002386: 4b54 ldr r3, [pc, #336] @ (80024d8 ) - 8002388: 6b5b ldr r3, [r3, #52] @ 0x34 - 800238a: f403 7300 and.w r3, r3, #512 @ 0x200 - 800238e: 2b00 cmp r3, #0 - 8002390: d0ee beq.n 8002370 - 8002392: e014 b.n 80023be + 80023f2: 4b54 ldr r3, [pc, #336] @ (8002544 ) + 80023f4: 6b5b ldr r3, [r3, #52] @ 0x34 + 80023f6: f403 7300 and.w r3, r3, #512 @ 0x200 + 80023fa: 2b00 cmp r3, #0 + 80023fc: d0ee beq.n 80023dc + 80023fe: e014 b.n 800242a } } else { /* Get Start Tick */ tickstart = HAL_GetTick(); - 8002394: f7fe fac2 bl 800091c - 8002398: 6138 str r0, [r7, #16] + 8002400: f7fe fac2 bl 8000988 + 8002404: 6138 str r0, [r7, #16] /* Wait till LSE is disabled */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != 0U) - 800239a: e00a b.n 80023b2 + 8002406: e00a b.n 800241e { if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) - 800239c: f7fe fabe bl 800091c - 80023a0: 4602 mov r2, r0 - 80023a2: 693b ldr r3, [r7, #16] - 80023a4: 1ad3 subs r3, r2, r3 - 80023a6: f241 3288 movw r2, #5000 @ 0x1388 - 80023aa: 4293 cmp r3, r2 - 80023ac: d901 bls.n 80023b2 + 8002408: f7fe fabe bl 8000988 + 800240c: 4602 mov r2, r0 + 800240e: 693b ldr r3, [r7, #16] + 8002410: 1ad3 subs r3, r2, r3 + 8002412: f241 3288 movw r2, #5000 @ 0x1388 + 8002416: 4293 cmp r3, r2 + 8002418: d901 bls.n 800241e { return HAL_TIMEOUT; - 80023ae: 2303 movs r3, #3 - 80023b0: e08d b.n 80024ce + 800241a: 2303 movs r3, #3 + 800241c: e08d b.n 800253a while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != 0U) - 80023b2: 4b49 ldr r3, [pc, #292] @ (80024d8 ) - 80023b4: 6b5b ldr r3, [r3, #52] @ 0x34 - 80023b6: f403 7300 and.w r3, r3, #512 @ 0x200 - 80023ba: 2b00 cmp r3, #0 - 80023bc: d1ee bne.n 800239c + 800241e: 4b49 ldr r3, [pc, #292] @ (8002544 ) + 8002420: 6b5b ldr r3, [r3, #52] @ 0x34 + 8002422: f403 7300 and.w r3, r3, #512 @ 0x200 + 8002426: 2b00 cmp r3, #0 + 8002428: d1ee bne.n 8002408 } } } /* Require to disable power clock if necessary */ if(pwrclkchanged == SET) - 80023be: 7ffb ldrb r3, [r7, #31] - 80023c0: 2b01 cmp r3, #1 - 80023c2: d105 bne.n 80023d0 + 800242a: 7ffb ldrb r3, [r7, #31] + 800242c: 2b01 cmp r3, #1 + 800242e: d105 bne.n 800243c { __HAL_RCC_PWR_CLK_DISABLE(); - 80023c4: 4b44 ldr r3, [pc, #272] @ (80024d8 ) - 80023c6: 6a5b ldr r3, [r3, #36] @ 0x24 - 80023c8: 4a43 ldr r2, [pc, #268] @ (80024d8 ) - 80023ca: f023 5380 bic.w r3, r3, #268435456 @ 0x10000000 - 80023ce: 6253 str r3, [r2, #36] @ 0x24 + 8002430: 4b44 ldr r3, [pc, #272] @ (8002544 ) + 8002432: 6a5b ldr r3, [r3, #36] @ 0x24 + 8002434: 4a43 ldr r2, [pc, #268] @ (8002544 ) + 8002436: f023 5380 bic.w r3, r3, #268435456 @ 0x10000000 + 800243a: 6253 str r3, [r2, #36] @ 0x24 } /*-------------------------------- PLL Configuration -----------------------*/ /* Check the parameters */ assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState)); if ((RCC_OscInitStruct->PLL.PLLState) != RCC_PLL_NONE) - 80023d0: 687b ldr r3, [r7, #4] - 80023d2: 6a5b ldr r3, [r3, #36] @ 0x24 - 80023d4: 2b00 cmp r3, #0 - 80023d6: d079 beq.n 80024cc + 800243c: 687b ldr r3, [r7, #4] + 800243e: 6a5b ldr r3, [r3, #36] @ 0x24 + 8002440: 2b00 cmp r3, #0 + 8002442: d079 beq.n 8002538 { /* Check if the PLL is used as system clock or not */ if(sysclk_source != RCC_SYSCLKSOURCE_STATUS_PLLCLK) - 80023d8: 69bb ldr r3, [r7, #24] - 80023da: 2b0c cmp r3, #12 - 80023dc: d056 beq.n 800248c + 8002444: 69bb ldr r3, [r7, #24] + 8002446: 2b0c cmp r3, #12 + 8002448: d056 beq.n 80024f8 { if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON) - 80023de: 687b ldr r3, [r7, #4] - 80023e0: 6a5b ldr r3, [r3, #36] @ 0x24 - 80023e2: 2b02 cmp r3, #2 - 80023e4: d13b bne.n 800245e + 800244a: 687b ldr r3, [r7, #4] + 800244c: 6a5b ldr r3, [r3, #36] @ 0x24 + 800244e: 2b02 cmp r3, #2 + 8002450: d13b bne.n 80024ca assert_param(IS_RCC_PLLSOURCE(RCC_OscInitStruct->PLL.PLLSource)); assert_param(IS_RCC_PLL_MUL(RCC_OscInitStruct->PLL.PLLMUL)); assert_param(IS_RCC_PLL_DIV(RCC_OscInitStruct->PLL.PLLDIV)); /* Disable the main PLL. */ __HAL_RCC_PLL_DISABLE(); - 80023e6: 4b3d ldr r3, [pc, #244] @ (80024dc ) - 80023e8: 2200 movs r2, #0 - 80023ea: 601a str r2, [r3, #0] + 8002452: 4b3d ldr r3, [pc, #244] @ (8002548 ) + 8002454: 2200 movs r2, #0 + 8002456: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 80023ec: f7fe fa96 bl 800091c - 80023f0: 6138 str r0, [r7, #16] + 8002458: f7fe fa96 bl 8000988 + 800245c: 6138 str r0, [r7, #16] /* Wait till PLL is disabled */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != 0U) - 80023f2: e008 b.n 8002406 + 800245e: e008 b.n 8002472 { if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) - 80023f4: f7fe fa92 bl 800091c - 80023f8: 4602 mov r2, r0 - 80023fa: 693b ldr r3, [r7, #16] - 80023fc: 1ad3 subs r3, r2, r3 - 80023fe: 2b02 cmp r3, #2 - 8002400: d901 bls.n 8002406 + 8002460: f7fe fa92 bl 8000988 + 8002464: 4602 mov r2, r0 + 8002466: 693b ldr r3, [r7, #16] + 8002468: 1ad3 subs r3, r2, r3 + 800246a: 2b02 cmp r3, #2 + 800246c: d901 bls.n 8002472 { return HAL_TIMEOUT; - 8002402: 2303 movs r3, #3 - 8002404: e063 b.n 80024ce + 800246e: 2303 movs r3, #3 + 8002470: e063 b.n 800253a while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != 0U) - 8002406: 4b34 ldr r3, [pc, #208] @ (80024d8 ) - 8002408: 681b ldr r3, [r3, #0] - 800240a: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 - 800240e: 2b00 cmp r3, #0 - 8002410: d1f0 bne.n 80023f4 + 8002472: 4b34 ldr r3, [pc, #208] @ (8002544 ) + 8002474: 681b ldr r3, [r3, #0] + 8002476: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 800247a: 2b00 cmp r3, #0 + 800247c: d1f0 bne.n 8002460 } } /* Configure the main PLL clock source, multiplication and division factors. */ __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, - 8002412: 4b31 ldr r3, [pc, #196] @ (80024d8 ) - 8002414: 689b ldr r3, [r3, #8] - 8002416: f423 027d bic.w r2, r3, #16580608 @ 0xfd0000 - 800241a: 687b ldr r3, [r7, #4] - 800241c: 6a99 ldr r1, [r3, #40] @ 0x28 - 800241e: 687b ldr r3, [r7, #4] - 8002420: 6adb ldr r3, [r3, #44] @ 0x2c - 8002422: 4319 orrs r1, r3 - 8002424: 687b ldr r3, [r7, #4] - 8002426: 6b1b ldr r3, [r3, #48] @ 0x30 - 8002428: 430b orrs r3, r1 - 800242a: 492b ldr r1, [pc, #172] @ (80024d8 ) - 800242c: 4313 orrs r3, r2 - 800242e: 608b str r3, [r1, #8] + 800247e: 4b31 ldr r3, [pc, #196] @ (8002544 ) + 8002480: 689b ldr r3, [r3, #8] + 8002482: f423 027d bic.w r2, r3, #16580608 @ 0xfd0000 + 8002486: 687b ldr r3, [r7, #4] + 8002488: 6a99 ldr r1, [r3, #40] @ 0x28 + 800248a: 687b ldr r3, [r7, #4] + 800248c: 6adb ldr r3, [r3, #44] @ 0x2c + 800248e: 4319 orrs r1, r3 + 8002490: 687b ldr r3, [r7, #4] + 8002492: 6b1b ldr r3, [r3, #48] @ 0x30 + 8002494: 430b orrs r3, r1 + 8002496: 492b ldr r1, [pc, #172] @ (8002544 ) + 8002498: 4313 orrs r3, r2 + 800249a: 608b str r3, [r1, #8] RCC_OscInitStruct->PLL.PLLMUL, RCC_OscInitStruct->PLL.PLLDIV); /* Enable the main PLL. */ __HAL_RCC_PLL_ENABLE(); - 8002430: 4b2a ldr r3, [pc, #168] @ (80024dc ) - 8002432: 2201 movs r2, #1 - 8002434: 601a str r2, [r3, #0] + 800249c: 4b2a ldr r3, [pc, #168] @ (8002548 ) + 800249e: 2201 movs r2, #1 + 80024a0: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8002436: f7fe fa71 bl 800091c - 800243a: 6138 str r0, [r7, #16] + 80024a2: f7fe fa71 bl 8000988 + 80024a6: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == 0U) - 800243c: e008 b.n 8002450 + 80024a8: e008 b.n 80024bc { if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) - 800243e: f7fe fa6d bl 800091c - 8002442: 4602 mov r2, r0 - 8002444: 693b ldr r3, [r7, #16] - 8002446: 1ad3 subs r3, r2, r3 - 8002448: 2b02 cmp r3, #2 - 800244a: d901 bls.n 8002450 + 80024aa: f7fe fa6d bl 8000988 + 80024ae: 4602 mov r2, r0 + 80024b0: 693b ldr r3, [r7, #16] + 80024b2: 1ad3 subs r3, r2, r3 + 80024b4: 2b02 cmp r3, #2 + 80024b6: d901 bls.n 80024bc { return HAL_TIMEOUT; - 800244c: 2303 movs r3, #3 - 800244e: e03e b.n 80024ce + 80024b8: 2303 movs r3, #3 + 80024ba: e03e b.n 800253a while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == 0U) - 8002450: 4b21 ldr r3, [pc, #132] @ (80024d8 ) - 8002452: 681b ldr r3, [r3, #0] - 8002454: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 - 8002458: 2b00 cmp r3, #0 - 800245a: d0f0 beq.n 800243e - 800245c: e036 b.n 80024cc + 80024bc: 4b21 ldr r3, [pc, #132] @ (8002544 ) + 80024be: 681b ldr r3, [r3, #0] + 80024c0: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 80024c4: 2b00 cmp r3, #0 + 80024c6: d0f0 beq.n 80024aa + 80024c8: e036 b.n 8002538 } } else { /* Disable the main PLL. */ __HAL_RCC_PLL_DISABLE(); - 800245e: 4b1f ldr r3, [pc, #124] @ (80024dc ) - 8002460: 2200 movs r2, #0 - 8002462: 601a str r2, [r3, #0] + 80024ca: 4b1f ldr r3, [pc, #124] @ (8002548 ) + 80024cc: 2200 movs r2, #0 + 80024ce: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8002464: f7fe fa5a bl 800091c - 8002468: 6138 str r0, [r7, #16] + 80024d0: f7fe fa5a bl 8000988 + 80024d4: 6138 str r0, [r7, #16] /* Wait till PLL is disabled */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != 0U) - 800246a: e008 b.n 800247e + 80024d6: e008 b.n 80024ea { if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) - 800246c: f7fe fa56 bl 800091c - 8002470: 4602 mov r2, r0 - 8002472: 693b ldr r3, [r7, #16] - 8002474: 1ad3 subs r3, r2, r3 - 8002476: 2b02 cmp r3, #2 - 8002478: d901 bls.n 800247e + 80024d8: f7fe fa56 bl 8000988 + 80024dc: 4602 mov r2, r0 + 80024de: 693b ldr r3, [r7, #16] + 80024e0: 1ad3 subs r3, r2, r3 + 80024e2: 2b02 cmp r3, #2 + 80024e4: d901 bls.n 80024ea { return HAL_TIMEOUT; - 800247a: 2303 movs r3, #3 - 800247c: e027 b.n 80024ce + 80024e6: 2303 movs r3, #3 + 80024e8: e027 b.n 800253a while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != 0U) - 800247e: 4b16 ldr r3, [pc, #88] @ (80024d8 ) - 8002480: 681b ldr r3, [r3, #0] - 8002482: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 - 8002486: 2b00 cmp r3, #0 - 8002488: d1f0 bne.n 800246c - 800248a: e01f b.n 80024cc + 80024ea: 4b16 ldr r3, [pc, #88] @ (8002544 ) + 80024ec: 681b ldr r3, [r3, #0] + 80024ee: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 80024f2: 2b00 cmp r3, #0 + 80024f4: d1f0 bne.n 80024d8 + 80024f6: e01f b.n 8002538 } } else { /* Check if there is a request to disable the PLL used as System clock source */ if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) - 800248c: 687b ldr r3, [r7, #4] - 800248e: 6a5b ldr r3, [r3, #36] @ 0x24 - 8002490: 2b01 cmp r3, #1 - 8002492: d101 bne.n 8002498 + 80024f8: 687b ldr r3, [r7, #4] + 80024fa: 6a5b ldr r3, [r3, #36] @ 0x24 + 80024fc: 2b01 cmp r3, #1 + 80024fe: d101 bne.n 8002504 { return HAL_ERROR; - 8002494: 2301 movs r3, #1 - 8002496: e01a b.n 80024ce + 8002500: 2301 movs r3, #1 + 8002502: e01a b.n 800253a } else { /* Do not return HAL_ERROR if request repeats the current configuration */ pll_config = RCC->CFGR; - 8002498: 4b0f ldr r3, [pc, #60] @ (80024d8 ) - 800249a: 689b ldr r3, [r3, #8] - 800249c: 617b str r3, [r7, #20] + 8002504: 4b0f ldr r3, [pc, #60] @ (8002544 ) + 8002506: 689b ldr r3, [r3, #8] + 8002508: 617b str r3, [r7, #20] if((READ_BIT(pll_config, RCC_CFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || - 800249e: 697b ldr r3, [r7, #20] - 80024a0: f403 3280 and.w r2, r3, #65536 @ 0x10000 - 80024a4: 687b ldr r3, [r7, #4] - 80024a6: 6a9b ldr r3, [r3, #40] @ 0x28 - 80024a8: 429a cmp r2, r3 - 80024aa: d10d bne.n 80024c8 + 800250a: 697b ldr r3, [r7, #20] + 800250c: f403 3280 and.w r2, r3, #65536 @ 0x10000 + 8002510: 687b ldr r3, [r7, #4] + 8002512: 6a9b ldr r3, [r3, #40] @ 0x28 + 8002514: 429a cmp r2, r3 + 8002516: d10d bne.n 8002534 (READ_BIT(pll_config, RCC_CFGR_PLLMUL) != RCC_OscInitStruct->PLL.PLLMUL) || - 80024ac: 697b ldr r3, [r7, #20] - 80024ae: f403 1270 and.w r2, r3, #3932160 @ 0x3c0000 - 80024b2: 687b ldr r3, [r7, #4] - 80024b4: 6adb ldr r3, [r3, #44] @ 0x2c + 8002518: 697b ldr r3, [r7, #20] + 800251a: f403 1270 and.w r2, r3, #3932160 @ 0x3c0000 + 800251e: 687b ldr r3, [r7, #4] + 8002520: 6adb ldr r3, [r3, #44] @ 0x2c if((READ_BIT(pll_config, RCC_CFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || - 80024b6: 429a cmp r2, r3 - 80024b8: d106 bne.n 80024c8 + 8002522: 429a cmp r2, r3 + 8002524: d106 bne.n 8002534 (READ_BIT(pll_config, RCC_CFGR_PLLDIV) != RCC_OscInitStruct->PLL.PLLDIV)) - 80024ba: 697b ldr r3, [r7, #20] - 80024bc: f403 0240 and.w r2, r3, #12582912 @ 0xc00000 - 80024c0: 687b ldr r3, [r7, #4] - 80024c2: 6b1b ldr r3, [r3, #48] @ 0x30 + 8002526: 697b ldr r3, [r7, #20] + 8002528: f403 0240 and.w r2, r3, #12582912 @ 0xc00000 + 800252c: 687b ldr r3, [r7, #4] + 800252e: 6b1b ldr r3, [r3, #48] @ 0x30 (READ_BIT(pll_config, RCC_CFGR_PLLMUL) != RCC_OscInitStruct->PLL.PLLMUL) || - 80024c4: 429a cmp r2, r3 - 80024c6: d001 beq.n 80024cc + 8002530: 429a cmp r2, r3 + 8002532: d001 beq.n 8002538 { return HAL_ERROR; - 80024c8: 2301 movs r3, #1 - 80024ca: e000 b.n 80024ce + 8002534: 2301 movs r3, #1 + 8002536: e000 b.n 800253a } } } } return HAL_OK; - 80024cc: 2300 movs r3, #0 + 8002538: 2300 movs r3, #0 } - 80024ce: 4618 mov r0, r3 - 80024d0: 3720 adds r7, #32 - 80024d2: 46bd mov sp, r7 - 80024d4: bd80 pop {r7, pc} - 80024d6: bf00 nop - 80024d8: 40023800 .word 0x40023800 - 80024dc: 42470060 .word 0x42470060 + 800253a: 4618 mov r0, r3 + 800253c: 3720 adds r7, #32 + 800253e: 46bd mov sp, r7 + 8002540: bd80 pop {r7, pc} + 8002542: bf00 nop + 8002544: 40023800 .word 0x40023800 + 8002548: 42470060 .word 0x42470060 -080024e0 : +0800254c : * HPRE[3:0] bits to ensure that HCLK not exceed the maximum allowed frequency * (for more details refer to section above "Initialization/de-initialization functions") * @retval HAL status */ HAL_StatusTypeDef HAL_RCC_ClockConfig(const RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency) { - 80024e0: b580 push {r7, lr} - 80024e2: b084 sub sp, #16 - 80024e4: af00 add r7, sp, #0 - 80024e6: 6078 str r0, [r7, #4] - 80024e8: 6039 str r1, [r7, #0] + 800254c: b580 push {r7, lr} + 800254e: b084 sub sp, #16 + 8002550: af00 add r7, sp, #0 + 8002552: 6078 str r0, [r7, #4] + 8002554: 6039 str r1, [r7, #0] uint32_t tickstart; HAL_StatusTypeDef status; /* Check the parameters */ if(RCC_ClkInitStruct == NULL) - 80024ea: 687b ldr r3, [r7, #4] - 80024ec: 2b00 cmp r3, #0 - 80024ee: d101 bne.n 80024f4 + 8002556: 687b ldr r3, [r7, #4] + 8002558: 2b00 cmp r3, #0 + 800255a: d101 bne.n 8002560 { return HAL_ERROR; - 80024f0: 2301 movs r3, #1 - 80024f2: e11a b.n 800272a + 800255c: 2301 movs r3, #1 + 800255e: e11a b.n 8002796 /* To correctly read data from FLASH memory, the number of wait states (LATENCY) must be correctly programmed according to the frequency of the CPU clock (HCLK) and the supply voltage of the device. */ /* Increasing the number of wait states because of higher CPU frequency */ if(FLatency > __HAL_FLASH_GET_LATENCY()) - 80024f4: 4b8f ldr r3, [pc, #572] @ (8002734 ) - 80024f6: 681b ldr r3, [r3, #0] - 80024f8: f003 0301 and.w r3, r3, #1 - 80024fc: 683a ldr r2, [r7, #0] - 80024fe: 429a cmp r2, r3 - 8002500: d919 bls.n 8002536 + 8002560: 4b8f ldr r3, [pc, #572] @ (80027a0 ) + 8002562: 681b ldr r3, [r3, #0] + 8002564: f003 0301 and.w r3, r3, #1 + 8002568: 683a ldr r2, [r7, #0] + 800256a: 429a cmp r2, r3 + 800256c: d919 bls.n 80025a2 { /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ __HAL_FLASH_SET_LATENCY(FLatency); - 8002502: 683b ldr r3, [r7, #0] - 8002504: 2b01 cmp r3, #1 - 8002506: d105 bne.n 8002514 - 8002508: 4b8a ldr r3, [pc, #552] @ (8002734 ) - 800250a: 681b ldr r3, [r3, #0] - 800250c: 4a89 ldr r2, [pc, #548] @ (8002734 ) - 800250e: f043 0304 orr.w r3, r3, #4 - 8002512: 6013 str r3, [r2, #0] - 8002514: 4b87 ldr r3, [pc, #540] @ (8002734 ) - 8002516: 681b ldr r3, [r3, #0] - 8002518: f023 0201 bic.w r2, r3, #1 - 800251c: 4985 ldr r1, [pc, #532] @ (8002734 ) - 800251e: 683b ldr r3, [r7, #0] - 8002520: 4313 orrs r3, r2 - 8002522: 600b str r3, [r1, #0] + 800256e: 683b ldr r3, [r7, #0] + 8002570: 2b01 cmp r3, #1 + 8002572: d105 bne.n 8002580 + 8002574: 4b8a ldr r3, [pc, #552] @ (80027a0 ) + 8002576: 681b ldr r3, [r3, #0] + 8002578: 4a89 ldr r2, [pc, #548] @ (80027a0 ) + 800257a: f043 0304 orr.w r3, r3, #4 + 800257e: 6013 str r3, [r2, #0] + 8002580: 4b87 ldr r3, [pc, #540] @ (80027a0 ) + 8002582: 681b ldr r3, [r3, #0] + 8002584: f023 0201 bic.w r2, r3, #1 + 8002588: 4985 ldr r1, [pc, #532] @ (80027a0 ) + 800258a: 683b ldr r3, [r7, #0] + 800258c: 4313 orrs r3, r2 + 800258e: 600b str r3, [r1, #0] /* Check that the new number of wait states is taken into account to access the Flash memory by reading the FLASH_ACR register */ if(__HAL_FLASH_GET_LATENCY() != FLatency) - 8002524: 4b83 ldr r3, [pc, #524] @ (8002734 ) - 8002526: 681b ldr r3, [r3, #0] - 8002528: f003 0301 and.w r3, r3, #1 - 800252c: 683a ldr r2, [r7, #0] - 800252e: 429a cmp r2, r3 - 8002530: d001 beq.n 8002536 + 8002590: 4b83 ldr r3, [pc, #524] @ (80027a0 ) + 8002592: 681b ldr r3, [r3, #0] + 8002594: f003 0301 and.w r3, r3, #1 + 8002598: 683a ldr r2, [r7, #0] + 800259a: 429a cmp r2, r3 + 800259c: d001 beq.n 80025a2 { return HAL_ERROR; - 8002532: 2301 movs r3, #1 - 8002534: e0f9 b.n 800272a + 800259e: 2301 movs r3, #1 + 80025a0: e0f9 b.n 8002796 } } /*-------------------------- HCLK Configuration --------------------------*/ if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) - 8002536: 687b ldr r3, [r7, #4] - 8002538: 681b ldr r3, [r3, #0] - 800253a: f003 0302 and.w r3, r3, #2 - 800253e: 2b00 cmp r3, #0 - 8002540: d008 beq.n 8002554 + 80025a2: 687b ldr r3, [r7, #4] + 80025a4: 681b ldr r3, [r3, #0] + 80025a6: f003 0302 and.w r3, r3, #2 + 80025aa: 2b00 cmp r3, #0 + 80025ac: d008 beq.n 80025c0 { assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); - 8002542: 4b7d ldr r3, [pc, #500] @ (8002738 ) - 8002544: 689b ldr r3, [r3, #8] - 8002546: f023 02f0 bic.w r2, r3, #240 @ 0xf0 - 800254a: 687b ldr r3, [r7, #4] - 800254c: 689b ldr r3, [r3, #8] - 800254e: 497a ldr r1, [pc, #488] @ (8002738 ) - 8002550: 4313 orrs r3, r2 - 8002552: 608b str r3, [r1, #8] + 80025ae: 4b7d ldr r3, [pc, #500] @ (80027a4 ) + 80025b0: 689b ldr r3, [r3, #8] + 80025b2: f023 02f0 bic.w r2, r3, #240 @ 0xf0 + 80025b6: 687b ldr r3, [r7, #4] + 80025b8: 689b ldr r3, [r3, #8] + 80025ba: 497a ldr r1, [pc, #488] @ (80027a4 ) + 80025bc: 4313 orrs r3, r2 + 80025be: 608b str r3, [r1, #8] } /*------------------------- SYSCLK Configuration ---------------------------*/ if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) - 8002554: 687b ldr r3, [r7, #4] - 8002556: 681b ldr r3, [r3, #0] - 8002558: f003 0301 and.w r3, r3, #1 - 800255c: 2b00 cmp r3, #0 - 800255e: f000 808e beq.w 800267e + 80025c0: 687b ldr r3, [r7, #4] + 80025c2: 681b ldr r3, [r3, #0] + 80025c4: f003 0301 and.w r3, r3, #1 + 80025c8: 2b00 cmp r3, #0 + 80025ca: f000 808e beq.w 80026ea { assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); /* HSE is selected as System Clock Source */ if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) - 8002562: 687b ldr r3, [r7, #4] - 8002564: 685b ldr r3, [r3, #4] - 8002566: 2b02 cmp r3, #2 - 8002568: d107 bne.n 800257a + 80025ce: 687b ldr r3, [r7, #4] + 80025d0: 685b ldr r3, [r3, #4] + 80025d2: 2b02 cmp r3, #2 + 80025d4: d107 bne.n 80025e6 { /* Check the HSE ready flag */ if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == 0U) - 800256a: 4b73 ldr r3, [pc, #460] @ (8002738 ) - 800256c: 681b ldr r3, [r3, #0] - 800256e: f403 3300 and.w r3, r3, #131072 @ 0x20000 - 8002572: 2b00 cmp r3, #0 - 8002574: d121 bne.n 80025ba + 80025d6: 4b73 ldr r3, [pc, #460] @ (80027a4 ) + 80025d8: 681b ldr r3, [r3, #0] + 80025da: f403 3300 and.w r3, r3, #131072 @ 0x20000 + 80025de: 2b00 cmp r3, #0 + 80025e0: d121 bne.n 8002626 { return HAL_ERROR; - 8002576: 2301 movs r3, #1 - 8002578: e0d7 b.n 800272a + 80025e2: 2301 movs r3, #1 + 80025e4: e0d7 b.n 8002796 } } /* PLL is selected as System Clock Source */ else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) - 800257a: 687b ldr r3, [r7, #4] - 800257c: 685b ldr r3, [r3, #4] - 800257e: 2b03 cmp r3, #3 - 8002580: d107 bne.n 8002592 + 80025e6: 687b ldr r3, [r7, #4] + 80025e8: 685b ldr r3, [r3, #4] + 80025ea: 2b03 cmp r3, #3 + 80025ec: d107 bne.n 80025fe { /* Check the PLL ready flag */ if(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == 0U) - 8002582: 4b6d ldr r3, [pc, #436] @ (8002738 ) - 8002584: 681b ldr r3, [r3, #0] - 8002586: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 - 800258a: 2b00 cmp r3, #0 - 800258c: d115 bne.n 80025ba + 80025ee: 4b6d ldr r3, [pc, #436] @ (80027a4 ) + 80025f0: 681b ldr r3, [r3, #0] + 80025f2: f003 7300 and.w r3, r3, #33554432 @ 0x2000000 + 80025f6: 2b00 cmp r3, #0 + 80025f8: d115 bne.n 8002626 { return HAL_ERROR; - 800258e: 2301 movs r3, #1 - 8002590: e0cb b.n 800272a + 80025fa: 2301 movs r3, #1 + 80025fc: e0cb b.n 8002796 } } /* HSI is selected as System Clock Source */ else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSI) - 8002592: 687b ldr r3, [r7, #4] - 8002594: 685b ldr r3, [r3, #4] - 8002596: 2b01 cmp r3, #1 - 8002598: d107 bne.n 80025aa + 80025fe: 687b ldr r3, [r7, #4] + 8002600: 685b ldr r3, [r3, #4] + 8002602: 2b01 cmp r3, #1 + 8002604: d107 bne.n 8002616 { /* Check the HSI ready flag */ if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == 0U) - 800259a: 4b67 ldr r3, [pc, #412] @ (8002738 ) - 800259c: 681b ldr r3, [r3, #0] - 800259e: f003 0302 and.w r3, r3, #2 - 80025a2: 2b00 cmp r3, #0 - 80025a4: d109 bne.n 80025ba + 8002606: 4b67 ldr r3, [pc, #412] @ (80027a4 ) + 8002608: 681b ldr r3, [r3, #0] + 800260a: f003 0302 and.w r3, r3, #2 + 800260e: 2b00 cmp r3, #0 + 8002610: d109 bne.n 8002626 { return HAL_ERROR; - 80025a6: 2301 movs r3, #1 - 80025a8: e0bf b.n 800272a + 8002612: 2301 movs r3, #1 + 8002614: e0bf b.n 8002796 } /* MSI is selected as System Clock Source */ else { /* Check the MSI ready flag */ if(__HAL_RCC_GET_FLAG(RCC_FLAG_MSIRDY) == 0U) - 80025aa: 4b63 ldr r3, [pc, #396] @ (8002738 ) - 80025ac: 681b ldr r3, [r3, #0] - 80025ae: f403 7300 and.w r3, r3, #512 @ 0x200 - 80025b2: 2b00 cmp r3, #0 - 80025b4: d101 bne.n 80025ba + 8002616: 4b63 ldr r3, [pc, #396] @ (80027a4 ) + 8002618: 681b ldr r3, [r3, #0] + 800261a: f403 7300 and.w r3, r3, #512 @ 0x200 + 800261e: 2b00 cmp r3, #0 + 8002620: d101 bne.n 8002626 { return HAL_ERROR; - 80025b6: 2301 movs r3, #1 - 80025b8: e0b7 b.n 800272a + 8002622: 2301 movs r3, #1 + 8002624: e0b7 b.n 8002796 } } __HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource); - 80025ba: 4b5f ldr r3, [pc, #380] @ (8002738 ) - 80025bc: 689b ldr r3, [r3, #8] - 80025be: f023 0203 bic.w r2, r3, #3 - 80025c2: 687b ldr r3, [r7, #4] - 80025c4: 685b ldr r3, [r3, #4] - 80025c6: 495c ldr r1, [pc, #368] @ (8002738 ) - 80025c8: 4313 orrs r3, r2 - 80025ca: 608b str r3, [r1, #8] + 8002626: 4b5f ldr r3, [pc, #380] @ (80027a4 ) + 8002628: 689b ldr r3, [r3, #8] + 800262a: f023 0203 bic.w r2, r3, #3 + 800262e: 687b ldr r3, [r7, #4] + 8002630: 685b ldr r3, [r3, #4] + 8002632: 495c ldr r1, [pc, #368] @ (80027a4 ) + 8002634: 4313 orrs r3, r2 + 8002636: 608b str r3, [r1, #8] /* Get Start Tick */ tickstart = HAL_GetTick(); - 80025cc: f7fe f9a6 bl 800091c - 80025d0: 60f8 str r0, [r7, #12] + 8002638: f7fe f9a6 bl 8000988 + 800263c: 60f8 str r0, [r7, #12] if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) - 80025d2: 687b ldr r3, [r7, #4] - 80025d4: 685b ldr r3, [r3, #4] - 80025d6: 2b02 cmp r3, #2 - 80025d8: d112 bne.n 8002600 + 800263e: 687b ldr r3, [r7, #4] + 8002640: 685b ldr r3, [r3, #4] + 8002642: 2b02 cmp r3, #2 + 8002644: d112 bne.n 800266c { while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_HSE) - 80025da: e00a b.n 80025f2 + 8002646: e00a b.n 800265e { if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE) - 80025dc: f7fe f99e bl 800091c - 80025e0: 4602 mov r2, r0 - 80025e2: 68fb ldr r3, [r7, #12] - 80025e4: 1ad3 subs r3, r2, r3 - 80025e6: f241 3288 movw r2, #5000 @ 0x1388 - 80025ea: 4293 cmp r3, r2 - 80025ec: d901 bls.n 80025f2 + 8002648: f7fe f99e bl 8000988 + 800264c: 4602 mov r2, r0 + 800264e: 68fb ldr r3, [r7, #12] + 8002650: 1ad3 subs r3, r2, r3 + 8002652: f241 3288 movw r2, #5000 @ 0x1388 + 8002656: 4293 cmp r3, r2 + 8002658: d901 bls.n 800265e { return HAL_TIMEOUT; - 80025ee: 2303 movs r3, #3 - 80025f0: e09b b.n 800272a + 800265a: 2303 movs r3, #3 + 800265c: e09b b.n 8002796 while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_HSE) - 80025f2: 4b51 ldr r3, [pc, #324] @ (8002738 ) - 80025f4: 689b ldr r3, [r3, #8] - 80025f6: f003 030c and.w r3, r3, #12 - 80025fa: 2b08 cmp r3, #8 - 80025fc: d1ee bne.n 80025dc - 80025fe: e03e b.n 800267e + 800265e: 4b51 ldr r3, [pc, #324] @ (80027a4 ) + 8002660: 689b ldr r3, [r3, #8] + 8002662: f003 030c and.w r3, r3, #12 + 8002666: 2b08 cmp r3, #8 + 8002668: d1ee bne.n 8002648 + 800266a: e03e b.n 80026ea } } } else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) - 8002600: 687b ldr r3, [r7, #4] - 8002602: 685b ldr r3, [r3, #4] - 8002604: 2b03 cmp r3, #3 - 8002606: d112 bne.n 800262e + 800266c: 687b ldr r3, [r7, #4] + 800266e: 685b ldr r3, [r3, #4] + 8002670: 2b03 cmp r3, #3 + 8002672: d112 bne.n 800269a { while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK) - 8002608: e00a b.n 8002620 + 8002674: e00a b.n 800268c { if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE) - 800260a: f7fe f987 bl 800091c - 800260e: 4602 mov r2, r0 - 8002610: 68fb ldr r3, [r7, #12] - 8002612: 1ad3 subs r3, r2, r3 - 8002614: f241 3288 movw r2, #5000 @ 0x1388 - 8002618: 4293 cmp r3, r2 - 800261a: d901 bls.n 8002620 + 8002676: f7fe f987 bl 8000988 + 800267a: 4602 mov r2, r0 + 800267c: 68fb ldr r3, [r7, #12] + 800267e: 1ad3 subs r3, r2, r3 + 8002680: f241 3288 movw r2, #5000 @ 0x1388 + 8002684: 4293 cmp r3, r2 + 8002686: d901 bls.n 800268c { return HAL_TIMEOUT; - 800261c: 2303 movs r3, #3 - 800261e: e084 b.n 800272a + 8002688: 2303 movs r3, #3 + 800268a: e084 b.n 8002796 while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK) - 8002620: 4b45 ldr r3, [pc, #276] @ (8002738 ) - 8002622: 689b ldr r3, [r3, #8] - 8002624: f003 030c and.w r3, r3, #12 - 8002628: 2b0c cmp r3, #12 - 800262a: d1ee bne.n 800260a - 800262c: e027 b.n 800267e + 800268c: 4b45 ldr r3, [pc, #276] @ (80027a4 ) + 800268e: 689b ldr r3, [r3, #8] + 8002690: f003 030c and.w r3, r3, #12 + 8002694: 2b0c cmp r3, #12 + 8002696: d1ee bne.n 8002676 + 8002698: e027 b.n 80026ea } } } else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSI) - 800262e: 687b ldr r3, [r7, #4] - 8002630: 685b ldr r3, [r3, #4] - 8002632: 2b01 cmp r3, #1 - 8002634: d11d bne.n 8002672 + 800269a: 687b ldr r3, [r7, #4] + 800269c: 685b ldr r3, [r3, #4] + 800269e: 2b01 cmp r3, #1 + 80026a0: d11d bne.n 80026de { while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_HSI) - 8002636: e00a b.n 800264e + 80026a2: e00a b.n 80026ba { if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE) - 8002638: f7fe f970 bl 800091c - 800263c: 4602 mov r2, r0 - 800263e: 68fb ldr r3, [r7, #12] - 8002640: 1ad3 subs r3, r2, r3 - 8002642: f241 3288 movw r2, #5000 @ 0x1388 - 8002646: 4293 cmp r3, r2 - 8002648: d901 bls.n 800264e + 80026a4: f7fe f970 bl 8000988 + 80026a8: 4602 mov r2, r0 + 80026aa: 68fb ldr r3, [r7, #12] + 80026ac: 1ad3 subs r3, r2, r3 + 80026ae: f241 3288 movw r2, #5000 @ 0x1388 + 80026b2: 4293 cmp r3, r2 + 80026b4: d901 bls.n 80026ba { return HAL_TIMEOUT; - 800264a: 2303 movs r3, #3 - 800264c: e06d b.n 800272a + 80026b6: 2303 movs r3, #3 + 80026b8: e06d b.n 8002796 while (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_HSI) - 800264e: 4b3a ldr r3, [pc, #232] @ (8002738 ) - 8002650: 689b ldr r3, [r3, #8] - 8002652: f003 030c and.w r3, r3, #12 - 8002656: 2b04 cmp r3, #4 - 8002658: d1ee bne.n 8002638 - 800265a: e010 b.n 800267e + 80026ba: 4b3a ldr r3, [pc, #232] @ (80027a4 ) + 80026bc: 689b ldr r3, [r3, #8] + 80026be: f003 030c and.w r3, r3, #12 + 80026c2: 2b04 cmp r3, #4 + 80026c4: d1ee bne.n 80026a4 + 80026c6: e010 b.n 80026ea } else { while(__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_MSI) { if((HAL_GetTick() - tickstart ) > CLOCKSWITCH_TIMEOUT_VALUE) - 800265c: f7fe f95e bl 800091c - 8002660: 4602 mov r2, r0 - 8002662: 68fb ldr r3, [r7, #12] - 8002664: 1ad3 subs r3, r2, r3 - 8002666: f241 3288 movw r2, #5000 @ 0x1388 - 800266a: 4293 cmp r3, r2 - 800266c: d901 bls.n 8002672 + 80026c8: f7fe f95e bl 8000988 + 80026cc: 4602 mov r2, r0 + 80026ce: 68fb ldr r3, [r7, #12] + 80026d0: 1ad3 subs r3, r2, r3 + 80026d2: f241 3288 movw r2, #5000 @ 0x1388 + 80026d6: 4293 cmp r3, r2 + 80026d8: d901 bls.n 80026de { return HAL_TIMEOUT; - 800266e: 2303 movs r3, #3 - 8002670: e05b b.n 800272a + 80026da: 2303 movs r3, #3 + 80026dc: e05b b.n 8002796 while(__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_MSI) - 8002672: 4b31 ldr r3, [pc, #196] @ (8002738 ) - 8002674: 689b ldr r3, [r3, #8] - 8002676: f003 030c and.w r3, r3, #12 - 800267a: 2b00 cmp r3, #0 - 800267c: d1ee bne.n 800265c + 80026de: 4b31 ldr r3, [pc, #196] @ (80027a4 ) + 80026e0: 689b ldr r3, [r3, #8] + 80026e2: f003 030c and.w r3, r3, #12 + 80026e6: 2b00 cmp r3, #0 + 80026e8: d1ee bne.n 80026c8 } } } } /* Decreasing the number of wait states because of lower CPU frequency */ if(FLatency < __HAL_FLASH_GET_LATENCY()) - 800267e: 4b2d ldr r3, [pc, #180] @ (8002734 ) - 8002680: 681b ldr r3, [r3, #0] - 8002682: f003 0301 and.w r3, r3, #1 - 8002686: 683a ldr r2, [r7, #0] - 8002688: 429a cmp r2, r3 - 800268a: d219 bcs.n 80026c0 + 80026ea: 4b2d ldr r3, [pc, #180] @ (80027a0 ) + 80026ec: 681b ldr r3, [r3, #0] + 80026ee: f003 0301 and.w r3, r3, #1 + 80026f2: 683a ldr r2, [r7, #0] + 80026f4: 429a cmp r2, r3 + 80026f6: d219 bcs.n 800272c { /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ __HAL_FLASH_SET_LATENCY(FLatency); - 800268c: 683b ldr r3, [r7, #0] - 800268e: 2b01 cmp r3, #1 - 8002690: d105 bne.n 800269e - 8002692: 4b28 ldr r3, [pc, #160] @ (8002734 ) - 8002694: 681b ldr r3, [r3, #0] - 8002696: 4a27 ldr r2, [pc, #156] @ (8002734 ) - 8002698: f043 0304 orr.w r3, r3, #4 - 800269c: 6013 str r3, [r2, #0] - 800269e: 4b25 ldr r3, [pc, #148] @ (8002734 ) - 80026a0: 681b ldr r3, [r3, #0] - 80026a2: f023 0201 bic.w r2, r3, #1 - 80026a6: 4923 ldr r1, [pc, #140] @ (8002734 ) - 80026a8: 683b ldr r3, [r7, #0] - 80026aa: 4313 orrs r3, r2 - 80026ac: 600b str r3, [r1, #0] + 80026f8: 683b ldr r3, [r7, #0] + 80026fa: 2b01 cmp r3, #1 + 80026fc: d105 bne.n 800270a + 80026fe: 4b28 ldr r3, [pc, #160] @ (80027a0 ) + 8002700: 681b ldr r3, [r3, #0] + 8002702: 4a27 ldr r2, [pc, #156] @ (80027a0 ) + 8002704: f043 0304 orr.w r3, r3, #4 + 8002708: 6013 str r3, [r2, #0] + 800270a: 4b25 ldr r3, [pc, #148] @ (80027a0 ) + 800270c: 681b ldr r3, [r3, #0] + 800270e: f023 0201 bic.w r2, r3, #1 + 8002712: 4923 ldr r1, [pc, #140] @ (80027a0 ) + 8002714: 683b ldr r3, [r7, #0] + 8002716: 4313 orrs r3, r2 + 8002718: 600b str r3, [r1, #0] /* Check that the new number of wait states is taken into account to access the Flash memory by reading the FLASH_ACR register */ if(__HAL_FLASH_GET_LATENCY() != FLatency) - 80026ae: 4b21 ldr r3, [pc, #132] @ (8002734 ) - 80026b0: 681b ldr r3, [r3, #0] - 80026b2: f003 0301 and.w r3, r3, #1 - 80026b6: 683a ldr r2, [r7, #0] - 80026b8: 429a cmp r2, r3 - 80026ba: d001 beq.n 80026c0 + 800271a: 4b21 ldr r3, [pc, #132] @ (80027a0 ) + 800271c: 681b ldr r3, [r3, #0] + 800271e: f003 0301 and.w r3, r3, #1 + 8002722: 683a ldr r2, [r7, #0] + 8002724: 429a cmp r2, r3 + 8002726: d001 beq.n 800272c { return HAL_ERROR; - 80026bc: 2301 movs r3, #1 - 80026be: e034 b.n 800272a + 8002728: 2301 movs r3, #1 + 800272a: e034 b.n 8002796 } } /*-------------------------- PCLK1 Configuration ---------------------------*/ if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) - 80026c0: 687b ldr r3, [r7, #4] - 80026c2: 681b ldr r3, [r3, #0] - 80026c4: f003 0304 and.w r3, r3, #4 - 80026c8: 2b00 cmp r3, #0 - 80026ca: d008 beq.n 80026de + 800272c: 687b ldr r3, [r7, #4] + 800272e: 681b ldr r3, [r3, #0] + 8002730: f003 0304 and.w r3, r3, #4 + 8002734: 2b00 cmp r3, #0 + 8002736: d008 beq.n 800274a { assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); - 80026cc: 4b1a ldr r3, [pc, #104] @ (8002738 ) - 80026ce: 689b ldr r3, [r3, #8] - 80026d0: f423 62e0 bic.w r2, r3, #1792 @ 0x700 - 80026d4: 687b ldr r3, [r7, #4] - 80026d6: 68db ldr r3, [r3, #12] - 80026d8: 4917 ldr r1, [pc, #92] @ (8002738 ) - 80026da: 4313 orrs r3, r2 - 80026dc: 608b str r3, [r1, #8] + 8002738: 4b1a ldr r3, [pc, #104] @ (80027a4 ) + 800273a: 689b ldr r3, [r3, #8] + 800273c: f423 62e0 bic.w r2, r3, #1792 @ 0x700 + 8002740: 687b ldr r3, [r7, #4] + 8002742: 68db ldr r3, [r3, #12] + 8002744: 4917 ldr r1, [pc, #92] @ (80027a4 ) + 8002746: 4313 orrs r3, r2 + 8002748: 608b str r3, [r1, #8] } /*-------------------------- PCLK2 Configuration ---------------------------*/ if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) - 80026de: 687b ldr r3, [r7, #4] - 80026e0: 681b ldr r3, [r3, #0] - 80026e2: f003 0308 and.w r3, r3, #8 - 80026e6: 2b00 cmp r3, #0 - 80026e8: d009 beq.n 80026fe + 800274a: 687b ldr r3, [r7, #4] + 800274c: 681b ldr r3, [r3, #0] + 800274e: f003 0308 and.w r3, r3, #8 + 8002752: 2b00 cmp r3, #0 + 8002754: d009 beq.n 800276a { assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3U)); - 80026ea: 4b13 ldr r3, [pc, #76] @ (8002738 ) - 80026ec: 689b ldr r3, [r3, #8] - 80026ee: f423 5260 bic.w r2, r3, #14336 @ 0x3800 - 80026f2: 687b ldr r3, [r7, #4] - 80026f4: 691b ldr r3, [r3, #16] - 80026f6: 00db lsls r3, r3, #3 - 80026f8: 490f ldr r1, [pc, #60] @ (8002738 ) - 80026fa: 4313 orrs r3, r2 - 80026fc: 608b str r3, [r1, #8] + 8002756: 4b13 ldr r3, [pc, #76] @ (80027a4 ) + 8002758: 689b ldr r3, [r3, #8] + 800275a: f423 5260 bic.w r2, r3, #14336 @ 0x3800 + 800275e: 687b ldr r3, [r7, #4] + 8002760: 691b ldr r3, [r3, #16] + 8002762: 00db lsls r3, r3, #3 + 8002764: 490f ldr r1, [pc, #60] @ (80027a4 ) + 8002766: 4313 orrs r3, r2 + 8002768: 608b str r3, [r1, #8] } /* Update the SystemCoreClock global variable */ SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE)>> RCC_CFGR_HPRE_Pos]; - 80026fe: f000 f823 bl 8002748 - 8002702: 4602 mov r2, r0 - 8002704: 4b0c ldr r3, [pc, #48] @ (8002738 ) - 8002706: 689b ldr r3, [r3, #8] - 8002708: 091b lsrs r3, r3, #4 - 800270a: f003 030f and.w r3, r3, #15 - 800270e: 490b ldr r1, [pc, #44] @ (800273c ) - 8002710: 5ccb ldrb r3, [r1, r3] - 8002712: fa22 f303 lsr.w r3, r2, r3 - 8002716: 4a0a ldr r2, [pc, #40] @ (8002740 ) - 8002718: 6013 str r3, [r2, #0] + 800276a: f000 f823 bl 80027b4 + 800276e: 4602 mov r2, r0 + 8002770: 4b0c ldr r3, [pc, #48] @ (80027a4 ) + 8002772: 689b ldr r3, [r3, #8] + 8002774: 091b lsrs r3, r3, #4 + 8002776: f003 030f and.w r3, r3, #15 + 800277a: 490b ldr r1, [pc, #44] @ (80027a8 ) + 800277c: 5ccb ldrb r3, [r1, r3] + 800277e: fa22 f303 lsr.w r3, r2, r3 + 8002782: 4a0a ldr r2, [pc, #40] @ (80027ac ) + 8002784: 6013 str r3, [r2, #0] /* Configure the source of time base considering new system clocks settings*/ status = HAL_InitTick(uwTickPrio); - 800271a: 4b0a ldr r3, [pc, #40] @ (8002744 ) - 800271c: 681b ldr r3, [r3, #0] - 800271e: 4618 mov r0, r3 - 8002720: f7fe f8b0 bl 8000884 - 8002724: 4603 mov r3, r0 - 8002726: 72fb strb r3, [r7, #11] + 8002786: 4b0a ldr r3, [pc, #40] @ (80027b0 ) + 8002788: 681b ldr r3, [r3, #0] + 800278a: 4618 mov r0, r3 + 800278c: f7fe f8b0 bl 80008f0 + 8002790: 4603 mov r3, r0 + 8002792: 72fb strb r3, [r7, #11] return status; - 8002728: 7afb ldrb r3, [r7, #11] + 8002794: 7afb ldrb r3, [r7, #11] } - 800272a: 4618 mov r0, r3 - 800272c: 3710 adds r7, #16 - 800272e: 46bd mov sp, r7 - 8002730: bd80 pop {r7, pc} - 8002732: bf00 nop - 8002734: 40023c00 .word 0x40023c00 - 8002738: 40023800 .word 0x40023800 - 800273c: 08002a3c .word 0x08002a3c - 8002740: 20000000 .word 0x20000000 - 8002744: 20000004 .word 0x20000004 + 8002796: 4618 mov r0, r3 + 8002798: 3710 adds r7, #16 + 800279a: 46bd mov sp, r7 + 800279c: bd80 pop {r7, pc} + 800279e: bf00 nop + 80027a0: 40023c00 .word 0x40023c00 + 80027a4: 40023800 .word 0x40023800 + 80027a8: 08002aa8 .word 0x08002aa8 + 80027ac: 20000000 .word 0x20000000 + 80027b0: 20000004 .word 0x20000004 -08002748 : +080027b4 : * right SYSCLK value. Otherwise, any configuration based on this function will be incorrect. * * @retval SYSCLK frequency */ uint32_t HAL_RCC_GetSysClockFreq(void) { - 8002748: e92d 4fb0 stmdb sp!, {r4, r5, r7, r8, r9, sl, fp, lr} - 800274c: b08e sub sp, #56 @ 0x38 - 800274e: af00 add r7, sp, #0 + 80027b4: e92d 4fb0 stmdb sp!, {r4, r5, r7, r8, r9, sl, fp, lr} + 80027b8: b08e sub sp, #56 @ 0x38 + 80027ba: af00 add r7, sp, #0 uint32_t tmpreg, pllm, plld, pllvco, msiclkrange, sysclockfreq; tmpreg = RCC->CFGR; - 8002750: 4b58 ldr r3, [pc, #352] @ (80028b4 ) - 8002752: 689b ldr r3, [r3, #8] - 8002754: 62fb str r3, [r7, #44] @ 0x2c + 80027bc: 4b58 ldr r3, [pc, #352] @ (8002920 ) + 80027be: 689b ldr r3, [r3, #8] + 80027c0: 62fb str r3, [r7, #44] @ 0x2c /* Get SYSCLK source -------------------------------------------------------*/ switch (tmpreg & RCC_CFGR_SWS) - 8002756: 6afb ldr r3, [r7, #44] @ 0x2c - 8002758: f003 030c and.w r3, r3, #12 - 800275c: 2b0c cmp r3, #12 - 800275e: d00d beq.n 800277c - 8002760: 2b0c cmp r3, #12 - 8002762: f200 8092 bhi.w 800288a - 8002766: 2b04 cmp r3, #4 - 8002768: d002 beq.n 8002770 - 800276a: 2b08 cmp r3, #8 - 800276c: d003 beq.n 8002776 - 800276e: e08c b.n 800288a + 80027c2: 6afb ldr r3, [r7, #44] @ 0x2c + 80027c4: f003 030c and.w r3, r3, #12 + 80027c8: 2b0c cmp r3, #12 + 80027ca: d00d beq.n 80027e8 + 80027cc: 2b0c cmp r3, #12 + 80027ce: f200 8092 bhi.w 80028f6 + 80027d2: 2b04 cmp r3, #4 + 80027d4: d002 beq.n 80027dc + 80027d6: 2b08 cmp r3, #8 + 80027d8: d003 beq.n 80027e2 + 80027da: e08c b.n 80028f6 { case RCC_SYSCLKSOURCE_STATUS_HSI: /* HSI used as system clock source */ { sysclockfreq = HSI_VALUE; - 8002770: 4b51 ldr r3, [pc, #324] @ (80028b8 ) - 8002772: 633b str r3, [r7, #48] @ 0x30 + 80027dc: 4b51 ldr r3, [pc, #324] @ (8002924 ) + 80027de: 633b str r3, [r7, #48] @ 0x30 break; - 8002774: e097 b.n 80028a6 + 80027e0: e097 b.n 8002912 } case RCC_SYSCLKSOURCE_STATUS_HSE: /* HSE used as system clock */ { sysclockfreq = HSE_VALUE; - 8002776: 4b51 ldr r3, [pc, #324] @ (80028bc ) - 8002778: 633b str r3, [r7, #48] @ 0x30 + 80027e2: 4b51 ldr r3, [pc, #324] @ (8002928 ) + 80027e4: 633b str r3, [r7, #48] @ 0x30 break; - 800277a: e094 b.n 80028a6 + 80027e6: e094 b.n 8002912 } case RCC_SYSCLKSOURCE_STATUS_PLLCLK: /* PLL used as system clock */ { pllm = PLLMulTable[(uint32_t)(tmpreg & RCC_CFGR_PLLMUL) >> RCC_CFGR_PLLMUL_Pos]; - 800277c: 6afb ldr r3, [r7, #44] @ 0x2c - 800277e: 0c9b lsrs r3, r3, #18 - 8002780: f003 020f and.w r2, r3, #15 - 8002784: 4b4e ldr r3, [pc, #312] @ (80028c0 ) - 8002786: 5c9b ldrb r3, [r3, r2] - 8002788: 62bb str r3, [r7, #40] @ 0x28 + 80027e8: 6afb ldr r3, [r7, #44] @ 0x2c + 80027ea: 0c9b lsrs r3, r3, #18 + 80027ec: f003 020f and.w r2, r3, #15 + 80027f0: 4b4e ldr r3, [pc, #312] @ (800292c ) + 80027f2: 5c9b ldrb r3, [r3, r2] + 80027f4: 62bb str r3, [r7, #40] @ 0x28 plld = ((uint32_t)(tmpreg & RCC_CFGR_PLLDIV) >> RCC_CFGR_PLLDIV_Pos) + 1U; - 800278a: 6afb ldr r3, [r7, #44] @ 0x2c - 800278c: 0d9b lsrs r3, r3, #22 - 800278e: f003 0303 and.w r3, r3, #3 - 8002792: 3301 adds r3, #1 - 8002794: 627b str r3, [r7, #36] @ 0x24 + 80027f6: 6afb ldr r3, [r7, #44] @ 0x2c + 80027f8: 0d9b lsrs r3, r3, #22 + 80027fa: f003 0303 and.w r3, r3, #3 + 80027fe: 3301 adds r3, #1 + 8002800: 627b str r3, [r7, #36] @ 0x24 if (__HAL_RCC_GET_PLL_OSCSOURCE() != RCC_PLLSOURCE_HSI) - 8002796: 4b47 ldr r3, [pc, #284] @ (80028b4 ) - 8002798: 689b ldr r3, [r3, #8] - 800279a: f403 3380 and.w r3, r3, #65536 @ 0x10000 - 800279e: 2b00 cmp r3, #0 - 80027a0: d021 beq.n 80027e6 + 8002802: 4b47 ldr r3, [pc, #284] @ (8002920 ) + 8002804: 689b ldr r3, [r3, #8] + 8002806: f403 3380 and.w r3, r3, #65536 @ 0x10000 + 800280a: 2b00 cmp r3, #0 + 800280c: d021 beq.n 8002852 { /* HSE used as PLL clock source */ pllvco = (uint32_t)(((uint64_t)HSE_VALUE * (uint64_t)pllm) / (uint64_t)plld); - 80027a2: 6abb ldr r3, [r7, #40] @ 0x28 - 80027a4: 2200 movs r2, #0 - 80027a6: 61bb str r3, [r7, #24] - 80027a8: 61fa str r2, [r7, #28] - 80027aa: 4b44 ldr r3, [pc, #272] @ (80028bc ) - 80027ac: e9d7 8906 ldrd r8, r9, [r7, #24] - 80027b0: 464a mov r2, r9 - 80027b2: fb03 f202 mul.w r2, r3, r2 - 80027b6: 2300 movs r3, #0 - 80027b8: 4644 mov r4, r8 - 80027ba: fb04 f303 mul.w r3, r4, r3 - 80027be: 4413 add r3, r2 - 80027c0: 4a3e ldr r2, [pc, #248] @ (80028bc ) - 80027c2: 4644 mov r4, r8 - 80027c4: fba4 0102 umull r0, r1, r4, r2 - 80027c8: 440b add r3, r1 - 80027ca: 4619 mov r1, r3 - 80027cc: 6a7b ldr r3, [r7, #36] @ 0x24 - 80027ce: 2200 movs r2, #0 - 80027d0: 613b str r3, [r7, #16] - 80027d2: 617a str r2, [r7, #20] - 80027d4: e9d7 2304 ldrd r2, r3, [r7, #16] - 80027d8: f7fd fcd0 bl 800017c <__aeabi_uldivmod> - 80027dc: 4602 mov r2, r0 - 80027de: 460b mov r3, r1 - 80027e0: 4613 mov r3, r2 - 80027e2: 637b str r3, [r7, #52] @ 0x34 - 80027e4: e04e b.n 8002884 + 800280e: 6abb ldr r3, [r7, #40] @ 0x28 + 8002810: 2200 movs r2, #0 + 8002812: 61bb str r3, [r7, #24] + 8002814: 61fa str r2, [r7, #28] + 8002816: 4b44 ldr r3, [pc, #272] @ (8002928 ) + 8002818: e9d7 8906 ldrd r8, r9, [r7, #24] + 800281c: 464a mov r2, r9 + 800281e: fb03 f202 mul.w r2, r3, r2 + 8002822: 2300 movs r3, #0 + 8002824: 4644 mov r4, r8 + 8002826: fb04 f303 mul.w r3, r4, r3 + 800282a: 4413 add r3, r2 + 800282c: 4a3e ldr r2, [pc, #248] @ (8002928 ) + 800282e: 4644 mov r4, r8 + 8002830: fba4 0102 umull r0, r1, r4, r2 + 8002834: 440b add r3, r1 + 8002836: 4619 mov r1, r3 + 8002838: 6a7b ldr r3, [r7, #36] @ 0x24 + 800283a: 2200 movs r2, #0 + 800283c: 613b str r3, [r7, #16] + 800283e: 617a str r2, [r7, #20] + 8002840: e9d7 2304 ldrd r2, r3, [r7, #16] + 8002844: f7fd fc9a bl 800017c <__aeabi_uldivmod> + 8002848: 4602 mov r2, r0 + 800284a: 460b mov r3, r1 + 800284c: 4613 mov r3, r2 + 800284e: 637b str r3, [r7, #52] @ 0x34 + 8002850: e04e b.n 80028f0 } else { /* HSI used as PLL clock source */ pllvco = (uint32_t)(((uint64_t)HSI_VALUE * (uint64_t)pllm) / (uint64_t)plld); - 80027e6: 6abb ldr r3, [r7, #40] @ 0x28 - 80027e8: 2200 movs r2, #0 - 80027ea: 469a mov sl, r3 - 80027ec: 4693 mov fp, r2 - 80027ee: 4652 mov r2, sl - 80027f0: 465b mov r3, fp - 80027f2: f04f 0000 mov.w r0, #0 - 80027f6: f04f 0100 mov.w r1, #0 - 80027fa: 0159 lsls r1, r3, #5 - 80027fc: ea41 61d2 orr.w r1, r1, r2, lsr #27 - 8002800: 0150 lsls r0, r2, #5 - 8002802: 4602 mov r2, r0 - 8002804: 460b mov r3, r1 - 8002806: ebb2 080a subs.w r8, r2, sl - 800280a: eb63 090b sbc.w r9, r3, fp - 800280e: f04f 0200 mov.w r2, #0 - 8002812: f04f 0300 mov.w r3, #0 - 8002816: ea4f 1389 mov.w r3, r9, lsl #6 - 800281a: ea43 6398 orr.w r3, r3, r8, lsr #26 - 800281e: ea4f 1288 mov.w r2, r8, lsl #6 - 8002822: ebb2 0408 subs.w r4, r2, r8 - 8002826: eb63 0509 sbc.w r5, r3, r9 - 800282a: f04f 0200 mov.w r2, #0 - 800282e: f04f 0300 mov.w r3, #0 - 8002832: 00eb lsls r3, r5, #3 - 8002834: ea43 7354 orr.w r3, r3, r4, lsr #29 - 8002838: 00e2 lsls r2, r4, #3 - 800283a: 4614 mov r4, r2 - 800283c: 461d mov r5, r3 - 800283e: eb14 030a adds.w r3, r4, sl - 8002842: 603b str r3, [r7, #0] - 8002844: eb45 030b adc.w r3, r5, fp - 8002848: 607b str r3, [r7, #4] - 800284a: f04f 0200 mov.w r2, #0 - 800284e: f04f 0300 mov.w r3, #0 - 8002852: e9d7 4500 ldrd r4, r5, [r7] - 8002856: 4629 mov r1, r5 - 8002858: 028b lsls r3, r1, #10 - 800285a: 4620 mov r0, r4 - 800285c: 4629 mov r1, r5 - 800285e: 4604 mov r4, r0 - 8002860: ea43 5394 orr.w r3, r3, r4, lsr #22 - 8002864: 4601 mov r1, r0 - 8002866: 028a lsls r2, r1, #10 - 8002868: 4610 mov r0, r2 - 800286a: 4619 mov r1, r3 - 800286c: 6a7b ldr r3, [r7, #36] @ 0x24 - 800286e: 2200 movs r2, #0 - 8002870: 60bb str r3, [r7, #8] - 8002872: 60fa str r2, [r7, #12] - 8002874: e9d7 2302 ldrd r2, r3, [r7, #8] - 8002878: f7fd fc80 bl 800017c <__aeabi_uldivmod> - 800287c: 4602 mov r2, r0 - 800287e: 460b mov r3, r1 - 8002880: 4613 mov r3, r2 - 8002882: 637b str r3, [r7, #52] @ 0x34 + 8002852: 6abb ldr r3, [r7, #40] @ 0x28 + 8002854: 2200 movs r2, #0 + 8002856: 469a mov sl, r3 + 8002858: 4693 mov fp, r2 + 800285a: 4652 mov r2, sl + 800285c: 465b mov r3, fp + 800285e: f04f 0000 mov.w r0, #0 + 8002862: f04f 0100 mov.w r1, #0 + 8002866: 0159 lsls r1, r3, #5 + 8002868: ea41 61d2 orr.w r1, r1, r2, lsr #27 + 800286c: 0150 lsls r0, r2, #5 + 800286e: 4602 mov r2, r0 + 8002870: 460b mov r3, r1 + 8002872: ebb2 080a subs.w r8, r2, sl + 8002876: eb63 090b sbc.w r9, r3, fp + 800287a: f04f 0200 mov.w r2, #0 + 800287e: f04f 0300 mov.w r3, #0 + 8002882: ea4f 1389 mov.w r3, r9, lsl #6 + 8002886: ea43 6398 orr.w r3, r3, r8, lsr #26 + 800288a: ea4f 1288 mov.w r2, r8, lsl #6 + 800288e: ebb2 0408 subs.w r4, r2, r8 + 8002892: eb63 0509 sbc.w r5, r3, r9 + 8002896: f04f 0200 mov.w r2, #0 + 800289a: f04f 0300 mov.w r3, #0 + 800289e: 00eb lsls r3, r5, #3 + 80028a0: ea43 7354 orr.w r3, r3, r4, lsr #29 + 80028a4: 00e2 lsls r2, r4, #3 + 80028a6: 4614 mov r4, r2 + 80028a8: 461d mov r5, r3 + 80028aa: eb14 030a adds.w r3, r4, sl + 80028ae: 603b str r3, [r7, #0] + 80028b0: eb45 030b adc.w r3, r5, fp + 80028b4: 607b str r3, [r7, #4] + 80028b6: f04f 0200 mov.w r2, #0 + 80028ba: f04f 0300 mov.w r3, #0 + 80028be: e9d7 4500 ldrd r4, r5, [r7] + 80028c2: 4629 mov r1, r5 + 80028c4: 028b lsls r3, r1, #10 + 80028c6: 4620 mov r0, r4 + 80028c8: 4629 mov r1, r5 + 80028ca: 4604 mov r4, r0 + 80028cc: ea43 5394 orr.w r3, r3, r4, lsr #22 + 80028d0: 4601 mov r1, r0 + 80028d2: 028a lsls r2, r1, #10 + 80028d4: 4610 mov r0, r2 + 80028d6: 4619 mov r1, r3 + 80028d8: 6a7b ldr r3, [r7, #36] @ 0x24 + 80028da: 2200 movs r2, #0 + 80028dc: 60bb str r3, [r7, #8] + 80028de: 60fa str r2, [r7, #12] + 80028e0: e9d7 2302 ldrd r2, r3, [r7, #8] + 80028e4: f7fd fc4a bl 800017c <__aeabi_uldivmod> + 80028e8: 4602 mov r2, r0 + 80028ea: 460b mov r3, r1 + 80028ec: 4613 mov r3, r2 + 80028ee: 637b str r3, [r7, #52] @ 0x34 } sysclockfreq = pllvco; - 8002884: 6b7b ldr r3, [r7, #52] @ 0x34 - 8002886: 633b str r3, [r7, #48] @ 0x30 + 80028f0: 6b7b ldr r3, [r7, #52] @ 0x34 + 80028f2: 633b str r3, [r7, #48] @ 0x30 break; - 8002888: e00d b.n 80028a6 + 80028f4: e00d b.n 8002912 } case RCC_SYSCLKSOURCE_STATUS_MSI: /* MSI used as system clock source */ default: /* MSI used as system clock */ { msiclkrange = (RCC->ICSCR & RCC_ICSCR_MSIRANGE ) >> RCC_ICSCR_MSIRANGE_Pos; - 800288a: 4b0a ldr r3, [pc, #40] @ (80028b4 ) - 800288c: 685b ldr r3, [r3, #4] - 800288e: 0b5b lsrs r3, r3, #13 - 8002890: f003 0307 and.w r3, r3, #7 - 8002894: 623b str r3, [r7, #32] + 80028f6: 4b0a ldr r3, [pc, #40] @ (8002920 ) + 80028f8: 685b ldr r3, [r3, #4] + 80028fa: 0b5b lsrs r3, r3, #13 + 80028fc: f003 0307 and.w r3, r3, #7 + 8002900: 623b str r3, [r7, #32] sysclockfreq = (32768U * (1UL << (msiclkrange + 1U))); - 8002896: 6a3b ldr r3, [r7, #32] - 8002898: 3301 adds r3, #1 - 800289a: f44f 4200 mov.w r2, #32768 @ 0x8000 - 800289e: fa02 f303 lsl.w r3, r2, r3 - 80028a2: 633b str r3, [r7, #48] @ 0x30 + 8002902: 6a3b ldr r3, [r7, #32] + 8002904: 3301 adds r3, #1 + 8002906: f44f 4200 mov.w r2, #32768 @ 0x8000 + 800290a: fa02 f303 lsl.w r3, r2, r3 + 800290e: 633b str r3, [r7, #48] @ 0x30 break; - 80028a4: bf00 nop + 8002910: bf00 nop } } return sysclockfreq; - 80028a6: 6b3b ldr r3, [r7, #48] @ 0x30 + 8002912: 6b3b ldr r3, [r7, #48] @ 0x30 } - 80028a8: 4618 mov r0, r3 - 80028aa: 3738 adds r7, #56 @ 0x38 - 80028ac: 46bd mov sp, r7 - 80028ae: e8bd 8fb0 ldmia.w sp!, {r4, r5, r7, r8, r9, sl, fp, pc} - 80028b2: bf00 nop - 80028b4: 40023800 .word 0x40023800 - 80028b8: 00f42400 .word 0x00f42400 - 80028bc: 016e3600 .word 0x016e3600 - 80028c0: 08002a30 .word 0x08002a30 + 8002914: 4618 mov r0, r3 + 8002916: 3738 adds r7, #56 @ 0x38 + 8002918: 46bd mov sp, r7 + 800291a: e8bd 8fb0 ldmia.w sp!, {r4, r5, r7, r8, r9, sl, fp, pc} + 800291e: bf00 nop + 8002920: 40023800 .word 0x40023800 + 8002924: 00f42400 .word 0x00f42400 + 8002928: 016e3600 .word 0x016e3600 + 800292c: 08002a9c .word 0x08002a9c -080028c4 : +08002930 : * @note The SystemCoreClock CMSIS variable is used to store System Clock Frequency * and updated within this function * @retval HCLK frequency */ uint32_t HAL_RCC_GetHCLKFreq(void) { - 80028c4: b480 push {r7} - 80028c6: af00 add r7, sp, #0 + 8002930: b480 push {r7} + 8002932: af00 add r7, sp, #0 return SystemCoreClock; - 80028c8: 4b02 ldr r3, [pc, #8] @ (80028d4 ) - 80028ca: 681b ldr r3, [r3, #0] + 8002934: 4b02 ldr r3, [pc, #8] @ (8002940 ) + 8002936: 681b ldr r3, [r3, #0] } - 80028cc: 4618 mov r0, r3 - 80028ce: 46bd mov sp, r7 - 80028d0: bc80 pop {r7} - 80028d2: 4770 bx lr - 80028d4: 20000000 .word 0x20000000 + 8002938: 4618 mov r0, r3 + 800293a: 46bd mov sp, r7 + 800293c: bc80 pop {r7} + 800293e: 4770 bx lr + 8002940: 20000000 .word 0x20000000 -080028d8 : +08002944 : * @note Each time PCLK1 changes, this function must be called to update the * right PCLK1 value. Otherwise, any configuration based on this function will be incorrect. * @retval PCLK1 frequency */ uint32_t HAL_RCC_GetPCLK1Freq(void) { - 80028d8: b580 push {r7, lr} - 80028da: af00 add r7, sp, #0 + 8002944: b580 push {r7, lr} + 8002946: af00 add r7, sp, #0 /* Get HCLK source and Compute PCLK1 frequency ---------------------------*/ return (HAL_RCC_GetHCLKFreq() >> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE1) >> RCC_CFGR_PPRE1_Pos]); - 80028dc: f7ff fff2 bl 80028c4 - 80028e0: 4602 mov r2, r0 - 80028e2: 4b05 ldr r3, [pc, #20] @ (80028f8 ) - 80028e4: 689b ldr r3, [r3, #8] - 80028e6: 0a1b lsrs r3, r3, #8 - 80028e8: f003 0307 and.w r3, r3, #7 - 80028ec: 4903 ldr r1, [pc, #12] @ (80028fc ) - 80028ee: 5ccb ldrb r3, [r1, r3] - 80028f0: fa22 f303 lsr.w r3, r2, r3 + 8002948: f7ff fff2 bl 8002930 + 800294c: 4602 mov r2, r0 + 800294e: 4b05 ldr r3, [pc, #20] @ (8002964 ) + 8002950: 689b ldr r3, [r3, #8] + 8002952: 0a1b lsrs r3, r3, #8 + 8002954: f003 0307 and.w r3, r3, #7 + 8002958: 4903 ldr r1, [pc, #12] @ (8002968 ) + 800295a: 5ccb ldrb r3, [r1, r3] + 800295c: fa22 f303 lsr.w r3, r2, r3 } - 80028f4: 4618 mov r0, r3 - 80028f6: bd80 pop {r7, pc} - 80028f8: 40023800 .word 0x40023800 - 80028fc: 08002a4c .word 0x08002a4c + 8002960: 4618 mov r0, r3 + 8002962: bd80 pop {r7, pc} + 8002964: 40023800 .word 0x40023800 + 8002968: 08002ab8 .word 0x08002ab8 -08002900 : +0800296c : voltage range * @param MSIrange MSI range value from RCC_MSIRANGE_0 to RCC_MSIRANGE_6 * @retval HAL status */ static HAL_StatusTypeDef RCC_SetFlashLatencyFromMSIRange(uint32_t MSIrange) { - 8002900: b480 push {r7} - 8002902: b087 sub sp, #28 - 8002904: af00 add r7, sp, #0 - 8002906: 6078 str r0, [r7, #4] + 800296c: b480 push {r7} + 800296e: b087 sub sp, #28 + 8002970: af00 add r7, sp, #0 + 8002972: 6078 str r0, [r7, #4] uint32_t vos; uint32_t latency = FLASH_LATENCY_0; /* default value 0WS */ - 8002908: 2300 movs r3, #0 - 800290a: 613b str r3, [r7, #16] + 8002974: 2300 movs r3, #0 + 8002976: 613b str r3, [r7, #16] /* HCLK can reach 4 MHz only if AHB prescaler = 1 */ if (READ_BIT(RCC->CFGR, RCC_CFGR_HPRE) == RCC_SYSCLK_DIV1) - 800290c: 4b29 ldr r3, [pc, #164] @ (80029b4 ) - 800290e: 689b ldr r3, [r3, #8] - 8002910: f003 03f0 and.w r3, r3, #240 @ 0xf0 - 8002914: 2b00 cmp r3, #0 - 8002916: d12c bne.n 8002972 + 8002978: 4b29 ldr r3, [pc, #164] @ (8002a20 ) + 800297a: 689b ldr r3, [r3, #8] + 800297c: f003 03f0 and.w r3, r3, #240 @ 0xf0 + 8002980: 2b00 cmp r3, #0 + 8002982: d12c bne.n 80029de { if(__HAL_RCC_PWR_IS_CLK_ENABLED()) - 8002918: 4b26 ldr r3, [pc, #152] @ (80029b4 ) - 800291a: 6a5b ldr r3, [r3, #36] @ 0x24 - 800291c: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 - 8002920: 2b00 cmp r3, #0 - 8002922: d005 beq.n 8002930 + 8002984: 4b26 ldr r3, [pc, #152] @ (8002a20 ) + 8002986: 6a5b ldr r3, [r3, #36] @ 0x24 + 8002988: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 800298c: 2b00 cmp r3, #0 + 800298e: d005 beq.n 800299c { vos = READ_BIT(PWR->CR, PWR_CR_VOS); - 8002924: 4b24 ldr r3, [pc, #144] @ (80029b8 ) - 8002926: 681b ldr r3, [r3, #0] - 8002928: f403 53c0 and.w r3, r3, #6144 @ 0x1800 - 800292c: 617b str r3, [r7, #20] - 800292e: e016 b.n 800295e + 8002990: 4b24 ldr r3, [pc, #144] @ (8002a24 ) + 8002992: 681b ldr r3, [r3, #0] + 8002994: f403 53c0 and.w r3, r3, #6144 @ 0x1800 + 8002998: 617b str r3, [r7, #20] + 800299a: e016 b.n 80029ca } else { __HAL_RCC_PWR_CLK_ENABLE(); - 8002930: 4b20 ldr r3, [pc, #128] @ (80029b4 ) - 8002932: 6a5b ldr r3, [r3, #36] @ 0x24 - 8002934: 4a1f ldr r2, [pc, #124] @ (80029b4 ) - 8002936: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 - 800293a: 6253 str r3, [r2, #36] @ 0x24 - 800293c: 4b1d ldr r3, [pc, #116] @ (80029b4 ) - 800293e: 6a5b ldr r3, [r3, #36] @ 0x24 - 8002940: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 - 8002944: 60fb str r3, [r7, #12] - 8002946: 68fb ldr r3, [r7, #12] + 800299c: 4b20 ldr r3, [pc, #128] @ (8002a20 ) + 800299e: 6a5b ldr r3, [r3, #36] @ 0x24 + 80029a0: 4a1f ldr r2, [pc, #124] @ (8002a20 ) + 80029a2: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000 + 80029a6: 6253 str r3, [r2, #36] @ 0x24 + 80029a8: 4b1d ldr r3, [pc, #116] @ (8002a20 ) + 80029aa: 6a5b ldr r3, [r3, #36] @ 0x24 + 80029ac: f003 5380 and.w r3, r3, #268435456 @ 0x10000000 + 80029b0: 60fb str r3, [r7, #12] + 80029b2: 68fb ldr r3, [r7, #12] vos = READ_BIT(PWR->CR, PWR_CR_VOS); - 8002948: 4b1b ldr r3, [pc, #108] @ (80029b8 ) - 800294a: 681b ldr r3, [r3, #0] - 800294c: f403 53c0 and.w r3, r3, #6144 @ 0x1800 - 8002950: 617b str r3, [r7, #20] + 80029b4: 4b1b ldr r3, [pc, #108] @ (8002a24 ) + 80029b6: 681b ldr r3, [r3, #0] + 80029b8: f403 53c0 and.w r3, r3, #6144 @ 0x1800 + 80029bc: 617b str r3, [r7, #20] __HAL_RCC_PWR_CLK_DISABLE(); - 8002952: 4b18 ldr r3, [pc, #96] @ (80029b4 ) - 8002954: 6a5b ldr r3, [r3, #36] @ 0x24 - 8002956: 4a17 ldr r2, [pc, #92] @ (80029b4 ) - 8002958: f023 5380 bic.w r3, r3, #268435456 @ 0x10000000 - 800295c: 6253 str r3, [r2, #36] @ 0x24 + 80029be: 4b18 ldr r3, [pc, #96] @ (8002a20 ) + 80029c0: 6a5b ldr r3, [r3, #36] @ 0x24 + 80029c2: 4a17 ldr r2, [pc, #92] @ (8002a20 ) + 80029c4: f023 5380 bic.w r3, r3, #268435456 @ 0x10000000 + 80029c8: 6253 str r3, [r2, #36] @ 0x24 } /* Check if need to set latency 1 only for Range 3 & HCLK = 4MHz */ if((vos == PWR_REGULATOR_VOLTAGE_SCALE3) && (MSIrange == RCC_MSIRANGE_6)) - 800295e: 697b ldr r3, [r7, #20] - 8002960: f5b3 5fc0 cmp.w r3, #6144 @ 0x1800 - 8002964: d105 bne.n 8002972 - 8002966: 687b ldr r3, [r7, #4] - 8002968: f5b3 4f40 cmp.w r3, #49152 @ 0xc000 - 800296c: d101 bne.n 8002972 + 80029ca: 697b ldr r3, [r7, #20] + 80029cc: f5b3 5fc0 cmp.w r3, #6144 @ 0x1800 + 80029d0: d105 bne.n 80029de + 80029d2: 687b ldr r3, [r7, #4] + 80029d4: f5b3 4f40 cmp.w r3, #49152 @ 0xc000 + 80029d8: d101 bne.n 80029de { latency = FLASH_LATENCY_1; /* 1WS */ - 800296e: 2301 movs r3, #1 - 8002970: 613b str r3, [r7, #16] + 80029da: 2301 movs r3, #1 + 80029dc: 613b str r3, [r7, #16] } } __HAL_FLASH_SET_LATENCY(latency); - 8002972: 693b ldr r3, [r7, #16] - 8002974: 2b01 cmp r3, #1 - 8002976: d105 bne.n 8002984 - 8002978: 4b10 ldr r3, [pc, #64] @ (80029bc ) - 800297a: 681b ldr r3, [r3, #0] - 800297c: 4a0f ldr r2, [pc, #60] @ (80029bc ) - 800297e: f043 0304 orr.w r3, r3, #4 - 8002982: 6013 str r3, [r2, #0] - 8002984: 4b0d ldr r3, [pc, #52] @ (80029bc ) - 8002986: 681b ldr r3, [r3, #0] - 8002988: f023 0201 bic.w r2, r3, #1 - 800298c: 490b ldr r1, [pc, #44] @ (80029bc ) - 800298e: 693b ldr r3, [r7, #16] - 8002990: 4313 orrs r3, r2 - 8002992: 600b str r3, [r1, #0] + 80029de: 693b ldr r3, [r7, #16] + 80029e0: 2b01 cmp r3, #1 + 80029e2: d105 bne.n 80029f0 + 80029e4: 4b10 ldr r3, [pc, #64] @ (8002a28 ) + 80029e6: 681b ldr r3, [r3, #0] + 80029e8: 4a0f ldr r2, [pc, #60] @ (8002a28 ) + 80029ea: f043 0304 orr.w r3, r3, #4 + 80029ee: 6013 str r3, [r2, #0] + 80029f0: 4b0d ldr r3, [pc, #52] @ (8002a28 ) + 80029f2: 681b ldr r3, [r3, #0] + 80029f4: f023 0201 bic.w r2, r3, #1 + 80029f8: 490b ldr r1, [pc, #44] @ (8002a28 ) + 80029fa: 693b ldr r3, [r7, #16] + 80029fc: 4313 orrs r3, r2 + 80029fe: 600b str r3, [r1, #0] /* Check that the new number of wait states is taken into account to access the Flash memory by reading the FLASH_ACR register */ if(__HAL_FLASH_GET_LATENCY() != latency) - 8002994: 4b09 ldr r3, [pc, #36] @ (80029bc ) - 8002996: 681b ldr r3, [r3, #0] - 8002998: f003 0301 and.w r3, r3, #1 - 800299c: 693a ldr r2, [r7, #16] - 800299e: 429a cmp r2, r3 - 80029a0: d001 beq.n 80029a6 + 8002a00: 4b09 ldr r3, [pc, #36] @ (8002a28 ) + 8002a02: 681b ldr r3, [r3, #0] + 8002a04: f003 0301 and.w r3, r3, #1 + 8002a08: 693a ldr r2, [r7, #16] + 8002a0a: 429a cmp r2, r3 + 8002a0c: d001 beq.n 8002a12 { return HAL_ERROR; - 80029a2: 2301 movs r3, #1 - 80029a4: e000 b.n 80029a8 + 8002a0e: 2301 movs r3, #1 + 8002a10: e000 b.n 8002a14 } return HAL_OK; - 80029a6: 2300 movs r3, #0 + 8002a12: 2300 movs r3, #0 } - 80029a8: 4618 mov r0, r3 - 80029aa: 371c adds r7, #28 - 80029ac: 46bd mov sp, r7 - 80029ae: bc80 pop {r7} - 80029b0: 4770 bx lr - 80029b2: bf00 nop - 80029b4: 40023800 .word 0x40023800 - 80029b8: 40007000 .word 0x40007000 - 80029bc: 40023c00 .word 0x40023c00 + 8002a14: 4618 mov r0, r3 + 8002a16: 371c adds r7, #28 + 8002a18: 46bd mov sp, r7 + 8002a1a: bc80 pop {r7} + 8002a1c: 4770 bx lr + 8002a1e: bf00 nop + 8002a20: 40023800 .word 0x40023800 + 8002a24: 40007000 .word 0x40007000 + 8002a28: 40023c00 .word 0x40023c00 -080029c0 : - 80029c0: 4603 mov r3, r0 - 80029c2: 4402 add r2, r0 - 80029c4: 4293 cmp r3, r2 - 80029c6: d100 bne.n 80029ca - 80029c8: 4770 bx lr - 80029ca: f803 1b01 strb.w r1, [r3], #1 - 80029ce: e7f9 b.n 80029c4 +08002a2c : + 8002a2c: 4603 mov r3, r0 + 8002a2e: 4402 add r2, r0 + 8002a30: 4293 cmp r3, r2 + 8002a32: d100 bne.n 8002a36 + 8002a34: 4770 bx lr + 8002a36: f803 1b01 strb.w r1, [r3], #1 + 8002a3a: e7f9 b.n 8002a30 -080029d0 <__libc_init_array>: - 80029d0: b570 push {r4, r5, r6, lr} - 80029d2: 2600 movs r6, #0 - 80029d4: 4d0c ldr r5, [pc, #48] @ (8002a08 <__libc_init_array+0x38>) - 80029d6: 4c0d ldr r4, [pc, #52] @ (8002a0c <__libc_init_array+0x3c>) - 80029d8: 1b64 subs r4, r4, r5 - 80029da: 10a4 asrs r4, r4, #2 - 80029dc: 42a6 cmp r6, r4 - 80029de: d109 bne.n 80029f4 <__libc_init_array+0x24> - 80029e0: f000 f81a bl 8002a18 <_init> - 80029e4: 2600 movs r6, #0 - 80029e6: 4d0a ldr r5, [pc, #40] @ (8002a10 <__libc_init_array+0x40>) - 80029e8: 4c0a ldr r4, [pc, #40] @ (8002a14 <__libc_init_array+0x44>) - 80029ea: 1b64 subs r4, r4, r5 - 80029ec: 10a4 asrs r4, r4, #2 - 80029ee: 42a6 cmp r6, r4 - 80029f0: d105 bne.n 80029fe <__libc_init_array+0x2e> - 80029f2: bd70 pop {r4, r5, r6, pc} - 80029f4: f855 3b04 ldr.w r3, [r5], #4 - 80029f8: 4798 blx r3 - 80029fa: 3601 adds r6, #1 - 80029fc: e7ee b.n 80029dc <__libc_init_array+0xc> - 80029fe: f855 3b04 ldr.w r3, [r5], #4 - 8002a02: 4798 blx r3 - 8002a04: 3601 adds r6, #1 - 8002a06: e7f2 b.n 80029ee <__libc_init_array+0x1e> - 8002a08: 08002a5c .word 0x08002a5c - 8002a0c: 08002a5c .word 0x08002a5c - 8002a10: 08002a5c .word 0x08002a5c - 8002a14: 08002a60 .word 0x08002a60 +08002a3c <__libc_init_array>: + 8002a3c: b570 push {r4, r5, r6, lr} + 8002a3e: 2600 movs r6, #0 + 8002a40: 4d0c ldr r5, [pc, #48] @ (8002a74 <__libc_init_array+0x38>) + 8002a42: 4c0d ldr r4, [pc, #52] @ (8002a78 <__libc_init_array+0x3c>) + 8002a44: 1b64 subs r4, r4, r5 + 8002a46: 10a4 asrs r4, r4, #2 + 8002a48: 42a6 cmp r6, r4 + 8002a4a: d109 bne.n 8002a60 <__libc_init_array+0x24> + 8002a4c: f000 f81a bl 8002a84 <_init> + 8002a50: 2600 movs r6, #0 + 8002a52: 4d0a ldr r5, [pc, #40] @ (8002a7c <__libc_init_array+0x40>) + 8002a54: 4c0a ldr r4, [pc, #40] @ (8002a80 <__libc_init_array+0x44>) + 8002a56: 1b64 subs r4, r4, r5 + 8002a58: 10a4 asrs r4, r4, #2 + 8002a5a: 42a6 cmp r6, r4 + 8002a5c: d105 bne.n 8002a6a <__libc_init_array+0x2e> + 8002a5e: bd70 pop {r4, r5, r6, pc} + 8002a60: f855 3b04 ldr.w r3, [r5], #4 + 8002a64: 4798 blx r3 + 8002a66: 3601 adds r6, #1 + 8002a68: e7ee b.n 8002a48 <__libc_init_array+0xc> + 8002a6a: f855 3b04 ldr.w r3, [r5], #4 + 8002a6e: 4798 blx r3 + 8002a70: 3601 adds r6, #1 + 8002a72: e7f2 b.n 8002a5a <__libc_init_array+0x1e> + 8002a74: 08002ac8 .word 0x08002ac8 + 8002a78: 08002ac8 .word 0x08002ac8 + 8002a7c: 08002ac8 .word 0x08002ac8 + 8002a80: 08002acc .word 0x08002acc -08002a18 <_init>: - 8002a18: b5f8 push {r3, r4, r5, r6, r7, lr} - 8002a1a: bf00 nop - 8002a1c: bcf8 pop {r3, r4, r5, r6, r7} - 8002a1e: bc08 pop {r3} - 8002a20: 469e mov lr, r3 - 8002a22: 4770 bx lr +08002a84 <_init>: + 8002a84: b5f8 push {r3, r4, r5, r6, r7, lr} + 8002a86: bf00 nop + 8002a88: bcf8 pop {r3, r4, r5, r6, r7} + 8002a8a: bc08 pop {r3} + 8002a8c: 469e mov lr, r3 + 8002a8e: 4770 bx lr -08002a24 <_fini>: - 8002a24: b5f8 push {r3, r4, r5, r6, r7, lr} - 8002a26: bf00 nop - 8002a28: bcf8 pop {r3, r4, r5, r6, r7} - 8002a2a: bc08 pop {r3} - 8002a2c: 469e mov lr, r3 - 8002a2e: 4770 bx lr +08002a90 <_fini>: + 8002a90: b5f8 push {r3, r4, r5, r6, r7, lr} + 8002a92: bf00 nop + 8002a94: bcf8 pop {r3, r4, r5, r6, r7} + 8002a96: bc08 pop {r3} + 8002a98: 469e mov lr, r3 + 8002a9a: 4770 bx lr diff --git a/TP6_ACCELEROMETRE/Debug/TP6_ACCELEROMETRE.map b/TP6_ACCELEROMETRE/Debug/TP6_ACCELEROMETRE.map index 08bbc4f..5e31964 100644 --- a/TP6_ACCELEROMETRE/Debug/TP6_ACCELEROMETRE.map +++ b/TP6_ACCELEROMETRE/Debug/TP6_ACCELEROMETRE.map @@ -2282,7 +2282,7 @@ LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.id 0x08000000 g_pfnVectors 0x0800013c . = ALIGN (0x4) -.text 0x0800013c 0x28f4 +.text 0x0800013c 0x2960 0x0800013c . = ALIGN (0x4) *(.text) .text 0x0800013c 0x40 /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/crtbegin.o @@ -2294,290 +2294,290 @@ LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.id 0x080004ac __aeabi_ldiv0 0x080004ac __aeabi_idiv0 *(.text*) - .text.main 0x080004b0 0xa0 ./Core/Src/main.o + .text.main 0x080004b0 0x10c ./Core/Src/main.o 0x080004b0 main .text.SystemClock_Config - 0x08000550 0x8c ./Core/Src/main.o - 0x08000550 SystemClock_Config + 0x080005bc 0x8c ./Core/Src/main.o + 0x080005bc SystemClock_Config .text.MX_I2C1_Init - 0x080005dc 0x5c ./Core/Src/main.o + 0x08000648 0x5c ./Core/Src/main.o .text.MX_GPIO_Init - 0x08000638 0x7c ./Core/Src/main.o + 0x080006a4 0x7c ./Core/Src/main.o .text.Error_Handler - 0x080006b4 0xc ./Core/Src/main.o - 0x080006b4 Error_Handler + 0x08000720 0xc ./Core/Src/main.o + 0x08000720 Error_Handler .text.HAL_MspInit - 0x080006c0 0x5c ./Core/Src/stm32l1xx_hal_msp.o - 0x080006c0 HAL_MspInit + 0x0800072c 0x5c ./Core/Src/stm32l1xx_hal_msp.o + 0x0800072c HAL_MspInit .text.HAL_I2C_MspInit - 0x0800071c 0x88 ./Core/Src/stm32l1xx_hal_msp.o - 0x0800071c HAL_I2C_MspInit + 0x08000788 0x88 ./Core/Src/stm32l1xx_hal_msp.o + 0x08000788 HAL_I2C_MspInit .text.NMI_Handler - 0x080007a4 0x8 ./Core/Src/stm32l1xx_it.o - 0x080007a4 NMI_Handler + 0x08000810 0x8 ./Core/Src/stm32l1xx_it.o + 0x08000810 NMI_Handler .text.HardFault_Handler - 0x080007ac 0x8 ./Core/Src/stm32l1xx_it.o - 0x080007ac HardFault_Handler + 0x08000818 0x8 ./Core/Src/stm32l1xx_it.o + 0x08000818 HardFault_Handler .text.MemManage_Handler - 0x080007b4 0x8 ./Core/Src/stm32l1xx_it.o - 0x080007b4 MemManage_Handler + 0x08000820 0x8 ./Core/Src/stm32l1xx_it.o + 0x08000820 MemManage_Handler .text.BusFault_Handler - 0x080007bc 0x8 ./Core/Src/stm32l1xx_it.o - 0x080007bc BusFault_Handler + 0x08000828 0x8 ./Core/Src/stm32l1xx_it.o + 0x08000828 BusFault_Handler .text.UsageFault_Handler - 0x080007c4 0x8 ./Core/Src/stm32l1xx_it.o - 0x080007c4 UsageFault_Handler + 0x08000830 0x8 ./Core/Src/stm32l1xx_it.o + 0x08000830 UsageFault_Handler .text.SVC_Handler - 0x080007cc 0xc ./Core/Src/stm32l1xx_it.o - 0x080007cc SVC_Handler + 0x08000838 0xc ./Core/Src/stm32l1xx_it.o + 0x08000838 SVC_Handler .text.DebugMon_Handler - 0x080007d8 0xc ./Core/Src/stm32l1xx_it.o - 0x080007d8 DebugMon_Handler + 0x08000844 0xc ./Core/Src/stm32l1xx_it.o + 0x08000844 DebugMon_Handler .text.PendSV_Handler - 0x080007e4 0xc ./Core/Src/stm32l1xx_it.o - 0x080007e4 PendSV_Handler + 0x08000850 0xc ./Core/Src/stm32l1xx_it.o + 0x08000850 PendSV_Handler .text.SysTick_Handler - 0x080007f0 0xc ./Core/Src/stm32l1xx_it.o - 0x080007f0 SysTick_Handler + 0x0800085c 0xc ./Core/Src/stm32l1xx_it.o + 0x0800085c SysTick_Handler .text.SystemInit - 0x080007fc 0xc ./Core/Src/system_stm32l1xx.o - 0x080007fc SystemInit + 0x08000868 0xc ./Core/Src/system_stm32l1xx.o + 0x08000868 SystemInit .text.Reset_Handler - 0x08000808 0x48 ./Core/Startup/startup_stm32l152retx.o - 0x08000808 Reset_Handler + 0x08000874 0x48 ./Core/Startup/startup_stm32l152retx.o + 0x08000874 Reset_Handler .text.Default_Handler - 0x08000850 0x2 ./Core/Startup/startup_stm32l152retx.o - 0x08000850 DMA2_Channel3_IRQHandler - 0x08000850 EXTI2_IRQHandler - 0x08000850 COMP_ACQ_IRQHandler - 0x08000850 TIM10_IRQHandler - 0x08000850 USB_HP_IRQHandler - 0x08000850 TIM6_IRQHandler - 0x08000850 PVD_IRQHandler - 0x08000850 EXTI3_IRQHandler - 0x08000850 EXTI0_IRQHandler - 0x08000850 I2C2_EV_IRQHandler - 0x08000850 SPI1_IRQHandler - 0x08000850 USB_FS_WKUP_IRQHandler - 0x08000850 DMA2_Channel2_IRQHandler - 0x08000850 DMA1_Channel4_IRQHandler - 0x08000850 ADC1_IRQHandler - 0x08000850 USART3_IRQHandler - 0x08000850 DMA1_Channel7_IRQHandler - 0x08000850 LCD_IRQHandler - 0x08000850 UART5_IRQHandler - 0x08000850 TIM4_IRQHandler - 0x08000850 DMA2_Channel1_IRQHandler - 0x08000850 I2C1_EV_IRQHandler - 0x08000850 DMA1_Channel6_IRQHandler - 0x08000850 UART4_IRQHandler - 0x08000850 DMA2_Channel4_IRQHandler - 0x08000850 TIM3_IRQHandler - 0x08000850 RCC_IRQHandler - 0x08000850 DMA1_Channel1_IRQHandler - 0x08000850 Default_Handler - 0x08000850 EXTI15_10_IRQHandler - 0x08000850 TIM7_IRQHandler - 0x08000850 TIM5_IRQHandler - 0x08000850 EXTI9_5_IRQHandler - 0x08000850 TIM9_IRQHandler - 0x08000850 TAMPER_STAMP_IRQHandler - 0x08000850 RTC_WKUP_IRQHandler - 0x08000850 SPI2_IRQHandler - 0x08000850 DMA2_Channel5_IRQHandler - 0x08000850 DMA1_Channel5_IRQHandler - 0x08000850 USB_LP_IRQHandler - 0x08000850 EXTI4_IRQHandler - 0x08000850 DMA1_Channel3_IRQHandler - 0x08000850 COMP_IRQHandler - 0x08000850 WWDG_IRQHandler - 0x08000850 TIM2_IRQHandler - 0x08000850 DAC_IRQHandler - 0x08000850 EXTI1_IRQHandler - 0x08000850 TIM11_IRQHandler - 0x08000850 USART2_IRQHandler - 0x08000850 I2C2_ER_IRQHandler - 0x08000850 DMA1_Channel2_IRQHandler - 0x08000850 FLASH_IRQHandler - 0x08000850 USART1_IRQHandler - 0x08000850 SPI3_IRQHandler - 0x08000850 I2C1_ER_IRQHandler - 0x08000850 RTC_Alarm_IRQHandler + 0x080008bc 0x2 ./Core/Startup/startup_stm32l152retx.o + 0x080008bc DMA2_Channel3_IRQHandler + 0x080008bc EXTI2_IRQHandler + 0x080008bc COMP_ACQ_IRQHandler + 0x080008bc TIM10_IRQHandler + 0x080008bc USB_HP_IRQHandler + 0x080008bc TIM6_IRQHandler + 0x080008bc PVD_IRQHandler + 0x080008bc EXTI3_IRQHandler + 0x080008bc EXTI0_IRQHandler + 0x080008bc I2C2_EV_IRQHandler + 0x080008bc SPI1_IRQHandler + 0x080008bc USB_FS_WKUP_IRQHandler + 0x080008bc DMA2_Channel2_IRQHandler + 0x080008bc DMA1_Channel4_IRQHandler + 0x080008bc ADC1_IRQHandler + 0x080008bc USART3_IRQHandler + 0x080008bc DMA1_Channel7_IRQHandler + 0x080008bc LCD_IRQHandler + 0x080008bc UART5_IRQHandler + 0x080008bc TIM4_IRQHandler + 0x080008bc DMA2_Channel1_IRQHandler + 0x080008bc I2C1_EV_IRQHandler + 0x080008bc DMA1_Channel6_IRQHandler + 0x080008bc UART4_IRQHandler + 0x080008bc DMA2_Channel4_IRQHandler + 0x080008bc TIM3_IRQHandler + 0x080008bc RCC_IRQHandler + 0x080008bc DMA1_Channel1_IRQHandler + 0x080008bc Default_Handler + 0x080008bc EXTI15_10_IRQHandler + 0x080008bc TIM7_IRQHandler + 0x080008bc TIM5_IRQHandler + 0x080008bc EXTI9_5_IRQHandler + 0x080008bc TIM9_IRQHandler + 0x080008bc TAMPER_STAMP_IRQHandler + 0x080008bc RTC_WKUP_IRQHandler + 0x080008bc SPI2_IRQHandler + 0x080008bc DMA2_Channel5_IRQHandler + 0x080008bc DMA1_Channel5_IRQHandler + 0x080008bc USB_LP_IRQHandler + 0x080008bc EXTI4_IRQHandler + 0x080008bc DMA1_Channel3_IRQHandler + 0x080008bc COMP_IRQHandler + 0x080008bc WWDG_IRQHandler + 0x080008bc TIM2_IRQHandler + 0x080008bc DAC_IRQHandler + 0x080008bc EXTI1_IRQHandler + 0x080008bc TIM11_IRQHandler + 0x080008bc USART2_IRQHandler + 0x080008bc I2C2_ER_IRQHandler + 0x080008bc DMA1_Channel2_IRQHandler + 0x080008bc FLASH_IRQHandler + 0x080008bc USART1_IRQHandler + 0x080008bc SPI3_IRQHandler + 0x080008bc I2C1_ER_IRQHandler + 0x080008bc RTC_Alarm_IRQHandler .text.HAL_Init - 0x08000852 0x30 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o - 0x08000852 HAL_Init - *fill* 0x08000882 0x2 + 0x080008be 0x30 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x080008be HAL_Init + *fill* 0x080008ee 0x2 .text.HAL_InitTick - 0x08000884 0x74 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o - 0x08000884 HAL_InitTick + 0x080008f0 0x74 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x080008f0 HAL_InitTick .text.HAL_IncTick - 0x080008f8 0x24 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o - 0x080008f8 HAL_IncTick + 0x08000964 0x24 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x08000964 HAL_IncTick .text.HAL_GetTick - 0x0800091c 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o - 0x0800091c HAL_GetTick + 0x08000988 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x08000988 HAL_GetTick .text.HAL_Delay - 0x08000930 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o - 0x08000930 HAL_Delay + 0x0800099c 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x0800099c HAL_Delay .text.__NVIC_SetPriorityGrouping - 0x08000974 0x48 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + 0x080009e0 0x48 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o .text.__NVIC_GetPriorityGrouping - 0x080009bc 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + 0x08000a28 0x1c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o .text.__NVIC_SetPriority - 0x080009d8 0x54 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + 0x08000a44 0x54 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o .text.NVIC_EncodePriority - 0x08000a2c 0x64 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + 0x08000a98 0x64 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o .text.SysTick_Config - 0x08000a90 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + 0x08000afc 0x44 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o .text.HAL_NVIC_SetPriorityGrouping - 0x08000ad4 0x16 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o - 0x08000ad4 HAL_NVIC_SetPriorityGrouping + 0x08000b40 0x16 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + 0x08000b40 HAL_NVIC_SetPriorityGrouping .text.HAL_NVIC_SetPriority - 0x08000aea 0x38 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o - 0x08000aea HAL_NVIC_SetPriority + 0x08000b56 0x38 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + 0x08000b56 HAL_NVIC_SetPriority .text.HAL_SYSTICK_Config - 0x08000b22 0x18 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o - 0x08000b22 HAL_SYSTICK_Config - *fill* 0x08000b3a 0x2 + 0x08000b8e 0x18 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + 0x08000b8e HAL_SYSTICK_Config + *fill* 0x08000ba6 0x2 .text.HAL_GPIO_Init - 0x08000b3c 0x320 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o - 0x08000b3c HAL_GPIO_Init + 0x08000ba8 0x320 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + 0x08000ba8 HAL_GPIO_Init .text.HAL_GPIO_WritePin - 0x08000e5c 0x30 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o - 0x08000e5c HAL_GPIO_WritePin + 0x08000ec8 0x30 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + 0x08000ec8 HAL_GPIO_WritePin .text.HAL_I2C_Init - 0x08000e8c 0x288 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o - 0x08000e8c HAL_I2C_Init + 0x08000ef8 0x288 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o + 0x08000ef8 HAL_I2C_Init .text.HAL_I2C_Master_Transmit - 0x08001114 0x1fc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o - 0x08001114 HAL_I2C_Master_Transmit + 0x08001180 0x1fc ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o + 0x08001180 HAL_I2C_Master_Transmit .text.HAL_I2C_Master_Receive - 0x08001310 0x464 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o - 0x08001310 HAL_I2C_Master_Receive + 0x0800137c 0x464 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o + 0x0800137c HAL_I2C_Master_Receive .text.I2C_MasterRequestWrite - 0x08001774 0x104 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o + 0x080017e0 0x104 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o .text.I2C_MasterRequestRead - 0x08001878 0x19c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o + 0x080018e4 0x19c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o .text.I2C_WaitOnFlagUntilTimeout - 0x08001a14 0xf4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o + 0x08001a80 0xf4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o .text.I2C_WaitOnMasterAddressFlagUntilTimeout - 0x08001b08 0x140 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o + 0x08001b74 0x140 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o .text.I2C_WaitOnTXEFlagUntilTimeout - 0x08001c48 0x90 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o + 0x08001cb4 0x90 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o .text.I2C_WaitOnBTFFlagUntilTimeout - 0x08001cd8 0x90 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o + 0x08001d44 0x90 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o .text.I2C_WaitOnRXNEFlagUntilTimeout - 0x08001d68 0xba ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o + 0x08001dd4 0xba ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o .text.I2C_IsAcknowledgeFailed - 0x08001e22 0x5c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o - *fill* 0x08001e7e 0x2 + 0x08001e8e 0x5c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o + *fill* 0x08001eea 0x2 .text.HAL_RCC_OscConfig - 0x08001e80 0x660 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o - 0x08001e80 HAL_RCC_OscConfig + 0x08001eec 0x660 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + 0x08001eec HAL_RCC_OscConfig .text.HAL_RCC_ClockConfig - 0x080024e0 0x268 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o - 0x080024e0 HAL_RCC_ClockConfig + 0x0800254c 0x268 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + 0x0800254c HAL_RCC_ClockConfig .text.HAL_RCC_GetSysClockFreq - 0x08002748 0x17c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o - 0x08002748 HAL_RCC_GetSysClockFreq + 0x080027b4 0x17c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + 0x080027b4 HAL_RCC_GetSysClockFreq .text.HAL_RCC_GetHCLKFreq - 0x080028c4 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o - 0x080028c4 HAL_RCC_GetHCLKFreq + 0x08002930 0x14 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + 0x08002930 HAL_RCC_GetHCLKFreq .text.HAL_RCC_GetPCLK1Freq - 0x080028d8 0x28 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o - 0x080028d8 HAL_RCC_GetPCLK1Freq + 0x08002944 0x28 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + 0x08002944 HAL_RCC_GetPCLK1Freq .text.RCC_SetFlashLatencyFromMSIRange - 0x08002900 0xc0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o - .text.memset 0x080029c0 0x10 /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) - 0x080029c0 memset + 0x0800296c 0xc0 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o + .text.memset 0x08002a2c 0x10 /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) + 0x08002a2c memset .text.__libc_init_array - 0x080029d0 0x48 /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) - 0x080029d0 __libc_init_array + 0x08002a3c 0x48 /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) + 0x08002a3c __libc_init_array *(.glue_7) - .glue_7 0x08002a18 0x0 linker stubs + .glue_7 0x08002a84 0x0 linker stubs *(.glue_7t) - .glue_7t 0x08002a18 0x0 linker stubs + .glue_7t 0x08002a84 0x0 linker stubs *(.eh_frame) - .eh_frame 0x08002a18 0x0 /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/crtbegin.o + .eh_frame 0x08002a84 0x0 /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/crtbegin.o *(.init) - .init 0x08002a18 0x4 /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/crti.o - 0x08002a18 _init - .init 0x08002a1c 0x8 /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/crtn.o + .init 0x08002a84 0x4 /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/crti.o + 0x08002a84 _init + .init 0x08002a88 0x8 /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/crtn.o *(.fini) - .fini 0x08002a24 0x4 /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/crti.o - 0x08002a24 _fini - .fini 0x08002a28 0x8 /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/crtn.o - 0x08002a30 . = ALIGN (0x4) - 0x08002a30 _etext = . + .fini 0x08002a90 0x4 /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/crti.o + 0x08002a90 _fini + .fini 0x08002a94 0x8 /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/crtn.o + 0x08002a9c . = ALIGN (0x4) + 0x08002a9c _etext = . -.vfp11_veneer 0x08002a30 0x0 - .vfp11_veneer 0x08002a30 0x0 linker stubs +.vfp11_veneer 0x08002a9c 0x0 + .vfp11_veneer 0x08002a9c 0x0 linker stubs -.v4_bx 0x08002a30 0x0 - .v4_bx 0x08002a30 0x0 linker stubs +.v4_bx 0x08002a9c 0x0 + .v4_bx 0x08002a9c 0x0 linker stubs -.iplt 0x08002a30 0x0 - .iplt 0x08002a30 0x0 /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/crtbegin.o +.iplt 0x08002a9c 0x0 + .iplt 0x08002a9c 0x0 /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/crtbegin.o -.rodata 0x08002a30 0x24 - 0x08002a30 . = ALIGN (0x4) +.rodata 0x08002a9c 0x24 + 0x08002a9c . = ALIGN (0x4) *(.rodata) *(.rodata*) .rodata.PLLMulTable - 0x08002a30 0x9 ./Core/Src/system_stm32l1xx.o - 0x08002a30 PLLMulTable - *fill* 0x08002a39 0x3 + 0x08002a9c 0x9 ./Core/Src/system_stm32l1xx.o + 0x08002a9c PLLMulTable + *fill* 0x08002aa5 0x3 .rodata.AHBPrescTable - 0x08002a3c 0x10 ./Core/Src/system_stm32l1xx.o - 0x08002a3c AHBPrescTable + 0x08002aa8 0x10 ./Core/Src/system_stm32l1xx.o + 0x08002aa8 AHBPrescTable .rodata.APBPrescTable - 0x08002a4c 0x8 ./Core/Src/system_stm32l1xx.o - 0x08002a4c APBPrescTable - 0x08002a54 . = ALIGN (0x4) + 0x08002ab8 0x8 ./Core/Src/system_stm32l1xx.o + 0x08002ab8 APBPrescTable + 0x08002ac0 . = ALIGN (0x4) -.ARM.extab 0x08002a54 0x0 - 0x08002a54 . = ALIGN (0x4) +.ARM.extab 0x08002ac0 0x0 + 0x08002ac0 . = ALIGN (0x4) *(.ARM.extab* .gnu.linkonce.armextab.*) - 0x08002a54 . = ALIGN (0x4) + 0x08002ac0 . = ALIGN (0x4) -.ARM 0x08002a54 0x8 - 0x08002a54 . = ALIGN (0x4) - 0x08002a54 __exidx_start = . +.ARM 0x08002ac0 0x8 + 0x08002ac0 . = ALIGN (0x4) + 0x08002ac0 __exidx_start = . *(.ARM.exidx*) - .ARM.exidx 0x08002a54 0x8 /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) - 0x08002a5c __exidx_end = . - 0x08002a5c . = ALIGN (0x4) + .ARM.exidx 0x08002ac0 0x8 /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) + 0x08002ac8 __exidx_end = . + 0x08002ac8 . = ALIGN (0x4) -.preinit_array 0x08002a5c 0x0 - 0x08002a5c . = ALIGN (0x4) - 0x08002a5c PROVIDE (__preinit_array_start = .) +.preinit_array 0x08002ac8 0x0 + 0x08002ac8 . = ALIGN (0x4) + 0x08002ac8 PROVIDE (__preinit_array_start = .) *(.preinit_array*) - 0x08002a5c PROVIDE (__preinit_array_end = .) - 0x08002a5c . = ALIGN (0x4) + 0x08002ac8 PROVIDE (__preinit_array_end = .) + 0x08002ac8 . = ALIGN (0x4) -.init_array 0x08002a5c 0x4 - 0x08002a5c . = ALIGN (0x4) - 0x08002a5c PROVIDE (__init_array_start = .) +.init_array 0x08002ac8 0x4 + 0x08002ac8 . = ALIGN (0x4) + 0x08002ac8 PROVIDE (__init_array_start = .) *(SORT_BY_NAME(.init_array.*)) *(.init_array*) - .init_array 0x08002a5c 0x4 /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/crtbegin.o - 0x08002a60 PROVIDE (__init_array_end = .) - 0x08002a60 . = ALIGN (0x4) + .init_array 0x08002ac8 0x4 /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/crtbegin.o + 0x08002acc PROVIDE (__init_array_end = .) + 0x08002acc . = ALIGN (0x4) -.fini_array 0x08002a60 0x4 - 0x08002a60 . = ALIGN (0x4) +.fini_array 0x08002acc 0x4 + 0x08002acc . = ALIGN (0x4) [!provide] PROVIDE (__fini_array_start = .) *(SORT_BY_NAME(.fini_array.*)) *(.fini_array*) - .fini_array 0x08002a60 0x4 /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/crtbegin.o + .fini_array 0x08002acc 0x4 /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/crtbegin.o [!provide] PROVIDE (__fini_array_end = .) - 0x08002a64 . = ALIGN (0x4) - 0x08002a64 _sidata = LOADADDR (.data) + 0x08002ad0 . = ALIGN (0x4) + 0x08002ad0 _sidata = LOADADDR (.data) -.rel.dyn 0x08002a64 0x0 - .rel.iplt 0x08002a64 0x0 /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/crtbegin.o +.rel.dyn 0x08002ad0 0x0 + .rel.iplt 0x08002ad0 0x0 /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/crtbegin.o -.data 0x20000000 0xc load address 0x08002a64 +.data 0x20000000 0xc load address 0x08002ad0 0x20000000 . = ALIGN (0x4) 0x20000000 _sdata = . *(.data) @@ -2596,11 +2596,11 @@ LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.id 0x2000000c . = ALIGN (0x4) 0x2000000c _edata = . -.igot.plt 0x2000000c 0x0 load address 0x08002a70 +.igot.plt 0x2000000c 0x0 load address 0x08002adc .igot.plt 0x2000000c 0x0 /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/crtbegin.o 0x2000000c . = ALIGN (0x4) -.bss 0x2000000c 0x74 load address 0x08002a70 +.bss 0x2000000c 0x78 load address 0x08002adc 0x2000000c _sbss = . 0x2000000c __bss_start__ = _sbss *(.bss) @@ -2608,23 +2608,31 @@ LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.id *(.bss*) .bss.hi2c1 0x20000028 0x54 ./Core/Src/main.o 0x20000028 hi2c1 - .bss.uwTick 0x2000007c 0x4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o - 0x2000007c uwTick + .bss.Z_VALUE 0x2000007c 0x1 ./Core/Src/main.o + 0x2000007c Z_VALUE + .bss.Y_VALUE 0x2000007d 0x1 ./Core/Src/main.o + 0x2000007d Y_VALUE + .bss.X_VALUE 0x2000007e 0x1 ./Core/Src/main.o + 0x2000007e X_VALUE + *fill* 0x2000007f 0x1 + .bss.uwTick 0x20000080 0x4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + 0x20000080 uwTick *(COMMON) - 0x20000080 . = ALIGN (0x4) - 0x20000080 _ebss = . - 0x20000080 __bss_end__ = _ebss + 0x20000084 . = ALIGN (0x4) + 0x20000084 _ebss = . + 0x20000084 __bss_end__ = _ebss ._user_heap_stack - 0x20000080 0x600 load address 0x08002a70 - 0x20000080 . = ALIGN (0x8) + 0x20000084 0x604 load address 0x08002adc + 0x20000088 . = ALIGN (0x8) + *fill* 0x20000084 0x4 [!provide] PROVIDE (end = .) - 0x20000080 PROVIDE (_end = .) - 0x20000280 . = (. + _Min_Heap_Size) - *fill* 0x20000080 0x200 - 0x20000680 . = (. + _Min_Stack_Size) - *fill* 0x20000280 0x400 - 0x20000680 . = ALIGN (0x8) + 0x20000088 PROVIDE (_end = .) + 0x20000288 . = (. + _Min_Heap_Size) + *fill* 0x20000088 0x200 + 0x20000688 . = (. + _Min_Stack_Size) + *fill* 0x20000288 0x400 + 0x20000688 . = ALIGN (0x8) /DISCARD/ libc.a(*) @@ -2676,29 +2684,29 @@ 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 0x5e7d - .debug_info 0x00000000 0xba7 ./Core/Src/main.o - .debug_info 0x00000ba7 0x843 ./Core/Src/stm32l1xx_hal_msp.o - .debug_info 0x000013ea 0x113 ./Core/Src/stm32l1xx_it.o - .debug_info 0x000014fd 0x27c ./Core/Src/system_stm32l1xx.o - .debug_info 0x00001779 0x30 ./Core/Startup/startup_stm32l152retx.o - .debug_info 0x000017a9 0x6ef ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o - .debug_info 0x00001e98 0xce5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o - .debug_info 0x00002b7d 0x5b2 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o - .debug_info 0x0000312f 0x23b3 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o - .debug_info 0x000054e2 0x99b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o +.debug_info 0x00000000 0x5eb0 + .debug_info 0x00000000 0xbda ./Core/Src/main.o + .debug_info 0x00000bda 0x843 ./Core/Src/stm32l1xx_hal_msp.o + .debug_info 0x0000141d 0x113 ./Core/Src/stm32l1xx_it.o + .debug_info 0x00001530 0x27c ./Core/Src/system_stm32l1xx.o + .debug_info 0x000017ac 0x30 ./Core/Startup/startup_stm32l152retx.o + .debug_info 0x000017dc 0x6ef ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_info 0x00001ecb 0xce5 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_info 0x00002bb0 0x5b2 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_info 0x00003162 0x23b3 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o + .debug_info 0x00005515 0x99b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o -.debug_abbrev 0x00000000 0x124c - .debug_abbrev 0x00000000 0x240 ./Core/Src/main.o - .debug_abbrev 0x00000240 0x1a4 ./Core/Src/stm32l1xx_hal_msp.o - .debug_abbrev 0x000003e4 0x73 ./Core/Src/stm32l1xx_it.o - .debug_abbrev 0x00000457 0x11c ./Core/Src/system_stm32l1xx.o - .debug_abbrev 0x00000573 0x24 ./Core/Startup/startup_stm32l152retx.o - .debug_abbrev 0x00000597 0x275 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o - .debug_abbrev 0x0000080c 0x31c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o - .debug_abbrev 0x00000b28 0x1d4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o - .debug_abbrev 0x00000cfc 0x298 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o - .debug_abbrev 0x00000f94 0x2b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o +.debug_abbrev 0x00000000 0x124d + .debug_abbrev 0x00000000 0x241 ./Core/Src/main.o + .debug_abbrev 0x00000241 0x1a4 ./Core/Src/stm32l1xx_hal_msp.o + .debug_abbrev 0x000003e5 0x73 ./Core/Src/stm32l1xx_it.o + .debug_abbrev 0x00000458 0x11c ./Core/Src/system_stm32l1xx.o + .debug_abbrev 0x00000574 0x24 ./Core/Startup/startup_stm32l152retx.o + .debug_abbrev 0x00000598 0x275 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_abbrev 0x0000080d 0x31c ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_abbrev 0x00000b29 0x1d4 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_abbrev 0x00000cfd 0x298 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o + .debug_abbrev 0x00000f95 0x2b8 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o .debug_aranges 0x00000000 0x6b8 .debug_aranges @@ -2805,30 +2813,30 @@ LOAD /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.id .debug_macro 0x00014d83 0x1e9 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o .debug_macro 0x00014f6c 0x1ad ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o -.debug_line 0x00000000 0x86cf - .debug_line 0x00000000 0x8f9 ./Core/Src/main.o - .debug_line 0x000008f9 0x6de ./Core/Src/stm32l1xx_hal_msp.o - .debug_line 0x00000fd7 0x73e ./Core/Src/stm32l1xx_it.o - .debug_line 0x00001715 0x730 ./Core/Src/system_stm32l1xx.o - .debug_line 0x00001e45 0x79 ./Core/Startup/startup_stm32l152retx.o - .debug_line 0x00001ebe 0x95b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o - .debug_line 0x00002819 0xc2a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o - .debug_line 0x00003443 0x99f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o - .debug_line 0x00003de2 0x39cf ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o - .debug_line 0x000077b1 0xf1e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o +.debug_line 0x00000000 0x86f1 + .debug_line 0x00000000 0x91b ./Core/Src/main.o + .debug_line 0x0000091b 0x6de ./Core/Src/stm32l1xx_hal_msp.o + .debug_line 0x00000ff9 0x73e ./Core/Src/stm32l1xx_it.o + .debug_line 0x00001737 0x730 ./Core/Src/system_stm32l1xx.o + .debug_line 0x00001e67 0x79 ./Core/Startup/startup_stm32l152retx.o + .debug_line 0x00001ee0 0x95b ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_line 0x0000283b 0xc2a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_line 0x00003465 0x99f ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_line 0x00003e04 0x39cf ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o + .debug_line 0x000077d3 0xf1e ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o -.debug_str 0x00000000 0x84ad6 - .debug_str 0x00000000 0x84ad6 ./Core/Src/main.o - 0x8329b (size before relaxing) - .debug_str 0x00084ad6 0x7fe72 ./Core/Src/stm32l1xx_hal_msp.o - .debug_str 0x00084ad6 0x7f966 ./Core/Src/stm32l1xx_it.o - .debug_str 0x00084ad6 0x7f9b7 ./Core/Src/system_stm32l1xx.o - .debug_str 0x00084ad6 0x8d ./Core/Startup/startup_stm32l152retx.o - .debug_str 0x00084ad6 0x800df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o - .debug_str 0x00084ad6 0x801eb ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o - .debug_str 0x00084ad6 0x7fb4a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o - .debug_str 0x00084ad6 0x80a28 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o - .debug_str 0x00084ad6 0x7fe73 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o +.debug_str 0x00000000 0x84aee + .debug_str 0x00000000 0x84aee ./Core/Src/main.o + 0x832b3 (size before relaxing) + .debug_str 0x00084aee 0x7fe72 ./Core/Src/stm32l1xx_hal_msp.o + .debug_str 0x00084aee 0x7f966 ./Core/Src/stm32l1xx_it.o + .debug_str 0x00084aee 0x7f9b7 ./Core/Src/system_stm32l1xx.o + .debug_str 0x00084aee 0x8d ./Core/Startup/startup_stm32l152retx.o + .debug_str 0x00084aee 0x800df ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal.o + .debug_str 0x00084aee 0x801eb ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_cortex.o + .debug_str 0x00084aee 0x7fb4a ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_gpio.o + .debug_str 0x00084aee 0x80a28 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_i2c.o + .debug_str 0x00084aee 0x7fe73 ./Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_rcc.o .comment 0x00000000 0x43 .comment 0x00000000 0x43 ./Core/Src/main.o diff --git a/TP6_ACCELEROMETRE/TP6_ACCELEROMETRE Debug.launch b/TP6_ACCELEROMETRE/TP6_ACCELEROMETRE Debug.launch index 0a19d13..2b6e8e6 100644 --- a/TP6_ACCELEROMETRE/TP6_ACCELEROMETRE Debug.launch +++ b/TP6_ACCELEROMETRE/TP6_ACCELEROMETRE Debug.launch @@ -9,7 +9,7 @@ - + @@ -22,8 +22,9 @@ + - + @@ -43,6 +44,15 @@ + + + + + + + + +