Hi Mark,
Thanks for the suggestion. I did something similar:
1. Disable interrupts
2. Called the startup function(this from my understanding automatically sets the PC and SP to the relevant addresses).
Cpu_DisableInt();
unsigned long startup = ((unsigned long*)0x00007800)[1]; /// The vector table start address is 7800.
((void(*)(void))startup)();
But I notice a behavior where the device starts from the main and starts executing but then resets after some time(through mostly hard fault).
Could you help me understand the behavior.