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

📄 nxp_arm.h

📁 LPC2220的Bootloader自己写的,和 周立功的模版实现完全不一样
💻 H
📖 第 1 页 / 共 3 页
字号:
//***************************************************************
//  ARM BOOT ROUTE VER1.0 for NXP_ARM release
//  bjwork2007@gmail.com
//  chenjun @ 2008-7-19
//***************************************************************

#ifndef _NXP_ARM_H_
#define _NXP_ARM_H_
	
	/* EXTERNAL MEMORY CONTROLLER (EMC) */
	/* 外部总线控制器 */
	#define rBCFG0           (*((volatile unsigned int *) 0xFFE00000))       /* lpc22xx only */
	#define rBCFG1           (*((volatile unsigned int *) 0xFFE00004))       /* lpc22xx only */
	#define rBCFG2           (*((volatile unsigned int *) 0xFFE00008))       /* lpc22xx only */
	#define rBCFG3           (*((volatile unsigned int *) 0xFFE0000C))       /* lpc22xx only */
	
	/* System Control and Status flags register */
	#define rSCS			 (*((volatile unsigned int *) 0xE01FC1A0))

	/* External Interrupts */
	/* 外部中断控制寄存器 */
	#define rEXTINT          (*((volatile unsigned char *) 0xE01FC140))
	#define rEXTWAKE         (*((volatile unsigned char *) 0xE01FC144))
	#define rEXTMODE         (*((volatile unsigned char *) 0xE01FC148))      /* no in lpc210x*/
	#define rEXTPOLAR        (*((volatile unsigned char *) 0xE01FC14C))      /* no in lpc210x*/

	/* SMemory mapping control. */
	/* 内存remap控制寄存器 */
	#define rMEMMAP          (*((volatile unsigned long *) 0xE01FC040))

	/* Phase Locked Loop (PLL) */
	/* PLL控制寄存器 */
	#define rPLLCON          (*((volatile unsigned char *) 0xE01FC080))
	#define rPLLCFG          (*((volatile unsigned char *) 0xE01FC084))
	#define rPLLSTAT         (*((volatile unsigned short*) 0xE01FC088))
	#define rPLLFEED         (*((volatile unsigned char *) 0xE01FC08C))

	/* Power Control */
	/* 功率控制寄存器 */
	#define rPCON            (*((volatile unsigned char *) 0xE01FC0C0))
	#define rPCONP           (*((volatile unsigned long *) 0xE01FC0C4))

	/* VPB Divider */
	/* VLSI外设总线(VPB)分频寄存器 */
	#define rVPBDIV          (*((volatile unsigned char *) 0xE01FC100))

	/* Memory Accelerator Module (MAM) */
	/* 存储器加速模块 */
	#define rMAMCR           (*((volatile unsigned char *) 0xE01FC000))
	#define rMAMTIM          (*((volatile unsigned char *) 0xE01FC004))

	/* Vectored Interrupt Controller (VIC) */
	/* 向量中断控制器(VIC)的特殊寄存器 */
	#define rVICIRQStatus    (*((volatile unsigned long *) 0xFFFFF000))
	#define rVICFIQStatus    (*((volatile unsigned long *) 0xFFFFF004))
	#define rVICRawIntr      (*((volatile unsigned long *) 0xFFFFF008))
	#define rVICIntSelect    (*((volatile unsigned long *) 0xFFFFF00C))
	#define rVICIntEnable    (*((volatile unsigned long *) 0xFFFFF010))
	#define rVICIntEnClr     (*((volatile unsigned long *) 0xFFFFF014))
	#define rVICSoftInt      (*((volatile unsigned long *) 0xFFFFF018))
	#define rVICSoftIntClear (*((volatile unsigned long *) 0xFFFFF01C))
	#define rVICProtection   (*((volatile unsigned long *) 0xFFFFF020))
	#define rVICVectAddr     (*((volatile unsigned long *) 0xFFFFF030))
	#define rVICDefVectAddr  (*((volatile unsigned long *) 0xFFFFF034))
	#define rVICVectAddr0    (*((volatile unsigned long *) 0xFFFFF100))
	#define rVICVectAddr1    (*((volatile unsigned long *) 0xFFFFF104))
	#define rVICVectAddr2    (*((volatile unsigned long *) 0xFFFFF108))
	#define rVICVectAddr3    (*((volatile unsigned long *) 0xFFFFF10C))
	#define rVICVectAddr4    (*((volatile unsigned long *) 0xFFFFF110))
	#define rVICVectAddr5    (*((volatile unsigned long *) 0xFFFFF114))
	#define rVICVectAddr6    (*((volatile unsigned long *) 0xFFFFF118))
	#define rVICVectAddr7    (*((volatile unsigned long *) 0xFFFFF11C))
	#define rVICVectAddr8    (*((volatile unsigned long *) 0xFFFFF120))
	#define rVICVectAddr9    (*((volatile unsigned long *) 0xFFFFF124))
	#define rVICVectAddr10   (*((volatile unsigned long *) 0xFFFFF128))
	#define rVICVectAddr11   (*((volatile unsigned long *) 0xFFFFF12C))
	#define rVICVectAddr12   (*((volatile unsigned long *) 0xFFFFF130))
	#define rVICVectAddr13   (*((volatile unsigned long *) 0xFFFFF134))
	#define rVICVectAddr14   (*((volatile unsigned long *) 0xFFFFF138))
	#define rVICVectAddr15   (*((volatile unsigned long *) 0xFFFFF13C))
	#define rVICVectCntl0    (*((volatile unsigned long *) 0xFFFFF200))
	#define rVICVectCntl1    (*((volatile unsigned long *) 0xFFFFF204))
	#define rVICVectCntl2    (*((volatile unsigned long *) 0xFFFFF208))
	#define rVICVectCntl3    (*((volatile unsigned long *) 0xFFFFF20C))
	#define rVICVectCntl4    (*((volatile unsigned long *) 0xFFFFF210))
	#define rVICVectCntl5    (*((volatile unsigned long *) 0xFFFFF214))
	#define rVICVectCntl6    (*((volatile unsigned long *) 0xFFFFF218))
	#define rVICVectCntl7    (*((volatile unsigned long *) 0xFFFFF21C))
	#define rVICVectCntl8    (*((volatile unsigned long *) 0xFFFFF220))
	#define rVICVectCntl9    (*((volatile unsigned long *) 0xFFFFF224))
	#define rVICVectCntl10   (*((volatile unsigned long *) 0xFFFFF228))
	#define rVICVectCntl11   (*((volatile unsigned long *) 0xFFFFF22C))
	#define rVICVectCntl12   (*((volatile unsigned long *) 0xFFFFF230))
	#define rVICVectCntl13   (*((volatile unsigned long *) 0xFFFFF234))
	#define rVICVectCntl14   (*((volatile unsigned long *) 0xFFFFF238))
	#define rVICVectCntl15   (*((volatile unsigned long *) 0xFFFFF23C))

	/* Pin Connect Block */
	/* 管脚连接模块控制寄存器 */
	#define rPINSEL0         (*((volatile unsigned long *) 0xE002C000))
	#define rPINSEL1         (*((volatile unsigned long *) 0xE002C004))
	#define rPINSEL2         (*((volatile unsigned long *) 0xE002C014))      /* no in lpc210x*/

	/* General Purpose Input/Output (GPIO) */
	/* 通用并行IO口的特殊寄存器 */
	#define rIOPIN           (*((volatile unsigned long *) 0xE0028000))      /* lpc210x only */
	#define rIOSET           (*((volatile unsigned long *) 0xE0028004))      /* lpc210x only */
	#define rIODIR           (*((volatile unsigned long *) 0xE0028008))      /* lpc210x only */
	#define rIOCLR           (*((volatile unsigned long *) 0xE002800C))      /* lpc210x only */

	#define rIO0PIN          (*((volatile unsigned long *) 0xE0028000))      /* no in lpc210x*/
	#define rIO0SET          (*((volatile unsigned long *) 0xE0028004))      /* no in lpc210x*/
	#define rIO0DIR          (*((volatile unsigned long *) 0xE0028008))      /* no in lpc210x*/
	#define rIO0CLR          (*((volatile unsigned long *) 0xE002800C))      /* no in lpc210x*/

	#define rIO1PIN          (*((volatile unsigned long *) 0xE0028010))      /* no in lpc210x*/
	#define rIO1SET          (*((volatile unsigned long *) 0xE0028014))      /* no in lpc210x*/
	#define rIO1DIR          (*((volatile unsigned long *) 0xE0028018))      /* no in lpc210x*/
	#define rIO1CLR          (*((volatile unsigned long *) 0xE002801C))      /* no in lpc210x*/

	#define rIO2PIN          (*((volatile unsigned long *) 0xE0028020))      /* lpc22xx only */
	#define rIO2SET          (*((volatile unsigned long *) 0xE0028024))      /* lpc22xx only */
	#define rIO2DIR          (*((volatile unsigned long *) 0xE0028028))      /* lpc22xx only */
	#define rIO2CLR          (*((volatile unsigned long *) 0xE002802C))      /* lpc22xx only */

	#define rIO3PIN          (*((volatile unsigned long *) 0xE0028030))      /* lpc22xx only */
	#define rIO3SET          (*((volatile unsigned long *) 0xE0028034))      /* lpc22xx only */
	#define rIO3DIR          (*((volatile unsigned long *) 0xE0028038))      /* lpc22xx only */
	#define rIO3CLR          (*((volatile unsigned long *) 0xE002803C))      /* lpc22xx only */

	#define rFIODIR          (*((volatile unsigned long *) 0x3FFFC000))      /* lpc210x only */
	#define rFIODIR0         (*((volatile unsigned long *) 0x3FFFC000))      /* lpc210x only */
	#define rFIODIR1         (*((volatile unsigned long *) 0x3FFFC001))      /* lpc210x only */
	#define rFIODIR2         (*((volatile unsigned long *) 0x3FFFC002))      /* lpc210x only */
	#define rFIODIR3         (*((volatile unsigned long *) 0x3FFFC003))      /* lpc210x only */
	#define rFIODIRL         (*((volatile unsigned long *) 0x3FFFC000))      /* lpc210x only */
	#define rFIODIRH         (*((volatile unsigned long *) 0x3FFFC002))      /* lpc210x only */

	#define rFIOMASK        (*((volatile unsigned long *) 0x3FFFC010))      /* lpc210x only */
	#define rFIOMASK0       (*((volatile unsigned long *) 0x3FFFC010))      /* lpc210x only */
	#define rFIOMASK1       (*((volatile unsigned long *) 0x3FFFC011))      /* lpc210x only */
	#define rFIOMASK2       (*((volatile unsigned long *) 0x3FFFC012))      /* lpc210x only */
	#define rFIOMASK3       (*((volatile unsigned long *) 0x3FFFC013))      /* lpc210x only */
	#define rFIOMASKL       (*((volatile unsigned long *) 0x3FFFC010))      /* lpc210x only */
	#define rFIOMASKH       (*((volatile unsigned long *) 0x3FFFC012))      /* lpc210x only */

	#define rFIOPIN          (*((volatile unsigned long *) 0x3FFFC014))      /* lpc210x only */
	#define rFIOPIN0         (*((volatile unsigned long *) 0x3FFFC014))      /* lpc210x only */
	#define rFIOPIN1         (*((volatile unsigned long *) 0x3FFFC015))      /* lpc210x only */
	#define rFIOPIN2         (*((volatile unsigned long *) 0x3FFFC016))      /* lpc210x only */
	#define rFIOPIN3         (*((volatile unsigned long *) 0x3FFFC017))      /* lpc210x only */
	#define rFIOPINL         (*((volatile unsigned long *) 0x3FFFC014))      /* lpc210x only */
	#define rFIOPINH         (*((volatile unsigned long *) 0x3FFFC016))      /* lpc210x only */

	#define rFIOSET          (*((volatile unsigned long *) 0x3FFFC018))      /* lpc210x only */
	#define rFIOSET0         (*((volatile unsigned long *) 0x3FFFC018))      /* lpc210x only */
	#define rFIOSET1         (*((volatile unsigned long *) 0x3FFFC019))      /* lpc210x only */
	#define rFIOSET2         (*((volatile unsigned long *) 0x3FFFC01A))      /* lpc210x only */
	#define rFIOSET3         (*((volatile unsigned long *) 0x3FFFC01B))      /* lpc210x only */
	#define rFIOSETL         (*((volatile unsigned long *) 0x3FFFC018))      /* lpc210x only */
	#define rFIOSETH         (*((volatile unsigned long *) 0x3FFFC01A))      /* lpc210x only */

	#define rFIOCLR          (*((volatile unsigned long *) 0x3FFFC01C))      /* lpc210x only */
	#define rFIOCLR0         (*((volatile unsigned long *) 0x3FFFC01C))      /* lpc210x only */
	#define rFIOCLR1         (*((volatile unsigned long *) 0x3FFFC01D))      /* lpc210x only */
	#define rFIOCLR2         (*((volatile unsigned long *) 0x3FFFC01E))      /* lpc210x only */
	#define rFIOCLR3         (*((volatile unsigned long *) 0x3FFFC01F))      /* lpc210x only */
	#define rFIOCLRL         (*((volatile unsigned long *) 0x3FFFC01C))      /* lpc210x only */
	#define rFIOCLRH         (*((volatile unsigned long *) 0x3FFFC01E))      /* lpc210x only */

	/* Universal Asynchronous Receiver Transmitter 0 (UART0) */
	/* 通用异步串行口0(UART0)的特殊寄存器 */
	#define rU0RBR           (*((volatile unsigned char *) 0xE000C000))
	#define rU0THR           (*((volatile unsigned char *) 0xE000C000))
	#define rU0DLL           (*((volatile unsigned char *) 0xE000C000))
	#define rU0DLM           (*((volatile unsigned char *) 0xE000C004))
	#define rU0IER           (*((volatile unsigned char *) 0xE000C004))
	#define rU0IIR           (*((volatile unsigned char *) 0xE000C008))
	#define rU0FCR           (*((volatile unsigned char *) 0xE000C008))
	#define rU0LCR           (*((volatile unsigned char *) 0xE000C00C))
	#define rU0LSR           (*((volatile unsigned char *) 0xE000C014))
	#define rU0SCR           (*((volatile unsigned char *) 0xE000C01C))
	#define rU0ACR           (*((volatile unsigned char *) 0xE000C020))
	#define rU0FDR           (*((volatile unsigned char *) 0xE000C028))
	#define rU0TER           (*((volatile unsigned char *) 0xE000C030))

⌨️ 快捷键说明

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