coldfireSio.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:8k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* coldfireSio.h - Motorola ColdFire internal UART header file */
  2. /* Copyright 1984-1998 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01b,09jul98,gls  Adapted to WRS coding conventions
  7. 01a,01may98,mem  created, based on m5204Sio.h.
  8. */
  9. /*
  10. This file contains constants and defines for the UART contained in several
  11. of the Motorola ColdFire ports.
  12. */
  13. #ifndef __INCcoldfireSioh
  14. #define __INCcoldfireSioh
  15. #ifdef __cplusplus
  16. extern "C" {
  17. #endif
  18. #ifndef _ASMLANGUAGE
  19. #include "sioLib.h"
  20. typedef struct
  21.     {
  22.     SIO_DRV_FUNCS  * pDrvFuncs; /* Driver functions */
  23. /* CallBacks */
  24.     STATUS   (*getTxChar)();
  25.     STATUS   (*putRcvChar)();
  26.     void *   getTxArg;
  27.     void *   putRcvArg;
  28.     
  29.     UINT clkRate; /* system clock rate */
  30.     UINT16 mode; /* SIO_MODE */
  31.     unsigned char intVec;
  32.     int options;
  33.     int intEnable;
  34.     UINT baudRate;
  35.     UCHAR oprCopy;
  36.     UCHAR acrCopy;
  37.     UCHAR imrCopy;
  38.     volatile UCHAR *mr; /* UART mode register */
  39.     volatile UCHAR *sr; /* UART status register */
  40.     volatile UCHAR *csr; /* UART clock select register */
  41.     volatile UCHAR *cr; /* UART command register */
  42.     volatile UCHAR *rb; /* UART receive buffer register */
  43.     volatile UCHAR *tb; /* UART transmit buffer register */
  44.     volatile UCHAR *ipcr; /* UART input port change register */
  45.     volatile UCHAR *acr; /* UART auxiliary control register */
  46.     volatile UCHAR *isr; /* UART interrupt status register */
  47.     volatile UCHAR *imr; /* UART interrupt mask register */
  48.     volatile UCHAR *bg1; /* UART baud generator prescale register 1 */
  49.     volatile UCHAR *bg2; /* UART baud generator prescale register 2 */
  50.     volatile UCHAR *ivr; /* UART interrupt vector register */
  51.     volatile UCHAR *ip; /* UART input port register */
  52.     volatile UCHAR *op1; /* UART output port set cmd */
  53.     volatile UCHAR *op2; /* UART output port reset cmd */
  54.     } COLDFIRE_CHAN;
  55. #endif /* _ASMLANGUAGE */
  56. /* register bit definitions */
  57. /* MR1 - mode register 1 */
  58. #define COLDFIRE_UART_MR1_BC0 (1 << 0) /* bits per char 0 */
  59. #define COLDFIRE_UART_MR1_BC1 (1 << 1) /* bits per char 1 */
  60. #define COLDFIRE_UART_MR1_PT (1 << 2) /* parity type */
  61. #define COLDFIRE_UART_MR1_PM0 (1 << 3) /* parity mode 0 */
  62. #define COLDFIRE_UART_MR1_PM1 (1 << 4) /* parity mode 1 */
  63. #define COLDFIRE_UART_MR1_ERR (1 << 5) /* error mode */
  64. #define COLDFIRE_UART_MR1_RX_IRQ (1 << 6)       /* receiver interrupt select */
  65. #define COLDFIRE_UART_MR1_RX_RTS (1 << 7) /* Rx RTS control */
  66. /* Some common modes */
  67. #define COLDFIRE_UART_MR1_BITS_CHAR_5 0
  68. #define COLDFIRE_UART_MR1_BITS_CHAR_6 COLDFIRE_UART_MR1_BC0
  69. #define COLDFIRE_UART_MR1_BITS_CHAR_7 COLDFIRE_UART_MR1_BC1
  70. #define COLDFIRE_UART_MR1_BITS_CHAR_8 (COLDFIRE_UART_MR1_BC0 
  71.  | COLDFIRE_UART_MR1_BC1)
  72. #define COLDFIRE_UART_MR1_NO_PARITY (COLDFIRE_UART_MR1_PM1)
  73. #define COLDFIRE_UART_MR1_PAR_MODE_MULTI (COLDFIRE_UART_MR1_PM0 
  74.  | COLDFIRE_UART_MR1_PM1)
  75. #define COLDFIRE_UART_MR1_EVEN_PARITY 0
  76. #define COLDFIRE_UART_MR1_ODD_PARITY COLDFIRE_UART_MR1_PT
  77. /* MR2 - mode register 2 */
  78. #define COLDFIRE_UART_MR2_SB0 (1 << 0) /* stop bit control 0 */
  79. #define COLDFIRE_UART_MR2_SB1 (1 << 1) /* stop bit control 1 */
  80. #define COLDFIRE_UART_MR2_SB2 (1 << 2) /* stop bit control 2 */
  81. #define COLDFIRE_UART_MR2_SB3 (1 << 3) /* stop bit control 3 */
  82. #define COLDFIRE_UART_MR2_TX_CTS (1 << 4) /* Tx CTS control */
  83. #define COLDFIRE_UART_MR2_TX_RTS (1 << 5) /* Tx RTS control */
  84. #define COLDFIRE_UART_MR2_CM0 (1 << 6) /* channel mode 0 */
  85. #define COLDFIRE_UART_MR2_CM1 (1 << 7) /* channel mode 1 */
  86. /* Some common bit lengths */
  87. #define COLDFIRE_UART_MR2_STOP_BITS_1 (COLDFIRE_UART_MR2_SB0 
  88.  | COLDFIRE_UART_MR2_SB1 
  89.  | COLDFIRE_UART_MR2_SB2)
  90. #define COLDFIRE_UART_MR2_STOP_BITS_2 (COLDFIRE_UART_MR2_SB0 
  91.  | COLDFIRE_UART_MR2_SB1 
  92.  | COLDFIRE_UART_MR2_SB2 
  93.  | COLDFIRE_UART_MR2_SB3)
  94. /* SR - status register */
  95. #define COLDFIRE_UART_SR_RXRDY (1 << 0) /* Rx ready */
  96. #define COLDFIRE_UART_SR_FFULL (1 << 1) /* FIFO full */
  97. #define COLDFIRE_UART_SR_TXRDY (1 << 2) /* Tx ready */
  98. #define COLDFIRE_UART_SR_TXEMP (1 << 3) /* Tx empty */
  99. #define COLDFIRE_UART_SR_OE (1 << 4) /* overrun error */
  100. #define COLDFIRE_UART_SR_PE (1 << 5) /* parity error */
  101. #define COLDFIRE_UART_SR_FE (1 << 6) /* framing error */
  102. #define COLDFIRE_UART_SR_RB (1 << 7) /* received break */
  103. /* CSR - clock select register */
  104. #define COLDFIRE_UART_CSR_TCS0 (1 << 0) /* Tx clock select 0 */
  105. #define COLDFIRE_UART_CSR_TCS1 (1 << 1) /* Tx clock select 1 */
  106. #define COLDFIRE_UART_CSR_TCS2 (1 << 2) /* Tx clock select 2 */
  107. #define COLDFIRE_UART_CSR_TCS3 (1 << 3) /* Tx clock select 3 */
  108. #define COLDFIRE_UART_CSR_RCS0 (1 << 4) /* Rx clock select 0 */
  109. #define COLDFIRE_UART_CSR_RCS1 (1 << 5) /* Rx clock select 1 */
  110. #define COLDFIRE_UART_CSR_RCS2 (1 << 6) /* Rx clock select 2 */
  111. #define COLDFIRE_UART_CSR_RCS3 (1 << 7) /* Rx clock select 3 */
  112. #define COLDFIRE_UART_CSR_TIMER_TX (COLDFIRE_UART_CSR_TCS0 
  113.  | COLDFIRE_UART_CSR_TCS2 
  114.  | COLDFIRE_UART_CSR_TCS3)
  115. #define COLDFIRE_UART_CSR_TIMER_RX (COLDFIRE_UART_CSR_RCS0 
  116.  | COLDFIRE_UART_CSR_RCS2 
  117.  | COLDFIRE_UART_CSR_RCS3)
  118. /* CR - command register */
  119. #define COLDFIRE_UART_CR_RC0 (1 << 0) /* receiver control bit 0 */
  120. #define COLDFIRE_UART_CR_RC1 (1 << 1) /* receiver control bit 1 */
  121. #define COLDFIRE_UART_CR_TC0 (1 << 2) /* transmitter control bit 0 */
  122. #define COLDFIRE_UART_CR_TC1 (1 << 3) /* transmitter control bit 1 */
  123. #define COLDFIRE_UART_CR_MISC0 (1 << 4) /* misc control bit 0 */
  124. #define COLDFIRE_UART_CR_MISC1 (1 << 5) /* misc control bit 1 */
  125. #define COLDFIRE_UART_CR_MISC2 (1 << 6) /* misc control bit 2 */
  126. /* Some common commands */
  127. #define COLDFIRE_UART_CR_TX_ENABLE (COLDFIRE_UART_CR_TC0)
  128. #define COLDFIRE_UART_CR_TX_DISABLE (COLDFIRE_UART_CR_TC1)
  129. #define COLDFIRE_UART_CR_RX_ENABLE (COLDFIRE_UART_CR_RC0)
  130. #define COLDFIRE_UART_CR_RX_DISABLE (COLDFIRE_UART_CR_RC1)
  131. #define COLDFIRE_UART_CR_RESET_MODE_PTR (COLDFIRE_UART_CR_MISC0)
  132. #define COLDFIRE_UART_CR_RESET_RX (COLDFIRE_UART_CR_MISC1)
  133. #define COLDFIRE_UART_CR_RESET_TX (COLDFIRE_UART_CR_MISC1 
  134.  | COLDFIRE_UART_CR_MISC0)
  135. #define COLDFIRE_UART_CR_RESET_ERR (COLDFIRE_UART_CR_MISC2)
  136. #define COLDFIRE_UART_CR_RESET_BRK (COLDFIRE_UART_CR_MISC2 
  137.  | COLDFIRE_UART_CR_MISC0)
  138. /* ACR - auxiliary control register */
  139. #define COLDFIRE_UART_ACR_IEC (1 << 0) /* input enable control */
  140. /* IMR - interrupt mask register */
  141. #define COLDFIRE_UART_IMR_TXRDY (1 << 0) /* transmitter ready */
  142. #define COLDFIRE_UART_IMR_RXRDY (1 << 1) /* receiver ready */
  143. #define COLDFIRE_UART_IMR_DB (1 << 2) /* delta break */
  144. #define COLDFIRE_UART_IMR_COS (1 << 7) /* change of CTS state */
  145. /* ISR - interrupt status register */
  146. #define COLDFIRE_UART_ISR_TXRDY (1 << 0) /* transmitter ready */
  147. #define COLDFIRE_UART_ISR_RXRDY (1 << 1) /* receiver ready */
  148. #define COLDFIRE_UART_ISR_DB (1 << 2) /* delta break */
  149. #define COLDFIRE_UART_ISR_COS (1 << 7) /* change of CTS state */
  150. /* IP - input port register */
  151. #define COLDFIRE_UART_IP_CTS (1 << 0) /* current CTS state */
  152. /* OP1 - output set register */
  153. #define COLDFIRE_UART_OP1_RTS (1 << 0) /* set RTS */
  154. /* OP2 - output reset register */
  155. #define COLDFIRE_UART_OP2_RTS (1 << 0) /* clear RTS */
  156. /* function declarations */
  157. #if defined(__STDC__) || defined(__cplusplus)
  158. IMPORT void coldfireDevInit (COLDFIRE_CHAN *pChan);
  159. IMPORT void coldfireDevInit2 (COLDFIRE_CHAN *pChan);
  160. IMPORT  void    coldfireInt (COLDFIRE_CHAN *pChan);
  161. #else /* __STDC__ */
  162. IMPORT void coldfireDevInit ();
  163. IMPORT void coldfireDevInit2 ();
  164. IMPORT  void    coldfireInt ();
  165. #endif /* __STDC__ */
  166. #ifdef __cplusplus
  167. }
  168. #endif
  169. #endif /* __INCcoldfireSioh */