求教原子哥和各位大神,原子历程中IAP升级程序有以下程序
void iap_load_app(u32 appxaddr)
{
if(((*(vu32*)appxaddr)&0x2FFE0000)==0x20000000) //¼ì²éÕ»¶¥µØÖ·ÊÇ·ñºÏ·¨.
{
jump2app=(iapfun)*(vu32*)(appxaddr+4); //Óû§´úÂëÇøµÚ¶þ¸ö×ÖΪ³ÌÐò¿ªÊ¼µØÖ·(¸´Î»µØÖ·)
MSR_MSP(*(vu32*)appxaddr); //³õʼ»¯APP¶ÑÕ»Ö¸Õë(Óû§´úÂëÇøµÄµÚÒ»¸ö×ÖÓÃÓÚ´æ·ÅÕ»¶¥µØÖ·)
jump2app(); //Ìøתµ½APP.
}
}
提问:该函数能否用在RTX或UCOS等RTOS系统中,或者说用RTOS写bootloader时该函数是否还能用?现在我测试的是不能用,本人对RTOS不了解直接用的别人的例程,还望各位不吝赐教~~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
谢谢原子哥,利用NVIC_SETFAULTMASK();跳转前关闭总中断已经可以正确跳转到APP程序了,但是跳转之后不正常了,在APP程序例又加了开启所有中断APP还是不能执行~~
实验42 串口IAP实验
一周热门 更多>