ChibiOS
21.6.0
|
SIO Driver macros and structures. More...
#include "hal_sio_lld.h"
Go to the source code of this file.
Data Structures | |
struct | hal_sio_config |
Driver configuration structure. More... | |
struct | sio_driver_vmt |
SIODriver virtual methods table. More... | |
struct | hal_sio_driver |
Structure representing a SIO driver. More... | |
struct | hal_sio_operation |
Structure representing a SIO operation. More... | |
Macros | |
#define | _sio_driver_methods _base_channel_methods |
SIODriver specific methods. More... | |
#define | sioGetFlagsX(siop) sio_lld_get_flags(siop) |
Returns the current set of flags and clears it. More... | |
#define | sioIsRXEmptyX(siop) sio_lld_is_rx_empty(siop) |
Determines the state of the RX FIFO. More... | |
#define | sioIsTXFullX(siop) sio_lld_is_tx_full(siop) |
Determines the state of the TX FIFO. More... | |
#define | sioGetAndClearEventsI(siop) sio_lld_get_and_clear_events(siop) |
Return the pending SIO events flags. More... | |
#define | sioGetX(siop) sio_lld_get(siop) |
Returns one frame from the RX FIFO. More... | |
#define | sioPutX(siop, data) sio_lld_put(siop, data) |
Pushes one frame into the TX FIFO. More... | |
#define | sioAsyncReadI(siop, size, buffer) sio_lld_read(siop, size, buffer) |
Reads data from the RX FIFO. More... | |
#define | sioAsyncWriteI(siop, size, buffer) sio_lld_write(siop, size, buffer) |
Writes data into the TX FIFO. More... | |
#define | sioControlX(siop, operation, arg) sio_lld_control(siop, operation, arg) |
Control operation on a serial port. More... | |
SIO status flags | |
#define | SIO_NO_ERROR 0 |
No pending conditions. More... | |
#define | SIO_PARITY_ERROR 4 |
Parity error happened. More... | |
#define | SIO_FRAMING_ERROR 8 |
Framing error happened. More... | |
#define | SIO_OVERRUN_ERROR 16 |
Overflow happened. More... | |
#define | SIO_NOISE_ERROR 32 |
Noise on the line. More... | |
#define | SIO_BREAK_DETECTED 64 |
Break detected. More... | |
SIO additional messages | |
#define | SIO_MSG_IDLE 1 |
#define | SIO_MSG_ERRORS 2 |
SIO configuration options | |
#define | SIO_DEFAULT_BITRATE 38400 |
Default bit rate. More... | |
#define | SIO_USE_SYNCHRONIZATION TRUE |
Support for thread synchronization API. More... | |
Low level driver helper macros | |
#define | __sio_callback_rx(siop) |
RX callback. More... | |
#define | __sio_callback_rx_idle(siop) |
RX idle callback. More... | |
#define | __sio_callback_tx(siop) |
TX callback. More... | |
#define | __sio_callback_tx_end(siop) |
TX end callback. More... | |
#define | __sio_callback_rx_evt(siop) |
RX event callback. More... | |
#define | __sio_wakeup_rx(siop, msg) |
Wakes up the RX-waiting thread. More... | |
#define | __sio_wakeup_tx(siop, msg) |
Wakes up the TX-waiting thread. More... | |
#define | __sio_wakeup_txend(siop, msg) |
Wakes up the TXend-waiting thread. More... | |
Typedefs | |
typedef uint_fast8_t | sioflags_t |
SIO driver condition flags type. More... | |
typedef struct hal_sio_driver | SIODriver |
Type of structure representing a SIO driver. More... | |
typedef struct hal_sio_config | SIOConfig |
Type of structure representing a SIO configuration. More... | |
typedef struct hal_sio_operation | SIOOperation |
Type of structure representing a SIO operation. More... | |
typedef void(* | siocb_t) (SIODriver *siop) |
Generic SIO notification callback type. More... | |
Enumerations | |
enum | siostate_t { SIO_UNINIT = 0, SIO_STOP = 1, SIO_READY = 2, SIO_ACTIVE = 3 } |
Driver state machine possible states. More... | |
Functions | |
void | sioInit (void) |
SIO Driver initialization. More... | |
void | sioObjectInit (SIODriver *siop) |
Initializes the standard part of a SIODriver structure. More... | |
bool | sioStart (SIODriver *siop, const SIOConfig *config) |
Configures and activates the SIO peripheral. More... | |
void | sioStop (SIODriver *siop) |
Deactivates the SIO peripheral. More... | |
void | sioStartOperation (SIODriver *siop, const SIOOperation *operation) |
Starts a SIO operation. More... | |
void | sioStopOperation (SIODriver *siop) |
Stops an ongoing SIO operation, if any. More... | |
sio_events_mask_t | sioGetAndClearEvents (SIODriver *siop) |
Return the pending SIO events flags. More... | |
size_t | sioAsyncRead (SIODriver *siop, uint8_t *buffer, size_t n) |
Reads data from the RX FIFO. More... | |
size_t | sioAsyncWrite (SIODriver *siop, const uint8_t *buffer, size_t n) |
Writes data into the TX FIFO. More... | |
msg_t | sioSynchronizeRX (SIODriver *siop, sysinterval_t timeout) |
Synchronizes with RX FIFO data availability. More... | |
msg_t | sioSynchronizeTX (SIODriver *siop, sysinterval_t timeout) |
Synchronizes with TX FIFO space availability. More... | |
msg_t | sioSynchronizeTXEnd (SIODriver *siop, sysinterval_t timeout) |
Synchronizes with TX completion. More... | |
SIO Driver macros and structures.
Definition in file hal_sio.h.