找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

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

查看数: 1701 | 评论数: 5 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2023-8-11 12:37

正文摘要:

请问这个错误是使用LDR伪指令用多了,bx寻址超出范围引起的吗。如何解决

回复

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

是文字池溢出了,程序加了LTORG指令,以解决。谢谢!
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指令。问题解决。
ID:1088185 发表于 2023-8-11 21:05
试试用V6的编译器,
它会把LDR --> MOVW+MOVT
这就不会有 4K的Offset范围了
ID:1088185 发表于 2023-8-11 20:53
LR用的异常
pop {R0, R1, LR}
BX  LR
正常的用法是
pop {R0, R1, PC}

报错的是那一条?
ID:883242 发表于 2023-8-11 15:19
在这个帖子
http://www.51hei.com/bbs/dpj-228624-1.html
里面我已经告诉你LDR伪指令的真实写法是怎么样子的。

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

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

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

Powered by 单片机教程网

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