新手入门
- 积分
- 18
- 金钱
- 18
- 注册时间
- 2016-3-20
- 在线时间
- 2 小时
|
发表于 2016-3-21 00:15:14
|
显示全部楼层
/*
1|Äü£o ÖØ¶¨òåÏμí3Îļt£¬±üÃaDT¸ÄÏμí3Îļt£¬Ä¿μÄÎaáËêêóÃóúUCOSÏμí3μÄAPP3ìDò£¬½«MSP¸ü¸ÄÎaPSP
¶øMSPêêóÃóú2»′øUCOSμÄÂã»úAPP3ìDò
//éèÖÃÕ»¶¥μØÖ·,
//addr:Õ»¶¥μØÖ·
*/
__asm void RE_MSR_MSP(u32 addr)
{
// MSR MSP, r0 //set Main Stack value
MSR PSP, r0
BX r14
}
//ìø×aμ½ó|óÃ3ìDò¶Î
//appxaddr:óû§′úÂëÆeê¼μØÖ·.
void iap_load_app(u32 appxaddr)
{
if(((*(vu32*)appxaddr)&0x2FFE0000)==0x20000000) //¼ì2éÕ»¶¥μØÖ·êÇ·ñoÏ·¨.
{
jump2app=(iapfun)*(vu32*)(appxaddr+4); //óû§′úÂëÇøμú¶t¸ö×ÖÎa3ìDò¿aê¼μØÖ·(¸′λμØÖ·)
#ifdef UCOS_APP_MODE
RE_MSR_MSP(*(vu32*)appxaddr); //3õê¼»ˉAPP¶ÑÕ»Ö¸Õë(óû§′úÂëÇøμÄμúò»¸ö×ÖóÃóú′æ·ÅÕ»¶¥μØÖ·)
#else
MSR_MSP(*(vu32*)appxaddr);
#endif
jump2app(); //ìø×aμ½APP.
}
}
|
|