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

📄 r3912.h

📁 WINDOWS CE BSP用于SBC2440开发板
💻 H
📖 第 1 页 / 共 2 页
字号:

#define OFF_INTR_CLEAR1			0x100
#define OFF_INTR_CLEAR2			0x104
#define OFF_INTR_CLEAR3			0x108
#define	OFF_INTR_CLEAR4			0x10c
#define OFF_INTR_CLEAR5			0x110

#define OFF_INTR_ENABLE1		0x118
#define OFF_INTR_ENABLE2		0x11c
#define OFF_INTR_ENABLE3		0x120
#define	OFF_INTR_ENABLE4		0x124
#define OFF_INTR_ENABLE5		0x128

#define OFF_INTR_ENABLE6		0x12c
#define INTR_GLOBALEN			(1 << 18)
#define INTR_IRQPRITEST			(1 << 17)
#define INTR_IRQTEST			(1 << 16)
#define INTR_PRIORITYMASKMASK		0x0000ffff
#define INTR_PRIORITYMASK(a)		((1 << (a)) & INTR_PRIORITYMASKMASK)

/* 
  IO Module
*/
#define OFF_IO_CTL			0x180
#define IO_IODEBSELMASK			0x7f000000
#define IO_IODEBSEL(a)			(1 << ((a) + 24))
#define IO_IODIRECMASK			0x007f0000
#define IO_IODIREC(a)			(1 << ((a) + 16))
#define IO_IODIRECOUT(a)		(1 << ((a) + 16))
#define IO_IODIRECIN(a)			0
#define IO_IODOUTMASK			0x00007f00
#define IO_IODOUT(a)			(1 << ((a) + 8))
#define IO_IODINMASK			0x0000007f
#define IO_IODIN(a)			(1 << (a))

#define OFF_IO_MFIOOUT			0x184
#define IO_MFIOOUT(a)			(1 << (a))

#define OFF_IO_MFIODIREC		0x188
#define IO_MFIODIRECOUT(a)		(1 << (a))
#define IO_MFIODIRECIN(a)		0

#define OFF_IO_MFIOIN			0x18c
#define IO_MFIOIN(a)			(1 << (a))

#define OFF_IO_MFIOSEL			0x190
#define IO_MFIOSEL(a)			(1 << (a))

#define OFF_IO_IOPWRDN			0x194
#define IO_IOPDMASK			0x0000007f
#define IO_IOPD(a)			((1 << (a)) & IO_PDMASK)

#define OFF_IO_MFIOPWRDN		0x198
#define IO_MFIOPD(a)			(1 << (a))

/*
  IR Module
*/

#define OFF_IR_CTL1			0x0a0
#define IR_CARDET			(1 << 24)
#define	IR_BAUDVALMASK			0x00ff0000
#define	IR_BAUD(a)			(((a) << 16) & IR_BAUDVALMASK)
#ifdef INTERNAL_TEST
#define IR_TESTIR			(1 << 4)
#endif
#define IR_DTINVERT			(1 << 3)
#define IR_RXPWR			(1 << 2)
#define IR_ENSTATE			(1 << 1)
#define IR_ENCONSM			1

#define OFF_IR_CTL2			0x0a4
#define IR_PERMASK			0xff000000
#define IR_PER(a)			(((a) << 24) & IR_PERMASK)
#define IR_ONTIMEMASK			0x00ff0000
#define IR_ONTIME(a)			(((a) << 16) & IR_ONTIMEMASK)
#define IR_DELAYVALMASK			0x0000ff00
#define IR_DELAYVAL(a)			(((a) << 8) & IR_DELAYVALMASK)
#define IR_WAITVALMASK			0x000000ff
#define IR_WAITVAL(a)			((a) & IR_WAITVALMASK)

#define OFF_IR_HOLD			0x0a8
#define IR_TXHOLDMASK			0x0000ffff
#define IR_TXHOLD(a)			((a) & IR_TXHOLDMASK)

#define OFF_MAGICBUS_CTL1		0x0e0
#define	MAGICBUS_MBUSON			(1 << 31)
#define MAGICBUS_EMPTY			(1 << 30)
#define MAGICBUS_MBUSINT		(1 << 29)
#define MAGICBUS_ENDMARX		(1 << 16)
#define MAGICBUS_ENDMATX		(1 << 15)
#ifdef INTERNAL_TEST
#define MAGICBUS_ENDMATEST		(1 << 14)
#endif
#define MAGICBUS_ENDMALOOP		(1 << 13)
#define MAGICBUS_LOOPBACK		(1 << 12)
#define MAGICBUS_RCVPHAPOL		(1 << 11)
#define MAGICBUS_DTIDLE			(1 << 10)
#define MAGICBUS_ENBYTEWAIT		(1 << 9)
#define MAGICBUS_ENWORDWAIT		(1 << 8)
#define MAGICBUS_DETPHAPOL		(1 << 7)
#define MAGICBUS_DETCLKPOL		(1 << 6)
#define MAGICBUS_PHAPOL			(1 << 5)
#define MAGICBUS_CLKPOL			(1 << 4)
#define MAGICBUS_SLAVE			(1 << 3)
#define MAGICBUS_FSLAVE			(1 << 2)
#define MAGICBUS_LONG			(1 << 1)
#define MAGICBUS_ENMBUS			1

#define OFF_MAGICBUS_CTL2		0x0e4
#define MAGICBUS_DELAYVALMASK		0xff000000
#define MAGICBUS_DELAYVAL(a)		(((a) << 24) & MAGICBUS_DELAYVALMASK)
#define MAGICBUS_BAUDRATEMASK		0x00ff0000
#define MAGICBUS_BAUDRATE(a)		(((a) << 16) & MAGICBUS_BAUDRATEMASK)

#define OFF_MAGICBUS_DMACTL1		0x0e8
#define MAGICBUS_DMASTARTVALMASK	0xfffffffc
#define MAGICBUS_DMASTARTVAL(a)		((a) & MAGICBUS_DMASTARTVALMASK)

#define OFF_MAGICBUS_DMACTL2		0x0ec
#define MAGICBUS_DMALENGTHMASK		0x000ffffc
#define MAGICBUS_DMALENGTH(a)		((a) & MAGICBUS_DMALENGTHMASK)

#define OFF_MAGICBUS_DMACOUNT		0x0f0
#define MAGICBUS_DMACOUNTMASK		0x000ffffc

#define OFF_MAGICBUS_TXHOLD		0x0f8
#define OFF_MAGICBUS_TXHOLD_SWAP	0x0f4

#define OFF_MAGICBUS_RXHOLD		0x0f8

/*
  Power Management
*/
#define OFF_POWER_CTL			0x1c4
#define POWER_ONBUTN			(1 << 31)
#define POWER_PWRINT			(1 << 30)
#define POWER_PWROK			(1 << 29)
#define POWER_STPTIMERVALMASK		0x0000f000
#define POWER_STPTIMERVAL(a)		(((a) << 12) & POWER_STPTIMERVALMASK)
#define POWER_ENSTPTIMER		(1 << 11)
#define POWER_ENFORCESHUTDOWN		(1 << 10)
#define POWER_FORCESHUTDOWN		(1 << 9)
#define POWER_FORCESHUTDOWNOCC		(1 << 8)
#define POWER_SELC2MS			(1 << 7)
#define POWER_BPDBVCC3			(1 << 5)
#define POWER_STOPCPU			(1 << 4)
#define POWER_DBNCONBUTN		(1 << 3)
#define POWER_COLDSTART			(1 << 2)
#define POWER_PWRCS			(1 << 1)
#define POWER_VCCON			(1 << 0)

/*
  SIB Module
*/
#define OFF_SIB_SIZE			0x60
#define	SIB_SNDSIZEMASK			0x3ffc0000
#define SIB_SNDSIZE(a)			(((a) << 16) & SIB_SNDSIZEMASK)
#define SIB_TELSIZEMASK			0x00003ffc
#define SIB_TELSIZE(a)			((a) & SIB_TELSIZEMASK)

#define OFF_SIB_SNDRXSTART		0x64
#define SIB_SNDRXSTARTMASK		0xfffffffc
#define SIB_SNDRXSTART			((a) & SIB_SNDRXSTARTMASK)

#define OFF_SIB_SNDTXSTART		0x68
#define SIB_SNDTXSTARTMASK		0xfffffffc
#define SIB_SNDTXSTART			((a) & SIB_SNDRXSTARTMASK)

#define OFF_SIB_TELRXSTART		0x6c
#define SIB_TELRXSTARTMASK		0xfffffffc
#define SIB_TELRXSTART			((a) & SIB_TELRXSTARTMASK)

#define OFF_SIB_TELTXSTART		0x70
#define SIB_TELTXSTARTMASK		0xfffffffc
#define SIB_TELTXSTART			((a) & SIB_TELRXSTARTMASK)

#define OFF_SIB_CTL			0x74
#define SIB_SIBIRQ			(1 << 31)
#ifdef INTERNAL_TEST
#define SIB_ENCNTTEST			(1 << 30)
#define SIB_ENDMATEST			(1 << 29)
#endif
#define SIB_SNDMONO			(1 << 28)
#define SIB_RMONOSNDIN			(1 << 27)
#define SIB_SCLKDIVMASK			(7 << 24)
#define SIB_SCLKDIV(a)			(((a) << 24) & SIBSCLKDIVMASK)
#define SIB_TEL16			(1 << 23)
#define SIB_TELFSDIVMASK		0x007f0000
#define SIB_TELFSDIV(a)			(((a) << 16) & SIB_TELFSDIVMASK)
#define SIB_SND16			(1 << 15)
#define SIB_SNDFSDIVMASK		0x00007f00
#define SIB_SNDFSDIV(a)			(((a) << 8) & SIB_SNDFSDIVMASK)
#define SIB_SELTELSF1			(1 << 7)
#define SIB_SELSNDSF1			(1 << 6)
#define SIB_ENTEL			(1 << 5)
#define SIB_ENSND			(1 << 4)
#define SIB_SIBLOOP			(1 << 3)
#define SIB_ENSF1			(1 << 2)
#define SIB_ENSF0			(1 << 1)
#define SIB_ENSIB			1

#define OFF_SIB_SNDTXHOLD		0x078
#define OFF_SIB_SNDRXHOLD		0x078

#define OFF_SIB_TELTXHOLD		0x07c
#define OFF_SIB_TELRXHOLD		0x07c

#define OFF_SIB_SF0AUX			0x80
#define OFF_SIB_SF1AUX			0x84

#define OFF_SIB_SF0TAT			0x88
#define OFF_SIB_SF1TAT			0x8c

#define OFF_SIB_DMACTL			0x90
#define SIB_SNDBUFF1TIME		(1 << 31)
#define SIB_SNDDMALOOP			(1 << 30)
#define SIB_SNDDMAPTRMASK		0x3ffc0000
#define SIB_ENDMARXSND			(1 << 17)
#define SIB_ENDMATXSND			(1 << 16)
#define SIB_TELBUFF1TIME		(1 << 15)
#define SIB_TELDMALOOP			(1 << 14)
#define SIB_TELDMAPTRMASK		0x00003ffc
#define SIB_ENDMARXTEL			(1 << 1)
#define SIB_ENDMATXTEL			1

/*
  SPI Module
 */
#define OFF_SPI_CTL			0x160
#define SPI_SPION			(1 << 17)
#define SPI_EMPTY			(1 << 16)
#define SPI_DELAYVALMASK		0x0000f000
#define SPI_DELAYVAL(a)			(((a) << 12) & SPI_DELAYVALMASK)
#define SPI_BAUDRATEMASK		0x00000f00
#define SPI_BAUDRATE(a)			(((a) << 8) & SPI_BAUDRATEMASK)
#define SPI_PHAPOL			(1 << 5)
#define SPI_CHKPOL			(1 << 4)
#define SPI_WORD			(1 << 2)
#define SPI_LSB				(1 << 1)
#define SPI_ENSPI			1

#define OFF_SPI_TXDATA			0x164
#define SPI_TXDATAMASK			0x0000ffff
#define OFF_SPI_RXDATA			0x164
#define SPI_RXDATAMASK			0x0000ffff

/*
   Timer
 */
/* RTC */
#define OFF_RTC_RTCHI			0x140
#define RTC_RTCHIMASK			0x000000ff
#define OFF_RTC_RTCLOW			0x144
/* Alarm */
#define OFF_ALARM_ALARMHI		0x148
#define ALARM_ALARMHIMASK		0x000000ff
#define OFF_ALARM_ALARMLOW		0x14c
/* Timer */
#define OFF_TIMER_CTL			0x150
#define TIMER_FREEZEPRE			(1 << 7)
#define TIMER_FREEZERTC			(1 << 6)
#define TIMER_FREEZETIMER		(1 << 5)
#define TIMER_ENPRETIMER		(1 << 4)
#define TIMER_RTCCLR			(1 << 3)
#define TIMER_TESTC8MS			(1 << 2)
#define TIMER_ENTESTCLK			(1 << 1)
#define TIMER_ENRTCTEST			1

#define OFF_PERIODIC_TIMER		0x154
#define PERIODIC_PRECNTMASK		0xffff0000
#define PERIODIC_PRECNT(a)		(((a) << 16) & PERIODIC_PRECNTMASK)
#define PERIODIC_PREVALMASK		0x0000ffff
#define PERIODIC_PREVAL(a)		((a) & PERIODIC_PREVALMASK)

/*
	Serial Definition
*/
#define OFF_UARTA_CTL1		0x0b0
#define OFF_UARTB_CTL1		0x0c8

#define UART_UARTON		(1 << 31)
#define UART_EMPTY		(1 << 30)
#define UART_PRXHOLDFULL	(1 << 29)
#define UART_RXHOLDFULL		(1 << 28)
#define UART_ENDMATX		(1 << 15)
#define UART_ENDMARX		(1 << 14)
#ifdef INTERNAL_TEST
#define UART_TESTMODE		(1 << 13)
#endif
#define UART_ENBREAKHALT	(1 << 12)
#define UART_ENDMATEST		(1 << 11)
#define UART_ENDMALOOP		(1 << 10)
#define UART_PULSEOPT2		(1 << 9)
#define UART_PULSEOPT1		(1 << 8)
#define UART_DTINVERT		(1 << 7)
#define UART_DISTXD		(1 << 6)
#define UART_TWOSTOP		(1 << 5)
#define UART_LOOPBACK		(1 << 4)
#define UART_BIT_7		(1 << 3)
#define UART_EVENPARITY		(1 << 2)
#define UART_ENPARITY		(1 << 1)
#define	UART_ENUART		1

#define OFF_UARTA_CTL2		0x0b4
#define OFF_UARTB_CTL2		0x0cc
#define UART_BAUDMASK		0x000003ff		// lower 10bits

/*
   Standart UART Values 
   This comes from: baud rate = 3.6864MHz / ((BaudRate + 1) * 16)
*/
#define UART_B38400		5
#define UART_B19200		11
#define UART_B9600		23
#define UART_B4800		47
#define UART_B2400		95
#define UART_B1200		191
#define UART_B600		383
#define UART_B300		767

#define OFF_UARTA_DMA_CTL1	0x0b8
#define OFF_UARTB_DMA_CTL1	0x0d0
#define UART_DMASTARTVALMASK	0xfffffffc

#define OFF_UARTA_DMA_CTL2	0x0bc
#define OFF_UARTB_DMA_CTL2	0x0d4
#define OFF_UARTA_DMA_COUNT	0x0c0
#define OFF_UARTB_DMA_COUNT	0x0d8
#define UART_DMALENGTHMASK	0x0000ffff

#define OFF_UARTA_TXDATA	0x0c4	/* Write Only */
#define OFF_UARTB_TXDATA	0x0dc	/* Write Only */
#define OFF_UARTA_RXDATA	0x0c4	/* Read Only */
#define OFF_UARTB_RXDATA	0x0dc	/* Read Only */
#define UART_BREAK		0x00000100	/* send/received break */
#define UART_TXDATAMASK		0x000000ff	/* send data mask */
#define UART_RXDATAMASK		0x000000ff	/* receive data mask */
	
/*
   Video
 */
#define OFF_VIDEO_CTL1			0x28
#define VIDEO_LINECNTMASK		0xffc00000
#define VIDEO_LINECNT(a)		(((a) << 22) & VIDEO_LINECNTMASK)
#define VIDEO_LOADDLY			(1 << 21)
#define VIDEO_BAUDVALMASK		0x000f0000
#define VIDEO_BAUDVAL(a)		(((a) << 16) & VIDEO_BAUDVALMASK)
#define VIDEO_VIDDONEVALMASK		0x0000fe00
#define VIDEO_VIDDONEVAL		(((a) << 9) & VIDEO_DONEVALMASK)
#define VIDEO_ENFREEZEFRAME		(1 << 8)
#define VIDEO_BITSELMASK		0x000000c0
#define VIDEO_BITSEL(a)			(((a) << 6) & VIDEO_BITSEL)
#define VIDEO_DISPSPLIT			(1 << 5)
#define VIDEO_DISP8			(1 << 4)
#define VIDEO_DFMODE			(1 << 3)
#define VIDEO_INVVID			(1 << 2)
#define VIDEO_DISPON			(1 << 1)
#define VIDEO_ENVID			1

#define OFF_VIDEO_CTL2			0x2c
#define VIDEO_VIDRATEMASK		0xffc00000
#define VIDEO_VIDRATE(a)		(((a) << 22) & VIDEO_VIDRATEMASK)
#define VIDEO_HORZVALMASK		0x001ff000
#define VIDEO_HORZVAL(a)		(((a) << 12) & VIDEO_HORZVALMASK)
#define VIDEO_LINEVALMASK		0x000003ff
#define VIDEO_LINEVAL(a)		((a) & VIDEO_LINEVALMASK)

#define OFF_VIDEO_CTL3			0x30
#define VIDEO_VIDBANKMASK		0xfff00000
#define VIDEO_VIDBANK(a)		((a) & VIDEO_VIDBANKMASK)
#define VIDEO_VIDBASEHIMASK		0x000ffff0
#define VIDEO_VIDBASEHI(a)		((a) & VIDEO_VIDBASEHIMASK)

#define OFF_VIDEO_CTL4			0x34
#define VIDEO_DFVALMASK			0xff000000
#define VIDEO_DFVAL(a)			(((a) << 24) & VIDEO_DFVALMASK)
#define VIDEO_FRAMEMASKVALMASK		0x00f00000
#define VIDEO_FRAMEMASKVAL(a)		(((a) << 20) & VIDEO_FRAMEMASKVALMASK)
#define VIDEO_VIDBASELOMASK		0x000ffff0
#define VIDEO_VIDBASELO(a)		((a) & VIDEO_VIDBASELOMASK)

#define OFF_VIDEO_CTL5			0x38

#define OFF_VIDEO_CTL6			0x3c

#define OFF_VIDEO_CTL7			0x40
#define VIDEO_BLUESELMASK		0x0000ffff
#define VIDEO_BLUESEL(a)		((a) & VIDEO_BLUESEL)

#define OFF_VIDEO_CTL8			0x44
#define VIDEO_PAT2_3MASK		0x00000fff
#define VIDEO_PAT2_3(a)			((a) & VIDEO_PAT2_3)

#define OFF_VIDEO_CTL9			0x48
#define VIDEO_PAT3_4MASK		0xffff0000
#define VIDEO_PAT3_4(a)			(((a) << 16) & VIDEO_PAT3_4)
#define VIDEO_PAT2_4MASK		0x0000ffff
#define VIDEO_PAT2_4(a)			((a) & VIDEO_PAT2_4MASK)

#define OFF_VIDEO_CTL10			0x4c
#define VIDEO_PAT4_5MASK		0x000fffff
#define VIDEO_PAT4_5(a)			((a) & VIDEO_PAT4_5)

#define OFF_VIDEO_CTL11			0x50
#define VIDEO_PAT3_5MASK		0x000fffff
#define VIDEO_PAT3_5(a)			((a) & VIDEO_PAT3_5)

#define OFF_VIDEO_CTL12			0x54
#define VIDEO_PAT6_7MASK		0x0fffffff
#define VIDEO_PAT6_7(a)			((a) & VIDEO_PAT6_7)

#define OFF_VIDEO_CTL13			0x58
#define VIDEO_PAT5_7MASK		0x0fffffff
#define VIDEO_PAT5_7(a)			((a) & VIDEO_PAT5_7)
 
#define OFF_VIDEO_CTL14			0x5c
#define VIDEO_PAT4_7MASK		0x0fffffff
#define VIDEO_PAT4_7(a)			((a) & VIDEO_PAT4_7)

/*
  Register Access Macros..
*/

#define READ_REGISTER_ULONG(reg) (*(volatile unsigned long * const)(reg))
#define WRITE_REGISTER_ULONG(reg, val) (*(volatile unsigned long * const)(reg)) = (val)
#define READ_REGISTER_USHORT(reg) (*(volatile unsigned short * const)(reg))
#define WRITE_REGISTER_USHORT(reg, val) (*(volatile unsigned short * const)(reg)) = (val)
#define READ_REGISTER_UCHAR(reg) (*(volatile unsigned char * const)(reg))
#define WRITE_REGISTER_UCHAR(reg, val) (*(volatile unsigned char * const)(reg)) = (val)

#define R3REG(base, id)   (*(volatile ULONG *)((base)+(id)))

#endif /* _R3912_H_ */

⌨️ 快捷键说明

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