I have a RL-RTL application, if I compile it to 0x8000 address, and use a loader to start the application does not start successfully. But if I compile to address 0 and programmed into the flash, it starts successfully. the loader can successfully start a non RL-RTL application in the flash 0x8000 address . why?
loader code:
Reset_Handler
;Loader LDR R0, =LOADER_TAG_ADDARE LDR R1,[R0] LDR R2, =0xFFFFFFFF TEQ R1,R2 BNE Reset_Start LDR R0, =SOFT_TAG_ADDARE LDR R1,[R0] LDR R2, =0xAA55AA55 TEQ R1,R2 BNE First_Soft LDR R0,=USER2_ADDARE BX R0 First_Soft LDR R0,=USER1_ADDARE BX R0
The application can normally enter the main (), hang in os_sys_init_user (). Thank you.
It's ok. I don't remap the interrupt vector table.
MEMMAP EQU 0xE01FC040 ROMSTART EQU 0x00008000 MOV R0, #0x40000000 LDR R1, =ROMSTART LDMIA R1!, {R2-R9} STMIA R0!, {R2-R9} LDMIA R1!, {R2-R9} STMIA R0!, {R2-R9} LDR R0, =MEMMAP MOV R1, #2 STR R1, [R0]
the internal flash start6 at 0x0800 0000
Erik