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

VxWorks

开发平台:

C/C++

  1. /* sab82532Sio.h - Siemens 82532 DUART header file */
  2. /*
  3. modification history
  4. --------------------
  5. 01a,25nov97,mem  written.
  6. */
  7. #ifndef __INCsab82532Sioh 
  8. #define __INCsab82532Sioh 
  9. #ifdef __cplusplus
  10. extern "C" {
  11. #endif
  12. #ifndef _ASMLANGUAGE
  13. #include "vxWorks.h"
  14. #include "sioLib.h"
  15. #endif /* _ASMLANGUAGE */
  16. /* Register offsets from base address (ASYNC mode only) */
  17. #define SAB82532_RFIFO 0x00 /* r : rfifo 0 */
  18. #define SAB82532_XFIFO 0x00 /*  w: xfifo 0 */
  19. #define SAB82532_STAR 0x20 /* r : status register */
  20. #define SAB82532_CMDR 0x20 /*  w: command register */
  21. #define SAB82532_MODE 0x22 /* rw: mode register */
  22. #define SAB82532_TIMR 0x23 /* rw: timer register */
  23. #define SAB82532_XON 0x24 /* rw: XON character */
  24. #define SAB82532_XOFF 0x25 /* rw: XOFF character */
  25. #define SAB82532_TCR 0x26 /* rw: termination character register */
  26. #define SAB82532_DAFO 0x27 /* rw: data format */
  27. #define SAB82532_RFC 0x28 /* rw: rfifo control register */
  28. #define SAB82532_RBCL 0x2a /* r : receive byte count low */
  29. #define SAB82532_XBCL 0x2a /*  w: transmit byte count low */
  30. #define SAB82532_RBCH 0x2b /* r : receive byte count high */
  31. #define SAB82532_XBCH 0x2b /*  w: transmit byte count high */
  32. #define SAB82532_CCR0 0x2c /* rw: channel config register 0 */
  33. #define SAB82532_CCR1 0x2d /* rw: channel config register 1 */
  34. #define SAB82532_CCR2 0x2e /* rw: channel config register 2 */
  35. #define SAB82532_CCR3 0x2f /* rw: channel config register 3 */
  36. #define SAB82532_TSAX 0x30 /*  w: time-slot assignment transmit */
  37. #define SAB82532_TSAR 0x31 /*  w: time-slot assignment receive */
  38. #define SAB82532_XCCR 0x32 /*  w: transmit channel capacity register */
  39. #define SAB82532_RCCR 0x33 /*  w: receive channel capacity register */
  40. #define SAB82532_VSTR 0x34 /* r : version status */
  41. #define SAB82532_BGR 0x34 /*  w: baud rate generator register */
  42. #define SAB82532_TIC 0x35 /*  w: transmit immediate character */
  43. #define SAB82532_MXN 0x36 /*  w: mask XON character */
  44. #define SAB82532_MXF 0x37 /*  w: mask XOFF character */
  45. #define SAB82532_GIS 0x38 /* r : global interrupt status */
  46. #define SAB82532_IVA 0x38 /*  w: interrupt vector address */
  47. #define SAB82532_IPC 0x39 /* rw: interrupt port configuration */
  48. #define SAB82532_ISR0 0x3a /* r : interrupt status 0 */
  49. #define SAB82532_IMR0 0x3a /*  w: interrupt mask 0 */
  50. #define SAB82532_ISR1 0x3b /* r : interrupt status 1 */
  51. #define SAB82532_IMR1 0x3b /*  w: interrupt mask 1 */
  52. #define SAB82532_PVR 0x3c /* rw: port value register */
  53. #define SAB82532_PIS 0x3d /* r : port interrupt status */
  54. #define SAB82532_PIM 0x3d /*  w: port interrupt mask */
  55. #define SAB82532_PCR 0x3e /* rw: port configuration register */
  56. #define SAB82532_CCR4 0x3f /* rw: channel config register 4 */
  57. #ifndef _ASMLANGUAGE
  58. typedef struct SAB82532_CHAN
  59.     {
  60.     /* always goes first */
  61.     SIO_DRV_FUNCS * pDrvFuncs; /* driver functions */
  62.     /* callbacks */
  63.     STATUS (*getTxChar) ();
  64.     STATUS (*putRcvChar) ();
  65.     void * getTxArg;
  66.     void * putRcvArg;
  67.     volatile UINT8 * regs; /* SAB82532 registers */
  68.     UINT16 channelMode; /* such as INT, POLL modes */
  69.     int baudRate;
  70.     UINT32 xtal; /* UART clock frequency */
  71.     } SAB82532_CHAN;
  72. typedef struct SAB82532_DUART
  73.     {
  74.     SAB82532_CHAN channel[2];
  75.     } SAB82532_DUART;
  76. /* function declarations */
  77. #if defined(__STDC__) || defined(__cplusplus)
  78. extern void sab82532Int (SAB82532_DUART *);
  79. extern void sab82532DevInit (SAB82532_DUART *);
  80. #else
  81. extern void sab82532Int ();
  82. extern void sab82532DevInit ();
  83. #endif  /* __STDC__ */
  84. #endif /* _ASMLANGUAGE */
  85. #ifdef __cplusplus
  86. }
  87. #endif
  88.  
  89. #endif /* __INCsab82532Sioh */