原子的IAP升级历程中iap_load_app函数应用提问!~~

2019-08-16 20:55发布

求教原子哥和各位大神,原子历程中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不了解直接用的别人的例程,还望各位不吝赐教~~

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
正点原子
1楼-- · 2019-08-16 23:55
只要你设置正常,是可以用的。你在执行这个函数的时候,禁止所有中断。
sdjncy
2楼-- · 2019-08-17 02:00
 精彩回答 2  元偷偷看……
sdjncy
3楼-- · 2019-08-17 03:06
正点原子 发表于 2017-6-30 16:37
只要你设置正常,是可以用的。你在执行这个函数的时候,禁止所有中断。

谢谢原子哥,利用NVIC_SETFAULTMASK();跳转前关闭总中断已经可以正确跳转到APP程序了,但是跳转之后不正常了,在APP程序例又加了开启所有中断APP还是不能执行~~
sdjncy
4楼-- · 2019-08-17 07:25
求助~~~~
小工人
5楼-- · 2019-08-17 12:25
在个历程在哪儿?
sdjncy
6楼-- · 2019-08-17 12:26
小工人 发表于 2017-7-4 15:42
在个历程在哪儿?

实验42 串口IAP实验

一周热门 更多>