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

📄 jz4740.h

📁 nand flash烧写源代码
💻 H
📖 第 1 页 / 共 5 页
字号:
/* * Include file for Ingenic Semiconductor's JZ4740 CPU. */#ifndef __JZ4740_H__#define __JZ4740_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 *///----------------------------------------------------------------------// Boot ROM Specification///* NOR Boot config */#define JZ4740_NORBOOT_8BIT	0x00000000	/* 8-bit data bus flash */#define JZ4740_NORBOOT_16BIT	0x10101010	/* 16-bit data bus flash */#define JZ4740_NORBOOT_32BIT	0x20202020	/* 32-bit data bus flash *//* NAND Boot config */#define JZ4740_NANDBOOT_B8R3	0xffffffff	/* 8-bit bus & 3 row cycles */#define JZ4740_NANDBOOT_B8R2	0xf0f0f0f0	/* 8-bit bus & 2 row cycles */#define JZ4740_NANDBOOT_B16R3	0x0f0f0f0f	/* 16-bit bus & 3 row cycles */#define JZ4740_NANDBOOT_B16R2	0x00000000	/* 16-bit bus & 2 row cycles *///----------------------------------------------------------------------// Register Definitions//#define	CPM_BASE	0xB0000000#define	INTC_BASE	0xB0001000#define	TCU_BASE	0xB0002000#define	WDT_BASE	0xB0002000#define	RTC_BASE	0xB0003000//#define	GPIO_BASE	0xB0010000#define	AIC_BASE	0xB0020000#define	ICDC_BASE	0xB0020000#define	MSC_BASE	0xB0021000#define	UART0_BASE	0xB0030000#define	I2C_BASE	0xB0042000#define	SSI_BASE	0xB0043000#define	SADC_BASE	0xB0070000//#define	EMC_BASE	0xB3010000#define	DMAC_BASE	0xB3020000#define	UHC_BASE	0xB3030000#define	UDC_BASE	0xB3040000#define	LCD_BASE	0xB3050000#define	SLCD_BASE	0xB3050000#define	CIM_BASE	0xB3060000#define	ETH_BASE	0xB3100000/************************************************************************* * INTC (Interrupt Controller) *************************************************************************/#define INTC_ISR	(INTC_BASE + 0x00)#define INTC_IMR	(INTC_BASE + 0x04)#define INTC_IMSR	(INTC_BASE + 0x08)#define INTC_IMCR	(INTC_BASE + 0x0c)#define INTC_IPR	(INTC_BASE + 0x10)#define REG_INTC_ISR	REG32(INTC_ISR)#define REG_INTC_IMR	REG32(INTC_IMR)#define REG_INTC_IMSR	REG32(INTC_IMSR)#define REG_INTC_IMCR	REG32(INTC_IMCR)#define REG_INTC_IPR	REG32(INTC_IPR)// 1st-level interrupts#define IRQ_I2C		1#define IRQ_UHC		3#define IRQ_UART0	9#define IRQ_SADC	12#define IRQ_MSC		14#define IRQ_RTC		15#define IRQ_SSI		16#define IRQ_CIM		17#define IRQ_AIC		18#define IRQ_ETH		19#define IRQ_DMAC	20#define IRQ_TCU2	21#define IRQ_TCU1	22#define IRQ_TCU0	23#define IRQ_UDC 	24#define IRQ_GPIO3	25#define IRQ_GPIO2	26#define IRQ_GPIO1	27#define IRQ_GPIO0	28#define IRQ_IPU		29#define IRQ_LCD		30// 2nd-level interrupts#define IRQ_DMA_0	32  /* 32 to 37 for DMAC channel 0 to 5 */#define IRQ_GPIO_0	48  /* 48 to 175 for GPIO pin 0 to 127 *//************************************************************************* * RTC *************************************************************************/#define RTC_RCR		(RTC_BASE + 0x00) /* RTC Control Register */#define RTC_RSR		(RTC_BASE + 0x04) /* RTC Second Register */#define RTC_RSAR	(RTC_BASE + 0x08) /* RTC Second Alarm Register */#define RTC_RGR		(RTC_BASE + 0x0c) /* RTC Regulator Register */#define RTC_HCR		(RTC_BASE + 0x20) /* Hibernate Control Register */#define RTC_HWFCR	(RTC_BASE + 0x24) /* Hibernate Wakeup Filter Counter Reg */#define RTC_HRCR	(RTC_BASE + 0x28) /* Hibernate Reset Counter Register */#define RTC_HWCR	(RTC_BASE + 0x2c) /* Hibernate Wakeup Control Register */#define RTC_HWSR	(RTC_BASE + 0x30) /* Hibernate Wakeup Status Register */#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 REG_RTC_HCR	REG32(RTC_HCR)#define REG_RTC_HWFCR	REG32(RTC_HWFCR)#define REG_RTC_HRCR	REG32(RTC_HRCR)#define REG_RTC_HWCR	REG32(RTC_HWCR)#define REG_RTC_HWSR	REG32(RTC_HWSR)/* RTC Control Register */#define RTC_RCR_WRDY	(1 << 7)  /* Write Ready Flag */#define RTC_RCR_HZ	(1 << 6)  /* 1Hz Flag */#define RTC_RCR_HZIE	(1 << 5)  /* 1Hz Interrupt Enable */#define RTC_RCR_AF	(1 << 4)  /* Alarm Flag */#define RTC_RCR_AIE	(1 << 3)  /* Alarm Interrupt Enable */#define RTC_RCR_AE	(1 << 2)  /* Alarm Enable */#define RTC_RCR_RTCE	(1 << 0)  /* RTC Enable *//* RTC Regulator Register */#define RTC_RGR_LOCK		(1 << 31) /* Lock Bit */#define RTC_RGR_ADJC_BIT	16#define RTC_RGR_ADJC_MASK	(0x3ff << RTC_RGR_ADJC_BIT)#define RTC_RGR_NC1HZ_BIT	0#define RTC_REG_NC1HZ_MASK	(0xffff << RTC_RGR_NC1HZ_BIT)/* Hibernate Control Register */#define RTC_HCR_PD		(1 << 0)  /* Power Down *//* Hibernate Wakeup Filter Counter Register */#define RTC_HWFCR_BIT		5#define RTC_HWFCR_MASK		(0x7ff << RTC_HWFCR_BIT)/* Hibernate Reset Counter Register */#define RTC_HRCR_BIT		5#define RTC_HRCR_MASK		(0x7f << RTC_HRCR_BIT)/* Hibernate Wakeup Control Register */#define RTC_HWCR_WL		(1 << 2)  /* Wakeup pin level: 0-low 1-high */#define RTC_HWCR_EPIN		(1 << 1)  /* Wakeup pin wakeup enable */#define RTC_HWCR_EALM		(1 << 0)  /* RTC alarm wakeup enable *//* Hibernate Wakeup Status Register */#define RTC_HWSR_HR		(1 << 5)  /* Hibernate reset */#define RTC_HWSR_POR		(1 << 4)  /* POR reset */#define RTC_HWSR_PIN		(1 << 1)  /* Wakeup pin status bit */#define RTC_HWSR_ALM		(1 << 0)  /* RTC alarm status bit *//************************************************************************* * CPM (Clock reset and Power control Management) *************************************************************************/#define CPM_CPCCR	(CPM_BASE+0x00)#define CPM_CPPCR	(CPM_BASE+0x10)#define CPM_I2SCDR	(CPM_BASE+0x60)#define CPM_LPCDR	(CPM_BASE+0x64)#define CPM_MSCCDR	(CPM_BASE+0x68)#define CPM_UHCCDR	(CPM_BASE+0x6C)#define CPM_LCR		(CPM_BASE+0x04)#define CPM_CLKGR	(CPM_BASE+0x20)#define CPM_SCR		(CPM_BASE+0x24)#define CPM_HCR		(CPM_BASE+0x30)#define CPM_HWFCR	(CPM_BASE+0x34)#define CPM_HRCR	(CPM_BASE+0x38)#define CPM_HWCR	(CPM_BASE+0x3c)#define CPM_HWSR	(CPM_BASE+0x40)#define CPM_HSPR	(CPM_BASE+0x44)#define CPM_RSR		(CPM_BASE+0x08)#define REG_CPM_CPCCR	REG32(CPM_CPCCR)#define REG_CPM_CPPCR	REG32(CPM_CPPCR)#define REG_CPM_I2SCDR	REG32(CPM_I2SCDR)#define REG_CPM_LPCDR	REG32(CPM_LPCDR)#define REG_CPM_MSCCDR	REG32(CPM_MSCCDR)#define REG_CPM_UHCCDR	REG32(CPM_UHCCDR)#define REG_CPM_LCR	REG32(CPM_LCR)#define REG_CPM_CLKGR	REG32(CPM_CLKGR)#define REG_CPM_SCR	REG32(CPM_SCR)#define REG_CPM_HCR	REG32(CPM_HCR)#define REG_CPM_HWFCR	REG32(CPM_HWFCR)#define REG_CPM_HRCR	REG32(CPM_HRCR)#define REG_CPM_HWCR	REG32(CPM_HWCR)#define REG_CPM_HWSR	REG32(CPM_HWSR)#define REG_CPM_HSPR	REG32(CPM_HSPR)#define REG_CPM_RSR	REG32(CPM_RSR)/* Clock Control Register */#define CPM_CPCCR_I2CS		(1 << 31)#define CPM_CPCCR_CLKOEN	(1 << 30)#define CPM_CPCCR_UCS		(1 << 29)#define CPM_CPCCR_UDIV_BIT	23#define CPM_CPCCR_UDIV_MASK	(0x3f << CPM_CPCCR_UDIV_BIT)#define CPM_CPCCR_CE		(1 << 22)#define CPM_CPCCR_PCS		(1 << 21)#define CPM_CPCCR_LDIV_BIT	16#define CPM_CPCCR_LDIV_MASK	(0x1f << CPM_CPCCR_LDIV_BIT)#define CPM_CPCCR_MDIV_BIT	12#define CPM_CPCCR_MDIV_MASK	(0x0f << CPM_CPCCR_MDIV_BIT)#define CPM_CPCCR_PDIV_BIT	8#define CPM_CPCCR_PDIV_MASK	(0x0f << CPM_CPCCR_PDIV_BIT)#define CPM_CPCCR_HDIV_BIT	4#define CPM_CPCCR_HDIV_MASK	(0x0f << CPM_CPCCR_HDIV_BIT)#define CPM_CPCCR_CDIV_BIT	0#define CPM_CPCCR_CDIV_MASK	(0x0f << CPM_CPCCR_CDIV_BIT)/* I2S Clock Divider Register */#define CPM_I2SCDR_I2SDIV_BIT	0#define CPM_I2SCDR_I2SDIV_MASK	(0x1ff << CPM_I2SCDR_I2SDIV_BIT)/* LCD Pixel Clock Divider Register */#define CPM_LPCDR_PIXDIV_BIT	0#define CPM_LPCDR_PIXDIV_MASK	(0x1ff << CPM_LPCDR_PIXDIV_BIT)/* MSC Clock Divider Register */#define CPM_MSCCDR_MSCDIV_BIT	0#define CPM_MSCCDR_MSCDIV_MASK	(0x1f << CPM_MSCCDR_MSCDIV_BIT)/* PLL Control Register */#define CPM_CPPCR_PLLM_BIT	23#define CPM_CPPCR_PLLM_MASK	(0x1ff << CPM_CPPCR_PLLM_BIT)#define CPM_CPPCR_PLLN_BIT	18#define CPM_CPPCR_PLLN_MASK	(0x1f << CPM_CPPCR_PLLN_BIT)#define CPM_CPPCR_PLLOD_BIT	16#define CPM_CPPCR_PLLOD_MASK	(0x03 << CPM_CPPCR_PLLOD_BIT)#define CPM_CPPCR_PLLS		(1 << 10)#define CPM_CPPCR_PLLBP		(1 << 9)#define CPM_CPPCR_PLLEN		(1 << 8)#define CPM_CPPCR_PLLST_BIT	0#define CPM_CPPCR_PLLST_MASK	(0xff << CPM_CPPCR_PLLST_BIT)/* Low Power Control Register */#define CPM_LCR_DOZE_DUTY_BIT 	3#define CPM_LCR_DOZE_DUTY_MASK 	(0x1f << CPM_LCR_DOZE_DUTY_BIT)#define CPM_LCR_DOZE_ON		(1 << 2)#define CPM_LCR_LPM_BIT		0#define CPM_LCR_LPM_MASK	(0x3 << CPM_LCR_LPM_BIT)  #define CPM_LCR_LPM_IDLE	(0x0 << CPM_LCR_LPM_BIT)  #define CPM_LCR_LPM_SLEEP	(0x1 << CPM_LCR_LPM_BIT)/* Clock Gate Register */#define CPM_CLKGR_UART1		(1 << 15)#define CPM_CLKGR_UHC		(1 << 14)#define CPM_CLKGR_IPU		(1 << 13)#define CPM_CLKGR_DMAC		(1 << 12)#define CPM_CLKGR_UDC		(1 << 11)#define CPM_CLKGR_LCD		(1 << 10)#define CPM_CLKGR_CIM		(1 << 9)#define CPM_CLKGR_SADC		(1 << 8)#define CPM_CLKGR_MSC		(1 << 7)#define CPM_CLKGR_AIC1		(1 << 6)#define CPM_CLKGR_AIC2		(1 << 5)#define CPM_CLKGR_SSI		(1 << 4)#define CPM_CLKGR_I2C		(1 << 3)#define CPM_CLKGR_RTC		(1 << 2)#define CPM_CLKGR_TCU		(1 << 1)#define CPM_CLKGR_UART0		(1 << 0)/* Sleep Control Register */#define CPM_SCR_O1ST_BIT	8#define CPM_SCR_O1ST_MASK	(0xff << CPM_SCR_O1ST_BIT)#define CPM_SCR_USBPHY_ENABLE	(1 << 6)#define CPM_SCR_OSC_ENABLE	(1 << 4)/* Hibernate Control Register */#define CPM_HCR_PD		(1 << 0)/* Wakeup Filter Counter Register in Hibernate Mode */#define CPM_HWFCR_TIME_BIT	0#define CPM_HWFCR_TIME_MASK	(0x3ff << CPM_HWFCR_TIME_BIT)/* Reset Counter Register in Hibernate Mode */#define CPM_HRCR_TIME_BIT	0#define CPM_HRCR_TIME_MASK	(0x7f << CPM_HRCR_TIME_BIT)/* Wakeup Control Register in Hibernate Mode */

⌨️ 快捷键说明

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