TUKS MCU Introductory course / TUKS-COURSE-2-LED
Committer:
elmot
Date:
Fri Feb 24 21:13:56 2017 +0000
Revision:
1:d0dfbce63a89
Ready-to-copy

Who changed what in which revision?

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