Arm startup process
1. The internal RAM of the processor is limited in size and cannot copy all the bootloader, so it is necessary to copy the BL2 code into memory with the internal Ram BL1 code. The canonical way to move the code from the beginning is flash, the endpoint is memory. However, since NAND Flash has not yet been initialized, the BL1 is moved from internal RAM to memory first. Wait until the NAND flash is initialized with a canonical code move.
2. Beginning SRAM Address: 2440 0x00000000,6410 0x0c000000,210 0xd0020000
3. The link start address determines where the first line of code in the program appears in memory, and the link start address is the end of the copy.
Terminal DRAM Address: 2410 0x30000000,6410 0x50000000,210 0x20000000
Code removal
copy_from_ram_to_mem://Initialize Address LDR R1, =ram_addrldr R2, =mem_addradd r0, R1, #BOOT_SZIE//Copy Code LOOP:LDR R3, [R1], #4str R3, [R2 ], #4cmp R1, r0bne Loopmov pc, LR
[Country EMBED strategy] [042] [Code removal is not limited]