mbed library sources modified for open wear

Dependents:   openwear-lifelogger-example

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Wed Feb 26 09:45:12 2014 +0000
Revision:
106:ced8cbb51063
Parent:
87:085cde657901
Child:
226:b062af740e40
Synchronized with git revision 4222735eff5868389433f0e9271976b39c8115cd

Full URL: https://github.com/mbedmicro/mbed/commit/4222735eff5868389433f0e9271976b39c8115cd/

[NUCLEO_xxx] Update STM32CubeF4 driver V1.0.0 + update license

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 87:085cde657901 1 /**
mbed_official 87:085cde657901 2 ******************************************************************************
mbed_official 87:085cde657901 3 * @file stm32f4xx_hal.c
mbed_official 87:085cde657901 4 * @author MCD Application Team
mbed_official 106:ced8cbb51063 5 * @version V1.0.0
mbed_official 106:ced8cbb51063 6 * @date 18-February-2014
mbed_official 87:085cde657901 7 * @brief HAL module driver.
mbed_official 87:085cde657901 8 * This is the common part of the HAL initialization
mbed_official 87:085cde657901 9 *
mbed_official 87:085cde657901 10 @verbatim
mbed_official 87:085cde657901 11 ==============================================================================
mbed_official 87:085cde657901 12 ##### How to use this driver #####
mbed_official 87:085cde657901 13 ==============================================================================
mbed_official 87:085cde657901 14 [..]
mbed_official 87:085cde657901 15 The common HAL driver contains a set of generic and common APIs that can be
mbed_official 87:085cde657901 16 used by the PPP peripheral drivers and the user to start using the HAL.
mbed_official 87:085cde657901 17 [..]
mbed_official 87:085cde657901 18 The HAL contains two APIs categories:
mbed_official 87:085cde657901 19 (+) Common HAL APIs
mbed_official 87:085cde657901 20 (+) Services HAL APIs
mbed_official 87:085cde657901 21
mbed_official 87:085cde657901 22 @endverbatim
mbed_official 87:085cde657901 23 ******************************************************************************
mbed_official 87:085cde657901 24 * @attention
mbed_official 87:085cde657901 25 *
mbed_official 87:085cde657901 26 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 87:085cde657901 27 *
mbed_official 87:085cde657901 28 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 87:085cde657901 29 * are permitted provided that the following conditions are met:
mbed_official 87:085cde657901 30 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 87:085cde657901 31 * this list of conditions and the following disclaimer.
mbed_official 87:085cde657901 32 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 87:085cde657901 33 * this list of conditions and the following disclaimer in the documentation
mbed_official 87:085cde657901 34 * and/or other materials provided with the distribution.
mbed_official 87:085cde657901 35 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 87:085cde657901 36 * may be used to endorse or promote products derived from this software
mbed_official 87:085cde657901 37 * without specific prior written permission.
mbed_official 87:085cde657901 38 *
mbed_official 87:085cde657901 39 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 87:085cde657901 40 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 87:085cde657901 41 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 87:085cde657901 42 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 87:085cde657901 43 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 87:085cde657901 44 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 87:085cde657901 45 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 87:085cde657901 46 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 87:085cde657901 47 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 87:085cde657901 48 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 87:085cde657901 49 *
mbed_official 87:085cde657901 50 ******************************************************************************
mbed_official 87:085cde657901 51 */
mbed_official 87:085cde657901 52
mbed_official 87:085cde657901 53 /* Includes ------------------------------------------------------------------*/
mbed_official 87:085cde657901 54 #include "stm32f4xx_hal.h"
mbed_official 87:085cde657901 55
mbed_official 87:085cde657901 56 /** @addtogroup STM32F4xx_HAL_Driver
mbed_official 87:085cde657901 57 * @{
mbed_official 87:085cde657901 58 */
mbed_official 87:085cde657901 59
mbed_official 87:085cde657901 60 /** @defgroup HAL
mbed_official 87:085cde657901 61 * @brief HAL module driver.
mbed_official 87:085cde657901 62 * @{
mbed_official 87:085cde657901 63 */
mbed_official 87:085cde657901 64
mbed_official 87:085cde657901 65 /* Private typedef -----------------------------------------------------------*/
mbed_official 87:085cde657901 66 /* Private define ------------------------------------------------------------*/
mbed_official 87:085cde657901 67 /**
mbed_official 106:ced8cbb51063 68 * @brief STM32F4xx HAL Driver version number V1.0.0
mbed_official 87:085cde657901 69 */
mbed_official 87:085cde657901 70 #define __STM32F4xx_HAL_VERSION_MAIN (0x01) /*!< [31:24] main version */
mbed_official 87:085cde657901 71 #define __STM32F4xx_HAL_VERSION_SUB1 (0x00) /*!< [23:16] sub1 version */
mbed_official 87:085cde657901 72 #define __STM32F4xx_HAL_VERSION_SUB2 (0x00) /*!< [15:8] sub2 version */
mbed_official 106:ced8cbb51063 73 #define __STM32F4xx_HAL_VERSION_RC (0x00) /*!< [7:0] release candidate */
mbed_official 87:085cde657901 74 #define __STM32F4xx_HAL_VERSION ((__STM32F4xx_HAL_VERSION_MAIN << 24)\
mbed_official 87:085cde657901 75 |(__STM32F4xx_HAL_VERSION_SUB1 << 16)\
mbed_official 87:085cde657901 76 |(__STM32F4xx_HAL_VERSION_SUB2 << 8 )\
mbed_official 87:085cde657901 77 |(__STM32F4xx_HAL_VERSION_RC))
mbed_official 87:085cde657901 78
mbed_official 87:085cde657901 79 #define IDCODE_DEVID_MASK ((uint32_t)0x00000FFF)
mbed_official 87:085cde657901 80
mbed_official 87:085cde657901 81 /* ------------ RCC registers bit address in the alias region ----------- */
mbed_official 87:085cde657901 82 #define SYSCFG_OFFSET (SYSCFG_BASE - PERIPH_BASE)
mbed_official 87:085cde657901 83 /* --- MEMRMP Register ---*/
mbed_official 87:085cde657901 84 /* Alias word address of UFB_MODE bit */
mbed_official 87:085cde657901 85 #define MEMRMP_OFFSET SYSCFG_OFFSET
mbed_official 87:085cde657901 86 #define UFB_MODE_BitNumber ((uint8_t)0x8)
mbed_official 87:085cde657901 87 #define UFB_MODE_BB (PERIPH_BB_BASE + (MEMRMP_OFFSET * 32) + (UFB_MODE_BitNumber * 4))
mbed_official 87:085cde657901 88
mbed_official 87:085cde657901 89 /* --- CMPCR Register ---*/
mbed_official 87:085cde657901 90 /* Alias word address of CMP_PD bit */
mbed_official 87:085cde657901 91 #define CMPCR_OFFSET (SYSCFG_OFFSET + 0x20)
mbed_official 87:085cde657901 92 #define CMP_PD_BitNumber ((uint8_t)0x00)
mbed_official 87:085cde657901 93 #define CMPCR_CMP_PD_BB (PERIPH_BB_BASE + (CMPCR_OFFSET * 32) + (CMP_PD_BitNumber * 4))
mbed_official 87:085cde657901 94 /* Private macro -------------------------------------------------------------*/
mbed_official 87:085cde657901 95 /* Private variables ---------------------------------------------------------*/
mbed_official 87:085cde657901 96 static __IO uint32_t uwTick;
mbed_official 106:ced8cbb51063 97
mbed_official 87:085cde657901 98 /* Private function prototypes -----------------------------------------------*/
mbed_official 87:085cde657901 99 /* Private functions ---------------------------------------------------------*/
mbed_official 87:085cde657901 100
mbed_official 87:085cde657901 101 /** @defgroup HAL_Private_Functions
mbed_official 87:085cde657901 102 * @{
mbed_official 87:085cde657901 103 */
mbed_official 87:085cde657901 104
mbed_official 87:085cde657901 105 /** @defgroup HAL_Group1 Initialization and de-initialization Functions
mbed_official 87:085cde657901 106 * @brief Initialization and de-initialization functions
mbed_official 87:085cde657901 107 *
mbed_official 87:085cde657901 108 @verbatim
mbed_official 87:085cde657901 109 ===============================================================================
mbed_official 87:085cde657901 110 ##### Initialization and de-initialization functions #####
mbed_official 87:085cde657901 111 ===============================================================================
mbed_official 87:085cde657901 112 [..] This section provides functions allowing to:
mbed_official 87:085cde657901 113 (+) Initializes the Flash interface the NVIC allocation and initial clock
mbed_official 87:085cde657901 114 configuration. It initializes the systick also when timeout is needed
mbed_official 87:085cde657901 115 and the backup domain when enabled.
mbed_official 87:085cde657901 116 (+) de-Initializes common part of the HAL
mbed_official 87:085cde657901 117
mbed_official 87:085cde657901 118 @endverbatim
mbed_official 87:085cde657901 119 * @{
mbed_official 87:085cde657901 120 */
mbed_official 87:085cde657901 121
mbed_official 87:085cde657901 122 /**
mbed_official 106:ced8cbb51063 123 * @brief This function is used to initialize the HAL Library; it must be the first
mbed_official 106:ced8cbb51063 124 * instruction to be executed in the main program (before to call any other
mbed_official 106:ced8cbb51063 125 * HAL function), it performs the following:
mbed_official 106:ced8cbb51063 126 * - Configure the Flash prefetch, instruction and Data caches
mbed_official 106:ced8cbb51063 127 * - Configures the SysTick to generate an interrupt each 1 millisecond,
mbed_official 106:ced8cbb51063 128 * which is clocked by the HSI (at this stage, the clock is not yet
mbed_official 106:ced8cbb51063 129 * configured and thus the system is running from the internal HSI at 16 MHz)
mbed_official 106:ced8cbb51063 130 * - Set NVIC Group Priority to 4
mbed_official 106:ced8cbb51063 131 * - Calls the HAL_MspInit() callback function defined in user file
mbed_official 106:ced8cbb51063 132 * stm32f4xx_hal_msp.c to do the global low level hardware initialization
mbed_official 87:085cde657901 133 *
mbed_official 106:ced8cbb51063 134 * @note SysTick is used as time base for the HAL_Delay() function, the application
mbed_official 106:ced8cbb51063 135 * need to ensure that the SysTick time base is always set to 1 millisecond
mbed_official 106:ced8cbb51063 136 * to have correct HAL operation.
mbed_official 87:085cde657901 137 * @note
mbed_official 87:085cde657901 138 * @param None
mbed_official 87:085cde657901 139 * @retval HAL status
mbed_official 87:085cde657901 140 */
mbed_official 87:085cde657901 141 HAL_StatusTypeDef HAL_Init(void)
mbed_official 87:085cde657901 142 {
mbed_official 87:085cde657901 143 /* Configure Flash prefetch, Instruction cache, Data cache */
mbed_official 87:085cde657901 144 #if (INSTRUCTION_CACHE_ENABLE != 0)
mbed_official 87:085cde657901 145 __HAL_FLASH_INSTRUCTION_CACHE_ENABLE();
mbed_official 87:085cde657901 146 #endif /* INSTRUCTION_CACHE_ENABLE */
mbed_official 87:085cde657901 147
mbed_official 87:085cde657901 148 #if (DATA_CACHE_ENABLE != 0)
mbed_official 87:085cde657901 149 __HAL_FLASH_DATA_CACHE_ENABLE();
mbed_official 87:085cde657901 150 #endif /* DATA_CACHE_ENABLE */
mbed_official 87:085cde657901 151
mbed_official 87:085cde657901 152 #if (PREFETCH_ENABLE != 0)
mbed_official 87:085cde657901 153 __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
mbed_official 87:085cde657901 154 #endif /* PREFETCH_ENABLE */
mbed_official 87:085cde657901 155
mbed_official 87:085cde657901 156 /* Enable systick and configure 1ms tick (default clock after Reset is HSI) */
mbed_official 87:085cde657901 157 HAL_SYSTICK_Config(HSI_VALUE/ 1000);
mbed_official 87:085cde657901 158
mbed_official 87:085cde657901 159 /* Set Interrupt Group Priority */
mbed_official 87:085cde657901 160 HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
mbed_official 87:085cde657901 161
mbed_official 87:085cde657901 162 /* Init the low level hardware */
mbed_official 87:085cde657901 163 HAL_MspInit();
mbed_official 87:085cde657901 164
mbed_official 87:085cde657901 165 /* Return function status */
mbed_official 87:085cde657901 166 return HAL_OK;
mbed_official 87:085cde657901 167 }
mbed_official 87:085cde657901 168
mbed_official 87:085cde657901 169 /**
mbed_official 87:085cde657901 170 * @brief This function de-Initializes common part of the HAL and stops the systick.
mbed_official 87:085cde657901 171 * This function is optional.
mbed_official 87:085cde657901 172 * @param None
mbed_official 87:085cde657901 173 * @retval HAL status
mbed_official 87:085cde657901 174 */
mbed_official 87:085cde657901 175 HAL_StatusTypeDef HAL_DeInit(void)
mbed_official 87:085cde657901 176 {
mbed_official 87:085cde657901 177 /* Reset of all peripherals */
mbed_official 87:085cde657901 178 __APB1_FORCE_RESET();
mbed_official 87:085cde657901 179 __APB1_RELEASE_RESET();
mbed_official 87:085cde657901 180
mbed_official 87:085cde657901 181 __APB2_FORCE_RESET();
mbed_official 87:085cde657901 182 __APB2_RELEASE_RESET();
mbed_official 87:085cde657901 183
mbed_official 87:085cde657901 184 __AHB1_FORCE_RESET();
mbed_official 87:085cde657901 185 __AHB1_RELEASE_RESET();
mbed_official 87:085cde657901 186
mbed_official 87:085cde657901 187 __AHB2_FORCE_RESET();
mbed_official 87:085cde657901 188 __AHB2_RELEASE_RESET();
mbed_official 87:085cde657901 189
mbed_official 87:085cde657901 190 __AHB3_FORCE_RESET();
mbed_official 87:085cde657901 191 __AHB3_RELEASE_RESET();
mbed_official 87:085cde657901 192
mbed_official 87:085cde657901 193 /* De-Init the low level hardware */
mbed_official 87:085cde657901 194 HAL_MspDeInit();
mbed_official 87:085cde657901 195
mbed_official 87:085cde657901 196 /* Return function status */
mbed_official 87:085cde657901 197 return HAL_OK;
mbed_official 87:085cde657901 198 }
mbed_official 87:085cde657901 199
mbed_official 87:085cde657901 200 /**
mbed_official 87:085cde657901 201 * @brief Initializes the MSP.
mbed_official 87:085cde657901 202 * @param None
mbed_official 87:085cde657901 203 * @retval None
mbed_official 87:085cde657901 204 */
mbed_official 87:085cde657901 205 __weak void HAL_MspInit(void)
mbed_official 87:085cde657901 206 {
mbed_official 87:085cde657901 207 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 87:085cde657901 208 the HAL_MspInit could be implemented in the user file
mbed_official 87:085cde657901 209 */
mbed_official 87:085cde657901 210 }
mbed_official 87:085cde657901 211
mbed_official 87:085cde657901 212 /**
mbed_official 87:085cde657901 213 * @brief DeInitializes the MSP.
mbed_official 87:085cde657901 214 * @param None
mbed_official 87:085cde657901 215 * @retval None
mbed_official 87:085cde657901 216 */
mbed_official 87:085cde657901 217 __weak void HAL_MspDeInit(void)
mbed_official 87:085cde657901 218 {
mbed_official 87:085cde657901 219 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 87:085cde657901 220 the HAL_MspDeInit could be implemented in the user file
mbed_official 87:085cde657901 221 */
mbed_official 87:085cde657901 222 }
mbed_official 87:085cde657901 223
mbed_official 87:085cde657901 224 /**
mbed_official 87:085cde657901 225 * @}
mbed_official 87:085cde657901 226 */
mbed_official 87:085cde657901 227
mbed_official 87:085cde657901 228 /** @defgroup HAL_Group2 HAL Control functions
mbed_official 87:085cde657901 229 * @brief HAL Control functions
mbed_official 87:085cde657901 230 *
mbed_official 87:085cde657901 231 @verbatim
mbed_official 87:085cde657901 232 ===============================================================================
mbed_official 87:085cde657901 233 ##### HAL Control functions #####
mbed_official 87:085cde657901 234 ===============================================================================
mbed_official 87:085cde657901 235 [..] This section provides functions allowing to:
mbed_official 87:085cde657901 236 (+) provide a tick value in millisecond
mbed_official 87:085cde657901 237 (+) provide a blocking delay in millisecond
mbed_official 87:085cde657901 238 (+) Get the HAL API driver version
mbed_official 87:085cde657901 239 (+) Get the device identifier
mbed_official 87:085cde657901 240 (+) Get the device revision identifier
mbed_official 87:085cde657901 241 (+) Enable/Disable Debug module during Sleep mode
mbed_official 87:085cde657901 242 (+) Enable/Disable Debug module during STOP mode
mbed_official 87:085cde657901 243 (+) Enable/Disable Debug module during STANDBY mode
mbed_official 87:085cde657901 244
mbed_official 87:085cde657901 245
mbed_official 87:085cde657901 246 @endverbatim
mbed_official 87:085cde657901 247 * @{
mbed_official 87:085cde657901 248 */
mbed_official 87:085cde657901 249
mbed_official 87:085cde657901 250 /**
mbed_official 106:ced8cbb51063 251 * @brief This function is called from SysTick ISR each 1 millisecond, to increment
mbed_official 106:ced8cbb51063 252 * a global variable "uwTick" used as time base.
mbed_official 87:085cde657901 253 * @param None
mbed_official 87:085cde657901 254 * @retval None
mbed_official 87:085cde657901 255 */
mbed_official 87:085cde657901 256 void HAL_IncTick(void)
mbed_official 87:085cde657901 257 {
mbed_official 87:085cde657901 258 uwTick++;
mbed_official 87:085cde657901 259 }
mbed_official 87:085cde657901 260
mbed_official 87:085cde657901 261 /**
mbed_official 106:ced8cbb51063 262 * @brief Povides a tick value in millisecond.
mbed_official 87:085cde657901 263 * @param Non
mbed_official 87:085cde657901 264 * @retval tick value
mbed_official 87:085cde657901 265 */
mbed_official 87:085cde657901 266 uint32_t HAL_GetTick(void)
mbed_official 87:085cde657901 267 {
mbed_official 87:085cde657901 268 return uwTick;
mbed_official 87:085cde657901 269 }
mbed_official 87:085cde657901 270
mbed_official 87:085cde657901 271 /**
mbed_official 106:ced8cbb51063 272 * @brief Provides a blocking delay in millisecond.
mbed_official 106:ced8cbb51063 273 * @note Care must be taken when using HAL_Delay(), this function provides accurate delay
mbed_official 106:ced8cbb51063 274 * (in milliseconds) based on variable incremented in SysTick ISR. This implies that
mbed_official 106:ced8cbb51063 275 * if HAL_Delay() is called from a peripheral ISR process, then the SysTick interrupt
mbed_official 106:ced8cbb51063 276 * must have higher priority (numerically lower) than the peripheral interrupt.
mbed_official 106:ced8cbb51063 277 * Otherwise the caller ISR process will be blocked. To change the SysTick interrupt
mbed_official 106:ced8cbb51063 278 * priority you have to use HAL_NVIC_SetPriority() function.
mbed_official 87:085cde657901 279 * @param Delay : specifies the delay time length, in milliseconds.
mbed_official 87:085cde657901 280 * @retval None
mbed_official 87:085cde657901 281 */
mbed_official 87:085cde657901 282 void HAL_Delay(__IO uint32_t Delay)
mbed_official 87:085cde657901 283 {
mbed_official 87:085cde657901 284 uint32_t timingdelay;
mbed_official 87:085cde657901 285
mbed_official 87:085cde657901 286 timingdelay = HAL_GetTick() + Delay;
mbed_official 87:085cde657901 287 while(HAL_GetTick() < timingdelay)
mbed_official 87:085cde657901 288 {
mbed_official 87:085cde657901 289 }
mbed_official 87:085cde657901 290 }
mbed_official 87:085cde657901 291
mbed_official 87:085cde657901 292 /**
mbed_official 106:ced8cbb51063 293 * @brief Returns the HAL revision
mbed_official 87:085cde657901 294 * @param None
mbed_official 87:085cde657901 295 * @retval version : 0xXYZR (8bits for each decimal, R for RC)
mbed_official 87:085cde657901 296 */
mbed_official 87:085cde657901 297 uint32_t HAL_GetHalVersion(void)
mbed_official 87:085cde657901 298 {
mbed_official 87:085cde657901 299 return __STM32F4xx_HAL_VERSION;
mbed_official 87:085cde657901 300 }
mbed_official 87:085cde657901 301
mbed_official 87:085cde657901 302 /**
mbed_official 87:085cde657901 303 * @brief Returns the device revision identifier.
mbed_official 87:085cde657901 304 * @param None
mbed_official 87:085cde657901 305 * @retval Device revision identifier
mbed_official 87:085cde657901 306 */
mbed_official 87:085cde657901 307 uint32_t HAL_GetREVID(void)
mbed_official 87:085cde657901 308 {
mbed_official 87:085cde657901 309 return((DBGMCU->IDCODE) >> 16);
mbed_official 87:085cde657901 310 }
mbed_official 87:085cde657901 311
mbed_official 87:085cde657901 312 /**
mbed_official 87:085cde657901 313 * @brief Returns the device identifier.
mbed_official 87:085cde657901 314 * @param None
mbed_official 87:085cde657901 315 * @retval Device identifier
mbed_official 87:085cde657901 316 */
mbed_official 87:085cde657901 317 uint32_t HAL_GetDEVID(void)
mbed_official 87:085cde657901 318 {
mbed_official 87:085cde657901 319 return((DBGMCU->IDCODE) & IDCODE_DEVID_MASK);
mbed_official 87:085cde657901 320 }
mbed_official 87:085cde657901 321
mbed_official 87:085cde657901 322 /**
mbed_official 87:085cde657901 323 * @brief Enable the Debug Module during SLEEP mode
mbed_official 87:085cde657901 324 * @param None
mbed_official 87:085cde657901 325 * @retval None
mbed_official 87:085cde657901 326 */
mbed_official 87:085cde657901 327 void HAL_EnableDBGSleepMode(void)
mbed_official 87:085cde657901 328 {
mbed_official 87:085cde657901 329 SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP);
mbed_official 87:085cde657901 330 }
mbed_official 87:085cde657901 331
mbed_official 87:085cde657901 332 /**
mbed_official 87:085cde657901 333 * @brief Disable the Debug Module during SLEEP mode
mbed_official 87:085cde657901 334 * @param None
mbed_official 87:085cde657901 335 * @retval None
mbed_official 87:085cde657901 336 */
mbed_official 87:085cde657901 337 void HAL_DisableDBGSleepMode(void)
mbed_official 87:085cde657901 338 {
mbed_official 87:085cde657901 339 CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP);
mbed_official 87:085cde657901 340 }
mbed_official 87:085cde657901 341
mbed_official 87:085cde657901 342 /**
mbed_official 87:085cde657901 343 * @brief Enable the Debug Module during STOP mode
mbed_official 87:085cde657901 344 * @param None
mbed_official 87:085cde657901 345 * @retval None
mbed_official 87:085cde657901 346 */
mbed_official 87:085cde657901 347 void HAL_EnableDBGStopMode(void)
mbed_official 87:085cde657901 348 {
mbed_official 87:085cde657901 349 SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP);
mbed_official 87:085cde657901 350 }
mbed_official 87:085cde657901 351
mbed_official 87:085cde657901 352 /**
mbed_official 87:085cde657901 353 * @brief Disable the Debug Module during STOP mode
mbed_official 87:085cde657901 354 * @param None
mbed_official 87:085cde657901 355 * @retval None
mbed_official 87:085cde657901 356 */
mbed_official 87:085cde657901 357 void HAL_DisableDBGStopMode(void)
mbed_official 87:085cde657901 358 {
mbed_official 87:085cde657901 359 CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP);
mbed_official 87:085cde657901 360 }
mbed_official 87:085cde657901 361
mbed_official 87:085cde657901 362 /**
mbed_official 87:085cde657901 363 * @brief Enable the Debug Module during STANDBY mode
mbed_official 87:085cde657901 364 * @param None
mbed_official 87:085cde657901 365 * @retval None
mbed_official 87:085cde657901 366 */
mbed_official 87:085cde657901 367 void HAL_EnableDBGStandbyMode(void)
mbed_official 87:085cde657901 368 {
mbed_official 87:085cde657901 369 SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY);
mbed_official 87:085cde657901 370 }
mbed_official 87:085cde657901 371
mbed_official 87:085cde657901 372 /**
mbed_official 87:085cde657901 373 * @brief Disable the Debug Module during STANDBY mode
mbed_official 87:085cde657901 374 * @param None
mbed_official 87:085cde657901 375 * @retval None
mbed_official 87:085cde657901 376 */
mbed_official 87:085cde657901 377 void HAL_DisableDBGStandbyMode(void)
mbed_official 87:085cde657901 378 {
mbed_official 87:085cde657901 379 CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY);
mbed_official 87:085cde657901 380 }
mbed_official 87:085cde657901 381
mbed_official 87:085cde657901 382 /**
mbed_official 87:085cde657901 383 * @brief Enables the I/O Compensation Cell.
mbed_official 87:085cde657901 384 * @note The I/O compensation cell can be used only when the device supply
mbed_official 87:085cde657901 385 * voltage ranges from 2.4 to 3.6 V.
mbed_official 87:085cde657901 386 * @retval None
mbed_official 87:085cde657901 387 */
mbed_official 87:085cde657901 388 void HAL_EnableCompensationCell(void)
mbed_official 87:085cde657901 389 {
mbed_official 87:085cde657901 390 *(__IO uint32_t *)CMPCR_CMP_PD_BB = (uint32_t)ENABLE;
mbed_official 87:085cde657901 391 }
mbed_official 87:085cde657901 392
mbed_official 87:085cde657901 393 /**
mbed_official 87:085cde657901 394 * @brief Power-down the I/O Compensation Cell.
mbed_official 87:085cde657901 395 * @note The I/O compensation cell can be used only when the device supply
mbed_official 87:085cde657901 396 * voltage ranges from 2.4 to 3.6 V.
mbed_official 87:085cde657901 397 * @retval None
mbed_official 87:085cde657901 398 */
mbed_official 87:085cde657901 399 void HAL_DisableCompensationCell(void)
mbed_official 87:085cde657901 400 {
mbed_official 87:085cde657901 401 *(__IO uint32_t *)CMPCR_CMP_PD_BB = (uint32_t)DISABLE;
mbed_official 87:085cde657901 402 }
mbed_official 87:085cde657901 403
mbed_official 87:085cde657901 404 #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx)|| defined(STM32F439xx)
mbed_official 87:085cde657901 405 /**
mbed_official 87:085cde657901 406 * @brief Enables the Internal FLASH Bank Swapping.
mbed_official 87:085cde657901 407 *
mbed_official 87:085cde657901 408 * @note This function can be used only for STM32F42xxx/43xxx devices.
mbed_official 87:085cde657901 409 *
mbed_official 87:085cde657901 410 * @note Flash Bank2 mapped at 0x08000000 (and aliased @0x00000000)
mbed_official 87:085cde657901 411 * and Flash Bank1 mapped at 0x08100000 (and aliased at 0x00100000)
mbed_official 87:085cde657901 412 *
mbed_official 87:085cde657901 413 * @retval None
mbed_official 87:085cde657901 414 */
mbed_official 87:085cde657901 415 void HAL_EnableMemorySwappingBank(void)
mbed_official 87:085cde657901 416 {
mbed_official 87:085cde657901 417 *(__IO uint32_t *)UFB_MODE_BB = (uint32_t)ENABLE;
mbed_official 87:085cde657901 418 }
mbed_official 87:085cde657901 419
mbed_official 87:085cde657901 420 /**
mbed_official 87:085cde657901 421 * @brief Disables the Internal FLASH Bank Swapping.
mbed_official 87:085cde657901 422 *
mbed_official 87:085cde657901 423 * @note This function can be used only for STM32F42xxx/43xxx devices.
mbed_official 87:085cde657901 424 *
mbed_official 87:085cde657901 425 * @note The default state : Flash Bank1 mapped at 0x08000000 (and aliased @0x0000 0000)
mbed_official 87:085cde657901 426 * and Flash Bank2 mapped at 0x08100000 (and aliased at 0x00100000)
mbed_official 87:085cde657901 427 *
mbed_official 87:085cde657901 428 * @retval None
mbed_official 87:085cde657901 429 */
mbed_official 87:085cde657901 430 void HAL_DisableMemorySwappingBank(void)
mbed_official 87:085cde657901 431 {
mbed_official 87:085cde657901 432
mbed_official 87:085cde657901 433 *(__IO uint32_t *)UFB_MODE_BB = (uint32_t)DISABLE;
mbed_official 87:085cde657901 434 }
mbed_official 87:085cde657901 435 #endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */
mbed_official 87:085cde657901 436
mbed_official 87:085cde657901 437 /**
mbed_official 87:085cde657901 438 * @}
mbed_official 87:085cde657901 439 */
mbed_official 87:085cde657901 440
mbed_official 87:085cde657901 441 /**
mbed_official 87:085cde657901 442 * @}
mbed_official 87:085cde657901 443 */
mbed_official 87:085cde657901 444
mbed_official 87:085cde657901 445 /**
mbed_official 87:085cde657901 446 * @}
mbed_official 87:085cde657901 447 */
mbed_official 87:085cde657901 448
mbed_official 87:085cde657901 449 /**
mbed_official 87:085cde657901 450 * @}
mbed_official 87:085cde657901 451 */
mbed_official 87:085cde657901 452
mbed_official 87:085cde657901 453 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/