分类:
2010-11-27 00:55:21
一共有两个文件,一个汇编文件,一个C语言文件,其中汇编文件的功能就是关闭看门狗,然后为C语言代码设置环境,这里简单的设置一下堆栈就可以了。貌似这样和在x86上写裸程序是一个道理。C语言文件就循环点亮LED1-4。
贴代码如下:
crt0.S
#define WATDOG 0x53000000
.text
.global _start
start:
ldr r0, =WATDOG
mov r1, #0
str r1, [r0]
ldr sp, =1024*4
bl main
halt:
b halt
main.c文件
#define GPBCON (*(volatile unsigned long *)0x56000010)
#define GPBDAT (*(volatile unsigned long *)0x56000014)
#define LED4_SET_OUTPUT ((1<<10) | (1<<12) | (1<<14) | (1<<16))
#define LED1_ON (~(1<<5))
#define LED2_ON (~(1<<6))
#define LED3_ON (~(1<<7))
#define LED4_ON (~(1<<8))
void delay(void)
{
unsigned int i = 0x100000;
while(i--);
}
int main(void)
{
int i = 0x1000;
GPBCON = LED4_SET_OUTPUT;
while(i--) {
GPBDAT = LED1_ON;
delay();
GPBDAT = LED2_ON;
delay();
GPBDAT = LED3_ON;
delay();
GPBDAT = LED4_ON;
delay();
}
return 0;
}
Makefile 文件
产生的二进制文件的名称很奇怪哈...是u-boot.bin,没办法... Nor flash里的u-boot进入下载模式时之能将固定的二进制文件名下载并烧入nand... 板子自带的就是这样... 不要与真正的u-boot搞混了...