www.pudn.com > at91rm9200bsp.rar > AT91dbgu.h


/*
 *	debug unit register declareation
 */
#ifndef _AT91_DBGU_DEFINE_HEADER
#define _AT91_DBGU_DEFINE_HEADER



#define	DBGU_BASE_ADDR			0xFFFFF200
#ifndef	_ASMLANGUAGE
#include "sioLib.h"
typedef struct	_DBGU_S {                                 
	AT91_REG	 DBGU_CR; 			/* Control Register   					*/
	AT91_REG	 DBGU_MR; 			/* Mode Register                        */
	AT91_REG	 DBGU_IER; 			/* Interrupt Enable Register            */
	AT91_REG	 DBGU_IDR; 			/* Interrupt Disable Register           */
	AT91_REG	 DBGU_IMR; 			/* Interrupt Mask Register              */
	AT91_REG	 DBGU_CSR; 			/* Channel Status Register              */
	AT91_REG	 DBGU_RHR; 			/* Receiver Holding Register            */
	AT91_REG	 DBGU_THR; 			/* Transmitter Holding Register         */
	AT91_REG	 DBGU_BRGR; 		/* Baud Rate Generator Register         */
	AT91_REG	 Reserved3[7]; 		/*                                      */
	AT91_REG	 DBGU_C1R; 			/* Chip ID1 Register                    */
	AT91_REG	 DBGU_C2R; 			/* Chip ID2 Register                    */
	AT91_REG	 DBGU_FNTR; 		/* Force NTRST Register                 */
	AT91_REG	 Reserved4[45]; 	/*                                      */
	PDC_S		 DBGU_PDC;
} DBGU_S;

/*-------------------------*/


typedef struct _AT91_DBGU_CHAN
{
    /* must be first */
	
    SIO_CHAN		sio;		/* standard SIO_CHAN element */
	
    /* callbacks */
	
    STATUS	        (*getTxChar) ();
    STATUS	        (*putRcvChar) ();
    void *	        getTxArg;
    void *	        putRcvArg;
	
    /* register addresses */
	
    DBGU_S		*regs;		/*UART Registers*/
	
	
    /* misc */
    UINT32		options;	/* Hardware options */
    int         intrmode;          	/* current mode (interrupt or poll) */
    int         baudRate;       /* input clock frequency */
	UINT32		errcount;
	
} AT91_DBGU_CHAN;


#endif	/* _ASMLANGUANGE */


/*
 *	for DBGU_CR:
 */


#define DBGU_CR_RESET_RECV		(1<<2)
#define DBGU_CR_RESET_TRAN		(1<<3)
#define DBGU_CR_RX_ENA			(1<<4)
#define DBGU_CR_RX_DIS			(1<<5)
#define DBGU_CR_TX_ENA			(1<<6)
#define DBGU_CR_TX_DIS			(1<<7)
#define DBGU_CR_RESET_STATUS	(1<<8)

/*
 *	for DBGU_MR:
 */

#define DBGU_MR_PARITY_EVEN				(0<<9)
#define DBGU_MR_PARITY_ODD				(1<<9)
#define DBGU_MR_PARITY_FORCE_0			(2<<9)
#define DBGU_MR_PARITY_FORCE_1			(3<<9)
#define DBGU_MR_PARITY_NONE				(4<<9)
#define DBGU_MR_TEST_NORMAL_MODE		(0<<14)
#define DBGU_MR_TEST_EACO_MODE			(1<<14)
#define DBGU_MR_TEST_LOCALLOOP_NORMAL	(2<<14)
#define DBGU_MR_TEST_REMOTELOOP_NORMAL	(3<<14)


/*
 *	for DBGU_IER and DBGU_IDR
 */
#define DBGU_IE_DR_RXRDY		(1<<0)		/*RXRDY Interrupt Enable                                  */
#define DBGU_IE_DR_TXRDY        (1<<1)		/*TXRDY Interrupt Enable                                  */
#define DBGU_IE_DR_ENDRX        (1<<3)		/*ENDRX: End of Receive Transfer Interrupt Enable         */
#define DBGU_IE_DR_ENDTX        (1<<4)		/*ENDTX: End of Transmit Interrupt Enable                 */
#define DBGU_IE_DR_OVRE         (1<<5)		/*OVRE: Overrun Error Interrupt Enable                    */
#define DBGU_IE_DR_FRAME        (1<<6)		/*FRAME: Framing Error Interrupt Enable                   */
#define DBGU_IE_DR_PARE         (1<<7)		/*PARE: Parity Error Interrupt Enable                     */
#define DBGU_IE_DR_TXEMPTY      (1<<9)		/*TXEMPTY: TXEMPTY Interrupt Enable                       */
#define DBGU_IE_DR_TXBUFE       (1<<11)		/*TXBUFE: Buffer Empty Interrupt Enable                   */
#define DBGU_IE_DR_RXBUFF       (1<<12)		/*RXBUFF: Buffer Full Interrupt Enable                    */
#define DBGU_IE_DR_COMMTX       (1<<30)		/*Enable COMMTX (from ARM) Interrupt					  */
#define DBGU_IE_DR_COMMRX       (1<<31)		/*Enable COMMRX (from ARM) Interrupt       				  */


#define DBGU_CSR_RXRDY		  (1<<0)		
#define DBGU_CSR_TXRDY        (1<<1)		
#define DBGU_CSR_ENDRX        (1<<3)		
#define DBGU_CSR_ENDTX        (1<<4)		
#define DBGU_CSR_OVRE         (1<<5)		
#define DBGU_CSR_FRAME        (1<<6)		
#define DBGU_CSR_PARE         (1<<7)		
#define DBGU_CSR_TXEMPTY      (1<<9)		
#define DBGU_CSR_TXBUFE       (1<<11)		
#define DBGU_CSR_RXBUFF       (1<<12)		
#define DBGU_CSR_COMMTX       (1<<30)		
#define DBGU_CSR_COMMRX       (1<<31)

#endif	/*_AT91_DBGU_DEFINE_HEADER*/