嵌入式硬件---通过点亮LED分析嵌入式裸机程序的开发步骤
2014-03-26 |标签: 嵌入式开发 

 S3C2440A has 130 multi-functional input/output port pins and there are eight ports as shown below:

- Port A(GPA): 25-output port

- Port B(GPB): 11-input/out port

- Port C(GPC): 16-input/output port

- Port D(GPD): 16-input/output port

- Port E(GPE): 16-input/output port

- Port F(GPF): 8-input/output port

- Port G(GPG): 16-input/output port

- Port H(GPH): 9-input/output port

- Port J(GPJ): 13-input/output port

端口控制描述

端口控制寄存器(GPACON-GPJCON)

端口数据寄存器(GPADAT-GPJDAT)

端口上拉寄存器(GPBUP-GPJUP)

复用控制寄存器

外部中断控制寄存器

假设,有4个LED灯,分别接在GPF0~GPF3上,低电平点亮

GPF有7个I/O口,三组寄存器GPFCON,GPFDAT,GPFUP

//包含头文件区

#include "2440addr.h" //系统文件

#include "2440lib.h"

#include "def.h"

#include "uart.h"

void Main(){

//第一步,设置系统时钟

memcpy((unsigned char *)0x0,(unsigned char *)0x30000000,1000);

//调用2440lib.c中的函数

SetSysFclk(FCLK_200M);//设置系统时钟为200M

ChangeClockDivider(1,1);//设置分频为1:2:4

CalcBusClk(); //计算总线频率

//第二步:初始化串口

Uart_Select(0);

Uart_Init(0,115200);

//第三步:配置GPF寄存器

rGPFCON = (rGPFCON | 0xffff) & 0xffffff55; //设置GPF为输出口

rGPFUP &= 0xfff0; //使能上拉

rGPFDAT = 0xff; //初始化

//第四步:进入大循环

while(1){

rGPFDAT = 0xFE; //点亮

}

}

编译工程,点击工具栏上的【make】按钮开始编译,如果没有错误,就可以下载到开发板上运行,这时,就需要使用AXD工具。点击【Debug】工具按钮,运行AXD。需要指定HJTAG工具连接到开发板上,选择【Options】菜单下载的【Configure Target】,在弹出的Choose Target对话框中添加HJTAG的配置文件(H-JTAG安装目录下的H-JTAG.dll文件),点击【Configure】按钮,完成H-JTAG的配置

使用AXD进行调试时,在NandFlash中不应该有其他的程序,否则,会使运行不正常!应先擦除NandFlash。

在调试之前,应该对SDRAM进行配置,因为程序是要下载到内存中运行的,因此,首先需要对SDRAM进行正确配置,选择【Options】菜单下的【Configure Interface】,在弹出的对话框中选择【Session File】标签页,勾选【Run Configuration Script】复选框,加入2440init.txt配置脚本文件。重启AXD

如果电脑没有并口,也可以使用J-Link连接到开发板。首先,需要安装J-Link的驱动,然后添加J-Link的配置文件(JLinkRDI.dll),方法同上。

 

想了解更多嵌入式开发信息,请登录尚观嵌入式研究室官网:http://www.upemb.com