uartmd.h
上传用户:dahaojd
上传日期:2008-01-29
资源大小:14357k
文件大小:3k
源码类别:

DSP编程

开发平台:

C/C++

  1. /*
  2.  *  Copyright 2003 by Texas Instruments Incorporated.
  3.  *  All rights reserved. Property of Texas Instruments Incorporated.
  4.  *  Restricted rights to use, duplicate or disclose this code are
  5.  *  granted through contract.
  6.  *  
  7.  */
  8. /* "@(#) DDK 1.10.00.23 07-02-03 (ddk-b12)" */
  9. /*
  10.  *  ======== uartmd.h ========
  11.  */
  12. #ifndef UARTMD_
  13. #define UARTMD_
  14. #include <iom.h>
  15. #ifdef __cplusplus
  16. extern "C" {
  17. #endif
  18. /* Version number definition */
  19. #define UARTMD_VERSION_1 0xAB01
  20. /* ---- control codes and parameters ---- */
  21. #define UARTMD_REGISTER_NOTIFY  1
  22. #define UARTMD_SETBREAK         2
  23. #define UARTMD_GETMODEMSTATUS   3
  24. #define UARTMD_SETRTS           4
  25. #define UARTMD_SETDTR           5
  26. #define UARTMD_LSR_OEMASK       0x02
  27. #define UARTMD_LSR_PEMASK       0x04
  28. #define UARTMD_LSR_FEMASK       0x08
  29. #define UARTMD_LSR_BRKMASK      0x10
  30. #define UARTMD_LSR_THEMASK      0x20
  31. #define UARTMD_MSR_CTSCHGMASK   0x01
  32. #define UARTMD_MSR_DSRCHGMASK   0x02
  33. #define UARTMD_MSR_CTSMASK      0x10
  34. #define UARTMD_MSR_DSRMASK      0x20
  35. typedef void (*UARTMD_TnotifyHandler)(Uns evtStatus, Uns info);
  36. typedef struct {
  37.     UARTMD_TnotifyHandler   notifyFunc;
  38.     Uns                     evtMask;
  39. } UARTMD_NotifyStruct;
  40. typedef enum {
  41.     UARTMD_EVT_CTSCHANGE       = 0x0001,        
  42.     UARTMD_EVT_DSRCHANGE       = 0x0002,
  43.     UARTMD_EVT_BREAK           = 0x0004,
  44.     UARTMD_EVT_PERR            = 0x0008,
  45.     UARTMD_EVT_FERR            = 0x0010,
  46.     UARTMD_EVT_OERR            = 0x0020,
  47.     UARTMD_EVT_BERR            = 0x0040
  48. } UARTMD_EventMask;
  49. #define UARTMD_EVT_ALL (UARTMD_EVT_CTSCHANGE|UARTMD_EVT_DSRCHANGE|
  50.                         UARTMD_EVT_BREAK|UARTMD_EVT_PERR|UARTMD_EVT_FERR
  51.                         UARTMD_EVT_OERR|UARTMD_EVT_BERR)
  52. /* Driver function table to be used by applications. */
  53. extern IOM_Fxns UARTMD_FXNS;
  54. /*
  55.  * Device Parameters.
  56.  *
  57.  * 'packedChars' is only used for 54x and 55x.  If 'packedChars' is
  58.  * TRUE, then the UARTMD driver will output the low and then high part
  59.  * of the 16-bit word.  If 'packedChars' is FALSE, the UARTMD driver
  60.  * will output only the low eight bits of each word.  This parameter
  61.  * is needed for 54x and 55x when using the UART to transfer raw data.
  62.  * 'packedChars' should be set to 'FALSE' when using UARTMD for ASCII
  63.  * characters.
  64.  *
  65.  * 'uarthwParams' is an opaque pointer to an implementation-specific 
  66.  * UARTHW_Params structure.  If this is NULL, the UARTHW_attach()
  67.  * function will use a default set of parameters to initialize the UART.
  68.  */
  69. typedef struct UARTMD_DevParams {
  70.     Int         versionId;      /* Version number to be set by the app */
  71.     Bool        packedChars;    /* only used for c55xx and 54xx */
  72.     Ptr         uarthwParams;
  73. } UARTMD_DevParams;
  74. #define UARTMD_DEVPARAMS_DEFAULT {      
  75.     UARTMD_VERSION_1,                   
  76.     FALSE,      /* packedChars */       
  77.     NULL        /* uarthwParams */      
  78. }
  79. /* Mini-driver init function -- initializes drivers variables, if any */
  80. extern  Void UARTMD_init( Void );
  81. #ifdef __cplusplus
  82. }
  83. #endif /* extern "C" */
  84. #endif /* UARTMD_ */