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

2019-08-14 18:15发布

我现在在使用IAP进行远程升级,将flash分成了3个区,1个boot,2个应用区,在应用程序运行过程中需要接收升级的新的应用程序,那么我就需要得到当前运行的应用程序所在的入口地址,这样我就可以将程序写到另外一个区,否则应用程序可能会写到当前正在运行的应用程序区,从而把自己写死机,那么有没有什么办法或者通过哪个寄存器能读取到当前应用程序的入口地址?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
BJTT
1楼-- · 2019-08-14 22:48
这个你自己定义好每个区的起始地址,这个是固定不变的,然后再在FLASH中开辟一块地方存储这几个开头,
当你要IAP升级的时候,要擦写哪个区域,直接从FLASH中读出你之前存储的起始地址,然后直接擦写目标区域,最后跳转到那个地址开始跑新的程序就可以了
正点原子
2楼-- · 2019-08-15 01:50
 精彩回答 2  元偷偷看……
sdjncy
3楼-- · 2019-08-15 03:15
两个应用区最好一样大,自己做flash分配的时候给足FLASH空间就可以了,之后约定好起始地址就行~

一周热门 更多>