From 481525d31c4fbb90399ed49dce4d8c224541d541 Mon Sep 17 00:00:00 2001 From: William Miceli Date: Sat, 26 Sep 2020 15:34:18 -0400 Subject: [PATCH] Minor rearranging of options and added static smile --- Core/Src/main.c | 89 +- Core/Src/stm32f4xx_it.c | 2 +- Debug/Core/Src/main.o | Bin 1259264 -> 1260272 bytes Debug/Core/Src/main.su | 41 +- Debug/Core/Src/stm32f4xx_it.o | Bin 1198168 -> 1198156 bytes Debug/STM32F429I-DISC1_LEDFaceMask-Rough.bin | Bin 21560 -> 22972 bytes Debug/STM32F429I-DISC1_LEDFaceMask-Rough.elf | Bin 1332700 -> 1331780 bytes Debug/STM32F429I-DISC1_LEDFaceMask-Rough.list | 16160 ++++++++-------- Debug/STM32F429I-DISC1_LEDFaceMask-Rough.map | 937 +- 9 files changed, 8969 insertions(+), 8260 deletions(-) diff --git a/Core/Src/main.c b/Core/Src/main.c index 12fd60b..d751662 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -79,6 +79,7 @@ void LEDDesign_ColorGreen(void); void LEDDesign_ColorRed(void); void LEDDesign_Crazy(void); void LEDDesign_Smile(void); +void LEDDesign_Smile_Audio(void); void LEDDesign_SuperCrazy(void); uint8_t lookupLED(uint8_t column, uint8_t row); void setLED(uint8_t pixelNumber, uint8_t redLevel, uint8_t greenLevel, uint8_t blueLevel); @@ -88,14 +89,7 @@ void updateWS2812BData(void); /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ -int _write(int32_t file, uint8_t *ptr, int32_t len) -{ - for (int i = 0; i < len; i++) - { - ITM_SendChar(*ptr++); - } - return len; -} + /* USER CODE END 0 */ /** @@ -148,21 +142,24 @@ int main(void) LEDDesign_Smile(); break; case 1: - LEDDesign_Crazy(); + LEDDesign_Smile_Audio(); break; case 2: - LEDDesign_SuperCrazy(); + LEDDesign_Crazy(); break; case 3: - LEDDesign_ColorWhite(); + LEDDesign_SuperCrazy(); break; case 4: - LEDDesign_ColorRed(); + LEDDesign_ColorWhite(); break; case 5: - LEDDesign_ColorGreen(); + LEDDesign_ColorRed(); break; case 6: + LEDDesign_ColorGreen(); + break; + case 7: LEDDesign_ColorBlue(); break; default: @@ -711,6 +708,72 @@ void LEDDesign_Crazy(void){ } } void LEDDesign_Smile(void){ + setLED(lookupLED(0,0), 0x00, 0x00, 0x00); + setLED(lookupLED(0,1), 0x00, 0x00, 0x00); + setLED(lookupLED(0,2), 0x00, 0x00, 0x00); + setLED(lookupLED(0,3), 0x00, 0x00, 0x7F); + setLED(lookupLED(0,4), 0x00, 0x00, 0x00); + setLED(lookupLED(0,5), 0x00, 0x00, 0x00); + setLED(lookupLED(0,6), 0x00, 0x00, 0x00); + setLED(lookupLED(0,7), 0x00, 0x00, 0x00); + setLED(lookupLED(1,0), 0x00, 0x00, 0x00); + setLED(lookupLED(1,1), 0x00, 0x00, 0x00); + setLED(lookupLED(1,2), 0x00, 0x00, 0x7F); + setLED(lookupLED(1,3), 0x00, 0x00, 0x00); + setLED(lookupLED(1,4), 0x00, 0x00, 0x00); + setLED(lookupLED(1,5), 0x00, 0x00, 0x00); + setLED(lookupLED(1,6), 0x00, 0x00, 0x00); + setLED(lookupLED(1,7), 0x00, 0x00, 0x00); + setLED(lookupLED(2,0), 0x00, 0x00, 0x00); + setLED(lookupLED(2,1), 0x00, 0x00, 0x00); + setLED(lookupLED(2,2), 0x00, 0x00, 0x7F); + setLED(lookupLED(2,3), 0x00, 0x00, 0x00); + setLED(lookupLED(2,4), 0x00, 0x00, 0x00); + setLED(lookupLED(2,5), 0x00, 0x00, 0x00); + setLED(lookupLED(2,6), 0x00, 0x00, 0x00); + setLED(lookupLED(2,7), 0x00, 0x00, 0x00); + setLED(lookupLED(3,0), 0x00, 0x00, 0x00); + setLED(lookupLED(3,1), 0x00, 0x00, 0x00); + setLED(lookupLED(3,2), 0x00, 0x00, 0x7F); + setLED(lookupLED(3,3), 0x00, 0x00, 0x00); + setLED(lookupLED(3,4), 0x00, 0x00, 0x00); + setLED(lookupLED(3,5), 0x00, 0x00, 0x00); + setLED(lookupLED(3,6), 0x00, 0x00, 0x00); + setLED(lookupLED(3,7), 0x00, 0x00, 0x00); + setLED(lookupLED(4,0), 0x00, 0x00, 0x00); + setLED(lookupLED(4,1), 0x00, 0x00, 0x00); + setLED(lookupLED(4,2), 0x00, 0x00, 0x7F); + setLED(lookupLED(4,3), 0x00, 0x00, 0x00); + setLED(lookupLED(4,4), 0x00, 0x00, 0x00); + setLED(lookupLED(4,5), 0x00, 0x00, 0x00); + setLED(lookupLED(4,6), 0x00, 0x00, 0x00); + setLED(lookupLED(4,7), 0x00, 0x00, 0x00); + setLED(lookupLED(5,0), 0x00, 0x00, 0x00); + setLED(lookupLED(5,1), 0x00, 0x00, 0x00); + setLED(lookupLED(5,2), 0x00, 0x00, 0x7F); + setLED(lookupLED(5,3), 0x00, 0x00, 0x00); + setLED(lookupLED(5,4), 0x00, 0x00, 0x00); + setLED(lookupLED(5,5), 0x00, 0x00, 0x00); + setLED(lookupLED(5,6), 0x00, 0x00, 0x00); + setLED(lookupLED(5,7), 0x00, 0x00, 0x00); + setLED(lookupLED(6,0), 0x00, 0x00, 0x00); + setLED(lookupLED(6,1), 0x00, 0x00, 0x00); + setLED(lookupLED(6,2), 0x00, 0x00, 0x7F); + setLED(lookupLED(6,3), 0x00, 0x00, 0x00); + setLED(lookupLED(6,4), 0x00, 0x00, 0x00); + setLED(lookupLED(6,5), 0x00, 0x00, 0x00); + setLED(lookupLED(6,6), 0x00, 0x00, 0x00); + setLED(lookupLED(6,7), 0x00, 0x00, 0x00); + setLED(lookupLED(7,0), 0x00, 0x00, 0x00); + setLED(lookupLED(7,1), 0x00, 0x00, 0x00); + setLED(lookupLED(7,2), 0x00, 0x00, 0x00); + setLED(lookupLED(7,3), 0x00, 0x00, 0x7F); + setLED(lookupLED(7,4), 0x00, 0x00, 0x00); + setLED(lookupLED(7,5), 0x00, 0x00, 0x00); + setLED(lookupLED(7,6), 0x00, 0x00, 0x00); + setLED(lookupLED(7,7), 0x00, 0x00, 0x00); +} +void LEDDesign_Smile_Audio(void){ uint8_t currentSoundLevel = getSoundLevel(); setLED(lookupLED(0,0), 0x00, 0x00, 0x00); setLED(lookupLED(0,1), 0x00, 0x00, 0x00); diff --git a/Core/Src/stm32f4xx_it.c b/Core/Src/stm32f4xx_it.c index 2d655b3..b59420f 100644 --- a/Core/Src/stm32f4xx_it.c +++ b/Core/Src/stm32f4xx_it.c @@ -226,7 +226,7 @@ void TIM6_DAC_IRQHandler(void) /* USER CODE END TIM6_DAC_IRQn 0 */ HAL_TIM_IRQHandler(&htim6); /* USER CODE BEGIN TIM6_DAC_IRQn 1 */ - LEDMode = (LEDMode + 1) % 7; + LEDMode = (LEDMode + 1) % 8; LEDDesign_PendingChange = false; /* USER CODE END TIM6_DAC_IRQn 1 */ } diff --git a/Debug/Core/Src/main.o b/Debug/Core/Src/main.o index 47ab90ef32e2fa5898e81350bd9670d95d8b6ee2..10e887ceee77c5039f883b1e790bcafc9d4c8b14 100644 GIT binary patch delta 344970 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∨_P>7N*@`Ho8L0P3AKV=ynzJ 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

#F_QIqssa=sIng4Zk>>V2US_o=c;V@8&wKk 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 delta 345402 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 diff --git a/Debug/Core/Src/main.su b/Debug/Core/Src/main.su index 2db8783..e8b198d 100644 --- a/Debug/Core/Src/main.su +++ b/Debug/Core/Src/main.su @@ -1,21 +1,20 @@ -core_cm4.h:2064:26:ITM_SendChar 16 static,ignoring_inline_asm -main.c:91:5:_write 32 static -main.c:105:5:main 8 static -main.c:184:6:SystemClock_Config 88 static -main.c:228:13:MX_ADC3_Init 24 static -main.c:278:13:MX_SPI4_Init 8 static -main.c:316:13:MX_TIM6_Init 16 static -main.c:358:13:MX_GPIO_Init 64 static -main.c:621:9:getSoundLevel 24 static -main.c:658:6:LEDDesign_Off 16 static -main.c:665:6:LEDDesign_ColorWhite 16 static -main.c:672:6:LEDDesign_ColorBlue 16 static -main.c:683:6:LEDDesign_ColorGreen 16 static -main.c:694:6:LEDDesign_ColorRed 16 static -main.c:705:6:LEDDesign_Crazy 32 static -main.c:713:6:LEDDesign_Smile 24 static -main.c:780:6:LEDDesign_SuperCrazy 24 static -main.c:795:9:lookupLED 16 static -main.c:1024:6:setLED 16 static -main.c:1029:6:updateWS2812BData 16 static -main.c:1146:6:Error_Handler 4 static +main.c:99:5:main 8 static +main.c:181:6:SystemClock_Config 88 static +main.c:225:13:MX_ADC3_Init 24 static +main.c:275:13:MX_SPI4_Init 8 static +main.c:313:13:MX_TIM6_Init 16 static +main.c:355:13:MX_GPIO_Init 64 static +main.c:618:9:getSoundLevel 24 static +main.c:655:6:LEDDesign_Off 16 static +main.c:662:6:LEDDesign_ColorWhite 16 static +main.c:669:6:LEDDesign_ColorBlue 16 static +main.c:680:6:LEDDesign_ColorGreen 16 static +main.c:691:6:LEDDesign_ColorRed 16 static +main.c:702:6:LEDDesign_Crazy 32 static +main.c:710:6:LEDDesign_Smile 8 static +main.c:776:6:LEDDesign_Smile_Audio 24 static +main.c:843:6:LEDDesign_SuperCrazy 24 static +main.c:858:9:lookupLED 16 static +main.c:1087:6:setLED 16 static +main.c:1092:6:updateWS2812BData 16 static +main.c:1209:6:Error_Handler 4 static diff --git a/Debug/Core/Src/stm32f4xx_it.o b/Debug/Core/Src/stm32f4xx_it.o index 37367a0ff079323d6dad37c109814e9fd3a0c352..f94caad9c1e19a4227cb84525954bae954e2fbb4 100644 GIT binary patch delta 1255 zcmX}rUu;u#6bJD0JMFf+uH&|M8urJrbqE7N16sDu6fG$gUb?pD-2F}tIcy*o4C`O(YS(x8pD{<=*O(a8Z2rIqNztB zf|Nw{i58-d87q3c4l{=drL8N79-=b+f|AlJLTfBFV&kJi9|(0=N@G;X7kbxH4wsa6 zv=L=2MG)&1`cP=0(lw%VxSi-FOXHYPS`hl#ln)U>G%56b2hn}DD}k)ib)mb57(!7g zyix{j*PAe#g>DEv7%A_{Bcs$P|3{l$?_f%(rh607i*FdT^>{IJ0E^mI_|nieyDW{= z7NOsSX1ne#n^5}vhM`yOvK&fE?em8A*g<(4*?O#K;Ywu9~KMPUH z)e%k0i?Sd8CA^mE)*#bzyLT9|KADJDF+FYRYm6wpQ_a+AFO|cL(rKZ$Y}YYFQ#$A{ zjoJTs7+IxrA*N?5H&;|@u4C%5U8i9Bg?867O$5rv?n6eY6k&SXuHTI*rRP1STXvU& zMWtsNm>#xW?MQ7C%HPA(8mv4!r7s$}^0M`zq;yrN*$(Egal6o8O-#Sq^%pRz^kXyA z5la_wNoj8j)2hln#&!rDZe=PsN?hHTt!A>2nRK;VM^mG%u4W|llWsmKH2SP MN{db-mG+kZ59EPEBLDyZ delta 1714 zcmX|>3rw3;6vxlKw5-sUuf45~l;S2Zn1W%NhDQ)K<<$n}B#y8bnPfA2C<+-y79l>E z;-XU!$Z>HXTV}TSh{KVUMQ|>fY?_gPLtWHmtC{mL7d4qKhGlqe&mB!pPI`a+|Ih#4 z`+Ysr6FJut=~*m>NA5f%SGdA+*Kf|bYSP-*1)Virv(o3Q*y}mF@XLU+>IYaKm=1jP zv8^W1Vy}UWKnt9BegaN_`SfK)-aL9k)+UMY(TJ;4ig4ellr19Mm2Y+DTOyio$xZ2^ zKH8TjOC5HHuS`0-XF`%Hfyzc@r%I$+K;@uHqDrRHzjIN!sZyddA**X^bj_d@5+aPP zLslBL3|XE-V?&k{MbYEKmM>X^qm%Dh2`+CDg_EBE+^;)Dt>}&&v#31L*fH8g^2%FG~RU2KO&lJ{&Jp9^uDH zy=->_Y{OUyExU?n`AJMKifb!%yNu1cwc&tn58;GvA^cgl26Pvz9Cz?D3r>^CVM-do zzl&6w7{NwOE=^kCpsAYFXcEK^_4*%E7U=!y^_6jjediqjOL3%FWxBJbEm&sgDyI91 zW-wh%bg7|rOg|_3I@1oK!-hV>v~CeV9n;{~7CdTbJ<|h3|1?^nse)5AFzsCou$^iD zSqok<+O=^iX7PN9-v10GlB`?Ly6-apf~>3f)&g>g@3oQXzeLS$HWR(In~hjks)Dvm zfD0^rjiAQ_YT}XCF};*V?)%PycEzTf*fc8yut;BHrrZC!1uaJR80*S$LhE*2v0!Rc z#KUaC-ZC0T-^zL1>R~U0P10?6vV?A{u}lx6^^0XZ>~S78c11uN59_$#g~Mi8Gt<1Q z0@kr-R?G`6#`7tT@-nVmPOkl$q_Ar%lUy9s#P$~vCzBoQc$ZDWLY~()>xDID-qTE1 z*d;VDJ#)hgM+|+2DJDwD;WQmLz4NENlj)~KUu5k;qEklutZ{Zo=*A}fRJMVFi{_R) znVw3Pu+f}df`YAPpU*MPc1kE_wgsz<^uPP8Fe z!I(+(64O>C;Xj_~cd7a3wVUa7pM?8Zo99;Z55aDpxepu5^?jx&IAUhL8Yc> ztd_WIeQN&Q+ryr}q)G^|X9v++Xa5FM5s>f`=b7;39a^F{XQ&wi69;T7M>; zy2DO6Z#t0ge|NUV1poj5 diff --git a/Debug/STM32F429I-DISC1_LEDFaceMask-Rough.bin b/Debug/STM32F429I-DISC1_LEDFaceMask-Rough.bin index 545623b790dab676f005d589ad524abfe44e75b9..bcb21d2c6ff037ae361212eca7088089f05ffed2 100644 GIT binary patch delta 4469 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 )-rCH}y{WchrrkXt& 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%0Au~Owv-rnWNTdymj-N4c0+E^ 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�=(AFX?; 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 BbLs#9 diff --git a/Debug/STM32F429I-DISC1_LEDFaceMask-Rough.list b/Debug/STM32F429I-DISC1_LEDFaceMask-Rough.list index 7f34dce..aa631d4 100644 --- a/Debug/STM32F429I-DISC1_LEDFaceMask-Rough.list +++ b/Debug/STM32F429I-DISC1_LEDFaceMask-Rough.list @@ -5,45 +5,45 @@ Sections: Idx Name Size VMA LMA File off Algn 0 .isr_vector 000001ac 08000000 08000000 00010000 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA - 1 .text 000051f4 080001b0 080001b0 000101b0 2**3 + 1 .text 00005778 080001b0 080001b0 000101b0 2**3 CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .rodata 00000010 080053a4 080053a4 000153a4 2**2 + 2 .rodata 00000010 08005928 08005928 00015928 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA - 3 .ARM.extab 00000000 080053b4 080053b4 00020074 2**0 + 3 .ARM.extab 00000000 08005938 08005938 00020074 2**0 CONTENTS - 4 .ARM 00000008 080053b4 080053b4 000153b4 2**2 + 4 .ARM 00000008 08005938 08005938 00015938 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA - 5 .preinit_array 00000000 080053bc 080053bc 00020074 2**0 + 5 .preinit_array 00000000 08005940 08005940 00020074 2**0 CONTENTS, ALLOC, LOAD, DATA - 6 .init_array 00000004 080053bc 080053bc 000153bc 2**2 + 6 .init_array 00000004 08005940 08005940 00015940 2**2 CONTENTS, ALLOC, LOAD, DATA - 7 .fini_array 00000004 080053c0 080053c0 000153c0 2**2 + 7 .fini_array 00000004 08005944 08005944 00015944 2**2 CONTENTS, ALLOC, LOAD, DATA - 8 .data 00000074 20000000 080053c4 00020000 2**2 + 8 .data 00000074 20000000 08005948 00020000 2**2 CONTENTS, ALLOC, LOAD, DATA - 9 .bss 0000042c 20000074 08005438 00020074 2**2 + 9 .bss 0000042c 20000074 080059bc 00020074 2**2 ALLOC - 10 ._user_heap_stack 00000600 200004a0 08005438 000204a0 2**0 + 10 ._user_heap_stack 00000600 200004a0 080059bc 000204a0 2**0 ALLOC 11 .ARM.attributes 00000030 00000000 00000000 00020074 2**0 CONTENTS, READONLY - 12 .debug_info 0000d9cf 00000000 00000000 000200a4 2**0 + 12 .debug_info 0000d731 00000000 00000000 000200a4 2**0 CONTENTS, READONLY, DEBUGGING - 13 .debug_abbrev 00001d33 00000000 00000000 0002da73 2**0 + 13 .debug_abbrev 00001c9c 00000000 00000000 0002d7d5 2**0 CONTENTS, READONLY, DEBUGGING - 14 .debug_aranges 00000d30 00000000 00000000 0002f7a8 2**3 + 14 .debug_aranges 00000d28 00000000 00000000 0002f478 2**3 CONTENTS, READONLY, DEBUGGING - 15 .debug_ranges 00000c48 00000000 00000000 000304d8 2**3 + 15 .debug_ranges 00000c40 00000000 00000000 000301a0 2**3 CONTENTS, READONLY, DEBUGGING - 16 .debug_macro 0002448d 00000000 00000000 00031120 2**0 + 16 .debug_macro 0002448d 00000000 00000000 00030de0 2**0 CONTENTS, READONLY, DEBUGGING - 17 .debug_line 0000a54b 00000000 00000000 000555ad 2**0 + 17 .debug_line 0000a530 00000000 00000000 0005526d 2**0 CONTENTS, READONLY, DEBUGGING - 18 .debug_str 000de373 00000000 00000000 0005faf8 2**0 + 18 .debug_str 000de32d 00000000 00000000 0005f79d 2**0 CONTENTS, READONLY, DEBUGGING - 19 .comment 0000007b 00000000 00000000 0013de6b 2**0 + 19 .comment 0000007b 00000000 00000000 0013daca 2**0 CONTENTS, READONLY - 20 .debug_frame 00003a10 00000000 00000000 0013dee8 2**2 + 20 .debug_frame 000039e0 00000000 00000000 0013db48 2**2 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: @@ -62,7 +62,7 @@ Disassembly of section .text: 80001c6: bd10 pop {r4, pc} 80001c8: 20000074 .word 0x20000074 80001cc: 00000000 .word 0x00000000 - 80001d0: 0800538c .word 0x0800538c + 80001d0: 08005910 .word 0x08005910 080001d4 : 80001d4: b508 push {r3, lr} @@ -74,7 +74,7 @@ Disassembly of section .text: 80001e2: bd08 pop {r3, pc} 80001e4: 00000000 .word 0x00000000 80001e8: 20000078 .word 0x20000078 - 80001ec: 0800538c .word 0x0800538c + 80001ec: 08005910 .word 0x08005910 080001f0 <__aeabi_drsub>: 80001f0: f081 4100 eor.w r1, r1, #2147483648 ; 0x80000000 @@ -1017,11565 +1017,12213 @@ int main(void) /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); - 8000cd0: f002 f878 bl 8002dc4 + 8000cd0: f002 fb3a bl 8003348 /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); - 8000cd4: f000 f854 bl 8000d80 + 8000cd4: f000 f85a bl 8000d8c /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); - 8000cd8: f000 f986 bl 8000fe8 + 8000cd8: f000 f98c bl 8000ff4 MX_SPI4_Init(); - 8000cdc: f000 f90e bl 8000efc + 8000cdc: f000 f914 bl 8000f08 MX_TIM6_Init(); - 8000ce0: f000 f942 bl 8000f68 + 8000ce0: f000 f948 bl 8000f74 MX_ADC3_Init(); - 8000ce4: f000 f8b6 bl 8000e54 + 8000ce4: f000 f8bc bl 8000e60 /* USER CODE BEGIN 2 */ updateWS2812BData(); - 8000ce8: f001 fcf4 bl 80026d4 + 8000ce8: f001 ffbc bl 8002c64 HAL_SPI_Transmit_IT(&hspi4, (uint8_t*) &LEDData, (uint16_t) 66 * 3 * 3); 8000cec: f240 2252 movw r2, #594 ; 0x252 - 8000cf0: 491e ldr r1, [pc, #120] ; (8000d6c ) - 8000cf2: 481f ldr r0, [pc, #124] ; (8000d70 ) - 8000cf4: f003 fc72 bl 80045dc + 8000cf0: 4921 ldr r1, [pc, #132] ; (8000d78 ) + 8000cf2: 4822 ldr r0, [pc, #136] ; (8000d7c ) + 8000cf4: f003 ff34 bl 8004b60 HAL_ADC_Start(&hadc3); - 8000cf8: 481e ldr r0, [pc, #120] ; (8000d74 ) - 8000cfa: f002 f93b bl 8002f74 + 8000cf8: 4821 ldr r0, [pc, #132] ; (8000d80 ) + 8000cfa: f002 fbfd bl 80034f8 /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { if(LEDDesign_PendingChange){ - 8000cfe: 4b1e ldr r3, [pc, #120] ; (8000d78 ) + 8000cfe: 4b21 ldr r3, [pc, #132] ; (8000d84 ) 8000d00: 781b ldrb r3, [r3, #0] 8000d02: 2b00 cmp r3, #0 8000d04: d002 beq.n 8000d0c LEDDesign_Off(); - 8000d06: f000 fc61 bl 80015cc - 8000d0a: e02c b.n 8000d66 + 8000d06: f000 fc67 bl 80015d8 + 8000d0a: e031 b.n 8000d70 }else{ switch (LEDMode) { - 8000d0c: 4b1b ldr r3, [pc, #108] ; (8000d7c ) + 8000d0c: 4b1e ldr r3, [pc, #120] ; (8000d88 ) 8000d0e: 781b ldrb r3, [r3, #0] - 8000d10: 2b06 cmp r3, #6 - 8000d12: d826 bhi.n 8000d62 + 8000d10: 2b07 cmp r3, #7 + 8000d12: d82b bhi.n 8000d6c 8000d14: a201 add r2, pc, #4 ; (adr r2, 8000d1c ) 8000d16: f852 f023 ldr.w pc, [r2, r3, lsl #2] 8000d1a: bf00 nop - 8000d1c: 08000d39 .word 0x08000d39 - 8000d20: 08000d3f .word 0x08000d3f - 8000d24: 08000d45 .word 0x08000d45 - 8000d28: 08000d4b .word 0x08000d4b - 8000d2c: 08000d51 .word 0x08000d51 - 8000d30: 08000d57 .word 0x08000d57 - 8000d34: 08000d5d .word 0x08000d5d + 8000d1c: 08000d3d .word 0x08000d3d + 8000d20: 08000d43 .word 0x08000d43 + 8000d24: 08000d49 .word 0x08000d49 + 8000d28: 08000d4f .word 0x08000d4f + 8000d2c: 08000d55 .word 0x08000d55 + 8000d30: 08000d5b .word 0x08000d5b + 8000d34: 08000d61 .word 0x08000d61 + 8000d38: 08000d67 .word 0x08000d67 case 0: LEDDesign_Smile(); - 8000d38: f000 fd9a bl 8001870 + 8000d3c: f000 fd9c bl 8001878 break; - 8000d3c: e013 b.n 8000d66 + 8000d40: e016 b.n 8000d70 case 1: - LEDDesign_Crazy(); - 8000d3e: f000 fd55 bl 80017ec + LEDDesign_Smile_Audio(); + 8000d42: f001 f85d bl 8001e00 break; - 8000d42: e010 b.n 8000d66 + 8000d46: e013 b.n 8000d70 case 2: - LEDDesign_SuperCrazy(); - 8000d44: f001 faa4 bl 8002290 + LEDDesign_Crazy(); + 8000d48: f000 fd56 bl 80017f8 break; - 8000d48: e00d b.n 8000d66 + 8000d4c: e010 b.n 8000d70 case 3: - LEDDesign_ColorWhite(); - 8000d4a: f000 fc67 bl 800161c + LEDDesign_SuperCrazy(); + 8000d4e: f001 fd67 bl 8002820 break; - 8000d4e: e00a b.n 8000d66 + 8000d52: e00d b.n 8000d70 case 4: - LEDDesign_ColorRed(); - 8000d50: f000 fd0c bl 800176c + LEDDesign_ColorWhite(); + 8000d54: f000 fc68 bl 8001628 break; - 8000d54: e007 b.n 8000d66 + 8000d58: e00a b.n 8000d70 case 5: - LEDDesign_ColorGreen(); - 8000d56: f000 fcc9 bl 80016ec + LEDDesign_ColorRed(); + 8000d5a: f000 fd0d bl 8001778 break; - 8000d5a: e004 b.n 8000d66 + 8000d5e: e007 b.n 8000d70 case 6: - LEDDesign_ColorBlue(); - 8000d5c: f000 fc86 bl 800166c + LEDDesign_ColorGreen(); + 8000d60: f000 fcca bl 80016f8 break; - 8000d60: e001 b.n 8000d66 + 8000d64: e004 b.n 8000d70 + case 7: + LEDDesign_ColorBlue(); + 8000d66: f000 fc87 bl 8001678 + break; + 8000d6a: e001 b.n 8000d70 default: LEDDesign_Off(); - 8000d62: f000 fc33 bl 80015cc + 8000d6c: f000 fc34 bl 80015d8 } } updateWS2812BData(); - 8000d66: f001 fcb5 bl 80026d4 + 8000d70: f001 ff78 bl 8002c64 if(LEDDesign_PendingChange){ - 8000d6a: e7c8 b.n 8000cfe - 8000d6c: 20000094 .word 0x20000094 - 8000d70: 200003fc .word 0x200003fc - 8000d74: 200003b4 .word 0x200003b4 - 8000d78: 20000091 .word 0x20000091 - 8000d7c: 20000090 .word 0x20000090 + 8000d74: e7c3 b.n 8000cfe + 8000d76: bf00 nop + 8000d78: 20000094 .word 0x20000094 + 8000d7c: 200003fc .word 0x200003fc + 8000d80: 200003b4 .word 0x200003b4 + 8000d84: 20000091 .word 0x20000091 + 8000d88: 20000090 .word 0x20000090 -08000d80 : +08000d8c : /** * @brief System Clock Configuration * @retval None */ void SystemClock_Config(void) { - 8000d80: b580 push {r7, lr} - 8000d82: b094 sub sp, #80 ; 0x50 - 8000d84: af00 add r7, sp, #0 + 8000d8c: b580 push {r7, lr} + 8000d8e: b094 sub sp, #80 ; 0x50 + 8000d90: af00 add r7, sp, #0 RCC_OscInitTypeDef RCC_OscInitStruct = {0}; - 8000d86: f107 0320 add.w r3, r7, #32 - 8000d8a: 2230 movs r2, #48 ; 0x30 - 8000d8c: 2100 movs r1, #0 - 8000d8e: 4618 mov r0, r3 - 8000d90: f004 fa4c bl 800522c + 8000d92: f107 0320 add.w r3, r7, #32 + 8000d96: 2230 movs r2, #48 ; 0x30 + 8000d98: 2100 movs r1, #0 + 8000d9a: 4618 mov r0, r3 + 8000d9c: f004 fd08 bl 80057b0 RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; - 8000d94: f107 030c add.w r3, r7, #12 - 8000d98: 2200 movs r2, #0 - 8000d9a: 601a str r2, [r3, #0] - 8000d9c: 605a str r2, [r3, #4] - 8000d9e: 609a str r2, [r3, #8] - 8000da0: 60da str r2, [r3, #12] - 8000da2: 611a str r2, [r3, #16] + 8000da0: f107 030c add.w r3, r7, #12 + 8000da4: 2200 movs r2, #0 + 8000da6: 601a str r2, [r3, #0] + 8000da8: 605a str r2, [r3, #4] + 8000daa: 609a str r2, [r3, #8] + 8000dac: 60da str r2, [r3, #12] + 8000dae: 611a str r2, [r3, #16] /** Configure the main internal regulator output voltage */ __HAL_RCC_PWR_CLK_ENABLE(); - 8000da4: 2300 movs r3, #0 - 8000da6: 60bb str r3, [r7, #8] - 8000da8: 4b28 ldr r3, [pc, #160] ; (8000e4c ) - 8000daa: 6c1b ldr r3, [r3, #64] ; 0x40 - 8000dac: 4a27 ldr r2, [pc, #156] ; (8000e4c ) - 8000dae: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 8000db2: 6413 str r3, [r2, #64] ; 0x40 - 8000db4: 4b25 ldr r3, [pc, #148] ; (8000e4c ) + 8000db0: 2300 movs r3, #0 + 8000db2: 60bb str r3, [r7, #8] + 8000db4: 4b28 ldr r3, [pc, #160] ; (8000e58 ) 8000db6: 6c1b ldr r3, [r3, #64] ; 0x40 - 8000db8: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 8000dbc: 60bb str r3, [r7, #8] - 8000dbe: 68bb ldr r3, [r7, #8] + 8000db8: 4a27 ldr r2, [pc, #156] ; (8000e58 ) + 8000dba: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 8000dbe: 6413 str r3, [r2, #64] ; 0x40 + 8000dc0: 4b25 ldr r3, [pc, #148] ; (8000e58 ) + 8000dc2: 6c1b ldr r3, [r3, #64] ; 0x40 + 8000dc4: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 8000dc8: 60bb str r3, [r7, #8] + 8000dca: 68bb ldr r3, [r7, #8] __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); - 8000dc0: 2300 movs r3, #0 - 8000dc2: 607b str r3, [r7, #4] - 8000dc4: 4b22 ldr r3, [pc, #136] ; (8000e50 ) - 8000dc6: 681b ldr r3, [r3, #0] - 8000dc8: 4a21 ldr r2, [pc, #132] ; (8000e50 ) - 8000dca: f443 4340 orr.w r3, r3, #49152 ; 0xc000 - 8000dce: 6013 str r3, [r2, #0] - 8000dd0: 4b1f ldr r3, [pc, #124] ; (8000e50 ) + 8000dcc: 2300 movs r3, #0 + 8000dce: 607b str r3, [r7, #4] + 8000dd0: 4b22 ldr r3, [pc, #136] ; (8000e5c ) 8000dd2: 681b ldr r3, [r3, #0] - 8000dd4: f403 4340 and.w r3, r3, #49152 ; 0xc000 - 8000dd8: 607b str r3, [r7, #4] - 8000dda: 687b ldr r3, [r7, #4] + 8000dd4: 4a21 ldr r2, [pc, #132] ; (8000e5c ) + 8000dd6: f443 4340 orr.w r3, r3, #49152 ; 0xc000 + 8000dda: 6013 str r3, [r2, #0] + 8000ddc: 4b1f ldr r3, [pc, #124] ; (8000e5c ) + 8000dde: 681b ldr r3, [r3, #0] + 8000de0: f403 4340 and.w r3, r3, #49152 ; 0xc000 + 8000de4: 607b str r3, [r7, #4] + 8000de6: 687b ldr r3, [r7, #4] /** Initializes the RCC Oscillators according to the specified parameters * in the RCC_OscInitTypeDef structure. */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; - 8000ddc: 2301 movs r3, #1 - 8000dde: 623b str r3, [r7, #32] + 8000de8: 2301 movs r3, #1 + 8000dea: 623b str r3, [r7, #32] RCC_OscInitStruct.HSEState = RCC_HSE_ON; - 8000de0: f44f 3380 mov.w r3, #65536 ; 0x10000 - 8000de4: 627b str r3, [r7, #36] ; 0x24 + 8000dec: f44f 3380 mov.w r3, #65536 ; 0x10000 + 8000df0: 627b str r3, [r7, #36] ; 0x24 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; - 8000de6: 2302 movs r3, #2 - 8000de8: 63bb str r3, [r7, #56] ; 0x38 + 8000df2: 2302 movs r3, #2 + 8000df4: 63bb str r3, [r7, #56] ; 0x38 RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; - 8000dea: f44f 0380 mov.w r3, #4194304 ; 0x400000 - 8000dee: 63fb str r3, [r7, #60] ; 0x3c + 8000df6: f44f 0380 mov.w r3, #4194304 ; 0x400000 + 8000dfa: 63fb str r3, [r7, #60] ; 0x3c RCC_OscInitStruct.PLL.PLLM = 4; - 8000df0: 2304 movs r3, #4 - 8000df2: 643b str r3, [r7, #64] ; 0x40 + 8000dfc: 2304 movs r3, #4 + 8000dfe: 643b str r3, [r7, #64] ; 0x40 RCC_OscInitStruct.PLL.PLLN = 160; - 8000df4: 23a0 movs r3, #160 ; 0xa0 - 8000df6: 647b str r3, [r7, #68] ; 0x44 + 8000e00: 23a0 movs r3, #160 ; 0xa0 + 8000e02: 647b str r3, [r7, #68] ; 0x44 RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; - 8000df8: 2302 movs r3, #2 - 8000dfa: 64bb str r3, [r7, #72] ; 0x48 + 8000e04: 2302 movs r3, #2 + 8000e06: 64bb str r3, [r7, #72] ; 0x48 RCC_OscInitStruct.PLL.PLLQ = 7; - 8000dfc: 2307 movs r3, #7 - 8000dfe: 64fb str r3, [r7, #76] ; 0x4c + 8000e08: 2307 movs r3, #7 + 8000e0a: 64fb str r3, [r7, #76] ; 0x4c if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) - 8000e00: f107 0320 add.w r3, r7, #32 - 8000e04: 4618 mov r0, r3 - 8000e06: f002 ff57 bl 8003cb8 - 8000e0a: 4603 mov r3, r0 - 8000e0c: 2b00 cmp r3, #0 - 8000e0e: d001 beq.n 8000e14 + 8000e0c: f107 0320 add.w r3, r7, #32 + 8000e10: 4618 mov r0, r3 + 8000e12: f003 fa13 bl 800423c + 8000e16: 4603 mov r3, r0 + 8000e18: 2b00 cmp r3, #0 + 8000e1a: d001 beq.n 8000e20 { Error_Handler(); - 8000e10: f001 fe00 bl 8002a14 + 8000e1c: f002 f8c2 bl 8002fa4 } /** Initializes the CPU, AHB and APB buses clocks */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK - 8000e14: 230f movs r3, #15 - 8000e16: 60fb str r3, [r7, #12] + 8000e20: 230f movs r3, #15 + 8000e22: 60fb str r3, [r7, #12] |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; - 8000e18: 2302 movs r3, #2 - 8000e1a: 613b str r3, [r7, #16] + 8000e24: 2302 movs r3, #2 + 8000e26: 613b str r3, [r7, #16] RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; - 8000e1c: 2300 movs r3, #0 - 8000e1e: 617b str r3, [r7, #20] + 8000e28: 2300 movs r3, #0 + 8000e2a: 617b str r3, [r7, #20] RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; - 8000e20: f44f 53a0 mov.w r3, #5120 ; 0x1400 - 8000e24: 61bb str r3, [r7, #24] + 8000e2c: f44f 53a0 mov.w r3, #5120 ; 0x1400 + 8000e30: 61bb str r3, [r7, #24] RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; - 8000e26: f44f 5380 mov.w r3, #4096 ; 0x1000 - 8000e2a: 61fb str r3, [r7, #28] + 8000e32: f44f 5380 mov.w r3, #4096 ; 0x1000 + 8000e36: 61fb str r3, [r7, #28] if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) - 8000e2c: f107 030c add.w r3, r7, #12 - 8000e30: 2105 movs r1, #5 - 8000e32: 4618 mov r0, r3 - 8000e34: f003 f9b0 bl 8004198 - 8000e38: 4603 mov r3, r0 - 8000e3a: 2b00 cmp r3, #0 - 8000e3c: d001 beq.n 8000e42 + 8000e38: f107 030c add.w r3, r7, #12 + 8000e3c: 2105 movs r1, #5 + 8000e3e: 4618 mov r0, r3 + 8000e40: f003 fc6c bl 800471c + 8000e44: 4603 mov r3, r0 + 8000e46: 2b00 cmp r3, #0 + 8000e48: d001 beq.n 8000e4e { Error_Handler(); - 8000e3e: f001 fde9 bl 8002a14 + 8000e4a: f002 f8ab bl 8002fa4 } } - 8000e42: bf00 nop - 8000e44: 3750 adds r7, #80 ; 0x50 - 8000e46: 46bd mov sp, r7 - 8000e48: bd80 pop {r7, pc} - 8000e4a: bf00 nop - 8000e4c: 40023800 .word 0x40023800 - 8000e50: 40007000 .word 0x40007000 + 8000e4e: bf00 nop + 8000e50: 3750 adds r7, #80 ; 0x50 + 8000e52: 46bd mov sp, r7 + 8000e54: bd80 pop {r7, pc} + 8000e56: bf00 nop + 8000e58: 40023800 .word 0x40023800 + 8000e5c: 40007000 .word 0x40007000 -08000e54 : +08000e60 : * @brief ADC3 Initialization Function * @param None * @retval None */ static void MX_ADC3_Init(void) { - 8000e54: b580 push {r7, lr} - 8000e56: b084 sub sp, #16 - 8000e58: af00 add r7, sp, #0 + 8000e60: b580 push {r7, lr} + 8000e62: b084 sub sp, #16 + 8000e64: af00 add r7, sp, #0 /* USER CODE BEGIN ADC3_Init 0 */ /* USER CODE END ADC3_Init 0 */ ADC_ChannelConfTypeDef sConfig = {0}; - 8000e5a: 463b mov r3, r7 - 8000e5c: 2200 movs r2, #0 - 8000e5e: 601a str r2, [r3, #0] - 8000e60: 605a str r2, [r3, #4] - 8000e62: 609a str r2, [r3, #8] - 8000e64: 60da str r2, [r3, #12] + 8000e66: 463b mov r3, r7 + 8000e68: 2200 movs r2, #0 + 8000e6a: 601a str r2, [r3, #0] + 8000e6c: 605a str r2, [r3, #4] + 8000e6e: 609a str r2, [r3, #8] + 8000e70: 60da str r2, [r3, #12] /* USER CODE BEGIN ADC3_Init 1 */ /* USER CODE END ADC3_Init 1 */ /** Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of conversion) */ hadc3.Instance = ADC3; - 8000e66: 4b22 ldr r3, [pc, #136] ; (8000ef0 ) - 8000e68: 4a22 ldr r2, [pc, #136] ; (8000ef4 ) - 8000e6a: 601a str r2, [r3, #0] + 8000e72: 4b22 ldr r3, [pc, #136] ; (8000efc ) + 8000e74: 4a22 ldr r2, [pc, #136] ; (8000f00 ) + 8000e76: 601a str r2, [r3, #0] hadc3.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4; - 8000e6c: 4b20 ldr r3, [pc, #128] ; (8000ef0 ) - 8000e6e: f44f 3280 mov.w r2, #65536 ; 0x10000 - 8000e72: 605a str r2, [r3, #4] + 8000e78: 4b20 ldr r3, [pc, #128] ; (8000efc ) + 8000e7a: f44f 3280 mov.w r2, #65536 ; 0x10000 + 8000e7e: 605a str r2, [r3, #4] hadc3.Init.Resolution = ADC_RESOLUTION_8B; - 8000e74: 4b1e ldr r3, [pc, #120] ; (8000ef0 ) - 8000e76: f04f 7200 mov.w r2, #33554432 ; 0x2000000 - 8000e7a: 609a str r2, [r3, #8] + 8000e80: 4b1e ldr r3, [pc, #120] ; (8000efc ) + 8000e82: f04f 7200 mov.w r2, #33554432 ; 0x2000000 + 8000e86: 609a str r2, [r3, #8] hadc3.Init.ScanConvMode = DISABLE; - 8000e7c: 4b1c ldr r3, [pc, #112] ; (8000ef0 ) - 8000e7e: 2200 movs r2, #0 - 8000e80: 611a str r2, [r3, #16] - hadc3.Init.ContinuousConvMode = DISABLE; - 8000e82: 4b1b ldr r3, [pc, #108] ; (8000ef0 ) - 8000e84: 2200 movs r2, #0 - 8000e86: 761a strb r2, [r3, #24] - hadc3.Init.DiscontinuousConvMode = DISABLE; - 8000e88: 4b19 ldr r3, [pc, #100] ; (8000ef0 ) + 8000e88: 4b1c ldr r3, [pc, #112] ; (8000efc ) 8000e8a: 2200 movs r2, #0 - 8000e8c: f883 2020 strb.w r2, [r3, #32] + 8000e8c: 611a str r2, [r3, #16] + hadc3.Init.ContinuousConvMode = DISABLE; + 8000e8e: 4b1b ldr r3, [pc, #108] ; (8000efc ) + 8000e90: 2200 movs r2, #0 + 8000e92: 761a strb r2, [r3, #24] + hadc3.Init.DiscontinuousConvMode = DISABLE; + 8000e94: 4b19 ldr r3, [pc, #100] ; (8000efc ) + 8000e96: 2200 movs r2, #0 + 8000e98: f883 2020 strb.w r2, [r3, #32] hadc3.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; - 8000e90: 4b17 ldr r3, [pc, #92] ; (8000ef0 ) - 8000e92: 2200 movs r2, #0 - 8000e94: 62da str r2, [r3, #44] ; 0x2c - hadc3.Init.ExternalTrigConv = ADC_SOFTWARE_START; - 8000e96: 4b16 ldr r3, [pc, #88] ; (8000ef0 ) - 8000e98: 4a17 ldr r2, [pc, #92] ; (8000ef8 ) - 8000e9a: 629a str r2, [r3, #40] ; 0x28 - hadc3.Init.DataAlign = ADC_DATAALIGN_RIGHT; - 8000e9c: 4b14 ldr r3, [pc, #80] ; (8000ef0 ) + 8000e9c: 4b17 ldr r3, [pc, #92] ; (8000efc ) 8000e9e: 2200 movs r2, #0 - 8000ea0: 60da str r2, [r3, #12] - hadc3.Init.NbrOfConversion = 1; - 8000ea2: 4b13 ldr r3, [pc, #76] ; (8000ef0 ) - 8000ea4: 2201 movs r2, #1 - 8000ea6: 61da str r2, [r3, #28] - hadc3.Init.DMAContinuousRequests = DISABLE; - 8000ea8: 4b11 ldr r3, [pc, #68] ; (8000ef0 ) + 8000ea0: 62da str r2, [r3, #44] ; 0x2c + hadc3.Init.ExternalTrigConv = ADC_SOFTWARE_START; + 8000ea2: 4b16 ldr r3, [pc, #88] ; (8000efc ) + 8000ea4: 4a17 ldr r2, [pc, #92] ; (8000f04 ) + 8000ea6: 629a str r2, [r3, #40] ; 0x28 + hadc3.Init.DataAlign = ADC_DATAALIGN_RIGHT; + 8000ea8: 4b14 ldr r3, [pc, #80] ; (8000efc ) 8000eaa: 2200 movs r2, #0 - 8000eac: f883 2030 strb.w r2, [r3, #48] ; 0x30 + 8000eac: 60da str r2, [r3, #12] + hadc3.Init.NbrOfConversion = 1; + 8000eae: 4b13 ldr r3, [pc, #76] ; (8000efc ) + 8000eb0: 2201 movs r2, #1 + 8000eb2: 61da str r2, [r3, #28] + hadc3.Init.DMAContinuousRequests = DISABLE; + 8000eb4: 4b11 ldr r3, [pc, #68] ; (8000efc ) + 8000eb6: 2200 movs r2, #0 + 8000eb8: f883 2030 strb.w r2, [r3, #48] ; 0x30 hadc3.Init.EOCSelection = ADC_EOC_SINGLE_CONV; - 8000eb0: 4b0f ldr r3, [pc, #60] ; (8000ef0 ) - 8000eb2: 2201 movs r2, #1 - 8000eb4: 615a str r2, [r3, #20] + 8000ebc: 4b0f ldr r3, [pc, #60] ; (8000efc ) + 8000ebe: 2201 movs r2, #1 + 8000ec0: 615a str r2, [r3, #20] if (HAL_ADC_Init(&hadc3) != HAL_OK) - 8000eb6: 480e ldr r0, [pc, #56] ; (8000ef0 ) - 8000eb8: f002 f818 bl 8002eec - 8000ebc: 4603 mov r3, r0 - 8000ebe: 2b00 cmp r3, #0 - 8000ec0: d001 beq.n 8000ec6 + 8000ec2: 480e ldr r0, [pc, #56] ; (8000efc ) + 8000ec4: f002 fad4 bl 8003470 + 8000ec8: 4603 mov r3, r0 + 8000eca: 2b00 cmp r3, #0 + 8000ecc: d001 beq.n 8000ed2 { Error_Handler(); - 8000ec2: f001 fda7 bl 8002a14 + 8000ece: f002 f869 bl 8002fa4 } /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time. */ sConfig.Channel = ADC_CHANNEL_4; - 8000ec6: 2304 movs r3, #4 - 8000ec8: 603b str r3, [r7, #0] + 8000ed2: 2304 movs r3, #4 + 8000ed4: 603b str r3, [r7, #0] sConfig.Rank = 1; - 8000eca: 2301 movs r3, #1 - 8000ecc: 607b str r3, [r7, #4] + 8000ed6: 2301 movs r3, #1 + 8000ed8: 607b str r3, [r7, #4] sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES; - 8000ece: 2300 movs r3, #0 - 8000ed0: 60bb str r3, [r7, #8] + 8000eda: 2300 movs r3, #0 + 8000edc: 60bb str r3, [r7, #8] if (HAL_ADC_ConfigChannel(&hadc3, &sConfig) != HAL_OK) - 8000ed2: 463b mov r3, r7 - 8000ed4: 4619 mov r1, r3 - 8000ed6: 4806 ldr r0, [pc, #24] ; (8000ef0 ) - 8000ed8: f002 f9a4 bl 8003224 - 8000edc: 4603 mov r3, r0 - 8000ede: 2b00 cmp r3, #0 - 8000ee0: d001 beq.n 8000ee6 + 8000ede: 463b mov r3, r7 + 8000ee0: 4619 mov r1, r3 + 8000ee2: 4806 ldr r0, [pc, #24] ; (8000efc ) + 8000ee4: f002 fc60 bl 80037a8 + 8000ee8: 4603 mov r3, r0 + 8000eea: 2b00 cmp r3, #0 + 8000eec: d001 beq.n 8000ef2 { Error_Handler(); - 8000ee2: f001 fd97 bl 8002a14 + 8000eee: f002 f859 bl 8002fa4 } /* USER CODE BEGIN ADC3_Init 2 */ /* USER CODE END ADC3_Init 2 */ } - 8000ee6: bf00 nop - 8000ee8: 3710 adds r7, #16 - 8000eea: 46bd mov sp, r7 - 8000eec: bd80 pop {r7, pc} - 8000eee: bf00 nop - 8000ef0: 200003b4 .word 0x200003b4 - 8000ef4: 40012200 .word 0x40012200 - 8000ef8: 0f000001 .word 0x0f000001 + 8000ef2: bf00 nop + 8000ef4: 3710 adds r7, #16 + 8000ef6: 46bd mov sp, r7 + 8000ef8: bd80 pop {r7, pc} + 8000efa: bf00 nop + 8000efc: 200003b4 .word 0x200003b4 + 8000f00: 40012200 .word 0x40012200 + 8000f04: 0f000001 .word 0x0f000001 -08000efc : +08000f08 : * @brief SPI4 Initialization Function * @param None * @retval None */ static void MX_SPI4_Init(void) { - 8000efc: b580 push {r7, lr} - 8000efe: af00 add r7, sp, #0 + 8000f08: b580 push {r7, lr} + 8000f0a: af00 add r7, sp, #0 /* USER CODE BEGIN SPI4_Init 1 */ /* USER CODE END SPI4_Init 1 */ /* SPI4 parameter configuration*/ hspi4.Instance = SPI4; - 8000f00: 4b17 ldr r3, [pc, #92] ; (8000f60 ) - 8000f02: 4a18 ldr r2, [pc, #96] ; (8000f64 ) - 8000f04: 601a str r2, [r3, #0] + 8000f0c: 4b17 ldr r3, [pc, #92] ; (8000f6c ) + 8000f0e: 4a18 ldr r2, [pc, #96] ; (8000f70 ) + 8000f10: 601a str r2, [r3, #0] hspi4.Init.Mode = SPI_MODE_MASTER; - 8000f06: 4b16 ldr r3, [pc, #88] ; (8000f60 ) - 8000f08: f44f 7282 mov.w r2, #260 ; 0x104 - 8000f0c: 605a str r2, [r3, #4] + 8000f12: 4b16 ldr r3, [pc, #88] ; (8000f6c ) + 8000f14: f44f 7282 mov.w r2, #260 ; 0x104 + 8000f18: 605a str r2, [r3, #4] hspi4.Init.Direction = SPI_DIRECTION_2LINES; - 8000f0e: 4b14 ldr r3, [pc, #80] ; (8000f60 ) - 8000f10: 2200 movs r2, #0 - 8000f12: 609a str r2, [r3, #8] - hspi4.Init.DataSize = SPI_DATASIZE_8BIT; - 8000f14: 4b12 ldr r3, [pc, #72] ; (8000f60 ) - 8000f16: 2200 movs r2, #0 - 8000f18: 60da str r2, [r3, #12] - hspi4.Init.CLKPolarity = SPI_POLARITY_LOW; - 8000f1a: 4b11 ldr r3, [pc, #68] ; (8000f60 ) + 8000f1a: 4b14 ldr r3, [pc, #80] ; (8000f6c ) 8000f1c: 2200 movs r2, #0 - 8000f1e: 611a str r2, [r3, #16] - hspi4.Init.CLKPhase = SPI_PHASE_1EDGE; - 8000f20: 4b0f ldr r3, [pc, #60] ; (8000f60 ) + 8000f1e: 609a str r2, [r3, #8] + hspi4.Init.DataSize = SPI_DATASIZE_8BIT; + 8000f20: 4b12 ldr r3, [pc, #72] ; (8000f6c ) 8000f22: 2200 movs r2, #0 - 8000f24: 615a str r2, [r3, #20] + 8000f24: 60da str r2, [r3, #12] + hspi4.Init.CLKPolarity = SPI_POLARITY_LOW; + 8000f26: 4b11 ldr r3, [pc, #68] ; (8000f6c ) + 8000f28: 2200 movs r2, #0 + 8000f2a: 611a str r2, [r3, #16] + hspi4.Init.CLKPhase = SPI_PHASE_1EDGE; + 8000f2c: 4b0f ldr r3, [pc, #60] ; (8000f6c ) + 8000f2e: 2200 movs r2, #0 + 8000f30: 615a str r2, [r3, #20] hspi4.Init.NSS = SPI_NSS_SOFT; - 8000f26: 4b0e ldr r3, [pc, #56] ; (8000f60 ) - 8000f28: f44f 7200 mov.w r2, #512 ; 0x200 - 8000f2c: 619a str r2, [r3, #24] + 8000f32: 4b0e ldr r3, [pc, #56] ; (8000f6c ) + 8000f34: f44f 7200 mov.w r2, #512 ; 0x200 + 8000f38: 619a str r2, [r3, #24] hspi4.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_32; - 8000f2e: 4b0c ldr r3, [pc, #48] ; (8000f60 ) - 8000f30: 2220 movs r2, #32 - 8000f32: 61da str r2, [r3, #28] + 8000f3a: 4b0c ldr r3, [pc, #48] ; (8000f6c ) + 8000f3c: 2220 movs r2, #32 + 8000f3e: 61da str r2, [r3, #28] hspi4.Init.FirstBit = SPI_FIRSTBIT_MSB; - 8000f34: 4b0a ldr r3, [pc, #40] ; (8000f60 ) - 8000f36: 2200 movs r2, #0 - 8000f38: 621a str r2, [r3, #32] - hspi4.Init.TIMode = SPI_TIMODE_DISABLE; - 8000f3a: 4b09 ldr r3, [pc, #36] ; (8000f60 ) - 8000f3c: 2200 movs r2, #0 - 8000f3e: 625a str r2, [r3, #36] ; 0x24 - hspi4.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; - 8000f40: 4b07 ldr r3, [pc, #28] ; (8000f60 ) + 8000f40: 4b0a ldr r3, [pc, #40] ; (8000f6c ) 8000f42: 2200 movs r2, #0 - 8000f44: 629a str r2, [r3, #40] ; 0x28 + 8000f44: 621a str r2, [r3, #32] + hspi4.Init.TIMode = SPI_TIMODE_DISABLE; + 8000f46: 4b09 ldr r3, [pc, #36] ; (8000f6c ) + 8000f48: 2200 movs r2, #0 + 8000f4a: 625a str r2, [r3, #36] ; 0x24 + hspi4.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; + 8000f4c: 4b07 ldr r3, [pc, #28] ; (8000f6c ) + 8000f4e: 2200 movs r2, #0 + 8000f50: 629a str r2, [r3, #40] ; 0x28 hspi4.Init.CRCPolynomial = 10; - 8000f46: 4b06 ldr r3, [pc, #24] ; (8000f60 ) - 8000f48: 220a movs r2, #10 - 8000f4a: 62da str r2, [r3, #44] ; 0x2c + 8000f52: 4b06 ldr r3, [pc, #24] ; (8000f6c ) + 8000f54: 220a movs r2, #10 + 8000f56: 62da str r2, [r3, #44] ; 0x2c if (HAL_SPI_Init(&hspi4) != HAL_OK) - 8000f4c: 4804 ldr r0, [pc, #16] ; (8000f60 ) - 8000f4e: f003 fae1 bl 8004514 - 8000f52: 4603 mov r3, r0 - 8000f54: 2b00 cmp r3, #0 - 8000f56: d001 beq.n 8000f5c + 8000f58: 4804 ldr r0, [pc, #16] ; (8000f6c ) + 8000f5a: f003 fd9d bl 8004a98 + 8000f5e: 4603 mov r3, r0 + 8000f60: 2b00 cmp r3, #0 + 8000f62: d001 beq.n 8000f68 { Error_Handler(); - 8000f58: f001 fd5c bl 8002a14 + 8000f64: f002 f81e bl 8002fa4 } /* USER CODE BEGIN SPI4_Init 2 */ /* USER CODE END SPI4_Init 2 */ } - 8000f5c: bf00 nop - 8000f5e: bd80 pop {r7, pc} - 8000f60: 200003fc .word 0x200003fc - 8000f64: 40013400 .word 0x40013400 + 8000f68: bf00 nop + 8000f6a: bd80 pop {r7, pc} + 8000f6c: 200003fc .word 0x200003fc + 8000f70: 40013400 .word 0x40013400 -08000f68 : +08000f74 : * @brief TIM6 Initialization Function * @param None * @retval None */ static void MX_TIM6_Init(void) { - 8000f68: b580 push {r7, lr} - 8000f6a: b082 sub sp, #8 - 8000f6c: af00 add r7, sp, #0 + 8000f74: b580 push {r7, lr} + 8000f76: b082 sub sp, #8 + 8000f78: af00 add r7, sp, #0 /* USER CODE BEGIN TIM6_Init 0 */ /* USER CODE END TIM6_Init 0 */ TIM_MasterConfigTypeDef sMasterConfig = {0}; - 8000f6e: 463b mov r3, r7 - 8000f70: 2200 movs r2, #0 - 8000f72: 601a str r2, [r3, #0] - 8000f74: 605a str r2, [r3, #4] + 8000f7a: 463b mov r3, r7 + 8000f7c: 2200 movs r2, #0 + 8000f7e: 601a str r2, [r3, #0] + 8000f80: 605a str r2, [r3, #4] /* USER CODE BEGIN TIM6_Init 1 */ /* USER CODE END TIM6_Init 1 */ htim6.Instance = TIM6; - 8000f76: 4b1a ldr r3, [pc, #104] ; (8000fe0 ) - 8000f78: 4a1a ldr r2, [pc, #104] ; (8000fe4 ) - 8000f7a: 601a str r2, [r3, #0] + 8000f82: 4b1a ldr r3, [pc, #104] ; (8000fec ) + 8000f84: 4a1a ldr r2, [pc, #104] ; (8000ff0 ) + 8000f86: 601a str r2, [r3, #0] htim6.Init.Prescaler = 4000; - 8000f7c: 4b18 ldr r3, [pc, #96] ; (8000fe0 ) - 8000f7e: f44f 627a mov.w r2, #4000 ; 0xfa0 - 8000f82: 605a str r2, [r3, #4] + 8000f88: 4b18 ldr r3, [pc, #96] ; (8000fec ) + 8000f8a: f44f 627a mov.w r2, #4000 ; 0xfa0 + 8000f8e: 605a str r2, [r3, #4] htim6.Init.CounterMode = TIM_COUNTERMODE_UP; - 8000f84: 4b16 ldr r3, [pc, #88] ; (8000fe0 ) - 8000f86: 2200 movs r2, #0 - 8000f88: 609a str r2, [r3, #8] + 8000f90: 4b16 ldr r3, [pc, #88] ; (8000fec ) + 8000f92: 2200 movs r2, #0 + 8000f94: 609a str r2, [r3, #8] htim6.Init.Period = 10000; - 8000f8a: 4b15 ldr r3, [pc, #84] ; (8000fe0 ) - 8000f8c: f242 7210 movw r2, #10000 ; 0x2710 - 8000f90: 60da str r2, [r3, #12] + 8000f96: 4b15 ldr r3, [pc, #84] ; (8000fec ) + 8000f98: f242 7210 movw r2, #10000 ; 0x2710 + 8000f9c: 60da str r2, [r3, #12] htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; - 8000f92: 4b13 ldr r3, [pc, #76] ; (8000fe0 ) - 8000f94: 2280 movs r2, #128 ; 0x80 - 8000f96: 619a str r2, [r3, #24] + 8000f9e: 4b13 ldr r3, [pc, #76] ; (8000fec ) + 8000fa0: 2280 movs r2, #128 ; 0x80 + 8000fa2: 619a str r2, [r3, #24] if (HAL_TIM_Base_Init(&htim6) != HAL_OK) - 8000f98: 4811 ldr r0, [pc, #68] ; (8000fe0 ) - 8000f9a: f003 fe1d bl 8004bd8 - 8000f9e: 4603 mov r3, r0 - 8000fa0: 2b00 cmp r3, #0 - 8000fa2: d001 beq.n 8000fa8 + 8000fa4: 4811 ldr r0, [pc, #68] ; (8000fec ) + 8000fa6: f004 f8d9 bl 800515c + 8000faa: 4603 mov r3, r0 + 8000fac: 2b00 cmp r3, #0 + 8000fae: d001 beq.n 8000fb4 { Error_Handler(); - 8000fa4: f001 fd36 bl 8002a14 + 8000fb0: f001 fff8 bl 8002fa4 } if (HAL_TIM_OnePulse_Init(&htim6, TIM_OPMODE_SINGLE) != HAL_OK) - 8000fa8: 2108 movs r1, #8 - 8000faa: 480d ldr r0, [pc, #52] ; (8000fe0 ) - 8000fac: f003 fe63 bl 8004c76 - 8000fb0: 4603 mov r3, r0 - 8000fb2: 2b00 cmp r3, #0 - 8000fb4: d001 beq.n 8000fba + 8000fb4: 2108 movs r1, #8 + 8000fb6: 480d ldr r0, [pc, #52] ; (8000fec ) + 8000fb8: f004 f91f bl 80051fa + 8000fbc: 4603 mov r3, r0 + 8000fbe: 2b00 cmp r3, #0 + 8000fc0: d001 beq.n 8000fc6 { Error_Handler(); - 8000fb6: f001 fd2d bl 8002a14 + 8000fc2: f001 ffef bl 8002fa4 } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; - 8000fba: 2300 movs r3, #0 - 8000fbc: 603b str r3, [r7, #0] + 8000fc6: 2300 movs r3, #0 + 8000fc8: 603b str r3, [r7, #0] sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; - 8000fbe: 2300 movs r3, #0 - 8000fc0: 607b str r3, [r7, #4] + 8000fca: 2300 movs r3, #0 + 8000fcc: 607b str r3, [r7, #4] if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK) - 8000fc2: 463b mov r3, r7 - 8000fc4: 4619 mov r1, r3 - 8000fc6: 4806 ldr r0, [pc, #24] ; (8000fe0 ) - 8000fc8: f004 f876 bl 80050b8 - 8000fcc: 4603 mov r3, r0 - 8000fce: 2b00 cmp r3, #0 - 8000fd0: d001 beq.n 8000fd6 + 8000fce: 463b mov r3, r7 + 8000fd0: 4619 mov r1, r3 + 8000fd2: 4806 ldr r0, [pc, #24] ; (8000fec ) + 8000fd4: f004 fb32 bl 800563c + 8000fd8: 4603 mov r3, r0 + 8000fda: 2b00 cmp r3, #0 + 8000fdc: d001 beq.n 8000fe2 { Error_Handler(); - 8000fd2: f001 fd1f bl 8002a14 + 8000fde: f001 ffe1 bl 8002fa4 } /* USER CODE BEGIN TIM6_Init 2 */ /* USER CODE END TIM6_Init 2 */ } - 8000fd6: bf00 nop - 8000fd8: 3708 adds r7, #8 - 8000fda: 46bd mov sp, r7 - 8000fdc: bd80 pop {r7, pc} - 8000fde: bf00 nop - 8000fe0: 20000454 .word 0x20000454 - 8000fe4: 40001000 .word 0x40001000 + 8000fe2: bf00 nop + 8000fe4: 3708 adds r7, #8 + 8000fe6: 46bd mov sp, r7 + 8000fe8: bd80 pop {r7, pc} + 8000fea: bf00 nop + 8000fec: 20000454 .word 0x20000454 + 8000ff0: 40001000 .word 0x40001000 -08000fe8 : +08000ff4 : * @brief GPIO Initialization Function * @param None * @retval None */ static void MX_GPIO_Init(void) { - 8000fe8: b580 push {r7, lr} - 8000fea: b08e sub sp, #56 ; 0x38 - 8000fec: af00 add r7, sp, #0 + 8000ff4: b580 push {r7, lr} + 8000ff6: b08e sub sp, #56 ; 0x38 + 8000ff8: af00 add r7, sp, #0 GPIO_InitTypeDef GPIO_InitStruct = {0}; - 8000fee: f107 0324 add.w r3, r7, #36 ; 0x24 - 8000ff2: 2200 movs r2, #0 - 8000ff4: 601a str r2, [r3, #0] - 8000ff6: 605a str r2, [r3, #4] - 8000ff8: 609a str r2, [r3, #8] - 8000ffa: 60da str r2, [r3, #12] - 8000ffc: 611a str r2, [r3, #16] + 8000ffa: f107 0324 add.w r3, r7, #36 ; 0x24 + 8000ffe: 2200 movs r2, #0 + 8001000: 601a str r2, [r3, #0] + 8001002: 605a str r2, [r3, #4] + 8001004: 609a str r2, [r3, #8] + 8001006: 60da str r2, [r3, #12] + 8001008: 611a str r2, [r3, #16] /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOE_CLK_ENABLE(); - 8000ffe: 2300 movs r3, #0 - 8001000: 623b str r3, [r7, #32] - 8001002: 4bb0 ldr r3, [pc, #704] ; (80012c4 ) - 8001004: 6b1b ldr r3, [r3, #48] ; 0x30 - 8001006: 4aaf ldr r2, [pc, #700] ; (80012c4 ) - 8001008: f043 0310 orr.w r3, r3, #16 - 800100c: 6313 str r3, [r2, #48] ; 0x30 - 800100e: 4bad ldr r3, [pc, #692] ; (80012c4 ) + 800100a: 2300 movs r3, #0 + 800100c: 623b str r3, [r7, #32] + 800100e: 4bb0 ldr r3, [pc, #704] ; (80012d0 ) 8001010: 6b1b ldr r3, [r3, #48] ; 0x30 - 8001012: f003 0310 and.w r3, r3, #16 - 8001016: 623b str r3, [r7, #32] - 8001018: 6a3b ldr r3, [r7, #32] + 8001012: 4aaf ldr r2, [pc, #700] ; (80012d0 ) + 8001014: f043 0310 orr.w r3, r3, #16 + 8001018: 6313 str r3, [r2, #48] ; 0x30 + 800101a: 4bad ldr r3, [pc, #692] ; (80012d0 ) + 800101c: 6b1b ldr r3, [r3, #48] ; 0x30 + 800101e: f003 0310 and.w r3, r3, #16 + 8001022: 623b str r3, [r7, #32] + 8001024: 6a3b ldr r3, [r7, #32] __HAL_RCC_GPIOC_CLK_ENABLE(); - 800101a: 2300 movs r3, #0 - 800101c: 61fb str r3, [r7, #28] - 800101e: 4ba9 ldr r3, [pc, #676] ; (80012c4 ) - 8001020: 6b1b ldr r3, [r3, #48] ; 0x30 - 8001022: 4aa8 ldr r2, [pc, #672] ; (80012c4 ) - 8001024: f043 0304 orr.w r3, r3, #4 - 8001028: 6313 str r3, [r2, #48] ; 0x30 - 800102a: 4ba6 ldr r3, [pc, #664] ; (80012c4 ) + 8001026: 2300 movs r3, #0 + 8001028: 61fb str r3, [r7, #28] + 800102a: 4ba9 ldr r3, [pc, #676] ; (80012d0 ) 800102c: 6b1b ldr r3, [r3, #48] ; 0x30 - 800102e: f003 0304 and.w r3, r3, #4 - 8001032: 61fb str r3, [r7, #28] - 8001034: 69fb ldr r3, [r7, #28] + 800102e: 4aa8 ldr r2, [pc, #672] ; (80012d0 ) + 8001030: f043 0304 orr.w r3, r3, #4 + 8001034: 6313 str r3, [r2, #48] ; 0x30 + 8001036: 4ba6 ldr r3, [pc, #664] ; (80012d0 ) + 8001038: 6b1b ldr r3, [r3, #48] ; 0x30 + 800103a: f003 0304 and.w r3, r3, #4 + 800103e: 61fb str r3, [r7, #28] + 8001040: 69fb ldr r3, [r7, #28] __HAL_RCC_GPIOF_CLK_ENABLE(); - 8001036: 2300 movs r3, #0 - 8001038: 61bb str r3, [r7, #24] - 800103a: 4ba2 ldr r3, [pc, #648] ; (80012c4 ) - 800103c: 6b1b ldr r3, [r3, #48] ; 0x30 - 800103e: 4aa1 ldr r2, [pc, #644] ; (80012c4 ) - 8001040: f043 0320 orr.w r3, r3, #32 - 8001044: 6313 str r3, [r2, #48] ; 0x30 - 8001046: 4b9f ldr r3, [pc, #636] ; (80012c4 ) + 8001042: 2300 movs r3, #0 + 8001044: 61bb str r3, [r7, #24] + 8001046: 4ba2 ldr r3, [pc, #648] ; (80012d0 ) 8001048: 6b1b ldr r3, [r3, #48] ; 0x30 - 800104a: f003 0320 and.w r3, r3, #32 - 800104e: 61bb str r3, [r7, #24] - 8001050: 69bb ldr r3, [r7, #24] + 800104a: 4aa1 ldr r2, [pc, #644] ; (80012d0 ) + 800104c: f043 0320 orr.w r3, r3, #32 + 8001050: 6313 str r3, [r2, #48] ; 0x30 + 8001052: 4b9f ldr r3, [pc, #636] ; (80012d0 ) + 8001054: 6b1b ldr r3, [r3, #48] ; 0x30 + 8001056: f003 0320 and.w r3, r3, #32 + 800105a: 61bb str r3, [r7, #24] + 800105c: 69bb ldr r3, [r7, #24] __HAL_RCC_GPIOH_CLK_ENABLE(); - 8001052: 2300 movs r3, #0 - 8001054: 617b str r3, [r7, #20] - 8001056: 4b9b ldr r3, [pc, #620] ; (80012c4 ) - 8001058: 6b1b ldr r3, [r3, #48] ; 0x30 - 800105a: 4a9a ldr r2, [pc, #616] ; (80012c4 ) - 800105c: f043 0380 orr.w r3, r3, #128 ; 0x80 - 8001060: 6313 str r3, [r2, #48] ; 0x30 - 8001062: 4b98 ldr r3, [pc, #608] ; (80012c4 ) + 800105e: 2300 movs r3, #0 + 8001060: 617b str r3, [r7, #20] + 8001062: 4b9b ldr r3, [pc, #620] ; (80012d0 ) 8001064: 6b1b ldr r3, [r3, #48] ; 0x30 - 8001066: f003 0380 and.w r3, r3, #128 ; 0x80 - 800106a: 617b str r3, [r7, #20] - 800106c: 697b ldr r3, [r7, #20] + 8001066: 4a9a ldr r2, [pc, #616] ; (80012d0 ) + 8001068: f043 0380 orr.w r3, r3, #128 ; 0x80 + 800106c: 6313 str r3, [r2, #48] ; 0x30 + 800106e: 4b98 ldr r3, [pc, #608] ; (80012d0 ) + 8001070: 6b1b ldr r3, [r3, #48] ; 0x30 + 8001072: f003 0380 and.w r3, r3, #128 ; 0x80 + 8001076: 617b str r3, [r7, #20] + 8001078: 697b ldr r3, [r7, #20] __HAL_RCC_GPIOA_CLK_ENABLE(); - 800106e: 2300 movs r3, #0 - 8001070: 613b str r3, [r7, #16] - 8001072: 4b94 ldr r3, [pc, #592] ; (80012c4 ) - 8001074: 6b1b ldr r3, [r3, #48] ; 0x30 - 8001076: 4a93 ldr r2, [pc, #588] ; (80012c4 ) - 8001078: f043 0301 orr.w r3, r3, #1 - 800107c: 6313 str r3, [r2, #48] ; 0x30 - 800107e: 4b91 ldr r3, [pc, #580] ; (80012c4 ) + 800107a: 2300 movs r3, #0 + 800107c: 613b str r3, [r7, #16] + 800107e: 4b94 ldr r3, [pc, #592] ; (80012d0 ) 8001080: 6b1b ldr r3, [r3, #48] ; 0x30 - 8001082: f003 0301 and.w r3, r3, #1 - 8001086: 613b str r3, [r7, #16] - 8001088: 693b ldr r3, [r7, #16] + 8001082: 4a93 ldr r2, [pc, #588] ; (80012d0 ) + 8001084: f043 0301 orr.w r3, r3, #1 + 8001088: 6313 str r3, [r2, #48] ; 0x30 + 800108a: 4b91 ldr r3, [pc, #580] ; (80012d0 ) + 800108c: 6b1b ldr r3, [r3, #48] ; 0x30 + 800108e: f003 0301 and.w r3, r3, #1 + 8001092: 613b str r3, [r7, #16] + 8001094: 693b ldr r3, [r7, #16] __HAL_RCC_GPIOB_CLK_ENABLE(); - 800108a: 2300 movs r3, #0 - 800108c: 60fb str r3, [r7, #12] - 800108e: 4b8d ldr r3, [pc, #564] ; (80012c4 ) - 8001090: 6b1b ldr r3, [r3, #48] ; 0x30 - 8001092: 4a8c ldr r2, [pc, #560] ; (80012c4 ) - 8001094: f043 0302 orr.w r3, r3, #2 - 8001098: 6313 str r3, [r2, #48] ; 0x30 - 800109a: 4b8a ldr r3, [pc, #552] ; (80012c4 ) + 8001096: 2300 movs r3, #0 + 8001098: 60fb str r3, [r7, #12] + 800109a: 4b8d ldr r3, [pc, #564] ; (80012d0 ) 800109c: 6b1b ldr r3, [r3, #48] ; 0x30 - 800109e: f003 0302 and.w r3, r3, #2 - 80010a2: 60fb str r3, [r7, #12] - 80010a4: 68fb ldr r3, [r7, #12] + 800109e: 4a8c ldr r2, [pc, #560] ; (80012d0 ) + 80010a0: f043 0302 orr.w r3, r3, #2 + 80010a4: 6313 str r3, [r2, #48] ; 0x30 + 80010a6: 4b8a ldr r3, [pc, #552] ; (80012d0 ) + 80010a8: 6b1b ldr r3, [r3, #48] ; 0x30 + 80010aa: f003 0302 and.w r3, r3, #2 + 80010ae: 60fb str r3, [r7, #12] + 80010b0: 68fb ldr r3, [r7, #12] __HAL_RCC_GPIOG_CLK_ENABLE(); - 80010a6: 2300 movs r3, #0 - 80010a8: 60bb str r3, [r7, #8] - 80010aa: 4b86 ldr r3, [pc, #536] ; (80012c4 ) - 80010ac: 6b1b ldr r3, [r3, #48] ; 0x30 - 80010ae: 4a85 ldr r2, [pc, #532] ; (80012c4 ) - 80010b0: f043 0340 orr.w r3, r3, #64 ; 0x40 - 80010b4: 6313 str r3, [r2, #48] ; 0x30 - 80010b6: 4b83 ldr r3, [pc, #524] ; (80012c4 ) + 80010b2: 2300 movs r3, #0 + 80010b4: 60bb str r3, [r7, #8] + 80010b6: 4b86 ldr r3, [pc, #536] ; (80012d0 ) 80010b8: 6b1b ldr r3, [r3, #48] ; 0x30 - 80010ba: f003 0340 and.w r3, r3, #64 ; 0x40 - 80010be: 60bb str r3, [r7, #8] - 80010c0: 68bb ldr r3, [r7, #8] + 80010ba: 4a85 ldr r2, [pc, #532] ; (80012d0 ) + 80010bc: f043 0340 orr.w r3, r3, #64 ; 0x40 + 80010c0: 6313 str r3, [r2, #48] ; 0x30 + 80010c2: 4b83 ldr r3, [pc, #524] ; (80012d0 ) + 80010c4: 6b1b ldr r3, [r3, #48] ; 0x30 + 80010c6: f003 0340 and.w r3, r3, #64 ; 0x40 + 80010ca: 60bb str r3, [r7, #8] + 80010cc: 68bb ldr r3, [r7, #8] __HAL_RCC_GPIOD_CLK_ENABLE(); - 80010c2: 2300 movs r3, #0 - 80010c4: 607b str r3, [r7, #4] - 80010c6: 4b7f ldr r3, [pc, #508] ; (80012c4 ) - 80010c8: 6b1b ldr r3, [r3, #48] ; 0x30 - 80010ca: 4a7e ldr r2, [pc, #504] ; (80012c4 ) - 80010cc: f043 0308 orr.w r3, r3, #8 - 80010d0: 6313 str r3, [r2, #48] ; 0x30 - 80010d2: 4b7c ldr r3, [pc, #496] ; (80012c4 ) + 80010ce: 2300 movs r3, #0 + 80010d0: 607b str r3, [r7, #4] + 80010d2: 4b7f ldr r3, [pc, #508] ; (80012d0 ) 80010d4: 6b1b ldr r3, [r3, #48] ; 0x30 - 80010d6: f003 0308 and.w r3, r3, #8 - 80010da: 607b str r3, [r7, #4] - 80010dc: 687b ldr r3, [r7, #4] + 80010d6: 4a7e ldr r2, [pc, #504] ; (80012d0 ) + 80010d8: f043 0308 orr.w r3, r3, #8 + 80010dc: 6313 str r3, [r2, #48] ; 0x30 + 80010de: 4b7c ldr r3, [pc, #496] ; (80012d0 ) + 80010e0: 6b1b ldr r3, [r3, #48] ; 0x30 + 80010e2: f003 0308 and.w r3, r3, #8 + 80010e6: 607b str r3, [r7, #4] + 80010e8: 687b ldr r3, [r7, #4] /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOC, NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin, GPIO_PIN_RESET); - 80010de: 2200 movs r2, #0 - 80010e0: 2116 movs r1, #22 - 80010e2: 4879 ldr r0, [pc, #484] ; (80012c8 ) - 80010e4: f002 fdaa bl 8003c3c + 80010ea: 2200 movs r2, #0 + 80010ec: 2116 movs r1, #22 + 80010ee: 4879 ldr r0, [pc, #484] ; (80012d4 ) + 80010f0: f003 f866 bl 80041c0 /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(ACP_RST_GPIO_Port, ACP_RST_Pin, GPIO_PIN_RESET); - 80010e8: 2200 movs r2, #0 - 80010ea: 2180 movs r1, #128 ; 0x80 - 80010ec: 4877 ldr r0, [pc, #476] ; (80012cc ) - 80010ee: f002 fda5 bl 8003c3c + 80010f4: 2200 movs r2, #0 + 80010f6: 2180 movs r1, #128 ; 0x80 + 80010f8: 4877 ldr r0, [pc, #476] ; (80012d8 ) + 80010fa: f003 f861 bl 80041c0 /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOD, RDX_Pin|WRX_DCX_Pin, GPIO_PIN_RESET); - 80010f2: 2200 movs r2, #0 - 80010f4: f44f 5140 mov.w r1, #12288 ; 0x3000 - 80010f8: 4875 ldr r0, [pc, #468] ; (80012d0 ) - 80010fa: f002 fd9f bl 8003c3c + 80010fe: 2200 movs r2, #0 + 8001100: f44f 5140 mov.w r1, #12288 ; 0x3000 + 8001104: 4875 ldr r0, [pc, #468] ; (80012dc ) + 8001106: f003 f85b bl 80041c0 /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOG, LD3_Pin|LD4_Pin, GPIO_PIN_RESET); - 80010fe: 2200 movs r2, #0 - 8001100: f44f 41c0 mov.w r1, #24576 ; 0x6000 - 8001104: 4873 ldr r0, [pc, #460] ; (80012d4 ) - 8001106: f002 fd99 bl 8003c3c + 800110a: 2200 movs r2, #0 + 800110c: f44f 41c0 mov.w r1, #24576 ; 0x6000 + 8001110: 4873 ldr r0, [pc, #460] ; (80012e0 ) + 8001112: f003 f855 bl 80041c0 /*Configure GPIO pins : A0_Pin A1_Pin A2_Pin A3_Pin A4_Pin A5_Pin SDNRAS_Pin A6_Pin A7_Pin A8_Pin A9_Pin */ GPIO_InitStruct.Pin = A0_Pin|A1_Pin|A2_Pin|A3_Pin - 800110a: f64f 033f movw r3, #63551 ; 0xf83f - 800110e: 627b str r3, [r7, #36] ; 0x24 + 8001116: f64f 033f movw r3, #63551 ; 0xf83f + 800111a: 627b str r3, [r7, #36] ; 0x24 |A4_Pin|A5_Pin|SDNRAS_Pin|A6_Pin |A7_Pin|A8_Pin|A9_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8001110: 2302 movs r3, #2 - 8001112: 62bb str r3, [r7, #40] ; 0x28 + 800111c: 2302 movs r3, #2 + 800111e: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001114: 2300 movs r3, #0 - 8001116: 62fb str r3, [r7, #44] ; 0x2c + 8001120: 2300 movs r3, #0 + 8001122: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 8001118: 2303 movs r3, #3 - 800111a: 633b str r3, [r7, #48] ; 0x30 + 8001124: 2303 movs r3, #3 + 8001126: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF12_FMC; - 800111c: 230c movs r3, #12 - 800111e: 637b str r3, [r7, #52] ; 0x34 + 8001128: 230c movs r3, #12 + 800112a: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); - 8001120: f107 0324 add.w r3, r7, #36 ; 0x24 - 8001124: 4619 mov r1, r3 - 8001126: 486c ldr r0, [pc, #432] ; (80012d8 ) - 8001128: f002 fbde bl 80038e8 + 800112c: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001130: 4619 mov r1, r3 + 8001132: 486c ldr r0, [pc, #432] ; (80012e4 ) + 8001134: f002 fe9a bl 8003e6c /*Configure GPIO pins : SPI5_SCK_Pin SPI5_MISO_Pin SPI5_MOSI_Pin */ GPIO_InitStruct.Pin = SPI5_SCK_Pin|SPI5_MISO_Pin|SPI5_MOSI_Pin; - 800112c: f44f 7360 mov.w r3, #896 ; 0x380 - 8001130: 627b str r3, [r7, #36] ; 0x24 + 8001138: f44f 7360 mov.w r3, #896 ; 0x380 + 800113c: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8001132: 2302 movs r3, #2 - 8001134: 62bb str r3, [r7, #40] ; 0x28 + 800113e: 2302 movs r3, #2 + 8001140: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001136: 2300 movs r3, #0 - 8001138: 62fb str r3, [r7, #44] ; 0x2c + 8001142: 2300 movs r3, #0 + 8001144: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 800113a: 2300 movs r3, #0 - 800113c: 633b str r3, [r7, #48] ; 0x30 + 8001146: 2300 movs r3, #0 + 8001148: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF5_SPI5; - 800113e: 2305 movs r3, #5 - 8001140: 637b str r3, [r7, #52] ; 0x34 + 800114a: 2305 movs r3, #5 + 800114c: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); - 8001142: f107 0324 add.w r3, r7, #36 ; 0x24 - 8001146: 4619 mov r1, r3 - 8001148: 4863 ldr r0, [pc, #396] ; (80012d8 ) - 800114a: f002 fbcd bl 80038e8 + 800114e: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001152: 4619 mov r1, r3 + 8001154: 4863 ldr r0, [pc, #396] ; (80012e4 ) + 8001156: f002 fe89 bl 8003e6c /*Configure GPIO pin : ENABLE_Pin */ GPIO_InitStruct.Pin = ENABLE_Pin; - 800114e: f44f 6380 mov.w r3, #1024 ; 0x400 - 8001152: 627b str r3, [r7, #36] ; 0x24 + 800115a: f44f 6380 mov.w r3, #1024 ; 0x400 + 800115e: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8001154: 2302 movs r3, #2 - 8001156: 62bb str r3, [r7, #40] ; 0x28 + 8001160: 2302 movs r3, #2 + 8001162: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001158: 2300 movs r3, #0 - 800115a: 62fb str r3, [r7, #44] ; 0x2c + 8001164: 2300 movs r3, #0 + 8001166: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 800115c: 2300 movs r3, #0 - 800115e: 633b str r3, [r7, #48] ; 0x30 + 8001168: 2300 movs r3, #0 + 800116a: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; - 8001160: 230e movs r3, #14 - 8001162: 637b str r3, [r7, #52] ; 0x34 + 800116c: 230e movs r3, #14 + 800116e: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(ENABLE_GPIO_Port, &GPIO_InitStruct); - 8001164: f107 0324 add.w r3, r7, #36 ; 0x24 - 8001168: 4619 mov r1, r3 - 800116a: 485b ldr r0, [pc, #364] ; (80012d8 ) - 800116c: f002 fbbc bl 80038e8 + 8001170: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001174: 4619 mov r1, r3 + 8001176: 485b ldr r0, [pc, #364] ; (80012e4 ) + 8001178: f002 fe78 bl 8003e6c /*Configure GPIO pin : SDNWE_Pin */ GPIO_InitStruct.Pin = SDNWE_Pin; - 8001170: 2301 movs r3, #1 - 8001172: 627b str r3, [r7, #36] ; 0x24 + 800117c: 2301 movs r3, #1 + 800117e: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8001174: 2302 movs r3, #2 - 8001176: 62bb str r3, [r7, #40] ; 0x28 + 8001180: 2302 movs r3, #2 + 8001182: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001178: 2300 movs r3, #0 - 800117a: 62fb str r3, [r7, #44] ; 0x2c + 8001184: 2300 movs r3, #0 + 8001186: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 800117c: 2303 movs r3, #3 - 800117e: 633b str r3, [r7, #48] ; 0x30 + 8001188: 2303 movs r3, #3 + 800118a: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF12_FMC; - 8001180: 230c movs r3, #12 - 8001182: 637b str r3, [r7, #52] ; 0x34 + 800118c: 230c movs r3, #12 + 800118e: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(SDNWE_GPIO_Port, &GPIO_InitStruct); - 8001184: f107 0324 add.w r3, r7, #36 ; 0x24 - 8001188: 4619 mov r1, r3 - 800118a: 484f ldr r0, [pc, #316] ; (80012c8 ) - 800118c: f002 fbac bl 80038e8 + 8001190: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001194: 4619 mov r1, r3 + 8001196: 484f ldr r0, [pc, #316] ; (80012d4 ) + 8001198: f002 fe68 bl 8003e6c /*Configure GPIO pins : NCS_MEMS_SPI_Pin CSX_Pin OTG_FS_PSO_Pin */ GPIO_InitStruct.Pin = NCS_MEMS_SPI_Pin|CSX_Pin|OTG_FS_PSO_Pin; - 8001190: 2316 movs r3, #22 - 8001192: 627b str r3, [r7, #36] ; 0x24 + 800119c: 2316 movs r3, #22 + 800119e: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 8001194: 2301 movs r3, #1 - 8001196: 62bb str r3, [r7, #40] ; 0x28 + 80011a0: 2301 movs r3, #1 + 80011a2: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001198: 2300 movs r3, #0 - 800119a: 62fb str r3, [r7, #44] ; 0x2c + 80011a4: 2300 movs r3, #0 + 80011a6: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 800119c: 2300 movs r3, #0 - 800119e: 633b str r3, [r7, #48] ; 0x30 + 80011a8: 2300 movs r3, #0 + 80011aa: 633b str r3, [r7, #48] ; 0x30 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); - 80011a0: f107 0324 add.w r3, r7, #36 ; 0x24 - 80011a4: 4619 mov r1, r3 - 80011a6: 4848 ldr r0, [pc, #288] ; (80012c8 ) - 80011a8: f002 fb9e bl 80038e8 + 80011ac: f107 0324 add.w r3, r7, #36 ; 0x24 + 80011b0: 4619 mov r1, r3 + 80011b2: 4848 ldr r0, [pc, #288] ; (80012d4 ) + 80011b4: f002 fe5a bl 8003e6c /*Configure GPIO pin : B1_Pin */ GPIO_InitStruct.Pin = B1_Pin; - 80011ac: 2301 movs r3, #1 - 80011ae: 627b str r3, [r7, #36] ; 0x24 + 80011b8: 2301 movs r3, #1 + 80011ba: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; - 80011b0: 4b4a ldr r3, [pc, #296] ; (80012dc ) - 80011b2: 62bb str r3, [r7, #40] ; 0x28 + 80011bc: 4b4a ldr r3, [pc, #296] ; (80012e8 ) + 80011be: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 80011b4: 2300 movs r3, #0 - 80011b6: 62fb str r3, [r7, #44] ; 0x2c + 80011c0: 2300 movs r3, #0 + 80011c2: 62fb str r3, [r7, #44] ; 0x2c HAL_GPIO_Init(B1_GPIO_Port, &GPIO_InitStruct); - 80011b8: f107 0324 add.w r3, r7, #36 ; 0x24 - 80011bc: 4619 mov r1, r3 - 80011be: 4843 ldr r0, [pc, #268] ; (80012cc ) - 80011c0: f002 fb92 bl 80038e8 + 80011c4: f107 0324 add.w r3, r7, #36 ; 0x24 + 80011c8: 4619 mov r1, r3 + 80011ca: 4843 ldr r0, [pc, #268] ; (80012d8 ) + 80011cc: f002 fe4e bl 8003e6c /*Configure GPIO pins : MEMS_INT1_Pin MEMS_INT2_Pin TP_INT1_Pin */ GPIO_InitStruct.Pin = MEMS_INT1_Pin|MEMS_INT2_Pin|TP_INT1_Pin; - 80011c4: f248 0306 movw r3, #32774 ; 0x8006 - 80011c8: 627b str r3, [r7, #36] ; 0x24 + 80011d0: f248 0306 movw r3, #32774 ; 0x8006 + 80011d4: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING; - 80011ca: 4b45 ldr r3, [pc, #276] ; (80012e0 ) - 80011cc: 62bb str r3, [r7, #40] ; 0x28 + 80011d6: 4b45 ldr r3, [pc, #276] ; (80012ec ) + 80011d8: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 80011ce: 2300 movs r3, #0 - 80011d0: 62fb str r3, [r7, #44] ; 0x2c + 80011da: 2300 movs r3, #0 + 80011dc: 62fb str r3, [r7, #44] ; 0x2c HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - 80011d2: f107 0324 add.w r3, r7, #36 ; 0x24 - 80011d6: 4619 mov r1, r3 - 80011d8: 483c ldr r0, [pc, #240] ; (80012cc ) - 80011da: f002 fb85 bl 80038e8 + 80011de: f107 0324 add.w r3, r7, #36 ; 0x24 + 80011e2: 4619 mov r1, r3 + 80011e4: 483c ldr r0, [pc, #240] ; (80012d8 ) + 80011e6: f002 fe41 bl 8003e6c /*Configure GPIO pins : B5_Pin VSYNC_Pin G2_Pin R4_Pin R5_Pin */ GPIO_InitStruct.Pin = B5_Pin|VSYNC_Pin|G2_Pin|R4_Pin - 80011de: f641 0358 movw r3, #6232 ; 0x1858 - 80011e2: 627b str r3, [r7, #36] ; 0x24 + 80011ea: f641 0358 movw r3, #6232 ; 0x1858 + 80011ee: 627b str r3, [r7, #36] ; 0x24 |R5_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 80011e4: 2302 movs r3, #2 - 80011e6: 62bb str r3, [r7, #40] ; 0x28 + 80011f0: 2302 movs r3, #2 + 80011f2: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 80011e8: 2300 movs r3, #0 - 80011ea: 62fb str r3, [r7, #44] ; 0x2c + 80011f4: 2300 movs r3, #0 + 80011f6: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 80011ec: 2300 movs r3, #0 - 80011ee: 633b str r3, [r7, #48] ; 0x30 + 80011f8: 2300 movs r3, #0 + 80011fa: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; - 80011f0: 230e movs r3, #14 - 80011f2: 637b str r3, [r7, #52] ; 0x34 + 80011fc: 230e movs r3, #14 + 80011fe: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - 80011f4: f107 0324 add.w r3, r7, #36 ; 0x24 - 80011f8: 4619 mov r1, r3 - 80011fa: 4834 ldr r0, [pc, #208] ; (80012cc ) - 80011fc: f002 fb74 bl 80038e8 + 8001200: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001204: 4619 mov r1, r3 + 8001206: 4834 ldr r0, [pc, #208] ; (80012d8 ) + 8001208: f002 fe30 bl 8003e6c /*Configure GPIO pin : ACP_RST_Pin */ GPIO_InitStruct.Pin = ACP_RST_Pin; - 8001200: 2380 movs r3, #128 ; 0x80 - 8001202: 627b str r3, [r7, #36] ; 0x24 + 800120c: 2380 movs r3, #128 ; 0x80 + 800120e: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 8001204: 2301 movs r3, #1 - 8001206: 62bb str r3, [r7, #40] ; 0x28 + 8001210: 2301 movs r3, #1 + 8001212: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001208: 2300 movs r3, #0 - 800120a: 62fb str r3, [r7, #44] ; 0x2c + 8001214: 2300 movs r3, #0 + 8001216: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 800120c: 2300 movs r3, #0 - 800120e: 633b str r3, [r7, #48] ; 0x30 + 8001218: 2300 movs r3, #0 + 800121a: 633b str r3, [r7, #48] ; 0x30 HAL_GPIO_Init(ACP_RST_GPIO_Port, &GPIO_InitStruct); - 8001210: f107 0324 add.w r3, r7, #36 ; 0x24 - 8001214: 4619 mov r1, r3 - 8001216: 482d ldr r0, [pc, #180] ; (80012cc ) - 8001218: f002 fb66 bl 80038e8 + 800121c: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001220: 4619 mov r1, r3 + 8001222: 482d ldr r0, [pc, #180] ; (80012d8 ) + 8001224: f002 fe22 bl 8003e6c /*Configure GPIO pin : OTG_FS_OC_Pin */ GPIO_InitStruct.Pin = OTG_FS_OC_Pin; - 800121c: 2320 movs r3, #32 - 800121e: 627b str r3, [r7, #36] ; 0x24 + 8001228: 2320 movs r3, #32 + 800122a: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING; - 8001220: 4b2f ldr r3, [pc, #188] ; (80012e0 ) - 8001222: 62bb str r3, [r7, #40] ; 0x28 + 800122c: 4b2f ldr r3, [pc, #188] ; (80012ec ) + 800122e: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001224: 2300 movs r3, #0 - 8001226: 62fb str r3, [r7, #44] ; 0x2c + 8001230: 2300 movs r3, #0 + 8001232: 62fb str r3, [r7, #44] ; 0x2c HAL_GPIO_Init(OTG_FS_OC_GPIO_Port, &GPIO_InitStruct); - 8001228: f107 0324 add.w r3, r7, #36 ; 0x24 - 800122c: 4619 mov r1, r3 - 800122e: 4826 ldr r0, [pc, #152] ; (80012c8 ) - 8001230: f002 fb5a bl 80038e8 + 8001234: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001238: 4619 mov r1, r3 + 800123a: 4826 ldr r0, [pc, #152] ; (80012d4 ) + 800123c: f002 fe16 bl 8003e6c /*Configure GPIO pins : R3_Pin R6_Pin */ GPIO_InitStruct.Pin = R3_Pin|R6_Pin; - 8001234: 2303 movs r3, #3 - 8001236: 627b str r3, [r7, #36] ; 0x24 + 8001240: 2303 movs r3, #3 + 8001242: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8001238: 2302 movs r3, #2 - 800123a: 62bb str r3, [r7, #40] ; 0x28 + 8001244: 2302 movs r3, #2 + 8001246: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 800123c: 2300 movs r3, #0 - 800123e: 62fb str r3, [r7, #44] ; 0x2c + 8001248: 2300 movs r3, #0 + 800124a: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8001240: 2300 movs r3, #0 - 8001242: 633b str r3, [r7, #48] ; 0x30 + 800124c: 2300 movs r3, #0 + 800124e: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF9_LTDC; - 8001244: 2309 movs r3, #9 - 8001246: 637b str r3, [r7, #52] ; 0x34 + 8001250: 2309 movs r3, #9 + 8001252: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - 8001248: f107 0324 add.w r3, r7, #36 ; 0x24 - 800124c: 4619 mov r1, r3 - 800124e: 4825 ldr r0, [pc, #148] ; (80012e4 ) - 8001250: f002 fb4a bl 80038e8 + 8001254: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001258: 4619 mov r1, r3 + 800125a: 4825 ldr r0, [pc, #148] ; (80012f0 ) + 800125c: f002 fe06 bl 8003e6c /*Configure GPIO pin : BOOT1_Pin */ GPIO_InitStruct.Pin = BOOT1_Pin; - 8001254: 2304 movs r3, #4 - 8001256: 627b str r3, [r7, #36] ; 0x24 + 8001260: 2304 movs r3, #4 + 8001262: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - 8001258: 2300 movs r3, #0 - 800125a: 62bb str r3, [r7, #40] ; 0x28 + 8001264: 2300 movs r3, #0 + 8001266: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 800125c: 2300 movs r3, #0 - 800125e: 62fb str r3, [r7, #44] ; 0x2c + 8001268: 2300 movs r3, #0 + 800126a: 62fb str r3, [r7, #44] ; 0x2c HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct); - 8001260: f107 0324 add.w r3, r7, #36 ; 0x24 - 8001264: 4619 mov r1, r3 - 8001266: 481f ldr r0, [pc, #124] ; (80012e4 ) - 8001268: f002 fb3e bl 80038e8 + 800126c: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001270: 4619 mov r1, r3 + 8001272: 481f ldr r0, [pc, #124] ; (80012f0 ) + 8001274: f002 fdfa bl 8003e6c /*Configure GPIO pins : A10_Pin A11_Pin BA0_Pin BA1_Pin SDCLK_Pin SDNCAS_Pin */ GPIO_InitStruct.Pin = A10_Pin|A11_Pin|BA0_Pin|BA1_Pin - 800126c: f248 1333 movw r3, #33075 ; 0x8133 - 8001270: 627b str r3, [r7, #36] ; 0x24 + 8001278: f248 1333 movw r3, #33075 ; 0x8133 + 800127c: 627b str r3, [r7, #36] ; 0x24 |SDCLK_Pin|SDNCAS_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8001272: 2302 movs r3, #2 - 8001274: 62bb str r3, [r7, #40] ; 0x28 + 800127e: 2302 movs r3, #2 + 8001280: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001276: 2300 movs r3, #0 - 8001278: 62fb str r3, [r7, #44] ; 0x2c + 8001282: 2300 movs r3, #0 + 8001284: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 800127a: 2303 movs r3, #3 - 800127c: 633b str r3, [r7, #48] ; 0x30 + 8001286: 2303 movs r3, #3 + 8001288: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF12_FMC; - 800127e: 230c movs r3, #12 - 8001280: 637b str r3, [r7, #52] ; 0x34 + 800128a: 230c movs r3, #12 + 800128c: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); - 8001282: f107 0324 add.w r3, r7, #36 ; 0x24 - 8001286: 4619 mov r1, r3 - 8001288: 4812 ldr r0, [pc, #72] ; (80012d4 ) - 800128a: f002 fb2d bl 80038e8 + 800128e: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001292: 4619 mov r1, r3 + 8001294: 4812 ldr r0, [pc, #72] ; (80012e0 ) + 8001296: f002 fde9 bl 8003e6c /*Configure GPIO pins : D4_Pin D5_Pin D6_Pin D7_Pin D8_Pin D9_Pin D10_Pin D11_Pin D12_Pin NBL0_Pin NBL1_Pin */ GPIO_InitStruct.Pin = D4_Pin|D5_Pin|D6_Pin|D7_Pin - 800128e: f64f 7383 movw r3, #65411 ; 0xff83 - 8001292: 627b str r3, [r7, #36] ; 0x24 + 800129a: f64f 7383 movw r3, #65411 ; 0xff83 + 800129e: 627b str r3, [r7, #36] ; 0x24 |D8_Pin|D9_Pin|D10_Pin|D11_Pin |D12_Pin|NBL0_Pin|NBL1_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8001294: 2302 movs r3, #2 - 8001296: 62bb str r3, [r7, #40] ; 0x28 + 80012a0: 2302 movs r3, #2 + 80012a2: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001298: 2300 movs r3, #0 - 800129a: 62fb str r3, [r7, #44] ; 0x2c + 80012a4: 2300 movs r3, #0 + 80012a6: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 800129c: 2303 movs r3, #3 - 800129e: 633b str r3, [r7, #48] ; 0x30 + 80012a8: 2303 movs r3, #3 + 80012aa: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF12_FMC; - 80012a0: 230c movs r3, #12 - 80012a2: 637b str r3, [r7, #52] ; 0x34 + 80012ac: 230c movs r3, #12 + 80012ae: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); - 80012a4: f107 0324 add.w r3, r7, #36 ; 0x24 - 80012a8: 4619 mov r1, r3 - 80012aa: 480f ldr r0, [pc, #60] ; (80012e8 ) - 80012ac: f002 fb1c bl 80038e8 + 80012b0: f107 0324 add.w r3, r7, #36 ; 0x24 + 80012b4: 4619 mov r1, r3 + 80012b6: 480f ldr r0, [pc, #60] ; (80012f4 ) + 80012b8: f002 fdd8 bl 8003e6c /*Configure GPIO pins : G4_Pin G5_Pin B6_Pin B7_Pin */ GPIO_InitStruct.Pin = G4_Pin|G5_Pin|B6_Pin|B7_Pin; - 80012b0: f44f 6370 mov.w r3, #3840 ; 0xf00 - 80012b4: 627b str r3, [r7, #36] ; 0x24 + 80012bc: f44f 6370 mov.w r3, #3840 ; 0xf00 + 80012c0: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 80012b6: 2302 movs r3, #2 - 80012b8: 62bb str r3, [r7, #40] ; 0x28 + 80012c2: 2302 movs r3, #2 + 80012c4: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 80012ba: 2300 movs r3, #0 - 80012bc: 62fb str r3, [r7, #44] ; 0x2c + 80012c6: 2300 movs r3, #0 + 80012c8: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 80012be: 2300 movs r3, #0 - 80012c0: 633b str r3, [r7, #48] ; 0x30 - 80012c2: e013 b.n 80012ec - 80012c4: 40023800 .word 0x40023800 - 80012c8: 40020800 .word 0x40020800 - 80012cc: 40020000 .word 0x40020000 - 80012d0: 40020c00 .word 0x40020c00 - 80012d4: 40021800 .word 0x40021800 - 80012d8: 40021400 .word 0x40021400 - 80012dc: 10110000 .word 0x10110000 - 80012e0: 10120000 .word 0x10120000 - 80012e4: 40020400 .word 0x40020400 - 80012e8: 40021000 .word 0x40021000 + 80012ca: 2300 movs r3, #0 + 80012cc: 633b str r3, [r7, #48] ; 0x30 + 80012ce: e013 b.n 80012f8 + 80012d0: 40023800 .word 0x40023800 + 80012d4: 40020800 .word 0x40020800 + 80012d8: 40020000 .word 0x40020000 + 80012dc: 40020c00 .word 0x40020c00 + 80012e0: 40021800 .word 0x40021800 + 80012e4: 40021400 .word 0x40021400 + 80012e8: 10110000 .word 0x10110000 + 80012ec: 10120000 .word 0x10120000 + 80012f0: 40020400 .word 0x40020400 + 80012f4: 40021000 .word 0x40021000 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; - 80012ec: 230e movs r3, #14 - 80012ee: 637b str r3, [r7, #52] ; 0x34 + 80012f8: 230e movs r3, #14 + 80012fa: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - 80012f0: f107 0324 add.w r3, r7, #36 ; 0x24 - 80012f4: 4619 mov r1, r3 - 80012f6: 4877 ldr r0, [pc, #476] ; (80014d4 ) - 80012f8: f002 faf6 bl 80038e8 + 80012fc: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001300: 4619 mov r1, r3 + 8001302: 4877 ldr r0, [pc, #476] ; (80014e0 ) + 8001304: f002 fdb2 bl 8003e6c /*Configure GPIO pins : OTG_HS_ID_Pin OTG_HS_DM_Pin OTG_HS_DP_Pin */ GPIO_InitStruct.Pin = OTG_HS_ID_Pin|OTG_HS_DM_Pin|OTG_HS_DP_Pin; - 80012fc: f44f 4350 mov.w r3, #53248 ; 0xd000 - 8001300: 627b str r3, [r7, #36] ; 0x24 + 8001308: f44f 4350 mov.w r3, #53248 ; 0xd000 + 800130c: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8001302: 2302 movs r3, #2 - 8001304: 62bb str r3, [r7, #40] ; 0x28 + 800130e: 2302 movs r3, #2 + 8001310: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001306: 2300 movs r3, #0 - 8001308: 62fb str r3, [r7, #44] ; 0x2c + 8001312: 2300 movs r3, #0 + 8001314: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 800130a: 2300 movs r3, #0 - 800130c: 633b str r3, [r7, #48] ; 0x30 + 8001316: 2300 movs r3, #0 + 8001318: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF12_OTG_HS_FS; - 800130e: 230c movs r3, #12 - 8001310: 637b str r3, [r7, #52] ; 0x34 + 800131a: 230c movs r3, #12 + 800131c: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - 8001312: f107 0324 add.w r3, r7, #36 ; 0x24 - 8001316: 4619 mov r1, r3 - 8001318: 486e ldr r0, [pc, #440] ; (80014d4 ) - 800131a: f002 fae5 bl 80038e8 + 800131e: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001322: 4619 mov r1, r3 + 8001324: 486e ldr r0, [pc, #440] ; (80014e0 ) + 8001326: f002 fda1 bl 8003e6c /*Configure GPIO pin : VBUS_HS_Pin */ GPIO_InitStruct.Pin = VBUS_HS_Pin; - 800131e: f44f 5300 mov.w r3, #8192 ; 0x2000 - 8001322: 627b str r3, [r7, #36] ; 0x24 + 800132a: f44f 5300 mov.w r3, #8192 ; 0x2000 + 800132e: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - 8001324: 2300 movs r3, #0 - 8001326: 62bb str r3, [r7, #40] ; 0x28 + 8001330: 2300 movs r3, #0 + 8001332: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001328: 2300 movs r3, #0 - 800132a: 62fb str r3, [r7, #44] ; 0x2c + 8001334: 2300 movs r3, #0 + 8001336: 62fb str r3, [r7, #44] ; 0x2c HAL_GPIO_Init(VBUS_HS_GPIO_Port, &GPIO_InitStruct); - 800132c: f107 0324 add.w r3, r7, #36 ; 0x24 - 8001330: 4619 mov r1, r3 - 8001332: 4868 ldr r0, [pc, #416] ; (80014d4 ) - 8001334: f002 fad8 bl 80038e8 + 8001338: f107 0324 add.w r3, r7, #36 ; 0x24 + 800133c: 4619 mov r1, r3 + 800133e: 4868 ldr r0, [pc, #416] ; (80014e0 ) + 8001340: f002 fd94 bl 8003e6c /*Configure GPIO pins : D13_Pin D14_Pin D15_Pin D0_Pin D1_Pin D2_Pin D3_Pin */ GPIO_InitStruct.Pin = D13_Pin|D14_Pin|D15_Pin|D0_Pin - 8001338: f24c 7303 movw r3, #50947 ; 0xc703 - 800133c: 627b str r3, [r7, #36] ; 0x24 + 8001344: f24c 7303 movw r3, #50947 ; 0xc703 + 8001348: 627b str r3, [r7, #36] ; 0x24 |D1_Pin|D2_Pin|D3_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 800133e: 2302 movs r3, #2 - 8001340: 62bb str r3, [r7, #40] ; 0x28 + 800134a: 2302 movs r3, #2 + 800134c: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001342: 2300 movs r3, #0 - 8001344: 62fb str r3, [r7, #44] ; 0x2c + 800134e: 2300 movs r3, #0 + 8001350: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 8001346: 2303 movs r3, #3 - 8001348: 633b str r3, [r7, #48] ; 0x30 + 8001352: 2303 movs r3, #3 + 8001354: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF12_FMC; - 800134a: 230c movs r3, #12 - 800134c: 637b str r3, [r7, #52] ; 0x34 + 8001356: 230c movs r3, #12 + 8001358: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); - 800134e: f107 0324 add.w r3, r7, #36 ; 0x24 - 8001352: 4619 mov r1, r3 - 8001354: 4860 ldr r0, [pc, #384] ; (80014d8 ) - 8001356: f002 fac7 bl 80038e8 + 800135a: f107 0324 add.w r3, r7, #36 ; 0x24 + 800135e: 4619 mov r1, r3 + 8001360: 4860 ldr r0, [pc, #384] ; (80014e4 ) + 8001362: f002 fd83 bl 8003e6c /*Configure GPIO pin : TE_Pin */ GPIO_InitStruct.Pin = TE_Pin; - 800135a: f44f 6300 mov.w r3, #2048 ; 0x800 - 800135e: 627b str r3, [r7, #36] ; 0x24 + 8001366: f44f 6300 mov.w r3, #2048 ; 0x800 + 800136a: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - 8001360: 2300 movs r3, #0 - 8001362: 62bb str r3, [r7, #40] ; 0x28 + 800136c: 2300 movs r3, #0 + 800136e: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001364: 2300 movs r3, #0 - 8001366: 62fb str r3, [r7, #44] ; 0x2c + 8001370: 2300 movs r3, #0 + 8001372: 62fb str r3, [r7, #44] ; 0x2c HAL_GPIO_Init(TE_GPIO_Port, &GPIO_InitStruct); - 8001368: f107 0324 add.w r3, r7, #36 ; 0x24 - 800136c: 4619 mov r1, r3 - 800136e: 485a ldr r0, [pc, #360] ; (80014d8 ) - 8001370: f002 faba bl 80038e8 + 8001374: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001378: 4619 mov r1, r3 + 800137a: 485a ldr r0, [pc, #360] ; (80014e4 ) + 800137c: f002 fd76 bl 8003e6c /*Configure GPIO pins : RDX_Pin WRX_DCX_Pin */ GPIO_InitStruct.Pin = RDX_Pin|WRX_DCX_Pin; - 8001374: f44f 5340 mov.w r3, #12288 ; 0x3000 - 8001378: 627b str r3, [r7, #36] ; 0x24 + 8001380: f44f 5340 mov.w r3, #12288 ; 0x3000 + 8001384: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 800137a: 2301 movs r3, #1 - 800137c: 62bb str r3, [r7, #40] ; 0x28 + 8001386: 2301 movs r3, #1 + 8001388: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 800137e: 2300 movs r3, #0 - 8001380: 62fb str r3, [r7, #44] ; 0x2c + 800138a: 2300 movs r3, #0 + 800138c: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8001382: 2300 movs r3, #0 - 8001384: 633b str r3, [r7, #48] ; 0x30 + 800138e: 2300 movs r3, #0 + 8001390: 633b str r3, [r7, #48] ; 0x30 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); - 8001386: f107 0324 add.w r3, r7, #36 ; 0x24 - 800138a: 4619 mov r1, r3 - 800138c: 4852 ldr r0, [pc, #328] ; (80014d8 ) - 800138e: f002 faab bl 80038e8 + 8001392: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001396: 4619 mov r1, r3 + 8001398: 4852 ldr r0, [pc, #328] ; (80014e4 ) + 800139a: f002 fd67 bl 8003e6c /*Configure GPIO pins : R7_Pin DOTCLK_Pin B3_Pin */ GPIO_InitStruct.Pin = R7_Pin|DOTCLK_Pin|B3_Pin; - 8001392: f44f 630c mov.w r3, #2240 ; 0x8c0 - 8001396: 627b str r3, [r7, #36] ; 0x24 + 800139e: f44f 630c mov.w r3, #2240 ; 0x8c0 + 80013a2: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8001398: 2302 movs r3, #2 - 800139a: 62bb str r3, [r7, #40] ; 0x28 + 80013a4: 2302 movs r3, #2 + 80013a6: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 800139c: 2300 movs r3, #0 - 800139e: 62fb str r3, [r7, #44] ; 0x2c + 80013a8: 2300 movs r3, #0 + 80013aa: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 80013a0: 2300 movs r3, #0 - 80013a2: 633b str r3, [r7, #48] ; 0x30 + 80013ac: 2300 movs r3, #0 + 80013ae: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; - 80013a4: 230e movs r3, #14 - 80013a6: 637b str r3, [r7, #52] ; 0x34 + 80013b0: 230e movs r3, #14 + 80013b2: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); - 80013a8: f107 0324 add.w r3, r7, #36 ; 0x24 - 80013ac: 4619 mov r1, r3 - 80013ae: 484b ldr r0, [pc, #300] ; (80014dc ) - 80013b0: f002 fa9a bl 80038e8 + 80013b4: f107 0324 add.w r3, r7, #36 ; 0x24 + 80013b8: 4619 mov r1, r3 + 80013ba: 484b ldr r0, [pc, #300] ; (80014e8 ) + 80013bc: f002 fd56 bl 8003e6c /*Configure GPIO pins : HSYNC_Pin G6_Pin R2_Pin */ GPIO_InitStruct.Pin = HSYNC_Pin|G6_Pin|R2_Pin; - 80013b4: f44f 6398 mov.w r3, #1216 ; 0x4c0 - 80013b8: 627b str r3, [r7, #36] ; 0x24 + 80013c0: f44f 6398 mov.w r3, #1216 ; 0x4c0 + 80013c4: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 80013ba: 2302 movs r3, #2 - 80013bc: 62bb str r3, [r7, #40] ; 0x28 + 80013c6: 2302 movs r3, #2 + 80013c8: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 80013be: 2300 movs r3, #0 - 80013c0: 62fb str r3, [r7, #44] ; 0x2c + 80013ca: 2300 movs r3, #0 + 80013cc: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 80013c2: 2300 movs r3, #0 - 80013c4: 633b str r3, [r7, #48] ; 0x30 + 80013ce: 2300 movs r3, #0 + 80013d0: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; - 80013c6: 230e movs r3, #14 - 80013c8: 637b str r3, [r7, #52] ; 0x34 + 80013d2: 230e movs r3, #14 + 80013d4: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); - 80013ca: f107 0324 add.w r3, r7, #36 ; 0x24 - 80013ce: 4619 mov r1, r3 - 80013d0: 4843 ldr r0, [pc, #268] ; (80014e0 ) - 80013d2: f002 fa89 bl 80038e8 + 80013d6: f107 0324 add.w r3, r7, #36 ; 0x24 + 80013da: 4619 mov r1, r3 + 80013dc: 4843 ldr r0, [pc, #268] ; (80014ec ) + 80013de: f002 fd45 bl 8003e6c /*Configure GPIO pin : I2C3_SDA_Pin */ GPIO_InitStruct.Pin = I2C3_SDA_Pin; - 80013d6: f44f 7300 mov.w r3, #512 ; 0x200 - 80013da: 627b str r3, [r7, #36] ; 0x24 + 80013e2: f44f 7300 mov.w r3, #512 ; 0x200 + 80013e6: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; - 80013dc: 2312 movs r3, #18 - 80013de: 62bb str r3, [r7, #40] ; 0x28 + 80013e8: 2312 movs r3, #18 + 80013ea: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_PULLUP; - 80013e0: 2301 movs r3, #1 - 80013e2: 62fb str r3, [r7, #44] ; 0x2c + 80013ec: 2301 movs r3, #1 + 80013ee: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 80013e4: 2300 movs r3, #0 - 80013e6: 633b str r3, [r7, #48] ; 0x30 + 80013f0: 2300 movs r3, #0 + 80013f2: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF4_I2C3; - 80013e8: 2304 movs r3, #4 - 80013ea: 637b str r3, [r7, #52] ; 0x34 + 80013f4: 2304 movs r3, #4 + 80013f6: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(I2C3_SDA_GPIO_Port, &GPIO_InitStruct); - 80013ec: f107 0324 add.w r3, r7, #36 ; 0x24 - 80013f0: 4619 mov r1, r3 - 80013f2: 483b ldr r0, [pc, #236] ; (80014e0 ) - 80013f4: f002 fa78 bl 80038e8 + 80013f8: f107 0324 add.w r3, r7, #36 ; 0x24 + 80013fc: 4619 mov r1, r3 + 80013fe: 483b ldr r0, [pc, #236] ; (80014ec ) + 8001400: f002 fd34 bl 8003e6c /*Configure GPIO pin : I2C3_SCL_Pin */ GPIO_InitStruct.Pin = I2C3_SCL_Pin; - 80013f8: f44f 7380 mov.w r3, #256 ; 0x100 - 80013fc: 627b str r3, [r7, #36] ; 0x24 + 8001404: f44f 7380 mov.w r3, #256 ; 0x100 + 8001408: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; - 80013fe: 2312 movs r3, #18 - 8001400: 62bb str r3, [r7, #40] ; 0x28 + 800140a: 2312 movs r3, #18 + 800140c: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_PULLUP; - 8001402: 2301 movs r3, #1 - 8001404: 62fb str r3, [r7, #44] ; 0x2c + 800140e: 2301 movs r3, #1 + 8001410: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8001406: 2300 movs r3, #0 - 8001408: 633b str r3, [r7, #48] ; 0x30 + 8001412: 2300 movs r3, #0 + 8001414: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF4_I2C3; - 800140a: 2304 movs r3, #4 - 800140c: 637b str r3, [r7, #52] ; 0x34 + 8001416: 2304 movs r3, #4 + 8001418: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(I2C3_SCL_GPIO_Port, &GPIO_InitStruct); - 800140e: f107 0324 add.w r3, r7, #36 ; 0x24 - 8001412: 4619 mov r1, r3 - 8001414: 4833 ldr r0, [pc, #204] ; (80014e4 ) - 8001416: f002 fa67 bl 80038e8 + 800141a: f107 0324 add.w r3, r7, #36 ; 0x24 + 800141e: 4619 mov r1, r3 + 8001420: 4833 ldr r0, [pc, #204] ; (80014f0 ) + 8001422: f002 fd23 bl 8003e6c /*Configure GPIO pins : STLINK_RX_Pin STLINK_TX_Pin */ GPIO_InitStruct.Pin = STLINK_RX_Pin|STLINK_TX_Pin; - 800141a: f44f 63c0 mov.w r3, #1536 ; 0x600 - 800141e: 627b str r3, [r7, #36] ; 0x24 + 8001426: f44f 63c0 mov.w r3, #1536 ; 0x600 + 800142a: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8001420: 2302 movs r3, #2 - 8001422: 62bb str r3, [r7, #40] ; 0x28 + 800142c: 2302 movs r3, #2 + 800142e: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001424: 2300 movs r3, #0 - 8001426: 62fb str r3, [r7, #44] ; 0x2c + 8001430: 2300 movs r3, #0 + 8001432: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 8001428: 2303 movs r3, #3 - 800142a: 633b str r3, [r7, #48] ; 0x30 + 8001434: 2303 movs r3, #3 + 8001436: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF7_USART1; - 800142c: 2307 movs r3, #7 - 800142e: 637b str r3, [r7, #52] ; 0x34 + 8001438: 2307 movs r3, #7 + 800143a: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - 8001430: f107 0324 add.w r3, r7, #36 ; 0x24 - 8001434: 4619 mov r1, r3 - 8001436: 482b ldr r0, [pc, #172] ; (80014e4 ) - 8001438: f002 fa56 bl 80038e8 + 800143c: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001440: 4619 mov r1, r3 + 8001442: 482b ldr r0, [pc, #172] ; (80014f0 ) + 8001444: f002 fd12 bl 8003e6c /*Configure GPIO pins : G7_Pin B2_Pin */ GPIO_InitStruct.Pin = G7_Pin|B2_Pin; - 800143c: 2348 movs r3, #72 ; 0x48 - 800143e: 627b str r3, [r7, #36] ; 0x24 + 8001448: 2348 movs r3, #72 ; 0x48 + 800144a: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8001440: 2302 movs r3, #2 - 8001442: 62bb str r3, [r7, #40] ; 0x28 + 800144c: 2302 movs r3, #2 + 800144e: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001444: 2300 movs r3, #0 - 8001446: 62fb str r3, [r7, #44] ; 0x2c + 8001450: 2300 movs r3, #0 + 8001452: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8001448: 2300 movs r3, #0 - 800144a: 633b str r3, [r7, #48] ; 0x30 + 8001454: 2300 movs r3, #0 + 8001456: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; - 800144c: 230e movs r3, #14 - 800144e: 637b str r3, [r7, #52] ; 0x34 + 8001458: 230e movs r3, #14 + 800145a: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); - 8001450: f107 0324 add.w r3, r7, #36 ; 0x24 - 8001454: 4619 mov r1, r3 - 8001456: 4820 ldr r0, [pc, #128] ; (80014d8 ) - 8001458: f002 fa46 bl 80038e8 + 800145c: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001460: 4619 mov r1, r3 + 8001462: 4820 ldr r0, [pc, #128] ; (80014e4 ) + 8001464: f002 fd02 bl 8003e6c /*Configure GPIO pins : G3_Pin B4_Pin */ GPIO_InitStruct.Pin = G3_Pin|B4_Pin; - 800145c: f44f 53a0 mov.w r3, #5120 ; 0x1400 - 8001460: 627b str r3, [r7, #36] ; 0x24 + 8001468: f44f 53a0 mov.w r3, #5120 ; 0x1400 + 800146c: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8001462: 2302 movs r3, #2 - 8001464: 62bb str r3, [r7, #40] ; 0x28 + 800146e: 2302 movs r3, #2 + 8001470: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001466: 2300 movs r3, #0 - 8001468: 62fb str r3, [r7, #44] ; 0x2c + 8001472: 2300 movs r3, #0 + 8001474: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 800146a: 2300 movs r3, #0 - 800146c: 633b str r3, [r7, #48] ; 0x30 + 8001476: 2300 movs r3, #0 + 8001478: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF9_LTDC; - 800146e: 2309 movs r3, #9 - 8001470: 637b str r3, [r7, #52] ; 0x34 + 800147a: 2309 movs r3, #9 + 800147c: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); - 8001472: f107 0324 add.w r3, r7, #36 ; 0x24 - 8001476: 4619 mov r1, r3 - 8001478: 4818 ldr r0, [pc, #96] ; (80014dc ) - 800147a: f002 fa35 bl 80038e8 + 800147e: f107 0324 add.w r3, r7, #36 ; 0x24 + 8001482: 4619 mov r1, r3 + 8001484: 4818 ldr r0, [pc, #96] ; (80014e8 ) + 8001486: f002 fcf1 bl 8003e6c /*Configure GPIO pins : LD3_Pin LD4_Pin */ GPIO_InitStruct.Pin = LD3_Pin|LD4_Pin; - 800147e: f44f 43c0 mov.w r3, #24576 ; 0x6000 - 8001482: 627b str r3, [r7, #36] ; 0x24 + 800148a: f44f 43c0 mov.w r3, #24576 ; 0x6000 + 800148e: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 8001484: 2301 movs r3, #1 - 8001486: 62bb str r3, [r7, #40] ; 0x28 + 8001490: 2301 movs r3, #1 + 8001492: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 8001488: 2300 movs r3, #0 - 800148a: 62fb str r3, [r7, #44] ; 0x2c + 8001494: 2300 movs r3, #0 + 8001496: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 800148c: 2300 movs r3, #0 - 800148e: 633b str r3, [r7, #48] ; 0x30 + 8001498: 2300 movs r3, #0 + 800149a: 633b str r3, [r7, #48] ; 0x30 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); - 8001490: f107 0324 add.w r3, r7, #36 ; 0x24 - 8001494: 4619 mov r1, r3 - 8001496: 4811 ldr r0, [pc, #68] ; (80014dc ) - 8001498: f002 fa26 bl 80038e8 + 800149c: f107 0324 add.w r3, r7, #36 ; 0x24 + 80014a0: 4619 mov r1, r3 + 80014a2: 4811 ldr r0, [pc, #68] ; (80014e8 ) + 80014a4: f002 fce2 bl 8003e6c /*Configure GPIO pins : SDCKE1_Pin SDNE1_Pin */ GPIO_InitStruct.Pin = SDCKE1_Pin|SDNE1_Pin; - 800149c: 2360 movs r3, #96 ; 0x60 - 800149e: 627b str r3, [r7, #36] ; 0x24 + 80014a8: 2360 movs r3, #96 ; 0x60 + 80014aa: 627b str r3, [r7, #36] ; 0x24 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 80014a0: 2302 movs r3, #2 - 80014a2: 62bb str r3, [r7, #40] ; 0x28 + 80014ac: 2302 movs r3, #2 + 80014ae: 62bb str r3, [r7, #40] ; 0x28 GPIO_InitStruct.Pull = GPIO_NOPULL; - 80014a4: 2300 movs r3, #0 - 80014a6: 62fb str r3, [r7, #44] ; 0x2c + 80014b0: 2300 movs r3, #0 + 80014b2: 62fb str r3, [r7, #44] ; 0x2c GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 80014a8: 2303 movs r3, #3 - 80014aa: 633b str r3, [r7, #48] ; 0x30 + 80014b4: 2303 movs r3, #3 + 80014b6: 633b str r3, [r7, #48] ; 0x30 GPIO_InitStruct.Alternate = GPIO_AF12_FMC; - 80014ac: 230c movs r3, #12 - 80014ae: 637b str r3, [r7, #52] ; 0x34 + 80014b8: 230c movs r3, #12 + 80014ba: 637b str r3, [r7, #52] ; 0x34 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - 80014b0: f107 0324 add.w r3, r7, #36 ; 0x24 - 80014b4: 4619 mov r1, r3 - 80014b6: 4807 ldr r0, [pc, #28] ; (80014d4 ) - 80014b8: f002 fa16 bl 80038e8 + 80014bc: f107 0324 add.w r3, r7, #36 ; 0x24 + 80014c0: 4619 mov r1, r3 + 80014c2: 4807 ldr r0, [pc, #28] ; (80014e0 ) + 80014c4: f002 fcd2 bl 8003e6c /* EXTI interrupt init*/ HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0); - 80014bc: 2200 movs r2, #0 - 80014be: 2100 movs r1, #0 - 80014c0: 2006 movs r0, #6 - 80014c2: f002 f9b8 bl 8003836 + 80014c8: 2200 movs r2, #0 + 80014ca: 2100 movs r1, #0 + 80014cc: 2006 movs r0, #6 + 80014ce: f002 fc74 bl 8003dba HAL_NVIC_EnableIRQ(EXTI0_IRQn); - 80014c6: 2006 movs r0, #6 - 80014c8: f002 f9d1 bl 800386e + 80014d2: 2006 movs r0, #6 + 80014d4: f002 fc8d bl 8003df2 } - 80014cc: bf00 nop - 80014ce: 3738 adds r7, #56 ; 0x38 - 80014d0: 46bd mov sp, r7 - 80014d2: bd80 pop {r7, pc} - 80014d4: 40020400 .word 0x40020400 - 80014d8: 40020c00 .word 0x40020c00 - 80014dc: 40021800 .word 0x40021800 - 80014e0: 40020800 .word 0x40020800 - 80014e4: 40020000 .word 0x40020000 + 80014d8: bf00 nop + 80014da: 3738 adds r7, #56 ; 0x38 + 80014dc: 46bd mov sp, r7 + 80014de: bd80 pop {r7, pc} + 80014e0: 40020400 .word 0x40020400 + 80014e4: 40020c00 .word 0x40020c00 + 80014e8: 40021800 .word 0x40021800 + 80014ec: 40020800 .word 0x40020800 + 80014f0: 40020000 .word 0x40020000 -080014e8 : +080014f4 : /* USER CODE BEGIN 4 */ uint8_t getSoundLevel(void){ - 80014e8: b580 push {r7, lr} - 80014ea: b084 sub sp, #16 - 80014ec: af00 add r7, sp, #0 + 80014f4: b580 push {r7, lr} + 80014f6: b084 sub sp, #16 + 80014f8: af00 add r7, sp, #0 // Adjustment / Calibration static uint8_t cutoff = 90; // By order of process uint8_t samples[8]; uint16_t estimatedSoundLevel = 0; - 80014ee: 2300 movs r3, #0 - 80014f0: 81fb strh r3, [r7, #14] + 80014fa: 2300 movs r3, #0 + 80014fc: 81fb strh r3, [r7, #14] static uint16_t averagedReturnValue = 0; uint16_t returnValue; for(uint8_t i = 0; i < sizeof(samples); ++i){ - 80014f2: 2300 movs r3, #0 - 80014f4: 72fb strb r3, [r7, #11] - 80014f6: e014 b.n 8001522 + 80014fe: 2300 movs r3, #0 + 8001500: 72fb strb r3, [r7, #11] + 8001502: e014 b.n 800152e HAL_ADC_Start(&hadc3); - 80014f8: 4830 ldr r0, [pc, #192] ; (80015bc ) - 80014fa: f001 fd3b bl 8002f74 + 8001504: 4830 ldr r0, [pc, #192] ; (80015c8 ) + 8001506: f001 fff7 bl 80034f8 HAL_ADC_PollForConversion(&hadc3, (uint32_t) 20); - 80014fe: 2114 movs r1, #20 - 8001500: 482e ldr r0, [pc, #184] ; (80015bc ) - 8001502: f001 fdfd bl 8003100 + 800150a: 2114 movs r1, #20 + 800150c: 482e ldr r0, [pc, #184] ; (80015c8 ) + 800150e: f002 f8b9 bl 8003684 samples[i] = HAL_ADC_GetValue(&hadc3); - 8001506: 482d ldr r0, [pc, #180] ; (80015bc ) - 8001508: f001 fe7e bl 8003208 - 800150c: 4602 mov r2, r0 - 800150e: 7afb ldrb r3, [r7, #11] - 8001510: b2d2 uxtb r2, r2 - 8001512: f107 0110 add.w r1, r7, #16 - 8001516: 440b add r3, r1 - 8001518: f803 2c10 strb.w r2, [r3, #-16] + 8001512: 482d ldr r0, [pc, #180] ; (80015c8 ) + 8001514: f002 f93a bl 800378c + 8001518: 4602 mov r2, r0 + 800151a: 7afb ldrb r3, [r7, #11] + 800151c: b2d2 uxtb r2, r2 + 800151e: f107 0110 add.w r1, r7, #16 + 8001522: 440b add r3, r1 + 8001524: f803 2c10 strb.w r2, [r3, #-16] for(uint8_t i = 0; i < sizeof(samples); ++i){ - 800151c: 7afb ldrb r3, [r7, #11] - 800151e: 3301 adds r3, #1 - 8001520: 72fb strb r3, [r7, #11] - 8001522: 7afb ldrb r3, [r7, #11] - 8001524: 2b07 cmp r3, #7 - 8001526: d9e7 bls.n 80014f8 + 8001528: 7afb ldrb r3, [r7, #11] + 800152a: 3301 adds r3, #1 + 800152c: 72fb strb r3, [r7, #11] + 800152e: 7afb ldrb r3, [r7, #11] + 8001530: 2b07 cmp r3, #7 + 8001532: d9e7 bls.n 8001504 } for(uint8_t i = 0; i < sizeof(samples); ++i){ - 8001528: 2300 movs r3, #0 - 800152a: 72bb strb r3, [r7, #10] - 800152c: e00c b.n 8001548 + 8001534: 2300 movs r3, #0 + 8001536: 72bb strb r3, [r7, #10] + 8001538: e00c b.n 8001554 estimatedSoundLevel += samples[i]; - 800152e: 7abb ldrb r3, [r7, #10] - 8001530: f107 0210 add.w r2, r7, #16 - 8001534: 4413 add r3, r2 - 8001536: f813 3c10 ldrb.w r3, [r3, #-16] - 800153a: b29a uxth r2, r3 - 800153c: 89fb ldrh r3, [r7, #14] - 800153e: 4413 add r3, r2 - 8001540: 81fb strh r3, [r7, #14] + 800153a: 7abb ldrb r3, [r7, #10] + 800153c: f107 0210 add.w r2, r7, #16 + 8001540: 4413 add r3, r2 + 8001542: f813 3c10 ldrb.w r3, [r3, #-16] + 8001546: b29a uxth r2, r3 + 8001548: 89fb ldrh r3, [r7, #14] + 800154a: 4413 add r3, r2 + 800154c: 81fb strh r3, [r7, #14] for(uint8_t i = 0; i < sizeof(samples); ++i){ - 8001542: 7abb ldrb r3, [r7, #10] - 8001544: 3301 adds r3, #1 - 8001546: 72bb strb r3, [r7, #10] - 8001548: 7abb ldrb r3, [r7, #10] - 800154a: 2b07 cmp r3, #7 - 800154c: d9ef bls.n 800152e + 800154e: 7abb ldrb r3, [r7, #10] + 8001550: 3301 adds r3, #1 + 8001552: 72bb strb r3, [r7, #10] + 8001554: 7abb ldrb r3, [r7, #10] + 8001556: 2b07 cmp r3, #7 + 8001558: d9ef bls.n 800153a } estimatedSoundLevel /= sizeof(samples); - 800154e: 89fb ldrh r3, [r7, #14] - 8001550: 08db lsrs r3, r3, #3 - 8001552: 81fb strh r3, [r7, #14] + 800155a: 89fb ldrh r3, [r7, #14] + 800155c: 08db lsrs r3, r3, #3 + 800155e: 81fb strh r3, [r7, #14] if(estimatedSoundLevel <= cutoff){ - 8001554: 4b1a ldr r3, [pc, #104] ; (80015c0 ) - 8001556: 781b ldrb r3, [r3, #0] - 8001558: b29b uxth r3, r3 - 800155a: 89fa ldrh r2, [r7, #14] - 800155c: 429a cmp r2, r3 - 800155e: d802 bhi.n 8001566 + 8001560: 4b1a ldr r3, [pc, #104] ; (80015cc ) + 8001562: 781b ldrb r3, [r3, #0] + 8001564: b29b uxth r3, r3 + 8001566: 89fa ldrh r2, [r7, #14] + 8001568: 429a cmp r2, r3 + 800156a: d802 bhi.n 8001572 returnValue = 0; - 8001560: 2300 movs r3, #0 - 8001562: 81bb strh r3, [r7, #12] - 8001564: e006 b.n 8001574 + 800156c: 2300 movs r3, #0 + 800156e: 81bb strh r3, [r7, #12] + 8001570: e006 b.n 8001580 }else{ returnValue = (uint16_t) (2 * (estimatedSoundLevel - cutoff)); - 8001566: 89fb ldrh r3, [r7, #14] - 8001568: 4a15 ldr r2, [pc, #84] ; (80015c0 ) - 800156a: 7812 ldrb r2, [r2, #0] - 800156c: 1a9b subs r3, r3, r2 - 800156e: b29b uxth r3, r3 - 8001570: 005b lsls r3, r3, #1 - 8001572: 81bb strh r3, [r7, #12] + 8001572: 89fb ldrh r3, [r7, #14] + 8001574: 4a15 ldr r2, [pc, #84] ; (80015cc ) + 8001576: 7812 ldrb r2, [r2, #0] + 8001578: 1a9b subs r3, r3, r2 + 800157a: b29b uxth r3, r3 + 800157c: 005b lsls r3, r3, #1 + 800157e: 81bb strh r3, [r7, #12] } averagedReturnValue += ((int32_t) returnValue - (int32_t) averagedReturnValue) / 3; - 8001574: 89bb ldrh r3, [r7, #12] - 8001576: 4a13 ldr r2, [pc, #76] ; (80015c4 ) - 8001578: 8812 ldrh r2, [r2, #0] - 800157a: 1a9b subs r3, r3, r2 - 800157c: 4a12 ldr r2, [pc, #72] ; (80015c8 ) - 800157e: fb82 1203 smull r1, r2, r2, r3 - 8001582: 17db asrs r3, r3, #31 - 8001584: 1ad3 subs r3, r2, r3 - 8001586: b29a uxth r2, r3 - 8001588: 4b0e ldr r3, [pc, #56] ; (80015c4 ) - 800158a: 881b ldrh r3, [r3, #0] - 800158c: 4413 add r3, r2 - 800158e: b29a uxth r2, r3 - 8001590: 4b0c ldr r3, [pc, #48] ; (80015c4 ) - 8001592: 801a strh r2, [r3, #0] + 8001580: 89bb ldrh r3, [r7, #12] + 8001582: 4a13 ldr r2, [pc, #76] ; (80015d0 ) + 8001584: 8812 ldrh r2, [r2, #0] + 8001586: 1a9b subs r3, r3, r2 + 8001588: 4a12 ldr r2, [pc, #72] ; (80015d4 ) + 800158a: fb82 1203 smull r1, r2, r2, r3 + 800158e: 17db asrs r3, r3, #31 + 8001590: 1ad3 subs r3, r2, r3 + 8001592: b29a uxth r2, r3 + 8001594: 4b0e ldr r3, [pc, #56] ; (80015d0 ) + 8001596: 881b ldrh r3, [r3, #0] + 8001598: 4413 add r3, r2 + 800159a: b29a uxth r2, r3 + 800159c: 4b0c ldr r3, [pc, #48] ; (80015d0 ) + 800159e: 801a strh r2, [r3, #0] if(averagedReturnValue >= 0xFF){ - 8001594: 4b0b ldr r3, [pc, #44] ; (80015c4 ) - 8001596: 881b ldrh r3, [r3, #0] - 8001598: 2bfe cmp r3, #254 ; 0xfe - 800159a: d901 bls.n 80015a0 - return 0xFF; - 800159c: 23ff movs r3, #255 ; 0xff - 800159e: e008 b.n 80015b2 - }else if(averagedReturnValue <= 10){ - 80015a0: 4b08 ldr r3, [pc, #32] ; (80015c4 ) + 80015a0: 4b0b ldr r3, [pc, #44] ; (80015d0 ) 80015a2: 881b ldrh r3, [r3, #0] - 80015a4: 2b0a cmp r3, #10 - 80015a6: d801 bhi.n 80015ac + 80015a4: 2bfe cmp r3, #254 ; 0xfe + 80015a6: d901 bls.n 80015ac + return 0xFF; + 80015a8: 23ff movs r3, #255 ; 0xff + 80015aa: e008 b.n 80015be + }else if(averagedReturnValue <= 10){ + 80015ac: 4b08 ldr r3, [pc, #32] ; (80015d0 ) + 80015ae: 881b ldrh r3, [r3, #0] + 80015b0: 2b0a cmp r3, #10 + 80015b2: d801 bhi.n 80015b8 return 0x00; - 80015a8: 2300 movs r3, #0 - 80015aa: e002 b.n 80015b2 + 80015b4: 2300 movs r3, #0 + 80015b6: e002 b.n 80015be }else{ return averagedReturnValue; - 80015ac: 4b05 ldr r3, [pc, #20] ; (80015c4 ) - 80015ae: 881b ldrh r3, [r3, #0] - 80015b0: b2db uxtb r3, r3 + 80015b8: 4b05 ldr r3, [pc, #20] ; (80015d0 ) + 80015ba: 881b ldrh r3, [r3, #0] + 80015bc: b2db uxtb r3, r3 } } - 80015b2: 4618 mov r0, r3 - 80015b4: 3710 adds r7, #16 - 80015b6: 46bd mov sp, r7 - 80015b8: bd80 pop {r7, pc} - 80015ba: bf00 nop - 80015bc: 200003b4 .word 0x200003b4 - 80015c0: 20000000 .word 0x20000000 - 80015c4: 200003a6 .word 0x200003a6 - 80015c8: 55555556 .word 0x55555556 + 80015be: 4618 mov r0, r3 + 80015c0: 3710 adds r7, #16 + 80015c2: 46bd mov sp, r7 + 80015c4: bd80 pop {r7, pc} + 80015c6: bf00 nop + 80015c8: 200003b4 .word 0x200003b4 + 80015cc: 20000000 .word 0x20000000 + 80015d0: 200003a6 .word 0x200003a6 + 80015d4: 55555556 .word 0x55555556 -080015cc : +080015d8 : void LEDDesign_Off(void){ - 80015cc: b480 push {r7} - 80015ce: b083 sub sp, #12 - 80015d0: af00 add r7, sp, #0 + 80015d8: b480 push {r7} + 80015da: b083 sub sp, #12 + 80015dc: af00 add r7, sp, #0 for(uint8_t i = 0; i < 64; ++i){ - 80015d2: 2300 movs r3, #0 - 80015d4: 71fb strb r3, [r7, #7] - 80015d6: e015 b.n 8001604 + 80015de: 2300 movs r3, #0 + 80015e0: 71fb strb r3, [r7, #7] + 80015e2: e015 b.n 8001610 for(uint8_t j = 0; j < 3; ++j){ - 80015d8: 2300 movs r3, #0 - 80015da: 71bb strb r3, [r7, #6] - 80015dc: e00c b.n 80015f8 + 80015e4: 2300 movs r3, #0 + 80015e6: 71bb strb r3, [r7, #6] + 80015e8: e00c b.n 8001604 LEDData[i][j] = 0x00; - 80015de: 79fa ldrb r2, [r7, #7] - 80015e0: 79b9 ldrb r1, [r7, #6] - 80015e2: 480d ldr r0, [pc, #52] ; (8001618 ) - 80015e4: 4613 mov r3, r2 - 80015e6: 005b lsls r3, r3, #1 - 80015e8: 4413 add r3, r2 - 80015ea: 4403 add r3, r0 - 80015ec: 440b add r3, r1 - 80015ee: 2200 movs r2, #0 - 80015f0: 701a strb r2, [r3, #0] + 80015ea: 79fa ldrb r2, [r7, #7] + 80015ec: 79b9 ldrb r1, [r7, #6] + 80015ee: 480d ldr r0, [pc, #52] ; (8001624 ) + 80015f0: 4613 mov r3, r2 + 80015f2: 005b lsls r3, r3, #1 + 80015f4: 4413 add r3, r2 + 80015f6: 4403 add r3, r0 + 80015f8: 440b add r3, r1 + 80015fa: 2200 movs r2, #0 + 80015fc: 701a strb r2, [r3, #0] for(uint8_t j = 0; j < 3; ++j){ - 80015f2: 79bb ldrb r3, [r7, #6] - 80015f4: 3301 adds r3, #1 - 80015f6: 71bb strb r3, [r7, #6] - 80015f8: 79bb ldrb r3, [r7, #6] - 80015fa: 2b02 cmp r3, #2 - 80015fc: d9ef bls.n 80015de - for(uint8_t i = 0; i < 64; ++i){ - 80015fe: 79fb ldrb r3, [r7, #7] + 80015fe: 79bb ldrb r3, [r7, #6] 8001600: 3301 adds r3, #1 - 8001602: 71fb strb r3, [r7, #7] - 8001604: 79fb ldrb r3, [r7, #7] - 8001606: 2b3f cmp r3, #63 ; 0x3f - 8001608: d9e6 bls.n 80015d8 + 8001602: 71bb strb r3, [r7, #6] + 8001604: 79bb ldrb r3, [r7, #6] + 8001606: 2b02 cmp r3, #2 + 8001608: d9ef bls.n 80015ea + for(uint8_t i = 0; i < 64; ++i){ + 800160a: 79fb ldrb r3, [r7, #7] + 800160c: 3301 adds r3, #1 + 800160e: 71fb strb r3, [r7, #7] + 8001610: 79fb ldrb r3, [r7, #7] + 8001612: 2b3f cmp r3, #63 ; 0x3f + 8001614: d9e6 bls.n 80015e4 } } } - 800160a: bf00 nop - 800160c: 370c adds r7, #12 - 800160e: 46bd mov sp, r7 - 8001610: f85d 7b04 ldr.w r7, [sp], #4 - 8001614: 4770 bx lr 8001616: bf00 nop - 8001618: 20000094 .word 0x20000094 + 8001618: 370c adds r7, #12 + 800161a: 46bd mov sp, r7 + 800161c: f85d 7b04 ldr.w r7, [sp], #4 + 8001620: 4770 bx lr + 8001622: bf00 nop + 8001624: 20000094 .word 0x20000094 -0800161c : +08001628 : void LEDDesign_ColorWhite(void){ - 800161c: b480 push {r7} - 800161e: b083 sub sp, #12 - 8001620: af00 add r7, sp, #0 + 8001628: b480 push {r7} + 800162a: b083 sub sp, #12 + 800162c: af00 add r7, sp, #0 for(uint8_t i = 0; i < 64; ++i){ - 8001622: 2300 movs r3, #0 - 8001624: 71fb strb r3, [r7, #7] - 8001626: e015 b.n 8001654 + 800162e: 2300 movs r3, #0 + 8001630: 71fb strb r3, [r7, #7] + 8001632: e015 b.n 8001660 for(uint8_t j = 0; j < 3; ++j){ - 8001628: 2300 movs r3, #0 - 800162a: 71bb strb r3, [r7, #6] - 800162c: e00c b.n 8001648 + 8001634: 2300 movs r3, #0 + 8001636: 71bb strb r3, [r7, #6] + 8001638: e00c b.n 8001654 LEDData[i][j] = 0xFF; - 800162e: 79fa ldrb r2, [r7, #7] - 8001630: 79b9 ldrb r1, [r7, #6] - 8001632: 480d ldr r0, [pc, #52] ; (8001668 ) - 8001634: 4613 mov r3, r2 - 8001636: 005b lsls r3, r3, #1 - 8001638: 4413 add r3, r2 - 800163a: 4403 add r3, r0 - 800163c: 440b add r3, r1 - 800163e: 22ff movs r2, #255 ; 0xff - 8001640: 701a strb r2, [r3, #0] + 800163a: 79fa ldrb r2, [r7, #7] + 800163c: 79b9 ldrb r1, [r7, #6] + 800163e: 480d ldr r0, [pc, #52] ; (8001674 ) + 8001640: 4613 mov r3, r2 + 8001642: 005b lsls r3, r3, #1 + 8001644: 4413 add r3, r2 + 8001646: 4403 add r3, r0 + 8001648: 440b add r3, r1 + 800164a: 22ff movs r2, #255 ; 0xff + 800164c: 701a strb r2, [r3, #0] for(uint8_t j = 0; j < 3; ++j){ - 8001642: 79bb ldrb r3, [r7, #6] - 8001644: 3301 adds r3, #1 - 8001646: 71bb strb r3, [r7, #6] - 8001648: 79bb ldrb r3, [r7, #6] - 800164a: 2b02 cmp r3, #2 - 800164c: d9ef bls.n 800162e - for(uint8_t i = 0; i < 64; ++i){ - 800164e: 79fb ldrb r3, [r7, #7] + 800164e: 79bb ldrb r3, [r7, #6] 8001650: 3301 adds r3, #1 - 8001652: 71fb strb r3, [r7, #7] - 8001654: 79fb ldrb r3, [r7, #7] - 8001656: 2b3f cmp r3, #63 ; 0x3f - 8001658: d9e6 bls.n 8001628 + 8001652: 71bb strb r3, [r7, #6] + 8001654: 79bb ldrb r3, [r7, #6] + 8001656: 2b02 cmp r3, #2 + 8001658: d9ef bls.n 800163a + for(uint8_t i = 0; i < 64; ++i){ + 800165a: 79fb ldrb r3, [r7, #7] + 800165c: 3301 adds r3, #1 + 800165e: 71fb strb r3, [r7, #7] + 8001660: 79fb ldrb r3, [r7, #7] + 8001662: 2b3f cmp r3, #63 ; 0x3f + 8001664: d9e6 bls.n 8001634 } } } - 800165a: bf00 nop - 800165c: 370c adds r7, #12 - 800165e: 46bd mov sp, r7 - 8001660: f85d 7b04 ldr.w r7, [sp], #4 - 8001664: 4770 bx lr 8001666: bf00 nop - 8001668: 20000094 .word 0x20000094 + 8001668: 370c adds r7, #12 + 800166a: 46bd mov sp, r7 + 800166c: f85d 7b04 ldr.w r7, [sp], #4 + 8001670: 4770 bx lr + 8001672: bf00 nop + 8001674: 20000094 .word 0x20000094 -0800166c : +08001678 : void LEDDesign_ColorBlue(void){ - 800166c: b480 push {r7} - 800166e: b083 sub sp, #12 - 8001670: af00 add r7, sp, #0 + 8001678: b480 push {r7} + 800167a: b083 sub sp, #12 + 800167c: af00 add r7, sp, #0 for(uint8_t i = 0; i < 64; ++i){ - 8001672: 2300 movs r3, #0 - 8001674: 71fb strb r3, [r7, #7] - 8001676: e00a b.n 800168e + 800167e: 2300 movs r3, #0 + 8001680: 71fb strb r3, [r7, #7] + 8001682: e00a b.n 800169a LEDData[i][0] = 0x00; - 8001678: 79fa ldrb r2, [r7, #7] - 800167a: 491b ldr r1, [pc, #108] ; (80016e8 ) - 800167c: 4613 mov r3, r2 - 800167e: 005b lsls r3, r3, #1 - 8001680: 4413 add r3, r2 - 8001682: 440b add r3, r1 - 8001684: 2200 movs r2, #0 - 8001686: 701a strb r2, [r3, #0] + 8001684: 79fa ldrb r2, [r7, #7] + 8001686: 491b ldr r1, [pc, #108] ; (80016f4 ) + 8001688: 4613 mov r3, r2 + 800168a: 005b lsls r3, r3, #1 + 800168c: 4413 add r3, r2 + 800168e: 440b add r3, r1 + 8001690: 2200 movs r2, #0 + 8001692: 701a strb r2, [r3, #0] for(uint8_t i = 0; i < 64; ++i){ - 8001688: 79fb ldrb r3, [r7, #7] - 800168a: 3301 adds r3, #1 - 800168c: 71fb strb r3, [r7, #7] - 800168e: 79fb ldrb r3, [r7, #7] - 8001690: 2b3f cmp r3, #63 ; 0x3f - 8001692: d9f1 bls.n 8001678 + 8001694: 79fb ldrb r3, [r7, #7] + 8001696: 3301 adds r3, #1 + 8001698: 71fb strb r3, [r7, #7] + 800169a: 79fb ldrb r3, [r7, #7] + 800169c: 2b3f cmp r3, #63 ; 0x3f + 800169e: d9f1 bls.n 8001684 } for(uint8_t i = 0; i < 64; ++i){ - 8001694: 2300 movs r3, #0 - 8001696: 71bb strb r3, [r7, #6] - 8001698: e00b b.n 80016b2 + 80016a0: 2300 movs r3, #0 + 80016a2: 71bb strb r3, [r7, #6] + 80016a4: e00b b.n 80016be LEDData[i][1] = 0x00; - 800169a: 79ba ldrb r2, [r7, #6] - 800169c: 4912 ldr r1, [pc, #72] ; (80016e8 ) - 800169e: 4613 mov r3, r2 - 80016a0: 005b lsls r3, r3, #1 - 80016a2: 4413 add r3, r2 - 80016a4: 440b add r3, r1 - 80016a6: 3301 adds r3, #1 - 80016a8: 2200 movs r2, #0 - 80016aa: 701a strb r2, [r3, #0] + 80016a6: 79ba ldrb r2, [r7, #6] + 80016a8: 4912 ldr r1, [pc, #72] ; (80016f4 ) + 80016aa: 4613 mov r3, r2 + 80016ac: 005b lsls r3, r3, #1 + 80016ae: 4413 add r3, r2 + 80016b0: 440b add r3, r1 + 80016b2: 3301 adds r3, #1 + 80016b4: 2200 movs r2, #0 + 80016b6: 701a strb r2, [r3, #0] for(uint8_t i = 0; i < 64; ++i){ - 80016ac: 79bb ldrb r3, [r7, #6] - 80016ae: 3301 adds r3, #1 - 80016b0: 71bb strb r3, [r7, #6] - 80016b2: 79bb ldrb r3, [r7, #6] - 80016b4: 2b3f cmp r3, #63 ; 0x3f - 80016b6: d9f0 bls.n 800169a + 80016b8: 79bb ldrb r3, [r7, #6] + 80016ba: 3301 adds r3, #1 + 80016bc: 71bb strb r3, [r7, #6] + 80016be: 79bb ldrb r3, [r7, #6] + 80016c0: 2b3f cmp r3, #63 ; 0x3f + 80016c2: d9f0 bls.n 80016a6 } for(uint8_t i = 0; i < 64; ++i){ - 80016b8: 2300 movs r3, #0 - 80016ba: 717b strb r3, [r7, #5] - 80016bc: e00b b.n 80016d6 + 80016c4: 2300 movs r3, #0 + 80016c6: 717b strb r3, [r7, #5] + 80016c8: e00b b.n 80016e2 LEDData[i][2] = 0xFF; - 80016be: 797a ldrb r2, [r7, #5] - 80016c0: 4909 ldr r1, [pc, #36] ; (80016e8 ) - 80016c2: 4613 mov r3, r2 - 80016c4: 005b lsls r3, r3, #1 - 80016c6: 4413 add r3, r2 - 80016c8: 440b add r3, r1 - 80016ca: 3302 adds r3, #2 - 80016cc: 22ff movs r2, #255 ; 0xff - 80016ce: 701a strb r2, [r3, #0] + 80016ca: 797a ldrb r2, [r7, #5] + 80016cc: 4909 ldr r1, [pc, #36] ; (80016f4 ) + 80016ce: 4613 mov r3, r2 + 80016d0: 005b lsls r3, r3, #1 + 80016d2: 4413 add r3, r2 + 80016d4: 440b add r3, r1 + 80016d6: 3302 adds r3, #2 + 80016d8: 22ff movs r2, #255 ; 0xff + 80016da: 701a strb r2, [r3, #0] for(uint8_t i = 0; i < 64; ++i){ - 80016d0: 797b ldrb r3, [r7, #5] - 80016d2: 3301 adds r3, #1 - 80016d4: 717b strb r3, [r7, #5] - 80016d6: 797b ldrb r3, [r7, #5] - 80016d8: 2b3f cmp r3, #63 ; 0x3f - 80016da: d9f0 bls.n 80016be + 80016dc: 797b ldrb r3, [r7, #5] + 80016de: 3301 adds r3, #1 + 80016e0: 717b strb r3, [r7, #5] + 80016e2: 797b ldrb r3, [r7, #5] + 80016e4: 2b3f cmp r3, #63 ; 0x3f + 80016e6: d9f0 bls.n 80016ca } } - 80016dc: bf00 nop - 80016de: 370c adds r7, #12 - 80016e0: 46bd mov sp, r7 - 80016e2: f85d 7b04 ldr.w r7, [sp], #4 - 80016e6: 4770 bx lr - 80016e8: 20000094 .word 0x20000094 + 80016e8: bf00 nop + 80016ea: 370c adds r7, #12 + 80016ec: 46bd mov sp, r7 + 80016ee: f85d 7b04 ldr.w r7, [sp], #4 + 80016f2: 4770 bx lr + 80016f4: 20000094 .word 0x20000094 -080016ec : +080016f8 : void LEDDesign_ColorGreen(void){ - 80016ec: b480 push {r7} - 80016ee: b083 sub sp, #12 - 80016f0: af00 add r7, sp, #0 + 80016f8: b480 push {r7} + 80016fa: b083 sub sp, #12 + 80016fc: af00 add r7, sp, #0 for(uint8_t i = 0; i < 64; ++i){ - 80016f2: 2300 movs r3, #0 - 80016f4: 71fb strb r3, [r7, #7] - 80016f6: e00a b.n 800170e + 80016fe: 2300 movs r3, #0 + 8001700: 71fb strb r3, [r7, #7] + 8001702: e00a b.n 800171a LEDData[i][0] = 0xFF; - 80016f8: 79fa ldrb r2, [r7, #7] - 80016fa: 491b ldr r1, [pc, #108] ; (8001768 ) - 80016fc: 4613 mov r3, r2 - 80016fe: 005b lsls r3, r3, #1 - 8001700: 4413 add r3, r2 - 8001702: 440b add r3, r1 - 8001704: 22ff movs r2, #255 ; 0xff - 8001706: 701a strb r2, [r3, #0] + 8001704: 79fa ldrb r2, [r7, #7] + 8001706: 491b ldr r1, [pc, #108] ; (8001774 ) + 8001708: 4613 mov r3, r2 + 800170a: 005b lsls r3, r3, #1 + 800170c: 4413 add r3, r2 + 800170e: 440b add r3, r1 + 8001710: 22ff movs r2, #255 ; 0xff + 8001712: 701a strb r2, [r3, #0] for(uint8_t i = 0; i < 64; ++i){ - 8001708: 79fb ldrb r3, [r7, #7] - 800170a: 3301 adds r3, #1 - 800170c: 71fb strb r3, [r7, #7] - 800170e: 79fb ldrb r3, [r7, #7] - 8001710: 2b3f cmp r3, #63 ; 0x3f - 8001712: d9f1 bls.n 80016f8 + 8001714: 79fb ldrb r3, [r7, #7] + 8001716: 3301 adds r3, #1 + 8001718: 71fb strb r3, [r7, #7] + 800171a: 79fb ldrb r3, [r7, #7] + 800171c: 2b3f cmp r3, #63 ; 0x3f + 800171e: d9f1 bls.n 8001704 } for(uint8_t i = 0; i < 64; ++i){ - 8001714: 2300 movs r3, #0 - 8001716: 71bb strb r3, [r7, #6] - 8001718: e00b b.n 8001732 + 8001720: 2300 movs r3, #0 + 8001722: 71bb strb r3, [r7, #6] + 8001724: e00b b.n 800173e LEDData[i][1] = 0x00; - 800171a: 79ba ldrb r2, [r7, #6] - 800171c: 4912 ldr r1, [pc, #72] ; (8001768 ) - 800171e: 4613 mov r3, r2 - 8001720: 005b lsls r3, r3, #1 - 8001722: 4413 add r3, r2 - 8001724: 440b add r3, r1 - 8001726: 3301 adds r3, #1 - 8001728: 2200 movs r2, #0 - 800172a: 701a strb r2, [r3, #0] + 8001726: 79ba ldrb r2, [r7, #6] + 8001728: 4912 ldr r1, [pc, #72] ; (8001774 ) + 800172a: 4613 mov r3, r2 + 800172c: 005b lsls r3, r3, #1 + 800172e: 4413 add r3, r2 + 8001730: 440b add r3, r1 + 8001732: 3301 adds r3, #1 + 8001734: 2200 movs r2, #0 + 8001736: 701a strb r2, [r3, #0] for(uint8_t i = 0; i < 64; ++i){ - 800172c: 79bb ldrb r3, [r7, #6] - 800172e: 3301 adds r3, #1 - 8001730: 71bb strb r3, [r7, #6] - 8001732: 79bb ldrb r3, [r7, #6] - 8001734: 2b3f cmp r3, #63 ; 0x3f - 8001736: d9f0 bls.n 800171a + 8001738: 79bb ldrb r3, [r7, #6] + 800173a: 3301 adds r3, #1 + 800173c: 71bb strb r3, [r7, #6] + 800173e: 79bb ldrb r3, [r7, #6] + 8001740: 2b3f cmp r3, #63 ; 0x3f + 8001742: d9f0 bls.n 8001726 } for(uint8_t i = 0; i < 64; ++i){ - 8001738: 2300 movs r3, #0 - 800173a: 717b strb r3, [r7, #5] - 800173c: e00b b.n 8001756 + 8001744: 2300 movs r3, #0 + 8001746: 717b strb r3, [r7, #5] + 8001748: e00b b.n 8001762 LEDData[i][2] = 0x00; - 800173e: 797a ldrb r2, [r7, #5] - 8001740: 4909 ldr r1, [pc, #36] ; (8001768 ) - 8001742: 4613 mov r3, r2 - 8001744: 005b lsls r3, r3, #1 - 8001746: 4413 add r3, r2 - 8001748: 440b add r3, r1 - 800174a: 3302 adds r3, #2 - 800174c: 2200 movs r2, #0 - 800174e: 701a strb r2, [r3, #0] + 800174a: 797a ldrb r2, [r7, #5] + 800174c: 4909 ldr r1, [pc, #36] ; (8001774 ) + 800174e: 4613 mov r3, r2 + 8001750: 005b lsls r3, r3, #1 + 8001752: 4413 add r3, r2 + 8001754: 440b add r3, r1 + 8001756: 3302 adds r3, #2 + 8001758: 2200 movs r2, #0 + 800175a: 701a strb r2, [r3, #0] for(uint8_t i = 0; i < 64; ++i){ - 8001750: 797b ldrb r3, [r7, #5] - 8001752: 3301 adds r3, #1 - 8001754: 717b strb r3, [r7, #5] - 8001756: 797b ldrb r3, [r7, #5] - 8001758: 2b3f cmp r3, #63 ; 0x3f - 800175a: d9f0 bls.n 800173e + 800175c: 797b ldrb r3, [r7, #5] + 800175e: 3301 adds r3, #1 + 8001760: 717b strb r3, [r7, #5] + 8001762: 797b ldrb r3, [r7, #5] + 8001764: 2b3f cmp r3, #63 ; 0x3f + 8001766: d9f0 bls.n 800174a } } - 800175c: bf00 nop - 800175e: 370c adds r7, #12 - 8001760: 46bd mov sp, r7 - 8001762: f85d 7b04 ldr.w r7, [sp], #4 - 8001766: 4770 bx lr - 8001768: 20000094 .word 0x20000094 + 8001768: bf00 nop + 800176a: 370c adds r7, #12 + 800176c: 46bd mov sp, r7 + 800176e: f85d 7b04 ldr.w r7, [sp], #4 + 8001772: 4770 bx lr + 8001774: 20000094 .word 0x20000094 -0800176c : +08001778 : void LEDDesign_ColorRed(void){ - 800176c: b480 push {r7} - 800176e: b083 sub sp, #12 - 8001770: af00 add r7, sp, #0 + 8001778: b480 push {r7} + 800177a: b083 sub sp, #12 + 800177c: af00 add r7, sp, #0 for(uint8_t i = 0; i < 64; ++i){ - 8001772: 2300 movs r3, #0 - 8001774: 71fb strb r3, [r7, #7] - 8001776: e00a b.n 800178e + 800177e: 2300 movs r3, #0 + 8001780: 71fb strb r3, [r7, #7] + 8001782: e00a b.n 800179a LEDData[i][0] = 0x00; - 8001778: 79fa ldrb r2, [r7, #7] - 800177a: 491b ldr r1, [pc, #108] ; (80017e8 ) - 800177c: 4613 mov r3, r2 - 800177e: 005b lsls r3, r3, #1 - 8001780: 4413 add r3, r2 - 8001782: 440b add r3, r1 - 8001784: 2200 movs r2, #0 - 8001786: 701a strb r2, [r3, #0] + 8001784: 79fa ldrb r2, [r7, #7] + 8001786: 491b ldr r1, [pc, #108] ; (80017f4 ) + 8001788: 4613 mov r3, r2 + 800178a: 005b lsls r3, r3, #1 + 800178c: 4413 add r3, r2 + 800178e: 440b add r3, r1 + 8001790: 2200 movs r2, #0 + 8001792: 701a strb r2, [r3, #0] for(uint8_t i = 0; i < 64; ++i){ - 8001788: 79fb ldrb r3, [r7, #7] - 800178a: 3301 adds r3, #1 - 800178c: 71fb strb r3, [r7, #7] - 800178e: 79fb ldrb r3, [r7, #7] - 8001790: 2b3f cmp r3, #63 ; 0x3f - 8001792: d9f1 bls.n 8001778 + 8001794: 79fb ldrb r3, [r7, #7] + 8001796: 3301 adds r3, #1 + 8001798: 71fb strb r3, [r7, #7] + 800179a: 79fb ldrb r3, [r7, #7] + 800179c: 2b3f cmp r3, #63 ; 0x3f + 800179e: d9f1 bls.n 8001784 } for(uint8_t i = 0; i < 64; ++i){ - 8001794: 2300 movs r3, #0 - 8001796: 71bb strb r3, [r7, #6] - 8001798: e00b b.n 80017b2 + 80017a0: 2300 movs r3, #0 + 80017a2: 71bb strb r3, [r7, #6] + 80017a4: e00b b.n 80017be LEDData[i][1] = 0xFF; - 800179a: 79ba ldrb r2, [r7, #6] - 800179c: 4912 ldr r1, [pc, #72] ; (80017e8 ) - 800179e: 4613 mov r3, r2 - 80017a0: 005b lsls r3, r3, #1 - 80017a2: 4413 add r3, r2 - 80017a4: 440b add r3, r1 - 80017a6: 3301 adds r3, #1 - 80017a8: 22ff movs r2, #255 ; 0xff - 80017aa: 701a strb r2, [r3, #0] + 80017a6: 79ba ldrb r2, [r7, #6] + 80017a8: 4912 ldr r1, [pc, #72] ; (80017f4 ) + 80017aa: 4613 mov r3, r2 + 80017ac: 005b lsls r3, r3, #1 + 80017ae: 4413 add r3, r2 + 80017b0: 440b add r3, r1 + 80017b2: 3301 adds r3, #1 + 80017b4: 22ff movs r2, #255 ; 0xff + 80017b6: 701a strb r2, [r3, #0] for(uint8_t i = 0; i < 64; ++i){ - 80017ac: 79bb ldrb r3, [r7, #6] - 80017ae: 3301 adds r3, #1 - 80017b0: 71bb strb r3, [r7, #6] - 80017b2: 79bb ldrb r3, [r7, #6] - 80017b4: 2b3f cmp r3, #63 ; 0x3f - 80017b6: d9f0 bls.n 800179a + 80017b8: 79bb ldrb r3, [r7, #6] + 80017ba: 3301 adds r3, #1 + 80017bc: 71bb strb r3, [r7, #6] + 80017be: 79bb ldrb r3, [r7, #6] + 80017c0: 2b3f cmp r3, #63 ; 0x3f + 80017c2: d9f0 bls.n 80017a6 } for(uint8_t i = 0; i < 64; ++i){ - 80017b8: 2300 movs r3, #0 - 80017ba: 717b strb r3, [r7, #5] - 80017bc: e00b b.n 80017d6 + 80017c4: 2300 movs r3, #0 + 80017c6: 717b strb r3, [r7, #5] + 80017c8: e00b b.n 80017e2 LEDData[i][2] = 0x00; - 80017be: 797a ldrb r2, [r7, #5] - 80017c0: 4909 ldr r1, [pc, #36] ; (80017e8 ) - 80017c2: 4613 mov r3, r2 - 80017c4: 005b lsls r3, r3, #1 - 80017c6: 4413 add r3, r2 - 80017c8: 440b add r3, r1 - 80017ca: 3302 adds r3, #2 - 80017cc: 2200 movs r2, #0 - 80017ce: 701a strb r2, [r3, #0] + 80017ca: 797a ldrb r2, [r7, #5] + 80017cc: 4909 ldr r1, [pc, #36] ; (80017f4 ) + 80017ce: 4613 mov r3, r2 + 80017d0: 005b lsls r3, r3, #1 + 80017d2: 4413 add r3, r2 + 80017d4: 440b add r3, r1 + 80017d6: 3302 adds r3, #2 + 80017d8: 2200 movs r2, #0 + 80017da: 701a strb r2, [r3, #0] for(uint8_t i = 0; i < 64; ++i){ - 80017d0: 797b ldrb r3, [r7, #5] - 80017d2: 3301 adds r3, #1 - 80017d4: 717b strb r3, [r7, #5] - 80017d6: 797b ldrb r3, [r7, #5] - 80017d8: 2b3f cmp r3, #63 ; 0x3f - 80017da: d9f0 bls.n 80017be + 80017dc: 797b ldrb r3, [r7, #5] + 80017de: 3301 adds r3, #1 + 80017e0: 717b strb r3, [r7, #5] + 80017e2: 797b ldrb r3, [r7, #5] + 80017e4: 2b3f cmp r3, #63 ; 0x3f + 80017e6: d9f0 bls.n 80017ca } } - 80017dc: bf00 nop - 80017de: 370c adds r7, #12 - 80017e0: 46bd mov sp, r7 - 80017e2: f85d 7b04 ldr.w r7, [sp], #4 - 80017e6: 4770 bx lr - 80017e8: 20000094 .word 0x20000094 + 80017e8: bf00 nop + 80017ea: 370c adds r7, #12 + 80017ec: 46bd mov sp, r7 + 80017ee: f85d 7b04 ldr.w r7, [sp], #4 + 80017f2: 4770 bx lr + 80017f4: 20000094 .word 0x20000094 -080017ec : +080017f8 : void LEDDesign_Crazy(void){ - 80017ec: b590 push {r4, r7, lr} - 80017ee: b085 sub sp, #20 - 80017f0: af00 add r7, sp, #0 + 80017f8: b590 push {r4, r7, lr} + 80017fa: b085 sub sp, #20 + 80017fc: af00 add r7, sp, #0 HAL_Delay(50); - 80017f2: 2032 movs r0, #50 ; 0x32 - 80017f4: f001 fb58 bl 8002ea8 + 80017fe: 2032 movs r0, #50 ; 0x32 + 8001800: f001 fe14 bl 800342c for(uint8_t i = 0; i < 64; ++i){ - 80017f8: 2300 movs r3, #0 - 80017fa: 73fb strb r3, [r7, #15] - 80017fc: e029 b.n 8001852 + 8001804: 2300 movs r3, #0 + 8001806: 73fb strb r3, [r7, #15] + 8001808: e029 b.n 800185e for(uint8_t j = 0; j < 3; ++j){ - 80017fe: 2300 movs r3, #0 - 8001800: 73bb strb r3, [r7, #14] - 8001802: e020 b.n 8001846 + 800180a: 2300 movs r3, #0 + 800180c: 73bb strb r3, [r7, #14] + 800180e: e020 b.n 8001852 LEDData[i][j] = (uint8_t) (0xFF * (((float) rand()) / RAND_MAX)); - 8001804: f003 fd1a bl 800523c - 8001808: ee07 0a90 vmov s15, r0 - 800180c: eeb8 7ae7 vcvt.f32.s32 s14, s15 - 8001810: eddf 6a13 vldr s13, [pc, #76] ; 8001860 - 8001814: eec7 7a26 vdiv.f32 s15, s14, s13 - 8001818: ed9f 7a12 vldr s14, [pc, #72] ; 8001864 - 800181c: ee67 7a87 vmul.f32 s15, s15, s14 - 8001820: 7bfa ldrb r2, [r7, #15] - 8001822: 7bb9 ldrb r1, [r7, #14] - 8001824: eefc 7ae7 vcvt.u32.f32 s15, s15 - 8001828: edc7 7a01 vstr s15, [r7, #4] - 800182c: 793b ldrb r3, [r7, #4] - 800182e: b2dc uxtb r4, r3 - 8001830: 480d ldr r0, [pc, #52] ; (8001868 ) - 8001832: 4613 mov r3, r2 - 8001834: 005b lsls r3, r3, #1 - 8001836: 4413 add r3, r2 - 8001838: 4403 add r3, r0 - 800183a: 440b add r3, r1 - 800183c: 4622 mov r2, r4 - 800183e: 701a strb r2, [r3, #0] + 8001810: f003 ffd6 bl 80057c0 + 8001814: ee07 0a90 vmov s15, r0 + 8001818: eeb8 7ae7 vcvt.f32.s32 s14, s15 + 800181c: eddf 6a13 vldr s13, [pc, #76] ; 800186c + 8001820: eec7 7a26 vdiv.f32 s15, s14, s13 + 8001824: ed9f 7a12 vldr s14, [pc, #72] ; 8001870 + 8001828: ee67 7a87 vmul.f32 s15, s15, s14 + 800182c: 7bfa ldrb r2, [r7, #15] + 800182e: 7bb9 ldrb r1, [r7, #14] + 8001830: eefc 7ae7 vcvt.u32.f32 s15, s15 + 8001834: edc7 7a01 vstr s15, [r7, #4] + 8001838: 793b ldrb r3, [r7, #4] + 800183a: b2dc uxtb r4, r3 + 800183c: 480d ldr r0, [pc, #52] ; (8001874 ) + 800183e: 4613 mov r3, r2 + 8001840: 005b lsls r3, r3, #1 + 8001842: 4413 add r3, r2 + 8001844: 4403 add r3, r0 + 8001846: 440b add r3, r1 + 8001848: 4622 mov r2, r4 + 800184a: 701a strb r2, [r3, #0] for(uint8_t j = 0; j < 3; ++j){ - 8001840: 7bbb ldrb r3, [r7, #14] - 8001842: 3301 adds r3, #1 - 8001844: 73bb strb r3, [r7, #14] - 8001846: 7bbb ldrb r3, [r7, #14] - 8001848: 2b02 cmp r3, #2 - 800184a: d9db bls.n 8001804 - for(uint8_t i = 0; i < 64; ++i){ - 800184c: 7bfb ldrb r3, [r7, #15] + 800184c: 7bbb ldrb r3, [r7, #14] 800184e: 3301 adds r3, #1 - 8001850: 73fb strb r3, [r7, #15] - 8001852: 7bfb ldrb r3, [r7, #15] - 8001854: 2b3f cmp r3, #63 ; 0x3f - 8001856: d9d2 bls.n 80017fe + 8001850: 73bb strb r3, [r7, #14] + 8001852: 7bbb ldrb r3, [r7, #14] + 8001854: 2b02 cmp r3, #2 + 8001856: d9db bls.n 8001810 + for(uint8_t i = 0; i < 64; ++i){ + 8001858: 7bfb ldrb r3, [r7, #15] + 800185a: 3301 adds r3, #1 + 800185c: 73fb strb r3, [r7, #15] + 800185e: 7bfb ldrb r3, [r7, #15] + 8001860: 2b3f cmp r3, #63 ; 0x3f + 8001862: d9d2 bls.n 800180a } } } - 8001858: bf00 nop - 800185a: 3714 adds r7, #20 - 800185c: 46bd mov sp, r7 - 800185e: bd90 pop {r4, r7, pc} - 8001860: 4f000000 .word 0x4f000000 - 8001864: 437f0000 .word 0x437f0000 - 8001868: 20000094 .word 0x20000094 - 800186c: 00000000 .word 0x00000000 + 8001864: bf00 nop + 8001866: 3714 adds r7, #20 + 8001868: 46bd mov sp, r7 + 800186a: bd90 pop {r4, r7, pc} + 800186c: 4f000000 .word 0x4f000000 + 8001870: 437f0000 .word 0x437f0000 + 8001874: 20000094 .word 0x20000094 -08001870 : +08001878 : void LEDDesign_Smile(void){ - 8001870: b5b0 push {r4, r5, r7, lr} - 8001872: b082 sub sp, #8 - 8001874: af00 add r7, sp, #0 - uint8_t currentSoundLevel = getSoundLevel(); - 8001876: f7ff fe37 bl 80014e8 - 800187a: 4603 mov r3, r0 - 800187c: 71fb strb r3, [r7, #7] + 8001878: b580 push {r7, lr} + 800187a: af00 add r7, sp, #0 setLED(lookupLED(0,0), 0x00, 0x00, 0x00); - 800187e: 2100 movs r1, #0 - 8001880: 2000 movs r0, #0 - 8001882: f000 fd87 bl 8002394 - 8001886: 4603 mov r3, r0 - 8001888: 4618 mov r0, r3 - 800188a: 2300 movs r3, #0 - 800188c: 2200 movs r2, #0 - 800188e: 2100 movs r1, #0 - 8001890: f000 fef0 bl 8002674 + 800187c: 2100 movs r1, #0 + 800187e: 2000 movs r0, #0 + 8001880: f001 f850 bl 8002924 + 8001884: 4603 mov r3, r0 + 8001886: 4618 mov r0, r3 + 8001888: 2300 movs r3, #0 + 800188a: 2200 movs r2, #0 + 800188c: 2100 movs r1, #0 + 800188e: f001 f9b9 bl 8002c04 setLED(lookupLED(0,1), 0x00, 0x00, 0x00); - 8001894: 2101 movs r1, #1 - 8001896: 2000 movs r0, #0 - 8001898: f000 fd7c bl 8002394 - 800189c: 4603 mov r3, r0 - 800189e: 4618 mov r0, r3 - 80018a0: 2300 movs r3, #0 - 80018a2: 2200 movs r2, #0 - 80018a4: 2100 movs r1, #0 - 80018a6: f000 fee5 bl 8002674 - setLED(lookupLED(0,2), 0x00, 0x00, currentSoundLevel * 0.25); - 80018aa: 2102 movs r1, #2 - 80018ac: 2000 movs r0, #0 - 80018ae: f000 fd71 bl 8002394 - 80018b2: 4603 mov r3, r0 - 80018b4: 461d mov r5, r3 - 80018b6: 79fb ldrb r3, [r7, #7] - 80018b8: 4618 mov r0, r3 - 80018ba: f7fe fdeb bl 8000494 <__aeabi_i2d> - 80018be: f04f 0200 mov.w r2, #0 - 80018c2: 4beb ldr r3, [pc, #940] ; (8001c70 ) - 80018c4: f7fe fe50 bl 8000568 <__aeabi_dmul> - 80018c8: 4603 mov r3, r0 - 80018ca: 460c mov r4, r1 - 80018cc: 4618 mov r0, r3 - 80018ce: 4621 mov r1, r4 - 80018d0: f7ff f85c bl 800098c <__aeabi_d2uiz> - 80018d4: 4603 mov r3, r0 - 80018d6: b2db uxtb r3, r3 - 80018d8: 2200 movs r2, #0 - 80018da: 2100 movs r1, #0 - 80018dc: 4628 mov r0, r5 - 80018de: f000 fec9 bl 8002674 - setLED(lookupLED(0,3), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); - 80018e2: 2103 movs r1, #3 - 80018e4: 2000 movs r0, #0 - 80018e6: f000 fd55 bl 8002394 - 80018ea: 4603 mov r3, r0 - 80018ec: 461d mov r5, r3 - 80018ee: 79fb ldrb r3, [r7, #7] - 80018f0: 4618 mov r0, r3 - 80018f2: f7fe fdcf bl 8000494 <__aeabi_i2d> - 80018f6: f04f 0200 mov.w r2, #0 - 80018fa: 4bde ldr r3, [pc, #888] ; (8001c74 ) - 80018fc: f7fe fe34 bl 8000568 <__aeabi_dmul> - 8001900: 4603 mov r3, r0 - 8001902: 460c mov r4, r1 - 8001904: 4618 mov r0, r3 - 8001906: 4621 mov r1, r4 - 8001908: a3d7 add r3, pc, #860 ; (adr r3, 8001c68 ) - 800190a: e9d3 2300 ldrd r2, r3, [r3] - 800190e: f7fe fc75 bl 80001fc <__adddf3> - 8001912: 4603 mov r3, r0 - 8001914: 460c mov r4, r1 - 8001916: 4618 mov r0, r3 - 8001918: 4621 mov r1, r4 - 800191a: f7ff f837 bl 800098c <__aeabi_d2uiz> - 800191e: 4603 mov r3, r0 - 8001920: b2db uxtb r3, r3 - 8001922: 2200 movs r2, #0 - 8001924: 2100 movs r1, #0 - 8001926: 4628 mov r0, r5 - 8001928: f000 fea4 bl 8002674 - setLED(lookupLED(0,4), 0x00, 0x00, currentSoundLevel * 0.25); - 800192c: 2104 movs r1, #4 - 800192e: 2000 movs r0, #0 - 8001930: f000 fd30 bl 8002394 - 8001934: 4603 mov r3, r0 - 8001936: 461d mov r5, r3 - 8001938: 79fb ldrb r3, [r7, #7] - 800193a: 4618 mov r0, r3 - 800193c: f7fe fdaa bl 8000494 <__aeabi_i2d> - 8001940: f04f 0200 mov.w r2, #0 - 8001944: 4bca ldr r3, [pc, #808] ; (8001c70 ) - 8001946: f7fe fe0f bl 8000568 <__aeabi_dmul> - 800194a: 4603 mov r3, r0 - 800194c: 460c mov r4, r1 - 800194e: 4618 mov r0, r3 - 8001950: 4621 mov r1, r4 - 8001952: f7ff f81b bl 800098c <__aeabi_d2uiz> - 8001956: 4603 mov r3, r0 - 8001958: b2db uxtb r3, r3 - 800195a: 2200 movs r2, #0 - 800195c: 2100 movs r1, #0 - 800195e: 4628 mov r0, r5 - 8001960: f000 fe88 bl 8002674 + 8001892: 2101 movs r1, #1 + 8001894: 2000 movs r0, #0 + 8001896: f001 f845 bl 8002924 + 800189a: 4603 mov r3, r0 + 800189c: 4618 mov r0, r3 + 800189e: 2300 movs r3, #0 + 80018a0: 2200 movs r2, #0 + 80018a2: 2100 movs r1, #0 + 80018a4: f001 f9ae bl 8002c04 + setLED(lookupLED(0,2), 0x00, 0x00, 0x00); + 80018a8: 2102 movs r1, #2 + 80018aa: 2000 movs r0, #0 + 80018ac: f001 f83a bl 8002924 + 80018b0: 4603 mov r3, r0 + 80018b2: 4618 mov r0, r3 + 80018b4: 2300 movs r3, #0 + 80018b6: 2200 movs r2, #0 + 80018b8: 2100 movs r1, #0 + 80018ba: f001 f9a3 bl 8002c04 + setLED(lookupLED(0,3), 0x00, 0x00, 0x7F); + 80018be: 2103 movs r1, #3 + 80018c0: 2000 movs r0, #0 + 80018c2: f001 f82f bl 8002924 + 80018c6: 4603 mov r3, r0 + 80018c8: 4618 mov r0, r3 + 80018ca: 237f movs r3, #127 ; 0x7f + 80018cc: 2200 movs r2, #0 + 80018ce: 2100 movs r1, #0 + 80018d0: f001 f998 bl 8002c04 + setLED(lookupLED(0,4), 0x00, 0x00, 0x00); + 80018d4: 2104 movs r1, #4 + 80018d6: 2000 movs r0, #0 + 80018d8: f001 f824 bl 8002924 + 80018dc: 4603 mov r3, r0 + 80018de: 4618 mov r0, r3 + 80018e0: 2300 movs r3, #0 + 80018e2: 2200 movs r2, #0 + 80018e4: 2100 movs r1, #0 + 80018e6: f001 f98d bl 8002c04 setLED(lookupLED(0,5), 0x00, 0x00, 0x00); - 8001964: 2105 movs r1, #5 - 8001966: 2000 movs r0, #0 - 8001968: f000 fd14 bl 8002394 - 800196c: 4603 mov r3, r0 - 800196e: 4618 mov r0, r3 - 8001970: 2300 movs r3, #0 - 8001972: 2200 movs r2, #0 - 8001974: 2100 movs r1, #0 - 8001976: f000 fe7d bl 8002674 + 80018ea: 2105 movs r1, #5 + 80018ec: 2000 movs r0, #0 + 80018ee: f001 f819 bl 8002924 + 80018f2: 4603 mov r3, r0 + 80018f4: 4618 mov r0, r3 + 80018f6: 2300 movs r3, #0 + 80018f8: 2200 movs r2, #0 + 80018fa: 2100 movs r1, #0 + 80018fc: f001 f982 bl 8002c04 setLED(lookupLED(0,6), 0x00, 0x00, 0x00); - 800197a: 2106 movs r1, #6 - 800197c: 2000 movs r0, #0 - 800197e: f000 fd09 bl 8002394 - 8001982: 4603 mov r3, r0 - 8001984: 4618 mov r0, r3 - 8001986: 2300 movs r3, #0 - 8001988: 2200 movs r2, #0 - 800198a: 2100 movs r1, #0 - 800198c: f000 fe72 bl 8002674 + 8001900: 2106 movs r1, #6 + 8001902: 2000 movs r0, #0 + 8001904: f001 f80e bl 8002924 + 8001908: 4603 mov r3, r0 + 800190a: 4618 mov r0, r3 + 800190c: 2300 movs r3, #0 + 800190e: 2200 movs r2, #0 + 8001910: 2100 movs r1, #0 + 8001912: f001 f977 bl 8002c04 setLED(lookupLED(0,7), 0x00, 0x00, 0x00); - 8001990: 2107 movs r1, #7 - 8001992: 2000 movs r0, #0 - 8001994: f000 fcfe bl 8002394 - 8001998: 4603 mov r3, r0 - 800199a: 4618 mov r0, r3 - 800199c: 2300 movs r3, #0 - 800199e: 2200 movs r2, #0 - 80019a0: 2100 movs r1, #0 - 80019a2: f000 fe67 bl 8002674 + 8001916: 2107 movs r1, #7 + 8001918: 2000 movs r0, #0 + 800191a: f001 f803 bl 8002924 + 800191e: 4603 mov r3, r0 + 8001920: 4618 mov r0, r3 + 8001922: 2300 movs r3, #0 + 8001924: 2200 movs r2, #0 + 8001926: 2100 movs r1, #0 + 8001928: f001 f96c bl 8002c04 setLED(lookupLED(1,0), 0x00, 0x00, 0x00); - 80019a6: 2100 movs r1, #0 - 80019a8: 2001 movs r0, #1 - 80019aa: f000 fcf3 bl 8002394 - 80019ae: 4603 mov r3, r0 - 80019b0: 4618 mov r0, r3 - 80019b2: 2300 movs r3, #0 - 80019b4: 2200 movs r2, #0 - 80019b6: 2100 movs r1, #0 - 80019b8: f000 fe5c bl 8002674 - setLED(lookupLED(1,1), 0x00, 0x00, currentSoundLevel * 0.5); - 80019bc: 2101 movs r1, #1 - 80019be: 2001 movs r0, #1 - 80019c0: f000 fce8 bl 8002394 - 80019c4: 4603 mov r3, r0 - 80019c6: 461d mov r5, r3 - 80019c8: 79fb ldrb r3, [r7, #7] - 80019ca: 4618 mov r0, r3 - 80019cc: f7fe fd62 bl 8000494 <__aeabi_i2d> - 80019d0: f04f 0200 mov.w r2, #0 - 80019d4: 4ba7 ldr r3, [pc, #668] ; (8001c74 ) - 80019d6: f7fe fdc7 bl 8000568 <__aeabi_dmul> - 80019da: 4603 mov r3, r0 - 80019dc: 460c mov r4, r1 - 80019de: 4618 mov r0, r3 - 80019e0: 4621 mov r1, r4 - 80019e2: f7fe ffd3 bl 800098c <__aeabi_d2uiz> - 80019e6: 4603 mov r3, r0 - 80019e8: b2db uxtb r3, r3 + 800192c: 2100 movs r1, #0 + 800192e: 2001 movs r0, #1 + 8001930: f000 fff8 bl 8002924 + 8001934: 4603 mov r3, r0 + 8001936: 4618 mov r0, r3 + 8001938: 2300 movs r3, #0 + 800193a: 2200 movs r2, #0 + 800193c: 2100 movs r1, #0 + 800193e: f001 f961 bl 8002c04 + setLED(lookupLED(1,1), 0x00, 0x00, 0x00); + 8001942: 2101 movs r1, #1 + 8001944: 2001 movs r0, #1 + 8001946: f000 ffed bl 8002924 + 800194a: 4603 mov r3, r0 + 800194c: 4618 mov r0, r3 + 800194e: 2300 movs r3, #0 + 8001950: 2200 movs r2, #0 + 8001952: 2100 movs r1, #0 + 8001954: f001 f956 bl 8002c04 + setLED(lookupLED(1,2), 0x00, 0x00, 0x7F); + 8001958: 2102 movs r1, #2 + 800195a: 2001 movs r0, #1 + 800195c: f000 ffe2 bl 8002924 + 8001960: 4603 mov r3, r0 + 8001962: 4618 mov r0, r3 + 8001964: 237f movs r3, #127 ; 0x7f + 8001966: 2200 movs r2, #0 + 8001968: 2100 movs r1, #0 + 800196a: f001 f94b bl 8002c04 + setLED(lookupLED(1,3), 0x00, 0x00, 0x00); + 800196e: 2103 movs r1, #3 + 8001970: 2001 movs r0, #1 + 8001972: f000 ffd7 bl 8002924 + 8001976: 4603 mov r3, r0 + 8001978: 4618 mov r0, r3 + 800197a: 2300 movs r3, #0 + 800197c: 2200 movs r2, #0 + 800197e: 2100 movs r1, #0 + 8001980: f001 f940 bl 8002c04 + setLED(lookupLED(1,4), 0x00, 0x00, 0x00); + 8001984: 2104 movs r1, #4 + 8001986: 2001 movs r0, #1 + 8001988: f000 ffcc bl 8002924 + 800198c: 4603 mov r3, r0 + 800198e: 4618 mov r0, r3 + 8001990: 2300 movs r3, #0 + 8001992: 2200 movs r2, #0 + 8001994: 2100 movs r1, #0 + 8001996: f001 f935 bl 8002c04 + setLED(lookupLED(1,5), 0x00, 0x00, 0x00); + 800199a: 2105 movs r1, #5 + 800199c: 2001 movs r0, #1 + 800199e: f000 ffc1 bl 8002924 + 80019a2: 4603 mov r3, r0 + 80019a4: 4618 mov r0, r3 + 80019a6: 2300 movs r3, #0 + 80019a8: 2200 movs r2, #0 + 80019aa: 2100 movs r1, #0 + 80019ac: f001 f92a bl 8002c04 + setLED(lookupLED(1,6), 0x00, 0x00, 0x00); + 80019b0: 2106 movs r1, #6 + 80019b2: 2001 movs r0, #1 + 80019b4: f000 ffb6 bl 8002924 + 80019b8: 4603 mov r3, r0 + 80019ba: 4618 mov r0, r3 + 80019bc: 2300 movs r3, #0 + 80019be: 2200 movs r2, #0 + 80019c0: 2100 movs r1, #0 + 80019c2: f001 f91f bl 8002c04 + setLED(lookupLED(1,7), 0x00, 0x00, 0x00); + 80019c6: 2107 movs r1, #7 + 80019c8: 2001 movs r0, #1 + 80019ca: f000 ffab bl 8002924 + 80019ce: 4603 mov r3, r0 + 80019d0: 4618 mov r0, r3 + 80019d2: 2300 movs r3, #0 + 80019d4: 2200 movs r2, #0 + 80019d6: 2100 movs r1, #0 + 80019d8: f001 f914 bl 8002c04 + setLED(lookupLED(2,0), 0x00, 0x00, 0x00); + 80019dc: 2100 movs r1, #0 + 80019de: 2002 movs r0, #2 + 80019e0: f000 ffa0 bl 8002924 + 80019e4: 4603 mov r3, r0 + 80019e6: 4618 mov r0, r3 + 80019e8: 2300 movs r3, #0 80019ea: 2200 movs r2, #0 80019ec: 2100 movs r1, #0 - 80019ee: 4628 mov r0, r5 - 80019f0: f000 fe40 bl 8002674 - setLED(lookupLED(1,2), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); - 80019f4: 2102 movs r1, #2 - 80019f6: 2001 movs r0, #1 - 80019f8: f000 fccc bl 8002394 - 80019fc: 4603 mov r3, r0 - 80019fe: 461d mov r5, r3 - 8001a00: 79fb ldrb r3, [r7, #7] - 8001a02: 4618 mov r0, r3 - 8001a04: f7fe fd46 bl 8000494 <__aeabi_i2d> - 8001a08: f04f 0200 mov.w r2, #0 - 8001a0c: 4b99 ldr r3, [pc, #612] ; (8001c74 ) - 8001a0e: f7fe fdab bl 8000568 <__aeabi_dmul> - 8001a12: 4603 mov r3, r0 - 8001a14: 460c mov r4, r1 - 8001a16: 4618 mov r0, r3 - 8001a18: 4621 mov r1, r4 - 8001a1a: a393 add r3, pc, #588 ; (adr r3, 8001c68 ) - 8001a1c: e9d3 2300 ldrd r2, r3, [r3] - 8001a20: f7fe fbec bl 80001fc <__adddf3> - 8001a24: 4603 mov r3, r0 - 8001a26: 460c mov r4, r1 + 80019ee: f001 f909 bl 8002c04 + setLED(lookupLED(2,1), 0x00, 0x00, 0x00); + 80019f2: 2101 movs r1, #1 + 80019f4: 2002 movs r0, #2 + 80019f6: f000 ff95 bl 8002924 + 80019fa: 4603 mov r3, r0 + 80019fc: 4618 mov r0, r3 + 80019fe: 2300 movs r3, #0 + 8001a00: 2200 movs r2, #0 + 8001a02: 2100 movs r1, #0 + 8001a04: f001 f8fe bl 8002c04 + setLED(lookupLED(2,2), 0x00, 0x00, 0x7F); + 8001a08: 2102 movs r1, #2 + 8001a0a: 2002 movs r0, #2 + 8001a0c: f000 ff8a bl 8002924 + 8001a10: 4603 mov r3, r0 + 8001a12: 4618 mov r0, r3 + 8001a14: 237f movs r3, #127 ; 0x7f + 8001a16: 2200 movs r2, #0 + 8001a18: 2100 movs r1, #0 + 8001a1a: f001 f8f3 bl 8002c04 + setLED(lookupLED(2,3), 0x00, 0x00, 0x00); + 8001a1e: 2103 movs r1, #3 + 8001a20: 2002 movs r0, #2 + 8001a22: f000 ff7f bl 8002924 + 8001a26: 4603 mov r3, r0 8001a28: 4618 mov r0, r3 - 8001a2a: 4621 mov r1, r4 - 8001a2c: f7fe ffae bl 800098c <__aeabi_d2uiz> - 8001a30: 4603 mov r3, r0 - 8001a32: b2db uxtb r3, r3 - 8001a34: 2200 movs r2, #0 - 8001a36: 2100 movs r1, #0 - 8001a38: 4628 mov r0, r5 - 8001a3a: f000 fe1b bl 8002674 - setLED(lookupLED(1,3), 0x00, 0x00, currentSoundLevel); - 8001a3e: 2103 movs r1, #3 - 8001a40: 2001 movs r0, #1 - 8001a42: f000 fca7 bl 8002394 - 8001a46: 4603 mov r3, r0 - 8001a48: 4618 mov r0, r3 - 8001a4a: 79fb ldrb r3, [r7, #7] - 8001a4c: 2200 movs r2, #0 - 8001a4e: 2100 movs r1, #0 - 8001a50: f000 fe10 bl 8002674 - setLED(lookupLED(1,4), 0x00, 0x00, currentSoundLevel); - 8001a54: 2104 movs r1, #4 - 8001a56: 2001 movs r0, #1 - 8001a58: f000 fc9c bl 8002394 - 8001a5c: 4603 mov r3, r0 - 8001a5e: 4618 mov r0, r3 - 8001a60: 79fb ldrb r3, [r7, #7] - 8001a62: 2200 movs r2, #0 - 8001a64: 2100 movs r1, #0 - 8001a66: f000 fe05 bl 8002674 - setLED(lookupLED(1,5), 0x00, 0x00, currentSoundLevel * 0.5); - 8001a6a: 2105 movs r1, #5 - 8001a6c: 2001 movs r0, #1 - 8001a6e: f000 fc91 bl 8002394 - 8001a72: 4603 mov r3, r0 - 8001a74: 461d mov r5, r3 - 8001a76: 79fb ldrb r3, [r7, #7] - 8001a78: 4618 mov r0, r3 - 8001a7a: f7fe fd0b bl 8000494 <__aeabi_i2d> - 8001a7e: f04f 0200 mov.w r2, #0 - 8001a82: 4b7c ldr r3, [pc, #496] ; (8001c74 ) - 8001a84: f7fe fd70 bl 8000568 <__aeabi_dmul> - 8001a88: 4603 mov r3, r0 - 8001a8a: 460c mov r4, r1 - 8001a8c: 4618 mov r0, r3 - 8001a8e: 4621 mov r1, r4 - 8001a90: f7fe ff7c bl 800098c <__aeabi_d2uiz> + 8001a2a: 2300 movs r3, #0 + 8001a2c: 2200 movs r2, #0 + 8001a2e: 2100 movs r1, #0 + 8001a30: f001 f8e8 bl 8002c04 + setLED(lookupLED(2,4), 0x00, 0x00, 0x00); + 8001a34: 2104 movs r1, #4 + 8001a36: 2002 movs r0, #2 + 8001a38: f000 ff74 bl 8002924 + 8001a3c: 4603 mov r3, r0 + 8001a3e: 4618 mov r0, r3 + 8001a40: 2300 movs r3, #0 + 8001a42: 2200 movs r2, #0 + 8001a44: 2100 movs r1, #0 + 8001a46: f001 f8dd bl 8002c04 + setLED(lookupLED(2,5), 0x00, 0x00, 0x00); + 8001a4a: 2105 movs r1, #5 + 8001a4c: 2002 movs r0, #2 + 8001a4e: f000 ff69 bl 8002924 + 8001a52: 4603 mov r3, r0 + 8001a54: 4618 mov r0, r3 + 8001a56: 2300 movs r3, #0 + 8001a58: 2200 movs r2, #0 + 8001a5a: 2100 movs r1, #0 + 8001a5c: f001 f8d2 bl 8002c04 + setLED(lookupLED(2,6), 0x00, 0x00, 0x00); + 8001a60: 2106 movs r1, #6 + 8001a62: 2002 movs r0, #2 + 8001a64: f000 ff5e bl 8002924 + 8001a68: 4603 mov r3, r0 + 8001a6a: 4618 mov r0, r3 + 8001a6c: 2300 movs r3, #0 + 8001a6e: 2200 movs r2, #0 + 8001a70: 2100 movs r1, #0 + 8001a72: f001 f8c7 bl 8002c04 + setLED(lookupLED(2,7), 0x00, 0x00, 0x00); + 8001a76: 2107 movs r1, #7 + 8001a78: 2002 movs r0, #2 + 8001a7a: f000 ff53 bl 8002924 + 8001a7e: 4603 mov r3, r0 + 8001a80: 4618 mov r0, r3 + 8001a82: 2300 movs r3, #0 + 8001a84: 2200 movs r2, #0 + 8001a86: 2100 movs r1, #0 + 8001a88: f001 f8bc bl 8002c04 + setLED(lookupLED(3,0), 0x00, 0x00, 0x00); + 8001a8c: 2100 movs r1, #0 + 8001a8e: 2003 movs r0, #3 + 8001a90: f000 ff48 bl 8002924 8001a94: 4603 mov r3, r0 - 8001a96: b2db uxtb r3, r3 - 8001a98: 2200 movs r2, #0 - 8001a9a: 2100 movs r1, #0 - 8001a9c: 4628 mov r0, r5 - 8001a9e: f000 fde9 bl 8002674 - setLED(lookupLED(1,6), 0x00, 0x00, 0x00); - 8001aa2: 2106 movs r1, #6 - 8001aa4: 2001 movs r0, #1 - 8001aa6: f000 fc75 bl 8002394 + 8001a96: 4618 mov r0, r3 + 8001a98: 2300 movs r3, #0 + 8001a9a: 2200 movs r2, #0 + 8001a9c: 2100 movs r1, #0 + 8001a9e: f001 f8b1 bl 8002c04 + setLED(lookupLED(3,1), 0x00, 0x00, 0x00); + 8001aa2: 2101 movs r1, #1 + 8001aa4: 2003 movs r0, #3 + 8001aa6: f000 ff3d bl 8002924 8001aaa: 4603 mov r3, r0 8001aac: 4618 mov r0, r3 8001aae: 2300 movs r3, #0 8001ab0: 2200 movs r2, #0 8001ab2: 2100 movs r1, #0 - 8001ab4: f000 fdde bl 8002674 - setLED(lookupLED(1,7), 0x00, 0x00, 0x00); - 8001ab8: 2107 movs r1, #7 - 8001aba: 2001 movs r0, #1 - 8001abc: f000 fc6a bl 8002394 + 8001ab4: f001 f8a6 bl 8002c04 + setLED(lookupLED(3,2), 0x00, 0x00, 0x7F); + 8001ab8: 2102 movs r1, #2 + 8001aba: 2003 movs r0, #3 + 8001abc: f000 ff32 bl 8002924 8001ac0: 4603 mov r3, r0 8001ac2: 4618 mov r0, r3 - 8001ac4: 2300 movs r3, #0 + 8001ac4: 237f movs r3, #127 ; 0x7f 8001ac6: 2200 movs r2, #0 8001ac8: 2100 movs r1, #0 - 8001aca: f000 fdd3 bl 8002674 - setLED(lookupLED(2,0), 0x00, 0x00, 0x00); - 8001ace: 2100 movs r1, #0 - 8001ad0: 2002 movs r0, #2 - 8001ad2: f000 fc5f bl 8002394 + 8001aca: f001 f89b bl 8002c04 + setLED(lookupLED(3,3), 0x00, 0x00, 0x00); + 8001ace: 2103 movs r1, #3 + 8001ad0: 2003 movs r0, #3 + 8001ad2: f000 ff27 bl 8002924 8001ad6: 4603 mov r3, r0 8001ad8: 4618 mov r0, r3 8001ada: 2300 movs r3, #0 8001adc: 2200 movs r2, #0 8001ade: 2100 movs r1, #0 - 8001ae0: f000 fdc8 bl 8002674 - setLED(lookupLED(2,1), 0x00, 0x00, currentSoundLevel * 0.5); - 8001ae4: 2101 movs r1, #1 - 8001ae6: 2002 movs r0, #2 - 8001ae8: f000 fc54 bl 8002394 + 8001ae0: f001 f890 bl 8002c04 + setLED(lookupLED(3,4), 0x00, 0x00, 0x00); + 8001ae4: 2104 movs r1, #4 + 8001ae6: 2003 movs r0, #3 + 8001ae8: f000 ff1c bl 8002924 8001aec: 4603 mov r3, r0 - 8001aee: 461d mov r5, r3 - 8001af0: 79fb ldrb r3, [r7, #7] - 8001af2: 4618 mov r0, r3 - 8001af4: f7fe fcce bl 8000494 <__aeabi_i2d> - 8001af8: f04f 0200 mov.w r2, #0 - 8001afc: 4b5d ldr r3, [pc, #372] ; (8001c74 ) - 8001afe: f7fe fd33 bl 8000568 <__aeabi_dmul> + 8001aee: 4618 mov r0, r3 + 8001af0: 2300 movs r3, #0 + 8001af2: 2200 movs r2, #0 + 8001af4: 2100 movs r1, #0 + 8001af6: f001 f885 bl 8002c04 + setLED(lookupLED(3,5), 0x00, 0x00, 0x00); + 8001afa: 2105 movs r1, #5 + 8001afc: 2003 movs r0, #3 + 8001afe: f000 ff11 bl 8002924 8001b02: 4603 mov r3, r0 - 8001b04: 460c mov r4, r1 - 8001b06: 4618 mov r0, r3 - 8001b08: 4621 mov r1, r4 - 8001b0a: f7fe ff3f bl 800098c <__aeabi_d2uiz> - 8001b0e: 4603 mov r3, r0 - 8001b10: b2db uxtb r3, r3 - 8001b12: 2200 movs r2, #0 - 8001b14: 2100 movs r1, #0 - 8001b16: 4628 mov r0, r5 - 8001b18: f000 fdac bl 8002674 - setLED(lookupLED(2,2), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); - 8001b1c: 2102 movs r1, #2 - 8001b1e: 2002 movs r0, #2 - 8001b20: f000 fc38 bl 8002394 - 8001b24: 4603 mov r3, r0 - 8001b26: 461d mov r5, r3 - 8001b28: 79fb ldrb r3, [r7, #7] - 8001b2a: 4618 mov r0, r3 - 8001b2c: f7fe fcb2 bl 8000494 <__aeabi_i2d> - 8001b30: f04f 0200 mov.w r2, #0 - 8001b34: 4b4f ldr r3, [pc, #316] ; (8001c74 ) - 8001b36: f7fe fd17 bl 8000568 <__aeabi_dmul> - 8001b3a: 4603 mov r3, r0 - 8001b3c: 460c mov r4, r1 - 8001b3e: 4618 mov r0, r3 - 8001b40: 4621 mov r1, r4 - 8001b42: a349 add r3, pc, #292 ; (adr r3, 8001c68 ) - 8001b44: e9d3 2300 ldrd r2, r3, [r3] - 8001b48: f7fe fb58 bl 80001fc <__adddf3> - 8001b4c: 4603 mov r3, r0 - 8001b4e: 460c mov r4, r1 - 8001b50: 4618 mov r0, r3 - 8001b52: 4621 mov r1, r4 - 8001b54: f7fe ff1a bl 800098c <__aeabi_d2uiz> - 8001b58: 4603 mov r3, r0 - 8001b5a: b2db uxtb r3, r3 - 8001b5c: 2200 movs r2, #0 - 8001b5e: 2100 movs r1, #0 - 8001b60: 4628 mov r0, r5 - 8001b62: f000 fd87 bl 8002674 - setLED(lookupLED(2,3), 0x00, 0x00, currentSoundLevel); - 8001b66: 2103 movs r1, #3 - 8001b68: 2002 movs r0, #2 - 8001b6a: f000 fc13 bl 8002394 - 8001b6e: 4603 mov r3, r0 - 8001b70: 4618 mov r0, r3 - 8001b72: 79fb ldrb r3, [r7, #7] - 8001b74: 2200 movs r2, #0 - 8001b76: 2100 movs r1, #0 - 8001b78: f000 fd7c bl 8002674 - setLED(lookupLED(2,4), 0x00, 0x00, currentSoundLevel); - 8001b7c: 2104 movs r1, #4 - 8001b7e: 2002 movs r0, #2 - 8001b80: f000 fc08 bl 8002394 - 8001b84: 4603 mov r3, r0 - 8001b86: 4618 mov r0, r3 - 8001b88: 79fb ldrb r3, [r7, #7] - 8001b8a: 2200 movs r2, #0 - 8001b8c: 2100 movs r1, #0 - 8001b8e: f000 fd71 bl 8002674 - setLED(lookupLED(2,5), 0x00, 0x00, currentSoundLevel * 0.5); - 8001b92: 2105 movs r1, #5 - 8001b94: 2002 movs r0, #2 - 8001b96: f000 fbfd bl 8002394 - 8001b9a: 4603 mov r3, r0 - 8001b9c: 461d mov r5, r3 - 8001b9e: 79fb ldrb r3, [r7, #7] - 8001ba0: 4618 mov r0, r3 - 8001ba2: f7fe fc77 bl 8000494 <__aeabi_i2d> - 8001ba6: f04f 0200 mov.w r2, #0 - 8001baa: 4b32 ldr r3, [pc, #200] ; (8001c74 ) - 8001bac: f7fe fcdc bl 8000568 <__aeabi_dmul> - 8001bb0: 4603 mov r3, r0 - 8001bb2: 460c mov r4, r1 + 8001b04: 4618 mov r0, r3 + 8001b06: 2300 movs r3, #0 + 8001b08: 2200 movs r2, #0 + 8001b0a: 2100 movs r1, #0 + 8001b0c: f001 f87a bl 8002c04 + setLED(lookupLED(3,6), 0x00, 0x00, 0x00); + 8001b10: 2106 movs r1, #6 + 8001b12: 2003 movs r0, #3 + 8001b14: f000 ff06 bl 8002924 + 8001b18: 4603 mov r3, r0 + 8001b1a: 4618 mov r0, r3 + 8001b1c: 2300 movs r3, #0 + 8001b1e: 2200 movs r2, #0 + 8001b20: 2100 movs r1, #0 + 8001b22: f001 f86f bl 8002c04 + setLED(lookupLED(3,7), 0x00, 0x00, 0x00); + 8001b26: 2107 movs r1, #7 + 8001b28: 2003 movs r0, #3 + 8001b2a: f000 fefb bl 8002924 + 8001b2e: 4603 mov r3, r0 + 8001b30: 4618 mov r0, r3 + 8001b32: 2300 movs r3, #0 + 8001b34: 2200 movs r2, #0 + 8001b36: 2100 movs r1, #0 + 8001b38: f001 f864 bl 8002c04 + setLED(lookupLED(4,0), 0x00, 0x00, 0x00); + 8001b3c: 2100 movs r1, #0 + 8001b3e: 2004 movs r0, #4 + 8001b40: f000 fef0 bl 8002924 + 8001b44: 4603 mov r3, r0 + 8001b46: 4618 mov r0, r3 + 8001b48: 2300 movs r3, #0 + 8001b4a: 2200 movs r2, #0 + 8001b4c: 2100 movs r1, #0 + 8001b4e: f001 f859 bl 8002c04 + setLED(lookupLED(4,1), 0x00, 0x00, 0x00); + 8001b52: 2101 movs r1, #1 + 8001b54: 2004 movs r0, #4 + 8001b56: f000 fee5 bl 8002924 + 8001b5a: 4603 mov r3, r0 + 8001b5c: 4618 mov r0, r3 + 8001b5e: 2300 movs r3, #0 + 8001b60: 2200 movs r2, #0 + 8001b62: 2100 movs r1, #0 + 8001b64: f001 f84e bl 8002c04 + setLED(lookupLED(4,2), 0x00, 0x00, 0x7F); + 8001b68: 2102 movs r1, #2 + 8001b6a: 2004 movs r0, #4 + 8001b6c: f000 feda bl 8002924 + 8001b70: 4603 mov r3, r0 + 8001b72: 4618 mov r0, r3 + 8001b74: 237f movs r3, #127 ; 0x7f + 8001b76: 2200 movs r2, #0 + 8001b78: 2100 movs r1, #0 + 8001b7a: f001 f843 bl 8002c04 + setLED(lookupLED(4,3), 0x00, 0x00, 0x00); + 8001b7e: 2103 movs r1, #3 + 8001b80: 2004 movs r0, #4 + 8001b82: f000 fecf bl 8002924 + 8001b86: 4603 mov r3, r0 + 8001b88: 4618 mov r0, r3 + 8001b8a: 2300 movs r3, #0 + 8001b8c: 2200 movs r2, #0 + 8001b8e: 2100 movs r1, #0 + 8001b90: f001 f838 bl 8002c04 + setLED(lookupLED(4,4), 0x00, 0x00, 0x00); + 8001b94: 2104 movs r1, #4 + 8001b96: 2004 movs r0, #4 + 8001b98: f000 fec4 bl 8002924 + 8001b9c: 4603 mov r3, r0 + 8001b9e: 4618 mov r0, r3 + 8001ba0: 2300 movs r3, #0 + 8001ba2: 2200 movs r2, #0 + 8001ba4: 2100 movs r1, #0 + 8001ba6: f001 f82d bl 8002c04 + setLED(lookupLED(4,5), 0x00, 0x00, 0x00); + 8001baa: 2105 movs r1, #5 + 8001bac: 2004 movs r0, #4 + 8001bae: f000 feb9 bl 8002924 + 8001bb2: 4603 mov r3, r0 8001bb4: 4618 mov r0, r3 - 8001bb6: 4621 mov r1, r4 - 8001bb8: f7fe fee8 bl 800098c <__aeabi_d2uiz> - 8001bbc: 4603 mov r3, r0 - 8001bbe: b2db uxtb r3, r3 - 8001bc0: 2200 movs r2, #0 - 8001bc2: 2100 movs r1, #0 - 8001bc4: 4628 mov r0, r5 - 8001bc6: f000 fd55 bl 8002674 - setLED(lookupLED(2,6), 0x00, 0x00, 0x00); - 8001bca: 2106 movs r1, #6 - 8001bcc: 2002 movs r0, #2 - 8001bce: f000 fbe1 bl 8002394 - 8001bd2: 4603 mov r3, r0 - 8001bd4: 4618 mov r0, r3 - 8001bd6: 2300 movs r3, #0 - 8001bd8: 2200 movs r2, #0 - 8001bda: 2100 movs r1, #0 - 8001bdc: f000 fd4a bl 8002674 - setLED(lookupLED(2,7), 0x00, 0x00, 0x00); - 8001be0: 2107 movs r1, #7 - 8001be2: 2002 movs r0, #2 - 8001be4: f000 fbd6 bl 8002394 - 8001be8: 4603 mov r3, r0 - 8001bea: 4618 mov r0, r3 - 8001bec: 2300 movs r3, #0 - 8001bee: 2200 movs r2, #0 - 8001bf0: 2100 movs r1, #0 - 8001bf2: f000 fd3f bl 8002674 - setLED(lookupLED(3,0), 0x00, 0x00, currentSoundLevel * 0.25); - 8001bf6: 2100 movs r1, #0 - 8001bf8: 2003 movs r0, #3 - 8001bfa: f000 fbcb bl 8002394 - 8001bfe: 4603 mov r3, r0 - 8001c00: 461d mov r5, r3 - 8001c02: 79fb ldrb r3, [r7, #7] - 8001c04: 4618 mov r0, r3 - 8001c06: f7fe fc45 bl 8000494 <__aeabi_i2d> - 8001c0a: f04f 0200 mov.w r2, #0 - 8001c0e: 4b18 ldr r3, [pc, #96] ; (8001c70 ) - 8001c10: f7fe fcaa bl 8000568 <__aeabi_dmul> - 8001c14: 4603 mov r3, r0 - 8001c16: 460c mov r4, r1 - 8001c18: 4618 mov r0, r3 - 8001c1a: 4621 mov r1, r4 - 8001c1c: f7fe feb6 bl 800098c <__aeabi_d2uiz> + 8001bb6: 2300 movs r3, #0 + 8001bb8: 2200 movs r2, #0 + 8001bba: 2100 movs r1, #0 + 8001bbc: f001 f822 bl 8002c04 + setLED(lookupLED(4,6), 0x00, 0x00, 0x00); + 8001bc0: 2106 movs r1, #6 + 8001bc2: 2004 movs r0, #4 + 8001bc4: f000 feae bl 8002924 + 8001bc8: 4603 mov r3, r0 + 8001bca: 4618 mov r0, r3 + 8001bcc: 2300 movs r3, #0 + 8001bce: 2200 movs r2, #0 + 8001bd0: 2100 movs r1, #0 + 8001bd2: f001 f817 bl 8002c04 + setLED(lookupLED(4,7), 0x00, 0x00, 0x00); + 8001bd6: 2107 movs r1, #7 + 8001bd8: 2004 movs r0, #4 + 8001bda: f000 fea3 bl 8002924 + 8001bde: 4603 mov r3, r0 + 8001be0: 4618 mov r0, r3 + 8001be2: 2300 movs r3, #0 + 8001be4: 2200 movs r2, #0 + 8001be6: 2100 movs r1, #0 + 8001be8: f001 f80c bl 8002c04 + setLED(lookupLED(5,0), 0x00, 0x00, 0x00); + 8001bec: 2100 movs r1, #0 + 8001bee: 2005 movs r0, #5 + 8001bf0: f000 fe98 bl 8002924 + 8001bf4: 4603 mov r3, r0 + 8001bf6: 4618 mov r0, r3 + 8001bf8: 2300 movs r3, #0 + 8001bfa: 2200 movs r2, #0 + 8001bfc: 2100 movs r1, #0 + 8001bfe: f001 f801 bl 8002c04 + setLED(lookupLED(5,1), 0x00, 0x00, 0x00); + 8001c02: 2101 movs r1, #1 + 8001c04: 2005 movs r0, #5 + 8001c06: f000 fe8d bl 8002924 + 8001c0a: 4603 mov r3, r0 + 8001c0c: 4618 mov r0, r3 + 8001c0e: 2300 movs r3, #0 + 8001c10: 2200 movs r2, #0 + 8001c12: 2100 movs r1, #0 + 8001c14: f000 fff6 bl 8002c04 + setLED(lookupLED(5,2), 0x00, 0x00, 0x7F); + 8001c18: 2102 movs r1, #2 + 8001c1a: 2005 movs r0, #5 + 8001c1c: f000 fe82 bl 8002924 8001c20: 4603 mov r3, r0 - 8001c22: b2db uxtb r3, r3 - 8001c24: 2200 movs r2, #0 - 8001c26: 2100 movs r1, #0 - 8001c28: 4628 mov r0, r5 - 8001c2a: f000 fd23 bl 8002674 - setLED(lookupLED(3,1), 0x00, 0x00, currentSoundLevel * 0.5); - 8001c2e: 2101 movs r1, #1 - 8001c30: 2003 movs r0, #3 - 8001c32: f000 fbaf bl 8002394 + 8001c22: 4618 mov r0, r3 + 8001c24: 237f movs r3, #127 ; 0x7f + 8001c26: 2200 movs r2, #0 + 8001c28: 2100 movs r1, #0 + 8001c2a: f000 ffeb bl 8002c04 + setLED(lookupLED(5,3), 0x00, 0x00, 0x00); + 8001c2e: 2103 movs r1, #3 + 8001c30: 2005 movs r0, #5 + 8001c32: f000 fe77 bl 8002924 8001c36: 4603 mov r3, r0 - 8001c38: 461d mov r5, r3 - 8001c3a: 79fb ldrb r3, [r7, #7] - 8001c3c: 4618 mov r0, r3 - 8001c3e: f7fe fc29 bl 8000494 <__aeabi_i2d> - 8001c42: f04f 0200 mov.w r2, #0 - 8001c46: 4b0b ldr r3, [pc, #44] ; (8001c74 ) - 8001c48: f7fe fc8e bl 8000568 <__aeabi_dmul> + 8001c38: 4618 mov r0, r3 + 8001c3a: 2300 movs r3, #0 + 8001c3c: 2200 movs r2, #0 + 8001c3e: 2100 movs r1, #0 + 8001c40: f000 ffe0 bl 8002c04 + setLED(lookupLED(5,4), 0x00, 0x00, 0x00); + 8001c44: 2104 movs r1, #4 + 8001c46: 2005 movs r0, #5 + 8001c48: f000 fe6c bl 8002924 8001c4c: 4603 mov r3, r0 - 8001c4e: 460c mov r4, r1 - 8001c50: 4618 mov r0, r3 - 8001c52: 4621 mov r1, r4 - 8001c54: f7fe fe9a bl 800098c <__aeabi_d2uiz> - 8001c58: 4603 mov r3, r0 - 8001c5a: b2db uxtb r3, r3 - 8001c5c: 2200 movs r2, #0 - 8001c5e: 2100 movs r1, #0 - 8001c60: e00a b.n 8001c78 - 8001c62: bf00 nop - 8001c64: f3af 8000 nop.w - 8001c68: 00000000 .word 0x00000000 - 8001c6c: 405fc000 .word 0x405fc000 - 8001c70: 3fd00000 .word 0x3fd00000 - 8001c74: 3fe00000 .word 0x3fe00000 - 8001c78: 4628 mov r0, r5 - 8001c7a: f000 fcfb bl 8002674 - setLED(lookupLED(3,2), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); - 8001c7e: 2102 movs r1, #2 - 8001c80: 2003 movs r0, #3 - 8001c82: f000 fb87 bl 8002394 - 8001c86: 4603 mov r3, r0 - 8001c88: 461d mov r5, r3 - 8001c8a: 79fb ldrb r3, [r7, #7] - 8001c8c: 4618 mov r0, r3 - 8001c8e: f7fe fc01 bl 8000494 <__aeabi_i2d> - 8001c92: f04f 0200 mov.w r2, #0 - 8001c96: 4bea ldr r3, [pc, #936] ; (8002040 ) - 8001c98: f7fe fc66 bl 8000568 <__aeabi_dmul> - 8001c9c: 4603 mov r3, r0 - 8001c9e: 460c mov r4, r1 - 8001ca0: 4618 mov r0, r3 - 8001ca2: 4621 mov r1, r4 - 8001ca4: a3e4 add r3, pc, #912 ; (adr r3, 8002038 ) - 8001ca6: e9d3 2300 ldrd r2, r3, [r3] - 8001caa: f7fe faa7 bl 80001fc <__adddf3> - 8001cae: 4603 mov r3, r0 - 8001cb0: 460c mov r4, r1 - 8001cb2: 4618 mov r0, r3 - 8001cb4: 4621 mov r1, r4 - 8001cb6: f7fe fe69 bl 800098c <__aeabi_d2uiz> + 8001c4e: 4618 mov r0, r3 + 8001c50: 2300 movs r3, #0 + 8001c52: 2200 movs r2, #0 + 8001c54: 2100 movs r1, #0 + 8001c56: f000 ffd5 bl 8002c04 + setLED(lookupLED(5,5), 0x00, 0x00, 0x00); + 8001c5a: 2105 movs r1, #5 + 8001c5c: 2005 movs r0, #5 + 8001c5e: f000 fe61 bl 8002924 + 8001c62: 4603 mov r3, r0 + 8001c64: 4618 mov r0, r3 + 8001c66: 2300 movs r3, #0 + 8001c68: 2200 movs r2, #0 + 8001c6a: 2100 movs r1, #0 + 8001c6c: f000 ffca bl 8002c04 + setLED(lookupLED(5,6), 0x00, 0x00, 0x00); + 8001c70: 2106 movs r1, #6 + 8001c72: 2005 movs r0, #5 + 8001c74: f000 fe56 bl 8002924 + 8001c78: 4603 mov r3, r0 + 8001c7a: 4618 mov r0, r3 + 8001c7c: 2300 movs r3, #0 + 8001c7e: 2200 movs r2, #0 + 8001c80: 2100 movs r1, #0 + 8001c82: f000 ffbf bl 8002c04 + setLED(lookupLED(5,7), 0x00, 0x00, 0x00); + 8001c86: 2107 movs r1, #7 + 8001c88: 2005 movs r0, #5 + 8001c8a: f000 fe4b bl 8002924 + 8001c8e: 4603 mov r3, r0 + 8001c90: 4618 mov r0, r3 + 8001c92: 2300 movs r3, #0 + 8001c94: 2200 movs r2, #0 + 8001c96: 2100 movs r1, #0 + 8001c98: f000 ffb4 bl 8002c04 + setLED(lookupLED(6,0), 0x00, 0x00, 0x00); + 8001c9c: 2100 movs r1, #0 + 8001c9e: 2006 movs r0, #6 + 8001ca0: f000 fe40 bl 8002924 + 8001ca4: 4603 mov r3, r0 + 8001ca6: 4618 mov r0, r3 + 8001ca8: 2300 movs r3, #0 + 8001caa: 2200 movs r2, #0 + 8001cac: 2100 movs r1, #0 + 8001cae: f000 ffa9 bl 8002c04 + setLED(lookupLED(6,1), 0x00, 0x00, 0x00); + 8001cb2: 2101 movs r1, #1 + 8001cb4: 2006 movs r0, #6 + 8001cb6: f000 fe35 bl 8002924 8001cba: 4603 mov r3, r0 - 8001cbc: b2db uxtb r3, r3 - 8001cbe: 2200 movs r2, #0 - 8001cc0: 2100 movs r1, #0 - 8001cc2: 4628 mov r0, r5 - 8001cc4: f000 fcd6 bl 8002674 - setLED(lookupLED(3,3), 0x00, 0x00, currentSoundLevel); - 8001cc8: 2103 movs r1, #3 - 8001cca: 2003 movs r0, #3 - 8001ccc: f000 fb62 bl 8002394 + 8001cbc: 4618 mov r0, r3 + 8001cbe: 2300 movs r3, #0 + 8001cc0: 2200 movs r2, #0 + 8001cc2: 2100 movs r1, #0 + 8001cc4: f000 ff9e bl 8002c04 + setLED(lookupLED(6,2), 0x00, 0x00, 0x7F); + 8001cc8: 2102 movs r1, #2 + 8001cca: 2006 movs r0, #6 + 8001ccc: f000 fe2a bl 8002924 8001cd0: 4603 mov r3, r0 8001cd2: 4618 mov r0, r3 - 8001cd4: 79fb ldrb r3, [r7, #7] + 8001cd4: 237f movs r3, #127 ; 0x7f 8001cd6: 2200 movs r2, #0 8001cd8: 2100 movs r1, #0 - 8001cda: f000 fccb bl 8002674 - setLED(lookupLED(3,4), 0x00, 0x00, currentSoundLevel); - 8001cde: 2104 movs r1, #4 - 8001ce0: 2003 movs r0, #3 - 8001ce2: f000 fb57 bl 8002394 + 8001cda: f000 ff93 bl 8002c04 + setLED(lookupLED(6,3), 0x00, 0x00, 0x00); + 8001cde: 2103 movs r1, #3 + 8001ce0: 2006 movs r0, #6 + 8001ce2: f000 fe1f bl 8002924 8001ce6: 4603 mov r3, r0 8001ce8: 4618 mov r0, r3 - 8001cea: 79fb ldrb r3, [r7, #7] + 8001cea: 2300 movs r3, #0 8001cec: 2200 movs r2, #0 8001cee: 2100 movs r1, #0 - 8001cf0: f000 fcc0 bl 8002674 - setLED(lookupLED(3,5), 0x00, 0x00, currentSoundLevel * 0.5); - 8001cf4: 2105 movs r1, #5 - 8001cf6: 2003 movs r0, #3 - 8001cf8: f000 fb4c bl 8002394 + 8001cf0: f000 ff88 bl 8002c04 + setLED(lookupLED(6,4), 0x00, 0x00, 0x00); + 8001cf4: 2104 movs r1, #4 + 8001cf6: 2006 movs r0, #6 + 8001cf8: f000 fe14 bl 8002924 8001cfc: 4603 mov r3, r0 - 8001cfe: 461d mov r5, r3 - 8001d00: 79fb ldrb r3, [r7, #7] - 8001d02: 4618 mov r0, r3 - 8001d04: f7fe fbc6 bl 8000494 <__aeabi_i2d> - 8001d08: f04f 0200 mov.w r2, #0 - 8001d0c: 4bcc ldr r3, [pc, #816] ; (8002040 ) - 8001d0e: f7fe fc2b bl 8000568 <__aeabi_dmul> + 8001cfe: 4618 mov r0, r3 + 8001d00: 2300 movs r3, #0 + 8001d02: 2200 movs r2, #0 + 8001d04: 2100 movs r1, #0 + 8001d06: f000 ff7d bl 8002c04 + setLED(lookupLED(6,5), 0x00, 0x00, 0x00); + 8001d0a: 2105 movs r1, #5 + 8001d0c: 2006 movs r0, #6 + 8001d0e: f000 fe09 bl 8002924 8001d12: 4603 mov r3, r0 - 8001d14: 460c mov r4, r1 - 8001d16: 4618 mov r0, r3 - 8001d18: 4621 mov r1, r4 - 8001d1a: f7fe fe37 bl 800098c <__aeabi_d2uiz> - 8001d1e: 4603 mov r3, r0 - 8001d20: b2db uxtb r3, r3 - 8001d22: 2200 movs r2, #0 - 8001d24: 2100 movs r1, #0 - 8001d26: 4628 mov r0, r5 - 8001d28: f000 fca4 bl 8002674 - setLED(lookupLED(3,6), 0x00, 0x00, currentSoundLevel * 0.25); - 8001d2c: 2106 movs r1, #6 - 8001d2e: 2003 movs r0, #3 - 8001d30: f000 fb30 bl 8002394 - 8001d34: 4603 mov r3, r0 - 8001d36: 461d mov r5, r3 - 8001d38: 79fb ldrb r3, [r7, #7] - 8001d3a: 4618 mov r0, r3 - 8001d3c: f7fe fbaa bl 8000494 <__aeabi_i2d> - 8001d40: f04f 0200 mov.w r2, #0 - 8001d44: 4bbf ldr r3, [pc, #764] ; (8002044 ) - 8001d46: f7fe fc0f bl 8000568 <__aeabi_dmul> - 8001d4a: 4603 mov r3, r0 - 8001d4c: 460c mov r4, r1 - 8001d4e: 4618 mov r0, r3 - 8001d50: 4621 mov r1, r4 - 8001d52: f7fe fe1b bl 800098c <__aeabi_d2uiz> - 8001d56: 4603 mov r3, r0 - 8001d58: b2db uxtb r3, r3 + 8001d14: 4618 mov r0, r3 + 8001d16: 2300 movs r3, #0 + 8001d18: 2200 movs r2, #0 + 8001d1a: 2100 movs r1, #0 + 8001d1c: f000 ff72 bl 8002c04 + setLED(lookupLED(6,6), 0x00, 0x00, 0x00); + 8001d20: 2106 movs r1, #6 + 8001d22: 2006 movs r0, #6 + 8001d24: f000 fdfe bl 8002924 + 8001d28: 4603 mov r3, r0 + 8001d2a: 4618 mov r0, r3 + 8001d2c: 2300 movs r3, #0 + 8001d2e: 2200 movs r2, #0 + 8001d30: 2100 movs r1, #0 + 8001d32: f000 ff67 bl 8002c04 + setLED(lookupLED(6,7), 0x00, 0x00, 0x00); + 8001d36: 2107 movs r1, #7 + 8001d38: 2006 movs r0, #6 + 8001d3a: f000 fdf3 bl 8002924 + 8001d3e: 4603 mov r3, r0 + 8001d40: 4618 mov r0, r3 + 8001d42: 2300 movs r3, #0 + 8001d44: 2200 movs r2, #0 + 8001d46: 2100 movs r1, #0 + 8001d48: f000 ff5c bl 8002c04 + setLED(lookupLED(7,0), 0x00, 0x00, 0x00); + 8001d4c: 2100 movs r1, #0 + 8001d4e: 2007 movs r0, #7 + 8001d50: f000 fde8 bl 8002924 + 8001d54: 4603 mov r3, r0 + 8001d56: 4618 mov r0, r3 + 8001d58: 2300 movs r3, #0 8001d5a: 2200 movs r2, #0 8001d5c: 2100 movs r1, #0 - 8001d5e: 4628 mov r0, r5 - 8001d60: f000 fc88 bl 8002674 - setLED(lookupLED(3,7), 0x00, 0x00, 0x00); - 8001d64: 2107 movs r1, #7 - 8001d66: 2003 movs r0, #3 - 8001d68: f000 fb14 bl 8002394 - 8001d6c: 4603 mov r3, r0 - 8001d6e: 4618 mov r0, r3 - 8001d70: 2300 movs r3, #0 - 8001d72: 2200 movs r2, #0 - 8001d74: 2100 movs r1, #0 - 8001d76: f000 fc7d bl 8002674 - setLED(lookupLED(4,0), 0x00, 0x00, currentSoundLevel * 0.25); - 8001d7a: 2100 movs r1, #0 - 8001d7c: 2004 movs r0, #4 - 8001d7e: f000 fb09 bl 8002394 - 8001d82: 4603 mov r3, r0 - 8001d84: 461d mov r5, r3 - 8001d86: 79fb ldrb r3, [r7, #7] - 8001d88: 4618 mov r0, r3 - 8001d8a: f7fe fb83 bl 8000494 <__aeabi_i2d> - 8001d8e: f04f 0200 mov.w r2, #0 - 8001d92: 4bac ldr r3, [pc, #688] ; (8002044 ) - 8001d94: f7fe fbe8 bl 8000568 <__aeabi_dmul> - 8001d98: 4603 mov r3, r0 - 8001d9a: 460c mov r4, r1 - 8001d9c: 4618 mov r0, r3 - 8001d9e: 4621 mov r1, r4 - 8001da0: f7fe fdf4 bl 800098c <__aeabi_d2uiz> - 8001da4: 4603 mov r3, r0 - 8001da6: b2db uxtb r3, r3 - 8001da8: 2200 movs r2, #0 - 8001daa: 2100 movs r1, #0 - 8001dac: 4628 mov r0, r5 - 8001dae: f000 fc61 bl 8002674 - setLED(lookupLED(4,1), 0x00, 0x00, currentSoundLevel * 0.5); - 8001db2: 2101 movs r1, #1 - 8001db4: 2004 movs r0, #4 - 8001db6: f000 faed bl 8002394 - 8001dba: 4603 mov r3, r0 - 8001dbc: 461d mov r5, r3 - 8001dbe: 79fb ldrb r3, [r7, #7] - 8001dc0: 4618 mov r0, r3 - 8001dc2: f7fe fb67 bl 8000494 <__aeabi_i2d> - 8001dc6: f04f 0200 mov.w r2, #0 - 8001dca: 4b9d ldr r3, [pc, #628] ; (8002040 ) - 8001dcc: f7fe fbcc bl 8000568 <__aeabi_dmul> - 8001dd0: 4603 mov r3, r0 - 8001dd2: 460c mov r4, r1 - 8001dd4: 4618 mov r0, r3 - 8001dd6: 4621 mov r1, r4 - 8001dd8: f7fe fdd8 bl 800098c <__aeabi_d2uiz> - 8001ddc: 4603 mov r3, r0 - 8001dde: b2db uxtb r3, r3 - 8001de0: 2200 movs r2, #0 - 8001de2: 2100 movs r1, #0 - 8001de4: 4628 mov r0, r5 - 8001de6: f000 fc45 bl 8002674 - setLED(lookupLED(4,2), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); - 8001dea: 2102 movs r1, #2 - 8001dec: 2004 movs r0, #4 - 8001dee: f000 fad1 bl 8002394 - 8001df2: 4603 mov r3, r0 - 8001df4: 461d mov r5, r3 - 8001df6: 79fb ldrb r3, [r7, #7] - 8001df8: 4618 mov r0, r3 - 8001dfa: f7fe fb4b bl 8000494 <__aeabi_i2d> - 8001dfe: f04f 0200 mov.w r2, #0 - 8001e02: 4b8f ldr r3, [pc, #572] ; (8002040 ) - 8001e04: f7fe fbb0 bl 8000568 <__aeabi_dmul> - 8001e08: 4603 mov r3, r0 - 8001e0a: 460c mov r4, r1 - 8001e0c: 4618 mov r0, r3 - 8001e0e: 4621 mov r1, r4 - 8001e10: a389 add r3, pc, #548 ; (adr r3, 8002038 ) - 8001e12: e9d3 2300 ldrd r2, r3, [r3] - 8001e16: f7fe f9f1 bl 80001fc <__adddf3> - 8001e1a: 4603 mov r3, r0 - 8001e1c: 460c mov r4, r1 - 8001e1e: 4618 mov r0, r3 - 8001e20: 4621 mov r1, r4 - 8001e22: f7fe fdb3 bl 800098c <__aeabi_d2uiz> - 8001e26: 4603 mov r3, r0 - 8001e28: b2db uxtb r3, r3 - 8001e2a: 2200 movs r2, #0 - 8001e2c: 2100 movs r1, #0 - 8001e2e: 4628 mov r0, r5 - 8001e30: f000 fc20 bl 8002674 - setLED(lookupLED(4,3), 0x00, 0x00, currentSoundLevel); - 8001e34: 2103 movs r1, #3 - 8001e36: 2004 movs r0, #4 - 8001e38: f000 faac bl 8002394 - 8001e3c: 4603 mov r3, r0 - 8001e3e: 4618 mov r0, r3 - 8001e40: 79fb ldrb r3, [r7, #7] - 8001e42: 2200 movs r2, #0 - 8001e44: 2100 movs r1, #0 - 8001e46: f000 fc15 bl 8002674 - setLED(lookupLED(4,4), 0x00, 0x00, currentSoundLevel); - 8001e4a: 2104 movs r1, #4 - 8001e4c: 2004 movs r0, #4 - 8001e4e: f000 faa1 bl 8002394 - 8001e52: 4603 mov r3, r0 - 8001e54: 4618 mov r0, r3 - 8001e56: 79fb ldrb r3, [r7, #7] - 8001e58: 2200 movs r2, #0 - 8001e5a: 2100 movs r1, #0 - 8001e5c: f000 fc0a bl 8002674 - setLED(lookupLED(4,5), 0x00, 0x00, currentSoundLevel * 0.5); - 8001e60: 2105 movs r1, #5 - 8001e62: 2004 movs r0, #4 - 8001e64: f000 fa96 bl 8002394 - 8001e68: 4603 mov r3, r0 - 8001e6a: 461d mov r5, r3 - 8001e6c: 79fb ldrb r3, [r7, #7] - 8001e6e: 4618 mov r0, r3 - 8001e70: f7fe fb10 bl 8000494 <__aeabi_i2d> - 8001e74: f04f 0200 mov.w r2, #0 - 8001e78: 4b71 ldr r3, [pc, #452] ; (8002040 ) - 8001e7a: f7fe fb75 bl 8000568 <__aeabi_dmul> - 8001e7e: 4603 mov r3, r0 - 8001e80: 460c mov r4, r1 - 8001e82: 4618 mov r0, r3 - 8001e84: 4621 mov r1, r4 - 8001e86: f7fe fd81 bl 800098c <__aeabi_d2uiz> - 8001e8a: 4603 mov r3, r0 - 8001e8c: b2db uxtb r3, r3 - 8001e8e: 2200 movs r2, #0 - 8001e90: 2100 movs r1, #0 - 8001e92: 4628 mov r0, r5 - 8001e94: f000 fbee bl 8002674 - setLED(lookupLED(4,6), 0x00, 0x00, currentSoundLevel * 0.25); - 8001e98: 2106 movs r1, #6 - 8001e9a: 2004 movs r0, #4 - 8001e9c: f000 fa7a bl 8002394 - 8001ea0: 4603 mov r3, r0 - 8001ea2: 461d mov r5, r3 - 8001ea4: 79fb ldrb r3, [r7, #7] + 8001d5e: f000 ff51 bl 8002c04 + setLED(lookupLED(7,1), 0x00, 0x00, 0x00); + 8001d62: 2101 movs r1, #1 + 8001d64: 2007 movs r0, #7 + 8001d66: f000 fddd bl 8002924 + 8001d6a: 4603 mov r3, r0 + 8001d6c: 4618 mov r0, r3 + 8001d6e: 2300 movs r3, #0 + 8001d70: 2200 movs r2, #0 + 8001d72: 2100 movs r1, #0 + 8001d74: f000 ff46 bl 8002c04 + setLED(lookupLED(7,2), 0x00, 0x00, 0x00); + 8001d78: 2102 movs r1, #2 + 8001d7a: 2007 movs r0, #7 + 8001d7c: f000 fdd2 bl 8002924 + 8001d80: 4603 mov r3, r0 + 8001d82: 4618 mov r0, r3 + 8001d84: 2300 movs r3, #0 + 8001d86: 2200 movs r2, #0 + 8001d88: 2100 movs r1, #0 + 8001d8a: f000 ff3b bl 8002c04 + setLED(lookupLED(7,3), 0x00, 0x00, 0x7F); + 8001d8e: 2103 movs r1, #3 + 8001d90: 2007 movs r0, #7 + 8001d92: f000 fdc7 bl 8002924 + 8001d96: 4603 mov r3, r0 + 8001d98: 4618 mov r0, r3 + 8001d9a: 237f movs r3, #127 ; 0x7f + 8001d9c: 2200 movs r2, #0 + 8001d9e: 2100 movs r1, #0 + 8001da0: f000 ff30 bl 8002c04 + setLED(lookupLED(7,4), 0x00, 0x00, 0x00); + 8001da4: 2104 movs r1, #4 + 8001da6: 2007 movs r0, #7 + 8001da8: f000 fdbc bl 8002924 + 8001dac: 4603 mov r3, r0 + 8001dae: 4618 mov r0, r3 + 8001db0: 2300 movs r3, #0 + 8001db2: 2200 movs r2, #0 + 8001db4: 2100 movs r1, #0 + 8001db6: f000 ff25 bl 8002c04 + setLED(lookupLED(7,5), 0x00, 0x00, 0x00); + 8001dba: 2105 movs r1, #5 + 8001dbc: 2007 movs r0, #7 + 8001dbe: f000 fdb1 bl 8002924 + 8001dc2: 4603 mov r3, r0 + 8001dc4: 4618 mov r0, r3 + 8001dc6: 2300 movs r3, #0 + 8001dc8: 2200 movs r2, #0 + 8001dca: 2100 movs r1, #0 + 8001dcc: f000 ff1a bl 8002c04 + setLED(lookupLED(7,6), 0x00, 0x00, 0x00); + 8001dd0: 2106 movs r1, #6 + 8001dd2: 2007 movs r0, #7 + 8001dd4: f000 fda6 bl 8002924 + 8001dd8: 4603 mov r3, r0 + 8001dda: 4618 mov r0, r3 + 8001ddc: 2300 movs r3, #0 + 8001dde: 2200 movs r2, #0 + 8001de0: 2100 movs r1, #0 + 8001de2: f000 ff0f bl 8002c04 + setLED(lookupLED(7,7), 0x00, 0x00, 0x00); + 8001de6: 2107 movs r1, #7 + 8001de8: 2007 movs r0, #7 + 8001dea: f000 fd9b bl 8002924 + 8001dee: 4603 mov r3, r0 + 8001df0: 4618 mov r0, r3 + 8001df2: 2300 movs r3, #0 + 8001df4: 2200 movs r2, #0 + 8001df6: 2100 movs r1, #0 + 8001df8: f000 ff04 bl 8002c04 +} + 8001dfc: bf00 nop + 8001dfe: bd80 pop {r7, pc} + +08001e00 : +void LEDDesign_Smile_Audio(void){ + 8001e00: b5b0 push {r4, r5, r7, lr} + 8001e02: b082 sub sp, #8 + 8001e04: af00 add r7, sp, #0 + uint8_t currentSoundLevel = getSoundLevel(); + 8001e06: f7ff fb75 bl 80014f4 + 8001e0a: 4603 mov r3, r0 + 8001e0c: 71fb strb r3, [r7, #7] + setLED(lookupLED(0,0), 0x00, 0x00, 0x00); + 8001e0e: 2100 movs r1, #0 + 8001e10: 2000 movs r0, #0 + 8001e12: f000 fd87 bl 8002924 + 8001e16: 4603 mov r3, r0 + 8001e18: 4618 mov r0, r3 + 8001e1a: 2300 movs r3, #0 + 8001e1c: 2200 movs r2, #0 + 8001e1e: 2100 movs r1, #0 + 8001e20: f000 fef0 bl 8002c04 + setLED(lookupLED(0,1), 0x00, 0x00, 0x00); + 8001e24: 2101 movs r1, #1 + 8001e26: 2000 movs r0, #0 + 8001e28: f000 fd7c bl 8002924 + 8001e2c: 4603 mov r3, r0 + 8001e2e: 4618 mov r0, r3 + 8001e30: 2300 movs r3, #0 + 8001e32: 2200 movs r2, #0 + 8001e34: 2100 movs r1, #0 + 8001e36: f000 fee5 bl 8002c04 + setLED(lookupLED(0,2), 0x00, 0x00, currentSoundLevel * 0.25); + 8001e3a: 2102 movs r1, #2 + 8001e3c: 2000 movs r0, #0 + 8001e3e: f000 fd71 bl 8002924 + 8001e42: 4603 mov r3, r0 + 8001e44: 461d mov r5, r3 + 8001e46: 79fb ldrb r3, [r7, #7] + 8001e48: 4618 mov r0, r3 + 8001e4a: f7fe fb23 bl 8000494 <__aeabi_i2d> + 8001e4e: f04f 0200 mov.w r2, #0 + 8001e52: 4beb ldr r3, [pc, #940] ; (8002200 ) + 8001e54: f7fe fb88 bl 8000568 <__aeabi_dmul> + 8001e58: 4603 mov r3, r0 + 8001e5a: 460c mov r4, r1 + 8001e5c: 4618 mov r0, r3 + 8001e5e: 4621 mov r1, r4 + 8001e60: f7fe fd94 bl 800098c <__aeabi_d2uiz> + 8001e64: 4603 mov r3, r0 + 8001e66: b2db uxtb r3, r3 + 8001e68: 2200 movs r2, #0 + 8001e6a: 2100 movs r1, #0 + 8001e6c: 4628 mov r0, r5 + 8001e6e: f000 fec9 bl 8002c04 + setLED(lookupLED(0,3), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); + 8001e72: 2103 movs r1, #3 + 8001e74: 2000 movs r0, #0 + 8001e76: f000 fd55 bl 8002924 + 8001e7a: 4603 mov r3, r0 + 8001e7c: 461d mov r5, r3 + 8001e7e: 79fb ldrb r3, [r7, #7] + 8001e80: 4618 mov r0, r3 + 8001e82: f7fe fb07 bl 8000494 <__aeabi_i2d> + 8001e86: f04f 0200 mov.w r2, #0 + 8001e8a: 4bde ldr r3, [pc, #888] ; (8002204 ) + 8001e8c: f7fe fb6c bl 8000568 <__aeabi_dmul> + 8001e90: 4603 mov r3, r0 + 8001e92: 460c mov r4, r1 + 8001e94: 4618 mov r0, r3 + 8001e96: 4621 mov r1, r4 + 8001e98: a3d7 add r3, pc, #860 ; (adr r3, 80021f8 ) + 8001e9a: e9d3 2300 ldrd r2, r3, [r3] + 8001e9e: f7fe f9ad bl 80001fc <__adddf3> + 8001ea2: 4603 mov r3, r0 + 8001ea4: 460c mov r4, r1 8001ea6: 4618 mov r0, r3 - 8001ea8: f7fe faf4 bl 8000494 <__aeabi_i2d> - 8001eac: f04f 0200 mov.w r2, #0 - 8001eb0: 4b64 ldr r3, [pc, #400] ; (8002044 ) - 8001eb2: f7fe fb59 bl 8000568 <__aeabi_dmul> - 8001eb6: 4603 mov r3, r0 - 8001eb8: 460c mov r4, r1 - 8001eba: 4618 mov r0, r3 - 8001ebc: 4621 mov r1, r4 - 8001ebe: f7fe fd65 bl 800098c <__aeabi_d2uiz> - 8001ec2: 4603 mov r3, r0 - 8001ec4: b2db uxtb r3, r3 - 8001ec6: 2200 movs r2, #0 - 8001ec8: 2100 movs r1, #0 - 8001eca: 4628 mov r0, r5 - 8001ecc: f000 fbd2 bl 8002674 - setLED(lookupLED(4,7), 0x00, 0x00, 0x00); - 8001ed0: 2107 movs r1, #7 - 8001ed2: 2004 movs r0, #4 - 8001ed4: f000 fa5e bl 8002394 - 8001ed8: 4603 mov r3, r0 - 8001eda: 4618 mov r0, r3 - 8001edc: 2300 movs r3, #0 - 8001ede: 2200 movs r2, #0 - 8001ee0: 2100 movs r1, #0 - 8001ee2: f000 fbc7 bl 8002674 - setLED(lookupLED(5,0), 0x00, 0x00, 0x00); - 8001ee6: 2100 movs r1, #0 - 8001ee8: 2005 movs r0, #5 - 8001eea: f000 fa53 bl 8002394 - 8001eee: 4603 mov r3, r0 - 8001ef0: 4618 mov r0, r3 - 8001ef2: 2300 movs r3, #0 - 8001ef4: 2200 movs r2, #0 - 8001ef6: 2100 movs r1, #0 - 8001ef8: f000 fbbc bl 8002674 - setLED(lookupLED(5,1), 0x00, 0x00, currentSoundLevel * 0.5); - 8001efc: 2101 movs r1, #1 - 8001efe: 2005 movs r0, #5 - 8001f00: f000 fa48 bl 8002394 - 8001f04: 4603 mov r3, r0 - 8001f06: 461d mov r5, r3 - 8001f08: 79fb ldrb r3, [r7, #7] - 8001f0a: 4618 mov r0, r3 - 8001f0c: f7fe fac2 bl 8000494 <__aeabi_i2d> - 8001f10: f04f 0200 mov.w r2, #0 - 8001f14: 4b4a ldr r3, [pc, #296] ; (8002040 ) - 8001f16: f7fe fb27 bl 8000568 <__aeabi_dmul> - 8001f1a: 4603 mov r3, r0 - 8001f1c: 460c mov r4, r1 - 8001f1e: 4618 mov r0, r3 - 8001f20: 4621 mov r1, r4 - 8001f22: f7fe fd33 bl 800098c <__aeabi_d2uiz> - 8001f26: 4603 mov r3, r0 - 8001f28: b2db uxtb r3, r3 - 8001f2a: 2200 movs r2, #0 - 8001f2c: 2100 movs r1, #0 - 8001f2e: 4628 mov r0, r5 - 8001f30: f000 fba0 bl 8002674 - setLED(lookupLED(5,2), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); - 8001f34: 2102 movs r1, #2 - 8001f36: 2005 movs r0, #5 - 8001f38: f000 fa2c bl 8002394 - 8001f3c: 4603 mov r3, r0 - 8001f3e: 461d mov r5, r3 - 8001f40: 79fb ldrb r3, [r7, #7] - 8001f42: 4618 mov r0, r3 - 8001f44: f7fe faa6 bl 8000494 <__aeabi_i2d> - 8001f48: f04f 0200 mov.w r2, #0 - 8001f4c: 4b3c ldr r3, [pc, #240] ; (8002040 ) - 8001f4e: f7fe fb0b bl 8000568 <__aeabi_dmul> - 8001f52: 4603 mov r3, r0 - 8001f54: 460c mov r4, r1 - 8001f56: 4618 mov r0, r3 - 8001f58: 4621 mov r1, r4 - 8001f5a: a337 add r3, pc, #220 ; (adr r3, 8002038 ) - 8001f5c: e9d3 2300 ldrd r2, r3, [r3] - 8001f60: f7fe f94c bl 80001fc <__adddf3> - 8001f64: 4603 mov r3, r0 - 8001f66: 460c mov r4, r1 - 8001f68: 4618 mov r0, r3 - 8001f6a: 4621 mov r1, r4 - 8001f6c: f7fe fd0e bl 800098c <__aeabi_d2uiz> - 8001f70: 4603 mov r3, r0 - 8001f72: b2db uxtb r3, r3 - 8001f74: 2200 movs r2, #0 - 8001f76: 2100 movs r1, #0 - 8001f78: 4628 mov r0, r5 - 8001f7a: f000 fb7b bl 8002674 - setLED(lookupLED(5,3), 0x00, 0x00, currentSoundLevel); - 8001f7e: 2103 movs r1, #3 - 8001f80: 2005 movs r0, #5 - 8001f82: f000 fa07 bl 8002394 - 8001f86: 4603 mov r3, r0 - 8001f88: 4618 mov r0, r3 - 8001f8a: 79fb ldrb r3, [r7, #7] - 8001f8c: 2200 movs r2, #0 - 8001f8e: 2100 movs r1, #0 - 8001f90: f000 fb70 bl 8002674 - setLED(lookupLED(5,4), 0x00, 0x00, currentSoundLevel); - 8001f94: 2104 movs r1, #4 - 8001f96: 2005 movs r0, #5 - 8001f98: f000 f9fc bl 8002394 - 8001f9c: 4603 mov r3, r0 - 8001f9e: 4618 mov r0, r3 - 8001fa0: 79fb ldrb r3, [r7, #7] - 8001fa2: 2200 movs r2, #0 - 8001fa4: 2100 movs r1, #0 - 8001fa6: f000 fb65 bl 8002674 - setLED(lookupLED(5,5), 0x00, 0x00, currentSoundLevel * 0.5); - 8001faa: 2105 movs r1, #5 - 8001fac: 2005 movs r0, #5 - 8001fae: f000 f9f1 bl 8002394 - 8001fb2: 4603 mov r3, r0 - 8001fb4: 461d mov r5, r3 - 8001fb6: 79fb ldrb r3, [r7, #7] + 8001ea8: 4621 mov r1, r4 + 8001eaa: f7fe fd6f bl 800098c <__aeabi_d2uiz> + 8001eae: 4603 mov r3, r0 + 8001eb0: b2db uxtb r3, r3 + 8001eb2: 2200 movs r2, #0 + 8001eb4: 2100 movs r1, #0 + 8001eb6: 4628 mov r0, r5 + 8001eb8: f000 fea4 bl 8002c04 + setLED(lookupLED(0,4), 0x00, 0x00, currentSoundLevel * 0.25); + 8001ebc: 2104 movs r1, #4 + 8001ebe: 2000 movs r0, #0 + 8001ec0: f000 fd30 bl 8002924 + 8001ec4: 4603 mov r3, r0 + 8001ec6: 461d mov r5, r3 + 8001ec8: 79fb ldrb r3, [r7, #7] + 8001eca: 4618 mov r0, r3 + 8001ecc: f7fe fae2 bl 8000494 <__aeabi_i2d> + 8001ed0: f04f 0200 mov.w r2, #0 + 8001ed4: 4bca ldr r3, [pc, #808] ; (8002200 ) + 8001ed6: f7fe fb47 bl 8000568 <__aeabi_dmul> + 8001eda: 4603 mov r3, r0 + 8001edc: 460c mov r4, r1 + 8001ede: 4618 mov r0, r3 + 8001ee0: 4621 mov r1, r4 + 8001ee2: f7fe fd53 bl 800098c <__aeabi_d2uiz> + 8001ee6: 4603 mov r3, r0 + 8001ee8: b2db uxtb r3, r3 + 8001eea: 2200 movs r2, #0 + 8001eec: 2100 movs r1, #0 + 8001eee: 4628 mov r0, r5 + 8001ef0: f000 fe88 bl 8002c04 + setLED(lookupLED(0,5), 0x00, 0x00, 0x00); + 8001ef4: 2105 movs r1, #5 + 8001ef6: 2000 movs r0, #0 + 8001ef8: f000 fd14 bl 8002924 + 8001efc: 4603 mov r3, r0 + 8001efe: 4618 mov r0, r3 + 8001f00: 2300 movs r3, #0 + 8001f02: 2200 movs r2, #0 + 8001f04: 2100 movs r1, #0 + 8001f06: f000 fe7d bl 8002c04 + setLED(lookupLED(0,6), 0x00, 0x00, 0x00); + 8001f0a: 2106 movs r1, #6 + 8001f0c: 2000 movs r0, #0 + 8001f0e: f000 fd09 bl 8002924 + 8001f12: 4603 mov r3, r0 + 8001f14: 4618 mov r0, r3 + 8001f16: 2300 movs r3, #0 + 8001f18: 2200 movs r2, #0 + 8001f1a: 2100 movs r1, #0 + 8001f1c: f000 fe72 bl 8002c04 + setLED(lookupLED(0,7), 0x00, 0x00, 0x00); + 8001f20: 2107 movs r1, #7 + 8001f22: 2000 movs r0, #0 + 8001f24: f000 fcfe bl 8002924 + 8001f28: 4603 mov r3, r0 + 8001f2a: 4618 mov r0, r3 + 8001f2c: 2300 movs r3, #0 + 8001f2e: 2200 movs r2, #0 + 8001f30: 2100 movs r1, #0 + 8001f32: f000 fe67 bl 8002c04 + setLED(lookupLED(1,0), 0x00, 0x00, 0x00); + 8001f36: 2100 movs r1, #0 + 8001f38: 2001 movs r0, #1 + 8001f3a: f000 fcf3 bl 8002924 + 8001f3e: 4603 mov r3, r0 + 8001f40: 4618 mov r0, r3 + 8001f42: 2300 movs r3, #0 + 8001f44: 2200 movs r2, #0 + 8001f46: 2100 movs r1, #0 + 8001f48: f000 fe5c bl 8002c04 + setLED(lookupLED(1,1), 0x00, 0x00, currentSoundLevel * 0.5); + 8001f4c: 2101 movs r1, #1 + 8001f4e: 2001 movs r0, #1 + 8001f50: f000 fce8 bl 8002924 + 8001f54: 4603 mov r3, r0 + 8001f56: 461d mov r5, r3 + 8001f58: 79fb ldrb r3, [r7, #7] + 8001f5a: 4618 mov r0, r3 + 8001f5c: f7fe fa9a bl 8000494 <__aeabi_i2d> + 8001f60: f04f 0200 mov.w r2, #0 + 8001f64: 4ba7 ldr r3, [pc, #668] ; (8002204 ) + 8001f66: f7fe faff bl 8000568 <__aeabi_dmul> + 8001f6a: 4603 mov r3, r0 + 8001f6c: 460c mov r4, r1 + 8001f6e: 4618 mov r0, r3 + 8001f70: 4621 mov r1, r4 + 8001f72: f7fe fd0b bl 800098c <__aeabi_d2uiz> + 8001f76: 4603 mov r3, r0 + 8001f78: b2db uxtb r3, r3 + 8001f7a: 2200 movs r2, #0 + 8001f7c: 2100 movs r1, #0 + 8001f7e: 4628 mov r0, r5 + 8001f80: f000 fe40 bl 8002c04 + setLED(lookupLED(1,2), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); + 8001f84: 2102 movs r1, #2 + 8001f86: 2001 movs r0, #1 + 8001f88: f000 fccc bl 8002924 + 8001f8c: 4603 mov r3, r0 + 8001f8e: 461d mov r5, r3 + 8001f90: 79fb ldrb r3, [r7, #7] + 8001f92: 4618 mov r0, r3 + 8001f94: f7fe fa7e bl 8000494 <__aeabi_i2d> + 8001f98: f04f 0200 mov.w r2, #0 + 8001f9c: 4b99 ldr r3, [pc, #612] ; (8002204 ) + 8001f9e: f7fe fae3 bl 8000568 <__aeabi_dmul> + 8001fa2: 4603 mov r3, r0 + 8001fa4: 460c mov r4, r1 + 8001fa6: 4618 mov r0, r3 + 8001fa8: 4621 mov r1, r4 + 8001faa: a393 add r3, pc, #588 ; (adr r3, 80021f8 ) + 8001fac: e9d3 2300 ldrd r2, r3, [r3] + 8001fb0: f7fe f924 bl 80001fc <__adddf3> + 8001fb4: 4603 mov r3, r0 + 8001fb6: 460c mov r4, r1 8001fb8: 4618 mov r0, r3 - 8001fba: f7fe fa6b bl 8000494 <__aeabi_i2d> - 8001fbe: f04f 0200 mov.w r2, #0 - 8001fc2: 4b1f ldr r3, [pc, #124] ; (8002040 ) - 8001fc4: f7fe fad0 bl 8000568 <__aeabi_dmul> - 8001fc8: 4603 mov r3, r0 - 8001fca: 460c mov r4, r1 - 8001fcc: 4618 mov r0, r3 - 8001fce: 4621 mov r1, r4 - 8001fd0: f7fe fcdc bl 800098c <__aeabi_d2uiz> - 8001fd4: 4603 mov r3, r0 - 8001fd6: b2db uxtb r3, r3 - 8001fd8: 2200 movs r2, #0 - 8001fda: 2100 movs r1, #0 - 8001fdc: 4628 mov r0, r5 - 8001fde: f000 fb49 bl 8002674 - setLED(lookupLED(5,6), 0x00, 0x00, 0x00); - 8001fe2: 2106 movs r1, #6 - 8001fe4: 2005 movs r0, #5 - 8001fe6: f000 f9d5 bl 8002394 - 8001fea: 4603 mov r3, r0 - 8001fec: 4618 mov r0, r3 - 8001fee: 2300 movs r3, #0 - 8001ff0: 2200 movs r2, #0 - 8001ff2: 2100 movs r1, #0 - 8001ff4: f000 fb3e bl 8002674 - setLED(lookupLED(5,7), 0x00, 0x00, 0x00); - 8001ff8: 2107 movs r1, #7 - 8001ffa: 2005 movs r0, #5 - 8001ffc: f000 f9ca bl 8002394 - 8002000: 4603 mov r3, r0 - 8002002: 4618 mov r0, r3 - 8002004: 2300 movs r3, #0 - 8002006: 2200 movs r2, #0 - 8002008: 2100 movs r1, #0 - 800200a: f000 fb33 bl 8002674 - setLED(lookupLED(6,0), 0x00, 0x00, 0x00); - 800200e: 2100 movs r1, #0 - 8002010: 2006 movs r0, #6 - 8002012: f000 f9bf bl 8002394 - 8002016: 4603 mov r3, r0 - 8002018: 4618 mov r0, r3 - 800201a: 2300 movs r3, #0 - 800201c: 2200 movs r2, #0 - 800201e: 2100 movs r1, #0 - 8002020: f000 fb28 bl 8002674 - setLED(lookupLED(6,1), 0x00, 0x00, currentSoundLevel * 0.5); - 8002024: 2101 movs r1, #1 - 8002026: 2006 movs r0, #6 - 8002028: f000 f9b4 bl 8002394 - 800202c: 4603 mov r3, r0 - 800202e: 461d mov r5, r3 - 8002030: e00a b.n 8002048 - 8002032: bf00 nop - 8002034: f3af 8000 nop.w - 8002038: 00000000 .word 0x00000000 - 800203c: 405fc000 .word 0x405fc000 - 8002040: 3fe00000 .word 0x3fe00000 - 8002044: 3fd00000 .word 0x3fd00000 - 8002048: 79fb ldrb r3, [r7, #7] - 800204a: 4618 mov r0, r3 - 800204c: f7fe fa22 bl 8000494 <__aeabi_i2d> - 8002050: f04f 0200 mov.w r2, #0 - 8002054: 4b8c ldr r3, [pc, #560] ; (8002288 ) - 8002056: f7fe fa87 bl 8000568 <__aeabi_dmul> - 800205a: 4603 mov r3, r0 - 800205c: 460c mov r4, r1 - 800205e: 4618 mov r0, r3 - 8002060: 4621 mov r1, r4 - 8002062: f7fe fc93 bl 800098c <__aeabi_d2uiz> + 8001fba: 4621 mov r1, r4 + 8001fbc: f7fe fce6 bl 800098c <__aeabi_d2uiz> + 8001fc0: 4603 mov r3, r0 + 8001fc2: b2db uxtb r3, r3 + 8001fc4: 2200 movs r2, #0 + 8001fc6: 2100 movs r1, #0 + 8001fc8: 4628 mov r0, r5 + 8001fca: f000 fe1b bl 8002c04 + setLED(lookupLED(1,3), 0x00, 0x00, currentSoundLevel); + 8001fce: 2103 movs r1, #3 + 8001fd0: 2001 movs r0, #1 + 8001fd2: f000 fca7 bl 8002924 + 8001fd6: 4603 mov r3, r0 + 8001fd8: 4618 mov r0, r3 + 8001fda: 79fb ldrb r3, [r7, #7] + 8001fdc: 2200 movs r2, #0 + 8001fde: 2100 movs r1, #0 + 8001fe0: f000 fe10 bl 8002c04 + setLED(lookupLED(1,4), 0x00, 0x00, currentSoundLevel); + 8001fe4: 2104 movs r1, #4 + 8001fe6: 2001 movs r0, #1 + 8001fe8: f000 fc9c bl 8002924 + 8001fec: 4603 mov r3, r0 + 8001fee: 4618 mov r0, r3 + 8001ff0: 79fb ldrb r3, [r7, #7] + 8001ff2: 2200 movs r2, #0 + 8001ff4: 2100 movs r1, #0 + 8001ff6: f000 fe05 bl 8002c04 + setLED(lookupLED(1,5), 0x00, 0x00, currentSoundLevel * 0.5); + 8001ffa: 2105 movs r1, #5 + 8001ffc: 2001 movs r0, #1 + 8001ffe: f000 fc91 bl 8002924 + 8002002: 4603 mov r3, r0 + 8002004: 461d mov r5, r3 + 8002006: 79fb ldrb r3, [r7, #7] + 8002008: 4618 mov r0, r3 + 800200a: f7fe fa43 bl 8000494 <__aeabi_i2d> + 800200e: f04f 0200 mov.w r2, #0 + 8002012: 4b7c ldr r3, [pc, #496] ; (8002204 ) + 8002014: f7fe faa8 bl 8000568 <__aeabi_dmul> + 8002018: 4603 mov r3, r0 + 800201a: 460c mov r4, r1 + 800201c: 4618 mov r0, r3 + 800201e: 4621 mov r1, r4 + 8002020: f7fe fcb4 bl 800098c <__aeabi_d2uiz> + 8002024: 4603 mov r3, r0 + 8002026: b2db uxtb r3, r3 + 8002028: 2200 movs r2, #0 + 800202a: 2100 movs r1, #0 + 800202c: 4628 mov r0, r5 + 800202e: f000 fde9 bl 8002c04 + setLED(lookupLED(1,6), 0x00, 0x00, 0x00); + 8002032: 2106 movs r1, #6 + 8002034: 2001 movs r0, #1 + 8002036: f000 fc75 bl 8002924 + 800203a: 4603 mov r3, r0 + 800203c: 4618 mov r0, r3 + 800203e: 2300 movs r3, #0 + 8002040: 2200 movs r2, #0 + 8002042: 2100 movs r1, #0 + 8002044: f000 fdde bl 8002c04 + setLED(lookupLED(1,7), 0x00, 0x00, 0x00); + 8002048: 2107 movs r1, #7 + 800204a: 2001 movs r0, #1 + 800204c: f000 fc6a bl 8002924 + 8002050: 4603 mov r3, r0 + 8002052: 4618 mov r0, r3 + 8002054: 2300 movs r3, #0 + 8002056: 2200 movs r2, #0 + 8002058: 2100 movs r1, #0 + 800205a: f000 fdd3 bl 8002c04 + setLED(lookupLED(2,0), 0x00, 0x00, 0x00); + 800205e: 2100 movs r1, #0 + 8002060: 2002 movs r0, #2 + 8002062: f000 fc5f bl 8002924 8002066: 4603 mov r3, r0 - 8002068: b2db uxtb r3, r3 - 800206a: 2200 movs r2, #0 - 800206c: 2100 movs r1, #0 - 800206e: 4628 mov r0, r5 - 8002070: f000 fb00 bl 8002674 - setLED(lookupLED(6,2), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); - 8002074: 2102 movs r1, #2 - 8002076: 2006 movs r0, #6 - 8002078: f000 f98c bl 8002394 + 8002068: 4618 mov r0, r3 + 800206a: 2300 movs r3, #0 + 800206c: 2200 movs r2, #0 + 800206e: 2100 movs r1, #0 + 8002070: f000 fdc8 bl 8002c04 + setLED(lookupLED(2,1), 0x00, 0x00, currentSoundLevel * 0.5); + 8002074: 2101 movs r1, #1 + 8002076: 2002 movs r0, #2 + 8002078: f000 fc54 bl 8002924 800207c: 4603 mov r3, r0 800207e: 461d mov r5, r3 8002080: 79fb ldrb r3, [r7, #7] 8002082: 4618 mov r0, r3 8002084: f7fe fa06 bl 8000494 <__aeabi_i2d> 8002088: f04f 0200 mov.w r2, #0 - 800208c: 4b7e ldr r3, [pc, #504] ; (8002288 ) + 800208c: 4b5d ldr r3, [pc, #372] ; (8002204 ) 800208e: f7fe fa6b bl 8000568 <__aeabi_dmul> 8002092: 4603 mov r3, r0 8002094: 460c mov r4, r1 8002096: 4618 mov r0, r3 8002098: 4621 mov r1, r4 - 800209a: a379 add r3, pc, #484 ; (adr r3, 8002280 ) - 800209c: e9d3 2300 ldrd r2, r3, [r3] - 80020a0: f7fe f8ac bl 80001fc <__adddf3> - 80020a4: 4603 mov r3, r0 - 80020a6: 460c mov r4, r1 - 80020a8: 4618 mov r0, r3 - 80020aa: 4621 mov r1, r4 - 80020ac: f7fe fc6e bl 800098c <__aeabi_d2uiz> - 80020b0: 4603 mov r3, r0 - 80020b2: b2db uxtb r3, r3 - 80020b4: 2200 movs r2, #0 - 80020b6: 2100 movs r1, #0 - 80020b8: 4628 mov r0, r5 - 80020ba: f000 fadb bl 8002674 - setLED(lookupLED(6,3), 0x00, 0x00, currentSoundLevel); - 80020be: 2103 movs r1, #3 - 80020c0: 2006 movs r0, #6 - 80020c2: f000 f967 bl 8002394 - 80020c6: 4603 mov r3, r0 - 80020c8: 4618 mov r0, r3 - 80020ca: 79fb ldrb r3, [r7, #7] - 80020cc: 2200 movs r2, #0 - 80020ce: 2100 movs r1, #0 - 80020d0: f000 fad0 bl 8002674 - setLED(lookupLED(6,4), 0x00, 0x00, currentSoundLevel); - 80020d4: 2104 movs r1, #4 - 80020d6: 2006 movs r0, #6 - 80020d8: f000 f95c bl 8002394 + 800209a: f7fe fc77 bl 800098c <__aeabi_d2uiz> + 800209e: 4603 mov r3, r0 + 80020a0: b2db uxtb r3, r3 + 80020a2: 2200 movs r2, #0 + 80020a4: 2100 movs r1, #0 + 80020a6: 4628 mov r0, r5 + 80020a8: f000 fdac bl 8002c04 + setLED(lookupLED(2,2), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); + 80020ac: 2102 movs r1, #2 + 80020ae: 2002 movs r0, #2 + 80020b0: f000 fc38 bl 8002924 + 80020b4: 4603 mov r3, r0 + 80020b6: 461d mov r5, r3 + 80020b8: 79fb ldrb r3, [r7, #7] + 80020ba: 4618 mov r0, r3 + 80020bc: f7fe f9ea bl 8000494 <__aeabi_i2d> + 80020c0: f04f 0200 mov.w r2, #0 + 80020c4: 4b4f ldr r3, [pc, #316] ; (8002204 ) + 80020c6: f7fe fa4f bl 8000568 <__aeabi_dmul> + 80020ca: 4603 mov r3, r0 + 80020cc: 460c mov r4, r1 + 80020ce: 4618 mov r0, r3 + 80020d0: 4621 mov r1, r4 + 80020d2: a349 add r3, pc, #292 ; (adr r3, 80021f8 ) + 80020d4: e9d3 2300 ldrd r2, r3, [r3] + 80020d8: f7fe f890 bl 80001fc <__adddf3> 80020dc: 4603 mov r3, r0 - 80020de: 4618 mov r0, r3 - 80020e0: 79fb ldrb r3, [r7, #7] - 80020e2: 2200 movs r2, #0 - 80020e4: 2100 movs r1, #0 - 80020e6: f000 fac5 bl 8002674 - setLED(lookupLED(6,5), 0x00, 0x00, currentSoundLevel * 0.5); - 80020ea: 2105 movs r1, #5 - 80020ec: 2006 movs r0, #6 - 80020ee: f000 f951 bl 8002394 - 80020f2: 4603 mov r3, r0 - 80020f4: 461d mov r5, r3 - 80020f6: 79fb ldrb r3, [r7, #7] - 80020f8: 4618 mov r0, r3 - 80020fa: f7fe f9cb bl 8000494 <__aeabi_i2d> - 80020fe: f04f 0200 mov.w r2, #0 - 8002102: 4b61 ldr r3, [pc, #388] ; (8002288 ) - 8002104: f7fe fa30 bl 8000568 <__aeabi_dmul> - 8002108: 4603 mov r3, r0 - 800210a: 460c mov r4, r1 - 800210c: 4618 mov r0, r3 - 800210e: 4621 mov r1, r4 - 8002110: f7fe fc3c bl 800098c <__aeabi_d2uiz> + 80020de: 460c mov r4, r1 + 80020e0: 4618 mov r0, r3 + 80020e2: 4621 mov r1, r4 + 80020e4: f7fe fc52 bl 800098c <__aeabi_d2uiz> + 80020e8: 4603 mov r3, r0 + 80020ea: b2db uxtb r3, r3 + 80020ec: 2200 movs r2, #0 + 80020ee: 2100 movs r1, #0 + 80020f0: 4628 mov r0, r5 + 80020f2: f000 fd87 bl 8002c04 + setLED(lookupLED(2,3), 0x00, 0x00, currentSoundLevel); + 80020f6: 2103 movs r1, #3 + 80020f8: 2002 movs r0, #2 + 80020fa: f000 fc13 bl 8002924 + 80020fe: 4603 mov r3, r0 + 8002100: 4618 mov r0, r3 + 8002102: 79fb ldrb r3, [r7, #7] + 8002104: 2200 movs r2, #0 + 8002106: 2100 movs r1, #0 + 8002108: f000 fd7c bl 8002c04 + setLED(lookupLED(2,4), 0x00, 0x00, currentSoundLevel); + 800210c: 2104 movs r1, #4 + 800210e: 2002 movs r0, #2 + 8002110: f000 fc08 bl 8002924 8002114: 4603 mov r3, r0 - 8002116: b2db uxtb r3, r3 - 8002118: 2200 movs r2, #0 - 800211a: 2100 movs r1, #0 - 800211c: 4628 mov r0, r5 - 800211e: f000 faa9 bl 8002674 - setLED(lookupLED(6,6), 0x00, 0x00, 0x00); - 8002122: 2106 movs r1, #6 - 8002124: 2006 movs r0, #6 - 8002126: f000 f935 bl 8002394 + 8002116: 4618 mov r0, r3 + 8002118: 79fb ldrb r3, [r7, #7] + 800211a: 2200 movs r2, #0 + 800211c: 2100 movs r1, #0 + 800211e: f000 fd71 bl 8002c04 + setLED(lookupLED(2,5), 0x00, 0x00, currentSoundLevel * 0.5); + 8002122: 2105 movs r1, #5 + 8002124: 2002 movs r0, #2 + 8002126: f000 fbfd bl 8002924 800212a: 4603 mov r3, r0 - 800212c: 4618 mov r0, r3 - 800212e: 2300 movs r3, #0 - 8002130: 2200 movs r2, #0 - 8002132: 2100 movs r1, #0 - 8002134: f000 fa9e bl 8002674 - setLED(lookupLED(6,7), 0x00, 0x00, 0x00); - 8002138: 2107 movs r1, #7 - 800213a: 2006 movs r0, #6 - 800213c: f000 f92a bl 8002394 + 800212c: 461d mov r5, r3 + 800212e: 79fb ldrb r3, [r7, #7] + 8002130: 4618 mov r0, r3 + 8002132: f7fe f9af bl 8000494 <__aeabi_i2d> + 8002136: f04f 0200 mov.w r2, #0 + 800213a: 4b32 ldr r3, [pc, #200] ; (8002204 ) + 800213c: f7fe fa14 bl 8000568 <__aeabi_dmul> 8002140: 4603 mov r3, r0 - 8002142: 4618 mov r0, r3 - 8002144: 2300 movs r3, #0 - 8002146: 2200 movs r2, #0 - 8002148: 2100 movs r1, #0 - 800214a: f000 fa93 bl 8002674 - setLED(lookupLED(7,0), 0x00, 0x00, 0x00); - 800214e: 2100 movs r1, #0 - 8002150: 2007 movs r0, #7 - 8002152: f000 f91f bl 8002394 - 8002156: 4603 mov r3, r0 - 8002158: 4618 mov r0, r3 - 800215a: 2300 movs r3, #0 - 800215c: 2200 movs r2, #0 - 800215e: 2100 movs r1, #0 - 8002160: f000 fa88 bl 8002674 - setLED(lookupLED(7,1), 0x00, 0x00, 0x00); - 8002164: 2101 movs r1, #1 - 8002166: 2007 movs r0, #7 - 8002168: f000 f914 bl 8002394 - 800216c: 4603 mov r3, r0 - 800216e: 4618 mov r0, r3 - 8002170: 2300 movs r3, #0 - 8002172: 2200 movs r2, #0 - 8002174: 2100 movs r1, #0 - 8002176: f000 fa7d bl 8002674 - setLED(lookupLED(7,2), 0x00, 0x00, currentSoundLevel * 0.25); - 800217a: 2102 movs r1, #2 - 800217c: 2007 movs r0, #7 - 800217e: f000 f909 bl 8002394 - 8002182: 4603 mov r3, r0 - 8002184: 461d mov r5, r3 - 8002186: 79fb ldrb r3, [r7, #7] - 8002188: 4618 mov r0, r3 - 800218a: f7fe f983 bl 8000494 <__aeabi_i2d> - 800218e: f04f 0200 mov.w r2, #0 - 8002192: 4b3e ldr r3, [pc, #248] ; (800228c ) - 8002194: f7fe f9e8 bl 8000568 <__aeabi_dmul> - 8002198: 4603 mov r3, r0 - 800219a: 460c mov r4, r1 - 800219c: 4618 mov r0, r3 - 800219e: 4621 mov r1, r4 - 80021a0: f7fe fbf4 bl 800098c <__aeabi_d2uiz> + 8002142: 460c mov r4, r1 + 8002144: 4618 mov r0, r3 + 8002146: 4621 mov r1, r4 + 8002148: f7fe fc20 bl 800098c <__aeabi_d2uiz> + 800214c: 4603 mov r3, r0 + 800214e: b2db uxtb r3, r3 + 8002150: 2200 movs r2, #0 + 8002152: 2100 movs r1, #0 + 8002154: 4628 mov r0, r5 + 8002156: f000 fd55 bl 8002c04 + setLED(lookupLED(2,6), 0x00, 0x00, 0x00); + 800215a: 2106 movs r1, #6 + 800215c: 2002 movs r0, #2 + 800215e: f000 fbe1 bl 8002924 + 8002162: 4603 mov r3, r0 + 8002164: 4618 mov r0, r3 + 8002166: 2300 movs r3, #0 + 8002168: 2200 movs r2, #0 + 800216a: 2100 movs r1, #0 + 800216c: f000 fd4a bl 8002c04 + setLED(lookupLED(2,7), 0x00, 0x00, 0x00); + 8002170: 2107 movs r1, #7 + 8002172: 2002 movs r0, #2 + 8002174: f000 fbd6 bl 8002924 + 8002178: 4603 mov r3, r0 + 800217a: 4618 mov r0, r3 + 800217c: 2300 movs r3, #0 + 800217e: 2200 movs r2, #0 + 8002180: 2100 movs r1, #0 + 8002182: f000 fd3f bl 8002c04 + setLED(lookupLED(3,0), 0x00, 0x00, currentSoundLevel * 0.25); + 8002186: 2100 movs r1, #0 + 8002188: 2003 movs r0, #3 + 800218a: f000 fbcb bl 8002924 + 800218e: 4603 mov r3, r0 + 8002190: 461d mov r5, r3 + 8002192: 79fb ldrb r3, [r7, #7] + 8002194: 4618 mov r0, r3 + 8002196: f7fe f97d bl 8000494 <__aeabi_i2d> + 800219a: f04f 0200 mov.w r2, #0 + 800219e: 4b18 ldr r3, [pc, #96] ; (8002200 ) + 80021a0: f7fe f9e2 bl 8000568 <__aeabi_dmul> 80021a4: 4603 mov r3, r0 - 80021a6: b2db uxtb r3, r3 - 80021a8: 2200 movs r2, #0 - 80021aa: 2100 movs r1, #0 - 80021ac: 4628 mov r0, r5 - 80021ae: f000 fa61 bl 8002674 + 80021a6: 460c mov r4, r1 + 80021a8: 4618 mov r0, r3 + 80021aa: 4621 mov r1, r4 + 80021ac: f7fe fbee bl 800098c <__aeabi_d2uiz> + 80021b0: 4603 mov r3, r0 + 80021b2: b2db uxtb r3, r3 + 80021b4: 2200 movs r2, #0 + 80021b6: 2100 movs r1, #0 + 80021b8: 4628 mov r0, r5 + 80021ba: f000 fd23 bl 8002c04 + setLED(lookupLED(3,1), 0x00, 0x00, currentSoundLevel * 0.5); + 80021be: 2101 movs r1, #1 + 80021c0: 2003 movs r0, #3 + 80021c2: f000 fbaf bl 8002924 + 80021c6: 4603 mov r3, r0 + 80021c8: 461d mov r5, r3 + 80021ca: 79fb ldrb r3, [r7, #7] + 80021cc: 4618 mov r0, r3 + 80021ce: f7fe f961 bl 8000494 <__aeabi_i2d> + 80021d2: f04f 0200 mov.w r2, #0 + 80021d6: 4b0b ldr r3, [pc, #44] ; (8002204 ) + 80021d8: f7fe f9c6 bl 8000568 <__aeabi_dmul> + 80021dc: 4603 mov r3, r0 + 80021de: 460c mov r4, r1 + 80021e0: 4618 mov r0, r3 + 80021e2: 4621 mov r1, r4 + 80021e4: f7fe fbd2 bl 800098c <__aeabi_d2uiz> + 80021e8: 4603 mov r3, r0 + 80021ea: b2db uxtb r3, r3 + 80021ec: 2200 movs r2, #0 + 80021ee: 2100 movs r1, #0 + 80021f0: e00a b.n 8002208 + 80021f2: bf00 nop + 80021f4: f3af 8000 nop.w + 80021f8: 00000000 .word 0x00000000 + 80021fc: 405fc000 .word 0x405fc000 + 8002200: 3fd00000 .word 0x3fd00000 + 8002204: 3fe00000 .word 0x3fe00000 + 8002208: 4628 mov r0, r5 + 800220a: f000 fcfb bl 8002c04 + setLED(lookupLED(3,2), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); + 800220e: 2102 movs r1, #2 + 8002210: 2003 movs r0, #3 + 8002212: f000 fb87 bl 8002924 + 8002216: 4603 mov r3, r0 + 8002218: 461d mov r5, r3 + 800221a: 79fb ldrb r3, [r7, #7] + 800221c: 4618 mov r0, r3 + 800221e: f7fe f939 bl 8000494 <__aeabi_i2d> + 8002222: f04f 0200 mov.w r2, #0 + 8002226: 4bea ldr r3, [pc, #936] ; (80025d0 ) + 8002228: f7fe f99e bl 8000568 <__aeabi_dmul> + 800222c: 4603 mov r3, r0 + 800222e: 460c mov r4, r1 + 8002230: 4618 mov r0, r3 + 8002232: 4621 mov r1, r4 + 8002234: a3e4 add r3, pc, #912 ; (adr r3, 80025c8 ) + 8002236: e9d3 2300 ldrd r2, r3, [r3] + 800223a: f7fd ffdf bl 80001fc <__adddf3> + 800223e: 4603 mov r3, r0 + 8002240: 460c mov r4, r1 + 8002242: 4618 mov r0, r3 + 8002244: 4621 mov r1, r4 + 8002246: f7fe fba1 bl 800098c <__aeabi_d2uiz> + 800224a: 4603 mov r3, r0 + 800224c: b2db uxtb r3, r3 + 800224e: 2200 movs r2, #0 + 8002250: 2100 movs r1, #0 + 8002252: 4628 mov r0, r5 + 8002254: f000 fcd6 bl 8002c04 + setLED(lookupLED(3,3), 0x00, 0x00, currentSoundLevel); + 8002258: 2103 movs r1, #3 + 800225a: 2003 movs r0, #3 + 800225c: f000 fb62 bl 8002924 + 8002260: 4603 mov r3, r0 + 8002262: 4618 mov r0, r3 + 8002264: 79fb ldrb r3, [r7, #7] + 8002266: 2200 movs r2, #0 + 8002268: 2100 movs r1, #0 + 800226a: f000 fccb bl 8002c04 + setLED(lookupLED(3,4), 0x00, 0x00, currentSoundLevel); + 800226e: 2104 movs r1, #4 + 8002270: 2003 movs r0, #3 + 8002272: f000 fb57 bl 8002924 + 8002276: 4603 mov r3, r0 + 8002278: 4618 mov r0, r3 + 800227a: 79fb ldrb r3, [r7, #7] + 800227c: 2200 movs r2, #0 + 800227e: 2100 movs r1, #0 + 8002280: f000 fcc0 bl 8002c04 + setLED(lookupLED(3,5), 0x00, 0x00, currentSoundLevel * 0.5); + 8002284: 2105 movs r1, #5 + 8002286: 2003 movs r0, #3 + 8002288: f000 fb4c bl 8002924 + 800228c: 4603 mov r3, r0 + 800228e: 461d mov r5, r3 + 8002290: 79fb ldrb r3, [r7, #7] + 8002292: 4618 mov r0, r3 + 8002294: f7fe f8fe bl 8000494 <__aeabi_i2d> + 8002298: f04f 0200 mov.w r2, #0 + 800229c: 4bcc ldr r3, [pc, #816] ; (80025d0 ) + 800229e: f7fe f963 bl 8000568 <__aeabi_dmul> + 80022a2: 4603 mov r3, r0 + 80022a4: 460c mov r4, r1 + 80022a6: 4618 mov r0, r3 + 80022a8: 4621 mov r1, r4 + 80022aa: f7fe fb6f bl 800098c <__aeabi_d2uiz> + 80022ae: 4603 mov r3, r0 + 80022b0: b2db uxtb r3, r3 + 80022b2: 2200 movs r2, #0 + 80022b4: 2100 movs r1, #0 + 80022b6: 4628 mov r0, r5 + 80022b8: f000 fca4 bl 8002c04 + setLED(lookupLED(3,6), 0x00, 0x00, currentSoundLevel * 0.25); + 80022bc: 2106 movs r1, #6 + 80022be: 2003 movs r0, #3 + 80022c0: f000 fb30 bl 8002924 + 80022c4: 4603 mov r3, r0 + 80022c6: 461d mov r5, r3 + 80022c8: 79fb ldrb r3, [r7, #7] + 80022ca: 4618 mov r0, r3 + 80022cc: f7fe f8e2 bl 8000494 <__aeabi_i2d> + 80022d0: f04f 0200 mov.w r2, #0 + 80022d4: 4bbf ldr r3, [pc, #764] ; (80025d4 ) + 80022d6: f7fe f947 bl 8000568 <__aeabi_dmul> + 80022da: 4603 mov r3, r0 + 80022dc: 460c mov r4, r1 + 80022de: 4618 mov r0, r3 + 80022e0: 4621 mov r1, r4 + 80022e2: f7fe fb53 bl 800098c <__aeabi_d2uiz> + 80022e6: 4603 mov r3, r0 + 80022e8: b2db uxtb r3, r3 + 80022ea: 2200 movs r2, #0 + 80022ec: 2100 movs r1, #0 + 80022ee: 4628 mov r0, r5 + 80022f0: f000 fc88 bl 8002c04 + setLED(lookupLED(3,7), 0x00, 0x00, 0x00); + 80022f4: 2107 movs r1, #7 + 80022f6: 2003 movs r0, #3 + 80022f8: f000 fb14 bl 8002924 + 80022fc: 4603 mov r3, r0 + 80022fe: 4618 mov r0, r3 + 8002300: 2300 movs r3, #0 + 8002302: 2200 movs r2, #0 + 8002304: 2100 movs r1, #0 + 8002306: f000 fc7d bl 8002c04 + setLED(lookupLED(4,0), 0x00, 0x00, currentSoundLevel * 0.25); + 800230a: 2100 movs r1, #0 + 800230c: 2004 movs r0, #4 + 800230e: f000 fb09 bl 8002924 + 8002312: 4603 mov r3, r0 + 8002314: 461d mov r5, r3 + 8002316: 79fb ldrb r3, [r7, #7] + 8002318: 4618 mov r0, r3 + 800231a: f7fe f8bb bl 8000494 <__aeabi_i2d> + 800231e: f04f 0200 mov.w r2, #0 + 8002322: 4bac ldr r3, [pc, #688] ; (80025d4 ) + 8002324: f7fe f920 bl 8000568 <__aeabi_dmul> + 8002328: 4603 mov r3, r0 + 800232a: 460c mov r4, r1 + 800232c: 4618 mov r0, r3 + 800232e: 4621 mov r1, r4 + 8002330: f7fe fb2c bl 800098c <__aeabi_d2uiz> + 8002334: 4603 mov r3, r0 + 8002336: b2db uxtb r3, r3 + 8002338: 2200 movs r2, #0 + 800233a: 2100 movs r1, #0 + 800233c: 4628 mov r0, r5 + 800233e: f000 fc61 bl 8002c04 + setLED(lookupLED(4,1), 0x00, 0x00, currentSoundLevel * 0.5); + 8002342: 2101 movs r1, #1 + 8002344: 2004 movs r0, #4 + 8002346: f000 faed bl 8002924 + 800234a: 4603 mov r3, r0 + 800234c: 461d mov r5, r3 + 800234e: 79fb ldrb r3, [r7, #7] + 8002350: 4618 mov r0, r3 + 8002352: f7fe f89f bl 8000494 <__aeabi_i2d> + 8002356: f04f 0200 mov.w r2, #0 + 800235a: 4b9d ldr r3, [pc, #628] ; (80025d0 ) + 800235c: f7fe f904 bl 8000568 <__aeabi_dmul> + 8002360: 4603 mov r3, r0 + 8002362: 460c mov r4, r1 + 8002364: 4618 mov r0, r3 + 8002366: 4621 mov r1, r4 + 8002368: f7fe fb10 bl 800098c <__aeabi_d2uiz> + 800236c: 4603 mov r3, r0 + 800236e: b2db uxtb r3, r3 + 8002370: 2200 movs r2, #0 + 8002372: 2100 movs r1, #0 + 8002374: 4628 mov r0, r5 + 8002376: f000 fc45 bl 8002c04 + setLED(lookupLED(4,2), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); + 800237a: 2102 movs r1, #2 + 800237c: 2004 movs r0, #4 + 800237e: f000 fad1 bl 8002924 + 8002382: 4603 mov r3, r0 + 8002384: 461d mov r5, r3 + 8002386: 79fb ldrb r3, [r7, #7] + 8002388: 4618 mov r0, r3 + 800238a: f7fe f883 bl 8000494 <__aeabi_i2d> + 800238e: f04f 0200 mov.w r2, #0 + 8002392: 4b8f ldr r3, [pc, #572] ; (80025d0 ) + 8002394: f7fe f8e8 bl 8000568 <__aeabi_dmul> + 8002398: 4603 mov r3, r0 + 800239a: 460c mov r4, r1 + 800239c: 4618 mov r0, r3 + 800239e: 4621 mov r1, r4 + 80023a0: a389 add r3, pc, #548 ; (adr r3, 80025c8 ) + 80023a2: e9d3 2300 ldrd r2, r3, [r3] + 80023a6: f7fd ff29 bl 80001fc <__adddf3> + 80023aa: 4603 mov r3, r0 + 80023ac: 460c mov r4, r1 + 80023ae: 4618 mov r0, r3 + 80023b0: 4621 mov r1, r4 + 80023b2: f7fe faeb bl 800098c <__aeabi_d2uiz> + 80023b6: 4603 mov r3, r0 + 80023b8: b2db uxtb r3, r3 + 80023ba: 2200 movs r2, #0 + 80023bc: 2100 movs r1, #0 + 80023be: 4628 mov r0, r5 + 80023c0: f000 fc20 bl 8002c04 + setLED(lookupLED(4,3), 0x00, 0x00, currentSoundLevel); + 80023c4: 2103 movs r1, #3 + 80023c6: 2004 movs r0, #4 + 80023c8: f000 faac bl 8002924 + 80023cc: 4603 mov r3, r0 + 80023ce: 4618 mov r0, r3 + 80023d0: 79fb ldrb r3, [r7, #7] + 80023d2: 2200 movs r2, #0 + 80023d4: 2100 movs r1, #0 + 80023d6: f000 fc15 bl 8002c04 + setLED(lookupLED(4,4), 0x00, 0x00, currentSoundLevel); + 80023da: 2104 movs r1, #4 + 80023dc: 2004 movs r0, #4 + 80023de: f000 faa1 bl 8002924 + 80023e2: 4603 mov r3, r0 + 80023e4: 4618 mov r0, r3 + 80023e6: 79fb ldrb r3, [r7, #7] + 80023e8: 2200 movs r2, #0 + 80023ea: 2100 movs r1, #0 + 80023ec: f000 fc0a bl 8002c04 + setLED(lookupLED(4,5), 0x00, 0x00, currentSoundLevel * 0.5); + 80023f0: 2105 movs r1, #5 + 80023f2: 2004 movs r0, #4 + 80023f4: f000 fa96 bl 8002924 + 80023f8: 4603 mov r3, r0 + 80023fa: 461d mov r5, r3 + 80023fc: 79fb ldrb r3, [r7, #7] + 80023fe: 4618 mov r0, r3 + 8002400: f7fe f848 bl 8000494 <__aeabi_i2d> + 8002404: f04f 0200 mov.w r2, #0 + 8002408: 4b71 ldr r3, [pc, #452] ; (80025d0 ) + 800240a: f7fe f8ad bl 8000568 <__aeabi_dmul> + 800240e: 4603 mov r3, r0 + 8002410: 460c mov r4, r1 + 8002412: 4618 mov r0, r3 + 8002414: 4621 mov r1, r4 + 8002416: f7fe fab9 bl 800098c <__aeabi_d2uiz> + 800241a: 4603 mov r3, r0 + 800241c: b2db uxtb r3, r3 + 800241e: 2200 movs r2, #0 + 8002420: 2100 movs r1, #0 + 8002422: 4628 mov r0, r5 + 8002424: f000 fbee bl 8002c04 + setLED(lookupLED(4,6), 0x00, 0x00, currentSoundLevel * 0.25); + 8002428: 2106 movs r1, #6 + 800242a: 2004 movs r0, #4 + 800242c: f000 fa7a bl 8002924 + 8002430: 4603 mov r3, r0 + 8002432: 461d mov r5, r3 + 8002434: 79fb ldrb r3, [r7, #7] + 8002436: 4618 mov r0, r3 + 8002438: f7fe f82c bl 8000494 <__aeabi_i2d> + 800243c: f04f 0200 mov.w r2, #0 + 8002440: 4b64 ldr r3, [pc, #400] ; (80025d4 ) + 8002442: f7fe f891 bl 8000568 <__aeabi_dmul> + 8002446: 4603 mov r3, r0 + 8002448: 460c mov r4, r1 + 800244a: 4618 mov r0, r3 + 800244c: 4621 mov r1, r4 + 800244e: f7fe fa9d bl 800098c <__aeabi_d2uiz> + 8002452: 4603 mov r3, r0 + 8002454: b2db uxtb r3, r3 + 8002456: 2200 movs r2, #0 + 8002458: 2100 movs r1, #0 + 800245a: 4628 mov r0, r5 + 800245c: f000 fbd2 bl 8002c04 + setLED(lookupLED(4,7), 0x00, 0x00, 0x00); + 8002460: 2107 movs r1, #7 + 8002462: 2004 movs r0, #4 + 8002464: f000 fa5e bl 8002924 + 8002468: 4603 mov r3, r0 + 800246a: 4618 mov r0, r3 + 800246c: 2300 movs r3, #0 + 800246e: 2200 movs r2, #0 + 8002470: 2100 movs r1, #0 + 8002472: f000 fbc7 bl 8002c04 + setLED(lookupLED(5,0), 0x00, 0x00, 0x00); + 8002476: 2100 movs r1, #0 + 8002478: 2005 movs r0, #5 + 800247a: f000 fa53 bl 8002924 + 800247e: 4603 mov r3, r0 + 8002480: 4618 mov r0, r3 + 8002482: 2300 movs r3, #0 + 8002484: 2200 movs r2, #0 + 8002486: 2100 movs r1, #0 + 8002488: f000 fbbc bl 8002c04 + setLED(lookupLED(5,1), 0x00, 0x00, currentSoundLevel * 0.5); + 800248c: 2101 movs r1, #1 + 800248e: 2005 movs r0, #5 + 8002490: f000 fa48 bl 8002924 + 8002494: 4603 mov r3, r0 + 8002496: 461d mov r5, r3 + 8002498: 79fb ldrb r3, [r7, #7] + 800249a: 4618 mov r0, r3 + 800249c: f7fd fffa bl 8000494 <__aeabi_i2d> + 80024a0: f04f 0200 mov.w r2, #0 + 80024a4: 4b4a ldr r3, [pc, #296] ; (80025d0 ) + 80024a6: f7fe f85f bl 8000568 <__aeabi_dmul> + 80024aa: 4603 mov r3, r0 + 80024ac: 460c mov r4, r1 + 80024ae: 4618 mov r0, r3 + 80024b0: 4621 mov r1, r4 + 80024b2: f7fe fa6b bl 800098c <__aeabi_d2uiz> + 80024b6: 4603 mov r3, r0 + 80024b8: b2db uxtb r3, r3 + 80024ba: 2200 movs r2, #0 + 80024bc: 2100 movs r1, #0 + 80024be: 4628 mov r0, r5 + 80024c0: f000 fba0 bl 8002c04 + setLED(lookupLED(5,2), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); + 80024c4: 2102 movs r1, #2 + 80024c6: 2005 movs r0, #5 + 80024c8: f000 fa2c bl 8002924 + 80024cc: 4603 mov r3, r0 + 80024ce: 461d mov r5, r3 + 80024d0: 79fb ldrb r3, [r7, #7] + 80024d2: 4618 mov r0, r3 + 80024d4: f7fd ffde bl 8000494 <__aeabi_i2d> + 80024d8: f04f 0200 mov.w r2, #0 + 80024dc: 4b3c ldr r3, [pc, #240] ; (80025d0 ) + 80024de: f7fe f843 bl 8000568 <__aeabi_dmul> + 80024e2: 4603 mov r3, r0 + 80024e4: 460c mov r4, r1 + 80024e6: 4618 mov r0, r3 + 80024e8: 4621 mov r1, r4 + 80024ea: a337 add r3, pc, #220 ; (adr r3, 80025c8 ) + 80024ec: e9d3 2300 ldrd r2, r3, [r3] + 80024f0: f7fd fe84 bl 80001fc <__adddf3> + 80024f4: 4603 mov r3, r0 + 80024f6: 460c mov r4, r1 + 80024f8: 4618 mov r0, r3 + 80024fa: 4621 mov r1, r4 + 80024fc: f7fe fa46 bl 800098c <__aeabi_d2uiz> + 8002500: 4603 mov r3, r0 + 8002502: b2db uxtb r3, r3 + 8002504: 2200 movs r2, #0 + 8002506: 2100 movs r1, #0 + 8002508: 4628 mov r0, r5 + 800250a: f000 fb7b bl 8002c04 + setLED(lookupLED(5,3), 0x00, 0x00, currentSoundLevel); + 800250e: 2103 movs r1, #3 + 8002510: 2005 movs r0, #5 + 8002512: f000 fa07 bl 8002924 + 8002516: 4603 mov r3, r0 + 8002518: 4618 mov r0, r3 + 800251a: 79fb ldrb r3, [r7, #7] + 800251c: 2200 movs r2, #0 + 800251e: 2100 movs r1, #0 + 8002520: f000 fb70 bl 8002c04 + setLED(lookupLED(5,4), 0x00, 0x00, currentSoundLevel); + 8002524: 2104 movs r1, #4 + 8002526: 2005 movs r0, #5 + 8002528: f000 f9fc bl 8002924 + 800252c: 4603 mov r3, r0 + 800252e: 4618 mov r0, r3 + 8002530: 79fb ldrb r3, [r7, #7] + 8002532: 2200 movs r2, #0 + 8002534: 2100 movs r1, #0 + 8002536: f000 fb65 bl 8002c04 + setLED(lookupLED(5,5), 0x00, 0x00, currentSoundLevel * 0.5); + 800253a: 2105 movs r1, #5 + 800253c: 2005 movs r0, #5 + 800253e: f000 f9f1 bl 8002924 + 8002542: 4603 mov r3, r0 + 8002544: 461d mov r5, r3 + 8002546: 79fb ldrb r3, [r7, #7] + 8002548: 4618 mov r0, r3 + 800254a: f7fd ffa3 bl 8000494 <__aeabi_i2d> + 800254e: f04f 0200 mov.w r2, #0 + 8002552: 4b1f ldr r3, [pc, #124] ; (80025d0 ) + 8002554: f7fe f808 bl 8000568 <__aeabi_dmul> + 8002558: 4603 mov r3, r0 + 800255a: 460c mov r4, r1 + 800255c: 4618 mov r0, r3 + 800255e: 4621 mov r1, r4 + 8002560: f7fe fa14 bl 800098c <__aeabi_d2uiz> + 8002564: 4603 mov r3, r0 + 8002566: b2db uxtb r3, r3 + 8002568: 2200 movs r2, #0 + 800256a: 2100 movs r1, #0 + 800256c: 4628 mov r0, r5 + 800256e: f000 fb49 bl 8002c04 + setLED(lookupLED(5,6), 0x00, 0x00, 0x00); + 8002572: 2106 movs r1, #6 + 8002574: 2005 movs r0, #5 + 8002576: f000 f9d5 bl 8002924 + 800257a: 4603 mov r3, r0 + 800257c: 4618 mov r0, r3 + 800257e: 2300 movs r3, #0 + 8002580: 2200 movs r2, #0 + 8002582: 2100 movs r1, #0 + 8002584: f000 fb3e bl 8002c04 + setLED(lookupLED(5,7), 0x00, 0x00, 0x00); + 8002588: 2107 movs r1, #7 + 800258a: 2005 movs r0, #5 + 800258c: f000 f9ca bl 8002924 + 8002590: 4603 mov r3, r0 + 8002592: 4618 mov r0, r3 + 8002594: 2300 movs r3, #0 + 8002596: 2200 movs r2, #0 + 8002598: 2100 movs r1, #0 + 800259a: f000 fb33 bl 8002c04 + setLED(lookupLED(6,0), 0x00, 0x00, 0x00); + 800259e: 2100 movs r1, #0 + 80025a0: 2006 movs r0, #6 + 80025a2: f000 f9bf bl 8002924 + 80025a6: 4603 mov r3, r0 + 80025a8: 4618 mov r0, r3 + 80025aa: 2300 movs r3, #0 + 80025ac: 2200 movs r2, #0 + 80025ae: 2100 movs r1, #0 + 80025b0: f000 fb28 bl 8002c04 + setLED(lookupLED(6,1), 0x00, 0x00, currentSoundLevel * 0.5); + 80025b4: 2101 movs r1, #1 + 80025b6: 2006 movs r0, #6 + 80025b8: f000 f9b4 bl 8002924 + 80025bc: 4603 mov r3, r0 + 80025be: 461d mov r5, r3 + 80025c0: e00a b.n 80025d8 + 80025c2: bf00 nop + 80025c4: f3af 8000 nop.w + 80025c8: 00000000 .word 0x00000000 + 80025cc: 405fc000 .word 0x405fc000 + 80025d0: 3fe00000 .word 0x3fe00000 + 80025d4: 3fd00000 .word 0x3fd00000 + 80025d8: 79fb ldrb r3, [r7, #7] + 80025da: 4618 mov r0, r3 + 80025dc: f7fd ff5a bl 8000494 <__aeabi_i2d> + 80025e0: f04f 0200 mov.w r2, #0 + 80025e4: 4b8c ldr r3, [pc, #560] ; (8002818 ) + 80025e6: f7fd ffbf bl 8000568 <__aeabi_dmul> + 80025ea: 4603 mov r3, r0 + 80025ec: 460c mov r4, r1 + 80025ee: 4618 mov r0, r3 + 80025f0: 4621 mov r1, r4 + 80025f2: f7fe f9cb bl 800098c <__aeabi_d2uiz> + 80025f6: 4603 mov r3, r0 + 80025f8: b2db uxtb r3, r3 + 80025fa: 2200 movs r2, #0 + 80025fc: 2100 movs r1, #0 + 80025fe: 4628 mov r0, r5 + 8002600: f000 fb00 bl 8002c04 + setLED(lookupLED(6,2), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); + 8002604: 2102 movs r1, #2 + 8002606: 2006 movs r0, #6 + 8002608: f000 f98c bl 8002924 + 800260c: 4603 mov r3, r0 + 800260e: 461d mov r5, r3 + 8002610: 79fb ldrb r3, [r7, #7] + 8002612: 4618 mov r0, r3 + 8002614: f7fd ff3e bl 8000494 <__aeabi_i2d> + 8002618: f04f 0200 mov.w r2, #0 + 800261c: 4b7e ldr r3, [pc, #504] ; (8002818 ) + 800261e: f7fd ffa3 bl 8000568 <__aeabi_dmul> + 8002622: 4603 mov r3, r0 + 8002624: 460c mov r4, r1 + 8002626: 4618 mov r0, r3 + 8002628: 4621 mov r1, r4 + 800262a: a379 add r3, pc, #484 ; (adr r3, 8002810 ) + 800262c: e9d3 2300 ldrd r2, r3, [r3] + 8002630: f7fd fde4 bl 80001fc <__adddf3> + 8002634: 4603 mov r3, r0 + 8002636: 460c mov r4, r1 + 8002638: 4618 mov r0, r3 + 800263a: 4621 mov r1, r4 + 800263c: f7fe f9a6 bl 800098c <__aeabi_d2uiz> + 8002640: 4603 mov r3, r0 + 8002642: b2db uxtb r3, r3 + 8002644: 2200 movs r2, #0 + 8002646: 2100 movs r1, #0 + 8002648: 4628 mov r0, r5 + 800264a: f000 fadb bl 8002c04 + setLED(lookupLED(6,3), 0x00, 0x00, currentSoundLevel); + 800264e: 2103 movs r1, #3 + 8002650: 2006 movs r0, #6 + 8002652: f000 f967 bl 8002924 + 8002656: 4603 mov r3, r0 + 8002658: 4618 mov r0, r3 + 800265a: 79fb ldrb r3, [r7, #7] + 800265c: 2200 movs r2, #0 + 800265e: 2100 movs r1, #0 + 8002660: f000 fad0 bl 8002c04 + setLED(lookupLED(6,4), 0x00, 0x00, currentSoundLevel); + 8002664: 2104 movs r1, #4 + 8002666: 2006 movs r0, #6 + 8002668: f000 f95c bl 8002924 + 800266c: 4603 mov r3, r0 + 800266e: 4618 mov r0, r3 + 8002670: 79fb ldrb r3, [r7, #7] + 8002672: 2200 movs r2, #0 + 8002674: 2100 movs r1, #0 + 8002676: f000 fac5 bl 8002c04 + setLED(lookupLED(6,5), 0x00, 0x00, currentSoundLevel * 0.5); + 800267a: 2105 movs r1, #5 + 800267c: 2006 movs r0, #6 + 800267e: f000 f951 bl 8002924 + 8002682: 4603 mov r3, r0 + 8002684: 461d mov r5, r3 + 8002686: 79fb ldrb r3, [r7, #7] + 8002688: 4618 mov r0, r3 + 800268a: f7fd ff03 bl 8000494 <__aeabi_i2d> + 800268e: f04f 0200 mov.w r2, #0 + 8002692: 4b61 ldr r3, [pc, #388] ; (8002818 ) + 8002694: f7fd ff68 bl 8000568 <__aeabi_dmul> + 8002698: 4603 mov r3, r0 + 800269a: 460c mov r4, r1 + 800269c: 4618 mov r0, r3 + 800269e: 4621 mov r1, r4 + 80026a0: f7fe f974 bl 800098c <__aeabi_d2uiz> + 80026a4: 4603 mov r3, r0 + 80026a6: b2db uxtb r3, r3 + 80026a8: 2200 movs r2, #0 + 80026aa: 2100 movs r1, #0 + 80026ac: 4628 mov r0, r5 + 80026ae: f000 faa9 bl 8002c04 + setLED(lookupLED(6,6), 0x00, 0x00, 0x00); + 80026b2: 2106 movs r1, #6 + 80026b4: 2006 movs r0, #6 + 80026b6: f000 f935 bl 8002924 + 80026ba: 4603 mov r3, r0 + 80026bc: 4618 mov r0, r3 + 80026be: 2300 movs r3, #0 + 80026c0: 2200 movs r2, #0 + 80026c2: 2100 movs r1, #0 + 80026c4: f000 fa9e bl 8002c04 + setLED(lookupLED(6,7), 0x00, 0x00, 0x00); + 80026c8: 2107 movs r1, #7 + 80026ca: 2006 movs r0, #6 + 80026cc: f000 f92a bl 8002924 + 80026d0: 4603 mov r3, r0 + 80026d2: 4618 mov r0, r3 + 80026d4: 2300 movs r3, #0 + 80026d6: 2200 movs r2, #0 + 80026d8: 2100 movs r1, #0 + 80026da: f000 fa93 bl 8002c04 + setLED(lookupLED(7,0), 0x00, 0x00, 0x00); + 80026de: 2100 movs r1, #0 + 80026e0: 2007 movs r0, #7 + 80026e2: f000 f91f bl 8002924 + 80026e6: 4603 mov r3, r0 + 80026e8: 4618 mov r0, r3 + 80026ea: 2300 movs r3, #0 + 80026ec: 2200 movs r2, #0 + 80026ee: 2100 movs r1, #0 + 80026f0: f000 fa88 bl 8002c04 + setLED(lookupLED(7,1), 0x00, 0x00, 0x00); + 80026f4: 2101 movs r1, #1 + 80026f6: 2007 movs r0, #7 + 80026f8: f000 f914 bl 8002924 + 80026fc: 4603 mov r3, r0 + 80026fe: 4618 mov r0, r3 + 8002700: 2300 movs r3, #0 + 8002702: 2200 movs r2, #0 + 8002704: 2100 movs r1, #0 + 8002706: f000 fa7d bl 8002c04 + setLED(lookupLED(7,2), 0x00, 0x00, currentSoundLevel * 0.25); + 800270a: 2102 movs r1, #2 + 800270c: 2007 movs r0, #7 + 800270e: f000 f909 bl 8002924 + 8002712: 4603 mov r3, r0 + 8002714: 461d mov r5, r3 + 8002716: 79fb ldrb r3, [r7, #7] + 8002718: 4618 mov r0, r3 + 800271a: f7fd febb bl 8000494 <__aeabi_i2d> + 800271e: f04f 0200 mov.w r2, #0 + 8002722: 4b3e ldr r3, [pc, #248] ; (800281c ) + 8002724: f7fd ff20 bl 8000568 <__aeabi_dmul> + 8002728: 4603 mov r3, r0 + 800272a: 460c mov r4, r1 + 800272c: 4618 mov r0, r3 + 800272e: 4621 mov r1, r4 + 8002730: f7fe f92c bl 800098c <__aeabi_d2uiz> + 8002734: 4603 mov r3, r0 + 8002736: b2db uxtb r3, r3 + 8002738: 2200 movs r2, #0 + 800273a: 2100 movs r1, #0 + 800273c: 4628 mov r0, r5 + 800273e: f000 fa61 bl 8002c04 setLED(lookupLED(7,3), 0x00, 0x00, 0x7F + (currentSoundLevel * 0.5)); - 80021b2: 2103 movs r1, #3 - 80021b4: 2007 movs r0, #7 - 80021b6: f000 f8ed bl 8002394 - 80021ba: 4603 mov r3, r0 - 80021bc: 461d mov r5, r3 - 80021be: 79fb ldrb r3, [r7, #7] - 80021c0: 4618 mov r0, r3 - 80021c2: f7fe f967 bl 8000494 <__aeabi_i2d> - 80021c6: f04f 0200 mov.w r2, #0 - 80021ca: 4b2f ldr r3, [pc, #188] ; (8002288 ) - 80021cc: f7fe f9cc bl 8000568 <__aeabi_dmul> - 80021d0: 4603 mov r3, r0 - 80021d2: 460c mov r4, r1 - 80021d4: 4618 mov r0, r3 - 80021d6: 4621 mov r1, r4 - 80021d8: a329 add r3, pc, #164 ; (adr r3, 8002280 ) - 80021da: e9d3 2300 ldrd r2, r3, [r3] - 80021de: f7fe f80d bl 80001fc <__adddf3> - 80021e2: 4603 mov r3, r0 - 80021e4: 460c mov r4, r1 - 80021e6: 4618 mov r0, r3 - 80021e8: 4621 mov r1, r4 - 80021ea: f7fe fbcf bl 800098c <__aeabi_d2uiz> - 80021ee: 4603 mov r3, r0 - 80021f0: b2db uxtb r3, r3 - 80021f2: 2200 movs r2, #0 - 80021f4: 2100 movs r1, #0 - 80021f6: 4628 mov r0, r5 - 80021f8: f000 fa3c bl 8002674 + 8002742: 2103 movs r1, #3 + 8002744: 2007 movs r0, #7 + 8002746: f000 f8ed bl 8002924 + 800274a: 4603 mov r3, r0 + 800274c: 461d mov r5, r3 + 800274e: 79fb ldrb r3, [r7, #7] + 8002750: 4618 mov r0, r3 + 8002752: f7fd fe9f bl 8000494 <__aeabi_i2d> + 8002756: f04f 0200 mov.w r2, #0 + 800275a: 4b2f ldr r3, [pc, #188] ; (8002818 ) + 800275c: f7fd ff04 bl 8000568 <__aeabi_dmul> + 8002760: 4603 mov r3, r0 + 8002762: 460c mov r4, r1 + 8002764: 4618 mov r0, r3 + 8002766: 4621 mov r1, r4 + 8002768: a329 add r3, pc, #164 ; (adr r3, 8002810 ) + 800276a: e9d3 2300 ldrd r2, r3, [r3] + 800276e: f7fd fd45 bl 80001fc <__adddf3> + 8002772: 4603 mov r3, r0 + 8002774: 460c mov r4, r1 + 8002776: 4618 mov r0, r3 + 8002778: 4621 mov r1, r4 + 800277a: f7fe f907 bl 800098c <__aeabi_d2uiz> + 800277e: 4603 mov r3, r0 + 8002780: b2db uxtb r3, r3 + 8002782: 2200 movs r2, #0 + 8002784: 2100 movs r1, #0 + 8002786: 4628 mov r0, r5 + 8002788: f000 fa3c bl 8002c04 setLED(lookupLED(7,4), 0x00, 0x00, currentSoundLevel * 0.25); - 80021fc: 2104 movs r1, #4 - 80021fe: 2007 movs r0, #7 - 8002200: f000 f8c8 bl 8002394 - 8002204: 4603 mov r3, r0 - 8002206: 461d mov r5, r3 - 8002208: 79fb ldrb r3, [r7, #7] - 800220a: 4618 mov r0, r3 - 800220c: f7fe f942 bl 8000494 <__aeabi_i2d> - 8002210: f04f 0200 mov.w r2, #0 - 8002214: 4b1d ldr r3, [pc, #116] ; (800228c ) - 8002216: f7fe f9a7 bl 8000568 <__aeabi_dmul> - 800221a: 4603 mov r3, r0 - 800221c: 460c mov r4, r1 - 800221e: 4618 mov r0, r3 - 8002220: 4621 mov r1, r4 - 8002222: f7fe fbb3 bl 800098c <__aeabi_d2uiz> - 8002226: 4603 mov r3, r0 - 8002228: b2db uxtb r3, r3 - 800222a: 2200 movs r2, #0 - 800222c: 2100 movs r1, #0 - 800222e: 4628 mov r0, r5 - 8002230: f000 fa20 bl 8002674 + 800278c: 2104 movs r1, #4 + 800278e: 2007 movs r0, #7 + 8002790: f000 f8c8 bl 8002924 + 8002794: 4603 mov r3, r0 + 8002796: 461d mov r5, r3 + 8002798: 79fb ldrb r3, [r7, #7] + 800279a: 4618 mov r0, r3 + 800279c: f7fd fe7a bl 8000494 <__aeabi_i2d> + 80027a0: f04f 0200 mov.w r2, #0 + 80027a4: 4b1d ldr r3, [pc, #116] ; (800281c ) + 80027a6: f7fd fedf bl 8000568 <__aeabi_dmul> + 80027aa: 4603 mov r3, r0 + 80027ac: 460c mov r4, r1 + 80027ae: 4618 mov r0, r3 + 80027b0: 4621 mov r1, r4 + 80027b2: f7fe f8eb bl 800098c <__aeabi_d2uiz> + 80027b6: 4603 mov r3, r0 + 80027b8: b2db uxtb r3, r3 + 80027ba: 2200 movs r2, #0 + 80027bc: 2100 movs r1, #0 + 80027be: 4628 mov r0, r5 + 80027c0: f000 fa20 bl 8002c04 setLED(lookupLED(7,5), 0x00, 0x00, 0x00); - 8002234: 2105 movs r1, #5 - 8002236: 2007 movs r0, #7 - 8002238: f000 f8ac bl 8002394 - 800223c: 4603 mov r3, r0 - 800223e: 4618 mov r0, r3 - 8002240: 2300 movs r3, #0 - 8002242: 2200 movs r2, #0 - 8002244: 2100 movs r1, #0 - 8002246: f000 fa15 bl 8002674 + 80027c4: 2105 movs r1, #5 + 80027c6: 2007 movs r0, #7 + 80027c8: f000 f8ac bl 8002924 + 80027cc: 4603 mov r3, r0 + 80027ce: 4618 mov r0, r3 + 80027d0: 2300 movs r3, #0 + 80027d2: 2200 movs r2, #0 + 80027d4: 2100 movs r1, #0 + 80027d6: f000 fa15 bl 8002c04 setLED(lookupLED(7,6), 0x00, 0x00, 0x00); - 800224a: 2106 movs r1, #6 - 800224c: 2007 movs r0, #7 - 800224e: f000 f8a1 bl 8002394 - 8002252: 4603 mov r3, r0 - 8002254: 4618 mov r0, r3 - 8002256: 2300 movs r3, #0 - 8002258: 2200 movs r2, #0 - 800225a: 2100 movs r1, #0 - 800225c: f000 fa0a bl 8002674 + 80027da: 2106 movs r1, #6 + 80027dc: 2007 movs r0, #7 + 80027de: f000 f8a1 bl 8002924 + 80027e2: 4603 mov r3, r0 + 80027e4: 4618 mov r0, r3 + 80027e6: 2300 movs r3, #0 + 80027e8: 2200 movs r2, #0 + 80027ea: 2100 movs r1, #0 + 80027ec: f000 fa0a bl 8002c04 setLED(lookupLED(7,7), 0x00, 0x00, 0x00); - 8002260: 2107 movs r1, #7 - 8002262: 2007 movs r0, #7 - 8002264: f000 f896 bl 8002394 - 8002268: 4603 mov r3, r0 - 800226a: 4618 mov r0, r3 - 800226c: 2300 movs r3, #0 - 800226e: 2200 movs r2, #0 - 8002270: 2100 movs r1, #0 - 8002272: f000 f9ff bl 8002674 + 80027f0: 2107 movs r1, #7 + 80027f2: 2007 movs r0, #7 + 80027f4: f000 f896 bl 8002924 + 80027f8: 4603 mov r3, r0 + 80027fa: 4618 mov r0, r3 + 80027fc: 2300 movs r3, #0 + 80027fe: 2200 movs r2, #0 + 8002800: 2100 movs r1, #0 + 8002802: f000 f9ff bl 8002c04 } - 8002276: bf00 nop - 8002278: 3708 adds r7, #8 - 800227a: 46bd mov sp, r7 - 800227c: bdb0 pop {r4, r5, r7, pc} - 800227e: bf00 nop - 8002280: 00000000 .word 0x00000000 - 8002284: 405fc000 .word 0x405fc000 - 8002288: 3fe00000 .word 0x3fe00000 - 800228c: 3fd00000 .word 0x3fd00000 + 8002806: bf00 nop + 8002808: 3708 adds r7, #8 + 800280a: 46bd mov sp, r7 + 800280c: bdb0 pop {r4, r5, r7, pc} + 800280e: bf00 nop + 8002810: 00000000 .word 0x00000000 + 8002814: 405fc000 .word 0x405fc000 + 8002818: 3fe00000 .word 0x3fe00000 + 800281c: 3fd00000 .word 0x3fd00000 -08002290 : +08002820 : void LEDDesign_SuperCrazy(void){ - 8002290: b580 push {r7, lr} - 8002292: b084 sub sp, #16 - 8002294: af00 add r7, sp, #0 + 8002820: b580 push {r7, lr} + 8002822: b084 sub sp, #16 + 8002824: af00 add r7, sp, #0 HAL_Delay(50); - 8002296: 2032 movs r0, #50 ; 0x32 - 8002298: f000 fe06 bl 8002ea8 + 8002826: 2032 movs r0, #50 ; 0x32 + 8002828: f000 fe00 bl 800342c uint8_t randomByte = (uint8_t) (0xFF * (((float) rand()) / RAND_MAX)); - 800229c: f002 ffce bl 800523c - 80022a0: ee07 0a90 vmov s15, r0 - 80022a4: eeb8 7ae7 vcvt.f32.s32 s14, s15 - 80022a8: eddf 6a37 vldr s13, [pc, #220] ; 8002388 - 80022ac: eec7 7a26 vdiv.f32 s15, s14, s13 - 80022b0: ed9f 7a36 vldr s14, [pc, #216] ; 800238c - 80022b4: ee67 7a87 vmul.f32 s15, s15, s14 - 80022b8: eefc 7ae7 vcvt.u32.f32 s15, s15 - 80022bc: edc7 7a01 vstr s15, [r7, #4] - 80022c0: 793b ldrb r3, [r7, #4] - 80022c2: 733b strb r3, [r7, #12] + 800282c: f002 ffc8 bl 80057c0 + 8002830: ee07 0a90 vmov s15, r0 + 8002834: eeb8 7ae7 vcvt.f32.s32 s14, s15 + 8002838: eddf 6a37 vldr s13, [pc, #220] ; 8002918 + 800283c: eec7 7a26 vdiv.f32 s15, s14, s13 + 8002840: ed9f 7a36 vldr s14, [pc, #216] ; 800291c + 8002844: ee67 7a87 vmul.f32 s15, s15, s14 + 8002848: eefc 7ae7 vcvt.u32.f32 s15, s15 + 800284c: edc7 7a01 vstr s15, [r7, #4] + 8002850: 793b ldrb r3, [r7, #4] + 8002852: 733b strb r3, [r7, #12] for(uint8_t i = 0; i < 64; ++i){ - 80022c4: 2300 movs r3, #0 - 80022c6: 73fb strb r3, [r7, #15] - 80022c8: e00a b.n 80022e0 + 8002854: 2300 movs r3, #0 + 8002856: 73fb strb r3, [r7, #15] + 8002858: e00a b.n 8002870 LEDData[i][0] = randomByte; - 80022ca: 7bfa ldrb r2, [r7, #15] - 80022cc: 4930 ldr r1, [pc, #192] ; (8002390 ) - 80022ce: 4613 mov r3, r2 - 80022d0: 005b lsls r3, r3, #1 - 80022d2: 4413 add r3, r2 - 80022d4: 440b add r3, r1 - 80022d6: 7b3a ldrb r2, [r7, #12] - 80022d8: 701a strb r2, [r3, #0] + 800285a: 7bfa ldrb r2, [r7, #15] + 800285c: 4930 ldr r1, [pc, #192] ; (8002920 ) + 800285e: 4613 mov r3, r2 + 8002860: 005b lsls r3, r3, #1 + 8002862: 4413 add r3, r2 + 8002864: 440b add r3, r1 + 8002866: 7b3a ldrb r2, [r7, #12] + 8002868: 701a strb r2, [r3, #0] for(uint8_t i = 0; i < 64; ++i){ - 80022da: 7bfb ldrb r3, [r7, #15] - 80022dc: 3301 adds r3, #1 - 80022de: 73fb strb r3, [r7, #15] - 80022e0: 7bfb ldrb r3, [r7, #15] - 80022e2: 2b3f cmp r3, #63 ; 0x3f - 80022e4: d9f1 bls.n 80022ca + 800286a: 7bfb ldrb r3, [r7, #15] + 800286c: 3301 adds r3, #1 + 800286e: 73fb strb r3, [r7, #15] + 8002870: 7bfb ldrb r3, [r7, #15] + 8002872: 2b3f cmp r3, #63 ; 0x3f + 8002874: d9f1 bls.n 800285a } randomByte = (uint8_t) (0xFF * (((float) rand()) / RAND_MAX)); - 80022e6: f002 ffa9 bl 800523c - 80022ea: ee07 0a90 vmov s15, r0 - 80022ee: eeb8 7ae7 vcvt.f32.s32 s14, s15 - 80022f2: eddf 6a25 vldr s13, [pc, #148] ; 8002388 - 80022f6: eec7 7a26 vdiv.f32 s15, s14, s13 - 80022fa: ed9f 7a24 vldr s14, [pc, #144] ; 800238c - 80022fe: ee67 7a87 vmul.f32 s15, s15, s14 - 8002302: eefc 7ae7 vcvt.u32.f32 s15, s15 - 8002306: edc7 7a01 vstr s15, [r7, #4] - 800230a: 793b ldrb r3, [r7, #4] - 800230c: 733b strb r3, [r7, #12] + 8002876: f002 ffa3 bl 80057c0 + 800287a: ee07 0a90 vmov s15, r0 + 800287e: eeb8 7ae7 vcvt.f32.s32 s14, s15 + 8002882: eddf 6a25 vldr s13, [pc, #148] ; 8002918 + 8002886: eec7 7a26 vdiv.f32 s15, s14, s13 + 800288a: ed9f 7a24 vldr s14, [pc, #144] ; 800291c + 800288e: ee67 7a87 vmul.f32 s15, s15, s14 + 8002892: eefc 7ae7 vcvt.u32.f32 s15, s15 + 8002896: edc7 7a01 vstr s15, [r7, #4] + 800289a: 793b ldrb r3, [r7, #4] + 800289c: 733b strb r3, [r7, #12] for(uint8_t i = 0; i < 64; ++i){ - 800230e: 2300 movs r3, #0 - 8002310: 73bb strb r3, [r7, #14] - 8002312: e00b b.n 800232c + 800289e: 2300 movs r3, #0 + 80028a0: 73bb strb r3, [r7, #14] + 80028a2: e00b b.n 80028bc LEDData[i][1] = randomByte; - 8002314: 7bba ldrb r2, [r7, #14] - 8002316: 491e ldr r1, [pc, #120] ; (8002390 ) - 8002318: 4613 mov r3, r2 - 800231a: 005b lsls r3, r3, #1 - 800231c: 4413 add r3, r2 - 800231e: 440b add r3, r1 - 8002320: 3301 adds r3, #1 - 8002322: 7b3a ldrb r2, [r7, #12] - 8002324: 701a strb r2, [r3, #0] + 80028a4: 7bba ldrb r2, [r7, #14] + 80028a6: 491e ldr r1, [pc, #120] ; (8002920 ) + 80028a8: 4613 mov r3, r2 + 80028aa: 005b lsls r3, r3, #1 + 80028ac: 4413 add r3, r2 + 80028ae: 440b add r3, r1 + 80028b0: 3301 adds r3, #1 + 80028b2: 7b3a ldrb r2, [r7, #12] + 80028b4: 701a strb r2, [r3, #0] for(uint8_t i = 0; i < 64; ++i){ - 8002326: 7bbb ldrb r3, [r7, #14] - 8002328: 3301 adds r3, #1 - 800232a: 73bb strb r3, [r7, #14] - 800232c: 7bbb ldrb r3, [r7, #14] - 800232e: 2b3f cmp r3, #63 ; 0x3f - 8002330: d9f0 bls.n 8002314 + 80028b6: 7bbb ldrb r3, [r7, #14] + 80028b8: 3301 adds r3, #1 + 80028ba: 73bb strb r3, [r7, #14] + 80028bc: 7bbb ldrb r3, [r7, #14] + 80028be: 2b3f cmp r3, #63 ; 0x3f + 80028c0: d9f0 bls.n 80028a4 } randomByte = (uint8_t) (0xFF * (((float) rand()) / RAND_MAX)); - 8002332: f002 ff83 bl 800523c - 8002336: ee07 0a90 vmov s15, r0 - 800233a: eeb8 7ae7 vcvt.f32.s32 s14, s15 - 800233e: eddf 6a12 vldr s13, [pc, #72] ; 8002388 - 8002342: eec7 7a26 vdiv.f32 s15, s14, s13 - 8002346: ed9f 7a11 vldr s14, [pc, #68] ; 800238c - 800234a: ee67 7a87 vmul.f32 s15, s15, s14 - 800234e: eefc 7ae7 vcvt.u32.f32 s15, s15 - 8002352: edc7 7a01 vstr s15, [r7, #4] - 8002356: 793b ldrb r3, [r7, #4] - 8002358: 733b strb r3, [r7, #12] + 80028c2: f002 ff7d bl 80057c0 + 80028c6: ee07 0a90 vmov s15, r0 + 80028ca: eeb8 7ae7 vcvt.f32.s32 s14, s15 + 80028ce: eddf 6a12 vldr s13, [pc, #72] ; 8002918 + 80028d2: eec7 7a26 vdiv.f32 s15, s14, s13 + 80028d6: ed9f 7a11 vldr s14, [pc, #68] ; 800291c + 80028da: ee67 7a87 vmul.f32 s15, s15, s14 + 80028de: eefc 7ae7 vcvt.u32.f32 s15, s15 + 80028e2: edc7 7a01 vstr s15, [r7, #4] + 80028e6: 793b ldrb r3, [r7, #4] + 80028e8: 733b strb r3, [r7, #12] for(uint8_t i = 0; i < 64; ++i){ - 800235a: 2300 movs r3, #0 - 800235c: 737b strb r3, [r7, #13] - 800235e: e00b b.n 8002378 + 80028ea: 2300 movs r3, #0 + 80028ec: 737b strb r3, [r7, #13] + 80028ee: e00b b.n 8002908 LEDData[i][2] = randomByte; - 8002360: 7b7a ldrb r2, [r7, #13] - 8002362: 490b ldr r1, [pc, #44] ; (8002390 ) - 8002364: 4613 mov r3, r2 - 8002366: 005b lsls r3, r3, #1 - 8002368: 4413 add r3, r2 - 800236a: 440b add r3, r1 - 800236c: 3302 adds r3, #2 - 800236e: 7b3a ldrb r2, [r7, #12] - 8002370: 701a strb r2, [r3, #0] + 80028f0: 7b7a ldrb r2, [r7, #13] + 80028f2: 490b ldr r1, [pc, #44] ; (8002920 ) + 80028f4: 4613 mov r3, r2 + 80028f6: 005b lsls r3, r3, #1 + 80028f8: 4413 add r3, r2 + 80028fa: 440b add r3, r1 + 80028fc: 3302 adds r3, #2 + 80028fe: 7b3a ldrb r2, [r7, #12] + 8002900: 701a strb r2, [r3, #0] for(uint8_t i = 0; i < 64; ++i){ - 8002372: 7b7b ldrb r3, [r7, #13] - 8002374: 3301 adds r3, #1 - 8002376: 737b strb r3, [r7, #13] - 8002378: 7b7b ldrb r3, [r7, #13] - 800237a: 2b3f cmp r3, #63 ; 0x3f - 800237c: d9f0 bls.n 8002360 + 8002902: 7b7b ldrb r3, [r7, #13] + 8002904: 3301 adds r3, #1 + 8002906: 737b strb r3, [r7, #13] + 8002908: 7b7b ldrb r3, [r7, #13] + 800290a: 2b3f cmp r3, #63 ; 0x3f + 800290c: d9f0 bls.n 80028f0 } } - 800237e: bf00 nop - 8002380: 3710 adds r7, #16 - 8002382: 46bd mov sp, r7 - 8002384: bd80 pop {r7, pc} - 8002386: bf00 nop - 8002388: 4f000000 .word 0x4f000000 - 800238c: 437f0000 .word 0x437f0000 - 8002390: 20000094 .word 0x20000094 + 800290e: bf00 nop + 8002910: 3710 adds r7, #16 + 8002912: 46bd mov sp, r7 + 8002914: bd80 pop {r7, pc} + 8002916: bf00 nop + 8002918: 4f000000 .word 0x4f000000 + 800291c: 437f0000 .word 0x437f0000 + 8002920: 20000094 .word 0x20000094 -08002394 : +08002924 : uint8_t lookupLED(uint8_t column, uint8_t row){ - 8002394: b480 push {r7} - 8002396: b083 sub sp, #12 - 8002398: af00 add r7, sp, #0 - 800239a: 4603 mov r3, r0 - 800239c: 460a mov r2, r1 - 800239e: 71fb strb r3, [r7, #7] - 80023a0: 4613 mov r3, r2 - 80023a2: 71bb strb r3, [r7, #6] + 8002924: b480 push {r7} + 8002926: b083 sub sp, #12 + 8002928: af00 add r7, sp, #0 + 800292a: 4603 mov r3, r0 + 800292c: 460a mov r2, r1 + 800292e: 71fb strb r3, [r7, #7] + 8002930: 4613 mov r3, r2 + 8002932: 71bb strb r3, [r7, #6] switch(column){ - 80023a4: 79fb ldrb r3, [r7, #7] - 80023a6: 2b07 cmp r3, #7 - 80023a8: f200 815d bhi.w 8002666 - 80023ac: a201 add r2, pc, #4 ; (adr r2, 80023b4 ) - 80023ae: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 80023b2: bf00 nop - 80023b4: 080023d5 .word 0x080023d5 - 80023b8: 08002425 .word 0x08002425 - 80023bc: 08002475 .word 0x08002475 - 80023c0: 080024c5 .word 0x080024c5 - 80023c4: 08002515 .word 0x08002515 - 80023c8: 08002565 .word 0x08002565 - 80023cc: 080025b1 .word 0x080025b1 - 80023d0: 080025fd .word 0x080025fd + 8002934: 79fb ldrb r3, [r7, #7] + 8002936: 2b07 cmp r3, #7 + 8002938: f200 815d bhi.w 8002bf6 + 800293c: a201 add r2, pc, #4 ; (adr r2, 8002944 ) + 800293e: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8002942: bf00 nop + 8002944: 08002965 .word 0x08002965 + 8002948: 080029b5 .word 0x080029b5 + 800294c: 08002a05 .word 0x08002a05 + 8002950: 08002a55 .word 0x08002a55 + 8002954: 08002aa5 .word 0x08002aa5 + 8002958: 08002af5 .word 0x08002af5 + 800295c: 08002b41 .word 0x08002b41 + 8002960: 08002b8d .word 0x08002b8d case 0: switch(row){ - 80023d4: 79bb ldrb r3, [r7, #6] - 80023d6: 2b07 cmp r3, #7 - 80023d8: f200 8136 bhi.w 8002648 - 80023dc: a201 add r2, pc, #4 ; (adr r2, 80023e4 ) - 80023de: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 80023e2: bf00 nop - 80023e4: 08002405 .word 0x08002405 - 80023e8: 08002409 .word 0x08002409 - 80023ec: 0800240d .word 0x0800240d - 80023f0: 08002411 .word 0x08002411 - 80023f4: 08002415 .word 0x08002415 - 80023f8: 08002419 .word 0x08002419 - 80023fc: 0800241d .word 0x0800241d - 8002400: 08002421 .word 0x08002421 + 8002964: 79bb ldrb r3, [r7, #6] + 8002966: 2b07 cmp r3, #7 + 8002968: f200 8136 bhi.w 8002bd8 + 800296c: a201 add r2, pc, #4 ; (adr r2, 8002974 ) + 800296e: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8002972: bf00 nop + 8002974: 08002995 .word 0x08002995 + 8002978: 08002999 .word 0x08002999 + 800297c: 0800299d .word 0x0800299d + 8002980: 080029a1 .word 0x080029a1 + 8002984: 080029a5 .word 0x080029a5 + 8002988: 080029a9 .word 0x080029a9 + 800298c: 080029ad .word 0x080029ad + 8002990: 080029b1 .word 0x080029b1 case 0: return 0; - 8002404: 2300 movs r3, #0 - 8002406: e12f b.n 8002668 + 8002994: 2300 movs r3, #0 + 8002996: e12f b.n 8002bf8 break; case 1: return 15; - 8002408: 230f movs r3, #15 - 800240a: e12d b.n 8002668 + 8002998: 230f movs r3, #15 + 800299a: e12d b.n 8002bf8 break; case 2: return 16; - 800240c: 2310 movs r3, #16 - 800240e: e12b b.n 8002668 + 800299c: 2310 movs r3, #16 + 800299e: e12b b.n 8002bf8 break; case 3: return 31; - 8002410: 231f movs r3, #31 - 8002412: e129 b.n 8002668 + 80029a0: 231f movs r3, #31 + 80029a2: e129 b.n 8002bf8 break; case 4: return 32; - 8002414: 2320 movs r3, #32 - 8002416: e127 b.n 8002668 + 80029a4: 2320 movs r3, #32 + 80029a6: e127 b.n 8002bf8 break; case 5: return 47; - 8002418: 232f movs r3, #47 ; 0x2f - 800241a: e125 b.n 8002668 + 80029a8: 232f movs r3, #47 ; 0x2f + 80029aa: e125 b.n 8002bf8 break; case 6: return 48; - 800241c: 2330 movs r3, #48 ; 0x30 - 800241e: e123 b.n 8002668 + 80029ac: 2330 movs r3, #48 ; 0x30 + 80029ae: e123 b.n 8002bf8 break; case 7: return 63; - 8002420: 233f movs r3, #63 ; 0x3f - 8002422: e121 b.n 8002668 + 80029b0: 233f movs r3, #63 ; 0x3f + 80029b2: e121 b.n 8002bf8 break; } break; case 1: switch(row){ - 8002424: 79bb ldrb r3, [r7, #6] - 8002426: 2b07 cmp r3, #7 - 8002428: f200 8110 bhi.w 800264c - 800242c: a201 add r2, pc, #4 ; (adr r2, 8002434 ) - 800242e: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8002432: bf00 nop - 8002434: 08002455 .word 0x08002455 - 8002438: 08002459 .word 0x08002459 - 800243c: 0800245d .word 0x0800245d - 8002440: 08002461 .word 0x08002461 - 8002444: 08002465 .word 0x08002465 - 8002448: 08002469 .word 0x08002469 - 800244c: 0800246d .word 0x0800246d - 8002450: 08002471 .word 0x08002471 + 80029b4: 79bb ldrb r3, [r7, #6] + 80029b6: 2b07 cmp r3, #7 + 80029b8: f200 8110 bhi.w 8002bdc + 80029bc: a201 add r2, pc, #4 ; (adr r2, 80029c4 ) + 80029be: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 80029c2: bf00 nop + 80029c4: 080029e5 .word 0x080029e5 + 80029c8: 080029e9 .word 0x080029e9 + 80029cc: 080029ed .word 0x080029ed + 80029d0: 080029f1 .word 0x080029f1 + 80029d4: 080029f5 .word 0x080029f5 + 80029d8: 080029f9 .word 0x080029f9 + 80029dc: 080029fd .word 0x080029fd + 80029e0: 08002a01 .word 0x08002a01 case 0: return 1; - 8002454: 2301 movs r3, #1 - 8002456: e107 b.n 8002668 + 80029e4: 2301 movs r3, #1 + 80029e6: e107 b.n 8002bf8 break; case 1: return 14; - 8002458: 230e movs r3, #14 - 800245a: e105 b.n 8002668 + 80029e8: 230e movs r3, #14 + 80029ea: e105 b.n 8002bf8 break; case 2: return 17; - 800245c: 2311 movs r3, #17 - 800245e: e103 b.n 8002668 + 80029ec: 2311 movs r3, #17 + 80029ee: e103 b.n 8002bf8 break; case 3: return 30; - 8002460: 231e movs r3, #30 - 8002462: e101 b.n 8002668 + 80029f0: 231e movs r3, #30 + 80029f2: e101 b.n 8002bf8 break; case 4: return 33; - 8002464: 2321 movs r3, #33 ; 0x21 - 8002466: e0ff b.n 8002668 + 80029f4: 2321 movs r3, #33 ; 0x21 + 80029f6: e0ff b.n 8002bf8 break; case 5: return 46; - 8002468: 232e movs r3, #46 ; 0x2e - 800246a: e0fd b.n 8002668 + 80029f8: 232e movs r3, #46 ; 0x2e + 80029fa: e0fd b.n 8002bf8 break; case 6: return 49; - 800246c: 2331 movs r3, #49 ; 0x31 - 800246e: e0fb b.n 8002668 + 80029fc: 2331 movs r3, #49 ; 0x31 + 80029fe: e0fb b.n 8002bf8 break; case 7: return 62; - 8002470: 233e movs r3, #62 ; 0x3e - 8002472: e0f9 b.n 8002668 + 8002a00: 233e movs r3, #62 ; 0x3e + 8002a02: e0f9 b.n 8002bf8 break; } break; case 2: switch(row){ - 8002474: 79bb ldrb r3, [r7, #6] - 8002476: 2b07 cmp r3, #7 - 8002478: f200 80ea bhi.w 8002650 - 800247c: a201 add r2, pc, #4 ; (adr r2, 8002484 ) - 800247e: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8002482: bf00 nop - 8002484: 080024a5 .word 0x080024a5 - 8002488: 080024a9 .word 0x080024a9 - 800248c: 080024ad .word 0x080024ad - 8002490: 080024b1 .word 0x080024b1 - 8002494: 080024b5 .word 0x080024b5 - 8002498: 080024b9 .word 0x080024b9 - 800249c: 080024bd .word 0x080024bd - 80024a0: 080024c1 .word 0x080024c1 + 8002a04: 79bb ldrb r3, [r7, #6] + 8002a06: 2b07 cmp r3, #7 + 8002a08: f200 80ea bhi.w 8002be0 + 8002a0c: a201 add r2, pc, #4 ; (adr r2, 8002a14 ) + 8002a0e: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8002a12: bf00 nop + 8002a14: 08002a35 .word 0x08002a35 + 8002a18: 08002a39 .word 0x08002a39 + 8002a1c: 08002a3d .word 0x08002a3d + 8002a20: 08002a41 .word 0x08002a41 + 8002a24: 08002a45 .word 0x08002a45 + 8002a28: 08002a49 .word 0x08002a49 + 8002a2c: 08002a4d .word 0x08002a4d + 8002a30: 08002a51 .word 0x08002a51 case 0: return 2; - 80024a4: 2302 movs r3, #2 - 80024a6: e0df b.n 8002668 + 8002a34: 2302 movs r3, #2 + 8002a36: e0df b.n 8002bf8 break; case 1: return 13; - 80024a8: 230d movs r3, #13 - 80024aa: e0dd b.n 8002668 + 8002a38: 230d movs r3, #13 + 8002a3a: e0dd b.n 8002bf8 break; case 2: return 18; - 80024ac: 2312 movs r3, #18 - 80024ae: e0db b.n 8002668 + 8002a3c: 2312 movs r3, #18 + 8002a3e: e0db b.n 8002bf8 break; case 3: return 29; - 80024b0: 231d movs r3, #29 - 80024b2: e0d9 b.n 8002668 + 8002a40: 231d movs r3, #29 + 8002a42: e0d9 b.n 8002bf8 break; case 4: return 34; - 80024b4: 2322 movs r3, #34 ; 0x22 - 80024b6: e0d7 b.n 8002668 + 8002a44: 2322 movs r3, #34 ; 0x22 + 8002a46: e0d7 b.n 8002bf8 break; case 5: return 45; - 80024b8: 232d movs r3, #45 ; 0x2d - 80024ba: e0d5 b.n 8002668 + 8002a48: 232d movs r3, #45 ; 0x2d + 8002a4a: e0d5 b.n 8002bf8 break; case 6: return 50; - 80024bc: 2332 movs r3, #50 ; 0x32 - 80024be: e0d3 b.n 8002668 + 8002a4c: 2332 movs r3, #50 ; 0x32 + 8002a4e: e0d3 b.n 8002bf8 break; case 7: return 61; - 80024c0: 233d movs r3, #61 ; 0x3d - 80024c2: e0d1 b.n 8002668 + 8002a50: 233d movs r3, #61 ; 0x3d + 8002a52: e0d1 b.n 8002bf8 break; } break; case 3: switch(row){ - 80024c4: 79bb ldrb r3, [r7, #6] - 80024c6: 2b07 cmp r3, #7 - 80024c8: f200 80c4 bhi.w 8002654 - 80024cc: a201 add r2, pc, #4 ; (adr r2, 80024d4 ) - 80024ce: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 80024d2: bf00 nop - 80024d4: 080024f5 .word 0x080024f5 - 80024d8: 080024f9 .word 0x080024f9 - 80024dc: 080024fd .word 0x080024fd - 80024e0: 08002501 .word 0x08002501 - 80024e4: 08002505 .word 0x08002505 - 80024e8: 08002509 .word 0x08002509 - 80024ec: 0800250d .word 0x0800250d - 80024f0: 08002511 .word 0x08002511 + 8002a54: 79bb ldrb r3, [r7, #6] + 8002a56: 2b07 cmp r3, #7 + 8002a58: f200 80c4 bhi.w 8002be4 + 8002a5c: a201 add r2, pc, #4 ; (adr r2, 8002a64 ) + 8002a5e: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8002a62: bf00 nop + 8002a64: 08002a85 .word 0x08002a85 + 8002a68: 08002a89 .word 0x08002a89 + 8002a6c: 08002a8d .word 0x08002a8d + 8002a70: 08002a91 .word 0x08002a91 + 8002a74: 08002a95 .word 0x08002a95 + 8002a78: 08002a99 .word 0x08002a99 + 8002a7c: 08002a9d .word 0x08002a9d + 8002a80: 08002aa1 .word 0x08002aa1 case 0: return 3; - 80024f4: 2303 movs r3, #3 - 80024f6: e0b7 b.n 8002668 + 8002a84: 2303 movs r3, #3 + 8002a86: e0b7 b.n 8002bf8 break; case 1: return 12; - 80024f8: 230c movs r3, #12 - 80024fa: e0b5 b.n 8002668 + 8002a88: 230c movs r3, #12 + 8002a8a: e0b5 b.n 8002bf8 break; case 2: return 19; - 80024fc: 2313 movs r3, #19 - 80024fe: e0b3 b.n 8002668 + 8002a8c: 2313 movs r3, #19 + 8002a8e: e0b3 b.n 8002bf8 break; case 3: return 28; - 8002500: 231c movs r3, #28 - 8002502: e0b1 b.n 8002668 + 8002a90: 231c movs r3, #28 + 8002a92: e0b1 b.n 8002bf8 break; case 4: return 35; - 8002504: 2323 movs r3, #35 ; 0x23 - 8002506: e0af b.n 8002668 + 8002a94: 2323 movs r3, #35 ; 0x23 + 8002a96: e0af b.n 8002bf8 break; case 5: return 44; - 8002508: 232c movs r3, #44 ; 0x2c - 800250a: e0ad b.n 8002668 + 8002a98: 232c movs r3, #44 ; 0x2c + 8002a9a: e0ad b.n 8002bf8 break; case 6: return 51; - 800250c: 2333 movs r3, #51 ; 0x33 - 800250e: e0ab b.n 8002668 + 8002a9c: 2333 movs r3, #51 ; 0x33 + 8002a9e: e0ab b.n 8002bf8 break; case 7: return 60; - 8002510: 233c movs r3, #60 ; 0x3c - 8002512: e0a9 b.n 8002668 + 8002aa0: 233c movs r3, #60 ; 0x3c + 8002aa2: e0a9 b.n 8002bf8 break; } break; case 4: switch(row){ - 8002514: 79bb ldrb r3, [r7, #6] - 8002516: 2b07 cmp r3, #7 - 8002518: f200 809e bhi.w 8002658 - 800251c: a201 add r2, pc, #4 ; (adr r2, 8002524 ) - 800251e: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8002522: bf00 nop - 8002524: 08002545 .word 0x08002545 - 8002528: 08002549 .word 0x08002549 - 800252c: 0800254d .word 0x0800254d - 8002530: 08002551 .word 0x08002551 - 8002534: 08002555 .word 0x08002555 - 8002538: 08002559 .word 0x08002559 - 800253c: 0800255d .word 0x0800255d - 8002540: 08002561 .word 0x08002561 + 8002aa4: 79bb ldrb r3, [r7, #6] + 8002aa6: 2b07 cmp r3, #7 + 8002aa8: f200 809e bhi.w 8002be8 + 8002aac: a201 add r2, pc, #4 ; (adr r2, 8002ab4 ) + 8002aae: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8002ab2: bf00 nop + 8002ab4: 08002ad5 .word 0x08002ad5 + 8002ab8: 08002ad9 .word 0x08002ad9 + 8002abc: 08002add .word 0x08002add + 8002ac0: 08002ae1 .word 0x08002ae1 + 8002ac4: 08002ae5 .word 0x08002ae5 + 8002ac8: 08002ae9 .word 0x08002ae9 + 8002acc: 08002aed .word 0x08002aed + 8002ad0: 08002af1 .word 0x08002af1 case 0: return 4; - 8002544: 2304 movs r3, #4 - 8002546: e08f b.n 8002668 + 8002ad4: 2304 movs r3, #4 + 8002ad6: e08f b.n 8002bf8 break; case 1: return 11; - 8002548: 230b movs r3, #11 - 800254a: e08d b.n 8002668 + 8002ad8: 230b movs r3, #11 + 8002ada: e08d b.n 8002bf8 break; case 2: return 20; - 800254c: 2314 movs r3, #20 - 800254e: e08b b.n 8002668 + 8002adc: 2314 movs r3, #20 + 8002ade: e08b b.n 8002bf8 break; case 3: return 27; - 8002550: 231b movs r3, #27 - 8002552: e089 b.n 8002668 + 8002ae0: 231b movs r3, #27 + 8002ae2: e089 b.n 8002bf8 break; case 4: return 36; - 8002554: 2324 movs r3, #36 ; 0x24 - 8002556: e087 b.n 8002668 + 8002ae4: 2324 movs r3, #36 ; 0x24 + 8002ae6: e087 b.n 8002bf8 break; case 5: return 43; - 8002558: 232b movs r3, #43 ; 0x2b - 800255a: e085 b.n 8002668 + 8002ae8: 232b movs r3, #43 ; 0x2b + 8002aea: e085 b.n 8002bf8 break; case 6: return 52; - 800255c: 2334 movs r3, #52 ; 0x34 - 800255e: e083 b.n 8002668 + 8002aec: 2334 movs r3, #52 ; 0x34 + 8002aee: e083 b.n 8002bf8 break; case 7: return 59; - 8002560: 233b movs r3, #59 ; 0x3b - 8002562: e081 b.n 8002668 + 8002af0: 233b movs r3, #59 ; 0x3b + 8002af2: e081 b.n 8002bf8 break; } break; case 5: switch(row){ - 8002564: 79bb ldrb r3, [r7, #6] - 8002566: 2b07 cmp r3, #7 - 8002568: d878 bhi.n 800265c - 800256a: a201 add r2, pc, #4 ; (adr r2, 8002570 ) - 800256c: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8002570: 08002591 .word 0x08002591 - 8002574: 08002595 .word 0x08002595 - 8002578: 08002599 .word 0x08002599 - 800257c: 0800259d .word 0x0800259d - 8002580: 080025a1 .word 0x080025a1 - 8002584: 080025a5 .word 0x080025a5 - 8002588: 080025a9 .word 0x080025a9 - 800258c: 080025ad .word 0x080025ad + 8002af4: 79bb ldrb r3, [r7, #6] + 8002af6: 2b07 cmp r3, #7 + 8002af8: d878 bhi.n 8002bec + 8002afa: a201 add r2, pc, #4 ; (adr r2, 8002b00 ) + 8002afc: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8002b00: 08002b21 .word 0x08002b21 + 8002b04: 08002b25 .word 0x08002b25 + 8002b08: 08002b29 .word 0x08002b29 + 8002b0c: 08002b2d .word 0x08002b2d + 8002b10: 08002b31 .word 0x08002b31 + 8002b14: 08002b35 .word 0x08002b35 + 8002b18: 08002b39 .word 0x08002b39 + 8002b1c: 08002b3d .word 0x08002b3d case 0: return 5; - 8002590: 2305 movs r3, #5 - 8002592: e069 b.n 8002668 + 8002b20: 2305 movs r3, #5 + 8002b22: e069 b.n 8002bf8 break; case 1: return 10; - 8002594: 230a movs r3, #10 - 8002596: e067 b.n 8002668 + 8002b24: 230a movs r3, #10 + 8002b26: e067 b.n 8002bf8 break; case 2: return 21; - 8002598: 2315 movs r3, #21 - 800259a: e065 b.n 8002668 + 8002b28: 2315 movs r3, #21 + 8002b2a: e065 b.n 8002bf8 break; case 3: return 26; - 800259c: 231a movs r3, #26 - 800259e: e063 b.n 8002668 + 8002b2c: 231a movs r3, #26 + 8002b2e: e063 b.n 8002bf8 break; case 4: return 37; - 80025a0: 2325 movs r3, #37 ; 0x25 - 80025a2: e061 b.n 8002668 + 8002b30: 2325 movs r3, #37 ; 0x25 + 8002b32: e061 b.n 8002bf8 break; case 5: return 42; - 80025a4: 232a movs r3, #42 ; 0x2a - 80025a6: e05f b.n 8002668 + 8002b34: 232a movs r3, #42 ; 0x2a + 8002b36: e05f b.n 8002bf8 break; case 6: return 53; - 80025a8: 2335 movs r3, #53 ; 0x35 - 80025aa: e05d b.n 8002668 + 8002b38: 2335 movs r3, #53 ; 0x35 + 8002b3a: e05d b.n 8002bf8 break; case 7: return 58; - 80025ac: 233a movs r3, #58 ; 0x3a - 80025ae: e05b b.n 8002668 + 8002b3c: 233a movs r3, #58 ; 0x3a + 8002b3e: e05b b.n 8002bf8 break; } break; case 6: switch(row){ - 80025b0: 79bb ldrb r3, [r7, #6] - 80025b2: 2b07 cmp r3, #7 - 80025b4: d854 bhi.n 8002660 - 80025b6: a201 add r2, pc, #4 ; (adr r2, 80025bc ) - 80025b8: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 80025bc: 080025dd .word 0x080025dd - 80025c0: 080025e1 .word 0x080025e1 - 80025c4: 080025e5 .word 0x080025e5 - 80025c8: 080025e9 .word 0x080025e9 - 80025cc: 080025ed .word 0x080025ed - 80025d0: 080025f1 .word 0x080025f1 - 80025d4: 080025f5 .word 0x080025f5 - 80025d8: 080025f9 .word 0x080025f9 + 8002b40: 79bb ldrb r3, [r7, #6] + 8002b42: 2b07 cmp r3, #7 + 8002b44: d854 bhi.n 8002bf0 + 8002b46: a201 add r2, pc, #4 ; (adr r2, 8002b4c ) + 8002b48: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8002b4c: 08002b6d .word 0x08002b6d + 8002b50: 08002b71 .word 0x08002b71 + 8002b54: 08002b75 .word 0x08002b75 + 8002b58: 08002b79 .word 0x08002b79 + 8002b5c: 08002b7d .word 0x08002b7d + 8002b60: 08002b81 .word 0x08002b81 + 8002b64: 08002b85 .word 0x08002b85 + 8002b68: 08002b89 .word 0x08002b89 case 0: return 6; - 80025dc: 2306 movs r3, #6 - 80025de: e043 b.n 8002668 + 8002b6c: 2306 movs r3, #6 + 8002b6e: e043 b.n 8002bf8 break; case 1: return 9; - 80025e0: 2309 movs r3, #9 - 80025e2: e041 b.n 8002668 + 8002b70: 2309 movs r3, #9 + 8002b72: e041 b.n 8002bf8 break; case 2: return 22; - 80025e4: 2316 movs r3, #22 - 80025e6: e03f b.n 8002668 + 8002b74: 2316 movs r3, #22 + 8002b76: e03f b.n 8002bf8 break; case 3: return 25; - 80025e8: 2319 movs r3, #25 - 80025ea: e03d b.n 8002668 + 8002b78: 2319 movs r3, #25 + 8002b7a: e03d b.n 8002bf8 break; case 4: return 38; - 80025ec: 2326 movs r3, #38 ; 0x26 - 80025ee: e03b b.n 8002668 + 8002b7c: 2326 movs r3, #38 ; 0x26 + 8002b7e: e03b b.n 8002bf8 break; case 5: return 41; - 80025f0: 2329 movs r3, #41 ; 0x29 - 80025f2: e039 b.n 8002668 + 8002b80: 2329 movs r3, #41 ; 0x29 + 8002b82: e039 b.n 8002bf8 break; case 6: return 54; - 80025f4: 2336 movs r3, #54 ; 0x36 - 80025f6: e037 b.n 8002668 + 8002b84: 2336 movs r3, #54 ; 0x36 + 8002b86: e037 b.n 8002bf8 break; case 7: return 57; - 80025f8: 2339 movs r3, #57 ; 0x39 - 80025fa: e035 b.n 8002668 + 8002b88: 2339 movs r3, #57 ; 0x39 + 8002b8a: e035 b.n 8002bf8 break; } break; case 7: switch(row){ - 80025fc: 79bb ldrb r3, [r7, #6] - 80025fe: 2b07 cmp r3, #7 - 8002600: d830 bhi.n 8002664 - 8002602: a201 add r2, pc, #4 ; (adr r2, 8002608 ) - 8002604: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8002608: 08002629 .word 0x08002629 - 800260c: 0800262d .word 0x0800262d - 8002610: 08002631 .word 0x08002631 - 8002614: 08002635 .word 0x08002635 - 8002618: 08002639 .word 0x08002639 - 800261c: 0800263d .word 0x0800263d - 8002620: 08002641 .word 0x08002641 - 8002624: 08002645 .word 0x08002645 + 8002b8c: 79bb ldrb r3, [r7, #6] + 8002b8e: 2b07 cmp r3, #7 + 8002b90: d830 bhi.n 8002bf4 + 8002b92: a201 add r2, pc, #4 ; (adr r2, 8002b98 ) + 8002b94: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8002b98: 08002bb9 .word 0x08002bb9 + 8002b9c: 08002bbd .word 0x08002bbd + 8002ba0: 08002bc1 .word 0x08002bc1 + 8002ba4: 08002bc5 .word 0x08002bc5 + 8002ba8: 08002bc9 .word 0x08002bc9 + 8002bac: 08002bcd .word 0x08002bcd + 8002bb0: 08002bd1 .word 0x08002bd1 + 8002bb4: 08002bd5 .word 0x08002bd5 case 0: return 7; - 8002628: 2307 movs r3, #7 - 800262a: e01d b.n 8002668 + 8002bb8: 2307 movs r3, #7 + 8002bba: e01d b.n 8002bf8 break; case 1: return 8; - 800262c: 2308 movs r3, #8 - 800262e: e01b b.n 8002668 + 8002bbc: 2308 movs r3, #8 + 8002bbe: e01b b.n 8002bf8 break; case 2: return 23; - 8002630: 2317 movs r3, #23 - 8002632: e019 b.n 8002668 + 8002bc0: 2317 movs r3, #23 + 8002bc2: e019 b.n 8002bf8 break; case 3: return 24; - 8002634: 2318 movs r3, #24 - 8002636: e017 b.n 8002668 + 8002bc4: 2318 movs r3, #24 + 8002bc6: e017 b.n 8002bf8 break; case 4: return 39; - 8002638: 2327 movs r3, #39 ; 0x27 - 800263a: e015 b.n 8002668 + 8002bc8: 2327 movs r3, #39 ; 0x27 + 8002bca: e015 b.n 8002bf8 break; case 5: return 40; - 800263c: 2328 movs r3, #40 ; 0x28 - 800263e: e013 b.n 8002668 + 8002bcc: 2328 movs r3, #40 ; 0x28 + 8002bce: e013 b.n 8002bf8 break; case 6: return 55; - 8002640: 2337 movs r3, #55 ; 0x37 - 8002642: e011 b.n 8002668 + 8002bd0: 2337 movs r3, #55 ; 0x37 + 8002bd2: e011 b.n 8002bf8 break; case 7: return 56; - 8002644: 2338 movs r3, #56 ; 0x38 - 8002646: e00f b.n 8002668 + 8002bd4: 2338 movs r3, #56 ; 0x38 + 8002bd6: e00f b.n 8002bf8 break; - 8002648: bf00 nop - 800264a: e00c b.n 8002666 + 8002bd8: bf00 nop + 8002bda: e00c b.n 8002bf6 break; - 800264c: bf00 nop - 800264e: e00a b.n 8002666 + 8002bdc: bf00 nop + 8002bde: e00a b.n 8002bf6 break; - 8002650: bf00 nop - 8002652: e008 b.n 8002666 + 8002be0: bf00 nop + 8002be2: e008 b.n 8002bf6 break; - 8002654: bf00 nop - 8002656: e006 b.n 8002666 + 8002be4: bf00 nop + 8002be6: e006 b.n 8002bf6 break; - 8002658: bf00 nop - 800265a: e004 b.n 8002666 + 8002be8: bf00 nop + 8002bea: e004 b.n 8002bf6 break; - 800265c: bf00 nop - 800265e: e002 b.n 8002666 + 8002bec: bf00 nop + 8002bee: e002 b.n 8002bf6 break; - 8002660: bf00 nop - 8002662: e000 b.n 8002666 + 8002bf0: bf00 nop + 8002bf2: e000 b.n 8002bf6 break; } break; - 8002664: bf00 nop + 8002bf4: bf00 nop } return 0; - 8002666: 2300 movs r3, #0 + 8002bf6: 2300 movs r3, #0 } - 8002668: 4618 mov r0, r3 - 800266a: 370c adds r7, #12 - 800266c: 46bd mov sp, r7 - 800266e: f85d 7b04 ldr.w r7, [sp], #4 - 8002672: 4770 bx lr + 8002bf8: 4618 mov r0, r3 + 8002bfa: 370c adds r7, #12 + 8002bfc: 46bd mov sp, r7 + 8002bfe: f85d 7b04 ldr.w r7, [sp], #4 + 8002c02: 4770 bx lr -08002674 : +08002c04 : void setLED(uint8_t pixelNumber, uint8_t redLevel, uint8_t greenLevel, uint8_t blueLevel){ - 8002674: b490 push {r4, r7} - 8002676: b082 sub sp, #8 - 8002678: af00 add r7, sp, #0 - 800267a: 4604 mov r4, r0 - 800267c: 4608 mov r0, r1 - 800267e: 4611 mov r1, r2 - 8002680: 461a mov r2, r3 - 8002682: 4623 mov r3, r4 - 8002684: 71fb strb r3, [r7, #7] - 8002686: 4603 mov r3, r0 - 8002688: 71bb strb r3, [r7, #6] - 800268a: 460b mov r3, r1 - 800268c: 717b strb r3, [r7, #5] - 800268e: 4613 mov r3, r2 - 8002690: 713b strb r3, [r7, #4] + 8002c04: b490 push {r4, r7} + 8002c06: b082 sub sp, #8 + 8002c08: af00 add r7, sp, #0 + 8002c0a: 4604 mov r4, r0 + 8002c0c: 4608 mov r0, r1 + 8002c0e: 4611 mov r1, r2 + 8002c10: 461a mov r2, r3 + 8002c12: 4623 mov r3, r4 + 8002c14: 71fb strb r3, [r7, #7] + 8002c16: 4603 mov r3, r0 + 8002c18: 71bb strb r3, [r7, #6] + 8002c1a: 460b mov r3, r1 + 8002c1c: 717b strb r3, [r7, #5] + 8002c1e: 4613 mov r3, r2 + 8002c20: 713b strb r3, [r7, #4] LEDData[pixelNumber][0] = greenLevel; - 8002692: 79fa ldrb r2, [r7, #7] - 8002694: 490e ldr r1, [pc, #56] ; (80026d0 ) - 8002696: 4613 mov r3, r2 - 8002698: 005b lsls r3, r3, #1 - 800269a: 4413 add r3, r2 - 800269c: 440b add r3, r1 - 800269e: 797a ldrb r2, [r7, #5] - 80026a0: 701a strb r2, [r3, #0] + 8002c22: 79fa ldrb r2, [r7, #7] + 8002c24: 490e ldr r1, [pc, #56] ; (8002c60 ) + 8002c26: 4613 mov r3, r2 + 8002c28: 005b lsls r3, r3, #1 + 8002c2a: 4413 add r3, r2 + 8002c2c: 440b add r3, r1 + 8002c2e: 797a ldrb r2, [r7, #5] + 8002c30: 701a strb r2, [r3, #0] LEDData[pixelNumber][1] = redLevel; - 80026a2: 79fa ldrb r2, [r7, #7] - 80026a4: 490a ldr r1, [pc, #40] ; (80026d0 ) - 80026a6: 4613 mov r3, r2 - 80026a8: 005b lsls r3, r3, #1 - 80026aa: 4413 add r3, r2 - 80026ac: 440b add r3, r1 - 80026ae: 3301 adds r3, #1 - 80026b0: 79ba ldrb r2, [r7, #6] - 80026b2: 701a strb r2, [r3, #0] + 8002c32: 79fa ldrb r2, [r7, #7] + 8002c34: 490a ldr r1, [pc, #40] ; (8002c60 ) + 8002c36: 4613 mov r3, r2 + 8002c38: 005b lsls r3, r3, #1 + 8002c3a: 4413 add r3, r2 + 8002c3c: 440b add r3, r1 + 8002c3e: 3301 adds r3, #1 + 8002c40: 79ba ldrb r2, [r7, #6] + 8002c42: 701a strb r2, [r3, #0] LEDData[pixelNumber][2] = blueLevel; - 80026b4: 79fa ldrb r2, [r7, #7] - 80026b6: 4906 ldr r1, [pc, #24] ; (80026d0 ) - 80026b8: 4613 mov r3, r2 - 80026ba: 005b lsls r3, r3, #1 - 80026bc: 4413 add r3, r2 - 80026be: 440b add r3, r1 - 80026c0: 3302 adds r3, #2 - 80026c2: 793a ldrb r2, [r7, #4] - 80026c4: 701a strb r2, [r3, #0] + 8002c44: 79fa ldrb r2, [r7, #7] + 8002c46: 4906 ldr r1, [pc, #24] ; (8002c60 ) + 8002c48: 4613 mov r3, r2 + 8002c4a: 005b lsls r3, r3, #1 + 8002c4c: 4413 add r3, r2 + 8002c4e: 440b add r3, r1 + 8002c50: 3302 adds r3, #2 + 8002c52: 793a ldrb r2, [r7, #4] + 8002c54: 701a strb r2, [r3, #0] } - 80026c6: bf00 nop - 80026c8: 3708 adds r7, #8 - 80026ca: 46bd mov sp, r7 - 80026cc: bc90 pop {r4, r7} - 80026ce: 4770 bx lr - 80026d0: 20000094 .word 0x20000094 + 8002c56: bf00 nop + 8002c58: 3708 adds r7, #8 + 8002c5a: 46bd mov sp, r7 + 8002c5c: bc90 pop {r4, r7} + 8002c5e: 4770 bx lr + 8002c60: 20000094 .word 0x20000094 -080026d4 : +08002c64 : void updateWS2812BData(void){ - 80026d4: b490 push {r4, r7} - 80026d6: b082 sub sp, #8 - 80026d8: af00 add r7, sp, #0 + 8002c64: b490 push {r4, r7} + 8002c66: b082 sub sp, #8 + 8002c68: af00 add r7, sp, #0 uint8_t byteToConvert; for (uint8_t i = 0; i < 64; ++i) { - 80026da: 2300 movs r3, #0 - 80026dc: 71fb strb r3, [r7, #7] - 80026de: e18b b.n 80029f8 + 8002c6a: 2300 movs r3, #0 + 8002c6c: 71fb strb r3, [r7, #7] + 8002c6e: e18b b.n 8002f88 for (uint8_t j = 0; j < 3; ++j) { - 80026e0: 2300 movs r3, #0 - 80026e2: 71bb strb r3, [r7, #6] - 80026e4: e181 b.n 80029ea + 8002c70: 2300 movs r3, #0 + 8002c72: 71bb strb r3, [r7, #6] + 8002c74: e181 b.n 8002f7a byteToConvert = LEDData[i][j]; - 80026e6: 79fa ldrb r2, [r7, #7] - 80026e8: 79b9 ldrb r1, [r7, #6] - 80026ea: 488e ldr r0, [pc, #568] ; (8002924 ) - 80026ec: 4613 mov r3, r2 - 80026ee: 005b lsls r3, r3, #1 - 80026f0: 4413 add r3, r2 - 80026f2: 4403 add r3, r0 - 80026f4: 440b add r3, r1 - 80026f6: 781b ldrb r3, [r3, #0] - 80026f8: 717b strb r3, [r7, #5] + 8002c76: 79fa ldrb r2, [r7, #7] + 8002c78: 79b9 ldrb r1, [r7, #6] + 8002c7a: 488e ldr r0, [pc, #568] ; (8002eb4 ) + 8002c7c: 4613 mov r3, r2 + 8002c7e: 005b lsls r3, r3, #1 + 8002c80: 4413 add r3, r2 + 8002c82: 4403 add r3, r0 + 8002c84: 440b add r3, r1 + 8002c86: 781b ldrb r3, [r3, #0] + 8002c88: 717b strb r3, [r7, #5] switch((byteToConvert & 0xF0) >> 4){ - 80026fa: 797b ldrb r3, [r7, #5] - 80026fc: 091b lsrs r3, r3, #4 - 80026fe: b2db uxtb r3, r3 - 8002700: 2b0e cmp r3, #14 - 8002702: d85d bhi.n 80027c0 - 8002704: a201 add r2, pc, #4 ; (adr r2, 800270c ) - 8002706: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 800270a: bf00 nop - 800270c: 08002749 .word 0x08002749 - 8002710: 08002751 .word 0x08002751 - 8002714: 08002759 .word 0x08002759 - 8002718: 08002761 .word 0x08002761 - 800271c: 08002769 .word 0x08002769 - 8002720: 08002771 .word 0x08002771 - 8002724: 08002779 .word 0x08002779 - 8002728: 08002781 .word 0x08002781 - 800272c: 08002789 .word 0x08002789 - 8002730: 08002791 .word 0x08002791 - 8002734: 08002799 .word 0x08002799 - 8002738: 080027a1 .word 0x080027a1 - 800273c: 080027a9 .word 0x080027a9 - 8002740: 080027b1 .word 0x080027b1 - 8002744: 080027b9 .word 0x080027b9 + 8002c8a: 797b ldrb r3, [r7, #5] + 8002c8c: 091b lsrs r3, r3, #4 + 8002c8e: b2db uxtb r3, r3 + 8002c90: 2b0e cmp r3, #14 + 8002c92: d85d bhi.n 8002d50 + 8002c94: a201 add r2, pc, #4 ; (adr r2, 8002c9c ) + 8002c96: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8002c9a: bf00 nop + 8002c9c: 08002cd9 .word 0x08002cd9 + 8002ca0: 08002ce1 .word 0x08002ce1 + 8002ca4: 08002ce9 .word 0x08002ce9 + 8002ca8: 08002cf1 .word 0x08002cf1 + 8002cac: 08002cf9 .word 0x08002cf9 + 8002cb0: 08002d01 .word 0x08002d01 + 8002cb4: 08002d09 .word 0x08002d09 + 8002cb8: 08002d11 .word 0x08002d11 + 8002cbc: 08002d19 .word 0x08002d19 + 8002cc0: 08002d21 .word 0x08002d21 + 8002cc4: 08002d29 .word 0x08002d29 + 8002cc8: 08002d31 .word 0x08002d31 + 8002ccc: 08002d39 .word 0x08002d39 + 8002cd0: 08002d41 .word 0x08002d41 + 8002cd4: 08002d49 .word 0x08002d49 case 0x00: WS2812BConvertedData = 0x00924000; - 8002748: 4b77 ldr r3, [pc, #476] ; (8002928 ) - 800274a: 4a78 ldr r2, [pc, #480] ; (800292c ) - 800274c: 601a str r2, [r3, #0] + 8002cd8: 4b77 ldr r3, [pc, #476] ; (8002eb8 ) + 8002cda: 4a78 ldr r2, [pc, #480] ; (8002ebc ) + 8002cdc: 601a str r2, [r3, #0] break; - 800274e: e03a b.n 80027c6 + 8002cde: e03a b.n 8002d56 case 0x01: WS2812BConvertedData = 0x00926000; - 8002750: 4b75 ldr r3, [pc, #468] ; (8002928 ) - 8002752: 4a77 ldr r2, [pc, #476] ; (8002930 ) - 8002754: 601a str r2, [r3, #0] + 8002ce0: 4b75 ldr r3, [pc, #468] ; (8002eb8 ) + 8002ce2: 4a77 ldr r2, [pc, #476] ; (8002ec0 ) + 8002ce4: 601a str r2, [r3, #0] break; - 8002756: e036 b.n 80027c6 + 8002ce6: e036 b.n 8002d56 case 0x02: WS2812BConvertedData = 0x00934000; - 8002758: 4b73 ldr r3, [pc, #460] ; (8002928 ) - 800275a: 4a76 ldr r2, [pc, #472] ; (8002934 ) - 800275c: 601a str r2, [r3, #0] + 8002ce8: 4b73 ldr r3, [pc, #460] ; (8002eb8 ) + 8002cea: 4a76 ldr r2, [pc, #472] ; (8002ec4 ) + 8002cec: 601a str r2, [r3, #0] break; - 800275e: e032 b.n 80027c6 + 8002cee: e032 b.n 8002d56 case 0x03: WS2812BConvertedData = 0x00936000; - 8002760: 4b71 ldr r3, [pc, #452] ; (8002928 ) - 8002762: 4a75 ldr r2, [pc, #468] ; (8002938 ) - 8002764: 601a str r2, [r3, #0] + 8002cf0: 4b71 ldr r3, [pc, #452] ; (8002eb8 ) + 8002cf2: 4a75 ldr r2, [pc, #468] ; (8002ec8 ) + 8002cf4: 601a str r2, [r3, #0] break; - 8002766: e02e b.n 80027c6 + 8002cf6: e02e b.n 8002d56 case 0x04: WS2812BConvertedData = 0x009A4000; - 8002768: 4b6f ldr r3, [pc, #444] ; (8002928 ) - 800276a: 4a74 ldr r2, [pc, #464] ; (800293c ) - 800276c: 601a str r2, [r3, #0] + 8002cf8: 4b6f ldr r3, [pc, #444] ; (8002eb8 ) + 8002cfa: 4a74 ldr r2, [pc, #464] ; (8002ecc ) + 8002cfc: 601a str r2, [r3, #0] break; - 800276e: e02a b.n 80027c6 + 8002cfe: e02a b.n 8002d56 case 0x05: WS2812BConvertedData = 0x009A6000; - 8002770: 4b6d ldr r3, [pc, #436] ; (8002928 ) - 8002772: 4a73 ldr r2, [pc, #460] ; (8002940 ) - 8002774: 601a str r2, [r3, #0] + 8002d00: 4b6d ldr r3, [pc, #436] ; (8002eb8 ) + 8002d02: 4a73 ldr r2, [pc, #460] ; (8002ed0 ) + 8002d04: 601a str r2, [r3, #0] break; - 8002776: e026 b.n 80027c6 + 8002d06: e026 b.n 8002d56 case 0x06: WS2812BConvertedData = 0x009B4000; - 8002778: 4b6b ldr r3, [pc, #428] ; (8002928 ) - 800277a: 4a72 ldr r2, [pc, #456] ; (8002944 ) - 800277c: 601a str r2, [r3, #0] + 8002d08: 4b6b ldr r3, [pc, #428] ; (8002eb8 ) + 8002d0a: 4a72 ldr r2, [pc, #456] ; (8002ed4 ) + 8002d0c: 601a str r2, [r3, #0] break; - 800277e: e022 b.n 80027c6 + 8002d0e: e022 b.n 8002d56 case 0x07: WS2812BConvertedData = 0x009B6000; - 8002780: 4b69 ldr r3, [pc, #420] ; (8002928 ) - 8002782: 4a71 ldr r2, [pc, #452] ; (8002948 ) - 8002784: 601a str r2, [r3, #0] + 8002d10: 4b69 ldr r3, [pc, #420] ; (8002eb8 ) + 8002d12: 4a71 ldr r2, [pc, #452] ; (8002ed8 ) + 8002d14: 601a str r2, [r3, #0] break; - 8002786: e01e b.n 80027c6 + 8002d16: e01e b.n 8002d56 case 0x08: WS2812BConvertedData = 0x00D24000; - 8002788: 4b67 ldr r3, [pc, #412] ; (8002928 ) - 800278a: 4a70 ldr r2, [pc, #448] ; (800294c ) - 800278c: 601a str r2, [r3, #0] + 8002d18: 4b67 ldr r3, [pc, #412] ; (8002eb8 ) + 8002d1a: 4a70 ldr r2, [pc, #448] ; (8002edc ) + 8002d1c: 601a str r2, [r3, #0] break; - 800278e: e01a b.n 80027c6 + 8002d1e: e01a b.n 8002d56 case 0x09: WS2812BConvertedData = 0x00D26000; - 8002790: 4b65 ldr r3, [pc, #404] ; (8002928 ) - 8002792: 4a6f ldr r2, [pc, #444] ; (8002950 ) - 8002794: 601a str r2, [r3, #0] + 8002d20: 4b65 ldr r3, [pc, #404] ; (8002eb8 ) + 8002d22: 4a6f ldr r2, [pc, #444] ; (8002ee0 ) + 8002d24: 601a str r2, [r3, #0] break; - 8002796: e016 b.n 80027c6 + 8002d26: e016 b.n 8002d56 case 0x0A: WS2812BConvertedData = 0x00D34000; - 8002798: 4b63 ldr r3, [pc, #396] ; (8002928 ) - 800279a: 4a6e ldr r2, [pc, #440] ; (8002954 ) - 800279c: 601a str r2, [r3, #0] + 8002d28: 4b63 ldr r3, [pc, #396] ; (8002eb8 ) + 8002d2a: 4a6e ldr r2, [pc, #440] ; (8002ee4 ) + 8002d2c: 601a str r2, [r3, #0] break; - 800279e: e012 b.n 80027c6 + 8002d2e: e012 b.n 8002d56 case 0x0B: WS2812BConvertedData = 0x00D36000; - 80027a0: 4b61 ldr r3, [pc, #388] ; (8002928 ) - 80027a2: 4a6d ldr r2, [pc, #436] ; (8002958 ) - 80027a4: 601a str r2, [r3, #0] + 8002d30: 4b61 ldr r3, [pc, #388] ; (8002eb8 ) + 8002d32: 4a6d ldr r2, [pc, #436] ; (8002ee8 ) + 8002d34: 601a str r2, [r3, #0] break; - 80027a6: e00e b.n 80027c6 + 8002d36: e00e b.n 8002d56 case 0x0C: WS2812BConvertedData = 0x00DA4000; - 80027a8: 4b5f ldr r3, [pc, #380] ; (8002928 ) - 80027aa: 4a6c ldr r2, [pc, #432] ; (800295c ) - 80027ac: 601a str r2, [r3, #0] + 8002d38: 4b5f ldr r3, [pc, #380] ; (8002eb8 ) + 8002d3a: 4a6c ldr r2, [pc, #432] ; (8002eec ) + 8002d3c: 601a str r2, [r3, #0] break; - 80027ae: e00a b.n 80027c6 + 8002d3e: e00a b.n 8002d56 case 0x0D: WS2812BConvertedData = 0x00DA6000; - 80027b0: 4b5d ldr r3, [pc, #372] ; (8002928 ) - 80027b2: 4a6b ldr r2, [pc, #428] ; (8002960 ) - 80027b4: 601a str r2, [r3, #0] + 8002d40: 4b5d ldr r3, [pc, #372] ; (8002eb8 ) + 8002d42: 4a6b ldr r2, [pc, #428] ; (8002ef0 ) + 8002d44: 601a str r2, [r3, #0] break; - 80027b6: e006 b.n 80027c6 + 8002d46: e006 b.n 8002d56 case 0x0E: WS2812BConvertedData = 0x00DB4000; - 80027b8: 4b5b ldr r3, [pc, #364] ; (8002928 ) - 80027ba: 4a6a ldr r2, [pc, #424] ; (8002964 ) - 80027bc: 601a str r2, [r3, #0] + 8002d48: 4b5b ldr r3, [pc, #364] ; (8002eb8 ) + 8002d4a: 4a6a ldr r2, [pc, #424] ; (8002ef4 ) + 8002d4c: 601a str r2, [r3, #0] break; - 80027be: e002 b.n 80027c6 + 8002d4e: e002 b.n 8002d56 default: // 0x0F WS2812BConvertedData = 0x00DB6000; - 80027c0: 4b59 ldr r3, [pc, #356] ; (8002928 ) - 80027c2: 4a69 ldr r2, [pc, #420] ; (8002968 ) - 80027c4: 601a str r2, [r3, #0] + 8002d50: 4b59 ldr r3, [pc, #356] ; (8002eb8 ) + 8002d52: 4a69 ldr r2, [pc, #420] ; (8002ef8 ) + 8002d54: 601a str r2, [r3, #0] } switch(byteToConvert & 0x0F){ - 80027c6: 797b ldrb r3, [r7, #5] - 80027c8: f003 030f and.w r3, r3, #15 - 80027cc: 2b0e cmp r3, #14 - 80027ce: f200 80cd bhi.w 800296c - 80027d2: a201 add r2, pc, #4 ; (adr r2, 80027d8 ) - 80027d4: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 80027d8: 08002815 .word 0x08002815 - 80027dc: 08002827 .word 0x08002827 - 80027e0: 08002839 .word 0x08002839 - 80027e4: 0800284b .word 0x0800284b - 80027e8: 0800285d .word 0x0800285d - 80027ec: 0800286f .word 0x0800286f - 80027f0: 08002881 .word 0x08002881 - 80027f4: 08002893 .word 0x08002893 - 80027f8: 080028a5 .word 0x080028a5 - 80027fc: 080028b7 .word 0x080028b7 - 8002800: 080028c9 .word 0x080028c9 - 8002804: 080028db .word 0x080028db - 8002808: 080028ed .word 0x080028ed - 800280c: 080028ff .word 0x080028ff - 8002810: 08002911 .word 0x08002911 + 8002d56: 797b ldrb r3, [r7, #5] + 8002d58: f003 030f and.w r3, r3, #15 + 8002d5c: 2b0e cmp r3, #14 + 8002d5e: f200 80cd bhi.w 8002efc + 8002d62: a201 add r2, pc, #4 ; (adr r2, 8002d68 ) + 8002d64: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8002d68: 08002da5 .word 0x08002da5 + 8002d6c: 08002db7 .word 0x08002db7 + 8002d70: 08002dc9 .word 0x08002dc9 + 8002d74: 08002ddb .word 0x08002ddb + 8002d78: 08002ded .word 0x08002ded + 8002d7c: 08002dff .word 0x08002dff + 8002d80: 08002e11 .word 0x08002e11 + 8002d84: 08002e23 .word 0x08002e23 + 8002d88: 08002e35 .word 0x08002e35 + 8002d8c: 08002e47 .word 0x08002e47 + 8002d90: 08002e59 .word 0x08002e59 + 8002d94: 08002e6b .word 0x08002e6b + 8002d98: 08002e7d .word 0x08002e7d + 8002d9c: 08002e8f .word 0x08002e8f + 8002da0: 08002ea1 .word 0x08002ea1 case 0x00: WS2812BConvertedData |= 0x00000924; - 8002814: 4b44 ldr r3, [pc, #272] ; (8002928 ) - 8002816: 681b ldr r3, [r3, #0] - 8002818: f443 6312 orr.w r3, r3, #2336 ; 0x920 - 800281c: f043 0304 orr.w r3, r3, #4 - 8002820: 4a41 ldr r2, [pc, #260] ; (8002928 ) - 8002822: 6013 str r3, [r2, #0] + 8002da4: 4b44 ldr r3, [pc, #272] ; (8002eb8 ) + 8002da6: 681b ldr r3, [r3, #0] + 8002da8: f443 6312 orr.w r3, r3, #2336 ; 0x920 + 8002dac: f043 0304 orr.w r3, r3, #4 + 8002db0: 4a41 ldr r2, [pc, #260] ; (8002eb8 ) + 8002db2: 6013 str r3, [r2, #0] break; - 8002824: e0aa b.n 800297c + 8002db4: e0aa b.n 8002f0c case 0x01: WS2812BConvertedData |= 0x00000926; - 8002826: 4b40 ldr r3, [pc, #256] ; (8002928 ) - 8002828: 681b ldr r3, [r3, #0] - 800282a: f443 6312 orr.w r3, r3, #2336 ; 0x920 - 800282e: f043 0306 orr.w r3, r3, #6 - 8002832: 4a3d ldr r2, [pc, #244] ; (8002928 ) - 8002834: 6013 str r3, [r2, #0] + 8002db6: 4b40 ldr r3, [pc, #256] ; (8002eb8 ) + 8002db8: 681b ldr r3, [r3, #0] + 8002dba: f443 6312 orr.w r3, r3, #2336 ; 0x920 + 8002dbe: f043 0306 orr.w r3, r3, #6 + 8002dc2: 4a3d ldr r2, [pc, #244] ; (8002eb8 ) + 8002dc4: 6013 str r3, [r2, #0] break; - 8002836: e0a1 b.n 800297c + 8002dc6: e0a1 b.n 8002f0c case 0x02: WS2812BConvertedData |= 0x00000934; - 8002838: 4b3b ldr r3, [pc, #236] ; (8002928 ) - 800283a: 681b ldr r3, [r3, #0] - 800283c: f443 6313 orr.w r3, r3, #2352 ; 0x930 - 8002840: f043 0304 orr.w r3, r3, #4 - 8002844: 4a38 ldr r2, [pc, #224] ; (8002928 ) - 8002846: 6013 str r3, [r2, #0] + 8002dc8: 4b3b ldr r3, [pc, #236] ; (8002eb8 ) + 8002dca: 681b ldr r3, [r3, #0] + 8002dcc: f443 6313 orr.w r3, r3, #2352 ; 0x930 + 8002dd0: f043 0304 orr.w r3, r3, #4 + 8002dd4: 4a38 ldr r2, [pc, #224] ; (8002eb8 ) + 8002dd6: 6013 str r3, [r2, #0] break; - 8002848: e098 b.n 800297c + 8002dd8: e098 b.n 8002f0c case 0x03: WS2812BConvertedData |= 0x00000936; - 800284a: 4b37 ldr r3, [pc, #220] ; (8002928 ) - 800284c: 681b ldr r3, [r3, #0] - 800284e: f443 6313 orr.w r3, r3, #2352 ; 0x930 - 8002852: f043 0306 orr.w r3, r3, #6 - 8002856: 4a34 ldr r2, [pc, #208] ; (8002928 ) - 8002858: 6013 str r3, [r2, #0] + 8002dda: 4b37 ldr r3, [pc, #220] ; (8002eb8 ) + 8002ddc: 681b ldr r3, [r3, #0] + 8002dde: f443 6313 orr.w r3, r3, #2352 ; 0x930 + 8002de2: f043 0306 orr.w r3, r3, #6 + 8002de6: 4a34 ldr r2, [pc, #208] ; (8002eb8 ) + 8002de8: 6013 str r3, [r2, #0] break; - 800285a: e08f b.n 800297c + 8002dea: e08f b.n 8002f0c case 0x04: WS2812BConvertedData |= 0x000009A4; - 800285c: 4b32 ldr r3, [pc, #200] ; (8002928 ) - 800285e: 681b ldr r3, [r3, #0] - 8002860: f443 631a orr.w r3, r3, #2464 ; 0x9a0 - 8002864: f043 0304 orr.w r3, r3, #4 - 8002868: 4a2f ldr r2, [pc, #188] ; (8002928 ) - 800286a: 6013 str r3, [r2, #0] + 8002dec: 4b32 ldr r3, [pc, #200] ; (8002eb8 ) + 8002dee: 681b ldr r3, [r3, #0] + 8002df0: f443 631a orr.w r3, r3, #2464 ; 0x9a0 + 8002df4: f043 0304 orr.w r3, r3, #4 + 8002df8: 4a2f ldr r2, [pc, #188] ; (8002eb8 ) + 8002dfa: 6013 str r3, [r2, #0] break; - 800286c: e086 b.n 800297c + 8002dfc: e086 b.n 8002f0c case 0x05: WS2812BConvertedData |= 0x000009A6; - 800286e: 4b2e ldr r3, [pc, #184] ; (8002928 ) - 8002870: 681b ldr r3, [r3, #0] - 8002872: f443 631a orr.w r3, r3, #2464 ; 0x9a0 - 8002876: f043 0306 orr.w r3, r3, #6 - 800287a: 4a2b ldr r2, [pc, #172] ; (8002928 ) - 800287c: 6013 str r3, [r2, #0] + 8002dfe: 4b2e ldr r3, [pc, #184] ; (8002eb8 ) + 8002e00: 681b ldr r3, [r3, #0] + 8002e02: f443 631a orr.w r3, r3, #2464 ; 0x9a0 + 8002e06: f043 0306 orr.w r3, r3, #6 + 8002e0a: 4a2b ldr r2, [pc, #172] ; (8002eb8 ) + 8002e0c: 6013 str r3, [r2, #0] break; - 800287e: e07d b.n 800297c + 8002e0e: e07d b.n 8002f0c case 0x06: WS2812BConvertedData |= 0x000009B4; - 8002880: 4b29 ldr r3, [pc, #164] ; (8002928 ) - 8002882: 681b ldr r3, [r3, #0] - 8002884: f443 631b orr.w r3, r3, #2480 ; 0x9b0 - 8002888: f043 0304 orr.w r3, r3, #4 - 800288c: 4a26 ldr r2, [pc, #152] ; (8002928 ) - 800288e: 6013 str r3, [r2, #0] + 8002e10: 4b29 ldr r3, [pc, #164] ; (8002eb8 ) + 8002e12: 681b ldr r3, [r3, #0] + 8002e14: f443 631b orr.w r3, r3, #2480 ; 0x9b0 + 8002e18: f043 0304 orr.w r3, r3, #4 + 8002e1c: 4a26 ldr r2, [pc, #152] ; (8002eb8 ) + 8002e1e: 6013 str r3, [r2, #0] break; - 8002890: e074 b.n 800297c + 8002e20: e074 b.n 8002f0c case 0x07: WS2812BConvertedData |= 0x000009B6; - 8002892: 4b25 ldr r3, [pc, #148] ; (8002928 ) - 8002894: 681b ldr r3, [r3, #0] - 8002896: f443 631b orr.w r3, r3, #2480 ; 0x9b0 - 800289a: f043 0306 orr.w r3, r3, #6 - 800289e: 4a22 ldr r2, [pc, #136] ; (8002928 ) - 80028a0: 6013 str r3, [r2, #0] + 8002e22: 4b25 ldr r3, [pc, #148] ; (8002eb8 ) + 8002e24: 681b ldr r3, [r3, #0] + 8002e26: f443 631b orr.w r3, r3, #2480 ; 0x9b0 + 8002e2a: f043 0306 orr.w r3, r3, #6 + 8002e2e: 4a22 ldr r2, [pc, #136] ; (8002eb8 ) + 8002e30: 6013 str r3, [r2, #0] break; - 80028a2: e06b b.n 800297c + 8002e32: e06b b.n 8002f0c case 0x08: WS2812BConvertedData |= 0x00000D24; - 80028a4: 4b20 ldr r3, [pc, #128] ; (8002928 ) - 80028a6: 681b ldr r3, [r3, #0] - 80028a8: f443 6352 orr.w r3, r3, #3360 ; 0xd20 - 80028ac: f043 0304 orr.w r3, r3, #4 - 80028b0: 4a1d ldr r2, [pc, #116] ; (8002928 ) - 80028b2: 6013 str r3, [r2, #0] + 8002e34: 4b20 ldr r3, [pc, #128] ; (8002eb8 ) + 8002e36: 681b ldr r3, [r3, #0] + 8002e38: f443 6352 orr.w r3, r3, #3360 ; 0xd20 + 8002e3c: f043 0304 orr.w r3, r3, #4 + 8002e40: 4a1d ldr r2, [pc, #116] ; (8002eb8 ) + 8002e42: 6013 str r3, [r2, #0] break; - 80028b4: e062 b.n 800297c + 8002e44: e062 b.n 8002f0c case 0x09: WS2812BConvertedData |= 0x00000D26; - 80028b6: 4b1c ldr r3, [pc, #112] ; (8002928 ) - 80028b8: 681b ldr r3, [r3, #0] - 80028ba: f443 6352 orr.w r3, r3, #3360 ; 0xd20 - 80028be: f043 0306 orr.w r3, r3, #6 - 80028c2: 4a19 ldr r2, [pc, #100] ; (8002928 ) - 80028c4: 6013 str r3, [r2, #0] + 8002e46: 4b1c ldr r3, [pc, #112] ; (8002eb8 ) + 8002e48: 681b ldr r3, [r3, #0] + 8002e4a: f443 6352 orr.w r3, r3, #3360 ; 0xd20 + 8002e4e: f043 0306 orr.w r3, r3, #6 + 8002e52: 4a19 ldr r2, [pc, #100] ; (8002eb8 ) + 8002e54: 6013 str r3, [r2, #0] break; - 80028c6: e059 b.n 800297c + 8002e56: e059 b.n 8002f0c case 0x0A: WS2812BConvertedData |= 0x00000D34; - 80028c8: 4b17 ldr r3, [pc, #92] ; (8002928 ) - 80028ca: 681b ldr r3, [r3, #0] - 80028cc: f443 6353 orr.w r3, r3, #3376 ; 0xd30 - 80028d0: f043 0304 orr.w r3, r3, #4 - 80028d4: 4a14 ldr r2, [pc, #80] ; (8002928 ) - 80028d6: 6013 str r3, [r2, #0] + 8002e58: 4b17 ldr r3, [pc, #92] ; (8002eb8 ) + 8002e5a: 681b ldr r3, [r3, #0] + 8002e5c: f443 6353 orr.w r3, r3, #3376 ; 0xd30 + 8002e60: f043 0304 orr.w r3, r3, #4 + 8002e64: 4a14 ldr r2, [pc, #80] ; (8002eb8 ) + 8002e66: 6013 str r3, [r2, #0] break; - 80028d8: e050 b.n 800297c + 8002e68: e050 b.n 8002f0c case 0x0B: WS2812BConvertedData |= 0x00000D36; - 80028da: 4b13 ldr r3, [pc, #76] ; (8002928 ) - 80028dc: 681b ldr r3, [r3, #0] - 80028de: f443 6353 orr.w r3, r3, #3376 ; 0xd30 - 80028e2: f043 0306 orr.w r3, r3, #6 - 80028e6: 4a10 ldr r2, [pc, #64] ; (8002928 ) - 80028e8: 6013 str r3, [r2, #0] + 8002e6a: 4b13 ldr r3, [pc, #76] ; (8002eb8 ) + 8002e6c: 681b ldr r3, [r3, #0] + 8002e6e: f443 6353 orr.w r3, r3, #3376 ; 0xd30 + 8002e72: f043 0306 orr.w r3, r3, #6 + 8002e76: 4a10 ldr r2, [pc, #64] ; (8002eb8 ) + 8002e78: 6013 str r3, [r2, #0] break; - 80028ea: e047 b.n 800297c + 8002e7a: e047 b.n 8002f0c case 0x0C: WS2812BConvertedData |= 0x00000DA4; - 80028ec: 4b0e ldr r3, [pc, #56] ; (8002928 ) - 80028ee: 681b ldr r3, [r3, #0] - 80028f0: f443 635a orr.w r3, r3, #3488 ; 0xda0 - 80028f4: f043 0304 orr.w r3, r3, #4 - 80028f8: 4a0b ldr r2, [pc, #44] ; (8002928 ) - 80028fa: 6013 str r3, [r2, #0] + 8002e7c: 4b0e ldr r3, [pc, #56] ; (8002eb8 ) + 8002e7e: 681b ldr r3, [r3, #0] + 8002e80: f443 635a orr.w r3, r3, #3488 ; 0xda0 + 8002e84: f043 0304 orr.w r3, r3, #4 + 8002e88: 4a0b ldr r2, [pc, #44] ; (8002eb8 ) + 8002e8a: 6013 str r3, [r2, #0] break; - 80028fc: e03e b.n 800297c + 8002e8c: e03e b.n 8002f0c case 0x0D: WS2812BConvertedData |= 0x00000DA6; - 80028fe: 4b0a ldr r3, [pc, #40] ; (8002928 ) - 8002900: 681b ldr r3, [r3, #0] - 8002902: f443 635a orr.w r3, r3, #3488 ; 0xda0 - 8002906: f043 0306 orr.w r3, r3, #6 - 800290a: 4a07 ldr r2, [pc, #28] ; (8002928 ) - 800290c: 6013 str r3, [r2, #0] + 8002e8e: 4b0a ldr r3, [pc, #40] ; (8002eb8 ) + 8002e90: 681b ldr r3, [r3, #0] + 8002e92: f443 635a orr.w r3, r3, #3488 ; 0xda0 + 8002e96: f043 0306 orr.w r3, r3, #6 + 8002e9a: 4a07 ldr r2, [pc, #28] ; (8002eb8 ) + 8002e9c: 6013 str r3, [r2, #0] break; - 800290e: e035 b.n 800297c + 8002e9e: e035 b.n 8002f0c case 0x0E: WS2812BConvertedData |= 0x00000DB4; - 8002910: 4b05 ldr r3, [pc, #20] ; (8002928 ) - 8002912: 681b ldr r3, [r3, #0] - 8002914: f443 635b orr.w r3, r3, #3504 ; 0xdb0 - 8002918: f043 0304 orr.w r3, r3, #4 - 800291c: 4a02 ldr r2, [pc, #8] ; (8002928 ) - 800291e: 6013 str r3, [r2, #0] + 8002ea0: 4b05 ldr r3, [pc, #20] ; (8002eb8 ) + 8002ea2: 681b ldr r3, [r3, #0] + 8002ea4: f443 635b orr.w r3, r3, #3504 ; 0xdb0 + 8002ea8: f043 0304 orr.w r3, r3, #4 + 8002eac: 4a02 ldr r2, [pc, #8] ; (8002eb8 ) + 8002eae: 6013 str r3, [r2, #0] break; - 8002920: e02c b.n 800297c - 8002922: bf00 nop - 8002924: 20000094 .word 0x20000094 - 8002928: 20000494 .word 0x20000494 - 800292c: 00924000 .word 0x00924000 - 8002930: 00926000 .word 0x00926000 - 8002934: 00934000 .word 0x00934000 - 8002938: 00936000 .word 0x00936000 - 800293c: 009a4000 .word 0x009a4000 - 8002940: 009a6000 .word 0x009a6000 - 8002944: 009b4000 .word 0x009b4000 - 8002948: 009b6000 .word 0x009b6000 - 800294c: 00d24000 .word 0x00d24000 - 8002950: 00d26000 .word 0x00d26000 - 8002954: 00d34000 .word 0x00d34000 - 8002958: 00d36000 .word 0x00d36000 - 800295c: 00da4000 .word 0x00da4000 - 8002960: 00da6000 .word 0x00da6000 - 8002964: 00db4000 .word 0x00db4000 - 8002968: 00db6000 .word 0x00db6000 + 8002eb0: e02c b.n 8002f0c + 8002eb2: bf00 nop + 8002eb4: 20000094 .word 0x20000094 + 8002eb8: 20000494 .word 0x20000494 + 8002ebc: 00924000 .word 0x00924000 + 8002ec0: 00926000 .word 0x00926000 + 8002ec4: 00934000 .word 0x00934000 + 8002ec8: 00936000 .word 0x00936000 + 8002ecc: 009a4000 .word 0x009a4000 + 8002ed0: 009a6000 .word 0x009a6000 + 8002ed4: 009b4000 .word 0x009b4000 + 8002ed8: 009b6000 .word 0x009b6000 + 8002edc: 00d24000 .word 0x00d24000 + 8002ee0: 00d26000 .word 0x00d26000 + 8002ee4: 00d34000 .word 0x00d34000 + 8002ee8: 00d36000 .word 0x00d36000 + 8002eec: 00da4000 .word 0x00da4000 + 8002ef0: 00da6000 .word 0x00da6000 + 8002ef4: 00db4000 .word 0x00db4000 + 8002ef8: 00db6000 .word 0x00db6000 default: // 0x0F WS2812BConvertedData |= 0x00000DB6; - 800296c: 4b27 ldr r3, [pc, #156] ; (8002a0c ) - 800296e: 681b ldr r3, [r3, #0] - 8002970: f443 635b orr.w r3, r3, #3504 ; 0xdb0 - 8002974: f043 0306 orr.w r3, r3, #6 - 8002978: 4a24 ldr r2, [pc, #144] ; (8002a0c ) - 800297a: 6013 str r3, [r2, #0] + 8002efc: 4b27 ldr r3, [pc, #156] ; (8002f9c ) + 8002efe: 681b ldr r3, [r3, #0] + 8002f00: f443 635b orr.w r3, r3, #3504 ; 0xdb0 + 8002f04: f043 0306 orr.w r3, r3, #6 + 8002f08: 4a24 ldr r2, [pc, #144] ; (8002f9c ) + 8002f0a: 6013 str r3, [r2, #0] } LEDData_WS2812B[i][j][0] = (WS2812BConvertedData & 0x00FF0000) >> 16; - 800297c: 4b23 ldr r3, [pc, #140] ; (8002a0c ) - 800297e: 681b ldr r3, [r3, #0] - 8002980: 0c1a lsrs r2, r3, #16 - 8002982: 79f9 ldrb r1, [r7, #7] - 8002984: 79bb ldrb r3, [r7, #6] - 8002986: b2d4 uxtb r4, r2 - 8002988: 4821 ldr r0, [pc, #132] ; (8002a10 ) - 800298a: 461a mov r2, r3 - 800298c: 0052 lsls r2, r2, #1 - 800298e: 441a add r2, r3 - 8002990: 460b mov r3, r1 - 8002992: 00db lsls r3, r3, #3 - 8002994: 440b add r3, r1 - 8002996: 4413 add r3, r2 - 8002998: 4403 add r3, r0 - 800299a: 4622 mov r2, r4 - 800299c: 701a strb r2, [r3, #0] + 8002f0c: 4b23 ldr r3, [pc, #140] ; (8002f9c ) + 8002f0e: 681b ldr r3, [r3, #0] + 8002f10: 0c1a lsrs r2, r3, #16 + 8002f12: 79f9 ldrb r1, [r7, #7] + 8002f14: 79bb ldrb r3, [r7, #6] + 8002f16: b2d4 uxtb r4, r2 + 8002f18: 4821 ldr r0, [pc, #132] ; (8002fa0 ) + 8002f1a: 461a mov r2, r3 + 8002f1c: 0052 lsls r2, r2, #1 + 8002f1e: 441a add r2, r3 + 8002f20: 460b mov r3, r1 + 8002f22: 00db lsls r3, r3, #3 + 8002f24: 440b add r3, r1 + 8002f26: 4413 add r3, r2 + 8002f28: 4403 add r3, r0 + 8002f2a: 4622 mov r2, r4 + 8002f2c: 701a strb r2, [r3, #0] LEDData_WS2812B[i][j][1] = (WS2812BConvertedData & 0x0000FF00) >> 8; - 800299e: 4b1b ldr r3, [pc, #108] ; (8002a0c ) - 80029a0: 681b ldr r3, [r3, #0] - 80029a2: 0a1a lsrs r2, r3, #8 - 80029a4: 79f9 ldrb r1, [r7, #7] - 80029a6: 79bb ldrb r3, [r7, #6] - 80029a8: b2d4 uxtb r4, r2 - 80029aa: 4819 ldr r0, [pc, #100] ; (8002a10 ) - 80029ac: 461a mov r2, r3 - 80029ae: 0052 lsls r2, r2, #1 - 80029b0: 441a add r2, r3 - 80029b2: 460b mov r3, r1 - 80029b4: 00db lsls r3, r3, #3 - 80029b6: 440b add r3, r1 - 80029b8: 4413 add r3, r2 - 80029ba: 4403 add r3, r0 - 80029bc: 3301 adds r3, #1 - 80029be: 4622 mov r2, r4 - 80029c0: 701a strb r2, [r3, #0] + 8002f2e: 4b1b ldr r3, [pc, #108] ; (8002f9c ) + 8002f30: 681b ldr r3, [r3, #0] + 8002f32: 0a1a lsrs r2, r3, #8 + 8002f34: 79f9 ldrb r1, [r7, #7] + 8002f36: 79bb ldrb r3, [r7, #6] + 8002f38: b2d4 uxtb r4, r2 + 8002f3a: 4819 ldr r0, [pc, #100] ; (8002fa0 ) + 8002f3c: 461a mov r2, r3 + 8002f3e: 0052 lsls r2, r2, #1 + 8002f40: 441a add r2, r3 + 8002f42: 460b mov r3, r1 + 8002f44: 00db lsls r3, r3, #3 + 8002f46: 440b add r3, r1 + 8002f48: 4413 add r3, r2 + 8002f4a: 4403 add r3, r0 + 8002f4c: 3301 adds r3, #1 + 8002f4e: 4622 mov r2, r4 + 8002f50: 701a strb r2, [r3, #0] LEDData_WS2812B[i][j][2] = WS2812BConvertedData & 0x000000FF; - 80029c2: 4b12 ldr r3, [pc, #72] ; (8002a0c ) - 80029c4: 681a ldr r2, [r3, #0] - 80029c6: 79f9 ldrb r1, [r7, #7] - 80029c8: 79bb ldrb r3, [r7, #6] - 80029ca: b2d4 uxtb r4, r2 - 80029cc: 4810 ldr r0, [pc, #64] ; (8002a10 ) - 80029ce: 461a mov r2, r3 - 80029d0: 0052 lsls r2, r2, #1 - 80029d2: 441a add r2, r3 - 80029d4: 460b mov r3, r1 - 80029d6: 00db lsls r3, r3, #3 - 80029d8: 440b add r3, r1 - 80029da: 4413 add r3, r2 - 80029dc: 4403 add r3, r0 - 80029de: 3302 adds r3, #2 - 80029e0: 4622 mov r2, r4 - 80029e2: 701a strb r2, [r3, #0] + 8002f52: 4b12 ldr r3, [pc, #72] ; (8002f9c ) + 8002f54: 681a ldr r2, [r3, #0] + 8002f56: 79f9 ldrb r1, [r7, #7] + 8002f58: 79bb ldrb r3, [r7, #6] + 8002f5a: b2d4 uxtb r4, r2 + 8002f5c: 4810 ldr r0, [pc, #64] ; (8002fa0 ) + 8002f5e: 461a mov r2, r3 + 8002f60: 0052 lsls r2, r2, #1 + 8002f62: 441a add r2, r3 + 8002f64: 460b mov r3, r1 + 8002f66: 00db lsls r3, r3, #3 + 8002f68: 440b add r3, r1 + 8002f6a: 4413 add r3, r2 + 8002f6c: 4403 add r3, r0 + 8002f6e: 3302 adds r3, #2 + 8002f70: 4622 mov r2, r4 + 8002f72: 701a strb r2, [r3, #0] for (uint8_t j = 0; j < 3; ++j) { - 80029e4: 79bb ldrb r3, [r7, #6] - 80029e6: 3301 adds r3, #1 - 80029e8: 71bb strb r3, [r7, #6] - 80029ea: 79bb ldrb r3, [r7, #6] - 80029ec: 2b02 cmp r3, #2 - 80029ee: f67f ae7a bls.w 80026e6 + 8002f74: 79bb ldrb r3, [r7, #6] + 8002f76: 3301 adds r3, #1 + 8002f78: 71bb strb r3, [r7, #6] + 8002f7a: 79bb ldrb r3, [r7, #6] + 8002f7c: 2b02 cmp r3, #2 + 8002f7e: f67f ae7a bls.w 8002c76 for (uint8_t i = 0; i < 64; ++i) { - 80029f2: 79fb ldrb r3, [r7, #7] - 80029f4: 3301 adds r3, #1 - 80029f6: 71fb strb r3, [r7, #7] - 80029f8: 79fb ldrb r3, [r7, #7] - 80029fa: 2b3f cmp r3, #63 ; 0x3f - 80029fc: f67f ae70 bls.w 80026e0 + 8002f82: 79fb ldrb r3, [r7, #7] + 8002f84: 3301 adds r3, #1 + 8002f86: 71fb strb r3, [r7, #7] + 8002f88: 79fb ldrb r3, [r7, #7] + 8002f8a: 2b3f cmp r3, #63 ; 0x3f + 8002f8c: f67f ae70 bls.w 8002c70 } } } - 8002a00: bf00 nop - 8002a02: 3708 adds r7, #8 - 8002a04: 46bd mov sp, r7 - 8002a06: bc90 pop {r4, r7} - 8002a08: 4770 bx lr - 8002a0a: bf00 nop - 8002a0c: 20000494 .word 0x20000494 - 8002a10: 20000154 .word 0x20000154 + 8002f90: bf00 nop + 8002f92: 3708 adds r7, #8 + 8002f94: 46bd mov sp, r7 + 8002f96: bc90 pop {r4, r7} + 8002f98: 4770 bx lr + 8002f9a: bf00 nop + 8002f9c: 20000494 .word 0x20000494 + 8002fa0: 20000154 .word 0x20000154 -08002a14 : +08002fa4 : /** * @brief This function is executed in case of error occurrence. * @retval None */ void Error_Handler(void) { - 8002a14: b480 push {r7} - 8002a16: af00 add r7, sp, #0 + 8002fa4: b480 push {r7} + 8002fa6: af00 add r7, sp, #0 /* USER CODE BEGIN Error_Handler_Debug */ /* User can add his own implementation to report the HAL error return state */ /* USER CODE END Error_Handler_Debug */ } - 8002a18: bf00 nop - 8002a1a: 46bd mov sp, r7 - 8002a1c: f85d 7b04 ldr.w r7, [sp], #4 - 8002a20: 4770 bx lr + 8002fa8: bf00 nop + 8002faa: 46bd mov sp, r7 + 8002fac: f85d 7b04 ldr.w r7, [sp], #4 + 8002fb0: 4770 bx lr ... -08002a24 : +08002fb4 : /* USER CODE END 0 */ /** * Initializes the Global MSP. */ void HAL_MspInit(void) { - 8002a24: b580 push {r7, lr} - 8002a26: b082 sub sp, #8 - 8002a28: af00 add r7, sp, #0 + 8002fb4: b580 push {r7, lr} + 8002fb6: b082 sub sp, #8 + 8002fb8: af00 add r7, sp, #0 /* USER CODE BEGIN MspInit 0 */ /* USER CODE END MspInit 0 */ __HAL_RCC_SYSCFG_CLK_ENABLE(); - 8002a2a: 2300 movs r3, #0 - 8002a2c: 607b str r3, [r7, #4] - 8002a2e: 4b10 ldr r3, [pc, #64] ; (8002a70 ) - 8002a30: 6c5b ldr r3, [r3, #68] ; 0x44 - 8002a32: 4a0f ldr r2, [pc, #60] ; (8002a70 ) - 8002a34: f443 4380 orr.w r3, r3, #16384 ; 0x4000 - 8002a38: 6453 str r3, [r2, #68] ; 0x44 - 8002a3a: 4b0d ldr r3, [pc, #52] ; (8002a70 ) - 8002a3c: 6c5b ldr r3, [r3, #68] ; 0x44 - 8002a3e: f403 4380 and.w r3, r3, #16384 ; 0x4000 - 8002a42: 607b str r3, [r7, #4] - 8002a44: 687b ldr r3, [r7, #4] + 8002fba: 2300 movs r3, #0 + 8002fbc: 607b str r3, [r7, #4] + 8002fbe: 4b10 ldr r3, [pc, #64] ; (8003000 ) + 8002fc0: 6c5b ldr r3, [r3, #68] ; 0x44 + 8002fc2: 4a0f ldr r2, [pc, #60] ; (8003000 ) + 8002fc4: f443 4380 orr.w r3, r3, #16384 ; 0x4000 + 8002fc8: 6453 str r3, [r2, #68] ; 0x44 + 8002fca: 4b0d ldr r3, [pc, #52] ; (8003000 ) + 8002fcc: 6c5b ldr r3, [r3, #68] ; 0x44 + 8002fce: f403 4380 and.w r3, r3, #16384 ; 0x4000 + 8002fd2: 607b str r3, [r7, #4] + 8002fd4: 687b ldr r3, [r7, #4] __HAL_RCC_PWR_CLK_ENABLE(); - 8002a46: 2300 movs r3, #0 - 8002a48: 603b str r3, [r7, #0] - 8002a4a: 4b09 ldr r3, [pc, #36] ; (8002a70 ) - 8002a4c: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002a4e: 4a08 ldr r2, [pc, #32] ; (8002a70 ) - 8002a50: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 8002a54: 6413 str r3, [r2, #64] ; 0x40 - 8002a56: 4b06 ldr r3, [pc, #24] ; (8002a70 ) - 8002a58: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002a5a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 8002a5e: 603b str r3, [r7, #0] - 8002a60: 683b ldr r3, [r7, #0] + 8002fd6: 2300 movs r3, #0 + 8002fd8: 603b str r3, [r7, #0] + 8002fda: 4b09 ldr r3, [pc, #36] ; (8003000 ) + 8002fdc: 6c1b ldr r3, [r3, #64] ; 0x40 + 8002fde: 4a08 ldr r2, [pc, #32] ; (8003000 ) + 8002fe0: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 8002fe4: 6413 str r3, [r2, #64] ; 0x40 + 8002fe6: 4b06 ldr r3, [pc, #24] ; (8003000 ) + 8002fe8: 6c1b ldr r3, [r3, #64] ; 0x40 + 8002fea: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 8002fee: 603b str r3, [r7, #0] + 8002ff0: 683b ldr r3, [r7, #0] HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_0); - 8002a62: 2007 movs r0, #7 - 8002a64: f000 fedc bl 8003820 + 8002ff2: 2007 movs r0, #7 + 8002ff4: f000 fed6 bl 8003da4 /* System interrupt init*/ /* USER CODE BEGIN MspInit 1 */ /* USER CODE END MspInit 1 */ } - 8002a68: bf00 nop - 8002a6a: 3708 adds r7, #8 - 8002a6c: 46bd mov sp, r7 - 8002a6e: bd80 pop {r7, pc} - 8002a70: 40023800 .word 0x40023800 + 8002ff8: bf00 nop + 8002ffa: 3708 adds r7, #8 + 8002ffc: 46bd mov sp, r7 + 8002ffe: bd80 pop {r7, pc} + 8003000: 40023800 .word 0x40023800 -08002a74 : +08003004 : * This function configures the hardware resources used in this example * @param hadc: ADC handle pointer * @retval None */ void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc) { - 8002a74: b580 push {r7, lr} - 8002a76: b08a sub sp, #40 ; 0x28 - 8002a78: af00 add r7, sp, #0 - 8002a7a: 6078 str r0, [r7, #4] + 8003004: b580 push {r7, lr} + 8003006: b08a sub sp, #40 ; 0x28 + 8003008: af00 add r7, sp, #0 + 800300a: 6078 str r0, [r7, #4] GPIO_InitTypeDef GPIO_InitStruct = {0}; - 8002a7c: f107 0314 add.w r3, r7, #20 - 8002a80: 2200 movs r2, #0 - 8002a82: 601a str r2, [r3, #0] - 8002a84: 605a str r2, [r3, #4] - 8002a86: 609a str r2, [r3, #8] - 8002a88: 60da str r2, [r3, #12] - 8002a8a: 611a str r2, [r3, #16] + 800300c: f107 0314 add.w r3, r7, #20 + 8003010: 2200 movs r2, #0 + 8003012: 601a str r2, [r3, #0] + 8003014: 605a str r2, [r3, #4] + 8003016: 609a str r2, [r3, #8] + 8003018: 60da str r2, [r3, #12] + 800301a: 611a str r2, [r3, #16] if(hadc->Instance==ADC3) - 8002a8c: 687b ldr r3, [r7, #4] - 8002a8e: 681b ldr r3, [r3, #0] - 8002a90: 4a17 ldr r2, [pc, #92] ; (8002af0 ) - 8002a92: 4293 cmp r3, r2 - 8002a94: d127 bne.n 8002ae6 + 800301c: 687b ldr r3, [r7, #4] + 800301e: 681b ldr r3, [r3, #0] + 8003020: 4a17 ldr r2, [pc, #92] ; (8003080 ) + 8003022: 4293 cmp r3, r2 + 8003024: d127 bne.n 8003076 { /* USER CODE BEGIN ADC3_MspInit 0 */ /* USER CODE END ADC3_MspInit 0 */ /* Peripheral clock enable */ __HAL_RCC_ADC3_CLK_ENABLE(); - 8002a96: 2300 movs r3, #0 - 8002a98: 613b str r3, [r7, #16] - 8002a9a: 4b16 ldr r3, [pc, #88] ; (8002af4 ) - 8002a9c: 6c5b ldr r3, [r3, #68] ; 0x44 - 8002a9e: 4a15 ldr r2, [pc, #84] ; (8002af4 ) - 8002aa0: f443 6380 orr.w r3, r3, #1024 ; 0x400 - 8002aa4: 6453 str r3, [r2, #68] ; 0x44 - 8002aa6: 4b13 ldr r3, [pc, #76] ; (8002af4 ) - 8002aa8: 6c5b ldr r3, [r3, #68] ; 0x44 - 8002aaa: f403 6380 and.w r3, r3, #1024 ; 0x400 - 8002aae: 613b str r3, [r7, #16] - 8002ab0: 693b ldr r3, [r7, #16] + 8003026: 2300 movs r3, #0 + 8003028: 613b str r3, [r7, #16] + 800302a: 4b16 ldr r3, [pc, #88] ; (8003084 ) + 800302c: 6c5b ldr r3, [r3, #68] ; 0x44 + 800302e: 4a15 ldr r2, [pc, #84] ; (8003084 ) + 8003030: f443 6380 orr.w r3, r3, #1024 ; 0x400 + 8003034: 6453 str r3, [r2, #68] ; 0x44 + 8003036: 4b13 ldr r3, [pc, #76] ; (8003084 ) + 8003038: 6c5b ldr r3, [r3, #68] ; 0x44 + 800303a: f403 6380 and.w r3, r3, #1024 ; 0x400 + 800303e: 613b str r3, [r7, #16] + 8003040: 693b ldr r3, [r7, #16] __HAL_RCC_GPIOF_CLK_ENABLE(); - 8002ab2: 2300 movs r3, #0 - 8002ab4: 60fb str r3, [r7, #12] - 8002ab6: 4b0f ldr r3, [pc, #60] ; (8002af4 ) - 8002ab8: 6b1b ldr r3, [r3, #48] ; 0x30 - 8002aba: 4a0e ldr r2, [pc, #56] ; (8002af4 ) - 8002abc: f043 0320 orr.w r3, r3, #32 - 8002ac0: 6313 str r3, [r2, #48] ; 0x30 - 8002ac2: 4b0c ldr r3, [pc, #48] ; (8002af4 ) - 8002ac4: 6b1b ldr r3, [r3, #48] ; 0x30 - 8002ac6: f003 0320 and.w r3, r3, #32 - 8002aca: 60fb str r3, [r7, #12] - 8002acc: 68fb ldr r3, [r7, #12] + 8003042: 2300 movs r3, #0 + 8003044: 60fb str r3, [r7, #12] + 8003046: 4b0f ldr r3, [pc, #60] ; (8003084 ) + 8003048: 6b1b ldr r3, [r3, #48] ; 0x30 + 800304a: 4a0e ldr r2, [pc, #56] ; (8003084 ) + 800304c: f043 0320 orr.w r3, r3, #32 + 8003050: 6313 str r3, [r2, #48] ; 0x30 + 8003052: 4b0c ldr r3, [pc, #48] ; (8003084 ) + 8003054: 6b1b ldr r3, [r3, #48] ; 0x30 + 8003056: f003 0320 and.w r3, r3, #32 + 800305a: 60fb str r3, [r7, #12] + 800305c: 68fb ldr r3, [r7, #12] /**ADC3 GPIO Configuration PF6 ------> ADC3_IN4 */ GPIO_InitStruct.Pin = GPIO_PIN_6; - 8002ace: 2340 movs r3, #64 ; 0x40 - 8002ad0: 617b str r3, [r7, #20] + 800305e: 2340 movs r3, #64 ; 0x40 + 8003060: 617b str r3, [r7, #20] GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; - 8002ad2: 2303 movs r3, #3 - 8002ad4: 61bb str r3, [r7, #24] + 8003062: 2303 movs r3, #3 + 8003064: 61bb str r3, [r7, #24] GPIO_InitStruct.Pull = GPIO_NOPULL; - 8002ad6: 2300 movs r3, #0 - 8002ad8: 61fb str r3, [r7, #28] + 8003066: 2300 movs r3, #0 + 8003068: 61fb str r3, [r7, #28] HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); - 8002ada: f107 0314 add.w r3, r7, #20 - 8002ade: 4619 mov r1, r3 - 8002ae0: 4805 ldr r0, [pc, #20] ; (8002af8 ) - 8002ae2: f000 ff01 bl 80038e8 + 800306a: f107 0314 add.w r3, r7, #20 + 800306e: 4619 mov r1, r3 + 8003070: 4805 ldr r0, [pc, #20] ; (8003088 ) + 8003072: f000 fefb bl 8003e6c /* USER CODE BEGIN ADC3_MspInit 1 */ /* USER CODE END ADC3_MspInit 1 */ } } - 8002ae6: bf00 nop - 8002ae8: 3728 adds r7, #40 ; 0x28 - 8002aea: 46bd mov sp, r7 - 8002aec: bd80 pop {r7, pc} - 8002aee: bf00 nop - 8002af0: 40012200 .word 0x40012200 - 8002af4: 40023800 .word 0x40023800 - 8002af8: 40021400 .word 0x40021400 + 8003076: bf00 nop + 8003078: 3728 adds r7, #40 ; 0x28 + 800307a: 46bd mov sp, r7 + 800307c: bd80 pop {r7, pc} + 800307e: bf00 nop + 8003080: 40012200 .word 0x40012200 + 8003084: 40023800 .word 0x40023800 + 8003088: 40021400 .word 0x40021400 -08002afc : +0800308c : * This function configures the hardware resources used in this example * @param hspi: SPI handle pointer * @retval None */ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi) { - 8002afc: b580 push {r7, lr} - 8002afe: b08a sub sp, #40 ; 0x28 - 8002b00: af00 add r7, sp, #0 - 8002b02: 6078 str r0, [r7, #4] + 800308c: b580 push {r7, lr} + 800308e: b08a sub sp, #40 ; 0x28 + 8003090: af00 add r7, sp, #0 + 8003092: 6078 str r0, [r7, #4] GPIO_InitTypeDef GPIO_InitStruct = {0}; - 8002b04: f107 0314 add.w r3, r7, #20 - 8002b08: 2200 movs r2, #0 - 8002b0a: 601a str r2, [r3, #0] - 8002b0c: 605a str r2, [r3, #4] - 8002b0e: 609a str r2, [r3, #8] - 8002b10: 60da str r2, [r3, #12] - 8002b12: 611a str r2, [r3, #16] + 8003094: f107 0314 add.w r3, r7, #20 + 8003098: 2200 movs r2, #0 + 800309a: 601a str r2, [r3, #0] + 800309c: 605a str r2, [r3, #4] + 800309e: 609a str r2, [r3, #8] + 80030a0: 60da str r2, [r3, #12] + 80030a2: 611a str r2, [r3, #16] if(hspi->Instance==SPI4) - 8002b14: 687b ldr r3, [r7, #4] - 8002b16: 681b ldr r3, [r3, #0] - 8002b18: 4a1d ldr r2, [pc, #116] ; (8002b90 ) - 8002b1a: 4293 cmp r3, r2 - 8002b1c: d133 bne.n 8002b86 + 80030a4: 687b ldr r3, [r7, #4] + 80030a6: 681b ldr r3, [r3, #0] + 80030a8: 4a1d ldr r2, [pc, #116] ; (8003120 ) + 80030aa: 4293 cmp r3, r2 + 80030ac: d133 bne.n 8003116 { /* USER CODE BEGIN SPI4_MspInit 0 */ /* USER CODE END SPI4_MspInit 0 */ /* Peripheral clock enable */ __HAL_RCC_SPI4_CLK_ENABLE(); - 8002b1e: 2300 movs r3, #0 - 8002b20: 613b str r3, [r7, #16] - 8002b22: 4b1c ldr r3, [pc, #112] ; (8002b94 ) - 8002b24: 6c5b ldr r3, [r3, #68] ; 0x44 - 8002b26: 4a1b ldr r2, [pc, #108] ; (8002b94 ) - 8002b28: f443 5300 orr.w r3, r3, #8192 ; 0x2000 - 8002b2c: 6453 str r3, [r2, #68] ; 0x44 - 8002b2e: 4b19 ldr r3, [pc, #100] ; (8002b94 ) - 8002b30: 6c5b ldr r3, [r3, #68] ; 0x44 - 8002b32: f403 5300 and.w r3, r3, #8192 ; 0x2000 - 8002b36: 613b str r3, [r7, #16] - 8002b38: 693b ldr r3, [r7, #16] + 80030ae: 2300 movs r3, #0 + 80030b0: 613b str r3, [r7, #16] + 80030b2: 4b1c ldr r3, [pc, #112] ; (8003124 ) + 80030b4: 6c5b ldr r3, [r3, #68] ; 0x44 + 80030b6: 4a1b ldr r2, [pc, #108] ; (8003124 ) + 80030b8: f443 5300 orr.w r3, r3, #8192 ; 0x2000 + 80030bc: 6453 str r3, [r2, #68] ; 0x44 + 80030be: 4b19 ldr r3, [pc, #100] ; (8003124 ) + 80030c0: 6c5b ldr r3, [r3, #68] ; 0x44 + 80030c2: f403 5300 and.w r3, r3, #8192 ; 0x2000 + 80030c6: 613b str r3, [r7, #16] + 80030c8: 693b ldr r3, [r7, #16] __HAL_RCC_GPIOE_CLK_ENABLE(); - 8002b3a: 2300 movs r3, #0 - 8002b3c: 60fb str r3, [r7, #12] - 8002b3e: 4b15 ldr r3, [pc, #84] ; (8002b94 ) - 8002b40: 6b1b ldr r3, [r3, #48] ; 0x30 - 8002b42: 4a14 ldr r2, [pc, #80] ; (8002b94 ) - 8002b44: f043 0310 orr.w r3, r3, #16 - 8002b48: 6313 str r3, [r2, #48] ; 0x30 - 8002b4a: 4b12 ldr r3, [pc, #72] ; (8002b94 ) - 8002b4c: 6b1b ldr r3, [r3, #48] ; 0x30 - 8002b4e: f003 0310 and.w r3, r3, #16 - 8002b52: 60fb str r3, [r7, #12] - 8002b54: 68fb ldr r3, [r7, #12] + 80030ca: 2300 movs r3, #0 + 80030cc: 60fb str r3, [r7, #12] + 80030ce: 4b15 ldr r3, [pc, #84] ; (8003124 ) + 80030d0: 6b1b ldr r3, [r3, #48] ; 0x30 + 80030d2: 4a14 ldr r2, [pc, #80] ; (8003124 ) + 80030d4: f043 0310 orr.w r3, r3, #16 + 80030d8: 6313 str r3, [r2, #48] ; 0x30 + 80030da: 4b12 ldr r3, [pc, #72] ; (8003124 ) + 80030dc: 6b1b ldr r3, [r3, #48] ; 0x30 + 80030de: f003 0310 and.w r3, r3, #16 + 80030e2: 60fb str r3, [r7, #12] + 80030e4: 68fb ldr r3, [r7, #12] /**SPI4 GPIO Configuration PE2 ------> SPI4_SCK PE6 ------> SPI4_MOSI */ GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_6; - 8002b56: 2344 movs r3, #68 ; 0x44 - 8002b58: 617b str r3, [r7, #20] + 80030e6: 2344 movs r3, #68 ; 0x44 + 80030e8: 617b str r3, [r7, #20] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8002b5a: 2302 movs r3, #2 - 8002b5c: 61bb str r3, [r7, #24] + 80030ea: 2302 movs r3, #2 + 80030ec: 61bb str r3, [r7, #24] GPIO_InitStruct.Pull = GPIO_NOPULL; - 8002b5e: 2300 movs r3, #0 - 8002b60: 61fb str r3, [r7, #28] + 80030ee: 2300 movs r3, #0 + 80030f0: 61fb str r3, [r7, #28] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 8002b62: 2303 movs r3, #3 - 8002b64: 623b str r3, [r7, #32] + 80030f2: 2303 movs r3, #3 + 80030f4: 623b str r3, [r7, #32] GPIO_InitStruct.Alternate = GPIO_AF5_SPI4; - 8002b66: 2305 movs r3, #5 - 8002b68: 627b str r3, [r7, #36] ; 0x24 + 80030f6: 2305 movs r3, #5 + 80030f8: 627b str r3, [r7, #36] ; 0x24 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); - 8002b6a: f107 0314 add.w r3, r7, #20 - 8002b6e: 4619 mov r1, r3 - 8002b70: 4809 ldr r0, [pc, #36] ; (8002b98 ) - 8002b72: f000 feb9 bl 80038e8 + 80030fa: f107 0314 add.w r3, r7, #20 + 80030fe: 4619 mov r1, r3 + 8003100: 4809 ldr r0, [pc, #36] ; (8003128 ) + 8003102: f000 feb3 bl 8003e6c /* SPI4 interrupt Init */ HAL_NVIC_SetPriority(SPI4_IRQn, 0, 0); - 8002b76: 2200 movs r2, #0 - 8002b78: 2100 movs r1, #0 - 8002b7a: 2054 movs r0, #84 ; 0x54 - 8002b7c: f000 fe5b bl 8003836 + 8003106: 2200 movs r2, #0 + 8003108: 2100 movs r1, #0 + 800310a: 2054 movs r0, #84 ; 0x54 + 800310c: f000 fe55 bl 8003dba HAL_NVIC_EnableIRQ(SPI4_IRQn); - 8002b80: 2054 movs r0, #84 ; 0x54 - 8002b82: f000 fe74 bl 800386e + 8003110: 2054 movs r0, #84 ; 0x54 + 8003112: f000 fe6e bl 8003df2 /* USER CODE BEGIN SPI4_MspInit 1 */ /* USER CODE END SPI4_MspInit 1 */ } } - 8002b86: bf00 nop - 8002b88: 3728 adds r7, #40 ; 0x28 - 8002b8a: 46bd mov sp, r7 - 8002b8c: bd80 pop {r7, pc} - 8002b8e: bf00 nop - 8002b90: 40013400 .word 0x40013400 - 8002b94: 40023800 .word 0x40023800 - 8002b98: 40021000 .word 0x40021000 + 8003116: bf00 nop + 8003118: 3728 adds r7, #40 ; 0x28 + 800311a: 46bd mov sp, r7 + 800311c: bd80 pop {r7, pc} + 800311e: bf00 nop + 8003120: 40013400 .word 0x40013400 + 8003124: 40023800 .word 0x40023800 + 8003128: 40021000 .word 0x40021000 -08002b9c : +0800312c : * This function configures the hardware resources used in this example * @param htim_base: TIM_Base handle pointer * @retval None */ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) { - 8002b9c: b580 push {r7, lr} - 8002b9e: b084 sub sp, #16 - 8002ba0: af00 add r7, sp, #0 - 8002ba2: 6078 str r0, [r7, #4] + 800312c: b580 push {r7, lr} + 800312e: b084 sub sp, #16 + 8003130: af00 add r7, sp, #0 + 8003132: 6078 str r0, [r7, #4] if(htim_base->Instance==TIM6) - 8002ba4: 687b ldr r3, [r7, #4] - 8002ba6: 681b ldr r3, [r3, #0] - 8002ba8: 4a0e ldr r2, [pc, #56] ; (8002be4 ) - 8002baa: 4293 cmp r3, r2 - 8002bac: d115 bne.n 8002bda + 8003134: 687b ldr r3, [r7, #4] + 8003136: 681b ldr r3, [r3, #0] + 8003138: 4a0e ldr r2, [pc, #56] ; (8003174 ) + 800313a: 4293 cmp r3, r2 + 800313c: d115 bne.n 800316a { /* USER CODE BEGIN TIM6_MspInit 0 */ /* USER CODE END TIM6_MspInit 0 */ /* Peripheral clock enable */ __HAL_RCC_TIM6_CLK_ENABLE(); - 8002bae: 2300 movs r3, #0 - 8002bb0: 60fb str r3, [r7, #12] - 8002bb2: 4b0d ldr r3, [pc, #52] ; (8002be8 ) - 8002bb4: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002bb6: 4a0c ldr r2, [pc, #48] ; (8002be8 ) - 8002bb8: f043 0310 orr.w r3, r3, #16 - 8002bbc: 6413 str r3, [r2, #64] ; 0x40 - 8002bbe: 4b0a ldr r3, [pc, #40] ; (8002be8 ) - 8002bc0: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002bc2: f003 0310 and.w r3, r3, #16 - 8002bc6: 60fb str r3, [r7, #12] - 8002bc8: 68fb ldr r3, [r7, #12] + 800313e: 2300 movs r3, #0 + 8003140: 60fb str r3, [r7, #12] + 8003142: 4b0d ldr r3, [pc, #52] ; (8003178 ) + 8003144: 6c1b ldr r3, [r3, #64] ; 0x40 + 8003146: 4a0c ldr r2, [pc, #48] ; (8003178 ) + 8003148: f043 0310 orr.w r3, r3, #16 + 800314c: 6413 str r3, [r2, #64] ; 0x40 + 800314e: 4b0a ldr r3, [pc, #40] ; (8003178 ) + 8003150: 6c1b ldr r3, [r3, #64] ; 0x40 + 8003152: f003 0310 and.w r3, r3, #16 + 8003156: 60fb str r3, [r7, #12] + 8003158: 68fb ldr r3, [r7, #12] /* TIM6 interrupt Init */ HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 0, 0); - 8002bca: 2200 movs r2, #0 - 8002bcc: 2100 movs r1, #0 - 8002bce: 2036 movs r0, #54 ; 0x36 - 8002bd0: f000 fe31 bl 8003836 + 800315a: 2200 movs r2, #0 + 800315c: 2100 movs r1, #0 + 800315e: 2036 movs r0, #54 ; 0x36 + 8003160: f000 fe2b bl 8003dba HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn); - 8002bd4: 2036 movs r0, #54 ; 0x36 - 8002bd6: f000 fe4a bl 800386e + 8003164: 2036 movs r0, #54 ; 0x36 + 8003166: f000 fe44 bl 8003df2 /* USER CODE BEGIN TIM6_MspInit 1 */ /* USER CODE END TIM6_MspInit 1 */ } } - 8002bda: bf00 nop - 8002bdc: 3710 adds r7, #16 - 8002bde: 46bd mov sp, r7 - 8002be0: bd80 pop {r7, pc} - 8002be2: bf00 nop - 8002be4: 40001000 .word 0x40001000 - 8002be8: 40023800 .word 0x40023800 + 800316a: bf00 nop + 800316c: 3710 adds r7, #16 + 800316e: 46bd mov sp, r7 + 8003170: bd80 pop {r7, pc} + 8003172: bf00 nop + 8003174: 40001000 .word 0x40001000 + 8003178: 40023800 .word 0x40023800 -08002bec : +0800317c : /******************************************************************************/ /** * @brief This function handles Non maskable interrupt. */ void NMI_Handler(void) { - 8002bec: b480 push {r7} - 8002bee: af00 add r7, sp, #0 + 800317c: b480 push {r7} + 800317e: af00 add r7, sp, #0 /* USER CODE END NonMaskableInt_IRQn 0 */ /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ /* USER CODE END NonMaskableInt_IRQn 1 */ } - 8002bf0: bf00 nop - 8002bf2: 46bd mov sp, r7 - 8002bf4: f85d 7b04 ldr.w r7, [sp], #4 - 8002bf8: 4770 bx lr + 8003180: bf00 nop + 8003182: 46bd mov sp, r7 + 8003184: f85d 7b04 ldr.w r7, [sp], #4 + 8003188: 4770 bx lr -08002bfa : +0800318a : /** * @brief This function handles Hard fault interrupt. */ void HardFault_Handler(void) { - 8002bfa: b480 push {r7} - 8002bfc: af00 add r7, sp, #0 + 800318a: b480 push {r7} + 800318c: af00 add r7, sp, #0 /* USER CODE BEGIN HardFault_IRQn 0 */ /* USER CODE END HardFault_IRQn 0 */ while (1) - 8002bfe: e7fe b.n 8002bfe + 800318e: e7fe b.n 800318e -08002c00 : +08003190 : /** * @brief This function handles Memory management fault. */ void MemManage_Handler(void) { - 8002c00: b480 push {r7} - 8002c02: af00 add r7, sp, #0 + 8003190: b480 push {r7} + 8003192: af00 add r7, sp, #0 /* USER CODE BEGIN MemoryManagement_IRQn 0 */ /* USER CODE END MemoryManagement_IRQn 0 */ while (1) - 8002c04: e7fe b.n 8002c04 + 8003194: e7fe b.n 8003194 -08002c06 : +08003196 : /** * @brief This function handles Pre-fetch fault, memory access fault. */ void BusFault_Handler(void) { - 8002c06: b480 push {r7} - 8002c08: af00 add r7, sp, #0 + 8003196: b480 push {r7} + 8003198: af00 add r7, sp, #0 /* USER CODE BEGIN BusFault_IRQn 0 */ /* USER CODE END BusFault_IRQn 0 */ while (1) - 8002c0a: e7fe b.n 8002c0a + 800319a: e7fe b.n 800319a -08002c0c : +0800319c : /** * @brief This function handles Undefined instruction or illegal state. */ void UsageFault_Handler(void) { - 8002c0c: b480 push {r7} - 8002c0e: af00 add r7, sp, #0 + 800319c: b480 push {r7} + 800319e: af00 add r7, sp, #0 /* USER CODE BEGIN UsageFault_IRQn 0 */ /* USER CODE END UsageFault_IRQn 0 */ while (1) - 8002c10: e7fe b.n 8002c10 + 80031a0: e7fe b.n 80031a0 -08002c12 : +080031a2 : /** * @brief This function handles System service call via SWI instruction. */ void SVC_Handler(void) { - 8002c12: b480 push {r7} - 8002c14: af00 add r7, sp, #0 + 80031a2: b480 push {r7} + 80031a4: af00 add r7, sp, #0 /* USER CODE END SVCall_IRQn 0 */ /* USER CODE BEGIN SVCall_IRQn 1 */ /* USER CODE END SVCall_IRQn 1 */ } - 8002c16: bf00 nop - 8002c18: 46bd mov sp, r7 - 8002c1a: f85d 7b04 ldr.w r7, [sp], #4 - 8002c1e: 4770 bx lr + 80031a6: bf00 nop + 80031a8: 46bd mov sp, r7 + 80031aa: f85d 7b04 ldr.w r7, [sp], #4 + 80031ae: 4770 bx lr -08002c20 : +080031b0 : /** * @brief This function handles Debug monitor. */ void DebugMon_Handler(void) { - 8002c20: b480 push {r7} - 8002c22: af00 add r7, sp, #0 + 80031b0: b480 push {r7} + 80031b2: af00 add r7, sp, #0 /* USER CODE END DebugMonitor_IRQn 0 */ /* USER CODE BEGIN DebugMonitor_IRQn 1 */ /* USER CODE END DebugMonitor_IRQn 1 */ } - 8002c24: bf00 nop - 8002c26: 46bd mov sp, r7 - 8002c28: f85d 7b04 ldr.w r7, [sp], #4 - 8002c2c: 4770 bx lr + 80031b4: bf00 nop + 80031b6: 46bd mov sp, r7 + 80031b8: f85d 7b04 ldr.w r7, [sp], #4 + 80031bc: 4770 bx lr -08002c2e : +080031be : /** * @brief This function handles Pendable request for system service. */ void PendSV_Handler(void) { - 8002c2e: b480 push {r7} - 8002c30: af00 add r7, sp, #0 + 80031be: b480 push {r7} + 80031c0: af00 add r7, sp, #0 /* USER CODE END PendSV_IRQn 0 */ /* USER CODE BEGIN PendSV_IRQn 1 */ /* USER CODE END PendSV_IRQn 1 */ } - 8002c32: bf00 nop - 8002c34: 46bd mov sp, r7 - 8002c36: f85d 7b04 ldr.w r7, [sp], #4 - 8002c3a: 4770 bx lr + 80031c2: bf00 nop + 80031c4: 46bd mov sp, r7 + 80031c6: f85d 7b04 ldr.w r7, [sp], #4 + 80031ca: 4770 bx lr -08002c3c : +080031cc : /** * @brief This function handles System tick timer. */ void SysTick_Handler(void) { - 8002c3c: b580 push {r7, lr} - 8002c3e: af00 add r7, sp, #0 + 80031cc: b580 push {r7, lr} + 80031ce: af00 add r7, sp, #0 /* USER CODE BEGIN SysTick_IRQn 0 */ /* USER CODE END SysTick_IRQn 0 */ HAL_IncTick(); - 8002c40: f000 f912 bl 8002e68 + 80031d0: f000 f90c bl 80033ec /* USER CODE BEGIN SysTick_IRQn 1 */ /* USER CODE END SysTick_IRQn 1 */ } - 8002c44: bf00 nop - 8002c46: bd80 pop {r7, pc} + 80031d4: bf00 nop + 80031d6: bd80 pop {r7, pc} -08002c48 : +080031d8 : /** * @brief This function handles EXTI line0 interrupt. */ void EXTI0_IRQHandler(void) { - 8002c48: b580 push {r7, lr} - 8002c4a: af00 add r7, sp, #0 + 80031d8: b580 push {r7, lr} + 80031da: af00 add r7, sp, #0 /* USER CODE BEGIN EXTI0_IRQn 0 */ /* USER CODE END EXTI0_IRQn 0 */ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0); - 8002c4c: 2001 movs r0, #1 - 8002c4e: f001 f80f bl 8003c70 + 80031dc: 2001 movs r0, #1 + 80031de: f001 f809 bl 80041f4 /* USER CODE BEGIN EXTI0_IRQn 1 */ HAL_TIM_Base_Start_IT(&htim6); - 8002c52: 4804 ldr r0, [pc, #16] ; (8002c64 ) - 8002c54: f001 ffeb bl 8004c2e + 80031e2: 4804 ldr r0, [pc, #16] ; (80031f4 ) + 80031e4: f001 ffe5 bl 80051b2 LEDDesign_PendingChange = true; - 8002c58: 4b03 ldr r3, [pc, #12] ; (8002c68 ) - 8002c5a: 2201 movs r2, #1 - 8002c5c: 701a strb r2, [r3, #0] + 80031e8: 4b03 ldr r3, [pc, #12] ; (80031f8 ) + 80031ea: 2201 movs r2, #1 + 80031ec: 701a strb r2, [r3, #0] /* USER CODE END EXTI0_IRQn 1 */ } - 8002c5e: bf00 nop - 8002c60: bd80 pop {r7, pc} - 8002c62: bf00 nop - 8002c64: 20000454 .word 0x20000454 - 8002c68: 20000091 .word 0x20000091 + 80031ee: bf00 nop + 80031f0: bd80 pop {r7, pc} + 80031f2: bf00 nop + 80031f4: 20000454 .word 0x20000454 + 80031f8: 20000091 .word 0x20000091 -08002c6c : +080031fc : /** * @brief This function handles TIM6 global interrupt, DAC1 and DAC2 underrun error interrupts. */ void TIM6_DAC_IRQHandler(void) { - 8002c6c: b580 push {r7, lr} - 8002c6e: af00 add r7, sp, #0 + 80031fc: b580 push {r7, lr} + 80031fe: af00 add r7, sp, #0 /* USER CODE BEGIN TIM6_DAC_IRQn 0 */ /* USER CODE END TIM6_DAC_IRQn 0 */ HAL_TIM_IRQHandler(&htim6); - 8002c70: 480c ldr r0, [pc, #48] ; (8002ca4 ) - 8002c72: f002 f846 bl 8004d02 + 8003200: 480a ldr r0, [pc, #40] ; (800322c ) + 8003202: f002 f840 bl 8005286 /* USER CODE BEGIN TIM6_DAC_IRQn 1 */ - LEDMode = (LEDMode + 1) % 7; - 8002c76: 4b0c ldr r3, [pc, #48] ; (8002ca8 ) - 8002c78: 781b ldrb r3, [r3, #0] - 8002c7a: 1c5a adds r2, r3, #1 - 8002c7c: 4b0b ldr r3, [pc, #44] ; (8002cac ) - 8002c7e: fb83 1302 smull r1, r3, r3, r2 - 8002c82: 4413 add r3, r2 - 8002c84: 1099 asrs r1, r3, #2 - 8002c86: 17d3 asrs r3, r2, #31 - 8002c88: 1ac9 subs r1, r1, r3 - 8002c8a: 460b mov r3, r1 - 8002c8c: 00db lsls r3, r3, #3 - 8002c8e: 1a5b subs r3, r3, r1 - 8002c90: 1ad1 subs r1, r2, r3 - 8002c92: b2ca uxtb r2, r1 - 8002c94: 4b04 ldr r3, [pc, #16] ; (8002ca8 ) - 8002c96: 701a strb r2, [r3, #0] + LEDMode = (LEDMode + 1) % 8; + 8003206: 4b0a ldr r3, [pc, #40] ; (8003230 ) + 8003208: 781b ldrb r3, [r3, #0] + 800320a: 3301 adds r3, #1 + 800320c: 425a negs r2, r3 + 800320e: f003 0307 and.w r3, r3, #7 + 8003212: f002 0207 and.w r2, r2, #7 + 8003216: bf58 it pl + 8003218: 4253 negpl r3, r2 + 800321a: b2da uxtb r2, r3 + 800321c: 4b04 ldr r3, [pc, #16] ; (8003230 ) + 800321e: 701a strb r2, [r3, #0] LEDDesign_PendingChange = false; - 8002c98: 4b05 ldr r3, [pc, #20] ; (8002cb0 ) - 8002c9a: 2200 movs r2, #0 - 8002c9c: 701a strb r2, [r3, #0] + 8003220: 4b04 ldr r3, [pc, #16] ; (8003234 ) + 8003222: 2200 movs r2, #0 + 8003224: 701a strb r2, [r3, #0] /* USER CODE END TIM6_DAC_IRQn 1 */ } - 8002c9e: bf00 nop - 8002ca0: bd80 pop {r7, pc} - 8002ca2: bf00 nop - 8002ca4: 20000454 .word 0x20000454 - 8002ca8: 20000090 .word 0x20000090 - 8002cac: 92492493 .word 0x92492493 - 8002cb0: 20000091 .word 0x20000091 + 8003226: bf00 nop + 8003228: bd80 pop {r7, pc} + 800322a: bf00 nop + 800322c: 20000454 .word 0x20000454 + 8003230: 20000090 .word 0x20000090 + 8003234: 20000091 .word 0x20000091 -08002cb4 : +08003238 : /** * @brief This function handles SPI4 global interrupt. */ void SPI4_IRQHandler(void) { - 8002cb4: b580 push {r7, lr} - 8002cb6: af00 add r7, sp, #0 + 8003238: b580 push {r7, lr} + 800323a: af00 add r7, sp, #0 /* USER CODE BEGIN SPI4_IRQn 0 */ /* USER CODE END SPI4_IRQn 0 */ HAL_SPI_IRQHandler(&hspi4); - 8002cb8: 4805 ldr r0, [pc, #20] ; (8002cd0 ) - 8002cba: f001 fd11 bl 80046e0 + 800323c: 4805 ldr r0, [pc, #20] ; (8003254 ) + 800323e: f001 fd11 bl 8004c64 /* USER CODE BEGIN SPI4_IRQn 1 */ HAL_SPI_Transmit_IT(&hspi4, (uint8_t *) &LEDData_WS2812B, (uint16_t) 66 * 3 * 3); - 8002cbe: f240 2252 movw r2, #594 ; 0x252 - 8002cc2: 4904 ldr r1, [pc, #16] ; (8002cd4 ) - 8002cc4: 4802 ldr r0, [pc, #8] ; (8002cd0 ) - 8002cc6: f001 fc89 bl 80045dc + 8003242: f240 2252 movw r2, #594 ; 0x252 + 8003246: 4904 ldr r1, [pc, #16] ; (8003258 ) + 8003248: 4802 ldr r0, [pc, #8] ; (8003254 ) + 800324a: f001 fc89 bl 8004b60 /* USER CODE END SPI4_IRQn 1 */ } - 8002cca: bf00 nop - 8002ccc: bd80 pop {r7, pc} - 8002cce: bf00 nop - 8002cd0: 200003fc .word 0x200003fc - 8002cd4: 20000154 .word 0x20000154 + 800324e: bf00 nop + 8003250: bd80 pop {r7, pc} + 8003252: bf00 nop + 8003254: 200003fc .word 0x200003fc + 8003258: 20000154 .word 0x20000154 -08002cd8 <_sbrk>: +0800325c <_sbrk>: * * @param incr Memory size * @return Pointer to allocated memory */ void *_sbrk(ptrdiff_t incr) { - 8002cd8: b580 push {r7, lr} - 8002cda: b086 sub sp, #24 - 8002cdc: af00 add r7, sp, #0 - 8002cde: 6078 str r0, [r7, #4] + 800325c: b580 push {r7, lr} + 800325e: b086 sub sp, #24 + 8003260: af00 add r7, sp, #0 + 8003262: 6078 str r0, [r7, #4] extern uint8_t _end; /* Symbol defined in the linker script */ extern uint8_t _estack; /* Symbol defined in the linker script */ extern uint32_t _Min_Stack_Size; /* Symbol defined in the linker script */ const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size; - 8002ce0: 4a14 ldr r2, [pc, #80] ; (8002d34 <_sbrk+0x5c>) - 8002ce2: 4b15 ldr r3, [pc, #84] ; (8002d38 <_sbrk+0x60>) - 8002ce4: 1ad3 subs r3, r2, r3 - 8002ce6: 617b str r3, [r7, #20] + 8003264: 4a14 ldr r2, [pc, #80] ; (80032b8 <_sbrk+0x5c>) + 8003266: 4b15 ldr r3, [pc, #84] ; (80032bc <_sbrk+0x60>) + 8003268: 1ad3 subs r3, r2, r3 + 800326a: 617b str r3, [r7, #20] const uint8_t *max_heap = (uint8_t *)stack_limit; - 8002ce8: 697b ldr r3, [r7, #20] - 8002cea: 613b str r3, [r7, #16] + 800326c: 697b ldr r3, [r7, #20] + 800326e: 613b str r3, [r7, #16] uint8_t *prev_heap_end; /* Initalize heap end at first call */ if (NULL == __sbrk_heap_end) - 8002cec: 4b13 ldr r3, [pc, #76] ; (8002d3c <_sbrk+0x64>) - 8002cee: 681b ldr r3, [r3, #0] - 8002cf0: 2b00 cmp r3, #0 - 8002cf2: d102 bne.n 8002cfa <_sbrk+0x22> + 8003270: 4b13 ldr r3, [pc, #76] ; (80032c0 <_sbrk+0x64>) + 8003272: 681b ldr r3, [r3, #0] + 8003274: 2b00 cmp r3, #0 + 8003276: d102 bne.n 800327e <_sbrk+0x22> { __sbrk_heap_end = &_end; - 8002cf4: 4b11 ldr r3, [pc, #68] ; (8002d3c <_sbrk+0x64>) - 8002cf6: 4a12 ldr r2, [pc, #72] ; (8002d40 <_sbrk+0x68>) - 8002cf8: 601a str r2, [r3, #0] + 8003278: 4b11 ldr r3, [pc, #68] ; (80032c0 <_sbrk+0x64>) + 800327a: 4a12 ldr r2, [pc, #72] ; (80032c4 <_sbrk+0x68>) + 800327c: 601a str r2, [r3, #0] } /* Protect heap from growing into the reserved MSP stack */ if (__sbrk_heap_end + incr > max_heap) - 8002cfa: 4b10 ldr r3, [pc, #64] ; (8002d3c <_sbrk+0x64>) - 8002cfc: 681a ldr r2, [r3, #0] - 8002cfe: 687b ldr r3, [r7, #4] - 8002d00: 4413 add r3, r2 - 8002d02: 693a ldr r2, [r7, #16] - 8002d04: 429a cmp r2, r3 - 8002d06: d207 bcs.n 8002d18 <_sbrk+0x40> + 800327e: 4b10 ldr r3, [pc, #64] ; (80032c0 <_sbrk+0x64>) + 8003280: 681a ldr r2, [r3, #0] + 8003282: 687b ldr r3, [r7, #4] + 8003284: 4413 add r3, r2 + 8003286: 693a ldr r2, [r7, #16] + 8003288: 429a cmp r2, r3 + 800328a: d207 bcs.n 800329c <_sbrk+0x40> { errno = ENOMEM; - 8002d08: f002 fa66 bl 80051d8 <__errno> - 8002d0c: 4602 mov r2, r0 - 8002d0e: 230c movs r3, #12 - 8002d10: 6013 str r3, [r2, #0] + 800328c: f002 fa66 bl 800575c <__errno> + 8003290: 4602 mov r2, r0 + 8003292: 230c movs r3, #12 + 8003294: 6013 str r3, [r2, #0] return (void *)-1; - 8002d12: f04f 33ff mov.w r3, #4294967295 - 8002d16: e009 b.n 8002d2c <_sbrk+0x54> + 8003296: f04f 33ff mov.w r3, #4294967295 + 800329a: e009 b.n 80032b0 <_sbrk+0x54> } prev_heap_end = __sbrk_heap_end; - 8002d18: 4b08 ldr r3, [pc, #32] ; (8002d3c <_sbrk+0x64>) - 8002d1a: 681b ldr r3, [r3, #0] - 8002d1c: 60fb str r3, [r7, #12] + 800329c: 4b08 ldr r3, [pc, #32] ; (80032c0 <_sbrk+0x64>) + 800329e: 681b ldr r3, [r3, #0] + 80032a0: 60fb str r3, [r7, #12] __sbrk_heap_end += incr; - 8002d1e: 4b07 ldr r3, [pc, #28] ; (8002d3c <_sbrk+0x64>) - 8002d20: 681a ldr r2, [r3, #0] - 8002d22: 687b ldr r3, [r7, #4] - 8002d24: 4413 add r3, r2 - 8002d26: 4a05 ldr r2, [pc, #20] ; (8002d3c <_sbrk+0x64>) - 8002d28: 6013 str r3, [r2, #0] + 80032a2: 4b07 ldr r3, [pc, #28] ; (80032c0 <_sbrk+0x64>) + 80032a4: 681a ldr r2, [r3, #0] + 80032a6: 687b ldr r3, [r7, #4] + 80032a8: 4413 add r3, r2 + 80032aa: 4a05 ldr r2, [pc, #20] ; (80032c0 <_sbrk+0x64>) + 80032ac: 6013 str r3, [r2, #0] return (void *)prev_heap_end; - 8002d2a: 68fb ldr r3, [r7, #12] + 80032ae: 68fb ldr r3, [r7, #12] } - 8002d2c: 4618 mov r0, r3 - 8002d2e: 3718 adds r7, #24 - 8002d30: 46bd mov sp, r7 - 8002d32: bd80 pop {r7, pc} - 8002d34: 20030000 .word 0x20030000 - 8002d38: 00000400 .word 0x00000400 - 8002d3c: 200003a8 .word 0x200003a8 - 8002d40: 200004a0 .word 0x200004a0 + 80032b0: 4618 mov r0, r3 + 80032b2: 3718 adds r7, #24 + 80032b4: 46bd mov sp, r7 + 80032b6: bd80 pop {r7, pc} + 80032b8: 20030000 .word 0x20030000 + 80032bc: 00000400 .word 0x00000400 + 80032c0: 200003a8 .word 0x200003a8 + 80032c4: 200004a0 .word 0x200004a0 -08002d44 : +080032c8 : * configuration. * @param None * @retval None */ void SystemInit(void) { - 8002d44: b480 push {r7} - 8002d46: af00 add r7, sp, #0 + 80032c8: b480 push {r7} + 80032ca: af00 add r7, sp, #0 /* FPU settings ------------------------------------------------------------*/ #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ - 8002d48: 4b08 ldr r3, [pc, #32] ; (8002d6c ) - 8002d4a: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8002d4e: 4a07 ldr r2, [pc, #28] ; (8002d6c ) - 8002d50: f443 0370 orr.w r3, r3, #15728640 ; 0xf00000 - 8002d54: f8c2 3088 str.w r3, [r2, #136] ; 0x88 + 80032cc: 4b08 ldr r3, [pc, #32] ; (80032f0 ) + 80032ce: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 + 80032d2: 4a07 ldr r2, [pc, #28] ; (80032f0 ) + 80032d4: f443 0370 orr.w r3, r3, #15728640 ; 0xf00000 + 80032d8: f8c2 3088 str.w r3, [r2, #136] ; 0x88 /* Configure the Vector Table location add offset address ------------------*/ #ifdef VECT_TAB_SRAM SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ #else SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */ - 8002d58: 4b04 ldr r3, [pc, #16] ; (8002d6c ) - 8002d5a: f04f 6200 mov.w r2, #134217728 ; 0x8000000 - 8002d5e: 609a str r2, [r3, #8] + 80032dc: 4b04 ldr r3, [pc, #16] ; (80032f0 ) + 80032de: f04f 6200 mov.w r2, #134217728 ; 0x8000000 + 80032e2: 609a str r2, [r3, #8] #endif } - 8002d60: bf00 nop - 8002d62: 46bd mov sp, r7 - 8002d64: f85d 7b04 ldr.w r7, [sp], #4 - 8002d68: 4770 bx lr - 8002d6a: bf00 nop - 8002d6c: e000ed00 .word 0xe000ed00 + 80032e4: bf00 nop + 80032e6: 46bd mov sp, r7 + 80032e8: f85d 7b04 ldr.w r7, [sp], #4 + 80032ec: 4770 bx lr + 80032ee: bf00 nop + 80032f0: e000ed00 .word 0xe000ed00 -08002d70 : +080032f4 : .section .text.Reset_Handler .weak Reset_Handler .type Reset_Handler, %function Reset_Handler: ldr sp, =_estack /* set stack pointer */ - 8002d70: f8df d034 ldr.w sp, [pc, #52] ; 8002da8 + 80032f4: f8df d034 ldr.w sp, [pc, #52] ; 800332c /* Copy the data segment initializers from flash to SRAM */ movs r1, #0 - 8002d74: 2100 movs r1, #0 + 80032f8: 2100 movs r1, #0 b LoopCopyDataInit - 8002d76: e003 b.n 8002d80 + 80032fa: e003 b.n 8003304 -08002d78 : +080032fc : CopyDataInit: ldr r3, =_sidata - 8002d78: 4b0c ldr r3, [pc, #48] ; (8002dac ) + 80032fc: 4b0c ldr r3, [pc, #48] ; (8003330 ) ldr r3, [r3, r1] - 8002d7a: 585b ldr r3, [r3, r1] + 80032fe: 585b ldr r3, [r3, r1] str r3, [r0, r1] - 8002d7c: 5043 str r3, [r0, r1] + 8003300: 5043 str r3, [r0, r1] adds r1, r1, #4 - 8002d7e: 3104 adds r1, #4 + 8003302: 3104 adds r1, #4 -08002d80 : +08003304 : LoopCopyDataInit: ldr r0, =_sdata - 8002d80: 480b ldr r0, [pc, #44] ; (8002db0 ) + 8003304: 480b ldr r0, [pc, #44] ; (8003334 ) ldr r3, =_edata - 8002d82: 4b0c ldr r3, [pc, #48] ; (8002db4 ) + 8003306: 4b0c ldr r3, [pc, #48] ; (8003338 ) adds r2, r0, r1 - 8002d84: 1842 adds r2, r0, r1 + 8003308: 1842 adds r2, r0, r1 cmp r2, r3 - 8002d86: 429a cmp r2, r3 + 800330a: 429a cmp r2, r3 bcc CopyDataInit - 8002d88: d3f6 bcc.n 8002d78 + 800330c: d3f6 bcc.n 80032fc ldr r2, =_sbss - 8002d8a: 4a0b ldr r2, [pc, #44] ; (8002db8 ) + 800330e: 4a0b ldr r2, [pc, #44] ; (800333c ) b LoopFillZerobss - 8002d8c: e002 b.n 8002d94 + 8003310: e002 b.n 8003318 -08002d8e : +08003312 : /* Zero fill the bss segment. */ FillZerobss: movs r3, #0 - 8002d8e: 2300 movs r3, #0 + 8003312: 2300 movs r3, #0 str r3, [r2], #4 - 8002d90: f842 3b04 str.w r3, [r2], #4 + 8003314: f842 3b04 str.w r3, [r2], #4 -08002d94 : +08003318 : LoopFillZerobss: ldr r3, = _ebss - 8002d94: 4b09 ldr r3, [pc, #36] ; (8002dbc ) + 8003318: 4b09 ldr r3, [pc, #36] ; (8003340 ) cmp r2, r3 - 8002d96: 429a cmp r2, r3 + 800331a: 429a cmp r2, r3 bcc FillZerobss - 8002d98: d3f9 bcc.n 8002d8e + 800331c: d3f9 bcc.n 8003312 /* Call the clock system intitialization function.*/ bl SystemInit - 8002d9a: f7ff ffd3 bl 8002d44 + 800331e: f7ff ffd3 bl 80032c8 /* Call static constructors */ bl __libc_init_array - 8002d9e: f002 fa21 bl 80051e4 <__libc_init_array> + 8003322: f002 fa21 bl 8005768 <__libc_init_array> /* Call the application's entry point.*/ bl main - 8002da2: f7fd ff93 bl 8000ccc

+ 8003326: f7fd fcd1 bl 8000ccc
bx lr - 8002da6: 4770 bx lr + 800332a: 4770 bx lr ldr sp, =_estack /* set stack pointer */ - 8002da8: 20030000 .word 0x20030000 + 800332c: 20030000 .word 0x20030000 ldr r3, =_sidata - 8002dac: 080053c4 .word 0x080053c4 + 8003330: 08005948 .word 0x08005948 ldr r0, =_sdata - 8002db0: 20000000 .word 0x20000000 + 8003334: 20000000 .word 0x20000000 ldr r3, =_edata - 8002db4: 20000074 .word 0x20000074 + 8003338: 20000074 .word 0x20000074 ldr r2, =_sbss - 8002db8: 20000074 .word 0x20000074 + 800333c: 20000074 .word 0x20000074 ldr r3, = _ebss - 8002dbc: 200004a0 .word 0x200004a0 + 8003340: 200004a0 .word 0x200004a0 -08002dc0 : +08003344 : * @retval None */ .section .text.Default_Handler,"ax",%progbits Default_Handler: Infinite_Loop: b Infinite_Loop - 8002dc0: e7fe b.n 8002dc0 + 8003344: e7fe b.n 8003344 ... -08002dc4 : +08003348 : * need to ensure that the SysTick time base is always set to 1 millisecond * to have correct HAL operation. * @retval HAL status */ HAL_StatusTypeDef HAL_Init(void) { - 8002dc4: b580 push {r7, lr} - 8002dc6: af00 add r7, sp, #0 + 8003348: b580 push {r7, lr} + 800334a: af00 add r7, sp, #0 /* Configure Flash prefetch, Instruction cache, Data cache */ #if (INSTRUCTION_CACHE_ENABLE != 0U) __HAL_FLASH_INSTRUCTION_CACHE_ENABLE(); - 8002dc8: 4b0e ldr r3, [pc, #56] ; (8002e04 ) - 8002dca: 681b ldr r3, [r3, #0] - 8002dcc: 4a0d ldr r2, [pc, #52] ; (8002e04 ) - 8002dce: f443 7300 orr.w r3, r3, #512 ; 0x200 - 8002dd2: 6013 str r3, [r2, #0] + 800334c: 4b0e ldr r3, [pc, #56] ; (8003388 ) + 800334e: 681b ldr r3, [r3, #0] + 8003350: 4a0d ldr r2, [pc, #52] ; (8003388 ) + 8003352: f443 7300 orr.w r3, r3, #512 ; 0x200 + 8003356: 6013 str r3, [r2, #0] #endif /* INSTRUCTION_CACHE_ENABLE */ #if (DATA_CACHE_ENABLE != 0U) __HAL_FLASH_DATA_CACHE_ENABLE(); - 8002dd4: 4b0b ldr r3, [pc, #44] ; (8002e04 ) - 8002dd6: 681b ldr r3, [r3, #0] - 8002dd8: 4a0a ldr r2, [pc, #40] ; (8002e04 ) - 8002dda: f443 6380 orr.w r3, r3, #1024 ; 0x400 - 8002dde: 6013 str r3, [r2, #0] + 8003358: 4b0b ldr r3, [pc, #44] ; (8003388 ) + 800335a: 681b ldr r3, [r3, #0] + 800335c: 4a0a ldr r2, [pc, #40] ; (8003388 ) + 800335e: f443 6380 orr.w r3, r3, #1024 ; 0x400 + 8003362: 6013 str r3, [r2, #0] #endif /* DATA_CACHE_ENABLE */ #if (PREFETCH_ENABLE != 0U) __HAL_FLASH_PREFETCH_BUFFER_ENABLE(); - 8002de0: 4b08 ldr r3, [pc, #32] ; (8002e04 ) - 8002de2: 681b ldr r3, [r3, #0] - 8002de4: 4a07 ldr r2, [pc, #28] ; (8002e04 ) - 8002de6: f443 7380 orr.w r3, r3, #256 ; 0x100 - 8002dea: 6013 str r3, [r2, #0] + 8003364: 4b08 ldr r3, [pc, #32] ; (8003388 ) + 8003366: 681b ldr r3, [r3, #0] + 8003368: 4a07 ldr r2, [pc, #28] ; (8003388 ) + 800336a: f443 7380 orr.w r3, r3, #256 ; 0x100 + 800336e: 6013 str r3, [r2, #0] #endif /* PREFETCH_ENABLE */ /* Set Interrupt Group Priority */ HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); - 8002dec: 2003 movs r0, #3 - 8002dee: f000 fd17 bl 8003820 + 8003370: 2003 movs r0, #3 + 8003372: f000 fd17 bl 8003da4 /* Use systick as time base source and configure 1ms tick (default clock after Reset is HSI) */ HAL_InitTick(TICK_INT_PRIORITY); - 8002df2: 2000 movs r0, #0 - 8002df4: f000 f808 bl 8002e08 + 8003376: 2000 movs r0, #0 + 8003378: f000 f808 bl 800338c /* Init the low level hardware */ HAL_MspInit(); - 8002df8: f7ff fe14 bl 8002a24 + 800337c: f7ff fe1a bl 8002fb4 /* Return function status */ return HAL_OK; - 8002dfc: 2300 movs r3, #0 + 8003380: 2300 movs r3, #0 } - 8002dfe: 4618 mov r0, r3 - 8002e00: bd80 pop {r7, pc} - 8002e02: bf00 nop - 8002e04: 40023c00 .word 0x40023c00 + 8003382: 4618 mov r0, r3 + 8003384: bd80 pop {r7, pc} + 8003386: bf00 nop + 8003388: 40023c00 .word 0x40023c00 -08002e08 : +0800338c : * implementation in user file. * @param TickPriority Tick interrupt priority. * @retval HAL status */ __weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) { - 8002e08: b580 push {r7, lr} - 8002e0a: b082 sub sp, #8 - 8002e0c: af00 add r7, sp, #0 - 8002e0e: 6078 str r0, [r7, #4] + 800338c: b580 push {r7, lr} + 800338e: b082 sub sp, #8 + 8003390: af00 add r7, sp, #0 + 8003392: 6078 str r0, [r7, #4] /* Configure the SysTick to have interrupt in 1ms time basis*/ if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U) - 8002e10: 4b12 ldr r3, [pc, #72] ; (8002e5c ) - 8002e12: 681a ldr r2, [r3, #0] - 8002e14: 4b12 ldr r3, [pc, #72] ; (8002e60 ) - 8002e16: 781b ldrb r3, [r3, #0] - 8002e18: 4619 mov r1, r3 - 8002e1a: f44f 737a mov.w r3, #1000 ; 0x3e8 - 8002e1e: fbb3 f3f1 udiv r3, r3, r1 - 8002e22: fbb2 f3f3 udiv r3, r2, r3 - 8002e26: 4618 mov r0, r3 - 8002e28: f000 fd2f bl 800388a - 8002e2c: 4603 mov r3, r0 - 8002e2e: 2b00 cmp r3, #0 - 8002e30: d001 beq.n 8002e36 + 8003394: 4b12 ldr r3, [pc, #72] ; (80033e0 ) + 8003396: 681a ldr r2, [r3, #0] + 8003398: 4b12 ldr r3, [pc, #72] ; (80033e4 ) + 800339a: 781b ldrb r3, [r3, #0] + 800339c: 4619 mov r1, r3 + 800339e: f44f 737a mov.w r3, #1000 ; 0x3e8 + 80033a2: fbb3 f3f1 udiv r3, r3, r1 + 80033a6: fbb2 f3f3 udiv r3, r2, r3 + 80033aa: 4618 mov r0, r3 + 80033ac: f000 fd2f bl 8003e0e + 80033b0: 4603 mov r3, r0 + 80033b2: 2b00 cmp r3, #0 + 80033b4: d001 beq.n 80033ba { return HAL_ERROR; - 8002e32: 2301 movs r3, #1 - 8002e34: e00e b.n 8002e54 + 80033b6: 2301 movs r3, #1 + 80033b8: e00e b.n 80033d8 } /* Configure the SysTick IRQ priority */ if (TickPriority < (1UL << __NVIC_PRIO_BITS)) - 8002e36: 687b ldr r3, [r7, #4] - 8002e38: 2b0f cmp r3, #15 - 8002e3a: d80a bhi.n 8002e52 + 80033ba: 687b ldr r3, [r7, #4] + 80033bc: 2b0f cmp r3, #15 + 80033be: d80a bhi.n 80033d6 { HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U); - 8002e3c: 2200 movs r2, #0 - 8002e3e: 6879 ldr r1, [r7, #4] - 8002e40: f04f 30ff mov.w r0, #4294967295 - 8002e44: f000 fcf7 bl 8003836 + 80033c0: 2200 movs r2, #0 + 80033c2: 6879 ldr r1, [r7, #4] + 80033c4: f04f 30ff mov.w r0, #4294967295 + 80033c8: f000 fcf7 bl 8003dba uwTickPrio = TickPriority; - 8002e48: 4a06 ldr r2, [pc, #24] ; (8002e64 ) - 8002e4a: 687b ldr r3, [r7, #4] - 8002e4c: 6013 str r3, [r2, #0] + 80033cc: 4a06 ldr r2, [pc, #24] ; (80033e8 ) + 80033ce: 687b ldr r3, [r7, #4] + 80033d0: 6013 str r3, [r2, #0] { return HAL_ERROR; } /* Return function status */ return HAL_OK; - 8002e4e: 2300 movs r3, #0 - 8002e50: e000 b.n 8002e54 + 80033d2: 2300 movs r3, #0 + 80033d4: e000 b.n 80033d8 return HAL_ERROR; - 8002e52: 2301 movs r3, #1 + 80033d6: 2301 movs r3, #1 } - 8002e54: 4618 mov r0, r3 - 8002e56: 3708 adds r7, #8 - 8002e58: 46bd mov sp, r7 - 8002e5a: bd80 pop {r7, pc} - 8002e5c: 20000004 .word 0x20000004 - 8002e60: 2000000c .word 0x2000000c - 8002e64: 20000008 .word 0x20000008 + 80033d8: 4618 mov r0, r3 + 80033da: 3708 adds r7, #8 + 80033dc: 46bd mov sp, r7 + 80033de: bd80 pop {r7, pc} + 80033e0: 20000004 .word 0x20000004 + 80033e4: 2000000c .word 0x2000000c + 80033e8: 20000008 .word 0x20000008 -08002e68 : +080033ec : * @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) { - 8002e68: b480 push {r7} - 8002e6a: af00 add r7, sp, #0 + 80033ec: b480 push {r7} + 80033ee: af00 add r7, sp, #0 uwTick += uwTickFreq; - 8002e6c: 4b06 ldr r3, [pc, #24] ; (8002e88 ) - 8002e6e: 781b ldrb r3, [r3, #0] - 8002e70: 461a mov r2, r3 - 8002e72: 4b06 ldr r3, [pc, #24] ; (8002e8c ) - 8002e74: 681b ldr r3, [r3, #0] - 8002e76: 4413 add r3, r2 - 8002e78: 4a04 ldr r2, [pc, #16] ; (8002e8c ) - 8002e7a: 6013 str r3, [r2, #0] + 80033f0: 4b06 ldr r3, [pc, #24] ; (800340c ) + 80033f2: 781b ldrb r3, [r3, #0] + 80033f4: 461a mov r2, r3 + 80033f6: 4b06 ldr r3, [pc, #24] ; (8003410 ) + 80033f8: 681b ldr r3, [r3, #0] + 80033fa: 4413 add r3, r2 + 80033fc: 4a04 ldr r2, [pc, #16] ; (8003410 ) + 80033fe: 6013 str r3, [r2, #0] } - 8002e7c: bf00 nop - 8002e7e: 46bd mov sp, r7 - 8002e80: f85d 7b04 ldr.w r7, [sp], #4 - 8002e84: 4770 bx lr - 8002e86: bf00 nop - 8002e88: 2000000c .word 0x2000000c - 8002e8c: 20000498 .word 0x20000498 + 8003400: bf00 nop + 8003402: 46bd mov sp, r7 + 8003404: f85d 7b04 ldr.w r7, [sp], #4 + 8003408: 4770 bx lr + 800340a: bf00 nop + 800340c: 2000000c .word 0x2000000c + 8003410: 20000498 .word 0x20000498 -08002e90 : +08003414 : * @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) { - 8002e90: b480 push {r7} - 8002e92: af00 add r7, sp, #0 + 8003414: b480 push {r7} + 8003416: af00 add r7, sp, #0 return uwTick; - 8002e94: 4b03 ldr r3, [pc, #12] ; (8002ea4 ) - 8002e96: 681b ldr r3, [r3, #0] + 8003418: 4b03 ldr r3, [pc, #12] ; (8003428 ) + 800341a: 681b ldr r3, [r3, #0] } - 8002e98: 4618 mov r0, r3 - 8002e9a: 46bd mov sp, r7 - 8002e9c: f85d 7b04 ldr.w r7, [sp], #4 - 8002ea0: 4770 bx lr - 8002ea2: bf00 nop - 8002ea4: 20000498 .word 0x20000498 + 800341c: 4618 mov r0, r3 + 800341e: 46bd mov sp, r7 + 8003420: f85d 7b04 ldr.w r7, [sp], #4 + 8003424: 4770 bx lr + 8003426: bf00 nop + 8003428: 20000498 .word 0x20000498 -08002ea8 : +0800342c : * implementations in user file. * @param Delay specifies the delay time length, in milliseconds. * @retval None */ __weak void HAL_Delay(uint32_t Delay) { - 8002ea8: b580 push {r7, lr} - 8002eaa: b084 sub sp, #16 - 8002eac: af00 add r7, sp, #0 - 8002eae: 6078 str r0, [r7, #4] + 800342c: b580 push {r7, lr} + 800342e: b084 sub sp, #16 + 8003430: af00 add r7, sp, #0 + 8003432: 6078 str r0, [r7, #4] uint32_t tickstart = HAL_GetTick(); - 8002eb0: f7ff ffee bl 8002e90 - 8002eb4: 60b8 str r0, [r7, #8] + 8003434: f7ff ffee bl 8003414 + 8003438: 60b8 str r0, [r7, #8] uint32_t wait = Delay; - 8002eb6: 687b ldr r3, [r7, #4] - 8002eb8: 60fb str r3, [r7, #12] + 800343a: 687b ldr r3, [r7, #4] + 800343c: 60fb str r3, [r7, #12] /* Add a freq to guarantee minimum wait */ if (wait < HAL_MAX_DELAY) - 8002eba: 68fb ldr r3, [r7, #12] - 8002ebc: f1b3 3fff cmp.w r3, #4294967295 - 8002ec0: d005 beq.n 8002ece + 800343e: 68fb ldr r3, [r7, #12] + 8003440: f1b3 3fff cmp.w r3, #4294967295 + 8003444: d005 beq.n 8003452 { wait += (uint32_t)(uwTickFreq); - 8002ec2: 4b09 ldr r3, [pc, #36] ; (8002ee8 ) - 8002ec4: 781b ldrb r3, [r3, #0] - 8002ec6: 461a mov r2, r3 - 8002ec8: 68fb ldr r3, [r7, #12] - 8002eca: 4413 add r3, r2 - 8002ecc: 60fb str r3, [r7, #12] + 8003446: 4b09 ldr r3, [pc, #36] ; (800346c ) + 8003448: 781b ldrb r3, [r3, #0] + 800344a: 461a mov r2, r3 + 800344c: 68fb ldr r3, [r7, #12] + 800344e: 4413 add r3, r2 + 8003450: 60fb str r3, [r7, #12] } while((HAL_GetTick() - tickstart) < wait) - 8002ece: bf00 nop - 8002ed0: f7ff ffde bl 8002e90 - 8002ed4: 4602 mov r2, r0 - 8002ed6: 68bb ldr r3, [r7, #8] - 8002ed8: 1ad3 subs r3, r2, r3 - 8002eda: 68fa ldr r2, [r7, #12] - 8002edc: 429a cmp r2, r3 - 8002ede: d8f7 bhi.n 8002ed0 + 8003452: bf00 nop + 8003454: f7ff ffde bl 8003414 + 8003458: 4602 mov r2, r0 + 800345a: 68bb ldr r3, [r7, #8] + 800345c: 1ad3 subs r3, r2, r3 + 800345e: 68fa ldr r2, [r7, #12] + 8003460: 429a cmp r2, r3 + 8003462: d8f7 bhi.n 8003454 { } } - 8002ee0: bf00 nop - 8002ee2: 3710 adds r7, #16 - 8002ee4: 46bd mov sp, r7 - 8002ee6: bd80 pop {r7, pc} - 8002ee8: 2000000c .word 0x2000000c + 8003464: bf00 nop + 8003466: 3710 adds r7, #16 + 8003468: 46bd mov sp, r7 + 800346a: bd80 pop {r7, pc} + 800346c: 2000000c .word 0x2000000c -08002eec : +08003470 : * @param hadc pointer to a ADC_HandleTypeDef structure that contains * the configuration information for the specified ADC. * @retval HAL status */ HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef* hadc) { - 8002eec: b580 push {r7, lr} - 8002eee: b084 sub sp, #16 - 8002ef0: af00 add r7, sp, #0 - 8002ef2: 6078 str r0, [r7, #4] + 8003470: b580 push {r7, lr} + 8003472: b084 sub sp, #16 + 8003474: af00 add r7, sp, #0 + 8003476: 6078 str r0, [r7, #4] HAL_StatusTypeDef tmp_hal_status = HAL_OK; - 8002ef4: 2300 movs r3, #0 - 8002ef6: 73fb strb r3, [r7, #15] + 8003478: 2300 movs r3, #0 + 800347a: 73fb strb r3, [r7, #15] /* Check ADC handle */ if(hadc == NULL) - 8002ef8: 687b ldr r3, [r7, #4] - 8002efa: 2b00 cmp r3, #0 - 8002efc: d101 bne.n 8002f02 + 800347c: 687b ldr r3, [r7, #4] + 800347e: 2b00 cmp r3, #0 + 8003480: d101 bne.n 8003486 { return HAL_ERROR; - 8002efe: 2301 movs r3, #1 - 8002f00: e033 b.n 8002f6a + 8003482: 2301 movs r3, #1 + 8003484: e033 b.n 80034ee if(hadc->Init.ExternalTrigConv != ADC_SOFTWARE_START) { assert_param(IS_ADC_EXT_TRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); } if(hadc->State == HAL_ADC_STATE_RESET) - 8002f02: 687b ldr r3, [r7, #4] - 8002f04: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002f06: 2b00 cmp r3, #0 - 8002f08: d109 bne.n 8002f1e + 8003486: 687b ldr r3, [r7, #4] + 8003488: 6c1b ldr r3, [r3, #64] ; 0x40 + 800348a: 2b00 cmp r3, #0 + 800348c: d109 bne.n 80034a2 /* Init the low level hardware */ hadc->MspInitCallback(hadc); #else /* Init the low level hardware */ HAL_ADC_MspInit(hadc); - 8002f0a: 6878 ldr r0, [r7, #4] - 8002f0c: f7ff fdb2 bl 8002a74 + 800348e: 6878 ldr r0, [r7, #4] + 8003490: f7ff fdb8 bl 8003004 #endif /* USE_HAL_ADC_REGISTER_CALLBACKS */ /* Initialize ADC error code */ ADC_CLEAR_ERRORCODE(hadc); - 8002f10: 687b ldr r3, [r7, #4] - 8002f12: 2200 movs r2, #0 - 8002f14: 645a str r2, [r3, #68] ; 0x44 + 8003494: 687b ldr r3, [r7, #4] + 8003496: 2200 movs r2, #0 + 8003498: 645a str r2, [r3, #68] ; 0x44 /* Allocate lock resource and initialize it */ hadc->Lock = HAL_UNLOCKED; - 8002f16: 687b ldr r3, [r7, #4] - 8002f18: 2200 movs r2, #0 - 8002f1a: f883 203c strb.w r2, [r3, #60] ; 0x3c + 800349a: 687b ldr r3, [r7, #4] + 800349c: 2200 movs r2, #0 + 800349e: f883 203c strb.w r2, [r3, #60] ; 0x3c } /* Configuration of ADC parameters if previous preliminary actions are */ /* correctly completed. */ if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL)) - 8002f1e: 687b ldr r3, [r7, #4] - 8002f20: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002f22: f003 0310 and.w r3, r3, #16 - 8002f26: 2b00 cmp r3, #0 - 8002f28: d118 bne.n 8002f5c + 80034a2: 687b ldr r3, [r7, #4] + 80034a4: 6c1b ldr r3, [r3, #64] ; 0x40 + 80034a6: f003 0310 and.w r3, r3, #16 + 80034aa: 2b00 cmp r3, #0 + 80034ac: d118 bne.n 80034e0 { /* Set ADC state */ ADC_STATE_CLR_SET(hadc->State, - 8002f2a: 687b ldr r3, [r7, #4] - 8002f2c: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002f2e: f423 5388 bic.w r3, r3, #4352 ; 0x1100 - 8002f32: f023 0302 bic.w r3, r3, #2 - 8002f36: f043 0202 orr.w r2, r3, #2 - 8002f3a: 687b ldr r3, [r7, #4] - 8002f3c: 641a str r2, [r3, #64] ; 0x40 + 80034ae: 687b ldr r3, [r7, #4] + 80034b0: 6c1b ldr r3, [r3, #64] ; 0x40 + 80034b2: f423 5388 bic.w r3, r3, #4352 ; 0x1100 + 80034b6: f023 0302 bic.w r3, r3, #2 + 80034ba: f043 0202 orr.w r2, r3, #2 + 80034be: 687b ldr r3, [r7, #4] + 80034c0: 641a str r2, [r3, #64] ; 0x40 HAL_ADC_STATE_REG_BUSY | HAL_ADC_STATE_INJ_BUSY, HAL_ADC_STATE_BUSY_INTERNAL); /* Set ADC parameters */ ADC_Init(hadc); - 8002f3e: 6878 ldr r0, [r7, #4] - 8002f40: f000 faa2 bl 8003488 + 80034c2: 6878 ldr r0, [r7, #4] + 80034c4: f000 faa2 bl 8003a0c /* Set ADC error code to none */ ADC_CLEAR_ERRORCODE(hadc); - 8002f44: 687b ldr r3, [r7, #4] - 8002f46: 2200 movs r2, #0 - 8002f48: 645a str r2, [r3, #68] ; 0x44 + 80034c8: 687b ldr r3, [r7, #4] + 80034ca: 2200 movs r2, #0 + 80034cc: 645a str r2, [r3, #68] ; 0x44 /* Set the ADC state */ ADC_STATE_CLR_SET(hadc->State, - 8002f4a: 687b ldr r3, [r7, #4] - 8002f4c: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002f4e: f023 0303 bic.w r3, r3, #3 - 8002f52: f043 0201 orr.w r2, r3, #1 - 8002f56: 687b ldr r3, [r7, #4] - 8002f58: 641a str r2, [r3, #64] ; 0x40 - 8002f5a: e001 b.n 8002f60 + 80034ce: 687b ldr r3, [r7, #4] + 80034d0: 6c1b ldr r3, [r3, #64] ; 0x40 + 80034d2: f023 0303 bic.w r3, r3, #3 + 80034d6: f043 0201 orr.w r2, r3, #1 + 80034da: 687b ldr r3, [r7, #4] + 80034dc: 641a str r2, [r3, #64] ; 0x40 + 80034de: e001 b.n 80034e4 HAL_ADC_STATE_BUSY_INTERNAL, HAL_ADC_STATE_READY); } else { tmp_hal_status = HAL_ERROR; - 8002f5c: 2301 movs r3, #1 - 8002f5e: 73fb strb r3, [r7, #15] + 80034e0: 2301 movs r3, #1 + 80034e2: 73fb strb r3, [r7, #15] } /* Release Lock */ __HAL_UNLOCK(hadc); - 8002f60: 687b ldr r3, [r7, #4] - 8002f62: 2200 movs r2, #0 - 8002f64: f883 203c strb.w r2, [r3, #60] ; 0x3c + 80034e4: 687b ldr r3, [r7, #4] + 80034e6: 2200 movs r2, #0 + 80034e8: f883 203c strb.w r2, [r3, #60] ; 0x3c /* Return function status */ return tmp_hal_status; - 8002f68: 7bfb ldrb r3, [r7, #15] + 80034ec: 7bfb ldrb r3, [r7, #15] } - 8002f6a: 4618 mov r0, r3 - 8002f6c: 3710 adds r7, #16 - 8002f6e: 46bd mov sp, r7 - 8002f70: bd80 pop {r7, pc} + 80034ee: 4618 mov r0, r3 + 80034f0: 3710 adds r7, #16 + 80034f2: 46bd mov sp, r7 + 80034f4: bd80 pop {r7, pc} ... -08002f74 : +080034f8 : * @param hadc pointer to a ADC_HandleTypeDef structure that contains * the configuration information for the specified ADC. * @retval HAL status */ HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef* hadc) { - 8002f74: b480 push {r7} - 8002f76: b085 sub sp, #20 - 8002f78: af00 add r7, sp, #0 - 8002f7a: 6078 str r0, [r7, #4] + 80034f8: b480 push {r7} + 80034fa: b085 sub sp, #20 + 80034fc: af00 add r7, sp, #0 + 80034fe: 6078 str r0, [r7, #4] __IO uint32_t counter = 0U; - 8002f7c: 2300 movs r3, #0 - 8002f7e: 60bb str r3, [r7, #8] + 8003500: 2300 movs r3, #0 + 8003502: 60bb str r3, [r7, #8] /* Check the parameters */ assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); assert_param(IS_ADC_EXT_TRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); /* Process locked */ __HAL_LOCK(hadc); - 8002f80: 687b ldr r3, [r7, #4] - 8002f82: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 8002f86: 2b01 cmp r3, #1 - 8002f88: d101 bne.n 8002f8e - 8002f8a: 2302 movs r3, #2 - 8002f8c: e0a5 b.n 80030da - 8002f8e: 687b ldr r3, [r7, #4] - 8002f90: 2201 movs r2, #1 - 8002f92: f883 203c strb.w r2, [r3, #60] ; 0x3c + 8003504: 687b ldr r3, [r7, #4] + 8003506: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 800350a: 2b01 cmp r3, #1 + 800350c: d101 bne.n 8003512 + 800350e: 2302 movs r3, #2 + 8003510: e0a5 b.n 800365e + 8003512: 687b ldr r3, [r7, #4] + 8003514: 2201 movs r2, #1 + 8003516: f883 203c strb.w r2, [r3, #60] ; 0x3c /* Enable the ADC peripheral */ /* Check if ADC peripheral is disabled in order to enable it and wait during Tstab time the ADC's stabilization */ if((hadc->Instance->CR2 & ADC_CR2_ADON) != ADC_CR2_ADON) - 8002f96: 687b ldr r3, [r7, #4] - 8002f98: 681b ldr r3, [r3, #0] - 8002f9a: 689b ldr r3, [r3, #8] - 8002f9c: f003 0301 and.w r3, r3, #1 - 8002fa0: 2b01 cmp r3, #1 - 8002fa2: d018 beq.n 8002fd6 + 800351a: 687b ldr r3, [r7, #4] + 800351c: 681b ldr r3, [r3, #0] + 800351e: 689b ldr r3, [r3, #8] + 8003520: f003 0301 and.w r3, r3, #1 + 8003524: 2b01 cmp r3, #1 + 8003526: d018 beq.n 800355a { /* Enable the Peripheral */ __HAL_ADC_ENABLE(hadc); - 8002fa4: 687b ldr r3, [r7, #4] - 8002fa6: 681b ldr r3, [r3, #0] - 8002fa8: 689a ldr r2, [r3, #8] - 8002faa: 687b ldr r3, [r7, #4] - 8002fac: 681b ldr r3, [r3, #0] - 8002fae: f042 0201 orr.w r2, r2, #1 - 8002fb2: 609a str r2, [r3, #8] + 8003528: 687b ldr r3, [r7, #4] + 800352a: 681b ldr r3, [r3, #0] + 800352c: 689a ldr r2, [r3, #8] + 800352e: 687b ldr r3, [r7, #4] + 8003530: 681b ldr r3, [r3, #0] + 8003532: f042 0201 orr.w r2, r2, #1 + 8003536: 609a str r2, [r3, #8] /* Delay for ADC stabilization time */ /* Compute number of CPU cycles to wait for */ counter = (ADC_STAB_DELAY_US * (SystemCoreClock / 1000000U)); - 8002fb4: 4b4c ldr r3, [pc, #304] ; (80030e8 ) - 8002fb6: 681b ldr r3, [r3, #0] - 8002fb8: 4a4c ldr r2, [pc, #304] ; (80030ec ) - 8002fba: fba2 2303 umull r2, r3, r2, r3 - 8002fbe: 0c9a lsrs r2, r3, #18 - 8002fc0: 4613 mov r3, r2 - 8002fc2: 005b lsls r3, r3, #1 - 8002fc4: 4413 add r3, r2 - 8002fc6: 60bb str r3, [r7, #8] + 8003538: 4b4c ldr r3, [pc, #304] ; (800366c ) + 800353a: 681b ldr r3, [r3, #0] + 800353c: 4a4c ldr r2, [pc, #304] ; (8003670 ) + 800353e: fba2 2303 umull r2, r3, r2, r3 + 8003542: 0c9a lsrs r2, r3, #18 + 8003544: 4613 mov r3, r2 + 8003546: 005b lsls r3, r3, #1 + 8003548: 4413 add r3, r2 + 800354a: 60bb str r3, [r7, #8] while(counter != 0U) - 8002fc8: e002 b.n 8002fd0 + 800354c: e002 b.n 8003554 { counter--; - 8002fca: 68bb ldr r3, [r7, #8] - 8002fcc: 3b01 subs r3, #1 - 8002fce: 60bb str r3, [r7, #8] + 800354e: 68bb ldr r3, [r7, #8] + 8003550: 3b01 subs r3, #1 + 8003552: 60bb str r3, [r7, #8] while(counter != 0U) - 8002fd0: 68bb ldr r3, [r7, #8] - 8002fd2: 2b00 cmp r3, #0 - 8002fd4: d1f9 bne.n 8002fca + 8003554: 68bb ldr r3, [r7, #8] + 8003556: 2b00 cmp r3, #0 + 8003558: d1f9 bne.n 800354e } } /* Start conversion if ADC is effectively enabled */ if(HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_ADON)) - 8002fd6: 687b ldr r3, [r7, #4] - 8002fd8: 681b ldr r3, [r3, #0] - 8002fda: 689b ldr r3, [r3, #8] - 8002fdc: f003 0301 and.w r3, r3, #1 - 8002fe0: 2b01 cmp r3, #1 - 8002fe2: d179 bne.n 80030d8 + 800355a: 687b ldr r3, [r7, #4] + 800355c: 681b ldr r3, [r3, #0] + 800355e: 689b ldr r3, [r3, #8] + 8003560: f003 0301 and.w r3, r3, #1 + 8003564: 2b01 cmp r3, #1 + 8003566: d179 bne.n 800365c { /* Set ADC state */ /* - Clear state bitfield related to regular group conversion results */ /* - Set state bitfield related to regular group operation */ ADC_STATE_CLR_SET(hadc->State, - 8002fe4: 687b ldr r3, [r7, #4] - 8002fe6: 6c1b ldr r3, [r3, #64] ; 0x40 - 8002fe8: f423 63e0 bic.w r3, r3, #1792 ; 0x700 - 8002fec: f023 0301 bic.w r3, r3, #1 - 8002ff0: f443 7280 orr.w r2, r3, #256 ; 0x100 - 8002ff4: 687b ldr r3, [r7, #4] - 8002ff6: 641a str r2, [r3, #64] ; 0x40 + 8003568: 687b ldr r3, [r7, #4] + 800356a: 6c1b ldr r3, [r3, #64] ; 0x40 + 800356c: f423 63e0 bic.w r3, r3, #1792 ; 0x700 + 8003570: f023 0301 bic.w r3, r3, #1 + 8003574: f443 7280 orr.w r2, r3, #256 ; 0x100 + 8003578: 687b ldr r3, [r7, #4] + 800357a: 641a str r2, [r3, #64] ; 0x40 HAL_ADC_STATE_READY | HAL_ADC_STATE_REG_EOC | HAL_ADC_STATE_REG_OVR, HAL_ADC_STATE_REG_BUSY); /* If conversions on group regular are also triggering group injected, */ /* update ADC state. */ if (READ_BIT(hadc->Instance->CR1, ADC_CR1_JAUTO) != RESET) - 8002ff8: 687b ldr r3, [r7, #4] - 8002ffa: 681b ldr r3, [r3, #0] - 8002ffc: 685b ldr r3, [r3, #4] - 8002ffe: f403 6380 and.w r3, r3, #1024 ; 0x400 - 8003002: 2b00 cmp r3, #0 - 8003004: d007 beq.n 8003016 + 800357c: 687b ldr r3, [r7, #4] + 800357e: 681b ldr r3, [r3, #0] + 8003580: 685b ldr r3, [r3, #4] + 8003582: f403 6380 and.w r3, r3, #1024 ; 0x400 + 8003586: 2b00 cmp r3, #0 + 8003588: d007 beq.n 800359a { ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); - 8003006: 687b ldr r3, [r7, #4] - 8003008: 6c1b ldr r3, [r3, #64] ; 0x40 - 800300a: f423 5340 bic.w r3, r3, #12288 ; 0x3000 - 800300e: f443 5280 orr.w r2, r3, #4096 ; 0x1000 - 8003012: 687b ldr r3, [r7, #4] - 8003014: 641a str r2, [r3, #64] ; 0x40 + 800358a: 687b ldr r3, [r7, #4] + 800358c: 6c1b ldr r3, [r3, #64] ; 0x40 + 800358e: f423 5340 bic.w r3, r3, #12288 ; 0x3000 + 8003592: f443 5280 orr.w r2, r3, #4096 ; 0x1000 + 8003596: 687b ldr r3, [r7, #4] + 8003598: 641a str r2, [r3, #64] ; 0x40 } /* State machine update: Check if an injected conversion is ongoing */ if (HAL_IS_BIT_SET(hadc->State, HAL_ADC_STATE_INJ_BUSY)) - 8003016: 687b ldr r3, [r7, #4] - 8003018: 6c1b ldr r3, [r3, #64] ; 0x40 - 800301a: f403 5380 and.w r3, r3, #4096 ; 0x1000 - 800301e: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 - 8003022: d106 bne.n 8003032 + 800359a: 687b ldr r3, [r7, #4] + 800359c: 6c1b ldr r3, [r3, #64] ; 0x40 + 800359e: f403 5380 and.w r3, r3, #4096 ; 0x1000 + 80035a2: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 + 80035a6: d106 bne.n 80035b6 { /* Reset ADC error code fields related to conversions on group regular */ CLEAR_BIT(hadc->ErrorCode, (HAL_ADC_ERROR_OVR | HAL_ADC_ERROR_DMA)); - 8003024: 687b ldr r3, [r7, #4] - 8003026: 6c5b ldr r3, [r3, #68] ; 0x44 - 8003028: f023 0206 bic.w r2, r3, #6 - 800302c: 687b ldr r3, [r7, #4] - 800302e: 645a str r2, [r3, #68] ; 0x44 - 8003030: e002 b.n 8003038 + 80035a8: 687b ldr r3, [r7, #4] + 80035aa: 6c5b ldr r3, [r3, #68] ; 0x44 + 80035ac: f023 0206 bic.w r2, r3, #6 + 80035b0: 687b ldr r3, [r7, #4] + 80035b2: 645a str r2, [r3, #68] ; 0x44 + 80035b4: e002 b.n 80035bc } else { /* Reset ADC all error code fields */ ADC_CLEAR_ERRORCODE(hadc); - 8003032: 687b ldr r3, [r7, #4] - 8003034: 2200 movs r2, #0 - 8003036: 645a str r2, [r3, #68] ; 0x44 + 80035b6: 687b ldr r3, [r7, #4] + 80035b8: 2200 movs r2, #0 + 80035ba: 645a str r2, [r3, #68] ; 0x44 } /* Process unlocked */ /* Unlock before starting ADC conversions: in case of potential */ /* interruption, to let the process to ADC IRQ Handler. */ __HAL_UNLOCK(hadc); - 8003038: 687b ldr r3, [r7, #4] - 800303a: 2200 movs r2, #0 - 800303c: f883 203c strb.w r2, [r3, #60] ; 0x3c + 80035bc: 687b ldr r3, [r7, #4] + 80035be: 2200 movs r2, #0 + 80035c0: f883 203c strb.w r2, [r3, #60] ; 0x3c /* Pointer to the common control register to which is belonging hadc */ /* (Depending on STM32F4 product, there may be up to 3 ADCs and 1 common */ /* control register) */ tmpADC_Common = ADC_COMMON_REGISTER(hadc); - 8003040: 4b2b ldr r3, [pc, #172] ; (80030f0 ) - 8003042: 60fb str r3, [r7, #12] + 80035c4: 4b2b ldr r3, [pc, #172] ; (8003674 ) + 80035c6: 60fb str r3, [r7, #12] /* Clear regular group conversion flag and overrun flag */ /* (To ensure of no unknown state from potential previous ADC operations) */ __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_EOC | ADC_FLAG_OVR); - 8003044: 687b ldr r3, [r7, #4] - 8003046: 681b ldr r3, [r3, #0] - 8003048: f06f 0222 mvn.w r2, #34 ; 0x22 - 800304c: 601a str r2, [r3, #0] + 80035c8: 687b ldr r3, [r7, #4] + 80035ca: 681b ldr r3, [r3, #0] + 80035cc: f06f 0222 mvn.w r2, #34 ; 0x22 + 80035d0: 601a str r2, [r3, #0] /* Check if Multimode enabled */ if(HAL_IS_BIT_CLR(tmpADC_Common->CCR, ADC_CCR_MULTI)) - 800304e: 68fb ldr r3, [r7, #12] - 8003050: 685b ldr r3, [r3, #4] - 8003052: f003 031f and.w r3, r3, #31 - 8003056: 2b00 cmp r3, #0 - 8003058: d12a bne.n 80030b0 + 80035d2: 68fb ldr r3, [r7, #12] + 80035d4: 685b ldr r3, [r3, #4] + 80035d6: f003 031f and.w r3, r3, #31 + 80035da: 2b00 cmp r3, #0 + 80035dc: d12a bne.n 8003634 { #if defined(ADC2) && defined(ADC3) if((hadc->Instance == ADC1) || ((hadc->Instance == ADC2) && ((ADC->CCR & ADC_CCR_MULTI_Msk) < ADC_CCR_MULTI_0)) \ - 800305a: 687b ldr r3, [r7, #4] - 800305c: 681b ldr r3, [r3, #0] - 800305e: 4a25 ldr r2, [pc, #148] ; (80030f4 ) - 8003060: 4293 cmp r3, r2 - 8003062: d015 beq.n 8003090 - 8003064: 687b ldr r3, [r7, #4] - 8003066: 681b ldr r3, [r3, #0] - 8003068: 4a23 ldr r2, [pc, #140] ; (80030f8 ) - 800306a: 4293 cmp r3, r2 - 800306c: d105 bne.n 800307a - 800306e: 4b20 ldr r3, [pc, #128] ; (80030f0 ) - 8003070: 685b ldr r3, [r3, #4] - 8003072: f003 031f and.w r3, r3, #31 - 8003076: 2b00 cmp r3, #0 - 8003078: d00a beq.n 8003090 + 80035de: 687b ldr r3, [r7, #4] + 80035e0: 681b ldr r3, [r3, #0] + 80035e2: 4a25 ldr r2, [pc, #148] ; (8003678 ) + 80035e4: 4293 cmp r3, r2 + 80035e6: d015 beq.n 8003614 + 80035e8: 687b ldr r3, [r7, #4] + 80035ea: 681b ldr r3, [r3, #0] + 80035ec: 4a23 ldr r2, [pc, #140] ; (800367c ) + 80035ee: 4293 cmp r3, r2 + 80035f0: d105 bne.n 80035fe + 80035f2: 4b20 ldr r3, [pc, #128] ; (8003674 ) + 80035f4: 685b ldr r3, [r3, #4] + 80035f6: f003 031f and.w r3, r3, #31 + 80035fa: 2b00 cmp r3, #0 + 80035fc: d00a beq.n 8003614 || ((hadc->Instance == ADC3) && ((ADC->CCR & ADC_CCR_MULTI_Msk) < ADC_CCR_MULTI_4))) - 800307a: 687b ldr r3, [r7, #4] - 800307c: 681b ldr r3, [r3, #0] - 800307e: 4a1f ldr r2, [pc, #124] ; (80030fc ) - 8003080: 4293 cmp r3, r2 - 8003082: d129 bne.n 80030d8 - 8003084: 4b1a ldr r3, [pc, #104] ; (80030f0 ) - 8003086: 685b ldr r3, [r3, #4] - 8003088: f003 031f and.w r3, r3, #31 - 800308c: 2b0f cmp r3, #15 - 800308e: d823 bhi.n 80030d8 + 80035fe: 687b ldr r3, [r7, #4] + 8003600: 681b ldr r3, [r3, #0] + 8003602: 4a1f ldr r2, [pc, #124] ; (8003680 ) + 8003604: 4293 cmp r3, r2 + 8003606: d129 bne.n 800365c + 8003608: 4b1a ldr r3, [pc, #104] ; (8003674 ) + 800360a: 685b ldr r3, [r3, #4] + 800360c: f003 031f and.w r3, r3, #31 + 8003610: 2b0f cmp r3, #15 + 8003612: d823 bhi.n 800365c { #endif /* ADC2 || ADC3 */ /* if no external trigger present enable software conversion of regular channels */ if((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET) - 8003090: 687b ldr r3, [r7, #4] - 8003092: 681b ldr r3, [r3, #0] - 8003094: 689b ldr r3, [r3, #8] - 8003096: f003 5340 and.w r3, r3, #805306368 ; 0x30000000 - 800309a: 2b00 cmp r3, #0 - 800309c: d11c bne.n 80030d8 + 8003614: 687b ldr r3, [r7, #4] + 8003616: 681b ldr r3, [r3, #0] + 8003618: 689b ldr r3, [r3, #8] + 800361a: f003 5340 and.w r3, r3, #805306368 ; 0x30000000 + 800361e: 2b00 cmp r3, #0 + 8003620: d11c bne.n 800365c { /* Enable the selected ADC software conversion for regular group */ hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; - 800309e: 687b ldr r3, [r7, #4] - 80030a0: 681b ldr r3, [r3, #0] - 80030a2: 689a ldr r2, [r3, #8] - 80030a4: 687b ldr r3, [r7, #4] - 80030a6: 681b ldr r3, [r3, #0] - 80030a8: f042 4280 orr.w r2, r2, #1073741824 ; 0x40000000 - 80030ac: 609a str r2, [r3, #8] - 80030ae: e013 b.n 80030d8 + 8003622: 687b ldr r3, [r7, #4] + 8003624: 681b ldr r3, [r3, #0] + 8003626: 689a ldr r2, [r3, #8] + 8003628: 687b ldr r3, [r7, #4] + 800362a: 681b ldr r3, [r3, #0] + 800362c: f042 4280 orr.w r2, r2, #1073741824 ; 0x40000000 + 8003630: 609a str r2, [r3, #8] + 8003632: e013 b.n 800365c #endif /* ADC2 || ADC3 */ } else { /* if instance of handle correspond to ADC1 and no external trigger present enable software conversion of regular channels */ if((hadc->Instance == ADC1) && ((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET)) - 80030b0: 687b ldr r3, [r7, #4] - 80030b2: 681b ldr r3, [r3, #0] - 80030b4: 4a0f ldr r2, [pc, #60] ; (80030f4 ) - 80030b6: 4293 cmp r3, r2 - 80030b8: d10e bne.n 80030d8 - 80030ba: 687b ldr r3, [r7, #4] - 80030bc: 681b ldr r3, [r3, #0] - 80030be: 689b ldr r3, [r3, #8] - 80030c0: f003 5340 and.w r3, r3, #805306368 ; 0x30000000 - 80030c4: 2b00 cmp r3, #0 - 80030c6: d107 bne.n 80030d8 + 8003634: 687b ldr r3, [r7, #4] + 8003636: 681b ldr r3, [r3, #0] + 8003638: 4a0f ldr r2, [pc, #60] ; (8003678 ) + 800363a: 4293 cmp r3, r2 + 800363c: d10e bne.n 800365c + 800363e: 687b ldr r3, [r7, #4] + 8003640: 681b ldr r3, [r3, #0] + 8003642: 689b ldr r3, [r3, #8] + 8003644: f003 5340 and.w r3, r3, #805306368 ; 0x30000000 + 8003648: 2b00 cmp r3, #0 + 800364a: d107 bne.n 800365c { /* Enable the selected ADC software conversion for regular group */ hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; - 80030c8: 687b ldr r3, [r7, #4] - 80030ca: 681b ldr r3, [r3, #0] - 80030cc: 689a ldr r2, [r3, #8] - 80030ce: 687b ldr r3, [r7, #4] - 80030d0: 681b ldr r3, [r3, #0] - 80030d2: f042 4280 orr.w r2, r2, #1073741824 ; 0x40000000 - 80030d6: 609a str r2, [r3, #8] + 800364c: 687b ldr r3, [r7, #4] + 800364e: 681b ldr r3, [r3, #0] + 8003650: 689a ldr r2, [r3, #8] + 8003652: 687b ldr r3, [r7, #4] + 8003654: 681b ldr r3, [r3, #0] + 8003656: f042 4280 orr.w r2, r2, #1073741824 ; 0x40000000 + 800365a: 609a str r2, [r3, #8] } } } /* Return function status */ return HAL_OK; - 80030d8: 2300 movs r3, #0 + 800365c: 2300 movs r3, #0 } - 80030da: 4618 mov r0, r3 - 80030dc: 3714 adds r7, #20 - 80030de: 46bd mov sp, r7 - 80030e0: f85d 7b04 ldr.w r7, [sp], #4 - 80030e4: 4770 bx lr - 80030e6: bf00 nop - 80030e8: 20000004 .word 0x20000004 - 80030ec: 431bde83 .word 0x431bde83 - 80030f0: 40012300 .word 0x40012300 - 80030f4: 40012000 .word 0x40012000 - 80030f8: 40012100 .word 0x40012100 - 80030fc: 40012200 .word 0x40012200 + 800365e: 4618 mov r0, r3 + 8003660: 3714 adds r7, #20 + 8003662: 46bd mov sp, r7 + 8003664: f85d 7b04 ldr.w r7, [sp], #4 + 8003668: 4770 bx lr + 800366a: bf00 nop + 800366c: 20000004 .word 0x20000004 + 8003670: 431bde83 .word 0x431bde83 + 8003674: 40012300 .word 0x40012300 + 8003678: 40012000 .word 0x40012000 + 800367c: 40012100 .word 0x40012100 + 8003680: 40012200 .word 0x40012200 -08003100 : +08003684 : * the configuration information for the specified ADC. * @param Timeout Timeout value in millisecond. * @retval HAL status */ HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout) { - 8003100: b580 push {r7, lr} - 8003102: b084 sub sp, #16 - 8003104: af00 add r7, sp, #0 - 8003106: 6078 str r0, [r7, #4] - 8003108: 6039 str r1, [r7, #0] + 8003684: b580 push {r7, lr} + 8003686: b084 sub sp, #16 + 8003688: af00 add r7, sp, #0 + 800368a: 6078 str r0, [r7, #4] + 800368c: 6039 str r1, [r7, #0] uint32_t tickstart = 0U; - 800310a: 2300 movs r3, #0 - 800310c: 60fb str r3, [r7, #12] + 800368e: 2300 movs r3, #0 + 8003690: 60fb str r3, [r7, #12] /* each conversion: */ /* Particular case is ADC configured in DMA mode and ADC sequencer with */ /* several ranks and polling for end of each conversion. */ /* For code simplicity sake, this particular case is generalized to */ /* ADC configured in DMA mode and polling for end of each conversion. */ if (HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_EOCS) && - 800310e: 687b ldr r3, [r7, #4] - 8003110: 681b ldr r3, [r3, #0] - 8003112: 689b ldr r3, [r3, #8] - 8003114: f403 6380 and.w r3, r3, #1024 ; 0x400 - 8003118: f5b3 6f80 cmp.w r3, #1024 ; 0x400 - 800311c: d113 bne.n 8003146 + 8003692: 687b ldr r3, [r7, #4] + 8003694: 681b ldr r3, [r3, #0] + 8003696: 689b ldr r3, [r3, #8] + 8003698: f403 6380 and.w r3, r3, #1024 ; 0x400 + 800369c: f5b3 6f80 cmp.w r3, #1024 ; 0x400 + 80036a0: d113 bne.n 80036ca HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_DMA) ) - 800311e: 687b ldr r3, [r7, #4] - 8003120: 681b ldr r3, [r3, #0] - 8003122: 689b ldr r3, [r3, #8] - 8003124: f403 7380 and.w r3, r3, #256 ; 0x100 + 80036a2: 687b ldr r3, [r7, #4] + 80036a4: 681b ldr r3, [r3, #0] + 80036a6: 689b ldr r3, [r3, #8] + 80036a8: f403 7380 and.w r3, r3, #256 ; 0x100 if (HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_EOCS) && - 8003128: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 800312c: d10b bne.n 8003146 + 80036ac: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 80036b0: d10b bne.n 80036ca { /* Update ADC state machine to error */ SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); - 800312e: 687b ldr r3, [r7, #4] - 8003130: 6c1b ldr r3, [r3, #64] ; 0x40 - 8003132: f043 0220 orr.w r2, r3, #32 - 8003136: 687b ldr r3, [r7, #4] - 8003138: 641a str r2, [r3, #64] ; 0x40 + 80036b2: 687b ldr r3, [r7, #4] + 80036b4: 6c1b ldr r3, [r3, #64] ; 0x40 + 80036b6: f043 0220 orr.w r2, r3, #32 + 80036ba: 687b ldr r3, [r7, #4] + 80036bc: 641a str r2, [r3, #64] ; 0x40 /* Process unlocked */ __HAL_UNLOCK(hadc); - 800313a: 687b ldr r3, [r7, #4] - 800313c: 2200 movs r2, #0 - 800313e: f883 203c strb.w r2, [r3, #60] ; 0x3c + 80036be: 687b ldr r3, [r7, #4] + 80036c0: 2200 movs r2, #0 + 80036c2: f883 203c strb.w r2, [r3, #60] ; 0x3c return HAL_ERROR; - 8003142: 2301 movs r3, #1 - 8003144: e05c b.n 8003200 + 80036c6: 2301 movs r3, #1 + 80036c8: e05c b.n 8003784 } /* Get tick */ tickstart = HAL_GetTick(); - 8003146: f7ff fea3 bl 8002e90 - 800314a: 60f8 str r0, [r7, #12] + 80036ca: f7ff fea3 bl 8003414 + 80036ce: 60f8 str r0, [r7, #12] /* Check End of conversion flag */ while(!(__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOC))) - 800314c: e01a b.n 8003184 + 80036d0: e01a b.n 8003708 { /* Check if timeout is disabled (set to infinite wait) */ if(Timeout != HAL_MAX_DELAY) - 800314e: 683b ldr r3, [r7, #0] - 8003150: f1b3 3fff cmp.w r3, #4294967295 - 8003154: d016 beq.n 8003184 + 80036d2: 683b ldr r3, [r7, #0] + 80036d4: f1b3 3fff cmp.w r3, #4294967295 + 80036d8: d016 beq.n 8003708 { if((Timeout == 0U) || ((HAL_GetTick() - tickstart ) > Timeout)) - 8003156: 683b ldr r3, [r7, #0] - 8003158: 2b00 cmp r3, #0 - 800315a: d007 beq.n 800316c - 800315c: f7ff fe98 bl 8002e90 - 8003160: 4602 mov r2, r0 - 8003162: 68fb ldr r3, [r7, #12] - 8003164: 1ad3 subs r3, r2, r3 - 8003166: 683a ldr r2, [r7, #0] - 8003168: 429a cmp r2, r3 - 800316a: d20b bcs.n 8003184 + 80036da: 683b ldr r3, [r7, #0] + 80036dc: 2b00 cmp r3, #0 + 80036de: d007 beq.n 80036f0 + 80036e0: f7ff fe98 bl 8003414 + 80036e4: 4602 mov r2, r0 + 80036e6: 68fb ldr r3, [r7, #12] + 80036e8: 1ad3 subs r3, r2, r3 + 80036ea: 683a ldr r2, [r7, #0] + 80036ec: 429a cmp r2, r3 + 80036ee: d20b bcs.n 8003708 { /* Update ADC state machine to timeout */ SET_BIT(hadc->State, HAL_ADC_STATE_TIMEOUT); - 800316c: 687b ldr r3, [r7, #4] - 800316e: 6c1b ldr r3, [r3, #64] ; 0x40 - 8003170: f043 0204 orr.w r2, r3, #4 - 8003174: 687b ldr r3, [r7, #4] - 8003176: 641a str r2, [r3, #64] ; 0x40 + 80036f0: 687b ldr r3, [r7, #4] + 80036f2: 6c1b ldr r3, [r3, #64] ; 0x40 + 80036f4: f043 0204 orr.w r2, r3, #4 + 80036f8: 687b ldr r3, [r7, #4] + 80036fa: 641a str r2, [r3, #64] ; 0x40 /* Process unlocked */ __HAL_UNLOCK(hadc); - 8003178: 687b ldr r3, [r7, #4] - 800317a: 2200 movs r2, #0 - 800317c: f883 203c strb.w r2, [r3, #60] ; 0x3c + 80036fc: 687b ldr r3, [r7, #4] + 80036fe: 2200 movs r2, #0 + 8003700: f883 203c strb.w r2, [r3, #60] ; 0x3c return HAL_TIMEOUT; - 8003180: 2303 movs r3, #3 - 8003182: e03d b.n 8003200 + 8003704: 2303 movs r3, #3 + 8003706: e03d b.n 8003784 while(!(__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOC))) - 8003184: 687b ldr r3, [r7, #4] - 8003186: 681b ldr r3, [r3, #0] - 8003188: 681b ldr r3, [r3, #0] - 800318a: f003 0302 and.w r3, r3, #2 - 800318e: 2b02 cmp r3, #2 - 8003190: d1dd bne.n 800314e + 8003708: 687b ldr r3, [r7, #4] + 800370a: 681b ldr r3, [r3, #0] + 800370c: 681b ldr r3, [r3, #0] + 800370e: f003 0302 and.w r3, r3, #2 + 8003712: 2b02 cmp r3, #2 + 8003714: d1dd bne.n 80036d2 } } } /* Clear regular group conversion flag */ __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_STRT | ADC_FLAG_EOC); - 8003192: 687b ldr r3, [r7, #4] - 8003194: 681b ldr r3, [r3, #0] - 8003196: f06f 0212 mvn.w r2, #18 - 800319a: 601a str r2, [r3, #0] + 8003716: 687b ldr r3, [r7, #4] + 8003718: 681b ldr r3, [r3, #0] + 800371a: f06f 0212 mvn.w r2, #18 + 800371e: 601a str r2, [r3, #0] /* Update ADC state machine */ SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); - 800319c: 687b ldr r3, [r7, #4] - 800319e: 6c1b ldr r3, [r3, #64] ; 0x40 - 80031a0: f443 7200 orr.w r2, r3, #512 ; 0x200 - 80031a4: 687b ldr r3, [r7, #4] - 80031a6: 641a str r2, [r3, #64] ; 0x40 + 8003720: 687b ldr r3, [r7, #4] + 8003722: 6c1b ldr r3, [r3, #64] ; 0x40 + 8003724: f443 7200 orr.w r2, r3, #512 ; 0x200 + 8003728: 687b ldr r3, [r7, #4] + 800372a: 641a str r2, [r3, #64] ; 0x40 /* by external trigger, continuous mode or scan sequence on going. */ /* Note: On STM32F4, there is no independent flag of end of sequence. */ /* The test of scan sequence on going is done either with scan */ /* sequence disabled or with end of conversion flag set to */ /* of end of sequence. */ if(ADC_IS_SOFTWARE_START_REGULAR(hadc) && - 80031a8: 687b ldr r3, [r7, #4] - 80031aa: 681b ldr r3, [r3, #0] - 80031ac: 689b ldr r3, [r3, #8] - 80031ae: f003 5340 and.w r3, r3, #805306368 ; 0x30000000 - 80031b2: 2b00 cmp r3, #0 - 80031b4: d123 bne.n 80031fe + 800372c: 687b ldr r3, [r7, #4] + 800372e: 681b ldr r3, [r3, #0] + 8003730: 689b ldr r3, [r3, #8] + 8003732: f003 5340 and.w r3, r3, #805306368 ; 0x30000000 + 8003736: 2b00 cmp r3, #0 + 8003738: d123 bne.n 8003782 (hadc->Init.ContinuousConvMode == DISABLE) && - 80031b6: 687b ldr r3, [r7, #4] - 80031b8: 7e1b ldrb r3, [r3, #24] + 800373a: 687b ldr r3, [r7, #4] + 800373c: 7e1b ldrb r3, [r3, #24] if(ADC_IS_SOFTWARE_START_REGULAR(hadc) && - 80031ba: 2b00 cmp r3, #0 - 80031bc: d11f bne.n 80031fe + 800373e: 2b00 cmp r3, #0 + 8003740: d11f bne.n 8003782 (HAL_IS_BIT_CLR(hadc->Instance->SQR1, ADC_SQR1_L) || - 80031be: 687b ldr r3, [r7, #4] - 80031c0: 681b ldr r3, [r3, #0] - 80031c2: 6adb ldr r3, [r3, #44] ; 0x2c - 80031c4: f403 0370 and.w r3, r3, #15728640 ; 0xf00000 + 8003742: 687b ldr r3, [r7, #4] + 8003744: 681b ldr r3, [r3, #0] + 8003746: 6adb ldr r3, [r3, #44] ; 0x2c + 8003748: f403 0370 and.w r3, r3, #15728640 ; 0xf00000 (hadc->Init.ContinuousConvMode == DISABLE) && - 80031c8: 2b00 cmp r3, #0 - 80031ca: d006 beq.n 80031da + 800374c: 2b00 cmp r3, #0 + 800374e: d006 beq.n 800375e HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_EOCS) ) ) - 80031cc: 687b ldr r3, [r7, #4] - 80031ce: 681b ldr r3, [r3, #0] - 80031d0: 689b ldr r3, [r3, #8] - 80031d2: f403 6380 and.w r3, r3, #1024 ; 0x400 + 8003750: 687b ldr r3, [r7, #4] + 8003752: 681b ldr r3, [r3, #0] + 8003754: 689b ldr r3, [r3, #8] + 8003756: f403 6380 and.w r3, r3, #1024 ; 0x400 (HAL_IS_BIT_CLR(hadc->Instance->SQR1, ADC_SQR1_L) || - 80031d6: 2b00 cmp r3, #0 - 80031d8: d111 bne.n 80031fe + 800375a: 2b00 cmp r3, #0 + 800375c: d111 bne.n 8003782 { /* Set ADC state */ CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); - 80031da: 687b ldr r3, [r7, #4] - 80031dc: 6c1b ldr r3, [r3, #64] ; 0x40 - 80031de: f423 7280 bic.w r2, r3, #256 ; 0x100 - 80031e2: 687b ldr r3, [r7, #4] - 80031e4: 641a str r2, [r3, #64] ; 0x40 + 800375e: 687b ldr r3, [r7, #4] + 8003760: 6c1b ldr r3, [r3, #64] ; 0x40 + 8003762: f423 7280 bic.w r2, r3, #256 ; 0x100 + 8003766: 687b ldr r3, [r7, #4] + 8003768: 641a str r2, [r3, #64] ; 0x40 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_INJ_BUSY)) - 80031e6: 687b ldr r3, [r7, #4] - 80031e8: 6c1b ldr r3, [r3, #64] ; 0x40 - 80031ea: f403 5380 and.w r3, r3, #4096 ; 0x1000 - 80031ee: 2b00 cmp r3, #0 - 80031f0: d105 bne.n 80031fe + 800376a: 687b ldr r3, [r7, #4] + 800376c: 6c1b ldr r3, [r3, #64] ; 0x40 + 800376e: f403 5380 and.w r3, r3, #4096 ; 0x1000 + 8003772: 2b00 cmp r3, #0 + 8003774: d105 bne.n 8003782 { SET_BIT(hadc->State, HAL_ADC_STATE_READY); - 80031f2: 687b ldr r3, [r7, #4] - 80031f4: 6c1b ldr r3, [r3, #64] ; 0x40 - 80031f6: f043 0201 orr.w r2, r3, #1 - 80031fa: 687b ldr r3, [r7, #4] - 80031fc: 641a str r2, [r3, #64] ; 0x40 + 8003776: 687b ldr r3, [r7, #4] + 8003778: 6c1b ldr r3, [r3, #64] ; 0x40 + 800377a: f043 0201 orr.w r2, r3, #1 + 800377e: 687b ldr r3, [r7, #4] + 8003780: 641a str r2, [r3, #64] ; 0x40 } } /* Return ADC state */ return HAL_OK; - 80031fe: 2300 movs r3, #0 + 8003782: 2300 movs r3, #0 } - 8003200: 4618 mov r0, r3 - 8003202: 3710 adds r7, #16 - 8003204: 46bd mov sp, r7 - 8003206: bd80 pop {r7, pc} + 8003784: 4618 mov r0, r3 + 8003786: 3710 adds r7, #16 + 8003788: 46bd mov sp, r7 + 800378a: bd80 pop {r7, pc} -08003208 : +0800378c : * @param hadc pointer to a ADC_HandleTypeDef structure that contains * the configuration information for the specified ADC. * @retval Converted value */ uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef* hadc) { - 8003208: b480 push {r7} - 800320a: b083 sub sp, #12 - 800320c: af00 add r7, sp, #0 - 800320e: 6078 str r0, [r7, #4] + 800378c: b480 push {r7} + 800378e: b083 sub sp, #12 + 8003790: af00 add r7, sp, #0 + 8003792: 6078 str r0, [r7, #4] /* Return the selected ADC converted value */ return hadc->Instance->DR; - 8003210: 687b ldr r3, [r7, #4] - 8003212: 681b ldr r3, [r3, #0] - 8003214: 6cdb ldr r3, [r3, #76] ; 0x4c + 8003794: 687b ldr r3, [r7, #4] + 8003796: 681b ldr r3, [r3, #0] + 8003798: 6cdb ldr r3, [r3, #76] ; 0x4c } - 8003216: 4618 mov r0, r3 - 8003218: 370c adds r7, #12 - 800321a: 46bd mov sp, r7 - 800321c: f85d 7b04 ldr.w r7, [sp], #4 - 8003220: 4770 bx lr + 800379a: 4618 mov r0, r3 + 800379c: 370c adds r7, #12 + 800379e: 46bd mov sp, r7 + 80037a0: f85d 7b04 ldr.w r7, [sp], #4 + 80037a4: 4770 bx lr ... -08003224 : +080037a8 : * the configuration information for the specified ADC. * @param sConfig ADC configuration structure. * @retval HAL status */ HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef* hadc, ADC_ChannelConfTypeDef* sConfig) { - 8003224: b480 push {r7} - 8003226: b085 sub sp, #20 - 8003228: af00 add r7, sp, #0 - 800322a: 6078 str r0, [r7, #4] - 800322c: 6039 str r1, [r7, #0] + 80037a8: b480 push {r7} + 80037aa: b085 sub sp, #20 + 80037ac: af00 add r7, sp, #0 + 80037ae: 6078 str r0, [r7, #4] + 80037b0: 6039 str r1, [r7, #0] __IO uint32_t counter = 0U; - 800322e: 2300 movs r3, #0 - 8003230: 60bb str r3, [r7, #8] + 80037b2: 2300 movs r3, #0 + 80037b4: 60bb str r3, [r7, #8] assert_param(IS_ADC_CHANNEL(sConfig->Channel)); assert_param(IS_ADC_REGULAR_RANK(sConfig->Rank)); assert_param(IS_ADC_SAMPLE_TIME(sConfig->SamplingTime)); /* Process locked */ __HAL_LOCK(hadc); - 8003232: 687b ldr r3, [r7, #4] - 8003234: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 8003238: 2b01 cmp r3, #1 - 800323a: d101 bne.n 8003240 - 800323c: 2302 movs r3, #2 - 800323e: e113 b.n 8003468 - 8003240: 687b ldr r3, [r7, #4] - 8003242: 2201 movs r2, #1 - 8003244: f883 203c strb.w r2, [r3, #60] ; 0x3c + 80037b6: 687b ldr r3, [r7, #4] + 80037b8: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 80037bc: 2b01 cmp r3, #1 + 80037be: d101 bne.n 80037c4 + 80037c0: 2302 movs r3, #2 + 80037c2: e113 b.n 80039ec + 80037c4: 687b ldr r3, [r7, #4] + 80037c6: 2201 movs r2, #1 + 80037c8: f883 203c strb.w r2, [r3, #60] ; 0x3c /* if ADC_Channel_10 ... ADC_Channel_18 is selected */ if (sConfig->Channel > ADC_CHANNEL_9) - 8003248: 683b ldr r3, [r7, #0] - 800324a: 681b ldr r3, [r3, #0] - 800324c: 2b09 cmp r3, #9 - 800324e: d925 bls.n 800329c + 80037cc: 683b ldr r3, [r7, #0] + 80037ce: 681b ldr r3, [r3, #0] + 80037d0: 2b09 cmp r3, #9 + 80037d2: d925 bls.n 8003820 { /* Clear the old sample time */ hadc->Instance->SMPR1 &= ~ADC_SMPR1(ADC_SMPR1_SMP10, sConfig->Channel); - 8003250: 687b ldr r3, [r7, #4] - 8003252: 681b ldr r3, [r3, #0] - 8003254: 68d9 ldr r1, [r3, #12] - 8003256: 683b ldr r3, [r7, #0] - 8003258: 681b ldr r3, [r3, #0] - 800325a: b29b uxth r3, r3 - 800325c: 461a mov r2, r3 - 800325e: 4613 mov r3, r2 - 8003260: 005b lsls r3, r3, #1 - 8003262: 4413 add r3, r2 - 8003264: 3b1e subs r3, #30 - 8003266: 2207 movs r2, #7 - 8003268: fa02 f303 lsl.w r3, r2, r3 - 800326c: 43da mvns r2, r3 - 800326e: 687b ldr r3, [r7, #4] - 8003270: 681b ldr r3, [r3, #0] - 8003272: 400a ands r2, r1 - 8003274: 60da str r2, [r3, #12] + 80037d4: 687b ldr r3, [r7, #4] + 80037d6: 681b ldr r3, [r3, #0] + 80037d8: 68d9 ldr r1, [r3, #12] + 80037da: 683b ldr r3, [r7, #0] + 80037dc: 681b ldr r3, [r3, #0] + 80037de: b29b uxth r3, r3 + 80037e0: 461a mov r2, r3 + 80037e2: 4613 mov r3, r2 + 80037e4: 005b lsls r3, r3, #1 + 80037e6: 4413 add r3, r2 + 80037e8: 3b1e subs r3, #30 + 80037ea: 2207 movs r2, #7 + 80037ec: fa02 f303 lsl.w r3, r2, r3 + 80037f0: 43da mvns r2, r3 + 80037f2: 687b ldr r3, [r7, #4] + 80037f4: 681b ldr r3, [r3, #0] + 80037f6: 400a ands r2, r1 + 80037f8: 60da str r2, [r3, #12] /* Set the new sample time */ hadc->Instance->SMPR1 |= ADC_SMPR1(sConfig->SamplingTime, sConfig->Channel); - 8003276: 687b ldr r3, [r7, #4] - 8003278: 681b ldr r3, [r3, #0] - 800327a: 68d9 ldr r1, [r3, #12] - 800327c: 683b ldr r3, [r7, #0] - 800327e: 689a ldr r2, [r3, #8] - 8003280: 683b ldr r3, [r7, #0] - 8003282: 681b ldr r3, [r3, #0] - 8003284: b29b uxth r3, r3 - 8003286: 4618 mov r0, r3 - 8003288: 4603 mov r3, r0 - 800328a: 005b lsls r3, r3, #1 - 800328c: 4403 add r3, r0 - 800328e: 3b1e subs r3, #30 - 8003290: 409a lsls r2, r3 - 8003292: 687b ldr r3, [r7, #4] - 8003294: 681b ldr r3, [r3, #0] - 8003296: 430a orrs r2, r1 - 8003298: 60da str r2, [r3, #12] - 800329a: e022 b.n 80032e2 + 80037fa: 687b ldr r3, [r7, #4] + 80037fc: 681b ldr r3, [r3, #0] + 80037fe: 68d9 ldr r1, [r3, #12] + 8003800: 683b ldr r3, [r7, #0] + 8003802: 689a ldr r2, [r3, #8] + 8003804: 683b ldr r3, [r7, #0] + 8003806: 681b ldr r3, [r3, #0] + 8003808: b29b uxth r3, r3 + 800380a: 4618 mov r0, r3 + 800380c: 4603 mov r3, r0 + 800380e: 005b lsls r3, r3, #1 + 8003810: 4403 add r3, r0 + 8003812: 3b1e subs r3, #30 + 8003814: 409a lsls r2, r3 + 8003816: 687b ldr r3, [r7, #4] + 8003818: 681b ldr r3, [r3, #0] + 800381a: 430a orrs r2, r1 + 800381c: 60da str r2, [r3, #12] + 800381e: e022 b.n 8003866 } else /* ADC_Channel include in ADC_Channel_[0..9] */ { /* Clear the old sample time */ hadc->Instance->SMPR2 &= ~ADC_SMPR2(ADC_SMPR2_SMP0, sConfig->Channel); - 800329c: 687b ldr r3, [r7, #4] - 800329e: 681b ldr r3, [r3, #0] - 80032a0: 6919 ldr r1, [r3, #16] - 80032a2: 683b ldr r3, [r7, #0] - 80032a4: 681b ldr r3, [r3, #0] - 80032a6: b29b uxth r3, r3 - 80032a8: 461a mov r2, r3 - 80032aa: 4613 mov r3, r2 - 80032ac: 005b lsls r3, r3, #1 - 80032ae: 4413 add r3, r2 - 80032b0: 2207 movs r2, #7 - 80032b2: fa02 f303 lsl.w r3, r2, r3 - 80032b6: 43da mvns r2, r3 - 80032b8: 687b ldr r3, [r7, #4] - 80032ba: 681b ldr r3, [r3, #0] - 80032bc: 400a ands r2, r1 - 80032be: 611a str r2, [r3, #16] + 8003820: 687b ldr r3, [r7, #4] + 8003822: 681b ldr r3, [r3, #0] + 8003824: 6919 ldr r1, [r3, #16] + 8003826: 683b ldr r3, [r7, #0] + 8003828: 681b ldr r3, [r3, #0] + 800382a: b29b uxth r3, r3 + 800382c: 461a mov r2, r3 + 800382e: 4613 mov r3, r2 + 8003830: 005b lsls r3, r3, #1 + 8003832: 4413 add r3, r2 + 8003834: 2207 movs r2, #7 + 8003836: fa02 f303 lsl.w r3, r2, r3 + 800383a: 43da mvns r2, r3 + 800383c: 687b ldr r3, [r7, #4] + 800383e: 681b ldr r3, [r3, #0] + 8003840: 400a ands r2, r1 + 8003842: 611a str r2, [r3, #16] /* Set the new sample time */ hadc->Instance->SMPR2 |= ADC_SMPR2(sConfig->SamplingTime, sConfig->Channel); - 80032c0: 687b ldr r3, [r7, #4] - 80032c2: 681b ldr r3, [r3, #0] - 80032c4: 6919 ldr r1, [r3, #16] - 80032c6: 683b ldr r3, [r7, #0] - 80032c8: 689a ldr r2, [r3, #8] - 80032ca: 683b ldr r3, [r7, #0] - 80032cc: 681b ldr r3, [r3, #0] - 80032ce: b29b uxth r3, r3 - 80032d0: 4618 mov r0, r3 - 80032d2: 4603 mov r3, r0 - 80032d4: 005b lsls r3, r3, #1 - 80032d6: 4403 add r3, r0 - 80032d8: 409a lsls r2, r3 - 80032da: 687b ldr r3, [r7, #4] - 80032dc: 681b ldr r3, [r3, #0] - 80032de: 430a orrs r2, r1 - 80032e0: 611a str r2, [r3, #16] + 8003844: 687b ldr r3, [r7, #4] + 8003846: 681b ldr r3, [r3, #0] + 8003848: 6919 ldr r1, [r3, #16] + 800384a: 683b ldr r3, [r7, #0] + 800384c: 689a ldr r2, [r3, #8] + 800384e: 683b ldr r3, [r7, #0] + 8003850: 681b ldr r3, [r3, #0] + 8003852: b29b uxth r3, r3 + 8003854: 4618 mov r0, r3 + 8003856: 4603 mov r3, r0 + 8003858: 005b lsls r3, r3, #1 + 800385a: 4403 add r3, r0 + 800385c: 409a lsls r2, r3 + 800385e: 687b ldr r3, [r7, #4] + 8003860: 681b ldr r3, [r3, #0] + 8003862: 430a orrs r2, r1 + 8003864: 611a str r2, [r3, #16] } /* For Rank 1 to 6 */ if (sConfig->Rank < 7U) - 80032e2: 683b ldr r3, [r7, #0] - 80032e4: 685b ldr r3, [r3, #4] - 80032e6: 2b06 cmp r3, #6 - 80032e8: d824 bhi.n 8003334 + 8003866: 683b ldr r3, [r7, #0] + 8003868: 685b ldr r3, [r3, #4] + 800386a: 2b06 cmp r3, #6 + 800386c: d824 bhi.n 80038b8 { /* Clear the old SQx bits for the selected rank */ hadc->Instance->SQR3 &= ~ADC_SQR3_RK(ADC_SQR3_SQ1, sConfig->Rank); - 80032ea: 687b ldr r3, [r7, #4] - 80032ec: 681b ldr r3, [r3, #0] - 80032ee: 6b59 ldr r1, [r3, #52] ; 0x34 - 80032f0: 683b ldr r3, [r7, #0] - 80032f2: 685a ldr r2, [r3, #4] - 80032f4: 4613 mov r3, r2 - 80032f6: 009b lsls r3, r3, #2 - 80032f8: 4413 add r3, r2 - 80032fa: 3b05 subs r3, #5 - 80032fc: 221f movs r2, #31 - 80032fe: fa02 f303 lsl.w r3, r2, r3 - 8003302: 43da mvns r2, r3 - 8003304: 687b ldr r3, [r7, #4] - 8003306: 681b ldr r3, [r3, #0] - 8003308: 400a ands r2, r1 - 800330a: 635a str r2, [r3, #52] ; 0x34 + 800386e: 687b ldr r3, [r7, #4] + 8003870: 681b ldr r3, [r3, #0] + 8003872: 6b59 ldr r1, [r3, #52] ; 0x34 + 8003874: 683b ldr r3, [r7, #0] + 8003876: 685a ldr r2, [r3, #4] + 8003878: 4613 mov r3, r2 + 800387a: 009b lsls r3, r3, #2 + 800387c: 4413 add r3, r2 + 800387e: 3b05 subs r3, #5 + 8003880: 221f movs r2, #31 + 8003882: fa02 f303 lsl.w r3, r2, r3 + 8003886: 43da mvns r2, r3 + 8003888: 687b ldr r3, [r7, #4] + 800388a: 681b ldr r3, [r3, #0] + 800388c: 400a ands r2, r1 + 800388e: 635a str r2, [r3, #52] ; 0x34 /* Set the SQx bits for the selected rank */ hadc->Instance->SQR3 |= ADC_SQR3_RK(sConfig->Channel, sConfig->Rank); - 800330c: 687b ldr r3, [r7, #4] - 800330e: 681b ldr r3, [r3, #0] - 8003310: 6b59 ldr r1, [r3, #52] ; 0x34 - 8003312: 683b ldr r3, [r7, #0] - 8003314: 681b ldr r3, [r3, #0] - 8003316: b29b uxth r3, r3 - 8003318: 4618 mov r0, r3 - 800331a: 683b ldr r3, [r7, #0] - 800331c: 685a ldr r2, [r3, #4] - 800331e: 4613 mov r3, r2 - 8003320: 009b lsls r3, r3, #2 - 8003322: 4413 add r3, r2 - 8003324: 3b05 subs r3, #5 - 8003326: fa00 f203 lsl.w r2, r0, r3 - 800332a: 687b ldr r3, [r7, #4] - 800332c: 681b ldr r3, [r3, #0] - 800332e: 430a orrs r2, r1 - 8003330: 635a str r2, [r3, #52] ; 0x34 - 8003332: e04c b.n 80033ce + 8003890: 687b ldr r3, [r7, #4] + 8003892: 681b ldr r3, [r3, #0] + 8003894: 6b59 ldr r1, [r3, #52] ; 0x34 + 8003896: 683b ldr r3, [r7, #0] + 8003898: 681b ldr r3, [r3, #0] + 800389a: b29b uxth r3, r3 + 800389c: 4618 mov r0, r3 + 800389e: 683b ldr r3, [r7, #0] + 80038a0: 685a ldr r2, [r3, #4] + 80038a2: 4613 mov r3, r2 + 80038a4: 009b lsls r3, r3, #2 + 80038a6: 4413 add r3, r2 + 80038a8: 3b05 subs r3, #5 + 80038aa: fa00 f203 lsl.w r2, r0, r3 + 80038ae: 687b ldr r3, [r7, #4] + 80038b0: 681b ldr r3, [r3, #0] + 80038b2: 430a orrs r2, r1 + 80038b4: 635a str r2, [r3, #52] ; 0x34 + 80038b6: e04c b.n 8003952 } /* For Rank 7 to 12 */ else if (sConfig->Rank < 13U) - 8003334: 683b ldr r3, [r7, #0] - 8003336: 685b ldr r3, [r3, #4] - 8003338: 2b0c cmp r3, #12 - 800333a: d824 bhi.n 8003386 + 80038b8: 683b ldr r3, [r7, #0] + 80038ba: 685b ldr r3, [r3, #4] + 80038bc: 2b0c cmp r3, #12 + 80038be: d824 bhi.n 800390a { /* Clear the old SQx bits for the selected rank */ hadc->Instance->SQR2 &= ~ADC_SQR2_RK(ADC_SQR2_SQ7, sConfig->Rank); - 800333c: 687b ldr r3, [r7, #4] - 800333e: 681b ldr r3, [r3, #0] - 8003340: 6b19 ldr r1, [r3, #48] ; 0x30 - 8003342: 683b ldr r3, [r7, #0] - 8003344: 685a ldr r2, [r3, #4] - 8003346: 4613 mov r3, r2 - 8003348: 009b lsls r3, r3, #2 - 800334a: 4413 add r3, r2 - 800334c: 3b23 subs r3, #35 ; 0x23 - 800334e: 221f movs r2, #31 - 8003350: fa02 f303 lsl.w r3, r2, r3 - 8003354: 43da mvns r2, r3 - 8003356: 687b ldr r3, [r7, #4] - 8003358: 681b ldr r3, [r3, #0] - 800335a: 400a ands r2, r1 - 800335c: 631a str r2, [r3, #48] ; 0x30 + 80038c0: 687b ldr r3, [r7, #4] + 80038c2: 681b ldr r3, [r3, #0] + 80038c4: 6b19 ldr r1, [r3, #48] ; 0x30 + 80038c6: 683b ldr r3, [r7, #0] + 80038c8: 685a ldr r2, [r3, #4] + 80038ca: 4613 mov r3, r2 + 80038cc: 009b lsls r3, r3, #2 + 80038ce: 4413 add r3, r2 + 80038d0: 3b23 subs r3, #35 ; 0x23 + 80038d2: 221f movs r2, #31 + 80038d4: fa02 f303 lsl.w r3, r2, r3 + 80038d8: 43da mvns r2, r3 + 80038da: 687b ldr r3, [r7, #4] + 80038dc: 681b ldr r3, [r3, #0] + 80038de: 400a ands r2, r1 + 80038e0: 631a str r2, [r3, #48] ; 0x30 /* Set the SQx bits for the selected rank */ hadc->Instance->SQR2 |= ADC_SQR2_RK(sConfig->Channel, sConfig->Rank); - 800335e: 687b ldr r3, [r7, #4] - 8003360: 681b ldr r3, [r3, #0] - 8003362: 6b19 ldr r1, [r3, #48] ; 0x30 - 8003364: 683b ldr r3, [r7, #0] - 8003366: 681b ldr r3, [r3, #0] - 8003368: b29b uxth r3, r3 - 800336a: 4618 mov r0, r3 - 800336c: 683b ldr r3, [r7, #0] - 800336e: 685a ldr r2, [r3, #4] - 8003370: 4613 mov r3, r2 - 8003372: 009b lsls r3, r3, #2 - 8003374: 4413 add r3, r2 - 8003376: 3b23 subs r3, #35 ; 0x23 - 8003378: fa00 f203 lsl.w r2, r0, r3 - 800337c: 687b ldr r3, [r7, #4] - 800337e: 681b ldr r3, [r3, #0] - 8003380: 430a orrs r2, r1 - 8003382: 631a str r2, [r3, #48] ; 0x30 - 8003384: e023 b.n 80033ce + 80038e2: 687b ldr r3, [r7, #4] + 80038e4: 681b ldr r3, [r3, #0] + 80038e6: 6b19 ldr r1, [r3, #48] ; 0x30 + 80038e8: 683b ldr r3, [r7, #0] + 80038ea: 681b ldr r3, [r3, #0] + 80038ec: b29b uxth r3, r3 + 80038ee: 4618 mov r0, r3 + 80038f0: 683b ldr r3, [r7, #0] + 80038f2: 685a ldr r2, [r3, #4] + 80038f4: 4613 mov r3, r2 + 80038f6: 009b lsls r3, r3, #2 + 80038f8: 4413 add r3, r2 + 80038fa: 3b23 subs r3, #35 ; 0x23 + 80038fc: fa00 f203 lsl.w r2, r0, r3 + 8003900: 687b ldr r3, [r7, #4] + 8003902: 681b ldr r3, [r3, #0] + 8003904: 430a orrs r2, r1 + 8003906: 631a str r2, [r3, #48] ; 0x30 + 8003908: e023 b.n 8003952 } /* For Rank 13 to 16 */ else { /* Clear the old SQx bits for the selected rank */ hadc->Instance->SQR1 &= ~ADC_SQR1_RK(ADC_SQR1_SQ13, sConfig->Rank); - 8003386: 687b ldr r3, [r7, #4] - 8003388: 681b ldr r3, [r3, #0] - 800338a: 6ad9 ldr r1, [r3, #44] ; 0x2c - 800338c: 683b ldr r3, [r7, #0] - 800338e: 685a ldr r2, [r3, #4] - 8003390: 4613 mov r3, r2 - 8003392: 009b lsls r3, r3, #2 - 8003394: 4413 add r3, r2 - 8003396: 3b41 subs r3, #65 ; 0x41 - 8003398: 221f movs r2, #31 - 800339a: fa02 f303 lsl.w r3, r2, r3 - 800339e: 43da mvns r2, r3 - 80033a0: 687b ldr r3, [r7, #4] - 80033a2: 681b ldr r3, [r3, #0] - 80033a4: 400a ands r2, r1 - 80033a6: 62da str r2, [r3, #44] ; 0x2c + 800390a: 687b ldr r3, [r7, #4] + 800390c: 681b ldr r3, [r3, #0] + 800390e: 6ad9 ldr r1, [r3, #44] ; 0x2c + 8003910: 683b ldr r3, [r7, #0] + 8003912: 685a ldr r2, [r3, #4] + 8003914: 4613 mov r3, r2 + 8003916: 009b lsls r3, r3, #2 + 8003918: 4413 add r3, r2 + 800391a: 3b41 subs r3, #65 ; 0x41 + 800391c: 221f movs r2, #31 + 800391e: fa02 f303 lsl.w r3, r2, r3 + 8003922: 43da mvns r2, r3 + 8003924: 687b ldr r3, [r7, #4] + 8003926: 681b ldr r3, [r3, #0] + 8003928: 400a ands r2, r1 + 800392a: 62da str r2, [r3, #44] ; 0x2c /* Set the SQx bits for the selected rank */ hadc->Instance->SQR1 |= ADC_SQR1_RK(sConfig->Channel, sConfig->Rank); - 80033a8: 687b ldr r3, [r7, #4] - 80033aa: 681b ldr r3, [r3, #0] - 80033ac: 6ad9 ldr r1, [r3, #44] ; 0x2c - 80033ae: 683b ldr r3, [r7, #0] - 80033b0: 681b ldr r3, [r3, #0] - 80033b2: b29b uxth r3, r3 - 80033b4: 4618 mov r0, r3 - 80033b6: 683b ldr r3, [r7, #0] - 80033b8: 685a ldr r2, [r3, #4] - 80033ba: 4613 mov r3, r2 - 80033bc: 009b lsls r3, r3, #2 - 80033be: 4413 add r3, r2 - 80033c0: 3b41 subs r3, #65 ; 0x41 - 80033c2: fa00 f203 lsl.w r2, r0, r3 - 80033c6: 687b ldr r3, [r7, #4] - 80033c8: 681b ldr r3, [r3, #0] - 80033ca: 430a orrs r2, r1 - 80033cc: 62da str r2, [r3, #44] ; 0x2c + 800392c: 687b ldr r3, [r7, #4] + 800392e: 681b ldr r3, [r3, #0] + 8003930: 6ad9 ldr r1, [r3, #44] ; 0x2c + 8003932: 683b ldr r3, [r7, #0] + 8003934: 681b ldr r3, [r3, #0] + 8003936: b29b uxth r3, r3 + 8003938: 4618 mov r0, r3 + 800393a: 683b ldr r3, [r7, #0] + 800393c: 685a ldr r2, [r3, #4] + 800393e: 4613 mov r3, r2 + 8003940: 009b lsls r3, r3, #2 + 8003942: 4413 add r3, r2 + 8003944: 3b41 subs r3, #65 ; 0x41 + 8003946: fa00 f203 lsl.w r2, r0, r3 + 800394a: 687b ldr r3, [r7, #4] + 800394c: 681b ldr r3, [r3, #0] + 800394e: 430a orrs r2, r1 + 8003950: 62da str r2, [r3, #44] ; 0x2c } /* Pointer to the common control register to which is belonging hadc */ /* (Depending on STM32F4 product, there may be up to 3 ADCs and 1 common */ /* control register) */ tmpADC_Common = ADC_COMMON_REGISTER(hadc); - 80033ce: 4b29 ldr r3, [pc, #164] ; (8003474 ) - 80033d0: 60fb str r3, [r7, #12] + 8003952: 4b29 ldr r3, [pc, #164] ; (80039f8 ) + 8003954: 60fb str r3, [r7, #12] /* if ADC1 Channel_18 is selected for VBAT Channel ennable VBATE */ if ((hadc->Instance == ADC1) && (sConfig->Channel == ADC_CHANNEL_VBAT)) - 80033d2: 687b ldr r3, [r7, #4] - 80033d4: 681b ldr r3, [r3, #0] - 80033d6: 4a28 ldr r2, [pc, #160] ; (8003478 ) - 80033d8: 4293 cmp r3, r2 - 80033da: d10f bne.n 80033fc - 80033dc: 683b ldr r3, [r7, #0] - 80033de: 681b ldr r3, [r3, #0] - 80033e0: 2b12 cmp r3, #18 - 80033e2: d10b bne.n 80033fc + 8003956: 687b ldr r3, [r7, #4] + 8003958: 681b ldr r3, [r3, #0] + 800395a: 4a28 ldr r2, [pc, #160] ; (80039fc ) + 800395c: 4293 cmp r3, r2 + 800395e: d10f bne.n 8003980 + 8003960: 683b ldr r3, [r7, #0] + 8003962: 681b ldr r3, [r3, #0] + 8003964: 2b12 cmp r3, #18 + 8003966: d10b bne.n 8003980 { /* Disable the TEMPSENSOR channel in case of using board with multiplixed ADC_CHANNEL_VBAT & ADC_CHANNEL_TEMPSENSOR*/ if ((uint16_t)ADC_CHANNEL_TEMPSENSOR == (uint16_t)ADC_CHANNEL_VBAT) { tmpADC_Common->CCR &= ~ADC_CCR_TSVREFE; - 80033e4: 68fb ldr r3, [r7, #12] - 80033e6: 685b ldr r3, [r3, #4] - 80033e8: f423 0200 bic.w r2, r3, #8388608 ; 0x800000 - 80033ec: 68fb ldr r3, [r7, #12] - 80033ee: 605a str r2, [r3, #4] + 8003968: 68fb ldr r3, [r7, #12] + 800396a: 685b ldr r3, [r3, #4] + 800396c: f423 0200 bic.w r2, r3, #8388608 ; 0x800000 + 8003970: 68fb ldr r3, [r7, #12] + 8003972: 605a str r2, [r3, #4] } /* Enable the VBAT channel*/ tmpADC_Common->CCR |= ADC_CCR_VBATE; - 80033f0: 68fb ldr r3, [r7, #12] - 80033f2: 685b ldr r3, [r3, #4] - 80033f4: f443 0280 orr.w r2, r3, #4194304 ; 0x400000 - 80033f8: 68fb ldr r3, [r7, #12] - 80033fa: 605a str r2, [r3, #4] + 8003974: 68fb ldr r3, [r7, #12] + 8003976: 685b ldr r3, [r3, #4] + 8003978: f443 0280 orr.w r2, r3, #4194304 ; 0x400000 + 800397c: 68fb ldr r3, [r7, #12] + 800397e: 605a str r2, [r3, #4] } /* if ADC1 Channel_16 or Channel_18 is selected for Temperature sensor or Channel_17 is selected for VREFINT enable TSVREFE */ if ((hadc->Instance == ADC1) && ((sConfig->Channel == ADC_CHANNEL_TEMPSENSOR) || (sConfig->Channel == ADC_CHANNEL_VREFINT))) - 80033fc: 687b ldr r3, [r7, #4] - 80033fe: 681b ldr r3, [r3, #0] - 8003400: 4a1d ldr r2, [pc, #116] ; (8003478 ) - 8003402: 4293 cmp r3, r2 - 8003404: d12b bne.n 800345e - 8003406: 683b ldr r3, [r7, #0] - 8003408: 681b ldr r3, [r3, #0] - 800340a: 4a1c ldr r2, [pc, #112] ; (800347c ) - 800340c: 4293 cmp r3, r2 - 800340e: d003 beq.n 8003418 - 8003410: 683b ldr r3, [r7, #0] - 8003412: 681b ldr r3, [r3, #0] - 8003414: 2b11 cmp r3, #17 - 8003416: d122 bne.n 800345e + 8003980: 687b ldr r3, [r7, #4] + 8003982: 681b ldr r3, [r3, #0] + 8003984: 4a1d ldr r2, [pc, #116] ; (80039fc ) + 8003986: 4293 cmp r3, r2 + 8003988: d12b bne.n 80039e2 + 800398a: 683b ldr r3, [r7, #0] + 800398c: 681b ldr r3, [r3, #0] + 800398e: 4a1c ldr r2, [pc, #112] ; (8003a00 ) + 8003990: 4293 cmp r3, r2 + 8003992: d003 beq.n 800399c + 8003994: 683b ldr r3, [r7, #0] + 8003996: 681b ldr r3, [r3, #0] + 8003998: 2b11 cmp r3, #17 + 800399a: d122 bne.n 80039e2 { /* Disable the VBAT channel in case of using board with multiplixed ADC_CHANNEL_VBAT & ADC_CHANNEL_TEMPSENSOR*/ if ((uint16_t)ADC_CHANNEL_TEMPSENSOR == (uint16_t)ADC_CHANNEL_VBAT) { tmpADC_Common->CCR &= ~ADC_CCR_VBATE; - 8003418: 68fb ldr r3, [r7, #12] - 800341a: 685b ldr r3, [r3, #4] - 800341c: f423 0280 bic.w r2, r3, #4194304 ; 0x400000 - 8003420: 68fb ldr r3, [r7, #12] - 8003422: 605a str r2, [r3, #4] + 800399c: 68fb ldr r3, [r7, #12] + 800399e: 685b ldr r3, [r3, #4] + 80039a0: f423 0280 bic.w r2, r3, #4194304 ; 0x400000 + 80039a4: 68fb ldr r3, [r7, #12] + 80039a6: 605a str r2, [r3, #4] } /* Enable the Temperature sensor and VREFINT channel*/ tmpADC_Common->CCR |= ADC_CCR_TSVREFE; - 8003424: 68fb ldr r3, [r7, #12] - 8003426: 685b ldr r3, [r3, #4] - 8003428: f443 0200 orr.w r2, r3, #8388608 ; 0x800000 - 800342c: 68fb ldr r3, [r7, #12] - 800342e: 605a str r2, [r3, #4] + 80039a8: 68fb ldr r3, [r7, #12] + 80039aa: 685b ldr r3, [r3, #4] + 80039ac: f443 0200 orr.w r2, r3, #8388608 ; 0x800000 + 80039b0: 68fb ldr r3, [r7, #12] + 80039b2: 605a str r2, [r3, #4] if((sConfig->Channel == ADC_CHANNEL_TEMPSENSOR)) - 8003430: 683b ldr r3, [r7, #0] - 8003432: 681b ldr r3, [r3, #0] - 8003434: 4a11 ldr r2, [pc, #68] ; (800347c ) - 8003436: 4293 cmp r3, r2 - 8003438: d111 bne.n 800345e + 80039b4: 683b ldr r3, [r7, #0] + 80039b6: 681b ldr r3, [r3, #0] + 80039b8: 4a11 ldr r2, [pc, #68] ; (8003a00 ) + 80039ba: 4293 cmp r3, r2 + 80039bc: d111 bne.n 80039e2 { /* Delay for temperature sensor stabilization time */ /* Compute number of CPU cycles to wait for */ counter = (ADC_TEMPSENSOR_DELAY_US * (SystemCoreClock / 1000000U)); - 800343a: 4b11 ldr r3, [pc, #68] ; (8003480 ) - 800343c: 681b ldr r3, [r3, #0] - 800343e: 4a11 ldr r2, [pc, #68] ; (8003484 ) - 8003440: fba2 2303 umull r2, r3, r2, r3 - 8003444: 0c9a lsrs r2, r3, #18 - 8003446: 4613 mov r3, r2 - 8003448: 009b lsls r3, r3, #2 - 800344a: 4413 add r3, r2 - 800344c: 005b lsls r3, r3, #1 - 800344e: 60bb str r3, [r7, #8] + 80039be: 4b11 ldr r3, [pc, #68] ; (8003a04 ) + 80039c0: 681b ldr r3, [r3, #0] + 80039c2: 4a11 ldr r2, [pc, #68] ; (8003a08 ) + 80039c4: fba2 2303 umull r2, r3, r2, r3 + 80039c8: 0c9a lsrs r2, r3, #18 + 80039ca: 4613 mov r3, r2 + 80039cc: 009b lsls r3, r3, #2 + 80039ce: 4413 add r3, r2 + 80039d0: 005b lsls r3, r3, #1 + 80039d2: 60bb str r3, [r7, #8] while(counter != 0U) - 8003450: e002 b.n 8003458 + 80039d4: e002 b.n 80039dc { counter--; - 8003452: 68bb ldr r3, [r7, #8] - 8003454: 3b01 subs r3, #1 - 8003456: 60bb str r3, [r7, #8] + 80039d6: 68bb ldr r3, [r7, #8] + 80039d8: 3b01 subs r3, #1 + 80039da: 60bb str r3, [r7, #8] while(counter != 0U) - 8003458: 68bb ldr r3, [r7, #8] - 800345a: 2b00 cmp r3, #0 - 800345c: d1f9 bne.n 8003452 + 80039dc: 68bb ldr r3, [r7, #8] + 80039de: 2b00 cmp r3, #0 + 80039e0: d1f9 bne.n 80039d6 } } } /* Process unlocked */ __HAL_UNLOCK(hadc); - 800345e: 687b ldr r3, [r7, #4] - 8003460: 2200 movs r2, #0 - 8003462: f883 203c strb.w r2, [r3, #60] ; 0x3c + 80039e2: 687b ldr r3, [r7, #4] + 80039e4: 2200 movs r2, #0 + 80039e6: f883 203c strb.w r2, [r3, #60] ; 0x3c /* Return function status */ return HAL_OK; - 8003466: 2300 movs r3, #0 + 80039ea: 2300 movs r3, #0 } - 8003468: 4618 mov r0, r3 - 800346a: 3714 adds r7, #20 - 800346c: 46bd mov sp, r7 - 800346e: f85d 7b04 ldr.w r7, [sp], #4 - 8003472: 4770 bx lr - 8003474: 40012300 .word 0x40012300 - 8003478: 40012000 .word 0x40012000 - 800347c: 10000012 .word 0x10000012 - 8003480: 20000004 .word 0x20000004 - 8003484: 431bde83 .word 0x431bde83 + 80039ec: 4618 mov r0, r3 + 80039ee: 3714 adds r7, #20 + 80039f0: 46bd mov sp, r7 + 80039f2: f85d 7b04 ldr.w r7, [sp], #4 + 80039f6: 4770 bx lr + 80039f8: 40012300 .word 0x40012300 + 80039fc: 40012000 .word 0x40012000 + 8003a00: 10000012 .word 0x10000012 + 8003a04: 20000004 .word 0x20000004 + 8003a08: 431bde83 .word 0x431bde83 -08003488 : +08003a0c : * @param hadc pointer to a ADC_HandleTypeDef structure that contains * the configuration information for the specified ADC. * @retval None */ static void ADC_Init(ADC_HandleTypeDef* hadc) { - 8003488: b480 push {r7} - 800348a: b085 sub sp, #20 - 800348c: af00 add r7, sp, #0 - 800348e: 6078 str r0, [r7, #4] + 8003a0c: b480 push {r7} + 8003a0e: b085 sub sp, #20 + 8003a10: af00 add r7, sp, #0 + 8003a12: 6078 str r0, [r7, #4] /* Set ADC parameters */ /* Pointer to the common control register to which is belonging hadc */ /* (Depending on STM32F4 product, there may be up to 3 ADCs and 1 common */ /* control register) */ tmpADC_Common = ADC_COMMON_REGISTER(hadc); - 8003490: 4b79 ldr r3, [pc, #484] ; (8003678 ) - 8003492: 60fb str r3, [r7, #12] + 8003a14: 4b79 ldr r3, [pc, #484] ; (8003bfc ) + 8003a16: 60fb str r3, [r7, #12] /* Set the ADC clock prescaler */ tmpADC_Common->CCR &= ~(ADC_CCR_ADCPRE); - 8003494: 68fb ldr r3, [r7, #12] - 8003496: 685b ldr r3, [r3, #4] - 8003498: f423 3240 bic.w r2, r3, #196608 ; 0x30000 - 800349c: 68fb ldr r3, [r7, #12] - 800349e: 605a str r2, [r3, #4] + 8003a18: 68fb ldr r3, [r7, #12] + 8003a1a: 685b ldr r3, [r3, #4] + 8003a1c: f423 3240 bic.w r2, r3, #196608 ; 0x30000 + 8003a20: 68fb ldr r3, [r7, #12] + 8003a22: 605a str r2, [r3, #4] tmpADC_Common->CCR |= hadc->Init.ClockPrescaler; - 80034a0: 68fb ldr r3, [r7, #12] - 80034a2: 685a ldr r2, [r3, #4] - 80034a4: 687b ldr r3, [r7, #4] - 80034a6: 685b ldr r3, [r3, #4] - 80034a8: 431a orrs r2, r3 - 80034aa: 68fb ldr r3, [r7, #12] - 80034ac: 605a str r2, [r3, #4] + 8003a24: 68fb ldr r3, [r7, #12] + 8003a26: 685a ldr r2, [r3, #4] + 8003a28: 687b ldr r3, [r7, #4] + 8003a2a: 685b ldr r3, [r3, #4] + 8003a2c: 431a orrs r2, r3 + 8003a2e: 68fb ldr r3, [r7, #12] + 8003a30: 605a str r2, [r3, #4] /* Set ADC scan mode */ hadc->Instance->CR1 &= ~(ADC_CR1_SCAN); - 80034ae: 687b ldr r3, [r7, #4] - 80034b0: 681b ldr r3, [r3, #0] - 80034b2: 685a ldr r2, [r3, #4] - 80034b4: 687b ldr r3, [r7, #4] - 80034b6: 681b ldr r3, [r3, #0] - 80034b8: f422 7280 bic.w r2, r2, #256 ; 0x100 - 80034bc: 605a str r2, [r3, #4] + 8003a32: 687b ldr r3, [r7, #4] + 8003a34: 681b ldr r3, [r3, #0] + 8003a36: 685a ldr r2, [r3, #4] + 8003a38: 687b ldr r3, [r7, #4] + 8003a3a: 681b ldr r3, [r3, #0] + 8003a3c: f422 7280 bic.w r2, r2, #256 ; 0x100 + 8003a40: 605a str r2, [r3, #4] hadc->Instance->CR1 |= ADC_CR1_SCANCONV(hadc->Init.ScanConvMode); - 80034be: 687b ldr r3, [r7, #4] - 80034c0: 681b ldr r3, [r3, #0] - 80034c2: 6859 ldr r1, [r3, #4] - 80034c4: 687b ldr r3, [r7, #4] - 80034c6: 691b ldr r3, [r3, #16] - 80034c8: 021a lsls r2, r3, #8 - 80034ca: 687b ldr r3, [r7, #4] - 80034cc: 681b ldr r3, [r3, #0] - 80034ce: 430a orrs r2, r1 - 80034d0: 605a str r2, [r3, #4] + 8003a42: 687b ldr r3, [r7, #4] + 8003a44: 681b ldr r3, [r3, #0] + 8003a46: 6859 ldr r1, [r3, #4] + 8003a48: 687b ldr r3, [r7, #4] + 8003a4a: 691b ldr r3, [r3, #16] + 8003a4c: 021a lsls r2, r3, #8 + 8003a4e: 687b ldr r3, [r7, #4] + 8003a50: 681b ldr r3, [r3, #0] + 8003a52: 430a orrs r2, r1 + 8003a54: 605a str r2, [r3, #4] /* Set ADC resolution */ hadc->Instance->CR1 &= ~(ADC_CR1_RES); - 80034d2: 687b ldr r3, [r7, #4] - 80034d4: 681b ldr r3, [r3, #0] - 80034d6: 685a ldr r2, [r3, #4] - 80034d8: 687b ldr r3, [r7, #4] - 80034da: 681b ldr r3, [r3, #0] - 80034dc: f022 7240 bic.w r2, r2, #50331648 ; 0x3000000 - 80034e0: 605a str r2, [r3, #4] + 8003a56: 687b ldr r3, [r7, #4] + 8003a58: 681b ldr r3, [r3, #0] + 8003a5a: 685a ldr r2, [r3, #4] + 8003a5c: 687b ldr r3, [r7, #4] + 8003a5e: 681b ldr r3, [r3, #0] + 8003a60: f022 7240 bic.w r2, r2, #50331648 ; 0x3000000 + 8003a64: 605a str r2, [r3, #4] hadc->Instance->CR1 |= hadc->Init.Resolution; - 80034e2: 687b ldr r3, [r7, #4] - 80034e4: 681b ldr r3, [r3, #0] - 80034e6: 6859 ldr r1, [r3, #4] - 80034e8: 687b ldr r3, [r7, #4] - 80034ea: 689a ldr r2, [r3, #8] - 80034ec: 687b ldr r3, [r7, #4] - 80034ee: 681b ldr r3, [r3, #0] - 80034f0: 430a orrs r2, r1 - 80034f2: 605a str r2, [r3, #4] + 8003a66: 687b ldr r3, [r7, #4] + 8003a68: 681b ldr r3, [r3, #0] + 8003a6a: 6859 ldr r1, [r3, #4] + 8003a6c: 687b ldr r3, [r7, #4] + 8003a6e: 689a ldr r2, [r3, #8] + 8003a70: 687b ldr r3, [r7, #4] + 8003a72: 681b ldr r3, [r3, #0] + 8003a74: 430a orrs r2, r1 + 8003a76: 605a str r2, [r3, #4] /* Set ADC data alignment */ hadc->Instance->CR2 &= ~(ADC_CR2_ALIGN); - 80034f4: 687b ldr r3, [r7, #4] - 80034f6: 681b ldr r3, [r3, #0] - 80034f8: 689a ldr r2, [r3, #8] - 80034fa: 687b ldr r3, [r7, #4] - 80034fc: 681b ldr r3, [r3, #0] - 80034fe: f422 6200 bic.w r2, r2, #2048 ; 0x800 - 8003502: 609a str r2, [r3, #8] + 8003a78: 687b ldr r3, [r7, #4] + 8003a7a: 681b ldr r3, [r3, #0] + 8003a7c: 689a ldr r2, [r3, #8] + 8003a7e: 687b ldr r3, [r7, #4] + 8003a80: 681b ldr r3, [r3, #0] + 8003a82: f422 6200 bic.w r2, r2, #2048 ; 0x800 + 8003a86: 609a str r2, [r3, #8] hadc->Instance->CR2 |= hadc->Init.DataAlign; - 8003504: 687b ldr r3, [r7, #4] - 8003506: 681b ldr r3, [r3, #0] - 8003508: 6899 ldr r1, [r3, #8] - 800350a: 687b ldr r3, [r7, #4] - 800350c: 68da ldr r2, [r3, #12] - 800350e: 687b ldr r3, [r7, #4] - 8003510: 681b ldr r3, [r3, #0] - 8003512: 430a orrs r2, r1 - 8003514: 609a str r2, [r3, #8] + 8003a88: 687b ldr r3, [r7, #4] + 8003a8a: 681b ldr r3, [r3, #0] + 8003a8c: 6899 ldr r1, [r3, #8] + 8003a8e: 687b ldr r3, [r7, #4] + 8003a90: 68da ldr r2, [r3, #12] + 8003a92: 687b ldr r3, [r7, #4] + 8003a94: 681b ldr r3, [r3, #0] + 8003a96: 430a orrs r2, r1 + 8003a98: 609a str r2, [r3, #8] /* Enable external trigger if trigger selection is different of software */ /* start. */ /* Note: This configuration keeps the hardware feature of parameter */ /* ExternalTrigConvEdge "trigger edge none" equivalent to */ /* software start. */ if(hadc->Init.ExternalTrigConv != ADC_SOFTWARE_START) - 8003516: 687b ldr r3, [r7, #4] - 8003518: 6a9b ldr r3, [r3, #40] ; 0x28 - 800351a: 4a58 ldr r2, [pc, #352] ; (800367c ) - 800351c: 4293 cmp r3, r2 - 800351e: d022 beq.n 8003566 + 8003a9a: 687b ldr r3, [r7, #4] + 8003a9c: 6a9b ldr r3, [r3, #40] ; 0x28 + 8003a9e: 4a58 ldr r2, [pc, #352] ; (8003c00 ) + 8003aa0: 4293 cmp r3, r2 + 8003aa2: d022 beq.n 8003aea { /* Select external trigger to start conversion */ hadc->Instance->CR2 &= ~(ADC_CR2_EXTSEL); - 8003520: 687b ldr r3, [r7, #4] - 8003522: 681b ldr r3, [r3, #0] - 8003524: 689a ldr r2, [r3, #8] - 8003526: 687b ldr r3, [r7, #4] - 8003528: 681b ldr r3, [r3, #0] - 800352a: f022 6270 bic.w r2, r2, #251658240 ; 0xf000000 - 800352e: 609a str r2, [r3, #8] + 8003aa4: 687b ldr r3, [r7, #4] + 8003aa6: 681b ldr r3, [r3, #0] + 8003aa8: 689a ldr r2, [r3, #8] + 8003aaa: 687b ldr r3, [r7, #4] + 8003aac: 681b ldr r3, [r3, #0] + 8003aae: f022 6270 bic.w r2, r2, #251658240 ; 0xf000000 + 8003ab2: 609a str r2, [r3, #8] hadc->Instance->CR2 |= hadc->Init.ExternalTrigConv; - 8003530: 687b ldr r3, [r7, #4] - 8003532: 681b ldr r3, [r3, #0] - 8003534: 6899 ldr r1, [r3, #8] - 8003536: 687b ldr r3, [r7, #4] - 8003538: 6a9a ldr r2, [r3, #40] ; 0x28 - 800353a: 687b ldr r3, [r7, #4] - 800353c: 681b ldr r3, [r3, #0] - 800353e: 430a orrs r2, r1 - 8003540: 609a str r2, [r3, #8] + 8003ab4: 687b ldr r3, [r7, #4] + 8003ab6: 681b ldr r3, [r3, #0] + 8003ab8: 6899 ldr r1, [r3, #8] + 8003aba: 687b ldr r3, [r7, #4] + 8003abc: 6a9a ldr r2, [r3, #40] ; 0x28 + 8003abe: 687b ldr r3, [r7, #4] + 8003ac0: 681b ldr r3, [r3, #0] + 8003ac2: 430a orrs r2, r1 + 8003ac4: 609a str r2, [r3, #8] /* Select external trigger polarity */ hadc->Instance->CR2 &= ~(ADC_CR2_EXTEN); - 8003542: 687b ldr r3, [r7, #4] - 8003544: 681b ldr r3, [r3, #0] - 8003546: 689a ldr r2, [r3, #8] - 8003548: 687b ldr r3, [r7, #4] - 800354a: 681b ldr r3, [r3, #0] - 800354c: f022 5240 bic.w r2, r2, #805306368 ; 0x30000000 - 8003550: 609a str r2, [r3, #8] + 8003ac6: 687b ldr r3, [r7, #4] + 8003ac8: 681b ldr r3, [r3, #0] + 8003aca: 689a ldr r2, [r3, #8] + 8003acc: 687b ldr r3, [r7, #4] + 8003ace: 681b ldr r3, [r3, #0] + 8003ad0: f022 5240 bic.w r2, r2, #805306368 ; 0x30000000 + 8003ad4: 609a str r2, [r3, #8] hadc->Instance->CR2 |= hadc->Init.ExternalTrigConvEdge; - 8003552: 687b ldr r3, [r7, #4] - 8003554: 681b ldr r3, [r3, #0] - 8003556: 6899 ldr r1, [r3, #8] - 8003558: 687b ldr r3, [r7, #4] - 800355a: 6ada ldr r2, [r3, #44] ; 0x2c - 800355c: 687b ldr r3, [r7, #4] - 800355e: 681b ldr r3, [r3, #0] - 8003560: 430a orrs r2, r1 - 8003562: 609a str r2, [r3, #8] - 8003564: e00f b.n 8003586 + 8003ad6: 687b ldr r3, [r7, #4] + 8003ad8: 681b ldr r3, [r3, #0] + 8003ada: 6899 ldr r1, [r3, #8] + 8003adc: 687b ldr r3, [r7, #4] + 8003ade: 6ada ldr r2, [r3, #44] ; 0x2c + 8003ae0: 687b ldr r3, [r7, #4] + 8003ae2: 681b ldr r3, [r3, #0] + 8003ae4: 430a orrs r2, r1 + 8003ae6: 609a str r2, [r3, #8] + 8003ae8: e00f b.n 8003b0a } else { /* Reset the external trigger */ hadc->Instance->CR2 &= ~(ADC_CR2_EXTSEL); - 8003566: 687b ldr r3, [r7, #4] - 8003568: 681b ldr r3, [r3, #0] - 800356a: 689a ldr r2, [r3, #8] - 800356c: 687b ldr r3, [r7, #4] - 800356e: 681b ldr r3, [r3, #0] - 8003570: f022 6270 bic.w r2, r2, #251658240 ; 0xf000000 - 8003574: 609a str r2, [r3, #8] + 8003aea: 687b ldr r3, [r7, #4] + 8003aec: 681b ldr r3, [r3, #0] + 8003aee: 689a ldr r2, [r3, #8] + 8003af0: 687b ldr r3, [r7, #4] + 8003af2: 681b ldr r3, [r3, #0] + 8003af4: f022 6270 bic.w r2, r2, #251658240 ; 0xf000000 + 8003af8: 609a str r2, [r3, #8] hadc->Instance->CR2 &= ~(ADC_CR2_EXTEN); - 8003576: 687b ldr r3, [r7, #4] - 8003578: 681b ldr r3, [r3, #0] - 800357a: 689a ldr r2, [r3, #8] - 800357c: 687b ldr r3, [r7, #4] - 800357e: 681b ldr r3, [r3, #0] - 8003580: f022 5240 bic.w r2, r2, #805306368 ; 0x30000000 - 8003584: 609a str r2, [r3, #8] + 8003afa: 687b ldr r3, [r7, #4] + 8003afc: 681b ldr r3, [r3, #0] + 8003afe: 689a ldr r2, [r3, #8] + 8003b00: 687b ldr r3, [r7, #4] + 8003b02: 681b ldr r3, [r3, #0] + 8003b04: f022 5240 bic.w r2, r2, #805306368 ; 0x30000000 + 8003b08: 609a str r2, [r3, #8] } /* Enable or disable ADC continuous conversion mode */ hadc->Instance->CR2 &= ~(ADC_CR2_CONT); - 8003586: 687b ldr r3, [r7, #4] - 8003588: 681b ldr r3, [r3, #0] - 800358a: 689a ldr r2, [r3, #8] - 800358c: 687b ldr r3, [r7, #4] - 800358e: 681b ldr r3, [r3, #0] - 8003590: f022 0202 bic.w r2, r2, #2 - 8003594: 609a str r2, [r3, #8] + 8003b0a: 687b ldr r3, [r7, #4] + 8003b0c: 681b ldr r3, [r3, #0] + 8003b0e: 689a ldr r2, [r3, #8] + 8003b10: 687b ldr r3, [r7, #4] + 8003b12: 681b ldr r3, [r3, #0] + 8003b14: f022 0202 bic.w r2, r2, #2 + 8003b18: 609a str r2, [r3, #8] hadc->Instance->CR2 |= ADC_CR2_CONTINUOUS((uint32_t)hadc->Init.ContinuousConvMode); - 8003596: 687b ldr r3, [r7, #4] - 8003598: 681b ldr r3, [r3, #0] - 800359a: 6899 ldr r1, [r3, #8] - 800359c: 687b ldr r3, [r7, #4] - 800359e: 7e1b ldrb r3, [r3, #24] - 80035a0: 005a lsls r2, r3, #1 - 80035a2: 687b ldr r3, [r7, #4] - 80035a4: 681b ldr r3, [r3, #0] - 80035a6: 430a orrs r2, r1 - 80035a8: 609a str r2, [r3, #8] + 8003b1a: 687b ldr r3, [r7, #4] + 8003b1c: 681b ldr r3, [r3, #0] + 8003b1e: 6899 ldr r1, [r3, #8] + 8003b20: 687b ldr r3, [r7, #4] + 8003b22: 7e1b ldrb r3, [r3, #24] + 8003b24: 005a lsls r2, r3, #1 + 8003b26: 687b ldr r3, [r7, #4] + 8003b28: 681b ldr r3, [r3, #0] + 8003b2a: 430a orrs r2, r1 + 8003b2c: 609a str r2, [r3, #8] if(hadc->Init.DiscontinuousConvMode != DISABLE) - 80035aa: 687b ldr r3, [r7, #4] - 80035ac: f893 3020 ldrb.w r3, [r3, #32] - 80035b0: 2b00 cmp r3, #0 - 80035b2: d01b beq.n 80035ec + 8003b2e: 687b ldr r3, [r7, #4] + 8003b30: f893 3020 ldrb.w r3, [r3, #32] + 8003b34: 2b00 cmp r3, #0 + 8003b36: d01b beq.n 8003b70 { assert_param(IS_ADC_REGULAR_DISC_NUMBER(hadc->Init.NbrOfDiscConversion)); /* Enable the selected ADC regular discontinuous mode */ hadc->Instance->CR1 |= (uint32_t)ADC_CR1_DISCEN; - 80035b4: 687b ldr r3, [r7, #4] - 80035b6: 681b ldr r3, [r3, #0] - 80035b8: 685a ldr r2, [r3, #4] - 80035ba: 687b ldr r3, [r7, #4] - 80035bc: 681b ldr r3, [r3, #0] - 80035be: f442 6200 orr.w r2, r2, #2048 ; 0x800 - 80035c2: 605a str r2, [r3, #4] + 8003b38: 687b ldr r3, [r7, #4] + 8003b3a: 681b ldr r3, [r3, #0] + 8003b3c: 685a ldr r2, [r3, #4] + 8003b3e: 687b ldr r3, [r7, #4] + 8003b40: 681b ldr r3, [r3, #0] + 8003b42: f442 6200 orr.w r2, r2, #2048 ; 0x800 + 8003b46: 605a str r2, [r3, #4] /* Set the number of channels to be converted in discontinuous mode */ hadc->Instance->CR1 &= ~(ADC_CR1_DISCNUM); - 80035c4: 687b ldr r3, [r7, #4] - 80035c6: 681b ldr r3, [r3, #0] - 80035c8: 685a ldr r2, [r3, #4] - 80035ca: 687b ldr r3, [r7, #4] - 80035cc: 681b ldr r3, [r3, #0] - 80035ce: f422 4260 bic.w r2, r2, #57344 ; 0xe000 - 80035d2: 605a str r2, [r3, #4] + 8003b48: 687b ldr r3, [r7, #4] + 8003b4a: 681b ldr r3, [r3, #0] + 8003b4c: 685a ldr r2, [r3, #4] + 8003b4e: 687b ldr r3, [r7, #4] + 8003b50: 681b ldr r3, [r3, #0] + 8003b52: f422 4260 bic.w r2, r2, #57344 ; 0xe000 + 8003b56: 605a str r2, [r3, #4] hadc->Instance->CR1 |= ADC_CR1_DISCONTINUOUS(hadc->Init.NbrOfDiscConversion); - 80035d4: 687b ldr r3, [r7, #4] - 80035d6: 681b ldr r3, [r3, #0] - 80035d8: 6859 ldr r1, [r3, #4] - 80035da: 687b ldr r3, [r7, #4] - 80035dc: 6a5b ldr r3, [r3, #36] ; 0x24 - 80035de: 3b01 subs r3, #1 - 80035e0: 035a lsls r2, r3, #13 - 80035e2: 687b ldr r3, [r7, #4] - 80035e4: 681b ldr r3, [r3, #0] - 80035e6: 430a orrs r2, r1 - 80035e8: 605a str r2, [r3, #4] - 80035ea: e007 b.n 80035fc + 8003b58: 687b ldr r3, [r7, #4] + 8003b5a: 681b ldr r3, [r3, #0] + 8003b5c: 6859 ldr r1, [r3, #4] + 8003b5e: 687b ldr r3, [r7, #4] + 8003b60: 6a5b ldr r3, [r3, #36] ; 0x24 + 8003b62: 3b01 subs r3, #1 + 8003b64: 035a lsls r2, r3, #13 + 8003b66: 687b ldr r3, [r7, #4] + 8003b68: 681b ldr r3, [r3, #0] + 8003b6a: 430a orrs r2, r1 + 8003b6c: 605a str r2, [r3, #4] + 8003b6e: e007 b.n 8003b80 } else { /* Disable the selected ADC regular discontinuous mode */ hadc->Instance->CR1 &= ~(ADC_CR1_DISCEN); - 80035ec: 687b ldr r3, [r7, #4] - 80035ee: 681b ldr r3, [r3, #0] - 80035f0: 685a ldr r2, [r3, #4] - 80035f2: 687b ldr r3, [r7, #4] - 80035f4: 681b ldr r3, [r3, #0] - 80035f6: f422 6200 bic.w r2, r2, #2048 ; 0x800 - 80035fa: 605a str r2, [r3, #4] + 8003b70: 687b ldr r3, [r7, #4] + 8003b72: 681b ldr r3, [r3, #0] + 8003b74: 685a ldr r2, [r3, #4] + 8003b76: 687b ldr r3, [r7, #4] + 8003b78: 681b ldr r3, [r3, #0] + 8003b7a: f422 6200 bic.w r2, r2, #2048 ; 0x800 + 8003b7e: 605a str r2, [r3, #4] } /* Set ADC number of conversion */ hadc->Instance->SQR1 &= ~(ADC_SQR1_L); - 80035fc: 687b ldr r3, [r7, #4] - 80035fe: 681b ldr r3, [r3, #0] - 8003600: 6ada ldr r2, [r3, #44] ; 0x2c - 8003602: 687b ldr r3, [r7, #4] - 8003604: 681b ldr r3, [r3, #0] - 8003606: f422 0270 bic.w r2, r2, #15728640 ; 0xf00000 - 800360a: 62da str r2, [r3, #44] ; 0x2c + 8003b80: 687b ldr r3, [r7, #4] + 8003b82: 681b ldr r3, [r3, #0] + 8003b84: 6ada ldr r2, [r3, #44] ; 0x2c + 8003b86: 687b ldr r3, [r7, #4] + 8003b88: 681b ldr r3, [r3, #0] + 8003b8a: f422 0270 bic.w r2, r2, #15728640 ; 0xf00000 + 8003b8e: 62da str r2, [r3, #44] ; 0x2c hadc->Instance->SQR1 |= ADC_SQR1(hadc->Init.NbrOfConversion); - 800360c: 687b ldr r3, [r7, #4] - 800360e: 681b ldr r3, [r3, #0] - 8003610: 6ad9 ldr r1, [r3, #44] ; 0x2c - 8003612: 687b ldr r3, [r7, #4] - 8003614: 69db ldr r3, [r3, #28] - 8003616: 3b01 subs r3, #1 - 8003618: 051a lsls r2, r3, #20 - 800361a: 687b ldr r3, [r7, #4] - 800361c: 681b ldr r3, [r3, #0] - 800361e: 430a orrs r2, r1 - 8003620: 62da str r2, [r3, #44] ; 0x2c + 8003b90: 687b ldr r3, [r7, #4] + 8003b92: 681b ldr r3, [r3, #0] + 8003b94: 6ad9 ldr r1, [r3, #44] ; 0x2c + 8003b96: 687b ldr r3, [r7, #4] + 8003b98: 69db ldr r3, [r3, #28] + 8003b9a: 3b01 subs r3, #1 + 8003b9c: 051a lsls r2, r3, #20 + 8003b9e: 687b ldr r3, [r7, #4] + 8003ba0: 681b ldr r3, [r3, #0] + 8003ba2: 430a orrs r2, r1 + 8003ba4: 62da str r2, [r3, #44] ; 0x2c /* Enable or disable ADC DMA continuous request */ hadc->Instance->CR2 &= ~(ADC_CR2_DDS); - 8003622: 687b ldr r3, [r7, #4] - 8003624: 681b ldr r3, [r3, #0] - 8003626: 689a ldr r2, [r3, #8] - 8003628: 687b ldr r3, [r7, #4] - 800362a: 681b ldr r3, [r3, #0] - 800362c: f422 7200 bic.w r2, r2, #512 ; 0x200 - 8003630: 609a str r2, [r3, #8] + 8003ba6: 687b ldr r3, [r7, #4] + 8003ba8: 681b ldr r3, [r3, #0] + 8003baa: 689a ldr r2, [r3, #8] + 8003bac: 687b ldr r3, [r7, #4] + 8003bae: 681b ldr r3, [r3, #0] + 8003bb0: f422 7200 bic.w r2, r2, #512 ; 0x200 + 8003bb4: 609a str r2, [r3, #8] hadc->Instance->CR2 |= ADC_CR2_DMAContReq((uint32_t)hadc->Init.DMAContinuousRequests); - 8003632: 687b ldr r3, [r7, #4] - 8003634: 681b ldr r3, [r3, #0] - 8003636: 6899 ldr r1, [r3, #8] - 8003638: 687b ldr r3, [r7, #4] - 800363a: f893 3030 ldrb.w r3, [r3, #48] ; 0x30 - 800363e: 025a lsls r2, r3, #9 - 8003640: 687b ldr r3, [r7, #4] - 8003642: 681b ldr r3, [r3, #0] - 8003644: 430a orrs r2, r1 - 8003646: 609a str r2, [r3, #8] + 8003bb6: 687b ldr r3, [r7, #4] + 8003bb8: 681b ldr r3, [r3, #0] + 8003bba: 6899 ldr r1, [r3, #8] + 8003bbc: 687b ldr r3, [r7, #4] + 8003bbe: f893 3030 ldrb.w r3, [r3, #48] ; 0x30 + 8003bc2: 025a lsls r2, r3, #9 + 8003bc4: 687b ldr r3, [r7, #4] + 8003bc6: 681b ldr r3, [r3, #0] + 8003bc8: 430a orrs r2, r1 + 8003bca: 609a str r2, [r3, #8] /* Enable or disable ADC end of conversion selection */ hadc->Instance->CR2 &= ~(ADC_CR2_EOCS); - 8003648: 687b ldr r3, [r7, #4] - 800364a: 681b ldr r3, [r3, #0] - 800364c: 689a ldr r2, [r3, #8] - 800364e: 687b ldr r3, [r7, #4] - 8003650: 681b ldr r3, [r3, #0] - 8003652: f422 6280 bic.w r2, r2, #1024 ; 0x400 - 8003656: 609a str r2, [r3, #8] + 8003bcc: 687b ldr r3, [r7, #4] + 8003bce: 681b ldr r3, [r3, #0] + 8003bd0: 689a ldr r2, [r3, #8] + 8003bd2: 687b ldr r3, [r7, #4] + 8003bd4: 681b ldr r3, [r3, #0] + 8003bd6: f422 6280 bic.w r2, r2, #1024 ; 0x400 + 8003bda: 609a str r2, [r3, #8] hadc->Instance->CR2 |= ADC_CR2_EOCSelection(hadc->Init.EOCSelection); - 8003658: 687b ldr r3, [r7, #4] - 800365a: 681b ldr r3, [r3, #0] - 800365c: 6899 ldr r1, [r3, #8] - 800365e: 687b ldr r3, [r7, #4] - 8003660: 695b ldr r3, [r3, #20] - 8003662: 029a lsls r2, r3, #10 - 8003664: 687b ldr r3, [r7, #4] - 8003666: 681b ldr r3, [r3, #0] - 8003668: 430a orrs r2, r1 - 800366a: 609a str r2, [r3, #8] + 8003bdc: 687b ldr r3, [r7, #4] + 8003bde: 681b ldr r3, [r3, #0] + 8003be0: 6899 ldr r1, [r3, #8] + 8003be2: 687b ldr r3, [r7, #4] + 8003be4: 695b ldr r3, [r3, #20] + 8003be6: 029a lsls r2, r3, #10 + 8003be8: 687b ldr r3, [r7, #4] + 8003bea: 681b ldr r3, [r3, #0] + 8003bec: 430a orrs r2, r1 + 8003bee: 609a str r2, [r3, #8] } - 800366c: bf00 nop - 800366e: 3714 adds r7, #20 - 8003670: 46bd mov sp, r7 - 8003672: f85d 7b04 ldr.w r7, [sp], #4 - 8003676: 4770 bx lr - 8003678: 40012300 .word 0x40012300 - 800367c: 0f000001 .word 0x0f000001 + 8003bf0: bf00 nop + 8003bf2: 3714 adds r7, #20 + 8003bf4: 46bd mov sp, r7 + 8003bf6: f85d 7b04 ldr.w r7, [sp], #4 + 8003bfa: 4770 bx lr + 8003bfc: 40012300 .word 0x40012300 + 8003c00: 0f000001 .word 0x0f000001 -08003680 <__NVIC_SetPriorityGrouping>: +08003c04 <__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) { - 8003680: b480 push {r7} - 8003682: b085 sub sp, #20 - 8003684: af00 add r7, sp, #0 - 8003686: 6078 str r0, [r7, #4] + 8003c04: b480 push {r7} + 8003c06: b085 sub sp, #20 + 8003c08: af00 add r7, sp, #0 + 8003c0a: 6078 str r0, [r7, #4] uint32_t reg_value; uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - 8003688: 687b ldr r3, [r7, #4] - 800368a: f003 0307 and.w r3, r3, #7 - 800368e: 60fb str r3, [r7, #12] + 8003c0c: 687b ldr r3, [r7, #4] + 8003c0e: f003 0307 and.w r3, r3, #7 + 8003c12: 60fb str r3, [r7, #12] reg_value = SCB->AIRCR; /* read old register configuration */ - 8003690: 4b0c ldr r3, [pc, #48] ; (80036c4 <__NVIC_SetPriorityGrouping+0x44>) - 8003692: 68db ldr r3, [r3, #12] - 8003694: 60bb str r3, [r7, #8] + 8003c14: 4b0c ldr r3, [pc, #48] ; (8003c48 <__NVIC_SetPriorityGrouping+0x44>) + 8003c16: 68db ldr r3, [r3, #12] + 8003c18: 60bb str r3, [r7, #8] reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - 8003696: 68ba ldr r2, [r7, #8] - 8003698: f64f 03ff movw r3, #63743 ; 0xf8ff - 800369c: 4013 ands r3, r2 - 800369e: 60bb str r3, [r7, #8] + 8003c1a: 68ba ldr r2, [r7, #8] + 8003c1c: f64f 03ff movw r3, #63743 ; 0xf8ff + 8003c20: 4013 ands r3, r2 + 8003c22: 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 */ - 80036a0: 68fb ldr r3, [r7, #12] - 80036a2: 021a lsls r2, r3, #8 + 8003c24: 68fb ldr r3, [r7, #12] + 8003c26: 021a lsls r2, r3, #8 ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - 80036a4: 68bb ldr r3, [r7, #8] - 80036a6: 4313 orrs r3, r2 + 8003c28: 68bb ldr r3, [r7, #8] + 8003c2a: 4313 orrs r3, r2 reg_value = (reg_value | - 80036a8: f043 63bf orr.w r3, r3, #100139008 ; 0x5f80000 - 80036ac: f443 3300 orr.w r3, r3, #131072 ; 0x20000 - 80036b0: 60bb str r3, [r7, #8] + 8003c2c: f043 63bf orr.w r3, r3, #100139008 ; 0x5f80000 + 8003c30: f443 3300 orr.w r3, r3, #131072 ; 0x20000 + 8003c34: 60bb str r3, [r7, #8] SCB->AIRCR = reg_value; - 80036b2: 4a04 ldr r2, [pc, #16] ; (80036c4 <__NVIC_SetPriorityGrouping+0x44>) - 80036b4: 68bb ldr r3, [r7, #8] - 80036b6: 60d3 str r3, [r2, #12] + 8003c36: 4a04 ldr r2, [pc, #16] ; (8003c48 <__NVIC_SetPriorityGrouping+0x44>) + 8003c38: 68bb ldr r3, [r7, #8] + 8003c3a: 60d3 str r3, [r2, #12] } - 80036b8: bf00 nop - 80036ba: 3714 adds r7, #20 - 80036bc: 46bd mov sp, r7 - 80036be: f85d 7b04 ldr.w r7, [sp], #4 - 80036c2: 4770 bx lr - 80036c4: e000ed00 .word 0xe000ed00 + 8003c3c: bf00 nop + 8003c3e: 3714 adds r7, #20 + 8003c40: 46bd mov sp, r7 + 8003c42: f85d 7b04 ldr.w r7, [sp], #4 + 8003c46: 4770 bx lr + 8003c48: e000ed00 .word 0xe000ed00 -080036c8 <__NVIC_GetPriorityGrouping>: +08003c4c <__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) { - 80036c8: b480 push {r7} - 80036ca: af00 add r7, sp, #0 + 8003c4c: b480 push {r7} + 8003c4e: af00 add r7, sp, #0 return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); - 80036cc: 4b04 ldr r3, [pc, #16] ; (80036e0 <__NVIC_GetPriorityGrouping+0x18>) - 80036ce: 68db ldr r3, [r3, #12] - 80036d0: 0a1b lsrs r3, r3, #8 - 80036d2: f003 0307 and.w r3, r3, #7 + 8003c50: 4b04 ldr r3, [pc, #16] ; (8003c64 <__NVIC_GetPriorityGrouping+0x18>) + 8003c52: 68db ldr r3, [r3, #12] + 8003c54: 0a1b lsrs r3, r3, #8 + 8003c56: f003 0307 and.w r3, r3, #7 } - 80036d6: 4618 mov r0, r3 - 80036d8: 46bd mov sp, r7 - 80036da: f85d 7b04 ldr.w r7, [sp], #4 - 80036de: 4770 bx lr - 80036e0: e000ed00 .word 0xe000ed00 + 8003c5a: 4618 mov r0, r3 + 8003c5c: 46bd mov sp, r7 + 8003c5e: f85d 7b04 ldr.w r7, [sp], #4 + 8003c62: 4770 bx lr + 8003c64: e000ed00 .word 0xe000ed00 -080036e4 <__NVIC_EnableIRQ>: +08003c68 <__NVIC_EnableIRQ>: \details Enables a device specific interrupt in the NVIC interrupt controller. \param [in] IRQn Device specific interrupt number. \note IRQn must not be negative. */ __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) { - 80036e4: b480 push {r7} - 80036e6: b083 sub sp, #12 - 80036e8: af00 add r7, sp, #0 - 80036ea: 4603 mov r3, r0 - 80036ec: 71fb strb r3, [r7, #7] + 8003c68: b480 push {r7} + 8003c6a: b083 sub sp, #12 + 8003c6c: af00 add r7, sp, #0 + 8003c6e: 4603 mov r3, r0 + 8003c70: 71fb strb r3, [r7, #7] if ((int32_t)(IRQn) >= 0) - 80036ee: f997 3007 ldrsb.w r3, [r7, #7] - 80036f2: 2b00 cmp r3, #0 - 80036f4: db0b blt.n 800370e <__NVIC_EnableIRQ+0x2a> + 8003c72: f997 3007 ldrsb.w r3, [r7, #7] + 8003c76: 2b00 cmp r3, #0 + 8003c78: db0b blt.n 8003c92 <__NVIC_EnableIRQ+0x2a> { NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - 80036f6: 79fb ldrb r3, [r7, #7] - 80036f8: f003 021f and.w r2, r3, #31 - 80036fc: 4907 ldr r1, [pc, #28] ; (800371c <__NVIC_EnableIRQ+0x38>) - 80036fe: f997 3007 ldrsb.w r3, [r7, #7] - 8003702: 095b lsrs r3, r3, #5 - 8003704: 2001 movs r0, #1 - 8003706: fa00 f202 lsl.w r2, r0, r2 - 800370a: f841 2023 str.w r2, [r1, r3, lsl #2] + 8003c7a: 79fb ldrb r3, [r7, #7] + 8003c7c: f003 021f and.w r2, r3, #31 + 8003c80: 4907 ldr r1, [pc, #28] ; (8003ca0 <__NVIC_EnableIRQ+0x38>) + 8003c82: f997 3007 ldrsb.w r3, [r7, #7] + 8003c86: 095b lsrs r3, r3, #5 + 8003c88: 2001 movs r0, #1 + 8003c8a: fa00 f202 lsl.w r2, r0, r2 + 8003c8e: f841 2023 str.w r2, [r1, r3, lsl #2] } } - 800370e: bf00 nop - 8003710: 370c adds r7, #12 - 8003712: 46bd mov sp, r7 - 8003714: f85d 7b04 ldr.w r7, [sp], #4 - 8003718: 4770 bx lr - 800371a: bf00 nop - 800371c: e000e100 .word 0xe000e100 + 8003c92: bf00 nop + 8003c94: 370c adds r7, #12 + 8003c96: 46bd mov sp, r7 + 8003c98: f85d 7b04 ldr.w r7, [sp], #4 + 8003c9c: 4770 bx lr + 8003c9e: bf00 nop + 8003ca0: e000e100 .word 0xe000e100 -08003720 <__NVIC_SetPriority>: +08003ca4 <__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) { - 8003720: b480 push {r7} - 8003722: b083 sub sp, #12 - 8003724: af00 add r7, sp, #0 - 8003726: 4603 mov r3, r0 - 8003728: 6039 str r1, [r7, #0] - 800372a: 71fb strb r3, [r7, #7] + 8003ca4: b480 push {r7} + 8003ca6: b083 sub sp, #12 + 8003ca8: af00 add r7, sp, #0 + 8003caa: 4603 mov r3, r0 + 8003cac: 6039 str r1, [r7, #0] + 8003cae: 71fb strb r3, [r7, #7] if ((int32_t)(IRQn) >= 0) - 800372c: f997 3007 ldrsb.w r3, [r7, #7] - 8003730: 2b00 cmp r3, #0 - 8003732: db0a blt.n 800374a <__NVIC_SetPriority+0x2a> + 8003cb0: f997 3007 ldrsb.w r3, [r7, #7] + 8003cb4: 2b00 cmp r3, #0 + 8003cb6: db0a blt.n 8003cce <__NVIC_SetPriority+0x2a> { NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - 8003734: 683b ldr r3, [r7, #0] - 8003736: b2da uxtb r2, r3 - 8003738: 490c ldr r1, [pc, #48] ; (800376c <__NVIC_SetPriority+0x4c>) - 800373a: f997 3007 ldrsb.w r3, [r7, #7] - 800373e: 0112 lsls r2, r2, #4 - 8003740: b2d2 uxtb r2, r2 - 8003742: 440b add r3, r1 - 8003744: f883 2300 strb.w r2, [r3, #768] ; 0x300 + 8003cb8: 683b ldr r3, [r7, #0] + 8003cba: b2da uxtb r2, r3 + 8003cbc: 490c ldr r1, [pc, #48] ; (8003cf0 <__NVIC_SetPriority+0x4c>) + 8003cbe: f997 3007 ldrsb.w r3, [r7, #7] + 8003cc2: 0112 lsls r2, r2, #4 + 8003cc4: b2d2 uxtb r2, r2 + 8003cc6: 440b add r3, r1 + 8003cc8: 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); } } - 8003748: e00a b.n 8003760 <__NVIC_SetPriority+0x40> + 8003ccc: e00a b.n 8003ce4 <__NVIC_SetPriority+0x40> SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - 800374a: 683b ldr r3, [r7, #0] - 800374c: b2da uxtb r2, r3 - 800374e: 4908 ldr r1, [pc, #32] ; (8003770 <__NVIC_SetPriority+0x50>) - 8003750: 79fb ldrb r3, [r7, #7] - 8003752: f003 030f and.w r3, r3, #15 - 8003756: 3b04 subs r3, #4 - 8003758: 0112 lsls r2, r2, #4 - 800375a: b2d2 uxtb r2, r2 - 800375c: 440b add r3, r1 - 800375e: 761a strb r2, [r3, #24] + 8003cce: 683b ldr r3, [r7, #0] + 8003cd0: b2da uxtb r2, r3 + 8003cd2: 4908 ldr r1, [pc, #32] ; (8003cf4 <__NVIC_SetPriority+0x50>) + 8003cd4: 79fb ldrb r3, [r7, #7] + 8003cd6: f003 030f and.w r3, r3, #15 + 8003cda: 3b04 subs r3, #4 + 8003cdc: 0112 lsls r2, r2, #4 + 8003cde: b2d2 uxtb r2, r2 + 8003ce0: 440b add r3, r1 + 8003ce2: 761a strb r2, [r3, #24] } - 8003760: bf00 nop - 8003762: 370c adds r7, #12 - 8003764: 46bd mov sp, r7 - 8003766: f85d 7b04 ldr.w r7, [sp], #4 - 800376a: 4770 bx lr - 800376c: e000e100 .word 0xe000e100 - 8003770: e000ed00 .word 0xe000ed00 + 8003ce4: bf00 nop + 8003ce6: 370c adds r7, #12 + 8003ce8: 46bd mov sp, r7 + 8003cea: f85d 7b04 ldr.w r7, [sp], #4 + 8003cee: 4770 bx lr + 8003cf0: e000e100 .word 0xe000e100 + 8003cf4: e000ed00 .word 0xe000ed00 -08003774 : +08003cf8 : \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) { - 8003774: b480 push {r7} - 8003776: b089 sub sp, #36 ; 0x24 - 8003778: af00 add r7, sp, #0 - 800377a: 60f8 str r0, [r7, #12] - 800377c: 60b9 str r1, [r7, #8] - 800377e: 607a str r2, [r7, #4] + 8003cf8: b480 push {r7} + 8003cfa: b089 sub sp, #36 ; 0x24 + 8003cfc: af00 add r7, sp, #0 + 8003cfe: 60f8 str r0, [r7, #12] + 8003d00: 60b9 str r1, [r7, #8] + 8003d02: 607a str r2, [r7, #4] uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - 8003780: 68fb ldr r3, [r7, #12] - 8003782: f003 0307 and.w r3, r3, #7 - 8003786: 61fb str r3, [r7, #28] + 8003d04: 68fb ldr r3, [r7, #12] + 8003d06: f003 0307 and.w r3, r3, #7 + 8003d0a: 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); - 8003788: 69fb ldr r3, [r7, #28] - 800378a: f1c3 0307 rsb r3, r3, #7 - 800378e: 2b04 cmp r3, #4 - 8003790: bf28 it cs - 8003792: 2304 movcs r3, #4 - 8003794: 61bb str r3, [r7, #24] + 8003d0c: 69fb ldr r3, [r7, #28] + 8003d0e: f1c3 0307 rsb r3, r3, #7 + 8003d12: 2b04 cmp r3, #4 + 8003d14: bf28 it cs + 8003d16: 2304 movcs r3, #4 + 8003d18: 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)); - 8003796: 69fb ldr r3, [r7, #28] - 8003798: 3304 adds r3, #4 - 800379a: 2b06 cmp r3, #6 - 800379c: d902 bls.n 80037a4 - 800379e: 69fb ldr r3, [r7, #28] - 80037a0: 3b03 subs r3, #3 - 80037a2: e000 b.n 80037a6 - 80037a4: 2300 movs r3, #0 - 80037a6: 617b str r3, [r7, #20] + 8003d1a: 69fb ldr r3, [r7, #28] + 8003d1c: 3304 adds r3, #4 + 8003d1e: 2b06 cmp r3, #6 + 8003d20: d902 bls.n 8003d28 + 8003d22: 69fb ldr r3, [r7, #28] + 8003d24: 3b03 subs r3, #3 + 8003d26: e000 b.n 8003d2a + 8003d28: 2300 movs r3, #0 + 8003d2a: 617b str r3, [r7, #20] return ( ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - 80037a8: f04f 32ff mov.w r2, #4294967295 - 80037ac: 69bb ldr r3, [r7, #24] - 80037ae: fa02 f303 lsl.w r3, r2, r3 - 80037b2: 43da mvns r2, r3 - 80037b4: 68bb ldr r3, [r7, #8] - 80037b6: 401a ands r2, r3 - 80037b8: 697b ldr r3, [r7, #20] - 80037ba: 409a lsls r2, r3 + 8003d2c: f04f 32ff mov.w r2, #4294967295 + 8003d30: 69bb ldr r3, [r7, #24] + 8003d32: fa02 f303 lsl.w r3, r2, r3 + 8003d36: 43da mvns r2, r3 + 8003d38: 68bb ldr r3, [r7, #8] + 8003d3a: 401a ands r2, r3 + 8003d3c: 697b ldr r3, [r7, #20] + 8003d3e: 409a lsls r2, r3 ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - 80037bc: f04f 31ff mov.w r1, #4294967295 - 80037c0: 697b ldr r3, [r7, #20] - 80037c2: fa01 f303 lsl.w r3, r1, r3 - 80037c6: 43d9 mvns r1, r3 - 80037c8: 687b ldr r3, [r7, #4] - 80037ca: 400b ands r3, r1 + 8003d40: f04f 31ff mov.w r1, #4294967295 + 8003d44: 697b ldr r3, [r7, #20] + 8003d46: fa01 f303 lsl.w r3, r1, r3 + 8003d4a: 43d9 mvns r1, r3 + 8003d4c: 687b ldr r3, [r7, #4] + 8003d4e: 400b ands r3, r1 ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - 80037cc: 4313 orrs r3, r2 + 8003d50: 4313 orrs r3, r2 ); } - 80037ce: 4618 mov r0, r3 - 80037d0: 3724 adds r7, #36 ; 0x24 - 80037d2: 46bd mov sp, r7 - 80037d4: f85d 7b04 ldr.w r7, [sp], #4 - 80037d8: 4770 bx lr + 8003d52: 4618 mov r0, r3 + 8003d54: 3724 adds r7, #36 ; 0x24 + 8003d56: 46bd mov sp, r7 + 8003d58: f85d 7b04 ldr.w r7, [sp], #4 + 8003d5c: 4770 bx lr ... -080037dc : +08003d60 : \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) { - 80037dc: b580 push {r7, lr} - 80037de: b082 sub sp, #8 - 80037e0: af00 add r7, sp, #0 - 80037e2: 6078 str r0, [r7, #4] + 8003d60: b580 push {r7, lr} + 8003d62: b082 sub sp, #8 + 8003d64: af00 add r7, sp, #0 + 8003d66: 6078 str r0, [r7, #4] if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - 80037e4: 687b ldr r3, [r7, #4] - 80037e6: 3b01 subs r3, #1 - 80037e8: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 - 80037ec: d301 bcc.n 80037f2 + 8003d68: 687b ldr r3, [r7, #4] + 8003d6a: 3b01 subs r3, #1 + 8003d6c: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 + 8003d70: d301 bcc.n 8003d76 { return (1UL); /* Reload value impossible */ - 80037ee: 2301 movs r3, #1 - 80037f0: e00f b.n 8003812 + 8003d72: 2301 movs r3, #1 + 8003d74: e00f b.n 8003d96 } SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - 80037f2: 4a0a ldr r2, [pc, #40] ; (800381c ) - 80037f4: 687b ldr r3, [r7, #4] - 80037f6: 3b01 subs r3, #1 - 80037f8: 6053 str r3, [r2, #4] + 8003d76: 4a0a ldr r2, [pc, #40] ; (8003da0 ) + 8003d78: 687b ldr r3, [r7, #4] + 8003d7a: 3b01 subs r3, #1 + 8003d7c: 6053 str r3, [r2, #4] NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - 80037fa: 210f movs r1, #15 - 80037fc: f04f 30ff mov.w r0, #4294967295 - 8003800: f7ff ff8e bl 8003720 <__NVIC_SetPriority> + 8003d7e: 210f movs r1, #15 + 8003d80: f04f 30ff mov.w r0, #4294967295 + 8003d84: f7ff ff8e bl 8003ca4 <__NVIC_SetPriority> SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - 8003804: 4b05 ldr r3, [pc, #20] ; (800381c ) - 8003806: 2200 movs r2, #0 - 8003808: 609a str r2, [r3, #8] + 8003d88: 4b05 ldr r3, [pc, #20] ; (8003da0 ) + 8003d8a: 2200 movs r2, #0 + 8003d8c: 609a str r2, [r3, #8] SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - 800380a: 4b04 ldr r3, [pc, #16] ; (800381c ) - 800380c: 2207 movs r2, #7 - 800380e: 601a str r2, [r3, #0] + 8003d8e: 4b04 ldr r3, [pc, #16] ; (8003da0 ) + 8003d90: 2207 movs r2, #7 + 8003d92: 601a str r2, [r3, #0] SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ return (0UL); /* Function successful */ - 8003810: 2300 movs r3, #0 + 8003d94: 2300 movs r3, #0 } - 8003812: 4618 mov r0, r3 - 8003814: 3708 adds r7, #8 - 8003816: 46bd mov sp, r7 - 8003818: bd80 pop {r7, pc} - 800381a: bf00 nop - 800381c: e000e010 .word 0xe000e010 + 8003d96: 4618 mov r0, r3 + 8003d98: 3708 adds r7, #8 + 8003d9a: 46bd mov sp, r7 + 8003d9c: bd80 pop {r7, pc} + 8003d9e: bf00 nop + 8003da0: e000e010 .word 0xe000e010 -08003820 : +08003da4 : * @note When the NVIC_PriorityGroup_0 is selected, IRQ preemption is no more possible. * The pending IRQ priority will be managed only by the subpriority. * @retval None */ void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) { - 8003820: b580 push {r7, lr} - 8003822: b082 sub sp, #8 - 8003824: af00 add r7, sp, #0 - 8003826: 6078 str r0, [r7, #4] + 8003da4: b580 push {r7, lr} + 8003da6: b082 sub sp, #8 + 8003da8: af00 add r7, sp, #0 + 8003daa: 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); - 8003828: 6878 ldr r0, [r7, #4] - 800382a: f7ff ff29 bl 8003680 <__NVIC_SetPriorityGrouping> + 8003dac: 6878 ldr r0, [r7, #4] + 8003dae: f7ff ff29 bl 8003c04 <__NVIC_SetPriorityGrouping> } - 800382e: bf00 nop - 8003830: 3708 adds r7, #8 - 8003832: 46bd mov sp, r7 - 8003834: bd80 pop {r7, pc} + 8003db2: bf00 nop + 8003db4: 3708 adds r7, #8 + 8003db6: 46bd mov sp, r7 + 8003db8: bd80 pop {r7, pc} -08003836 : +08003dba : * 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) { - 8003836: b580 push {r7, lr} - 8003838: b086 sub sp, #24 - 800383a: af00 add r7, sp, #0 - 800383c: 4603 mov r3, r0 - 800383e: 60b9 str r1, [r7, #8] - 8003840: 607a str r2, [r7, #4] - 8003842: 73fb strb r3, [r7, #15] + 8003dba: b580 push {r7, lr} + 8003dbc: b086 sub sp, #24 + 8003dbe: af00 add r7, sp, #0 + 8003dc0: 4603 mov r3, r0 + 8003dc2: 60b9 str r1, [r7, #8] + 8003dc4: 607a str r2, [r7, #4] + 8003dc6: 73fb strb r3, [r7, #15] uint32_t prioritygroup = 0x00U; - 8003844: 2300 movs r3, #0 - 8003846: 617b str r3, [r7, #20] + 8003dc8: 2300 movs r3, #0 + 8003dca: 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(); - 8003848: f7ff ff3e bl 80036c8 <__NVIC_GetPriorityGrouping> - 800384c: 6178 str r0, [r7, #20] + 8003dcc: f7ff ff3e bl 8003c4c <__NVIC_GetPriorityGrouping> + 8003dd0: 6178 str r0, [r7, #20] NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority)); - 800384e: 687a ldr r2, [r7, #4] - 8003850: 68b9 ldr r1, [r7, #8] - 8003852: 6978 ldr r0, [r7, #20] - 8003854: f7ff ff8e bl 8003774 - 8003858: 4602 mov r2, r0 - 800385a: f997 300f ldrsb.w r3, [r7, #15] - 800385e: 4611 mov r1, r2 - 8003860: 4618 mov r0, r3 - 8003862: f7ff ff5d bl 8003720 <__NVIC_SetPriority> + 8003dd2: 687a ldr r2, [r7, #4] + 8003dd4: 68b9 ldr r1, [r7, #8] + 8003dd6: 6978 ldr r0, [r7, #20] + 8003dd8: f7ff ff8e bl 8003cf8 + 8003ddc: 4602 mov r2, r0 + 8003dde: f997 300f ldrsb.w r3, [r7, #15] + 8003de2: 4611 mov r1, r2 + 8003de4: 4618 mov r0, r3 + 8003de6: f7ff ff5d bl 8003ca4 <__NVIC_SetPriority> } - 8003866: bf00 nop - 8003868: 3718 adds r7, #24 - 800386a: 46bd mov sp, r7 - 800386c: bd80 pop {r7, pc} + 8003dea: bf00 nop + 8003dec: 3718 adds r7, #24 + 8003dee: 46bd mov sp, r7 + 8003df0: bd80 pop {r7, pc} -0800386e : +08003df2 : * This parameter can be an enumerator of IRQn_Type enumeration * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32f4xxxx.h)) * @retval None */ void HAL_NVIC_EnableIRQ(IRQn_Type IRQn) { - 800386e: b580 push {r7, lr} - 8003870: b082 sub sp, #8 - 8003872: af00 add r7, sp, #0 - 8003874: 4603 mov r3, r0 - 8003876: 71fb strb r3, [r7, #7] + 8003df2: b580 push {r7, lr} + 8003df4: b082 sub sp, #8 + 8003df6: af00 add r7, sp, #0 + 8003df8: 4603 mov r3, r0 + 8003dfa: 71fb strb r3, [r7, #7] /* Check the parameters */ assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); /* Enable interrupt */ NVIC_EnableIRQ(IRQn); - 8003878: f997 3007 ldrsb.w r3, [r7, #7] - 800387c: 4618 mov r0, r3 - 800387e: f7ff ff31 bl 80036e4 <__NVIC_EnableIRQ> + 8003dfc: f997 3007 ldrsb.w r3, [r7, #7] + 8003e00: 4618 mov r0, r3 + 8003e02: f7ff ff31 bl 8003c68 <__NVIC_EnableIRQ> } - 8003882: bf00 nop - 8003884: 3708 adds r7, #8 - 8003886: 46bd mov sp, r7 - 8003888: bd80 pop {r7, pc} + 8003e06: bf00 nop + 8003e08: 3708 adds r7, #8 + 8003e0a: 46bd mov sp, r7 + 8003e0c: bd80 pop {r7, pc} -0800388a : +08003e0e : * @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) { - 800388a: b580 push {r7, lr} - 800388c: b082 sub sp, #8 - 800388e: af00 add r7, sp, #0 - 8003890: 6078 str r0, [r7, #4] + 8003e0e: b580 push {r7, lr} + 8003e10: b082 sub sp, #8 + 8003e12: af00 add r7, sp, #0 + 8003e14: 6078 str r0, [r7, #4] return SysTick_Config(TicksNumb); - 8003892: 6878 ldr r0, [r7, #4] - 8003894: f7ff ffa2 bl 80037dc - 8003898: 4603 mov r3, r0 + 8003e16: 6878 ldr r0, [r7, #4] + 8003e18: f7ff ffa2 bl 8003d60 + 8003e1c: 4603 mov r3, r0 } - 800389a: 4618 mov r0, r3 - 800389c: 3708 adds r7, #8 - 800389e: 46bd mov sp, r7 - 80038a0: bd80 pop {r7, pc} + 8003e1e: 4618 mov r0, r3 + 8003e20: 3708 adds r7, #8 + 8003e22: 46bd mov sp, r7 + 8003e24: bd80 pop {r7, pc} -080038a2 : +08003e26 : * @param hdma pointer to a DMA_HandleTypeDef structure that contains * the configuration information for the specified DMA Stream. * @retval HAL status */ HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma) { - 80038a2: b480 push {r7} - 80038a4: b083 sub sp, #12 - 80038a6: af00 add r7, sp, #0 - 80038a8: 6078 str r0, [r7, #4] + 8003e26: b480 push {r7} + 8003e28: b083 sub sp, #12 + 8003e2a: af00 add r7, sp, #0 + 8003e2c: 6078 str r0, [r7, #4] if(hdma->State != HAL_DMA_STATE_BUSY) - 80038aa: 687b ldr r3, [r7, #4] - 80038ac: f893 3035 ldrb.w r3, [r3, #53] ; 0x35 - 80038b0: b2db uxtb r3, r3 - 80038b2: 2b02 cmp r3, #2 - 80038b4: d004 beq.n 80038c0 + 8003e2e: 687b ldr r3, [r7, #4] + 8003e30: f893 3035 ldrb.w r3, [r3, #53] ; 0x35 + 8003e34: b2db uxtb r3, r3 + 8003e36: 2b02 cmp r3, #2 + 8003e38: d004 beq.n 8003e44 { hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; - 80038b6: 687b ldr r3, [r7, #4] - 80038b8: 2280 movs r2, #128 ; 0x80 - 80038ba: 655a str r2, [r3, #84] ; 0x54 + 8003e3a: 687b ldr r3, [r7, #4] + 8003e3c: 2280 movs r2, #128 ; 0x80 + 8003e3e: 655a str r2, [r3, #84] ; 0x54 return HAL_ERROR; - 80038bc: 2301 movs r3, #1 - 80038be: e00c b.n 80038da + 8003e40: 2301 movs r3, #1 + 8003e42: e00c b.n 8003e5e } else { /* Set Abort State */ hdma->State = HAL_DMA_STATE_ABORT; - 80038c0: 687b ldr r3, [r7, #4] - 80038c2: 2205 movs r2, #5 - 80038c4: f883 2035 strb.w r2, [r3, #53] ; 0x35 + 8003e44: 687b ldr r3, [r7, #4] + 8003e46: 2205 movs r2, #5 + 8003e48: f883 2035 strb.w r2, [r3, #53] ; 0x35 /* Disable the stream */ __HAL_DMA_DISABLE(hdma); - 80038c8: 687b ldr r3, [r7, #4] - 80038ca: 681b ldr r3, [r3, #0] - 80038cc: 681a ldr r2, [r3, #0] - 80038ce: 687b ldr r3, [r7, #4] - 80038d0: 681b ldr r3, [r3, #0] - 80038d2: f022 0201 bic.w r2, r2, #1 - 80038d6: 601a str r2, [r3, #0] + 8003e4c: 687b ldr r3, [r7, #4] + 8003e4e: 681b ldr r3, [r3, #0] + 8003e50: 681a ldr r2, [r3, #0] + 8003e52: 687b ldr r3, [r7, #4] + 8003e54: 681b ldr r3, [r3, #0] + 8003e56: f022 0201 bic.w r2, r2, #1 + 8003e5a: 601a str r2, [r3, #0] } return HAL_OK; - 80038d8: 2300 movs r3, #0 + 8003e5c: 2300 movs r3, #0 } - 80038da: 4618 mov r0, r3 - 80038dc: 370c adds r7, #12 - 80038de: 46bd mov sp, r7 - 80038e0: f85d 7b04 ldr.w r7, [sp], #4 - 80038e4: 4770 bx lr + 8003e5e: 4618 mov r0, r3 + 8003e60: 370c adds r7, #12 + 8003e62: 46bd mov sp, r7 + 8003e64: f85d 7b04 ldr.w r7, [sp], #4 + 8003e68: 4770 bx lr ... -080038e8 : +08003e6c : * @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) { - 80038e8: b480 push {r7} - 80038ea: b089 sub sp, #36 ; 0x24 - 80038ec: af00 add r7, sp, #0 - 80038ee: 6078 str r0, [r7, #4] - 80038f0: 6039 str r1, [r7, #0] + 8003e6c: b480 push {r7} + 8003e6e: b089 sub sp, #36 ; 0x24 + 8003e70: af00 add r7, sp, #0 + 8003e72: 6078 str r0, [r7, #4] + 8003e74: 6039 str r1, [r7, #0] uint32_t position; uint32_t ioposition = 0x00U; - 80038f2: 2300 movs r3, #0 - 80038f4: 617b str r3, [r7, #20] + 8003e76: 2300 movs r3, #0 + 8003e78: 617b str r3, [r7, #20] uint32_t iocurrent = 0x00U; - 80038f6: 2300 movs r3, #0 - 80038f8: 613b str r3, [r7, #16] + 8003e7a: 2300 movs r3, #0 + 8003e7c: 613b str r3, [r7, #16] uint32_t temp = 0x00U; - 80038fa: 2300 movs r3, #0 - 80038fc: 61bb str r3, [r7, #24] + 8003e7e: 2300 movs r3, #0 + 8003e80: 61bb str r3, [r7, #24] assert_param(IS_GPIO_PIN(GPIO_Init->Pin)); assert_param(IS_GPIO_MODE(GPIO_Init->Mode)); assert_param(IS_GPIO_PULL(GPIO_Init->Pull)); /* Configure the port pins */ for(position = 0U; position < GPIO_NUMBER; position++) - 80038fe: 2300 movs r3, #0 - 8003900: 61fb str r3, [r7, #28] - 8003902: e177 b.n 8003bf4 + 8003e82: 2300 movs r3, #0 + 8003e84: 61fb str r3, [r7, #28] + 8003e86: e177 b.n 8004178 { /* Get the IO position */ ioposition = 0x01U << position; - 8003904: 2201 movs r2, #1 - 8003906: 69fb ldr r3, [r7, #28] - 8003908: fa02 f303 lsl.w r3, r2, r3 - 800390c: 617b str r3, [r7, #20] + 8003e88: 2201 movs r2, #1 + 8003e8a: 69fb ldr r3, [r7, #28] + 8003e8c: fa02 f303 lsl.w r3, r2, r3 + 8003e90: 617b str r3, [r7, #20] /* Get the current IO position */ iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition; - 800390e: 683b ldr r3, [r7, #0] - 8003910: 681b ldr r3, [r3, #0] - 8003912: 697a ldr r2, [r7, #20] - 8003914: 4013 ands r3, r2 - 8003916: 613b str r3, [r7, #16] + 8003e92: 683b ldr r3, [r7, #0] + 8003e94: 681b ldr r3, [r3, #0] + 8003e96: 697a ldr r2, [r7, #20] + 8003e98: 4013 ands r3, r2 + 8003e9a: 613b str r3, [r7, #16] if(iocurrent == ioposition) - 8003918: 693a ldr r2, [r7, #16] - 800391a: 697b ldr r3, [r7, #20] - 800391c: 429a cmp r2, r3 - 800391e: f040 8166 bne.w 8003bee + 8003e9c: 693a ldr r2, [r7, #16] + 8003e9e: 697b ldr r3, [r7, #20] + 8003ea0: 429a cmp r2, r3 + 8003ea2: f040 8166 bne.w 8004172 { /*--------------------- GPIO Mode Configuration ------------------------*/ /* In case of Output or Alternate function mode selection */ if((GPIO_Init->Mode == GPIO_MODE_OUTPUT_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_PP) || - 8003922: 683b ldr r3, [r7, #0] - 8003924: 685b ldr r3, [r3, #4] - 8003926: 2b01 cmp r3, #1 - 8003928: d00b beq.n 8003942 - 800392a: 683b ldr r3, [r7, #0] - 800392c: 685b ldr r3, [r3, #4] - 800392e: 2b02 cmp r3, #2 - 8003930: d007 beq.n 8003942 + 8003ea6: 683b ldr r3, [r7, #0] + 8003ea8: 685b ldr r3, [r3, #4] + 8003eaa: 2b01 cmp r3, #1 + 8003eac: d00b beq.n 8003ec6 + 8003eae: 683b ldr r3, [r7, #0] + 8003eb0: 685b ldr r3, [r3, #4] + 8003eb2: 2b02 cmp r3, #2 + 8003eb4: d007 beq.n 8003ec6 (GPIO_Init->Mode == GPIO_MODE_OUTPUT_OD) || (GPIO_Init->Mode == GPIO_MODE_AF_OD)) - 8003932: 683b ldr r3, [r7, #0] - 8003934: 685b ldr r3, [r3, #4] + 8003eb6: 683b ldr r3, [r7, #0] + 8003eb8: 685b ldr r3, [r3, #4] if((GPIO_Init->Mode == GPIO_MODE_OUTPUT_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_PP) || - 8003936: 2b11 cmp r3, #17 - 8003938: d003 beq.n 8003942 + 8003eba: 2b11 cmp r3, #17 + 8003ebc: d003 beq.n 8003ec6 (GPIO_Init->Mode == GPIO_MODE_OUTPUT_OD) || (GPIO_Init->Mode == GPIO_MODE_AF_OD)) - 800393a: 683b ldr r3, [r7, #0] - 800393c: 685b ldr r3, [r3, #4] - 800393e: 2b12 cmp r3, #18 - 8003940: d130 bne.n 80039a4 + 8003ebe: 683b ldr r3, [r7, #0] + 8003ec0: 685b ldr r3, [r3, #4] + 8003ec2: 2b12 cmp r3, #18 + 8003ec4: d130 bne.n 8003f28 { /* Check the Speed parameter */ assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); /* Configure the IO Speed */ temp = GPIOx->OSPEEDR; - 8003942: 687b ldr r3, [r7, #4] - 8003944: 689b ldr r3, [r3, #8] - 8003946: 61bb str r3, [r7, #24] + 8003ec6: 687b ldr r3, [r7, #4] + 8003ec8: 689b ldr r3, [r3, #8] + 8003eca: 61bb str r3, [r7, #24] temp &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2U)); - 8003948: 69fb ldr r3, [r7, #28] - 800394a: 005b lsls r3, r3, #1 - 800394c: 2203 movs r2, #3 - 800394e: fa02 f303 lsl.w r3, r2, r3 - 8003952: 43db mvns r3, r3 - 8003954: 69ba ldr r2, [r7, #24] - 8003956: 4013 ands r3, r2 - 8003958: 61bb str r3, [r7, #24] + 8003ecc: 69fb ldr r3, [r7, #28] + 8003ece: 005b lsls r3, r3, #1 + 8003ed0: 2203 movs r2, #3 + 8003ed2: fa02 f303 lsl.w r3, r2, r3 + 8003ed6: 43db mvns r3, r3 + 8003ed8: 69ba ldr r2, [r7, #24] + 8003eda: 4013 ands r3, r2 + 8003edc: 61bb str r3, [r7, #24] temp |= (GPIO_Init->Speed << (position * 2U)); - 800395a: 683b ldr r3, [r7, #0] - 800395c: 68da ldr r2, [r3, #12] - 800395e: 69fb ldr r3, [r7, #28] - 8003960: 005b lsls r3, r3, #1 - 8003962: fa02 f303 lsl.w r3, r2, r3 - 8003966: 69ba ldr r2, [r7, #24] - 8003968: 4313 orrs r3, r2 - 800396a: 61bb str r3, [r7, #24] + 8003ede: 683b ldr r3, [r7, #0] + 8003ee0: 68da ldr r2, [r3, #12] + 8003ee2: 69fb ldr r3, [r7, #28] + 8003ee4: 005b lsls r3, r3, #1 + 8003ee6: fa02 f303 lsl.w r3, r2, r3 + 8003eea: 69ba ldr r2, [r7, #24] + 8003eec: 4313 orrs r3, r2 + 8003eee: 61bb str r3, [r7, #24] GPIOx->OSPEEDR = temp; - 800396c: 687b ldr r3, [r7, #4] - 800396e: 69ba ldr r2, [r7, #24] - 8003970: 609a str r2, [r3, #8] + 8003ef0: 687b ldr r3, [r7, #4] + 8003ef2: 69ba ldr r2, [r7, #24] + 8003ef4: 609a str r2, [r3, #8] /* Configure the IO Output Type */ temp = GPIOx->OTYPER; - 8003972: 687b ldr r3, [r7, #4] - 8003974: 685b ldr r3, [r3, #4] - 8003976: 61bb str r3, [r7, #24] + 8003ef6: 687b ldr r3, [r7, #4] + 8003ef8: 685b ldr r3, [r3, #4] + 8003efa: 61bb str r3, [r7, #24] temp &= ~(GPIO_OTYPER_OT_0 << position) ; - 8003978: 2201 movs r2, #1 - 800397a: 69fb ldr r3, [r7, #28] - 800397c: fa02 f303 lsl.w r3, r2, r3 - 8003980: 43db mvns r3, r3 - 8003982: 69ba ldr r2, [r7, #24] - 8003984: 4013 ands r3, r2 - 8003986: 61bb str r3, [r7, #24] + 8003efc: 2201 movs r2, #1 + 8003efe: 69fb ldr r3, [r7, #28] + 8003f00: fa02 f303 lsl.w r3, r2, r3 + 8003f04: 43db mvns r3, r3 + 8003f06: 69ba ldr r2, [r7, #24] + 8003f08: 4013 ands r3, r2 + 8003f0a: 61bb str r3, [r7, #24] temp |= (((GPIO_Init->Mode & GPIO_OUTPUT_TYPE) >> 4U) << position); - 8003988: 683b ldr r3, [r7, #0] - 800398a: 685b ldr r3, [r3, #4] - 800398c: 091b lsrs r3, r3, #4 - 800398e: f003 0201 and.w r2, r3, #1 - 8003992: 69fb ldr r3, [r7, #28] - 8003994: fa02 f303 lsl.w r3, r2, r3 - 8003998: 69ba ldr r2, [r7, #24] - 800399a: 4313 orrs r3, r2 - 800399c: 61bb str r3, [r7, #24] + 8003f0c: 683b ldr r3, [r7, #0] + 8003f0e: 685b ldr r3, [r3, #4] + 8003f10: 091b lsrs r3, r3, #4 + 8003f12: f003 0201 and.w r2, r3, #1 + 8003f16: 69fb ldr r3, [r7, #28] + 8003f18: fa02 f303 lsl.w r3, r2, r3 + 8003f1c: 69ba ldr r2, [r7, #24] + 8003f1e: 4313 orrs r3, r2 + 8003f20: 61bb str r3, [r7, #24] GPIOx->OTYPER = temp; - 800399e: 687b ldr r3, [r7, #4] - 80039a0: 69ba ldr r2, [r7, #24] - 80039a2: 605a str r2, [r3, #4] + 8003f22: 687b ldr r3, [r7, #4] + 8003f24: 69ba ldr r2, [r7, #24] + 8003f26: 605a str r2, [r3, #4] } /* Activate the Pull-up or Pull down resistor for the current IO */ temp = GPIOx->PUPDR; - 80039a4: 687b ldr r3, [r7, #4] - 80039a6: 68db ldr r3, [r3, #12] - 80039a8: 61bb str r3, [r7, #24] + 8003f28: 687b ldr r3, [r7, #4] + 8003f2a: 68db ldr r3, [r3, #12] + 8003f2c: 61bb str r3, [r7, #24] temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2U)); - 80039aa: 69fb ldr r3, [r7, #28] - 80039ac: 005b lsls r3, r3, #1 - 80039ae: 2203 movs r2, #3 - 80039b0: fa02 f303 lsl.w r3, r2, r3 - 80039b4: 43db mvns r3, r3 - 80039b6: 69ba ldr r2, [r7, #24] - 80039b8: 4013 ands r3, r2 - 80039ba: 61bb str r3, [r7, #24] + 8003f2e: 69fb ldr r3, [r7, #28] + 8003f30: 005b lsls r3, r3, #1 + 8003f32: 2203 movs r2, #3 + 8003f34: fa02 f303 lsl.w r3, r2, r3 + 8003f38: 43db mvns r3, r3 + 8003f3a: 69ba ldr r2, [r7, #24] + 8003f3c: 4013 ands r3, r2 + 8003f3e: 61bb str r3, [r7, #24] temp |= ((GPIO_Init->Pull) << (position * 2U)); - 80039bc: 683b ldr r3, [r7, #0] - 80039be: 689a ldr r2, [r3, #8] - 80039c0: 69fb ldr r3, [r7, #28] - 80039c2: 005b lsls r3, r3, #1 - 80039c4: fa02 f303 lsl.w r3, r2, r3 - 80039c8: 69ba ldr r2, [r7, #24] - 80039ca: 4313 orrs r3, r2 - 80039cc: 61bb str r3, [r7, #24] + 8003f40: 683b ldr r3, [r7, #0] + 8003f42: 689a ldr r2, [r3, #8] + 8003f44: 69fb ldr r3, [r7, #28] + 8003f46: 005b lsls r3, r3, #1 + 8003f48: fa02 f303 lsl.w r3, r2, r3 + 8003f4c: 69ba ldr r2, [r7, #24] + 8003f4e: 4313 orrs r3, r2 + 8003f50: 61bb str r3, [r7, #24] GPIOx->PUPDR = temp; - 80039ce: 687b ldr r3, [r7, #4] - 80039d0: 69ba ldr r2, [r7, #24] - 80039d2: 60da str r2, [r3, #12] + 8003f52: 687b ldr r3, [r7, #4] + 8003f54: 69ba ldr r2, [r7, #24] + 8003f56: 60da str r2, [r3, #12] /* In case of Alternate function mode selection */ if((GPIO_Init->Mode == GPIO_MODE_AF_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_OD)) - 80039d4: 683b ldr r3, [r7, #0] - 80039d6: 685b ldr r3, [r3, #4] - 80039d8: 2b02 cmp r3, #2 - 80039da: d003 beq.n 80039e4 - 80039dc: 683b ldr r3, [r7, #0] - 80039de: 685b ldr r3, [r3, #4] - 80039e0: 2b12 cmp r3, #18 - 80039e2: d123 bne.n 8003a2c + 8003f58: 683b ldr r3, [r7, #0] + 8003f5a: 685b ldr r3, [r3, #4] + 8003f5c: 2b02 cmp r3, #2 + 8003f5e: d003 beq.n 8003f68 + 8003f60: 683b ldr r3, [r7, #0] + 8003f62: 685b ldr r3, [r3, #4] + 8003f64: 2b12 cmp r3, #18 + 8003f66: d123 bne.n 8003fb0 { /* Check the Alternate function parameter */ assert_param(IS_GPIO_AF(GPIO_Init->Alternate)); /* Configure Alternate function mapped with the current IO */ temp = GPIOx->AFR[position >> 3U]; - 80039e4: 69fb ldr r3, [r7, #28] - 80039e6: 08da lsrs r2, r3, #3 - 80039e8: 687b ldr r3, [r7, #4] - 80039ea: 3208 adds r2, #8 - 80039ec: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 80039f0: 61bb str r3, [r7, #24] + 8003f68: 69fb ldr r3, [r7, #28] + 8003f6a: 08da lsrs r2, r3, #3 + 8003f6c: 687b ldr r3, [r7, #4] + 8003f6e: 3208 adds r2, #8 + 8003f70: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 8003f74: 61bb str r3, [r7, #24] temp &= ~(0xFU << ((uint32_t)(position & 0x07U) * 4U)) ; - 80039f2: 69fb ldr r3, [r7, #28] - 80039f4: f003 0307 and.w r3, r3, #7 - 80039f8: 009b lsls r3, r3, #2 - 80039fa: 220f movs r2, #15 - 80039fc: fa02 f303 lsl.w r3, r2, r3 - 8003a00: 43db mvns r3, r3 - 8003a02: 69ba ldr r2, [r7, #24] - 8003a04: 4013 ands r3, r2 - 8003a06: 61bb str r3, [r7, #24] + 8003f76: 69fb ldr r3, [r7, #28] + 8003f78: f003 0307 and.w r3, r3, #7 + 8003f7c: 009b lsls r3, r3, #2 + 8003f7e: 220f movs r2, #15 + 8003f80: fa02 f303 lsl.w r3, r2, r3 + 8003f84: 43db mvns r3, r3 + 8003f86: 69ba ldr r2, [r7, #24] + 8003f88: 4013 ands r3, r2 + 8003f8a: 61bb str r3, [r7, #24] temp |= ((uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & 0x07U) * 4U)); - 8003a08: 683b ldr r3, [r7, #0] - 8003a0a: 691a ldr r2, [r3, #16] - 8003a0c: 69fb ldr r3, [r7, #28] - 8003a0e: f003 0307 and.w r3, r3, #7 - 8003a12: 009b lsls r3, r3, #2 - 8003a14: fa02 f303 lsl.w r3, r2, r3 - 8003a18: 69ba ldr r2, [r7, #24] - 8003a1a: 4313 orrs r3, r2 - 8003a1c: 61bb str r3, [r7, #24] + 8003f8c: 683b ldr r3, [r7, #0] + 8003f8e: 691a ldr r2, [r3, #16] + 8003f90: 69fb ldr r3, [r7, #28] + 8003f92: f003 0307 and.w r3, r3, #7 + 8003f96: 009b lsls r3, r3, #2 + 8003f98: fa02 f303 lsl.w r3, r2, r3 + 8003f9c: 69ba ldr r2, [r7, #24] + 8003f9e: 4313 orrs r3, r2 + 8003fa0: 61bb str r3, [r7, #24] GPIOx->AFR[position >> 3U] = temp; - 8003a1e: 69fb ldr r3, [r7, #28] - 8003a20: 08da lsrs r2, r3, #3 - 8003a22: 687b ldr r3, [r7, #4] - 8003a24: 3208 adds r2, #8 - 8003a26: 69b9 ldr r1, [r7, #24] - 8003a28: f843 1022 str.w r1, [r3, r2, lsl #2] + 8003fa2: 69fb ldr r3, [r7, #28] + 8003fa4: 08da lsrs r2, r3, #3 + 8003fa6: 687b ldr r3, [r7, #4] + 8003fa8: 3208 adds r2, #8 + 8003faa: 69b9 ldr r1, [r7, #24] + 8003fac: f843 1022 str.w r1, [r3, r2, lsl #2] } /* Configure IO Direction mode (Input, Output, Alternate or Analog) */ temp = GPIOx->MODER; - 8003a2c: 687b ldr r3, [r7, #4] - 8003a2e: 681b ldr r3, [r3, #0] - 8003a30: 61bb str r3, [r7, #24] + 8003fb0: 687b ldr r3, [r7, #4] + 8003fb2: 681b ldr r3, [r3, #0] + 8003fb4: 61bb str r3, [r7, #24] temp &= ~(GPIO_MODER_MODER0 << (position * 2U)); - 8003a32: 69fb ldr r3, [r7, #28] - 8003a34: 005b lsls r3, r3, #1 - 8003a36: 2203 movs r2, #3 - 8003a38: fa02 f303 lsl.w r3, r2, r3 - 8003a3c: 43db mvns r3, r3 - 8003a3e: 69ba ldr r2, [r7, #24] - 8003a40: 4013 ands r3, r2 - 8003a42: 61bb str r3, [r7, #24] + 8003fb6: 69fb ldr r3, [r7, #28] + 8003fb8: 005b lsls r3, r3, #1 + 8003fba: 2203 movs r2, #3 + 8003fbc: fa02 f303 lsl.w r3, r2, r3 + 8003fc0: 43db mvns r3, r3 + 8003fc2: 69ba ldr r2, [r7, #24] + 8003fc4: 4013 ands r3, r2 + 8003fc6: 61bb str r3, [r7, #24] temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2U)); - 8003a44: 683b ldr r3, [r7, #0] - 8003a46: 685b ldr r3, [r3, #4] - 8003a48: f003 0203 and.w r2, r3, #3 - 8003a4c: 69fb ldr r3, [r7, #28] - 8003a4e: 005b lsls r3, r3, #1 - 8003a50: fa02 f303 lsl.w r3, r2, r3 - 8003a54: 69ba ldr r2, [r7, #24] - 8003a56: 4313 orrs r3, r2 - 8003a58: 61bb str r3, [r7, #24] + 8003fc8: 683b ldr r3, [r7, #0] + 8003fca: 685b ldr r3, [r3, #4] + 8003fcc: f003 0203 and.w r2, r3, #3 + 8003fd0: 69fb ldr r3, [r7, #28] + 8003fd2: 005b lsls r3, r3, #1 + 8003fd4: fa02 f303 lsl.w r3, r2, r3 + 8003fd8: 69ba ldr r2, [r7, #24] + 8003fda: 4313 orrs r3, r2 + 8003fdc: 61bb str r3, [r7, #24] GPIOx->MODER = temp; - 8003a5a: 687b ldr r3, [r7, #4] - 8003a5c: 69ba ldr r2, [r7, #24] - 8003a5e: 601a str r2, [r3, #0] + 8003fde: 687b ldr r3, [r7, #4] + 8003fe0: 69ba ldr r2, [r7, #24] + 8003fe2: 601a str r2, [r3, #0] /*--------------------- EXTI Mode Configuration ------------------------*/ /* Configure the External Interrupt or event for the current IO */ if((GPIO_Init->Mode & EXTI_MODE) == EXTI_MODE) - 8003a60: 683b ldr r3, [r7, #0] - 8003a62: 685b ldr r3, [r3, #4] - 8003a64: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 8003a68: 2b00 cmp r3, #0 - 8003a6a: f000 80c0 beq.w 8003bee + 8003fe4: 683b ldr r3, [r7, #0] + 8003fe6: 685b ldr r3, [r3, #4] + 8003fe8: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 8003fec: 2b00 cmp r3, #0 + 8003fee: f000 80c0 beq.w 8004172 { /* Enable SYSCFG Clock */ __HAL_RCC_SYSCFG_CLK_ENABLE(); - 8003a6e: 2300 movs r3, #0 - 8003a70: 60fb str r3, [r7, #12] - 8003a72: 4b65 ldr r3, [pc, #404] ; (8003c08 ) - 8003a74: 6c5b ldr r3, [r3, #68] ; 0x44 - 8003a76: 4a64 ldr r2, [pc, #400] ; (8003c08 ) - 8003a78: f443 4380 orr.w r3, r3, #16384 ; 0x4000 - 8003a7c: 6453 str r3, [r2, #68] ; 0x44 - 8003a7e: 4b62 ldr r3, [pc, #392] ; (8003c08 ) - 8003a80: 6c5b ldr r3, [r3, #68] ; 0x44 - 8003a82: f403 4380 and.w r3, r3, #16384 ; 0x4000 - 8003a86: 60fb str r3, [r7, #12] - 8003a88: 68fb ldr r3, [r7, #12] + 8003ff2: 2300 movs r3, #0 + 8003ff4: 60fb str r3, [r7, #12] + 8003ff6: 4b65 ldr r3, [pc, #404] ; (800418c ) + 8003ff8: 6c5b ldr r3, [r3, #68] ; 0x44 + 8003ffa: 4a64 ldr r2, [pc, #400] ; (800418c ) + 8003ffc: f443 4380 orr.w r3, r3, #16384 ; 0x4000 + 8004000: 6453 str r3, [r2, #68] ; 0x44 + 8004002: 4b62 ldr r3, [pc, #392] ; (800418c ) + 8004004: 6c5b ldr r3, [r3, #68] ; 0x44 + 8004006: f403 4380 and.w r3, r3, #16384 ; 0x4000 + 800400a: 60fb str r3, [r7, #12] + 800400c: 68fb ldr r3, [r7, #12] temp = SYSCFG->EXTICR[position >> 2U]; - 8003a8a: 4a60 ldr r2, [pc, #384] ; (8003c0c ) - 8003a8c: 69fb ldr r3, [r7, #28] - 8003a8e: 089b lsrs r3, r3, #2 - 8003a90: 3302 adds r3, #2 - 8003a92: f852 3023 ldr.w r3, [r2, r3, lsl #2] - 8003a96: 61bb str r3, [r7, #24] + 800400e: 4a60 ldr r2, [pc, #384] ; (8004190 ) + 8004010: 69fb ldr r3, [r7, #28] + 8004012: 089b lsrs r3, r3, #2 + 8004014: 3302 adds r3, #2 + 8004016: f852 3023 ldr.w r3, [r2, r3, lsl #2] + 800401a: 61bb str r3, [r7, #24] temp &= ~(0x0FU << (4U * (position & 0x03U))); - 8003a98: 69fb ldr r3, [r7, #28] - 8003a9a: f003 0303 and.w r3, r3, #3 - 8003a9e: 009b lsls r3, r3, #2 - 8003aa0: 220f movs r2, #15 - 8003aa2: fa02 f303 lsl.w r3, r2, r3 - 8003aa6: 43db mvns r3, r3 - 8003aa8: 69ba ldr r2, [r7, #24] - 8003aaa: 4013 ands r3, r2 - 8003aac: 61bb str r3, [r7, #24] + 800401c: 69fb ldr r3, [r7, #28] + 800401e: f003 0303 and.w r3, r3, #3 + 8004022: 009b lsls r3, r3, #2 + 8004024: 220f movs r2, #15 + 8004026: fa02 f303 lsl.w r3, r2, r3 + 800402a: 43db mvns r3, r3 + 800402c: 69ba ldr r2, [r7, #24] + 800402e: 4013 ands r3, r2 + 8004030: 61bb str r3, [r7, #24] temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4U * (position & 0x03U))); - 8003aae: 687b ldr r3, [r7, #4] - 8003ab0: 4a57 ldr r2, [pc, #348] ; (8003c10 ) - 8003ab2: 4293 cmp r3, r2 - 8003ab4: d037 beq.n 8003b26 - 8003ab6: 687b ldr r3, [r7, #4] - 8003ab8: 4a56 ldr r2, [pc, #344] ; (8003c14 ) - 8003aba: 4293 cmp r3, r2 - 8003abc: d031 beq.n 8003b22 - 8003abe: 687b ldr r3, [r7, #4] - 8003ac0: 4a55 ldr r2, [pc, #340] ; (8003c18 ) - 8003ac2: 4293 cmp r3, r2 - 8003ac4: d02b beq.n 8003b1e - 8003ac6: 687b ldr r3, [r7, #4] - 8003ac8: 4a54 ldr r2, [pc, #336] ; (8003c1c ) - 8003aca: 4293 cmp r3, r2 - 8003acc: d025 beq.n 8003b1a - 8003ace: 687b ldr r3, [r7, #4] - 8003ad0: 4a53 ldr r2, [pc, #332] ; (8003c20 ) - 8003ad2: 4293 cmp r3, r2 - 8003ad4: d01f beq.n 8003b16 - 8003ad6: 687b ldr r3, [r7, #4] - 8003ad8: 4a52 ldr r2, [pc, #328] ; (8003c24 ) - 8003ada: 4293 cmp r3, r2 - 8003adc: d019 beq.n 8003b12 - 8003ade: 687b ldr r3, [r7, #4] - 8003ae0: 4a51 ldr r2, [pc, #324] ; (8003c28 ) - 8003ae2: 4293 cmp r3, r2 - 8003ae4: d013 beq.n 8003b0e - 8003ae6: 687b ldr r3, [r7, #4] - 8003ae8: 4a50 ldr r2, [pc, #320] ; (8003c2c ) - 8003aea: 4293 cmp r3, r2 - 8003aec: d00d beq.n 8003b0a - 8003aee: 687b ldr r3, [r7, #4] - 8003af0: 4a4f ldr r2, [pc, #316] ; (8003c30 ) - 8003af2: 4293 cmp r3, r2 - 8003af4: d007 beq.n 8003b06 - 8003af6: 687b ldr r3, [r7, #4] - 8003af8: 4a4e ldr r2, [pc, #312] ; (8003c34 ) - 8003afa: 4293 cmp r3, r2 - 8003afc: d101 bne.n 8003b02 - 8003afe: 2309 movs r3, #9 - 8003b00: e012 b.n 8003b28 - 8003b02: 230a movs r3, #10 - 8003b04: e010 b.n 8003b28 - 8003b06: 2308 movs r3, #8 - 8003b08: e00e b.n 8003b28 - 8003b0a: 2307 movs r3, #7 - 8003b0c: e00c b.n 8003b28 - 8003b0e: 2306 movs r3, #6 - 8003b10: e00a b.n 8003b28 - 8003b12: 2305 movs r3, #5 - 8003b14: e008 b.n 8003b28 - 8003b16: 2304 movs r3, #4 - 8003b18: e006 b.n 8003b28 - 8003b1a: 2303 movs r3, #3 - 8003b1c: e004 b.n 8003b28 - 8003b1e: 2302 movs r3, #2 - 8003b20: e002 b.n 8003b28 - 8003b22: 2301 movs r3, #1 - 8003b24: e000 b.n 8003b28 - 8003b26: 2300 movs r3, #0 - 8003b28: 69fa ldr r2, [r7, #28] - 8003b2a: f002 0203 and.w r2, r2, #3 - 8003b2e: 0092 lsls r2, r2, #2 - 8003b30: 4093 lsls r3, r2 - 8003b32: 69ba ldr r2, [r7, #24] - 8003b34: 4313 orrs r3, r2 - 8003b36: 61bb str r3, [r7, #24] + 8004032: 687b ldr r3, [r7, #4] + 8004034: 4a57 ldr r2, [pc, #348] ; (8004194 ) + 8004036: 4293 cmp r3, r2 + 8004038: d037 beq.n 80040aa + 800403a: 687b ldr r3, [r7, #4] + 800403c: 4a56 ldr r2, [pc, #344] ; (8004198 ) + 800403e: 4293 cmp r3, r2 + 8004040: d031 beq.n 80040a6 + 8004042: 687b ldr r3, [r7, #4] + 8004044: 4a55 ldr r2, [pc, #340] ; (800419c ) + 8004046: 4293 cmp r3, r2 + 8004048: d02b beq.n 80040a2 + 800404a: 687b ldr r3, [r7, #4] + 800404c: 4a54 ldr r2, [pc, #336] ; (80041a0 ) + 800404e: 4293 cmp r3, r2 + 8004050: d025 beq.n 800409e + 8004052: 687b ldr r3, [r7, #4] + 8004054: 4a53 ldr r2, [pc, #332] ; (80041a4 ) + 8004056: 4293 cmp r3, r2 + 8004058: d01f beq.n 800409a + 800405a: 687b ldr r3, [r7, #4] + 800405c: 4a52 ldr r2, [pc, #328] ; (80041a8 ) + 800405e: 4293 cmp r3, r2 + 8004060: d019 beq.n 8004096 + 8004062: 687b ldr r3, [r7, #4] + 8004064: 4a51 ldr r2, [pc, #324] ; (80041ac ) + 8004066: 4293 cmp r3, r2 + 8004068: d013 beq.n 8004092 + 800406a: 687b ldr r3, [r7, #4] + 800406c: 4a50 ldr r2, [pc, #320] ; (80041b0 ) + 800406e: 4293 cmp r3, r2 + 8004070: d00d beq.n 800408e + 8004072: 687b ldr r3, [r7, #4] + 8004074: 4a4f ldr r2, [pc, #316] ; (80041b4 ) + 8004076: 4293 cmp r3, r2 + 8004078: d007 beq.n 800408a + 800407a: 687b ldr r3, [r7, #4] + 800407c: 4a4e ldr r2, [pc, #312] ; (80041b8 ) + 800407e: 4293 cmp r3, r2 + 8004080: d101 bne.n 8004086 + 8004082: 2309 movs r3, #9 + 8004084: e012 b.n 80040ac + 8004086: 230a movs r3, #10 + 8004088: e010 b.n 80040ac + 800408a: 2308 movs r3, #8 + 800408c: e00e b.n 80040ac + 800408e: 2307 movs r3, #7 + 8004090: e00c b.n 80040ac + 8004092: 2306 movs r3, #6 + 8004094: e00a b.n 80040ac + 8004096: 2305 movs r3, #5 + 8004098: e008 b.n 80040ac + 800409a: 2304 movs r3, #4 + 800409c: e006 b.n 80040ac + 800409e: 2303 movs r3, #3 + 80040a0: e004 b.n 80040ac + 80040a2: 2302 movs r3, #2 + 80040a4: e002 b.n 80040ac + 80040a6: 2301 movs r3, #1 + 80040a8: e000 b.n 80040ac + 80040aa: 2300 movs r3, #0 + 80040ac: 69fa ldr r2, [r7, #28] + 80040ae: f002 0203 and.w r2, r2, #3 + 80040b2: 0092 lsls r2, r2, #2 + 80040b4: 4093 lsls r3, r2 + 80040b6: 69ba ldr r2, [r7, #24] + 80040b8: 4313 orrs r3, r2 + 80040ba: 61bb str r3, [r7, #24] SYSCFG->EXTICR[position >> 2U] = temp; - 8003b38: 4934 ldr r1, [pc, #208] ; (8003c0c ) - 8003b3a: 69fb ldr r3, [r7, #28] - 8003b3c: 089b lsrs r3, r3, #2 - 8003b3e: 3302 adds r3, #2 - 8003b40: 69ba ldr r2, [r7, #24] - 8003b42: f841 2023 str.w r2, [r1, r3, lsl #2] + 80040bc: 4934 ldr r1, [pc, #208] ; (8004190 ) + 80040be: 69fb ldr r3, [r7, #28] + 80040c0: 089b lsrs r3, r3, #2 + 80040c2: 3302 adds r3, #2 + 80040c4: 69ba ldr r2, [r7, #24] + 80040c6: f841 2023 str.w r2, [r1, r3, lsl #2] /* Clear EXTI line configuration */ temp = EXTI->IMR; - 8003b46: 4b3c ldr r3, [pc, #240] ; (8003c38 ) - 8003b48: 681b ldr r3, [r3, #0] - 8003b4a: 61bb str r3, [r7, #24] + 80040ca: 4b3c ldr r3, [pc, #240] ; (80041bc ) + 80040cc: 681b ldr r3, [r3, #0] + 80040ce: 61bb str r3, [r7, #24] temp &= ~((uint32_t)iocurrent); - 8003b4c: 693b ldr r3, [r7, #16] - 8003b4e: 43db mvns r3, r3 - 8003b50: 69ba ldr r2, [r7, #24] - 8003b52: 4013 ands r3, r2 - 8003b54: 61bb str r3, [r7, #24] + 80040d0: 693b ldr r3, [r7, #16] + 80040d2: 43db mvns r3, r3 + 80040d4: 69ba ldr r2, [r7, #24] + 80040d6: 4013 ands r3, r2 + 80040d8: 61bb str r3, [r7, #24] if((GPIO_Init->Mode & GPIO_MODE_IT) == GPIO_MODE_IT) - 8003b56: 683b ldr r3, [r7, #0] - 8003b58: 685b ldr r3, [r3, #4] - 8003b5a: f403 3380 and.w r3, r3, #65536 ; 0x10000 - 8003b5e: 2b00 cmp r3, #0 - 8003b60: d003 beq.n 8003b6a + 80040da: 683b ldr r3, [r7, #0] + 80040dc: 685b ldr r3, [r3, #4] + 80040de: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 80040e2: 2b00 cmp r3, #0 + 80040e4: d003 beq.n 80040ee { temp |= iocurrent; - 8003b62: 69ba ldr r2, [r7, #24] - 8003b64: 693b ldr r3, [r7, #16] - 8003b66: 4313 orrs r3, r2 - 8003b68: 61bb str r3, [r7, #24] + 80040e6: 69ba ldr r2, [r7, #24] + 80040e8: 693b ldr r3, [r7, #16] + 80040ea: 4313 orrs r3, r2 + 80040ec: 61bb str r3, [r7, #24] } EXTI->IMR = temp; - 8003b6a: 4a33 ldr r2, [pc, #204] ; (8003c38 ) - 8003b6c: 69bb ldr r3, [r7, #24] - 8003b6e: 6013 str r3, [r2, #0] + 80040ee: 4a33 ldr r2, [pc, #204] ; (80041bc ) + 80040f0: 69bb ldr r3, [r7, #24] + 80040f2: 6013 str r3, [r2, #0] temp = EXTI->EMR; - 8003b70: 4b31 ldr r3, [pc, #196] ; (8003c38 ) - 8003b72: 685b ldr r3, [r3, #4] - 8003b74: 61bb str r3, [r7, #24] + 80040f4: 4b31 ldr r3, [pc, #196] ; (80041bc ) + 80040f6: 685b ldr r3, [r3, #4] + 80040f8: 61bb str r3, [r7, #24] temp &= ~((uint32_t)iocurrent); - 8003b76: 693b ldr r3, [r7, #16] - 8003b78: 43db mvns r3, r3 - 8003b7a: 69ba ldr r2, [r7, #24] - 8003b7c: 4013 ands r3, r2 - 8003b7e: 61bb str r3, [r7, #24] + 80040fa: 693b ldr r3, [r7, #16] + 80040fc: 43db mvns r3, r3 + 80040fe: 69ba ldr r2, [r7, #24] + 8004100: 4013 ands r3, r2 + 8004102: 61bb str r3, [r7, #24] if((GPIO_Init->Mode & GPIO_MODE_EVT) == GPIO_MODE_EVT) - 8003b80: 683b ldr r3, [r7, #0] - 8003b82: 685b ldr r3, [r3, #4] - 8003b84: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8003b88: 2b00 cmp r3, #0 - 8003b8a: d003 beq.n 8003b94 + 8004104: 683b ldr r3, [r7, #0] + 8004106: 685b ldr r3, [r3, #4] + 8004108: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 800410c: 2b00 cmp r3, #0 + 800410e: d003 beq.n 8004118 { temp |= iocurrent; - 8003b8c: 69ba ldr r2, [r7, #24] - 8003b8e: 693b ldr r3, [r7, #16] - 8003b90: 4313 orrs r3, r2 - 8003b92: 61bb str r3, [r7, #24] + 8004110: 69ba ldr r2, [r7, #24] + 8004112: 693b ldr r3, [r7, #16] + 8004114: 4313 orrs r3, r2 + 8004116: 61bb str r3, [r7, #24] } EXTI->EMR = temp; - 8003b94: 4a28 ldr r2, [pc, #160] ; (8003c38 ) - 8003b96: 69bb ldr r3, [r7, #24] - 8003b98: 6053 str r3, [r2, #4] + 8004118: 4a28 ldr r2, [pc, #160] ; (80041bc ) + 800411a: 69bb ldr r3, [r7, #24] + 800411c: 6053 str r3, [r2, #4] /* Clear Rising Falling edge configuration */ temp = EXTI->RTSR; - 8003b9a: 4b27 ldr r3, [pc, #156] ; (8003c38 ) - 8003b9c: 689b ldr r3, [r3, #8] - 8003b9e: 61bb str r3, [r7, #24] + 800411e: 4b27 ldr r3, [pc, #156] ; (80041bc ) + 8004120: 689b ldr r3, [r3, #8] + 8004122: 61bb str r3, [r7, #24] temp &= ~((uint32_t)iocurrent); - 8003ba0: 693b ldr r3, [r7, #16] - 8003ba2: 43db mvns r3, r3 - 8003ba4: 69ba ldr r2, [r7, #24] - 8003ba6: 4013 ands r3, r2 - 8003ba8: 61bb str r3, [r7, #24] + 8004124: 693b ldr r3, [r7, #16] + 8004126: 43db mvns r3, r3 + 8004128: 69ba ldr r2, [r7, #24] + 800412a: 4013 ands r3, r2 + 800412c: 61bb str r3, [r7, #24] if((GPIO_Init->Mode & RISING_EDGE) == RISING_EDGE) - 8003baa: 683b ldr r3, [r7, #0] - 8003bac: 685b ldr r3, [r3, #4] - 8003bae: f403 1380 and.w r3, r3, #1048576 ; 0x100000 - 8003bb2: 2b00 cmp r3, #0 - 8003bb4: d003 beq.n 8003bbe + 800412e: 683b ldr r3, [r7, #0] + 8004130: 685b ldr r3, [r3, #4] + 8004132: f403 1380 and.w r3, r3, #1048576 ; 0x100000 + 8004136: 2b00 cmp r3, #0 + 8004138: d003 beq.n 8004142 { temp |= iocurrent; - 8003bb6: 69ba ldr r2, [r7, #24] - 8003bb8: 693b ldr r3, [r7, #16] - 8003bba: 4313 orrs r3, r2 - 8003bbc: 61bb str r3, [r7, #24] + 800413a: 69ba ldr r2, [r7, #24] + 800413c: 693b ldr r3, [r7, #16] + 800413e: 4313 orrs r3, r2 + 8004140: 61bb str r3, [r7, #24] } EXTI->RTSR = temp; - 8003bbe: 4a1e ldr r2, [pc, #120] ; (8003c38 ) - 8003bc0: 69bb ldr r3, [r7, #24] - 8003bc2: 6093 str r3, [r2, #8] + 8004142: 4a1e ldr r2, [pc, #120] ; (80041bc ) + 8004144: 69bb ldr r3, [r7, #24] + 8004146: 6093 str r3, [r2, #8] temp = EXTI->FTSR; - 8003bc4: 4b1c ldr r3, [pc, #112] ; (8003c38 ) - 8003bc6: 68db ldr r3, [r3, #12] - 8003bc8: 61bb str r3, [r7, #24] + 8004148: 4b1c ldr r3, [pc, #112] ; (80041bc ) + 800414a: 68db ldr r3, [r3, #12] + 800414c: 61bb str r3, [r7, #24] temp &= ~((uint32_t)iocurrent); - 8003bca: 693b ldr r3, [r7, #16] - 8003bcc: 43db mvns r3, r3 - 8003bce: 69ba ldr r2, [r7, #24] - 8003bd0: 4013 ands r3, r2 - 8003bd2: 61bb str r3, [r7, #24] + 800414e: 693b ldr r3, [r7, #16] + 8004150: 43db mvns r3, r3 + 8004152: 69ba ldr r2, [r7, #24] + 8004154: 4013 ands r3, r2 + 8004156: 61bb str r3, [r7, #24] if((GPIO_Init->Mode & FALLING_EDGE) == FALLING_EDGE) - 8003bd4: 683b ldr r3, [r7, #0] - 8003bd6: 685b ldr r3, [r3, #4] - 8003bd8: f403 1300 and.w r3, r3, #2097152 ; 0x200000 - 8003bdc: 2b00 cmp r3, #0 - 8003bde: d003 beq.n 8003be8 + 8004158: 683b ldr r3, [r7, #0] + 800415a: 685b ldr r3, [r3, #4] + 800415c: f403 1300 and.w r3, r3, #2097152 ; 0x200000 + 8004160: 2b00 cmp r3, #0 + 8004162: d003 beq.n 800416c { temp |= iocurrent; - 8003be0: 69ba ldr r2, [r7, #24] - 8003be2: 693b ldr r3, [r7, #16] - 8003be4: 4313 orrs r3, r2 - 8003be6: 61bb str r3, [r7, #24] + 8004164: 69ba ldr r2, [r7, #24] + 8004166: 693b ldr r3, [r7, #16] + 8004168: 4313 orrs r3, r2 + 800416a: 61bb str r3, [r7, #24] } EXTI->FTSR = temp; - 8003be8: 4a13 ldr r2, [pc, #76] ; (8003c38 ) - 8003bea: 69bb ldr r3, [r7, #24] - 8003bec: 60d3 str r3, [r2, #12] + 800416c: 4a13 ldr r2, [pc, #76] ; (80041bc ) + 800416e: 69bb ldr r3, [r7, #24] + 8004170: 60d3 str r3, [r2, #12] for(position = 0U; position < GPIO_NUMBER; position++) - 8003bee: 69fb ldr r3, [r7, #28] - 8003bf0: 3301 adds r3, #1 - 8003bf2: 61fb str r3, [r7, #28] - 8003bf4: 69fb ldr r3, [r7, #28] - 8003bf6: 2b0f cmp r3, #15 - 8003bf8: f67f ae84 bls.w 8003904 + 8004172: 69fb ldr r3, [r7, #28] + 8004174: 3301 adds r3, #1 + 8004176: 61fb str r3, [r7, #28] + 8004178: 69fb ldr r3, [r7, #28] + 800417a: 2b0f cmp r3, #15 + 800417c: f67f ae84 bls.w 8003e88 } } } } - 8003bfc: bf00 nop - 8003bfe: 3724 adds r7, #36 ; 0x24 - 8003c00: 46bd mov sp, r7 - 8003c02: f85d 7b04 ldr.w r7, [sp], #4 - 8003c06: 4770 bx lr - 8003c08: 40023800 .word 0x40023800 - 8003c0c: 40013800 .word 0x40013800 - 8003c10: 40020000 .word 0x40020000 - 8003c14: 40020400 .word 0x40020400 - 8003c18: 40020800 .word 0x40020800 - 8003c1c: 40020c00 .word 0x40020c00 - 8003c20: 40021000 .word 0x40021000 - 8003c24: 40021400 .word 0x40021400 - 8003c28: 40021800 .word 0x40021800 - 8003c2c: 40021c00 .word 0x40021c00 - 8003c30: 40022000 .word 0x40022000 - 8003c34: 40022400 .word 0x40022400 - 8003c38: 40013c00 .word 0x40013c00 + 8004180: bf00 nop + 8004182: 3724 adds r7, #36 ; 0x24 + 8004184: 46bd mov sp, r7 + 8004186: f85d 7b04 ldr.w r7, [sp], #4 + 800418a: 4770 bx lr + 800418c: 40023800 .word 0x40023800 + 8004190: 40013800 .word 0x40013800 + 8004194: 40020000 .word 0x40020000 + 8004198: 40020400 .word 0x40020400 + 800419c: 40020800 .word 0x40020800 + 80041a0: 40020c00 .word 0x40020c00 + 80041a4: 40021000 .word 0x40021000 + 80041a8: 40021400 .word 0x40021400 + 80041ac: 40021800 .word 0x40021800 + 80041b0: 40021c00 .word 0x40021c00 + 80041b4: 40022000 .word 0x40022000 + 80041b8: 40022400 .word 0x40022400 + 80041bc: 40013c00 .word 0x40013c00 -08003c3c : +080041c0 : * @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) { - 8003c3c: b480 push {r7} - 8003c3e: b083 sub sp, #12 - 8003c40: af00 add r7, sp, #0 - 8003c42: 6078 str r0, [r7, #4] - 8003c44: 460b mov r3, r1 - 8003c46: 807b strh r3, [r7, #2] - 8003c48: 4613 mov r3, r2 - 8003c4a: 707b strb r3, [r7, #1] + 80041c0: b480 push {r7} + 80041c2: b083 sub sp, #12 + 80041c4: af00 add r7, sp, #0 + 80041c6: 6078 str r0, [r7, #4] + 80041c8: 460b mov r3, r1 + 80041ca: 807b strh r3, [r7, #2] + 80041cc: 4613 mov r3, r2 + 80041ce: 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) - 8003c4c: 787b ldrb r3, [r7, #1] - 8003c4e: 2b00 cmp r3, #0 - 8003c50: d003 beq.n 8003c5a + 80041d0: 787b ldrb r3, [r7, #1] + 80041d2: 2b00 cmp r3, #0 + 80041d4: d003 beq.n 80041de { GPIOx->BSRR = GPIO_Pin; - 8003c52: 887a ldrh r2, [r7, #2] - 8003c54: 687b ldr r3, [r7, #4] - 8003c56: 619a str r2, [r3, #24] + 80041d6: 887a ldrh r2, [r7, #2] + 80041d8: 687b ldr r3, [r7, #4] + 80041da: 619a str r2, [r3, #24] } else { GPIOx->BSRR = (uint32_t)GPIO_Pin << 16U; } } - 8003c58: e003 b.n 8003c62 + 80041dc: e003 b.n 80041e6 GPIOx->BSRR = (uint32_t)GPIO_Pin << 16U; - 8003c5a: 887b ldrh r3, [r7, #2] - 8003c5c: 041a lsls r2, r3, #16 - 8003c5e: 687b ldr r3, [r7, #4] - 8003c60: 619a str r2, [r3, #24] + 80041de: 887b ldrh r3, [r7, #2] + 80041e0: 041a lsls r2, r3, #16 + 80041e2: 687b ldr r3, [r7, #4] + 80041e4: 619a str r2, [r3, #24] } - 8003c62: bf00 nop - 8003c64: 370c adds r7, #12 - 8003c66: 46bd mov sp, r7 - 8003c68: f85d 7b04 ldr.w r7, [sp], #4 - 8003c6c: 4770 bx lr + 80041e6: bf00 nop + 80041e8: 370c adds r7, #12 + 80041ea: 46bd mov sp, r7 + 80041ec: f85d 7b04 ldr.w r7, [sp], #4 + 80041f0: 4770 bx lr ... -08003c70 : +080041f4 : * @brief This function handles EXTI interrupt request. * @param GPIO_Pin Specifies the pins connected EXTI line * @retval None */ void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin) { - 8003c70: b580 push {r7, lr} - 8003c72: b082 sub sp, #8 - 8003c74: af00 add r7, sp, #0 - 8003c76: 4603 mov r3, r0 - 8003c78: 80fb strh r3, [r7, #6] + 80041f4: b580 push {r7, lr} + 80041f6: b082 sub sp, #8 + 80041f8: af00 add r7, sp, #0 + 80041fa: 4603 mov r3, r0 + 80041fc: 80fb strh r3, [r7, #6] /* EXTI line interrupt detected */ if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET) - 8003c7a: 4b08 ldr r3, [pc, #32] ; (8003c9c ) - 8003c7c: 695a ldr r2, [r3, #20] - 8003c7e: 88fb ldrh r3, [r7, #6] - 8003c80: 4013 ands r3, r2 - 8003c82: 2b00 cmp r3, #0 - 8003c84: d006 beq.n 8003c94 + 80041fe: 4b08 ldr r3, [pc, #32] ; (8004220 ) + 8004200: 695a ldr r2, [r3, #20] + 8004202: 88fb ldrh r3, [r7, #6] + 8004204: 4013 ands r3, r2 + 8004206: 2b00 cmp r3, #0 + 8004208: d006 beq.n 8004218 { __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin); - 8003c86: 4a05 ldr r2, [pc, #20] ; (8003c9c ) - 8003c88: 88fb ldrh r3, [r7, #6] - 8003c8a: 6153 str r3, [r2, #20] + 800420a: 4a05 ldr r2, [pc, #20] ; (8004220 ) + 800420c: 88fb ldrh r3, [r7, #6] + 800420e: 6153 str r3, [r2, #20] HAL_GPIO_EXTI_Callback(GPIO_Pin); - 8003c8c: 88fb ldrh r3, [r7, #6] - 8003c8e: 4618 mov r0, r3 - 8003c90: f000 f806 bl 8003ca0 + 8004210: 88fb ldrh r3, [r7, #6] + 8004212: 4618 mov r0, r3 + 8004214: f000 f806 bl 8004224 } } - 8003c94: bf00 nop - 8003c96: 3708 adds r7, #8 - 8003c98: 46bd mov sp, r7 - 8003c9a: bd80 pop {r7, pc} - 8003c9c: 40013c00 .word 0x40013c00 + 8004218: bf00 nop + 800421a: 3708 adds r7, #8 + 800421c: 46bd mov sp, r7 + 800421e: bd80 pop {r7, pc} + 8004220: 40013c00 .word 0x40013c00 -08003ca0 : +08004224 : * @brief EXTI line detection callbacks. * @param GPIO_Pin Specifies the pins connected EXTI line * @retval None */ __weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { - 8003ca0: b480 push {r7} - 8003ca2: b083 sub sp, #12 - 8003ca4: af00 add r7, sp, #0 - 8003ca6: 4603 mov r3, r0 - 8003ca8: 80fb strh r3, [r7, #6] + 8004224: b480 push {r7} + 8004226: b083 sub sp, #12 + 8004228: af00 add r7, sp, #0 + 800422a: 4603 mov r3, r0 + 800422c: 80fb strh r3, [r7, #6] /* Prevent unused argument(s) compilation warning */ UNUSED(GPIO_Pin); /* NOTE: This function Should not be modified, when the callback is needed, the HAL_GPIO_EXTI_Callback could be implemented in the user file */ } - 8003caa: bf00 nop - 8003cac: 370c adds r7, #12 - 8003cae: 46bd mov sp, r7 - 8003cb0: f85d 7b04 ldr.w r7, [sp], #4 - 8003cb4: 4770 bx lr + 800422e: bf00 nop + 8004230: 370c adds r7, #12 + 8004232: 46bd mov sp, r7 + 8004234: f85d 7b04 ldr.w r7, [sp], #4 + 8004238: 4770 bx lr ... -08003cb8 : +0800423c : * supported by this API. User should request a transition to HSE Off * first and then HSE On or HSE Bypass. * @retval HAL status */ __weak HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) { - 8003cb8: b580 push {r7, lr} - 8003cba: b086 sub sp, #24 - 8003cbc: af00 add r7, sp, #0 - 8003cbe: 6078 str r0, [r7, #4] + 800423c: b580 push {r7, lr} + 800423e: b086 sub sp, #24 + 8004240: af00 add r7, sp, #0 + 8004242: 6078 str r0, [r7, #4] uint32_t tickstart, pll_config; /* Check Null pointer */ if(RCC_OscInitStruct == NULL) - 8003cc0: 687b ldr r3, [r7, #4] - 8003cc2: 2b00 cmp r3, #0 - 8003cc4: d101 bne.n 8003cca + 8004244: 687b ldr r3, [r7, #4] + 8004246: 2b00 cmp r3, #0 + 8004248: d101 bne.n 800424e { return HAL_ERROR; - 8003cc6: 2301 movs r3, #1 - 8003cc8: e25b b.n 8004182 + 800424a: 2301 movs r3, #1 + 800424c: e25b b.n 8004706 } /* Check the parameters */ assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); /*------------------------------- HSE Configuration ------------------------*/ if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) - 8003cca: 687b ldr r3, [r7, #4] - 8003ccc: 681b ldr r3, [r3, #0] - 8003cce: f003 0301 and.w r3, r3, #1 - 8003cd2: 2b00 cmp r3, #0 - 8003cd4: d075 beq.n 8003dc2 + 800424e: 687b ldr r3, [r7, #4] + 8004250: 681b ldr r3, [r3, #0] + 8004252: f003 0301 and.w r3, r3, #1 + 8004256: 2b00 cmp r3, #0 + 8004258: d075 beq.n 8004346 { /* 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 HSE will not disabled */ if((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_HSE) ||\ - 8003cd6: 4ba3 ldr r3, [pc, #652] ; (8003f64 ) - 8003cd8: 689b ldr r3, [r3, #8] - 8003cda: f003 030c and.w r3, r3, #12 - 8003cde: 2b04 cmp r3, #4 - 8003ce0: d00c beq.n 8003cfc + 800425a: 4ba3 ldr r3, [pc, #652] ; (80044e8 ) + 800425c: 689b ldr r3, [r3, #8] + 800425e: f003 030c and.w r3, r3, #12 + 8004262: 2b04 cmp r3, #4 + 8004264: d00c beq.n 8004280 ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_PLL) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSE))) - 8003ce2: 4ba0 ldr r3, [pc, #640] ; (8003f64 ) - 8003ce4: 689b ldr r3, [r3, #8] - 8003ce6: f003 030c and.w r3, r3, #12 + 8004266: 4ba0 ldr r3, [pc, #640] ; (80044e8 ) + 8004268: 689b ldr r3, [r3, #8] + 800426a: f003 030c and.w r3, r3, #12 if((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_HSE) ||\ - 8003cea: 2b08 cmp r3, #8 - 8003cec: d112 bne.n 8003d14 + 800426e: 2b08 cmp r3, #8 + 8004270: d112 bne.n 8004298 ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_PLL) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSE))) - 8003cee: 4b9d ldr r3, [pc, #628] ; (8003f64 ) - 8003cf0: 685b ldr r3, [r3, #4] - 8003cf2: f403 0380 and.w r3, r3, #4194304 ; 0x400000 - 8003cf6: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000 - 8003cfa: d10b bne.n 8003d14 + 8004272: 4b9d ldr r3, [pc, #628] ; (80044e8 ) + 8004274: 685b ldr r3, [r3, #4] + 8004276: f403 0380 and.w r3, r3, #4194304 ; 0x400000 + 800427a: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000 + 800427e: d10b bne.n 8004298 { if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) - 8003cfc: 4b99 ldr r3, [pc, #612] ; (8003f64 ) - 8003cfe: 681b ldr r3, [r3, #0] - 8003d00: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8003d04: 2b00 cmp r3, #0 - 8003d06: d05b beq.n 8003dc0 - 8003d08: 687b ldr r3, [r7, #4] - 8003d0a: 685b ldr r3, [r3, #4] - 8003d0c: 2b00 cmp r3, #0 - 8003d0e: d157 bne.n 8003dc0 + 8004280: 4b99 ldr r3, [pc, #612] ; (80044e8 ) + 8004282: 681b ldr r3, [r3, #0] + 8004284: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 8004288: 2b00 cmp r3, #0 + 800428a: d05b beq.n 8004344 + 800428c: 687b ldr r3, [r7, #4] + 800428e: 685b ldr r3, [r3, #4] + 8004290: 2b00 cmp r3, #0 + 8004292: d157 bne.n 8004344 { return HAL_ERROR; - 8003d10: 2301 movs r3, #1 - 8003d12: e236 b.n 8004182 + 8004294: 2301 movs r3, #1 + 8004296: e236 b.n 8004706 } } else { /* Set the new HSE configuration ---------------------------------------*/ __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); - 8003d14: 687b ldr r3, [r7, #4] - 8003d16: 685b ldr r3, [r3, #4] - 8003d18: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 - 8003d1c: d106 bne.n 8003d2c - 8003d1e: 4b91 ldr r3, [pc, #580] ; (8003f64 ) - 8003d20: 681b ldr r3, [r3, #0] - 8003d22: 4a90 ldr r2, [pc, #576] ; (8003f64 ) - 8003d24: f443 3380 orr.w r3, r3, #65536 ; 0x10000 - 8003d28: 6013 str r3, [r2, #0] - 8003d2a: e01d b.n 8003d68 - 8003d2c: 687b ldr r3, [r7, #4] - 8003d2e: 685b ldr r3, [r3, #4] - 8003d30: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000 - 8003d34: d10c bne.n 8003d50 - 8003d36: 4b8b ldr r3, [pc, #556] ; (8003f64 ) - 8003d38: 681b ldr r3, [r3, #0] - 8003d3a: 4a8a ldr r2, [pc, #552] ; (8003f64 ) - 8003d3c: f443 2380 orr.w r3, r3, #262144 ; 0x40000 - 8003d40: 6013 str r3, [r2, #0] - 8003d42: 4b88 ldr r3, [pc, #544] ; (8003f64 ) - 8003d44: 681b ldr r3, [r3, #0] - 8003d46: 4a87 ldr r2, [pc, #540] ; (8003f64 ) - 8003d48: f443 3380 orr.w r3, r3, #65536 ; 0x10000 - 8003d4c: 6013 str r3, [r2, #0] - 8003d4e: e00b b.n 8003d68 - 8003d50: 4b84 ldr r3, [pc, #528] ; (8003f64 ) - 8003d52: 681b ldr r3, [r3, #0] - 8003d54: 4a83 ldr r2, [pc, #524] ; (8003f64 ) - 8003d56: f423 3380 bic.w r3, r3, #65536 ; 0x10000 - 8003d5a: 6013 str r3, [r2, #0] - 8003d5c: 4b81 ldr r3, [pc, #516] ; (8003f64 ) - 8003d5e: 681b ldr r3, [r3, #0] - 8003d60: 4a80 ldr r2, [pc, #512] ; (8003f64 ) - 8003d62: f423 2380 bic.w r3, r3, #262144 ; 0x40000 - 8003d66: 6013 str r3, [r2, #0] + 8004298: 687b ldr r3, [r7, #4] + 800429a: 685b ldr r3, [r3, #4] + 800429c: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 80042a0: d106 bne.n 80042b0 + 80042a2: 4b91 ldr r3, [pc, #580] ; (80044e8 ) + 80042a4: 681b ldr r3, [r3, #0] + 80042a6: 4a90 ldr r2, [pc, #576] ; (80044e8 ) + 80042a8: f443 3380 orr.w r3, r3, #65536 ; 0x10000 + 80042ac: 6013 str r3, [r2, #0] + 80042ae: e01d b.n 80042ec + 80042b0: 687b ldr r3, [r7, #4] + 80042b2: 685b ldr r3, [r3, #4] + 80042b4: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000 + 80042b8: d10c bne.n 80042d4 + 80042ba: 4b8b ldr r3, [pc, #556] ; (80044e8 ) + 80042bc: 681b ldr r3, [r3, #0] + 80042be: 4a8a ldr r2, [pc, #552] ; (80044e8 ) + 80042c0: f443 2380 orr.w r3, r3, #262144 ; 0x40000 + 80042c4: 6013 str r3, [r2, #0] + 80042c6: 4b88 ldr r3, [pc, #544] ; (80044e8 ) + 80042c8: 681b ldr r3, [r3, #0] + 80042ca: 4a87 ldr r2, [pc, #540] ; (80044e8 ) + 80042cc: f443 3380 orr.w r3, r3, #65536 ; 0x10000 + 80042d0: 6013 str r3, [r2, #0] + 80042d2: e00b b.n 80042ec + 80042d4: 4b84 ldr r3, [pc, #528] ; (80044e8 ) + 80042d6: 681b ldr r3, [r3, #0] + 80042d8: 4a83 ldr r2, [pc, #524] ; (80044e8 ) + 80042da: f423 3380 bic.w r3, r3, #65536 ; 0x10000 + 80042de: 6013 str r3, [r2, #0] + 80042e0: 4b81 ldr r3, [pc, #516] ; (80044e8 ) + 80042e2: 681b ldr r3, [r3, #0] + 80042e4: 4a80 ldr r2, [pc, #512] ; (80044e8 ) + 80042e6: f423 2380 bic.w r3, r3, #262144 ; 0x40000 + 80042ea: 6013 str r3, [r2, #0] /* Check the HSE State */ if((RCC_OscInitStruct->HSEState) != RCC_HSE_OFF) - 8003d68: 687b ldr r3, [r7, #4] - 8003d6a: 685b ldr r3, [r3, #4] - 8003d6c: 2b00 cmp r3, #0 - 8003d6e: d013 beq.n 8003d98 + 80042ec: 687b ldr r3, [r7, #4] + 80042ee: 685b ldr r3, [r3, #4] + 80042f0: 2b00 cmp r3, #0 + 80042f2: d013 beq.n 800431c { /* Get Start Tick */ tickstart = HAL_GetTick(); - 8003d70: f7ff f88e bl 8002e90 - 8003d74: 6138 str r0, [r7, #16] + 80042f4: f7ff f88e bl 8003414 + 80042f8: 6138 str r0, [r7, #16] /* Wait till HSE is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) - 8003d76: e008 b.n 8003d8a + 80042fa: e008 b.n 800430e { if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) - 8003d78: f7ff f88a bl 8002e90 - 8003d7c: 4602 mov r2, r0 - 8003d7e: 693b ldr r3, [r7, #16] - 8003d80: 1ad3 subs r3, r2, r3 - 8003d82: 2b64 cmp r3, #100 ; 0x64 - 8003d84: d901 bls.n 8003d8a + 80042fc: f7ff f88a bl 8003414 + 8004300: 4602 mov r2, r0 + 8004302: 693b ldr r3, [r7, #16] + 8004304: 1ad3 subs r3, r2, r3 + 8004306: 2b64 cmp r3, #100 ; 0x64 + 8004308: d901 bls.n 800430e { return HAL_TIMEOUT; - 8003d86: 2303 movs r3, #3 - 8003d88: e1fb b.n 8004182 + 800430a: 2303 movs r3, #3 + 800430c: e1fb b.n 8004706 while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) - 8003d8a: 4b76 ldr r3, [pc, #472] ; (8003f64 ) - 8003d8c: 681b ldr r3, [r3, #0] - 8003d8e: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8003d92: 2b00 cmp r3, #0 - 8003d94: d0f0 beq.n 8003d78 - 8003d96: e014 b.n 8003dc2 + 800430e: 4b76 ldr r3, [pc, #472] ; (80044e8 ) + 8004310: 681b ldr r3, [r3, #0] + 8004312: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 8004316: 2b00 cmp r3, #0 + 8004318: d0f0 beq.n 80042fc + 800431a: e014 b.n 8004346 } } else { /* Get Start Tick */ tickstart = HAL_GetTick(); - 8003d98: f7ff f87a bl 8002e90 - 8003d9c: 6138 str r0, [r7, #16] + 800431c: f7ff f87a bl 8003414 + 8004320: 6138 str r0, [r7, #16] /* Wait till HSE is bypassed or disabled */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) - 8003d9e: e008 b.n 8003db2 + 8004322: e008 b.n 8004336 { if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) - 8003da0: f7ff f876 bl 8002e90 - 8003da4: 4602 mov r2, r0 - 8003da6: 693b ldr r3, [r7, #16] - 8003da8: 1ad3 subs r3, r2, r3 - 8003daa: 2b64 cmp r3, #100 ; 0x64 - 8003dac: d901 bls.n 8003db2 + 8004324: f7ff f876 bl 8003414 + 8004328: 4602 mov r2, r0 + 800432a: 693b ldr r3, [r7, #16] + 800432c: 1ad3 subs r3, r2, r3 + 800432e: 2b64 cmp r3, #100 ; 0x64 + 8004330: d901 bls.n 8004336 { return HAL_TIMEOUT; - 8003dae: 2303 movs r3, #3 - 8003db0: e1e7 b.n 8004182 + 8004332: 2303 movs r3, #3 + 8004334: e1e7 b.n 8004706 while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) - 8003db2: 4b6c ldr r3, [pc, #432] ; (8003f64 ) - 8003db4: 681b ldr r3, [r3, #0] - 8003db6: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8003dba: 2b00 cmp r3, #0 - 8003dbc: d1f0 bne.n 8003da0 - 8003dbe: e000 b.n 8003dc2 + 8004336: 4b6c ldr r3, [pc, #432] ; (80044e8 ) + 8004338: 681b ldr r3, [r3, #0] + 800433a: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 800433e: 2b00 cmp r3, #0 + 8004340: d1f0 bne.n 8004324 + 8004342: e000 b.n 8004346 if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) - 8003dc0: bf00 nop + 8004344: bf00 nop } } } } /*----------------------------- HSI Configuration --------------------------*/ if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) - 8003dc2: 687b ldr r3, [r7, #4] - 8003dc4: 681b ldr r3, [r3, #0] - 8003dc6: f003 0302 and.w r3, r3, #2 - 8003dca: 2b00 cmp r3, #0 - 8003dcc: d063 beq.n 8003e96 + 8004346: 687b ldr r3, [r7, #4] + 8004348: 681b ldr r3, [r3, #0] + 800434a: f003 0302 and.w r3, r3, #2 + 800434e: 2b00 cmp r3, #0 + 8004350: d063 beq.n 800441a /* 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((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_HSI) ||\ - 8003dce: 4b65 ldr r3, [pc, #404] ; (8003f64 ) - 8003dd0: 689b ldr r3, [r3, #8] - 8003dd2: f003 030c and.w r3, r3, #12 - 8003dd6: 2b00 cmp r3, #0 - 8003dd8: d00b beq.n 8003df2 + 8004352: 4b65 ldr r3, [pc, #404] ; (80044e8 ) + 8004354: 689b ldr r3, [r3, #8] + 8004356: f003 030c and.w r3, r3, #12 + 800435a: 2b00 cmp r3, #0 + 800435c: d00b beq.n 8004376 ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_PLL) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSI))) - 8003dda: 4b62 ldr r3, [pc, #392] ; (8003f64 ) - 8003ddc: 689b ldr r3, [r3, #8] - 8003dde: f003 030c and.w r3, r3, #12 + 800435e: 4b62 ldr r3, [pc, #392] ; (80044e8 ) + 8004360: 689b ldr r3, [r3, #8] + 8004362: f003 030c and.w r3, r3, #12 if((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_HSI) ||\ - 8003de2: 2b08 cmp r3, #8 - 8003de4: d11c bne.n 8003e20 + 8004366: 2b08 cmp r3, #8 + 8004368: d11c bne.n 80043a4 ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_PLL) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSI))) - 8003de6: 4b5f ldr r3, [pc, #380] ; (8003f64 ) - 8003de8: 685b ldr r3, [r3, #4] - 8003dea: f403 0380 and.w r3, r3, #4194304 ; 0x400000 - 8003dee: 2b00 cmp r3, #0 - 8003df0: d116 bne.n 8003e20 + 800436a: 4b5f ldr r3, [pc, #380] ; (80044e8 ) + 800436c: 685b ldr r3, [r3, #4] + 800436e: f403 0380 and.w r3, r3, #4194304 ; 0x400000 + 8004372: 2b00 cmp r3, #0 + 8004374: d116 bne.n 80043a4 { /* When HSI is used as system clock it will not disabled */ if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) - 8003df2: 4b5c ldr r3, [pc, #368] ; (8003f64 ) - 8003df4: 681b ldr r3, [r3, #0] - 8003df6: f003 0302 and.w r3, r3, #2 - 8003dfa: 2b00 cmp r3, #0 - 8003dfc: d005 beq.n 8003e0a - 8003dfe: 687b ldr r3, [r7, #4] - 8003e00: 68db ldr r3, [r3, #12] - 8003e02: 2b01 cmp r3, #1 - 8003e04: d001 beq.n 8003e0a + 8004376: 4b5c ldr r3, [pc, #368] ; (80044e8 ) + 8004378: 681b ldr r3, [r3, #0] + 800437a: f003 0302 and.w r3, r3, #2 + 800437e: 2b00 cmp r3, #0 + 8004380: d005 beq.n 800438e + 8004382: 687b ldr r3, [r7, #4] + 8004384: 68db ldr r3, [r3, #12] + 8004386: 2b01 cmp r3, #1 + 8004388: d001 beq.n 800438e { return HAL_ERROR; - 8003e06: 2301 movs r3, #1 - 8003e08: e1bb b.n 8004182 + 800438a: 2301 movs r3, #1 + 800438c: e1bb b.n 8004706 } /* Otherwise, just the calibration is allowed */ else { /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); - 8003e0a: 4b56 ldr r3, [pc, #344] ; (8003f64 ) - 8003e0c: 681b ldr r3, [r3, #0] - 8003e0e: f023 02f8 bic.w r2, r3, #248 ; 0xf8 - 8003e12: 687b ldr r3, [r7, #4] - 8003e14: 691b ldr r3, [r3, #16] - 8003e16: 00db lsls r3, r3, #3 - 8003e18: 4952 ldr r1, [pc, #328] ; (8003f64 ) - 8003e1a: 4313 orrs r3, r2 - 8003e1c: 600b str r3, [r1, #0] + 800438e: 4b56 ldr r3, [pc, #344] ; (80044e8 ) + 8004390: 681b ldr r3, [r3, #0] + 8004392: f023 02f8 bic.w r2, r3, #248 ; 0xf8 + 8004396: 687b ldr r3, [r7, #4] + 8004398: 691b ldr r3, [r3, #16] + 800439a: 00db lsls r3, r3, #3 + 800439c: 4952 ldr r1, [pc, #328] ; (80044e8 ) + 800439e: 4313 orrs r3, r2 + 80043a0: 600b str r3, [r1, #0] if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) - 8003e1e: e03a b.n 8003e96 + 80043a2: e03a b.n 800441a } } else { /* Check the HSI State */ if((RCC_OscInitStruct->HSIState)!= RCC_HSI_OFF) - 8003e20: 687b ldr r3, [r7, #4] - 8003e22: 68db ldr r3, [r3, #12] - 8003e24: 2b00 cmp r3, #0 - 8003e26: d020 beq.n 8003e6a + 80043a4: 687b ldr r3, [r7, #4] + 80043a6: 68db ldr r3, [r3, #12] + 80043a8: 2b00 cmp r3, #0 + 80043aa: d020 beq.n 80043ee { /* Enable the Internal High Speed oscillator (HSI). */ __HAL_RCC_HSI_ENABLE(); - 8003e28: 4b4f ldr r3, [pc, #316] ; (8003f68 ) - 8003e2a: 2201 movs r2, #1 - 8003e2c: 601a str r2, [r3, #0] + 80043ac: 4b4f ldr r3, [pc, #316] ; (80044ec ) + 80043ae: 2201 movs r2, #1 + 80043b0: 601a str r2, [r3, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); - 8003e2e: f7ff f82f bl 8002e90 - 8003e32: 6138 str r0, [r7, #16] + 80043b2: f7ff f82f bl 8003414 + 80043b6: 6138 str r0, [r7, #16] /* Wait till HSI is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) - 8003e34: e008 b.n 8003e48 + 80043b8: e008 b.n 80043cc { if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE) - 8003e36: f7ff f82b bl 8002e90 - 8003e3a: 4602 mov r2, r0 - 8003e3c: 693b ldr r3, [r7, #16] - 8003e3e: 1ad3 subs r3, r2, r3 - 8003e40: 2b02 cmp r3, #2 - 8003e42: d901 bls.n 8003e48 + 80043ba: f7ff f82b bl 8003414 + 80043be: 4602 mov r2, r0 + 80043c0: 693b ldr r3, [r7, #16] + 80043c2: 1ad3 subs r3, r2, r3 + 80043c4: 2b02 cmp r3, #2 + 80043c6: d901 bls.n 80043cc { return HAL_TIMEOUT; - 8003e44: 2303 movs r3, #3 - 8003e46: e19c b.n 8004182 + 80043c8: 2303 movs r3, #3 + 80043ca: e19c b.n 8004706 while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) - 8003e48: 4b46 ldr r3, [pc, #280] ; (8003f64 ) - 8003e4a: 681b ldr r3, [r3, #0] - 8003e4c: f003 0302 and.w r3, r3, #2 - 8003e50: 2b00 cmp r3, #0 - 8003e52: d0f0 beq.n 8003e36 + 80043cc: 4b46 ldr r3, [pc, #280] ; (80044e8 ) + 80043ce: 681b ldr r3, [r3, #0] + 80043d0: f003 0302 and.w r3, r3, #2 + 80043d4: 2b00 cmp r3, #0 + 80043d6: d0f0 beq.n 80043ba } } /* Adjusts the Internal High Speed oscillator (HSI) calibration value. */ __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); - 8003e54: 4b43 ldr r3, [pc, #268] ; (8003f64 ) - 8003e56: 681b ldr r3, [r3, #0] - 8003e58: f023 02f8 bic.w r2, r3, #248 ; 0xf8 - 8003e5c: 687b ldr r3, [r7, #4] - 8003e5e: 691b ldr r3, [r3, #16] - 8003e60: 00db lsls r3, r3, #3 - 8003e62: 4940 ldr r1, [pc, #256] ; (8003f64 ) - 8003e64: 4313 orrs r3, r2 - 8003e66: 600b str r3, [r1, #0] - 8003e68: e015 b.n 8003e96 + 80043d8: 4b43 ldr r3, [pc, #268] ; (80044e8 ) + 80043da: 681b ldr r3, [r3, #0] + 80043dc: f023 02f8 bic.w r2, r3, #248 ; 0xf8 + 80043e0: 687b ldr r3, [r7, #4] + 80043e2: 691b ldr r3, [r3, #16] + 80043e4: 00db lsls r3, r3, #3 + 80043e6: 4940 ldr r1, [pc, #256] ; (80044e8 ) + 80043e8: 4313 orrs r3, r2 + 80043ea: 600b str r3, [r1, #0] + 80043ec: e015 b.n 800441a } else { /* Disable the Internal High Speed oscillator (HSI). */ __HAL_RCC_HSI_DISABLE(); - 8003e6a: 4b3f ldr r3, [pc, #252] ; (8003f68 ) - 8003e6c: 2200 movs r2, #0 - 8003e6e: 601a str r2, [r3, #0] + 80043ee: 4b3f ldr r3, [pc, #252] ; (80044ec ) + 80043f0: 2200 movs r2, #0 + 80043f2: 601a str r2, [r3, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); - 8003e70: f7ff f80e bl 8002e90 - 8003e74: 6138 str r0, [r7, #16] + 80043f4: f7ff f80e bl 8003414 + 80043f8: 6138 str r0, [r7, #16] /* Wait till HSI is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) - 8003e76: e008 b.n 8003e8a + 80043fa: e008 b.n 800440e { if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE) - 8003e78: f7ff f80a bl 8002e90 - 8003e7c: 4602 mov r2, r0 - 8003e7e: 693b ldr r3, [r7, #16] - 8003e80: 1ad3 subs r3, r2, r3 - 8003e82: 2b02 cmp r3, #2 - 8003e84: d901 bls.n 8003e8a + 80043fc: f7ff f80a bl 8003414 + 8004400: 4602 mov r2, r0 + 8004402: 693b ldr r3, [r7, #16] + 8004404: 1ad3 subs r3, r2, r3 + 8004406: 2b02 cmp r3, #2 + 8004408: d901 bls.n 800440e { return HAL_TIMEOUT; - 8003e86: 2303 movs r3, #3 - 8003e88: e17b b.n 8004182 + 800440a: 2303 movs r3, #3 + 800440c: e17b b.n 8004706 while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) - 8003e8a: 4b36 ldr r3, [pc, #216] ; (8003f64 ) - 8003e8c: 681b ldr r3, [r3, #0] - 8003e8e: f003 0302 and.w r3, r3, #2 - 8003e92: 2b00 cmp r3, #0 - 8003e94: d1f0 bne.n 8003e78 + 800440e: 4b36 ldr r3, [pc, #216] ; (80044e8 ) + 8004410: 681b ldr r3, [r3, #0] + 8004412: f003 0302 and.w r3, r3, #2 + 8004416: 2b00 cmp r3, #0 + 8004418: d1f0 bne.n 80043fc } } } } /*------------------------------ LSI Configuration -------------------------*/ if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) - 8003e96: 687b ldr r3, [r7, #4] - 8003e98: 681b ldr r3, [r3, #0] - 8003e9a: f003 0308 and.w r3, r3, #8 - 8003e9e: 2b00 cmp r3, #0 - 8003ea0: d030 beq.n 8003f04 + 800441a: 687b ldr r3, [r7, #4] + 800441c: 681b ldr r3, [r3, #0] + 800441e: f003 0308 and.w r3, r3, #8 + 8004422: 2b00 cmp r3, #0 + 8004424: d030 beq.n 8004488 { /* Check the parameters */ assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState)); /* Check the LSI State */ if((RCC_OscInitStruct->LSIState)!= RCC_LSI_OFF) - 8003ea2: 687b ldr r3, [r7, #4] - 8003ea4: 695b ldr r3, [r3, #20] - 8003ea6: 2b00 cmp r3, #0 - 8003ea8: d016 beq.n 8003ed8 + 8004426: 687b ldr r3, [r7, #4] + 8004428: 695b ldr r3, [r3, #20] + 800442a: 2b00 cmp r3, #0 + 800442c: d016 beq.n 800445c { /* Enable the Internal Low Speed oscillator (LSI). */ __HAL_RCC_LSI_ENABLE(); - 8003eaa: 4b30 ldr r3, [pc, #192] ; (8003f6c ) - 8003eac: 2201 movs r2, #1 - 8003eae: 601a str r2, [r3, #0] + 800442e: 4b30 ldr r3, [pc, #192] ; (80044f0 ) + 8004430: 2201 movs r2, #1 + 8004432: 601a str r2, [r3, #0] /* Get Start Tick*/ tickstart = HAL_GetTick(); - 8003eb0: f7fe ffee bl 8002e90 - 8003eb4: 6138 str r0, [r7, #16] + 8004434: f7fe ffee bl 8003414 + 8004438: 6138 str r0, [r7, #16] /* Wait till LSI is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) - 8003eb6: e008 b.n 8003eca + 800443a: e008 b.n 800444e { if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE) - 8003eb8: f7fe ffea bl 8002e90 - 8003ebc: 4602 mov r2, r0 - 8003ebe: 693b ldr r3, [r7, #16] - 8003ec0: 1ad3 subs r3, r2, r3 - 8003ec2: 2b02 cmp r3, #2 - 8003ec4: d901 bls.n 8003eca + 800443c: f7fe ffea bl 8003414 + 8004440: 4602 mov r2, r0 + 8004442: 693b ldr r3, [r7, #16] + 8004444: 1ad3 subs r3, r2, r3 + 8004446: 2b02 cmp r3, #2 + 8004448: d901 bls.n 800444e { return HAL_TIMEOUT; - 8003ec6: 2303 movs r3, #3 - 8003ec8: e15b b.n 8004182 + 800444a: 2303 movs r3, #3 + 800444c: e15b b.n 8004706 while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) - 8003eca: 4b26 ldr r3, [pc, #152] ; (8003f64 ) - 8003ecc: 6f5b ldr r3, [r3, #116] ; 0x74 - 8003ece: f003 0302 and.w r3, r3, #2 - 8003ed2: 2b00 cmp r3, #0 - 8003ed4: d0f0 beq.n 8003eb8 - 8003ed6: e015 b.n 8003f04 + 800444e: 4b26 ldr r3, [pc, #152] ; (80044e8 ) + 8004450: 6f5b ldr r3, [r3, #116] ; 0x74 + 8004452: f003 0302 and.w r3, r3, #2 + 8004456: 2b00 cmp r3, #0 + 8004458: d0f0 beq.n 800443c + 800445a: e015 b.n 8004488 } } else { /* Disable the Internal Low Speed oscillator (LSI). */ __HAL_RCC_LSI_DISABLE(); - 8003ed8: 4b24 ldr r3, [pc, #144] ; (8003f6c ) - 8003eda: 2200 movs r2, #0 - 8003edc: 601a str r2, [r3, #0] + 800445c: 4b24 ldr r3, [pc, #144] ; (80044f0 ) + 800445e: 2200 movs r2, #0 + 8004460: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8003ede: f7fe ffd7 bl 8002e90 - 8003ee2: 6138 str r0, [r7, #16] + 8004462: f7fe ffd7 bl 8003414 + 8004466: 6138 str r0, [r7, #16] /* Wait till LSI is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) - 8003ee4: e008 b.n 8003ef8 + 8004468: e008 b.n 800447c { if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE) - 8003ee6: f7fe ffd3 bl 8002e90 - 8003eea: 4602 mov r2, r0 - 8003eec: 693b ldr r3, [r7, #16] - 8003eee: 1ad3 subs r3, r2, r3 - 8003ef0: 2b02 cmp r3, #2 - 8003ef2: d901 bls.n 8003ef8 + 800446a: f7fe ffd3 bl 8003414 + 800446e: 4602 mov r2, r0 + 8004470: 693b ldr r3, [r7, #16] + 8004472: 1ad3 subs r3, r2, r3 + 8004474: 2b02 cmp r3, #2 + 8004476: d901 bls.n 800447c { return HAL_TIMEOUT; - 8003ef4: 2303 movs r3, #3 - 8003ef6: e144 b.n 8004182 + 8004478: 2303 movs r3, #3 + 800447a: e144 b.n 8004706 while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) - 8003ef8: 4b1a ldr r3, [pc, #104] ; (8003f64 ) - 8003efa: 6f5b ldr r3, [r3, #116] ; 0x74 - 8003efc: f003 0302 and.w r3, r3, #2 - 8003f00: 2b00 cmp r3, #0 - 8003f02: d1f0 bne.n 8003ee6 + 800447c: 4b1a ldr r3, [pc, #104] ; (80044e8 ) + 800447e: 6f5b ldr r3, [r3, #116] ; 0x74 + 8004480: f003 0302 and.w r3, r3, #2 + 8004484: 2b00 cmp r3, #0 + 8004486: d1f0 bne.n 800446a } } } } /*------------------------------ LSE Configuration -------------------------*/ if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) - 8003f04: 687b ldr r3, [r7, #4] - 8003f06: 681b ldr r3, [r3, #0] - 8003f08: f003 0304 and.w r3, r3, #4 - 8003f0c: 2b00 cmp r3, #0 - 8003f0e: f000 80a0 beq.w 8004052 + 8004488: 687b ldr r3, [r7, #4] + 800448a: 681b ldr r3, [r3, #0] + 800448c: f003 0304 and.w r3, r3, #4 + 8004490: 2b00 cmp r3, #0 + 8004492: f000 80a0 beq.w 80045d6 { FlagStatus pwrclkchanged = RESET; - 8003f12: 2300 movs r3, #0 - 8003f14: 75fb strb r3, [r7, #23] + 8004496: 2300 movs r3, #0 + 8004498: 75fb strb r3, [r7, #23] /* 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()) - 8003f16: 4b13 ldr r3, [pc, #76] ; (8003f64 ) - 8003f18: 6c1b ldr r3, [r3, #64] ; 0x40 - 8003f1a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 8003f1e: 2b00 cmp r3, #0 - 8003f20: d10f bne.n 8003f42 + 800449a: 4b13 ldr r3, [pc, #76] ; (80044e8 ) + 800449c: 6c1b ldr r3, [r3, #64] ; 0x40 + 800449e: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 80044a2: 2b00 cmp r3, #0 + 80044a4: d10f bne.n 80044c6 { __HAL_RCC_PWR_CLK_ENABLE(); - 8003f22: 2300 movs r3, #0 - 8003f24: 60bb str r3, [r7, #8] - 8003f26: 4b0f ldr r3, [pc, #60] ; (8003f64 ) - 8003f28: 6c1b ldr r3, [r3, #64] ; 0x40 - 8003f2a: 4a0e ldr r2, [pc, #56] ; (8003f64 ) - 8003f2c: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 8003f30: 6413 str r3, [r2, #64] ; 0x40 - 8003f32: 4b0c ldr r3, [pc, #48] ; (8003f64 ) - 8003f34: 6c1b ldr r3, [r3, #64] ; 0x40 - 8003f36: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 8003f3a: 60bb str r3, [r7, #8] - 8003f3c: 68bb ldr r3, [r7, #8] + 80044a6: 2300 movs r3, #0 + 80044a8: 60bb str r3, [r7, #8] + 80044aa: 4b0f ldr r3, [pc, #60] ; (80044e8 ) + 80044ac: 6c1b ldr r3, [r3, #64] ; 0x40 + 80044ae: 4a0e ldr r2, [pc, #56] ; (80044e8 ) + 80044b0: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 80044b4: 6413 str r3, [r2, #64] ; 0x40 + 80044b6: 4b0c ldr r3, [pc, #48] ; (80044e8 ) + 80044b8: 6c1b ldr r3, [r3, #64] ; 0x40 + 80044ba: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 80044be: 60bb str r3, [r7, #8] + 80044c0: 68bb ldr r3, [r7, #8] pwrclkchanged = SET; - 8003f3e: 2301 movs r3, #1 - 8003f40: 75fb strb r3, [r7, #23] + 80044c2: 2301 movs r3, #1 + 80044c4: 75fb strb r3, [r7, #23] } if(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) - 8003f42: 4b0b ldr r3, [pc, #44] ; (8003f70 ) - 8003f44: 681b ldr r3, [r3, #0] - 8003f46: f403 7380 and.w r3, r3, #256 ; 0x100 - 8003f4a: 2b00 cmp r3, #0 - 8003f4c: d121 bne.n 8003f92 + 80044c6: 4b0b ldr r3, [pc, #44] ; (80044f4 ) + 80044c8: 681b ldr r3, [r3, #0] + 80044ca: f403 7380 and.w r3, r3, #256 ; 0x100 + 80044ce: 2b00 cmp r3, #0 + 80044d0: d121 bne.n 8004516 { /* Enable write access to Backup domain */ SET_BIT(PWR->CR, PWR_CR_DBP); - 8003f4e: 4b08 ldr r3, [pc, #32] ; (8003f70 ) - 8003f50: 681b ldr r3, [r3, #0] - 8003f52: 4a07 ldr r2, [pc, #28] ; (8003f70 ) - 8003f54: f443 7380 orr.w r3, r3, #256 ; 0x100 - 8003f58: 6013 str r3, [r2, #0] + 80044d2: 4b08 ldr r3, [pc, #32] ; (80044f4 ) + 80044d4: 681b ldr r3, [r3, #0] + 80044d6: 4a07 ldr r2, [pc, #28] ; (80044f4 ) + 80044d8: f443 7380 orr.w r3, r3, #256 ; 0x100 + 80044dc: 6013 str r3, [r2, #0] /* Wait for Backup domain Write protection disable */ tickstart = HAL_GetTick(); - 8003f5a: f7fe ff99 bl 8002e90 - 8003f5e: 6138 str r0, [r7, #16] + 80044de: f7fe ff99 bl 8003414 + 80044e2: 6138 str r0, [r7, #16] while(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) - 8003f60: e011 b.n 8003f86 - 8003f62: bf00 nop - 8003f64: 40023800 .word 0x40023800 - 8003f68: 42470000 .word 0x42470000 - 8003f6c: 42470e80 .word 0x42470e80 - 8003f70: 40007000 .word 0x40007000 + 80044e4: e011 b.n 800450a + 80044e6: bf00 nop + 80044e8: 40023800 .word 0x40023800 + 80044ec: 42470000 .word 0x42470000 + 80044f0: 42470e80 .word 0x42470e80 + 80044f4: 40007000 .word 0x40007000 { if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) - 8003f74: f7fe ff8c bl 8002e90 - 8003f78: 4602 mov r2, r0 - 8003f7a: 693b ldr r3, [r7, #16] - 8003f7c: 1ad3 subs r3, r2, r3 - 8003f7e: 2b02 cmp r3, #2 - 8003f80: d901 bls.n 8003f86 + 80044f8: f7fe ff8c bl 8003414 + 80044fc: 4602 mov r2, r0 + 80044fe: 693b ldr r3, [r7, #16] + 8004500: 1ad3 subs r3, r2, r3 + 8004502: 2b02 cmp r3, #2 + 8004504: d901 bls.n 800450a { return HAL_TIMEOUT; - 8003f82: 2303 movs r3, #3 - 8003f84: e0fd b.n 8004182 + 8004506: 2303 movs r3, #3 + 8004508: e0fd b.n 8004706 while(HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP)) - 8003f86: 4b81 ldr r3, [pc, #516] ; (800418c ) - 8003f88: 681b ldr r3, [r3, #0] - 8003f8a: f403 7380 and.w r3, r3, #256 ; 0x100 - 8003f8e: 2b00 cmp r3, #0 - 8003f90: d0f0 beq.n 8003f74 + 800450a: 4b81 ldr r3, [pc, #516] ; (8004710 ) + 800450c: 681b ldr r3, [r3, #0] + 800450e: f403 7380 and.w r3, r3, #256 ; 0x100 + 8004512: 2b00 cmp r3, #0 + 8004514: d0f0 beq.n 80044f8 } } } /* Set the new LSE configuration -----------------------------------------*/ __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState); - 8003f92: 687b ldr r3, [r7, #4] - 8003f94: 689b ldr r3, [r3, #8] - 8003f96: 2b01 cmp r3, #1 - 8003f98: d106 bne.n 8003fa8 - 8003f9a: 4b7d ldr r3, [pc, #500] ; (8004190 ) - 8003f9c: 6f1b ldr r3, [r3, #112] ; 0x70 - 8003f9e: 4a7c ldr r2, [pc, #496] ; (8004190 ) - 8003fa0: f043 0301 orr.w r3, r3, #1 - 8003fa4: 6713 str r3, [r2, #112] ; 0x70 - 8003fa6: e01c b.n 8003fe2 - 8003fa8: 687b ldr r3, [r7, #4] - 8003faa: 689b ldr r3, [r3, #8] - 8003fac: 2b05 cmp r3, #5 - 8003fae: d10c bne.n 8003fca - 8003fb0: 4b77 ldr r3, [pc, #476] ; (8004190 ) - 8003fb2: 6f1b ldr r3, [r3, #112] ; 0x70 - 8003fb4: 4a76 ldr r2, [pc, #472] ; (8004190 ) - 8003fb6: f043 0304 orr.w r3, r3, #4 - 8003fba: 6713 str r3, [r2, #112] ; 0x70 - 8003fbc: 4b74 ldr r3, [pc, #464] ; (8004190 ) - 8003fbe: 6f1b ldr r3, [r3, #112] ; 0x70 - 8003fc0: 4a73 ldr r2, [pc, #460] ; (8004190 ) - 8003fc2: f043 0301 orr.w r3, r3, #1 - 8003fc6: 6713 str r3, [r2, #112] ; 0x70 - 8003fc8: e00b b.n 8003fe2 - 8003fca: 4b71 ldr r3, [pc, #452] ; (8004190 ) - 8003fcc: 6f1b ldr r3, [r3, #112] ; 0x70 - 8003fce: 4a70 ldr r2, [pc, #448] ; (8004190 ) - 8003fd0: f023 0301 bic.w r3, r3, #1 - 8003fd4: 6713 str r3, [r2, #112] ; 0x70 - 8003fd6: 4b6e ldr r3, [pc, #440] ; (8004190 ) - 8003fd8: 6f1b ldr r3, [r3, #112] ; 0x70 - 8003fda: 4a6d ldr r2, [pc, #436] ; (8004190 ) - 8003fdc: f023 0304 bic.w r3, r3, #4 - 8003fe0: 6713 str r3, [r2, #112] ; 0x70 + 8004516: 687b ldr r3, [r7, #4] + 8004518: 689b ldr r3, [r3, #8] + 800451a: 2b01 cmp r3, #1 + 800451c: d106 bne.n 800452c + 800451e: 4b7d ldr r3, [pc, #500] ; (8004714 ) + 8004520: 6f1b ldr r3, [r3, #112] ; 0x70 + 8004522: 4a7c ldr r2, [pc, #496] ; (8004714 ) + 8004524: f043 0301 orr.w r3, r3, #1 + 8004528: 6713 str r3, [r2, #112] ; 0x70 + 800452a: e01c b.n 8004566 + 800452c: 687b ldr r3, [r7, #4] + 800452e: 689b ldr r3, [r3, #8] + 8004530: 2b05 cmp r3, #5 + 8004532: d10c bne.n 800454e + 8004534: 4b77 ldr r3, [pc, #476] ; (8004714 ) + 8004536: 6f1b ldr r3, [r3, #112] ; 0x70 + 8004538: 4a76 ldr r2, [pc, #472] ; (8004714 ) + 800453a: f043 0304 orr.w r3, r3, #4 + 800453e: 6713 str r3, [r2, #112] ; 0x70 + 8004540: 4b74 ldr r3, [pc, #464] ; (8004714 ) + 8004542: 6f1b ldr r3, [r3, #112] ; 0x70 + 8004544: 4a73 ldr r2, [pc, #460] ; (8004714 ) + 8004546: f043 0301 orr.w r3, r3, #1 + 800454a: 6713 str r3, [r2, #112] ; 0x70 + 800454c: e00b b.n 8004566 + 800454e: 4b71 ldr r3, [pc, #452] ; (8004714 ) + 8004550: 6f1b ldr r3, [r3, #112] ; 0x70 + 8004552: 4a70 ldr r2, [pc, #448] ; (8004714 ) + 8004554: f023 0301 bic.w r3, r3, #1 + 8004558: 6713 str r3, [r2, #112] ; 0x70 + 800455a: 4b6e ldr r3, [pc, #440] ; (8004714 ) + 800455c: 6f1b ldr r3, [r3, #112] ; 0x70 + 800455e: 4a6d ldr r2, [pc, #436] ; (8004714 ) + 8004560: f023 0304 bic.w r3, r3, #4 + 8004564: 6713 str r3, [r2, #112] ; 0x70 /* Check the LSE State */ if((RCC_OscInitStruct->LSEState) != RCC_LSE_OFF) - 8003fe2: 687b ldr r3, [r7, #4] - 8003fe4: 689b ldr r3, [r3, #8] - 8003fe6: 2b00 cmp r3, #0 - 8003fe8: d015 beq.n 8004016 + 8004566: 687b ldr r3, [r7, #4] + 8004568: 689b ldr r3, [r3, #8] + 800456a: 2b00 cmp r3, #0 + 800456c: d015 beq.n 800459a { /* Get Start Tick*/ tickstart = HAL_GetTick(); - 8003fea: f7fe ff51 bl 8002e90 - 8003fee: 6138 str r0, [r7, #16] + 800456e: f7fe ff51 bl 8003414 + 8004572: 6138 str r0, [r7, #16] /* Wait till LSE is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) - 8003ff0: e00a b.n 8004008 + 8004574: e00a b.n 800458c { if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) - 8003ff2: f7fe ff4d bl 8002e90 - 8003ff6: 4602 mov r2, r0 - 8003ff8: 693b ldr r3, [r7, #16] - 8003ffa: 1ad3 subs r3, r2, r3 - 8003ffc: f241 3288 movw r2, #5000 ; 0x1388 - 8004000: 4293 cmp r3, r2 - 8004002: d901 bls.n 8004008 + 8004576: f7fe ff4d bl 8003414 + 800457a: 4602 mov r2, r0 + 800457c: 693b ldr r3, [r7, #16] + 800457e: 1ad3 subs r3, r2, r3 + 8004580: f241 3288 movw r2, #5000 ; 0x1388 + 8004584: 4293 cmp r3, r2 + 8004586: d901 bls.n 800458c { return HAL_TIMEOUT; - 8004004: 2303 movs r3, #3 - 8004006: e0bc b.n 8004182 + 8004588: 2303 movs r3, #3 + 800458a: e0bc b.n 8004706 while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) - 8004008: 4b61 ldr r3, [pc, #388] ; (8004190 ) - 800400a: 6f1b ldr r3, [r3, #112] ; 0x70 - 800400c: f003 0302 and.w r3, r3, #2 - 8004010: 2b00 cmp r3, #0 - 8004012: d0ee beq.n 8003ff2 - 8004014: e014 b.n 8004040 + 800458c: 4b61 ldr r3, [pc, #388] ; (8004714 ) + 800458e: 6f1b ldr r3, [r3, #112] ; 0x70 + 8004590: f003 0302 and.w r3, r3, #2 + 8004594: 2b00 cmp r3, #0 + 8004596: d0ee beq.n 8004576 + 8004598: e014 b.n 80045c4 } } else { /* Get Start Tick */ tickstart = HAL_GetTick(); - 8004016: f7fe ff3b bl 8002e90 - 800401a: 6138 str r0, [r7, #16] + 800459a: f7fe ff3b bl 8003414 + 800459e: 6138 str r0, [r7, #16] /* Wait till LSE is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) - 800401c: e00a b.n 8004034 + 80045a0: e00a b.n 80045b8 { if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) - 800401e: f7fe ff37 bl 8002e90 - 8004022: 4602 mov r2, r0 - 8004024: 693b ldr r3, [r7, #16] - 8004026: 1ad3 subs r3, r2, r3 - 8004028: f241 3288 movw r2, #5000 ; 0x1388 - 800402c: 4293 cmp r3, r2 - 800402e: d901 bls.n 8004034 + 80045a2: f7fe ff37 bl 8003414 + 80045a6: 4602 mov r2, r0 + 80045a8: 693b ldr r3, [r7, #16] + 80045aa: 1ad3 subs r3, r2, r3 + 80045ac: f241 3288 movw r2, #5000 ; 0x1388 + 80045b0: 4293 cmp r3, r2 + 80045b2: d901 bls.n 80045b8 { return HAL_TIMEOUT; - 8004030: 2303 movs r3, #3 - 8004032: e0a6 b.n 8004182 + 80045b4: 2303 movs r3, #3 + 80045b6: e0a6 b.n 8004706 while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) - 8004034: 4b56 ldr r3, [pc, #344] ; (8004190 ) - 8004036: 6f1b ldr r3, [r3, #112] ; 0x70 - 8004038: f003 0302 and.w r3, r3, #2 - 800403c: 2b00 cmp r3, #0 - 800403e: d1ee bne.n 800401e + 80045b8: 4b56 ldr r3, [pc, #344] ; (8004714 ) + 80045ba: 6f1b ldr r3, [r3, #112] ; 0x70 + 80045bc: f003 0302 and.w r3, r3, #2 + 80045c0: 2b00 cmp r3, #0 + 80045c2: d1ee bne.n 80045a2 } } } /* Restore clock configuration if changed */ if(pwrclkchanged == SET) - 8004040: 7dfb ldrb r3, [r7, #23] - 8004042: 2b01 cmp r3, #1 - 8004044: d105 bne.n 8004052 + 80045c4: 7dfb ldrb r3, [r7, #23] + 80045c6: 2b01 cmp r3, #1 + 80045c8: d105 bne.n 80045d6 { __HAL_RCC_PWR_CLK_DISABLE(); - 8004046: 4b52 ldr r3, [pc, #328] ; (8004190 ) - 8004048: 6c1b ldr r3, [r3, #64] ; 0x40 - 800404a: 4a51 ldr r2, [pc, #324] ; (8004190 ) - 800404c: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 - 8004050: 6413 str r3, [r2, #64] ; 0x40 + 80045ca: 4b52 ldr r3, [pc, #328] ; (8004714 ) + 80045cc: 6c1b ldr r3, [r3, #64] ; 0x40 + 80045ce: 4a51 ldr r2, [pc, #324] ; (8004714 ) + 80045d0: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 + 80045d4: 6413 str r3, [r2, #64] ; 0x40 } } /*-------------------------------- PLL Configuration -----------------------*/ /* Check the parameters */ assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState)); if ((RCC_OscInitStruct->PLL.PLLState) != RCC_PLL_NONE) - 8004052: 687b ldr r3, [r7, #4] - 8004054: 699b ldr r3, [r3, #24] - 8004056: 2b00 cmp r3, #0 - 8004058: f000 8092 beq.w 8004180 + 80045d6: 687b ldr r3, [r7, #4] + 80045d8: 699b ldr r3, [r3, #24] + 80045da: 2b00 cmp r3, #0 + 80045dc: f000 8092 beq.w 8004704 { /* Check if the PLL is used as system clock or not */ if(__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_CFGR_SWS_PLL) - 800405c: 4b4c ldr r3, [pc, #304] ; (8004190 ) - 800405e: 689b ldr r3, [r3, #8] - 8004060: f003 030c and.w r3, r3, #12 - 8004064: 2b08 cmp r3, #8 - 8004066: d05c beq.n 8004122 + 80045e0: 4b4c ldr r3, [pc, #304] ; (8004714 ) + 80045e2: 689b ldr r3, [r3, #8] + 80045e4: f003 030c and.w r3, r3, #12 + 80045e8: 2b08 cmp r3, #8 + 80045ea: d05c beq.n 80046a6 { if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON) - 8004068: 687b ldr r3, [r7, #4] - 800406a: 699b ldr r3, [r3, #24] - 800406c: 2b02 cmp r3, #2 - 800406e: d141 bne.n 80040f4 + 80045ec: 687b ldr r3, [r7, #4] + 80045ee: 699b ldr r3, [r3, #24] + 80045f0: 2b02 cmp r3, #2 + 80045f2: d141 bne.n 8004678 assert_param(IS_RCC_PLLN_VALUE(RCC_OscInitStruct->PLL.PLLN)); assert_param(IS_RCC_PLLP_VALUE(RCC_OscInitStruct->PLL.PLLP)); assert_param(IS_RCC_PLLQ_VALUE(RCC_OscInitStruct->PLL.PLLQ)); /* Disable the main PLL. */ __HAL_RCC_PLL_DISABLE(); - 8004070: 4b48 ldr r3, [pc, #288] ; (8004194 ) - 8004072: 2200 movs r2, #0 - 8004074: 601a str r2, [r3, #0] + 80045f4: 4b48 ldr r3, [pc, #288] ; (8004718 ) + 80045f6: 2200 movs r2, #0 + 80045f8: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8004076: f7fe ff0b bl 8002e90 - 800407a: 6138 str r0, [r7, #16] + 80045fa: f7fe ff0b bl 8003414 + 80045fe: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) - 800407c: e008 b.n 8004090 + 8004600: e008 b.n 8004614 { if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) - 800407e: f7fe ff07 bl 8002e90 - 8004082: 4602 mov r2, r0 - 8004084: 693b ldr r3, [r7, #16] - 8004086: 1ad3 subs r3, r2, r3 - 8004088: 2b02 cmp r3, #2 - 800408a: d901 bls.n 8004090 + 8004602: f7fe ff07 bl 8003414 + 8004606: 4602 mov r2, r0 + 8004608: 693b ldr r3, [r7, #16] + 800460a: 1ad3 subs r3, r2, r3 + 800460c: 2b02 cmp r3, #2 + 800460e: d901 bls.n 8004614 { return HAL_TIMEOUT; - 800408c: 2303 movs r3, #3 - 800408e: e078 b.n 8004182 + 8004610: 2303 movs r3, #3 + 8004612: e078 b.n 8004706 while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) - 8004090: 4b3f ldr r3, [pc, #252] ; (8004190 ) - 8004092: 681b ldr r3, [r3, #0] - 8004094: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 8004098: 2b00 cmp r3, #0 - 800409a: d1f0 bne.n 800407e + 8004614: 4b3f ldr r3, [pc, #252] ; (8004714 ) + 8004616: 681b ldr r3, [r3, #0] + 8004618: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 800461c: 2b00 cmp r3, #0 + 800461e: d1f0 bne.n 8004602 } } /* Configure the main PLL clock source, multiplication and division factors. */ WRITE_REG(RCC->PLLCFGR, (RCC_OscInitStruct->PLL.PLLSource | \ - 800409c: 687b ldr r3, [r7, #4] - 800409e: 69da ldr r2, [r3, #28] - 80040a0: 687b ldr r3, [r7, #4] - 80040a2: 6a1b ldr r3, [r3, #32] - 80040a4: 431a orrs r2, r3 - 80040a6: 687b ldr r3, [r7, #4] - 80040a8: 6a5b ldr r3, [r3, #36] ; 0x24 - 80040aa: 019b lsls r3, r3, #6 - 80040ac: 431a orrs r2, r3 - 80040ae: 687b ldr r3, [r7, #4] - 80040b0: 6a9b ldr r3, [r3, #40] ; 0x28 - 80040b2: 085b lsrs r3, r3, #1 - 80040b4: 3b01 subs r3, #1 - 80040b6: 041b lsls r3, r3, #16 - 80040b8: 431a orrs r2, r3 - 80040ba: 687b ldr r3, [r7, #4] - 80040bc: 6adb ldr r3, [r3, #44] ; 0x2c - 80040be: 061b lsls r3, r3, #24 - 80040c0: 4933 ldr r1, [pc, #204] ; (8004190 ) - 80040c2: 4313 orrs r3, r2 - 80040c4: 604b str r3, [r1, #4] + 8004620: 687b ldr r3, [r7, #4] + 8004622: 69da ldr r2, [r3, #28] + 8004624: 687b ldr r3, [r7, #4] + 8004626: 6a1b ldr r3, [r3, #32] + 8004628: 431a orrs r2, r3 + 800462a: 687b ldr r3, [r7, #4] + 800462c: 6a5b ldr r3, [r3, #36] ; 0x24 + 800462e: 019b lsls r3, r3, #6 + 8004630: 431a orrs r2, r3 + 8004632: 687b ldr r3, [r7, #4] + 8004634: 6a9b ldr r3, [r3, #40] ; 0x28 + 8004636: 085b lsrs r3, r3, #1 + 8004638: 3b01 subs r3, #1 + 800463a: 041b lsls r3, r3, #16 + 800463c: 431a orrs r2, r3 + 800463e: 687b ldr r3, [r7, #4] + 8004640: 6adb ldr r3, [r3, #44] ; 0x2c + 8004642: 061b lsls r3, r3, #24 + 8004644: 4933 ldr r1, [pc, #204] ; (8004714 ) + 8004646: 4313 orrs r3, r2 + 8004648: 604b str r3, [r1, #4] RCC_OscInitStruct->PLL.PLLM | \ (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos) | \ (((RCC_OscInitStruct->PLL.PLLP >> 1U) - 1U) << RCC_PLLCFGR_PLLP_Pos) | \ (RCC_OscInitStruct->PLL.PLLQ << RCC_PLLCFGR_PLLQ_Pos))); /* Enable the main PLL. */ __HAL_RCC_PLL_ENABLE(); - 80040c6: 4b33 ldr r3, [pc, #204] ; (8004194 ) - 80040c8: 2201 movs r2, #1 - 80040ca: 601a str r2, [r3, #0] + 800464a: 4b33 ldr r3, [pc, #204] ; (8004718 ) + 800464c: 2201 movs r2, #1 + 800464e: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 80040cc: f7fe fee0 bl 8002e90 - 80040d0: 6138 str r0, [r7, #16] + 8004650: f7fe fee0 bl 8003414 + 8004654: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) - 80040d2: e008 b.n 80040e6 + 8004656: e008 b.n 800466a { if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) - 80040d4: f7fe fedc bl 8002e90 - 80040d8: 4602 mov r2, r0 - 80040da: 693b ldr r3, [r7, #16] - 80040dc: 1ad3 subs r3, r2, r3 - 80040de: 2b02 cmp r3, #2 - 80040e0: d901 bls.n 80040e6 + 8004658: f7fe fedc bl 8003414 + 800465c: 4602 mov r2, r0 + 800465e: 693b ldr r3, [r7, #16] + 8004660: 1ad3 subs r3, r2, r3 + 8004662: 2b02 cmp r3, #2 + 8004664: d901 bls.n 800466a { return HAL_TIMEOUT; - 80040e2: 2303 movs r3, #3 - 80040e4: e04d b.n 8004182 + 8004666: 2303 movs r3, #3 + 8004668: e04d b.n 8004706 while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) - 80040e6: 4b2a ldr r3, [pc, #168] ; (8004190 ) - 80040e8: 681b ldr r3, [r3, #0] - 80040ea: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 80040ee: 2b00 cmp r3, #0 - 80040f0: d0f0 beq.n 80040d4 - 80040f2: e045 b.n 8004180 + 800466a: 4b2a ldr r3, [pc, #168] ; (8004714 ) + 800466c: 681b ldr r3, [r3, #0] + 800466e: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 8004672: 2b00 cmp r3, #0 + 8004674: d0f0 beq.n 8004658 + 8004676: e045 b.n 8004704 } } else { /* Disable the main PLL. */ __HAL_RCC_PLL_DISABLE(); - 80040f4: 4b27 ldr r3, [pc, #156] ; (8004194 ) - 80040f6: 2200 movs r2, #0 - 80040f8: 601a str r2, [r3, #0] + 8004678: 4b27 ldr r3, [pc, #156] ; (8004718 ) + 800467a: 2200 movs r2, #0 + 800467c: 601a str r2, [r3, #0] /* Get Start Tick */ tickstart = HAL_GetTick(); - 80040fa: f7fe fec9 bl 8002e90 - 80040fe: 6138 str r0, [r7, #16] + 800467e: f7fe fec9 bl 8003414 + 8004682: 6138 str r0, [r7, #16] /* Wait till PLL is ready */ while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) - 8004100: e008 b.n 8004114 + 8004684: e008 b.n 8004698 { if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) - 8004102: f7fe fec5 bl 8002e90 - 8004106: 4602 mov r2, r0 - 8004108: 693b ldr r3, [r7, #16] - 800410a: 1ad3 subs r3, r2, r3 - 800410c: 2b02 cmp r3, #2 - 800410e: d901 bls.n 8004114 + 8004686: f7fe fec5 bl 8003414 + 800468a: 4602 mov r2, r0 + 800468c: 693b ldr r3, [r7, #16] + 800468e: 1ad3 subs r3, r2, r3 + 8004690: 2b02 cmp r3, #2 + 8004692: d901 bls.n 8004698 { return HAL_TIMEOUT; - 8004110: 2303 movs r3, #3 - 8004112: e036 b.n 8004182 + 8004694: 2303 movs r3, #3 + 8004696: e036 b.n 8004706 while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) - 8004114: 4b1e ldr r3, [pc, #120] ; (8004190 ) - 8004116: 681b ldr r3, [r3, #0] - 8004118: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 800411c: 2b00 cmp r3, #0 - 800411e: d1f0 bne.n 8004102 - 8004120: e02e b.n 8004180 + 8004698: 4b1e ldr r3, [pc, #120] ; (8004714 ) + 800469a: 681b ldr r3, [r3, #0] + 800469c: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 80046a0: 2b00 cmp r3, #0 + 80046a2: d1f0 bne.n 8004686 + 80046a4: e02e b.n 8004704 } } else { /* Check if there is a request to disable the PLL used as System clock source */ if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) - 8004122: 687b ldr r3, [r7, #4] - 8004124: 699b ldr r3, [r3, #24] - 8004126: 2b01 cmp r3, #1 - 8004128: d101 bne.n 800412e + 80046a6: 687b ldr r3, [r7, #4] + 80046a8: 699b ldr r3, [r3, #24] + 80046aa: 2b01 cmp r3, #1 + 80046ac: d101 bne.n 80046b2 { return HAL_ERROR; - 800412a: 2301 movs r3, #1 - 800412c: e029 b.n 8004182 + 80046ae: 2301 movs r3, #1 + 80046b0: e029 b.n 8004706 } else { /* Do not return HAL_ERROR if request repeats the current configuration */ pll_config = RCC->PLLCFGR; - 800412e: 4b18 ldr r3, [pc, #96] ; (8004190 ) - 8004130: 685b ldr r3, [r3, #4] - 8004132: 60fb str r3, [r7, #12] + 80046b2: 4b18 ldr r3, [pc, #96] ; (8004714 ) + 80046b4: 685b ldr r3, [r3, #4] + 80046b6: 60fb str r3, [r7, #12] if((READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || - 8004134: 68fb ldr r3, [r7, #12] - 8004136: f403 0280 and.w r2, r3, #4194304 ; 0x400000 - 800413a: 687b ldr r3, [r7, #4] - 800413c: 69db ldr r3, [r3, #28] - 800413e: 429a cmp r2, r3 - 8004140: d11c bne.n 800417c + 80046b8: 68fb ldr r3, [r7, #12] + 80046ba: f403 0280 and.w r2, r3, #4194304 ; 0x400000 + 80046be: 687b ldr r3, [r7, #4] + 80046c0: 69db ldr r3, [r3, #28] + 80046c2: 429a cmp r2, r3 + 80046c4: d11c bne.n 8004700 (READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != RCC_OscInitStruct->PLL.PLLM) || - 8004142: 68fb ldr r3, [r7, #12] - 8004144: f003 023f and.w r2, r3, #63 ; 0x3f - 8004148: 687b ldr r3, [r7, #4] - 800414a: 6a1b ldr r3, [r3, #32] + 80046c6: 68fb ldr r3, [r7, #12] + 80046c8: f003 023f and.w r2, r3, #63 ; 0x3f + 80046cc: 687b ldr r3, [r7, #4] + 80046ce: 6a1b ldr r3, [r3, #32] if((READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) || - 800414c: 429a cmp r2, r3 - 800414e: d115 bne.n 800417c + 80046d0: 429a cmp r2, r3 + 80046d2: d115 bne.n 8004700 (READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != RCC_OscInitStruct->PLL.PLLN) || - 8004150: 68fa ldr r2, [r7, #12] - 8004152: f647 73c0 movw r3, #32704 ; 0x7fc0 - 8004156: 4013 ands r3, r2 - 8004158: 687a ldr r2, [r7, #4] - 800415a: 6a52 ldr r2, [r2, #36] ; 0x24 + 80046d4: 68fa ldr r2, [r7, #12] + 80046d6: f647 73c0 movw r3, #32704 ; 0x7fc0 + 80046da: 4013 ands r3, r2 + 80046dc: 687a ldr r2, [r7, #4] + 80046de: 6a52 ldr r2, [r2, #36] ; 0x24 (READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != RCC_OscInitStruct->PLL.PLLM) || - 800415c: 4293 cmp r3, r2 - 800415e: d10d bne.n 800417c + 80046e0: 4293 cmp r3, r2 + 80046e2: d10d bne.n 8004700 (READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != RCC_OscInitStruct->PLL.PLLP) || - 8004160: 68fb ldr r3, [r7, #12] - 8004162: f403 3240 and.w r2, r3, #196608 ; 0x30000 - 8004166: 687b ldr r3, [r7, #4] - 8004168: 6a9b ldr r3, [r3, #40] ; 0x28 + 80046e4: 68fb ldr r3, [r7, #12] + 80046e6: f403 3240 and.w r2, r3, #196608 ; 0x30000 + 80046ea: 687b ldr r3, [r7, #4] + 80046ec: 6a9b ldr r3, [r3, #40] ; 0x28 (READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != RCC_OscInitStruct->PLL.PLLN) || - 800416a: 429a cmp r2, r3 - 800416c: d106 bne.n 800417c + 80046ee: 429a cmp r2, r3 + 80046f0: d106 bne.n 8004700 (READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != RCC_OscInitStruct->PLL.PLLQ)) - 800416e: 68fb ldr r3, [r7, #12] - 8004170: f003 6270 and.w r2, r3, #251658240 ; 0xf000000 - 8004174: 687b ldr r3, [r7, #4] - 8004176: 6adb ldr r3, [r3, #44] ; 0x2c + 80046f2: 68fb ldr r3, [r7, #12] + 80046f4: f003 6270 and.w r2, r3, #251658240 ; 0xf000000 + 80046f8: 687b ldr r3, [r7, #4] + 80046fa: 6adb ldr r3, [r3, #44] ; 0x2c (READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != RCC_OscInitStruct->PLL.PLLP) || - 8004178: 429a cmp r2, r3 - 800417a: d001 beq.n 8004180 + 80046fc: 429a cmp r2, r3 + 80046fe: d001 beq.n 8004704 { return HAL_ERROR; - 800417c: 2301 movs r3, #1 - 800417e: e000 b.n 8004182 + 8004700: 2301 movs r3, #1 + 8004702: e000 b.n 8004706 } } } } return HAL_OK; - 8004180: 2300 movs r3, #0 + 8004704: 2300 movs r3, #0 } - 8004182: 4618 mov r0, r3 - 8004184: 3718 adds r7, #24 - 8004186: 46bd mov sp, r7 - 8004188: bd80 pop {r7, pc} - 800418a: bf00 nop - 800418c: 40007000 .word 0x40007000 - 8004190: 40023800 .word 0x40023800 - 8004194: 42470060 .word 0x42470060 + 8004706: 4618 mov r0, r3 + 8004708: 3718 adds r7, #24 + 800470a: 46bd mov sp, r7 + 800470c: bd80 pop {r7, pc} + 800470e: bf00 nop + 8004710: 40007000 .word 0x40007000 + 8004714: 40023800 .word 0x40023800 + 8004718: 42470060 .word 0x42470060 -08004198 : +0800471c : * 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 None */ HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency) { - 8004198: b580 push {r7, lr} - 800419a: b084 sub sp, #16 - 800419c: af00 add r7, sp, #0 - 800419e: 6078 str r0, [r7, #4] - 80041a0: 6039 str r1, [r7, #0] + 800471c: b580 push {r7, lr} + 800471e: b084 sub sp, #16 + 8004720: af00 add r7, sp, #0 + 8004722: 6078 str r0, [r7, #4] + 8004724: 6039 str r1, [r7, #0] uint32_t tickstart; /* Check Null pointer */ if(RCC_ClkInitStruct == NULL) - 80041a2: 687b ldr r3, [r7, #4] - 80041a4: 2b00 cmp r3, #0 - 80041a6: d101 bne.n 80041ac + 8004726: 687b ldr r3, [r7, #4] + 8004728: 2b00 cmp r3, #0 + 800472a: d101 bne.n 8004730 { return HAL_ERROR; - 80041a8: 2301 movs r3, #1 - 80041aa: e0cc b.n 8004346 + 800472c: 2301 movs r3, #1 + 800472e: e0cc b.n 80048ca /* 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()) - 80041ac: 4b68 ldr r3, [pc, #416] ; (8004350 ) - 80041ae: 681b ldr r3, [r3, #0] - 80041b0: f003 030f and.w r3, r3, #15 - 80041b4: 683a ldr r2, [r7, #0] - 80041b6: 429a cmp r2, r3 - 80041b8: d90c bls.n 80041d4 + 8004730: 4b68 ldr r3, [pc, #416] ; (80048d4 ) + 8004732: 681b ldr r3, [r3, #0] + 8004734: f003 030f and.w r3, r3, #15 + 8004738: 683a ldr r2, [r7, #0] + 800473a: 429a cmp r2, r3 + 800473c: d90c bls.n 8004758 { /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ __HAL_FLASH_SET_LATENCY(FLatency); - 80041ba: 4b65 ldr r3, [pc, #404] ; (8004350 ) - 80041bc: 683a ldr r2, [r7, #0] - 80041be: b2d2 uxtb r2, r2 - 80041c0: 701a strb r2, [r3, #0] + 800473e: 4b65 ldr r3, [pc, #404] ; (80048d4 ) + 8004740: 683a ldr r2, [r7, #0] + 8004742: b2d2 uxtb r2, r2 + 8004744: 701a strb r2, [r3, #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) - 80041c2: 4b63 ldr r3, [pc, #396] ; (8004350 ) - 80041c4: 681b ldr r3, [r3, #0] - 80041c6: f003 030f and.w r3, r3, #15 - 80041ca: 683a ldr r2, [r7, #0] - 80041cc: 429a cmp r2, r3 - 80041ce: d001 beq.n 80041d4 + 8004746: 4b63 ldr r3, [pc, #396] ; (80048d4 ) + 8004748: 681b ldr r3, [r3, #0] + 800474a: f003 030f and.w r3, r3, #15 + 800474e: 683a ldr r2, [r7, #0] + 8004750: 429a cmp r2, r3 + 8004752: d001 beq.n 8004758 { return HAL_ERROR; - 80041d0: 2301 movs r3, #1 - 80041d2: e0b8 b.n 8004346 + 8004754: 2301 movs r3, #1 + 8004756: e0b8 b.n 80048ca } } /*-------------------------- HCLK Configuration --------------------------*/ if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) - 80041d4: 687b ldr r3, [r7, #4] - 80041d6: 681b ldr r3, [r3, #0] - 80041d8: f003 0302 and.w r3, r3, #2 - 80041dc: 2b00 cmp r3, #0 - 80041de: d020 beq.n 8004222 + 8004758: 687b ldr r3, [r7, #4] + 800475a: 681b ldr r3, [r3, #0] + 800475c: f003 0302 and.w r3, r3, #2 + 8004760: 2b00 cmp r3, #0 + 8004762: d020 beq.n 80047a6 { /* Set the highest APBx dividers in order to ensure that we do not go through a non-spec phase whatever we decrease or increase HCLK. */ if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) - 80041e0: 687b ldr r3, [r7, #4] - 80041e2: 681b ldr r3, [r3, #0] - 80041e4: f003 0304 and.w r3, r3, #4 - 80041e8: 2b00 cmp r3, #0 - 80041ea: d005 beq.n 80041f8 + 8004764: 687b ldr r3, [r7, #4] + 8004766: 681b ldr r3, [r3, #0] + 8004768: f003 0304 and.w r3, r3, #4 + 800476c: 2b00 cmp r3, #0 + 800476e: d005 beq.n 800477c { MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16); - 80041ec: 4b59 ldr r3, [pc, #356] ; (8004354 ) - 80041ee: 689b ldr r3, [r3, #8] - 80041f0: 4a58 ldr r2, [pc, #352] ; (8004354 ) - 80041f2: f443 53e0 orr.w r3, r3, #7168 ; 0x1c00 - 80041f6: 6093 str r3, [r2, #8] + 8004770: 4b59 ldr r3, [pc, #356] ; (80048d8 ) + 8004772: 689b ldr r3, [r3, #8] + 8004774: 4a58 ldr r2, [pc, #352] ; (80048d8 ) + 8004776: f443 53e0 orr.w r3, r3, #7168 ; 0x1c00 + 800477a: 6093 str r3, [r2, #8] } if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) - 80041f8: 687b ldr r3, [r7, #4] - 80041fa: 681b ldr r3, [r3, #0] - 80041fc: f003 0308 and.w r3, r3, #8 - 8004200: 2b00 cmp r3, #0 - 8004202: d005 beq.n 8004210 + 800477c: 687b ldr r3, [r7, #4] + 800477e: 681b ldr r3, [r3, #0] + 8004780: f003 0308 and.w r3, r3, #8 + 8004784: 2b00 cmp r3, #0 + 8004786: d005 beq.n 8004794 { MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, (RCC_HCLK_DIV16 << 3)); - 8004204: 4b53 ldr r3, [pc, #332] ; (8004354 ) - 8004206: 689b ldr r3, [r3, #8] - 8004208: 4a52 ldr r2, [pc, #328] ; (8004354 ) - 800420a: f443 4360 orr.w r3, r3, #57344 ; 0xe000 - 800420e: 6093 str r3, [r2, #8] + 8004788: 4b53 ldr r3, [pc, #332] ; (80048d8 ) + 800478a: 689b ldr r3, [r3, #8] + 800478c: 4a52 ldr r2, [pc, #328] ; (80048d8 ) + 800478e: f443 4360 orr.w r3, r3, #57344 ; 0xe000 + 8004792: 6093 str r3, [r2, #8] } assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); - 8004210: 4b50 ldr r3, [pc, #320] ; (8004354 ) - 8004212: 689b ldr r3, [r3, #8] - 8004214: f023 02f0 bic.w r2, r3, #240 ; 0xf0 - 8004218: 687b ldr r3, [r7, #4] - 800421a: 689b ldr r3, [r3, #8] - 800421c: 494d ldr r1, [pc, #308] ; (8004354 ) - 800421e: 4313 orrs r3, r2 - 8004220: 608b str r3, [r1, #8] + 8004794: 4b50 ldr r3, [pc, #320] ; (80048d8 ) + 8004796: 689b ldr r3, [r3, #8] + 8004798: f023 02f0 bic.w r2, r3, #240 ; 0xf0 + 800479c: 687b ldr r3, [r7, #4] + 800479e: 689b ldr r3, [r3, #8] + 80047a0: 494d ldr r1, [pc, #308] ; (80048d8 ) + 80047a2: 4313 orrs r3, r2 + 80047a4: 608b str r3, [r1, #8] } /*------------------------- SYSCLK Configuration ---------------------------*/ if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) - 8004222: 687b ldr r3, [r7, #4] - 8004224: 681b ldr r3, [r3, #0] - 8004226: f003 0301 and.w r3, r3, #1 - 800422a: 2b00 cmp r3, #0 - 800422c: d044 beq.n 80042b8 + 80047a6: 687b ldr r3, [r7, #4] + 80047a8: 681b ldr r3, [r3, #0] + 80047aa: f003 0301 and.w r3, r3, #1 + 80047ae: 2b00 cmp r3, #0 + 80047b0: d044 beq.n 800483c { assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); /* HSE is selected as System Clock Source */ if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) - 800422e: 687b ldr r3, [r7, #4] - 8004230: 685b ldr r3, [r3, #4] - 8004232: 2b01 cmp r3, #1 - 8004234: d107 bne.n 8004246 + 80047b2: 687b ldr r3, [r7, #4] + 80047b4: 685b ldr r3, [r3, #4] + 80047b6: 2b01 cmp r3, #1 + 80047b8: d107 bne.n 80047ca { /* Check the HSE ready flag */ if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) - 8004236: 4b47 ldr r3, [pc, #284] ; (8004354 ) - 8004238: 681b ldr r3, [r3, #0] - 800423a: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 800423e: 2b00 cmp r3, #0 - 8004240: d119 bne.n 8004276 + 80047ba: 4b47 ldr r3, [pc, #284] ; (80048d8 ) + 80047bc: 681b ldr r3, [r3, #0] + 80047be: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 80047c2: 2b00 cmp r3, #0 + 80047c4: d119 bne.n 80047fa { return HAL_ERROR; - 8004242: 2301 movs r3, #1 - 8004244: e07f b.n 8004346 + 80047c6: 2301 movs r3, #1 + 80047c8: e07f b.n 80048ca } } /* PLL is selected as System Clock Source */ else if((RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) || - 8004246: 687b ldr r3, [r7, #4] - 8004248: 685b ldr r3, [r3, #4] - 800424a: 2b02 cmp r3, #2 - 800424c: d003 beq.n 8004256 + 80047ca: 687b ldr r3, [r7, #4] + 80047cc: 685b ldr r3, [r3, #4] + 80047ce: 2b02 cmp r3, #2 + 80047d0: d003 beq.n 80047da (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLRCLK)) - 800424e: 687b ldr r3, [r7, #4] - 8004250: 685b ldr r3, [r3, #4] + 80047d2: 687b ldr r3, [r7, #4] + 80047d4: 685b ldr r3, [r3, #4] else if((RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) || - 8004252: 2b03 cmp r3, #3 - 8004254: d107 bne.n 8004266 + 80047d6: 2b03 cmp r3, #3 + 80047d8: d107 bne.n 80047ea { /* Check the PLL ready flag */ if(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) - 8004256: 4b3f ldr r3, [pc, #252] ; (8004354 ) - 8004258: 681b ldr r3, [r3, #0] - 800425a: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 800425e: 2b00 cmp r3, #0 - 8004260: d109 bne.n 8004276 + 80047da: 4b3f ldr r3, [pc, #252] ; (80048d8 ) + 80047dc: 681b ldr r3, [r3, #0] + 80047de: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 80047e2: 2b00 cmp r3, #0 + 80047e4: d109 bne.n 80047fa { return HAL_ERROR; - 8004262: 2301 movs r3, #1 - 8004264: e06f b.n 8004346 + 80047e6: 2301 movs r3, #1 + 80047e8: e06f b.n 80048ca } /* HSI is selected as System Clock Source */ else { /* Check the HSI ready flag */ if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) - 8004266: 4b3b ldr r3, [pc, #236] ; (8004354 ) - 8004268: 681b ldr r3, [r3, #0] - 800426a: f003 0302 and.w r3, r3, #2 - 800426e: 2b00 cmp r3, #0 - 8004270: d101 bne.n 8004276 + 80047ea: 4b3b ldr r3, [pc, #236] ; (80048d8 ) + 80047ec: 681b ldr r3, [r3, #0] + 80047ee: f003 0302 and.w r3, r3, #2 + 80047f2: 2b00 cmp r3, #0 + 80047f4: d101 bne.n 80047fa { return HAL_ERROR; - 8004272: 2301 movs r3, #1 - 8004274: e067 b.n 8004346 + 80047f6: 2301 movs r3, #1 + 80047f8: e067 b.n 80048ca } } __HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource); - 8004276: 4b37 ldr r3, [pc, #220] ; (8004354 ) - 8004278: 689b ldr r3, [r3, #8] - 800427a: f023 0203 bic.w r2, r3, #3 - 800427e: 687b ldr r3, [r7, #4] - 8004280: 685b ldr r3, [r3, #4] - 8004282: 4934 ldr r1, [pc, #208] ; (8004354 ) - 8004284: 4313 orrs r3, r2 - 8004286: 608b str r3, [r1, #8] + 80047fa: 4b37 ldr r3, [pc, #220] ; (80048d8 ) + 80047fc: 689b ldr r3, [r3, #8] + 80047fe: f023 0203 bic.w r2, r3, #3 + 8004802: 687b ldr r3, [r7, #4] + 8004804: 685b ldr r3, [r3, #4] + 8004806: 4934 ldr r1, [pc, #208] ; (80048d8 ) + 8004808: 4313 orrs r3, r2 + 800480a: 608b str r3, [r1, #8] /* Get Start Tick */ tickstart = HAL_GetTick(); - 8004288: f7fe fe02 bl 8002e90 - 800428c: 60f8 str r0, [r7, #12] + 800480c: f7fe fe02 bl 8003414 + 8004810: 60f8 str r0, [r7, #12] while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) - 800428e: e00a b.n 80042a6 + 8004812: e00a b.n 800482a { if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) - 8004290: f7fe fdfe bl 8002e90 - 8004294: 4602 mov r2, r0 - 8004296: 68fb ldr r3, [r7, #12] - 8004298: 1ad3 subs r3, r2, r3 - 800429a: f241 3288 movw r2, #5000 ; 0x1388 - 800429e: 4293 cmp r3, r2 - 80042a0: d901 bls.n 80042a6 + 8004814: f7fe fdfe bl 8003414 + 8004818: 4602 mov r2, r0 + 800481a: 68fb ldr r3, [r7, #12] + 800481c: 1ad3 subs r3, r2, r3 + 800481e: f241 3288 movw r2, #5000 ; 0x1388 + 8004822: 4293 cmp r3, r2 + 8004824: d901 bls.n 800482a { return HAL_TIMEOUT; - 80042a2: 2303 movs r3, #3 - 80042a4: e04f b.n 8004346 + 8004826: 2303 movs r3, #3 + 8004828: e04f b.n 80048ca while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) - 80042a6: 4b2b ldr r3, [pc, #172] ; (8004354 ) - 80042a8: 689b ldr r3, [r3, #8] - 80042aa: f003 020c and.w r2, r3, #12 - 80042ae: 687b ldr r3, [r7, #4] - 80042b0: 685b ldr r3, [r3, #4] - 80042b2: 009b lsls r3, r3, #2 - 80042b4: 429a cmp r2, r3 - 80042b6: d1eb bne.n 8004290 + 800482a: 4b2b ldr r3, [pc, #172] ; (80048d8 ) + 800482c: 689b ldr r3, [r3, #8] + 800482e: f003 020c and.w r2, r3, #12 + 8004832: 687b ldr r3, [r7, #4] + 8004834: 685b ldr r3, [r3, #4] + 8004836: 009b lsls r3, r3, #2 + 8004838: 429a cmp r2, r3 + 800483a: d1eb bne.n 8004814 } } } /* Decreasing the number of wait states because of lower CPU frequency */ if(FLatency < __HAL_FLASH_GET_LATENCY()) - 80042b8: 4b25 ldr r3, [pc, #148] ; (8004350 ) - 80042ba: 681b ldr r3, [r3, #0] - 80042bc: f003 030f and.w r3, r3, #15 - 80042c0: 683a ldr r2, [r7, #0] - 80042c2: 429a cmp r2, r3 - 80042c4: d20c bcs.n 80042e0 + 800483c: 4b25 ldr r3, [pc, #148] ; (80048d4 ) + 800483e: 681b ldr r3, [r3, #0] + 8004840: f003 030f and.w r3, r3, #15 + 8004844: 683a ldr r2, [r7, #0] + 8004846: 429a cmp r2, r3 + 8004848: d20c bcs.n 8004864 { /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ __HAL_FLASH_SET_LATENCY(FLatency); - 80042c6: 4b22 ldr r3, [pc, #136] ; (8004350 ) - 80042c8: 683a ldr r2, [r7, #0] - 80042ca: b2d2 uxtb r2, r2 - 80042cc: 701a strb r2, [r3, #0] + 800484a: 4b22 ldr r3, [pc, #136] ; (80048d4 ) + 800484c: 683a ldr r2, [r7, #0] + 800484e: b2d2 uxtb r2, r2 + 8004850: 701a strb r2, [r3, #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) - 80042ce: 4b20 ldr r3, [pc, #128] ; (8004350 ) - 80042d0: 681b ldr r3, [r3, #0] - 80042d2: f003 030f and.w r3, r3, #15 - 80042d6: 683a ldr r2, [r7, #0] - 80042d8: 429a cmp r2, r3 - 80042da: d001 beq.n 80042e0 + 8004852: 4b20 ldr r3, [pc, #128] ; (80048d4 ) + 8004854: 681b ldr r3, [r3, #0] + 8004856: f003 030f and.w r3, r3, #15 + 800485a: 683a ldr r2, [r7, #0] + 800485c: 429a cmp r2, r3 + 800485e: d001 beq.n 8004864 { return HAL_ERROR; - 80042dc: 2301 movs r3, #1 - 80042de: e032 b.n 8004346 + 8004860: 2301 movs r3, #1 + 8004862: e032 b.n 80048ca } } /*-------------------------- PCLK1 Configuration ---------------------------*/ if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) - 80042e0: 687b ldr r3, [r7, #4] - 80042e2: 681b ldr r3, [r3, #0] - 80042e4: f003 0304 and.w r3, r3, #4 - 80042e8: 2b00 cmp r3, #0 - 80042ea: d008 beq.n 80042fe + 8004864: 687b ldr r3, [r7, #4] + 8004866: 681b ldr r3, [r3, #0] + 8004868: f003 0304 and.w r3, r3, #4 + 800486c: 2b00 cmp r3, #0 + 800486e: d008 beq.n 8004882 { assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); - 80042ec: 4b19 ldr r3, [pc, #100] ; (8004354 ) - 80042ee: 689b ldr r3, [r3, #8] - 80042f0: f423 52e0 bic.w r2, r3, #7168 ; 0x1c00 - 80042f4: 687b ldr r3, [r7, #4] - 80042f6: 68db ldr r3, [r3, #12] - 80042f8: 4916 ldr r1, [pc, #88] ; (8004354 ) - 80042fa: 4313 orrs r3, r2 - 80042fc: 608b str r3, [r1, #8] + 8004870: 4b19 ldr r3, [pc, #100] ; (80048d8 ) + 8004872: 689b ldr r3, [r3, #8] + 8004874: f423 52e0 bic.w r2, r3, #7168 ; 0x1c00 + 8004878: 687b ldr r3, [r7, #4] + 800487a: 68db ldr r3, [r3, #12] + 800487c: 4916 ldr r1, [pc, #88] ; (80048d8 ) + 800487e: 4313 orrs r3, r2 + 8004880: 608b str r3, [r1, #8] } /*-------------------------- PCLK2 Configuration ---------------------------*/ if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) - 80042fe: 687b ldr r3, [r7, #4] - 8004300: 681b ldr r3, [r3, #0] - 8004302: f003 0308 and.w r3, r3, #8 - 8004306: 2b00 cmp r3, #0 - 8004308: d009 beq.n 800431e + 8004882: 687b ldr r3, [r7, #4] + 8004884: 681b ldr r3, [r3, #0] + 8004886: f003 0308 and.w r3, r3, #8 + 800488a: 2b00 cmp r3, #0 + 800488c: d009 beq.n 80048a2 { assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider)); MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3U)); - 800430a: 4b12 ldr r3, [pc, #72] ; (8004354 ) - 800430c: 689b ldr r3, [r3, #8] - 800430e: f423 4260 bic.w r2, r3, #57344 ; 0xe000 - 8004312: 687b ldr r3, [r7, #4] - 8004314: 691b ldr r3, [r3, #16] - 8004316: 00db lsls r3, r3, #3 - 8004318: 490e ldr r1, [pc, #56] ; (8004354 ) - 800431a: 4313 orrs r3, r2 - 800431c: 608b str r3, [r1, #8] + 800488e: 4b12 ldr r3, [pc, #72] ; (80048d8 ) + 8004890: 689b ldr r3, [r3, #8] + 8004892: f423 4260 bic.w r2, r3, #57344 ; 0xe000 + 8004896: 687b ldr r3, [r7, #4] + 8004898: 691b ldr r3, [r3, #16] + 800489a: 00db lsls r3, r3, #3 + 800489c: 490e ldr r1, [pc, #56] ; (80048d8 ) + 800489e: 4313 orrs r3, r2 + 80048a0: 608b str r3, [r1, #8] } /* Update the SystemCoreClock global variable */ SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE)>> RCC_CFGR_HPRE_Pos]; - 800431e: f000 f821 bl 8004364 - 8004322: 4601 mov r1, r0 - 8004324: 4b0b ldr r3, [pc, #44] ; (8004354 ) - 8004326: 689b ldr r3, [r3, #8] - 8004328: 091b lsrs r3, r3, #4 - 800432a: f003 030f and.w r3, r3, #15 - 800432e: 4a0a ldr r2, [pc, #40] ; (8004358 ) - 8004330: 5cd3 ldrb r3, [r2, r3] - 8004332: fa21 f303 lsr.w r3, r1, r3 - 8004336: 4a09 ldr r2, [pc, #36] ; (800435c ) - 8004338: 6013 str r3, [r2, #0] + 80048a2: f000 f821 bl 80048e8 + 80048a6: 4601 mov r1, r0 + 80048a8: 4b0b ldr r3, [pc, #44] ; (80048d8 ) + 80048aa: 689b ldr r3, [r3, #8] + 80048ac: 091b lsrs r3, r3, #4 + 80048ae: f003 030f and.w r3, r3, #15 + 80048b2: 4a0a ldr r2, [pc, #40] ; (80048dc ) + 80048b4: 5cd3 ldrb r3, [r2, r3] + 80048b6: fa21 f303 lsr.w r3, r1, r3 + 80048ba: 4a09 ldr r2, [pc, #36] ; (80048e0 ) + 80048bc: 6013 str r3, [r2, #0] /* Configure the source of time base considering new system clocks settings */ HAL_InitTick (uwTickPrio); - 800433a: 4b09 ldr r3, [pc, #36] ; (8004360 ) - 800433c: 681b ldr r3, [r3, #0] - 800433e: 4618 mov r0, r3 - 8004340: f7fe fd62 bl 8002e08 + 80048be: 4b09 ldr r3, [pc, #36] ; (80048e4 ) + 80048c0: 681b ldr r3, [r3, #0] + 80048c2: 4618 mov r0, r3 + 80048c4: f7fe fd62 bl 800338c return HAL_OK; - 8004344: 2300 movs r3, #0 + 80048c8: 2300 movs r3, #0 } - 8004346: 4618 mov r0, r3 - 8004348: 3710 adds r7, #16 - 800434a: 46bd mov sp, r7 - 800434c: bd80 pop {r7, pc} - 800434e: bf00 nop - 8004350: 40023c00 .word 0x40023c00 - 8004354: 40023800 .word 0x40023800 - 8004358: 080053a4 .word 0x080053a4 - 800435c: 20000004 .word 0x20000004 - 8004360: 20000008 .word 0x20000008 + 80048ca: 4618 mov r0, r3 + 80048cc: 3710 adds r7, #16 + 80048ce: 46bd mov sp, r7 + 80048d0: bd80 pop {r7, pc} + 80048d2: bf00 nop + 80048d4: 40023c00 .word 0x40023c00 + 80048d8: 40023800 .word 0x40023800 + 80048dc: 08005928 .word 0x08005928 + 80048e0: 20000004 .word 0x20000004 + 80048e4: 20000008 .word 0x20000008 -08004364 : +080048e8 : * * * @retval SYSCLK frequency */ __weak uint32_t HAL_RCC_GetSysClockFreq(void) { - 8004364: b5f0 push {r4, r5, r6, r7, lr} - 8004366: b085 sub sp, #20 - 8004368: af00 add r7, sp, #0 + 80048e8: b5f0 push {r4, r5, r6, r7, lr} + 80048ea: b085 sub sp, #20 + 80048ec: af00 add r7, sp, #0 uint32_t pllm = 0U, pllvco = 0U, pllp = 0U; - 800436a: 2300 movs r3, #0 - 800436c: 607b str r3, [r7, #4] - 800436e: 2300 movs r3, #0 - 8004370: 60fb str r3, [r7, #12] - 8004372: 2300 movs r3, #0 - 8004374: 603b str r3, [r7, #0] + 80048ee: 2300 movs r3, #0 + 80048f0: 607b str r3, [r7, #4] + 80048f2: 2300 movs r3, #0 + 80048f4: 60fb str r3, [r7, #12] + 80048f6: 2300 movs r3, #0 + 80048f8: 603b str r3, [r7, #0] uint32_t sysclockfreq = 0U; - 8004376: 2300 movs r3, #0 - 8004378: 60bb str r3, [r7, #8] + 80048fa: 2300 movs r3, #0 + 80048fc: 60bb str r3, [r7, #8] /* Get SYSCLK source -------------------------------------------------------*/ switch (RCC->CFGR & RCC_CFGR_SWS) - 800437a: 4b63 ldr r3, [pc, #396] ; (8004508 ) - 800437c: 689b ldr r3, [r3, #8] - 800437e: f003 030c and.w r3, r3, #12 - 8004382: 2b04 cmp r3, #4 - 8004384: d007 beq.n 8004396 - 8004386: 2b08 cmp r3, #8 - 8004388: d008 beq.n 800439c - 800438a: 2b00 cmp r3, #0 - 800438c: f040 80b4 bne.w 80044f8 + 80048fe: 4b63 ldr r3, [pc, #396] ; (8004a8c ) + 8004900: 689b ldr r3, [r3, #8] + 8004902: f003 030c and.w r3, r3, #12 + 8004906: 2b04 cmp r3, #4 + 8004908: d007 beq.n 800491a + 800490a: 2b08 cmp r3, #8 + 800490c: d008 beq.n 8004920 + 800490e: 2b00 cmp r3, #0 + 8004910: f040 80b4 bne.w 8004a7c { case RCC_CFGR_SWS_HSI: /* HSI used as system clock source */ { sysclockfreq = HSI_VALUE; - 8004390: 4b5e ldr r3, [pc, #376] ; (800450c ) - 8004392: 60bb str r3, [r7, #8] + 8004914: 4b5e ldr r3, [pc, #376] ; (8004a90 ) + 8004916: 60bb str r3, [r7, #8] break; - 8004394: e0b3 b.n 80044fe + 8004918: e0b3 b.n 8004a82 } case RCC_CFGR_SWS_HSE: /* HSE used as system clock source */ { sysclockfreq = HSE_VALUE; - 8004396: 4b5e ldr r3, [pc, #376] ; (8004510 ) - 8004398: 60bb str r3, [r7, #8] + 800491a: 4b5e ldr r3, [pc, #376] ; (8004a94 ) + 800491c: 60bb str r3, [r7, #8] break; - 800439a: e0b0 b.n 80044fe + 800491e: e0b0 b.n 8004a82 } case RCC_CFGR_SWS_PLL: /* PLL used as system clock source */ { /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLLM) * PLLN SYSCLK = PLL_VCO / PLLP */ pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM; - 800439c: 4b5a ldr r3, [pc, #360] ; (8004508 ) - 800439e: 685b ldr r3, [r3, #4] - 80043a0: f003 033f and.w r3, r3, #63 ; 0x3f - 80043a4: 607b str r3, [r7, #4] + 8004920: 4b5a ldr r3, [pc, #360] ; (8004a8c ) + 8004922: 685b ldr r3, [r3, #4] + 8004924: f003 033f and.w r3, r3, #63 ; 0x3f + 8004928: 607b str r3, [r7, #4] if(__HAL_RCC_GET_PLL_OSCSOURCE() != RCC_PLLSOURCE_HSI) - 80043a6: 4b58 ldr r3, [pc, #352] ; (8004508 ) - 80043a8: 685b ldr r3, [r3, #4] - 80043aa: f403 0380 and.w r3, r3, #4194304 ; 0x400000 - 80043ae: 2b00 cmp r3, #0 - 80043b0: d04a beq.n 8004448 + 800492a: 4b58 ldr r3, [pc, #352] ; (8004a8c ) + 800492c: 685b ldr r3, [r3, #4] + 800492e: f403 0380 and.w r3, r3, #4194304 ; 0x400000 + 8004932: 2b00 cmp r3, #0 + 8004934: d04a beq.n 80049cc { /* HSE used as PLL clock source */ pllvco = (uint32_t) ((((uint64_t) HSE_VALUE * ((uint64_t) ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)))) / (uint64_t)pllm); - 80043b2: 4b55 ldr r3, [pc, #340] ; (8004508 ) - 80043b4: 685b ldr r3, [r3, #4] - 80043b6: 099b lsrs r3, r3, #6 - 80043b8: f04f 0400 mov.w r4, #0 - 80043bc: f240 11ff movw r1, #511 ; 0x1ff - 80043c0: f04f 0200 mov.w r2, #0 - 80043c4: ea03 0501 and.w r5, r3, r1 - 80043c8: ea04 0602 and.w r6, r4, r2 - 80043cc: 4629 mov r1, r5 - 80043ce: 4632 mov r2, r6 - 80043d0: f04f 0300 mov.w r3, #0 - 80043d4: f04f 0400 mov.w r4, #0 - 80043d8: 0154 lsls r4, r2, #5 - 80043da: ea44 64d1 orr.w r4, r4, r1, lsr #27 - 80043de: 014b lsls r3, r1, #5 - 80043e0: 4619 mov r1, r3 - 80043e2: 4622 mov r2, r4 - 80043e4: 1b49 subs r1, r1, r5 - 80043e6: eb62 0206 sbc.w r2, r2, r6 - 80043ea: f04f 0300 mov.w r3, #0 - 80043ee: f04f 0400 mov.w r4, #0 - 80043f2: 0194 lsls r4, r2, #6 - 80043f4: ea44 6491 orr.w r4, r4, r1, lsr #26 - 80043f8: 018b lsls r3, r1, #6 - 80043fa: 1a5b subs r3, r3, r1 - 80043fc: eb64 0402 sbc.w r4, r4, r2 - 8004400: f04f 0100 mov.w r1, #0 - 8004404: f04f 0200 mov.w r2, #0 - 8004408: 00e2 lsls r2, r4, #3 - 800440a: ea42 7253 orr.w r2, r2, r3, lsr #29 - 800440e: 00d9 lsls r1, r3, #3 - 8004410: 460b mov r3, r1 - 8004412: 4614 mov r4, r2 - 8004414: 195b adds r3, r3, r5 - 8004416: eb44 0406 adc.w r4, r4, r6 - 800441a: f04f 0100 mov.w r1, #0 - 800441e: f04f 0200 mov.w r2, #0 - 8004422: 0262 lsls r2, r4, #9 - 8004424: ea42 52d3 orr.w r2, r2, r3, lsr #23 - 8004428: 0259 lsls r1, r3, #9 - 800442a: 460b mov r3, r1 - 800442c: 4614 mov r4, r2 - 800442e: 4618 mov r0, r3 - 8004430: 4621 mov r1, r4 - 8004432: 687b ldr r3, [r7, #4] - 8004434: f04f 0400 mov.w r4, #0 - 8004438: 461a mov r2, r3 - 800443a: 4623 mov r3, r4 - 800443c: f7fc fac6 bl 80009cc <__aeabi_uldivmod> - 8004440: 4603 mov r3, r0 - 8004442: 460c mov r4, r1 - 8004444: 60fb str r3, [r7, #12] - 8004446: e049 b.n 80044dc + 8004936: 4b55 ldr r3, [pc, #340] ; (8004a8c ) + 8004938: 685b ldr r3, [r3, #4] + 800493a: 099b lsrs r3, r3, #6 + 800493c: f04f 0400 mov.w r4, #0 + 8004940: f240 11ff movw r1, #511 ; 0x1ff + 8004944: f04f 0200 mov.w r2, #0 + 8004948: ea03 0501 and.w r5, r3, r1 + 800494c: ea04 0602 and.w r6, r4, r2 + 8004950: 4629 mov r1, r5 + 8004952: 4632 mov r2, r6 + 8004954: f04f 0300 mov.w r3, #0 + 8004958: f04f 0400 mov.w r4, #0 + 800495c: 0154 lsls r4, r2, #5 + 800495e: ea44 64d1 orr.w r4, r4, r1, lsr #27 + 8004962: 014b lsls r3, r1, #5 + 8004964: 4619 mov r1, r3 + 8004966: 4622 mov r2, r4 + 8004968: 1b49 subs r1, r1, r5 + 800496a: eb62 0206 sbc.w r2, r2, r6 + 800496e: f04f 0300 mov.w r3, #0 + 8004972: f04f 0400 mov.w r4, #0 + 8004976: 0194 lsls r4, r2, #6 + 8004978: ea44 6491 orr.w r4, r4, r1, lsr #26 + 800497c: 018b lsls r3, r1, #6 + 800497e: 1a5b subs r3, r3, r1 + 8004980: eb64 0402 sbc.w r4, r4, r2 + 8004984: f04f 0100 mov.w r1, #0 + 8004988: f04f 0200 mov.w r2, #0 + 800498c: 00e2 lsls r2, r4, #3 + 800498e: ea42 7253 orr.w r2, r2, r3, lsr #29 + 8004992: 00d9 lsls r1, r3, #3 + 8004994: 460b mov r3, r1 + 8004996: 4614 mov r4, r2 + 8004998: 195b adds r3, r3, r5 + 800499a: eb44 0406 adc.w r4, r4, r6 + 800499e: f04f 0100 mov.w r1, #0 + 80049a2: f04f 0200 mov.w r2, #0 + 80049a6: 0262 lsls r2, r4, #9 + 80049a8: ea42 52d3 orr.w r2, r2, r3, lsr #23 + 80049ac: 0259 lsls r1, r3, #9 + 80049ae: 460b mov r3, r1 + 80049b0: 4614 mov r4, r2 + 80049b2: 4618 mov r0, r3 + 80049b4: 4621 mov r1, r4 + 80049b6: 687b ldr r3, [r7, #4] + 80049b8: f04f 0400 mov.w r4, #0 + 80049bc: 461a mov r2, r3 + 80049be: 4623 mov r3, r4 + 80049c0: f7fc f804 bl 80009cc <__aeabi_uldivmod> + 80049c4: 4603 mov r3, r0 + 80049c6: 460c mov r4, r1 + 80049c8: 60fb str r3, [r7, #12] + 80049ca: e049 b.n 8004a60 } else { /* HSI used as PLL clock source */ pllvco = (uint32_t) ((((uint64_t) HSI_VALUE * ((uint64_t) ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)))) / (uint64_t)pllm); - 8004448: 4b2f ldr r3, [pc, #188] ; (8004508 ) - 800444a: 685b ldr r3, [r3, #4] - 800444c: 099b lsrs r3, r3, #6 - 800444e: f04f 0400 mov.w r4, #0 - 8004452: f240 11ff movw r1, #511 ; 0x1ff - 8004456: f04f 0200 mov.w r2, #0 - 800445a: ea03 0501 and.w r5, r3, r1 - 800445e: ea04 0602 and.w r6, r4, r2 - 8004462: 4629 mov r1, r5 - 8004464: 4632 mov r2, r6 - 8004466: f04f 0300 mov.w r3, #0 - 800446a: f04f 0400 mov.w r4, #0 - 800446e: 0154 lsls r4, r2, #5 - 8004470: ea44 64d1 orr.w r4, r4, r1, lsr #27 - 8004474: 014b lsls r3, r1, #5 - 8004476: 4619 mov r1, r3 - 8004478: 4622 mov r2, r4 - 800447a: 1b49 subs r1, r1, r5 - 800447c: eb62 0206 sbc.w r2, r2, r6 - 8004480: f04f 0300 mov.w r3, #0 - 8004484: f04f 0400 mov.w r4, #0 - 8004488: 0194 lsls r4, r2, #6 - 800448a: ea44 6491 orr.w r4, r4, r1, lsr #26 - 800448e: 018b lsls r3, r1, #6 - 8004490: 1a5b subs r3, r3, r1 - 8004492: eb64 0402 sbc.w r4, r4, r2 - 8004496: f04f 0100 mov.w r1, #0 - 800449a: f04f 0200 mov.w r2, #0 - 800449e: 00e2 lsls r2, r4, #3 - 80044a0: ea42 7253 orr.w r2, r2, r3, lsr #29 - 80044a4: 00d9 lsls r1, r3, #3 - 80044a6: 460b mov r3, r1 - 80044a8: 4614 mov r4, r2 - 80044aa: 195b adds r3, r3, r5 - 80044ac: eb44 0406 adc.w r4, r4, r6 - 80044b0: f04f 0100 mov.w r1, #0 - 80044b4: f04f 0200 mov.w r2, #0 - 80044b8: 02a2 lsls r2, r4, #10 - 80044ba: ea42 5293 orr.w r2, r2, r3, lsr #22 - 80044be: 0299 lsls r1, r3, #10 - 80044c0: 460b mov r3, r1 - 80044c2: 4614 mov r4, r2 - 80044c4: 4618 mov r0, r3 - 80044c6: 4621 mov r1, r4 - 80044c8: 687b ldr r3, [r7, #4] - 80044ca: f04f 0400 mov.w r4, #0 - 80044ce: 461a mov r2, r3 - 80044d0: 4623 mov r3, r4 - 80044d2: f7fc fa7b bl 80009cc <__aeabi_uldivmod> - 80044d6: 4603 mov r3, r0 - 80044d8: 460c mov r4, r1 - 80044da: 60fb str r3, [r7, #12] + 80049cc: 4b2f ldr r3, [pc, #188] ; (8004a8c ) + 80049ce: 685b ldr r3, [r3, #4] + 80049d0: 099b lsrs r3, r3, #6 + 80049d2: f04f 0400 mov.w r4, #0 + 80049d6: f240 11ff movw r1, #511 ; 0x1ff + 80049da: f04f 0200 mov.w r2, #0 + 80049de: ea03 0501 and.w r5, r3, r1 + 80049e2: ea04 0602 and.w r6, r4, r2 + 80049e6: 4629 mov r1, r5 + 80049e8: 4632 mov r2, r6 + 80049ea: f04f 0300 mov.w r3, #0 + 80049ee: f04f 0400 mov.w r4, #0 + 80049f2: 0154 lsls r4, r2, #5 + 80049f4: ea44 64d1 orr.w r4, r4, r1, lsr #27 + 80049f8: 014b lsls r3, r1, #5 + 80049fa: 4619 mov r1, r3 + 80049fc: 4622 mov r2, r4 + 80049fe: 1b49 subs r1, r1, r5 + 8004a00: eb62 0206 sbc.w r2, r2, r6 + 8004a04: f04f 0300 mov.w r3, #0 + 8004a08: f04f 0400 mov.w r4, #0 + 8004a0c: 0194 lsls r4, r2, #6 + 8004a0e: ea44 6491 orr.w r4, r4, r1, lsr #26 + 8004a12: 018b lsls r3, r1, #6 + 8004a14: 1a5b subs r3, r3, r1 + 8004a16: eb64 0402 sbc.w r4, r4, r2 + 8004a1a: f04f 0100 mov.w r1, #0 + 8004a1e: f04f 0200 mov.w r2, #0 + 8004a22: 00e2 lsls r2, r4, #3 + 8004a24: ea42 7253 orr.w r2, r2, r3, lsr #29 + 8004a28: 00d9 lsls r1, r3, #3 + 8004a2a: 460b mov r3, r1 + 8004a2c: 4614 mov r4, r2 + 8004a2e: 195b adds r3, r3, r5 + 8004a30: eb44 0406 adc.w r4, r4, r6 + 8004a34: f04f 0100 mov.w r1, #0 + 8004a38: f04f 0200 mov.w r2, #0 + 8004a3c: 02a2 lsls r2, r4, #10 + 8004a3e: ea42 5293 orr.w r2, r2, r3, lsr #22 + 8004a42: 0299 lsls r1, r3, #10 + 8004a44: 460b mov r3, r1 + 8004a46: 4614 mov r4, r2 + 8004a48: 4618 mov r0, r3 + 8004a4a: 4621 mov r1, r4 + 8004a4c: 687b ldr r3, [r7, #4] + 8004a4e: f04f 0400 mov.w r4, #0 + 8004a52: 461a mov r2, r3 + 8004a54: 4623 mov r3, r4 + 8004a56: f7fb ffb9 bl 80009cc <__aeabi_uldivmod> + 8004a5a: 4603 mov r3, r0 + 8004a5c: 460c mov r4, r1 + 8004a5e: 60fb str r3, [r7, #12] } pllp = ((((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >> RCC_PLLCFGR_PLLP_Pos) + 1U) *2U); - 80044dc: 4b0a ldr r3, [pc, #40] ; (8004508 ) - 80044de: 685b ldr r3, [r3, #4] - 80044e0: 0c1b lsrs r3, r3, #16 - 80044e2: f003 0303 and.w r3, r3, #3 - 80044e6: 3301 adds r3, #1 - 80044e8: 005b lsls r3, r3, #1 - 80044ea: 603b str r3, [r7, #0] + 8004a60: 4b0a ldr r3, [pc, #40] ; (8004a8c ) + 8004a62: 685b ldr r3, [r3, #4] + 8004a64: 0c1b lsrs r3, r3, #16 + 8004a66: f003 0303 and.w r3, r3, #3 + 8004a6a: 3301 adds r3, #1 + 8004a6c: 005b lsls r3, r3, #1 + 8004a6e: 603b str r3, [r7, #0] sysclockfreq = pllvco/pllp; - 80044ec: 68fa ldr r2, [r7, #12] - 80044ee: 683b ldr r3, [r7, #0] - 80044f0: fbb2 f3f3 udiv r3, r2, r3 - 80044f4: 60bb str r3, [r7, #8] + 8004a70: 68fa ldr r2, [r7, #12] + 8004a72: 683b ldr r3, [r7, #0] + 8004a74: fbb2 f3f3 udiv r3, r2, r3 + 8004a78: 60bb str r3, [r7, #8] break; - 80044f6: e002 b.n 80044fe + 8004a7a: e002 b.n 8004a82 } default: { sysclockfreq = HSI_VALUE; - 80044f8: 4b04 ldr r3, [pc, #16] ; (800450c ) - 80044fa: 60bb str r3, [r7, #8] + 8004a7c: 4b04 ldr r3, [pc, #16] ; (8004a90 ) + 8004a7e: 60bb str r3, [r7, #8] break; - 80044fc: bf00 nop + 8004a80: bf00 nop } } return sysclockfreq; - 80044fe: 68bb ldr r3, [r7, #8] + 8004a82: 68bb ldr r3, [r7, #8] } - 8004500: 4618 mov r0, r3 - 8004502: 3714 adds r7, #20 - 8004504: 46bd mov sp, r7 - 8004506: bdf0 pop {r4, r5, r6, r7, pc} - 8004508: 40023800 .word 0x40023800 - 800450c: 00f42400 .word 0x00f42400 - 8004510: 007a1200 .word 0x007a1200 + 8004a84: 4618 mov r0, r3 + 8004a86: 3714 adds r7, #20 + 8004a88: 46bd mov sp, r7 + 8004a8a: bdf0 pop {r4, r5, r6, r7, pc} + 8004a8c: 40023800 .word 0x40023800 + 8004a90: 00f42400 .word 0x00f42400 + 8004a94: 007a1200 .word 0x007a1200 -08004514 : +08004a98 : * @param hspi pointer to a SPI_HandleTypeDef structure that contains * the configuration information for SPI module. * @retval HAL status */ HAL_StatusTypeDef HAL_SPI_Init(SPI_HandleTypeDef *hspi) { - 8004514: b580 push {r7, lr} - 8004516: b082 sub sp, #8 - 8004518: af00 add r7, sp, #0 - 800451a: 6078 str r0, [r7, #4] + 8004a98: b580 push {r7, lr} + 8004a9a: b082 sub sp, #8 + 8004a9c: af00 add r7, sp, #0 + 8004a9e: 6078 str r0, [r7, #4] /* Check the SPI handle allocation */ if (hspi == NULL) - 800451c: 687b ldr r3, [r7, #4] - 800451e: 2b00 cmp r3, #0 - 8004520: d101 bne.n 8004526 + 8004aa0: 687b ldr r3, [r7, #4] + 8004aa2: 2b00 cmp r3, #0 + 8004aa4: d101 bne.n 8004aaa { return HAL_ERROR; - 8004522: 2301 movs r3, #1 - 8004524: e056 b.n 80045d4 + 8004aa6: 2301 movs r3, #1 + 8004aa8: e056 b.n 8004b58 if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) { assert_param(IS_SPI_CRC_POLYNOMIAL(hspi->Init.CRCPolynomial)); } #else hspi->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; - 8004526: 687b ldr r3, [r7, #4] - 8004528: 2200 movs r2, #0 - 800452a: 629a str r2, [r3, #40] ; 0x28 + 8004aaa: 687b ldr r3, [r7, #4] + 8004aac: 2200 movs r2, #0 + 8004aae: 629a str r2, [r3, #40] ; 0x28 #endif /* USE_SPI_CRC */ if (hspi->State == HAL_SPI_STATE_RESET) - 800452c: 687b ldr r3, [r7, #4] - 800452e: f893 3051 ldrb.w r3, [r3, #81] ; 0x51 - 8004532: b2db uxtb r3, r3 - 8004534: 2b00 cmp r3, #0 - 8004536: d106 bne.n 8004546 + 8004ab0: 687b ldr r3, [r7, #4] + 8004ab2: f893 3051 ldrb.w r3, [r3, #81] ; 0x51 + 8004ab6: b2db uxtb r3, r3 + 8004ab8: 2b00 cmp r3, #0 + 8004aba: d106 bne.n 8004aca { /* Allocate lock resource and initialize it */ hspi->Lock = HAL_UNLOCKED; - 8004538: 687b ldr r3, [r7, #4] - 800453a: 2200 movs r2, #0 - 800453c: f883 2050 strb.w r2, [r3, #80] ; 0x50 + 8004abc: 687b ldr r3, [r7, #4] + 8004abe: 2200 movs r2, #0 + 8004ac0: f883 2050 strb.w r2, [r3, #80] ; 0x50 /* Init the low level hardware : GPIO, CLOCK, NVIC... */ hspi->MspInitCallback(hspi); #else /* Init the low level hardware : GPIO, CLOCK, NVIC... */ HAL_SPI_MspInit(hspi); - 8004540: 6878 ldr r0, [r7, #4] - 8004542: f7fe fadb bl 8002afc + 8004ac4: 6878 ldr r0, [r7, #4] + 8004ac6: f7fe fae1 bl 800308c #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ } hspi->State = HAL_SPI_STATE_BUSY; - 8004546: 687b ldr r3, [r7, #4] - 8004548: 2202 movs r2, #2 - 800454a: f883 2051 strb.w r2, [r3, #81] ; 0x51 + 8004aca: 687b ldr r3, [r7, #4] + 8004acc: 2202 movs r2, #2 + 8004ace: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Disable the selected SPI peripheral */ __HAL_SPI_DISABLE(hspi); - 800454e: 687b ldr r3, [r7, #4] - 8004550: 681b ldr r3, [r3, #0] - 8004552: 681a ldr r2, [r3, #0] - 8004554: 687b ldr r3, [r7, #4] - 8004556: 681b ldr r3, [r3, #0] - 8004558: f022 0240 bic.w r2, r2, #64 ; 0x40 - 800455c: 601a str r2, [r3, #0] + 8004ad2: 687b ldr r3, [r7, #4] + 8004ad4: 681b ldr r3, [r3, #0] + 8004ad6: 681a ldr r2, [r3, #0] + 8004ad8: 687b ldr r3, [r7, #4] + 8004ada: 681b ldr r3, [r3, #0] + 8004adc: f022 0240 bic.w r2, r2, #64 ; 0x40 + 8004ae0: 601a str r2, [r3, #0] /*----------------------- SPIx CR1 & CR2 Configuration ---------------------*/ /* Configure : SPI Mode, Communication Mode, Data size, Clock polarity and phase, NSS management, Communication speed, First bit and CRC calculation state */ WRITE_REG(hspi->Instance->CR1, (hspi->Init.Mode | hspi->Init.Direction | hspi->Init.DataSize | - 800455e: 687b ldr r3, [r7, #4] - 8004560: 685a ldr r2, [r3, #4] - 8004562: 687b ldr r3, [r7, #4] - 8004564: 689b ldr r3, [r3, #8] - 8004566: 431a orrs r2, r3 - 8004568: 687b ldr r3, [r7, #4] - 800456a: 68db ldr r3, [r3, #12] - 800456c: 431a orrs r2, r3 - 800456e: 687b ldr r3, [r7, #4] - 8004570: 691b ldr r3, [r3, #16] - 8004572: 431a orrs r2, r3 - 8004574: 687b ldr r3, [r7, #4] - 8004576: 695b ldr r3, [r3, #20] - 8004578: 431a orrs r2, r3 - 800457a: 687b ldr r3, [r7, #4] - 800457c: 699b ldr r3, [r3, #24] - 800457e: f403 7300 and.w r3, r3, #512 ; 0x200 - 8004582: 431a orrs r2, r3 - 8004584: 687b ldr r3, [r7, #4] - 8004586: 69db ldr r3, [r3, #28] - 8004588: 431a orrs r2, r3 - 800458a: 687b ldr r3, [r7, #4] - 800458c: 6a1b ldr r3, [r3, #32] - 800458e: ea42 0103 orr.w r1, r2, r3 - 8004592: 687b ldr r3, [r7, #4] - 8004594: 6a9a ldr r2, [r3, #40] ; 0x28 - 8004596: 687b ldr r3, [r7, #4] - 8004598: 681b ldr r3, [r3, #0] - 800459a: 430a orrs r2, r1 - 800459c: 601a str r2, [r3, #0] + 8004ae2: 687b ldr r3, [r7, #4] + 8004ae4: 685a ldr r2, [r3, #4] + 8004ae6: 687b ldr r3, [r7, #4] + 8004ae8: 689b ldr r3, [r3, #8] + 8004aea: 431a orrs r2, r3 + 8004aec: 687b ldr r3, [r7, #4] + 8004aee: 68db ldr r3, [r3, #12] + 8004af0: 431a orrs r2, r3 + 8004af2: 687b ldr r3, [r7, #4] + 8004af4: 691b ldr r3, [r3, #16] + 8004af6: 431a orrs r2, r3 + 8004af8: 687b ldr r3, [r7, #4] + 8004afa: 695b ldr r3, [r3, #20] + 8004afc: 431a orrs r2, r3 + 8004afe: 687b ldr r3, [r7, #4] + 8004b00: 699b ldr r3, [r3, #24] + 8004b02: f403 7300 and.w r3, r3, #512 ; 0x200 + 8004b06: 431a orrs r2, r3 + 8004b08: 687b ldr r3, [r7, #4] + 8004b0a: 69db ldr r3, [r3, #28] + 8004b0c: 431a orrs r2, r3 + 8004b0e: 687b ldr r3, [r7, #4] + 8004b10: 6a1b ldr r3, [r3, #32] + 8004b12: ea42 0103 orr.w r1, r2, r3 + 8004b16: 687b ldr r3, [r7, #4] + 8004b18: 6a9a ldr r2, [r3, #40] ; 0x28 + 8004b1a: 687b ldr r3, [r7, #4] + 8004b1c: 681b ldr r3, [r3, #0] + 8004b1e: 430a orrs r2, r1 + 8004b20: 601a str r2, [r3, #0] hspi->Init.CLKPolarity | hspi->Init.CLKPhase | (hspi->Init.NSS & SPI_CR1_SSM) | hspi->Init.BaudRatePrescaler | hspi->Init.FirstBit | hspi->Init.CRCCalculation)); /* Configure : NSS management, TI Mode */ WRITE_REG(hspi->Instance->CR2, (((hspi->Init.NSS >> 16U) & SPI_CR2_SSOE) | hspi->Init.TIMode)); - 800459e: 687b ldr r3, [r7, #4] - 80045a0: 699b ldr r3, [r3, #24] - 80045a2: 0c1b lsrs r3, r3, #16 - 80045a4: f003 0104 and.w r1, r3, #4 - 80045a8: 687b ldr r3, [r7, #4] - 80045aa: 6a5a ldr r2, [r3, #36] ; 0x24 - 80045ac: 687b ldr r3, [r7, #4] - 80045ae: 681b ldr r3, [r3, #0] - 80045b0: 430a orrs r2, r1 - 80045b2: 605a str r2, [r3, #4] + 8004b22: 687b ldr r3, [r7, #4] + 8004b24: 699b ldr r3, [r3, #24] + 8004b26: 0c1b lsrs r3, r3, #16 + 8004b28: f003 0104 and.w r1, r3, #4 + 8004b2c: 687b ldr r3, [r7, #4] + 8004b2e: 6a5a ldr r2, [r3, #36] ; 0x24 + 8004b30: 687b ldr r3, [r7, #4] + 8004b32: 681b ldr r3, [r3, #0] + 8004b34: 430a orrs r2, r1 + 8004b36: 605a str r2, [r3, #4] } #endif /* USE_SPI_CRC */ #if defined(SPI_I2SCFGR_I2SMOD) /* Activate the SPI mode (Make sure that I2SMOD bit in I2SCFGR register is reset) */ CLEAR_BIT(hspi->Instance->I2SCFGR, SPI_I2SCFGR_I2SMOD); - 80045b4: 687b ldr r3, [r7, #4] - 80045b6: 681b ldr r3, [r3, #0] - 80045b8: 69da ldr r2, [r3, #28] - 80045ba: 687b ldr r3, [r7, #4] - 80045bc: 681b ldr r3, [r3, #0] - 80045be: f422 6200 bic.w r2, r2, #2048 ; 0x800 - 80045c2: 61da str r2, [r3, #28] + 8004b38: 687b ldr r3, [r7, #4] + 8004b3a: 681b ldr r3, [r3, #0] + 8004b3c: 69da ldr r2, [r3, #28] + 8004b3e: 687b ldr r3, [r7, #4] + 8004b40: 681b ldr r3, [r3, #0] + 8004b42: f422 6200 bic.w r2, r2, #2048 ; 0x800 + 8004b46: 61da str r2, [r3, #28] #endif /* SPI_I2SCFGR_I2SMOD */ hspi->ErrorCode = HAL_SPI_ERROR_NONE; - 80045c4: 687b ldr r3, [r7, #4] - 80045c6: 2200 movs r2, #0 - 80045c8: 655a str r2, [r3, #84] ; 0x54 + 8004b48: 687b ldr r3, [r7, #4] + 8004b4a: 2200 movs r2, #0 + 8004b4c: 655a str r2, [r3, #84] ; 0x54 hspi->State = HAL_SPI_STATE_READY; - 80045ca: 687b ldr r3, [r7, #4] - 80045cc: 2201 movs r2, #1 - 80045ce: f883 2051 strb.w r2, [r3, #81] ; 0x51 + 8004b4e: 687b ldr r3, [r7, #4] + 8004b50: 2201 movs r2, #1 + 8004b52: f883 2051 strb.w r2, [r3, #81] ; 0x51 return HAL_OK; - 80045d2: 2300 movs r3, #0 + 8004b56: 2300 movs r3, #0 } - 80045d4: 4618 mov r0, r3 - 80045d6: 3708 adds r7, #8 - 80045d8: 46bd mov sp, r7 - 80045da: bd80 pop {r7, pc} + 8004b58: 4618 mov r0, r3 + 8004b5a: 3708 adds r7, #8 + 8004b5c: 46bd mov sp, r7 + 8004b5e: bd80 pop {r7, pc} -080045dc : +08004b60 : * @param pData pointer to data buffer * @param Size amount of data to be sent * @retval HAL status */ HAL_StatusTypeDef HAL_SPI_Transmit_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size) { - 80045dc: b480 push {r7} - 80045de: b087 sub sp, #28 - 80045e0: af00 add r7, sp, #0 - 80045e2: 60f8 str r0, [r7, #12] - 80045e4: 60b9 str r1, [r7, #8] - 80045e6: 4613 mov r3, r2 - 80045e8: 80fb strh r3, [r7, #6] + 8004b60: b480 push {r7} + 8004b62: b087 sub sp, #28 + 8004b64: af00 add r7, sp, #0 + 8004b66: 60f8 str r0, [r7, #12] + 8004b68: 60b9 str r1, [r7, #8] + 8004b6a: 4613 mov r3, r2 + 8004b6c: 80fb strh r3, [r7, #6] HAL_StatusTypeDef errorcode = HAL_OK; - 80045ea: 2300 movs r3, #0 - 80045ec: 75fb strb r3, [r7, #23] + 8004b6e: 2300 movs r3, #0 + 8004b70: 75fb strb r3, [r7, #23] /* Check Direction parameter */ assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE(hspi->Init.Direction)); /* Process Locked */ __HAL_LOCK(hspi); - 80045ee: 68fb ldr r3, [r7, #12] - 80045f0: f893 3050 ldrb.w r3, [r3, #80] ; 0x50 - 80045f4: 2b01 cmp r3, #1 - 80045f6: d101 bne.n 80045fc - 80045f8: 2302 movs r3, #2 - 80045fa: e067 b.n 80046cc - 80045fc: 68fb ldr r3, [r7, #12] - 80045fe: 2201 movs r2, #1 - 8004600: f883 2050 strb.w r2, [r3, #80] ; 0x50 + 8004b72: 68fb ldr r3, [r7, #12] + 8004b74: f893 3050 ldrb.w r3, [r3, #80] ; 0x50 + 8004b78: 2b01 cmp r3, #1 + 8004b7a: d101 bne.n 8004b80 + 8004b7c: 2302 movs r3, #2 + 8004b7e: e067 b.n 8004c50 + 8004b80: 68fb ldr r3, [r7, #12] + 8004b82: 2201 movs r2, #1 + 8004b84: f883 2050 strb.w r2, [r3, #80] ; 0x50 if ((pData == NULL) || (Size == 0U)) - 8004604: 68bb ldr r3, [r7, #8] - 8004606: 2b00 cmp r3, #0 - 8004608: d002 beq.n 8004610 - 800460a: 88fb ldrh r3, [r7, #6] - 800460c: 2b00 cmp r3, #0 - 800460e: d102 bne.n 8004616 + 8004b88: 68bb ldr r3, [r7, #8] + 8004b8a: 2b00 cmp r3, #0 + 8004b8c: d002 beq.n 8004b94 + 8004b8e: 88fb ldrh r3, [r7, #6] + 8004b90: 2b00 cmp r3, #0 + 8004b92: d102 bne.n 8004b9a { errorcode = HAL_ERROR; - 8004610: 2301 movs r3, #1 - 8004612: 75fb strb r3, [r7, #23] + 8004b94: 2301 movs r3, #1 + 8004b96: 75fb strb r3, [r7, #23] goto error; - 8004614: e055 b.n 80046c2 + 8004b98: e055 b.n 8004c46 } if (hspi->State != HAL_SPI_STATE_READY) - 8004616: 68fb ldr r3, [r7, #12] - 8004618: f893 3051 ldrb.w r3, [r3, #81] ; 0x51 - 800461c: b2db uxtb r3, r3 - 800461e: 2b01 cmp r3, #1 - 8004620: d002 beq.n 8004628 + 8004b9a: 68fb ldr r3, [r7, #12] + 8004b9c: f893 3051 ldrb.w r3, [r3, #81] ; 0x51 + 8004ba0: b2db uxtb r3, r3 + 8004ba2: 2b01 cmp r3, #1 + 8004ba4: d002 beq.n 8004bac { errorcode = HAL_BUSY; - 8004622: 2302 movs r3, #2 - 8004624: 75fb strb r3, [r7, #23] + 8004ba6: 2302 movs r3, #2 + 8004ba8: 75fb strb r3, [r7, #23] goto error; - 8004626: e04c b.n 80046c2 + 8004baa: e04c b.n 8004c46 } /* Set the transaction information */ hspi->State = HAL_SPI_STATE_BUSY_TX; - 8004628: 68fb ldr r3, [r7, #12] - 800462a: 2203 movs r2, #3 - 800462c: f883 2051 strb.w r2, [r3, #81] ; 0x51 + 8004bac: 68fb ldr r3, [r7, #12] + 8004bae: 2203 movs r2, #3 + 8004bb0: f883 2051 strb.w r2, [r3, #81] ; 0x51 hspi->ErrorCode = HAL_SPI_ERROR_NONE; - 8004630: 68fb ldr r3, [r7, #12] - 8004632: 2200 movs r2, #0 - 8004634: 655a str r2, [r3, #84] ; 0x54 + 8004bb4: 68fb ldr r3, [r7, #12] + 8004bb6: 2200 movs r2, #0 + 8004bb8: 655a str r2, [r3, #84] ; 0x54 hspi->pTxBuffPtr = (uint8_t *)pData; - 8004636: 68fb ldr r3, [r7, #12] - 8004638: 68ba ldr r2, [r7, #8] - 800463a: 631a str r2, [r3, #48] ; 0x30 + 8004bba: 68fb ldr r3, [r7, #12] + 8004bbc: 68ba ldr r2, [r7, #8] + 8004bbe: 631a str r2, [r3, #48] ; 0x30 hspi->TxXferSize = Size; - 800463c: 68fb ldr r3, [r7, #12] - 800463e: 88fa ldrh r2, [r7, #6] - 8004640: 869a strh r2, [r3, #52] ; 0x34 + 8004bc0: 68fb ldr r3, [r7, #12] + 8004bc2: 88fa ldrh r2, [r7, #6] + 8004bc4: 869a strh r2, [r3, #52] ; 0x34 hspi->TxXferCount = Size; - 8004642: 68fb ldr r3, [r7, #12] - 8004644: 88fa ldrh r2, [r7, #6] - 8004646: 86da strh r2, [r3, #54] ; 0x36 + 8004bc6: 68fb ldr r3, [r7, #12] + 8004bc8: 88fa ldrh r2, [r7, #6] + 8004bca: 86da strh r2, [r3, #54] ; 0x36 /* Init field not used in handle to zero */ hspi->pRxBuffPtr = (uint8_t *)NULL; - 8004648: 68fb ldr r3, [r7, #12] - 800464a: 2200 movs r2, #0 - 800464c: 639a str r2, [r3, #56] ; 0x38 + 8004bcc: 68fb ldr r3, [r7, #12] + 8004bce: 2200 movs r2, #0 + 8004bd0: 639a str r2, [r3, #56] ; 0x38 hspi->RxXferSize = 0U; - 800464e: 68fb ldr r3, [r7, #12] - 8004650: 2200 movs r2, #0 - 8004652: 879a strh r2, [r3, #60] ; 0x3c + 8004bd2: 68fb ldr r3, [r7, #12] + 8004bd4: 2200 movs r2, #0 + 8004bd6: 879a strh r2, [r3, #60] ; 0x3c hspi->RxXferCount = 0U; - 8004654: 68fb ldr r3, [r7, #12] - 8004656: 2200 movs r2, #0 - 8004658: 87da strh r2, [r3, #62] ; 0x3e + 8004bd8: 68fb ldr r3, [r7, #12] + 8004bda: 2200 movs r2, #0 + 8004bdc: 87da strh r2, [r3, #62] ; 0x3e hspi->RxISR = NULL; - 800465a: 68fb ldr r3, [r7, #12] - 800465c: 2200 movs r2, #0 - 800465e: 641a str r2, [r3, #64] ; 0x40 + 8004bde: 68fb ldr r3, [r7, #12] + 8004be0: 2200 movs r2, #0 + 8004be2: 641a str r2, [r3, #64] ; 0x40 /* Set the function for IT treatment */ if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) - 8004660: 68fb ldr r3, [r7, #12] - 8004662: 68db ldr r3, [r3, #12] - 8004664: 2b00 cmp r3, #0 - 8004666: d003 beq.n 8004670 + 8004be4: 68fb ldr r3, [r7, #12] + 8004be6: 68db ldr r3, [r3, #12] + 8004be8: 2b00 cmp r3, #0 + 8004bea: d003 beq.n 8004bf4 { hspi->TxISR = SPI_TxISR_16BIT; - 8004668: 68fb ldr r3, [r7, #12] - 800466a: 4a1b ldr r2, [pc, #108] ; (80046d8 ) - 800466c: 645a str r2, [r3, #68] ; 0x44 - 800466e: e002 b.n 8004676 + 8004bec: 68fb ldr r3, [r7, #12] + 8004bee: 4a1b ldr r2, [pc, #108] ; (8004c5c ) + 8004bf0: 645a str r2, [r3, #68] ; 0x44 + 8004bf2: e002 b.n 8004bfa } else { hspi->TxISR = SPI_TxISR_8BIT; - 8004670: 68fb ldr r3, [r7, #12] - 8004672: 4a1a ldr r2, [pc, #104] ; (80046dc ) - 8004674: 645a str r2, [r3, #68] ; 0x44 + 8004bf4: 68fb ldr r3, [r7, #12] + 8004bf6: 4a1a ldr r2, [pc, #104] ; (8004c60 ) + 8004bf8: 645a str r2, [r3, #68] ; 0x44 } /* Configure communication direction : 1Line */ if (hspi->Init.Direction == SPI_DIRECTION_1LINE) - 8004676: 68fb ldr r3, [r7, #12] - 8004678: 689b ldr r3, [r3, #8] - 800467a: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 - 800467e: d107 bne.n 8004690 + 8004bfa: 68fb ldr r3, [r7, #12] + 8004bfc: 689b ldr r3, [r3, #8] + 8004bfe: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 + 8004c02: d107 bne.n 8004c14 { SPI_1LINE_TX(hspi); - 8004680: 68fb ldr r3, [r7, #12] - 8004682: 681b ldr r3, [r3, #0] - 8004684: 681a ldr r2, [r3, #0] - 8004686: 68fb ldr r3, [r7, #12] - 8004688: 681b ldr r3, [r3, #0] - 800468a: f442 4280 orr.w r2, r2, #16384 ; 0x4000 - 800468e: 601a str r2, [r3, #0] + 8004c04: 68fb ldr r3, [r7, #12] + 8004c06: 681b ldr r3, [r3, #0] + 8004c08: 681a ldr r2, [r3, #0] + 8004c0a: 68fb ldr r3, [r7, #12] + 8004c0c: 681b ldr r3, [r3, #0] + 8004c0e: f442 4280 orr.w r2, r2, #16384 ; 0x4000 + 8004c12: 601a str r2, [r3, #0] SPI_RESET_CRC(hspi); } #endif /* USE_SPI_CRC */ /* Enable TXE and ERR interrupt */ __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_ERR)); - 8004690: 68fb ldr r3, [r7, #12] - 8004692: 681b ldr r3, [r3, #0] - 8004694: 685a ldr r2, [r3, #4] - 8004696: 68fb ldr r3, [r7, #12] - 8004698: 681b ldr r3, [r3, #0] - 800469a: f042 02a0 orr.w r2, r2, #160 ; 0xa0 - 800469e: 605a str r2, [r3, #4] + 8004c14: 68fb ldr r3, [r7, #12] + 8004c16: 681b ldr r3, [r3, #0] + 8004c18: 685a ldr r2, [r3, #4] + 8004c1a: 68fb ldr r3, [r7, #12] + 8004c1c: 681b ldr r3, [r3, #0] + 8004c1e: f042 02a0 orr.w r2, r2, #160 ; 0xa0 + 8004c22: 605a str r2, [r3, #4] /* Check if the SPI is already enabled */ if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) - 80046a0: 68fb ldr r3, [r7, #12] - 80046a2: 681b ldr r3, [r3, #0] - 80046a4: 681b ldr r3, [r3, #0] - 80046a6: f003 0340 and.w r3, r3, #64 ; 0x40 - 80046aa: 2b40 cmp r3, #64 ; 0x40 - 80046ac: d008 beq.n 80046c0 + 8004c24: 68fb ldr r3, [r7, #12] + 8004c26: 681b ldr r3, [r3, #0] + 8004c28: 681b ldr r3, [r3, #0] + 8004c2a: f003 0340 and.w r3, r3, #64 ; 0x40 + 8004c2e: 2b40 cmp r3, #64 ; 0x40 + 8004c30: d008 beq.n 8004c44 { /* Enable SPI peripheral */ __HAL_SPI_ENABLE(hspi); - 80046ae: 68fb ldr r3, [r7, #12] - 80046b0: 681b ldr r3, [r3, #0] - 80046b2: 681a ldr r2, [r3, #0] - 80046b4: 68fb ldr r3, [r7, #12] - 80046b6: 681b ldr r3, [r3, #0] - 80046b8: f042 0240 orr.w r2, r2, #64 ; 0x40 - 80046bc: 601a str r2, [r3, #0] - 80046be: e000 b.n 80046c2 + 8004c32: 68fb ldr r3, [r7, #12] + 8004c34: 681b ldr r3, [r3, #0] + 8004c36: 681a ldr r2, [r3, #0] + 8004c38: 68fb ldr r3, [r7, #12] + 8004c3a: 681b ldr r3, [r3, #0] + 8004c3c: f042 0240 orr.w r2, r2, #64 ; 0x40 + 8004c40: 601a str r2, [r3, #0] + 8004c42: e000 b.n 8004c46 } error : - 80046c0: bf00 nop + 8004c44: bf00 nop __HAL_UNLOCK(hspi); - 80046c2: 68fb ldr r3, [r7, #12] - 80046c4: 2200 movs r2, #0 - 80046c6: f883 2050 strb.w r2, [r3, #80] ; 0x50 + 8004c46: 68fb ldr r3, [r7, #12] + 8004c48: 2200 movs r2, #0 + 8004c4a: f883 2050 strb.w r2, [r3, #80] ; 0x50 return errorcode; - 80046ca: 7dfb ldrb r3, [r7, #23] + 8004c4e: 7dfb ldrb r3, [r7, #23] } - 80046cc: 4618 mov r0, r3 - 80046ce: 371c adds r7, #28 - 80046d0: 46bd mov sp, r7 - 80046d2: f85d 7b04 ldr.w r7, [sp], #4 - 80046d6: 4770 bx lr - 80046d8: 08004977 .word 0x08004977 - 80046dc: 08004931 .word 0x08004931 + 8004c50: 4618 mov r0, r3 + 8004c52: 371c adds r7, #28 + 8004c54: 46bd mov sp, r7 + 8004c56: f85d 7b04 ldr.w r7, [sp], #4 + 8004c5a: 4770 bx lr + 8004c5c: 08004efb .word 0x08004efb + 8004c60: 08004eb5 .word 0x08004eb5 -080046e0 : +08004c64 : * @param hspi pointer to a SPI_HandleTypeDef structure that contains * the configuration information for the specified SPI module. * @retval None */ void HAL_SPI_IRQHandler(SPI_HandleTypeDef *hspi) { - 80046e0: b580 push {r7, lr} - 80046e2: b088 sub sp, #32 - 80046e4: af00 add r7, sp, #0 - 80046e6: 6078 str r0, [r7, #4] + 8004c64: b580 push {r7, lr} + 8004c66: b088 sub sp, #32 + 8004c68: af00 add r7, sp, #0 + 8004c6a: 6078 str r0, [r7, #4] uint32_t itsource = hspi->Instance->CR2; - 80046e8: 687b ldr r3, [r7, #4] - 80046ea: 681b ldr r3, [r3, #0] - 80046ec: 685b ldr r3, [r3, #4] - 80046ee: 61fb str r3, [r7, #28] + 8004c6c: 687b ldr r3, [r7, #4] + 8004c6e: 681b ldr r3, [r3, #0] + 8004c70: 685b ldr r3, [r3, #4] + 8004c72: 61fb str r3, [r7, #28] uint32_t itflag = hspi->Instance->SR; - 80046f0: 687b ldr r3, [r7, #4] - 80046f2: 681b ldr r3, [r3, #0] - 80046f4: 689b ldr r3, [r3, #8] - 80046f6: 61bb str r3, [r7, #24] + 8004c74: 687b ldr r3, [r7, #4] + 8004c76: 681b ldr r3, [r3, #0] + 8004c78: 689b ldr r3, [r3, #8] + 8004c7a: 61bb str r3, [r7, #24] /* SPI in mode Receiver ----------------------------------------------------*/ if ((SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) == RESET) && - 80046f8: 69bb ldr r3, [r7, #24] - 80046fa: 099b lsrs r3, r3, #6 - 80046fc: f003 0301 and.w r3, r3, #1 - 8004700: 2b00 cmp r3, #0 - 8004702: d10f bne.n 8004724 + 8004c7c: 69bb ldr r3, [r7, #24] + 8004c7e: 099b lsrs r3, r3, #6 + 8004c80: f003 0301 and.w r3, r3, #1 + 8004c84: 2b00 cmp r3, #0 + 8004c86: d10f bne.n 8004ca8 (SPI_CHECK_FLAG(itflag, SPI_FLAG_RXNE) != RESET) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT_RXNE) != RESET)) - 8004704: 69bb ldr r3, [r7, #24] - 8004706: f003 0301 and.w r3, r3, #1 + 8004c88: 69bb ldr r3, [r7, #24] + 8004c8a: f003 0301 and.w r3, r3, #1 if ((SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) == RESET) && - 800470a: 2b00 cmp r3, #0 - 800470c: d00a beq.n 8004724 + 8004c8e: 2b00 cmp r3, #0 + 8004c90: d00a beq.n 8004ca8 (SPI_CHECK_FLAG(itflag, SPI_FLAG_RXNE) != RESET) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT_RXNE) != RESET)) - 800470e: 69fb ldr r3, [r7, #28] - 8004710: 099b lsrs r3, r3, #6 - 8004712: f003 0301 and.w r3, r3, #1 - 8004716: 2b00 cmp r3, #0 - 8004718: d004 beq.n 8004724 + 8004c92: 69fb ldr r3, [r7, #28] + 8004c94: 099b lsrs r3, r3, #6 + 8004c96: f003 0301 and.w r3, r3, #1 + 8004c9a: 2b00 cmp r3, #0 + 8004c9c: d004 beq.n 8004ca8 { hspi->RxISR(hspi); - 800471a: 687b ldr r3, [r7, #4] - 800471c: 6c1b ldr r3, [r3, #64] ; 0x40 - 800471e: 6878 ldr r0, [r7, #4] - 8004720: 4798 blx r3 + 8004c9e: 687b ldr r3, [r7, #4] + 8004ca0: 6c1b ldr r3, [r3, #64] ; 0x40 + 8004ca2: 6878 ldr r0, [r7, #4] + 8004ca4: 4798 blx r3 return; - 8004722: e0d8 b.n 80048d6 + 8004ca6: e0d8 b.n 8004e5a } /* SPI in mode Transmitter -------------------------------------------------*/ if ((SPI_CHECK_FLAG(itflag, SPI_FLAG_TXE) != RESET) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT_TXE) != RESET)) - 8004724: 69bb ldr r3, [r7, #24] - 8004726: 085b lsrs r3, r3, #1 - 8004728: f003 0301 and.w r3, r3, #1 - 800472c: 2b00 cmp r3, #0 - 800472e: d00a beq.n 8004746 - 8004730: 69fb ldr r3, [r7, #28] - 8004732: 09db lsrs r3, r3, #7 - 8004734: f003 0301 and.w r3, r3, #1 - 8004738: 2b00 cmp r3, #0 - 800473a: d004 beq.n 8004746 + 8004ca8: 69bb ldr r3, [r7, #24] + 8004caa: 085b lsrs r3, r3, #1 + 8004cac: f003 0301 and.w r3, r3, #1 + 8004cb0: 2b00 cmp r3, #0 + 8004cb2: d00a beq.n 8004cca + 8004cb4: 69fb ldr r3, [r7, #28] + 8004cb6: 09db lsrs r3, r3, #7 + 8004cb8: f003 0301 and.w r3, r3, #1 + 8004cbc: 2b00 cmp r3, #0 + 8004cbe: d004 beq.n 8004cca { hspi->TxISR(hspi); - 800473c: 687b ldr r3, [r7, #4] - 800473e: 6c5b ldr r3, [r3, #68] ; 0x44 - 8004740: 6878 ldr r0, [r7, #4] - 8004742: 4798 blx r3 + 8004cc0: 687b ldr r3, [r7, #4] + 8004cc2: 6c5b ldr r3, [r3, #68] ; 0x44 + 8004cc4: 6878 ldr r0, [r7, #4] + 8004cc6: 4798 blx r3 return; - 8004744: e0c7 b.n 80048d6 + 8004cc8: e0c7 b.n 8004e5a } /* SPI in Error Treatment --------------------------------------------------*/ if (((SPI_CHECK_FLAG(itflag, SPI_FLAG_MODF) != RESET) || (SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) != RESET) - 8004746: 69bb ldr r3, [r7, #24] - 8004748: 095b lsrs r3, r3, #5 - 800474a: f003 0301 and.w r3, r3, #1 - 800474e: 2b00 cmp r3, #0 - 8004750: d10c bne.n 800476c - 8004752: 69bb ldr r3, [r7, #24] - 8004754: 099b lsrs r3, r3, #6 - 8004756: f003 0301 and.w r3, r3, #1 - 800475a: 2b00 cmp r3, #0 - 800475c: d106 bne.n 800476c + 8004cca: 69bb ldr r3, [r7, #24] + 8004ccc: 095b lsrs r3, r3, #5 + 8004cce: f003 0301 and.w r3, r3, #1 + 8004cd2: 2b00 cmp r3, #0 + 8004cd4: d10c bne.n 8004cf0 + 8004cd6: 69bb ldr r3, [r7, #24] + 8004cd8: 099b lsrs r3, r3, #6 + 8004cda: f003 0301 and.w r3, r3, #1 + 8004cde: 2b00 cmp r3, #0 + 8004ce0: d106 bne.n 8004cf0 || (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET)) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT_ERR) != RESET)) - 800475e: 69bb ldr r3, [r7, #24] - 8004760: 0a1b lsrs r3, r3, #8 - 8004762: f003 0301 and.w r3, r3, #1 - 8004766: 2b00 cmp r3, #0 - 8004768: f000 80b5 beq.w 80048d6 - 800476c: 69fb ldr r3, [r7, #28] - 800476e: 095b lsrs r3, r3, #5 - 8004770: f003 0301 and.w r3, r3, #1 - 8004774: 2b00 cmp r3, #0 - 8004776: f000 80ae beq.w 80048d6 + 8004ce2: 69bb ldr r3, [r7, #24] + 8004ce4: 0a1b lsrs r3, r3, #8 + 8004ce6: f003 0301 and.w r3, r3, #1 + 8004cea: 2b00 cmp r3, #0 + 8004cec: f000 80b5 beq.w 8004e5a + 8004cf0: 69fb ldr r3, [r7, #28] + 8004cf2: 095b lsrs r3, r3, #5 + 8004cf4: f003 0301 and.w r3, r3, #1 + 8004cf8: 2b00 cmp r3, #0 + 8004cfa: f000 80ae beq.w 8004e5a { /* SPI Overrun error interrupt occurred ----------------------------------*/ if (SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) != RESET) - 800477a: 69bb ldr r3, [r7, #24] - 800477c: 099b lsrs r3, r3, #6 - 800477e: f003 0301 and.w r3, r3, #1 - 8004782: 2b00 cmp r3, #0 - 8004784: d023 beq.n 80047ce + 8004cfe: 69bb ldr r3, [r7, #24] + 8004d00: 099b lsrs r3, r3, #6 + 8004d02: f003 0301 and.w r3, r3, #1 + 8004d06: 2b00 cmp r3, #0 + 8004d08: d023 beq.n 8004d52 { if (hspi->State != HAL_SPI_STATE_BUSY_TX) - 8004786: 687b ldr r3, [r7, #4] - 8004788: f893 3051 ldrb.w r3, [r3, #81] ; 0x51 - 800478c: b2db uxtb r3, r3 - 800478e: 2b03 cmp r3, #3 - 8004790: d011 beq.n 80047b6 + 8004d0a: 687b ldr r3, [r7, #4] + 8004d0c: f893 3051 ldrb.w r3, [r3, #81] ; 0x51 + 8004d10: b2db uxtb r3, r3 + 8004d12: 2b03 cmp r3, #3 + 8004d14: d011 beq.n 8004d3a { SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_OVR); - 8004792: 687b ldr r3, [r7, #4] - 8004794: 6d5b ldr r3, [r3, #84] ; 0x54 - 8004796: f043 0204 orr.w r2, r3, #4 - 800479a: 687b ldr r3, [r7, #4] - 800479c: 655a str r2, [r3, #84] ; 0x54 + 8004d16: 687b ldr r3, [r7, #4] + 8004d18: 6d5b ldr r3, [r3, #84] ; 0x54 + 8004d1a: f043 0204 orr.w r2, r3, #4 + 8004d1e: 687b ldr r3, [r7, #4] + 8004d20: 655a str r2, [r3, #84] ; 0x54 __HAL_SPI_CLEAR_OVRFLAG(hspi); - 800479e: 2300 movs r3, #0 - 80047a0: 617b str r3, [r7, #20] - 80047a2: 687b ldr r3, [r7, #4] - 80047a4: 681b ldr r3, [r3, #0] - 80047a6: 68db ldr r3, [r3, #12] - 80047a8: 617b str r3, [r7, #20] - 80047aa: 687b ldr r3, [r7, #4] - 80047ac: 681b ldr r3, [r3, #0] - 80047ae: 689b ldr r3, [r3, #8] - 80047b0: 617b str r3, [r7, #20] - 80047b2: 697b ldr r3, [r7, #20] - 80047b4: e00b b.n 80047ce + 8004d22: 2300 movs r3, #0 + 8004d24: 617b str r3, [r7, #20] + 8004d26: 687b ldr r3, [r7, #4] + 8004d28: 681b ldr r3, [r3, #0] + 8004d2a: 68db ldr r3, [r3, #12] + 8004d2c: 617b str r3, [r7, #20] + 8004d2e: 687b ldr r3, [r7, #4] + 8004d30: 681b ldr r3, [r3, #0] + 8004d32: 689b ldr r3, [r3, #8] + 8004d34: 617b str r3, [r7, #20] + 8004d36: 697b ldr r3, [r7, #20] + 8004d38: e00b b.n 8004d52 } else { __HAL_SPI_CLEAR_OVRFLAG(hspi); - 80047b6: 2300 movs r3, #0 - 80047b8: 613b str r3, [r7, #16] - 80047ba: 687b ldr r3, [r7, #4] - 80047bc: 681b ldr r3, [r3, #0] - 80047be: 68db ldr r3, [r3, #12] - 80047c0: 613b str r3, [r7, #16] - 80047c2: 687b ldr r3, [r7, #4] - 80047c4: 681b ldr r3, [r3, #0] - 80047c6: 689b ldr r3, [r3, #8] - 80047c8: 613b str r3, [r7, #16] - 80047ca: 693b ldr r3, [r7, #16] + 8004d3a: 2300 movs r3, #0 + 8004d3c: 613b str r3, [r7, #16] + 8004d3e: 687b ldr r3, [r7, #4] + 8004d40: 681b ldr r3, [r3, #0] + 8004d42: 68db ldr r3, [r3, #12] + 8004d44: 613b str r3, [r7, #16] + 8004d46: 687b ldr r3, [r7, #4] + 8004d48: 681b ldr r3, [r3, #0] + 8004d4a: 689b ldr r3, [r3, #8] + 8004d4c: 613b str r3, [r7, #16] + 8004d4e: 693b ldr r3, [r7, #16] return; - 80047cc: e083 b.n 80048d6 + 8004d50: e083 b.n 8004e5a } } /* SPI Mode Fault error interrupt occurred -------------------------------*/ if (SPI_CHECK_FLAG(itflag, SPI_FLAG_MODF) != RESET) - 80047ce: 69bb ldr r3, [r7, #24] - 80047d0: 095b lsrs r3, r3, #5 - 80047d2: f003 0301 and.w r3, r3, #1 - 80047d6: 2b00 cmp r3, #0 - 80047d8: d014 beq.n 8004804 + 8004d52: 69bb ldr r3, [r7, #24] + 8004d54: 095b lsrs r3, r3, #5 + 8004d56: f003 0301 and.w r3, r3, #1 + 8004d5a: 2b00 cmp r3, #0 + 8004d5c: d014 beq.n 8004d88 { SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_MODF); - 80047da: 687b ldr r3, [r7, #4] - 80047dc: 6d5b ldr r3, [r3, #84] ; 0x54 - 80047de: f043 0201 orr.w r2, r3, #1 - 80047e2: 687b ldr r3, [r7, #4] - 80047e4: 655a str r2, [r3, #84] ; 0x54 + 8004d5e: 687b ldr r3, [r7, #4] + 8004d60: 6d5b ldr r3, [r3, #84] ; 0x54 + 8004d62: f043 0201 orr.w r2, r3, #1 + 8004d66: 687b ldr r3, [r7, #4] + 8004d68: 655a str r2, [r3, #84] ; 0x54 __HAL_SPI_CLEAR_MODFFLAG(hspi); - 80047e6: 2300 movs r3, #0 - 80047e8: 60fb str r3, [r7, #12] - 80047ea: 687b ldr r3, [r7, #4] - 80047ec: 681b ldr r3, [r3, #0] - 80047ee: 689b ldr r3, [r3, #8] - 80047f0: 60fb str r3, [r7, #12] - 80047f2: 687b ldr r3, [r7, #4] - 80047f4: 681b ldr r3, [r3, #0] - 80047f6: 681a ldr r2, [r3, #0] - 80047f8: 687b ldr r3, [r7, #4] - 80047fa: 681b ldr r3, [r3, #0] - 80047fc: f022 0240 bic.w r2, r2, #64 ; 0x40 - 8004800: 601a str r2, [r3, #0] - 8004802: 68fb ldr r3, [r7, #12] + 8004d6a: 2300 movs r3, #0 + 8004d6c: 60fb str r3, [r7, #12] + 8004d6e: 687b ldr r3, [r7, #4] + 8004d70: 681b ldr r3, [r3, #0] + 8004d72: 689b ldr r3, [r3, #8] + 8004d74: 60fb str r3, [r7, #12] + 8004d76: 687b ldr r3, [r7, #4] + 8004d78: 681b ldr r3, [r3, #0] + 8004d7a: 681a ldr r2, [r3, #0] + 8004d7c: 687b ldr r3, [r7, #4] + 8004d7e: 681b ldr r3, [r3, #0] + 8004d80: f022 0240 bic.w r2, r2, #64 ; 0x40 + 8004d84: 601a str r2, [r3, #0] + 8004d86: 68fb ldr r3, [r7, #12] } /* SPI Frame error interrupt occurred ------------------------------------*/ if (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET) - 8004804: 69bb ldr r3, [r7, #24] - 8004806: 0a1b lsrs r3, r3, #8 - 8004808: f003 0301 and.w r3, r3, #1 - 800480c: 2b00 cmp r3, #0 - 800480e: d00c beq.n 800482a + 8004d88: 69bb ldr r3, [r7, #24] + 8004d8a: 0a1b lsrs r3, r3, #8 + 8004d8c: f003 0301 and.w r3, r3, #1 + 8004d90: 2b00 cmp r3, #0 + 8004d92: d00c beq.n 8004dae { SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FRE); - 8004810: 687b ldr r3, [r7, #4] - 8004812: 6d5b ldr r3, [r3, #84] ; 0x54 - 8004814: f043 0208 orr.w r2, r3, #8 - 8004818: 687b ldr r3, [r7, #4] - 800481a: 655a str r2, [r3, #84] ; 0x54 + 8004d94: 687b ldr r3, [r7, #4] + 8004d96: 6d5b ldr r3, [r3, #84] ; 0x54 + 8004d98: f043 0208 orr.w r2, r3, #8 + 8004d9c: 687b ldr r3, [r7, #4] + 8004d9e: 655a str r2, [r3, #84] ; 0x54 __HAL_SPI_CLEAR_FREFLAG(hspi); - 800481c: 2300 movs r3, #0 - 800481e: 60bb str r3, [r7, #8] - 8004820: 687b ldr r3, [r7, #4] - 8004822: 681b ldr r3, [r3, #0] - 8004824: 689b ldr r3, [r3, #8] - 8004826: 60bb str r3, [r7, #8] - 8004828: 68bb ldr r3, [r7, #8] + 8004da0: 2300 movs r3, #0 + 8004da2: 60bb str r3, [r7, #8] + 8004da4: 687b ldr r3, [r7, #4] + 8004da6: 681b ldr r3, [r3, #0] + 8004da8: 689b ldr r3, [r3, #8] + 8004daa: 60bb str r3, [r7, #8] + 8004dac: 68bb ldr r3, [r7, #8] } if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) - 800482a: 687b ldr r3, [r7, #4] - 800482c: 6d5b ldr r3, [r3, #84] ; 0x54 - 800482e: 2b00 cmp r3, #0 - 8004830: d050 beq.n 80048d4 + 8004dae: 687b ldr r3, [r7, #4] + 8004db0: 6d5b ldr r3, [r3, #84] ; 0x54 + 8004db2: 2b00 cmp r3, #0 + 8004db4: d050 beq.n 8004e58 { /* Disable all interrupts */ __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXNE | SPI_IT_TXE | SPI_IT_ERR); - 8004832: 687b ldr r3, [r7, #4] - 8004834: 681b ldr r3, [r3, #0] - 8004836: 685a ldr r2, [r3, #4] - 8004838: 687b ldr r3, [r7, #4] - 800483a: 681b ldr r3, [r3, #0] - 800483c: f022 02e0 bic.w r2, r2, #224 ; 0xe0 - 8004840: 605a str r2, [r3, #4] + 8004db6: 687b ldr r3, [r7, #4] + 8004db8: 681b ldr r3, [r3, #0] + 8004dba: 685a ldr r2, [r3, #4] + 8004dbc: 687b ldr r3, [r7, #4] + 8004dbe: 681b ldr r3, [r3, #0] + 8004dc0: f022 02e0 bic.w r2, r2, #224 ; 0xe0 + 8004dc4: 605a str r2, [r3, #4] hspi->State = HAL_SPI_STATE_READY; - 8004842: 687b ldr r3, [r7, #4] - 8004844: 2201 movs r2, #1 - 8004846: f883 2051 strb.w r2, [r3, #81] ; 0x51 + 8004dc6: 687b ldr r3, [r7, #4] + 8004dc8: 2201 movs r2, #1 + 8004dca: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Disable the SPI DMA requests if enabled */ if ((HAL_IS_BIT_SET(itsource, SPI_CR2_TXDMAEN)) || (HAL_IS_BIT_SET(itsource, SPI_CR2_RXDMAEN))) - 800484a: 69fb ldr r3, [r7, #28] - 800484c: f003 0302 and.w r3, r3, #2 - 8004850: 2b00 cmp r3, #0 - 8004852: d104 bne.n 800485e - 8004854: 69fb ldr r3, [r7, #28] - 8004856: f003 0301 and.w r3, r3, #1 - 800485a: 2b00 cmp r3, #0 - 800485c: d034 beq.n 80048c8 + 8004dce: 69fb ldr r3, [r7, #28] + 8004dd0: f003 0302 and.w r3, r3, #2 + 8004dd4: 2b00 cmp r3, #0 + 8004dd6: d104 bne.n 8004de2 + 8004dd8: 69fb ldr r3, [r7, #28] + 8004dda: f003 0301 and.w r3, r3, #1 + 8004dde: 2b00 cmp r3, #0 + 8004de0: d034 beq.n 8004e4c { CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN)); - 800485e: 687b ldr r3, [r7, #4] - 8004860: 681b ldr r3, [r3, #0] - 8004862: 685a ldr r2, [r3, #4] - 8004864: 687b ldr r3, [r7, #4] - 8004866: 681b ldr r3, [r3, #0] - 8004868: f022 0203 bic.w r2, r2, #3 - 800486c: 605a str r2, [r3, #4] + 8004de2: 687b ldr r3, [r7, #4] + 8004de4: 681b ldr r3, [r3, #0] + 8004de6: 685a ldr r2, [r3, #4] + 8004de8: 687b ldr r3, [r7, #4] + 8004dea: 681b ldr r3, [r3, #0] + 8004dec: f022 0203 bic.w r2, r2, #3 + 8004df0: 605a str r2, [r3, #4] /* Abort the SPI DMA Rx channel */ if (hspi->hdmarx != NULL) - 800486e: 687b ldr r3, [r7, #4] - 8004870: 6cdb ldr r3, [r3, #76] ; 0x4c - 8004872: 2b00 cmp r3, #0 - 8004874: d011 beq.n 800489a + 8004df2: 687b ldr r3, [r7, #4] + 8004df4: 6cdb ldr r3, [r3, #76] ; 0x4c + 8004df6: 2b00 cmp r3, #0 + 8004df8: d011 beq.n 8004e1e { /* Set the SPI DMA Abort callback : will lead to call HAL_SPI_ErrorCallback() at end of DMA abort procedure */ hspi->hdmarx->XferAbortCallback = SPI_DMAAbortOnError; - 8004876: 687b ldr r3, [r7, #4] - 8004878: 6cdb ldr r3, [r3, #76] ; 0x4c - 800487a: 4a18 ldr r2, [pc, #96] ; (80048dc ) - 800487c: 651a str r2, [r3, #80] ; 0x50 + 8004dfa: 687b ldr r3, [r7, #4] + 8004dfc: 6cdb ldr r3, [r3, #76] ; 0x4c + 8004dfe: 4a18 ldr r2, [pc, #96] ; (8004e60 ) + 8004e00: 651a str r2, [r3, #80] ; 0x50 if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmarx)) - 800487e: 687b ldr r3, [r7, #4] - 8004880: 6cdb ldr r3, [r3, #76] ; 0x4c - 8004882: 4618 mov r0, r3 - 8004884: f7ff f80d bl 80038a2 - 8004888: 4603 mov r3, r0 - 800488a: 2b00 cmp r3, #0 - 800488c: d005 beq.n 800489a + 8004e02: 687b ldr r3, [r7, #4] + 8004e04: 6cdb ldr r3, [r3, #76] ; 0x4c + 8004e06: 4618 mov r0, r3 + 8004e08: f7ff f80d bl 8003e26 + 8004e0c: 4603 mov r3, r0 + 8004e0e: 2b00 cmp r3, #0 + 8004e10: d005 beq.n 8004e1e { SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); - 800488e: 687b ldr r3, [r7, #4] - 8004890: 6d5b ldr r3, [r3, #84] ; 0x54 - 8004892: f043 0240 orr.w r2, r3, #64 ; 0x40 - 8004896: 687b ldr r3, [r7, #4] - 8004898: 655a str r2, [r3, #84] ; 0x54 + 8004e12: 687b ldr r3, [r7, #4] + 8004e14: 6d5b ldr r3, [r3, #84] ; 0x54 + 8004e16: f043 0240 orr.w r2, r3, #64 ; 0x40 + 8004e1a: 687b ldr r3, [r7, #4] + 8004e1c: 655a str r2, [r3, #84] ; 0x54 } } /* Abort the SPI DMA Tx channel */ if (hspi->hdmatx != NULL) - 800489a: 687b ldr r3, [r7, #4] - 800489c: 6c9b ldr r3, [r3, #72] ; 0x48 - 800489e: 2b00 cmp r3, #0 - 80048a0: d016 beq.n 80048d0 + 8004e1e: 687b ldr r3, [r7, #4] + 8004e20: 6c9b ldr r3, [r3, #72] ; 0x48 + 8004e22: 2b00 cmp r3, #0 + 8004e24: d016 beq.n 8004e54 { /* Set the SPI DMA Abort callback : will lead to call HAL_SPI_ErrorCallback() at end of DMA abort procedure */ hspi->hdmatx->XferAbortCallback = SPI_DMAAbortOnError; - 80048a2: 687b ldr r3, [r7, #4] - 80048a4: 6c9b ldr r3, [r3, #72] ; 0x48 - 80048a6: 4a0d ldr r2, [pc, #52] ; (80048dc ) - 80048a8: 651a str r2, [r3, #80] ; 0x50 + 8004e26: 687b ldr r3, [r7, #4] + 8004e28: 6c9b ldr r3, [r3, #72] ; 0x48 + 8004e2a: 4a0d ldr r2, [pc, #52] ; (8004e60 ) + 8004e2c: 651a str r2, [r3, #80] ; 0x50 if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmatx)) - 80048aa: 687b ldr r3, [r7, #4] - 80048ac: 6c9b ldr r3, [r3, #72] ; 0x48 - 80048ae: 4618 mov r0, r3 - 80048b0: f7fe fff7 bl 80038a2 - 80048b4: 4603 mov r3, r0 - 80048b6: 2b00 cmp r3, #0 - 80048b8: d00a beq.n 80048d0 + 8004e2e: 687b ldr r3, [r7, #4] + 8004e30: 6c9b ldr r3, [r3, #72] ; 0x48 + 8004e32: 4618 mov r0, r3 + 8004e34: f7fe fff7 bl 8003e26 + 8004e38: 4603 mov r3, r0 + 8004e3a: 2b00 cmp r3, #0 + 8004e3c: d00a beq.n 8004e54 { SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); - 80048ba: 687b ldr r3, [r7, #4] - 80048bc: 6d5b ldr r3, [r3, #84] ; 0x54 - 80048be: f043 0240 orr.w r2, r3, #64 ; 0x40 - 80048c2: 687b ldr r3, [r7, #4] - 80048c4: 655a str r2, [r3, #84] ; 0x54 + 8004e3e: 687b ldr r3, [r7, #4] + 8004e40: 6d5b ldr r3, [r3, #84] ; 0x54 + 8004e42: f043 0240 orr.w r2, r3, #64 ; 0x40 + 8004e46: 687b ldr r3, [r7, #4] + 8004e48: 655a str r2, [r3, #84] ; 0x54 if (hspi->hdmatx != NULL) - 80048c6: e003 b.n 80048d0 + 8004e4a: e003 b.n 8004e54 { /* Call user error callback */ #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) hspi->ErrorCallback(hspi); #else HAL_SPI_ErrorCallback(hspi); - 80048c8: 6878 ldr r0, [r7, #4] - 80048ca: f000 f813 bl 80048f4 + 8004e4c: 6878 ldr r0, [r7, #4] + 8004e4e: f000 f813 bl 8004e78 #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ } } return; - 80048ce: e000 b.n 80048d2 + 8004e52: e000 b.n 8004e56 if (hspi->hdmatx != NULL) - 80048d0: bf00 nop + 8004e54: bf00 nop return; - 80048d2: bf00 nop - 80048d4: bf00 nop + 8004e56: bf00 nop + 8004e58: bf00 nop } } - 80048d6: 3720 adds r7, #32 - 80048d8: 46bd mov sp, r7 - 80048da: bd80 pop {r7, pc} - 80048dc: 08004909 .word 0x08004909 + 8004e5a: 3720 adds r7, #32 + 8004e5c: 46bd mov sp, r7 + 8004e5e: bd80 pop {r7, pc} + 8004e60: 08004e8d .word 0x08004e8d -080048e0 : +08004e64 : * @param hspi pointer to a SPI_HandleTypeDef structure that contains * the configuration information for SPI module. * @retval None */ __weak void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi) { - 80048e0: b480 push {r7} - 80048e2: b083 sub sp, #12 - 80048e4: af00 add r7, sp, #0 - 80048e6: 6078 str r0, [r7, #4] + 8004e64: b480 push {r7} + 8004e66: b083 sub sp, #12 + 8004e68: af00 add r7, sp, #0 + 8004e6a: 6078 str r0, [r7, #4] UNUSED(hspi); /* NOTE : This function should not be modified, when the callback is needed, the HAL_SPI_TxCpltCallback should be implemented in the user file */ } - 80048e8: bf00 nop - 80048ea: 370c adds r7, #12 - 80048ec: 46bd mov sp, r7 - 80048ee: f85d 7b04 ldr.w r7, [sp], #4 - 80048f2: 4770 bx lr + 8004e6c: bf00 nop + 8004e6e: 370c adds r7, #12 + 8004e70: 46bd mov sp, r7 + 8004e72: f85d 7b04 ldr.w r7, [sp], #4 + 8004e76: 4770 bx lr -080048f4 : +08004e78 : * @param hspi pointer to a SPI_HandleTypeDef structure that contains * the configuration information for SPI module. * @retval None */ __weak void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi) { - 80048f4: b480 push {r7} - 80048f6: b083 sub sp, #12 - 80048f8: af00 add r7, sp, #0 - 80048fa: 6078 str r0, [r7, #4] + 8004e78: b480 push {r7} + 8004e7a: b083 sub sp, #12 + 8004e7c: af00 add r7, sp, #0 + 8004e7e: 6078 str r0, [r7, #4] the HAL_SPI_ErrorCallback should be implemented in the user file */ /* NOTE : The ErrorCode parameter in the hspi handle is updated by the SPI processes and user can use HAL_SPI_GetError() API to check the latest error occurred */ } - 80048fc: bf00 nop - 80048fe: 370c adds r7, #12 - 8004900: 46bd mov sp, r7 - 8004902: f85d 7b04 ldr.w r7, [sp], #4 - 8004906: 4770 bx lr + 8004e80: bf00 nop + 8004e82: 370c adds r7, #12 + 8004e84: 46bd mov sp, r7 + 8004e86: f85d 7b04 ldr.w r7, [sp], #4 + 8004e8a: 4770 bx lr -08004908 : +08004e8c : * (To be called at end of DMA Abort procedure following error occurrence). * @param hdma DMA handle. * @retval None */ static void SPI_DMAAbortOnError(DMA_HandleTypeDef *hdma) { - 8004908: b580 push {r7, lr} - 800490a: b084 sub sp, #16 - 800490c: af00 add r7, sp, #0 - 800490e: 6078 str r0, [r7, #4] + 8004e8c: b580 push {r7, lr} + 8004e8e: b084 sub sp, #16 + 8004e90: af00 add r7, sp, #0 + 8004e92: 6078 str r0, [r7, #4] SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogation MISRAC2012-Rule-11.5 */ - 8004910: 687b ldr r3, [r7, #4] - 8004912: 6b9b ldr r3, [r3, #56] ; 0x38 - 8004914: 60fb str r3, [r7, #12] + 8004e94: 687b ldr r3, [r7, #4] + 8004e96: 6b9b ldr r3, [r3, #56] ; 0x38 + 8004e98: 60fb str r3, [r7, #12] hspi->RxXferCount = 0U; - 8004916: 68fb ldr r3, [r7, #12] - 8004918: 2200 movs r2, #0 - 800491a: 87da strh r2, [r3, #62] ; 0x3e + 8004e9a: 68fb ldr r3, [r7, #12] + 8004e9c: 2200 movs r2, #0 + 8004e9e: 87da strh r2, [r3, #62] ; 0x3e hspi->TxXferCount = 0U; - 800491c: 68fb ldr r3, [r7, #12] - 800491e: 2200 movs r2, #0 - 8004920: 86da strh r2, [r3, #54] ; 0x36 + 8004ea0: 68fb ldr r3, [r7, #12] + 8004ea2: 2200 movs r2, #0 + 8004ea4: 86da strh r2, [r3, #54] ; 0x36 /* Call user error callback */ #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) hspi->ErrorCallback(hspi); #else HAL_SPI_ErrorCallback(hspi); - 8004922: 68f8 ldr r0, [r7, #12] - 8004924: f7ff ffe6 bl 80048f4 + 8004ea6: 68f8 ldr r0, [r7, #12] + 8004ea8: f7ff ffe6 bl 8004e78 #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ } - 8004928: bf00 nop - 800492a: 3710 adds r7, #16 - 800492c: 46bd mov sp, r7 - 800492e: bd80 pop {r7, pc} + 8004eac: bf00 nop + 8004eae: 3710 adds r7, #16 + 8004eb0: 46bd mov sp, r7 + 8004eb2: bd80 pop {r7, pc} -08004930 : +08004eb4 : * @param hspi pointer to a SPI_HandleTypeDef structure that contains * the configuration information for SPI module. * @retval None */ static void SPI_TxISR_8BIT(struct __SPI_HandleTypeDef *hspi) { - 8004930: b580 push {r7, lr} - 8004932: b082 sub sp, #8 - 8004934: af00 add r7, sp, #0 - 8004936: 6078 str r0, [r7, #4] + 8004eb4: b580 push {r7, lr} + 8004eb6: b082 sub sp, #8 + 8004eb8: af00 add r7, sp, #0 + 8004eba: 6078 str r0, [r7, #4] *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); - 8004938: 687b ldr r3, [r7, #4] - 800493a: 6b1a ldr r2, [r3, #48] ; 0x30 - 800493c: 687b ldr r3, [r7, #4] - 800493e: 681b ldr r3, [r3, #0] - 8004940: 330c adds r3, #12 - 8004942: 7812 ldrb r2, [r2, #0] - 8004944: 701a strb r2, [r3, #0] + 8004ebc: 687b ldr r3, [r7, #4] + 8004ebe: 6b1a ldr r2, [r3, #48] ; 0x30 + 8004ec0: 687b ldr r3, [r7, #4] + 8004ec2: 681b ldr r3, [r3, #0] + 8004ec4: 330c adds r3, #12 + 8004ec6: 7812 ldrb r2, [r2, #0] + 8004ec8: 701a strb r2, [r3, #0] hspi->pTxBuffPtr++; - 8004946: 687b ldr r3, [r7, #4] - 8004948: 6b1b ldr r3, [r3, #48] ; 0x30 - 800494a: 1c5a adds r2, r3, #1 - 800494c: 687b ldr r3, [r7, #4] - 800494e: 631a str r2, [r3, #48] ; 0x30 + 8004eca: 687b ldr r3, [r7, #4] + 8004ecc: 6b1b ldr r3, [r3, #48] ; 0x30 + 8004ece: 1c5a adds r2, r3, #1 + 8004ed0: 687b ldr r3, [r7, #4] + 8004ed2: 631a str r2, [r3, #48] ; 0x30 hspi->TxXferCount--; - 8004950: 687b ldr r3, [r7, #4] - 8004952: 8edb ldrh r3, [r3, #54] ; 0x36 - 8004954: b29b uxth r3, r3 - 8004956: 3b01 subs r3, #1 - 8004958: b29a uxth r2, r3 - 800495a: 687b ldr r3, [r7, #4] - 800495c: 86da strh r2, [r3, #54] ; 0x36 + 8004ed4: 687b ldr r3, [r7, #4] + 8004ed6: 8edb ldrh r3, [r3, #54] ; 0x36 + 8004ed8: b29b uxth r3, r3 + 8004eda: 3b01 subs r3, #1 + 8004edc: b29a uxth r2, r3 + 8004ede: 687b ldr r3, [r7, #4] + 8004ee0: 86da strh r2, [r3, #54] ; 0x36 if (hspi->TxXferCount == 0U) - 800495e: 687b ldr r3, [r7, #4] - 8004960: 8edb ldrh r3, [r3, #54] ; 0x36 - 8004962: b29b uxth r3, r3 - 8004964: 2b00 cmp r3, #0 - 8004966: d102 bne.n 800496e + 8004ee2: 687b ldr r3, [r7, #4] + 8004ee4: 8edb ldrh r3, [r3, #54] ; 0x36 + 8004ee6: b29b uxth r3, r3 + 8004ee8: 2b00 cmp r3, #0 + 8004eea: d102 bne.n 8004ef2 { /* Enable CRC Transmission */ SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); } #endif /* USE_SPI_CRC */ SPI_CloseTx_ISR(hspi); - 8004968: 6878 ldr r0, [r7, #4] - 800496a: f000 f8d3 bl 8004b14 + 8004eec: 6878 ldr r0, [r7, #4] + 8004eee: f000 f8d3 bl 8005098 } } - 800496e: bf00 nop - 8004970: 3708 adds r7, #8 - 8004972: 46bd mov sp, r7 - 8004974: bd80 pop {r7, pc} + 8004ef2: bf00 nop + 8004ef4: 3708 adds r7, #8 + 8004ef6: 46bd mov sp, r7 + 8004ef8: bd80 pop {r7, pc} -08004976 : +08004efa : * @param hspi pointer to a SPI_HandleTypeDef structure that contains * the configuration information for SPI module. * @retval None */ static void SPI_TxISR_16BIT(struct __SPI_HandleTypeDef *hspi) { - 8004976: b580 push {r7, lr} - 8004978: b082 sub sp, #8 - 800497a: af00 add r7, sp, #0 - 800497c: 6078 str r0, [r7, #4] + 8004efa: b580 push {r7, lr} + 8004efc: b082 sub sp, #8 + 8004efe: af00 add r7, sp, #0 + 8004f00: 6078 str r0, [r7, #4] /* Transmit data in 16 Bit mode */ hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); - 800497e: 687b ldr r3, [r7, #4] - 8004980: 6b1b ldr r3, [r3, #48] ; 0x30 - 8004982: 881a ldrh r2, [r3, #0] - 8004984: 687b ldr r3, [r7, #4] - 8004986: 681b ldr r3, [r3, #0] - 8004988: 60da str r2, [r3, #12] + 8004f02: 687b ldr r3, [r7, #4] + 8004f04: 6b1b ldr r3, [r3, #48] ; 0x30 + 8004f06: 881a ldrh r2, [r3, #0] + 8004f08: 687b ldr r3, [r7, #4] + 8004f0a: 681b ldr r3, [r3, #0] + 8004f0c: 60da str r2, [r3, #12] hspi->pTxBuffPtr += sizeof(uint16_t); - 800498a: 687b ldr r3, [r7, #4] - 800498c: 6b1b ldr r3, [r3, #48] ; 0x30 - 800498e: 1c9a adds r2, r3, #2 - 8004990: 687b ldr r3, [r7, #4] - 8004992: 631a str r2, [r3, #48] ; 0x30 + 8004f0e: 687b ldr r3, [r7, #4] + 8004f10: 6b1b ldr r3, [r3, #48] ; 0x30 + 8004f12: 1c9a adds r2, r3, #2 + 8004f14: 687b ldr r3, [r7, #4] + 8004f16: 631a str r2, [r3, #48] ; 0x30 hspi->TxXferCount--; - 8004994: 687b ldr r3, [r7, #4] - 8004996: 8edb ldrh r3, [r3, #54] ; 0x36 - 8004998: b29b uxth r3, r3 - 800499a: 3b01 subs r3, #1 - 800499c: b29a uxth r2, r3 - 800499e: 687b ldr r3, [r7, #4] - 80049a0: 86da strh r2, [r3, #54] ; 0x36 + 8004f18: 687b ldr r3, [r7, #4] + 8004f1a: 8edb ldrh r3, [r3, #54] ; 0x36 + 8004f1c: b29b uxth r3, r3 + 8004f1e: 3b01 subs r3, #1 + 8004f20: b29a uxth r2, r3 + 8004f22: 687b ldr r3, [r7, #4] + 8004f24: 86da strh r2, [r3, #54] ; 0x36 if (hspi->TxXferCount == 0U) - 80049a2: 687b ldr r3, [r7, #4] - 80049a4: 8edb ldrh r3, [r3, #54] ; 0x36 - 80049a6: b29b uxth r3, r3 - 80049a8: 2b00 cmp r3, #0 - 80049aa: d102 bne.n 80049b2 + 8004f26: 687b ldr r3, [r7, #4] + 8004f28: 8edb ldrh r3, [r3, #54] ; 0x36 + 8004f2a: b29b uxth r3, r3 + 8004f2c: 2b00 cmp r3, #0 + 8004f2e: d102 bne.n 8004f36 { /* Enable CRC Transmission */ SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); } #endif /* USE_SPI_CRC */ SPI_CloseTx_ISR(hspi); - 80049ac: 6878 ldr r0, [r7, #4] - 80049ae: f000 f8b1 bl 8004b14 + 8004f30: 6878 ldr r0, [r7, #4] + 8004f32: f000 f8b1 bl 8005098 } } - 80049b2: bf00 nop - 80049b4: 3708 adds r7, #8 - 80049b6: 46bd mov sp, r7 - 80049b8: bd80 pop {r7, pc} + 8004f36: bf00 nop + 8004f38: 3708 adds r7, #8 + 8004f3a: 46bd mov sp, r7 + 8004f3c: bd80 pop {r7, pc} -080049ba : +08004f3e : * @param Tickstart tick start value * @retval HAL status */ static HAL_StatusTypeDef SPI_WaitFlagStateUntilTimeout(SPI_HandleTypeDef *hspi, uint32_t Flag, FlagStatus State, uint32_t Timeout, uint32_t Tickstart) { - 80049ba: b580 push {r7, lr} - 80049bc: b084 sub sp, #16 - 80049be: af00 add r7, sp, #0 - 80049c0: 60f8 str r0, [r7, #12] - 80049c2: 60b9 str r1, [r7, #8] - 80049c4: 603b str r3, [r7, #0] - 80049c6: 4613 mov r3, r2 - 80049c8: 71fb strb r3, [r7, #7] + 8004f3e: b580 push {r7, lr} + 8004f40: b084 sub sp, #16 + 8004f42: af00 add r7, sp, #0 + 8004f44: 60f8 str r0, [r7, #12] + 8004f46: 60b9 str r1, [r7, #8] + 8004f48: 603b str r3, [r7, #0] + 8004f4a: 4613 mov r3, r2 + 8004f4c: 71fb strb r3, [r7, #7] while ((__HAL_SPI_GET_FLAG(hspi, Flag) ? SET : RESET) != State) - 80049ca: e04c b.n 8004a66 + 8004f4e: e04c b.n 8004fea { if (Timeout != HAL_MAX_DELAY) - 80049cc: 683b ldr r3, [r7, #0] - 80049ce: f1b3 3fff cmp.w r3, #4294967295 - 80049d2: d048 beq.n 8004a66 + 8004f50: 683b ldr r3, [r7, #0] + 8004f52: f1b3 3fff cmp.w r3, #4294967295 + 8004f56: d048 beq.n 8004fea { if (((HAL_GetTick() - Tickstart) >= Timeout) || (Timeout == 0U)) - 80049d4: f7fe fa5c bl 8002e90 - 80049d8: 4602 mov r2, r0 - 80049da: 69bb ldr r3, [r7, #24] - 80049dc: 1ad3 subs r3, r2, r3 - 80049de: 683a ldr r2, [r7, #0] - 80049e0: 429a cmp r2, r3 - 80049e2: d902 bls.n 80049ea - 80049e4: 683b ldr r3, [r7, #0] - 80049e6: 2b00 cmp r3, #0 - 80049e8: d13d bne.n 8004a66 + 8004f58: f7fe fa5c bl 8003414 + 8004f5c: 4602 mov r2, r0 + 8004f5e: 69bb ldr r3, [r7, #24] + 8004f60: 1ad3 subs r3, r2, r3 + 8004f62: 683a ldr r2, [r7, #0] + 8004f64: 429a cmp r2, r3 + 8004f66: d902 bls.n 8004f6e + 8004f68: 683b ldr r3, [r7, #0] + 8004f6a: 2b00 cmp r3, #0 + 8004f6c: d13d bne.n 8004fea /* Disable the SPI and reset the CRC: the CRC value should be cleared on both master and slave sides in order to resynchronize the master and slave for their respective CRC calculation */ /* Disable TXE, RXNE and ERR interrupts for the interrupt process */ __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_RXNE | SPI_IT_ERR)); - 80049ea: 68fb ldr r3, [r7, #12] - 80049ec: 681b ldr r3, [r3, #0] - 80049ee: 685a ldr r2, [r3, #4] - 80049f0: 68fb ldr r3, [r7, #12] - 80049f2: 681b ldr r3, [r3, #0] - 80049f4: f022 02e0 bic.w r2, r2, #224 ; 0xe0 - 80049f8: 605a str r2, [r3, #4] + 8004f6e: 68fb ldr r3, [r7, #12] + 8004f70: 681b ldr r3, [r3, #0] + 8004f72: 685a ldr r2, [r3, #4] + 8004f74: 68fb ldr r3, [r7, #12] + 8004f76: 681b ldr r3, [r3, #0] + 8004f78: f022 02e0 bic.w r2, r2, #224 ; 0xe0 + 8004f7c: 605a str r2, [r3, #4] if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) - 80049fa: 68fb ldr r3, [r7, #12] - 80049fc: 685b ldr r3, [r3, #4] - 80049fe: f5b3 7f82 cmp.w r3, #260 ; 0x104 - 8004a02: d111 bne.n 8004a28 - 8004a04: 68fb ldr r3, [r7, #12] - 8004a06: 689b ldr r3, [r3, #8] - 8004a08: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 - 8004a0c: d004 beq.n 8004a18 + 8004f7e: 68fb ldr r3, [r7, #12] + 8004f80: 685b ldr r3, [r3, #4] + 8004f82: f5b3 7f82 cmp.w r3, #260 ; 0x104 + 8004f86: d111 bne.n 8004fac + 8004f88: 68fb ldr r3, [r7, #12] + 8004f8a: 689b ldr r3, [r3, #8] + 8004f8c: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 + 8004f90: d004 beq.n 8004f9c || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXONLY))) - 8004a0e: 68fb ldr r3, [r7, #12] - 8004a10: 689b ldr r3, [r3, #8] - 8004a12: f5b3 6f80 cmp.w r3, #1024 ; 0x400 - 8004a16: d107 bne.n 8004a28 + 8004f92: 68fb ldr r3, [r7, #12] + 8004f94: 689b ldr r3, [r3, #8] + 8004f96: f5b3 6f80 cmp.w r3, #1024 ; 0x400 + 8004f9a: d107 bne.n 8004fac { /* Disable SPI peripheral */ __HAL_SPI_DISABLE(hspi); - 8004a18: 68fb ldr r3, [r7, #12] - 8004a1a: 681b ldr r3, [r3, #0] - 8004a1c: 681a ldr r2, [r3, #0] - 8004a1e: 68fb ldr r3, [r7, #12] - 8004a20: 681b ldr r3, [r3, #0] - 8004a22: f022 0240 bic.w r2, r2, #64 ; 0x40 - 8004a26: 601a str r2, [r3, #0] + 8004f9c: 68fb ldr r3, [r7, #12] + 8004f9e: 681b ldr r3, [r3, #0] + 8004fa0: 681a ldr r2, [r3, #0] + 8004fa2: 68fb ldr r3, [r7, #12] + 8004fa4: 681b ldr r3, [r3, #0] + 8004fa6: f022 0240 bic.w r2, r2, #64 ; 0x40 + 8004faa: 601a str r2, [r3, #0] } /* Reset CRC Calculation */ if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) - 8004a28: 68fb ldr r3, [r7, #12] - 8004a2a: 6a9b ldr r3, [r3, #40] ; 0x28 - 8004a2c: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 - 8004a30: d10f bne.n 8004a52 + 8004fac: 68fb ldr r3, [r7, #12] + 8004fae: 6a9b ldr r3, [r3, #40] ; 0x28 + 8004fb0: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 8004fb4: d10f bne.n 8004fd6 { SPI_RESET_CRC(hspi); - 8004a32: 68fb ldr r3, [r7, #12] - 8004a34: 681b ldr r3, [r3, #0] - 8004a36: 681a ldr r2, [r3, #0] - 8004a38: 68fb ldr r3, [r7, #12] - 8004a3a: 681b ldr r3, [r3, #0] - 8004a3c: f422 5200 bic.w r2, r2, #8192 ; 0x2000 - 8004a40: 601a str r2, [r3, #0] - 8004a42: 68fb ldr r3, [r7, #12] - 8004a44: 681b ldr r3, [r3, #0] - 8004a46: 681a ldr r2, [r3, #0] - 8004a48: 68fb ldr r3, [r7, #12] - 8004a4a: 681b ldr r3, [r3, #0] - 8004a4c: f442 5200 orr.w r2, r2, #8192 ; 0x2000 - 8004a50: 601a str r2, [r3, #0] + 8004fb6: 68fb ldr r3, [r7, #12] + 8004fb8: 681b ldr r3, [r3, #0] + 8004fba: 681a ldr r2, [r3, #0] + 8004fbc: 68fb ldr r3, [r7, #12] + 8004fbe: 681b ldr r3, [r3, #0] + 8004fc0: f422 5200 bic.w r2, r2, #8192 ; 0x2000 + 8004fc4: 601a str r2, [r3, #0] + 8004fc6: 68fb ldr r3, [r7, #12] + 8004fc8: 681b ldr r3, [r3, #0] + 8004fca: 681a ldr r2, [r3, #0] + 8004fcc: 68fb ldr r3, [r7, #12] + 8004fce: 681b ldr r3, [r3, #0] + 8004fd0: f442 5200 orr.w r2, r2, #8192 ; 0x2000 + 8004fd4: 601a str r2, [r3, #0] } hspi->State = HAL_SPI_STATE_READY; - 8004a52: 68fb ldr r3, [r7, #12] - 8004a54: 2201 movs r2, #1 - 8004a56: f883 2051 strb.w r2, [r3, #81] ; 0x51 + 8004fd6: 68fb ldr r3, [r7, #12] + 8004fd8: 2201 movs r2, #1 + 8004fda: f883 2051 strb.w r2, [r3, #81] ; 0x51 /* Process Unlocked */ __HAL_UNLOCK(hspi); - 8004a5a: 68fb ldr r3, [r7, #12] - 8004a5c: 2200 movs r2, #0 - 8004a5e: f883 2050 strb.w r2, [r3, #80] ; 0x50 + 8004fde: 68fb ldr r3, [r7, #12] + 8004fe0: 2200 movs r2, #0 + 8004fe2: f883 2050 strb.w r2, [r3, #80] ; 0x50 return HAL_TIMEOUT; - 8004a62: 2303 movs r3, #3 - 8004a64: e00f b.n 8004a86 + 8004fe6: 2303 movs r3, #3 + 8004fe8: e00f b.n 800500a while ((__HAL_SPI_GET_FLAG(hspi, Flag) ? SET : RESET) != State) - 8004a66: 68fb ldr r3, [r7, #12] - 8004a68: 681b ldr r3, [r3, #0] - 8004a6a: 689a ldr r2, [r3, #8] - 8004a6c: 68bb ldr r3, [r7, #8] - 8004a6e: 4013 ands r3, r2 - 8004a70: 68ba ldr r2, [r7, #8] - 8004a72: 429a cmp r2, r3 - 8004a74: bf0c ite eq - 8004a76: 2301 moveq r3, #1 - 8004a78: 2300 movne r3, #0 - 8004a7a: b2db uxtb r3, r3 - 8004a7c: 461a mov r2, r3 - 8004a7e: 79fb ldrb r3, [r7, #7] - 8004a80: 429a cmp r2, r3 - 8004a82: d1a3 bne.n 80049cc + 8004fea: 68fb ldr r3, [r7, #12] + 8004fec: 681b ldr r3, [r3, #0] + 8004fee: 689a ldr r2, [r3, #8] + 8004ff0: 68bb ldr r3, [r7, #8] + 8004ff2: 4013 ands r3, r2 + 8004ff4: 68ba ldr r2, [r7, #8] + 8004ff6: 429a cmp r2, r3 + 8004ff8: bf0c ite eq + 8004ffa: 2301 moveq r3, #1 + 8004ffc: 2300 movne r3, #0 + 8004ffe: b2db uxtb r3, r3 + 8005000: 461a mov r2, r3 + 8005002: 79fb ldrb r3, [r7, #7] + 8005004: 429a cmp r2, r3 + 8005006: d1a3 bne.n 8004f50 } } } return HAL_OK; - 8004a84: 2300 movs r3, #0 + 8005008: 2300 movs r3, #0 } - 8004a86: 4618 mov r0, r3 - 8004a88: 3710 adds r7, #16 - 8004a8a: 46bd mov sp, r7 - 8004a8c: bd80 pop {r7, pc} + 800500a: 4618 mov r0, r3 + 800500c: 3710 adds r7, #16 + 800500e: 46bd mov sp, r7 + 8005010: bd80 pop {r7, pc} ... -08004a90 : +08005014 : * @param Timeout Timeout duration * @param Tickstart tick start value * @retval HAL status */ static HAL_StatusTypeDef SPI_EndRxTxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t Tickstart) { - 8004a90: b580 push {r7, lr} - 8004a92: b088 sub sp, #32 - 8004a94: af02 add r7, sp, #8 - 8004a96: 60f8 str r0, [r7, #12] - 8004a98: 60b9 str r1, [r7, #8] - 8004a9a: 607a str r2, [r7, #4] + 8005014: b580 push {r7, lr} + 8005016: b088 sub sp, #32 + 8005018: af02 add r7, sp, #8 + 800501a: 60f8 str r0, [r7, #12] + 800501c: 60b9 str r1, [r7, #8] + 800501e: 607a str r2, [r7, #4] /* Timeout in µs */ __IO uint32_t count = SPI_BSY_FLAG_WORKAROUND_TIMEOUT * (SystemCoreClock / 24U / 1000000U); - 8004a9c: 4b1b ldr r3, [pc, #108] ; (8004b0c ) - 8004a9e: 681b ldr r3, [r3, #0] - 8004aa0: 4a1b ldr r2, [pc, #108] ; (8004b10 ) - 8004aa2: fba2 2303 umull r2, r3, r2, r3 - 8004aa6: 0d5b lsrs r3, r3, #21 - 8004aa8: f44f 727a mov.w r2, #1000 ; 0x3e8 - 8004aac: fb02 f303 mul.w r3, r2, r3 - 8004ab0: 617b str r3, [r7, #20] + 8005020: 4b1b ldr r3, [pc, #108] ; (8005090 ) + 8005022: 681b ldr r3, [r3, #0] + 8005024: 4a1b ldr r2, [pc, #108] ; (8005094 ) + 8005026: fba2 2303 umull r2, r3, r2, r3 + 800502a: 0d5b lsrs r3, r3, #21 + 800502c: f44f 727a mov.w r2, #1000 ; 0x3e8 + 8005030: fb02 f303 mul.w r3, r2, r3 + 8005034: 617b str r3, [r7, #20] /* Erratasheet: BSY bit may stay high at the end of a data transfer in Slave mode */ if (hspi->Init.Mode == SPI_MODE_MASTER) - 8004ab2: 68fb ldr r3, [r7, #12] - 8004ab4: 685b ldr r3, [r3, #4] - 8004ab6: f5b3 7f82 cmp.w r3, #260 ; 0x104 - 8004aba: d112 bne.n 8004ae2 + 8005036: 68fb ldr r3, [r7, #12] + 8005038: 685b ldr r3, [r3, #4] + 800503a: f5b3 7f82 cmp.w r3, #260 ; 0x104 + 800503e: d112 bne.n 8005066 { /* Control the BSY flag */ if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, Timeout, Tickstart) != HAL_OK) - 8004abc: 687b ldr r3, [r7, #4] - 8004abe: 9300 str r3, [sp, #0] - 8004ac0: 68bb ldr r3, [r7, #8] - 8004ac2: 2200 movs r2, #0 - 8004ac4: 2180 movs r1, #128 ; 0x80 - 8004ac6: 68f8 ldr r0, [r7, #12] - 8004ac8: f7ff ff77 bl 80049ba - 8004acc: 4603 mov r3, r0 - 8004ace: 2b00 cmp r3, #0 - 8004ad0: d016 beq.n 8004b00 + 8005040: 687b ldr r3, [r7, #4] + 8005042: 9300 str r3, [sp, #0] + 8005044: 68bb ldr r3, [r7, #8] + 8005046: 2200 movs r2, #0 + 8005048: 2180 movs r1, #128 ; 0x80 + 800504a: 68f8 ldr r0, [r7, #12] + 800504c: f7ff ff77 bl 8004f3e + 8005050: 4603 mov r3, r0 + 8005052: 2b00 cmp r3, #0 + 8005054: d016 beq.n 8005084 { SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); - 8004ad2: 68fb ldr r3, [r7, #12] - 8004ad4: 6d5b ldr r3, [r3, #84] ; 0x54 - 8004ad6: f043 0220 orr.w r2, r3, #32 - 8004ada: 68fb ldr r3, [r7, #12] - 8004adc: 655a str r2, [r3, #84] ; 0x54 + 8005056: 68fb ldr r3, [r7, #12] + 8005058: 6d5b ldr r3, [r3, #84] ; 0x54 + 800505a: f043 0220 orr.w r2, r3, #32 + 800505e: 68fb ldr r3, [r7, #12] + 8005060: 655a str r2, [r3, #84] ; 0x54 return HAL_TIMEOUT; - 8004ade: 2303 movs r3, #3 - 8004ae0: e00f b.n 8004b02 + 8005062: 2303 movs r3, #3 + 8005064: e00f b.n 8005086 * User have to calculate the timeout value to fit with the time of 1 byte transfer. * This time is directly link with the SPI clock from Master device. */ do { if (count == 0U) - 8004ae2: 697b ldr r3, [r7, #20] - 8004ae4: 2b00 cmp r3, #0 - 8004ae6: d00a beq.n 8004afe + 8005066: 697b ldr r3, [r7, #20] + 8005068: 2b00 cmp r3, #0 + 800506a: d00a beq.n 8005082 { break; } count--; - 8004ae8: 697b ldr r3, [r7, #20] - 8004aea: 3b01 subs r3, #1 - 8004aec: 617b str r3, [r7, #20] + 800506c: 697b ldr r3, [r7, #20] + 800506e: 3b01 subs r3, #1 + 8005070: 617b str r3, [r7, #20] } while (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_BSY) != RESET); - 8004aee: 68fb ldr r3, [r7, #12] - 8004af0: 681b ldr r3, [r3, #0] - 8004af2: 689b ldr r3, [r3, #8] - 8004af4: f003 0380 and.w r3, r3, #128 ; 0x80 - 8004af8: 2b80 cmp r3, #128 ; 0x80 - 8004afa: d0f2 beq.n 8004ae2 - 8004afc: e000 b.n 8004b00 + 8005072: 68fb ldr r3, [r7, #12] + 8005074: 681b ldr r3, [r3, #0] + 8005076: 689b ldr r3, [r3, #8] + 8005078: f003 0380 and.w r3, r3, #128 ; 0x80 + 800507c: 2b80 cmp r3, #128 ; 0x80 + 800507e: d0f2 beq.n 8005066 + 8005080: e000 b.n 8005084 break; - 8004afe: bf00 nop + 8005082: bf00 nop } return HAL_OK; - 8004b00: 2300 movs r3, #0 + 8005084: 2300 movs r3, #0 } - 8004b02: 4618 mov r0, r3 - 8004b04: 3718 adds r7, #24 - 8004b06: 46bd mov sp, r7 - 8004b08: bd80 pop {r7, pc} - 8004b0a: bf00 nop - 8004b0c: 20000004 .word 0x20000004 - 8004b10: 165e9f81 .word 0x165e9f81 + 8005086: 4618 mov r0, r3 + 8005088: 3718 adds r7, #24 + 800508a: 46bd mov sp, r7 + 800508c: bd80 pop {r7, pc} + 800508e: bf00 nop + 8005090: 20000004 .word 0x20000004 + 8005094: 165e9f81 .word 0x165e9f81 -08004b14 : +08005098 : * @param hspi pointer to a SPI_HandleTypeDef structure that contains * the configuration information for SPI module. * @retval None */ static void SPI_CloseTx_ISR(SPI_HandleTypeDef *hspi) { - 8004b14: b580 push {r7, lr} - 8004b16: b086 sub sp, #24 - 8004b18: af00 add r7, sp, #0 - 8004b1a: 6078 str r0, [r7, #4] + 8005098: b580 push {r7, lr} + 800509a: b086 sub sp, #24 + 800509c: af00 add r7, sp, #0 + 800509e: 6078 str r0, [r7, #4] uint32_t tickstart; __IO uint32_t count = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); - 8004b1c: 4b2c ldr r3, [pc, #176] ; (8004bd0 ) - 8004b1e: 681b ldr r3, [r3, #0] - 8004b20: 4a2c ldr r2, [pc, #176] ; (8004bd4 ) - 8004b22: fba2 2303 umull r2, r3, r2, r3 - 8004b26: 0a5b lsrs r3, r3, #9 - 8004b28: 2264 movs r2, #100 ; 0x64 - 8004b2a: fb02 f303 mul.w r3, r2, r3 - 8004b2e: 613b str r3, [r7, #16] + 80050a0: 4b2c ldr r3, [pc, #176] ; (8005154 ) + 80050a2: 681b ldr r3, [r3, #0] + 80050a4: 4a2c ldr r2, [pc, #176] ; (8005158 ) + 80050a6: fba2 2303 umull r2, r3, r2, r3 + 80050aa: 0a5b lsrs r3, r3, #9 + 80050ac: 2264 movs r2, #100 ; 0x64 + 80050ae: fb02 f303 mul.w r3, r2, r3 + 80050b2: 613b str r3, [r7, #16] /* Init tickstart for timeout management*/ tickstart = HAL_GetTick(); - 8004b30: f7fe f9ae bl 8002e90 - 8004b34: 6178 str r0, [r7, #20] + 80050b4: f7fe f9ae bl 8003414 + 80050b8: 6178 str r0, [r7, #20] /* Wait until TXE flag is set */ do { if (count == 0U) - 8004b36: 693b ldr r3, [r7, #16] - 8004b38: 2b00 cmp r3, #0 - 8004b3a: d106 bne.n 8004b4a + 80050ba: 693b ldr r3, [r7, #16] + 80050bc: 2b00 cmp r3, #0 + 80050be: d106 bne.n 80050ce { SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); - 8004b3c: 687b ldr r3, [r7, #4] - 8004b3e: 6d5b ldr r3, [r3, #84] ; 0x54 - 8004b40: f043 0220 orr.w r2, r3, #32 - 8004b44: 687b ldr r3, [r7, #4] - 8004b46: 655a str r2, [r3, #84] ; 0x54 + 80050c0: 687b ldr r3, [r7, #4] + 80050c2: 6d5b ldr r3, [r3, #84] ; 0x54 + 80050c4: f043 0220 orr.w r2, r3, #32 + 80050c8: 687b ldr r3, [r7, #4] + 80050ca: 655a str r2, [r3, #84] ; 0x54 break; - 8004b48: e009 b.n 8004b5e + 80050cc: e009 b.n 80050e2 } count--; - 8004b4a: 693b ldr r3, [r7, #16] - 8004b4c: 3b01 subs r3, #1 - 8004b4e: 613b str r3, [r7, #16] + 80050ce: 693b ldr r3, [r7, #16] + 80050d0: 3b01 subs r3, #1 + 80050d2: 613b str r3, [r7, #16] } while ((hspi->Instance->SR & SPI_FLAG_TXE) == RESET); - 8004b50: 687b ldr r3, [r7, #4] - 8004b52: 681b ldr r3, [r3, #0] - 8004b54: 689b ldr r3, [r3, #8] - 8004b56: f003 0302 and.w r3, r3, #2 - 8004b5a: 2b00 cmp r3, #0 - 8004b5c: d0eb beq.n 8004b36 + 80050d4: 687b ldr r3, [r7, #4] + 80050d6: 681b ldr r3, [r3, #0] + 80050d8: 689b ldr r3, [r3, #8] + 80050da: f003 0302 and.w r3, r3, #2 + 80050de: 2b00 cmp r3, #0 + 80050e0: d0eb beq.n 80050ba /* Disable TXE and ERR interrupt */ __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_ERR)); - 8004b5e: 687b ldr r3, [r7, #4] - 8004b60: 681b ldr r3, [r3, #0] - 8004b62: 685a ldr r2, [r3, #4] - 8004b64: 687b ldr r3, [r7, #4] - 8004b66: 681b ldr r3, [r3, #0] - 8004b68: f022 02a0 bic.w r2, r2, #160 ; 0xa0 - 8004b6c: 605a str r2, [r3, #4] + 80050e2: 687b ldr r3, [r7, #4] + 80050e4: 681b ldr r3, [r3, #0] + 80050e6: 685a ldr r2, [r3, #4] + 80050e8: 687b ldr r3, [r7, #4] + 80050ea: 681b ldr r3, [r3, #0] + 80050ec: f022 02a0 bic.w r2, r2, #160 ; 0xa0 + 80050f0: 605a str r2, [r3, #4] /* Check the end of the transaction */ if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) - 8004b6e: 697a ldr r2, [r7, #20] - 8004b70: 2164 movs r1, #100 ; 0x64 - 8004b72: 6878 ldr r0, [r7, #4] - 8004b74: f7ff ff8c bl 8004a90 - 8004b78: 4603 mov r3, r0 - 8004b7a: 2b00 cmp r3, #0 - 8004b7c: d005 beq.n 8004b8a + 80050f2: 697a ldr r2, [r7, #20] + 80050f4: 2164 movs r1, #100 ; 0x64 + 80050f6: 6878 ldr r0, [r7, #4] + 80050f8: f7ff ff8c bl 8005014 + 80050fc: 4603 mov r3, r0 + 80050fe: 2b00 cmp r3, #0 + 8005100: d005 beq.n 800510e { SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); - 8004b7e: 687b ldr r3, [r7, #4] - 8004b80: 6d5b ldr r3, [r3, #84] ; 0x54 - 8004b82: f043 0220 orr.w r2, r3, #32 - 8004b86: 687b ldr r3, [r7, #4] - 8004b88: 655a str r2, [r3, #84] ; 0x54 + 8005102: 687b ldr r3, [r7, #4] + 8005104: 6d5b ldr r3, [r3, #84] ; 0x54 + 8005106: f043 0220 orr.w r2, r3, #32 + 800510a: 687b ldr r3, [r7, #4] + 800510c: 655a str r2, [r3, #84] ; 0x54 } /* Clear overrun flag in 2 Lines communication mode because received is not read */ if (hspi->Init.Direction == SPI_DIRECTION_2LINES) - 8004b8a: 687b ldr r3, [r7, #4] - 8004b8c: 689b ldr r3, [r3, #8] - 8004b8e: 2b00 cmp r3, #0 - 8004b90: d10a bne.n 8004ba8 + 800510e: 687b ldr r3, [r7, #4] + 8005110: 689b ldr r3, [r3, #8] + 8005112: 2b00 cmp r3, #0 + 8005114: d10a bne.n 800512c { __HAL_SPI_CLEAR_OVRFLAG(hspi); - 8004b92: 2300 movs r3, #0 - 8004b94: 60fb str r3, [r7, #12] - 8004b96: 687b ldr r3, [r7, #4] - 8004b98: 681b ldr r3, [r3, #0] - 8004b9a: 68db ldr r3, [r3, #12] - 8004b9c: 60fb str r3, [r7, #12] - 8004b9e: 687b ldr r3, [r7, #4] - 8004ba0: 681b ldr r3, [r3, #0] - 8004ba2: 689b ldr r3, [r3, #8] - 8004ba4: 60fb str r3, [r7, #12] - 8004ba6: 68fb ldr r3, [r7, #12] + 8005116: 2300 movs r3, #0 + 8005118: 60fb str r3, [r7, #12] + 800511a: 687b ldr r3, [r7, #4] + 800511c: 681b ldr r3, [r3, #0] + 800511e: 68db ldr r3, [r3, #12] + 8005120: 60fb str r3, [r7, #12] + 8005122: 687b ldr r3, [r7, #4] + 8005124: 681b ldr r3, [r3, #0] + 8005126: 689b ldr r3, [r3, #8] + 8005128: 60fb str r3, [r7, #12] + 800512a: 68fb ldr r3, [r7, #12] } hspi->State = HAL_SPI_STATE_READY; - 8004ba8: 687b ldr r3, [r7, #4] - 8004baa: 2201 movs r2, #1 - 8004bac: f883 2051 strb.w r2, [r3, #81] ; 0x51 + 800512c: 687b ldr r3, [r7, #4] + 800512e: 2201 movs r2, #1 + 8005130: f883 2051 strb.w r2, [r3, #81] ; 0x51 if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) - 8004bb0: 687b ldr r3, [r7, #4] - 8004bb2: 6d5b ldr r3, [r3, #84] ; 0x54 - 8004bb4: 2b00 cmp r3, #0 - 8004bb6: d003 beq.n 8004bc0 + 8005134: 687b ldr r3, [r7, #4] + 8005136: 6d5b ldr r3, [r3, #84] ; 0x54 + 8005138: 2b00 cmp r3, #0 + 800513a: d003 beq.n 8005144 { /* Call user error callback */ #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) hspi->ErrorCallback(hspi); #else HAL_SPI_ErrorCallback(hspi); - 8004bb8: 6878 ldr r0, [r7, #4] - 8004bba: f7ff fe9b bl 80048f4 + 800513c: 6878 ldr r0, [r7, #4] + 800513e: f7ff fe9b bl 8004e78 hspi->TxCpltCallback(hspi); #else HAL_SPI_TxCpltCallback(hspi); #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ } } - 8004bbe: e002 b.n 8004bc6 + 8005142: e002 b.n 800514a HAL_SPI_TxCpltCallback(hspi); - 8004bc0: 6878 ldr r0, [r7, #4] - 8004bc2: f7ff fe8d bl 80048e0 + 8005144: 6878 ldr r0, [r7, #4] + 8005146: f7ff fe8d bl 8004e64 } - 8004bc6: bf00 nop - 8004bc8: 3718 adds r7, #24 - 8004bca: 46bd mov sp, r7 - 8004bcc: bd80 pop {r7, pc} - 8004bce: bf00 nop - 8004bd0: 20000004 .word 0x20000004 - 8004bd4: 057619f1 .word 0x057619f1 + 800514a: bf00 nop + 800514c: 3718 adds r7, #24 + 800514e: 46bd mov sp, r7 + 8005150: bd80 pop {r7, pc} + 8005152: bf00 nop + 8005154: 20000004 .word 0x20000004 + 8005158: 057619f1 .word 0x057619f1 -08004bd8 : +0800515c : * Ex: call @ref HAL_TIM_Base_DeInit() before HAL_TIM_Base_Init() * @param htim TIM Base handle * @retval HAL status */ HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim) { - 8004bd8: b580 push {r7, lr} - 8004bda: b082 sub sp, #8 - 8004bdc: af00 add r7, sp, #0 - 8004bde: 6078 str r0, [r7, #4] + 800515c: b580 push {r7, lr} + 800515e: b082 sub sp, #8 + 8005160: af00 add r7, sp, #0 + 8005162: 6078 str r0, [r7, #4] /* Check the TIM handle allocation */ if (htim == NULL) - 8004be0: 687b ldr r3, [r7, #4] - 8004be2: 2b00 cmp r3, #0 - 8004be4: d101 bne.n 8004bea + 8005164: 687b ldr r3, [r7, #4] + 8005166: 2b00 cmp r3, #0 + 8005168: d101 bne.n 800516e { return HAL_ERROR; - 8004be6: 2301 movs r3, #1 - 8004be8: e01d b.n 8004c26 + 800516a: 2301 movs r3, #1 + 800516c: e01d b.n 80051aa assert_param(IS_TIM_INSTANCE(htim->Instance)); assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); if (htim->State == HAL_TIM_STATE_RESET) - 8004bea: 687b ldr r3, [r7, #4] - 8004bec: f893 303d ldrb.w r3, [r3, #61] ; 0x3d - 8004bf0: b2db uxtb r3, r3 - 8004bf2: 2b00 cmp r3, #0 - 8004bf4: d106 bne.n 8004c04 + 800516e: 687b ldr r3, [r7, #4] + 8005170: f893 303d ldrb.w r3, [r3, #61] ; 0x3d + 8005174: b2db uxtb r3, r3 + 8005176: 2b00 cmp r3, #0 + 8005178: d106 bne.n 8005188 { /* Allocate lock resource and initialize it */ htim->Lock = HAL_UNLOCKED; - 8004bf6: 687b ldr r3, [r7, #4] - 8004bf8: 2200 movs r2, #0 - 8004bfa: f883 203c strb.w r2, [r3, #60] ; 0x3c + 800517a: 687b ldr r3, [r7, #4] + 800517c: 2200 movs r2, #0 + 800517e: f883 203c strb.w r2, [r3, #60] ; 0x3c } /* Init the low level hardware : GPIO, CLOCK, NVIC */ htim->Base_MspInitCallback(htim); #else /* Init the low level hardware : GPIO, CLOCK, NVIC */ HAL_TIM_Base_MspInit(htim); - 8004bfe: 6878 ldr r0, [r7, #4] - 8004c00: f7fd ffcc bl 8002b9c + 8005182: 6878 ldr r0, [r7, #4] + 8005184: f7fd ffd2 bl 800312c #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } /* Set the TIM state */ htim->State = HAL_TIM_STATE_BUSY; - 8004c04: 687b ldr r3, [r7, #4] - 8004c06: 2202 movs r2, #2 - 8004c08: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8005188: 687b ldr r3, [r7, #4] + 800518a: 2202 movs r2, #2 + 800518c: f883 203d strb.w r2, [r3, #61] ; 0x3d /* Set the Time Base configuration */ TIM_Base_SetConfig(htim->Instance, &htim->Init); - 8004c0c: 687b ldr r3, [r7, #4] - 8004c0e: 681a ldr r2, [r3, #0] - 8004c10: 687b ldr r3, [r7, #4] - 8004c12: 3304 adds r3, #4 - 8004c14: 4619 mov r1, r3 - 8004c16: 4610 mov r0, r2 - 8004c18: f000 f9ae bl 8004f78 + 8005190: 687b ldr r3, [r7, #4] + 8005192: 681a ldr r2, [r3, #0] + 8005194: 687b ldr r3, [r7, #4] + 8005196: 3304 adds r3, #4 + 8005198: 4619 mov r1, r3 + 800519a: 4610 mov r0, r2 + 800519c: f000 f9ae bl 80054fc /* Initialize the TIM state*/ htim->State = HAL_TIM_STATE_READY; - 8004c1c: 687b ldr r3, [r7, #4] - 8004c1e: 2201 movs r2, #1 - 8004c20: f883 203d strb.w r2, [r3, #61] ; 0x3d + 80051a0: 687b ldr r3, [r7, #4] + 80051a2: 2201 movs r2, #1 + 80051a4: f883 203d strb.w r2, [r3, #61] ; 0x3d return HAL_OK; - 8004c24: 2300 movs r3, #0 + 80051a8: 2300 movs r3, #0 } - 8004c26: 4618 mov r0, r3 - 8004c28: 3708 adds r7, #8 - 8004c2a: 46bd mov sp, r7 - 8004c2c: bd80 pop {r7, pc} + 80051aa: 4618 mov r0, r3 + 80051ac: 3708 adds r7, #8 + 80051ae: 46bd mov sp, r7 + 80051b0: bd80 pop {r7, pc} -08004c2e : +080051b2 : * @brief Starts the TIM Base generation in interrupt mode. * @param htim TIM Base handle * @retval HAL status */ HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim) { - 8004c2e: b480 push {r7} - 8004c30: b085 sub sp, #20 - 8004c32: af00 add r7, sp, #0 - 8004c34: 6078 str r0, [r7, #4] + 80051b2: b480 push {r7} + 80051b4: b085 sub sp, #20 + 80051b6: af00 add r7, sp, #0 + 80051b8: 6078 str r0, [r7, #4] /* Check the parameters */ assert_param(IS_TIM_INSTANCE(htim->Instance)); /* Enable the TIM Update interrupt */ __HAL_TIM_ENABLE_IT(htim, TIM_IT_UPDATE); - 8004c36: 687b ldr r3, [r7, #4] - 8004c38: 681b ldr r3, [r3, #0] - 8004c3a: 68da ldr r2, [r3, #12] - 8004c3c: 687b ldr r3, [r7, #4] - 8004c3e: 681b ldr r3, [r3, #0] - 8004c40: f042 0201 orr.w r2, r2, #1 - 8004c44: 60da str r2, [r3, #12] + 80051ba: 687b ldr r3, [r7, #4] + 80051bc: 681b ldr r3, [r3, #0] + 80051be: 68da ldr r2, [r3, #12] + 80051c0: 687b ldr r3, [r7, #4] + 80051c2: 681b ldr r3, [r3, #0] + 80051c4: f042 0201 orr.w r2, r2, #1 + 80051c8: 60da str r2, [r3, #12] /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; - 8004c46: 687b ldr r3, [r7, #4] - 8004c48: 681b ldr r3, [r3, #0] - 8004c4a: 689b ldr r3, [r3, #8] - 8004c4c: f003 0307 and.w r3, r3, #7 - 8004c50: 60fb str r3, [r7, #12] + 80051ca: 687b ldr r3, [r7, #4] + 80051cc: 681b ldr r3, [r3, #0] + 80051ce: 689b ldr r3, [r3, #8] + 80051d0: f003 0307 and.w r3, r3, #7 + 80051d4: 60fb str r3, [r7, #12] if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) - 8004c52: 68fb ldr r3, [r7, #12] - 8004c54: 2b06 cmp r3, #6 - 8004c56: d007 beq.n 8004c68 + 80051d6: 68fb ldr r3, [r7, #12] + 80051d8: 2b06 cmp r3, #6 + 80051da: d007 beq.n 80051ec { __HAL_TIM_ENABLE(htim); - 8004c58: 687b ldr r3, [r7, #4] - 8004c5a: 681b ldr r3, [r3, #0] - 8004c5c: 681a ldr r2, [r3, #0] - 8004c5e: 687b ldr r3, [r7, #4] - 8004c60: 681b ldr r3, [r3, #0] - 8004c62: f042 0201 orr.w r2, r2, #1 - 8004c66: 601a str r2, [r3, #0] + 80051dc: 687b ldr r3, [r7, #4] + 80051de: 681b ldr r3, [r3, #0] + 80051e0: 681a ldr r2, [r3, #0] + 80051e2: 687b ldr r3, [r7, #4] + 80051e4: 681b ldr r3, [r3, #0] + 80051e6: f042 0201 orr.w r2, r2, #1 + 80051ea: 601a str r2, [r3, #0] } /* Return function status */ return HAL_OK; - 8004c68: 2300 movs r3, #0 + 80051ec: 2300 movs r3, #0 } - 8004c6a: 4618 mov r0, r3 - 8004c6c: 3714 adds r7, #20 - 8004c6e: 46bd mov sp, r7 - 8004c70: f85d 7b04 ldr.w r7, [sp], #4 - 8004c74: 4770 bx lr + 80051ee: 4618 mov r0, r3 + 80051f0: 3714 adds r7, #20 + 80051f2: 46bd mov sp, r7 + 80051f4: f85d 7b04 ldr.w r7, [sp], #4 + 80051f8: 4770 bx lr -08004c76 : +080051fa : * @arg TIM_OPMODE_SINGLE: Only one pulse will be generated. * @arg TIM_OPMODE_REPETITIVE: Repetitive pulses will be generated. * @retval HAL status */ HAL_StatusTypeDef HAL_TIM_OnePulse_Init(TIM_HandleTypeDef *htim, uint32_t OnePulseMode) { - 8004c76: b580 push {r7, lr} - 8004c78: b082 sub sp, #8 - 8004c7a: af00 add r7, sp, #0 - 8004c7c: 6078 str r0, [r7, #4] - 8004c7e: 6039 str r1, [r7, #0] + 80051fa: b580 push {r7, lr} + 80051fc: b082 sub sp, #8 + 80051fe: af00 add r7, sp, #0 + 8005200: 6078 str r0, [r7, #4] + 8005202: 6039 str r1, [r7, #0] /* Check the TIM handle allocation */ if (htim == NULL) - 8004c80: 687b ldr r3, [r7, #4] - 8004c82: 2b00 cmp r3, #0 - 8004c84: d101 bne.n 8004c8a + 8005204: 687b ldr r3, [r7, #4] + 8005206: 2b00 cmp r3, #0 + 8005208: d101 bne.n 800520e { return HAL_ERROR; - 8004c86: 2301 movs r3, #1 - 8004c88: e02d b.n 8004ce6 + 800520a: 2301 movs r3, #1 + 800520c: e02d b.n 800526a assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); assert_param(IS_TIM_OPM_MODE(OnePulseMode)); assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); if (htim->State == HAL_TIM_STATE_RESET) - 8004c8a: 687b ldr r3, [r7, #4] - 8004c8c: f893 303d ldrb.w r3, [r3, #61] ; 0x3d - 8004c90: b2db uxtb r3, r3 - 8004c92: 2b00 cmp r3, #0 - 8004c94: d106 bne.n 8004ca4 + 800520e: 687b ldr r3, [r7, #4] + 8005210: f893 303d ldrb.w r3, [r3, #61] ; 0x3d + 8005214: b2db uxtb r3, r3 + 8005216: 2b00 cmp r3, #0 + 8005218: d106 bne.n 8005228 { /* Allocate lock resource and initialize it */ htim->Lock = HAL_UNLOCKED; - 8004c96: 687b ldr r3, [r7, #4] - 8004c98: 2200 movs r2, #0 - 8004c9a: f883 203c strb.w r2, [r3, #60] ; 0x3c + 800521a: 687b ldr r3, [r7, #4] + 800521c: 2200 movs r2, #0 + 800521e: f883 203c strb.w r2, [r3, #60] ; 0x3c } /* Init the low level hardware : GPIO, CLOCK, NVIC */ htim->OnePulse_MspInitCallback(htim); #else /* Init the low level hardware : GPIO, CLOCK, NVIC and DMA */ HAL_TIM_OnePulse_MspInit(htim); - 8004c9e: 6878 ldr r0, [r7, #4] - 8004ca0: f000 f825 bl 8004cee + 8005222: 6878 ldr r0, [r7, #4] + 8005224: f000 f825 bl 8005272 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } /* Set the TIM state */ htim->State = HAL_TIM_STATE_BUSY; - 8004ca4: 687b ldr r3, [r7, #4] - 8004ca6: 2202 movs r2, #2 - 8004ca8: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8005228: 687b ldr r3, [r7, #4] + 800522a: 2202 movs r2, #2 + 800522c: f883 203d strb.w r2, [r3, #61] ; 0x3d /* Configure the Time base in the One Pulse Mode */ TIM_Base_SetConfig(htim->Instance, &htim->Init); - 8004cac: 687b ldr r3, [r7, #4] - 8004cae: 681a ldr r2, [r3, #0] - 8004cb0: 687b ldr r3, [r7, #4] - 8004cb2: 3304 adds r3, #4 - 8004cb4: 4619 mov r1, r3 - 8004cb6: 4610 mov r0, r2 - 8004cb8: f000 f95e bl 8004f78 + 8005230: 687b ldr r3, [r7, #4] + 8005232: 681a ldr r2, [r3, #0] + 8005234: 687b ldr r3, [r7, #4] + 8005236: 3304 adds r3, #4 + 8005238: 4619 mov r1, r3 + 800523a: 4610 mov r0, r2 + 800523c: f000 f95e bl 80054fc /* Reset the OPM Bit */ htim->Instance->CR1 &= ~TIM_CR1_OPM; - 8004cbc: 687b ldr r3, [r7, #4] - 8004cbe: 681b ldr r3, [r3, #0] - 8004cc0: 681a ldr r2, [r3, #0] - 8004cc2: 687b ldr r3, [r7, #4] - 8004cc4: 681b ldr r3, [r3, #0] - 8004cc6: f022 0208 bic.w r2, r2, #8 - 8004cca: 601a str r2, [r3, #0] + 8005240: 687b ldr r3, [r7, #4] + 8005242: 681b ldr r3, [r3, #0] + 8005244: 681a ldr r2, [r3, #0] + 8005246: 687b ldr r3, [r7, #4] + 8005248: 681b ldr r3, [r3, #0] + 800524a: f022 0208 bic.w r2, r2, #8 + 800524e: 601a str r2, [r3, #0] /* Configure the OPM Mode */ htim->Instance->CR1 |= OnePulseMode; - 8004ccc: 687b ldr r3, [r7, #4] - 8004cce: 681b ldr r3, [r3, #0] - 8004cd0: 6819 ldr r1, [r3, #0] - 8004cd2: 687b ldr r3, [r7, #4] - 8004cd4: 681b ldr r3, [r3, #0] - 8004cd6: 683a ldr r2, [r7, #0] - 8004cd8: 430a orrs r2, r1 - 8004cda: 601a str r2, [r3, #0] + 8005250: 687b ldr r3, [r7, #4] + 8005252: 681b ldr r3, [r3, #0] + 8005254: 6819 ldr r1, [r3, #0] + 8005256: 687b ldr r3, [r7, #4] + 8005258: 681b ldr r3, [r3, #0] + 800525a: 683a ldr r2, [r7, #0] + 800525c: 430a orrs r2, r1 + 800525e: 601a str r2, [r3, #0] /* Initialize the TIM state*/ htim->State = HAL_TIM_STATE_READY; - 8004cdc: 687b ldr r3, [r7, #4] - 8004cde: 2201 movs r2, #1 - 8004ce0: f883 203d strb.w r2, [r3, #61] ; 0x3d + 8005260: 687b ldr r3, [r7, #4] + 8005262: 2201 movs r2, #1 + 8005264: f883 203d strb.w r2, [r3, #61] ; 0x3d return HAL_OK; - 8004ce4: 2300 movs r3, #0 + 8005268: 2300 movs r3, #0 } - 8004ce6: 4618 mov r0, r3 - 8004ce8: 3708 adds r7, #8 - 8004cea: 46bd mov sp, r7 - 8004cec: bd80 pop {r7, pc} + 800526a: 4618 mov r0, r3 + 800526c: 3708 adds r7, #8 + 800526e: 46bd mov sp, r7 + 8005270: bd80 pop {r7, pc} -08004cee : +08005272 : * @brief Initializes the TIM One Pulse MSP. * @param htim TIM One Pulse handle * @retval None */ __weak void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef *htim) { - 8004cee: b480 push {r7} - 8004cf0: b083 sub sp, #12 - 8004cf2: af00 add r7, sp, #0 - 8004cf4: 6078 str r0, [r7, #4] + 8005272: b480 push {r7} + 8005274: b083 sub sp, #12 + 8005276: af00 add r7, sp, #0 + 8005278: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_OnePulse_MspInit could be implemented in the user file */ } - 8004cf6: bf00 nop - 8004cf8: 370c adds r7, #12 - 8004cfa: 46bd mov sp, r7 - 8004cfc: f85d 7b04 ldr.w r7, [sp], #4 - 8004d00: 4770 bx lr + 800527a: bf00 nop + 800527c: 370c adds r7, #12 + 800527e: 46bd mov sp, r7 + 8005280: f85d 7b04 ldr.w r7, [sp], #4 + 8005284: 4770 bx lr -08004d02 : +08005286 : * @brief This function handles TIM interrupts requests. * @param htim TIM handle * @retval None */ void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim) { - 8004d02: b580 push {r7, lr} - 8004d04: b082 sub sp, #8 - 8004d06: af00 add r7, sp, #0 - 8004d08: 6078 str r0, [r7, #4] + 8005286: b580 push {r7, lr} + 8005288: b082 sub sp, #8 + 800528a: af00 add r7, sp, #0 + 800528c: 6078 str r0, [r7, #4] /* Capture compare 1 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1) != RESET) - 8004d0a: 687b ldr r3, [r7, #4] - 8004d0c: 681b ldr r3, [r3, #0] - 8004d0e: 691b ldr r3, [r3, #16] - 8004d10: f003 0302 and.w r3, r3, #2 - 8004d14: 2b02 cmp r3, #2 - 8004d16: d122 bne.n 8004d5e + 800528e: 687b ldr r3, [r7, #4] + 8005290: 681b ldr r3, [r3, #0] + 8005292: 691b ldr r3, [r3, #16] + 8005294: f003 0302 and.w r3, r3, #2 + 8005298: 2b02 cmp r3, #2 + 800529a: d122 bne.n 80052e2 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC1) != RESET) - 8004d18: 687b ldr r3, [r7, #4] - 8004d1a: 681b ldr r3, [r3, #0] - 8004d1c: 68db ldr r3, [r3, #12] - 8004d1e: f003 0302 and.w r3, r3, #2 - 8004d22: 2b02 cmp r3, #2 - 8004d24: d11b bne.n 8004d5e + 800529c: 687b ldr r3, [r7, #4] + 800529e: 681b ldr r3, [r3, #0] + 80052a0: 68db ldr r3, [r3, #12] + 80052a2: f003 0302 and.w r3, r3, #2 + 80052a6: 2b02 cmp r3, #2 + 80052a8: d11b bne.n 80052e2 { { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC1); - 8004d26: 687b ldr r3, [r7, #4] - 8004d28: 681b ldr r3, [r3, #0] - 8004d2a: f06f 0202 mvn.w r2, #2 - 8004d2e: 611a str r2, [r3, #16] + 80052aa: 687b ldr r3, [r7, #4] + 80052ac: 681b ldr r3, [r3, #0] + 80052ae: f06f 0202 mvn.w r2, #2 + 80052b2: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1; - 8004d30: 687b ldr r3, [r7, #4] - 8004d32: 2201 movs r2, #1 - 8004d34: 771a strb r2, [r3, #28] + 80052b4: 687b ldr r3, [r7, #4] + 80052b6: 2201 movs r2, #1 + 80052b8: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR1 & TIM_CCMR1_CC1S) != 0x00U) - 8004d36: 687b ldr r3, [r7, #4] - 8004d38: 681b ldr r3, [r3, #0] - 8004d3a: 699b ldr r3, [r3, #24] - 8004d3c: f003 0303 and.w r3, r3, #3 - 8004d40: 2b00 cmp r3, #0 - 8004d42: d003 beq.n 8004d4c + 80052ba: 687b ldr r3, [r7, #4] + 80052bc: 681b ldr r3, [r3, #0] + 80052be: 699b ldr r3, [r3, #24] + 80052c0: f003 0303 and.w r3, r3, #3 + 80052c4: 2b00 cmp r3, #0 + 80052c6: d003 beq.n 80052d0 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); - 8004d44: 6878 ldr r0, [r7, #4] - 8004d46: f000 f8f8 bl 8004f3a - 8004d4a: e005 b.n 8004d58 + 80052c8: 6878 ldr r0, [r7, #4] + 80052ca: f000 f8f8 bl 80054be + 80052ce: e005 b.n 80052dc { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); - 8004d4c: 6878 ldr r0, [r7, #4] - 8004d4e: f000 f8ea bl 8004f26 + 80052d0: 6878 ldr r0, [r7, #4] + 80052d2: f000 f8ea bl 80054aa HAL_TIM_PWM_PulseFinishedCallback(htim); - 8004d52: 6878 ldr r0, [r7, #4] - 8004d54: f000 f8fb bl 8004f4e + 80052d6: 6878 ldr r0, [r7, #4] + 80052d8: f000 f8fb bl 80054d2 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; - 8004d58: 687b ldr r3, [r7, #4] - 8004d5a: 2200 movs r2, #0 - 8004d5c: 771a strb r2, [r3, #28] + 80052dc: 687b ldr r3, [r7, #4] + 80052de: 2200 movs r2, #0 + 80052e0: 771a strb r2, [r3, #28] } } } /* Capture compare 2 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC2) != RESET) - 8004d5e: 687b ldr r3, [r7, #4] - 8004d60: 681b ldr r3, [r3, #0] - 8004d62: 691b ldr r3, [r3, #16] - 8004d64: f003 0304 and.w r3, r3, #4 - 8004d68: 2b04 cmp r3, #4 - 8004d6a: d122 bne.n 8004db2 + 80052e2: 687b ldr r3, [r7, #4] + 80052e4: 681b ldr r3, [r3, #0] + 80052e6: 691b ldr r3, [r3, #16] + 80052e8: f003 0304 and.w r3, r3, #4 + 80052ec: 2b04 cmp r3, #4 + 80052ee: d122 bne.n 8005336 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC2) != RESET) - 8004d6c: 687b ldr r3, [r7, #4] - 8004d6e: 681b ldr r3, [r3, #0] - 8004d70: 68db ldr r3, [r3, #12] - 8004d72: f003 0304 and.w r3, r3, #4 - 8004d76: 2b04 cmp r3, #4 - 8004d78: d11b bne.n 8004db2 + 80052f0: 687b ldr r3, [r7, #4] + 80052f2: 681b ldr r3, [r3, #0] + 80052f4: 68db ldr r3, [r3, #12] + 80052f6: f003 0304 and.w r3, r3, #4 + 80052fa: 2b04 cmp r3, #4 + 80052fc: d11b bne.n 8005336 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC2); - 8004d7a: 687b ldr r3, [r7, #4] - 8004d7c: 681b ldr r3, [r3, #0] - 8004d7e: f06f 0204 mvn.w r2, #4 - 8004d82: 611a str r2, [r3, #16] + 80052fe: 687b ldr r3, [r7, #4] + 8005300: 681b ldr r3, [r3, #0] + 8005302: f06f 0204 mvn.w r2, #4 + 8005306: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2; - 8004d84: 687b ldr r3, [r7, #4] - 8004d86: 2202 movs r2, #2 - 8004d88: 771a strb r2, [r3, #28] + 8005308: 687b ldr r3, [r7, #4] + 800530a: 2202 movs r2, #2 + 800530c: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U) - 8004d8a: 687b ldr r3, [r7, #4] - 8004d8c: 681b ldr r3, [r3, #0] - 8004d8e: 699b ldr r3, [r3, #24] - 8004d90: f403 7340 and.w r3, r3, #768 ; 0x300 - 8004d94: 2b00 cmp r3, #0 - 8004d96: d003 beq.n 8004da0 + 800530e: 687b ldr r3, [r7, #4] + 8005310: 681b ldr r3, [r3, #0] + 8005312: 699b ldr r3, [r3, #24] + 8005314: f403 7340 and.w r3, r3, #768 ; 0x300 + 8005318: 2b00 cmp r3, #0 + 800531a: d003 beq.n 8005324 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); - 8004d98: 6878 ldr r0, [r7, #4] - 8004d9a: f000 f8ce bl 8004f3a - 8004d9e: e005 b.n 8004dac + 800531c: 6878 ldr r0, [r7, #4] + 800531e: f000 f8ce bl 80054be + 8005322: e005 b.n 8005330 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); - 8004da0: 6878 ldr r0, [r7, #4] - 8004da2: f000 f8c0 bl 8004f26 + 8005324: 6878 ldr r0, [r7, #4] + 8005326: f000 f8c0 bl 80054aa HAL_TIM_PWM_PulseFinishedCallback(htim); - 8004da6: 6878 ldr r0, [r7, #4] - 8004da8: f000 f8d1 bl 8004f4e + 800532a: 6878 ldr r0, [r7, #4] + 800532c: f000 f8d1 bl 80054d2 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; - 8004dac: 687b ldr r3, [r7, #4] - 8004dae: 2200 movs r2, #0 - 8004db0: 771a strb r2, [r3, #28] + 8005330: 687b ldr r3, [r7, #4] + 8005332: 2200 movs r2, #0 + 8005334: 771a strb r2, [r3, #28] } } /* Capture compare 3 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC3) != RESET) - 8004db2: 687b ldr r3, [r7, #4] - 8004db4: 681b ldr r3, [r3, #0] - 8004db6: 691b ldr r3, [r3, #16] - 8004db8: f003 0308 and.w r3, r3, #8 - 8004dbc: 2b08 cmp r3, #8 - 8004dbe: d122 bne.n 8004e06 + 8005336: 687b ldr r3, [r7, #4] + 8005338: 681b ldr r3, [r3, #0] + 800533a: 691b ldr r3, [r3, #16] + 800533c: f003 0308 and.w r3, r3, #8 + 8005340: 2b08 cmp r3, #8 + 8005342: d122 bne.n 800538a { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC3) != RESET) - 8004dc0: 687b ldr r3, [r7, #4] - 8004dc2: 681b ldr r3, [r3, #0] - 8004dc4: 68db ldr r3, [r3, #12] - 8004dc6: f003 0308 and.w r3, r3, #8 - 8004dca: 2b08 cmp r3, #8 - 8004dcc: d11b bne.n 8004e06 + 8005344: 687b ldr r3, [r7, #4] + 8005346: 681b ldr r3, [r3, #0] + 8005348: 68db ldr r3, [r3, #12] + 800534a: f003 0308 and.w r3, r3, #8 + 800534e: 2b08 cmp r3, #8 + 8005350: d11b bne.n 800538a { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC3); - 8004dce: 687b ldr r3, [r7, #4] - 8004dd0: 681b ldr r3, [r3, #0] - 8004dd2: f06f 0208 mvn.w r2, #8 - 8004dd6: 611a str r2, [r3, #16] + 8005352: 687b ldr r3, [r7, #4] + 8005354: 681b ldr r3, [r3, #0] + 8005356: f06f 0208 mvn.w r2, #8 + 800535a: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3; - 8004dd8: 687b ldr r3, [r7, #4] - 8004dda: 2204 movs r2, #4 - 8004ddc: 771a strb r2, [r3, #28] + 800535c: 687b ldr r3, [r7, #4] + 800535e: 2204 movs r2, #4 + 8005360: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U) - 8004dde: 687b ldr r3, [r7, #4] - 8004de0: 681b ldr r3, [r3, #0] - 8004de2: 69db ldr r3, [r3, #28] - 8004de4: f003 0303 and.w r3, r3, #3 - 8004de8: 2b00 cmp r3, #0 - 8004dea: d003 beq.n 8004df4 + 8005362: 687b ldr r3, [r7, #4] + 8005364: 681b ldr r3, [r3, #0] + 8005366: 69db ldr r3, [r3, #28] + 8005368: f003 0303 and.w r3, r3, #3 + 800536c: 2b00 cmp r3, #0 + 800536e: d003 beq.n 8005378 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); - 8004dec: 6878 ldr r0, [r7, #4] - 8004dee: f000 f8a4 bl 8004f3a - 8004df2: e005 b.n 8004e00 + 8005370: 6878 ldr r0, [r7, #4] + 8005372: f000 f8a4 bl 80054be + 8005376: e005 b.n 8005384 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); - 8004df4: 6878 ldr r0, [r7, #4] - 8004df6: f000 f896 bl 8004f26 + 8005378: 6878 ldr r0, [r7, #4] + 800537a: f000 f896 bl 80054aa HAL_TIM_PWM_PulseFinishedCallback(htim); - 8004dfa: 6878 ldr r0, [r7, #4] - 8004dfc: f000 f8a7 bl 8004f4e + 800537e: 6878 ldr r0, [r7, #4] + 8005380: f000 f8a7 bl 80054d2 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; - 8004e00: 687b ldr r3, [r7, #4] - 8004e02: 2200 movs r2, #0 - 8004e04: 771a strb r2, [r3, #28] + 8005384: 687b ldr r3, [r7, #4] + 8005386: 2200 movs r2, #0 + 8005388: 771a strb r2, [r3, #28] } } /* Capture compare 4 event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC4) != RESET) - 8004e06: 687b ldr r3, [r7, #4] - 8004e08: 681b ldr r3, [r3, #0] - 8004e0a: 691b ldr r3, [r3, #16] - 8004e0c: f003 0310 and.w r3, r3, #16 - 8004e10: 2b10 cmp r3, #16 - 8004e12: d122 bne.n 8004e5a + 800538a: 687b ldr r3, [r7, #4] + 800538c: 681b ldr r3, [r3, #0] + 800538e: 691b ldr r3, [r3, #16] + 8005390: f003 0310 and.w r3, r3, #16 + 8005394: 2b10 cmp r3, #16 + 8005396: d122 bne.n 80053de { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC4) != RESET) - 8004e14: 687b ldr r3, [r7, #4] - 8004e16: 681b ldr r3, [r3, #0] - 8004e18: 68db ldr r3, [r3, #12] - 8004e1a: f003 0310 and.w r3, r3, #16 - 8004e1e: 2b10 cmp r3, #16 - 8004e20: d11b bne.n 8004e5a + 8005398: 687b ldr r3, [r7, #4] + 800539a: 681b ldr r3, [r3, #0] + 800539c: 68db ldr r3, [r3, #12] + 800539e: f003 0310 and.w r3, r3, #16 + 80053a2: 2b10 cmp r3, #16 + 80053a4: d11b bne.n 80053de { __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC4); - 8004e22: 687b ldr r3, [r7, #4] - 8004e24: 681b ldr r3, [r3, #0] - 8004e26: f06f 0210 mvn.w r2, #16 - 8004e2a: 611a str r2, [r3, #16] + 80053a6: 687b ldr r3, [r7, #4] + 80053a8: 681b ldr r3, [r3, #0] + 80053aa: f06f 0210 mvn.w r2, #16 + 80053ae: 611a str r2, [r3, #16] htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4; - 8004e2c: 687b ldr r3, [r7, #4] - 8004e2e: 2208 movs r2, #8 - 8004e30: 771a strb r2, [r3, #28] + 80053b0: 687b ldr r3, [r7, #4] + 80053b2: 2208 movs r2, #8 + 80053b4: 771a strb r2, [r3, #28] /* Input capture event */ if ((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U) - 8004e32: 687b ldr r3, [r7, #4] - 8004e34: 681b ldr r3, [r3, #0] - 8004e36: 69db ldr r3, [r3, #28] - 8004e38: f403 7340 and.w r3, r3, #768 ; 0x300 - 8004e3c: 2b00 cmp r3, #0 - 8004e3e: d003 beq.n 8004e48 + 80053b6: 687b ldr r3, [r7, #4] + 80053b8: 681b ldr r3, [r3, #0] + 80053ba: 69db ldr r3, [r3, #28] + 80053bc: f403 7340 and.w r3, r3, #768 ; 0x300 + 80053c0: 2b00 cmp r3, #0 + 80053c2: d003 beq.n 80053cc { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->IC_CaptureCallback(htim); #else HAL_TIM_IC_CaptureCallback(htim); - 8004e40: 6878 ldr r0, [r7, #4] - 8004e42: f000 f87a bl 8004f3a - 8004e46: e005 b.n 8004e54 + 80053c4: 6878 ldr r0, [r7, #4] + 80053c6: f000 f87a bl 80054be + 80053ca: e005 b.n 80053d8 { #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->OC_DelayElapsedCallback(htim); htim->PWM_PulseFinishedCallback(htim); #else HAL_TIM_OC_DelayElapsedCallback(htim); - 8004e48: 6878 ldr r0, [r7, #4] - 8004e4a: f000 f86c bl 8004f26 + 80053cc: 6878 ldr r0, [r7, #4] + 80053ce: f000 f86c bl 80054aa HAL_TIM_PWM_PulseFinishedCallback(htim); - 8004e4e: 6878 ldr r0, [r7, #4] - 8004e50: f000 f87d bl 8004f4e + 80053d2: 6878 ldr r0, [r7, #4] + 80053d4: f000 f87d bl 80054d2 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; - 8004e54: 687b ldr r3, [r7, #4] - 8004e56: 2200 movs r2, #0 - 8004e58: 771a strb r2, [r3, #28] + 80053d8: 687b ldr r3, [r7, #4] + 80053da: 2200 movs r2, #0 + 80053dc: 771a strb r2, [r3, #28] } } /* TIM Update event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_UPDATE) != RESET) - 8004e5a: 687b ldr r3, [r7, #4] - 8004e5c: 681b ldr r3, [r3, #0] - 8004e5e: 691b ldr r3, [r3, #16] - 8004e60: f003 0301 and.w r3, r3, #1 - 8004e64: 2b01 cmp r3, #1 - 8004e66: d10e bne.n 8004e86 + 80053de: 687b ldr r3, [r7, #4] + 80053e0: 681b ldr r3, [r3, #0] + 80053e2: 691b ldr r3, [r3, #16] + 80053e4: f003 0301 and.w r3, r3, #1 + 80053e8: 2b01 cmp r3, #1 + 80053ea: d10e bne.n 800540a { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_UPDATE) != RESET) - 8004e68: 687b ldr r3, [r7, #4] - 8004e6a: 681b ldr r3, [r3, #0] - 8004e6c: 68db ldr r3, [r3, #12] - 8004e6e: f003 0301 and.w r3, r3, #1 - 8004e72: 2b01 cmp r3, #1 - 8004e74: d107 bne.n 8004e86 + 80053ec: 687b ldr r3, [r7, #4] + 80053ee: 681b ldr r3, [r3, #0] + 80053f0: 68db ldr r3, [r3, #12] + 80053f2: f003 0301 and.w r3, r3, #1 + 80053f6: 2b01 cmp r3, #1 + 80053f8: d107 bne.n 800540a { __HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE); - 8004e76: 687b ldr r3, [r7, #4] - 8004e78: 681b ldr r3, [r3, #0] - 8004e7a: f06f 0201 mvn.w r2, #1 - 8004e7e: 611a str r2, [r3, #16] + 80053fa: 687b ldr r3, [r7, #4] + 80053fc: 681b ldr r3, [r3, #0] + 80053fe: f06f 0201 mvn.w r2, #1 + 8005402: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->PeriodElapsedCallback(htim); #else HAL_TIM_PeriodElapsedCallback(htim); - 8004e80: 6878 ldr r0, [r7, #4] - 8004e82: f000 f846 bl 8004f12 + 8005404: 6878 ldr r0, [r7, #4] + 8005406: f000 f846 bl 8005496 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } /* TIM Break input event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK) != RESET) - 8004e86: 687b ldr r3, [r7, #4] - 8004e88: 681b ldr r3, [r3, #0] - 8004e8a: 691b ldr r3, [r3, #16] - 8004e8c: f003 0380 and.w r3, r3, #128 ; 0x80 - 8004e90: 2b80 cmp r3, #128 ; 0x80 - 8004e92: d10e bne.n 8004eb2 + 800540a: 687b ldr r3, [r7, #4] + 800540c: 681b ldr r3, [r3, #0] + 800540e: 691b ldr r3, [r3, #16] + 8005410: f003 0380 and.w r3, r3, #128 ; 0x80 + 8005414: 2b80 cmp r3, #128 ; 0x80 + 8005416: d10e bne.n 8005436 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET) - 8004e94: 687b ldr r3, [r7, #4] - 8004e96: 681b ldr r3, [r3, #0] - 8004e98: 68db ldr r3, [r3, #12] - 8004e9a: f003 0380 and.w r3, r3, #128 ; 0x80 - 8004e9e: 2b80 cmp r3, #128 ; 0x80 - 8004ea0: d107 bne.n 8004eb2 + 8005418: 687b ldr r3, [r7, #4] + 800541a: 681b ldr r3, [r3, #0] + 800541c: 68db ldr r3, [r3, #12] + 800541e: f003 0380 and.w r3, r3, #128 ; 0x80 + 8005422: 2b80 cmp r3, #128 ; 0x80 + 8005424: d107 bne.n 8005436 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_BREAK); - 8004ea2: 687b ldr r3, [r7, #4] - 8004ea4: 681b ldr r3, [r3, #0] - 8004ea6: f06f 0280 mvn.w r2, #128 ; 0x80 - 8004eaa: 611a str r2, [r3, #16] + 8005426: 687b ldr r3, [r7, #4] + 8005428: 681b ldr r3, [r3, #0] + 800542a: f06f 0280 mvn.w r2, #128 ; 0x80 + 800542e: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->BreakCallback(htim); #else HAL_TIMEx_BreakCallback(htim); - 8004eac: 6878 ldr r0, [r7, #4] - 8004eae: f000 f989 bl 80051c4 + 8005430: 6878 ldr r0, [r7, #4] + 8005432: f000 f989 bl 8005748 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } /* TIM Trigger detection event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_TRIGGER) != RESET) - 8004eb2: 687b ldr r3, [r7, #4] - 8004eb4: 681b ldr r3, [r3, #0] - 8004eb6: 691b ldr r3, [r3, #16] - 8004eb8: f003 0340 and.w r3, r3, #64 ; 0x40 - 8004ebc: 2b40 cmp r3, #64 ; 0x40 - 8004ebe: d10e bne.n 8004ede + 8005436: 687b ldr r3, [r7, #4] + 8005438: 681b ldr r3, [r3, #0] + 800543a: 691b ldr r3, [r3, #16] + 800543c: f003 0340 and.w r3, r3, #64 ; 0x40 + 8005440: 2b40 cmp r3, #64 ; 0x40 + 8005442: d10e bne.n 8005462 { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_TRIGGER) != RESET) - 8004ec0: 687b ldr r3, [r7, #4] - 8004ec2: 681b ldr r3, [r3, #0] - 8004ec4: 68db ldr r3, [r3, #12] - 8004ec6: f003 0340 and.w r3, r3, #64 ; 0x40 - 8004eca: 2b40 cmp r3, #64 ; 0x40 - 8004ecc: d107 bne.n 8004ede + 8005444: 687b ldr r3, [r7, #4] + 8005446: 681b ldr r3, [r3, #0] + 8005448: 68db ldr r3, [r3, #12] + 800544a: f003 0340 and.w r3, r3, #64 ; 0x40 + 800544e: 2b40 cmp r3, #64 ; 0x40 + 8005450: d107 bne.n 8005462 { __HAL_TIM_CLEAR_IT(htim, TIM_IT_TRIGGER); - 8004ece: 687b ldr r3, [r7, #4] - 8004ed0: 681b ldr r3, [r3, #0] - 8004ed2: f06f 0240 mvn.w r2, #64 ; 0x40 - 8004ed6: 611a str r2, [r3, #16] + 8005452: 687b ldr r3, [r7, #4] + 8005454: 681b ldr r3, [r3, #0] + 8005456: f06f 0240 mvn.w r2, #64 ; 0x40 + 800545a: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->TriggerCallback(htim); #else HAL_TIM_TriggerCallback(htim); - 8004ed8: 6878 ldr r0, [r7, #4] - 8004eda: f000 f842 bl 8004f62 + 800545c: 6878 ldr r0, [r7, #4] + 800545e: f000 f842 bl 80054e6 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } /* TIM commutation event */ if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_COM) != RESET) - 8004ede: 687b ldr r3, [r7, #4] - 8004ee0: 681b ldr r3, [r3, #0] - 8004ee2: 691b ldr r3, [r3, #16] - 8004ee4: f003 0320 and.w r3, r3, #32 - 8004ee8: 2b20 cmp r3, #32 - 8004eea: d10e bne.n 8004f0a + 8005462: 687b ldr r3, [r7, #4] + 8005464: 681b ldr r3, [r3, #0] + 8005466: 691b ldr r3, [r3, #16] + 8005468: f003 0320 and.w r3, r3, #32 + 800546c: 2b20 cmp r3, #32 + 800546e: d10e bne.n 800548e { if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_COM) != RESET) - 8004eec: 687b ldr r3, [r7, #4] - 8004eee: 681b ldr r3, [r3, #0] - 8004ef0: 68db ldr r3, [r3, #12] - 8004ef2: f003 0320 and.w r3, r3, #32 - 8004ef6: 2b20 cmp r3, #32 - 8004ef8: d107 bne.n 8004f0a + 8005470: 687b ldr r3, [r7, #4] + 8005472: 681b ldr r3, [r3, #0] + 8005474: 68db ldr r3, [r3, #12] + 8005476: f003 0320 and.w r3, r3, #32 + 800547a: 2b20 cmp r3, #32 + 800547c: d107 bne.n 800548e { __HAL_TIM_CLEAR_IT(htim, TIM_FLAG_COM); - 8004efa: 687b ldr r3, [r7, #4] - 8004efc: 681b ldr r3, [r3, #0] - 8004efe: f06f 0220 mvn.w r2, #32 - 8004f02: 611a str r2, [r3, #16] + 800547e: 687b ldr r3, [r7, #4] + 8005480: 681b ldr r3, [r3, #0] + 8005482: f06f 0220 mvn.w r2, #32 + 8005486: 611a str r2, [r3, #16] #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) htim->CommutationCallback(htim); #else HAL_TIMEx_CommutCallback(htim); - 8004f04: 6878 ldr r0, [r7, #4] - 8004f06: f000 f953 bl 80051b0 + 8005488: 6878 ldr r0, [r7, #4] + 800548a: f000 f953 bl 8005734 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } } } - 8004f0a: bf00 nop - 8004f0c: 3708 adds r7, #8 - 8004f0e: 46bd mov sp, r7 - 8004f10: bd80 pop {r7, pc} + 800548e: bf00 nop + 8005490: 3708 adds r7, #8 + 8005492: 46bd mov sp, r7 + 8005494: bd80 pop {r7, pc} -08004f12 : +08005496 : * @brief Period elapsed callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { - 8004f12: b480 push {r7} - 8004f14: b083 sub sp, #12 - 8004f16: af00 add r7, sp, #0 - 8004f18: 6078 str r0, [r7, #4] + 8005496: b480 push {r7} + 8005498: b083 sub sp, #12 + 800549a: af00 add r7, sp, #0 + 800549c: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_PeriodElapsedCallback could be implemented in the user file */ } - 8004f1a: bf00 nop - 8004f1c: 370c adds r7, #12 - 8004f1e: 46bd mov sp, r7 - 8004f20: f85d 7b04 ldr.w r7, [sp], #4 - 8004f24: 4770 bx lr + 800549e: bf00 nop + 80054a0: 370c adds r7, #12 + 80054a2: 46bd mov sp, r7 + 80054a4: f85d 7b04 ldr.w r7, [sp], #4 + 80054a8: 4770 bx lr -08004f26 : +080054aa : * @brief Output Compare callback in non-blocking mode * @param htim TIM OC handle * @retval None */ __weak void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim) { - 8004f26: b480 push {r7} - 8004f28: b083 sub sp, #12 - 8004f2a: af00 add r7, sp, #0 - 8004f2c: 6078 str r0, [r7, #4] + 80054aa: b480 push {r7} + 80054ac: b083 sub sp, #12 + 80054ae: af00 add r7, sp, #0 + 80054b0: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_OC_DelayElapsedCallback could be implemented in the user file */ } - 8004f2e: bf00 nop - 8004f30: 370c adds r7, #12 - 8004f32: 46bd mov sp, r7 - 8004f34: f85d 7b04 ldr.w r7, [sp], #4 - 8004f38: 4770 bx lr + 80054b2: bf00 nop + 80054b4: 370c adds r7, #12 + 80054b6: 46bd mov sp, r7 + 80054b8: f85d 7b04 ldr.w r7, [sp], #4 + 80054bc: 4770 bx lr -08004f3a : +080054be : * @brief Input Capture callback in non-blocking mode * @param htim TIM IC handle * @retval None */ __weak void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) { - 8004f3a: b480 push {r7} - 8004f3c: b083 sub sp, #12 - 8004f3e: af00 add r7, sp, #0 - 8004f40: 6078 str r0, [r7, #4] + 80054be: b480 push {r7} + 80054c0: b083 sub sp, #12 + 80054c2: af00 add r7, sp, #0 + 80054c4: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_IC_CaptureCallback could be implemented in the user file */ } - 8004f42: bf00 nop - 8004f44: 370c adds r7, #12 - 8004f46: 46bd mov sp, r7 - 8004f48: f85d 7b04 ldr.w r7, [sp], #4 - 8004f4c: 4770 bx lr + 80054c6: bf00 nop + 80054c8: 370c adds r7, #12 + 80054ca: 46bd mov sp, r7 + 80054cc: f85d 7b04 ldr.w r7, [sp], #4 + 80054d0: 4770 bx lr -08004f4e : +080054d2 : * @brief PWM Pulse finished callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) { - 8004f4e: b480 push {r7} - 8004f50: b083 sub sp, #12 - 8004f52: af00 add r7, sp, #0 - 8004f54: 6078 str r0, [r7, #4] + 80054d2: b480 push {r7} + 80054d4: b083 sub sp, #12 + 80054d6: af00 add r7, sp, #0 + 80054d8: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_PWM_PulseFinishedCallback could be implemented in the user file */ } - 8004f56: bf00 nop - 8004f58: 370c adds r7, #12 - 8004f5a: 46bd mov sp, r7 - 8004f5c: f85d 7b04 ldr.w r7, [sp], #4 - 8004f60: 4770 bx lr + 80054da: bf00 nop + 80054dc: 370c adds r7, #12 + 80054de: 46bd mov sp, r7 + 80054e0: f85d 7b04 ldr.w r7, [sp], #4 + 80054e4: 4770 bx lr -08004f62 : +080054e6 : * @brief Hall Trigger detection callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim) { - 8004f62: b480 push {r7} - 8004f64: b083 sub sp, #12 - 8004f66: af00 add r7, sp, #0 - 8004f68: 6078 str r0, [r7, #4] + 80054e6: b480 push {r7} + 80054e8: b083 sub sp, #12 + 80054ea: af00 add r7, sp, #0 + 80054ec: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIM_TriggerCallback could be implemented in the user file */ } - 8004f6a: bf00 nop - 8004f6c: 370c adds r7, #12 - 8004f6e: 46bd mov sp, r7 - 8004f70: f85d 7b04 ldr.w r7, [sp], #4 - 8004f74: 4770 bx lr + 80054ee: bf00 nop + 80054f0: 370c adds r7, #12 + 80054f2: 46bd mov sp, r7 + 80054f4: f85d 7b04 ldr.w r7, [sp], #4 + 80054f8: 4770 bx lr ... -08004f78 : +080054fc : * @param TIMx TIM peripheral * @param Structure TIM Base configuration structure * @retval None */ void TIM_Base_SetConfig(TIM_TypeDef *TIMx, TIM_Base_InitTypeDef *Structure) { - 8004f78: b480 push {r7} - 8004f7a: b085 sub sp, #20 - 8004f7c: af00 add r7, sp, #0 - 8004f7e: 6078 str r0, [r7, #4] - 8004f80: 6039 str r1, [r7, #0] + 80054fc: b480 push {r7} + 80054fe: b085 sub sp, #20 + 8005500: af00 add r7, sp, #0 + 8005502: 6078 str r0, [r7, #4] + 8005504: 6039 str r1, [r7, #0] uint32_t tmpcr1; tmpcr1 = TIMx->CR1; - 8004f82: 687b ldr r3, [r7, #4] - 8004f84: 681b ldr r3, [r3, #0] - 8004f86: 60fb str r3, [r7, #12] + 8005506: 687b ldr r3, [r7, #4] + 8005508: 681b ldr r3, [r3, #0] + 800550a: 60fb str r3, [r7, #12] /* Set TIM Time Base Unit parameters ---------------------------------------*/ if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx)) - 8004f88: 687b ldr r3, [r7, #4] - 8004f8a: 4a40 ldr r2, [pc, #256] ; (800508c ) - 8004f8c: 4293 cmp r3, r2 - 8004f8e: d013 beq.n 8004fb8 - 8004f90: 687b ldr r3, [r7, #4] - 8004f92: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 - 8004f96: d00f beq.n 8004fb8 - 8004f98: 687b ldr r3, [r7, #4] - 8004f9a: 4a3d ldr r2, [pc, #244] ; (8005090 ) - 8004f9c: 4293 cmp r3, r2 - 8004f9e: d00b beq.n 8004fb8 - 8004fa0: 687b ldr r3, [r7, #4] - 8004fa2: 4a3c ldr r2, [pc, #240] ; (8005094 ) - 8004fa4: 4293 cmp r3, r2 - 8004fa6: d007 beq.n 8004fb8 - 8004fa8: 687b ldr r3, [r7, #4] - 8004faa: 4a3b ldr r2, [pc, #236] ; (8005098 ) - 8004fac: 4293 cmp r3, r2 - 8004fae: d003 beq.n 8004fb8 - 8004fb0: 687b ldr r3, [r7, #4] - 8004fb2: 4a3a ldr r2, [pc, #232] ; (800509c ) - 8004fb4: 4293 cmp r3, r2 - 8004fb6: d108 bne.n 8004fca + 800550c: 687b ldr r3, [r7, #4] + 800550e: 4a40 ldr r2, [pc, #256] ; (8005610 ) + 8005510: 4293 cmp r3, r2 + 8005512: d013 beq.n 800553c + 8005514: 687b ldr r3, [r7, #4] + 8005516: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 + 800551a: d00f beq.n 800553c + 800551c: 687b ldr r3, [r7, #4] + 800551e: 4a3d ldr r2, [pc, #244] ; (8005614 ) + 8005520: 4293 cmp r3, r2 + 8005522: d00b beq.n 800553c + 8005524: 687b ldr r3, [r7, #4] + 8005526: 4a3c ldr r2, [pc, #240] ; (8005618 ) + 8005528: 4293 cmp r3, r2 + 800552a: d007 beq.n 800553c + 800552c: 687b ldr r3, [r7, #4] + 800552e: 4a3b ldr r2, [pc, #236] ; (800561c ) + 8005530: 4293 cmp r3, r2 + 8005532: d003 beq.n 800553c + 8005534: 687b ldr r3, [r7, #4] + 8005536: 4a3a ldr r2, [pc, #232] ; (8005620 ) + 8005538: 4293 cmp r3, r2 + 800553a: d108 bne.n 800554e { /* Select the Counter Mode */ tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS); - 8004fb8: 68fb ldr r3, [r7, #12] - 8004fba: f023 0370 bic.w r3, r3, #112 ; 0x70 - 8004fbe: 60fb str r3, [r7, #12] + 800553c: 68fb ldr r3, [r7, #12] + 800553e: f023 0370 bic.w r3, r3, #112 ; 0x70 + 8005542: 60fb str r3, [r7, #12] tmpcr1 |= Structure->CounterMode; - 8004fc0: 683b ldr r3, [r7, #0] - 8004fc2: 685b ldr r3, [r3, #4] - 8004fc4: 68fa ldr r2, [r7, #12] - 8004fc6: 4313 orrs r3, r2 - 8004fc8: 60fb str r3, [r7, #12] + 8005544: 683b ldr r3, [r7, #0] + 8005546: 685b ldr r3, [r3, #4] + 8005548: 68fa ldr r2, [r7, #12] + 800554a: 4313 orrs r3, r2 + 800554c: 60fb str r3, [r7, #12] } if (IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx)) - 8004fca: 687b ldr r3, [r7, #4] - 8004fcc: 4a2f ldr r2, [pc, #188] ; (800508c ) - 8004fce: 4293 cmp r3, r2 - 8004fd0: d02b beq.n 800502a - 8004fd2: 687b ldr r3, [r7, #4] - 8004fd4: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 - 8004fd8: d027 beq.n 800502a - 8004fda: 687b ldr r3, [r7, #4] - 8004fdc: 4a2c ldr r2, [pc, #176] ; (8005090 ) - 8004fde: 4293 cmp r3, r2 - 8004fe0: d023 beq.n 800502a - 8004fe2: 687b ldr r3, [r7, #4] - 8004fe4: 4a2b ldr r2, [pc, #172] ; (8005094 ) - 8004fe6: 4293 cmp r3, r2 - 8004fe8: d01f beq.n 800502a - 8004fea: 687b ldr r3, [r7, #4] - 8004fec: 4a2a ldr r2, [pc, #168] ; (8005098 ) - 8004fee: 4293 cmp r3, r2 - 8004ff0: d01b beq.n 800502a - 8004ff2: 687b ldr r3, [r7, #4] - 8004ff4: 4a29 ldr r2, [pc, #164] ; (800509c ) - 8004ff6: 4293 cmp r3, r2 - 8004ff8: d017 beq.n 800502a - 8004ffa: 687b ldr r3, [r7, #4] - 8004ffc: 4a28 ldr r2, [pc, #160] ; (80050a0 ) - 8004ffe: 4293 cmp r3, r2 - 8005000: d013 beq.n 800502a - 8005002: 687b ldr r3, [r7, #4] - 8005004: 4a27 ldr r2, [pc, #156] ; (80050a4 ) - 8005006: 4293 cmp r3, r2 - 8005008: d00f beq.n 800502a - 800500a: 687b ldr r3, [r7, #4] - 800500c: 4a26 ldr r2, [pc, #152] ; (80050a8 ) - 800500e: 4293 cmp r3, r2 - 8005010: d00b beq.n 800502a - 8005012: 687b ldr r3, [r7, #4] - 8005014: 4a25 ldr r2, [pc, #148] ; (80050ac ) - 8005016: 4293 cmp r3, r2 - 8005018: d007 beq.n 800502a - 800501a: 687b ldr r3, [r7, #4] - 800501c: 4a24 ldr r2, [pc, #144] ; (80050b0 ) - 800501e: 4293 cmp r3, r2 - 8005020: d003 beq.n 800502a - 8005022: 687b ldr r3, [r7, #4] - 8005024: 4a23 ldr r2, [pc, #140] ; (80050b4 ) - 8005026: 4293 cmp r3, r2 - 8005028: d108 bne.n 800503c + 800554e: 687b ldr r3, [r7, #4] + 8005550: 4a2f ldr r2, [pc, #188] ; (8005610 ) + 8005552: 4293 cmp r3, r2 + 8005554: d02b beq.n 80055ae + 8005556: 687b ldr r3, [r7, #4] + 8005558: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 + 800555c: d027 beq.n 80055ae + 800555e: 687b ldr r3, [r7, #4] + 8005560: 4a2c ldr r2, [pc, #176] ; (8005614 ) + 8005562: 4293 cmp r3, r2 + 8005564: d023 beq.n 80055ae + 8005566: 687b ldr r3, [r7, #4] + 8005568: 4a2b ldr r2, [pc, #172] ; (8005618 ) + 800556a: 4293 cmp r3, r2 + 800556c: d01f beq.n 80055ae + 800556e: 687b ldr r3, [r7, #4] + 8005570: 4a2a ldr r2, [pc, #168] ; (800561c ) + 8005572: 4293 cmp r3, r2 + 8005574: d01b beq.n 80055ae + 8005576: 687b ldr r3, [r7, #4] + 8005578: 4a29 ldr r2, [pc, #164] ; (8005620 ) + 800557a: 4293 cmp r3, r2 + 800557c: d017 beq.n 80055ae + 800557e: 687b ldr r3, [r7, #4] + 8005580: 4a28 ldr r2, [pc, #160] ; (8005624 ) + 8005582: 4293 cmp r3, r2 + 8005584: d013 beq.n 80055ae + 8005586: 687b ldr r3, [r7, #4] + 8005588: 4a27 ldr r2, [pc, #156] ; (8005628 ) + 800558a: 4293 cmp r3, r2 + 800558c: d00f beq.n 80055ae + 800558e: 687b ldr r3, [r7, #4] + 8005590: 4a26 ldr r2, [pc, #152] ; (800562c ) + 8005592: 4293 cmp r3, r2 + 8005594: d00b beq.n 80055ae + 8005596: 687b ldr r3, [r7, #4] + 8005598: 4a25 ldr r2, [pc, #148] ; (8005630 ) + 800559a: 4293 cmp r3, r2 + 800559c: d007 beq.n 80055ae + 800559e: 687b ldr r3, [r7, #4] + 80055a0: 4a24 ldr r2, [pc, #144] ; (8005634 ) + 80055a2: 4293 cmp r3, r2 + 80055a4: d003 beq.n 80055ae + 80055a6: 687b ldr r3, [r7, #4] + 80055a8: 4a23 ldr r2, [pc, #140] ; (8005638 ) + 80055aa: 4293 cmp r3, r2 + 80055ac: d108 bne.n 80055c0 { /* Set the clock division */ tmpcr1 &= ~TIM_CR1_CKD; - 800502a: 68fb ldr r3, [r7, #12] - 800502c: f423 7340 bic.w r3, r3, #768 ; 0x300 - 8005030: 60fb str r3, [r7, #12] + 80055ae: 68fb ldr r3, [r7, #12] + 80055b0: f423 7340 bic.w r3, r3, #768 ; 0x300 + 80055b4: 60fb str r3, [r7, #12] tmpcr1 |= (uint32_t)Structure->ClockDivision; - 8005032: 683b ldr r3, [r7, #0] - 8005034: 68db ldr r3, [r3, #12] - 8005036: 68fa ldr r2, [r7, #12] - 8005038: 4313 orrs r3, r2 - 800503a: 60fb str r3, [r7, #12] + 80055b6: 683b ldr r3, [r7, #0] + 80055b8: 68db ldr r3, [r3, #12] + 80055ba: 68fa ldr r2, [r7, #12] + 80055bc: 4313 orrs r3, r2 + 80055be: 60fb str r3, [r7, #12] } /* Set the auto-reload preload */ MODIFY_REG(tmpcr1, TIM_CR1_ARPE, Structure->AutoReloadPreload); - 800503c: 68fb ldr r3, [r7, #12] - 800503e: f023 0280 bic.w r2, r3, #128 ; 0x80 - 8005042: 683b ldr r3, [r7, #0] - 8005044: 695b ldr r3, [r3, #20] - 8005046: 4313 orrs r3, r2 - 8005048: 60fb str r3, [r7, #12] + 80055c0: 68fb ldr r3, [r7, #12] + 80055c2: f023 0280 bic.w r2, r3, #128 ; 0x80 + 80055c6: 683b ldr r3, [r7, #0] + 80055c8: 695b ldr r3, [r3, #20] + 80055ca: 4313 orrs r3, r2 + 80055cc: 60fb str r3, [r7, #12] TIMx->CR1 = tmpcr1; - 800504a: 687b ldr r3, [r7, #4] - 800504c: 68fa ldr r2, [r7, #12] - 800504e: 601a str r2, [r3, #0] + 80055ce: 687b ldr r3, [r7, #4] + 80055d0: 68fa ldr r2, [r7, #12] + 80055d2: 601a str r2, [r3, #0] /* Set the Autoreload value */ TIMx->ARR = (uint32_t)Structure->Period ; - 8005050: 683b ldr r3, [r7, #0] - 8005052: 689a ldr r2, [r3, #8] - 8005054: 687b ldr r3, [r7, #4] - 8005056: 62da str r2, [r3, #44] ; 0x2c + 80055d4: 683b ldr r3, [r7, #0] + 80055d6: 689a ldr r2, [r3, #8] + 80055d8: 687b ldr r3, [r7, #4] + 80055da: 62da str r2, [r3, #44] ; 0x2c /* Set the Prescaler value */ TIMx->PSC = Structure->Prescaler; - 8005058: 683b ldr r3, [r7, #0] - 800505a: 681a ldr r2, [r3, #0] - 800505c: 687b ldr r3, [r7, #4] - 800505e: 629a str r2, [r3, #40] ; 0x28 + 80055dc: 683b ldr r3, [r7, #0] + 80055de: 681a ldr r2, [r3, #0] + 80055e0: 687b ldr r3, [r7, #4] + 80055e2: 629a str r2, [r3, #40] ; 0x28 if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx)) - 8005060: 687b ldr r3, [r7, #4] - 8005062: 4a0a ldr r2, [pc, #40] ; (800508c ) - 8005064: 4293 cmp r3, r2 - 8005066: d003 beq.n 8005070 - 8005068: 687b ldr r3, [r7, #4] - 800506a: 4a0c ldr r2, [pc, #48] ; (800509c ) - 800506c: 4293 cmp r3, r2 - 800506e: d103 bne.n 8005078 + 80055e4: 687b ldr r3, [r7, #4] + 80055e6: 4a0a ldr r2, [pc, #40] ; (8005610 ) + 80055e8: 4293 cmp r3, r2 + 80055ea: d003 beq.n 80055f4 + 80055ec: 687b ldr r3, [r7, #4] + 80055ee: 4a0c ldr r2, [pc, #48] ; (8005620 ) + 80055f0: 4293 cmp r3, r2 + 80055f2: d103 bne.n 80055fc { /* Set the Repetition Counter value */ TIMx->RCR = Structure->RepetitionCounter; - 8005070: 683b ldr r3, [r7, #0] - 8005072: 691a ldr r2, [r3, #16] - 8005074: 687b ldr r3, [r7, #4] - 8005076: 631a str r2, [r3, #48] ; 0x30 + 80055f4: 683b ldr r3, [r7, #0] + 80055f6: 691a ldr r2, [r3, #16] + 80055f8: 687b ldr r3, [r7, #4] + 80055fa: 631a str r2, [r3, #48] ; 0x30 } /* Generate an update event to reload the Prescaler and the repetition counter (only for advanced timer) value immediately */ TIMx->EGR = TIM_EGR_UG; - 8005078: 687b ldr r3, [r7, #4] - 800507a: 2201 movs r2, #1 - 800507c: 615a str r2, [r3, #20] + 80055fc: 687b ldr r3, [r7, #4] + 80055fe: 2201 movs r2, #1 + 8005600: 615a str r2, [r3, #20] } - 800507e: bf00 nop - 8005080: 3714 adds r7, #20 - 8005082: 46bd mov sp, r7 - 8005084: f85d 7b04 ldr.w r7, [sp], #4 - 8005088: 4770 bx lr - 800508a: bf00 nop - 800508c: 40010000 .word 0x40010000 - 8005090: 40000400 .word 0x40000400 - 8005094: 40000800 .word 0x40000800 - 8005098: 40000c00 .word 0x40000c00 - 800509c: 40010400 .word 0x40010400 - 80050a0: 40014000 .word 0x40014000 - 80050a4: 40014400 .word 0x40014400 - 80050a8: 40014800 .word 0x40014800 - 80050ac: 40001800 .word 0x40001800 - 80050b0: 40001c00 .word 0x40001c00 - 80050b4: 40002000 .word 0x40002000 + 8005602: bf00 nop + 8005604: 3714 adds r7, #20 + 8005606: 46bd mov sp, r7 + 8005608: f85d 7b04 ldr.w r7, [sp], #4 + 800560c: 4770 bx lr + 800560e: bf00 nop + 8005610: 40010000 .word 0x40010000 + 8005614: 40000400 .word 0x40000400 + 8005618: 40000800 .word 0x40000800 + 800561c: 40000c00 .word 0x40000c00 + 8005620: 40010400 .word 0x40010400 + 8005624: 40014000 .word 0x40014000 + 8005628: 40014400 .word 0x40014400 + 800562c: 40014800 .word 0x40014800 + 8005630: 40001800 .word 0x40001800 + 8005634: 40001c00 .word 0x40001c00 + 8005638: 40002000 .word 0x40002000 -080050b8 : +0800563c : * mode. * @retval HAL status */ HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef *htim, TIM_MasterConfigTypeDef *sMasterConfig) { - 80050b8: b480 push {r7} - 80050ba: b085 sub sp, #20 - 80050bc: af00 add r7, sp, #0 - 80050be: 6078 str r0, [r7, #4] - 80050c0: 6039 str r1, [r7, #0] + 800563c: b480 push {r7} + 800563e: b085 sub sp, #20 + 8005640: af00 add r7, sp, #0 + 8005642: 6078 str r0, [r7, #4] + 8005644: 6039 str r1, [r7, #0] assert_param(IS_TIM_MASTER_INSTANCE(htim->Instance)); assert_param(IS_TIM_TRGO_SOURCE(sMasterConfig->MasterOutputTrigger)); assert_param(IS_TIM_MSM_STATE(sMasterConfig->MasterSlaveMode)); /* Check input state */ __HAL_LOCK(htim); - 80050c2: 687b ldr r3, [r7, #4] - 80050c4: f893 303c ldrb.w r3, [r3, #60] ; 0x3c - 80050c8: 2b01 cmp r3, #1 - 80050ca: d101 bne.n 80050d0 - 80050cc: 2302 movs r3, #2 - 80050ce: e05a b.n 8005186 - 80050d0: 687b ldr r3, [r7, #4] - 80050d2: 2201 movs r2, #1 - 80050d4: f883 203c strb.w r2, [r3, #60] ; 0x3c + 8005646: 687b ldr r3, [r7, #4] + 8005648: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 800564c: 2b01 cmp r3, #1 + 800564e: d101 bne.n 8005654 + 8005650: 2302 movs r3, #2 + 8005652: e05a b.n 800570a + 8005654: 687b ldr r3, [r7, #4] + 8005656: 2201 movs r2, #1 + 8005658: f883 203c strb.w r2, [r3, #60] ; 0x3c /* Change the handler state */ htim->State = HAL_TIM_STATE_BUSY; - 80050d8: 687b ldr r3, [r7, #4] - 80050da: 2202 movs r2, #2 - 80050dc: f883 203d strb.w r2, [r3, #61] ; 0x3d + 800565c: 687b ldr r3, [r7, #4] + 800565e: 2202 movs r2, #2 + 8005660: f883 203d strb.w r2, [r3, #61] ; 0x3d /* Get the TIMx CR2 register value */ tmpcr2 = htim->Instance->CR2; - 80050e0: 687b ldr r3, [r7, #4] - 80050e2: 681b ldr r3, [r3, #0] - 80050e4: 685b ldr r3, [r3, #4] - 80050e6: 60fb str r3, [r7, #12] + 8005664: 687b ldr r3, [r7, #4] + 8005666: 681b ldr r3, [r3, #0] + 8005668: 685b ldr r3, [r3, #4] + 800566a: 60fb str r3, [r7, #12] /* Get the TIMx SMCR register value */ tmpsmcr = htim->Instance->SMCR; - 80050e8: 687b ldr r3, [r7, #4] - 80050ea: 681b ldr r3, [r3, #0] - 80050ec: 689b ldr r3, [r3, #8] - 80050ee: 60bb str r3, [r7, #8] + 800566c: 687b ldr r3, [r7, #4] + 800566e: 681b ldr r3, [r3, #0] + 8005670: 689b ldr r3, [r3, #8] + 8005672: 60bb str r3, [r7, #8] /* Reset the MMS Bits */ tmpcr2 &= ~TIM_CR2_MMS; - 80050f0: 68fb ldr r3, [r7, #12] - 80050f2: f023 0370 bic.w r3, r3, #112 ; 0x70 - 80050f6: 60fb str r3, [r7, #12] + 8005674: 68fb ldr r3, [r7, #12] + 8005676: f023 0370 bic.w r3, r3, #112 ; 0x70 + 800567a: 60fb str r3, [r7, #12] /* Select the TRGO source */ tmpcr2 |= sMasterConfig->MasterOutputTrigger; - 80050f8: 683b ldr r3, [r7, #0] - 80050fa: 681b ldr r3, [r3, #0] - 80050fc: 68fa ldr r2, [r7, #12] - 80050fe: 4313 orrs r3, r2 - 8005100: 60fb str r3, [r7, #12] + 800567c: 683b ldr r3, [r7, #0] + 800567e: 681b ldr r3, [r3, #0] + 8005680: 68fa ldr r2, [r7, #12] + 8005682: 4313 orrs r3, r2 + 8005684: 60fb str r3, [r7, #12] /* Update TIMx CR2 */ htim->Instance->CR2 = tmpcr2; - 8005102: 687b ldr r3, [r7, #4] - 8005104: 681b ldr r3, [r3, #0] - 8005106: 68fa ldr r2, [r7, #12] - 8005108: 605a str r2, [r3, #4] + 8005686: 687b ldr r3, [r7, #4] + 8005688: 681b ldr r3, [r3, #0] + 800568a: 68fa ldr r2, [r7, #12] + 800568c: 605a str r2, [r3, #4] if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) - 800510a: 687b ldr r3, [r7, #4] - 800510c: 681b ldr r3, [r3, #0] - 800510e: 4a21 ldr r2, [pc, #132] ; (8005194 ) - 8005110: 4293 cmp r3, r2 - 8005112: d022 beq.n 800515a - 8005114: 687b ldr r3, [r7, #4] - 8005116: 681b ldr r3, [r3, #0] - 8005118: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 - 800511c: d01d beq.n 800515a - 800511e: 687b ldr r3, [r7, #4] - 8005120: 681b ldr r3, [r3, #0] - 8005122: 4a1d ldr r2, [pc, #116] ; (8005198 ) - 8005124: 4293 cmp r3, r2 - 8005126: d018 beq.n 800515a - 8005128: 687b ldr r3, [r7, #4] - 800512a: 681b ldr r3, [r3, #0] - 800512c: 4a1b ldr r2, [pc, #108] ; (800519c ) - 800512e: 4293 cmp r3, r2 - 8005130: d013 beq.n 800515a - 8005132: 687b ldr r3, [r7, #4] - 8005134: 681b ldr r3, [r3, #0] - 8005136: 4a1a ldr r2, [pc, #104] ; (80051a0 ) - 8005138: 4293 cmp r3, r2 - 800513a: d00e beq.n 800515a - 800513c: 687b ldr r3, [r7, #4] - 800513e: 681b ldr r3, [r3, #0] - 8005140: 4a18 ldr r2, [pc, #96] ; (80051a4 ) - 8005142: 4293 cmp r3, r2 - 8005144: d009 beq.n 800515a - 8005146: 687b ldr r3, [r7, #4] - 8005148: 681b ldr r3, [r3, #0] - 800514a: 4a17 ldr r2, [pc, #92] ; (80051a8 ) - 800514c: 4293 cmp r3, r2 - 800514e: d004 beq.n 800515a - 8005150: 687b ldr r3, [r7, #4] - 8005152: 681b ldr r3, [r3, #0] - 8005154: 4a15 ldr r2, [pc, #84] ; (80051ac ) - 8005156: 4293 cmp r3, r2 - 8005158: d10c bne.n 8005174 + 800568e: 687b ldr r3, [r7, #4] + 8005690: 681b ldr r3, [r3, #0] + 8005692: 4a21 ldr r2, [pc, #132] ; (8005718 ) + 8005694: 4293 cmp r3, r2 + 8005696: d022 beq.n 80056de + 8005698: 687b ldr r3, [r7, #4] + 800569a: 681b ldr r3, [r3, #0] + 800569c: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 + 80056a0: d01d beq.n 80056de + 80056a2: 687b ldr r3, [r7, #4] + 80056a4: 681b ldr r3, [r3, #0] + 80056a6: 4a1d ldr r2, [pc, #116] ; (800571c ) + 80056a8: 4293 cmp r3, r2 + 80056aa: d018 beq.n 80056de + 80056ac: 687b ldr r3, [r7, #4] + 80056ae: 681b ldr r3, [r3, #0] + 80056b0: 4a1b ldr r2, [pc, #108] ; (8005720 ) + 80056b2: 4293 cmp r3, r2 + 80056b4: d013 beq.n 80056de + 80056b6: 687b ldr r3, [r7, #4] + 80056b8: 681b ldr r3, [r3, #0] + 80056ba: 4a1a ldr r2, [pc, #104] ; (8005724 ) + 80056bc: 4293 cmp r3, r2 + 80056be: d00e beq.n 80056de + 80056c0: 687b ldr r3, [r7, #4] + 80056c2: 681b ldr r3, [r3, #0] + 80056c4: 4a18 ldr r2, [pc, #96] ; (8005728 ) + 80056c6: 4293 cmp r3, r2 + 80056c8: d009 beq.n 80056de + 80056ca: 687b ldr r3, [r7, #4] + 80056cc: 681b ldr r3, [r3, #0] + 80056ce: 4a17 ldr r2, [pc, #92] ; (800572c ) + 80056d0: 4293 cmp r3, r2 + 80056d2: d004 beq.n 80056de + 80056d4: 687b ldr r3, [r7, #4] + 80056d6: 681b ldr r3, [r3, #0] + 80056d8: 4a15 ldr r2, [pc, #84] ; (8005730 ) + 80056da: 4293 cmp r3, r2 + 80056dc: d10c bne.n 80056f8 { /* Reset the MSM Bit */ tmpsmcr &= ~TIM_SMCR_MSM; - 800515a: 68bb ldr r3, [r7, #8] - 800515c: f023 0380 bic.w r3, r3, #128 ; 0x80 - 8005160: 60bb str r3, [r7, #8] + 80056de: 68bb ldr r3, [r7, #8] + 80056e0: f023 0380 bic.w r3, r3, #128 ; 0x80 + 80056e4: 60bb str r3, [r7, #8] /* Set master mode */ tmpsmcr |= sMasterConfig->MasterSlaveMode; - 8005162: 683b ldr r3, [r7, #0] - 8005164: 685b ldr r3, [r3, #4] - 8005166: 68ba ldr r2, [r7, #8] - 8005168: 4313 orrs r3, r2 - 800516a: 60bb str r3, [r7, #8] + 80056e6: 683b ldr r3, [r7, #0] + 80056e8: 685b ldr r3, [r3, #4] + 80056ea: 68ba ldr r2, [r7, #8] + 80056ec: 4313 orrs r3, r2 + 80056ee: 60bb str r3, [r7, #8] /* Update TIMx SMCR */ htim->Instance->SMCR = tmpsmcr; - 800516c: 687b ldr r3, [r7, #4] - 800516e: 681b ldr r3, [r3, #0] - 8005170: 68ba ldr r2, [r7, #8] - 8005172: 609a str r2, [r3, #8] + 80056f0: 687b ldr r3, [r7, #4] + 80056f2: 681b ldr r3, [r3, #0] + 80056f4: 68ba ldr r2, [r7, #8] + 80056f6: 609a str r2, [r3, #8] } /* Change the htim state */ htim->State = HAL_TIM_STATE_READY; - 8005174: 687b ldr r3, [r7, #4] - 8005176: 2201 movs r2, #1 - 8005178: f883 203d strb.w r2, [r3, #61] ; 0x3d + 80056f8: 687b ldr r3, [r7, #4] + 80056fa: 2201 movs r2, #1 + 80056fc: f883 203d strb.w r2, [r3, #61] ; 0x3d __HAL_UNLOCK(htim); - 800517c: 687b ldr r3, [r7, #4] - 800517e: 2200 movs r2, #0 - 8005180: f883 203c strb.w r2, [r3, #60] ; 0x3c + 8005700: 687b ldr r3, [r7, #4] + 8005702: 2200 movs r2, #0 + 8005704: f883 203c strb.w r2, [r3, #60] ; 0x3c return HAL_OK; - 8005184: 2300 movs r3, #0 + 8005708: 2300 movs r3, #0 } - 8005186: 4618 mov r0, r3 - 8005188: 3714 adds r7, #20 - 800518a: 46bd mov sp, r7 - 800518c: f85d 7b04 ldr.w r7, [sp], #4 - 8005190: 4770 bx lr - 8005192: bf00 nop - 8005194: 40010000 .word 0x40010000 - 8005198: 40000400 .word 0x40000400 - 800519c: 40000800 .word 0x40000800 - 80051a0: 40000c00 .word 0x40000c00 - 80051a4: 40010400 .word 0x40010400 - 80051a8: 40014000 .word 0x40014000 - 80051ac: 40001800 .word 0x40001800 + 800570a: 4618 mov r0, r3 + 800570c: 3714 adds r7, #20 + 800570e: 46bd mov sp, r7 + 8005710: f85d 7b04 ldr.w r7, [sp], #4 + 8005714: 4770 bx lr + 8005716: bf00 nop + 8005718: 40010000 .word 0x40010000 + 800571c: 40000400 .word 0x40000400 + 8005720: 40000800 .word 0x40000800 + 8005724: 40000c00 .word 0x40000c00 + 8005728: 40010400 .word 0x40010400 + 800572c: 40014000 .word 0x40014000 + 8005730: 40001800 .word 0x40001800 -080051b0 : +08005734 : * @brief Hall commutation changed callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIMEx_CommutCallback(TIM_HandleTypeDef *htim) { - 80051b0: b480 push {r7} - 80051b2: b083 sub sp, #12 - 80051b4: af00 add r7, sp, #0 - 80051b6: 6078 str r0, [r7, #4] + 8005734: b480 push {r7} + 8005736: b083 sub sp, #12 + 8005738: af00 add r7, sp, #0 + 800573a: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIMEx_CommutCallback could be implemented in the user file */ } - 80051b8: bf00 nop - 80051ba: 370c adds r7, #12 - 80051bc: 46bd mov sp, r7 - 80051be: f85d 7b04 ldr.w r7, [sp], #4 - 80051c2: 4770 bx lr + 800573c: bf00 nop + 800573e: 370c adds r7, #12 + 8005740: 46bd mov sp, r7 + 8005742: f85d 7b04 ldr.w r7, [sp], #4 + 8005746: 4770 bx lr -080051c4 : +08005748 : * @brief Hall Break detection callback in non-blocking mode * @param htim TIM handle * @retval None */ __weak void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim) { - 80051c4: b480 push {r7} - 80051c6: b083 sub sp, #12 - 80051c8: af00 add r7, sp, #0 - 80051ca: 6078 str r0, [r7, #4] + 8005748: b480 push {r7} + 800574a: b083 sub sp, #12 + 800574c: af00 add r7, sp, #0 + 800574e: 6078 str r0, [r7, #4] UNUSED(htim); /* NOTE : This function should not be modified, when the callback is needed, the HAL_TIMEx_BreakCallback could be implemented in the user file */ } - 80051cc: bf00 nop - 80051ce: 370c adds r7, #12 - 80051d0: 46bd mov sp, r7 - 80051d2: f85d 7b04 ldr.w r7, [sp], #4 - 80051d6: 4770 bx lr + 8005750: bf00 nop + 8005752: 370c adds r7, #12 + 8005754: 46bd mov sp, r7 + 8005756: f85d 7b04 ldr.w r7, [sp], #4 + 800575a: 4770 bx lr -080051d8 <__errno>: - 80051d8: 4b01 ldr r3, [pc, #4] ; (80051e0 <__errno+0x8>) - 80051da: 6818 ldr r0, [r3, #0] - 80051dc: 4770 bx lr - 80051de: bf00 nop - 80051e0: 20000010 .word 0x20000010 +0800575c <__errno>: + 800575c: 4b01 ldr r3, [pc, #4] ; (8005764 <__errno+0x8>) + 800575e: 6818 ldr r0, [r3, #0] + 8005760: 4770 bx lr + 8005762: bf00 nop + 8005764: 20000010 .word 0x20000010 -080051e4 <__libc_init_array>: - 80051e4: b570 push {r4, r5, r6, lr} - 80051e6: 4e0d ldr r6, [pc, #52] ; (800521c <__libc_init_array+0x38>) - 80051e8: 4c0d ldr r4, [pc, #52] ; (8005220 <__libc_init_array+0x3c>) - 80051ea: 1ba4 subs r4, r4, r6 - 80051ec: 10a4 asrs r4, r4, #2 - 80051ee: 2500 movs r5, #0 - 80051f0: 42a5 cmp r5, r4 - 80051f2: d109 bne.n 8005208 <__libc_init_array+0x24> - 80051f4: 4e0b ldr r6, [pc, #44] ; (8005224 <__libc_init_array+0x40>) - 80051f6: 4c0c ldr r4, [pc, #48] ; (8005228 <__libc_init_array+0x44>) - 80051f8: f000 f8c8 bl 800538c <_init> - 80051fc: 1ba4 subs r4, r4, r6 - 80051fe: 10a4 asrs r4, r4, #2 - 8005200: 2500 movs r5, #0 - 8005202: 42a5 cmp r5, r4 - 8005204: d105 bne.n 8005212 <__libc_init_array+0x2e> - 8005206: bd70 pop {r4, r5, r6, pc} - 8005208: f856 3025 ldr.w r3, [r6, r5, lsl #2] - 800520c: 4798 blx r3 - 800520e: 3501 adds r5, #1 - 8005210: e7ee b.n 80051f0 <__libc_init_array+0xc> - 8005212: f856 3025 ldr.w r3, [r6, r5, lsl #2] - 8005216: 4798 blx r3 - 8005218: 3501 adds r5, #1 - 800521a: e7f2 b.n 8005202 <__libc_init_array+0x1e> - 800521c: 080053bc .word 0x080053bc - 8005220: 080053bc .word 0x080053bc - 8005224: 080053bc .word 0x080053bc - 8005228: 080053c0 .word 0x080053c0 +08005768 <__libc_init_array>: + 8005768: b570 push {r4, r5, r6, lr} + 800576a: 4e0d ldr r6, [pc, #52] ; (80057a0 <__libc_init_array+0x38>) + 800576c: 4c0d ldr r4, [pc, #52] ; (80057a4 <__libc_init_array+0x3c>) + 800576e: 1ba4 subs r4, r4, r6 + 8005770: 10a4 asrs r4, r4, #2 + 8005772: 2500 movs r5, #0 + 8005774: 42a5 cmp r5, r4 + 8005776: d109 bne.n 800578c <__libc_init_array+0x24> + 8005778: 4e0b ldr r6, [pc, #44] ; (80057a8 <__libc_init_array+0x40>) + 800577a: 4c0c ldr r4, [pc, #48] ; (80057ac <__libc_init_array+0x44>) + 800577c: f000 f8c8 bl 8005910 <_init> + 8005780: 1ba4 subs r4, r4, r6 + 8005782: 10a4 asrs r4, r4, #2 + 8005784: 2500 movs r5, #0 + 8005786: 42a5 cmp r5, r4 + 8005788: d105 bne.n 8005796 <__libc_init_array+0x2e> + 800578a: bd70 pop {r4, r5, r6, pc} + 800578c: f856 3025 ldr.w r3, [r6, r5, lsl #2] + 8005790: 4798 blx r3 + 8005792: 3501 adds r5, #1 + 8005794: e7ee b.n 8005774 <__libc_init_array+0xc> + 8005796: f856 3025 ldr.w r3, [r6, r5, lsl #2] + 800579a: 4798 blx r3 + 800579c: 3501 adds r5, #1 + 800579e: e7f2 b.n 8005786 <__libc_init_array+0x1e> + 80057a0: 08005940 .word 0x08005940 + 80057a4: 08005940 .word 0x08005940 + 80057a8: 08005940 .word 0x08005940 + 80057ac: 08005944 .word 0x08005944 -0800522c : - 800522c: 4402 add r2, r0 - 800522e: 4603 mov r3, r0 - 8005230: 4293 cmp r3, r2 - 8005232: d100 bne.n 8005236 - 8005234: 4770 bx lr - 8005236: f803 1b01 strb.w r1, [r3], #1 - 800523a: e7f9 b.n 8005230 +080057b0 : + 80057b0: 4402 add r2, r0 + 80057b2: 4603 mov r3, r0 + 80057b4: 4293 cmp r3, r2 + 80057b6: d100 bne.n 80057ba + 80057b8: 4770 bx lr + 80057ba: f803 1b01 strb.w r1, [r3], #1 + 80057be: e7f9 b.n 80057b4 -0800523c : - 800523c: b538 push {r3, r4, r5, lr} - 800523e: 4b13 ldr r3, [pc, #76] ; (800528c ) - 8005240: 681c ldr r4, [r3, #0] - 8005242: 6ba3 ldr r3, [r4, #56] ; 0x38 - 8005244: b97b cbnz r3, 8005266 - 8005246: 2018 movs r0, #24 - 8005248: f000 f82c bl 80052a4 - 800524c: 4a10 ldr r2, [pc, #64] ; (8005290 ) - 800524e: 4b11 ldr r3, [pc, #68] ; (8005294 ) - 8005250: 63a0 str r0, [r4, #56] ; 0x38 - 8005252: e9c0 2300 strd r2, r3, [r0] - 8005256: 4b10 ldr r3, [pc, #64] ; (8005298 ) - 8005258: 6083 str r3, [r0, #8] - 800525a: 230b movs r3, #11 - 800525c: 8183 strh r3, [r0, #12] - 800525e: 2201 movs r2, #1 - 8005260: 2300 movs r3, #0 - 8005262: e9c0 2304 strd r2, r3, [r0, #16] - 8005266: 6ba1 ldr r1, [r4, #56] ; 0x38 - 8005268: 480c ldr r0, [pc, #48] ; (800529c ) - 800526a: 690a ldr r2, [r1, #16] - 800526c: 694b ldr r3, [r1, #20] - 800526e: 4c0c ldr r4, [pc, #48] ; (80052a0 ) - 8005270: 4350 muls r0, r2 - 8005272: fb04 0003 mla r0, r4, r3, r0 - 8005276: fba2 2304 umull r2, r3, r2, r4 - 800527a: 4403 add r3, r0 - 800527c: 1c54 adds r4, r2, #1 - 800527e: f143 0500 adc.w r5, r3, #0 - 8005282: e9c1 4504 strd r4, r5, [r1, #16] - 8005286: f025 4000 bic.w r0, r5, #2147483648 ; 0x80000000 - 800528a: bd38 pop {r3, r4, r5, pc} - 800528c: 20000010 .word 0x20000010 - 8005290: abcd330e .word 0xabcd330e - 8005294: e66d1234 .word 0xe66d1234 - 8005298: 0005deec .word 0x0005deec - 800529c: 5851f42d .word 0x5851f42d - 80052a0: 4c957f2d .word 0x4c957f2d +080057c0 : + 80057c0: b538 push {r3, r4, r5, lr} + 80057c2: 4b13 ldr r3, [pc, #76] ; (8005810 ) + 80057c4: 681c ldr r4, [r3, #0] + 80057c6: 6ba3 ldr r3, [r4, #56] ; 0x38 + 80057c8: b97b cbnz r3, 80057ea + 80057ca: 2018 movs r0, #24 + 80057cc: f000 f82c bl 8005828 + 80057d0: 4a10 ldr r2, [pc, #64] ; (8005814 ) + 80057d2: 4b11 ldr r3, [pc, #68] ; (8005818 ) + 80057d4: 63a0 str r0, [r4, #56] ; 0x38 + 80057d6: e9c0 2300 strd r2, r3, [r0] + 80057da: 4b10 ldr r3, [pc, #64] ; (800581c ) + 80057dc: 6083 str r3, [r0, #8] + 80057de: 230b movs r3, #11 + 80057e0: 8183 strh r3, [r0, #12] + 80057e2: 2201 movs r2, #1 + 80057e4: 2300 movs r3, #0 + 80057e6: e9c0 2304 strd r2, r3, [r0, #16] + 80057ea: 6ba1 ldr r1, [r4, #56] ; 0x38 + 80057ec: 480c ldr r0, [pc, #48] ; (8005820 ) + 80057ee: 690a ldr r2, [r1, #16] + 80057f0: 694b ldr r3, [r1, #20] + 80057f2: 4c0c ldr r4, [pc, #48] ; (8005824 ) + 80057f4: 4350 muls r0, r2 + 80057f6: fb04 0003 mla r0, r4, r3, r0 + 80057fa: fba2 2304 umull r2, r3, r2, r4 + 80057fe: 4403 add r3, r0 + 8005800: 1c54 adds r4, r2, #1 + 8005802: f143 0500 adc.w r5, r3, #0 + 8005806: e9c1 4504 strd r4, r5, [r1, #16] + 800580a: f025 4000 bic.w r0, r5, #2147483648 ; 0x80000000 + 800580e: bd38 pop {r3, r4, r5, pc} + 8005810: 20000010 .word 0x20000010 + 8005814: abcd330e .word 0xabcd330e + 8005818: e66d1234 .word 0xe66d1234 + 800581c: 0005deec .word 0x0005deec + 8005820: 5851f42d .word 0x5851f42d + 8005824: 4c957f2d .word 0x4c957f2d -080052a4 : - 80052a4: 4b02 ldr r3, [pc, #8] ; (80052b0 ) - 80052a6: 4601 mov r1, r0 - 80052a8: 6818 ldr r0, [r3, #0] - 80052aa: f000 b803 b.w 80052b4 <_malloc_r> - 80052ae: bf00 nop - 80052b0: 20000010 .word 0x20000010 +08005828 : + 8005828: 4b02 ldr r3, [pc, #8] ; (8005834 ) + 800582a: 4601 mov r1, r0 + 800582c: 6818 ldr r0, [r3, #0] + 800582e: f000 b803 b.w 8005838 <_malloc_r> + 8005832: bf00 nop + 8005834: 20000010 .word 0x20000010 -080052b4 <_malloc_r>: - 80052b4: b570 push {r4, r5, r6, lr} - 80052b6: 1ccd adds r5, r1, #3 - 80052b8: f025 0503 bic.w r5, r5, #3 - 80052bc: 3508 adds r5, #8 - 80052be: 2d0c cmp r5, #12 - 80052c0: bf38 it cc - 80052c2: 250c movcc r5, #12 - 80052c4: 2d00 cmp r5, #0 - 80052c6: 4606 mov r6, r0 - 80052c8: db01 blt.n 80052ce <_malloc_r+0x1a> - 80052ca: 42a9 cmp r1, r5 - 80052cc: d903 bls.n 80052d6 <_malloc_r+0x22> - 80052ce: 230c movs r3, #12 - 80052d0: 6033 str r3, [r6, #0] - 80052d2: 2000 movs r0, #0 - 80052d4: bd70 pop {r4, r5, r6, pc} - 80052d6: f000 f857 bl 8005388 <__malloc_lock> - 80052da: 4a21 ldr r2, [pc, #132] ; (8005360 <_malloc_r+0xac>) - 80052dc: 6814 ldr r4, [r2, #0] - 80052de: 4621 mov r1, r4 - 80052e0: b991 cbnz r1, 8005308 <_malloc_r+0x54> - 80052e2: 4c20 ldr r4, [pc, #128] ; (8005364 <_malloc_r+0xb0>) - 80052e4: 6823 ldr r3, [r4, #0] - 80052e6: b91b cbnz r3, 80052f0 <_malloc_r+0x3c> - 80052e8: 4630 mov r0, r6 - 80052ea: f000 f83d bl 8005368 <_sbrk_r> - 80052ee: 6020 str r0, [r4, #0] - 80052f0: 4629 mov r1, r5 - 80052f2: 4630 mov r0, r6 - 80052f4: f000 f838 bl 8005368 <_sbrk_r> - 80052f8: 1c43 adds r3, r0, #1 - 80052fa: d124 bne.n 8005346 <_malloc_r+0x92> - 80052fc: 230c movs r3, #12 - 80052fe: 6033 str r3, [r6, #0] - 8005300: 4630 mov r0, r6 - 8005302: f000 f842 bl 800538a <__malloc_unlock> - 8005306: e7e4 b.n 80052d2 <_malloc_r+0x1e> - 8005308: 680b ldr r3, [r1, #0] - 800530a: 1b5b subs r3, r3, r5 - 800530c: d418 bmi.n 8005340 <_malloc_r+0x8c> - 800530e: 2b0b cmp r3, #11 - 8005310: d90f bls.n 8005332 <_malloc_r+0x7e> - 8005312: 600b str r3, [r1, #0] - 8005314: 50cd str r5, [r1, r3] - 8005316: 18cc adds r4, r1, r3 - 8005318: 4630 mov r0, r6 - 800531a: f000 f836 bl 800538a <__malloc_unlock> - 800531e: f104 000b add.w r0, r4, #11 - 8005322: 1d23 adds r3, r4, #4 - 8005324: f020 0007 bic.w r0, r0, #7 - 8005328: 1ac3 subs r3, r0, r3 - 800532a: d0d3 beq.n 80052d4 <_malloc_r+0x20> - 800532c: 425a negs r2, r3 - 800532e: 50e2 str r2, [r4, r3] - 8005330: e7d0 b.n 80052d4 <_malloc_r+0x20> - 8005332: 428c cmp r4, r1 - 8005334: 684b ldr r3, [r1, #4] - 8005336: bf16 itet ne - 8005338: 6063 strne r3, [r4, #4] - 800533a: 6013 streq r3, [r2, #0] - 800533c: 460c movne r4, r1 - 800533e: e7eb b.n 8005318 <_malloc_r+0x64> - 8005340: 460c mov r4, r1 - 8005342: 6849 ldr r1, [r1, #4] - 8005344: e7cc b.n 80052e0 <_malloc_r+0x2c> - 8005346: 1cc4 adds r4, r0, #3 - 8005348: f024 0403 bic.w r4, r4, #3 - 800534c: 42a0 cmp r0, r4 - 800534e: d005 beq.n 800535c <_malloc_r+0xa8> - 8005350: 1a21 subs r1, r4, r0 - 8005352: 4630 mov r0, r6 - 8005354: f000 f808 bl 8005368 <_sbrk_r> - 8005358: 3001 adds r0, #1 - 800535a: d0cf beq.n 80052fc <_malloc_r+0x48> - 800535c: 6025 str r5, [r4, #0] - 800535e: e7db b.n 8005318 <_malloc_r+0x64> - 8005360: 200003ac .word 0x200003ac - 8005364: 200003b0 .word 0x200003b0 +08005838 <_malloc_r>: + 8005838: b570 push {r4, r5, r6, lr} + 800583a: 1ccd adds r5, r1, #3 + 800583c: f025 0503 bic.w r5, r5, #3 + 8005840: 3508 adds r5, #8 + 8005842: 2d0c cmp r5, #12 + 8005844: bf38 it cc + 8005846: 250c movcc r5, #12 + 8005848: 2d00 cmp r5, #0 + 800584a: 4606 mov r6, r0 + 800584c: db01 blt.n 8005852 <_malloc_r+0x1a> + 800584e: 42a9 cmp r1, r5 + 8005850: d903 bls.n 800585a <_malloc_r+0x22> + 8005852: 230c movs r3, #12 + 8005854: 6033 str r3, [r6, #0] + 8005856: 2000 movs r0, #0 + 8005858: bd70 pop {r4, r5, r6, pc} + 800585a: f000 f857 bl 800590c <__malloc_lock> + 800585e: 4a21 ldr r2, [pc, #132] ; (80058e4 <_malloc_r+0xac>) + 8005860: 6814 ldr r4, [r2, #0] + 8005862: 4621 mov r1, r4 + 8005864: b991 cbnz r1, 800588c <_malloc_r+0x54> + 8005866: 4c20 ldr r4, [pc, #128] ; (80058e8 <_malloc_r+0xb0>) + 8005868: 6823 ldr r3, [r4, #0] + 800586a: b91b cbnz r3, 8005874 <_malloc_r+0x3c> + 800586c: 4630 mov r0, r6 + 800586e: f000 f83d bl 80058ec <_sbrk_r> + 8005872: 6020 str r0, [r4, #0] + 8005874: 4629 mov r1, r5 + 8005876: 4630 mov r0, r6 + 8005878: f000 f838 bl 80058ec <_sbrk_r> + 800587c: 1c43 adds r3, r0, #1 + 800587e: d124 bne.n 80058ca <_malloc_r+0x92> + 8005880: 230c movs r3, #12 + 8005882: 6033 str r3, [r6, #0] + 8005884: 4630 mov r0, r6 + 8005886: f000 f842 bl 800590e <__malloc_unlock> + 800588a: e7e4 b.n 8005856 <_malloc_r+0x1e> + 800588c: 680b ldr r3, [r1, #0] + 800588e: 1b5b subs r3, r3, r5 + 8005890: d418 bmi.n 80058c4 <_malloc_r+0x8c> + 8005892: 2b0b cmp r3, #11 + 8005894: d90f bls.n 80058b6 <_malloc_r+0x7e> + 8005896: 600b str r3, [r1, #0] + 8005898: 50cd str r5, [r1, r3] + 800589a: 18cc adds r4, r1, r3 + 800589c: 4630 mov r0, r6 + 800589e: f000 f836 bl 800590e <__malloc_unlock> + 80058a2: f104 000b add.w r0, r4, #11 + 80058a6: 1d23 adds r3, r4, #4 + 80058a8: f020 0007 bic.w r0, r0, #7 + 80058ac: 1ac3 subs r3, r0, r3 + 80058ae: d0d3 beq.n 8005858 <_malloc_r+0x20> + 80058b0: 425a negs r2, r3 + 80058b2: 50e2 str r2, [r4, r3] + 80058b4: e7d0 b.n 8005858 <_malloc_r+0x20> + 80058b6: 428c cmp r4, r1 + 80058b8: 684b ldr r3, [r1, #4] + 80058ba: bf16 itet ne + 80058bc: 6063 strne r3, [r4, #4] + 80058be: 6013 streq r3, [r2, #0] + 80058c0: 460c movne r4, r1 + 80058c2: e7eb b.n 800589c <_malloc_r+0x64> + 80058c4: 460c mov r4, r1 + 80058c6: 6849 ldr r1, [r1, #4] + 80058c8: e7cc b.n 8005864 <_malloc_r+0x2c> + 80058ca: 1cc4 adds r4, r0, #3 + 80058cc: f024 0403 bic.w r4, r4, #3 + 80058d0: 42a0 cmp r0, r4 + 80058d2: d005 beq.n 80058e0 <_malloc_r+0xa8> + 80058d4: 1a21 subs r1, r4, r0 + 80058d6: 4630 mov r0, r6 + 80058d8: f000 f808 bl 80058ec <_sbrk_r> + 80058dc: 3001 adds r0, #1 + 80058de: d0cf beq.n 8005880 <_malloc_r+0x48> + 80058e0: 6025 str r5, [r4, #0] + 80058e2: e7db b.n 800589c <_malloc_r+0x64> + 80058e4: 200003ac .word 0x200003ac + 80058e8: 200003b0 .word 0x200003b0 -08005368 <_sbrk_r>: - 8005368: b538 push {r3, r4, r5, lr} - 800536a: 4c06 ldr r4, [pc, #24] ; (8005384 <_sbrk_r+0x1c>) - 800536c: 2300 movs r3, #0 - 800536e: 4605 mov r5, r0 - 8005370: 4608 mov r0, r1 - 8005372: 6023 str r3, [r4, #0] - 8005374: f7fd fcb0 bl 8002cd8 <_sbrk> - 8005378: 1c43 adds r3, r0, #1 - 800537a: d102 bne.n 8005382 <_sbrk_r+0x1a> - 800537c: 6823 ldr r3, [r4, #0] - 800537e: b103 cbz r3, 8005382 <_sbrk_r+0x1a> - 8005380: 602b str r3, [r5, #0] - 8005382: bd38 pop {r3, r4, r5, pc} - 8005384: 2000049c .word 0x2000049c +080058ec <_sbrk_r>: + 80058ec: b538 push {r3, r4, r5, lr} + 80058ee: 4c06 ldr r4, [pc, #24] ; (8005908 <_sbrk_r+0x1c>) + 80058f0: 2300 movs r3, #0 + 80058f2: 4605 mov r5, r0 + 80058f4: 4608 mov r0, r1 + 80058f6: 6023 str r3, [r4, #0] + 80058f8: f7fd fcb0 bl 800325c <_sbrk> + 80058fc: 1c43 adds r3, r0, #1 + 80058fe: d102 bne.n 8005906 <_sbrk_r+0x1a> + 8005900: 6823 ldr r3, [r4, #0] + 8005902: b103 cbz r3, 8005906 <_sbrk_r+0x1a> + 8005904: 602b str r3, [r5, #0] + 8005906: bd38 pop {r3, r4, r5, pc} + 8005908: 2000049c .word 0x2000049c -08005388 <__malloc_lock>: - 8005388: 4770 bx lr +0800590c <__malloc_lock>: + 800590c: 4770 bx lr -0800538a <__malloc_unlock>: - 800538a: 4770 bx lr +0800590e <__malloc_unlock>: + 800590e: 4770 bx lr -0800538c <_init>: - 800538c: b5f8 push {r3, r4, r5, r6, r7, lr} - 800538e: bf00 nop - 8005390: bcf8 pop {r3, r4, r5, r6, r7} - 8005392: bc08 pop {r3} - 8005394: 469e mov lr, r3 - 8005396: 4770 bx lr +08005910 <_init>: + 8005910: b5f8 push {r3, r4, r5, r6, r7, lr} + 8005912: bf00 nop + 8005914: bcf8 pop {r3, r4, r5, r6, r7} + 8005916: bc08 pop {r3} + 8005918: 469e mov lr, r3 + 800591a: 4770 bx lr -08005398 <_fini>: - 8005398: b5f8 push {r3, r4, r5, r6, r7, lr} - 800539a: bf00 nop - 800539c: bcf8 pop {r3, r4, r5, r6, r7} - 800539e: bc08 pop {r3} - 80053a0: 469e mov lr, r3 - 80053a2: 4770 bx lr +0800591c <_fini>: + 800591c: b5f8 push {r3, r4, r5, r6, r7, lr} + 800591e: bf00 nop + 8005920: bcf8 pop {r3, r4, r5, r6, r7} + 8005922: bc08 pop {r3} + 8005924: 469e mov lr, r3 + 8005926: 4770 bx lr diff --git a/Debug/STM32F429I-DISC1_LEDFaceMask-Rough.map b/Debug/STM32F429I-DISC1_LEDFaceMask-Rough.map index 28846d4..27f47c8 100644 --- a/Debug/STM32F429I-DISC1_LEDFaceMask-Rough.map +++ b/Debug/STM32F429I-DISC1_LEDFaceMask-Rough.map @@ -136,9 +136,6 @@ Discarded input sections .text 0x0000000000000000 0x0 Core/Src/main.o .data 0x0000000000000000 0x0 Core/Src/main.o .bss 0x0000000000000000 0x0 Core/Src/main.o - .text.ITM_SendChar - 0x0000000000000000 0x4e Core/Src/main.o - .text._write 0x0000000000000000 0x38 Core/Src/main.o .group 0x0000000000000000 0xc Core/Src/stm32f4xx_hal_msp.o .group 0x0000000000000000 0xc Core/Src/stm32f4xx_hal_msp.o .group 0x0000000000000000 0xc Core/Src/stm32f4xx_hal_msp.o @@ -3164,7 +3161,7 @@ LOAD b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm 0x0000000008000000 g_pfnVectors 0x00000000080001ac . = ALIGN (0x4) -.text 0x00000000080001b0 0x51f4 +.text 0x00000000080001b0 0x5778 0x00000000080001b0 . = ALIGN (0x4) *(.text) .text 0x00000000080001b0 0x40 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o @@ -3200,468 +3197,470 @@ LOAD b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm 0x0000000008000cc8 __aeabi_idiv0 0x0000000008000cc8 __aeabi_ldiv0 *(.text*) - .text.main 0x0000000008000ccc 0xb4 Core/Src/main.o + .text.main 0x0000000008000ccc 0xc0 Core/Src/main.o 0x0000000008000ccc main .text.SystemClock_Config - 0x0000000008000d80 0xd4 Core/Src/main.o - 0x0000000008000d80 SystemClock_Config + 0x0000000008000d8c 0xd4 Core/Src/main.o + 0x0000000008000d8c SystemClock_Config .text.MX_ADC3_Init - 0x0000000008000e54 0xa8 Core/Src/main.o + 0x0000000008000e60 0xa8 Core/Src/main.o .text.MX_SPI4_Init - 0x0000000008000efc 0x6c Core/Src/main.o + 0x0000000008000f08 0x6c Core/Src/main.o .text.MX_TIM6_Init - 0x0000000008000f68 0x80 Core/Src/main.o + 0x0000000008000f74 0x80 Core/Src/main.o .text.MX_GPIO_Init - 0x0000000008000fe8 0x500 Core/Src/main.o + 0x0000000008000ff4 0x500 Core/Src/main.o .text.getSoundLevel - 0x00000000080014e8 0xe4 Core/Src/main.o - 0x00000000080014e8 getSoundLevel + 0x00000000080014f4 0xe4 Core/Src/main.o + 0x00000000080014f4 getSoundLevel .text.LEDDesign_Off - 0x00000000080015cc 0x50 Core/Src/main.o - 0x00000000080015cc LEDDesign_Off + 0x00000000080015d8 0x50 Core/Src/main.o + 0x00000000080015d8 LEDDesign_Off .text.LEDDesign_ColorWhite - 0x000000000800161c 0x50 Core/Src/main.o - 0x000000000800161c LEDDesign_ColorWhite + 0x0000000008001628 0x50 Core/Src/main.o + 0x0000000008001628 LEDDesign_ColorWhite .text.LEDDesign_ColorBlue - 0x000000000800166c 0x80 Core/Src/main.o - 0x000000000800166c LEDDesign_ColorBlue + 0x0000000008001678 0x80 Core/Src/main.o + 0x0000000008001678 LEDDesign_ColorBlue .text.LEDDesign_ColorGreen - 0x00000000080016ec 0x80 Core/Src/main.o - 0x00000000080016ec LEDDesign_ColorGreen + 0x00000000080016f8 0x80 Core/Src/main.o + 0x00000000080016f8 LEDDesign_ColorGreen .text.LEDDesign_ColorRed - 0x000000000800176c 0x80 Core/Src/main.o - 0x000000000800176c LEDDesign_ColorRed + 0x0000000008001778 0x80 Core/Src/main.o + 0x0000000008001778 LEDDesign_ColorRed .text.LEDDesign_Crazy - 0x00000000080017ec 0x80 Core/Src/main.o - 0x00000000080017ec LEDDesign_Crazy - *fill* 0x000000000800186c 0x4 + 0x00000000080017f8 0x80 Core/Src/main.o + 0x00000000080017f8 LEDDesign_Crazy .text.LEDDesign_Smile - 0x0000000008001870 0xa20 Core/Src/main.o - 0x0000000008001870 LEDDesign_Smile + 0x0000000008001878 0x588 Core/Src/main.o + 0x0000000008001878 LEDDesign_Smile + .text.LEDDesign_Smile_Audio + 0x0000000008001e00 0xa20 Core/Src/main.o + 0x0000000008001e00 LEDDesign_Smile_Audio .text.LEDDesign_SuperCrazy - 0x0000000008002290 0x104 Core/Src/main.o - 0x0000000008002290 LEDDesign_SuperCrazy + 0x0000000008002820 0x104 Core/Src/main.o + 0x0000000008002820 LEDDesign_SuperCrazy .text.lookupLED - 0x0000000008002394 0x2e0 Core/Src/main.o - 0x0000000008002394 lookupLED - .text.setLED 0x0000000008002674 0x60 Core/Src/main.o - 0x0000000008002674 setLED + 0x0000000008002924 0x2e0 Core/Src/main.o + 0x0000000008002924 lookupLED + .text.setLED 0x0000000008002c04 0x60 Core/Src/main.o + 0x0000000008002c04 setLED .text.updateWS2812BData - 0x00000000080026d4 0x340 Core/Src/main.o - 0x00000000080026d4 updateWS2812BData + 0x0000000008002c64 0x340 Core/Src/main.o + 0x0000000008002c64 updateWS2812BData .text.Error_Handler - 0x0000000008002a14 0xe Core/Src/main.o - 0x0000000008002a14 Error_Handler - *fill* 0x0000000008002a22 0x2 + 0x0000000008002fa4 0xe Core/Src/main.o + 0x0000000008002fa4 Error_Handler + *fill* 0x0000000008002fb2 0x2 .text.HAL_MspInit - 0x0000000008002a24 0x50 Core/Src/stm32f4xx_hal_msp.o - 0x0000000008002a24 HAL_MspInit + 0x0000000008002fb4 0x50 Core/Src/stm32f4xx_hal_msp.o + 0x0000000008002fb4 HAL_MspInit .text.HAL_ADC_MspInit - 0x0000000008002a74 0x88 Core/Src/stm32f4xx_hal_msp.o - 0x0000000008002a74 HAL_ADC_MspInit + 0x0000000008003004 0x88 Core/Src/stm32f4xx_hal_msp.o + 0x0000000008003004 HAL_ADC_MspInit .text.HAL_SPI_MspInit - 0x0000000008002afc 0xa0 Core/Src/stm32f4xx_hal_msp.o - 0x0000000008002afc HAL_SPI_MspInit + 0x000000000800308c 0xa0 Core/Src/stm32f4xx_hal_msp.o + 0x000000000800308c HAL_SPI_MspInit .text.HAL_TIM_Base_MspInit - 0x0000000008002b9c 0x50 Core/Src/stm32f4xx_hal_msp.o - 0x0000000008002b9c HAL_TIM_Base_MspInit + 0x000000000800312c 0x50 Core/Src/stm32f4xx_hal_msp.o + 0x000000000800312c HAL_TIM_Base_MspInit .text.NMI_Handler - 0x0000000008002bec 0xe Core/Src/stm32f4xx_it.o - 0x0000000008002bec NMI_Handler + 0x000000000800317c 0xe Core/Src/stm32f4xx_it.o + 0x000000000800317c NMI_Handler .text.HardFault_Handler - 0x0000000008002bfa 0x6 Core/Src/stm32f4xx_it.o - 0x0000000008002bfa HardFault_Handler + 0x000000000800318a 0x6 Core/Src/stm32f4xx_it.o + 0x000000000800318a HardFault_Handler .text.MemManage_Handler - 0x0000000008002c00 0x6 Core/Src/stm32f4xx_it.o - 0x0000000008002c00 MemManage_Handler + 0x0000000008003190 0x6 Core/Src/stm32f4xx_it.o + 0x0000000008003190 MemManage_Handler .text.BusFault_Handler - 0x0000000008002c06 0x6 Core/Src/stm32f4xx_it.o - 0x0000000008002c06 BusFault_Handler + 0x0000000008003196 0x6 Core/Src/stm32f4xx_it.o + 0x0000000008003196 BusFault_Handler .text.UsageFault_Handler - 0x0000000008002c0c 0x6 Core/Src/stm32f4xx_it.o - 0x0000000008002c0c UsageFault_Handler + 0x000000000800319c 0x6 Core/Src/stm32f4xx_it.o + 0x000000000800319c UsageFault_Handler .text.SVC_Handler - 0x0000000008002c12 0xe Core/Src/stm32f4xx_it.o - 0x0000000008002c12 SVC_Handler + 0x00000000080031a2 0xe Core/Src/stm32f4xx_it.o + 0x00000000080031a2 SVC_Handler .text.DebugMon_Handler - 0x0000000008002c20 0xe Core/Src/stm32f4xx_it.o - 0x0000000008002c20 DebugMon_Handler + 0x00000000080031b0 0xe Core/Src/stm32f4xx_it.o + 0x00000000080031b0 DebugMon_Handler .text.PendSV_Handler - 0x0000000008002c2e 0xe Core/Src/stm32f4xx_it.o - 0x0000000008002c2e PendSV_Handler + 0x00000000080031be 0xe Core/Src/stm32f4xx_it.o + 0x00000000080031be PendSV_Handler .text.SysTick_Handler - 0x0000000008002c3c 0xc Core/Src/stm32f4xx_it.o - 0x0000000008002c3c SysTick_Handler + 0x00000000080031cc 0xc Core/Src/stm32f4xx_it.o + 0x00000000080031cc SysTick_Handler .text.EXTI0_IRQHandler - 0x0000000008002c48 0x24 Core/Src/stm32f4xx_it.o - 0x0000000008002c48 EXTI0_IRQHandler + 0x00000000080031d8 0x24 Core/Src/stm32f4xx_it.o + 0x00000000080031d8 EXTI0_IRQHandler .text.TIM6_DAC_IRQHandler - 0x0000000008002c6c 0x48 Core/Src/stm32f4xx_it.o - 0x0000000008002c6c TIM6_DAC_IRQHandler + 0x00000000080031fc 0x3c Core/Src/stm32f4xx_it.o + 0x00000000080031fc TIM6_DAC_IRQHandler .text.SPI4_IRQHandler - 0x0000000008002cb4 0x24 Core/Src/stm32f4xx_it.o - 0x0000000008002cb4 SPI4_IRQHandler - .text._sbrk 0x0000000008002cd8 0x6c Core/Src/sysmem.o - 0x0000000008002cd8 _sbrk + 0x0000000008003238 0x24 Core/Src/stm32f4xx_it.o + 0x0000000008003238 SPI4_IRQHandler + .text._sbrk 0x000000000800325c 0x6c Core/Src/sysmem.o + 0x000000000800325c _sbrk .text.SystemInit - 0x0000000008002d44 0x2c Core/Src/system_stm32f4xx.o - 0x0000000008002d44 SystemInit + 0x00000000080032c8 0x2c Core/Src/system_stm32f4xx.o + 0x00000000080032c8 SystemInit .text.Reset_Handler - 0x0000000008002d70 0x50 Core/Startup/startup_stm32f429zitx.o - 0x0000000008002d70 Reset_Handler + 0x00000000080032f4 0x50 Core/Startup/startup_stm32f429zitx.o + 0x00000000080032f4 Reset_Handler .text.Default_Handler - 0x0000000008002dc0 0x2 Core/Startup/startup_stm32f429zitx.o - 0x0000000008002dc0 RTC_Alarm_IRQHandler - 0x0000000008002dc0 HASH_RNG_IRQHandler - 0x0000000008002dc0 EXTI2_IRQHandler - 0x0000000008002dc0 TIM8_CC_IRQHandler - 0x0000000008002dc0 UART8_IRQHandler - 0x0000000008002dc0 TIM1_CC_IRQHandler - 0x0000000008002dc0 DMA2_Stream5_IRQHandler - 0x0000000008002dc0 DMA1_Stream5_IRQHandler - 0x0000000008002dc0 PVD_IRQHandler - 0x0000000008002dc0 SDIO_IRQHandler - 0x0000000008002dc0 TAMP_STAMP_IRQHandler - 0x0000000008002dc0 CAN2_RX1_IRQHandler - 0x0000000008002dc0 EXTI3_IRQHandler - 0x0000000008002dc0 TIM8_TRG_COM_TIM14_IRQHandler - 0x0000000008002dc0 TIM1_UP_TIM10_IRQHandler - 0x0000000008002dc0 TIM8_UP_TIM13_IRQHandler - 0x0000000008002dc0 I2C3_ER_IRQHandler - 0x0000000008002dc0 I2C2_EV_IRQHandler - 0x0000000008002dc0 DMA1_Stream2_IRQHandler - 0x0000000008002dc0 CAN1_RX0_IRQHandler - 0x0000000008002dc0 FPU_IRQHandler - 0x0000000008002dc0 OTG_HS_WKUP_IRQHandler - 0x0000000008002dc0 LTDC_ER_IRQHandler - 0x0000000008002dc0 CAN2_SCE_IRQHandler - 0x0000000008002dc0 DMA2_Stream2_IRQHandler - 0x0000000008002dc0 SPI1_IRQHandler - 0x0000000008002dc0 TIM1_BRK_TIM9_IRQHandler - 0x0000000008002dc0 DCMI_IRQHandler - 0x0000000008002dc0 CAN2_RX0_IRQHandler - 0x0000000008002dc0 DMA2_Stream3_IRQHandler - 0x0000000008002dc0 USART6_IRQHandler - 0x0000000008002dc0 USART3_IRQHandler - 0x0000000008002dc0 CAN1_RX1_IRQHandler - 0x0000000008002dc0 UART5_IRQHandler - 0x0000000008002dc0 DMA2_Stream0_IRQHandler - 0x0000000008002dc0 TIM4_IRQHandler - 0x0000000008002dc0 I2C1_EV_IRQHandler - 0x0000000008002dc0 DMA1_Stream6_IRQHandler - 0x0000000008002dc0 DMA1_Stream1_IRQHandler - 0x0000000008002dc0 UART4_IRQHandler - 0x0000000008002dc0 TIM3_IRQHandler - 0x0000000008002dc0 RCC_IRQHandler - 0x0000000008002dc0 TIM8_BRK_TIM12_IRQHandler - 0x0000000008002dc0 Default_Handler - 0x0000000008002dc0 EXTI15_10_IRQHandler - 0x0000000008002dc0 ADC_IRQHandler - 0x0000000008002dc0 DMA1_Stream7_IRQHandler - 0x0000000008002dc0 SPI5_IRQHandler - 0x0000000008002dc0 TIM7_IRQHandler - 0x0000000008002dc0 CAN2_TX_IRQHandler - 0x0000000008002dc0 TIM5_IRQHandler - 0x0000000008002dc0 DMA2_Stream7_IRQHandler - 0x0000000008002dc0 I2C3_EV_IRQHandler - 0x0000000008002dc0 EXTI9_5_IRQHandler - 0x0000000008002dc0 RTC_WKUP_IRQHandler - 0x0000000008002dc0 LTDC_IRQHandler - 0x0000000008002dc0 ETH_WKUP_IRQHandler - 0x0000000008002dc0 SPI2_IRQHandler - 0x0000000008002dc0 OTG_HS_EP1_IN_IRQHandler - 0x0000000008002dc0 DMA1_Stream0_IRQHandler - 0x0000000008002dc0 CAN1_TX_IRQHandler - 0x0000000008002dc0 EXTI4_IRQHandler - 0x0000000008002dc0 ETH_IRQHandler - 0x0000000008002dc0 OTG_HS_EP1_OUT_IRQHandler - 0x0000000008002dc0 WWDG_IRQHandler - 0x0000000008002dc0 SPI6_IRQHandler - 0x0000000008002dc0 TIM2_IRQHandler - 0x0000000008002dc0 OTG_FS_WKUP_IRQHandler - 0x0000000008002dc0 TIM1_TRG_COM_TIM11_IRQHandler - 0x0000000008002dc0 OTG_HS_IRQHandler - 0x0000000008002dc0 DMA2D_IRQHandler - 0x0000000008002dc0 EXTI1_IRQHandler - 0x0000000008002dc0 UART7_IRQHandler - 0x0000000008002dc0 USART2_IRQHandler - 0x0000000008002dc0 I2C2_ER_IRQHandler - 0x0000000008002dc0 DMA2_Stream1_IRQHandler - 0x0000000008002dc0 CAN1_SCE_IRQHandler - 0x0000000008002dc0 FLASH_IRQHandler - 0x0000000008002dc0 DMA2_Stream4_IRQHandler - 0x0000000008002dc0 USART1_IRQHandler - 0x0000000008002dc0 OTG_FS_IRQHandler - 0x0000000008002dc0 SPI3_IRQHandler - 0x0000000008002dc0 DMA1_Stream4_IRQHandler - 0x0000000008002dc0 I2C1_ER_IRQHandler - 0x0000000008002dc0 FMC_IRQHandler - 0x0000000008002dc0 DMA2_Stream6_IRQHandler - 0x0000000008002dc0 SAI1_IRQHandler - 0x0000000008002dc0 DMA1_Stream3_IRQHandler - *fill* 0x0000000008002dc2 0x2 + 0x0000000008003344 0x2 Core/Startup/startup_stm32f429zitx.o + 0x0000000008003344 RTC_Alarm_IRQHandler + 0x0000000008003344 HASH_RNG_IRQHandler + 0x0000000008003344 EXTI2_IRQHandler + 0x0000000008003344 TIM8_CC_IRQHandler + 0x0000000008003344 UART8_IRQHandler + 0x0000000008003344 TIM1_CC_IRQHandler + 0x0000000008003344 DMA2_Stream5_IRQHandler + 0x0000000008003344 DMA1_Stream5_IRQHandler + 0x0000000008003344 PVD_IRQHandler + 0x0000000008003344 SDIO_IRQHandler + 0x0000000008003344 TAMP_STAMP_IRQHandler + 0x0000000008003344 CAN2_RX1_IRQHandler + 0x0000000008003344 EXTI3_IRQHandler + 0x0000000008003344 TIM8_TRG_COM_TIM14_IRQHandler + 0x0000000008003344 TIM1_UP_TIM10_IRQHandler + 0x0000000008003344 TIM8_UP_TIM13_IRQHandler + 0x0000000008003344 I2C3_ER_IRQHandler + 0x0000000008003344 I2C2_EV_IRQHandler + 0x0000000008003344 DMA1_Stream2_IRQHandler + 0x0000000008003344 CAN1_RX0_IRQHandler + 0x0000000008003344 FPU_IRQHandler + 0x0000000008003344 OTG_HS_WKUP_IRQHandler + 0x0000000008003344 LTDC_ER_IRQHandler + 0x0000000008003344 CAN2_SCE_IRQHandler + 0x0000000008003344 DMA2_Stream2_IRQHandler + 0x0000000008003344 SPI1_IRQHandler + 0x0000000008003344 TIM1_BRK_TIM9_IRQHandler + 0x0000000008003344 DCMI_IRQHandler + 0x0000000008003344 CAN2_RX0_IRQHandler + 0x0000000008003344 DMA2_Stream3_IRQHandler + 0x0000000008003344 USART6_IRQHandler + 0x0000000008003344 USART3_IRQHandler + 0x0000000008003344 CAN1_RX1_IRQHandler + 0x0000000008003344 UART5_IRQHandler + 0x0000000008003344 DMA2_Stream0_IRQHandler + 0x0000000008003344 TIM4_IRQHandler + 0x0000000008003344 I2C1_EV_IRQHandler + 0x0000000008003344 DMA1_Stream6_IRQHandler + 0x0000000008003344 DMA1_Stream1_IRQHandler + 0x0000000008003344 UART4_IRQHandler + 0x0000000008003344 TIM3_IRQHandler + 0x0000000008003344 RCC_IRQHandler + 0x0000000008003344 TIM8_BRK_TIM12_IRQHandler + 0x0000000008003344 Default_Handler + 0x0000000008003344 EXTI15_10_IRQHandler + 0x0000000008003344 ADC_IRQHandler + 0x0000000008003344 DMA1_Stream7_IRQHandler + 0x0000000008003344 SPI5_IRQHandler + 0x0000000008003344 TIM7_IRQHandler + 0x0000000008003344 CAN2_TX_IRQHandler + 0x0000000008003344 TIM5_IRQHandler + 0x0000000008003344 DMA2_Stream7_IRQHandler + 0x0000000008003344 I2C3_EV_IRQHandler + 0x0000000008003344 EXTI9_5_IRQHandler + 0x0000000008003344 RTC_WKUP_IRQHandler + 0x0000000008003344 LTDC_IRQHandler + 0x0000000008003344 ETH_WKUP_IRQHandler + 0x0000000008003344 SPI2_IRQHandler + 0x0000000008003344 OTG_HS_EP1_IN_IRQHandler + 0x0000000008003344 DMA1_Stream0_IRQHandler + 0x0000000008003344 CAN1_TX_IRQHandler + 0x0000000008003344 EXTI4_IRQHandler + 0x0000000008003344 ETH_IRQHandler + 0x0000000008003344 OTG_HS_EP1_OUT_IRQHandler + 0x0000000008003344 WWDG_IRQHandler + 0x0000000008003344 SPI6_IRQHandler + 0x0000000008003344 TIM2_IRQHandler + 0x0000000008003344 OTG_FS_WKUP_IRQHandler + 0x0000000008003344 TIM1_TRG_COM_TIM11_IRQHandler + 0x0000000008003344 OTG_HS_IRQHandler + 0x0000000008003344 DMA2D_IRQHandler + 0x0000000008003344 EXTI1_IRQHandler + 0x0000000008003344 UART7_IRQHandler + 0x0000000008003344 USART2_IRQHandler + 0x0000000008003344 I2C2_ER_IRQHandler + 0x0000000008003344 DMA2_Stream1_IRQHandler + 0x0000000008003344 CAN1_SCE_IRQHandler + 0x0000000008003344 FLASH_IRQHandler + 0x0000000008003344 DMA2_Stream4_IRQHandler + 0x0000000008003344 USART1_IRQHandler + 0x0000000008003344 OTG_FS_IRQHandler + 0x0000000008003344 SPI3_IRQHandler + 0x0000000008003344 DMA1_Stream4_IRQHandler + 0x0000000008003344 I2C1_ER_IRQHandler + 0x0000000008003344 FMC_IRQHandler + 0x0000000008003344 DMA2_Stream6_IRQHandler + 0x0000000008003344 SAI1_IRQHandler + 0x0000000008003344 DMA1_Stream3_IRQHandler + *fill* 0x0000000008003346 0x2 .text.HAL_Init - 0x0000000008002dc4 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - 0x0000000008002dc4 HAL_Init + 0x0000000008003348 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + 0x0000000008003348 HAL_Init .text.HAL_InitTick - 0x0000000008002e08 0x60 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - 0x0000000008002e08 HAL_InitTick + 0x000000000800338c 0x60 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + 0x000000000800338c HAL_InitTick .text.HAL_IncTick - 0x0000000008002e68 0x28 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - 0x0000000008002e68 HAL_IncTick + 0x00000000080033ec 0x28 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + 0x00000000080033ec HAL_IncTick .text.HAL_GetTick - 0x0000000008002e90 0x18 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - 0x0000000008002e90 HAL_GetTick + 0x0000000008003414 0x18 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + 0x0000000008003414 HAL_GetTick .text.HAL_Delay - 0x0000000008002ea8 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - 0x0000000008002ea8 HAL_Delay + 0x000000000800342c 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + 0x000000000800342c HAL_Delay .text.HAL_ADC_Init - 0x0000000008002eec 0x86 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o - 0x0000000008002eec HAL_ADC_Init - *fill* 0x0000000008002f72 0x2 + 0x0000000008003470 0x86 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + 0x0000000008003470 HAL_ADC_Init + *fill* 0x00000000080034f6 0x2 .text.HAL_ADC_Start - 0x0000000008002f74 0x18c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o - 0x0000000008002f74 HAL_ADC_Start + 0x00000000080034f8 0x18c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + 0x00000000080034f8 HAL_ADC_Start .text.HAL_ADC_PollForConversion - 0x0000000008003100 0x108 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o - 0x0000000008003100 HAL_ADC_PollForConversion + 0x0000000008003684 0x108 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + 0x0000000008003684 HAL_ADC_PollForConversion .text.HAL_ADC_GetValue - 0x0000000008003208 0x1a Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o - 0x0000000008003208 HAL_ADC_GetValue - *fill* 0x0000000008003222 0x2 + 0x000000000800378c 0x1a Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + 0x000000000800378c HAL_ADC_GetValue + *fill* 0x00000000080037a6 0x2 .text.HAL_ADC_ConfigChannel - 0x0000000008003224 0x264 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o - 0x0000000008003224 HAL_ADC_ConfigChannel + 0x00000000080037a8 0x264 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + 0x00000000080037a8 HAL_ADC_ConfigChannel .text.ADC_Init - 0x0000000008003488 0x1f8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + 0x0000000008003a0c 0x1f8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o .text.__NVIC_SetPriorityGrouping - 0x0000000008003680 0x48 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x0000000008003c04 0x48 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o .text.__NVIC_GetPriorityGrouping - 0x00000000080036c8 0x1c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x0000000008003c4c 0x1c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o .text.__NVIC_EnableIRQ - 0x00000000080036e4 0x3c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x0000000008003c68 0x3c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o .text.__NVIC_SetPriority - 0x0000000008003720 0x54 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x0000000008003ca4 0x54 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o .text.NVIC_EncodePriority - 0x0000000008003774 0x66 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - *fill* 0x00000000080037da 0x2 + 0x0000000008003cf8 0x66 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + *fill* 0x0000000008003d5e 0x2 .text.SysTick_Config - 0x00000000080037dc 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x0000000008003d60 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o .text.HAL_NVIC_SetPriorityGrouping - 0x0000000008003820 0x16 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - 0x0000000008003820 HAL_NVIC_SetPriorityGrouping + 0x0000000008003da4 0x16 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x0000000008003da4 HAL_NVIC_SetPriorityGrouping .text.HAL_NVIC_SetPriority - 0x0000000008003836 0x38 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - 0x0000000008003836 HAL_NVIC_SetPriority + 0x0000000008003dba 0x38 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x0000000008003dba HAL_NVIC_SetPriority .text.HAL_NVIC_EnableIRQ - 0x000000000800386e 0x1c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - 0x000000000800386e HAL_NVIC_EnableIRQ + 0x0000000008003df2 0x1c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x0000000008003df2 HAL_NVIC_EnableIRQ .text.HAL_SYSTICK_Config - 0x000000000800388a 0x18 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - 0x000000000800388a HAL_SYSTICK_Config + 0x0000000008003e0e 0x18 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x0000000008003e0e HAL_SYSTICK_Config .text.HAL_DMA_Abort_IT - 0x00000000080038a2 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o - 0x00000000080038a2 HAL_DMA_Abort_IT - *fill* 0x00000000080038e6 0x2 + 0x0000000008003e26 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o + 0x0000000008003e26 HAL_DMA_Abort_IT + *fill* 0x0000000008003e6a 0x2 .text.HAL_GPIO_Init - 0x00000000080038e8 0x354 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - 0x00000000080038e8 HAL_GPIO_Init + 0x0000000008003e6c 0x354 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + 0x0000000008003e6c HAL_GPIO_Init .text.HAL_GPIO_WritePin - 0x0000000008003c3c 0x32 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - 0x0000000008003c3c HAL_GPIO_WritePin - *fill* 0x0000000008003c6e 0x2 + 0x00000000080041c0 0x32 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + 0x00000000080041c0 HAL_GPIO_WritePin + *fill* 0x00000000080041f2 0x2 .text.HAL_GPIO_EXTI_IRQHandler - 0x0000000008003c70 0x30 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - 0x0000000008003c70 HAL_GPIO_EXTI_IRQHandler + 0x00000000080041f4 0x30 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + 0x00000000080041f4 HAL_GPIO_EXTI_IRQHandler .text.HAL_GPIO_EXTI_Callback - 0x0000000008003ca0 0x16 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - 0x0000000008003ca0 HAL_GPIO_EXTI_Callback - *fill* 0x0000000008003cb6 0x2 + 0x0000000008004224 0x16 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + 0x0000000008004224 HAL_GPIO_EXTI_Callback + *fill* 0x000000000800423a 0x2 .text.HAL_RCC_OscConfig - 0x0000000008003cb8 0x4e0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - 0x0000000008003cb8 HAL_RCC_OscConfig + 0x000000000800423c 0x4e0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + 0x000000000800423c HAL_RCC_OscConfig .text.HAL_RCC_ClockConfig - 0x0000000008004198 0x1cc Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - 0x0000000008004198 HAL_RCC_ClockConfig + 0x000000000800471c 0x1cc Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + 0x000000000800471c HAL_RCC_ClockConfig .text.HAL_RCC_GetSysClockFreq - 0x0000000008004364 0x1b0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - 0x0000000008004364 HAL_RCC_GetSysClockFreq + 0x00000000080048e8 0x1b0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + 0x00000000080048e8 HAL_RCC_GetSysClockFreq .text.HAL_SPI_Init - 0x0000000008004514 0xc8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - 0x0000000008004514 HAL_SPI_Init + 0x0000000008004a98 0xc8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x0000000008004a98 HAL_SPI_Init .text.HAL_SPI_Transmit_IT - 0x00000000080045dc 0x104 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - 0x00000000080045dc HAL_SPI_Transmit_IT + 0x0000000008004b60 0x104 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x0000000008004b60 HAL_SPI_Transmit_IT .text.HAL_SPI_IRQHandler - 0x00000000080046e0 0x200 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - 0x00000000080046e0 HAL_SPI_IRQHandler + 0x0000000008004c64 0x200 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x0000000008004c64 HAL_SPI_IRQHandler .text.HAL_SPI_TxCpltCallback - 0x00000000080048e0 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - 0x00000000080048e0 HAL_SPI_TxCpltCallback + 0x0000000008004e64 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x0000000008004e64 HAL_SPI_TxCpltCallback .text.HAL_SPI_ErrorCallback - 0x00000000080048f4 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - 0x00000000080048f4 HAL_SPI_ErrorCallback + 0x0000000008004e78 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x0000000008004e78 HAL_SPI_ErrorCallback .text.SPI_DMAAbortOnError - 0x0000000008004908 0x28 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x0000000008004e8c 0x28 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o .text.SPI_TxISR_8BIT - 0x0000000008004930 0x46 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x0000000008004eb4 0x46 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o .text.SPI_TxISR_16BIT - 0x0000000008004976 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x0000000008004efa 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o .text.SPI_WaitFlagStateUntilTimeout - 0x00000000080049ba 0xd4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - *fill* 0x0000000008004a8e 0x2 + 0x0000000008004f3e 0xd4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + *fill* 0x0000000008005012 0x2 .text.SPI_EndRxTxTransaction - 0x0000000008004a90 0x84 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x0000000008005014 0x84 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o .text.SPI_CloseTx_ISR - 0x0000000008004b14 0xc4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x0000000008005098 0xc4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o .text.HAL_TIM_Base_Init - 0x0000000008004bd8 0x56 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x0000000008004bd8 HAL_TIM_Base_Init + 0x000000000800515c 0x56 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x000000000800515c HAL_TIM_Base_Init .text.HAL_TIM_Base_Start_IT - 0x0000000008004c2e 0x48 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x0000000008004c2e HAL_TIM_Base_Start_IT + 0x00000000080051b2 0x48 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x00000000080051b2 HAL_TIM_Base_Start_IT .text.HAL_TIM_OnePulse_Init - 0x0000000008004c76 0x78 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x0000000008004c76 HAL_TIM_OnePulse_Init + 0x00000000080051fa 0x78 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x00000000080051fa HAL_TIM_OnePulse_Init .text.HAL_TIM_OnePulse_MspInit - 0x0000000008004cee 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x0000000008004cee HAL_TIM_OnePulse_MspInit + 0x0000000008005272 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x0000000008005272 HAL_TIM_OnePulse_MspInit .text.HAL_TIM_IRQHandler - 0x0000000008004d02 0x210 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x0000000008004d02 HAL_TIM_IRQHandler + 0x0000000008005286 0x210 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x0000000008005286 HAL_TIM_IRQHandler .text.HAL_TIM_PeriodElapsedCallback - 0x0000000008004f12 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x0000000008004f12 HAL_TIM_PeriodElapsedCallback + 0x0000000008005496 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x0000000008005496 HAL_TIM_PeriodElapsedCallback .text.HAL_TIM_OC_DelayElapsedCallback - 0x0000000008004f26 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x0000000008004f26 HAL_TIM_OC_DelayElapsedCallback + 0x00000000080054aa 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x00000000080054aa HAL_TIM_OC_DelayElapsedCallback .text.HAL_TIM_IC_CaptureCallback - 0x0000000008004f3a 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x0000000008004f3a HAL_TIM_IC_CaptureCallback + 0x00000000080054be 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x00000000080054be HAL_TIM_IC_CaptureCallback .text.HAL_TIM_PWM_PulseFinishedCallback - 0x0000000008004f4e 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x0000000008004f4e HAL_TIM_PWM_PulseFinishedCallback + 0x00000000080054d2 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x00000000080054d2 HAL_TIM_PWM_PulseFinishedCallback .text.HAL_TIM_TriggerCallback - 0x0000000008004f62 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x0000000008004f62 HAL_TIM_TriggerCallback - *fill* 0x0000000008004f76 0x2 + 0x00000000080054e6 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x00000000080054e6 HAL_TIM_TriggerCallback + *fill* 0x00000000080054fa 0x2 .text.TIM_Base_SetConfig - 0x0000000008004f78 0x140 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - 0x0000000008004f78 TIM_Base_SetConfig + 0x00000000080054fc 0x140 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x00000000080054fc TIM_Base_SetConfig .text.HAL_TIMEx_MasterConfigSynchronization - 0x00000000080050b8 0xf8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o - 0x00000000080050b8 HAL_TIMEx_MasterConfigSynchronization + 0x000000000800563c 0xf8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o + 0x000000000800563c HAL_TIMEx_MasterConfigSynchronization .text.HAL_TIMEx_CommutCallback - 0x00000000080051b0 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o - 0x00000000080051b0 HAL_TIMEx_CommutCallback + 0x0000000008005734 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o + 0x0000000008005734 HAL_TIMEx_CommutCallback .text.HAL_TIMEx_BreakCallback - 0x00000000080051c4 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o - 0x00000000080051c4 HAL_TIMEx_BreakCallback - .text.__errno 0x00000000080051d8 0xc b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) - 0x00000000080051d8 __errno + 0x0000000008005748 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o + 0x0000000008005748 HAL_TIMEx_BreakCallback + .text.__errno 0x000000000800575c 0xc b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) + 0x000000000800575c __errno .text.__libc_init_array - 0x00000000080051e4 0x48 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) - 0x00000000080051e4 __libc_init_array - .text.memset 0x000000000800522c 0x10 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) - 0x000000000800522c memset - .text.rand 0x000000000800523c 0x68 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-rand.o) - 0x000000000800523c rand - .text.malloc 0x00000000080052a4 0x10 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-malloc.o) - 0x00000000080052a4 malloc + 0x0000000008005768 0x48 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) + 0x0000000008005768 __libc_init_array + .text.memset 0x00000000080057b0 0x10 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) + 0x00000000080057b0 memset + .text.rand 0x00000000080057c0 0x68 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-rand.o) + 0x00000000080057c0 rand + .text.malloc 0x0000000008005828 0x10 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-malloc.o) + 0x0000000008005828 malloc .text._malloc_r - 0x00000000080052b4 0xb4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-nano-mallocr.o) - 0x00000000080052b4 _malloc_r - .text._sbrk_r 0x0000000008005368 0x20 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-sbrkr.o) - 0x0000000008005368 _sbrk_r + 0x0000000008005838 0xb4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-nano-mallocr.o) + 0x0000000008005838 _malloc_r + .text._sbrk_r 0x00000000080058ec 0x20 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-sbrkr.o) + 0x00000000080058ec _sbrk_r .text.__malloc_lock - 0x0000000008005388 0x2 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-mlock.o) - 0x0000000008005388 __malloc_lock + 0x000000000800590c 0x2 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-mlock.o) + 0x000000000800590c __malloc_lock .text.__malloc_unlock - 0x000000000800538a 0x2 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-mlock.o) - 0x000000000800538a __malloc_unlock + 0x000000000800590e 0x2 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-mlock.o) + 0x000000000800590e __malloc_unlock *(.glue_7) - .glue_7 0x000000000800538c 0x0 linker stubs + .glue_7 0x0000000008005910 0x0 linker stubs *(.glue_7t) - .glue_7t 0x000000000800538c 0x0 linker stubs + .glue_7t 0x0000000008005910 0x0 linker stubs *(.eh_frame) - .eh_frame 0x000000000800538c 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o + .eh_frame 0x0000000008005910 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o *(.init) - .init 0x000000000800538c 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o - 0x000000000800538c _init - .init 0x0000000008005390 0x8 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o + .init 0x0000000008005910 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o + 0x0000000008005910 _init + .init 0x0000000008005914 0x8 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o *(.fini) - .fini 0x0000000008005398 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o - 0x0000000008005398 _fini - .fini 0x000000000800539c 0x8 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o - 0x00000000080053a4 . = ALIGN (0x4) - 0x00000000080053a4 _etext = . + .fini 0x000000000800591c 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crti.o + 0x000000000800591c _fini + .fini 0x0000000008005920 0x8 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o + 0x0000000008005928 . = ALIGN (0x4) + 0x0000000008005928 _etext = . -.vfp11_veneer 0x00000000080053a4 0x0 - .vfp11_veneer 0x00000000080053a4 0x0 linker stubs +.vfp11_veneer 0x0000000008005928 0x0 + .vfp11_veneer 0x0000000008005928 0x0 linker stubs -.v4_bx 0x00000000080053a4 0x0 - .v4_bx 0x00000000080053a4 0x0 linker stubs +.v4_bx 0x0000000008005928 0x0 + .v4_bx 0x0000000008005928 0x0 linker stubs -.iplt 0x00000000080053a4 0x0 - .iplt 0x00000000080053a4 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o +.iplt 0x0000000008005928 0x0 + .iplt 0x0000000008005928 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o -.rodata 0x00000000080053a4 0x10 - 0x00000000080053a4 . = ALIGN (0x4) +.rodata 0x0000000008005928 0x10 + 0x0000000008005928 . = ALIGN (0x4) *(.rodata) *(.rodata*) .rodata.AHBPrescTable - 0x00000000080053a4 0x10 Core/Src/system_stm32f4xx.o - 0x00000000080053a4 AHBPrescTable - 0x00000000080053b4 . = ALIGN (0x4) + 0x0000000008005928 0x10 Core/Src/system_stm32f4xx.o + 0x0000000008005928 AHBPrescTable + 0x0000000008005938 . = ALIGN (0x4) -.ARM.extab 0x00000000080053b4 0x0 - 0x00000000080053b4 . = ALIGN (0x4) +.ARM.extab 0x0000000008005938 0x0 + 0x0000000008005938 . = ALIGN (0x4) *(.ARM.extab* .gnu.linkonce.armextab.*) - 0x00000000080053b4 . = ALIGN (0x4) + 0x0000000008005938 . = ALIGN (0x4) -.ARM 0x00000000080053b4 0x8 - 0x00000000080053b4 . = ALIGN (0x4) - 0x00000000080053b4 __exidx_start = . +.ARM 0x0000000008005938 0x8 + 0x0000000008005938 . = ALIGN (0x4) + 0x0000000008005938 __exidx_start = . *(.ARM.exidx*) - .ARM.exidx 0x00000000080053b4 0x8 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_udivmoddi4.o) - 0x00000000080053bc __exidx_end = . - 0x00000000080053bc . = ALIGN (0x4) + .ARM.exidx 0x0000000008005938 0x8 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_udivmoddi4.o) + 0x0000000008005940 __exidx_end = . + 0x0000000008005940 . = ALIGN (0x4) -.rel.dyn 0x00000000080053bc 0x0 - .rel.iplt 0x00000000080053bc 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o +.rel.dyn 0x0000000008005940 0x0 + .rel.iplt 0x0000000008005940 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o -.preinit_array 0x00000000080053bc 0x0 - 0x00000000080053bc . = ALIGN (0x4) - 0x00000000080053bc PROVIDE (__preinit_array_start = .) +.preinit_array 0x0000000008005940 0x0 + 0x0000000008005940 . = ALIGN (0x4) + 0x0000000008005940 PROVIDE (__preinit_array_start = .) *(.preinit_array*) - 0x00000000080053bc PROVIDE (__preinit_array_end = .) - 0x00000000080053bc . = ALIGN (0x4) + 0x0000000008005940 PROVIDE (__preinit_array_end = .) + 0x0000000008005940 . = ALIGN (0x4) -.init_array 0x00000000080053bc 0x4 - 0x00000000080053bc . = ALIGN (0x4) - 0x00000000080053bc PROVIDE (__init_array_start = .) +.init_array 0x0000000008005940 0x4 + 0x0000000008005940 . = ALIGN (0x4) + 0x0000000008005940 PROVIDE (__init_array_start = .) *(SORT_BY_NAME(.init_array.*)) *(.init_array*) - .init_array 0x00000000080053bc 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o - 0x00000000080053c0 PROVIDE (__init_array_end = .) - 0x00000000080053c0 . = ALIGN (0x4) + .init_array 0x0000000008005940 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o + 0x0000000008005944 PROVIDE (__init_array_end = .) + 0x0000000008005944 . = ALIGN (0x4) -.fini_array 0x00000000080053c0 0x4 - 0x00000000080053c0 . = ALIGN (0x4) +.fini_array 0x0000000008005944 0x4 + 0x0000000008005944 . = ALIGN (0x4) [!provide] PROVIDE (__fini_array_start = .) *(SORT_BY_NAME(.fini_array.*)) *(.fini_array*) - .fini_array 0x00000000080053c0 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o + .fini_array 0x0000000008005944 0x4 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o [!provide] PROVIDE (__fini_array_end = .) - 0x00000000080053c4 . = ALIGN (0x4) - 0x00000000080053c4 _sidata = LOADADDR (.data) + 0x0000000008005948 . = ALIGN (0x4) + 0x0000000008005948 _sidata = LOADADDR (.data) -.data 0x0000000020000000 0x74 load address 0x00000000080053c4 +.data 0x0000000020000000 0x74 load address 0x0000000008005948 0x0000000020000000 . = ALIGN (0x4) 0x0000000020000000 _sdata = . *(.data) *(.data*) - .data.cutoff.9783 + .data.cutoff.9777 0x0000000020000000 0x1 Core/Src/main.o *fill* 0x0000000020000001 0x3 .data.SystemCoreClock @@ -3682,11 +3681,11 @@ LOAD b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm 0x0000000020000074 . = ALIGN (0x4) 0x0000000020000074 _edata = . -.igot.plt 0x0000000020000074 0x0 load address 0x0000000008005438 +.igot.plt 0x0000000020000074 0x0 load address 0x00000000080059bc .igot.plt 0x0000000020000074 0x0 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtbegin.o 0x0000000020000074 . = ALIGN (0x4) -.bss 0x0000000020000074 0x42c load address 0x0000000008005438 +.bss 0x0000000020000074 0x42c load address 0x00000000080059bc 0x0000000020000074 _sbss = . 0x0000000020000074 __bss_start__ = _sbss *(.bss) @@ -3703,7 +3702,7 @@ LOAD b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm .bss.LEDData_WS2812B 0x0000000020000154 0x252 Core/Src/main.o 0x0000000020000154 LEDData_WS2812B - .bss.averagedReturnValue.9786 + .bss.averagedReturnValue.9780 0x00000000200003a6 0x2 Core/Src/main.o .bss.__sbrk_heap_end 0x00000000200003a8 0x4 Core/Src/sysmem.o @@ -3728,7 +3727,7 @@ LOAD b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm 0x00000000200004a0 __bss_end__ = _ebss ._user_heap_stack - 0x00000000200004a0 0x600 load address 0x0000000008005438 + 0x00000000200004a0 0x600 load address 0x00000000080059bc 0x00000000200004a0 . = ALIGN (0x8) [!provide] PROVIDE (end = .) 0x00000000200004a0 PROVIDE (_end = .) @@ -3816,88 +3815,88 @@ LOAD b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm 0x000000000000067b 0x22 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard/crtn.o OUTPUT(STM32F429I-DISC1_LEDFaceMask-Rough.elf elf32-littlearm) -.debug_info 0x0000000000000000 0xd9cf - .debug_info 0x0000000000000000 0x238e Core/Src/main.o - .debug_info 0x000000000000238e 0x11c3 Core/Src/stm32f4xx_hal_msp.o - .debug_info 0x0000000000003551 0x9d5 Core/Src/stm32f4xx_it.o - .debug_info 0x0000000000003f26 0x985 Core/Src/sysmem.o - .debug_info 0x00000000000048ab 0x56e Core/Src/system_stm32f4xx.o - .debug_info 0x0000000000004e19 0x22 Core/Startup/startup_stm32f429zitx.o - .debug_info 0x0000000000004e3b 0x9b9 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - .debug_info 0x00000000000057f4 0xcee Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o - .debug_info 0x00000000000064e2 0xe5e Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - .debug_info 0x0000000000007340 0x968 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o - .debug_info 0x0000000000007ca8 0x7cf Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - .debug_info 0x0000000000008477 0x91e Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - .debug_info 0x0000000000008d95 0x163a Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - .debug_info 0x000000000000a3cf 0x24a9 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - .debug_info 0x000000000000c878 0x1157 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o +.debug_info 0x0000000000000000 0xd731 + .debug_info 0x0000000000000000 0x20f0 Core/Src/main.o + .debug_info 0x00000000000020f0 0x11c3 Core/Src/stm32f4xx_hal_msp.o + .debug_info 0x00000000000032b3 0x9d5 Core/Src/stm32f4xx_it.o + .debug_info 0x0000000000003c88 0x985 Core/Src/sysmem.o + .debug_info 0x000000000000460d 0x56e Core/Src/system_stm32f4xx.o + .debug_info 0x0000000000004b7b 0x22 Core/Startup/startup_stm32f429zitx.o + .debug_info 0x0000000000004b9d 0x9b9 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + .debug_info 0x0000000000005556 0xcee Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + .debug_info 0x0000000000006244 0xe5e Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + .debug_info 0x00000000000070a2 0x968 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o + .debug_info 0x0000000000007a0a 0x7cf Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + .debug_info 0x00000000000081d9 0x91e Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + .debug_info 0x0000000000008af7 0x163a Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + .debug_info 0x000000000000a131 0x24a9 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + .debug_info 0x000000000000c5da 0x1157 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o -.debug_abbrev 0x0000000000000000 0x1d33 - .debug_abbrev 0x0000000000000000 0x3c1 Core/Src/main.o - .debug_abbrev 0x00000000000003c1 0x1a6 Core/Src/stm32f4xx_hal_msp.o - .debug_abbrev 0x0000000000000567 0x169 Core/Src/stm32f4xx_it.o - .debug_abbrev 0x00000000000006d0 0x19b Core/Src/sysmem.o - .debug_abbrev 0x000000000000086b 0x12b Core/Src/system_stm32f4xx.o - .debug_abbrev 0x0000000000000996 0x12 Core/Startup/startup_stm32f429zitx.o - .debug_abbrev 0x00000000000009a8 0x1c7 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - .debug_abbrev 0x0000000000000b6f 0x205 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o - .debug_abbrev 0x0000000000000d74 0x2fa Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - .debug_abbrev 0x000000000000106e 0x229 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o - .debug_abbrev 0x0000000000001297 0x1c9 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - .debug_abbrev 0x0000000000001460 0x245 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - .debug_abbrev 0x00000000000016a5 0x240 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - .debug_abbrev 0x00000000000018e5 0x230 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - .debug_abbrev 0x0000000000001b15 0x21e Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o +.debug_abbrev 0x0000000000000000 0x1c9c + .debug_abbrev 0x0000000000000000 0x32a Core/Src/main.o + .debug_abbrev 0x000000000000032a 0x1a6 Core/Src/stm32f4xx_hal_msp.o + .debug_abbrev 0x00000000000004d0 0x169 Core/Src/stm32f4xx_it.o + .debug_abbrev 0x0000000000000639 0x19b Core/Src/sysmem.o + .debug_abbrev 0x00000000000007d4 0x12b Core/Src/system_stm32f4xx.o + .debug_abbrev 0x00000000000008ff 0x12 Core/Startup/startup_stm32f429zitx.o + .debug_abbrev 0x0000000000000911 0x1c7 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + .debug_abbrev 0x0000000000000ad8 0x205 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + .debug_abbrev 0x0000000000000cdd 0x2fa Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + .debug_abbrev 0x0000000000000fd7 0x229 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o + .debug_abbrev 0x0000000000001200 0x1c9 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + .debug_abbrev 0x00000000000013c9 0x245 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + .debug_abbrev 0x000000000000160e 0x240 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + .debug_abbrev 0x000000000000184e 0x230 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + .debug_abbrev 0x0000000000001a7e 0x21e Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o -.debug_aranges 0x0000000000000000 0xd30 +.debug_aranges 0x0000000000000000 0xd28 .debug_aranges - 0x0000000000000000 0xc0 Core/Src/main.o + 0x0000000000000000 0xb8 Core/Src/main.o .debug_aranges - 0x00000000000000c0 0x50 Core/Src/stm32f4xx_hal_msp.o + 0x00000000000000b8 0x50 Core/Src/stm32f4xx_hal_msp.o .debug_aranges - 0x0000000000000110 0x78 Core/Src/stm32f4xx_it.o + 0x0000000000000108 0x78 Core/Src/stm32f4xx_it.o .debug_aranges - 0x0000000000000188 0x20 Core/Src/sysmem.o + 0x0000000000000180 0x20 Core/Src/sysmem.o .debug_aranges - 0x00000000000001a8 0x28 Core/Src/system_stm32f4xx.o + 0x00000000000001a0 0x28 Core/Src/system_stm32f4xx.o .debug_aranges - 0x00000000000001d0 0x28 Core/Startup/startup_stm32f429zitx.o + 0x00000000000001c8 0x28 Core/Startup/startup_stm32f429zitx.o .debug_aranges - 0x00000000000001f8 0x100 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + 0x00000000000001f0 0x100 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o .debug_aranges - 0x00000000000002f8 0xe8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + 0x00000000000002f0 0xe8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o .debug_aranges - 0x00000000000003e0 0x118 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x00000000000003d8 0x118 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o .debug_aranges - 0x00000000000004f8 0x90 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o + 0x00000000000004f0 0x90 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o .debug_aranges - 0x0000000000000588 0x58 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + 0x0000000000000580 0x58 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o .debug_aranges - 0x00000000000005e0 0x88 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + 0x00000000000005d8 0x88 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o .debug_aranges - 0x0000000000000668 0x1d0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x0000000000000660 0x1d0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o .debug_aranges - 0x0000000000000838 0x3a8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + 0x0000000000000830 0x3a8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o .debug_aranges - 0x0000000000000be0 0x150 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o + 0x0000000000000bd8 0x150 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o -.debug_ranges 0x0000000000000000 0xc48 - .debug_ranges 0x0000000000000000 0xb0 Core/Src/main.o - .debug_ranges 0x00000000000000b0 0x40 Core/Src/stm32f4xx_hal_msp.o - .debug_ranges 0x00000000000000f0 0x68 Core/Src/stm32f4xx_it.o - .debug_ranges 0x0000000000000158 0x10 Core/Src/sysmem.o - .debug_ranges 0x0000000000000168 0x18 Core/Src/system_stm32f4xx.o - .debug_ranges 0x0000000000000180 0x20 Core/Startup/startup_stm32f429zitx.o - .debug_ranges 0x00000000000001a0 0xf0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - .debug_ranges 0x0000000000000290 0xd8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o - .debug_ranges 0x0000000000000368 0x108 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - .debug_ranges 0x0000000000000470 0x80 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o - .debug_ranges 0x00000000000004f0 0x48 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - .debug_ranges 0x0000000000000538 0x78 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - .debug_ranges 0x00000000000005b0 0x1c0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - .debug_ranges 0x0000000000000770 0x398 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - .debug_ranges 0x0000000000000b08 0x140 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o +.debug_ranges 0x0000000000000000 0xc40 + .debug_ranges 0x0000000000000000 0xa8 Core/Src/main.o + .debug_ranges 0x00000000000000a8 0x40 Core/Src/stm32f4xx_hal_msp.o + .debug_ranges 0x00000000000000e8 0x68 Core/Src/stm32f4xx_it.o + .debug_ranges 0x0000000000000150 0x10 Core/Src/sysmem.o + .debug_ranges 0x0000000000000160 0x18 Core/Src/system_stm32f4xx.o + .debug_ranges 0x0000000000000178 0x20 Core/Startup/startup_stm32f429zitx.o + .debug_ranges 0x0000000000000198 0xf0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + .debug_ranges 0x0000000000000288 0xd8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + .debug_ranges 0x0000000000000360 0x108 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + .debug_ranges 0x0000000000000468 0x80 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o + .debug_ranges 0x00000000000004e8 0x48 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + .debug_ranges 0x0000000000000530 0x78 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + .debug_ranges 0x00000000000005a8 0x1c0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + .debug_ranges 0x0000000000000768 0x398 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + .debug_ranges 0x0000000000000b00 0x140 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o .debug_macro 0x0000000000000000 0x2448d .debug_macro 0x0000000000000000 0x389 Core/Src/main.o @@ -3987,53 +3986,53 @@ OUTPUT(STM32F429I-DISC1_LEDFaceMask-Rough.elf elf32-littlearm) .debug_macro 0x00000000000240be 0x1e8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o .debug_macro 0x00000000000242a6 0x1e7 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o -.debug_line 0x0000000000000000 0xa54b - .debug_line 0x0000000000000000 0x10b2 Core/Src/main.o - .debug_line 0x00000000000010b2 0x7f5 Core/Src/stm32f4xx_hal_msp.o - .debug_line 0x00000000000018a7 0x859 Core/Src/stm32f4xx_it.o - .debug_line 0x0000000000002100 0x61f Core/Src/sysmem.o - .debug_line 0x000000000000271f 0x787 Core/Src/system_stm32f4xx.o - .debug_line 0x0000000000002ea6 0x85 Core/Startup/startup_stm32f429zitx.o - .debug_line 0x0000000000002f2b 0x995 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - .debug_line 0x00000000000038c0 0xbd8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o - .debug_line 0x0000000000004498 0xa95 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - .debug_line 0x0000000000004f2d 0xa3f Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o - .debug_line 0x000000000000596c 0x978 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - .debug_line 0x00000000000062e4 0x9c9 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - .debug_line 0x0000000000006cad 0x112d Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - .debug_line 0x0000000000007dda 0x19ea Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - .debug_line 0x00000000000097c4 0xd87 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o +.debug_line 0x0000000000000000 0xa530 + .debug_line 0x0000000000000000 0x1098 Core/Src/main.o + .debug_line 0x0000000000001098 0x7f5 Core/Src/stm32f4xx_hal_msp.o + .debug_line 0x000000000000188d 0x858 Core/Src/stm32f4xx_it.o + .debug_line 0x00000000000020e5 0x61f Core/Src/sysmem.o + .debug_line 0x0000000000002704 0x787 Core/Src/system_stm32f4xx.o + .debug_line 0x0000000000002e8b 0x85 Core/Startup/startup_stm32f429zitx.o + .debug_line 0x0000000000002f10 0x995 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + .debug_line 0x00000000000038a5 0xbd8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + .debug_line 0x000000000000447d 0xa95 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + .debug_line 0x0000000000004f12 0xa3f Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o + .debug_line 0x0000000000005951 0x978 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + .debug_line 0x00000000000062c9 0x9c9 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + .debug_line 0x0000000000006c92 0x112d Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + .debug_line 0x0000000000007dbf 0x19ea Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + .debug_line 0x00000000000097a9 0xd87 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o -.debug_str 0x0000000000000000 0xde373 - .debug_str 0x0000000000000000 0xdb130 Core/Src/main.o - 0xdb53e (size before relaxing) - .debug_str 0x00000000000db130 0xb0 Core/Src/stm32f4xx_hal_msp.o +.debug_str 0x0000000000000000 0xde32d + .debug_str 0x0000000000000000 0xdb0ea Core/Src/main.o + 0xdb4f3 (size before relaxing) + .debug_str 0x00000000000db0ea 0xb0 Core/Src/stm32f4xx_hal_msp.o 0xd6f7d (size before relaxing) - .debug_str 0x00000000000db1e0 0xf2 Core/Src/stm32f4xx_it.o + .debug_str 0x00000000000db19a 0xf2 Core/Src/stm32f4xx_it.o 0xd67f1 (size before relaxing) - .debug_str 0x00000000000db2d2 0x4e9 Core/Src/sysmem.o + .debug_str 0x00000000000db28c 0x4e9 Core/Src/sysmem.o 0x5f7f (size before relaxing) - .debug_str 0x00000000000db7bb 0xc4 Core/Src/system_stm32f4xx.o + .debug_str 0x00000000000db775 0xc4 Core/Src/system_stm32f4xx.o 0xd52de (size before relaxing) - .debug_str 0x00000000000db87f 0x36 Core/Startup/startup_stm32f429zitx.o + .debug_str 0x00000000000db839 0x36 Core/Startup/startup_stm32f429zitx.o 0x8c (size before relaxing) - .debug_str 0x00000000000db8b5 0x5c8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + .debug_str 0x00000000000db86f 0x5c8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o 0xd5e4a (size before relaxing) - .debug_str 0x00000000000dbe7d 0x29d Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + .debug_str 0x00000000000dbe37 0x29d Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o 0xd5862 (size before relaxing) - .debug_str 0x00000000000dc11a 0x392 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + .debug_str 0x00000000000dc0d4 0x392 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o 0xd5beb (size before relaxing) - .debug_str 0x00000000000dc4ac 0x31d Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o + .debug_str 0x00000000000dc466 0x31d Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o 0xd56e0 (size before relaxing) - .debug_str 0x00000000000dc7c9 0x20c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + .debug_str 0x00000000000dc783 0x20c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o 0xd551d (size before relaxing) - .debug_str 0x00000000000dc9d5 0x259 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + .debug_str 0x00000000000dc98f 0x259 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o 0xd56cb (size before relaxing) - .debug_str 0x00000000000dcc2e 0x55a Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + .debug_str 0x00000000000dcbe8 0x55a Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o 0xd5b39 (size before relaxing) - .debug_str 0x00000000000dd188 0xd49 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + .debug_str 0x00000000000dd142 0xd49 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o 0xd63d7 (size before relaxing) - .debug_str 0x00000000000dded1 0x4a2 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o + .debug_str 0x00000000000dde8b 0x4a2 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o 0xd5bd7 (size before relaxing) .comment 0x0000000000000000 0x7b @@ -4053,32 +4052,32 @@ OUTPUT(STM32F429I-DISC1_LEDFaceMask-Rough.elf elf32-littlearm) .comment 0x000000000000007b 0x7c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o .comment 0x000000000000007b 0x7c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o -.debug_frame 0x0000000000000000 0x3a10 - .debug_frame 0x0000000000000000 0x328 Core/Src/main.o - .debug_frame 0x0000000000000328 0x10c Core/Src/stm32f4xx_hal_msp.o - .debug_frame 0x0000000000000434 0x160 Core/Src/stm32f4xx_it.o - .debug_frame 0x0000000000000594 0x34 Core/Src/sysmem.o - .debug_frame 0x00000000000005c8 0x58 Core/Src/system_stm32f4xx.o - .debug_frame 0x0000000000000620 0x3b4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - .debug_frame 0x00000000000009d4 0x3fc Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o - .debug_frame 0x0000000000000dd0 0x498 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - .debug_frame 0x0000000000001268 0x250 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o - .debug_frame 0x00000000000014b8 0x14c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - .debug_frame 0x0000000000001604 0x1f0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - .debug_frame 0x00000000000017f4 0x824 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - .debug_frame 0x0000000000002018 0x10f0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o - .debug_frame 0x0000000000003108 0x5c0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o - .debug_frame 0x00000000000036c8 0x20 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) - .debug_frame 0x00000000000036e8 0x2c b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) - .debug_frame 0x0000000000003714 0x20 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) - .debug_frame 0x0000000000003734 0x48 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-rand.o) - .debug_frame 0x000000000000377c 0x30 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-malloc.o) - .debug_frame 0x00000000000037ac 0x2c b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-nano-mallocr.o) - .debug_frame 0x00000000000037d8 0x2c b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-sbrkr.o) - .debug_frame 0x0000000000003804 0x30 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-mlock.o) - .debug_frame 0x0000000000003834 0x5c b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-reent.o) - .debug_frame 0x0000000000003890 0xac b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_addsubdf3.o) - .debug_frame 0x000000000000393c 0x50 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_muldivdf3.o) - .debug_frame 0x000000000000398c 0x24 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_fixunsdfsi.o) - .debug_frame 0x00000000000039b0 0x2c b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_aeabi_uldivmod.o) - .debug_frame 0x00000000000039dc 0x34 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_udivmoddi4.o) +.debug_frame 0x0000000000000000 0x39e0 + .debug_frame 0x0000000000000000 0x2f8 Core/Src/main.o + .debug_frame 0x00000000000002f8 0x10c Core/Src/stm32f4xx_hal_msp.o + .debug_frame 0x0000000000000404 0x160 Core/Src/stm32f4xx_it.o + .debug_frame 0x0000000000000564 0x34 Core/Src/sysmem.o + .debug_frame 0x0000000000000598 0x58 Core/Src/system_stm32f4xx.o + .debug_frame 0x00000000000005f0 0x3b4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + .debug_frame 0x00000000000009a4 0x3fc Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o + .debug_frame 0x0000000000000da0 0x498 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + .debug_frame 0x0000000000001238 0x250 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o + .debug_frame 0x0000000000001488 0x14c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + .debug_frame 0x00000000000015d4 0x1f0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + .debug_frame 0x00000000000017c4 0x824 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + .debug_frame 0x0000000000001fe8 0x10f0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o + .debug_frame 0x00000000000030d8 0x5c0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o + .debug_frame 0x0000000000003698 0x20 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-errno.o) + .debug_frame 0x00000000000036b8 0x2c b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-init.o) + .debug_frame 0x00000000000036e4 0x20 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-memset.o) + .debug_frame 0x0000000000003704 0x48 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-rand.o) + .debug_frame 0x000000000000374c 0x30 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-malloc.o) + .debug_frame 0x000000000000377c 0x2c b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-nano-mallocr.o) + .debug_frame 0x00000000000037a8 0x2c b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-sbrkr.o) + .debug_frame 0x00000000000037d4 0x30 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-mlock.o) + .debug_frame 0x0000000000003804 0x5c b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard\libc_nano.a(lib_a-reent.o) + .debug_frame 0x0000000000003860 0xac b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_addsubdf3.o) + .debug_frame 0x000000000000390c 0x50 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_muldivdf3.o) + .debug_frame 0x000000000000395c 0x24 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_arm_fixunsdfsi.o) + .debug_frame 0x0000000000003980 0x2c b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_aeabi_uldivmod.o) + .debug_frame 0x00000000000039ac 0x34 b:/programs/stmicroelectronics/stm32cubeide/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.4.0.202007081208/tools/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v7e-m/fpv4-sp/hard\libgcc.a(_udivmoddi4.o)