OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4318|回复: 6

IAP例程中在app前留一些位置存数据的话,是直接把APPLICATION_ADDRESS往后顺移就可以吗?

[复制链接]

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2020-2-26
在线时间
22 小时
发表于 2020-4-25 16:57:29 | 显示全部楼层 |阅读模式
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时对标志位的擦除,我准备在备份区也弄一个标志位)

最佳答案

查看完整内容[请看2#楼]

是的, 你也可以放最后, 都是可以的, 只要不冲突即可
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2020-4-25 16:57:30 | 显示全部楼层
是的, 你也可以放最后, 都是可以的, 只要不冲突即可
回复

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2020-2-26
在线时间
22 小时
 楼主| 发表于 2020-4-25 17:58:32 | 显示全部楼层
额,不知道为什么在深夜模式下打的全变黑了,我重新发贴吧
回复

使用道具 举报

2

主题

391

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1957
金钱
1957
注册时间
2014-8-8
在线时间
307 小时
发表于 2020-4-26 08:40:20 | 显示全部楼层
你地址偏移4个字节可以,问题你写入程序时擦除是按照页擦除的,那么你需要擦除0x80000004地址页也就擦出了0x8000000了。需要注意下,其实可以在IAP和APP内部都定义个模拟EEPROM区域,固定好你这个升级标志的ID直接读取写入都可以。
回复

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2020-2-26
在线时间
22 小时
 楼主| 发表于 2020-4-29 12:13:11 | 显示全部楼层
正点原子 发表于 2020-4-26 00:58
是的, 你也可以放最后, 都是可以的, 只要不冲突即可

噢噢,了解
回复

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2020-2-26
在线时间
22 小时
 楼主| 发表于 2020-4-29 12:15:40 | 显示全部楼层
365mcu 发表于 2020-4-26 08:40
你地址偏移4个字节可以,问题你写入程序时擦除是按照页擦除的,那么你需要擦除0x80000004地址页也就擦出了0 ...

想了一下,感觉独立一页来写标志容易一点,不过有点浪费
回复

使用道具 举报

37

主题

477

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2285
金钱
2285
注册时间
2017-8-24
在线时间
375 小时
发表于 2020-6-4 16:36:03 | 显示全部楼层
bootloader那里写
天然懒,天然呆
能吃会睡,未来可期
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 01:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表