Chau Vo / mbed-dev

Fork of mbed-dev by mbed official

Committer:
olympux
Date:
Wed Sep 28 20:59:47 2016 +0000
Revision:
148:161ebc35dc3a
Parent:
144:ef7eb2e8f9f7
RTC working

Who changed what in which revision?

UserRevisionLine numberNew contents of line
<> 144:ef7eb2e8f9f7 1 /**
<> 144:ef7eb2e8f9f7 2 ******************************************************************************
<> 144:ef7eb2e8f9f7 3 * @file stm32l4xx_hal_flash_ramfunc.c
<> 144:ef7eb2e8f9f7 4 * @author MCD Application Team
<> 144:ef7eb2e8f9f7 5 * @version V1.5.1
<> 144:ef7eb2e8f9f7 6 * @date 31-May-2016
<> 144:ef7eb2e8f9f7 7 * @brief FLASH RAMFUNC driver.
<> 144:ef7eb2e8f9f7 8 * This file provides a Flash firmware functions which should be
<> 144:ef7eb2e8f9f7 9 * executed from internal SRAM
<> 144:ef7eb2e8f9f7 10 * + FLASH HalfPage Programming
<> 144:ef7eb2e8f9f7 11 * + FLASH Power Down in Run mode
<> 144:ef7eb2e8f9f7 12 *
<> 144:ef7eb2e8f9f7 13 * @verbatim
<> 144:ef7eb2e8f9f7 14 ==============================================================================
<> 144:ef7eb2e8f9f7 15 ##### Flash RAM functions #####
<> 144:ef7eb2e8f9f7 16 ==============================================================================
<> 144:ef7eb2e8f9f7 17
<> 144:ef7eb2e8f9f7 18 *** ARM Compiler ***
<> 144:ef7eb2e8f9f7 19 --------------------
<> 144:ef7eb2e8f9f7 20 [..] RAM functions are defined using the toolchain options.
<> 144:ef7eb2e8f9f7 21 Functions that are executed in RAM should reside in a separate
<> 144:ef7eb2e8f9f7 22 source module. Using the 'Options for File' dialog you can simply change
<> 144:ef7eb2e8f9f7 23 the 'Code / Const' area of a module to a memory space in physical RAM.
<> 144:ef7eb2e8f9f7 24 Available memory areas are declared in the 'Target' tab of the
<> 144:ef7eb2e8f9f7 25 Options for Target' dialog.
<> 144:ef7eb2e8f9f7 26
<> 144:ef7eb2e8f9f7 27 *** ICCARM Compiler ***
<> 144:ef7eb2e8f9f7 28 -----------------------
<> 144:ef7eb2e8f9f7 29 [..] RAM functions are defined using a specific toolchain keyword "__ramfunc".
<> 144:ef7eb2e8f9f7 30
<> 144:ef7eb2e8f9f7 31 *** GNU Compiler ***
<> 144:ef7eb2e8f9f7 32 --------------------
<> 144:ef7eb2e8f9f7 33 [..] RAM functions are defined using a specific toolchain attribute
<> 144:ef7eb2e8f9f7 34 "__attribute__((section(".RamFunc")))".
<> 144:ef7eb2e8f9f7 35
<> 144:ef7eb2e8f9f7 36 @endverbatim
<> 144:ef7eb2e8f9f7 37 ******************************************************************************
<> 144:ef7eb2e8f9f7 38 * @attention
<> 144:ef7eb2e8f9f7 39 *
<> 144:ef7eb2e8f9f7 40 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
<> 144:ef7eb2e8f9f7 41 *
<> 144:ef7eb2e8f9f7 42 * Redistribution and use in source and binary forms, with or without modification,
<> 144:ef7eb2e8f9f7 43 * are permitted provided that the following conditions are met:
<> 144:ef7eb2e8f9f7 44 * 1. Redistributions of source code must retain the above copyright notice,
<> 144:ef7eb2e8f9f7 45 * this list of conditions and the following disclaimer.
<> 144:ef7eb2e8f9f7 46 * 2. Redistributions in binary form must reproduce the above copyright notice,
<> 144:ef7eb2e8f9f7 47 * this list of conditions and the following disclaimer in the documentation
<> 144:ef7eb2e8f9f7 48 * and/or other materials provided with the distribution.
<> 144:ef7eb2e8f9f7 49 * 3. Neither the name of STMicroelectronics nor the names of its contributors
<> 144:ef7eb2e8f9f7 50 * may be used to endorse or promote products derived from this software
<> 144:ef7eb2e8f9f7 51 * without specific prior written permission.
<> 144:ef7eb2e8f9f7 52 *
<> 144:ef7eb2e8f9f7 53 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
<> 144:ef7eb2e8f9f7 54 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
<> 144:ef7eb2e8f9f7 55 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
<> 144:ef7eb2e8f9f7 56 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
<> 144:ef7eb2e8f9f7 57 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
<> 144:ef7eb2e8f9f7 58 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
<> 144:ef7eb2e8f9f7 59 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
<> 144:ef7eb2e8f9f7 60 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
<> 144:ef7eb2e8f9f7 61 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
<> 144:ef7eb2e8f9f7 62 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<> 144:ef7eb2e8f9f7 63 *
<> 144:ef7eb2e8f9f7 64 ******************************************************************************
<> 144:ef7eb2e8f9f7 65 */
<> 144:ef7eb2e8f9f7 66
<> 144:ef7eb2e8f9f7 67 /* Includes ------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 68 #include "stm32l4xx_hal.h"
<> 144:ef7eb2e8f9f7 69
<> 144:ef7eb2e8f9f7 70 /** @addtogroup STM32L4xx_HAL_Driver
<> 144:ef7eb2e8f9f7 71 * @{
<> 144:ef7eb2e8f9f7 72 */
<> 144:ef7eb2e8f9f7 73
<> 144:ef7eb2e8f9f7 74 /** @defgroup FLASH_RAMFUNC FLASH_RAMFUNC
<> 144:ef7eb2e8f9f7 75 * @brief FLASH functions executed from RAM
<> 144:ef7eb2e8f9f7 76 * @{
<> 144:ef7eb2e8f9f7 77 */
<> 144:ef7eb2e8f9f7 78
<> 144:ef7eb2e8f9f7 79 #ifdef HAL_FLASH_MODULE_ENABLED
<> 144:ef7eb2e8f9f7 80
<> 144:ef7eb2e8f9f7 81 /* Private typedef -----------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 82 /* Private define ------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 83 /* Private macro -------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 84 /* Private variables ---------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 85 /* Private function prototypes -----------------------------------------------*/
<> 144:ef7eb2e8f9f7 86 /* Exported functions -------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 87
<> 144:ef7eb2e8f9f7 88 /** @defgroup FLASH_RAMFUNC_Exported_Functions FLASH in RAM function Exported Functions
<> 144:ef7eb2e8f9f7 89 * @{
<> 144:ef7eb2e8f9f7 90 */
<> 144:ef7eb2e8f9f7 91
<> 144:ef7eb2e8f9f7 92 /** @defgroup FLASH_RAMFUNC_Exported_Functions_Group1 Peripheral features functions
<> 144:ef7eb2e8f9f7 93 * @brief Data transfers functions
<> 144:ef7eb2e8f9f7 94 *
<> 144:ef7eb2e8f9f7 95 @verbatim
<> 144:ef7eb2e8f9f7 96 ===============================================================================
<> 144:ef7eb2e8f9f7 97 ##### ramfunc functions #####
<> 144:ef7eb2e8f9f7 98 ===============================================================================
<> 144:ef7eb2e8f9f7 99 [..]
<> 144:ef7eb2e8f9f7 100 This subsection provides a set of functions that should be executed from RAM.
<> 144:ef7eb2e8f9f7 101
<> 144:ef7eb2e8f9f7 102 @endverbatim
<> 144:ef7eb2e8f9f7 103 * @{
<> 144:ef7eb2e8f9f7 104 */
<> 144:ef7eb2e8f9f7 105
<> 144:ef7eb2e8f9f7 106 /**
<> 144:ef7eb2e8f9f7 107 * @brief Enable the Power down in Run Mode
<> 144:ef7eb2e8f9f7 108 * @note This function should be called and executed from SRAM memory
<> 144:ef7eb2e8f9f7 109 * @retval None
<> 144:ef7eb2e8f9f7 110 */
<> 144:ef7eb2e8f9f7 111 __RAM_FUNC HAL_FLASHEx_EnableRunPowerDown(void)
<> 144:ef7eb2e8f9f7 112 {
<> 144:ef7eb2e8f9f7 113 /* Enable the Power Down in Run mode*/
<> 144:ef7eb2e8f9f7 114 __HAL_FLASH_POWER_DOWN_ENABLE();
<> 144:ef7eb2e8f9f7 115
<> 144:ef7eb2e8f9f7 116 return HAL_OK;
<> 144:ef7eb2e8f9f7 117
<> 144:ef7eb2e8f9f7 118 }
<> 144:ef7eb2e8f9f7 119
<> 144:ef7eb2e8f9f7 120 /**
<> 144:ef7eb2e8f9f7 121 * @brief Disable the Power down in Run Mode
<> 144:ef7eb2e8f9f7 122 * @note This function should be called and executed from SRAM memory
<> 144:ef7eb2e8f9f7 123 * @retval None
<> 144:ef7eb2e8f9f7 124 */
<> 144:ef7eb2e8f9f7 125 __RAM_FUNC HAL_FLASHEx_DisableRunPowerDown(void)
<> 144:ef7eb2e8f9f7 126 {
<> 144:ef7eb2e8f9f7 127 /* Disable the Power Down in Run mode*/
<> 144:ef7eb2e8f9f7 128 __HAL_FLASH_POWER_DOWN_DISABLE();
<> 144:ef7eb2e8f9f7 129
<> 144:ef7eb2e8f9f7 130 return HAL_OK;
<> 144:ef7eb2e8f9f7 131 }
<> 144:ef7eb2e8f9f7 132
<> 144:ef7eb2e8f9f7 133 /**
<> 144:ef7eb2e8f9f7 134 * @}
<> 144:ef7eb2e8f9f7 135 */
<> 144:ef7eb2e8f9f7 136
<> 144:ef7eb2e8f9f7 137 /**
<> 144:ef7eb2e8f9f7 138 * @}
<> 144:ef7eb2e8f9f7 139 */
<> 144:ef7eb2e8f9f7 140 #endif /* HAL_FLASH_MODULE_ENABLED */
<> 144:ef7eb2e8f9f7 141
<> 144:ef7eb2e8f9f7 142
<> 144:ef7eb2e8f9f7 143
<> 144:ef7eb2e8f9f7 144 /**
<> 144:ef7eb2e8f9f7 145 * @}
<> 144:ef7eb2e8f9f7 146 */
<> 144:ef7eb2e8f9f7 147
<> 144:ef7eb2e8f9f7 148 /**
<> 144:ef7eb2e8f9f7 149 * @}
<> 144:ef7eb2e8f9f7 150 */
<> 144:ef7eb2e8f9f7 151
<> 144:ef7eb2e8f9f7 152
<> 144:ef7eb2e8f9f7 153 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
<> 144:ef7eb2e8f9f7 154
<> 144:ef7eb2e8f9f7 155