新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于WINCE S3C2440 的LED驅(qū)動程序的編寫

基于WINCE S3C2440 的LED驅(qū)動程序的編寫

作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
在SMDK2440的BSP包里經(jīng)??匆娺@兩句語句:

volatile IOPreg *s2440IOP = (IOPreg *)IOP_BASE;
volatile INTreg *s2440INT = (INTreg *)INT_BASE;

本文引用地址:http://butianyuan.cn/article/201611/320093.htm

這兩條語句簡單的理解就是把s2440IOP和IOP_BASE等價,把s2440INT和INT_BASE等價。

IOP_BASE和INT_BASE在s244.h頭文件中

#define IOP_BASE 0xB1600000 // 0x56000000
typedef struct {
unsigned int rGPACON;// 00
unsigned int rGPADAT;
unsigned int rPAD1[2];

unsigned int rGPBCON;// 10
unsigned int rGPBDAT;
unsigned int rGPBUP;
unsigned int rPAD2;

unsigned int rGPCCON;// 20
unsigned int rGPCDAT;
unsigned int rGPCUP;
unsigned int rPAD3;

unsigned int rGPDCON;// 30
unsigned int rGPDDAT;
unsigned int rGPDUP;
unsigned int rPAD4;

unsigned int rGPECON;// 40
unsigned int rGPEDAT;
unsigned int rGPEUP;
unsigned int rPAD5;

unsigned int rGPFCON;// 50
unsigned int rGPFDAT;
unsigned int rGPFUP;
unsigned int rPAD6;

unsigned int rGPGCON;// 60
unsigned int rGPGDAT;
unsigned int rGPGUP;
unsigned int rPAD7;

unsigned int rGPHCON;// 70
unsigned int rGPHDAT;
unsigned int rGPHUP;
unsigned int rPAD8;

unsigned int rMISCCR;// 80
unsigned int rDCKCON;
unsigned int rEXTINT0;
unsigned int rEXTINT1;
unsigned int rEXTINT2;// 90
unsigned int rEINTFLT0;
unsigned int rEINTFLT1;
unsigned int rEINTFLT2;
unsigned int rEINTFLT3;// A0
unsigned int rEINTMASK;
unsigned int rEINTPEND;
unsigned int rGSTATUS0;// AC
unsigned int rGSTATUS1;// B0
unsigned int rGSTATUS2;// B4 ;;; SHL
unsigned int rGSTATUS3;// B8
unsigned int rGSTATUS4;// BC

unsigned int rFLTOUT;// C0
unsigned int rDSC0;
unsigned int rDSC1;
unsigned int rMSLCON;

unsigned int rGPJCON;// D0
unsigned int rGPJDAT;
unsigned int rGPJUP;
unsigned int rPAD9;

}IOPreg;

#define INT_BASE 0xB0A00000 // 0x4A000000
typedef struct {
unsigned int rSRCPND;
unsigned int rINTMOD;
unsigned int rINTMSK;
unsigned int rPRIORITY;
unsigned int rINTPND;
unsigned int rINTOFFSET;
unsigned int rSUBSRCPND;
unsigned int rINTSUBMSK;
}INTreg ;

可見IOPreg和INTreg是兩個結(jié)構(gòu)體,而INT_BASE和IOP_BASE是連個虛擬地址。因此上面的兩條語句就是把兩個虛擬地址強化成結(jié)構(gòu)體的首地址,因此可以訪問結(jié)構(gòu)體對應(yīng)的寄存器了。




關(guān)鍵詞: WINCES3C2440LED驅(qū)動程

評論


技術(shù)專區(qū)

關(guān)閉