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

📄 xuartns550.h

📁 powerpc405下linux的串口驱动程序
💻 H
📖 第 1 页 / 共 2 页
字号:
 *//** * These constants specify the modem status that may be retrieved * from the driver. * * <pre> * XUN_MODEM_DCD_DELTA_MASK         DCD signal changed state * XUN_MODEM_DSR_DELTA_MASK         DSR signal changed state * XUN_MODEM_CTS_DELTA_MASK         CTS signal changed state * XUN_MODEM_RINGING_MASK           Ring signal is active * XUN_MODEM_DSR_MASK               Current state of DSR signal * XUN_MODEM_CTS_MASK               Current state of CTS signal * XUN_MODEM_DCD_MASK               Current state of DCD signal * XUN_MODEM_RING_STOP_MASK         Ringing has stopped * </pre> */#define XUN_MODEM_DCD_DELTA_MASK  0x80#define XUN_MODEM_DSR_DELTA_MASK  0x02#define XUN_MODEM_CTS_DELTA_MASK  0x01#define XUN_MODEM_RINGING_MASK    0x40#define XUN_MODEM_DSR_MASK        0x20#define XUN_MODEM_CTS_MASK        0x10#define XUN_MODEM_DCD_MASK        0x08#define XUN_MODEM_RING_STOP_MASK  0x04/*@}*//** @name Callback events * @{ *//** * These constants specify the handler events that are passed to * a handler from the driver.  These constants are not bit masks such that * only one will be passed at a time to the handler. * * <pre> * XUN_EVENT_RECV_DATA          Data has been received * XUN_EVENT_RECV_TIMEOUT       A receive timeout occurred * XUN_EVENT_SENT_DATA          Data has been sent * XUN_EVENT_RECV_ERROR         A receive error was detected * XUN_EVENT_MODEM              A change in modem status * </pre> */#define XUN_EVENT_RECV_DATA       1#define XUN_EVENT_RECV_TIMEOUT    2#define XUN_EVENT_SENT_DATA       3#define XUN_EVENT_RECV_ERROR      4#define XUN_EVENT_MODEM           5/*@}*//** @name Error values * @{ *//** * These constants specify the errors that may be retrieved from * the driver using the XUartNs550_GetLastErrors function. All of them are * bit masks, except no error, such that multiple errors may be specified. * * <pre> * XUN_ERROR_BREAK_MASK         Break detected * XUN_ERROR_FRAMING_MASK       Receive framing error * XUN_ERROR_PARITY_MASK        Receive parity error * XUN_ERROR_OVERRUN_MASK       Receive overrun error * XUN_ERROR_NONE               No error * </pre> */#define XUN_ERROR_BREAK_MASK        0x10#define XUN_ERROR_FRAMING_MASK      0x08#define XUN_ERROR_PARITY_MASK       0x04#define XUN_ERROR_OVERRUN_MASK      0x02#define XUN_ERROR_NONE              0x00/*@}*//**************************** Type Definitions ******************************//** * This typedef contains configuration information for the device. */typedef struct{    Xuint16 DeviceId;        /**< Unique ID  of device */    Xuint32 BaseAddress;     /**< Base address of device (IPIF) */    Xuint32 InputClockHz;    /**< Input clock frequency */    Xuint32 DefaultBaudRate; /**< Baud Rate in bps, ie 1200 */} XUartNs550_Config;/* * The following data type is used to manage the buffers that are handled * when sending and receiving data in the interrupt mode. */typedef struct{    Xuint8 *NextBytePtr;    unsigned int RequestedBytes;    unsigned int RemainingBytes;} XUartNs550Buffer;/** * This data type allows the data format of the device to be set * and retrieved. */typedef struct{    Xuint32 BaudRate;       /**< In bps, ie 1200 */    Xuint32 DataBits;       /**< Number of data bits */    Xuint32 Parity;         /**< Parity */    Xuint8 StopBits;        /**< Number of stop bits */} XUartNs550Format;/** * This data type defines a handler which the application must define * when using interrupt mode.  The handler will be called from the driver in an * interrupt context to handle application specific processing. * * @param CallBackRef is a callback reference passed in by the upper layer *        when setting the handler, and is passed back to the upper layer when *        the handler is called. * @param Event contains one of the event constants indicating why the handler *        is being called. * @param EventData contains the number of bytes sent or received at the time of *        the call for send and receive events and contains the modem status for *        modem events. */typedef void (*XUartNs550_Handler)(void *CallBackRef, Xuint32 Event,                                   unsigned int EventData);/** * UART statistics */typedef struct{    Xuint16 TransmitInterrupts;         /**< Number of transmit interrupts */    Xuint16 ReceiveInterrupts;          /**< Number of receive interrupts */    Xuint16 StatusInterrupts;           /**< Number of status interrupts */    Xuint16 ModemInterrupts;            /**< Number of modem interrupts */    Xuint16 CharactersTransmitted;      /**< Number of characters transmitted */    Xuint16 CharactersReceived;         /**< Number of characters received */    Xuint16 ReceiveOverrunErrors;       /**< Number of receive overruns */    Xuint16 ReceiveParityErrors;        /**< Number of receive parity errors */    Xuint16 ReceiveFramingErrors;       /**< Number of receive framing errors */    Xuint16 ReceiveBreakDetected;       /**< Number of receive breaks */} XUartNs550Stats;/** * The XUartNs550 driver instance data. The user is required to allocate a * variable of this type for every UART 16550/16450 device in the system. * A pointer to a variable of this type is then passed to the driver API * functions. */typedef struct{    XUartNs550Stats Stats;      /* Component Statistics */    Xuint32 BaseAddress;        /* Base address of device (IPIF) */    Xuint32 InputClockHz;       /* Input clock frequency */    Xuint32 IsReady;            /* Device is initialized and ready */    Xuint32 BaudRate;           /* current baud rate of hw */    Xuint8  LastErrors;         /* the accumulated errors */    XUartNs550Buffer SendBuffer;    XUartNs550Buffer ReceiveBuffer;    XUartNs550_Handler Handler;    void *CallBackRef;           /* Callback reference for control handler */} XUartNs550;/***************** Macros (Inline Functions) Definitions ********************//************************** Function Prototypes *****************************//* * Initialization functions in xuartns550_sinit.c */XStatus XUartNs550_Initialize(XUartNs550 *InstancePtr, Xuint16 DeviceId);XUartNs550_Config *XUartNs550_LookupConfig(Xuint16 DeviceId);/* * required functions in xuartns550.c */XStatus XUartNs550_CfgInitialize(XUartNs550 *InstancePtr,                                 XUartNs550_Config *Config,                                 Xuint32 EffectiveAddr);unsigned int XUartNs550_Send(XUartNs550 *InstancePtr, Xuint8 *BufferPtr,                             unsigned int NumBytes);unsigned int XUartNs550_Recv(XUartNs550 *InstancePtr, Xuint8 *BufferPtr,                             unsigned int NumBytes);/* * options functions in xuartns550_options.c */XStatus XUartNs550_SetOptions(XUartNs550 *InstancePtr, Xuint16 Options);Xuint16 XUartNs550_GetOptions(XUartNs550 *InstancePtr);XStatus XUartNs550_SetFifoThreshold(XUartNs550 *InstancePtr,                                    Xuint8 TriggerLevel);Xuint8 XUartNs550_GetFifoThreshold(XUartNs550 *InstancePtr);Xboolean XUartNs550_IsSending(XUartNs550 *InstancePtr);Xuint8 XUartNs550_GetLastErrors(XUartNs550 *InstancePtr);Xuint8 XUartNs550_GetModemStatus(XUartNs550 *InstancePtr);/* * data format functions in xuartns550_format.c */XStatus XUartNs550_SetDataFormat(XUartNs550 *InstancePtr,                                 XUartNs550Format *Format);void XUartNs550_GetDataFormat(XUartNs550 *InstancePtr,                              XUartNs550Format *Format);/* * interrupt functions in xuartns550_intr.c */void XUartNs550_SetHandler(XUartNs550 *InstancePtr, XUartNs550_Handler FuncPtr,                           void *CallBackRef);void XUartNs550_InterruptHandler(XUartNs550 *InstancePtr);/* * statistics functions in xuartns550_stats.c */void XUartNs550_GetStats(XUartNs550 *InstancePtr, XUartNs550Stats *StatsPtr);void XUartNs550_ClearStats(XUartNs550 *InstancePtr);/* * self-test functions in xuartns550_selftest.c */XStatus XUartNs550_SelfTest(XUartNs550 *InstancePtr);#ifdef __cplusplus}#endif#endif            /* end of protection macro */

⌨️ 快捷键说明

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