初级会员

- 积分
- 70
- 金钱
- 70
- 注册时间
- 2020-2-26
- 在线时间
- 22 小时
|
10金钱
本帖最后由 yyylwzy 于 2020-4-25 17:59 编辑
看了原子哥的IAP例程后,有了一些想法,所以有些问题想请教一下。例程里跳转到app的代码如下:
if(((*(vu32*)appxaddr)&0x2FFE0000)==0x20000000) //检查栈顶地址是否合法.
{
jump2app=(iapfun)*(vu32*)(appxaddr+4);
//用户代码区第二个字为程序开始地址(复位地址)
MSR_MSP(*(vu32*)appxaddr);
//初始化APP堆栈指针(用户代码区的第一个字用于存放栈顶地址)
jump2app(); //跳转到APP.
}
我想在flash中开一个备份区,需要一个标志位作为升级失败时跳转到备份区。不过直接开一页存储标志位感觉太浪费了(F4一页最少16k),所以想将appxaddr往后挪一个字存储这标志位。
具体来说就是,我的app并不是从页首开始写的,而是预留了一个字存储数据,即appxaddr=0x80000004,
这样的话,请问我是只要改appxaddr就可以了吗?这样会影响app的运行和我读取这个标志位吗?(不需要考虑升级app时对标志位的擦除,我准备在备份区也弄一个标志位)
|
|