天嵌 ARM开发社区

 找回密码
 注册
查看: 1598|回复: 1

请教管理员

[复制链接]
582611388 发表于 2009-5-27 14:32:58 | 显示全部楼层 |阅读模式
本帖最后由 582611388 于 2009-5-27 14:34 编辑

我用的是TQ2440的板子,在LINUX下生成.bin文件,然后用SJF2440烧写到NAND里直接执行
下面的MyLED1执行就正确,而MyLED2就不行,通电后,MyLED1让小灯亮起来了,而MyLED2在通电后没有任何反应,一个灯也没亮,我只是加了一个delay函数而已,而且这个delay我还没调用,这是为什么呢?我刚接触ARM,有51的基础。谢谢!
程序如下:
crt0.S
.text
.global _start
_start:
            ldr     sp, =1024*4        
            bl      main               
halt_loop:
            b       halt_loop
MyLED1.c
#define GPBCON (*(volatile unsigned long *)0x56000010)
#define GPBDAT (*(volatile unsigned long *)0x56000014)

#define GPB5_out (1<<(5*2))
#define GPB6_out (1<<(6*2))
#define GPB7_out (1<<(7*2))
#define GPB8_out (1<<(8*2))
int main(void) {
        GPBCON = GPB5_out | GPB6_out | GPB7_out | GPB8_out;
       
                GPBDAT = ~(1<<5);

        return 0;
}

MyLED2.c
#define GPBCON (*(volatile unsigned long *)0x56000010)
#define GPBDAT (*(volatile unsigned long *)0x56000014)

#define GPB5_out (1<<(5*2))
#define GPB6_out (1<<(6*2))
#define GPB7_out (1<<(7*2))
#define GPB8_out (1<<(8*2))

void delay(unsigned long n) {
        for (;n>0;n--);
}

int main(void) {
        GPBCON = GPB5_out | GPB6_out | GPB7_out | GPB8_out;
       
                GPBDAT = ~(1<<5);

        return 0;
}
freewing 发表于 2009-5-31 13:27:55 | 显示全部楼层
首先,n 没有赋值,
其次,将delay 函数放在main 后面 试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-5-16 02:08 , Processed in 1.046875 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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