My code is not working if i change the address of flash memory , where the code can be loaded and if change the address back to the base address 0x80000000 then it works. Why?

I am trying to make a custom bootloader, and for that i need to change the flash memory address of the user code (the code which i will upload through the bootloader). So , i made a GPIO Toggle code with no delay, and in the target dialogue box i am changing the IROM1 address to 0x8009000 and also in the linker dialogue i am changing the R/O address to 0x8009000. But after changing the address my code is not working/executing, and i don't know why!

More questions in this forum