天嵌 ARM开发社区

 找回密码
 注册
查看: 2264|回复: 7

裸跑LED2亮的不正常

[复制链接]
伏波将军 发表于 2013-7-16 22:51:15 | 显示全部楼层 |阅读模式
写了一个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

ぃSilenceミ 发表于 2013-7-17 10:28:49 | 显示全部楼层
汇编写的啊

碉堡

不过我试过

没问题的

你试试别用MOV赋值,用LDR赋值
 楼主| 伏波将军 发表于 2013-7-17 10:42:27 | 显示全部楼层
ぃSilenceミ 发表于 2013-7-17 10:28
汇编写的啊

碉堡

谢谢提醒,因为参考了amobbs上一位帅哥的代码,没仔细推敲,下班后回家试试
ぃSilenceミ 发表于 2013-7-17 10:44:54 | 显示全部楼层
哥们AMOBBS有邀请码吗
 楼主| 伏波将军 发表于 2013-7-17 11:18:31 | 显示全部楼层
没有,我还是叫我同事给下载的代码
 楼主| 伏波将军 发表于 2013-7-18 09:25:33 | 显示全部楼层
ぃSilenceミ 发表于 2013-7-17 10:28
汇编写的啊

碉堡

MOV换成LDR还是不行,感觉就是和JTAG有关
ぃSilenceミ 发表于 2013-7-18 10:05:02 | 显示全部楼层
你用的PIN设置为OUTPUT了吗
 楼主| 伏波将军 发表于 2013-7-18 11:08:09 | 显示全部楼层
ぃSilenceミ 发表于 2013-7-18 10:05
你用的PIN设置为OUTPUT了吗

LDR R0, =0x56000010
MOV R1, #0x00001400      ;bit[10]=1 bit[12]=1
STR R1, [R0]
和LED1的pin一起设置的,四个灯就LED2不正常
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-5 23:31 , Processed in 1.046875 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表