I'm using Keil (Scatter file, not lnker) and I have a bootloader and a place for two images (one active and other is for the over the air update).
i use Cortex M0 processor where there is no Vector Table Offset Register and i used to copy the vector table from flash to sram.
The problem here:
1. I do the ota update using the application and not using the bootloader.
2. I build the firmware for a specific location and when the ota update is happening the active application (which is in slot A) is downloading the new image in Slot B (but the image is built using the linker script for slot A).
3. When I jump from bootloader to app using the function pointer (I see the function ptr is holding the right address.)
4. But when jumping it is creating a hard fault.
5. So the image built for a specific place should only be used there? Can't I use it for other slots (I also look for page alignment)? if not what can be the possible reason for hard fault?
(I see the function ptr is holding the right address.)
With the low bit set to indicate "Thumb"?