⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s2410.h

📁 wince外部中断计数小驱动
💻 H
📖 第 1 页 / 共 3 页
字号:
	BYTE			rsvd277;				// 0x266
	BYTE			rsvd278;				// 0x267
	struct EP4DTMBits	EP4DTM;				// 0x268
	BYTE			rsvd279;				// 0x269
	BYTE			rsvd280;				// 0x26a
	BYTE			rsvd281;				// 0x26b
	struct EP4DTHBits	EP4DTH;				// 0x26C
};





//
// Registers : Interrupt Controller
//

#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 ;    


// S3C2410X01 Interrupt controller bit positions

#define    BIT_EINT0        (0x1)
#define    BIT_EINT1        (0x1<<1)
#define    BIT_EINT2        (0x1<<2)
#define    BIT_EINT3        (0x1<<3)
#define    BIT_EINT4_7      (0x1<<4)
#define    BIT_EINT8_23     (0x1<<5)
#define    BIT_RSV1         (0x1<<6)
#define    BIT_BAT_FLT      (0x1<<7)
#define    BIT_TICK         (0x1<<8)
#define    BIT_WDT          (0x1<<9)
#define    BIT_TIMER0       (0x1<<10)
#define    BIT_TIMER1       (0x1<<11)
#define    BIT_TIMER2       (0x1<<12)
#define    BIT_TIMER3       (0x1<<13)
#define    BIT_TIMER4       (0x1<<14)
#define    BIT_UART2        (0x1<<15)
#define    BIT_LCD          (0x1<<16)
#define    BIT_DMA0         (0x1<<17)
#define    BIT_DMA1         (0x1<<18)
#define    BIT_DMA2         (0x1<<19)
#define    BIT_DMA3         (0x1<<20)
#define    BIT_MMC	        (0x1<<21)
#define    BIT_SPI0	        (0x1<<22)
#define    BIT_UART1        (0x1<<23)
#define    BIT_RSV2         (0x1<<24)
#define    BIT_USBD         (0x1<<25)
#define    BIT_USBH         (0x1<<26)
#define    BIT_IIC	        (0x1<<27)
#define    BIT_UART0        (0x1<<28)
#define    BIT_SPI1         (0x1<<29)
#define    BIT_RTC	        (0x1<<30)
#define    BIT_ADC	        (0x1<<31)
#define    BIT_ALLMSK       (0xffffffff)

#define	   BIT_SUB_ADC		(0x1<<10)
#define    BIT_SUB_TC		(0x1<<9)
#define    BIT_SUB_ERR2		(0x1<<8)
#define    BIT_SUB_TXD2		(0x1<<7)
#define    BIT_SUB_RXD2		(0x1<<6)
#define    BIT_SUB_ERR1		(0x1<<5)
#define    BIT_SUB_TXD1		(0x1<<4)
#define    BIT_SUB_RXD1		(0x1<<3)
#define    BIT_SUB_ERR0		(0x1<<2)
#define    BIT_SUB_TXD0		(0x1<<1)
#define    BIT_SUB_RXD0		(0x1<<0)
#define    BIT_SUB_ALLMSK	(0x7ff)


// S3C2410X01 Interrupt controller source number
#define    INTSRC_EINT0     0
#define    INTSRC_EINT1     1
#define    INTSRC_EINT2     2
#define    INTSRC_EINT3     3
#define    INTSRC_EINT4_7   4
#define    INTSRC_EINT8_23  5
#define    INTSRC_RSV1      6
#define    INTSRC_BAT_FLT   7
#define    INTSRC_TICK      8
#define    INTSRC_WDT       9
#define    INTSRC_TIMER0    10
#define    INTSRC_TIMER1    11
#define    INTSRC_TIMER2    12
#define    INTSRC_TIMER3    13
#define    INTSRC_TIMER4    14
#define    INTSRC_UART2     15
#define    INTSRC_LCD       16
#define    INTSRC_DMA0      17
#define    INTSRC_DMA1      18
#define    INTSRC_DMA2      19
#define    INTSRC_DMA3      20
#define    INTSRC_MMC	    21
#define    INTSRC_SPI0	    22
#define    INTSRC_UART1     23
#define    INTSRC_RSV2      24
#define    INTSRC_USBD      25
#define    INTSRC_USBH      26
#define    INTSRC_IIC	    27
#define    INTSRC_UART0     28
#define    INTSRC_SPI1      29
#define    INTSRC_RTC	    30
#define    INTSRC_ADC	    31
#define    INTSRC_ALLMSK    (0xffffffff)

// S3C2410X01 Interrupt controller bit positions
// For SUB source pending bit.

#define 	INTSUB_RXD0		(0x1 << 0)
#define		INTSUB_TXD0		(0x1 << 1)
#define		INTSUB_ERR0		(0x1 << 2)
#define		INTSUB_RXD1		(0x1 << 3)
#define 	INTSUB_TXD1		(0x1 << 4)
#define		INTSUB_ERR1		(0x1 << 5)
#define		INTSUB_RXD2		(0x1 << 6)
#define 	INTSUB_TXD2		(0x1 << 7)
#define		INTSUB_ERR2		(0x1 << 8)
#define		INTSUB_TC		(0x1 << 9)
#define		INTSUB_ADC		(0x1 << 10)
#define 	INTSUB_SLLMSK	(0xFFFFFFFF)

#define		INTSUB_BASE     0xB0A00018 // 0x4A000018 // serial
#define		INTSUB_MSK      0xB0A0001C // 0x4A00001C // serial
#define		BIT_SUB_ALLMSK	(0x7ff)



//
// Registers : LCD Controller
//

#define LCD_BASE      0xB0D00000 // 0x4D000000
typedef struct  {
    unsigned int  rLCDCON1;		// 00
    unsigned int  rLCDCON2;		// 04
    unsigned int  rLCDCON3;		// 08
    unsigned int  rLCDCON4;		// 0C
    unsigned int  rLCDCON5;		// 10
    unsigned int  rLCDSADDR1;	// 14
    unsigned int  rLCDSADDR2;	// 18
    unsigned int  rLCDSADDR3;	// 1C
    unsigned int  rREDLUT;		// 20
    unsigned int  rGREENLUT;	// 24
    unsigned int  rBLUELUT;		// 28
    unsigned int  rPAD[8];		// 2C - 48
    unsigned int  rDITHMODE;	// 4C
    unsigned int  rTPAL;		// 50
    unsigned int  rLCDINTPND;	// 54
    unsigned int  rLCDSRCPND;	// 58
    unsigned int  rLCDINTMSK;	// 5C	
    unsigned int  rLPCSEL;		// 60
}LCDreg ;    

// LCD register value...    
#define MODE_STN_1BIT 	    (1)
#define MODE_STN_2BIT  	    (2)
#define MODE_STN_4BIT  	    (4)
#define MODE_CSTN_8BIT 	    (108)
#define MODE_CSTN_12BIT     (112)
#define MODE_TFT_1BIT       (201)
//#define MODE_TFT_2BIT	    (202)
//#define MODE_TFT_4BIT     (204)
#define MODE_TFT_8BIT       (208)
#define MODE_TFT_16BIT      (216)

#define SCR_XSIZE           (640)   //for virtual screen  
#define SCR_YSIZE           (480)
//#define SCR_XSIZE_TFT       (1280)   //for virtual screen  
//#define SCR_YSIZE_TFT       (960)
#define SCR_XSIZE_TFT       (480)   //for virtual screen  
#define SCR_YSIZE_TFT       (640)


#define LCD_XSIZE_STN       (320)
#define LCD_YSIZE_STN       (240)
#define LCD_XSIZE_CSTN      (320)
#define LCD_YSIZE_CSTN      (240)
//#define LCD_XSIZE_STN       (240)
//#define LCD_YSIZE_STN       (320)
//#define LCD_XSIZE_CSTN      (240)
//#define LCD_YSIZE_CSTN      (320)
//#define LCD_XSIZE_TFT       (640)	
//#define LCD_YSIZE_TFT       (480)
#define LCD_XSIZE_TFT       (240)	
#define LCD_YSIZE_TFT       (320)


#define ARRAY_SIZE_STN_1BIT     (SCR_XSIZE/8*SCR_YSIZE)
#define ARRAY_SIZE_STN_2BIT     (SCR_XSIZE/4*SCR_YSIZE)
#define ARRAY_SIZE_STN_4BIT     (SCR_XSIZE/2*SCR_YSIZE)
#define ARRAY_SIZE_CSTN_8BIT    (SCR_XSIZE/1*SCR_YSIZE)
#define ARRAY_SIZE_CSTN_12BIT   (SCR_XSIZE*2*SCR_YSIZE)
#define ARRAY_SIZE_TFT_8BIT     (SCR_XSIZE/1*SCR_YSIZE)
#define ARRAY_SIZE_TFT_16BIT    (SCR_XSIZE*2*SCR_YSIZE)

#define HOZVAL_STN          (LCD_XSIZE_STN/4-1)
#define HOZVAL_CSTN         (LCD_XSIZE_CSTN*3/8-1)
#define HOZVAL_TFT          (LCD_XSIZE_TFT-1)
#define LINEVAL_STN         (LCD_YSIZE_STN-1)
#define LINEVAL_CSTN        (LCD_YSIZE_CSTN-1)
#define LINEVAL_TFT         (LCD_YSIZE_TFT-1)

#define MVAL                (13)
#define MVAL_USED           (0)

//STN/CSTN timing parameter for LCBHBT161M(NANYA)
#define WLH                 (3)
#define WDLY                (3)
#define LINEBLANK           (1 &0xff)

//TFT timing parameter for V16C6448AB(PRIME VIEW) 
/*
#define VBPD                ((33-1)&0xff)
#define VFPD                ((10-1)&0xff)
#define VSPW                ((2-1) &0x3f)

#define HBPD                ((48-1)&0x7f)
#define HFPD                ((16-1)&0xff)
#define HSPW                ((96-1)&0xff)
*/
#define VBPD                ((1)&0xff)
#define VFPD                ((2)&0xff)
#define VSPW                ((1) &0x3f)

#define HBPD                ((6)&0x7f)
// 
#define HFPD                ((2)&0xff)
//#define HSPW                ((3)&0xff)
#define HSPW                ((4)&0xff)

#define CLKVAL_STN_MONO     (22) 	
    //69.14hz @60Mhz,WLH=16clk,WDLY=16clk,LINEBLANK=1*8,VD=4 
#define CLKVAL_STN_GRAY     (12) 	
    //124hz @60Mhz,WLH=16clk,WDLY=16clk,LINEBLANK=1*8,VD=4  
#define CLKVAL_CSTN         (8) 	
    //135hz @60Mhz,WLH=16clk,WDLY=16clk,LINEBLANK=1*8,VD=8  
//#define CLKVAL_TFT          (1)
#define CLKVAL_TFT          (6)
//#define CLKVAL_TFT          (7)
    //NOTE: 1)SDRAM should have 32-bit bus width. 
    //      2)HBPD,HFPD,HSPW should be optimized. 
    //44.6hz @75Mhz
    //VSYNC,HSYNC should be inverted
    //HBPD=48VCLK,HFPD=16VCLK,HSPW=96VCLK
    //VBPD=33HSYNC,VFPD=10HSYNC,VSPW=2HSYNC

#define M5D(n)              ((n) & 0x1fffff)



//
// ADC
//

#define ADC_BASE      0xB1800000 // 0x58000000

typedef struct {
        unsigned int 	rADCCON;
        unsigned int 	rADCTSC;
        unsigned int	rADCDLY;
        unsigned int 	rADCDAT0;
        unsigned int 	rADCDAT1;
}ADCreg ;        


//
// Registers : RTC
//



#define RTC_BASE      0xB1700000 // 0x57000000

typedef struct {
	unsigned int  rPAD1[16]; 	// 00 - 3C
    unsigned int  rRTCCON;		// 40
    unsigned int  rTICINT;
    unsigned int  rPAD2[2];      
    unsigned int  rRTCALM;
    unsigned int  rALMSEC;
    unsigned int  rALMMIN;
    unsigned int  rALMHOUR;
    unsigned int  rALMDAY;
    unsigned int  rALMMON;
    unsigned int  rALMYEAR;
    unsigned int  rRTCRST;
    unsigned int  rBCDSEC;
    unsigned int  rBCDMIN;
    unsigned int  rBCDHOUR;
    unsigned int  rBCDDAY;
    unsigned int  rBCDDATE;
    unsigned int  rBCDMON;
    unsigned int  rBCDYEAR;
} RTCreg;    

#if 0 // _BIG_ENDIAN
#define rRTCCON		(*(volatile unsigned char *)0xB1700043)
#define rRTCALM		(*(volatile unsigned char *)0xB1700053)
#define rALMSEC		(*(volatile unsigned char *)0xB1700057)
#define rALMMIN		(*(volatile unsigned char *)0xB170005b)
#define rALMHOUR	(*(volatile unsigned char *)0xB170005f)
#define rALMDAY		(*(volatile unsigned char *)0xB1700063)
#define rALMMON		(*(volatile unsigned char *)0xB1700067)
#define rALMYEAR	(*(volatile unsigned char *)0xB170006b)
#define rRTCRST		(*(volatile unsigned char *)0xB170006f)
#define rBCDSEC		(*(volatile unsigned char *)0xB1700073)
#define rBCDMIN		(*(volatile unsigned char *)0xB1700077)
#define rBCDHOUR	(*(volatile unsigned char *)0xB170007b)
#define rBCDDAY		(*(volatile unsigned char *)0xB170007f)
#define rBCDDATE	(*(volatile unsigned char *)0xB1700083)
#define rBCDMON		(*(volatile unsigned char *)0xB1700087)
#define rBCDYEAR	(*(volatile unsigned char *)0xB170008b)
#define rTICINT		(*(volatile unsigned char *)0xB1700047)

#endif


//
// Watch-Dog Timver
//

#define WATCH_BASE 0xB1300000 // 0x53000000

typedef struct {
    unsigned long   rWTCON;
    unsigned long   rWTDAT;
    unsigned long   rWTCNT;
} WATCHreg;

    
//
// SD / MMC 
//

#define MMC_BACE        0xB1A00000 // 0x5A000000

typedef struct {
    unsigned int   	rSDICON;
    unsigned int   	rSDIPRE;
    unsigned int   	rSDICMDARG;
    unsigned int   	rSDICMDCON;
    unsigned int   	rSDICMDSTA;
    unsigned int   	rSDIRSP0;
    unsigned int   	rSDIRSP1;
    unsigned int   	rSDIRSP2;
    unsigned int   	rSDIRSP3;
    unsigned int 	rSDIDTIMER;
    unsigned int	rSDIBSIZE;
    unsigned int 	rSDIDATCON;
    unsigned int	rSDIDATCNT;
    unsigned int	rSDIDATSTA;
    unsigned int	rSDIFSTA;
    unsigned int	rSDIDAT;
    unsigned int	rSDIINTMSK;
} MMCreg;




//
// IIC 
//


#define IIC_BASE        0xB1400000 // 54000000

#define IICFIF_PHYS     0x54000000  // physical address of IIC

typedef struct {
        unsigned int    rIICCON;
        unsigned int    rIICSTAT;
        unsigned int    rIICADD;
        unsigned int    rIICDS;
}IICreg;        



//
// IIS 
//


#define IIS_BASE        0xB1500000

#define IISFIF_PHYS     0x55000010  // physical address of IISFIF for DMA

typedef struct {
        unsigned int    rIISCON;
        unsigned int    rIISMOD;
        unsigned int    rIISPSR;
        unsigned int    rIISFCON;
        unsigned int    rIISFIF;
}IISreg;        


//
// SPI 
//

#define SSP_BASE 0xB1900000  // 0x59000000

typedef struct  {
    unsigned int rSPCON0; 	// 00
    unsigned int rSPSTA0;
    unsigned int rSPPIN0;
    unsigned int rSPPRE0;
    unsigned int rSPTDAT0;	// 10
    unsigned int rSPRDAT0;
    unsigned int rPAD[2];
    unsigned int rSPCON1; 	// 20
    unsigned int rSPSTA1;
    unsigned int rSPPIN1;
    unsigned int rSPPRE1;
    unsigned int rSPTDAT1; 	// 30
    unsigned int rSPRDAT1;
    
}SSPreg ; 



#endif


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -