diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
index 89166d2..9a3ce50 100644
--- a/.settings/language.settings.xml
+++ b/.settings/language.settings.xml
@@ -5,7 +5,7 @@
-
+
@@ -16,7 +16,7 @@
-
+
diff --git a/Debug/Soft_RNG.elf b/Debug/Soft_RNG.elf
index 64be707..43c3dfd 100644
Binary files a/Debug/Soft_RNG.elf and b/Debug/Soft_RNG.elf differ
diff --git a/Debug/Soft_RNG.list b/Debug/Soft_RNG.list
index 8114d49..0f98da7 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 00000730 08000194 08000194 00001194 2**2
+ 1 .text 00000750 08000194 08000194 00001194 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
- 2 .rodata 00000000 080008c4 080008cc 000018cc 2**0
+ 2 .rodata 00000000 080008e4 080008ec 000018ec 2**0
CONTENTS, ALLOC, LOAD, DATA
- 3 .ARM.extab 00000000 080008c4 080008c4 000018cc 2**0
+ 3 .ARM.extab 00000000 080008e4 080008e4 000018ec 2**0
CONTENTS
- 4 .ARM 00000000 080008c4 080008c4 000018cc 2**0
+ 4 .ARM 00000000 080008e4 080008e4 000018ec 2**0
CONTENTS
- 5 .preinit_array 00000000 080008c4 080008cc 000018cc 2**0
+ 5 .preinit_array 00000000 080008e4 080008ec 000018ec 2**0
CONTENTS, ALLOC, LOAD, DATA
- 6 .init_array 00000004 080008c4 080008c4 000018c4 2**2
+ 6 .init_array 00000004 080008e4 080008e4 000018e4 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 7 .fini_array 00000004 080008c8 080008c8 000018c8 2**2
+ 7 .fini_array 00000004 080008e8 080008e8 000018e8 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 8 .data 00000000 20000000 20000000 000018cc 2**0
+ 8 .data 00000000 20000000 20000000 000018ec 2**0
CONTENTS, ALLOC, LOAD, DATA
- 9 .bss 00000020 20000000 080008cc 00002000 2**2
+ 9 .bss 00000020 20000000 080008ec 00002000 2**2
ALLOC
- 10 ._user_heap_stack 00000600 20000020 080008cc 00002020 2**0
+ 10 ._user_heap_stack 00000600 20000020 080008ec 00002020 2**0
ALLOC
- 11 .ARM.attributes 00000030 00000000 00000000 000018cc 2**0
+ 11 .ARM.attributes 00000030 00000000 00000000 000018ec 2**0
CONTENTS, READONLY
- 12 .debug_info 00001979 00000000 00000000 000018fc 2**0
+ 12 .debug_info 00001989 00000000 00000000 0000191c 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 13 .debug_abbrev 0000085e 00000000 00000000 00003275 2**0
+ 13 .debug_abbrev 0000085f 00000000 00000000 000032a5 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 14 .debug_aranges 00000248 00000000 00000000 00003ad8 2**3
+ 14 .debug_aranges 00000248 00000000 00000000 00003b08 2**3
CONTENTS, READONLY, DEBUGGING, OCTETS
- 15 .debug_rnglists 00000191 00000000 00000000 00003d20 2**0
+ 15 .debug_rnglists 00000191 00000000 00000000 00003d50 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 16 .debug_macro 0000f09d 00000000 00000000 00003eb1 2**0
+ 16 .debug_macro 0000f09d 00000000 00000000 00003ee1 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 17 .debug_line 00002e8a 00000000 00000000 00012f4e 2**0
+ 17 .debug_line 00002e98 00000000 00000000 00012f7e 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 18 .debug_str 00053928 00000000 00000000 00015dd8 2**0
+ 18 .debug_str 00053928 00000000 00000000 00015e16 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 19 .comment 00000043 00000000 00000000 00069700 2**0
+ 19 .comment 00000043 00000000 00000000 0006973e 2**0
CONTENTS, READONLY
- 20 .debug_frame 000006f0 00000000 00000000 00069744 2**2
+ 20 .debug_frame 000006f0 00000000 00000000 00069784 2**2
CONTENTS, READONLY, DEBUGGING, OCTETS
- 21 .debug_line_str 0000005c 00000000 00000000 00069e34 2**0
+ 21 .debug_line_str 0000005c 00000000 00000000 00069e74 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: 080008ac .word 0x080008ac
+ 80001b4: 080008cc .word 0x080008cc
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: 080008ac .word 0x080008ac
+ 80001d0: 080008cc .word 0x080008cc
080001d4 :
#include "LED.h"
@@ -1052,7 +1052,6 @@ int main()
80007c2: b082 sub sp, #8
80007c4: af00 add r7, sp, #0
uint32_t random;
-
LED_Init();
80007c6: f7ff fd05 bl 80001d4
W25Q_Init();
@@ -1063,7 +1062,7 @@ int main()
for(int i = 0; i < 10000; i++)
80007d2: 2300 movs r3, #0
80007d4: 607b str r3, [r7, #4]
- 80007d6: e011 b.n 80007fc
+ 80007d6: e020 b.n 800081a
{
random = SoftRNG_Generate();
80007d8: f7ff feca bl 8000570
@@ -1076,177 +1075,190 @@ int main()
80007e6: 2100 movs r1, #0
80007e8: f7ff ffb4 bl 8000754
count++;
- 80007ec: 4b07 ldr r3, [pc, #28] @ (800080c )
+ 80007ec: 4b0e ldr r3, [pc, #56] @ (8000828 )
80007ee: 681b ldr r3, [r3, #0]
80007f0: 3301 adds r3, #1
- 80007f2: 4a06 ldr r2, [pc, #24] @ (800080c )
+ 80007f2: 4a0d ldr r2, [pc, #52] @ (8000828 )
80007f4: 6013 str r3, [r2, #0]
- for(int i = 0; i < 10000; i++)
+ delay_ms(i%100);
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
+ 80007f8: 4a0c ldr r2, [pc, #48] @ (800082c )
+ 80007fa: fb82 1203 smull r1, r2, r2, r3
+ 80007fe: 1151 asrs r1, r2, #5
+ 8000800: 17da asrs r2, r3, #31
+ 8000802: 1a8a subs r2, r1, r2
+ 8000804: 2164 movs r1, #100 @ 0x64
+ 8000806: fb01 f202 mul.w r2, r1, r2
+ 800080a: 1a9a subs r2, r3, r2
+ 800080c: 4613 mov r3, r2
+ 800080e: 4618 mov r0, r3
+ 8000810: f7ff fdbe bl 8000390
+ for(int i = 0; i < 10000; i++)
+ 8000814: 687b ldr r3, [r7, #4]
+ 8000816: 3301 adds r3, #1
+ 8000818: 607b str r3, [r7, #4]
+ 800081a: 687b ldr r3, [r7, #4]
+ 800081c: f242 720f movw r2, #9999 @ 0x270f
+ 8000820: 4293 cmp r3, r2
+ 8000822: ddd9 ble.n 80007d8
}
while(1)
- 8000806: bf00 nop
- 8000808: e7fd b.n 8000806
- 800080a: bf00 nop
- 800080c: 2000001c .word 0x2000001c
+ 8000824: bf00 nop
+ 8000826: e7fd b.n 8000824
+ 8000828: 2000001c .word 0x2000001c
+ 800082c: 51eb851f .word 0x51eb851f
-08000810 :
+08000830 :
.section .text.Reset_Handler
.weak Reset_Handler
.type Reset_Handler, %function
Reset_Handler:
ldr r0, =_estack
- 8000810: 480d ldr r0, [pc, #52] @ (8000848 )
+ 8000830: 480d ldr r0, [pc, #52] @ (8000868 )
mov sp, r0 /* set stack pointer */
- 8000812: 4685 mov sp, r0
+ 8000832: 4685 mov sp, r0
/* Call the clock system initialization function.*/
bl SystemInit
- 8000814: f3af 8000 nop.w
+ 8000834: f3af 8000 nop.w
/* Copy the data segment initializers from flash to SRAM */
ldr r0, =_sdata
- 8000818: 480c ldr r0, [pc, #48] @ (800084c )
+ 8000838: 480c ldr r0, [pc, #48] @ (800086c )
ldr r1, =_edata
- 800081a: 490d ldr r1, [pc, #52] @ (8000850 )
+ 800083a: 490d ldr r1, [pc, #52] @ (8000870 )
ldr r2, =_sidata
- 800081c: 4a0d ldr r2, [pc, #52] @ (8000854 )
+ 800083c: 4a0d ldr r2, [pc, #52] @ (8000874 )
movs r3, #0
- 800081e: 2300 movs r3, #0
+ 800083e: 2300 movs r3, #0
b LoopCopyDataInit
- 8000820: e002 b.n 8000828
+ 8000840: e002 b.n 8000848
-08000822 :
+08000842 :
CopyDataInit:
ldr r4, [r2, r3]
- 8000822: 58d4 ldr r4, [r2, r3]
+ 8000842: 58d4 ldr r4, [r2, r3]
str r4, [r0, r3]
- 8000824: 50c4 str r4, [r0, r3]
+ 8000844: 50c4 str r4, [r0, r3]
adds r3, r3, #4
- 8000826: 3304 adds r3, #4
+ 8000846: 3304 adds r3, #4
-08000828 :
+08000848 :
LoopCopyDataInit:
adds r4, r0, r3
- 8000828: 18c4 adds r4, r0, r3
+ 8000848: 18c4 adds r4, r0, r3
cmp r4, r1
- 800082a: 428c cmp r4, r1
+ 800084a: 428c cmp r4, r1
bcc CopyDataInit
- 800082c: d3f9 bcc.n 8000822
+ 800084c: d3f9 bcc.n 8000842
/* Zero fill the bss segment. */
ldr r2, =_sbss
- 800082e: 4a0a ldr r2, [pc, #40] @ (8000858 )
+ 800084e: 4a0a ldr r2, [pc, #40] @ (8000878 )
ldr r4, =_ebss
- 8000830: 4c0a ldr r4, [pc, #40] @ (800085c )
+ 8000850: 4c0a ldr r4, [pc, #40] @ (800087c )
movs r3, #0
- 8000832: 2300 movs r3, #0
+ 8000852: 2300 movs r3, #0
b LoopFillZerobss
- 8000834: e001 b.n 800083a
+ 8000854: e001 b.n 800085a
-08000836 :
+08000856 :
FillZerobss:
str r3, [r2]
- 8000836: 6013 str r3, [r2, #0]
+ 8000856: 6013 str r3, [r2, #0]
adds r2, r2, #4
- 8000838: 3204 adds r2, #4
+ 8000858: 3204 adds r2, #4
-0800083a :
+0800085a :
LoopFillZerobss:
cmp r2, r4
- 800083a: 42a2 cmp r2, r4
+ 800085a: 42a2 cmp r2, r4
bcc FillZerobss
- 800083c: d3fb bcc.n 8000836
+ 800085c: d3fb bcc.n 8000856
/* Call static constructors */
bl __libc_init_array
- 800083e: f000 f811 bl 8000864 <__libc_init_array>
+ 800085e: f000 f811 bl 8000884 <__libc_init_array>
/* Call the application's entry point.*/
bl main
- 8000842: f7ff ffbd bl 80007c0
+ 8000862: f7ff ffad bl 80007c0
-08000846 :
+08000866 :
LoopForever:
b LoopForever
- 8000846: e7fe b.n 8000846
+ 8000866: e7fe b.n 8000866
ldr r0, =_estack
- 8000848: 20018000 .word 0x20018000
+ 8000868: 20018000 .word 0x20018000
ldr r0, =_sdata
- 800084c: 20000000 .word 0x20000000
+ 800086c: 20000000 .word 0x20000000
ldr r1, =_edata
- 8000850: 20000000 .word 0x20000000
+ 8000870: 20000000 .word 0x20000000
ldr r2, =_sidata
- 8000854: 080008cc .word 0x080008cc
+ 8000874: 080008ec .word 0x080008ec
ldr r2, =_sbss
- 8000858: 20000000 .word 0x20000000
+ 8000878: 20000000 .word 0x20000000
ldr r4, =_ebss
- 800085c: 20000020 .word 0x20000020
+ 800087c: 20000020 .word 0x20000020
-08000860 :
+08000880 :
* @retval : None
*/
.section .text.Default_Handler,"ax",%progbits
Default_Handler:
Infinite_Loop:
b Infinite_Loop
- 8000860: e7fe b.n 8000860
+ 8000880: e7fe b.n 8000880
...
-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
+08000884 <__libc_init_array>:
+ 8000884: b570 push {r4, r5, r6, lr}
+ 8000886: 4d0d ldr r5, [pc, #52] @ (80008bc <__libc_init_array+0x38>)
+ 8000888: 4c0d ldr r4, [pc, #52] @ (80008c0 <__libc_init_array+0x3c>)
+ 800088a: 1b64 subs r4, r4, r5
+ 800088c: 10a4 asrs r4, r4, #2
+ 800088e: 2600 movs r6, #0
+ 8000890: 42a6 cmp r6, r4
+ 8000892: d109 bne.n 80008a8 <__libc_init_array+0x24>
+ 8000894: 4d0b ldr r5, [pc, #44] @ (80008c4 <__libc_init_array+0x40>)
+ 8000896: 4c0c ldr r4, [pc, #48] @ (80008c8 <__libc_init_array+0x44>)
+ 8000898: f000 f818 bl 80008cc <_init>
+ 800089c: 1b64 subs r4, r4, r5
+ 800089e: 10a4 asrs r4, r4, #2
+ 80008a0: 2600 movs r6, #0
+ 80008a2: 42a6 cmp r6, r4
+ 80008a4: d105 bne.n 80008b2 <__libc_init_array+0x2e>
+ 80008a6: bd70 pop {r4, r5, r6, pc}
+ 80008a8: f855 3b04 ldr.w r3, [r5], #4
+ 80008ac: 4798 blx r3
+ 80008ae: 3601 adds r6, #1
+ 80008b0: e7ee b.n 8000890 <__libc_init_array+0xc>
+ 80008b2: f855 3b04 ldr.w r3, [r5], #4
+ 80008b6: 4798 blx r3
+ 80008b8: 3601 adds r6, #1
+ 80008ba: e7f2 b.n 80008a2 <__libc_init_array+0x1e>
+ 80008bc: 080008e4 .word 0x080008e4
+ 80008c0: 080008e4 .word 0x080008e4
+ 80008c4: 080008e4 .word 0x080008e4
+ 80008c8: 080008e8 .word 0x080008e8
+
+080008cc <_init>:
+ 80008cc: b5f8 push {r3, r4, r5, r6, r7, lr}
+ 80008ce: bf00 nop
+ 80008d0: bcf8 pop {r3, r4, r5, r6, r7}
+ 80008d2: bc08 pop {r3}
+ 80008d4: 469e mov lr, r3
+ 80008d6: 4770 bx lr
+
+080008d8 <_fini>:
+ 80008d8: b5f8 push {r3, r4, r5, r6, r7, lr}
+ 80008da: bf00 nop
+ 80008dc: bcf8 pop {r3, r4, r5, r6, r7}
+ 80008de: bc08 pop {r3}
+ 80008e0: 469e mov lr, r3
+ 80008e2: 4770 bx lr
diff --git a/Debug/Soft_RNG.map b/Debug/Soft_RNG.map
index efa76be..98b4311 100644
--- a/Debug/Soft_RNG.map
+++ b/Debug/Soft_RNG.map
@@ -870,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 0x730
+.text 0x08000194 0x750
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
@@ -934,155 +934,155 @@ LOAD C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.ext
.text.W25Q_WriteData
0x08000754 0x6c ./Src/W25Qxx.o
0x08000754 W25Q_WriteData
- .text.main 0x080007c0 0x50 ./Src/main.o
+ .text.main 0x080007c0 0x70 ./Src/main.o
0x080007c0 main
.text.Reset_Handler
- 0x08000810 0x50 ./Startup/startup_stm32f401retx.o
- 0x08000810 Reset_Handler
+ 0x08000830 0x50 ./Startup/startup_stm32f401retx.o
+ 0x08000830 Reset_Handler
.text.Default_Handler
- 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
+ 0x08000880 0x2 ./Startup/startup_stm32f401retx.o
+ 0x08000880 EXTI2_IRQHandler
+ 0x08000880 DebugMon_Handler
+ 0x08000880 SPI4_IRQHandler
+ 0x08000880 TIM1_CC_IRQHandler
+ 0x08000880 DMA2_Stream5_IRQHandler
+ 0x08000880 HardFault_Handler
+ 0x08000880 DMA1_Stream5_IRQHandler
+ 0x08000880 SysTick_Handler
+ 0x08000880 SDIO_IRQHandler
+ 0x08000880 TAMP_STAMP_IRQHandler
+ 0x08000880 PendSV_Handler
+ 0x08000880 NMI_Handler
+ 0x08000880 EXTI3_IRQHandler
+ 0x08000880 TIM1_UP_TIM10_IRQHandler
+ 0x08000880 I2C3_ER_IRQHandler
+ 0x08000880 EXTI18_OTG_FS_WKUP_IRQHandler
+ 0x08000880 EXTI0_IRQHandler
+ 0x08000880 I2C2_EV_IRQHandler
+ 0x08000880 DMA1_Stream2_IRQHandler
+ 0x08000880 UsageFault_Handler
+ 0x08000880 DMA2_Stream2_IRQHandler
+ 0x08000880 SPI1_IRQHandler
+ 0x08000880 TIM1_BRK_TIM9_IRQHandler
+ 0x08000880 DMA2_Stream3_IRQHandler
+ 0x08000880 USART6_IRQHandler
+ 0x08000880 DMA2_Stream0_IRQHandler
+ 0x08000880 TIM4_IRQHandler
+ 0x08000880 I2C1_EV_IRQHandler
+ 0x08000880 DMA1_Stream6_IRQHandler
+ 0x08000880 DMA1_Stream1_IRQHandler
+ 0x08000880 TIM3_IRQHandler
+ 0x08000880 RCC_IRQHandler
+ 0x08000880 Default_Handler
+ 0x08000880 EXTI15_10_IRQHandler
+ 0x08000880 ADC_IRQHandler
+ 0x08000880 DMA1_Stream7_IRQHandler
+ 0x08000880 TIM5_IRQHandler
+ 0x08000880 DMA2_Stream7_IRQHandler
+ 0x08000880 I2C3_EV_IRQHandler
+ 0x08000880 EXTI9_5_IRQHandler
+ 0x08000880 SPI2_IRQHandler
+ 0x08000880 MemManage_Handler
+ 0x08000880 DMA1_Stream0_IRQHandler
+ 0x08000880 SVC_Handler
+ 0x08000880 EXTI4_IRQHandler
+ 0x08000880 EXTI22_RTC_WKUP_IRQHandler
+ 0x08000880 TIM2_IRQHandler
+ 0x08000880 EXTI16_PVD_IRQHandler
+ 0x08000880 TIM1_TRG_COM_TIM11_IRQHandler
+ 0x08000880 EXTI1_IRQHandler
+ 0x08000880 EXTI17_RTC_Alarm_IRQHandler
+ 0x08000880 USART2_IRQHandler
+ 0x08000880 I2C2_ER_IRQHandler
+ 0x08000880 DMA2_Stream1_IRQHandler
+ 0x08000880 FLASH_IRQHandler
+ 0x08000880 DMA2_Stream4_IRQHandler
+ 0x08000880 BusFault_Handler
+ 0x08000880 USART1_IRQHandler
+ 0x08000880 OTG_FS_IRQHandler
+ 0x08000880 SPI3_IRQHandler
+ 0x08000880 DMA1_Stream4_IRQHandler
+ 0x08000880 I2C1_ER_IRQHandler
+ 0x08000880 DMA2_Stream6_IRQHandler
+ 0x08000880 DMA1_Stream3_IRQHandler
+ *fill* 0x08000882 0x2
.text.__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
+ 0x08000884 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)
+ 0x08000884 __libc_init_array
*(.glue_7)
- .glue_7 0x080008ac 0x0 linker stubs
+ .glue_7 0x080008cc 0x0 linker stubs
*(.glue_7t)
- .glue_7t 0x080008ac 0x0 linker stubs
+ .glue_7t 0x080008cc 0x0 linker stubs
*(.eh_frame)
- .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
+ .eh_frame 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
*(.init)
- .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
+ .init 0x080008cc 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
+ 0x080008cc _init
+ .init 0x080008d0 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 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 = .
+ .fini 0x080008d8 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
+ 0x080008d8 _fini
+ .fini 0x080008dc 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
+ 0x080008e4 . = ALIGN (0x4)
+ 0x080008e4 _etext = .
-.vfp11_veneer 0x080008c4 0x0
- .vfp11_veneer 0x080008c4 0x0 linker stubs
+.vfp11_veneer 0x080008e4 0x0
+ .vfp11_veneer 0x080008e4 0x0 linker stubs
-.v4_bx 0x080008c4 0x0
- .v4_bx 0x080008c4 0x0 linker stubs
+.v4_bx 0x080008e4 0x0
+ .v4_bx 0x080008e4 0x0 linker stubs
-.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
+.iplt 0x080008e4 0x0
+ .iplt 0x080008e4 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 0x080008c4 0x0
- 0x080008c4 . = ALIGN (0x4)
+.rodata 0x080008e4 0x0
+ 0x080008e4 . = ALIGN (0x4)
*(.rodata)
*(.rodata*)
- 0x080008c4 . = ALIGN (0x4)
+ 0x080008e4 . = ALIGN (0x4)
-.ARM.extab 0x080008c4 0x0
- 0x080008c4 . = ALIGN (0x4)
+.ARM.extab 0x080008e4 0x0
+ 0x080008e4 . = ALIGN (0x4)
*(.ARM.extab* .gnu.linkonce.armextab.*)
- 0x080008c4 . = ALIGN (0x4)
+ 0x080008e4 . = ALIGN (0x4)
-.ARM 0x080008c4 0x0
- 0x080008c4 . = ALIGN (0x4)
- 0x080008c4 __exidx_start = .
+.ARM 0x080008e4 0x0
+ 0x080008e4 . = ALIGN (0x4)
+ 0x080008e4 __exidx_start = .
*(.ARM.exidx*)
- 0x080008c4 __exidx_end = .
- 0x080008c4 . = ALIGN (0x4)
+ 0x080008e4 __exidx_end = .
+ 0x080008e4 . = ALIGN (0x4)
-.preinit_array 0x080008c4 0x0
- 0x080008c4 . = ALIGN (0x4)
- 0x080008c4 PROVIDE (__preinit_array_start = .)
+.preinit_array 0x080008e4 0x0
+ 0x080008e4 . = ALIGN (0x4)
+ 0x080008e4 PROVIDE (__preinit_array_start = .)
*(.preinit_array*)
- 0x080008c4 PROVIDE (__preinit_array_end = .)
- 0x080008c4 . = ALIGN (0x4)
+ 0x080008e4 PROVIDE (__preinit_array_end = .)
+ 0x080008e4 . = ALIGN (0x4)
-.init_array 0x080008c4 0x4
- 0x080008c4 . = ALIGN (0x4)
- 0x080008c4 PROVIDE (__init_array_start = .)
+.init_array 0x080008e4 0x4
+ 0x080008e4 . = ALIGN (0x4)
+ 0x080008e4 PROVIDE (__init_array_start = .)
*(SORT_BY_NAME(.init_array.*))
*(.init_array*)
- .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)
+ .init_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
+ 0x080008e8 PROVIDE (__init_array_end = .)
+ 0x080008e8 . = ALIGN (0x4)
-.fini_array 0x080008c8 0x4
- 0x080008c8 . = ALIGN (0x4)
+.fini_array 0x080008e8 0x4
+ 0x080008e8 . = ALIGN (0x4)
[!provide] PROVIDE (__fini_array_start = .)
*(SORT_BY_NAME(.fini_array.*))
*(.fini_array*)
- .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
+ .fini_array 0x080008e8 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 = .)
- 0x080008cc . = ALIGN (0x4)
- 0x080008cc _sidata = LOADADDR (.data)
+ 0x080008ec . = ALIGN (0x4)
+ 0x080008ec _sidata = LOADADDR (.data)
-.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
+.rel.dyn 0x080008ec 0x0
+ .rel.iplt 0x080008ec 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 0x080008cc
+.data 0x20000000 0x0 load address 0x080008ec
0x20000000 . = ALIGN (0x4)
0x20000000 _sdata = .
*(.data)
@@ -1092,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 0x080008cc
+.igot.plt 0x20000000 0x0 load address 0x080008ec
.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 0x080008cc
+.bss 0x20000000 0x20 load address 0x080008ec
0x20000000 _sbss = .
0x20000000 __bss_start__ = _sbss
*(.bss)
@@ -1110,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 0x080008cc
+ 0x20000020 0x600 load address 0x080008ec
0x20000020 . = ALIGN (0x8)
[!provide] PROVIDE (end = .)
0x20000020 PROVIDE (_end = .)
@@ -1158,25 +1158,25 @@ LOAD C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.ext
LOAD 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\libm.a
LOAD 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\libgcc.a
-.debug_info 0x00000000 0x1979
+.debug_info 0x00000000 0x1989
.debug_info 0x00000000 0x316 ./Src/LED.o
.debug_info 0x00000316 0x453 ./Src/SPI.o
.debug_info 0x00000769 0x10b ./Src/SYSTICK.o
.debug_info 0x00000874 0x4f7 ./Src/Soft_RNG.o
.debug_info 0x00000d6b 0x450 ./Src/UART.o
.debug_info 0x000011bb 0x630 ./Src/W25Qxx.o
- .debug_info 0x000017eb 0x15e ./Src/main.o
- .debug_info 0x00001949 0x30 ./Startup/startup_stm32f401retx.o
+ .debug_info 0x000017eb 0x16e ./Src/main.o
+ .debug_info 0x00001959 0x30 ./Startup/startup_stm32f401retx.o
-.debug_abbrev 0x00000000 0x85e
+.debug_abbrev 0x00000000 0x85f
.debug_abbrev 0x00000000 0xb7 ./Src/LED.o
.debug_abbrev 0x000000b7 0x14e ./Src/SPI.o
.debug_abbrev 0x00000205 0xc6 ./Src/SYSTICK.o
.debug_abbrev 0x000002cb 0x162 ./Src/Soft_RNG.o
.debug_abbrev 0x0000042d 0x165 ./Src/UART.o
.debug_abbrev 0x00000592 0x1c8 ./Src/W25Qxx.o
- .debug_abbrev 0x0000075a 0xe0 ./Src/main.o
- .debug_abbrev 0x0000083a 0x24 ./Startup/startup_stm32f401retx.o
+ .debug_abbrev 0x0000075a 0xe1 ./Src/main.o
+ .debug_abbrev 0x0000083b 0x24 ./Startup/startup_stm32f401retx.o
.debug_aranges 0x00000000 0x248
.debug_aranges
@@ -1264,15 +1264,15 @@ LOAD C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.ext
.debug_macro 0x0000edf1 0xbe ./Src/W25Qxx.o
.debug_macro 0x0000eeaf 0x1ee ./Src/main.o
-.debug_line 0x00000000 0x2e8a
+.debug_line 0x00000000 0x2e98
.debug_line 0x00000000 0x559 ./Src/LED.o
.debug_line 0x00000559 0x618 ./Src/SPI.o
.debug_line 0x00000b71 0x52d ./Src/SYSTICK.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_line 0x00002753 0x6ca ./Src/main.o
+ .debug_line 0x00002e1d 0x7b ./Startup/startup_stm32f401retx.o
.debug_str 0x00000000 0x53928
.debug_str 0x00000000 0x4f6f9 ./Src/LED.o
@@ -1288,7 +1288,7 @@ LOAD C:/ST/STM32CubeIDE_1.11.2/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.ext
.debug_str 0x00053412 0x4b7 ./Src/W25Qxx.o
0x4ffab (size before relaxing)
.debug_str 0x000538c9 0x20 ./Src/main.o
- 0x53481 (size before relaxing)
+ 0x5348a (size before relaxing)
.debug_str 0x000538e9 0x3f ./Startup/startup_stm32f401retx.o
0x78 (size before relaxing)
diff --git a/Debug/Src/main.o b/Debug/Src/main.o
index e1bad26..c7f0d80 100644
Binary files a/Debug/Src/main.o and b/Debug/Src/main.o differ
diff --git a/Src/main.c b/Src/main.c
index 79db791..ca28f12 100644
--- a/Src/main.c
+++ b/Src/main.c
@@ -11,7 +11,6 @@ uint32_t count = 0;
int main()
{
uint32_t random;
-
LED_Init();
W25Q_Init();
SoftRNG_Init();
@@ -21,6 +20,7 @@ int main()
random = SoftRNG_Generate();
W25Q_WriteData(i, 0, 4, (uint8_t *)&random);
count++;
+ delay_ms(i%100);
}
while(1)