1, iap_load_app函数中的给jump2app初始化的这一句 jump2app=(iapfun)*(vu32*)(appxaddr+4); 中的(iapfun)是强制类型转换吗?将appxaddr+4地址中的内容强制转换成iapfun类型,然后jump2app()就代表从FLASH所需的位置开始执行程序?
void iap_load_app(uint32_t appxaddr)
{
if(((*(vu32*)appxaddr)&0x2FFE0000)==0x20000000) .
{
printf("\n已经开始运行FLASH用户更新代码!!\r\n");
jump2app=(iapfun)*(vu32*)(appxaddr+4);
MSR_MSP(*(vu32*)appxaddr);
jump2app();
}
}
2,IAP例程中的写FLASH函数 void STMFLASH_Write(uint32_t WriteAddr,uint16_t *pBuffer,uint16_t NumToWrite) 库里面没有带现成的吗? |