首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

s3c2440 IO口控制寄存器和数据寄存器地址 在s2440.h怎样确定,该怎么处理

2012-03-11 
s3c2440 IO口控制寄存器和数据寄存器地址 在s2440.h怎样确定#define IOP_BASE0xB1600000typedef struct{un

s3c2440 IO口控制寄存器和数据寄存器地址 在s2440.h怎样确定


#define IOP_BASE 0xB1600000 
typedef struct {
unsigned int rGPACON;// 00 怎么确定rGPACON为0x56000000??
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;  

如上怎样确定rGPACON、rGPADAT、rGPBDAT、rGPBDAT地址?

[解决办法]
结构体里面都是unsigned int的,只要定义好IOPreg所声明的变量的位置就可以了。
struch IOPreg IOReg_var __attribute__((at(0x56000000))) 

看到你结构体里面都是顺序放置的,这种情况还比较好,但是如果里面的顺序混乱了?就不好维护了。一般情况下使用楼上的链接里面的方式更直观一些,也好更改。

热点排行