[STM32F4] 关于F407嵌入式SRAM映射为0x20020000的问题。

[复制链接]
1265|6
 楼主| flycamelaaa 发表于 2025-1-15 16:05 | 显示全部楼层 |阅读模式
本人在做F407的IAP功能时,首先调用了以前在F103上面的跳转代码,并根据网上资料写出了在F407芯片下运行的IAP跳转代码。然后就出现问题了,发送跳转函数不执行,调试后发现下面的if语句无法进入。
我很奇怪,因为不管是以前的IAP跳转程序还是网上的跳转程序,在这条语句上都是一致的,按理来说最不应该出问题的就是这句语句。然后通过调试发现,对地址取值按位或得到的数值为0x20020000,与0x20000000不匹配,所以进不去。然后我通过Prg查看寄存器值,如下所示:
发现0x08008000地址的值确实为0x20020000。所以我将if语句中的判断换成了0x20020000,代码就正常运行,可以实现跳转了。关于这个问题,后来我查询了数据手册,确实有一定的记载,如下所示:
但是我用的芯片为STM32F407VET6,并不是F42和F43系列的,按照手册上的表示,应该是0x20000000,而不是0x20020000,因此产生了矛盾。
在网上查询了许久,也没有找到答案,望各位大神指点指点小弟。

AutoMotor 发表于 2025-1-17 20:03 | 显示全部楼层
F407和F103结构还是有区别的。
Amazingxixixi 发表于 2025-1-21 17:15 | 显示全部楼层
学习一下啊,还有好多需要学习的。
gejigeji521 发表于 2025-1-21 18:01 | 显示全部楼层
从哪儿下的啊,cubeF4
SophiaOP 发表于 2025-1-22 21:13 来自手机 | 显示全部楼层
跳转之前中断啥的有没有复位好啊
花间一壶酒sd 发表于 2025-1-31 23:39 | 显示全部楼层
你提到的地址 0x20020000 是 RAM 地址,如果你想跳转到 Flash 地址 0x08000000,那么你需要确保跳转地址的计算没有错误。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

837

主题

4432

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部