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

📄 conreg.h

📁 uc/fs文件系统
💻 H
字号:
/*
*****************************************************************************************
* name				:conreg.h															  
* note				:NetCARM7 Constant Configuration									  
* Date				:2004.1.2
* Modified by 		:Avirl																  
*****************************************************************************************
*/
#ifndef		CONREG_H
#define 	CONREG_H

#define AT91_MCK 32768000

#define 	VPint    	*(volatile unsigned int *)
#define 	VPshort  	*(volatile unsigned short *)
#define 	VPchar   	*(volatile unsigned char *)

#define		AIC_BASE	0xFFFFF000
#define 	USART0_BASE 0xFFFD0000
#define 	USART1_BASE 0xFFFCC000
#define		TIMER0BASE 	0xFFFE0000
#define		TIMER1BASE 	0xFFFE0040
#define		TIMER2BASE 	0xFFFE0080
#define 	ETH_BASE    0x20000000
/* add in 2004.5.10  */
#define		UART16C550_BASE	 0x30000000     //设置16C550的基地址,用的是NCS3片选
#define 	WATCHDOG_BASE	0xFFFF8000

#define 	PIOBASE 	0xFFFF0000


// AIC
#define 	AIC_EndOfIntCommandReg 		(VPint(AIC_BASE+0x130))
#define 	IRQStatus 					(VPint(AIC_BASE+0x108))				
#define 	IRQRawStatus 				(VPint(AIC_BASE + 0x10C))			
#define		IRQEnable 					(VPint(AIC_BASE + 0x110))			
#define 	IRQEnableSet 				(VPint(AIC_BASE + 0x120))			
#define 	IRQEnableClear 				(VPint(AIC_BASE + 0x124))       	

#define 	FIQ_SMR 		(VPint(AIC_BASE+0x000))
#define 	SWIRQ_SMR 		(VPint(AIC_BASE+0x004))

#define 	TC0IRQ_SMR 		(VPint(AIC_BASE+0x010))
#define 	TC1IRQ_SMR 		(VPint(AIC_BASE+0x014))
#define 	TC2IRQ_SMR 		(VPint(AIC_BASE+0x018))

#define 	PIOIRQ_SMR 		(VPint(AIC_BASE+0x020))

#define 	IRQ0_SMR 		(VPint(AIC_BASE+0x040))	
#define 	IRQ1_SMR 		(VPint(AIC_BASE+0x044))	
#define 	IRQ2_SMR 		(VPint(AIC_BASE+0x048))	


#define 	FIQ_SVR 		(VPint(AIC_BASE+0x080))
#define 	SWIRQ_SVR 		(VPint(AIC_BASE+0x084))
#define 	AIC_IDCR 		(VPint(AIC_BASE+0x124))
#define 	AIC_IECR 		(VPint(AIC_BASE+0x120))
	
#define 	AIC_ICCR 		(VPint(AIC_BASE+0x128))
#define 	AIC_ISCR 		(VPint(AIC_BASE+0x12c))

#define 	US0IRQ_SMR 		(VPint(AIC_BASE+0x008))
#define 	US0IRQ_SVR 		(VPint(AIC_BASE+0x088))

#define 	US1IRQ_SMR 		(VPint(AIC_BASE+0x00c))
#define 	US1IRQ_SVR 		(VPint(AIC_BASE+0x08C))

#define 	TC0IRQ_SVR 		(VPint(AIC_BASE+0x090))
#define 	TC1IRQ_SVR 		(VPint(AIC_BASE+0x094))
#define 	TC2IRQ_SVR 		(VPint(AIC_BASE+0x098))

#define 	PIOIRQ_SVR 		(VPint(AIC_BASE+0x0A0))
#define 	IRQ0_SVR 		(VPint(AIC_BASE+0x0C0))
#define 	IRQ1_SVR 		(VPint(AIC_BASE+0x0C4))
#define 	IRQ2_SVR 		(VPint(AIC_BASE+0x0C8))
#define 	AIC_IPR 		(VPint(AIC_BASE+0x10C))	

// Timer0
#define 	TC0_CCR  		(VPchar(TIMER0BASE))
#define 	TC0_CMR  		(VPint(TIMER0BASE+0x04))
#define 	TC0_IDR  		(VPchar(TIMER0BASE+0x28))
#define 	TC0_IER  		(VPchar(TIMER0BASE+0x24))
#define 	TC0_RC   		(VPint(TIMER0BASE+0x1C))
#define 	TC0_SR   		(VPint(TIMER0BASE+0x20))


// UART 0      
#define 	US0_CR       	(VPint(USART0_BASE))
#define 	US0_MR       	(VPint(USART0_BASE+0x04))
#define 	US0_IER       	(VPint(USART0_BASE+0x08))
#define 	US0_IDR       	(VPint(USART0_BASE+0x0c))
#define 	US0_IMR        	(VPint(USART0_BASE+0x10))
#define 	US0_CSR      	(VPint(USART0_BASE+0x14))
#define 	US0_RHR       	(VPchar(USART0_BASE+0x18))
#define 	US0_THR       	(VPchar(USART0_BASE+0x1C))
#define 	US0_BRGR       	(VPint(USART0_BASE+0x20))
#define 	US0_RTOR       	(VPint(USART0_BASE+0x24))
#define 	US0_TTGR       	(VPint(USART0_BASE+0x28))
#define 	US0_RPR       	(VPint(USART0_BASE+0x30))
#define 	US0_RCR       	(VPint(USART0_BASE+0x34))
#define 	US0_TPR       	(VPint(USART0_BASE+0x38))
#define 	US0_TCR       	(VPint(USART0_BASE+0x3C))

//  UART 1      
#define		US1_CR       	(VPint(USART1_BASE))
#define 	US1_MR       	(VPint(USART1_BASE+0x04))
#define 	US1_IER       	(VPint(USART1_BASE+0x08))
#define 	US1_IDR       	(VPint(USART1_BASE+0x0c))
#define 	US1_IMR        	(VPint(USART1_BASE+0x10))
#define 	US1_CSR       	(VPint(USART1_BASE+0x14))
#define 	US1_RHR       	(VPchar(USART1_BASE+0x18))
#define 	US1_THR       	(VPchar(USART1_BASE+0x1C))
#define 	US1_BRGR       	(VPint(USART1_BASE+0x20))
#define 	US1_RTOR       	(VPint(USART1_BASE+0x24))
#define 	US1_TTGR       	(VPint(USART1_BASE+0x28))
#define 	US1_RPR       	(VPint(USART1_BASE+0x30))
#define 	US1_RCR       	(VPint(USART1_BASE+0x34))
#define 	US1_TPR       	(VPint(USART1_BASE+0x38))
#define 	US1_TCR       	(VPint(USART1_BASE+0x3C))


//	PIO
#define		PIO_PER			(VPint(PIOBASE))
#define		PIO_OER			(VPint(PIOBASE+0x10))
#define		PIO_ODR			(VPint(PIOBASE+0x14))
#define		PIO_SODR		(VPint(PIOBASE+0x30))
#define		PIO_CODR		(VPint(PIOBASE+0x34))
#define		PIO_ODSR		(VPint(PIOBASE+0x38))
#define		PIO_PDSR		(VPint(PIOBASE+0x3c))


//  ETH
#define 	ETH_CR   		(VPchar(ETH_BASE))
#define 	ETH_PSTART   	(VPchar(ETH_BASE+0x1))
#define 	ETH_PSTOP   	(VPchar(ETH_BASE+0x2))
#define 	ETH_BNRY   		(VPchar(ETH_BASE+0x3))
#define 	ETH_TSR   		(VPchar(ETH_BASE+0x4))
#define 	ETH_TBCR0   	(VPchar(ETH_BASE+0x5))
#define 	ETH_TBCR1   	(VPchar(ETH_BASE+0x6))
#define 	ETH_ISR   		(VPchar(ETH_BASE+0x7))
#define 	ETH_RSAR0   	(VPchar(ETH_BASE+0x8))
#define 	ETH_RSAR1   	(VPchar(ETH_BASE+0x9))
#define 	ETH_RBCR0   	(VPchar(ETH_BASE+0x0A))
#define 	ETH_RBCR1   	(VPchar(ETH_BASE+0x0B))
#define 	ETH_RCR   		(VPchar(ETH_BASE+0x0C))
#define 	ETH_TCR   		(VPchar(ETH_BASE+0x0D))
#define 	ETH_DCR   		(VPchar(ETH_BASE+0x0E))
#define 	ETH_IMR   		(VPchar(ETH_BASE+0x0F))
#define  	ETH_Dport  		(VPchar(ETH_BASE+0x10))
#define  	ETH_Rport   	(VPchar(ETH_BASE+0x1F))
#define  	ETH_PAR0        (ETH_BASE+0x1)
#define  	ETH_MAR0        (ETH_BASE+0x8)
#define  	ETH_NCR         ETH_TBCR0

#define   	ETH_CURR  	  	ETH_ISR
#define   	ETH_CRDA0     	ETH_RSAR0
#define   	ETH_CRDA1	    ETH_RSAR1
#define   	ETH_FIFO        ETH_TBCR1

#define  	ETH_RSR         ETH_RCR
#define  	ETH_TPSR        ETH_TSR

/* add in 2004.5.10 */
//16C550
#define 	UART16C550_THR   	(VPchar(UART16C550_BASE))			//发送保持寄存器,只写
#define 	UART16C550_RBR   	(VPchar(UART16C550_BASE))			//接收缓冲寄存器,只读
#define 	UART16C550_IER    	(VPchar(UART16C550_BASE+0x1))		//中断使能寄存器
#define 	UART16C550_IIR   	(VPchar(UART16C550_BASE+0x2))       //中断识别寄存器,只读
#define 	UART16C550_FCR   	(VPint(UART16C550_BASE+0x2))		//FIFO控制寄存器,只写
#define 	UART16C550_LCR   	(VPchar(UART16C550_BASE+0x3))		//线控制寄存器
#define 	UART16C550_MCR  	(VPchar(UART16C550_BASE+0x4))		//MODEM控制寄存器
#define 	UART16C550_LSR   	(VPchar(UART16C550_BASE+0x5))		//线状态寄存器
#define 	UART16C550_MSR  	(VPchar(UART16C550_BASE+0x6))		//MODEM状态寄存器

#define 	UART16C550_DLL   	(VPchar(UART16C550_BASE))           //DLAB = 1时
#define 	UART16C550_DLM    	(VPchar(UART16C550_BASE+0x1))       //DLAB = 1时

//WATCHDOG
#define		WATCHDOG_OMR		(VPint(WATCHDOG_BASE))				//读写
#define		WATCHDOG_CMR		(VPint(WATCHDOG_BASE+0x04))			//读写
#define		WATCHDOG_CR			(VPint(WATCHDOG_BASE+0x08))			//只写
#define		WATCHDOG_SR			(VPint(WATCHDOG_BASE+0x0C))			//只读

#endif

⌨️ 快捷键说明

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