嵌入式硬件---通过点亮LED分析嵌入式裸机程序的开发步骤
扫描二维码
随时随地手机看文章
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),方法同上。