标题: stm32f103c8t6,超过4kb错误 是使用LDR伪指令用多了,bx寻址超出范围引起的吗? [打印本页]

作者: lyonkon    时间: 2023-8-11 12:37
标题: stm32f103c8t6,超过4kb错误 是使用LDR伪指令用多了,bx寻址超出范围引起的吗?

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

作者: Hephaestus    时间: 2023-8-11 15:19
在这个帖子
http://www.51hei.com/bbs/dpj-228624-1.html
里面我已经告诉你LDR伪指令的真实写法是怎么样子的。

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

把LDR改成真实指令也能立刻看出来问题出在哪里了吧???
作者: 1600277881    时间: 2023-8-11 20:53
LR用的异常
pop {R0, R1, LR}
BX  LR
正常的用法是
pop {R0, R1, PC}

报错的是那一条?
作者: 1600277881    时间: 2023-8-11 21:05
试试用V6的编译器,
它会把LDR --> MOVW+MOVT
这就不会有 4K的Offset范围了
作者: lyonkon    时间: 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指令。问题解决。
作者: lyonkon    时间: 2023-8-11 21:30
1600277881 发表于 2023-8-11 21:05
试试用V6的编译器,
它会把LDR --> MOVW+MOVT
这就不会有 4K的Offset范围了

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




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1