在axd调试过程,载入镜像文件,然后按下f8准备单步执行,却跳出了disassembly的窗口,接着无法进行任何调试工作,搞不懂为什么啊,望各位高手指教!!!
程序代码如下,是从网下找的,应该没有问题
GPBCON EQU 0x56000010 ;定义GPIO的GPB控制寄存器
GPBDAT EQU 0x56000014 ;定义GPIO的GPB数据寄存器
LED1 EQU 1 << (5 * 2) ;定义LED1控制端口
LED2 EQU 1 << (6 * 2) ;定义LED2控制端口
LED3 EQU 1 << (7 * 2) ;定义LED3控制端口
LED4 EQU 1 << (8 * 2) ;定义LED4控制端口
LEDS EQU LED1 | LED2 | LED3 | LED4
CODE32
AREA Init,CODE,READONLY
ENTRY
ldr r0, =0x53000000 ;关闭WATCHDOG,禁止CPU重启
mov r1, #0x0
str r1, [r0]
ldr sp, =1024 * 4 ;设置堆栈
ldr r0, =GPBCON ;此三条指令设置GPB的5,6,7,8(对应LED1,LED2,LED3,LED4)为输出
mov r1, #LEDS
str r1, [r0]
ldr r0, =GPBDAT ;此三条指令写GPB数据寄存器,0xffffffff表示全部设置为高电平,即关闭4个LED灯
mov r1, #0xffffffff
str r1, [r0]
mov r3, #0 ;LED灯状态指示寄存器。1表示熄灭,0表示亮
next
mov r2, #0x01200000 ;此三条指令实现延时
delay
subs r2, r2, #1
bne delay ;
cmp r3, #1 ;当前LED是否是亮着的?
beq led_on ;如果LED当前是熄灭状态,则跳转到led_on,点亮LED
mov r1, #0xffffffff ;此两条指令是熄灭LED
str r1, [r0]
mov r3, #1 ;设置LED的状态为熄灭
b next ;进入下一次循环
led_on
mov r1, #0x00000000 ;三条指令是点亮LED
str r1, [r0]
mov r3, #0 ;设置LED的状态为点亮
b next ;进入下一次循环
END