[STM32F1] 编译好的固件是从地址00开始的,怎么搬移到80开头的地址?

[复制链接]
887|6
 楼主| 奔牛滚滚 发表于 2018-12-11 20:44 | 显示全部楼层 |阅读模式
本帖最后由 奔牛滚滚 于 2018-12-25 09:20 编辑

下载的是hex文件,stm32f103的固件,但是地址居然是从0x0000开始的,怎么变成从0x8000开始,这样才能烧录进去啊.

感谢大家的回复和帮助,我已经解决了.直接编辑hex文件.用支持正则表达式的编辑器,比如UE,nodepad++等等直接替换地址就可以了.有些hex文件是带段地址的要注意.
查找输入:(:10[0-7]...)00
替换输入:\180

toofree 发表于 2018-12-12 11:35 | 显示全部楼层
本帖最后由 toofree 于 2018-12-12 11:38 编辑

来个固件,STM32的固件hex文件不大可能是从00地址开始的。
如果HEX文件的地址是从0000开始,那么没办法变成8000。单纯的HEX文件可以转成BIN,然后BIN转回HEX的时候,需要填写基地址,这样文件是转成了,但是程序是无法正确执行的。
renzheshengui 发表于 2018-12-13 17:09 | 显示全部楼层
是不是你配置的时候出问题了
wakayi 发表于 2018-12-13 17:10 | 显示全部楼层
没有关心过 楼主烧写不进去吗
xiaoqizi 发表于 2018-12-13 17:21 | 显示全部楼层
是不是一开始编译的时候设置就出问题了啊
木木guainv 发表于 2018-12-13 17:27 | 显示全部楼层
重新编译试试
airwill 发表于 2018-12-13 20:22 | 显示全部楼层
这个是连接器的事情, 重新编译是可以的
不过, 8000000 地址系统也隐射到 0 地址的, 也就是不改也可以用。 你可以试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

384

主题

1461

帖子

6

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