We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello All, I have a problem in jumping from internal flash to execute another program that started from internal RAM. I use an external RAM for the HEAP and RW as shown in the scatter. MCU is LPC1788 with 32 MByte of external RAM.
LR_IROM1 0x10000000 { ; load region size_region ;ER_IROM1 0x00000000 0x00080000 { ; load address = execution address ; *.o (RESET, +First) ; *(InRoot$$Sections) ; .ANY (+RO) ;} ER_IROM1 0x10000000 0xF7D0 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } IRAM_STACK 0x1000F7D0 0x800 { ; RW data startup_LPC177x_8x.o (STACK) } IRAM_HEAP 0xA0000000 0x40000 { ; RW data startup_LPC177x_8x.o (HEAP) } RW_RAM1 0xA0040000 UNINIT 0xA2000000 { ; RW data .ANY (+RW +ZI) }
each time the MCU goes to the 0x00000000 and wait for a command to fill the internal RAM at 0x10000000 and run the second program.
As shown in the picture, all configuration is correct, the RAM is occupied correctly. But the boot_jump would not work and the second program can not run from the RAM!!! Should i do something when i jump to the second prgoram at the start of the internal RAM? the architecture is cortex-M3 and there is no need to change MEMMAP! Am i right?
Best Regards, Mostafa