This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Jumping to new vector address

I have a bootloader program that has access to external SRAM which uses SSI3_BASE. I know that I have setup the external SRAM, correctly because I can access the data from the memory location.

 When I try to jump to new vector address, the code locks up and never jumps.  If I removed the  code that involves using the external SRAM , the bootloader jumps to the new vector address.  Any suggestion or clues on the solution. 

.

.

.

//Several lines of code before jumping

IntDisable(INT_UART4); // Wifi
IntDisable(INT_UART5); // Wifi
IntDisable(INT_UART2); // RS232
SSIDisable(SSI3_BASE); // SRAM
IntMasterDisable();
SysTickIntDisable();
SysTickDisable();
Jump2App(EEPROM_StartAdr);

}

// Bootload jump function 

static void Jump2App(uint32_t StartAddr)
{

HWREG(NVIC_DIS0) = 0xffffffff;
HWREG(NVIC_DIS1) = 0xffffffff;
HWREG(NVIC_DIS2) = 0xffffffff;
HWREG(NVIC_DIS3) = 0xffffffff;
HWREG(NVIC_DIS4) = 0xffffffff;

HWREG(NVIC_VTABLE) = StartAddr;  // StartAdress is 0x8000

__asm(" ldr r1, [r0]\n"
" mov sp, r1\n");

__asm(" ldr r0, [r0, #4]\n"
" bx r0\n");
}

Raj