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

📄 mcf5249.h

📁 用来测试mcf5249的嵌入式测试程序
💻 H
📖 第 1 页 / 共 5 页
字号:
#define MCF5249_SIM_AVCR_BLK		(0x01)			/* Block Address Strobe */		    

#define MCF5249_SIM_ICR_AVEC		(0x80)			/* Autovector Enable */	    
#define MCF5249_SIM_ICR_IL(a)		(((a)&0x07)<<2)	/* Interrupt Level */	    
#define MCF5249_SIM_ICR_IP_EXT		(0x02)			/* High Priority External */  
#define MCF5249_SIM_ICR_IP_INT		(0x01)			/* High Priority Internal */   

/**********************************************************************/
/*	Chip-Select Module, CS											  */
/**********************************************************************/
typedef volatile struct
{
	uint8	reserved1[0x80];
	uint16	CSAR0;		/* Chip-Select Address Register	- Bank 0 */    
	uint16	reserved2;
	uint32	CSMR0;		/* Chip-Select Mask Register	- Bank 0 */    
	uint16	reserved3;
	uint16	CSCR0;		/* Chip-Select Control Register	- Bank 0 */    
	uint16	CSAR1;		/* Chip-Select Address Register	- Bank 1 */    
	uint16	reserved4;
	uint32	CSMR1;		/* Chip-Select Mask Register	- Bank 1 */    
	uint16	reserved5;
	uint16	CSCR1;		/* Chip-Select Control Register	- Bank 1 */    
	uint16	CSAR2;		/* Chip-Select Address Register	- Bank 2 */    
	uint16	reserved6;
	uint32	CSMR2;		/* Chip-Select Mask Register	- Bank 2 */    
	uint16	reserved7;
	uint16	CSCR2;		/* Chip-Select Control Register	- Bank 2 */    
	uint16	CSAR3;		/* Chip-Select Address Register	- Bank 3 */    
	uint16	reserved8;
	uint32	CSMR3;		/* Chip-Select Mask Register	- Bank 3 */    
	uint16	reserved9;
	uint16	CSCR3;		/* Chip-Select Control Register	- Bank 3 */    
} MCF5249_CS;

/*  These definitions only exists in the CSMR for Banks 0 and 1. */		
#define MCF5249_CS_CSMR_MASK_4G		(0xFFFF0000)	/* Set Bank to 4G */	
#define MCF5249_CS_CSMR_MASK_2G		(0x7FFF0000)	/* Set Bank to 2G */	
#define MCF5249_CS_CSMR_MASK_1G		(0x3FFF0000)	/* Set Bank to 1G */	
#define MCF5249_CS_CSMR_MASK_1024M	(0x3FFF0000)	/* Set Bank to 1024M */
#define MCF5249_CS_CSMR_MASK_512M	(0x1FFF0000)	/* Set Bank to 512M */	
#define MCF5249_CS_CSMR_MASK_256M	(0x0FFF0000)	/* Set Bank to 256M */	
#define MCF5249_CS_CSMR_MASK_128M	(0x07FF0000)	/* Set Bank to 128M */	
#define MCF5249_CS_CSMR_MASK_64M	(0x03FF0000)	/* Set Bank to 64M */	
#define MCF5249_CS_CSMR_MASK_32M	(0x01FF0000)	/* Set Bank to 32M */	
#define MCF5249_CS_CSMR_MASK_16M	(0x00FF0000)	/* Set Bank to 16M */	
#define MCF5249_CS_CSMR_MASK_8M		(0x007F0000)	/* Set Bank to 8M */	
#define MCF5249_CS_CSMR_MASK_4M		(0x003F0000)	/* Set Bank to 4M */	
#define MCF5249_CS_CSMR_MASK_2M		(0x001F0000)	/* Set Bank to 2M */	
#define MCF5249_CS_CSMR_MASK_1M		(0x000F0000)	/* Set Bank to 1M */	
#define MCF5249_CS_CSMR_MASK_1024K	(0x000F0000)	/* Set Bank to 1024K */
#define MCF5249_CS_CSMR_MASK_512K	(0x00070000)	/* Set Bank to 512K	*/
#define MCF5249_CS_CSMR_MASK_256K	(0x00030000)	/* Set Bank to 256K */
#define MCF5249_CS_CSMR_MASK_128K	(0x00010000)	/* Set Bank to 128K */
#define MCF5249_CS_CSMR_MASK_64K	(0x00000000)	/* Set Bank to 64K */	
#define MCF5249_CS_CSMR_CPU			(0x00000020)	/* CPU and IACK Cycle Mask */ 

/*  The following definitions exist for all Banks 0-7 */					
#define MCF5249_CS_CSAR(a)		(((a)&0xFFFF0000)>>16)	/* Base Address */		
#define MCF5249_CS_CSBARx(a)	(((a)&0xFF000000)>>24)	/* Base for CS2-7 */	

#define MCF5249_CS_CSMR_WP		(0x00000100)	/* Write Protect */			
#define MCF5249_CS_CSMR_AM		(0x00000040)	/* Alternate Master Mask */	
#define MCF5249_CS_CSMR_CI		(0x00000020)	/* Interrupt Cycle Mask */		
#define MCF5249_CS_CSMR_SC		(0x00000010)	/* Supervisor Code Mask */		
#define MCF5249_CS_CSMR_SD		(0x00000008)	/* Supervisor Data Mask */		
#define MCF5249_CS_CSMR_UC		(0x00000004)	/* User Code Mask */			
#define MCF5249_CS_CSMR_UD		(0x00000002)	/* User Data Mask */			
#define MCF5249_CS_CSMR_V		(0x00000001)	/* Valid Register */			

#define MCF5249_CS_CSCR_WS(a)	(((a)&0x0F)<<10) /* Wait States */				
#define MCF5249_CS_CSCR_AA		(0x0100)		/* Auto Acknowledge Enable */	
#define MCF5249_CS_CSCR_PS_8	(0x0040)		/* Port Size:   8-bit */		
#define MCF5249_CS_CSCR_PS_16	(0x0080)		/* Port Size:  16-bit */		
#define MCF5249_CS_CSCR_PS_32	(0x0000)		/* Port Size:  32-bit */		
#define MCF5249_CS_CSCR_BEM		(0x0020)		/* Byte Module Enable */		
#define MCF5249_CS_CSCR_BSTR	(0x0010)		/* Burst Read Enable */		
#define MCF5249_CS_CSCR_BSTW	(0x0008)		/* Burst Write Enable */		

/**********************************************************************/
/*	DRAM Controller Module, DRAMC									  */
/**********************************************************************/
typedef volatile struct
{
	uint8	reserved1[0x100];
	uint16	DCR;		/* DRAM Control Register */				
	uint16	reserved2;
	uint32	reserved3;
	uint32	DACR0;		/* DRAM Address and Control Register 0 */	
	uint32	DMR0;		/* DRAM Controller Mask Register 0 */		
	uint32	DACR1;		/* DRAM Address and Control Register 1 */	
	uint32	DMR1;		/* DRAM Controller Mask Register 1 */		
} MCF5249_DRAMC;
 
/* Controls used by both Synchronous and Asynchronous DRAM */			
#define MCF5249_DRAMC_DCR_SO			(0x8000)		/* Synchronous Operation */	
#define MCF5249_DRAMC_DCR_NAM			(0x2000)		/* No Address Multiplexing */	
#define MCF5249_DRAMC_DCR_RC(a)			((a)&0x01FF)	/* Refresh Count */			

#define MCF5249_DRAMC_DACR_BASE(a)		((a)&0xFFFC0000) /* Base Address */			
#define MCF5249_DRAMC_DACR_RE			(0x00008000)	/* Refresh Enable */			
#define MCF5249_DRAMC_DACR_PS_32		(0x00000000)	/* Port Size:  32-bit */		
#define MCF5249_DRAMC_DACR_PS_8			(0x00000010)	/* Port Size:   8-bit */		
#define MCF5249_DRAMC_DACR_PS_16		(0x00000020)	/* Port Size:  16-bit */		

#define MCF5249_DRAMC_DCMR_MASK_4G		(0xFFFC0000)	/* DRAM Size of 4G */			
#define MCF5249_DRAMC_DCMR_MASK_2G		(0x7FFC0000)	/* DRAM Size of 2G */			
#define MCF5249_DRAMC_DCMR_MASK_1G		(0x3FFC0000)	/* DRAM Size of 1G */			
#define MCF5249_DRAMC_DCMR_MASK_1024M	(0x3FFC0000)	/* DRAM Size of 1024M */	
#define MCF5249_DRAMC_DCMR_MASK_512M	(0x1FFC0000)	/* DRAM Size of 512M */	
#define MCF5249_DRAMC_DCMR_MASK_256M	(0x0FFC0000)	/* DRAM Size of 256M */	
#define MCF5249_DRAMC_DCMR_MASK_128M	(0x07FC0000)	/* DRAM Size of 128M */	
#define MCF5249_DRAMC_DCMR_MASK_64M		(0x03FC0000)	/* DRAM Size of 64M */			
#define MCF5249_DRAMC_DCMR_MASK_32M		(0x01FC0000)	/* DRAM Size of 32M */			
#define MCF5249_DRAMC_DCMR_MASK_16M		(0x00FC0000)	/* DRAM Size of 16M	*/		
#define MCF5249_DRAMC_DCMR_MASK_8M		(0x007C0000)	/* DRAM Size of 8M */			
#define MCF5249_DRAMC_DCMR_MASK_4M		(0x003C0000)	/* DRAM Size of 4M */			
#define MCF5249_DRAMC_DCMR_MASK_2M		(0x001C0000)	/* DRAM Size of 2M */			
#define MCF5249_DRAMC_DCMR_MASK_1M		(0x000C0000)	/* DRAM Size of 1M */			
#define MCF5249_DRAMC_DCMR_MASK_1024K	(0x00040000)	/* DRAM Size of 1024K */		
#define MCF5249_DRAMC_DCMR_MASK_512K	(0x00000000)	/* DRAM Size of 512K */		
#define MCF5249_DRAMC_DCMR_WP			(0x00000100)	/* Write Protect */		
#define MCF5249_DRAMC_DCMR_CPU			(0x00000040)	/* CPU Space Ignored */		
#define MCF5249_DRAMC_DCMR_AM			(0x00000020)	/* Alternate Master Ignored */	
#define MCF5249_DRAMC_DCMR_SC			(0x00000010)	/* Supervisor Code Ignored */	
#define MCF5249_DRAMC_DCMR_SD			(0x00000008)	/* Supervisor Data Ignored */	
#define MCF5249_DRAMC_DCMR_UC			(0x00000004)	/* User Code Ignored */		
#define MCF5249_DRAMC_DCMR_UD			(0x00000002)	/* User Data Ignored */		
#define MCF5249_DRAMC_DCMR_V			(0x00000001)	/* Valid Register */		

/* Controls used only by Asynchronous DRAM*/				
#define MCF5249_DRAMC_DCR_RRA_2			(0x0000)		/* Refresh RAS Asserted 2 Clocks */	
#define MCF5249_DRAMC_DCR_RRA_3			(0x0800)		/* Refresh RAS Asserted 3 Clocks */	
#define MCF5249_DRAMC_DCR_RRA_4			(0x1000)		/* Refresh RAS Asserted 4 Clocks */	
#define MCF5249_DRAMC_DCR_RRA_5			(0x1800)		/* Refresh RAS Asserted 5 Clocks */	
#define MCF5249_DRAMC_DCR_RRP_1			(0x0000)		/* Refresh RAS Precharged 3 Clks */	
#define MCF5249_DRAMC_DCR_RRP_2			(0x0200)		/* Refresh RAS Precharged 3 Clks */	
#define MCF5249_DRAMC_DCR_RRP_3			(0x0400)		/* Refresh RAS Precharged 3 Clks */	
#define MCF5249_DRAMC_DCR_RRP_4			(0x0600)		/* Refresh RAS Precharged 3 Clks */	

#define MCF5249_DRAMC_DACR_CAS_1		(0x00000000)	/* CAS Active 1 Clock */	 	
#define MCF5249_DRAMC_DACR_CAS_2		(0x00001000)	/* CAS Active 2 Clocks */	 	
#define MCF5249_DRAMC_DACR_CAS_3		(0x00002000)	/* CAS Active 3 Clocks */	 	
#define MCF5249_DRAMC_DACR_CAS_4		(0x00003000)	/* CAS Active 4 Clocks */	 	
#define MCF5249_DRAMC_DACR_RP_1			(0x00000000)	/* RAS Precharge 1 Clock */ 	
#define MCF5249_DRAMC_DACR_RP_2			(0x00000400)	/* RAS Precharge 2 Clocks */	
#define MCF5249_DRAMC_DACR_RP_3			(0x00000800)	/* RAS Precharge 3 Clocks */
#define MCF5249_DRAMC_DACR_RP_4			(0x00000C00)	/* RAS Precharge 4 Clocks */	
#define MCF5249_DRAMC_DACR_RNCN			(0x00000200)	/* RAS Negate to CAS Negate	 */
#define MCF5249_DRAMC_DACR_RCD_1		(0x00000000)	/* 1 Clock Between RAS and CAS */	
#define MCF5249_DRAMC_DACR_RCD_2		(0x00000100)	/* 2 Clocks Between RAS and CAS */
#define MCF5249_DRAMC_DACR_EDO			(0x00000040)	/* Extended Data Out */
#define MCF5249_DRAMC_DACR_PM_OFF		(0x00000000)	/* No Page Mode */	
#define MCF5249_DRAMC_DACR_PM_BURST		(0x00000004)	/* Page Mode on Burst Only */
#define MCF5249_DRAMC_DACR_PM_ON		(0x0000000C)	/* Continuous Page Mode */

/*	Controls used only by Synchronous DRAM */
#define MCF5249_DRAMC_DCR_COC		(0x1000) /* Command on Clock Enable */
#define MCF5249_DRAMC_DCR_IS		(0x0800) /* Initiate Self Refresh Command */
#define MCF5249_DRAMC_DCR_RTIM_3	(0x0000) /* 3 Clocks Between REF and ACTV Cmds */
#define MCF5249_DRAMC_DCR_RTIM_6	(0x0200) /* 6 Clocks Between REF and ACTV Cmds */
#define MCF5249_DRAMC_DCR_RTIM_9	(0x0400) /* 9 Clocks Between REF and ACTV Cmds */

#define MCF5249_DRAMC_DACR_CASL_1	(0x00000000) /* 1 Clock From CAS to Data */
#define MCF5249_DRAMC_DACR_CASL_2	(0x00001000) /* 2 Clock From CAS to Data */	
#define MCF5249_DRAMC_DACR_CASL_3	(0x00002000) /* 3 Clock From CAS to Data */	
#define MCF5249_DRAMC_DACR_CBM(a)	(((a)&0x00000007)<<8) /* Command and Bank Mux */
#define MCF5249_DRAMC_DACR_IMRS		(0x00000040) /* Initiate Mode Register Set Cmd */
#define MCF5249_DRAMC_DACR_IP		(0x00000008) /* Initiate Precharge All Command */
#define MCF5249_DRAMC_DACR_PM		(0x00000004) /* Continuous Page	Mode */

/***********************************************************************/
/*  Timer Registers													   */
/***********************************************************************/
typedef volatile struct
{
	uint8	reserved0[0x140];
	uint16	TMR0;		/* Timer 1 Mode Register */	
	uint16	reserved1;
	uint16	TRR0;		/* Timer 1 Reference Register */	
	uint16	reserved2;
	uint16	TCR0;		/* Timer 1 Capture Register */	
	uint16	reserved3;
	uint16	TCN0;		/* Timer 1 Counter */		
	uint16	reserved4;
	uint8	reserved5;
	uint8	TER0;		/* Timer 1 Event Register */	
	uint16	reserved6;
	uint32	reserved7[11];
	uint16	TMR1;		/* Timer 2 Mode Register */	
	uint16	reserved8;
	uint16	TRR1;		/* Timer 2 Reference Register */	
	uint16	reserved9;
	uint16	TCR1;		/* Timer 2 Capture Register */	
	uint16	reserved10;
	uint16	TCN1;		/* Timer 2 Counter */		
	uint16	reserved11;
	uint8	reserved12;
	uint8	TER1;		/* Timer 2 Event Register */	
} MCF5249_TIMER;

#define MCF5249_TIMER_TMR_PS(a)		(((a)&0x00FF)<<8) /* Prescaler Value */		
#define MCF5249_TIMER_TMR_CE_ANY	(0x00C0) /* Capture on Any Edge */			
#define MCF5249_TIMER_TMR_CE_FALL	(0x0080) /* Capture on Falling Edge */		
#define MCF5249_TIMER_TMR_CE_RISE	(0x0040) /* Capture on Rising Edge */		
#define MCF5249_TIMER_TMR_CE_NONE	(0x0000) /* Disable Capture Event */		
#define MCF5249_TIMER_TMR_OM		(0x0020) /* Output Mode */				
#define MCF5249_TIMER_TMR_ORI		(0x0010) /* Output Reference Interrupt Enable */	
#define MCF5249_TIMER_TMR_FRR		(0x0008) /* Restart After Reference Value */	
#define MCF5249_TIMER_TMR_CLK_TIN	(0x0006) /* TIN is Input Clock Source */		
#define MCF5249_TIMER_TMR_CLK_DIV16	(0x0004) /* Sys Clk / 16 is Input Clock Source */	
#define MCF5249_TIMER_TMR_CLK_MSCLK	(0x0002) /* Sys Clk is Input Clock Source */	
#define MCF5249_TIMER_TMR_CLK_STOP	(0x0000) /* Stop Count */				
#define MCF5249_TIMER_TMR_RST		(0x0001) /* Enable Timer */			

#define MCF5249_TIMER_TER_REF		(0x02)	/* Output Reference Event */		
#define MCF5249_TIMER_TER_CAP		(0x01)	/* Capture Event */			

/**********************************************************************/
/*	UART Module, UART												  */
/**********************************************************************/
typedef volatile struct
{
	uint8	reserved1[0x1C0];
	uint8	UMR;
	uint8	reserved2;
	uint8	reserved3;
	uint8	reserved4;
	uint8	USR;
	uint8	reserved5;
	uint8	reserved6;
	uint8	reserved7;
	uint8	UCR;
	uint8	reserved8;
	uint8	reserved9;
	uint8	reserved10;
	uint8	UBUF;
	uint8	reserved11;
	uint8	reserved12;
	uint8	reserved13;
	uint8	UACR;
	uint8	reserved14;
	uint8	reserved15;
	uint8	reserved16;
	uint8	UIR;
	uint8	reserved17;
	uint8	reserved18;
	uint8	reserved19;
	uint8	UBG1;
	uint8	reserved20;
	uint8	reserved21;
	uint8	reserved22;
	uint8	UBG2;
	uint32	reserved23[4];
	uint8	UIVR;
	uint8	reserved24;

⌨️ 快捷键说明

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