OpenEdv-开源电子网

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

STM32 IAP应用程序中,能否读取当前程序的入口地址(flash)

[复制链接]

6

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2016-12-12
在线时间
41 小时
发表于 2017-8-5 11:06:00 | 显示全部楼层 |阅读模式
1金钱
我现在在使用IAP进行远程升级,将flash分成了3个区,1个boot,2个应用区,在应用程序运行过程中需要接收升级的新的应用程序,那么我就需要得到当前运行的应用程序所在的入口地址,这样我就可以将程序写到另外一个区,否则应用程序可能会写到当前正在运行的应用程序区,从而把自己写死机,那么有没有什么办法或者通过哪个寄存器能读取到当前应用程序的入口地址?

最佳答案

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

这个你自己定义好每个区的起始地址,这个是固定不变的,然后再在FLASH中开辟一块地方存储这几个开头, 当你要IAP升级的时候,要擦写哪个区域,直接从FLASH中读出你之前存储的起始地址,然后直接擦写目标区域,最后跳转到那个地址开始跑新的程序就可以了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

141

帖子

1

精华

高级会员

Rank: 4

积分
606
金钱
606
注册时间
2017-1-3
在线时间
65 小时
发表于 2017-8-5 11:06:01 | 显示全部楼层
这个你自己定义好每个区的起始地址,这个是固定不变的,然后再在FLASH中开辟一块地方存储这几个开头,
当你要IAP升级的时候,要擦写哪个区域,直接从FLASH中读出你之前存储的起始地址,然后直接擦写目标区域,最后跳转到那个地址开始跑新的程序就可以了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165462
金钱
165462
注册时间
2010-12-1
在线时间
2114 小时
发表于 2017-8-7 01:30:05 | 显示全部楼层
自己代码做处理,和远程端无关啊
回复

使用道具 举报

12

主题

66

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
424
金钱
424
注册时间
2016-6-12
在线时间
93 小时
发表于 2017-8-7 10:29:56 | 显示全部楼层
两个应用区最好一样大,自己做flash分配的时候给足FLASH空间就可以了,之后约定好起始地址就行~
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-20 09:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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