打印
[STM32F1]

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

[复制链接]
720|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 | 只看该作者
没有关心过 楼主烧写不进去吗

使用特权

评论回复
5
xiaoqizi| | 2018-12-13 17:21 | 只看该作者
是不是一开始编译的时候设置就出问题了啊

使用特权

评论回复
6
木木guainv| | 2018-12-13 17:27 | 只看该作者
重新编译试试

使用特权

评论回复
7
airwill| | 2018-12-13 20:22 | 只看该作者
这个是连接器的事情, 重新编译是可以的
不过, 8000000 地址系统也隐射到 0 地址的, 也就是不改也可以用。 你可以试试

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

384

主题

1461

帖子

6

粉丝