The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.
Dependents: hello SerialTestv11 SerialTestv12 Sierpinski ... more
mbed 2
This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.
TARGET_ARM_BEETLE_SOC/TOOLCHAIN_IAR/drv_console.h
- Committer:
- AnnaBridge
- Date:
- 2018-11-08
- Revision:
- 171:3a7713b1edbc
File content as of revision 171:3a7713b1edbc:
/*************************************************************************************************/ /*! * \file drv_console.h * * \brief Upper-layer UART driver. * * Copyright (c) 2015 ARM, Ltd., all rights reserved. * ARM confidential and proprietary. * * IMPORTANT. Your use of this file is governed by a Software License Agreement * ("Agreement") that must be accepted in order to download or otherwise receive a * copy of this file. You may not use or copy this file for any purpose other than * as described in the Agreement. If you do not agree to all of the terms of the * Agreement do not use this file and delete all copies in your possession or control; * if you do not have a copy of the Agreement, you must contact ARM, Ltd. prior * to any use, copying or further distribution of this software. */ /*************************************************************************************************/ #ifndef __DRV_CONSOLE_H #define __DRV_CONSOLE_H #ifdef __cplusplus extern "C" { #endif /*************************************************************************************************** ** INCLUDES ***************************************************************************************************/ #include "chip.h" #include "board.h" /*************************************************************************************************** ** DEFINES ***************************************************************************************************/ /*-------------------------------------------------------------------------------------------------- ** ENABLE/DISABLE, ON/OFF DEFINES ** ** DESCRIPTION: For clarity in enable parameters. --------------------------------------------------------------------------------------------------*/ #ifndef DRV_ENABLE #define DRV_ENABLE 1 #endif #ifndef DRV_DISABLE #define DRV_DISABLE 0 #endif #ifndef DRV_ON #define DRV_ON 1 #endif #ifndef DRV_OFF #define DRV_OFF 0 #endif /*-------------------------------------------------------------------------------------------------- ** TX/RX DEFINES ** ** DESCRIPTION: For tx/rx argument of driver functions. --------------------------------------------------------------------------------------------------*/ #define DRV_CONSOLE_TX (1u << 0) #define DRV_CONSOLE_RX (1u << 1) /*-------------------------------------------------------------------------------------------------- ** DRV_CONSOLE_BUF_LEN ** ** DESCRIPTION: The maximum length of printed strings. **------------------------------------------------------------------------------------------------*/ #define DRV_CONSOLE_BUF_LEN 128u /*************************************************************************************************** ** TYPES ***************************************************************************************************/ /*---------------------------------------------------------------------------------------------- ** DRV_CONSOLE_RX_CALLBACK_t() ** ** DESCRIPTION: Callback for received byte. ** ** PARAMETERS: c Received byte **--------------------------------------------------------------------------------------------*/ typedef void (*DRV_CONSOLE_RX_CALLBACK_t)(uint8_t c); /*---------------------------------------------------------------------------------------------- ** DRV_CONSOLE_TX_COMPLETE_CALLBACK_t() ** ** DESCRIPTION: Callback for transmission completion. ** ** PARAMETERS: buf Pointer to buffer that was transmitted **--------------------------------------------------------------------------------------------*/ typedef void (*DRV_CONSOLE_TX_COMPLETE_CALLBACK_t)(const uint8_t *buf); /*-------------------------------------------------------------------------------------------------- ** struct drv_console ** ** DESCRIPTION: Access structure of driver. --------------------------------------------------------------------------------------------------*/ struct drv_console { /*---------------------------------------------------------------------------------------------- ** Initialize() ** ** DESCRIPTION: Initialize console. ** ** PARAMETERS: baud Baud rate ** rx_tx Indicates allowed modes of driver (DRV_CONSOLE_RX &/| DRV_CONSOLE_TX). **--------------------------------------------------------------------------------------------*/ void (*Initialize)(uint32_t baud, uint32_t rx_tx); /*---------------------------------------------------------------------------------------------- ** Receive() ** ** DESCRIPTION: Receive data. ** ** PARAMETERS: buf Pointer to buffer that will receive data ** len Number of data bytes to data ** ** RETURNS: Number of bytes received **--------------------------------------------------------------------------------------------*/ int32_t (*Receive)(uint8_t *buf, uint32_t len); /*---------------------------------------------------------------------------------------------- ** ReceiveAsyncStart() ** ** DESCRIPTION: Start receiving data asynchronously. ** ** PARAMETERS: cb Callback for receive events ** ** RETURNS: 0 or error (if not zero) **--------------------------------------------------------------------------------------------*/ int32_t (*ReceiveAsyncStart)(DRV_UART_RX_CALLBACK_t cb); /*---------------------------------------------------------------------------------------------- ** ReceiveAsyncStart() ** ** DESCRIPTION: Stop receiving data asynchronously. **--------------------------------------------------------------------------------------------*/ void (*ReceiveAsyncStop)(void); /*---------------------------------------------------------------------------------------------- ** Transmit() ** ** DESCRIPTION: Transmit buffer synchronously, waiting for any active transmission to finish. ** ** PARAMETERS: buf Pointer to buffer of data to transmit ** len Number of data bytes to transmit ** ** RETURNS: Number of bytes transmitted **--------------------------------------------------------------------------------------------*/ int32_t (*Transmit)(const uint8_t *buf, uint32_t len); /*---------------------------------------------------------------------------------------------- ** TransmitAsync() ** ** DESCRIPTION: Transmit buffer asynchronously, waiting for any active transmission to finish. ** ** PARAMETERS: buf Pointer to buffer of data to transmit ** len Number of data bytes to transmit ** cb Pointer to completion callback ** ** RETURNS: 0 or error (if not zero) **--------------------------------------------------------------------------------------------*/ int32_t (*TransmitAsync)(const uint8_t *buf, uint32_t len, DRV_CONSOLE_TX_COMPLETE_CALLBACK_t cb); /*---------------------------------------------------------------------------------------------- ** GetUART() ** ** DESCRIPTION: Get UART associated with this console. ** ** RETURNS: Pointer to UART **--------------------------------------------------------------------------------------------*/ const struct drv_uart *(*GetUART)(void); }; #ifdef __cplusplus } #endif #endif /* __DRV_CONSOLE_H */