找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1682|回复: 5
打印 上一主题 下一主题
收起左侧

stm32f103c8t6,超过4kb错误 是使用LDR伪指令用多了,bx寻址超出范围引起的吗?

[复制链接]
跳转到指定楼层
楼主

请问这个错误是使用LDR伪指令用多了,bx寻址超出范围引起的吗。如何解决
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2023-8-11 15:19 | 只看该作者
在这个帖子
http://www.51hei.com/bbs/dpj-228624-1.html
里面我已经告诉你LDR伪指令的真实写法是怎么样子的。

过了三个月这么简单的问题你还是没看懂????

把LDR改成真实指令也能立刻看出来问题出在哪里了吧???
回复

使用道具 举报

板凳
ID:1088185 发表于 2023-8-11 20:53 | 只看该作者
LR用的异常
pop {R0, R1, LR}
BX  LR
正常的用法是
pop {R0, R1, PC}

报错的是那一条?
回复

使用道具 举报

地板
ID:1088185 发表于 2023-8-11 21:05 | 只看该作者
试试用V6的编译器,
它会把LDR --> MOVW+MOVT
这就不会有 4K的Offset范围了
回复

使用道具 举报

5#
ID:73992 发表于 2023-8-11 21:27 | 只看该作者
Hephaestus 发表于 2023-8-11 15:19
在这个帖子
http://www.51hei.com/bbs/dpj-228624-1.html
里面我已经告诉你LDR伪指令的真实写法是怎么样 ...

程序当中能不用LDR指令的我都是用mov。已经很省了。错误意思是文字池太远,使用LTORG在4k范围内。我在程序中加入LTORG指令。问题解决。
回复

使用道具 举报

6#
ID:73992 发表于 2023-8-11 21:30 | 只看该作者
1600277881 发表于 2023-8-11 21:05
试试用V6的编译器,
它会把LDR --> MOVW+MOVT
这就不会有 4K的Offset范围了

是文字池溢出了,程序加了LTORG指令,以解决。谢谢!
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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