FSP reboot after bank swap gets exception in SystemInit()

I've been trying to do software upgrade without a bootloader. I enabled the dual bank mode in BSP and successfully programmed the upper bank with the same application code. I then exported both banks' memory and made sure that the content of the lower bank and upper bank is identical. Then I did bank swap and upon successful bank swap, rebooted the board by calling: 

NVIC_SystemReset();

But after reboot, the code is always stuck somewhere in SystemInit(). Here is the screen capture for the issue I have.

Parents Reply Children