嵌入式硬件---通過點(diǎn)亮LED分析嵌入式裸機(jī)程序的開發(fā)步驟
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)
端口數(shù)據(jù)寄存器(GPADAT-GPJDAT)
端口上拉寄存器(GPBUP-GPJUP)
復(fù)用控制寄存器
外部中斷控制寄存器
假設(shè),有4個(gè)LED燈,分別接在GPF0~GPF3上,低電平點(diǎn)亮
GPF有7個(gè)I/O口,三組寄存器GPFCON,GPFDAT,GPFUP
//包含頭文件區(qū)
#include "2440addr.h" //系統(tǒng)文件
#include "2440lib.h"
#include "def.h"
#include "uart.h"
void Main(){
//第一步,設(shè)置系統(tǒng)時(shí)鐘
memcpy((unsigned char *)0x0,(unsigned char *)0x30000000,1000);
//調(diào)用2440lib.c中的函數(shù)
SetSysFclk(FCLK_200M);//設(shè)置系統(tǒng)時(shí)鐘為200M
ChangeClockDivider(1,1);//設(shè)置分頻為1:2:4
CalcBusClk(); //計(jì)算總線頻率
//第二步:初始化串口
Uart_Select(0);
Uart_Init(0,115200);
//第三步:配置GPF寄存器
rGPFCON = (rGPFCON | 0xffff) & 0xffffff55; //設(shè)置GPF為輸出口
rGPFUP &= 0xfff0; //使能上拉
rGPFDAT = 0xff; //初始化
//第四步:進(jìn)入大循環(huán)
while(1){
rGPFDAT = 0xFE; //點(diǎn)亮
}
}
編譯工程,點(diǎn)擊工具欄上的【make】按鈕開始編譯,如果沒有錯(cuò)誤,就可以下載到開發(fā)板上運(yùn)行,這時(shí),就需要使用AXD工具。點(diǎn)擊【Debug】工具按鈕,運(yùn)行AXD。需要指定HJTAG工具連接到開發(fā)板上,選擇【Options】菜單下載的【Configure Target】,在彈出的Choose Target對話框中添加HJTAG的配置文件(H-JTAG安裝目錄下的H-JTAG.dll文件),點(diǎn)擊【Configure】按鈕,完成H-JTAG的配置
使用AXD進(jìn)行調(diào)試時(shí),在NandFlash中不應(yīng)該有其他的程序,否則,會(huì)使運(yùn)行不正常!應(yīng)先擦除NandFlash。
在調(diào)試之前,應(yīng)該對SDRAM進(jìn)行配置,因?yàn)槌绦蚴且螺d到內(nèi)存中運(yùn)行的,因此,首先需要對SDRAM進(jìn)行正確配置,選擇【Options】菜單下的【Configure Interface】,在彈出的對話框中選擇【Session File】標(biāo)簽頁,勾選【Run Configuration Script】復(fù)選框,加入2440init.txt配置腳本文件。重啟AXD
如果電腦沒有并口,也可以使用J-Link連接到開發(fā)板。首先,需要安裝J-Link的驅(qū)動(dòng),然后添加J-Link的配置文件(JLinkRDI.dll),方法同上。