关于mini2440开关led问题
yankw 2015-03-19 12:29:07 //****led.c****//
#define GPBCON (*(volatile unsigned long*)0x56000010)
#define GPBDAT (*(volatile unsigned long*)0x56000014)
void delay(volatile unsigned long time)
{
for (;time>0;time--);
return;
}
int main()
{
GPBCON = GPBCON & (~(3<<10)) & (~(3<<12)) & (~(3<<14)) & (~(3<<16));
GPBCON = GPBCON | (1<<10) | (1<<12) | (1<<14) | (1<<16);
GPBDAT = GPBDAT | (0xf<<5);
GPBDAT = GPBDAT & (~(1<<5));.text
delay(10000);
GPBDAT = GPBDAT | (1<<5);
return 0;
}
//*****led.S*****//
.global _start
_start:
//close watchDog
LDR R0,=0x53000000
MOV R1,#0
STR R1,[R0]
LDR SP,=4096
BL main
loop:
b loop
//*****Makefile*****//
led.bin: led.S led.c
arm-linux-gcc -g -c -o led.o led.S
arm-linux-gcc -g -c -o led_on.o led.c
arm-linux-ld -Ttext 0x00000000 -g led_on.o led.o -o led_elf
arm-linux-objcopy -O binary -S led_elf led.bin
clean:
rm -f led.bin final *.o led_elf
LED本来应该亮一会儿,然后就熄灭;但是结果是灯会一直亮着 , 奇怪的是注释掉delay函数后灯一直不亮。
顺便问下,keil下面选了具体芯片然后生成的.bin和arm-linux-gcc交叉编译后生成的.bin有什么区别?