中级会员
 
- 积分
- 475
- 金钱
- 475
- 注册时间
- 2016-11-21
- 在线时间
- 148 小时
|
教程中:
//跳转到应用程序段
//appxaddr:用户代码起始地址.
void iap_load_app(u32 appxaddr)
{
if(((*(vu32*)appxaddr)&0x2FFE0000)==0x20000000) //检查栈顶地址是否合法.
{
jump2app=(iapfun)*(vu32*)(appxaddr+4);
//用户代码区第二个字为程序开始地址(复位地址)
MSR_MSP(*(vu32*)appxaddr);
//初始化APP堆栈指针(用户代码区的第一个字用于存放栈顶地址)
jump2app(); //跳转到APP.
}
}
而单片机的RAM是64K,范围:0x20000000 - 0x2000FFFF
但是当appxaddr等于0x2001FFFF时,上面的判断显然也是符合的
这个判断是不是有问题?
0x2FFE0000是不是应该改成0x2FFF0000?
|
|