#define ApplicationAddress (0x8000000+0x2000) //应用程序开始地址
NVIC_SystemReset(); //重启
boot:

app:

void ExitIAP(void)
{
u32 JumpAddress;
pFunction Jump_To_Application;
if (((*(vu32*)ApplicationAddress) & 0x2FFF0000 ) == 0x20000000)
{
// COM_RX_OFF();
// COM_TX_OFF();
__disable_irq();
RCC_DeInit();
USART_DeInit(USART1);
JumpAddress = *(vu32*) (ApplicationAddress+4);
Jump_To_Application = (pFunction) JumpAddress;
/* Initialize user application's Stack Pointer */
__MSR_MSP(*(vu32*) ApplicationAddress);
Jump_To_Application();
}
}
STM32应用程序地址定义与重启
博客给出了STM32应用程序开始地址的定义,即#define ApplicationAddress (0x8000000+0x2000) ,还包含重启代码NVIC_SystemReset(); ,涉及嵌入式硬件领域。
3616

被折叠的 条评论
为什么被折叠?



