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

📄 hardware_reg.h

📁 基于东南大学开发的SEP3203的ARM7中的所有驱动
💻 H
字号:
/********************************************************************************************
*filename:		hardware_reg.h						
*author:			willhua	
*create date:		2003-7-14 14:17                                                                      
*description:	    	This file defined  registers of all the module                                                       
*modify history:	                                                                      
*misc:           
********************************************************************************************/
#ifndef _HARWARE_REG_H
#define _HARWARE_REG_H


/***************************************************
	define INTC registers
***************************************************/
#ifdef	FPGA
#define		 BASE_INTC			0x10000000
#else
#define		 BASE_INTC			0x00200000
#endif

#define		 INTC_IEN			( BASE_INTC+0X0  )
#define		 INTC_IMSK			( BASE_INTC+0X8  )
#define		 INTC_IFCE			( BASE_INTC+0X10 )
#define		 INTC_IRSTAT		( BASE_INTC+0X18 )
#define		 INTC_ISTAT      		( BASE_INTC+0X20 )
#define		 INTC_IMSTAT	    	( BASE_INTC+0X28 )
#define		 INTC_IFSTAT    		( BASE_INTC+0X30 )

#define		 INTC_FEN    		( BASE_INTC+0XC0 )
#define		 INTC_FMSK		  	( BASE_INTC+0XC4 )
#define		 INTC_FFCE    		( BASE_INTC+0XC8 )
#define		 INTC_FRSTAT 		( BASE_INTC+0XCC )
#define		 INTC_FSTAT   		( BASE_INTC+0XD0 )
#define		 INTC_FFSTAT   		( BASE_INTC+0XD4 )
#define		 INTC_PLV       		( BASE_INTC+0XD8 )

/*************************************************
	define GPT registers
*************************************************/
#define		GPT_BASE		0x10003000

#ifdef GIII
#define		GPT1_CNTL		(GPT_BASE + 0x00)
#define		GPT1_SCAL		(GPT_BASE + 0x04)
#define		GPT1_COMP		(GPT_BASE + 0x08)
#define		GPT1_CAPT		(GPT_BASE + 0x0c)
#define		GPT1_CNT		(GPT_BASE + 0x10)
#define		GPT1_STAT		(GPT_BASE + 0x14)

#define		GPT2_CNTL		(GPT_BASE + 0x18)
#define		GPT2_SCAL		(GPT_BASE + 0x1c)
#define		GPT2_COMP		(GPT_BASE + 0x20)
#define		GPT2_CAPT		(GPT_BASE + 0x24)
#define		GPT2_CNT		(GPT_BASE + 0x28)
#define		GPT2_STAT		(GPT_BASE + 0x2c)

#else

#define		GPT1_LCR		(GPT_BASE + 0x00)
#define		GPT1_CCR		(GPT_BASE + 0x04)
#define		GPT1_CR			(GPT_BASE + 0x08)
#define		GPT1_SCR		(GPT_BASE + 0x0c)
#define		GPT1_MSR		(GPT_BASE + 0x10)

#endif
/************************************************
	define PWM registers
************************************************/
#define 		PWM1_CNTL		(GPT_BASE + 0X30)
#define 		PWM1_P			(GPT_BASE + 0X34)
#define		PWM1_S			(GPT_BASE + 0X38)
#define 		PWM1_C			(GPT_BASE + 0X3C)
#define 		PWM1_CNT		(GPT_BASE + 0X40)
#define		PWM1_STAT		(GPT_BASE + 0X44)

#define 		PWM2_CNTL		(GPT_BASE + 0X48)
#define 		PWM2_S			(GPT_BASE + 0X4C)
#define		PWM2_P			(GPT_BASE + 0X50)
#define 		PWM2_C			(GPT_BASE + 0X54)
#define 		PWM2_CNT		(GPT_BASE + 0X58)
#define		PWM2_STAT		(GPT_BASE + 0X5C)

/*************************************************
	defien RTC registers
*************************************************/
#ifdef	FPGA
#define		RTC_BASE		0x10002000
#else
#define 		RTC_BASE		0x00202000
#endif

#define 		RTC_YMD		(RTC_BASE + 0X00)	//year ,month ,day regment
#define 		RTC_HMS		(RTC_BASE + 0X04)	//hour ,minute ,second regment
#define 		RTC_ALRM		(RTC_BASE + 0X08)	//alarm time regment
#define 		RTC_CTRL		(RTC_BASE + 0X0c)	//rtc control regment
#define 		RTC_IEN			(RTC_BASE + 0X10)	//interrupt enable regment
#define 		RTC_ISTAT  		(RTC_BASE + 0X14)	//interrupt status regment
#define 		RTC_SAMP		(RTC_BASE + 0X18)	//sample regment
#define 		RTC_WCNT 		(RTC_BASE + 0X1c)	//watchdog count regment
#define 		RTC_WSVCE  	(RTC_BASE + 0X20)	//Watchdog service regment

/*********************************************
	define  UART registers
*********************************************/ 
#ifdef	FPGA
#define 		UART1_BASE		0X10004000
#else
#define 		UART1_BASE		0X00203000
#endif

#define 		UART1_THR		(UART1_BASE+0X00)
#define 		UART1_RBR		(UART1_BASE+0X00)
#define 		UART1_DLL		(UART1_BASE+0X00)
#define 		UART1_DLH		(UART1_BASE+0X04)    
#define 		UART1_IER		(UART1_BASE+0X04)	
#define 		UART1_IIR		(UART1_BASE+0X08)
#define 		UART1_FCR		(UART1_BASE+0X08)
#define 		UART1_LCR		(UART1_BASE+0X0c)
#define 		UART1_MCR		(UART1_BASE+0X10)
#define 		UART1_LSR		(UART1_BASE+0X14)
#define 		UART1_MSR		(UART1_BASE+0X18)




#ifdef	FPGA
#define 		UART2_BASE		0X10005000
#else
#define 		UART2_BASE		0X00204000
#endif

#define 		UART2_THR		(UART2_BASE+0X00)
#define 		UART2_RBR		(UART2_BASE+0X00)
#define 		UART2_DLL		(UART2_BASE+0X00)
#define 		UART2_DLH		(UART2_BASE+0X04)
#define 		UART2_IER		(UART2_BASE+0X04)
#define 		UART2_IIR		(UART2_BASE+0X08)
#define 		UART2_FCR		(UART2_BASE+0X08)
#define 		UART2_LCR		(UART2_BASE+0X0c)
#define 		UART2_MCR		(UART2_BASE+0X10)
#define 		UART2_LSR		(UART2_BASE+0X14)
#define	 	UART2_MSR		(UART2_BASE+0X18)

/*************************************
	define LCDC registers
*************************************/
#define BASE_LCDC	0x11002000			//;BASE ADDRESS OF LCDC                                                                                                                   
#define VS_BASE		0x81000000			//;WHICH IS ASSUMED BECAUSE OF UN-ALLOCARTION    
#define SSA			(BASE_LCDC+0x00)	//;Screen Start Address Register                 
#define SIZE			(BASE_LCDC+0x04)	//;Size Register                                 
#define PCR			(BASE_LCDC+0x08)	//;Panel Configuration Register                  
#define HCR			(BASE_LCDC+0x0c)	//;Horizontal Configuration Register             
#define VCR			(BASE_LCDC+0x10)	//;Vertical Configuration Register                                      
#define PWMR		(BASE_LCDC+0x14)	//;PWM Contrast Control Register                          
#define LECR			(BASE_LCDC+0x18)	//;LCD Gray Palette Mapping Register             
#define DMACR		(BASE_LCDC+0x1c)	//;DMA Control Register                          
#define LCDICR		(BASE_LCDC+0x20)	//;Interrupt Configuration Register              
#define LCDISR		(BASE_LCDC+0x24)	//;Interrupt Status Register  
#define LGPMR		(BASE_LCDC+0x40)	//;The begin of address of grey_reg

/**************************************
	define SPI registers
****************************************/
 #ifdef SIM
 
 #define BASE_SPI_1  0X00205000 
 #define PORTF_DIR   0X0020b040
 #define PORTF_DATA  0x0020b008
 #define PORTF_SEL   0x0020b050 
 #define DMABASE     0x00221000
 
 #endif

 #ifdef FPGA
 #define BASE_SPI_1  0X10006000 
 #define PORTF_DIR   0X1020b040
 #define PORTF_DATA  0x1000b008
 #define PORTF_SEL   0x1020b050 

 #endif
   
 #define SPICR   (BASE_SPI_1 + 0X00) 
 #define SPIBR   (BASE_SPI_1 + 0X04)
 #define SPISR   (BASE_SPI_1 + 0X08)
 #define SPITR   (BASE_SPI_1 + 0X0C)
 #define SPIRR   (BASE_SPI_1 + 0x10)
 
 #define x_location  0x94
 #define y_location  0xD4
 #define trigger     0x80
 #define ctrlw       0x77
 #define bt256       0x0007
 #define spif        0x01
 
 //
 //dma
 //
 
 #define  SA         (DMABASE + 0X00)
 #define  DA         (DMABASE + 0X04)
 #define  CTRL       (DMABASE + 0X08)
 #define  DMAENABLE  (DMABASE + 0X0C)
 #define  DMASTATUS  (DMABASE + 0X10)
 #define  DACLW   0XA1040006
 #define  DACLR   0X91040006                                                   
                               





/**************************************                         xiaoj 03.11.20
	define DMA registers
****************************************/
#define 	DMACbase				0x11000000
#define 	DMACIntStatus			(DMACbase+0x1020) 			//Read
#define 	DMACIntTCStatus			(DMACbase+0x1050) 			//Read
#define 	DMACIntTCClear			(DMACbase+0x1060) 			//Write
#define 	DMACRawIntTCStatus		(DMACbase+0x1070) 			//Read
#define 	DMACIntErrorStatus		(DMACbase+0x1080) 			//Read
#define 	DMACIntErrClr			(DMACbase+0x1090) 			//Write
#define 	DMACRawIntErrorStatus	(DMACbase+0x10a0) 			//Read
#define 	DMACEnbldChns			(DMACbase+0x10B0) 			//Read;  Indicate which channel can be used;
#define		ADDRESS_CONFIGURATION 	(DMACbase+0x10C0)
   
#define 	DMACC0SrcAddr			(DMACbase+0x1000)			//DMA channel 0 registers;
#define 	DMACC0DestAddr			(DMACbase+0x1004)
#define 	DMACC0Control			(DMACbase+0x100c)
#define 	DMACC0Configuration		(DMACbase+0x1010)
#define 	DMACC1SrcAddr			(DMACbase+0x1100)			//DMA channel 1 registers;   R/W
#define 	DMACC1DestAddr			(DMACbase+0x1104)
#define 	DMACC1Control			(DMACbase+0x110c)
#define 	DMACC1Configuration		(DMACbase+0x1110)
#define 	DMACC2SrcAddr			(DMACbase+0x1200)			//DMA channel 2 registers;   R/W
#define 	DMACC2DestAddr			(DMACbase+0x1204)
#define 	DMACC2Control			(DMACbase+0x120c)
#define 	DMACC2Configuration		(DMACbase+0x1210)
#define 	DMACC3SrcAddr			(DMACbase+0x1300)			//DMA channel 3 registers;   R/W
#define 	DMACC3DestAddr			(DMACbase+0x1304)
#define 	DMACC3Control			(DMACbase+0x130c)
#define 	DMACC3Configuration		(DMACbase+0x1310)
#define 	DMACC4SrcAddr			(DMACbase+0x1400)			//DMA channel 4 registers;   R/W
#define 	DMACC4DestAddr			(DMACbase+0x1404)
#define 	DMACC4Control			(DMACbase+0x140c)
#define 	DMACC4Configuration		(DMACbase+0x1410)
#define 	DMACC5SrcAddr			(DMACbase+0x1500)			//DMA channel 5 registers;   R/W
#define 	DMACC5DestAddr			(DMACbase+0x1504)
#define 	DMACC5Control			(DMACbase+0x150c)
#define 	DMACC5Configuration		(DMACbase+0x1510)


/**************************************
	define EMI registers
****************************************/

#define  EMI_SRAM_REGBASE			 0x11000000 			 	 //Sdram sram register base;
#define  EMI_NAND_REGBASE			 0x11000100 			 	 //NAND FLASH register base;
                                	
#define	 EMIADDR_SMCONF				( EMI_SRAM_REGBASE+0x00 )	 //adress of sram time_sequence register
#define  EMIADDR_CSGBAB				( EMI_SRAM_REGBASE+0x04 )  	 //adress of CSA and CSB chip select register
#define	 EMIADDR_CSGBCD 			( EMI_SRAM_REGBASE+0X08 )	 //adress of CSC and CSD chip select register	
#define	 EMIADDR_CSGBEF				( EMI_SRAM_REGBASE+0Xc  )	  //adress of CSE and CSF chip select register
#define	 EMIADDR_REMAP				( EMI_SRAM_REGBASE+0X10 )	 //Remap register select boot memory
#define	 EMIADDR_SDCONF1			( EMI_SRAM_REGBASE+0X14 )	 //sram and adram time_sequence register I
#define	 EMIADDR_SDCONF2			( EMI_SRAM_REGBASE+0X18 )	 //sram and adram time_sequence register II
#define  EMIADDR_REMAP2				( EMI_SRAM_REGBASE+0X1C )
                                	
#define	 EMIADDR_NANDADDR			( EMI_NAND_REGBASE+0X00  )	 //adress of Nand Flash adress register
#define	 EMIADDR_NANDCOM			( EMI_NAND_REGBASE+0X04  )	 //adress of Nand Flash control register
#define	 EMIADDR_NANDSTATUS			( EMI_NAND_REGBASE+0X0c  )	 //adress of Nand Flash status register
#define	 EMIADDR_NANDERRORADDR1		( EMI_NAND_REGBASE+0X10  )	 //adress of Nand Flash error register I
#define	 EMIADDR_NANDERRORADDR2		( EMI_NAND_REGBASE+0X14  )	 //adress of Nand Flash error register II                                             
#define	 EMIADDR_NANDCONF			( EMI_NAND_REGBASE+0X18  )	 //adress of Nand Flash config register
#define  EMIADDR_NANDINTR			( EMI_NAND_REGBASE+0X1c  )	 //Int clear
#define  EMIADDR_NANDINECC			( EMI_NAND_REGBASE+0X20  ) 	 //ECC complish
#define  EMIADDR_NANDIDLE			( EMI_NAND_REGBASE+0X24  ) 	 //Compish register
                                	
#define  EMI_NAND_DATA			 	0x11000200
#define	 HA_ERRORBASE_EMI			0X28050000


/**************************************
	define MMC registers
****************************************/
#ifdef FPGA
#define BASE_MMCC			 0X10009000
#define MMCC_INIT            0X81000000
#else
#define BASE_MMCC         	 0X0020C000
#define MMCC_INIT            0X05080000
#endif 

#define MMCC_STR_STP_CLK  		(BASE_MMCC+0x00)
#define MMCC_STATUS       		(BASE_MMCC+0X04)
#define MMCC_CLK_RATE     		(BASE_MMCC+0X08)
#define MMCC_CMD_DAT_CONT 		(BASE_MMCC+0X0C)
#define MMCC_RES_TO       		(BASE_MMCC+0X10)
#define MMCC_READ_TO      		(BASE_MMCC+0X14)
#define MMCC_BLK_LEN      		(BASE_MMCC+0X18)
#define MMCC_NOB          		(BASE_MMCC+0X1C)
#define MMCC_DAT_COUNT    		(BASE_MMCC+0X20)
#define MMCC_INT_MASK     		(BASE_MMCC+0X24)
#define MMCC_CMD          		(BASE_MMCC+0X28)
#define MMCC_ARG          		(BASE_MMCC+0X2C)
#define MMCC_RESPONSE0    		(BASE_MMCC+0X30)
#define MMCC_RESPONSE1    		(BASE_MMCC+0X34)
#define MMCC_RESPONSE2    		(BASE_MMCC+0X38)
#define MMCC_RESPONSE3    		(BASE_MMCC+0X3C)
#define MMCC_WRITE_BUFER_ACCESS (BASE_MMCC+0X40)
#define MMCC_READ_BUFER_ACCESS  (BASE_MMCC+0X44)
//********************************
//PMU
//*****************************
#define PMU_BASE	0x10001000

#define PMU_PLTR	(PMU_BASE+0X00)
#define PMU_PMCR	(PMU_BASE+0X04)
#define PMU_PUCR	(PMU_BASE+0X08)
#define PMU_PSCR	(PMU_BASE+0X0C)//OPEN MODULE
#define PMU_PCDR	(PMU_BASE+0X10)
#define PMU_PMDR	(PMU_BASE+0X14)



#endif //_HARWARE_REG_H

/********************************
 * IIC
 *******************************/
#define IADR 0x10007000
#define I2DR 0x10007004
#define I2CR 0x10007008
#define I2SR 0x1000700c
#define IFDR 0x10007010

/********************************
 * GPIO
 *******************************/


#define GPIO_BASE	0x1000b000

#define PORTB_DIR   (GPIO_BASE+0X10)
#define PORTB_SEL   (GPIO_BASE+0X14)
#define PORTB_DATA  (GPIO_BASE+0X18)

#define PORTE_DIR	(GPIO_BASE+0X34)
#define PORTE_SEL	(GPIO_BASE+0X38)
#define PORTE_DATA 	(GPIO_BASE+0X48)
#define PORTE_INCTL (GPIO_BASE+0X3C)
#define PORTE_INTRCTL  (GPIO_BASE+0X40)
#define PORTE_INTRCLR 	(GPIO_BASE+0X44)


#define PORTH_DIR	(GPIO_BASE+0X68)
#define PORTH_SEL	(GPIO_BASE+0X6C)
#define PORTH_DATA	(GPIO_BASE+0X7C)




⌨️ 快捷键说明

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