b luo / mbed-dev

Fork of mbed-dev by mbed official

Committer:
<>
Date:
Fri Sep 02 15:07:44 2016 +0100
Revision:
144:ef7eb2e8f9f7
This updates the lib to the mbed lib v125

Who changed what in which revision?

UserRevisionLine numberNew contents of line
<> 144:ef7eb2e8f9f7 1 /*************************************************************************************************/
<> 144:ef7eb2e8f9f7 2 /*!
<> 144:ef7eb2e8f9f7 3 * \file drv_console.h
<> 144:ef7eb2e8f9f7 4 *
<> 144:ef7eb2e8f9f7 5 * \brief Upper-layer UART driver.
<> 144:ef7eb2e8f9f7 6 *
<> 144:ef7eb2e8f9f7 7 * Copyright (c) 2009-2016, ARM Limited, All Rights Reserved
<> 144:ef7eb2e8f9f7 8 * SPDX-License-Identifier: LicenseRef-PBL
<> 144:ef7eb2e8f9f7 9 *
<> 144:ef7eb2e8f9f7 10 * This file and the related binary are licensed under the
<> 144:ef7eb2e8f9f7 11 * Permissive Binary License, Version 1.0 (the "License");
<> 144:ef7eb2e8f9f7 12 * you may not use these files except in compliance with the License.
<> 144:ef7eb2e8f9f7 13 *
<> 144:ef7eb2e8f9f7 14 * You may obtain a copy of the License here:
<> 144:ef7eb2e8f9f7 15 * LICENSE-permissive-binary-license-1.0.txt and at
<> 144:ef7eb2e8f9f7 16 * https://www.mbed.com/licenses/PBL-1.0
<> 144:ef7eb2e8f9f7 17 *
<> 144:ef7eb2e8f9f7 18 * See the License for the specific language governing permissions and
<> 144:ef7eb2e8f9f7 19 * limitations under the License.
<> 144:ef7eb2e8f9f7 20 */
<> 144:ef7eb2e8f9f7 21 /*************************************************************************************************/
<> 144:ef7eb2e8f9f7 22
<> 144:ef7eb2e8f9f7 23 #ifndef __DRV_CONSOLE_H
<> 144:ef7eb2e8f9f7 24 #define __DRV_CONSOLE_H
<> 144:ef7eb2e8f9f7 25
<> 144:ef7eb2e8f9f7 26 #ifdef __cplusplus
<> 144:ef7eb2e8f9f7 27 extern "C" {
<> 144:ef7eb2e8f9f7 28 #endif
<> 144:ef7eb2e8f9f7 29
<> 144:ef7eb2e8f9f7 30 /***************************************************************************************************
<> 144:ef7eb2e8f9f7 31 ** INCLUDES
<> 144:ef7eb2e8f9f7 32 ***************************************************************************************************/
<> 144:ef7eb2e8f9f7 33
<> 144:ef7eb2e8f9f7 34 #include "chip.h"
<> 144:ef7eb2e8f9f7 35 #include "board.h"
<> 144:ef7eb2e8f9f7 36
<> 144:ef7eb2e8f9f7 37 /***************************************************************************************************
<> 144:ef7eb2e8f9f7 38 ** DEFINES
<> 144:ef7eb2e8f9f7 39 ***************************************************************************************************/
<> 144:ef7eb2e8f9f7 40
<> 144:ef7eb2e8f9f7 41 /*--------------------------------------------------------------------------------------------------
<> 144:ef7eb2e8f9f7 42 ** ENABLE/DISABLE, ON/OFF DEFINES
<> 144:ef7eb2e8f9f7 43 **
<> 144:ef7eb2e8f9f7 44 ** DESCRIPTION: For clarity in enable parameters.
<> 144:ef7eb2e8f9f7 45 --------------------------------------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 46
<> 144:ef7eb2e8f9f7 47 #ifndef DRV_ENABLE
<> 144:ef7eb2e8f9f7 48 #define DRV_ENABLE 1
<> 144:ef7eb2e8f9f7 49 #endif
<> 144:ef7eb2e8f9f7 50
<> 144:ef7eb2e8f9f7 51 #ifndef DRV_DISABLE
<> 144:ef7eb2e8f9f7 52 #define DRV_DISABLE 0
<> 144:ef7eb2e8f9f7 53 #endif
<> 144:ef7eb2e8f9f7 54
<> 144:ef7eb2e8f9f7 55 #ifndef DRV_ON
<> 144:ef7eb2e8f9f7 56 #define DRV_ON 1
<> 144:ef7eb2e8f9f7 57 #endif
<> 144:ef7eb2e8f9f7 58
<> 144:ef7eb2e8f9f7 59 #ifndef DRV_OFF
<> 144:ef7eb2e8f9f7 60 #define DRV_OFF 0
<> 144:ef7eb2e8f9f7 61 #endif
<> 144:ef7eb2e8f9f7 62
<> 144:ef7eb2e8f9f7 63 /*--------------------------------------------------------------------------------------------------
<> 144:ef7eb2e8f9f7 64 ** TX/RX DEFINES
<> 144:ef7eb2e8f9f7 65 **
<> 144:ef7eb2e8f9f7 66 ** DESCRIPTION: For tx/rx argument of driver functions.
<> 144:ef7eb2e8f9f7 67 --------------------------------------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 68
<> 144:ef7eb2e8f9f7 69 #define DRV_CONSOLE_TX (1u << 0)
<> 144:ef7eb2e8f9f7 70 #define DRV_CONSOLE_RX (1u << 1)
<> 144:ef7eb2e8f9f7 71
<> 144:ef7eb2e8f9f7 72 /*--------------------------------------------------------------------------------------------------
<> 144:ef7eb2e8f9f7 73 ** DRV_CONSOLE_BUF_LEN
<> 144:ef7eb2e8f9f7 74 **
<> 144:ef7eb2e8f9f7 75 ** DESCRIPTION: The maximum length of printed strings.
<> 144:ef7eb2e8f9f7 76 **------------------------------------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 77 #define DRV_CONSOLE_BUF_LEN 128u
<> 144:ef7eb2e8f9f7 78
<> 144:ef7eb2e8f9f7 79 /***************************************************************************************************
<> 144:ef7eb2e8f9f7 80 ** TYPES
<> 144:ef7eb2e8f9f7 81 ***************************************************************************************************/
<> 144:ef7eb2e8f9f7 82
<> 144:ef7eb2e8f9f7 83 /*----------------------------------------------------------------------------------------------
<> 144:ef7eb2e8f9f7 84 ** DRV_CONSOLE_RX_CALLBACK_t()
<> 144:ef7eb2e8f9f7 85 **
<> 144:ef7eb2e8f9f7 86 ** DESCRIPTION: Callback for received byte.
<> 144:ef7eb2e8f9f7 87 **
<> 144:ef7eb2e8f9f7 88 ** PARAMETERS: c Received byte
<> 144:ef7eb2e8f9f7 89 **--------------------------------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 90
<> 144:ef7eb2e8f9f7 91 typedef void (*DRV_CONSOLE_RX_CALLBACK_t)(uint8_t c);
<> 144:ef7eb2e8f9f7 92
<> 144:ef7eb2e8f9f7 93 /*----------------------------------------------------------------------------------------------
<> 144:ef7eb2e8f9f7 94 ** DRV_CONSOLE_TX_COMPLETE_CALLBACK_t()
<> 144:ef7eb2e8f9f7 95 **
<> 144:ef7eb2e8f9f7 96 ** DESCRIPTION: Callback for transmission completion.
<> 144:ef7eb2e8f9f7 97 **
<> 144:ef7eb2e8f9f7 98 ** PARAMETERS: buf Pointer to buffer that was transmitted
<> 144:ef7eb2e8f9f7 99 **--------------------------------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 100
<> 144:ef7eb2e8f9f7 101 typedef void (*DRV_CONSOLE_TX_COMPLETE_CALLBACK_t)(const uint8_t *buf);
<> 144:ef7eb2e8f9f7 102
<> 144:ef7eb2e8f9f7 103 /*--------------------------------------------------------------------------------------------------
<> 144:ef7eb2e8f9f7 104 ** struct drv_console
<> 144:ef7eb2e8f9f7 105 **
<> 144:ef7eb2e8f9f7 106 ** DESCRIPTION: Access structure of driver.
<> 144:ef7eb2e8f9f7 107 --------------------------------------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 108
<> 144:ef7eb2e8f9f7 109 struct drv_console {
<> 144:ef7eb2e8f9f7 110 /*----------------------------------------------------------------------------------------------
<> 144:ef7eb2e8f9f7 111 ** Initialize()
<> 144:ef7eb2e8f9f7 112 **
<> 144:ef7eb2e8f9f7 113 ** DESCRIPTION: Initialize console.
<> 144:ef7eb2e8f9f7 114 **
<> 144:ef7eb2e8f9f7 115 ** PARAMETERS: baud Baud rate
<> 144:ef7eb2e8f9f7 116 ** rx_tx Indicates allowed modes of driver (DRV_CONSOLE_RX &/| DRV_CONSOLE_TX).
<> 144:ef7eb2e8f9f7 117 **--------------------------------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 118 void (*Initialize)(uint32_t baud, uint32_t rx_tx);
<> 144:ef7eb2e8f9f7 119
<> 144:ef7eb2e8f9f7 120 /*----------------------------------------------------------------------------------------------
<> 144:ef7eb2e8f9f7 121 ** Receive()
<> 144:ef7eb2e8f9f7 122 **
<> 144:ef7eb2e8f9f7 123 ** DESCRIPTION: Receive data.
<> 144:ef7eb2e8f9f7 124 **
<> 144:ef7eb2e8f9f7 125 ** PARAMETERS: buf Pointer to buffer that will receive data
<> 144:ef7eb2e8f9f7 126 ** len Number of data bytes to data
<> 144:ef7eb2e8f9f7 127 **
<> 144:ef7eb2e8f9f7 128 ** RETURNS: Number of bytes received
<> 144:ef7eb2e8f9f7 129 **--------------------------------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 130 int32_t (*Receive)(uint8_t *buf, uint32_t len);
<> 144:ef7eb2e8f9f7 131
<> 144:ef7eb2e8f9f7 132 /*----------------------------------------------------------------------------------------------
<> 144:ef7eb2e8f9f7 133 ** ReceiveAsyncStart()
<> 144:ef7eb2e8f9f7 134 **
<> 144:ef7eb2e8f9f7 135 ** DESCRIPTION: Start receiving data asynchronously.
<> 144:ef7eb2e8f9f7 136 **
<> 144:ef7eb2e8f9f7 137 ** PARAMETERS: cb Callback for receive events
<> 144:ef7eb2e8f9f7 138 **
<> 144:ef7eb2e8f9f7 139 ** RETURNS: 0 or error (if not zero)
<> 144:ef7eb2e8f9f7 140 **--------------------------------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 141 int32_t (*ReceiveAsyncStart)(DRV_UART_RX_CALLBACK_t cb);
<> 144:ef7eb2e8f9f7 142
<> 144:ef7eb2e8f9f7 143 /*----------------------------------------------------------------------------------------------
<> 144:ef7eb2e8f9f7 144 ** ReceiveAsyncStart()
<> 144:ef7eb2e8f9f7 145 **
<> 144:ef7eb2e8f9f7 146 ** DESCRIPTION: Stop receiving data asynchronously.
<> 144:ef7eb2e8f9f7 147 **--------------------------------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 148 void (*ReceiveAsyncStop)(void);
<> 144:ef7eb2e8f9f7 149
<> 144:ef7eb2e8f9f7 150 /*----------------------------------------------------------------------------------------------
<> 144:ef7eb2e8f9f7 151 ** Transmit()
<> 144:ef7eb2e8f9f7 152 **
<> 144:ef7eb2e8f9f7 153 ** DESCRIPTION: Transmit buffer synchronously, waiting for any active transmission to finish.
<> 144:ef7eb2e8f9f7 154 **
<> 144:ef7eb2e8f9f7 155 ** PARAMETERS: buf Pointer to buffer of data to transmit
<> 144:ef7eb2e8f9f7 156 ** len Number of data bytes to transmit
<> 144:ef7eb2e8f9f7 157 **
<> 144:ef7eb2e8f9f7 158 ** RETURNS: Number of bytes transmitted
<> 144:ef7eb2e8f9f7 159 **--------------------------------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 160 int32_t (*Transmit)(const uint8_t *buf, uint32_t len);
<> 144:ef7eb2e8f9f7 161
<> 144:ef7eb2e8f9f7 162 /*----------------------------------------------------------------------------------------------
<> 144:ef7eb2e8f9f7 163 ** TransmitAsync()
<> 144:ef7eb2e8f9f7 164 **
<> 144:ef7eb2e8f9f7 165 ** DESCRIPTION: Transmit buffer asynchronously, waiting for any active transmission to finish.
<> 144:ef7eb2e8f9f7 166 **
<> 144:ef7eb2e8f9f7 167 ** PARAMETERS: buf Pointer to buffer of data to transmit
<> 144:ef7eb2e8f9f7 168 ** len Number of data bytes to transmit
<> 144:ef7eb2e8f9f7 169 ** cb Pointer to completion callback
<> 144:ef7eb2e8f9f7 170 **
<> 144:ef7eb2e8f9f7 171 ** RETURNS: 0 or error (if not zero)
<> 144:ef7eb2e8f9f7 172 **--------------------------------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 173 int32_t (*TransmitAsync)(const uint8_t *buf, uint32_t len, DRV_CONSOLE_TX_COMPLETE_CALLBACK_t cb);
<> 144:ef7eb2e8f9f7 174
<> 144:ef7eb2e8f9f7 175 /*----------------------------------------------------------------------------------------------
<> 144:ef7eb2e8f9f7 176 ** GetUART()
<> 144:ef7eb2e8f9f7 177 **
<> 144:ef7eb2e8f9f7 178 ** DESCRIPTION: Get UART associated with this console.
<> 144:ef7eb2e8f9f7 179 **
<> 144:ef7eb2e8f9f7 180 ** RETURNS: Pointer to UART
<> 144:ef7eb2e8f9f7 181 **--------------------------------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 182 const struct drv_uart *(*GetUART)(void);
<> 144:ef7eb2e8f9f7 183 };
<> 144:ef7eb2e8f9f7 184
<> 144:ef7eb2e8f9f7 185 #ifdef __cplusplus
<> 144:ef7eb2e8f9f7 186 }
<> 144:ef7eb2e8f9f7 187 #endif
<> 144:ef7eb2e8f9f7 188
<> 144:ef7eb2e8f9f7 189 #endif /* __DRV_CONSOLE_H */