裸跑LED2亮的不正常
写了一个LED流水灯裸跑程序(借鉴了某位前辈的代码),LED1-》LED4轮流点亮,但是发现LED2不正常,用Jlink全速调试时,此灯微亮;单步走时,跑的时候亮,停下来时不亮;怀疑与Jtag有关,但是看天嵌PDA跑得时候那灯亮的可以呀!想不通,发帖求解,附上代码AREA RESET, CODE, READONLY;, ALIGN = 3 ARM
;PRESERVE8
IMPORT my_main
ENTRY
;关闭看门狗
LDR R0, =0x53000000
MOV R1, #0x8000
STR R1,
;-----------------LED初始化---------------------
;LED1 LED2 PB5 PB6
LDR R0, =0x56000010
MOV R1, #0x00001400 ;bit=1 bit=1
STR R1,
LDR R0, =0x56000014
MOV R1, #0x00000060 ;bit=11
STR R1,
;LED3 LED4 PA23 PA24
LDR R0, =0x56000000
LDR R1, =0x0e7fffff ;bit=00
STR R1,
LDR R0, =0x56000004
MOV R1, #0x01800000 ;bit=11
STR R1,
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=10
STR R1, ;LED1:ON,LED2:OFF
LDR R0, =0x56000004
MOV R1, #0x01800000 ;bit=11
STR R1, ;LED3:OFF,LED4:OFF
B LOOP
LED2 LDR R0, =0x56000014
MOV R1, #0x00000020 ;bit=01
STR R1, ;LED1:OFF,LED2:ON
LDR R0, =0x56000004
MOV R1, #0x01800000 ;bit=11
STR R1, ;LED3:OFF,LED4:OFF
B LOOP
LED3 LDR R0, =0x56000014
MOV R1, #0x00000060 ;bit=11
STR R1, ;LED1:OFF,LED2:OFF
LDR R0, =0x56000004
MOV R1, #0x01000000 ;bit=10
STR R1, ;LED3:ON,LED4:OFF
B LOOP
LED4 LDR R0, =0x56000014
MOV R1, #0x00000060 ;bit=11
STR R1, ;LED1:OFF,LED2:OFF
LDR R0, =0x56000004
MOV R1, #0x00800000 ;bit=01
STR R1, ;LED3:OFF,LED4:ON
LDR R2, =0x00000000 ;计数清零
B LOOP
END
汇编写的啊
碉堡
不过我试过
没问题的
你试试别用MOV赋值,用LDR赋值 ぃSilenceミ 发表于 2013-7-17 10:28 static/image/common/back.gif
汇编写的啊
碉堡
谢谢提醒,因为参考了amobbs上一位帅哥的代码,没仔细推敲,下班后回家试试 哥们AMOBBS有邀请码吗 没有,我还是叫我同事给下载的代码{:2_135:} ぃSilenceミ 发表于 2013-7-17 10:28 static/image/common/back.gif
汇编写的啊
碉堡
MOV换成LDR还是不行,感觉就是和JTAG有关 你用的PIN设置为OUTPUT了吗 ぃSilenceミ 发表于 2013-7-18 10:05 static/image/common/back.gif
你用的PIN设置为OUTPUT了吗
LDR R0, =0x56000010
MOV R1, #0x00001400 ;bit=1 bit=1
STR R1,
和LED1的pin一起设置的,四个灯就LED2不正常
页:
[1]