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

📄 mcf5307.h

📁 一个外国牛人做的ucos2向mcf5307的移植
💻 H
📖 第 1 页 / 共 4 页
字号:

#define MCF5307_DRAMC_DCR_COC		(0x1000) /* Command on Clock Enable		*/
#define MCF5307_DRAMC_DCR_IS		(0x0800) /* Initiate Self Refresh Command	*/
#define MCF5307_DRAMC_DCR_RTIM_3	(0x0000) /* 3 Clocks Between REF and ACTV Cmds	*/
#define MCF5307_DRAMC_DCR_RTIM_6	(0x0200) /* 6 Clocks Between REF and ACTV Cmds	*/
#define MCF5307_DRAMC_DCR_RTIM_9	(0x0400) /* 9 Clocks Between REF and ACTV Cmds	*/

#define MCF5307_DRAMC_DACR_CASL_1	(0x00000000) /* 1 Clock From CAS to Data	*/
#define MCF5307_DRAMC_DACR_CASL_2	(0x00001000) /* 2 Clock From CAS to Data	*/
#define MCF5307_DRAMC_DACR_CASL_3	(0x00002000) /* 3 Clock From CAS to Data	*/
#define MCF5307_DRAMC_DACR_CBM(a)	(((a)&0x00000007)<<8) /* Command and Bank Mux	*/
#define MCF5307_DRAMC_DACR_IMRS		(0x00000040) /* Initiate Mode Register Set Cmd	*/
#define MCF5307_DRAMC_DACR_IP		(0x00000008) /* Initiate Precharge All Command	*/
#define MCF5307_DRAMC_DACR_PM		(0x00000004) /* Continuous Page	Mode		*/


/************************************************************************/
/*									*/
/*  Timer Registers							*/
/*									*/
/************************************************************************/

typedef volatile struct
{
	NATURAL32	reserved0[0x50];
	NATURAL16	TMR1;		/* Timer 1 Mode Register	*/
	NATURAL16	reserved1;
	NATURAL16	TRR1;		/* Timer 1 Reference Register	*/
	NATURAL16	reserved2;
	NATURAL16	TCR1;		/* Timer 1 Capture Register	*/
	NATURAL16	reserved3;
	NATURAL16	TCN1;		/* Timer 1 Counter		*/
	NATURAL16	reserved4;
	NATURAL8	reserved5;
	NATURAL8	TER1;		/* Timer 1 Event Register	*/
	NATURAL16	reserved6;
	NATURAL32	reserved7[0xb];
	NATURAL16	TMR2;		/* Timer 2 Mode Register	*/
	NATURAL16	reserved8;
	NATURAL16	TRR2;		/* Timer 2 Reference Register	*/
	NATURAL16	reserved9;
	NATURAL16	TCR2;		/* Timer 2 Capture Register	*/
	NATURAL16	reserved10;
	NATURAL16	TCN2;		/* Timer 2 Counter		*/
	NATURAL16	reserved11;
	NATURAL8	reserved12;
	NATURAL8	TER2;		/* Timer 2 Event Register	*/
} MCF5307_TIMER;

#define MCF5307_TIMER_TMR_PS(a)		(((a)&0x00FF)<<8) /* Prescaler Value		*/
#define MCF5307_TIMER_TMR_CE_ANY	(0x00C0) /* Capture on Any Edge			*/
#define MCF5307_TIMER_TMR_CE_FALL	(0x0080) /* Capture on Falling Edge		*/
#define MCF5307_TIMER_TMR_CE_RISE	(0x0040) /* Capture on Rising Edge		*/
#define MCF5307_TIMER_TMR_CE_NONE	(0x0000) /* Disable Capture Event		*/
#define MCF5307_TIMER_TMR_OM		(0x0020) /* Output Mode				*/
#define MCF5307_TIMER_TMR_ORI		(0x0010) /* Output Reference Interrupt Enable	*/
#define MCF5307_TIMER_TMR_FRR		(0x0008) /* Restart After Reference Value	*/
#define MCF5307_TIMER_TMR_CLK_TIN	(0x0006) /* TIN is Input Clock Source		*/
#define MCF5307_TIMER_TMR_CLK_DIV16	(0x0004) /* Sys Clk / 16 is Input Clock Source	*/
#define MCF5307_TIMER_TMR_CLK_MSCLK	(0x0002) /* Sys Clk is Input Clock Source	*/
#define MCF5307_TIMER_TMR_CLK_STOP	(0x0000) /* Stop Count				*/
#define MCF5307_TIMER_TMR_RST		(0x0001) /* Enable Timer			*/
						 /* H to L will Reset Registers		*/

#define MCF5307_TIMER_TER_REF		(0x02)	/* Output Reference Event		*/
#define MCF5307_TIMER_TER_CAP		(0x01)	/* Capture Event			*/


/****************************************************************************************/
/*											*/
/*  UART Registers									*/
/*	Several UART registers contain overlapped information for receiving (reads) and	*/
/*	transmitting (writes).  To see the programming process, please refer to the	*/
/*	User's manual.									*/
/*											*/
/****************************************************************************************/

typedef volatile struct
{
	NATURAL32	reserved0[0x70];
	NATURAL8	UMR11_UMR21;	/* UART 1 (Receive / Transmit) Mode Register	*/
	NATURAL8	reserved1;
	NATURAL16	reserved2;
	NATURAL8	USR1_UCSR1;	/* UART 1 (Status / Clock-Select) Register	*/
	NATURAL8	reserved3;
	NATURAL16	reserved4;
	NATURAL8	UCR1;		/* UART 1 ( -- / Command) Register		*/
	NATURAL8	reserved5;
	NATURAL16	reserved6;
	NATURAL8	URB1_UTB1;	/* UART 1 (Receive / Transmit) Buffer		*/
	NATURAL8	reserved7;
	NATURAL16	reserved8;
	NATURAL8	UIPCR1_UACR1;	/* UART 1 (Input Port Change / Aux Control) Reg	*/
	NATURAL8	reserved9;
	NATURAL16	reserved10;
	NATURAL8	UISR1_UIMR1;	/* UART 1 (Interrupt Status / Interrupt Mask)	*/
	NATURAL8	reserved11;
	NATURAL16	reserved12;
	NATURAL8	UBG11;		/* UART 1 Baud Rate Generator Prescale MSB	*/
	NATURAL8	reserved13;
	NATURAL16	reserved14;
	NATURAL8	UBG21;		/* UART 1 Baud Rate Generator Prescale LSB	*/
					/* The minimum value for UBG concatenated is 2	*/
	NATURAL8	reserved15;
	NATURAL16	reserved16;
	NATURAL32	reserved17[4];
	NATURAL8	UIVR1;		/* UART 1 (Interrupt Vector / ") Register	*/
	NATURAL8	reserved18;
	NATURAL16	reserved19;
	NATURAL8	UIP1;		/* UART 1 (Input Port / --) Register		*/
	NATURAL8	reserved20;
	NATURAL16	reserved21;
	NATURAL8	UOP11;		/* UART 1 (-- / Output Port Bit Set Command)	*/
	NATURAL8	reserved22;
	NATURAL16	reserved23;
	NATURAL8	UOP01;		/* UART 1 (-- / Output Port Bit Reset Command)	*/
} MCF5307_UART1;

typedef volatile struct
{
	NATURAL32	reserved0[0x80];
	NATURAL8	UMR12_UMR22;	/* UART 2 (Receive / Transmit) Mode Register	*/
	NATURAL8	reserved1;
	NATURAL16	reserved2;
	NATURAL8	USR2_UCSR2;	/* UART 2 (Status / Clock-Select) Register	*/
	NATURAL8	reserved3;
	NATURAL16	reserved4;
	NATURAL8	UCR2;		/* UART 2 ( -- / Command) Register		*/
	NATURAL8	reserved5;
	NATURAL16	reserved6;
	NATURAL8	URB2_UTB2;	/* UART 2 (Receive / Transmit) Buffer		*/
	NATURAL8	reserved7;
	NATURAL16	reserved8;
	NATURAL8	UIPCR2_UACR2;	/* UART 2 (Input Port Change / Aux Control) Reg	*/
	NATURAL8	reserved9;
	NATURAL16	reserved10;
	NATURAL8	UISR2_UIMR2;	/* UART 2 (Interrupt Status / Interrupt Mask)	*/
	NATURAL8	reserved11;
	NATURAL16	reserved12;
	NATURAL8	UBG12;		/* UART 2 Baud Rate Generator Prescale MSB	*/
	NATURAL8	reserved13;
	NATURAL16	reserved14;
	NATURAL8	UBG22;		/* UART 2 Baud Rate Generator Prescale LSB	*/
					/* The minimum value for UBG concatenated is 2	*/
	NATURAL8	reserved15;
	NATURAL16	reserved16;
	NATURAL32	reserved17[4];
	NATURAL8	UIVR2;		/* UART 2 (Interrupt Vector / ") Register	*/
	NATURAL8	reserved18;
	NATURAL16	reserved19;
	NATURAL8	UIP2;		/* UART 2 (Input Port / --) Register		*/
	NATURAL8	reserved20;
	NATURAL16	reserved21;
	NATURAL8	UOP12;		/* UART 2 (-- / Output Port Bit Set Command)	*/
	NATURAL8	reserved22;
	NATURAL16	reserved23;
	NATURAL8	UOP02;		/* UART 2 (-- / Output Port Bit Reset Command)	*/
} MCF5307_UART2;

 /***********************************************************************/
 /*									*/
 /*  In the first register, UMR1 is for reads and UMR2 is for writes.	*/
 /*									*/
 /***********************************************************************/

#define MCF5307_UART_UMR1_RXRTS			(0x80)	/* Receive Request-to-Send	*/
#define MCF5307_UART_UMR1_RXIRQ			(0x40)	/* Receive Interrupt Select	*/
#define MCF5307_UART_UMR1_ERR			(0x20)	/* Error Mode			*/
#define MCF5307_UART_UMR1_PM_MULTI_ADDR		(0x1C)	/* Parity: Multidrop Adr Char	*/
#define MCF5307_UART_UMR1_PM_MULTI_DATA		(0x18)	/* Parity: Multidrop Data Char	*/
#define MCF5307_UART_UMR1_PM_NONE		(0x10)	/* Parity: None			*/
#define MCF5307_UART_UMR1_PM_FORCE_HI		(0x0C)	/* Parity: Force High		*/
#define MCF5307_UART_UMR1_PM_FORCE_LO		(0x08)	/* Parity: Force Low		*/
#define MCF5307_UART_UMR1_PM_ODD		(0x04)	/* Parity: Odd Parity		*/
#define MCF5307_UART_UMR1_PM_EVEN		(0x00)	/* Parity: Even Parity		*/
#define MCF5307_UART_UMR1_BC_5			(0x00)	/* 5 Bits Per Character		*/
#define MCF5307_UART_UMR1_BC_6			(0x01)	/* 6 Bits Per Character		*/
#define MCF5307_UART_UMR1_BC_7			(0x02)	/* 7 Bits Per Character		*/
#define MCF5307_UART_UMR1_BC_8			(0x03)	/* 8 Bits Per Character		*/

#define MCF5307_UART_UMR2_CM_NORMAL		(0x00)	/* Normal Channel Mode		*/
#define MCF5307_UART_UMR2_CM_ECHO		(0x40)	/* Automatic Echo Channel Mode	*/
#define MCF5307_UART_UMR2_CM_LOCAL_LOOP		(0x80)	/* Local Loopback Channel Mode	*/
#define MCF5307_UART_UMR2_CM_REMOTE_LOOP	(0xC0)	/* Remote Loopback Channel Mode	*/
#define MCF5307_UART_UMR2_TXRTS			(0x20)	/* Transmitter Ready-to-Send	*/
#define MCF5307_UART_UMR2_TXCTS			(0x10)	/* Transmitter Clear-to-Send	*/
#define MCF5307_UART_UMR2_STOP_BITS_2		(0x0F)	/* 2 Stop Bits			*/
#define MCF5307_UART_UMR2_STOP_BITS(a)		((a)&0x0f)	/* Stop Bit Length	*/

 /***********************************************************************/
 /*									*/
 /*  In this next register, USR is for reads and UCSR is for writes.	*/
 /*									*/
 /***********************************************************************/

#define MCF5307_UART_USR_RB			(0x80)	/* Received Break		*/
#define MCF5307_UART_USR_FE			(0x40)	/* Framing Error		*/
#define MCF5307_UART_USR_PE			(0x20)	/* Parity Error			*/
#define MCF5307_UART_USR_OE			(0x10)	/* Overrun Error		*/
#define MCF5307_UART_USR_TXEMP			(0x08)	/* Transmitter Empty		*/
#define MCF5307_UART_USR_TXRDY			(0x04)	/* Transmitter Ready		*/
#define MCF5307_UART_USR_FFULL			(0x02)	/* FIFO Full			*/
#define MCF5307_UART_USR_RXRDY			(0x01)	/* Receiver Ready		*/

#define MCF5307_UART_UCSR_9600_BPS		(0xBB)	/* 9600 Baud w/ 3.6864 MHz clk	*/
#define MCF5307_UART_UCSR_RCS(a)		(((a)&0x0f)<<4) /* Receiver Clk Select	*/
#define MCF5307_UART_UCSR_TCS(a)		((a)&0x0f) /* Transmitter Clock Select	*/

 /***********************************************************************/
 /*									*/
 /*  In this next register, there is only UCR is for writes.		*/
 /*									*/
 /***********************************************************************/

#define MCF5307_UART_UCR_NONE			(0x00)	/* No Command			*/
#define MCF5307_UART_UCR_STOP_BREAK		(0x70)	/* Stop Break			*/
#define MCF5307_UART_UCR_START_BREAK		(0x60)	/* Start Break			*/
#define MCF5307_UART_UCR_RESET_BKCHGINT		(0x50)	/* Reset Break-Change Interrupt	*/
#define MCF5307_UART_UCR_RESET_ERROR		(0x40)	/* Reset Error Status		*/
#define MCF5307_UART_UCR_RESET_TX		(0x30)	/* Reset Transmitter		*/
#define MCF5307_UART_UCR_RESET_RX		(0x20)	/* Reset Receiver		*/
#define MCF5307_UART_UCR_RESET_MR		(0x10)	/* Reset Mode Register Pointer	*/
#define MCF5307_UART_UCR_TX_DISABLED		(0x08)	/* Transmitter Disabled		*/
#define MCF5307_UART_UCR_TX_ENABLED		(0x04)	/* Transmitter Enabled		*/
#define MCF5307_UART_UCR_RX_DISABLED		(0x02)	/* Receiver Disabled		*/
#define MCF5307_UART_UCR_RX_ENABLED		(0x01)	/* Receiver Enabled		*/

 /***********************************************************************/
 /*									*/
 /*  In this next register, UIPCR is for reads and UACR is for writes.	*/
 /*									*/
 /***********************************************************************/

#define MCF5307_UART_UIPCR_COS			(0x10)	/* Change-of-State at IPx input	*/
#define MCF5307_UART_UIPCR_CTS			(0x01)	/* Current State of CTS pin	*/

#define MCF5307_UART_UACR_BRG			(0x80)	/* Set 2 of Baud Rate Generator	*/
#define MCF5307_UART_UACR_CTMS_TIMER		(0x60)	/* Timer Mode and Source Select	*/
							/* Must set this mode and src	*/
#define MCF5307_UART_UACR_IEC			(0x01)	/* Input Enable Control		*/

 /***********************************************************************/
 /*									*/
 /*  In this next register, UISR is for reads and UIMR is for writes.	*/
 /*									*/
 /***********************************************************************/

#define MCF5307_UART_UISR_COS			(0x80)	/* Change-of-State at CTS input	*/
#define MCF5307_UART_UISR_DB			(0x04)	/* Receiver Has Detected Break	*/
#define MCF5307_UART_UISR_RXRDY			(0x02)	/* Receiver Ready or FIFO Full	*/
#define MCF5307_UART_UISR_TXRDY			(0x01)	/* Transmitter Ready		*/

#define MCF5307_UART_UIMR_COS			(0x80)	/* Enable Change-of-State Intpt	*/
#define MCF5307_UART_UIMR_DB			(0x04)	/* Enable Delta Break Interrupt	*/
#define MCF5307_UART_UIMR_FFULL			(0x02)	/* Enable FIFO Full Interrupt	*/
#define MCF5307_UART_UIMR_TXRDY			(0x01)	/* Enable Transmitter Rdy Intpt	*/

⌨️ 快捷键说明

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