TI中文支持网
TI专业的中文技术问题搜集分享网站

关于cortex-m4f 汇编伪指令LDR使用报错问题

Entry:
	.thumb
	.text
Ladder1:
	.global Ladder1
lab1:
	.global lab1
	push {lr}
	LDR R0, = 0x22004004
	LDR R0, [R0]
	CMP R0, #0x01
	BNE lab4

>> Compilation failure
subdir_rules.mk:9: recipe for target 'ladder1.obj' failed
"../ladder1.s", ERROR!at line 9: [E0200] Bad term in expression
		LDR R0, = 0x22004004
 
"../ladder1.s", ERROR!at line 9: [E0001] Illegal symbol
		LDR R0, = 0x22004004
 
"../ladder1.s", ERROR!at line 9: [E0003] Unexpected trailing operand(s)
		LDR R0, = 0x22004004

gaoyang9992006:

没看明白,你这段代码哪个文件里的?还是你开发使用了汇编语言开发?本人不是太懂汇编。

cc L:

回复 gaoyang9992006:

这个代码是我自己新建了.s文件,然后自己写的测试代码,发现LDR R0,=expr这条语句过不了,昨天研究了ccs的汇编手册,也没提到这个问题,搞不定了

Susan Yang:

回复 cc L:

建议您之前先声明

myaddress.field 0x22004004,32

然后再使用

ldr r0, myaddress

cc L:

回复 Susan Yang:

非常感谢,加了这句确实编译能通过。但是其实我的意图是想要在使用伪指令时,可以人为管理文字池,例如IAR的汇编可以这样实现:
LDR R0, =0x22004004
LDR R0, [R0]
……
B LABx
LTORG//这个语句可以实现文字池的位置管理
所以我想请教下ccs的文字池如何管理 应该也有类似的指令.ltorg吧,可以话麻烦教教我怎么使用,万分感谢~

Susan Yang:

回复 cc L:

很抱歉,这个我不太擅长。建议您去 https://e2e.ti.com/ 发帖以获取更多国外资深工程师的支持

cc L:

回复 Susan Yang:

好的 谢谢你~

赞(0)
未经允许不得转载:TI中文支持网 » 关于cortex-m4f 汇编伪指令LDR使用报错问题
分享到: 更多 (0)