写了一个LED流水灯裸跑程序(借鉴了某位前辈的代码),LED1-》LED4轮流点亮,但是发现LED2不正常,用Jlink全速调试时,此灯微亮;单步走时,跑的时候亮,停下来时不亮;怀疑与Jtag有关,但是看天嵌PDA跑得时候那灯亮的可以呀!想不通,发帖求解,附上代码
[code]
AREA RESET, CODE, READONLY;, ALIGN = 3 ARM
;PRESERVE8
IMPORT my_main
ENTRY
;关闭看门狗
LDR R0, =0x53000000
MOV R1, #0x8000
STR R1, [R0]
;-----------------LED初始化---------------------
;LED1 LED2 PB5 PB6
LDR R0, =0x56000010
MOV R1, #0x00001400 ;bit[10]=1 bit[12]=1
STR R1, [R0]
LDR R0, =0x56000014
MOV R1, #0x00000060 ;bit[6:5]=11
STR R1, [R0]
;LED3 LED4 PA23 PA24
LDR R0, =0x56000000
LDR R1, =0x0e7fffff ;bit[23:24]=00
STR R1, [R0]
LDR R0, =0x56000004
MOV R1, #0x01800000 ;bit[23:24]=11
STR R1, [R0]
LDR R2, =0x00000000
LDR R3, =0x01000000
LDR R4, =0x02000000
LDR R5, =0x03000000
LDR R6, =0x04000000
LOOP ADD R2, R2, #1
CMP R2, R3
BEQ LED1
CMP R2, R4
BEQ LED2
CMP R2, R5
BEQ LED3
CMP R2, R6
BEQ LED4
B LOOP
LED1 LDR R0, =0x56000014
MOV R1, #0x00000040 ;bit[6:5]=10
STR R1, [R0] ;LED1:ON,LED2:OFF
LDR R0, =0x56000004
MOV R1, #0x01800000 ;bit[24:23]=11
STR R1, [R0] ;LED3:OFF,LED4:OFF
B LOOP
LED2 LDR R0, =0x56000014
MOV R1, #0x00000020 ;bit[6:5]=01
STR R1, [R0] ;LED1:OFF,LED2:ON
LDR R0, =0x56000004
MOV R1, #0x01800000 ;bit[24:23]=11
STR R1, [R0] ;LED3:OFF,LED4:OFF
B LOOP
LED3 LDR R0, =0x56000014
MOV R1, #0x00000060 ;bit[6:5]=11
STR R1, [R0] ;LED1:OFF,LED2:OFF
LDR R0, =0x56000004
MOV R1, #0x01000000 ;bit[24:23]=10
STR R1, [R0] ;LED3:ON,LED4:OFF
B LOOP
LED4 LDR R0, =0x56000014
MOV R1, #0x00000060 ;bit[6:5]=11
STR R1, [R0] ;LED1:OFF,LED2:OFF
LDR R0, =0x56000004
MOV R1, #0x00800000 ;bit[24:23]=01
STR R1, [R0] ;LED3:OFF,LED4:ON
LDR R2, =0x00000000 ;计数清零
B LOOP
END
|