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

📄 jz4730.h

📁 mips cpu 君正4730 4740的 ucosii 源码 包括系统 摄像头 网络 文件系统等等测试
💻 H
📖 第 1 页 / 共 5 页
字号:
/* * jz4730.h * * Registers definition of the JZ4730 CPU. * * Copyright (c) 2005-2007 Ingenic Semiconductor Inc. * * This program is free software. */#ifndef __JZ4730_H__#define __JZ4730_H__#ifndef __ASSEMBLY__#define u32 unsigned int#define u16 unsigned short#define u8 unsigned char#define REG8(addr)	*((volatile u8 *)(addr))#define REG16(addr)	*((volatile u16 *)(addr))#define REG32(addr)	*((volatile u32 *)(addr))#else#define REG8(addr)	(addr)#define REG16(addr)	(addr)#define REG32(addr)	(addr)#endif /* !ASSEMBLY */#define	HARB_BASE	0xB3000000#define	EMC_BASE	0xB3010000#define	DMAC_BASE	0xB3020000#define	UHC_BASE	0xB3030000#define	UDC_BASE	0xB3040000#define	LCD_BASE	0xB3050000#define	CIM_BASE	0xB3060000#define	ETH_BASE	0xB3100000#define	NBM_BASE	0xB3F00000#define	CPM_BASE	0xB0000000#define	INTC_BASE	0xB0001000#define	OST_BASE	0xB0002000#define	RTC_BASE	0xB0003000#define	WDT_BASE	0xB0004000#define	GPIO_BASE	0xB0010000#define	AIC_BASE	0xB0020000#define	MSC_BASE	0xB0021000#define	UART0_BASE	0xB0030000#define	UART1_BASE	0xB0031000#define	UART2_BASE	0xB0032000#define	UART3_BASE	0xB0033000#define	FIR_BASE	0xB0040000#define	SCC_BASE	0xB0041000#define	SCC0_BASE	0xB0041000#define	I2C_BASE	0xB0042000#define	SSI_BASE	0xB0043000#define	SCC1_BASE	0xB0044000#define	PWM0_BASE	0xB0050000#define	PWM1_BASE	0xB0051000#define	DES_BASE	0xB0060000#define	UPRT_BASE	0xB0061000#define KBC_BASE	0xB0062000/************************************************************************* * MSC *************************************************************************/#define	MSC_STRPCL		(MSC_BASE + 0x000)#define	MSC_STAT		(MSC_BASE + 0x004)#define	MSC_CLKRT		(MSC_BASE + 0x008)#define	MSC_CMDAT		(MSC_BASE + 0x00C)#define	MSC_RESTO		(MSC_BASE + 0x010)#define	MSC_RDTO		(MSC_BASE + 0x014)#define	MSC_BLKLEN		(MSC_BASE + 0x018)#define	MSC_NOB			(MSC_BASE + 0x01C)#define	MSC_SNOB		(MSC_BASE + 0x020)#define	MSC_IMASK		(MSC_BASE + 0x024)#define	MSC_IREG		(MSC_BASE + 0x028)#define	MSC_CMD			(MSC_BASE + 0x02C)#define	MSC_ARG			(MSC_BASE + 0x030)#define	MSC_RES			(MSC_BASE + 0x034)#define	MSC_RXFIFO		(MSC_BASE + 0x038)#define	MSC_TXFIFO		(MSC_BASE + 0x03C)#define	REG_MSC_STRPCL		REG16(MSC_STRPCL)#define	REG_MSC_STAT		REG32(MSC_STAT)#define	REG_MSC_CLKRT		REG16(MSC_CLKRT)#define	REG_MSC_CMDAT		REG32(MSC_CMDAT)#define	REG_MSC_RESTO		REG16(MSC_RESTO)#define	REG_MSC_RDTO		REG16(MSC_RDTO)#define	REG_MSC_BLKLEN		REG16(MSC_BLKLEN)#define	REG_MSC_NOB		REG16(MSC_NOB)#define	REG_MSC_SNOB		REG16(MSC_SNOB)#define	REG_MSC_IMASK		REG16(MSC_IMASK)#define	REG_MSC_IREG		REG16(MSC_IREG)#define	REG_MSC_CMD		REG8(MSC_CMD)#define	REG_MSC_ARG		REG32(MSC_ARG)#define	REG_MSC_RES		REG16(MSC_RES)#define	REG_MSC_RXFIFO		REG32(MSC_RXFIFO)#define	REG_MSC_TXFIFO		REG32(MSC_TXFIFO)/* MSC Clock and Control Register (MSC_STRPCL) */#define MSC_STRPCL_EXIT_MULTIPLE	(1 << 7)#define MSC_STRPCL_EXIT_TRANSFER	(1 << 6)#define MSC_STRPCL_START_READWAIT	(1 << 5)#define MSC_STRPCL_STOP_READWAIT	(1 << 4)#define MSC_STRPCL_RESET		(1 << 3)#define MSC_STRPCL_START_OP		(1 << 2)#define MSC_STRPCL_CLOCK_CONTROL_BIT	0#define MSC_STRPCL_CLOCK_CONTROL_MASK	(0x3 << MSC_STRPCL_CLOCK_CONTROL_BIT)  #define MSC_STRPCL_CLOCK_CONTROL_STOP	  (0x1 << MSC_STRPCL_CLOCK_CONTROL_BIT) /* Stop MMC/SD clock */  #define MSC_STRPCL_CLOCK_CONTROL_START  (0x2 << MSC_STRPCL_CLOCK_CONTROL_BIT) /* Start MMC/SD clock *//* MSC Status Register (MSC_STAT) */#define MSC_STAT_IS_RESETTING		(1 << 15)#define MSC_STAT_SDIO_INT_ACTIVE	(1 << 14)#define MSC_STAT_PRG_DONE		(1 << 13)#define MSC_STAT_DATA_TRAN_DONE		(1 << 12)#define MSC_STAT_END_CMD_RES		(1 << 11)#define MSC_STAT_DATA_FIFO_AFULL	(1 << 10)#define MSC_STAT_IS_READWAIT		(1 << 9)#define MSC_STAT_CLK_EN			(1 << 8)#define MSC_STAT_DATA_FIFO_FULL		(1 << 7)#define MSC_STAT_DATA_FIFO_EMPTY	(1 << 6)#define MSC_STAT_CRC_RES_ERR		(1 << 5)#define MSC_STAT_CRC_READ_ERROR		(1 << 4)#define MSC_STAT_CRC_WRITE_ERROR_BIT	2#define MSC_STAT_CRC_WRITE_ERROR_MASK	(0x3 << MSC_STAT_CRC_WRITE_ERROR_BIT)  #define MSC_STAT_CRC_WRITE_ERROR_NO		(0 << MSC_STAT_CRC_WRITE_ERROR_BIT) /* No error on transmission of data */  #define MSC_STAT_CRC_WRITE_ERROR_YES		(1 << MSC_STAT_CRC_WRITE_ERROR_BIT) /* Card observed erroneous transmission of data */  #define MSC_STAT_CRC_WRITE_ERROR_NOSTS	(2 << MSC_STAT_CRC_WRITE_ERROR_BIT) /* No CRC status is sent back */#define MSC_STAT_TIME_OUT_RES		(1 << 1)#define MSC_STAT_TIME_OUT_READ		(1 << 0)/* MSC Bus Clock Control Register (MSC_CLKRT) */#define	MSC_CLKRT_CLK_RATE_BIT		0#define	MSC_CLKRT_CLK_RATE_MASK		(0x7 << MSC_CLKRT_CLK_RATE_BIT)  #define MSC_CLKRT_CLK_RATE_DIV_1	  (0x0 << MSC_CLKRT_CLK_RATE_BIT) /* CLK_SRC */  #define MSC_CLKRT_CLK_RATE_DIV_2	  (0x1 << MSC_CLKRT_CLK_RATE_BIT) /* 1/2 of CLK_SRC */  #define MSC_CLKRT_CLK_RATE_DIV_4	  (0x2 << MSC_CLKRT_CLK_RATE_BIT) /* 1/4 of CLK_SRC */  #define MSC_CLKRT_CLK_RATE_DIV_8	  (0x3 << MSC_CLKRT_CLK_RATE_BIT) /* 1/8 of CLK_SRC */  #define MSC_CLKRT_CLK_RATE_DIV_16	  (0x4 << MSC_CLKRT_CLK_RATE_BIT) /* 1/16 of CLK_SRC */  #define MSC_CLKRT_CLK_RATE_DIV_32	  (0x5 << MSC_CLKRT_CLK_RATE_BIT) /* 1/32 of CLK_SRC */  #define MSC_CLKRT_CLK_RATE_DIV_64	  (0x6 << MSC_CLKRT_CLK_RATE_BIT) /* 1/64 of CLK_SRC */  #define MSC_CLKRT_CLK_RATE_DIV_128	  (0x7 << MSC_CLKRT_CLK_RATE_BIT) /* 1/128 of CLK_SRC *//* MSC Command Sequence Control Register (MSC_CMDAT) */#define	MSC_CMDAT_IO_ABORT		(1 << 11)#define	MSC_CMDAT_BUS_WIDTH_BIT		9#define	MSC_CMDAT_BUS_WIDTH_MASK	(0x3 << MSC_CMDAT_BUS_WIDTH_BIT)  #define MSC_CMDAT_BUS_WIDTH_1BIT	  (0x0 << MSC_CMDAT_BUS_WIDTH_BIT) /* 1-bit data bus */  #define MSC_CMDAT_BUS_WIDTH_4BIT	  (0x2 << MSC_CMDAT_BUS_WIDTH_BIT) /* 4-bit data bus */  #define CMDAT_BUS_WIDTH1	  (0x0 << MSC_CMDAT_BUS_WIDTH_BIT)  #define CMDAT_BUS_WIDTH4	  (0x2 << MSC_CMDAT_BUS_WIDTH_BIT)#define	MSC_CMDAT_DMA_EN		(1 << 8)#define	MSC_CMDAT_INIT			(1 << 7)#define	MSC_CMDAT_BUSY			(1 << 6)#define	MSC_CMDAT_STREAM_BLOCK		(1 << 5)#define	MSC_CMDAT_WRITE_READ		(1 << 4)#define	MSC_CMDAT_DATA_EN		(1 << 3)#define	MSC_CMDAT_RESPONSE_FORMAT_BIT	0#define	MSC_CMDAT_RESPONSE_FORMAT_MASK	(0x7 << MSC_CMDAT_RESPONSE_FORMAT_BIT)  #define MSC_CMDAT_RESPONSE_FORMAT_NONE  (0x0 << MSC_CMDAT_RESPONSE_FORMAT_BIT) /* No response */  #define MSC_CMDAT_RESPONSE_FORMAT_R1	  (0x1 << MSC_CMDAT_RESPONSE_FORMAT_BIT) /* Format R1 and R1b */  #define MSC_CMDAT_RESPONSE_FORMAT_R2	  (0x2 << MSC_CMDAT_RESPONSE_FORMAT_BIT) /* Format R2 */  #define MSC_CMDAT_RESPONSE_FORMAT_R3	  (0x3 << MSC_CMDAT_RESPONSE_FORMAT_BIT) /* Format R3 */  #define MSC_CMDAT_RESPONSE_FORMAT_R4	  (0x4 << MSC_CMDAT_RESPONSE_FORMAT_BIT) /* Format R4 */  #define MSC_CMDAT_RESPONSE_FORMAT_R5	  (0x5 << MSC_CMDAT_RESPONSE_FORMAT_BIT) /* Format R5 */  #define MSC_CMDAT_RESPONSE_FORMAT_R6	  (0x6 << MSC_CMDAT_RESPONSE_FORMAT_BIT) /* Format R6 */#define	CMDAT_DMA_EN	(1 << 8)#define	CMDAT_INIT	(1 << 7)#define	CMDAT_BUSY	(1 << 6)#define	CMDAT_STREAM	(1 << 5)#define	CMDAT_WRITE	(1 << 4)#define	CMDAT_DATA_EN	(1 << 3)/* MSC Interrupts Mask Register (MSC_IMASK) */#define	MSC_IMASK_SDIO			(1 << 7)#define	MSC_IMASK_TXFIFO_WR_REQ		(1 << 6)#define	MSC_IMASK_RXFIFO_RD_REQ		(1 << 5)#define	MSC_IMASK_END_CMD_RES		(1 << 2)#define	MSC_IMASK_PRG_DONE		(1 << 1)#define	MSC_IMASK_DATA_TRAN_DONE	(1 << 0)/* MSC Interrupts Status Register (MSC_IREG) */#define	MSC_IREG_SDIO			(1 << 7)#define	MSC_IREG_TXFIFO_WR_REQ		(1 << 6)#define	MSC_IREG_RXFIFO_RD_REQ		(1 << 5)#define	MSC_IREG_END_CMD_RES		(1 << 2)#define	MSC_IREG_PRG_DONE		(1 << 1)#define	MSC_IREG_DATA_TRAN_DONE		(1 << 0)/************************************************************************* * RTC *************************************************************************/#define RTC_RCR		(RTC_BASE + 0x00)#define RTC_RSR		(RTC_BASE + 0x04)#define RTC_RSAR	(RTC_BASE + 0x08)#define RTC_RGR		(RTC_BASE + 0x0c)#define REG_RTC_RCR	REG32(RTC_RCR)#define REG_RTC_RSR	REG32(RTC_RSR)#define REG_RTC_RSAR	REG32(RTC_RSAR)#define REG_RTC_RGR	REG32(RTC_RGR)#define RTC_RCR_HZ	(1 << 6)#define RTC_RCR_HZIE	(1 << 5)#define RTC_RCR_AF	(1 << 4)#define RTC_RCR_AIE	(1 << 3)#define RTC_RCR_AE	(1 << 2)#define RTC_RCR_START	(1 << 0)#define RTC_RGR_LOCK		(1 << 31)#define RTC_RGR_ADJ_BIT		16#define RTC_RGR_ADJ_MASK	(0x3ff << RTC_RGR_ADJ_BIT)#define RTC_RGR_DIV_BIT		0#define RTC_REG_DIV_MASK	(0xff << RTC_RGR_DIV_BIT)/************************************************************************* * FIR *************************************************************************/#define	FIR_TDR			(FIR_BASE + 0x000)#define	FIR_RDR			(FIR_BASE + 0x004)#define	FIR_TFLR		(FIR_BASE + 0x008)#define	FIR_AR			(FIR_BASE + 0x00C)#define	FIR_CR1			(FIR_BASE + 0x010)#define	FIR_CR2			(FIR_BASE + 0x014)#define	FIR_SR			(FIR_BASE + 0x018)#define	REG_FIR_TDR		REG8(FIR_TDR)#define	REG_FIR_RDR		REG8(FIR_RDR)#define REG_FIR_TFLR		REG16(FIR_TFLR)#define REG_FIR_AR		REG8(FIR_AR)#define	REG_FIR_CR1		REG8(FIR_CR1)#define	REG_FIR_CR2		REG16(FIR_CR2)#define REG_FIR_SR		REG16(FIR_SR)/* FIR Control Register 1 (FIR_CR1) */#define FIR_CR1_FIRUE		(1 << 7)#define FIR_CR1_ACE		(1 << 6)#define FIR_CR1_EOUS		(1 << 5)#define FIR_CR1_TIIE		(1 << 4)#define FIR_CR1_TFIE		(1 << 3)#define FIR_CR1_RFIE		(1 << 2)#define FIR_CR1_TXE		(1 << 1)#define FIR_CR1_RXE		(1 << 0)/* FIR Control Register 2 (FIR_CR2) */#define FIR_CR2_SIPE		(1 << 10)#define FIR_CR2_BCRC		(1 << 9)#define FIR_CR2_TFLRS		(1 << 8)#define FIR_CR2_ISS		(1 << 7)#define FIR_CR2_LMS		(1 << 6)#define FIR_CR2_TPPS		(1 << 5)#define FIR_CR2_RPPS		(1 << 4)#define FIR_CR2_TTRG_BIT	2#define FIR_CR2_TTRG_MASK	(0x3 << FIR_CR2_TTRG_BIT)  #define FIR_CR2_TTRG_16	  (0 << FIR_CR2_TTRG_BIT) /* Transmit Trigger Level is 16 */  #define FIR_CR2_TTRG_32	  (1 << FIR_CR2_TTRG_BIT) /* Transmit Trigger Level is 32 */  #define FIR_CR2_TTRG_64	  (2 << FIR_CR2_TTRG_BIT) /* Transmit Trigger Level is 64 */  #define FIR_CR2_TTRG_128	  (3 << FIR_CR2_TTRG_BIT) /* Transmit Trigger Level is 128 */#define FIR_CR2_RTRG_BIT	0#define FIR_CR2_RTRG_MASK	(0x3 << FIR_CR2_RTRG_BIT)  #define FIR_CR2_RTRG_16	  (0 << FIR_CR2_RTRG_BIT) /* Receive Trigger Level is 16 */  #define FIR_CR2_RTRG_32	  (1 << FIR_CR2_RTRG_BIT) /* Receive Trigger Level is 32 */  #define FIR_CR2_RTRG_64	  (2 << FIR_CR2_RTRG_BIT) /* Receive Trigger Level is 64 */  #define FIR_CR2_RTRG_128	  (3 << FIR_CR2_RTRG_BIT) /* Receive Trigger Level is 128 *//* FIR Status Register (FIR_SR) */#define FIR_SR_RFW		(1 << 12)#define FIR_SR_RFA		(1 << 11)#define FIR_SR_TFRTL		(1 << 10)#define FIR_SR_RFRTL		(1 << 9)#define FIR_SR_URUN		(1 << 8)#define FIR_SR_RFTE		(1 << 7)#define FIR_SR_ORUN		(1 << 6)#define FIR_SR_CRCE		(1 << 5)#define FIR_SR_FEND		(1 << 4)#define FIR_SR_TFF		(1 << 3)#define FIR_SR_RFE		(1 << 2)#define FIR_SR_TIDLE		(1 << 1)#define FIR_SR_RB		(1 << 0)/************************************************************************* * SCC *************************************************************************/#define	SCC_DR(base)		((base) + 0x000)#define	SCC_FDR(base)		((base) + 0x004)#define	SCC_CR(base)		((base) + 0x008)#define	SCC_SR(base)		((base) + 0x00C)#define	SCC_TFR(base)		((base) + 0x010)#define	SCC_EGTR(base)		((base) + 0x014)#define	SCC_ECR(base)		((base) + 0x018)#define	SCC_RTOR(base)		((base) + 0x01C)#define REG_SCC_DR(base)	REG8(SCC_DR(base))#define REG_SCC_FDR(base)	REG8(SCC_FDR(base))#define REG_SCC_CR(base)	REG32(SCC_CR(base))#define REG_SCC_SR(base)	REG16(SCC_SR(base))#define REG_SCC_TFR(base)	REG16(SCC_TFR(base))#define REG_SCC_EGTR(base)	REG8(SCC_EGTR(base))#define REG_SCC_ECR(base)	REG32(SCC_ECR(base))#define REG_SCC_RTOR(base)	REG8(SCC_RTOR(base))/* SCC FIFO Data Count Register (SCC_FDR) */#define SCC_FDR_EMPTY		0x00#define SCC_FDR_FULL		0x10/* SCC Control Register (SCC_CR) */#define SCC_CR_SCCE		(1 << 31)#define SCC_CR_TRS		(1 << 30)#define SCC_CR_T2R		(1 << 29)#define SCC_CR_FDIV_BIT		24#define SCC_CR_FDIV_MASK	(0x3 << SCC_CR_FDIV_BIT)  #define SCC_CR_FDIV_1		  (0 << SCC_CR_FDIV_BIT) /* SCC_CLK frequency is the same as device clock */  #define SCC_CR_FDIV_2		  (1 << SCC_CR_FDIV_BIT) /* SCC_CLK frequency is half of device clock */#define SCC_CR_FLUSH		(1 << 23)#define SCC_CR_TRIG_BIT		16#define SCC_CR_TRIG_MASK	(0x3 << SCC_CR_TRIG_BIT)  #define SCC_CR_TRIG_1		  (0 << SCC_CR_TRIG_BIT) /* Receive/Transmit-FIFO Trigger is 1 */  #define SCC_CR_TRIG_4		  (1 << SCC_CR_TRIG_BIT) /* Receive/Transmit-FIFO Trigger is 4 */  #define SCC_CR_TRIG_8		  (2 << SCC_CR_TRIG_BIT) /* Receive/Transmit-FIFO Trigger is 8 */  #define SCC_CR_TRIG_14	  (3 << SCC_CR_TRIG_BIT) /* Receive/Transmit-FIFO Trigger is 14 */#define SCC_CR_TP		(1 << 15)#define SCC_CR_CONV		(1 << 14)#define SCC_CR_TXIE		(1 << 13)#define SCC_CR_RXIE		(1 << 12)#define SCC_CR_TENDIE		(1 << 11)#define SCC_CR_RTOIE		(1 << 10)#define SCC_CR_ECIE		(1 << 9)

⌨️ 快捷键说明

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