I have couple of projects(bootloader @ 0x08000000 and application @ 0x081C00000, each output is converted to hex and packed as one Intel hex and flashed at 0x08000000. I wanted to change the program counter so that it can jump from one start location to another start location which is actually application should start executing from RAM. Looking for suggestions.
http://www.keil.com/forum/58817/
LDR R0, =0x081C0123 ; FLASH Address of a subroutine/entry point BX R0 LDR R0, =0x20000189 ; RAM Address of a subroutine/entry point BX R0
Since I am not clear on the earlier post, I have elaborated my requirement in another thread. I am using STM32F427, looking into your post do you mean that I cannot use 0x081C0000?. All I need is to jump from bootrom to application and start executing from RAM. Is it required to modify the scatter file too?.
The 0x081C0000 address is in FLASH, if your code is compiled and linked for THIS address then you attempting to copy and run it someplace else is going to end in tears.
Compile and link the code for the address you expect it to RUN at, and then fit this image into your FLASH. This might be easier to do if you generate a .BIN file, as tools like ST-LINK Utilities will ask you what address you want to place it at. With .HEX files there is an implied address, and you'd have to write some simple tools to convert/translate that to you holding location.