在ADS1.2下创建了一个工程LED_ASM.mcp,然后写了一个LED跑马灯的汇编程序LED_ASM.s。将汇编程序加入该工程编译,编译环境设置正确。编译结果不能识别汇编指令。错误提示如下:
Error :AII63E: Unknown opcode LED_ASM.s line 11
11 00000000 ldr r0,=GPBCON
Error :AII63E: Unknown opcode LED_ASM.s line 12
11 00000000 ldr r1,[r0]
Error :AII63E: Unknown opcode LED_ASM.s line 13
11 00000000 bic r1,r1,#0x3fc00
......
我现在还是个嵌入式菜鸟,而且是一个人在战斗,遇到问题只好烦劳拜托网上的朋友指导一下。谢谢了!
附源程序:
;LED_ASM.s
GPBCON EQU 0x56000010
GPBDAT EQU 0x56000014
GPBUP EQU 0x56000018
EXPORT LEDTEST
AREA LEDTESTASM,CODE,READONLY ;该伪指令定义了一个代码段,段名为LEDTESTASM,属性只读
LEDTEST
;设置GPB5-8为output
ldr r0,=GPBCON
ldr r1,[r0]
bic r1,r1,#0x3fc00
orr r1,r1,#0x15500
str r1,[r0]
;禁止GPB5-GPB8的上拉电阻
ldr r0,=GPBUP
ldr r1,[r0]
orr r1,r1,#0x1e0
str r1,[r0]
;将数据端口B的数据寄存器地址附给寄存器r2
ldr r2,=GPBDAT
ldr r3,[r2]
bic r3,r3,#0x1e0
orr r3,r3,#0x1c0
str r3,[r2] ;GPB5 output 0
ldr r0,=0x2ffff
bl delay
ldr r3,[r2]
bic r3,r3,#0x1e0
orr r3,r3,#0x1a0
str r3,[r2] ;GPB6 output 0
ldr r0,=0x2ffff
bl delay
ldr r3,[r2]
bic r3,r3,#0x1e0
orr r3,r3,#0x160
str r3,[r2] ;GPB7 output 0
ldr r0,=0x2ffff
bl delay
ldr r3,[r2]
bic r3,r3,#0x1e0
orr r3,r3,#0xe0
str r3,[r2] ;GPB8 output 0
ldr r0,=0x2ffff
bl delay
b looptest
delay
sub r0,r0,#1 ;r0=r0-1
cmp r0,#0x0 ;将r0的值与0相比较
bne delay
mov pc,lr ;比较的结果不为0(r0不为0),继续调用dealy,否则执行下一条语句
END ;程序结束符