/******************************************************************************* * Function Name : main * Description : Main program. * Input : None * Output : None * Return : None *******************************************************************************/ int main(void) { #ifdef DEBUG debug(); #endif /* System Clocks Configuration */ RCC_Configuration(); /* FSMC nOR configuration **************************************************/ /* Enable the FSMC Clock */ RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE); /* Configure FSMC Bank1 NOR/SRAM2 */ FSMC_NOR_Init(); /* Jump to code loaded in NOR memory and execute it *************************/ JumpAddress = *(vu32*) (ApplicationAddress + 4); Jump_To_Application = (pFunction) JumpAddress; /* Initialize user application's Stack Pointer */ __MSR_MSP(*(vu32*) ApplicationAddress); Jump_To_Application(); while (1) { } }
void Reboot() { u32 dwGotoAddr = ((u32)(0x0800C000)); // APP1 u32 *vector_table = (u32 *) dwGotoAddr; __MSR_MSP(vector_table[0]); ((void (*)(void)) vector_table[1])(); }