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)