Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed-dev by
targets/hal/TARGET_ARM_SSG/TARGET_BEETLE/cordio/include/driver/drv_console.h@144:ef7eb2e8f9f7, 2016-09-02 (annotated)
- 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?
| User | Revision | Line number | New 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 */ |
