From c08629d5981128dd62b847b2f5839b2491b9c44a Mon Sep 17 00:00:00 2001 From: Zalman Ul Fariz P A Date: Fri, 8 Nov 2024 21:40:06 +0530 Subject: [PATCH] Updated Soft_RNG library - v1.1 with Dual-Timer Entropy enhancement --- Debug/Soft_RNG.elf | Bin 441068 -> 440868 bytes Debug/Soft_RNG.list | 1104 +++++++++++++++++++++--------------------- Debug/Soft_RNG.map | 341 +++++++------ Debug/Src/Soft_RNG.o | Bin 484868 -> 484820 bytes Debug/Src/main.cyclo | 2 +- Debug/Src/main.o | Bin 482328 -> 482284 bytes Debug/Src/main.su | 2 +- README.md | 2 +- Src/Soft_RNG.c | 10 +- Src/main.c | 28 +- 10 files changed, 742 insertions(+), 747 deletions(-) diff --git a/Debug/Soft_RNG.elf b/Debug/Soft_RNG.elf index 871bd02fd15d89b019c0b45c0bade78cc563aed9..64be707cbcd5862500f5ab75b3cc07724cac1a56 100644 GIT binary patch delta 4617 zcmbVPeRNdC6`%Xwn|Yg$O|ou6LYA<*i6jt#kPsk1LJ~d#7=l1zd(;GW6(m%`SNxz2 zlvuQ)h&6rcXh1A}f<^@cZUEEhIe1FjaE|?=e!$UVE4D|hfwo54Cfj@8=8>0o{L9UG z@6PYu-`u%x?#!LZ#eZi$|F6tPGvYih<|<~4rM3lgvU**N(Zf-}QWyi0v0tFKE$oNh zBlqr1PNP0y=VKIlybYF?`g~j4(tRgMBh-ASp0-%+k%h^lhdh3}cEni7^^G2(v3Vs= zzP7_D5H{L8IawWOavf8veMi*A>Y~^G$y#0AG=#=jpriA5o{h@F7i0u^B8;Y;4xcu=o?YFwBZ|I8_eR!)t8%GMaw#of_v{0=`TF1caCa%(UC%z}*gG6l>?juMxHWvB7 z)4987jmx+=tE*uNT6by8MXaMJOHuZrEI~OQr<^=mQ*R~%vGtpe4Tas|Hn$G8-$Z^c z%5x~kqtpy2oiTdb&}3PYW=-Z1mUM2wRt$w`^Z)qs30H8f`KF@ zU5(4&@jZ_LQ{AH_WI@&rO>pJ@nW)e*_0|NW{~Ub!Yt+~cV|bwHw;EH+v-BKXaGG9@ zZ}nLi%QK6xCaKf?dYJT@UhhG8Fgc(%1rhW6Q+}~ZWt#dh1i3%|6YBafu24Z zJew;$|Iv^!O>nME#8sWQj35mRCB$c zn#bM5AvoNnUVgF=GIA+<>N^a0W*JW?tLAA1JasMiSM!7bPcP$f)znFg1Q)@_8oVi? z2FAcSIhKSLnOy_#a@Z!J7Sg9va@7RjNo&;AGa*lU>LG8;#>tIz7Ox6#XkHg< zZdh~A`gONrTgdmyAr-hhxd2MtI%Caut`2Wmixyqp-2f#x+oW1YE>u}q4C%;iss~>H zH)->oO;d|*FP>7kbq$(Paoff%YgXOXRE#K2K2!xaZ$M@3O|^B4=T)N)7k%xr#j(bX zl`HCEEoLT$)-+8DFE1$I?kSv4=GQPqQ?q#riBcX%BFK|StmOd`b$k>GDCO}aRw-P1 zRzd}&$Q3JbRfHbcxf1YE@KN#6@Zpi2E5+8Cvh^vE8cBIlbU+r>mC7XT0jPBA^=|jv zUnMbiE$Z&WTgxu_!BZj+R|~YG=#vvjjF-zv)XN{X3*RWK)Kn(99#9^E%A^4LSt(y` z7h`c1{F<2O8JMj0ZDld{X2ZSFwWYYn0gXi>Bx{I|V z9it?*^>J9p*jZGcicES|?1UYZJO%&I6Klo800sUOMk7%%HX-7COy+}#>F}`lhi!J^ zQ`xrovygubF*Cp#5%%RU$Fmo&E2Jbf$zl@W`u6bTa$)2U<)SZA}7Lpl{KKH*Jr z&-20`rZd4(htN#~F&$RcFmzg2_AO{Xk9ho$o#ugI5wYy#maY{RCi{BnenI#r(LrOW z_n@2Yh-m>>!%&s7?EB?R?6Tl6(vG2;ZWtDgZXgzoMx%4e!Y7gcIbu3CEqMO4#8*kaQlU9y4HhaKv-&`91+XLSeIbKjvE}f$$?uP_(=zTnXqhlN%(_yx1Ty_mrdH!NDJft zPv$45uuIWQ-0}8q6C8LNV(TMQu+mpL>?<7j4&uwKgTlYV?sm6>cF2KGIPe(<{tWS- zG2M6%U|74^R}Q;^g~~o&rpDySgCc1D>x5r!&U`tNxcu^z^afsl!#Rh!bS(a7x6oC0OKAp z=Px;Eoeq48u&jAS_$!YOtyW6=7Y^Eg5#Na0ef>~0@p%5&CqF<~zKU)jEYG0en=$q( zdFd758!^4RO=4DuW7&2){Qb#+FF5d^11IA?v&R#3;HeHg&xLEq-r*Jpfi68^c^>10 zaAcrE%!`L9vND1nMk}~i?um$Wxh*0RhjGquGhOx$o6bi>%yddl>cU=Qy0913x6_34 zV943}E)l}^8B{6%%aC7piCnl#W*tYy`*Hz^fNVk`j?7`~=|0(hTx9d51;8GX?;IC7 z%KHuS!g1`wr27Pt=gVm%ie&=|_oMp-JM3mG1M~MI*>*zsl!^}d+6j@%`|-j$Ms7YX Gy#EJ&(LYuI delta 4933 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 diff --git a/Debug/Soft_RNG.list b/Debug/Soft_RNG.list index 878e2c5..8114d49 100644 --- a/Debug/Soft_RNG.list +++ b/Debug/Soft_RNG.list @@ -5,47 +5,47 @@ Sections: Idx Name Size VMA LMA File off Algn 0 .isr_vector 00000194 08000000 08000000 00001000 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA - 1 .text 0000074c 08000194 08000194 00001194 2**2 + 1 .text 00000730 08000194 08000194 00001194 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .rodata 00000000 080008e0 080008e8 000018e8 2**0 + 2 .rodata 00000000 080008c4 080008cc 000018cc 2**0 CONTENTS, ALLOC, LOAD, DATA - 3 .ARM.extab 00000000 080008e0 080008e0 000018e8 2**0 + 3 .ARM.extab 00000000 080008c4 080008c4 000018cc 2**0 CONTENTS - 4 .ARM 00000000 080008e0 080008e0 000018e8 2**0 + 4 .ARM 00000000 080008c4 080008c4 000018cc 2**0 CONTENTS - 5 .preinit_array 00000000 080008e0 080008e8 000018e8 2**0 + 5 .preinit_array 00000000 080008c4 080008cc 000018cc 2**0 CONTENTS, ALLOC, LOAD, DATA - 6 .init_array 00000004 080008e0 080008e0 000018e0 2**2 + 6 .init_array 00000004 080008c4 080008c4 000018c4 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA - 7 .fini_array 00000004 080008e4 080008e4 000018e4 2**2 + 7 .fini_array 00000004 080008c8 080008c8 000018c8 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA - 8 .data 00000000 20000000 20000000 000018e8 2**0 + 8 .data 00000000 20000000 20000000 000018cc 2**0 CONTENTS, ALLOC, LOAD, DATA - 9 .bss 00000020 20000000 080008e8 00002000 2**2 + 9 .bss 00000020 20000000 080008cc 00002000 2**2 ALLOC - 10 ._user_heap_stack 00000600 20000020 080008e8 00002020 2**0 + 10 ._user_heap_stack 00000600 20000020 080008cc 00002020 2**0 ALLOC - 11 .ARM.attributes 00000030 00000000 00000000 000018e8 2**0 + 11 .ARM.attributes 00000030 00000000 00000000 000018cc 2**0 CONTENTS, READONLY - 12 .debug_info 00001979 00000000 00000000 00001918 2**0 + 12 .debug_info 00001979 00000000 00000000 000018fc 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 13 .debug_abbrev 0000085e 00000000 00000000 00003291 2**0 + 13 .debug_abbrev 0000085e 00000000 00000000 00003275 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 14 .debug_aranges 00000248 00000000 00000000 00003af0 2**3 + 14 .debug_aranges 00000248 00000000 00000000 00003ad8 2**3 CONTENTS, READONLY, DEBUGGING, OCTETS - 15 .debug_rnglists 00000191 00000000 00000000 00003d38 2**0 + 15 .debug_rnglists 00000191 00000000 00000000 00003d20 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 16 .debug_macro 0000f139 00000000 00000000 00003ec9 2**0 + 16 .debug_macro 0000f09d 00000000 00000000 00003eb1 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 17 .debug_line 00002e8d 00000000 00000000 00013002 2**0 + 17 .debug_line 00002e8a 00000000 00000000 00012f4e 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 18 .debug_str 00053928 00000000 00000000 00015e8f 2**0 + 18 .debug_str 00053928 00000000 00000000 00015dd8 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS - 19 .comment 00000043 00000000 00000000 000697b7 2**0 + 19 .comment 00000043 00000000 00000000 00069700 2**0 CONTENTS, READONLY - 20 .debug_frame 000006f0 00000000 00000000 000697fc 2**2 + 20 .debug_frame 000006f0 00000000 00000000 00069744 2**2 CONTENTS, READONLY, DEBUGGING, OCTETS - 21 .debug_line_str 0000005c 00000000 00000000 00069eec 2**0 + 21 .debug_line_str 0000005c 00000000 00000000 00069e34 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS Disassembly of section .text: @@ -64,7 +64,7 @@ Disassembly of section .text: 80001aa: bd10 pop {r4, pc} 80001ac: 20000000 .word 0x20000000 80001b0: 00000000 .word 0x00000000 - 80001b4: 080008c8 .word 0x080008c8 + 80001b4: 080008ac .word 0x080008ac 080001b8 : 80001b8: b508 push {r3, lr} @@ -76,7 +76,7 @@ Disassembly of section .text: 80001c6: bd08 pop {r3, pc} 80001c8: 00000000 .word 0x00000000 80001cc: 20000004 .word 0x20000004 - 80001d0: 080008c8 .word 0x080008c8 + 80001d0: 080008ac .word 0x080008ac 080001d4 : #include "LED.h" @@ -464,373 +464,387 @@ static void TIM3_Init(void) 800043c: b480 push {r7} 800043e: af00 add r7, sp, #0 RCC->APB1ENR |= RCC_APB1ENR_TIM3EN; - 8000440: 4b12 ldr r3, [pc, #72] @ (800048c ) + 8000440: 4b0f ldr r3, [pc, #60] @ (8000480 ) 8000442: 6c1b ldr r3, [r3, #64] @ 0x40 - 8000444: 4a11 ldr r2, [pc, #68] @ (800048c ) + 8000444: 4a0e ldr r2, [pc, #56] @ (8000480 ) 8000446: f043 0302 orr.w r3, r3, #2 800044a: 6413 str r3, [r2, #64] @ 0x40 - TIM2->CR1 |= TIM_CR1_DIR; - 800044c: f04f 4380 mov.w r3, #1073741824 @ 0x40000000 - 8000450: 681b ldr r3, [r3, #0] - 8000452: f04f 4280 mov.w r2, #1073741824 @ 0x40000000 - 8000456: f043 0310 orr.w r3, r3, #16 - 800045a: 6013 str r3, [r2, #0] - TIM2->PSC = 479; - 800045c: f04f 4380 mov.w r3, #1073741824 @ 0x40000000 - 8000460: f240 12df movw r2, #479 @ 0x1df - 8000464: 629a str r2, [r3, #40] @ 0x28 - TIM2->ARR = 0xFFFFFFFF; - 8000466: f04f 4380 mov.w r3, #1073741824 @ 0x40000000 - 800046a: f04f 32ff mov.w r2, #4294967295 - 800046e: 62da str r2, [r3, #44] @ 0x2c - TIM2->CR1 |= TIM_CR1_CEN; - 8000470: f04f 4380 mov.w r3, #1073741824 @ 0x40000000 - 8000474: 681b ldr r3, [r3, #0] - 8000476: f04f 4280 mov.w r2, #1073741824 @ 0x40000000 - 800047a: f043 0301 orr.w r3, r3, #1 - 800047e: 6013 str r3, [r2, #0] + TIM3->CR1 |= TIM_CR1_DIR; + 800044c: 4b0d ldr r3, [pc, #52] @ (8000484 ) + 800044e: 681b ldr r3, [r3, #0] + 8000450: 4a0c ldr r2, [pc, #48] @ (8000484 ) + 8000452: f043 0310 orr.w r3, r3, #16 + 8000456: 6013 str r3, [r2, #0] + TIM3->PSC = 479; + 8000458: 4b0a ldr r3, [pc, #40] @ (8000484 ) + 800045a: f240 12df movw r2, #479 @ 0x1df + 800045e: 629a str r2, [r3, #40] @ 0x28 + TIM3->ARR = 0xFFFFFFFF; + 8000460: 4b08 ldr r3, [pc, #32] @ (8000484 ) + 8000462: f04f 32ff mov.w r2, #4294967295 + 8000466: 62da str r2, [r3, #44] @ 0x2c + TIM3->CR1 |= TIM_CR1_CEN; + 8000468: 4b06 ldr r3, [pc, #24] @ (8000484 ) + 800046a: 681b ldr r3, [r3, #0] + 800046c: 4a05 ldr r2, [pc, #20] @ (8000484 ) + 800046e: f043 0301 orr.w r3, r3, #1 + 8000472: 6013 str r3, [r2, #0] } - 8000480: bf00 nop - 8000482: 46bd mov sp, r7 - 8000484: f85d 7b04 ldr.w r7, [sp], #4 - 8000488: 4770 bx lr - 800048a: bf00 nop - 800048c: 40023800 .word 0x40023800 + 8000474: bf00 nop + 8000476: 46bd mov sp, r7 + 8000478: f85d 7b04 ldr.w r7, [sp], #4 + 800047c: 4770 bx lr + 800047e: bf00 nop + 8000480: 40023800 .word 0x40023800 + 8000484: 40000400 .word 0x40000400 -08000490 : +08000488 : static uint32_t GetHardwareSeed(void) { - 8000490: b480 push {r7} - 8000492: b083 sub sp, #12 - 8000494: af00 add r7, sp, #0 + 8000488: b480 push {r7} + 800048a: b083 sub sp, #12 + 800048c: af00 add r7, sp, #0 uint32_t count2 = TIM2->CNT; - 8000496: f04f 4380 mov.w r3, #1073741824 @ 0x40000000 - 800049a: 6a5b ldr r3, [r3, #36] @ 0x24 - 800049c: 607b str r3, [r7, #4] + 800048e: f04f 4380 mov.w r3, #1073741824 @ 0x40000000 + 8000492: 6a5b ldr r3, [r3, #36] @ 0x24 + 8000494: 607b str r3, [r7, #4] uint32_t count3 = TIM3->CNT; - 800049e: 4b06 ldr r3, [pc, #24] @ (80004b8 ) - 80004a0: 6a5b ldr r3, [r3, #36] @ 0x24 - 80004a2: 603b str r3, [r7, #0] + 8000496: 4b06 ldr r3, [pc, #24] @ (80004b0 ) + 8000498: 6a5b ldr r3, [r3, #36] @ 0x24 + 800049a: 603b str r3, [r7, #0] return (count2 ^ count3); - 80004a4: 687a ldr r2, [r7, #4] - 80004a6: 683b ldr r3, [r7, #0] - 80004a8: 4053 eors r3, r2 + 800049c: 687a ldr r2, [r7, #4] + 800049e: 683b ldr r3, [r7, #0] + 80004a0: 4053 eors r3, r2 } - 80004aa: 4618 mov r0, r3 - 80004ac: 370c adds r7, #12 - 80004ae: 46bd mov sp, r7 - 80004b0: f85d 7b04 ldr.w r7, [sp], #4 - 80004b4: 4770 bx lr - 80004b6: bf00 nop - 80004b8: 40000400 .word 0x40000400 + 80004a2: 4618 mov r0, r3 + 80004a4: 370c adds r7, #12 + 80004a6: 46bd mov sp, r7 + 80004a8: f85d 7b04 ldr.w r7, [sp], #4 + 80004ac: 4770 bx lr + 80004ae: bf00 nop + 80004b0: 40000400 .word 0x40000400 -080004bc : +080004b4 : static uint16_t GetLFSR(uint16_t seed16) { - 80004bc: b480 push {r7} - 80004be: b085 sub sp, #20 - 80004c0: af00 add r7, sp, #0 - 80004c2: 4603 mov r3, r0 - 80004c4: 80fb strh r3, [r7, #6] + 80004b4: b480 push {r7} + 80004b6: b085 sub sp, #20 + 80004b8: af00 add r7, sp, #0 + 80004ba: 4603 mov r3, r0 + 80004bc: 80fb strh r3, [r7, #6] uint16_t lsb = (seed16 & 0x01); - 80004c6: 88fb ldrh r3, [r7, #6] - 80004c8: f003 0301 and.w r3, r3, #1 - 80004cc: 81fb strh r3, [r7, #14] + 80004be: 88fb ldrh r3, [r7, #6] + 80004c0: f003 0301 and.w r3, r3, #1 + 80004c4: 81fb strh r3, [r7, #14] seed16 >>= 1; - 80004ce: 88fb ldrh r3, [r7, #6] - 80004d0: 085b lsrs r3, r3, #1 - 80004d2: 80fb strh r3, [r7, #6] + 80004c6: 88fb ldrh r3, [r7, #6] + 80004c8: 085b lsrs r3, r3, #1 + 80004ca: 80fb strh r3, [r7, #6] if(lsb) - 80004d4: 89fb ldrh r3, [r7, #14] - 80004d6: 2b00 cmp r3, #0 - 80004d8: d007 beq.n 80004ea + 80004cc: 89fb ldrh r3, [r7, #14] + 80004ce: 2b00 cmp r3, #0 + 80004d0: d007 beq.n 80004e2 { seed16 ^= 0xB400; - 80004da: 88fb ldrh r3, [r7, #6] - 80004dc: f083 437f eor.w r3, r3, #4278190080 @ 0xff000000 - 80004e0: f483 037f eor.w r3, r3, #16711680 @ 0xff0000 - 80004e4: f483 4334 eor.w r3, r3, #46080 @ 0xb400 - 80004e8: 80fb strh r3, [r7, #6] + 80004d2: 88fb ldrh r3, [r7, #6] + 80004d4: f083 437f eor.w r3, r3, #4278190080 @ 0xff000000 + 80004d8: f483 037f eor.w r3, r3, #16711680 @ 0xff0000 + 80004dc: f483 4334 eor.w r3, r3, #46080 @ 0xb400 + 80004e0: 80fb strh r3, [r7, #6] } return seed16; - 80004ea: 88fb ldrh r3, [r7, #6] + 80004e2: 88fb ldrh r3, [r7, #6] } - 80004ec: 4618 mov r0, r3 - 80004ee: 3714 adds r7, #20 - 80004f0: 46bd mov sp, r7 - 80004f2: f85d 7b04 ldr.w r7, [sp], #4 - 80004f6: 4770 bx lr + 80004e4: 4618 mov r0, r3 + 80004e6: 3714 adds r7, #20 + 80004e8: 46bd mov sp, r7 + 80004ea: f85d 7b04 ldr.w r7, [sp], #4 + 80004ee: 4770 bx lr -080004f8 : +080004f0 : static uint32_t GetXORShift(uint32_t seed32) { - 80004f8: b480 push {r7} - 80004fa: b085 sub sp, #20 - 80004fc: af00 add r7, sp, #0 - 80004fe: 6078 str r0, [r7, #4] + 80004f0: b480 push {r7} + 80004f2: b085 sub sp, #20 + 80004f4: af00 add r7, sp, #0 + 80004f6: 6078 str r0, [r7, #4] uint32_t state = seed32; - 8000500: 687b ldr r3, [r7, #4] - 8000502: 60fb str r3, [r7, #12] + 80004f8: 687b ldr r3, [r7, #4] + 80004fa: 60fb str r3, [r7, #12] state ^= (state << 13); - 8000504: 68fb ldr r3, [r7, #12] - 8000506: 035b lsls r3, r3, #13 - 8000508: 68fa ldr r2, [r7, #12] - 800050a: 4053 eors r3, r2 - 800050c: 60fb str r3, [r7, #12] + 80004fc: 68fb ldr r3, [r7, #12] + 80004fe: 035b lsls r3, r3, #13 + 8000500: 68fa ldr r2, [r7, #12] + 8000502: 4053 eors r3, r2 + 8000504: 60fb str r3, [r7, #12] state ^= (state >> 17); - 800050e: 68fb ldr r3, [r7, #12] - 8000510: 0c5b lsrs r3, r3, #17 - 8000512: 68fa ldr r2, [r7, #12] - 8000514: 4053 eors r3, r2 - 8000516: 60fb str r3, [r7, #12] + 8000506: 68fb ldr r3, [r7, #12] + 8000508: 0c5b lsrs r3, r3, #17 + 800050a: 68fa ldr r2, [r7, #12] + 800050c: 4053 eors r3, r2 + 800050e: 60fb str r3, [r7, #12] state ^= (state << 5); - 8000518: 68fb ldr r3, [r7, #12] - 800051a: 015b lsls r3, r3, #5 - 800051c: 68fa ldr r2, [r7, #12] - 800051e: 4053 eors r3, r2 - 8000520: 60fb str r3, [r7, #12] + 8000510: 68fb ldr r3, [r7, #12] + 8000512: 015b lsls r3, r3, #5 + 8000514: 68fa ldr r2, [r7, #12] + 8000516: 4053 eors r3, r2 + 8000518: 60fb str r3, [r7, #12] return state; - 8000522: 68fb ldr r3, [r7, #12] + 800051a: 68fb ldr r3, [r7, #12] } - 8000524: 4618 mov r0, r3 - 8000526: 3714 adds r7, #20 - 8000528: 46bd mov sp, r7 - 800052a: f85d 7b04 ldr.w r7, [sp], #4 - 800052e: 4770 bx lr + 800051c: 4618 mov r0, r3 + 800051e: 3714 adds r7, #20 + 8000520: 46bd mov sp, r7 + 8000522: f85d 7b04 ldr.w r7, [sp], #4 + 8000526: 4770 bx lr -08000530 : +08000528 : static uint32_t GetFNVHash(uint32_t val) { - 8000530: b480 push {r7} - 8000532: b085 sub sp, #20 - 8000534: af00 add r7, sp, #0 - 8000536: 6078 str r0, [r7, #4] + 8000528: b480 push {r7} + 800052a: b085 sub sp, #20 + 800052c: af00 add r7, sp, #0 + 800052e: 6078 str r0, [r7, #4] uint32_t hash = 2166136261U; - 8000538: 4b08 ldr r3, [pc, #32] @ (800055c ) - 800053a: 60fb str r3, [r7, #12] + 8000530: 4b08 ldr r3, [pc, #32] @ (8000554 ) + 8000532: 60fb str r3, [r7, #12] hash ^= val; - 800053c: 68fa ldr r2, [r7, #12] - 800053e: 687b ldr r3, [r7, #4] - 8000540: 4053 eors r3, r2 - 8000542: 60fb str r3, [r7, #12] + 8000534: 68fa ldr r2, [r7, #12] + 8000536: 687b ldr r3, [r7, #4] + 8000538: 4053 eors r3, r2 + 800053a: 60fb str r3, [r7, #12] hash *= 16777619; - 8000544: 68fb ldr r3, [r7, #12] - 8000546: 4a06 ldr r2, [pc, #24] @ (8000560 ) - 8000548: fb02 f303 mul.w r3, r2, r3 - 800054c: 60fb str r3, [r7, #12] + 800053c: 68fb ldr r3, [r7, #12] + 800053e: 4a06 ldr r2, [pc, #24] @ (8000558 ) + 8000540: fb02 f303 mul.w r3, r2, r3 + 8000544: 60fb str r3, [r7, #12] return hash; - 800054e: 68fb ldr r3, [r7, #12] + 8000546: 68fb ldr r3, [r7, #12] } - 8000550: 4618 mov r0, r3 - 8000552: 3714 adds r7, #20 - 8000554: 46bd mov sp, r7 - 8000556: f85d 7b04 ldr.w r7, [sp], #4 - 800055a: 4770 bx lr - 800055c: 811c9dc5 .word 0x811c9dc5 - 8000560: 01000193 .word 0x01000193 + 8000548: 4618 mov r0, r3 + 800054a: 3714 adds r7, #20 + 800054c: 46bd mov sp, r7 + 800054e: f85d 7b04 ldr.w r7, [sp], #4 + 8000552: 4770 bx lr + 8000554: 811c9dc5 .word 0x811c9dc5 + 8000558: 01000193 .word 0x01000193 -08000564 : +0800055c : void SoftRNG_Init(void) { - 8000564: b580 push {r7, lr} - 8000566: af00 add r7, sp, #0 + 800055c: b580 push {r7, lr} + 800055e: af00 add r7, sp, #0 TIM2_Init(); - 8000568: f7ff ff40 bl 80003ec + 8000560: f7ff ff44 bl 80003ec TIM3_Init(); - 800056c: f7ff ff66 bl 800043c + 8000564: f7ff ff6a bl 800043c UART2_Init(); - 8000570: f000 f856 bl 8000620 + 8000568: f000 f84c bl 8000604 } - 8000574: bf00 nop - 8000576: bd80 pop {r7, pc} + 800056c: bf00 nop + 800056e: bd80 pop {r7, pc} -08000578 : +08000570 : uint32_t SoftRNG_Generate(void) { - 8000578: b580 push {r7, lr} - 800057a: b086 sub sp, #24 - 800057c: af00 add r7, sp, #0 + 8000570: b580 push {r7, lr} + 8000572: b086 sub sp, #24 + 8000574: af00 add r7, sp, #0 uint32_t hardwareSeed = GetHardwareSeed(); - 800057e: f7ff ff87 bl 8000490 - 8000582: 6178 str r0, [r7, #20] + 8000576: f7ff ff87 bl 8000488 + 800057a: 6178 str r0, [r7, #20] uint32_t seedValue = hardwareSeed ^ SEED_CONST; - 8000584: 697b ldr r3, [r7, #20] - 8000586: f083 335a eor.w r3, r3, #1515870810 @ 0x5a5a5a5a - 800058a: 613b str r3, [r7, #16] + 800057c: 697b ldr r3, [r7, #20] + 800057e: f083 335a eor.w r3, r3, #1515870810 @ 0x5a5a5a5a + 8000582: 613b str r3, [r7, #16] uint16_t seed16 = seedValue & 0xFFFF; - 800058c: 693b ldr r3, [r7, #16] - 800058e: 81fb strh r3, [r7, #14] + 8000584: 693b ldr r3, [r7, #16] + 8000586: 81fb strh r3, [r7, #14] uint16_t lfsrVal = GetLFSR(seed16); - 8000590: 89fb ldrh r3, [r7, #14] - 8000592: 4618 mov r0, r3 - 8000594: f7ff ff92 bl 80004bc - 8000598: 4603 mov r3, r0 - 800059a: 81bb strh r3, [r7, #12] + 8000588: 89fb ldrh r3, [r7, #14] + 800058a: 4618 mov r0, r3 + 800058c: f7ff ff92 bl 80004b4 + 8000590: 4603 mov r3, r0 + 8000592: 81bb strh r3, [r7, #12] uint32_t xorVal = GetXORShift(seedValue); - 800059c: 6938 ldr r0, [r7, #16] - 800059e: f7ff ffab bl 80004f8 - 80005a2: 60b8 str r0, [r7, #8] - uint32_t combined = (lfsrVal ^ xorVal) * 1664525 + 1013904223 ; - 80005a4: 89ba ldrh r2, [r7, #12] - 80005a6: 68bb ldr r3, [r7, #8] - 80005a8: 4053 eors r3, r2 - 80005aa: 4a07 ldr r2, [pc, #28] @ (80005c8 ) - 80005ac: fb03 f202 mul.w r2, r3, r2 - 80005b0: 4b06 ldr r3, [pc, #24] @ (80005cc ) - 80005b2: 4413 add r3, r2 - 80005b4: 607b str r3, [r7, #4] + 8000594: 6938 ldr r0, [r7, #16] + 8000596: f7ff ffab bl 80004f0 + 800059a: 60b8 str r0, [r7, #8] + uint32_t combined = (lfsrVal & xorVal); + 800059c: 89bb ldrh r3, [r7, #12] + 800059e: 68ba ldr r2, [r7, #8] + 80005a0: 4013 ands r3, r2 + 80005a2: 607b str r3, [r7, #4] uint32_t randomVal = GetFNVHash(combined); - 80005b6: 6878 ldr r0, [r7, #4] - 80005b8: f7ff ffba bl 8000530 - 80005bc: 6038 str r0, [r7, #0] + 80005a4: 6878 ldr r0, [r7, #4] + 80005a6: f7ff ffbf bl 8000528 + 80005aa: 6038 str r0, [r7, #0] return randomVal; - 80005be: 683b ldr r3, [r7, #0] + 80005ac: 683b ldr r3, [r7, #0] } - 80005c0: 4618 mov r0, r3 - 80005c2: 3718 adds r7, #24 - 80005c4: 46bd mov sp, r7 - 80005c6: bd80 pop {r7, pc} - 80005c8: 0019660d .word 0x0019660d - 80005cc: 3c6ef35f .word 0x3c6ef35f - -080005d0 : + 80005ae: 4618 mov r0, r3 + 80005b0: 3718 adds r7, #24 + 80005b2: 46bd mov sp, r7 + 80005b4: bd80 pop {r7, pc} + +080005b6 : #define APB1_CLK SYS_FREQ void UART2_Write(int ch); static uint16_t Compute_UART_Baud(uint32_t periph_clk, uint32_t baudrate) { - 80005d0: b480 push {r7} - 80005d2: b083 sub sp, #12 - 80005d4: af00 add r7, sp, #0 - 80005d6: 6078 str r0, [r7, #4] - 80005d8: 6039 str r1, [r7, #0] + 80005b6: b480 push {r7} + 80005b8: b083 sub sp, #12 + 80005ba: af00 add r7, sp, #0 + 80005bc: 6078 str r0, [r7, #4] + 80005be: 6039 str r1, [r7, #0] return ((periph_clk + (baudrate/2U))/baudrate); - 80005da: 683b ldr r3, [r7, #0] - 80005dc: 085a lsrs r2, r3, #1 - 80005de: 687b ldr r3, [r7, #4] - 80005e0: 441a add r2, r3 - 80005e2: 683b ldr r3, [r7, #0] - 80005e4: fbb2 f3f3 udiv r3, r2, r3 - 80005e8: b29b uxth r3, r3 + 80005c0: 683b ldr r3, [r7, #0] + 80005c2: 085a lsrs r2, r3, #1 + 80005c4: 687b ldr r3, [r7, #4] + 80005c6: 441a add r2, r3 + 80005c8: 683b ldr r3, [r7, #0] + 80005ca: fbb2 f3f3 udiv r3, r2, r3 + 80005ce: b29b uxth r3, r3 } - 80005ea: 4618 mov r0, r3 - 80005ec: 370c adds r7, #12 - 80005ee: 46bd mov sp, r7 - 80005f0: f85d 7b04 ldr.w r7, [sp], #4 - 80005f4: 4770 bx lr - ... + 80005d0: 4618 mov r0, r3 + 80005d2: 370c adds r7, #12 + 80005d4: 46bd mov sp, r7 + 80005d6: f85d 7b04 ldr.w r7, [sp], #4 + 80005da: 4770 bx lr -080005f8 : +080005dc : static void UART2_SetBaudRate(uint32_t periph_clk, uint32_t baudrate) { - 80005f8: b580 push {r7, lr} - 80005fa: b082 sub sp, #8 - 80005fc: af00 add r7, sp, #0 - 80005fe: 6078 str r0, [r7, #4] - 8000600: 6039 str r1, [r7, #0] + 80005dc: b580 push {r7, lr} + 80005de: b082 sub sp, #8 + 80005e0: af00 add r7, sp, #0 + 80005e2: 6078 str r0, [r7, #4] + 80005e4: 6039 str r1, [r7, #0] USART2->BRR = Compute_UART_Baud(periph_clk,baudrate); - 8000602: 6839 ldr r1, [r7, #0] - 8000604: 6878 ldr r0, [r7, #4] - 8000606: f7ff ffe3 bl 80005d0 - 800060a: 4603 mov r3, r0 - 800060c: 461a mov r2, r3 - 800060e: 4b03 ldr r3, [pc, #12] @ (800061c ) - 8000610: 609a str r2, [r3, #8] + 80005e6: 6839 ldr r1, [r7, #0] + 80005e8: 6878 ldr r0, [r7, #4] + 80005ea: f7ff ffe4 bl 80005b6 + 80005ee: 4603 mov r3, r0 + 80005f0: 461a mov r2, r3 + 80005f2: 4b03 ldr r3, [pc, #12] @ (8000600 ) + 80005f4: 609a str r2, [r3, #8] } - 8000612: bf00 nop - 8000614: 3708 adds r7, #8 - 8000616: 46bd mov sp, r7 - 8000618: bd80 pop {r7, pc} - 800061a: bf00 nop - 800061c: 40004400 .word 0x40004400 + 80005f6: bf00 nop + 80005f8: 3708 adds r7, #8 + 80005fa: 46bd mov sp, r7 + 80005fc: bd80 pop {r7, pc} + 80005fe: bf00 nop + 8000600: 40004400 .word 0x40004400 -08000620 : +08000604 : void UART2_Init(void) { - 8000620: b580 push {r7, lr} - 8000622: af00 add r7, sp, #0 + 8000604: b580 push {r7, lr} + 8000606: af00 add r7, sp, #0 /*Enable clock access to GPIOA*/ RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN; - 8000624: 4b18 ldr r3, [pc, #96] @ (8000688 ) - 8000626: 6b1b ldr r3, [r3, #48] @ 0x30 - 8000628: 4a17 ldr r2, [pc, #92] @ (8000688 ) - 800062a: f043 0301 orr.w r3, r3, #1 - 800062e: 6313 str r3, [r2, #48] @ 0x30 + 8000608: 4b18 ldr r3, [pc, #96] @ (800066c ) + 800060a: 6b1b ldr r3, [r3, #48] @ 0x30 + 800060c: 4a17 ldr r2, [pc, #92] @ (800066c ) + 800060e: f043 0301 orr.w r3, r3, #1 + 8000612: 6313 str r3, [r2, #48] @ 0x30 /*Enable clock access to UART2*/ RCC->APB1ENR |= RCC_APB1ENR_USART2EN; - 8000630: 4b15 ldr r3, [pc, #84] @ (8000688 ) - 8000632: 6c1b ldr r3, [r3, #64] @ 0x40 - 8000634: 4a14 ldr r2, [pc, #80] @ (8000688 ) - 8000636: f443 3300 orr.w r3, r3, #131072 @ 0x20000 - 800063a: 6413 str r3, [r2, #64] @ 0x40 + 8000614: 4b15 ldr r3, [pc, #84] @ (800066c ) + 8000616: 6c1b ldr r3, [r3, #64] @ 0x40 + 8000618: 4a14 ldr r2, [pc, #80] @ (800066c ) + 800061a: f443 3300 orr.w r3, r3, #131072 @ 0x20000 + 800061e: 6413 str r3, [r2, #64] @ 0x40 /*Set PA2 mode to alternate function mode */ GPIOA->MODER &=~(1U<<4); - 800063c: 4b13 ldr r3, [pc, #76] @ (800068c ) - 800063e: 681b ldr r3, [r3, #0] - 8000640: 4a12 ldr r2, [pc, #72] @ (800068c ) - 8000642: f023 0310 bic.w r3, r3, #16 - 8000646: 6013 str r3, [r2, #0] + 8000620: 4b13 ldr r3, [pc, #76] @ (8000670 ) + 8000622: 681b ldr r3, [r3, #0] + 8000624: 4a12 ldr r2, [pc, #72] @ (8000670 ) + 8000626: f023 0310 bic.w r3, r3, #16 + 800062a: 6013 str r3, [r2, #0] GPIOA->MODER |=(1U<<5); - 8000648: 4b10 ldr r3, [pc, #64] @ (800068c ) - 800064a: 681b ldr r3, [r3, #0] - 800064c: 4a0f ldr r2, [pc, #60] @ (800068c ) - 800064e: f043 0320 orr.w r3, r3, #32 - 8000652: 6013 str r3, [r2, #0] + 800062c: 4b10 ldr r3, [pc, #64] @ (8000670 ) + 800062e: 681b ldr r3, [r3, #0] + 8000630: 4a0f ldr r2, [pc, #60] @ (8000670 ) + 8000632: f043 0320 orr.w r3, r3, #32 + 8000636: 6013 str r3, [r2, #0] /*Set PA2 alternate function type to UART_TX(AF07)*/ GPIOA->AFR[0] |=(0x7<<8); - 8000654: 4b0d ldr r3, [pc, #52] @ (800068c ) - 8000656: 6a1b ldr r3, [r3, #32] - 8000658: 4a0c ldr r2, [pc, #48] @ (800068c ) - 800065a: f443 63e0 orr.w r3, r3, #1792 @ 0x700 - 800065e: 6213 str r3, [r2, #32] + 8000638: 4b0d ldr r3, [pc, #52] @ (8000670 ) + 800063a: 6a1b ldr r3, [r3, #32] + 800063c: 4a0c ldr r2, [pc, #48] @ (8000670 ) + 800063e: f443 63e0 orr.w r3, r3, #1792 @ 0x700 + 8000642: 6213 str r3, [r2, #32] /*Configure Baud Rate*/ UART2_SetBaudRate(APB1_CLK,UART_BAUDRATE); - 8000660: f44f 31e1 mov.w r1, #115200 @ 0x1c200 - 8000664: 480a ldr r0, [pc, #40] @ (8000690 ) - 8000666: f7ff ffc7 bl 80005f8 + 8000644: f44f 31e1 mov.w r1, #115200 @ 0x1c200 + 8000648: 480a ldr r0, [pc, #40] @ (8000674 ) + 800064a: f7ff ffc7 bl 80005dc /*Configure the Transfer directions*/ USART2->CR1 |= (USART_CR1_TE | USART_CR1_RE); - 800066a: 4b0a ldr r3, [pc, #40] @ (8000694 ) - 800066c: 68db ldr r3, [r3, #12] - 800066e: 4a09 ldr r2, [pc, #36] @ (8000694 ) - 8000670: f043 030c orr.w r3, r3, #12 - 8000674: 60d3 str r3, [r2, #12] + 800064e: 4b0a ldr r3, [pc, #40] @ (8000678 ) + 8000650: 68db ldr r3, [r3, #12] + 8000652: 4a09 ldr r2, [pc, #36] @ (8000678 ) + 8000654: f043 030c orr.w r3, r3, #12 + 8000658: 60d3 str r3, [r2, #12] /*Enable UART module*/ USART2->CR1 |= USART_CR1_UE; - 8000676: 4b07 ldr r3, [pc, #28] @ (8000694 ) - 8000678: 68db ldr r3, [r3, #12] - 800067a: 4a06 ldr r2, [pc, #24] @ (8000694 ) - 800067c: f443 5300 orr.w r3, r3, #8192 @ 0x2000 - 8000680: 60d3 str r3, [r2, #12] + 800065a: 4b07 ldr r3, [pc, #28] @ (8000678 ) + 800065c: 68db ldr r3, [r3, #12] + 800065e: 4a06 ldr r2, [pc, #24] @ (8000678 ) + 8000660: f443 5300 orr.w r3, r3, #8192 @ 0x2000 + 8000664: 60d3 str r3, [r2, #12] } - 8000682: bf00 nop - 8000684: bd80 pop {r7, pc} - 8000686: bf00 nop - 8000688: 40023800 .word 0x40023800 - 800068c: 40020000 .word 0x40020000 - 8000690: 00f42400 .word 0x00f42400 - 8000694: 40004400 .word 0x40004400 - -08000698 : + 8000666: bf00 nop + 8000668: bd80 pop {r7, pc} + 800066a: bf00 nop + 800066c: 40023800 .word 0x40023800 + 8000670: 40020000 .word 0x40020000 + 8000674: 00f42400 .word 0x00f42400 + 8000678: 40004400 .word 0x40004400 + +0800067c : #include "W25Qxx.h" static void W25Q_WriteEnable(void) +{ + 800067c: b580 push {r7, lr} + 800067e: af00 add r7, sp, #0 + SPI2_SelectSlave(); + 8000680: f7ff fe0e bl 80002a0 + SPI2_TransmitReceiveByte(ENABLE_WRITE); + 8000684: 2006 movs r0, #6 + 8000686: f7ff fe27 bl 80002d8 + SPI2_DeselectSlave(); + 800068a: f7ff fe17 bl 80002bc + delay_ms(10); + 800068e: 200a movs r0, #10 + 8000690: f7ff fe7e bl 8000390 +} + 8000694: bf00 nop + 8000696: bd80 pop {r7, pc} + +08000698 : + +static void W25Q_WriteDisable(void) { 8000698: b580 push {r7, lr} 800069a: af00 add r7, sp, #0 SPI2_SelectSlave(); 800069c: f7ff fe00 bl 80002a0 - SPI2_TransmitReceiveByte(ENABLE_WRITE); - 80006a0: 2006 movs r0, #6 + SPI2_TransmitReceiveByte(DISABLE_WRITE); + 80006a0: 2004 movs r0, #4 80006a2: f7ff fe19 bl 80002d8 SPI2_DeselectSlave(); 80006a6: f7ff fe09 bl 80002bc @@ -841,418 +855,398 @@ static void W25Q_WriteEnable(void) 80006b0: bf00 nop 80006b2: bd80 pop {r7, pc} -080006b4 : +080006b4 : -static void W25Q_WriteDisable(void) +static void W25Q_Reset(void) { 80006b4: b580 push {r7, lr} 80006b6: af00 add r7, sp, #0 SPI2_SelectSlave(); 80006b8: f7ff fdf2 bl 80002a0 - SPI2_TransmitReceiveByte(DISABLE_WRITE); - 80006bc: 2004 movs r0, #4 - 80006be: f7ff fe0b bl 80002d8 - SPI2_DeselectSlave(); - 80006c2: f7ff fdfb bl 80002bc - delay_ms(10); - 80006c6: 200a movs r0, #10 - 80006c8: f7ff fe62 bl 8000390 -} - 80006cc: bf00 nop - 80006ce: bd80 pop {r7, pc} - -080006d0 : - -static void W25Q_Reset(void) -{ - 80006d0: b580 push {r7, lr} - 80006d2: af00 add r7, sp, #0 - SPI2_SelectSlave(); - 80006d4: f7ff fde4 bl 80002a0 SPI2_TransmitReceiveByte(ENABLE_RESET); - 80006d8: 2066 movs r0, #102 @ 0x66 - 80006da: f7ff fdfd bl 80002d8 + 80006bc: 2066 movs r0, #102 @ 0x66 + 80006be: f7ff fe0b bl 80002d8 SPI2_TransmitReceiveByte(EXECUTE_RESET); - 80006de: 2099 movs r0, #153 @ 0x99 - 80006e0: f7ff fdfa bl 80002d8 + 80006c2: 2099 movs r0, #153 @ 0x99 + 80006c4: f7ff fe08 bl 80002d8 SPI2_DeselectSlave(); - 80006e4: f7ff fdea bl 80002bc + 80006c8: f7ff fdf8 bl 80002bc delay_ms(100); - 80006e8: 2064 movs r0, #100 @ 0x64 - 80006ea: f7ff fe51 bl 8000390 + 80006cc: 2064 movs r0, #100 @ 0x64 + 80006ce: f7ff fe5f bl 8000390 } - 80006ee: bf00 nop - 80006f0: bd80 pop {r7, pc} + 80006d2: bf00 nop + 80006d4: bd80 pop {r7, pc} -080006f2 : +080006d6 : void W25Q_Init(void) { - 80006f2: b580 push {r7, lr} - 80006f4: af00 add r7, sp, #0 + 80006d6: b580 push {r7, lr} + 80006d8: af00 add r7, sp, #0 SPI2_Init(); - 80006f6: f7ff fd9d bl 8000234 + 80006da: f7ff fdab bl 8000234 W25Q_Reset(); - 80006fa: f7ff ffe9 bl 80006d0 + 80006de: f7ff ffe9 bl 80006b4 } - 80006fe: bf00 nop - 8000700: bd80 pop {r7, pc} + 80006e2: bf00 nop + 80006e4: bd80 pop {r7, pc} -08000702 : +080006e6 : } SPI2_DeselectSlave(); } static void W25Q_WritePage(uint32_t startPage, uint16_t offset, uint32_t size, uint8_t *data) { - 8000702: b580 push {r7, lr} - 8000704: b086 sub sp, #24 - 8000706: af00 add r7, sp, #0 - 8000708: 60f8 str r0, [r7, #12] - 800070a: 607a str r2, [r7, #4] - 800070c: 603b str r3, [r7, #0] - 800070e: 460b mov r3, r1 - 8000710: 817b strh r3, [r7, #10] + 80006e6: b580 push {r7, lr} + 80006e8: b086 sub sp, #24 + 80006ea: af00 add r7, sp, #0 + 80006ec: 60f8 str r0, [r7, #12] + 80006ee: 607a str r2, [r7, #4] + 80006f0: 603b str r3, [r7, #0] + 80006f2: 460b mov r3, r1 + 80006f4: 817b strh r3, [r7, #10] uint32_t memAddress = (startPage * 256) + offset; - 8000712: 68fb ldr r3, [r7, #12] - 8000714: 021a lsls r2, r3, #8 - 8000716: 897b ldrh r3, [r7, #10] - 8000718: 4413 add r3, r2 - 800071a: 617b str r3, [r7, #20] + 80006f6: 68fb ldr r3, [r7, #12] + 80006f8: 021a lsls r2, r3, #8 + 80006fa: 897b ldrh r3, [r7, #10] + 80006fc: 4413 add r3, r2 + 80006fe: 617b str r3, [r7, #20] W25Q_WriteEnable(); - 800071c: f7ff ffbc bl 8000698 + 8000700: f7ff ffbc bl 800067c SPI2_SelectSlave(); - 8000720: f7ff fdbe bl 80002a0 + 8000704: f7ff fdcc bl 80002a0 SPI2_TransmitReceiveByte(PAGE_WRITE); - 8000724: 2002 movs r0, #2 - 8000726: f7ff fdd7 bl 80002d8 + 8000708: 2002 movs r0, #2 + 800070a: f7ff fde5 bl 80002d8 SPI2_TransmitReceiveByte((memAddress >> 16) & 0xFF); - 800072a: 697b ldr r3, [r7, #20] - 800072c: 0c1b lsrs r3, r3, #16 - 800072e: b2db uxtb r3, r3 - 8000730: 4618 mov r0, r3 - 8000732: f7ff fdd1 bl 80002d8 + 800070e: 697b ldr r3, [r7, #20] + 8000710: 0c1b lsrs r3, r3, #16 + 8000712: b2db uxtb r3, r3 + 8000714: 4618 mov r0, r3 + 8000716: f7ff fddf bl 80002d8 SPI2_TransmitReceiveByte((memAddress >> 8) & 0xFF); - 8000736: 697b ldr r3, [r7, #20] - 8000738: 0a1b lsrs r3, r3, #8 - 800073a: b2db uxtb r3, r3 - 800073c: 4618 mov r0, r3 - 800073e: f7ff fdcb bl 80002d8 + 800071a: 697b ldr r3, [r7, #20] + 800071c: 0a1b lsrs r3, r3, #8 + 800071e: b2db uxtb r3, r3 + 8000720: 4618 mov r0, r3 + 8000722: f7ff fdd9 bl 80002d8 SPI2_TransmitReceiveByte((memAddress) & 0xFF); - 8000742: 697b ldr r3, [r7, #20] - 8000744: b2db uxtb r3, r3 - 8000746: 4618 mov r0, r3 - 8000748: f7ff fdc6 bl 80002d8 + 8000726: 697b ldr r3, [r7, #20] + 8000728: b2db uxtb r3, r3 + 800072a: 4618 mov r0, r3 + 800072c: f7ff fdd4 bl 80002d8 SPI2_TransmitReceive_MultiByte(data, NULL, size); - 800074c: 687b ldr r3, [r7, #4] - 800074e: b29b uxth r3, r3 - 8000750: 461a mov r2, r3 - 8000752: 2100 movs r1, #0 - 8000754: 6838 ldr r0, [r7, #0] - 8000756: f7ff fde1 bl 800031c + 8000730: 687b ldr r3, [r7, #4] + 8000732: b29b uxth r3, r3 + 8000734: 461a mov r2, r3 + 8000736: 2100 movs r1, #0 + 8000738: 6838 ldr r0, [r7, #0] + 800073a: f7ff fdef bl 800031c SPI2_DeselectSlave(); - 800075a: f7ff fdaf bl 80002bc + 800073e: f7ff fdbd bl 80002bc W25Q_WriteDisable(); - 800075e: f7ff ffa9 bl 80006b4 + 8000742: f7ff ffa9 bl 8000698 delay_ms(5); - 8000762: 2005 movs r0, #5 - 8000764: f7ff fe14 bl 8000390 + 8000746: 2005 movs r0, #5 + 8000748: f7ff fe22 bl 8000390 } - 8000768: bf00 nop - 800076a: 3718 adds r7, #24 - 800076c: 46bd mov sp, r7 - 800076e: bd80 pop {r7, pc} + 800074c: bf00 nop + 800074e: 3718 adds r7, #24 + 8000750: 46bd mov sp, r7 + 8000752: bd80 pop {r7, pc} -08000770 : +08000754 : void W25Q_WriteData(uint32_t startPage, uint16_t offset, uint32_t size, uint8_t *data) { - 8000770: b580 push {r7, lr} - 8000772: b08a sub sp, #40 @ 0x28 - 8000774: af00 add r7, sp, #0 - 8000776: 60f8 str r0, [r7, #12] - 8000778: 607a str r2, [r7, #4] - 800077a: 603b str r3, [r7, #0] - 800077c: 460b mov r3, r1 - 800077e: 817b strh r3, [r7, #10] + 8000754: b580 push {r7, lr} + 8000756: b08a sub sp, #40 @ 0x28 + 8000758: af00 add r7, sp, #0 + 800075a: 60f8 str r0, [r7, #12] + 800075c: 607a str r2, [r7, #4] + 800075e: 603b str r3, [r7, #0] + 8000760: 460b mov r3, r1 + 8000762: 817b strh r3, [r7, #10] uint32_t bytesToWrite; uint32_t remainingBytes = size; - 8000780: 687b ldr r3, [r7, #4] - 8000782: 623b str r3, [r7, #32] + 8000764: 687b ldr r3, [r7, #4] + 8000766: 623b str r3, [r7, #32] uint32_t currentPage = startPage; - 8000784: 68fb ldr r3, [r7, #12] - 8000786: 61fb str r3, [r7, #28] + 8000768: 68fb ldr r3, [r7, #12] + 800076a: 61fb str r3, [r7, #28] uint16_t currentOffset = offset; - 8000788: 897b ldrh r3, [r7, #10] - 800078a: 837b strh r3, [r7, #26] + 800076c: 897b ldrh r3, [r7, #10] + 800076e: 837b strh r3, [r7, #26] uint8_t *currentData = data; - 800078c: 683b ldr r3, [r7, #0] - 800078e: 617b str r3, [r7, #20] + 8000770: 683b ldr r3, [r7, #0] + 8000772: 617b str r3, [r7, #20] // While there's data left to write while (remainingBytes > 0) - 8000790: e01c b.n 80007cc + 8000774: e01c b.n 80007b0 { // Calculate how many bytes can be written to the current page bytesToWrite = 256 - currentOffset; - 8000792: 8b7b ldrh r3, [r7, #26] - 8000794: f5c3 7380 rsb r3, r3, #256 @ 0x100 - 8000798: 627b str r3, [r7, #36] @ 0x24 + 8000776: 8b7b ldrh r3, [r7, #26] + 8000778: f5c3 7380 rsb r3, r3, #256 @ 0x100 + 800077c: 627b str r3, [r7, #36] @ 0x24 if (remainingBytes < bytesToWrite) - 800079a: 6a3a ldr r2, [r7, #32] - 800079c: 6a7b ldr r3, [r7, #36] @ 0x24 - 800079e: 429a cmp r2, r3 - 80007a0: d201 bcs.n 80007a6 + 800077e: 6a3a ldr r2, [r7, #32] + 8000780: 6a7b ldr r3, [r7, #36] @ 0x24 + 8000782: 429a cmp r2, r3 + 8000784: d201 bcs.n 800078a { bytesToWrite = remainingBytes; - 80007a2: 6a3b ldr r3, [r7, #32] - 80007a4: 627b str r3, [r7, #36] @ 0x24 + 8000786: 6a3b ldr r3, [r7, #32] + 8000788: 627b str r3, [r7, #36] @ 0x24 } // Call W25Q_WritePage() function W25Q_WritePage(currentPage, currentOffset, bytesToWrite, currentData); - 80007a6: 8b79 ldrh r1, [r7, #26] - 80007a8: 697b ldr r3, [r7, #20] - 80007aa: 6a7a ldr r2, [r7, #36] @ 0x24 - 80007ac: 69f8 ldr r0, [r7, #28] - 80007ae: f7ff ffa8 bl 8000702 + 800078a: 8b79 ldrh r1, [r7, #26] + 800078c: 697b ldr r3, [r7, #20] + 800078e: 6a7a ldr r2, [r7, #36] @ 0x24 + 8000790: 69f8 ldr r0, [r7, #28] + 8000792: f7ff ffa8 bl 80006e6 // Update the remaining data, current data pointer, and Page Number remainingBytes -= bytesToWrite; - 80007b2: 6a3a ldr r2, [r7, #32] - 80007b4: 6a7b ldr r3, [r7, #36] @ 0x24 - 80007b6: 1ad3 subs r3, r2, r3 - 80007b8: 623b str r3, [r7, #32] + 8000796: 6a3a ldr r2, [r7, #32] + 8000798: 6a7b ldr r3, [r7, #36] @ 0x24 + 800079a: 1ad3 subs r3, r2, r3 + 800079c: 623b str r3, [r7, #32] currentData += bytesToWrite; - 80007ba: 697a ldr r2, [r7, #20] - 80007bc: 6a7b ldr r3, [r7, #36] @ 0x24 - 80007be: 4413 add r3, r2 - 80007c0: 617b str r3, [r7, #20] + 800079e: 697a ldr r2, [r7, #20] + 80007a0: 6a7b ldr r3, [r7, #36] @ 0x24 + 80007a2: 4413 add r3, r2 + 80007a4: 617b str r3, [r7, #20] currentPage++; - 80007c2: 69fb ldr r3, [r7, #28] - 80007c4: 3301 adds r3, #1 - 80007c6: 61fb str r3, [r7, #28] + 80007a6: 69fb ldr r3, [r7, #28] + 80007a8: 3301 adds r3, #1 + 80007aa: 61fb str r3, [r7, #28] currentOffset = 0; - 80007c8: 2300 movs r3, #0 - 80007ca: 837b strh r3, [r7, #26] + 80007ac: 2300 movs r3, #0 + 80007ae: 837b strh r3, [r7, #26] while (remainingBytes > 0) - 80007cc: 6a3b ldr r3, [r7, #32] - 80007ce: 2b00 cmp r3, #0 - 80007d0: d1df bne.n 8000792 + 80007b0: 6a3b ldr r3, [r7, #32] + 80007b2: 2b00 cmp r3, #0 + 80007b4: d1df bne.n 8000776 } } - 80007d2: bf00 nop - 80007d4: bf00 nop - 80007d6: 3728 adds r7, #40 @ 0x28 - 80007d8: 46bd mov sp, r7 - 80007da: bd80 pop {r7, pc} + 80007b6: bf00 nop + 80007b8: bf00 nop + 80007ba: 3728 adds r7, #40 @ 0x28 + 80007bc: 46bd mov sp, r7 + 80007be: bd80 pop {r7, pc} -080007dc
: +080007c0
: #include "Soft_RNG.h" uint32_t count = 0; int main() { - 80007dc: b580 push {r7, lr} - 80007de: b082 sub sp, #8 - 80007e0: af00 add r7, sp, #0 - uint32_t random; - - LED_Init(); - 80007e2: f7ff fcf7 bl 80001d4 - W25Q_Init(); - 80007e6: f7ff ff84 bl 80006f2 - SoftRNG_Init(); - 80007ea: f7ff febb bl 8000564 - - for(int i = 0; i < 100000; i++) - 80007ee: 2300 movs r3, #0 - 80007f0: 607b str r3, [r7, #4] - 80007f2: e011 b.n 8000818 - { - random = SoftRNG_Generate(); - 80007f4: f7ff fec0 bl 8000578 - 80007f8: 4603 mov r3, r0 - 80007fa: 603b str r3, [r7, #0] - W25Q_WriteData(i, 0, 4, (uint8_t *)&random); - 80007fc: 6878 ldr r0, [r7, #4] - 80007fe: 463b mov r3, r7 - 8000800: 2204 movs r2, #4 - 8000802: 2100 movs r1, #0 - 8000804: f7ff ffb4 bl 8000770 - count++; - 8000808: 4b06 ldr r3, [pc, #24] @ (8000824 ) - 800080a: 681b ldr r3, [r3, #0] - 800080c: 3301 adds r3, #1 - 800080e: 4a05 ldr r2, [pc, #20] @ (8000824 ) - 8000810: 6013 str r3, [r2, #0] - for(int i = 0; i < 100000; i++) - 8000812: 687b ldr r3, [r7, #4] - 8000814: 3301 adds r3, #1 - 8000816: 607b str r3, [r7, #4] - 8000818: 687b ldr r3, [r7, #4] - 800081a: 4a03 ldr r2, [pc, #12] @ (8000828 ) - 800081c: 4293 cmp r3, r2 - 800081e: dde9 ble.n 80007f4 - } + 80007c0: b580 push {r7, lr} + 80007c2: b082 sub sp, #8 + 80007c4: af00 add r7, sp, #0 + uint32_t random; + + LED_Init(); + 80007c6: f7ff fd05 bl 80001d4 + W25Q_Init(); + 80007ca: f7ff ff84 bl 80006d6 + SoftRNG_Init(); + 80007ce: f7ff fec5 bl 800055c + + for(int i = 0; i < 10000; i++) + 80007d2: 2300 movs r3, #0 + 80007d4: 607b str r3, [r7, #4] + 80007d6: e011 b.n 80007fc + { + random = SoftRNG_Generate(); + 80007d8: f7ff feca bl 8000570 + 80007dc: 4603 mov r3, r0 + 80007de: 603b str r3, [r7, #0] + W25Q_WriteData(i, 0, 4, (uint8_t *)&random); + 80007e0: 6878 ldr r0, [r7, #4] + 80007e2: 463b mov r3, r7 + 80007e4: 2204 movs r2, #4 + 80007e6: 2100 movs r1, #0 + 80007e8: f7ff ffb4 bl 8000754 + count++; + 80007ec: 4b07 ldr r3, [pc, #28] @ (800080c ) + 80007ee: 681b ldr r3, [r3, #0] + 80007f0: 3301 adds r3, #1 + 80007f2: 4a06 ldr r2, [pc, #24] @ (800080c ) + 80007f4: 6013 str r3, [r2, #0] + for(int i = 0; i < 10000; i++) + 80007f6: 687b ldr r3, [r7, #4] + 80007f8: 3301 adds r3, #1 + 80007fa: 607b str r3, [r7, #4] + 80007fc: 687b ldr r3, [r7, #4] + 80007fe: f242 720f movw r2, #9999 @ 0x270f + 8000802: 4293 cmp r3, r2 + 8000804: dde8 ble.n 80007d8 + } - while(1) - 8000820: bf00 nop - 8000822: e7fd b.n 8000820 - 8000824: 2000001c .word 0x2000001c - 8000828: 0001869f .word 0x0001869f + while(1) + 8000806: bf00 nop + 8000808: e7fd b.n 8000806 + 800080a: bf00 nop + 800080c: 2000001c .word 0x2000001c -0800082c : +08000810 : .section .text.Reset_Handler .weak Reset_Handler .type Reset_Handler, %function Reset_Handler: ldr r0, =_estack - 800082c: 480d ldr r0, [pc, #52] @ (8000864 ) + 8000810: 480d ldr r0, [pc, #52] @ (8000848 ) mov sp, r0 /* set stack pointer */ - 800082e: 4685 mov sp, r0 + 8000812: 4685 mov sp, r0 /* Call the clock system initialization function.*/ bl SystemInit - 8000830: f3af 8000 nop.w + 8000814: f3af 8000 nop.w /* Copy the data segment initializers from flash to SRAM */ ldr r0, =_sdata - 8000834: 480c ldr r0, [pc, #48] @ (8000868 ) + 8000818: 480c ldr r0, [pc, #48] @ (800084c ) ldr r1, =_edata - 8000836: 490d ldr r1, [pc, #52] @ (800086c ) + 800081a: 490d ldr r1, [pc, #52] @ (8000850 ) ldr r2, =_sidata - 8000838: 4a0d ldr r2, [pc, #52] @ (8000870 ) + 800081c: 4a0d ldr r2, [pc, #52] @ (8000854 ) movs r3, #0 - 800083a: 2300 movs r3, #0 + 800081e: 2300 movs r3, #0 b LoopCopyDataInit - 800083c: e002 b.n 8000844 + 8000820: e002 b.n 8000828 -0800083e : +08000822 : CopyDataInit: ldr r4, [r2, r3] - 800083e: 58d4 ldr r4, [r2, r3] + 8000822: 58d4 ldr r4, [r2, r3] str r4, [r0, r3] - 8000840: 50c4 str r4, [r0, r3] + 8000824: 50c4 str r4, [r0, r3] adds r3, r3, #4 - 8000842: 3304 adds r3, #4 + 8000826: 3304 adds r3, #4 -08000844 : +08000828 : LoopCopyDataInit: adds r4, r0, r3 - 8000844: 18c4 adds r4, r0, r3 + 8000828: 18c4 adds r4, r0, r3 cmp r4, r1 - 8000846: 428c cmp r4, r1 + 800082a: 428c cmp r4, r1 bcc CopyDataInit - 8000848: d3f9 bcc.n 800083e + 800082c: d3f9 bcc.n 8000822 /* Zero fill the bss segment. */ ldr r2, =_sbss - 800084a: 4a0a ldr r2, [pc, #40] @ (8000874 ) + 800082e: 4a0a ldr r2, [pc, #40] @ (8000858 ) ldr r4, =_ebss - 800084c: 4c0a ldr r4, [pc, #40] @ (8000878 ) + 8000830: 4c0a ldr r4, [pc, #40] @ (800085c ) movs r3, #0 - 800084e: 2300 movs r3, #0 + 8000832: 2300 movs r3, #0 b LoopFillZerobss - 8000850: e001 b.n 8000856 + 8000834: e001 b.n 800083a -08000852 : +08000836 : FillZerobss: str r3, [r2] - 8000852: 6013 str r3, [r2, #0] + 8000836: 6013 str r3, [r2, #0] adds r2, r2, #4 - 8000854: 3204 adds r2, #4 + 8000838: 3204 adds r2, #4 -08000856 : +0800083a : LoopFillZerobss: cmp r2, r4 - 8000856: 42a2 cmp r2, r4 + 800083a: 42a2 cmp r2, r4 bcc FillZerobss - 8000858: d3fb bcc.n 8000852 + 800083c: d3fb bcc.n 8000836 /* Call static constructors */ bl __libc_init_array - 800085a: f000 f811 bl 8000880 <__libc_init_array> + 800083e: f000 f811 bl 8000864 <__libc_init_array> /* Call the application's entry point.*/ bl main - 800085e: f7ff ffbd bl 80007dc
+ 8000842: f7ff ffbd bl 80007c0
-08000862 : +08000846 : LoopForever: b LoopForever - 8000862: e7fe b.n 8000862 + 8000846: e7fe b.n 8000846 ldr r0, =_estack - 8000864: 20018000 .word 0x20018000 + 8000848: 20018000 .word 0x20018000 ldr r0, =_sdata - 8000868: 20000000 .word 0x20000000 + 800084c: 20000000 .word 0x20000000 ldr r1, =_edata - 800086c: 20000000 .word 0x20000000 + 8000850: 20000000 .word 0x20000000 ldr r2, =_sidata - 8000870: 080008e8 .word 0x080008e8 + 8000854: 080008cc .word 0x080008cc ldr r2, =_sbss - 8000874: 20000000 .word 0x20000000 + 8000858: 20000000 .word 0x20000000 ldr r4, =_ebss - 8000878: 20000020 .word 0x20000020 + 800085c: 20000020 .word 0x20000020 -0800087c : +08000860 : * @retval : None */ .section .text.Default_Handler,"ax",%progbits Default_Handler: Infinite_Loop: b Infinite_Loop - 800087c: e7fe b.n 800087c + 8000860: e7fe b.n 8000860 ... -08000880 <__libc_init_array>: - 8000880: b570 push {r4, r5, r6, lr} - 8000882: 4d0d ldr r5, [pc, #52] @ (80008b8 <__libc_init_array+0x38>) - 8000884: 4c0d ldr r4, [pc, #52] @ (80008bc <__libc_init_array+0x3c>) - 8000886: 1b64 subs r4, r4, r5 - 8000888: 10a4 asrs r4, r4, #2 - 800088a: 2600 movs r6, #0 - 800088c: 42a6 cmp r6, r4 - 800088e: d109 bne.n 80008a4 <__libc_init_array+0x24> - 8000890: 4d0b ldr r5, [pc, #44] @ (80008c0 <__libc_init_array+0x40>) - 8000892: 4c0c ldr r4, [pc, #48] @ (80008c4 <__libc_init_array+0x44>) - 8000894: f000 f818 bl 80008c8 <_init> - 8000898: 1b64 subs r4, r4, r5 - 800089a: 10a4 asrs r4, r4, #2 - 800089c: 2600 movs r6, #0 - 800089e: 42a6 cmp r6, r4 - 80008a0: d105 bne.n 80008ae <__libc_init_array+0x2e> - 80008a2: bd70 pop {r4, r5, r6, pc} - 80008a4: f855 3b04 ldr.w r3, [r5], #4 - 80008a8: 4798 blx r3 - 80008aa: 3601 adds r6, #1 - 80008ac: e7ee b.n 800088c <__libc_init_array+0xc> - 80008ae: f855 3b04 ldr.w r3, [r5], #4 - 80008b2: 4798 blx r3 - 80008b4: 3601 adds r6, #1 - 80008b6: e7f2 b.n 800089e <__libc_init_array+0x1e> - 80008b8: 080008e0 .word 0x080008e0 - 80008bc: 080008e0 .word 0x080008e0 - 80008c0: 080008e0 .word 0x080008e0 - 80008c4: 080008e4 .word 0x080008e4 - -080008c8 <_init>: - 80008c8: b5f8 push {r3, r4, r5, r6, r7, lr} - 80008ca: bf00 nop - 80008cc: bcf8 pop {r3, r4, r5, r6, r7} - 80008ce: bc08 pop {r3} - 80008d0: 469e mov lr, r3 - 80008d2: 4770 bx lr - -080008d4 <_fini>: - 80008d4: b5f8 push {r3, r4, r5, r6, r7, lr} - 80008d6: bf00 nop - 80008d8: bcf8 pop {r3, r4, r5, r6, r7} - 80008da: bc08 pop {r3} - 80008dc: 469e mov lr, r3 - 80008de: 4770 bx lr +08000864 <__libc_init_array>: + 8000864: b570 push {r4, r5, r6, lr} + 8000866: 4d0d ldr r5, [pc, #52] @ (800089c <__libc_init_array+0x38>) + 8000868: 4c0d ldr r4, [pc, #52] @ (80008a0 <__libc_init_array+0x3c>) + 800086a: 1b64 subs r4, r4, r5 + 800086c: 10a4 asrs r4, r4, #2 + 800086e: 2600 movs r6, #0 + 8000870: 42a6 cmp r6, r4 + 8000872: d109 bne.n 8000888 <__libc_init_array+0x24> + 8000874: 4d0b ldr r5, [pc, #44] @ (80008a4 <__libc_init_array+0x40>) + 8000876: 4c0c ldr r4, [pc, #48] @ (80008a8 <__libc_init_array+0x44>) + 8000878: f000 f818 bl 80008ac <_init> + 800087c: 1b64 subs r4, r4, r5 + 800087e: 10a4 asrs r4, r4, #2 + 8000880: 2600 movs r6, #0 + 8000882: 42a6 cmp r6, r4 + 8000884: d105 bne.n 8000892 <__libc_init_array+0x2e> + 8000886: bd70 pop {r4, r5, r6, pc} + 8000888: f855 3b04 ldr.w r3, [r5], #4 + 800088c: 4798 blx r3 + 800088e: 3601 adds r6, #1 + 8000890: e7ee b.n 8000870 <__libc_init_array+0xc> + 8000892: f855 3b04 ldr.w r3, [r5], #4 + 8000896: 4798 blx r3 + 8000898: 3601 adds r6, #1 + 800089a: e7f2 b.n 8000882 <__libc_init_array+0x1e> + 800089c: 080008c4 .word 0x080008c4 + 80008a0: 080008c4 .word 0x080008c4 + 80008a4: 080008c4 .word 0x080008c4 + 80008a8: 080008c8 .word 0x080008c8 + +080008ac <_init>: + 80008ac: b5f8 push {r3, r4, r5, r6, r7, lr} + 80008ae: bf00 nop + 80008b0: bcf8 pop {r3, r4, r5, r6, r7} + 80008b2: bc08 pop {r3} + 80008b4: 469e mov lr, r3 + 80008b6: 4770 bx lr + +080008b8 <_fini>: + 80008b8: b5f8 push {r3, r4, r5, r6, r7, lr} + 80008ba: bf00 nop + 80008bc: bcf8 pop {r3, r4, r5, r6, r7} + 80008be: bc08 pop {r3} + 80008c0: 469e mov lr, r3 + 80008c2: 4770 bx lr diff --git a/Debug/Soft_RNG.map b/Debug/Soft_RNG.map index 4c9f43a..efa76be 100644 --- a/Debug/Soft_RNG.map +++ b/Debug/Soft_RNG.map @@ -353,27 +353,16 @@ Discarded input sections .bss 0x00000000 0x0 ./Src/main.o .debug_macro 0x00000000 0xaa8 ./Src/main.o .debug_macro 0x00000000 0x22 ./Src/main.o - .debug_macro 0x00000000 0x8e ./Src/main.o - .debug_macro 0x00000000 0x51 ./Src/main.o - .debug_macro 0x00000000 0x103 ./Src/main.o - .debug_macro 0x00000000 0x6a ./Src/main.o - .debug_macro 0x00000000 0x1df ./Src/main.o - .debug_macro 0x00000000 0x2e ./Src/main.o - .debug_macro 0x00000000 0x28 ./Src/main.o - .debug_macro 0x00000000 0x1c ./Src/main.o - .debug_macro 0x00000000 0x22 ./Src/main.o - .debug_macro 0x00000000 0xfb ./Src/main.o - .debug_macro 0x00000000 0x1011 ./Src/main.o - .debug_macro 0x00000000 0x11f ./Src/main.o - .debug_macro 0x00000000 0xb86c ./Src/main.o - .debug_macro 0x00000000 0x6d ./Src/main.o - .debug_macro 0x00000000 0x189 ./Src/main.o - .debug_macro 0x00000000 0xbe ./Src/main.o + .debug_macro 0x00000000 0x5b ./Src/main.o .debug_macro 0x00000000 0x2a ./Src/main.o + .debug_macro 0x00000000 0x94 ./Src/main.o .debug_macro 0x00000000 0x43 ./Src/main.o .debug_macro 0x00000000 0x34 ./Src/main.o .debug_macro 0x00000000 0x16 ./Src/main.o + .debug_macro 0x00000000 0x57 ./Src/main.o + .debug_macro 0x00000000 0x9e ./Src/main.o .debug_macro 0x00000000 0x369 ./Src/main.o + .debug_macro 0x00000000 0x10b ./Src/main.o .debug_macro 0x00000000 0x10 ./Src/main.o .debug_macro 0x00000000 0x16 ./Src/main.o .debug_macro 0x00000000 0x43 ./Src/main.o @@ -386,6 +375,19 @@ Discarded input sections .debug_macro 0x00000000 0x16 ./Src/main.o .debug_macro 0x00000000 0x16 ./Src/main.o .debug_macro 0x00000000 0x146 ./Src/main.o + .debug_macro 0x00000000 0x103 ./Src/main.o + .debug_macro 0x00000000 0x6a ./Src/main.o + .debug_macro 0x00000000 0x1df ./Src/main.o + .debug_macro 0x00000000 0x2e ./Src/main.o + .debug_macro 0x00000000 0x28 ./Src/main.o + .debug_macro 0x00000000 0x1c ./Src/main.o + .debug_macro 0x00000000 0x22 ./Src/main.o + .debug_macro 0x00000000 0xfb ./Src/main.o + .debug_macro 0x00000000 0x1011 ./Src/main.o + .debug_macro 0x00000000 0x11f ./Src/main.o + .debug_macro 0x00000000 0xb86c ./Src/main.o + .debug_macro 0x00000000 0x6d ./Src/main.o + .debug_macro 0x00000000 0xbe ./Src/main.o .group 0x00000000 0xc ./Src/syscalls.o .group 0x00000000 0xc ./Src/syscalls.o .group 0x00000000 0xc ./Src/syscalls.o @@ -868,7 +870,7 @@ LOAD C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.ext 0x08000000 g_pfnVectors 0x08000194 . = ALIGN (0x4) -.text 0x08000194 0x74c +.text 0x08000194 0x730 0x08000194 . = ALIGN (0x4) *(.text) .text 0x08000194 0x40 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v7e-m+fp/hard/crtbegin.o @@ -897,191 +899,190 @@ LOAD C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.ext .text.TIM2_Init 0x080003ec 0x50 ./Src/Soft_RNG.o .text.TIM3_Init - 0x0800043c 0x54 ./Src/Soft_RNG.o + 0x0800043c 0x4c ./Src/Soft_RNG.o .text.GetHardwareSeed - 0x08000490 0x2c ./Src/Soft_RNG.o - .text.GetLFSR 0x080004bc 0x3c ./Src/Soft_RNG.o + 0x08000488 0x2c ./Src/Soft_RNG.o + .text.GetLFSR 0x080004b4 0x3c ./Src/Soft_RNG.o .text.GetXORShift - 0x080004f8 0x38 ./Src/Soft_RNG.o + 0x080004f0 0x38 ./Src/Soft_RNG.o .text.GetFNVHash - 0x08000530 0x34 ./Src/Soft_RNG.o + 0x08000528 0x34 ./Src/Soft_RNG.o .text.SoftRNG_Init - 0x08000564 0x14 ./Src/Soft_RNG.o - 0x08000564 SoftRNG_Init + 0x0800055c 0x14 ./Src/Soft_RNG.o + 0x0800055c SoftRNG_Init .text.SoftRNG_Generate - 0x08000578 0x58 ./Src/Soft_RNG.o - 0x08000578 SoftRNG_Generate + 0x08000570 0x46 ./Src/Soft_RNG.o + 0x08000570 SoftRNG_Generate .text.Compute_UART_Baud - 0x080005d0 0x26 ./Src/UART.o - *fill* 0x080005f6 0x2 + 0x080005b6 0x26 ./Src/UART.o .text.UART2_SetBaudRate - 0x080005f8 0x28 ./Src/UART.o + 0x080005dc 0x28 ./Src/UART.o .text.UART2_Init - 0x08000620 0x78 ./Src/UART.o - 0x08000620 UART2_Init + 0x08000604 0x78 ./Src/UART.o + 0x08000604 UART2_Init .text.W25Q_WriteEnable - 0x08000698 0x1c ./Src/W25Qxx.o + 0x0800067c 0x1c ./Src/W25Qxx.o .text.W25Q_WriteDisable - 0x080006b4 0x1c ./Src/W25Qxx.o + 0x08000698 0x1c ./Src/W25Qxx.o .text.W25Q_Reset - 0x080006d0 0x22 ./Src/W25Qxx.o + 0x080006b4 0x22 ./Src/W25Qxx.o .text.W25Q_Init - 0x080006f2 0x10 ./Src/W25Qxx.o - 0x080006f2 W25Q_Init + 0x080006d6 0x10 ./Src/W25Qxx.o + 0x080006d6 W25Q_Init .text.W25Q_WritePage - 0x08000702 0x6e ./Src/W25Qxx.o + 0x080006e6 0x6e ./Src/W25Qxx.o .text.W25Q_WriteData - 0x08000770 0x6c ./Src/W25Qxx.o - 0x08000770 W25Q_WriteData - .text.main 0x080007dc 0x50 ./Src/main.o - 0x080007dc main + 0x08000754 0x6c ./Src/W25Qxx.o + 0x08000754 W25Q_WriteData + .text.main 0x080007c0 0x50 ./Src/main.o + 0x080007c0 main .text.Reset_Handler - 0x0800082c 0x50 ./Startup/startup_stm32f401retx.o - 0x0800082c Reset_Handler + 0x08000810 0x50 ./Startup/startup_stm32f401retx.o + 0x08000810 Reset_Handler .text.Default_Handler - 0x0800087c 0x2 ./Startup/startup_stm32f401retx.o - 0x0800087c EXTI2_IRQHandler - 0x0800087c DebugMon_Handler - 0x0800087c SPI4_IRQHandler - 0x0800087c TIM1_CC_IRQHandler - 0x0800087c DMA2_Stream5_IRQHandler - 0x0800087c HardFault_Handler - 0x0800087c DMA1_Stream5_IRQHandler - 0x0800087c SysTick_Handler - 0x0800087c SDIO_IRQHandler - 0x0800087c TAMP_STAMP_IRQHandler - 0x0800087c PendSV_Handler - 0x0800087c NMI_Handler - 0x0800087c EXTI3_IRQHandler - 0x0800087c TIM1_UP_TIM10_IRQHandler - 0x0800087c I2C3_ER_IRQHandler - 0x0800087c EXTI18_OTG_FS_WKUP_IRQHandler - 0x0800087c EXTI0_IRQHandler - 0x0800087c I2C2_EV_IRQHandler - 0x0800087c DMA1_Stream2_IRQHandler - 0x0800087c UsageFault_Handler - 0x0800087c DMA2_Stream2_IRQHandler - 0x0800087c SPI1_IRQHandler - 0x0800087c TIM1_BRK_TIM9_IRQHandler - 0x0800087c DMA2_Stream3_IRQHandler - 0x0800087c USART6_IRQHandler - 0x0800087c DMA2_Stream0_IRQHandler - 0x0800087c TIM4_IRQHandler - 0x0800087c I2C1_EV_IRQHandler - 0x0800087c DMA1_Stream6_IRQHandler - 0x0800087c DMA1_Stream1_IRQHandler - 0x0800087c TIM3_IRQHandler - 0x0800087c RCC_IRQHandler - 0x0800087c Default_Handler - 0x0800087c EXTI15_10_IRQHandler - 0x0800087c ADC_IRQHandler - 0x0800087c DMA1_Stream7_IRQHandler - 0x0800087c TIM5_IRQHandler - 0x0800087c DMA2_Stream7_IRQHandler - 0x0800087c I2C3_EV_IRQHandler - 0x0800087c EXTI9_5_IRQHandler - 0x0800087c SPI2_IRQHandler - 0x0800087c MemManage_Handler - 0x0800087c DMA1_Stream0_IRQHandler - 0x0800087c SVC_Handler - 0x0800087c EXTI4_IRQHandler - 0x0800087c EXTI22_RTC_WKUP_IRQHandler - 0x0800087c TIM2_IRQHandler - 0x0800087c EXTI16_PVD_IRQHandler - 0x0800087c TIM1_TRG_COM_TIM11_IRQHandler - 0x0800087c EXTI1_IRQHandler - 0x0800087c EXTI17_RTC_Alarm_IRQHandler - 0x0800087c USART2_IRQHandler - 0x0800087c I2C2_ER_IRQHandler - 0x0800087c DMA2_Stream1_IRQHandler - 0x0800087c FLASH_IRQHandler - 0x0800087c DMA2_Stream4_IRQHandler - 0x0800087c BusFault_Handler - 0x0800087c USART1_IRQHandler - 0x0800087c OTG_FS_IRQHandler - 0x0800087c SPI3_IRQHandler - 0x0800087c DMA1_Stream4_IRQHandler - 0x0800087c I2C1_ER_IRQHandler - 0x0800087c DMA2_Stream6_IRQHandler - 0x0800087c DMA1_Stream3_IRQHandler - *fill* 0x0800087e 0x2 + 0x08000860 0x2 ./Startup/startup_stm32f401retx.o + 0x08000860 EXTI2_IRQHandler + 0x08000860 DebugMon_Handler + 0x08000860 SPI4_IRQHandler + 0x08000860 TIM1_CC_IRQHandler + 0x08000860 DMA2_Stream5_IRQHandler + 0x08000860 HardFault_Handler + 0x08000860 DMA1_Stream5_IRQHandler + 0x08000860 SysTick_Handler + 0x08000860 SDIO_IRQHandler + 0x08000860 TAMP_STAMP_IRQHandler + 0x08000860 PendSV_Handler + 0x08000860 NMI_Handler + 0x08000860 EXTI3_IRQHandler + 0x08000860 TIM1_UP_TIM10_IRQHandler + 0x08000860 I2C3_ER_IRQHandler + 0x08000860 EXTI18_OTG_FS_WKUP_IRQHandler + 0x08000860 EXTI0_IRQHandler + 0x08000860 I2C2_EV_IRQHandler + 0x08000860 DMA1_Stream2_IRQHandler + 0x08000860 UsageFault_Handler + 0x08000860 DMA2_Stream2_IRQHandler + 0x08000860 SPI1_IRQHandler + 0x08000860 TIM1_BRK_TIM9_IRQHandler + 0x08000860 DMA2_Stream3_IRQHandler + 0x08000860 USART6_IRQHandler + 0x08000860 DMA2_Stream0_IRQHandler + 0x08000860 TIM4_IRQHandler + 0x08000860 I2C1_EV_IRQHandler + 0x08000860 DMA1_Stream6_IRQHandler + 0x08000860 DMA1_Stream1_IRQHandler + 0x08000860 TIM3_IRQHandler + 0x08000860 RCC_IRQHandler + 0x08000860 Default_Handler + 0x08000860 EXTI15_10_IRQHandler + 0x08000860 ADC_IRQHandler + 0x08000860 DMA1_Stream7_IRQHandler + 0x08000860 TIM5_IRQHandler + 0x08000860 DMA2_Stream7_IRQHandler + 0x08000860 I2C3_EV_IRQHandler + 0x08000860 EXTI9_5_IRQHandler + 0x08000860 SPI2_IRQHandler + 0x08000860 MemManage_Handler + 0x08000860 DMA1_Stream0_IRQHandler + 0x08000860 SVC_Handler + 0x08000860 EXTI4_IRQHandler + 0x08000860 EXTI22_RTC_WKUP_IRQHandler + 0x08000860 TIM2_IRQHandler + 0x08000860 EXTI16_PVD_IRQHandler + 0x08000860 TIM1_TRG_COM_TIM11_IRQHandler + 0x08000860 EXTI1_IRQHandler + 0x08000860 EXTI17_RTC_Alarm_IRQHandler + 0x08000860 USART2_IRQHandler + 0x08000860 I2C2_ER_IRQHandler + 0x08000860 DMA2_Stream1_IRQHandler + 0x08000860 FLASH_IRQHandler + 0x08000860 DMA2_Stream4_IRQHandler + 0x08000860 BusFault_Handler + 0x08000860 USART1_IRQHandler + 0x08000860 OTG_FS_IRQHandler + 0x08000860 SPI3_IRQHandler + 0x08000860 DMA1_Stream4_IRQHandler + 0x08000860 I2C1_ER_IRQHandler + 0x08000860 DMA2_Stream6_IRQHandler + 0x08000860 DMA1_Stream3_IRQHandler + *fill* 0x08000862 0x2 .text.__libc_init_array - 0x08000880 0x48 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-init.o) - 0x08000880 __libc_init_array + 0x08000864 0x48 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard\libc_nano.a(libc_a-init.o) + 0x08000864 __libc_init_array *(.glue_7) - .glue_7 0x080008c8 0x0 linker stubs + .glue_7 0x080008ac 0x0 linker stubs *(.glue_7t) - .glue_7t 0x080008c8 0x0 linker stubs + .glue_7t 0x080008ac 0x0 linker stubs *(.eh_frame) - .eh_frame 0x080008c8 0x0 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v7e-m+fp/hard/crtbegin.o + .eh_frame 0x080008ac 0x0 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v7e-m+fp/hard/crtbegin.o *(.init) - .init 0x080008c8 0x4 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v7e-m+fp/hard/crti.o - 0x080008c8 _init - .init 0x080008cc 0x8 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v7e-m+fp/hard/crtn.o + .init 0x080008ac 0x4 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v7e-m+fp/hard/crti.o + 0x080008ac _init + .init 0x080008b0 0x8 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v7e-m+fp/hard/crtn.o *(.fini) - .fini 0x080008d4 0x4 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v7e-m+fp/hard/crti.o - 0x080008d4 _fini - .fini 0x080008d8 0x8 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v7e-m+fp/hard/crtn.o - 0x080008e0 . = ALIGN (0x4) - 0x080008e0 _etext = . + .fini 0x080008b8 0x4 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v7e-m+fp/hard/crti.o + 0x080008b8 _fini + .fini 0x080008bc 0x8 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v7e-m+fp/hard/crtn.o + 0x080008c4 . = ALIGN (0x4) + 0x080008c4 _etext = . -.vfp11_veneer 0x080008e0 0x0 - .vfp11_veneer 0x080008e0 0x0 linker stubs +.vfp11_veneer 0x080008c4 0x0 + .vfp11_veneer 0x080008c4 0x0 linker stubs -.v4_bx 0x080008e0 0x0 - .v4_bx 0x080008e0 0x0 linker stubs +.v4_bx 0x080008c4 0x0 + .v4_bx 0x080008c4 0x0 linker stubs -.iplt 0x080008e0 0x0 - .iplt 0x080008e0 0x0 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v7e-m+fp/hard/crtbegin.o +.iplt 0x080008c4 0x0 + .iplt 0x080008c4 0x0 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v7e-m+fp/hard/crtbegin.o -.rodata 0x080008e0 0x0 - 0x080008e0 . = ALIGN (0x4) +.rodata 0x080008c4 0x0 + 0x080008c4 . = ALIGN (0x4) *(.rodata) *(.rodata*) - 0x080008e0 . = ALIGN (0x4) + 0x080008c4 . = ALIGN (0x4) -.ARM.extab 0x080008e0 0x0 - 0x080008e0 . = ALIGN (0x4) +.ARM.extab 0x080008c4 0x0 + 0x080008c4 . = ALIGN (0x4) *(.ARM.extab* .gnu.linkonce.armextab.*) - 0x080008e0 . = ALIGN (0x4) + 0x080008c4 . = ALIGN (0x4) -.ARM 0x080008e0 0x0 - 0x080008e0 . = ALIGN (0x4) - 0x080008e0 __exidx_start = . +.ARM 0x080008c4 0x0 + 0x080008c4 . = ALIGN (0x4) + 0x080008c4 __exidx_start = . *(.ARM.exidx*) - 0x080008e0 __exidx_end = . - 0x080008e0 . = ALIGN (0x4) + 0x080008c4 __exidx_end = . + 0x080008c4 . = ALIGN (0x4) -.preinit_array 0x080008e0 0x0 - 0x080008e0 . = ALIGN (0x4) - 0x080008e0 PROVIDE (__preinit_array_start = .) +.preinit_array 0x080008c4 0x0 + 0x080008c4 . = ALIGN (0x4) + 0x080008c4 PROVIDE (__preinit_array_start = .) *(.preinit_array*) - 0x080008e0 PROVIDE (__preinit_array_end = .) - 0x080008e0 . = ALIGN (0x4) + 0x080008c4 PROVIDE (__preinit_array_end = .) + 0x080008c4 . = ALIGN (0x4) -.init_array 0x080008e0 0x4 - 0x080008e0 . = ALIGN (0x4) - 0x080008e0 PROVIDE (__init_array_start = .) +.init_array 0x080008c4 0x4 + 0x080008c4 . = ALIGN (0x4) + 0x080008c4 PROVIDE (__init_array_start = .) *(SORT_BY_NAME(.init_array.*)) *(.init_array*) - .init_array 0x080008e0 0x4 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v7e-m+fp/hard/crtbegin.o - 0x080008e4 PROVIDE (__init_array_end = .) - 0x080008e4 . = ALIGN (0x4) + .init_array 0x080008c4 0x4 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v7e-m+fp/hard/crtbegin.o + 0x080008c8 PROVIDE (__init_array_end = .) + 0x080008c8 . = ALIGN (0x4) -.fini_array 0x080008e4 0x4 - 0x080008e4 . = ALIGN (0x4) +.fini_array 0x080008c8 0x4 + 0x080008c8 . = ALIGN (0x4) [!provide] PROVIDE (__fini_array_start = .) *(SORT_BY_NAME(.fini_array.*)) *(.fini_array*) - .fini_array 0x080008e4 0x4 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v7e-m+fp/hard/crtbegin.o + .fini_array 0x080008c8 0x4 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v7e-m+fp/hard/crtbegin.o [!provide] PROVIDE (__fini_array_end = .) - 0x080008e8 . = ALIGN (0x4) - 0x080008e8 _sidata = LOADADDR (.data) + 0x080008cc . = ALIGN (0x4) + 0x080008cc _sidata = LOADADDR (.data) -.rel.dyn 0x080008e8 0x0 - .rel.iplt 0x080008e8 0x0 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v7e-m+fp/hard/crtbegin.o +.rel.dyn 0x080008cc 0x0 + .rel.iplt 0x080008cc 0x0 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v7e-m+fp/hard/crtbegin.o -.data 0x20000000 0x0 load address 0x080008e8 +.data 0x20000000 0x0 load address 0x080008cc 0x20000000 . = ALIGN (0x4) 0x20000000 _sdata = . *(.data) @@ -1091,11 +1092,11 @@ LOAD C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.ext 0x20000000 . = ALIGN (0x4) 0x20000000 _edata = . -.igot.plt 0x20000000 0x0 load address 0x080008e8 +.igot.plt 0x20000000 0x0 load address 0x080008cc .igot.plt 0x20000000 0x0 C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.0.100.202403111256/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v7e-m+fp/hard/crtbegin.o 0x20000000 . = ALIGN (0x4) -.bss 0x20000000 0x20 load address 0x080008e8 +.bss 0x20000000 0x20 load address 0x080008cc 0x20000000 _sbss = . 0x20000000 __bss_start__ = _sbss *(.bss) @@ -1109,7 +1110,7 @@ LOAD C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.ext 0x20000020 __bss_end__ = _ebss ._user_heap_stack - 0x20000020 0x600 load address 0x080008e8 + 0x20000020 0x600 load address 0x080008cc 0x20000020 . = ALIGN (0x8) [!provide] PROVIDE (end = .) 0x20000020 PROVIDE (_end = .) @@ -1214,7 +1215,7 @@ LOAD C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.ext .debug_rnglists 0x00000178 0x19 ./Startup/startup_stm32f401retx.o -.debug_macro 0x00000000 0xf139 +.debug_macro 0x00000000 0xf09d .debug_macro 0x00000000 0xd8 ./Src/LED.o .debug_macro 0x000000d8 0xaa8 ./Src/LED.o .debug_macro 0x00000b80 0x2e ./Src/LED.o @@ -1261,19 +1262,17 @@ LOAD C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.ext .debug_macro 0x0000ec0d 0xea ./Src/UART.o .debug_macro 0x0000ecf7 0xfa ./Src/W25Qxx.o .debug_macro 0x0000edf1 0xbe ./Src/W25Qxx.o - .debug_macro 0x0000eeaf 0x1f4 ./Src/main.o - .debug_macro 0x0000f0a3 0x61 ./Src/main.o - .debug_macro 0x0000f104 0x35 ./Src/main.o + .debug_macro 0x0000eeaf 0x1ee ./Src/main.o -.debug_line 0x00000000 0x2e8d +.debug_line 0x00000000 0x2e8a .debug_line 0x00000000 0x559 ./Src/LED.o .debug_line 0x00000559 0x618 ./Src/SPI.o .debug_line 0x00000b71 0x52d ./Src/SYSTICK.o - .debug_line 0x0000109e 0x784 ./Src/Soft_RNG.o - .debug_line 0x00001822 0x5da ./Src/UART.o - .debug_line 0x00001dfc 0x95a ./Src/W25Qxx.o - .debug_line 0x00002756 0x6bc ./Src/main.o - .debug_line 0x00002e12 0x7b ./Startup/startup_stm32f401retx.o + .debug_line 0x0000109e 0x781 ./Src/Soft_RNG.o + .debug_line 0x0000181f 0x5da ./Src/UART.o + .debug_line 0x00001df9 0x95a ./Src/W25Qxx.o + .debug_line 0x00002753 0x6bc ./Src/main.o + .debug_line 0x00002e0f 0x7b ./Startup/startup_stm32f401retx.o .debug_str 0x00000000 0x53928 .debug_str 0x00000000 0x4f6f9 ./Src/LED.o diff --git a/Debug/Src/Soft_RNG.o b/Debug/Src/Soft_RNG.o index 76b3c60aa1f4d9ada52f3b84e450661ddcb5af58..cbb45a35ebb2219adde3847bd36ca65ec9956f5f 100644 GIT binary patch delta 71322 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 |= RCC_APB1ENR_TIM3EN; - TIM2->CR1 |= TIM_CR1_DIR; - TIM2->PSC = 479; - TIM2->ARR = 0xFFFFFFFF; - TIM2->CR1 |= TIM_CR1_CEN; + TIM3->CR1 |= TIM_CR1_DIR; + TIM3->PSC = 479; + TIM3->ARR = 0xFFFFFFFF; + TIM3->CR1 |= TIM_CR1_CEN; } static uint32_t GetHardwareSeed(void) @@ -69,7 +69,7 @@ uint32_t SoftRNG_Generate(void) uint16_t seed16 = seedValue & 0xFFFF; uint16_t lfsrVal = GetLFSR(seed16); uint32_t xorVal = GetXORShift(seedValue); - uint32_t combined = (lfsrVal ^ xorVal) * 1664525 + 1013904223 ; + uint32_t combined = (lfsrVal & xorVal); uint32_t randomVal = GetFNVHash(combined); return randomVal; } diff --git a/Src/main.c b/Src/main.c index f7f5f44..79db791 100644 --- a/Src/main.c +++ b/Src/main.c @@ -1,4 +1,6 @@ +#include #include + #include "LED.h" #include "SYSTICK.h" #include "W25Qxx.h" @@ -8,21 +10,21 @@ uint32_t count = 0; int main() { - uint32_t random; + uint32_t random; - LED_Init(); - W25Q_Init(); - SoftRNG_Init(); + LED_Init(); + W25Q_Init(); + SoftRNG_Init(); - for(int i = 0; i < 100000; i++) - { - random = SoftRNG_Generate(); - W25Q_WriteData(i, 0, 4, (uint8_t *)&random); - count++; - } + for(int i = 0; i < 10000; i++) + { + random = SoftRNG_Generate(); + W25Q_WriteData(i, 0, 4, (uint8_t *)&random); + count++; + } - while(1) - { + while(1) + { - } + } }