S3C6410 LED裸机程序分析

时间:2022-02-11 12:23:37

开发板连接上Jlink后,SD卡或Nandflash启动U-boot, 运行后按空格使其停在uboot状态。

此步骤是调试裸机程序的捷径,u-boot程序里实现处理器的初始化工作:时钟、串口、DRAM、Nandflash等一系列的初始化。

打开AXD,load image之后可以进行程序的调试。也可以采用release方式下载到内存中运行程序。

下面是对程序的一些简要说明: 

#define rGPMCON    (*(volatile unsigned*)(0x7F008820)) 
#define rGPMDAT    (*(volatile unsigned*)(0x7F008824))
#define rGPMPUD    (*(volatile unsigned*)(0x7F008828))  //寄存器内存的定义
void msDelay(int time)     //延时函数
{
	volatile unsigned int i,j;
	for(i=0;i<2000000;i++)
	for(j=0;j<time;j++);
} 
void GPIO_Init(void)	//GPIO的初始化,设置GPM的三个寄存器
{
	rGPMCON = 0x1111;  //配置寄存器 GPMCON的output设置值为0001,点亮LED灯就要把GPM0~3设为输出。
	rGPMPUD = 0x00;	    //上拉下拉使能寄存器,此时关闭此功能。
	rGPMDAT = 0x1F;	    //数据寄存器 六位,初始化,全灭LED灯。
}
void LedTest(void)
{
	volatile unsigned int i;
	while(1)
	{
		for(i=0;i<4;i++)
		{
			rGPMDAT =~(1<<i);//移位
			msDelay(10);
		}
	}
}
void Main(void)
{
	GPIO_Init();
	LedTest();
}