伏波将军 发表于 2013-7-16 22:51:15

裸跑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

ぃSilenceミ 发表于 2013-7-17 10:28:49

汇编写的啊

碉堡

不过我试过

没问题的

你试试别用MOV赋值,用LDR赋值

伏波将军 发表于 2013-7-17 10:42:27

ぃSilenceミ 发表于 2013-7-17 10:28 static/image/common/back.gif
汇编写的啊

碉堡


谢谢提醒,因为参考了amobbs上一位帅哥的代码,没仔细推敲,下班后回家试试

ぃSilenceミ 发表于 2013-7-17 10:44:54

哥们AMOBBS有邀请码吗

伏波将军 发表于 2013-7-17 11:18:31

没有,我还是叫我同事给下载的代码{:2_135:}

伏波将军 发表于 2013-7-18 09:25:33

ぃSilenceミ 发表于 2013-7-17 10:28 static/image/common/back.gif
汇编写的啊

碉堡


MOV换成LDR还是不行,感觉就是和JTAG有关

ぃSilenceミ 发表于 2013-7-18 10:05:02

你用的PIN设置为OUTPUT了吗

伏波将军 发表于 2013-7-18 11:08:09

ぃ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]
查看完整版本: 裸跑LED2亮的不正常