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

📄 mpc821.h

📁 WINDOWS CE BSP用于SBC2440开发板
💻 H
📖 第 1 页 / 共 3 页
字号:
// Copyright (c) 1999-2000 Microsoft Corporation.  All rights reserved.
/*
 * Definitions of the parameter area RAM.
 * Note that different structures are overlaid
 * at the same offsets for the different modes
 * of operation.
 *
 */


#ifndef ASM_ONLY

/***************************************************************
  Declare smc_regs structure outside of PDA to enable external 
  use in drivers.
***************************************************************/

struct smc_regs {
	volatile unsigned short	smc_smcmr;	/* SMC mode reg */
	volatile unsigned char	RESERVED34[0x2]; /* Reserved area */

	volatile unsigned char	RESERVED35; /* Reserved area */
	volatile unsigned char	smc_smce;	/* SMC event reg */

	volatile unsigned char	RESERVED36[0x3]; /* Reserved area */
	volatile unsigned char	smc_smcm;	/* SMC mask reg */

	volatile unsigned char	RESERVED37[0x6]; /* Reserved area */
};

/*****************************************************************
	HDLC parameter RAM
*****************************************************************/

struct hdlc_pram {
	/*
	 * SCC parameter RAM
	 */
	unsigned short	tbase;		/* TX BD base address */
	unsigned short	rbase;		/* RX BD base address */
	unsigned short	mrblr;		/* Rx buffer length */
	unsigned char	tfcr;		/* Tx function code */
	unsigned char	rfcr;		/* Rx function code */
	unsigned long	rstate;		/* Rx internal state */
	unsigned long	rptr;		/* Rx internal data pointer */
	unsigned short	rcount;		/* Rx internal byte count */
	unsigned short	rbptr;		/* rb BD Pointer */
	unsigned long	rtemp;		/* Rx temp */
	unsigned long	tstate;		/* Tx internal state */
	unsigned long	tptr;		/* Tx internal data pointer */
	unsigned short	tcount;		/* Tx byte count */
	unsigned short	tbptr;		/* Tx BD pointer */
	unsigned long	ttemp;		/* Tx temp */
	unsigned long	rcrc;		/* temp receive CRC */
	unsigned long	tcrc;		/* temp transmit CRC */

	/*
	 * HDLC specific parameter RAM
	 */
	unsigned char	RESERVED1[4];	/* Reserved area */
	unsigned long	c_mask;		/* CRC constant */
	unsigned long	c_pres;		/* CRC preset */
	unsigned short	crcec;		/* CRC error counter */
	unsigned short	disfc;		/* discarded frame counter */
	unsigned short	nmarc;		/* nonmatching address rx cnt */
	unsigned short	abtsc;		/* abort sequence counter */
	unsigned short	mflr;		/* maximum frame length reg */
	unsigned short	retrc;		/* frame retransmission cnt */
	unsigned short	rfthr;		/* received frames threshold */
	unsigned short	max_cnt;	/* maximum length counter */
	unsigned short	hmask;		/* user defined frm addr mask */
	unsigned short	rfcnt;		/* received frames count */
	unsigned short	haddr2;	    /* user defined frm address 2 */
	unsigned short	haddr1;	    /* user defined frm address 1 */
	unsigned short	haddr4;	    /* user defined frm address 4 */
	unsigned short	haddr3;	    /* user defined frm address 3 */
	unsigned short	tmp_mb;	    /* temp */
	unsigned short	tmp;	    /* temp */
};


/*****************************************************************
	ASYNC HDLC parameter RAM
*****************************************************************/

struct async_hdlc_pram {
	/*
	 * SCC parameter RAM
	 */
	unsigned short	tbase;		/* TX BD base address */
	unsigned short	rbase;		/* RX BD base address */
	unsigned short	mrblr;		/* Rx buffer length */
	unsigned char	tfcr;		/* Tx function code */
	unsigned char	rfcr;		/* Rx function code */
	unsigned long	rstate;		/* Rx internal state */
	unsigned long	rptr;		/* Rx internal data pointer */
	unsigned short	rcount;		/* Rx internal byte count */
	unsigned short	rbptr;		/* rb BD Pointer */
	unsigned long	rtemp;		/* Rx temp */
	unsigned long	tstate;		/* Tx internal state */
	unsigned long	tptr;		/* Tx internal data pointer */
	unsigned short	tcount;		/* Tx byte count */
	unsigned short	tbptr;		/* Tx BD pointer */
	unsigned long	ttemp;		/* Tx temp */
	unsigned long	rcrc;		/* temp receive CRC */
	unsigned long	tcrc;		/* temp transmit CRC */

	/*
	 * ASYNC HDLC specific parameter RAM
	 */
	unsigned char	RESERVED1[4];	/* Reserved area */
	unsigned long	c_mask;		/* CRC constant */
	unsigned long	c_pres;		/* CRC preset */
	unsigned short	eof;		/* end of flag character */
	unsigned short	bof;		/* begining of flag character */
	unsigned char	RESERVED2a[2];	/* Reserved area */
	unsigned short	esc;		/* control escape character */
	unsigned short	zero;		/* zero */
	unsigned char	RESERVED2b[2];	/* Reserved area */
	unsigned short	rfthr;		/* received frames threshold */
	unsigned char	RESERVED3[2];	/* Reserved area */
	unsigned char	RESERVED4[4];	/* Reserved area */
	unsigned long	txctl_tbl;	/* Tx ctl char mapping table */
	unsigned long	rxctl_tbl;	/* Rx ctl char mapping table */
	unsigned short	nof;		/* Number of opening flags */
};


/*****************************************************************
	UART parameter RAM
*****************************************************************/

/*
 * bits in uart control characters table
 */
#define	CC_INVALID	0x8000		/* control character is valid */
#define	CC_REJ		0x4000		/* don't store char in buffer */
#define	CC_CHAR		0x00ff		/* control character */

/* UART */
struct uart_pram {
	/*
	 * SCC parameter RAM
	 */
  unsigned short  tbase;      /* TX BD base address */
  unsigned short  rbase;      /* RX BD base address */
  unsigned short  mrblr;      /* Rx buffer length */
  unsigned char   tfcr;       /* Tx function code */
  unsigned char   rfcr;       /* Rx function code */
  unsigned long   rstate;     /* Rx internal state */
  unsigned long   rptr;       /* Rx internal data pointer */
  unsigned short  rcount;     /* Rx internal byte count */
  unsigned short  rbptr;      /* rb BD Pointer */
  unsigned long   rx_temp;    /* Rx temp */
  unsigned long   tstate;     /* Tx internal state */
  unsigned long   tptr;       /* Tx internal data pointer */
  unsigned short  tcount;     /* Tx byte count */
  unsigned short  tbptr;      /* Tx BD pointer */
  unsigned long   ttemp;      /* Tx temp */
  unsigned long   rcrc;       /* temp receive CRC */
  unsigned long   tcrc;       /* temp transmit CRC */

  /*
   * UART specific parameter RAM
   */
  unsigned char   RESERVED1[8];   /* Reserved area */
  unsigned short  idlc;       /* rx idle counter (internal) */
  unsigned short  max_idl;    /* maximum idle characters */
  unsigned short  parec;      /* Rx parity error counter */
  unsigned short  brkcr;      /* break count register */
  unsigned short  nosec;      /* Rx noise counter */
  unsigned short  frmer;      /* Rx framing error counter */
  unsigned short  brkln;      /* Reaceive break length */
  unsigned short  brkec;      /* Rx break character counter */
  unsigned short  uaddr2;     /* address character 2 */
  unsigned short  uaddr1;     /* address character 1 */
  unsigned short  toseq;      /* Tx out of sequence char */
  unsigned short  rtemp;      /* temp storage */
  unsigned short  cc[8];      /* Rx control characters */
  unsigned short  rccr;       /* Rx control char register */
  unsigned short  rccm;       /* Rx control char mask */
  unsigned short  rlbc;       /* Receive last break char */
};


/*****************************************************************
	BISYNC parameter RAM
*****************************************************************/

struct bisync_pram {
	/*
	 * SCC parameter RAM
	 */
    unsigned short  tbase;      /* TX BD base address */
    unsigned short  rbase;      /* RX BD base address */
    unsigned short  mrblr;      /* Rx buffer length */
    unsigned char   tfcr;       /* Tx function code */
    unsigned char   rfcr;       /* Rx function code */
    unsigned long   rstate;     /* Rx internal state */
    unsigned long   rptr;       /* Rx internal data pointer */
    unsigned short  rcount;     /* Rx internal byte count */
    unsigned short  rbptr;      /* rb BD Pointer */
    unsigned long   rtemp;      /* Rx temp */
    unsigned long   tstate;     /* Tx internal state */
    unsigned long   tptr;       /* Tx internal data pointer */
    unsigned short  tcount;     /* Tx byte count */
    unsigned short  tbptr;      /* Tx BD pointer */
    unsigned long   ttemp;      /* Tx temp */
    unsigned long   rcrc;       /* temp receive CRC */
    unsigned long   tcrc;       /* temp transmit CRC */

    /*
     * BISYNC specific parameter RAM
     */
    unsigned char   RESERVED1[4];   /* Reserved area */
    unsigned long   crcc;       /* CRC Constant Temp Value */
    unsigned short  ptcrc;      /* Preset Transmitter CRC-16/LRC */
    unsigned short  prcrc;      /* Preset Receiver CRC-16/LRC */
    unsigned short  bsync;      /* BISYNC SYNC Character */
    unsigned short  parec;      /* Receive Parity Error Counter */
    unsigned short  cc[2];      /* Rx control characters */
    unsigned short  bdle;       /* BISYNC DLE Character */
    unsigned short  cc1[4];     /* Rx control characters */
    unsigned short  rccm;       /* Receive Control Character Mask */
    unsigned short  cc2[2];     /* Rx control characters */
};

/*****************************************************************
	IOM2 parameter RAM
	(overlaid on tx bd[5] of SCC channel[2])
*****************************************************************/
struct iom2_pram {
	unsigned short	monitor_data;	/* monitor data */
	unsigned short	ci_data;	/* ci data */
	unsigned short	rstate;		/* receiver state */
	unsigned short	tstate;		/* transmitter state */
};

/*****************************************************************
	SPI/SMC parameter RAM
	(overlaid on tx bd[6,7] of SCC channel[2])
*****************************************************************/

#define	SPI_R	0x8000		/* Ready bit in BD */

struct spi_pram {
    unsigned short  tbase;      /* Tx BD Base Address */
    unsigned short  rbase;      /* Rx BD Base Address */
    unsigned short  mrblr;      /* Rx buffer length */
    unsigned char   tfcr;       /* Tx function code */
    unsigned char   rfcr;       /* Rx function code */
    unsigned long   rstate;     /* Rx internal state */
    unsigned long   rptr;       /* Rx internal data pointer */
    unsigned short  rcount;     /* Rx internal byte count */
    unsigned short  rbptr;      /* rb BD Pointer */
    unsigned long   rtemp;      /* Rx temp */
    unsigned long   tstate;     /* Tx internal state */
    unsigned long   tptr;       /* Tx internal data pointer */
    unsigned short  tcount;     /* Tx byte count */
    unsigned short  tbptr;      /* Tx BD pointer */
    unsigned long   ttemp;      /* Tx temp */
};

typedef struct smc_uart_pram {
    unsigned short  tbase;      /* Tx BD Base Address */
    unsigned short  rbase;      /* Rx BD Base Address */
    unsigned short  mrblr;      /* Rx buffer length */
    unsigned char   tfcr;       /* Tx function code */
    unsigned char   rfcr;       /* Rx function code */
    unsigned long   rstate;     /* Rx internal state */
    unsigned long   rptr;       /* Rx internal data pointer */
    unsigned short  rcount;     /* Rx internal byte count */
    unsigned short  rbptr;      /* rb BD Pointer */
    unsigned long   rtemp;      /* Rx temp */
    unsigned long   tstate;     /* Tx internal state */
    unsigned long   tptr;       /* Tx internal data pointer */
    unsigned short  tcount;     /* Tx byte count */
    unsigned short  tbptr;      /* Tx BD pointer */
    unsigned long   ttemp;      /* Tx temp */
    unsigned short  idlc;       /* Temporary IDLE Counter */
    unsigned short  max_idl;    /* Maximum IDLE Characters */
    unsigned short  brkec;      /* Rx Break Condition Counter */
    unsigned short  brkln;      /* Last Rx Break Length */
    unsigned short  r_mask;     /* Temporary bit mask */
    unsigned short  brkcr;      /* Break Count Register (Tx) */
}smc_uart_pram;

typedef struct smc_trnsp_pram {
    unsigned short  tbase;      /* Tx BD Base Address */
    unsigned short  rbase;      /* Rx BD Base Address */
    unsigned short  mrblr;      /* Rx buffer length */
    unsigned char   tfcr;       /* Tx function code */
    unsigned char   rfcr;       /* Rx function code */
    unsigned long   rstate;     /* Rx internal state */
    unsigned long   rptr;       /* Rx internal data pointer */
    unsigned short  rcount;     /* Rx internal byte count */
    unsigned short  rbptr;      /* rb BD Pointer */
    unsigned long   rtemp;      /* Rx temp */
    unsigned long   tstate;     /* Tx internal state */
    unsigned long   tptr;       /* Tx internal data pointer */
    unsigned short  tcount;     /* Tx byte count */
    unsigned short  tbptr;      /* Tx BD pointer */
    unsigned long   ttemp;      /* Tx temp */
    unsigned short  reserved[5];    /* Reserved */
} smc_trnsp_pram;

⌨️ 快捷键说明

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