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

📄 peripherals_lpc23xx.h

📁 This program contains program realization EMAC for LPC23xx
💻 H
📖 第 1 页 / 共 2 页
字号:
/* 
 ********************************************************************
 * Project:     GNU-Port TCP/IP-Stack
 * File:    	peripherals_lpc23xx.h
 *
 * System:   	ARM7TDMI-S 32 Bit
 * Compiler:  	GCC 4.0.3
 *
 * Date:      	2006-08-31
 * Author:    	Wenz
 *
 * Rights:    	Hitex Development Tools GmbH
 *            	Greschbachstr. 12
 *            	D-76229 Karlsruhe
 ********************************************************************
 * Description:
 *	
 * definitions and Bit masks for the LPC23xx hardware
 * registers 
 ********************************************************************
 * History:
 *
 *  Revision 1.0    2006/09/27      We
 *     Initial revision 
 ********************************************************************
 * This software is provided by the author 'AS IS' without any 
 * warranties. Hitex Development Tools GmbH shall not be held 
 * liable for any direct, indirect or consequential damages with
 * respect to any claims arising from the content of such software.
 ********************************************************************/


#ifndef _PERIPHERALS_LPC23XX_H_
#define _PERIPHERALS_LPC23XX_H_


#include "defines.h"


/*
 *********************************************************************
 * PIN Connect Block 
 *********************************************************************
 */

#define PINSEL0        (*(REG32 0xE002C000))
#define PINSEL1        (*(REG32 0xE002C004))
#define PINSEL2        (*(REG32 0xE002C008))
#define PINSEL3        (*(REG32 0xE002C00C))
#define PINSEL4        (*(REG32 0xE002C010))
#define PINSEL5        (*(REG32 0xE002C014))
#define PINSEL6        (*(REG32 0xE002C018))
#define PINSEL7        (*(REG32 0xE002C01C))
#define PINSEL8        (*(REG32 0xE002C020))
#define PINSEL9        (*(REG32 0xE002C024))
#define PINSEL10       (*(REG32 0xE002C028))

// each PIN could have up to 4 software selectable functions
#define PINFUNC1		0x00
#define PINFUNC2		0x01
#define PINFUNC3		0x02
#define PINFUNC4		0x03


/*
 *********************************************************************
 * Power Control 
 *********************************************************************
 */
 
#define PCON           	(*(REG32 0xE01FC0C0))	// power control
#define PCONP          	(*(REG32 0xE01FC0C4))	// interrupt wake
#define INTWAKE			(*(REG32 0xE01FC1444	// power control for peripherals

// peripheral Bits for peripherals power control 
#define PCON_TIM0		0x00000001
#define PCON_TIM1		0x00000002
#define PCON_UART0		0x00000004
#define PCON_UART1		0x00000008
#define PCON_ENET		0x40000000

/*!
 *********************************************************************
 * Vectored Interrupt Controller (VIC) 
 *********************************************************************
 */

#define		VIC_Base	0xFFFFF000;


#define VICIRQStatus   		(*(REG32 0xFFFFF000))
#define VICFIQStatus   		(*(REG32 0xFFFFF004))
#define VICRawIntr     		(*(REG32 0xFFFFF008))
#define VICIntSelect   		(*(REG32 0xFFFFF00C))
#define VICIntEnable   		(*(REG32 0xFFFFF010))
#define VICIntEnClr    		(*(REG32 0xFFFFF014))
#define VICSoftInt     		(*(REG32 0xFFFFF018))
#define VICSoftIntClr  		(*(REG32 0xFFFFF01C))
#define VICProtection  		(*(REG32 0xFFFFF020))
#define VICSWPriorityMask  	(*(REG32 0xFFFFF024))

#define VICVectAddr    (*(REG32  0xFFFFFF00))

#define VICVectAddr0   (*(REG32  0xFFFFF100))
#define VICVectAddr1   (*(REG32  0xFFFFF104))
#define VICVectAddr2   (*(REG32  0xFFFFF108))
#define VICVectAddr3   (*(REG32  0xFFFFF10C))
#define VICVectAddr4   (*(REG32  0xFFFFF110))
#define VICVectAddr5   (*(REG32  0xFFFFF114))
#define VICVectAddr6   (*(REG32  0xFFFFF118))
#define VICVectAddr7   (*(REG32  0xFFFFF11C))
#define VICVectAddr8   (*(REG32  0xFFFFF120))
#define VICVectAddr9   (*(REG32  0xFFFFF124))
#define VICVectAddr10  (*(REG32  0xFFFFF128))
#define VICVectAddr11  (*(REG32  0xFFFFF12C))
#define VICVectAddr12  (*(REG32  0xFFFFF130))
#define VICVectAddr13  (*(REG32  0xFFFFF134))
#define VICVectAddr14  (*(REG32  0xFFFFF138))
#define VICVectAddr15  (*(REG32  0xFFFFF13C))
#define VICVectAddr16  (*(REG32  0xFFFFF140))
#define VICVectAddr17  (*(REG32  0xFFFFF144))
#define VICVectAddr18  (*(REG32  0xFFFFF148))
#define VICVectAddr19  (*(REG32  0xFFFFF14C))
#define VICVectAddr20  (*(REG32  0xFFFFF150))
#define VICVectAddr21  (*(REG32  0xFFFFF154))
#define VICVectAddr22  (*(REG32  0xFFFFF158))
#define VICVectAddr23  (*(REG32  0xFFFFF15C))
#define VICVectAddr24  (*(REG32  0xFFFFF160))
#define VICVectAddr25  (*(REG32  0xFFFFF164))
#define VICVectAddr26  (*(REG32  0xFFFFF168))
#define VICVectAddr27  (*(REG32  0xFFFFF16C))
#define VICVectAddr28  (*(REG32  0xFFFFF170))
#define VICVectAddr29  (*(REG32  0xFFFFF174))
#define VICVectAddr30  (*(REG32  0xFFFFF178))
#define VICVectAddr31  (*(REG32  0xFFFFF17C))

#define VICVectPriority0   (*(REG32 0xFFFFF200) )
#define VICVectPriority1   (*(REG32 0xFFFFF204))
#define VICVectPriority2   (*(REG32 0xFFFFF208))
#define VICVectPriority3   (*(REG32 0xFFFFF20C))
#define VICVectPriority4   (*(REG32 0xFFFFF210))
#define VICVectPriority5   (*(REG32 0xFFFFF214))
#define VICVectPriority6   (*(REG32 0xFFFFF218))
#define VICVectPriority7   (*(REG32 0xFFFFF21C))
#define VICVectPriority8   (*(REG32 0xFFFFF220))
#define VICVectPriority9   (*(REG32 0xFFFFF224))
#define VICVectPriority10  (*(REG32 0xFFFFF228))
#define VICVectPriority11  (*(REG32 0xFFFFF22C))
#define VICVectPriority12  (*(REG32 0xFFFFF230))
#define VICVectPriority13  (*(REG32 0xFFFFF234))
#define VICVectPriority14  (*(REG32 0xFFFFF238))
#define VICVectPriority15  (*(REG32 0xFFFFF23C))
#define VICVectPriority16  (*(REG32 0xFFFFF240))
#define VICVectPriority17  (*(REG32 0xFFFFF244))
#define VICVectPriority18  (*(REG32 0xFFFFF248))
#define VICVectPriority19  (*(REG32 0xFFFFF24C))
#define VICVectPriority20  (*(REG32 0xFFFFF250))
#define VICVectPriority21  (*(REG32 0xFFFFF254))
#define VICVectPriority22  (*(REG32 0xFFFFF258))
#define VICVectPriority23  (*(REG32 0xFFFFF25C))
#define VICVectPriority24  (*(REG32 0xFFFFF260))
#define VICVectPriority25  (*(REG32 0xFFFFF264))
#define VICVectPriority26  (*(REG32 0xFFFFF268))
#define VICVectPriority27  (*(REG32 0xFFFFF26C))
#define VICVectPriority28  (*(REG32 0xFFFFF270))
#define VICVectPriority29  (*(REG32 0xFFFFF274))
#define VICVectPriority30  (*(REG32 0xFFFFF278))
#define VICVectPriority31  (*(REG32 0xFFFFF27C))
                           
#define VIC_VectAdr		(*(REG32 (0xFFFFFF00) ))	// current VectorAdr





/*##############################################################################
## Ethernet Controller
##############################################################################*/

// MAC registers

#define ETH_MAC1		(*(REG32 0xFFE00000))
#define ETH_MAC2		(*(REG32 0xFFE00004))
#define ETH_IPGT		(*(REG32 0xFFE00008))
#define ETH_IPGR		(*(REG32 0xFFE0000C))
#define ETH_CLRT		(*(REG32 0xFFE00010))
#define ETH_MAXF		(*(REG32 0xFFE00014))
#define ETH_PHYSUPP		(*(REG32 0xFFE00018))
#define ETH_TEST		(*(REG32 0xFFE0001C))

// MII management & config registers
#define ETH_MIICFG		(*(REG32 0xFFE00020))
#define ETH_MIICMD		(*(REG32 0xFFE00024))
#define ETH_MIIADR		(*(REG32 0xFFE00028))
#define ETH_MIIWTD		(*(REG32 0xFFE0002C))
#define ETH_MIIRDD		(*(REG32 0xFFE00030))
#define ETH_MIIIND		(*(REG32 0xFFE00034))


#define ETH_SA0			(*(REG32 0xFFE00040))
#define ETH_SA1			(*(REG32 0xFFE00044))
#define ETH_SA2			(*(REG32 0xFFE00048))

// Control Register

#define ETH_COMMAND		(*(REG32 0xFFE00100))
#define ETH_STATUS		(*(REG32 0xFFE00104))

#define ETH_RXDESC		(*(REG32 0xFFE00108))
#define ETH_RXSTAT		(*(REG32 0xFFE0010C))
#define ETH_RXDESCRNO	(*(REG32 0xFFE00110))
#define ETH_RXPRODIX	(*(REG32 0xFFE00114))
#define ETH_RXCONSIX	(*(REG32 0xFFE00118))

#define ETH_TXDESC		(*(REG32 0xFFE0011C))
#define ETH_TXSTAT		(*(REG32 0xFFE00120))
#define ETH_TXDESCRNO	(*(REG32 0xFFE00124))
#define ETH_TXPRODIX	(*(REG32 0xFFE00128))
#define ETH_TXCONSIX	(*(REG32 0xFFE0012C))

#define ETH_TSV0		(*(REG32 0xFFE00158))
#define ETH_TSV1		(*(REG32 0xFFE0015C))
#define ETH_RSV			(*(REG32 0xFFE00160))

#define ETH_FLOWCNTCOUNT (*(REG32 0xFFE00170))
#define ETH_FLOWCNTSTAT	(*(REG32 0xFFE00174))

// Rx Filter registers

#define ETH_RXFILTERCTL			(*(REG32 0xFFE00200))
#define ETH_RXFILTERWOLSTAT		(*(REG32 0xFFE00204))
#define ETH_RXFILTERWOLCLR		(*(REG32 0xFFE00208))

#define ETH_HASHFILTERL			(*(REG32 0xFFE00210))
#define ETH_HASHFILTERH			(*(REG32 0xFFE00214))

// module control registers

#define ETH_INSTSTAT	(*(REG32 0xFFE00FE0))
#define ETH_INTENABLE	(*(REG32 0xFFE00FE4))

⌨️ 快捷键说明

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