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

📄 jz4740.h

📁 mips cpu 君正4730 4740的 ucosii 源码 包括系统 摄像头 网络 文件系统等等测试
💻 H
📖 第 1 页 / 共 5 页
字号:
// Register definition#define WDT_TCSR_PRESCALE_BIT	3#define WDT_TCSR_PRESCALE_MASK	(0x7 << WDT_TCSR_PRESCALE_BIT)  #define WDT_TCSR_PRESCALE1	(0x0 << WDT_TCSR_PRESCALE_BIT)  #define WDT_TCSR_PRESCALE4	(0x1 << WDT_TCSR_PRESCALE_BIT)  #define WDT_TCSR_PRESCALE16	(0x2 << WDT_TCSR_PRESCALE_BIT)  #define WDT_TCSR_PRESCALE64	(0x3 << WDT_TCSR_PRESCALE_BIT)  #define WDT_TCSR_PRESCALE256	(0x4 << WDT_TCSR_PRESCALE_BIT)  #define WDT_TCSR_PRESCALE1024	(0x5 << WDT_TCSR_PRESCALE_BIT)#define WDT_TCSR_EXT_EN		(1 << 2)#define WDT_TCSR_RTC_EN		(1 << 1)#define WDT_TCSR_PCK_EN		(1 << 0)#define WDT_TCER_TCEN		(1 << 0)/************************************************************************* * DMAC (DMA Controller) *************************************************************************/#define MAX_DMA_NUM	6  /* max 6 channels */#define DMAC_DSAR(n)	(DMAC_BASE + (0x00 + (n) * 0x20)) /* DMA source address */#define DMAC_DTAR(n)	(DMAC_BASE + (0x04 + (n) * 0x20)) /* DMA target address */#define DMAC_DTCR(n)	(DMAC_BASE + (0x08 + (n) * 0x20)) /* DMA transfer count */#define DMAC_DRSR(n)	(DMAC_BASE + (0x0c + (n) * 0x20)) /* DMA request source */#define DMAC_DCCSR(n)	(DMAC_BASE + (0x10 + (n) * 0x20)) /* DMA control/status */#define DMAC_DCMD(n)	(DMAC_BASE + (0x14 + (n) * 0x20)) /* DMA command */#define DMAC_DDA(n)	(DMAC_BASE + (0x18 + (n) * 0x20)) /* DMA descriptor address */#define DMAC_DMACR	(DMAC_BASE + 0x0300)              /* DMA control register */#define DMAC_DMAIPR	(DMAC_BASE + 0x0304)              /* DMA interrupt pending */#define DMAC_DMADBR	(DMAC_BASE + 0x0308)              /* DMA doorbell */#define DMAC_DMADBSR	(DMAC_BASE + 0x030C)              /* DMA doorbell set */// channel 0#define DMAC_DSAR0      DMAC_DSAR(0)#define DMAC_DTAR0      DMAC_DTAR(0)#define DMAC_DTCR0      DMAC_DTCR(0)#define DMAC_DRSR0      DMAC_DRSR(0)#define DMAC_DCCSR0     DMAC_DCCSR(0)#define DMAC_DCMD0	DMAC_DCMD(0)#define DMAC_DDA0	DMAC_DDA(0)// channel 1#define DMAC_DSAR1      DMAC_DSAR(1)#define DMAC_DTAR1      DMAC_DTAR(1)#define DMAC_DTCR1      DMAC_DTCR(1)#define DMAC_DRSR1      DMAC_DRSR(1)#define DMAC_DCCSR1     DMAC_DCCSR(1)#define DMAC_DCMD1	DMAC_DCMD(1)#define DMAC_DDA1	DMAC_DDA(1)// channel 2#define DMAC_DSAR2      DMAC_DSAR(2)#define DMAC_DTAR2      DMAC_DTAR(2)#define DMAC_DTCR2      DMAC_DTCR(2)#define DMAC_DRSR2      DMAC_DRSR(2)#define DMAC_DCCSR2     DMAC_DCCSR(2)#define DMAC_DCMD2	DMAC_DCMD(2)#define DMAC_DDA2	DMAC_DDA(2)// channel 3#define DMAC_DSAR3      DMAC_DSAR(3)#define DMAC_DTAR3      DMAC_DTAR(3)#define DMAC_DTCR3      DMAC_DTCR(3)#define DMAC_DRSR3      DMAC_DRSR(3)#define DMAC_DCCSR3     DMAC_DCCSR(3)#define DMAC_DCMD3	DMAC_DCMD(3)#define DMAC_DDA3	DMAC_DDA(3)// channel 4#define DMAC_DSAR4      DMAC_DSAR(4)#define DMAC_DTAR4      DMAC_DTAR(4)#define DMAC_DTCR4      DMAC_DTCR(4)#define DMAC_DRSR4      DMAC_DRSR(4)#define DMAC_DCCSR4     DMAC_DCCSR(4)#define DMAC_DCMD4	DMAC_DCMD(4)#define DMAC_DDA4	DMAC_DDA(4)// channel 5#define DMAC_DSAR5      DMAC_DSAR(5)#define DMAC_DTAR5      DMAC_DTAR(5)#define DMAC_DTCR5      DMAC_DTCR(5)#define DMAC_DRSR5      DMAC_DRSR(5)#define DMAC_DCCSR5     DMAC_DCCSR(5)#define DMAC_DCMD5	DMAC_DCMD(5)#define DMAC_DDA5	DMAC_DDA(5)#define REG_DMAC_DSAR(n)	REG32(DMAC_DSAR((n)))#define REG_DMAC_DTAR(n)	REG32(DMAC_DTAR((n)))#define REG_DMAC_DTCR(n)	REG32(DMAC_DTCR((n)))#define REG_DMAC_DRSR(n)	REG32(DMAC_DRSR((n)))#define REG_DMAC_DCCSR(n)	REG32(DMAC_DCCSR((n)))#define REG_DMAC_DCMD(n)	REG32(DMAC_DCMD((n)))#define REG_DMAC_DDA(n)		REG32(DMAC_DDA((n)))#define REG_DMAC_DMACR		REG32(DMAC_DMACR)#define REG_DMAC_DMAIPR		REG32(DMAC_DMAIPR)#define REG_DMAC_DMADBR		REG32(DMAC_DMADBR)#define REG_DMAC_DMADBSR	REG32(DMAC_DMADBSR)// DMA request source register#define DMAC_DRSR_RS_BIT	0#define DMAC_DRSR_RS_MASK	(0x1f << DMAC_DRSR_RS_BIT)  #define DMAC_DRSR_RS_AUTO	(8 << DMAC_DRSR_RS_BIT)  #define DMAC_DRSR_RS_UART0OUT	(20 << DMAC_DRSR_RS_BIT)  #define DMAC_DRSR_RS_UART0IN	(21 << DMAC_DRSR_RS_BIT)  #define DMAC_DRSR_RS_SSIOUT	(22 << DMAC_DRSR_RS_BIT)  #define DMAC_DRSR_RS_SSIIN	(23 << DMAC_DRSR_RS_BIT)  #define DMAC_DRSR_RS_AICOUT	(24 << DMAC_DRSR_RS_BIT)  #define DMAC_DRSR_RS_AICIN	(25 << DMAC_DRSR_RS_BIT)  #define DMAC_DRSR_RS_MSCOUT	(26 << DMAC_DRSR_RS_BIT)  #define DMAC_DRSR_RS_MSCIN	(27 << DMAC_DRSR_RS_BIT)  #define DMAC_DRSR_RS_TCU	(28 << DMAC_DRSR_RS_BIT)  #define DMAC_DRSR_RS_SADC	(29 << DMAC_DRSR_RS_BIT)  #define DMAC_DRSR_RS_SLCD	(30 << DMAC_DRSR_RS_BIT)// DMA channel control/status register#define DMAC_DCCSR_NDES		(1 << 31) /* descriptor (0) or not (1) ? */#define DMAC_DCCSR_CDOA_BIT	16        /* copy of DMA offset address */#define DMAC_DCCSR_CDOA_MASK	(0xff << DMAC_DCCSR_CDOA_BIT)#define DMAC_DCCSR_INV		(1 << 6)  /* descriptor invalid */#define DMAC_DCCSR_AR		(1 << 4)  /* address error */#define DMAC_DCCSR_TT		(1 << 3)  /* transfer terminated */#define DMAC_DCCSR_HLT		(1 << 2)  /* DMA halted */#define DMAC_DCCSR_CT		(1 << 1)  /* count terminated */#define DMAC_DCCSR_EN		(1 << 0)  /* channel enable bit */// DMA channel command register #define DMAC_DCMD_SAI		(1 << 23) /* source address increment */#define DMAC_DCMD_DAI		(1 << 22) /* dest address increment */#define DMAC_DCMD_RDIL_BIT	16        /* request detection interval length */#define DMAC_DCMD_RDIL_MASK	(0x0f << DMAC_DCMD_RDIL_BIT)  #define DMAC_DCMD_RDIL_IGN	(0 << DMAC_DCMD_RDIL_BIT)  #define DMAC_DCMD_RDIL_2	(1 << DMAC_DCMD_RDIL_BIT)  #define DMAC_DCMD_RDIL_4	(2 << DMAC_DCMD_RDIL_BIT)  #define DMAC_DCMD_RDIL_8	(3 << DMAC_DCMD_RDIL_BIT)  #define DMAC_DCMD_RDIL_12	(4 << DMAC_DCMD_RDIL_BIT)  #define DMAC_DCMD_RDIL_16	(5 << DMAC_DCMD_RDIL_BIT)  #define DMAC_DCMD_RDIL_20	(6 << DMAC_DCMD_RDIL_BIT)  #define DMAC_DCMD_RDIL_24	(7 << DMAC_DCMD_RDIL_BIT)  #define DMAC_DCMD_RDIL_28	(8 << DMAC_DCMD_RDIL_BIT)  #define DMAC_DCMD_RDIL_32	(9 << DMAC_DCMD_RDIL_BIT)  #define DMAC_DCMD_RDIL_48	(10 << DMAC_DCMD_RDIL_BIT)  #define DMAC_DCMD_RDIL_60	(11 << DMAC_DCMD_RDIL_BIT)  #define DMAC_DCMD_RDIL_64	(12 << DMAC_DCMD_RDIL_BIT)  #define DMAC_DCMD_RDIL_124	(13 << DMAC_DCMD_RDIL_BIT)  #define DMAC_DCMD_RDIL_128	(14 << DMAC_DCMD_RDIL_BIT)  #define DMAC_DCMD_RDIL_200	(15 << DMAC_DCMD_RDIL_BIT)#define DMAC_DCMD_SWDH_BIT	14  /* source port width */#define DMAC_DCMD_SWDH_MASK	(0x03 << DMAC_DCMD_SWDH_BIT)  #define DMAC_DCMD_SWDH_32	(0 << DMAC_DCMD_SWDH_BIT)  #define DMAC_DCMD_SWDH_8	(1 << DMAC_DCMD_SWDH_BIT)  #define DMAC_DCMD_SWDH_16	(2 << DMAC_DCMD_SWDH_BIT)#define DMAC_DCMD_DWDH_BIT	12  /* dest port width */#define DMAC_DCMD_DWDH_MASK	(0x03 << DMAC_DCMD_DWDH_BIT)  #define DMAC_DCMD_DWDH_32	(0 << DMAC_DCMD_DWDH_BIT)  #define DMAC_DCMD_DWDH_8	(1 << DMAC_DCMD_DWDH_BIT)  #define DMAC_DCMD_DWDH_16	(2 << DMAC_DCMD_DWDH_BIT)#define DMAC_DCMD_DS_BIT	8  /* transfer data size of a data unit */#define DMAC_DCMD_DS_MASK	(0x07 << DMAC_DCMD_DS_BIT)  #define DMAC_DCMD_DS_32BIT	(0 << DMAC_DCMD_DS_BIT)  #define DMAC_DCMD_DS_8BIT	(1 << DMAC_DCMD_DS_BIT)  #define DMAC_DCMD_DS_16BIT	(2 << DMAC_DCMD_DS_BIT)  #define DMAC_DCMD_DS_16BYTE	(3 << DMAC_DCMD_DS_BIT)  #define DMAC_DCMD_DS_32BYTE	(4 << DMAC_DCMD_DS_BIT)#define DMAC_DCMD_TM		(1 << 7)  /* transfer mode: 0-single 1-block */#define DMAC_DCMD_DES_V		(1 << 4)  /* descriptor valid flag */#define DMAC_DCMD_DES_VM	(1 << 3)  /* descriptor valid mask: 1:support V-bit */#define DMAC_DCMD_DES_VIE	(1 << 2)  /* DMA valid error interrupt enable */#define DMAC_DCMD_TIE		(1 << 1)  /* DMA transfer interrupt enable */#define DMAC_DCMD_LINK		(1 << 0)  /* descriptor link enable */// DMA descriptor address register#define DMAC_DDA_BASE_BIT	12  /* descriptor base address */#define DMAC_DDA_BASE_MASK	(0x0fffff << DMAC_DDA_BASE_BIT)#define DMAC_DDA_OFFSET_BIT	4  /* descriptor offset address */#define DMAC_DDA_OFFSET_MASK	(0x0ff << DMAC_DDA_OFFSET_BIT)// DMA control register#define DMAC_DMACR_PR_BIT	8  /* channel priority mode */#define DMAC_DMACR_PR_MASK	(0x03 << DMAC_DMACR_PR_BIT)  #define DMAC_DMACR_PR_012345	(0 << DMAC_DMACR_PR_BIT)  #define DMAC_DMACR_PR_023145	(1 << DMAC_DMACR_PR_BIT)  #define DMAC_DMACR_PR_201345	(2 << DMAC_DMACR_PR_BIT)  #define DMAC_DMACR_PR_RR	(3 << DMAC_DMACR_PR_BIT) /* round robin */#define DMAC_DMACR_HLT		(1 << 3)  /* DMA halt flag */#define DMAC_DMACR_AR		(1 << 2)  /* address error flag */#define DMAC_DMACR_DMAE		(1 << 0)  /* DMA enable bit */// DMA doorbell register#define DMAC_DMADBR_DB5		(1 << 5)  /* doorbell for channel 5 */#define DMAC_DMADBR_DB4		(1 << 5)  /* doorbell for channel 4 */#define DMAC_DMADBR_DB3		(1 << 5)  /* doorbell for channel 3 */#define DMAC_DMADBR_DB2		(1 << 5)  /* doorbell for channel 2 */#define DMAC_DMADBR_DB1		(1 << 5)  /* doorbell for channel 1 */#define DMAC_DMADBR_DB0		(1 << 5)  /* doorbell for channel 0 */// DMA doorbell set register#define DMAC_DMADBSR_DBS5	(1 << 5)  /* enable doorbell for channel 5 */#define DMAC_DMADBSR_DBS4	(1 << 5)  /* enable doorbell for channel 4 */#define DMAC_DMADBSR_DBS3	(1 << 5)  /* enable doorbell for channel 3 */#define DMAC_DMADBSR_DBS2	(1 << 5)  /* enable doorbell for channel 2 */#define DMAC_DMADBSR_DBS1	(1 << 5)  /* enable doorbell for channel 1 */#define DMAC_DMADBSR_DBS0	(1 << 5)  /* enable doorbell for channel 0 */// DMA interrupt pending register#define DMAC_DMAIPR_CIRQ5	(1 << 5)  /* irq pending status for channel 5 */#define DMAC_DMAIPR_CIRQ4	(1 << 4)  /* irq pending status for channel 4 */#define DMAC_DMAIPR_CIRQ3	(1 << 3)  /* irq pending status for channel 3 */#define DMAC_DMAIPR_CIRQ2	(1 << 2)  /* irq pending status for channel 2 */#define DMAC_DMAIPR_CIRQ1	(1 << 1)  /* irq pending status for channel 1 */#define DMAC_DMAIPR_CIRQ0	(1 << 0)  /* irq pending status for channel 0 *//************************************************************************* * GPIO (General-Purpose I/O Ports) *************************************************************************/#define MAX_GPIO_NUM	128//n = 0,1,2,3#define GPIO_PXPIN(n)	(GPIO_BASE + (0x00 + (n)*0x100)) /* PIN Level Register */#define GPIO_PXDAT(n)	(GPIO_BASE + (0x10 + (n)*0x100)) /* Port Data Register */#define GPIO_PXDATS(n)	(GPIO_BASE + (0x14 + (n)*0x100)) /* Port Data Set Register */#define GPIO_PXDATC(n)	(GPIO_BASE + (0x18 + (n)*0x100)) /* Port Data Clear Register */#define GPIO_PXIM(n)	(GPIO_BASE + (0x20 + (n)*0x100)) /* Interrupt Mask Register */#define GPIO_PXIMS(n)	(GPIO_BASE + (0x24 + (n)*0x100)) /* Interrupt Mask Set Reg */#define GPIO_PXIMC(n)	(GPIO_BASE + (0x28 + (n)*0x100)) /* Interrupt Mask Clear Reg */#define GPIO_PXPE(n)	(GPIO_BASE + (0x30 + (n)*0x100)) /* Pull Enable Register */#define GPIO_PXPES(n)	(GPIO_BASE + (0x34 + (n)*0x100)) /* Pull Enable Set Reg. */#define GPIO_PXPEC(n)	(GPIO_BASE + (0x38 + (n)*0x100)) /* Pull Enable Clear Reg. */#define GPIO_PXFUN(n)	(GPIO_BASE + (0x40 + (n)*0x100)) /* Function Register */#define GPIO_PXFUNS(n)	(GPIO_BASE + (0x44 + (n)*0x100)) /* Function Set Register */#define GPIO_PXFUNC(n)	(GPIO_BASE + (0x48 + (n)*0x100)) /* Function Clear Register */#define GPIO_PXSEL(n)	(GPIO_BASE + (0x50 + (n)*0x100)) /* Select Register */#define GPIO_PXSELS(n)	(GPIO_BASE + (0x54 + (n)*0x100)) /* Select Set Register */#define GPIO_PXSELC(n)	(GPIO_BASE + (0x58 + (n)*0x100)) /* Select Clear Register */#define GPIO_PXDIR(n)	(GPIO_BASE + (0x60 + (n)*0x100)) /* Direction Register */#define GPIO_PXDIRS(n)	(GPIO_BASE + (0x64 + (n)*0x100)) /* Direction Set Register */#define GPIO_PXDIRC(n)	(GPIO_BASE + (0x68 + (n)*0x100)) /* Direction Clear Register */#define GPIO_PXTRG(n)	(GPIO_BASE + (0x70 + (n)*0x100)) /* Trigger Register */#define GPIO_PXTRGS(n)	(GPIO_BASE + (0x74 + (n)*0x100)) /* Trigger Set Register */#define GPIO_PXTRGC(n)	(GPIO_BASE + (0x78 + (n)*0x100)) /* Trigger Set Register */#define GPIO_PXFLG(n)	(GPIO_BASE + (0x80 + (n)*0x100)) /* Port Flag Register */#define REG_GPIO_PXPIN(n)	REG32(GPIO_PXPIN((n)))  /* PIN level */#define REG_GPIO_PXDAT(n)	REG32(GPIO_PXDAT((n)))  /* 1: interrupt pending */#define REG_GPIO_PXDATS(n)	REG32(GPIO_PXDATS((n)))#define REG_GPIO_PXDATC(n)	REG32(GPIO_PXDATC((n)))#define REG_GPIO_PXIM(n)	REG32(GPIO_PXIM((n)))   /* 1: mask pin interrupt */#define REG_GPIO_PXIMS(n)	REG32(GPIO_PXIMS((n)))#define REG_GPIO_PXIMC(n)	REG32(GPIO_PXIMC((n)))#define REG_GPIO_PXPE(n)	REG32(GPIO_PXPE((n)))   /* 1: disable pull up/down */#define REG_GPIO_PXPES(n)	REG32(GPIO_PXPES((n)))#define REG_GPIO_PXPEC(n)	REG32(GPIO_PXPEC((n)))#define REG_GPIO_PXFUN(n)	REG32(GPIO_PXFUN((n)))  /* 0:GPIO or intr, 1:FUNC */#define REG_GPIO_PXFUNS(n)	REG32(GPIO_PXFUNS((n)))#define REG_GPIO_PXFUNC(n)	REG32(GPIO_PXFUNC((n)))#define REG_GPIO_PXSEL(n)	REG32(GPIO_PXSEL((n))) /* 0:GPIO/Fun0,1:intr/fun1*/#define REG_GPIO_PXSELS(n)	REG32(GPIO_PXSELS((n)))#define REG_GPIO_PXSELC(n)	REG32(GPIO_PXSELC((n)))#define REG_GPIO_PXDIR(n)	REG32(GPIO_PXDIR((n))) /* 0:input/low-level-trig/falling-edge-trig, 1:output/high-level-trig/rising-edge-trig */#define REG_GPIO_PXDIRS(n)	REG32(GPIO_PXDIRS((n)))#define REG_GPIO_PXDIRC(n)	REG32(GPIO_PXDIRC((n)))#define REG_GPIO_PXTRG(n)	REG32(GPIO_PXTRG((n))) /* 0:level-trigger, 1:edge-trigger */#define REG_GPIO_PXTRGS(n)	REG32(GPIO_PXTRGS((n)))#define REG_GPIO_PXTRGC(n)	REG32(GPIO_PXTRGC((n)))#define REG_GPIO_PXFLG(n)	REG32(GPIO_PXFLG((n))) /* interrupt flag *//************************************************************************* * UART *************************************************************************/#define IRDA_BASE	UART0_BASE#define UART_BASE	UART0_BASE#define UART_OFF	0x1000/* Register Offset */#define OFF_RDR		(0x00)	/* R  8b H'xx */#define OFF_TDR		(0x00)	/* W  8b H'xx */#define OFF_DLLR	(0x00)	/* RW 8b H'00 */#define OFF_DLHR	(0x04)	/* RW 8b H'00 */#define OFF_IER		(0x04)	/* RW 8b H'00 */#define OFF_ISR		(0x08)	/* R  8b H'01 */#define OFF_FCR		(0x08)	/* W  8b H'00 */#define OFF_LCR		(0x0C)	/* RW 8b H'00 */#define OFF_MCR		(0x10)	/* RW 8b H'00 */#define OFF_LSR		(0x14)	/* R  8b H'00 */#define OFF_MSR		(0x18)	/* R  8b H'00 */#define OFF_SPR		(0x1C)	/* RW 8b H'00 */#define OFF_SIRCR	(0x20)	/* RW 8b H'00, UART0 */#define OFF_UMR		(0x24)	/* RW 8b H'00, UART M Register */#define OFF_UACR	(0x28)	/* RW 8b H'00, UART Add Cycle Register *//* Register Address */#define UART0_RDR	(UART0_BASE + OFF_RDR)#define UART0_TDR	(UART0_BASE + OFF_TDR)#define UART0_DLLR	(UART0_BASE + OFF_DLLR)#define UART0_DLHR	(UART0_BASE + OFF_DLHR)#define UART0_IER	(UART0_BASE + OFF_IER)#define UART0_ISR	(UART0_BASE + OFF_ISR)#define UART0_FCR	(UART0_BASE + OFF_FCR)#define UART0_LCR	(UART0_BASE + OFF_LCR)#define UART0_MCR	(UART0_BASE + OFF_MCR)#define UART0_LSR	(UART0_BASE + OFF_LSR)#define UART0_MSR	(UART0_BASE + OFF_MSR)#define UART0_SPR	(UART0_BASE + OFF_SPR)#define UART0_SIRCR	(UART0_BASE + OFF_SIRCR)#define UART0_UMR	(UART0_BASE + OFF_UMR)#define UART0_UACR	(UART0_BASE + OFF_UACR)/* * Define macros for UART_IER * UART Interrupt Enable Register

⌨️ 快捷键说明

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