📄 hardware_reg.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 + -