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_GCC_ARM/main_board.h@171:3a7713b1edbc, 2018-11-08 (annotated)
- Committer:
- AnnaBridge
- Date:
- Thu Nov 08 11:45:42 2018 +0000
- Revision:
- 171:3a7713b1edbc
mbed library. Release version 164
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AnnaBridge | 171:3a7713b1edbc | 1 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 2 | /*! |
AnnaBridge | 171:3a7713b1edbc | 3 | * \file main_board.h |
AnnaBridge | 171:3a7713b1edbc | 4 | * |
AnnaBridge | 171:3a7713b1edbc | 5 | * \brief Board services. |
AnnaBridge | 171:3a7713b1edbc | 6 | * |
AnnaBridge | 171:3a7713b1edbc | 7 | * Copyright (c) 2015 ARM, Ltd., all rights reserved. |
AnnaBridge | 171:3a7713b1edbc | 8 | * ARM confidential and proprietary. |
AnnaBridge | 171:3a7713b1edbc | 9 | * |
AnnaBridge | 171:3a7713b1edbc | 10 | * IMPORTANT. Your use of this file is governed by a Software License Agreement |
AnnaBridge | 171:3a7713b1edbc | 11 | * ("Agreement") that must be accepted in order to download or otherwise receive a |
AnnaBridge | 171:3a7713b1edbc | 12 | * copy of this file. You may not use or copy this file for any purpose other than |
AnnaBridge | 171:3a7713b1edbc | 13 | * as described in the Agreement. If you do not agree to all of the terms of the |
AnnaBridge | 171:3a7713b1edbc | 14 | * Agreement do not use this file and delete all copies in your possession or control; |
AnnaBridge | 171:3a7713b1edbc | 15 | * if you do not have a copy of the Agreement, you must contact ARM, Ltd. prior |
AnnaBridge | 171:3a7713b1edbc | 16 | * to any use, copying or further distribution of this software. |
AnnaBridge | 171:3a7713b1edbc | 17 | */ |
AnnaBridge | 171:3a7713b1edbc | 18 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 19 | |
AnnaBridge | 171:3a7713b1edbc | 20 | #ifndef __MAIN_BOARD_H |
AnnaBridge | 171:3a7713b1edbc | 21 | #define __MAIN_BOARD_H |
AnnaBridge | 171:3a7713b1edbc | 22 | |
AnnaBridge | 171:3a7713b1edbc | 23 | /*************************************************************************************************** |
AnnaBridge | 171:3a7713b1edbc | 24 | ** INCLUDES |
AnnaBridge | 171:3a7713b1edbc | 25 | ***************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 26 | |
AnnaBridge | 171:3a7713b1edbc | 27 | #include "chip.h" |
AnnaBridge | 171:3a7713b1edbc | 28 | #include "board.h" |
AnnaBridge | 171:3a7713b1edbc | 29 | |
AnnaBridge | 171:3a7713b1edbc | 30 | #include "wsf_types.h" |
AnnaBridge | 171:3a7713b1edbc | 31 | |
AnnaBridge | 171:3a7713b1edbc | 32 | #ifdef __cplusplus |
AnnaBridge | 171:3a7713b1edbc | 33 | extern "C" { |
AnnaBridge | 171:3a7713b1edbc | 34 | #endif |
AnnaBridge | 171:3a7713b1edbc | 35 | |
AnnaBridge | 171:3a7713b1edbc | 36 | /*************************************************************************************************** |
AnnaBridge | 171:3a7713b1edbc | 37 | ** TYPES |
AnnaBridge | 171:3a7713b1edbc | 38 | ***************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 39 | |
AnnaBridge | 171:3a7713b1edbc | 40 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 41 | ** enum main_board_mode |
AnnaBridge | 171:3a7713b1edbc | 42 | ** |
AnnaBridge | 171:3a7713b1edbc | 43 | ** DESCRIPTION: Mode of application on board, if detectable at run-time. |
AnnaBridge | 171:3a7713b1edbc | 44 | --------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 45 | enum main_board_mode { |
AnnaBridge | 171:3a7713b1edbc | 46 | MAIN_BOARD_MODE_DTM = 0, |
AnnaBridge | 171:3a7713b1edbc | 47 | MAIN_BOARD_MODE_BEACON = 1, |
AnnaBridge | 171:3a7713b1edbc | 48 | MAIN_BOARD_MODE_SENSOR = 2, |
AnnaBridge | 171:3a7713b1edbc | 49 | MAIN_BOARD_MODE_BEACON_NONCONNECTABLE = 3 |
AnnaBridge | 171:3a7713b1edbc | 50 | }; |
AnnaBridge | 171:3a7713b1edbc | 51 | |
AnnaBridge | 171:3a7713b1edbc | 52 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 53 | ** enum main_board_settings |
AnnaBridge | 171:3a7713b1edbc | 54 | ** |
AnnaBridge | 171:3a7713b1edbc | 55 | ** DESCRIPTION: Settings for board, stored in NV data. These values should not be changed once |
AnnaBridge | 171:3a7713b1edbc | 56 | ** used. |
AnnaBridge | 171:3a7713b1edbc | 57 | --------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 58 | enum main_board_settings { |
AnnaBridge | 171:3a7713b1edbc | 59 | /* Major number (for beacon) [2 bytes] */ |
AnnaBridge | 171:3a7713b1edbc | 60 | MAIN_BOARD_SETTING_MAJOR = 0, |
AnnaBridge | 171:3a7713b1edbc | 61 | /* Minor number (for beacon) [2 bytes] */ |
AnnaBridge | 171:3a7713b1edbc | 62 | MAIN_BOARD_SETTING_MINOR = 1, |
AnnaBridge | 171:3a7713b1edbc | 63 | /* RSSI reference (for beacon) [2 bytes] */ |
AnnaBridge | 171:3a7713b1edbc | 64 | MAIN_BOARD_SETTING_RSSI_REFERENCE = 2, |
AnnaBridge | 171:3a7713b1edbc | 65 | /* HCI logging level [1 byte] */ |
AnnaBridge | 171:3a7713b1edbc | 66 | MAIN_BOARD_SETTING_HCI_LOGGING_LEVEL = 3, |
AnnaBridge | 171:3a7713b1edbc | 67 | /* Lock state (for UriBeacon) [1 byte] */ |
AnnaBridge | 171:3a7713b1edbc | 68 | MAIN_BOARD_SETTING_LOCK_STATE = 4, |
AnnaBridge | 171:3a7713b1edbc | 69 | /* URI data (for UriBeacon) [18 bytes] */ |
AnnaBridge | 171:3a7713b1edbc | 70 | MAIN_BOARD_SETTING_URI_DATA = 5, |
AnnaBridge | 171:3a7713b1edbc | 71 | /* URI flags (for UriBeacon) [1 byte] */ |
AnnaBridge | 171:3a7713b1edbc | 72 | MAIN_BOARD_SETTING_URI_FLAGS = 6, |
AnnaBridge | 171:3a7713b1edbc | 73 | /* Advertised tx power levels (for UriBeacon) [4 bytes] */ |
AnnaBridge | 171:3a7713b1edbc | 74 | MAIN_BOARD_SETTING_ADVERTISED_TX_POWER_LEVELS = 7, |
AnnaBridge | 171:3a7713b1edbc | 75 | /* Tx power mode (for UriBeacon) [1 byte] */ |
AnnaBridge | 171:3a7713b1edbc | 76 | MAIN_BOARD_SETTING_TX_POWER_MODE = 8, |
AnnaBridge | 171:3a7713b1edbc | 77 | /* Beacon period (for beacon) [2 bytes] */ |
AnnaBridge | 171:3a7713b1edbc | 78 | MAIN_BOARD_SETTING_BEACON_PERIOD = 9, |
AnnaBridge | 171:3a7713b1edbc | 79 | /* Lock [16 bytes] */ |
AnnaBridge | 171:3a7713b1edbc | 80 | MAIN_BOARD_SETTING_LOCK = 10, |
AnnaBridge | 171:3a7713b1edbc | 81 | /* PIN [3 bytes] */ |
AnnaBridge | 171:3a7713b1edbc | 82 | MAIN_BOARD_SETTING_PIN = 11, |
AnnaBridge | 171:3a7713b1edbc | 83 | /* Beacon type [1 byte] */ |
AnnaBridge | 171:3a7713b1edbc | 84 | MAIN_BOARD_SETTING_BEACON_TYPE = 12, |
AnnaBridge | 171:3a7713b1edbc | 85 | }; |
AnnaBridge | 171:3a7713b1edbc | 86 | |
AnnaBridge | 171:3a7713b1edbc | 87 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 88 | ** enum main_board_muxmode |
AnnaBridge | 171:3a7713b1edbc | 89 | ** |
AnnaBridge | 171:3a7713b1edbc | 90 | ** DESCRIPTION: Settings for MUX mode of MCU. |
AnnaBridge | 171:3a7713b1edbc | 91 | --------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 92 | enum main_board_muxmode { |
AnnaBridge | 171:3a7713b1edbc | 93 | MAIN_BOARD_MUXMODE_NORMAL = 0, |
AnnaBridge | 171:3a7713b1edbc | 94 | MAIN_BOARD_MUXMODE_DIGITAL_TEST = 1, |
AnnaBridge | 171:3a7713b1edbc | 95 | }; |
AnnaBridge | 171:3a7713b1edbc | 96 | |
AnnaBridge | 171:3a7713b1edbc | 97 | /*************************************************************************************************** |
AnnaBridge | 171:3a7713b1edbc | 98 | ** FUNCTIONS |
AnnaBridge | 171:3a7713b1edbc | 99 | ***************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 100 | |
AnnaBridge | 171:3a7713b1edbc | 101 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 102 | ** Main_BoardInit() |
AnnaBridge | 171:3a7713b1edbc | 103 | ** |
AnnaBridge | 171:3a7713b1edbc | 104 | ** DESCRIPTION: Initialize board. |
AnnaBridge | 171:3a7713b1edbc | 105 | --------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 106 | void Main_BoardInit(void); |
AnnaBridge | 171:3a7713b1edbc | 107 | |
AnnaBridge | 171:3a7713b1edbc | 108 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 109 | ** Main_BoardI2cInit() |
AnnaBridge | 171:3a7713b1edbc | 110 | ** |
AnnaBridge | 171:3a7713b1edbc | 111 | ** DESCRIPTION: Initialize I2C devices on board. |
AnnaBridge | 171:3a7713b1edbc | 112 | --------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 113 | #ifdef BOARD_HAS_I2C |
AnnaBridge | 171:3a7713b1edbc | 114 | void Main_BoardI2cInit(void); |
AnnaBridge | 171:3a7713b1edbc | 115 | #endif |
AnnaBridge | 171:3a7713b1edbc | 116 | |
AnnaBridge | 171:3a7713b1edbc | 117 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 118 | ** Main_BoardGetMode() |
AnnaBridge | 171:3a7713b1edbc | 119 | ** |
AnnaBridge | 171:3a7713b1edbc | 120 | ** DESCRIPTION: Get board mode. |
AnnaBridge | 171:3a7713b1edbc | 121 | ** |
AnnaBridge | 171:3a7713b1edbc | 122 | ** RETURNS: Board mode. |
AnnaBridge | 171:3a7713b1edbc | 123 | --------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 124 | enum main_board_mode Main_BoardGetMode(void); |
AnnaBridge | 171:3a7713b1edbc | 125 | |
AnnaBridge | 171:3a7713b1edbc | 126 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 127 | ** Main_BoardNvGetSize() |
AnnaBridge | 171:3a7713b1edbc | 128 | ** |
AnnaBridge | 171:3a7713b1edbc | 129 | ** DESCRIPTION: Called to get size of NV memory. |
AnnaBridge | 171:3a7713b1edbc | 130 | ** |
AnnaBridge | 171:3a7713b1edbc | 131 | ** RETURNS: Size of NV memory |
AnnaBridge | 171:3a7713b1edbc | 132 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 133 | #ifdef BOARD_HAS_SPIFLASH |
AnnaBridge | 171:3a7713b1edbc | 134 | size_t Main_BoardNvGetSize(void); |
AnnaBridge | 171:3a7713b1edbc | 135 | #endif /* BOARD_HAS_SPIFLASH */ |
AnnaBridge | 171:3a7713b1edbc | 136 | |
AnnaBridge | 171:3a7713b1edbc | 137 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 138 | ** Main_BoardNvRead() |
AnnaBridge | 171:3a7713b1edbc | 139 | ** |
AnnaBridge | 171:3a7713b1edbc | 140 | ** DESCRIPTION: Called to read NV data. |
AnnaBridge | 171:3a7713b1edbc | 141 | ** |
AnnaBridge | 171:3a7713b1edbc | 142 | ** PARAMETERS: addr Address from which to read |
AnnaBridge | 171:3a7713b1edbc | 143 | ** buf Pointer to buffer to receive data |
AnnaBridge | 171:3a7713b1edbc | 144 | ** length Number of bytes to read |
AnnaBridge | 171:3a7713b1edbc | 145 | ** |
AnnaBridge | 171:3a7713b1edbc | 146 | ** RETURNS: Number of bytes read |
AnnaBridge | 171:3a7713b1edbc | 147 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 148 | #ifdef BOARD_HAS_SPIFLASH |
AnnaBridge | 171:3a7713b1edbc | 149 | size_t Main_BoardNvRead(size_t addr, uint8_t *buf, size_t length); |
AnnaBridge | 171:3a7713b1edbc | 150 | #endif /* BOARD_HAS_SPIFLASH */ |
AnnaBridge | 171:3a7713b1edbc | 151 | |
AnnaBridge | 171:3a7713b1edbc | 152 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 153 | ** Main_BoardNvWrite() |
AnnaBridge | 171:3a7713b1edbc | 154 | ** |
AnnaBridge | 171:3a7713b1edbc | 155 | ** DESCRIPTION: Called to write NV data. |
AnnaBridge | 171:3a7713b1edbc | 156 | ** |
AnnaBridge | 171:3a7713b1edbc | 157 | ** PARAMETERS: addr Address at which to write |
AnnaBridge | 171:3a7713b1edbc | 158 | ** buf Pointer to buffer with data to write |
AnnaBridge | 171:3a7713b1edbc | 159 | ** length Number of bytes to write |
AnnaBridge | 171:3a7713b1edbc | 160 | ** |
AnnaBridge | 171:3a7713b1edbc | 161 | ** RETURNS: Number of bytes written |
AnnaBridge | 171:3a7713b1edbc | 162 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 163 | #ifdef BOARD_HAS_SPIFLASH |
AnnaBridge | 171:3a7713b1edbc | 164 | size_t Main_BoardNvWrite(size_t addr, const uint8_t *buf, size_t length); |
AnnaBridge | 171:3a7713b1edbc | 165 | #endif /* BOARD_HAS_SPIFLASH */ |
AnnaBridge | 171:3a7713b1edbc | 166 | |
AnnaBridge | 171:3a7713b1edbc | 167 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 168 | ** Main_BoardNvErase() |
AnnaBridge | 171:3a7713b1edbc | 169 | ** |
AnnaBridge | 171:3a7713b1edbc | 170 | ** DESCRIPTION: Called to erase NV data. |
AnnaBridge | 171:3a7713b1edbc | 171 | ** |
AnnaBridge | 171:3a7713b1edbc | 172 | ** RETURNS: 0 or error (if not 0) |
AnnaBridge | 171:3a7713b1edbc | 173 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 174 | #ifdef BOARD_HAS_SPIFLASH |
AnnaBridge | 171:3a7713b1edbc | 175 | int32_t Main_BoardNvErase(void); |
AnnaBridge | 171:3a7713b1edbc | 176 | #endif /* BOARD_HAS_SPIFLASH */ |
AnnaBridge | 171:3a7713b1edbc | 177 | |
AnnaBridge | 171:3a7713b1edbc | 178 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 179 | ** Main_BoardSettingsInit() |
AnnaBridge | 171:3a7713b1edbc | 180 | ** |
AnnaBridge | 171:3a7713b1edbc | 181 | ** DESCRIPTION: Initialize settings stored in a host blob in the NV data. |
AnnaBridge | 171:3a7713b1edbc | 182 | ** |
AnnaBridge | 171:3a7713b1edbc | 183 | ** RETURNS: 0 or error (if not 0) |
AnnaBridge | 171:3a7713b1edbc | 184 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 185 | #ifdef BOARD_HAS_SPIFLASH |
AnnaBridge | 171:3a7713b1edbc | 186 | int32_t Main_BoardSettingsInit(void); |
AnnaBridge | 171:3a7713b1edbc | 187 | #endif /* BOARD_HAS_SPIFLASH */ |
AnnaBridge | 171:3a7713b1edbc | 188 | |
AnnaBridge | 171:3a7713b1edbc | 189 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 190 | ** Main_BoardSettingsClear() |
AnnaBridge | 171:3a7713b1edbc | 191 | ** |
AnnaBridge | 171:3a7713b1edbc | 192 | ** DESCRIPTION: Clear settings stored in a host blob in the NV data. |
AnnaBridge | 171:3a7713b1edbc | 193 | ** |
AnnaBridge | 171:3a7713b1edbc | 194 | ** RETURNS: 0 or error (if not 0) |
AnnaBridge | 171:3a7713b1edbc | 195 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 196 | #ifdef BOARD_HAS_SPIFLASH |
AnnaBridge | 171:3a7713b1edbc | 197 | int32_t Main_BoardSettingsClear(void); |
AnnaBridge | 171:3a7713b1edbc | 198 | #endif /* BOARD_HAS_SPIFLASH */ |
AnnaBridge | 171:3a7713b1edbc | 199 | |
AnnaBridge | 171:3a7713b1edbc | 200 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 201 | ** Main_BoardSettingRead() |
AnnaBridge | 171:3a7713b1edbc | 202 | ** |
AnnaBridge | 171:3a7713b1edbc | 203 | ** DESCRIPTION: Read a setting stored in a host blob in the NV data. |
AnnaBridge | 171:3a7713b1edbc | 204 | ** |
AnnaBridge | 171:3a7713b1edbc | 205 | ** PARAMETERS: id ID of the setting |
AnnaBridge | 171:3a7713b1edbc | 206 | ** buf Pointer to buffer that will receive setting value |
AnnaBridge | 171:3a7713b1edbc | 207 | ** length Length of the buffer; if setting is longer, only this many bytes will be |
AnnaBridge | 171:3a7713b1edbc | 208 | ** stored |
AnnaBridge | 171:3a7713b1edbc | 209 | ** |
AnnaBridge | 171:3a7713b1edbc | 210 | ** RETURNS: length of the setting or error (if less than or equal to zero) |
AnnaBridge | 171:3a7713b1edbc | 211 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 212 | #ifdef BOARD_HAS_SPIFLASH |
AnnaBridge | 171:3a7713b1edbc | 213 | int32_t Main_BoardSettingRead(uint8_t id, uint8_t *buf, uint8_t length); |
AnnaBridge | 171:3a7713b1edbc | 214 | #endif /* BOARD_HAS_SPIFLASH */ |
AnnaBridge | 171:3a7713b1edbc | 215 | |
AnnaBridge | 171:3a7713b1edbc | 216 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 217 | ** Main_BoardSettingWrite() |
AnnaBridge | 171:3a7713b1edbc | 218 | ** |
AnnaBridge | 171:3a7713b1edbc | 219 | ** DESCRIPTION: Write a setting stored in a host blob in the NV data. |
AnnaBridge | 171:3a7713b1edbc | 220 | ** |
AnnaBridge | 171:3a7713b1edbc | 221 | ** PARAMETERS: id ID of the setting |
AnnaBridge | 171:3a7713b1edbc | 222 | ** buf Pointer to buffer with setting value |
AnnaBridge | 171:3a7713b1edbc | 223 | ** length Length of the buffer; if setting is longer, only this many bytes will be |
AnnaBridge | 171:3a7713b1edbc | 224 | ** read |
AnnaBridge | 171:3a7713b1edbc | 225 | ** |
AnnaBridge | 171:3a7713b1edbc | 226 | ** RETURNS: length of the setting or error (if less than or equal to zero) |
AnnaBridge | 171:3a7713b1edbc | 227 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 228 | #ifdef BOARD_HAS_SPIFLASH |
AnnaBridge | 171:3a7713b1edbc | 229 | int32_t Main_BoardSettingWrite(uint8_t id, const uint8_t *buf, uint8_t length); |
AnnaBridge | 171:3a7713b1edbc | 230 | #endif /* BOARD_HAS_SPIFLASH */ |
AnnaBridge | 171:3a7713b1edbc | 231 | |
AnnaBridge | 171:3a7713b1edbc | 232 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 233 | ** Main_BoardSetPmuFeature() |
AnnaBridge | 171:3a7713b1edbc | 234 | ** |
AnnaBridge | 171:3a7713b1edbc | 235 | ** DESCRIPTION: Set PMU feature of MCU. |
AnnaBridge | 171:3a7713b1edbc | 236 | ** |
AnnaBridge | 171:3a7713b1edbc | 237 | ** PARAMETERS: req Requested feature(s). |
AnnaBridge | 171:3a7713b1edbc | 238 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 239 | void Main_BoardSetPmuFeature(uint8_t req); |
AnnaBridge | 171:3a7713b1edbc | 240 | |
AnnaBridge | 171:3a7713b1edbc | 241 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 242 | ** Main_BoardGetPmuFeature() |
AnnaBridge | 171:3a7713b1edbc | 243 | ** |
AnnaBridge | 171:3a7713b1edbc | 244 | ** DESCRIPTION: Get PMU feature of MCU. |
AnnaBridge | 171:3a7713b1edbc | 245 | ** |
AnnaBridge | 171:3a7713b1edbc | 246 | ** RETURNS: Requested feature(s). |
AnnaBridge | 171:3a7713b1edbc | 247 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 248 | uint8_t Main_BoardGetPmuFeature(void); |
AnnaBridge | 171:3a7713b1edbc | 249 | |
AnnaBridge | 171:3a7713b1edbc | 250 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 251 | ** Main_BoardSetMuxMode() |
AnnaBridge | 171:3a7713b1edbc | 252 | ** |
AnnaBridge | 171:3a7713b1edbc | 253 | ** DESCRIPTION: Set MUX mode of MCU. |
AnnaBridge | 171:3a7713b1edbc | 254 | ** |
AnnaBridge | 171:3a7713b1edbc | 255 | ** PARAMETERS: mode Mode to set |
AnnaBridge | 171:3a7713b1edbc | 256 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 257 | void Main_BoardSetMuxMode(uint8_t mode); |
AnnaBridge | 171:3a7713b1edbc | 258 | |
AnnaBridge | 171:3a7713b1edbc | 259 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 260 | ** Main_BoardWakeLockInc() |
AnnaBridge | 171:3a7713b1edbc | 261 | ** |
AnnaBridge | 171:3a7713b1edbc | 262 | ** DESCRIPTION: Increment counter to keep MCU from entering deep sleep. |
AnnaBridge | 171:3a7713b1edbc | 263 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 264 | void Main_BoardWakeLockInc(void); |
AnnaBridge | 171:3a7713b1edbc | 265 | |
AnnaBridge | 171:3a7713b1edbc | 266 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 267 | ** Main_BoardWakeLockDec() |
AnnaBridge | 171:3a7713b1edbc | 268 | ** |
AnnaBridge | 171:3a7713b1edbc | 269 | ** DESCRIPTION: Decrement counter to allow MCU to enter deep sleep. |
AnnaBridge | 171:3a7713b1edbc | 270 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 271 | void Main_BoardWakeLockDec(void); |
AnnaBridge | 171:3a7713b1edbc | 272 | |
AnnaBridge | 171:3a7713b1edbc | 273 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 274 | ** Main_Board32kTimerSleep() |
AnnaBridge | 171:3a7713b1edbc | 275 | ** |
AnnaBridge | 171:3a7713b1edbc | 276 | ** DESCRIPTION: Deep sleep for a certain number of ticks of the 32k timer. |
AnnaBridge | 171:3a7713b1edbc | 277 | ** |
AnnaBridge | 171:3a7713b1edbc | 278 | ** PARAMETERS: ticks Number of ticks to sleep; 0 to sleep forever |
AnnaBridge | 171:3a7713b1edbc | 279 | ** deep TRUE if sleep should be deep sleep |
AnnaBridge | 171:3a7713b1edbc | 280 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 281 | void Main_Board32kTimerSleep(uint32_t ticks, bool_t deep); |
AnnaBridge | 171:3a7713b1edbc | 282 | |
AnnaBridge | 171:3a7713b1edbc | 283 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 284 | ** Main_Board32kTimerRead() |
AnnaBridge | 171:3a7713b1edbc | 285 | ** |
AnnaBridge | 171:3a7713b1edbc | 286 | ** DESCRIPTION: Read the 32k timer. |
AnnaBridge | 171:3a7713b1edbc | 287 | ** |
AnnaBridge | 171:3a7713b1edbc | 288 | ** Returns: The timer value |
AnnaBridge | 171:3a7713b1edbc | 289 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 290 | uint32_t Main_Board32kTimerRead(void); |
AnnaBridge | 171:3a7713b1edbc | 291 | |
AnnaBridge | 171:3a7713b1edbc | 292 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 293 | ** Main_BoardSetWakeupCallback() |
AnnaBridge | 171:3a7713b1edbc | 294 | ** |
AnnaBridge | 171:3a7713b1edbc | 295 | ** DESCRIPTION: Set callback for wakeup interrupt. |
AnnaBridge | 171:3a7713b1edbc | 296 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 297 | #ifdef BOARD_HAS_WAKEUP |
AnnaBridge | 171:3a7713b1edbc | 298 | void Main_BoardSetWakeupCback(void (*wakeupCback)(void)); |
AnnaBridge | 171:3a7713b1edbc | 299 | #endif |
AnnaBridge | 171:3a7713b1edbc | 300 | |
AnnaBridge | 171:3a7713b1edbc | 301 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 302 | ** Main_BoardWatchdogTimeout() |
AnnaBridge | 171:3a7713b1edbc | 303 | ** |
AnnaBridge | 171:3a7713b1edbc | 304 | ** DESCRIPTION: Set watchdog to expire in certain number of milliseconds, after which the processor |
AnnaBridge | 171:3a7713b1edbc | 305 | ** will reset. |
AnnaBridge | 171:3a7713b1edbc | 306 | ** |
AnnaBridge | 171:3a7713b1edbc | 307 | ** PARAMETERS: to_ms Milliseconds before timeout; 0 to timeout immediately |
AnnaBridge | 171:3a7713b1edbc | 308 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 309 | void Main_BoardWatchdogTimeout(uint16_t to_ms); |
AnnaBridge | 171:3a7713b1edbc | 310 | |
AnnaBridge | 171:3a7713b1edbc | 311 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 312 | ** Main_BoardWatchdogCancel() |
AnnaBridge | 171:3a7713b1edbc | 313 | ** |
AnnaBridge | 171:3a7713b1edbc | 314 | ** DESCRIPTION: Cancel watchdog timeout, so that the processor will not reset if it expires. |
AnnaBridge | 171:3a7713b1edbc | 315 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 316 | void Main_BoardWatchdogCancel(void); |
AnnaBridge | 171:3a7713b1edbc | 317 | |
AnnaBridge | 171:3a7713b1edbc | 318 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 319 | ** Main_BoardGpioSet() |
AnnaBridge | 171:3a7713b1edbc | 320 | ** |
AnnaBridge | 171:3a7713b1edbc | 321 | ** DESCRIPTION: Set GPIO output. |
AnnaBridge | 171:3a7713b1edbc | 322 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 323 | #ifdef BOARD_HAS_GPIO_OUTPUTS |
AnnaBridge | 171:3a7713b1edbc | 324 | void Main_BoardGpioSet(uint8_t num); |
AnnaBridge | 171:3a7713b1edbc | 325 | #endif |
AnnaBridge | 171:3a7713b1edbc | 326 | |
AnnaBridge | 171:3a7713b1edbc | 327 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 328 | ** Main_BoardGpioClr() |
AnnaBridge | 171:3a7713b1edbc | 329 | ** |
AnnaBridge | 171:3a7713b1edbc | 330 | ** DESCRIPTION: Clear GPIO output. |
AnnaBridge | 171:3a7713b1edbc | 331 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 332 | #ifdef BOARD_HAS_GPIO_OUTPUTS |
AnnaBridge | 171:3a7713b1edbc | 333 | void Main_BoardGpioClr(uint8_t num); |
AnnaBridge | 171:3a7713b1edbc | 334 | #endif |
AnnaBridge | 171:3a7713b1edbc | 335 | |
AnnaBridge | 171:3a7713b1edbc | 336 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 337 | ** Main_BoardGpioToggle() |
AnnaBridge | 171:3a7713b1edbc | 338 | ** |
AnnaBridge | 171:3a7713b1edbc | 339 | ** DESCRIPTION: Toggle GPIO output. |
AnnaBridge | 171:3a7713b1edbc | 340 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 341 | #ifdef BOARD_HAS_GPIO_OUTPUTS |
AnnaBridge | 171:3a7713b1edbc | 342 | void Main_BoardGpioToggle(uint8_t num); |
AnnaBridge | 171:3a7713b1edbc | 343 | #endif |
AnnaBridge | 171:3a7713b1edbc | 344 | |
AnnaBridge | 171:3a7713b1edbc | 345 | /*-------------------------------------------------------------------------------------------------- |
AnnaBridge | 171:3a7713b1edbc | 346 | ** Main_BoardDelayUsec() |
AnnaBridge | 171:3a7713b1edbc | 347 | ** |
AnnaBridge | 171:3a7713b1edbc | 348 | ** DESCRIPTION: Delay for a certain time, in microseconds. |
AnnaBridge | 171:3a7713b1edbc | 349 | ** |
AnnaBridge | 171:3a7713b1edbc | 350 | ** PARAMETERS: delay_us Microseconds to delay. |
AnnaBridge | 171:3a7713b1edbc | 351 | **------------------------------------------------------------------------------------------------*/ |
AnnaBridge | 171:3a7713b1edbc | 352 | void Main_BoardDelayUsec(uint32_t delay_us); |
AnnaBridge | 171:3a7713b1edbc | 353 | |
AnnaBridge | 171:3a7713b1edbc | 354 | #ifdef __cplusplus |
AnnaBridge | 171:3a7713b1edbc | 355 | } |
AnnaBridge | 171:3a7713b1edbc | 356 | #endif |
AnnaBridge | 171:3a7713b1edbc | 357 | |
AnnaBridge | 171:3a7713b1edbc | 358 | #endif /* __MAIN_BOARD_H */ |