B3M38SPD seminar project - beehive monitor with LoRa reporting
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
spd-lorabees/build/stm32l0xx_hal_flash_ramfunc...

1527 lines
98 KiB

ARM GAS /tmp/ccviJFHV.s page 1
1 .cpu cortex-m0plus
2 .eabi_attribute 20, 1
3 .eabi_attribute 21, 1
4 .eabi_attribute 23, 3
5 .eabi_attribute 24, 1
6 .eabi_attribute 25, 1
7 .eabi_attribute 26, 1
8 .eabi_attribute 30, 1
9 .eabi_attribute 34, 0
10 .eabi_attribute 18, 4
11 .file "stm32l0xx_hal_flash_ramfunc.c"
12 .text
13 .Ltext0:
14 .cfi_sections .debug_frame
15 .section .RamFunc,"ax",%progbits
16 .align 1
17 .syntax unified
18 .code 16
19 .thumb_func
20 .fpu softvfp
22 FLASHRAM_WaitForLastOperation:
23 .LFB46:
24 .file 1 "./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c"
1:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /**
2:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** ******************************************************************************
3:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @file stm32l0xx_hal_flash_ramfunc.c
4:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @author MCD Application Team
5:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @brief FLASH RAMFUNC driver.
6:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * This file provides a Flash firmware functions which should be
7:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * executed from internal SRAM
8:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** *
9:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @verbatim
10:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
11:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** *** ARM Compiler ***
12:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** --------------------
13:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** [..] RAM functions are defined using the toolchain options.
14:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** Functions that are be executed in RAM should reside in a separate
15:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** source module. Using the 'Options for File' dialog you can simply change
16:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** the 'Code / Const' area of a module to a memory space in physical RAM.
17:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** Available memory areas are declared in the 'Target' tab of the
18:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** Options for Target' dialog.
19:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
20:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** *** ICCARM Compiler ***
21:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** -----------------------
22:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** [..] RAM functions are defined using a specific toolchain keyword "__ramfunc".
23:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
24:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** *** GNU Compiler ***
25:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** --------------------
26:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** [..] RAM functions are defined using a specific toolchain attribute
27:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** "__attribute__((section(".RamFunc")))".
28:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
29:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** @endverbatim
30:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** ******************************************************************************
31:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @attention
32:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** *
33:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
34:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** *
ARM GAS /tmp/ccviJFHV.s page 2
35:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * Redistribution and use in source and binary forms, with or without modification,
36:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * are permitted provided that the following conditions are met:
37:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * 1. Redistributions of source code must retain the above copyright notice,
38:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * this list of conditions and the following disclaimer.
39:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * 2. Redistributions in binary form must reproduce the above copyright notice,
40:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * this list of conditions and the following disclaimer in the documentation
41:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * and/or other materials provided with the distribution.
42:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * 3. Neither the name of STMicroelectronics nor the names of its contributors
43:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * may be used to endorse or promote products derived from this software
44:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * without specific prior written permission.
45:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** *
46:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
47:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
48:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
49:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
50:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
51:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
52:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
53:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
54:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
55:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
56:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** *
57:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** ******************************************************************************
58:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
59:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
60:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Includes ------------------------------------------------------------------*/
61:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** #include "stm32l0xx_hal.h"
62:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
63:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /** @addtogroup STM32L0xx_HAL_Driver
64:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @{
65:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
66:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
67:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** #ifdef HAL_FLASH_MODULE_ENABLED
68:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
69:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /** @addtogroup FLASH
70:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @{
71:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
72:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /** @addtogroup FLASH_Private_Variables
73:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @{
74:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
75:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** extern FLASH_ProcessTypeDef pFlash;
76:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /**
77:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @}
78:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
79:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
80:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /**
81:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @}
82:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
83:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
84:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /** @defgroup FLASH_RAMFUNC FLASH_RAMFUNC
85:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @brief FLASH functions executed from RAM
86:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @{
87:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
88:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
89:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
90:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Private typedef -----------------------------------------------------------*/
91:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Private define ------------------------------------------------------------*/
ARM GAS /tmp/ccviJFHV.s page 3
92:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Private macro -------------------------------------------------------------*/
93:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Private variables ---------------------------------------------------------*/
94:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Private function prototypes -----------------------------------------------*/
95:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /** @defgroup FLASH_RAMFUNC_Private_Functions FLASH RAM Private Functions
96:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @{
97:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
98:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
99:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** static __RAM_FUNC FLASHRAM_WaitForLastOperation(uint32_t Timeout);
100:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** static __RAM_FUNC FLASHRAM_SetErrorCode(void);
101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /**
103:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @}
104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
106:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Private functions ---------------------------------------------------------*/
107:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /** @defgroup FLASH_RAMFUNC_Exported_Functions FLASH RAM Exported Functions
109:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** *
110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** @verbatim
111:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** ===============================================================================
112:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** ##### ramfunc functions #####
113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** ===============================================================================
114:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** [..]
115:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** This subsection provides a set of functions that should be executed from RAM
116:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** transfers.
117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
118:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** @endverbatim
119:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @{
120:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
122:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /** @defgroup FLASH_RAMFUNC_Exported_Functions_Group1 Peripheral features functions
123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @{
124:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
125:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
126:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /**
127:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @brief Enable the power down mode during RUN mode.
128:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @note This function can be used only when the user code is running from Internal SRAM.
129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @retval HAL status
130:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
131:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __RAM_FUNC HAL_FLASHEx_EnableRunPowerDown(void)
132:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Enable the Power Down in Run mode*/
134:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __HAL_FLASH_POWER_DOWN_ENABLE();
135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
136:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** return HAL_OK;
137:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
138:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
139:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /**
140:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @brief Disable the power down mode during RUN mode.
141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @note This function can be used only when the user code is running from Internal SRAM.
142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @retval HAL status
143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
144:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __RAM_FUNC HAL_FLASHEx_DisableRunPowerDown(void)
145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
146:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Disable the Power Down in Run mode*/
147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __HAL_FLASH_POWER_DOWN_DISABLE();
148:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
ARM GAS /tmp/ccviJFHV.s page 4
149:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** return HAL_OK;
150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /**
153:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @}
154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /** @defgroup FLASH_RAMFUNC_Exported_Functions_Group2 Programming and erasing operation functions
157:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** *
158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** @verbatim
159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** @endverbatim
160:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @{
161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** #if defined(FLASH_PECR_PARALLBANK)
164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /**
165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @brief Erases a specified 2 pages in program memory in parallel.
166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @note This function can be used only for STM32L07xxx/STM32L08xxx devices.
167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * To correctly run this function, the @ref HAL_FLASH_Unlock() function
168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * must be called before.
169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * Call the @ref HAL_FLASH_Lock() to disable the flash memory access
170:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * (recommended to protect the FLASH memory against possible unwanted operation).
171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @param Page_Address1: The page address in program memory to be erased in
172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * the first Bank (BANK1). This parameter should be between FLASH_BASE
173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * and FLASH_BANK1_END.
174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @param Page_Address2: The page address in program memory to be erased in
175:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * the second Bank (BANK2). This parameter should be between FLASH_BANK2_BASE
176:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * and FLASH_BANK2_END.
177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @note A Page is erased in the Program memory only if the address to load
178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * is the start address of a page (multiple of @ref FLASH_PAGE_SIZE bytes).
179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @retval HAL status
180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
181:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __RAM_FUNC HAL_FLASHEx_EraseParallelPage(uint32_t Page_Address1, uint32_t Page_Address2)
182:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** HAL_StatusTypeDef status = HAL_OK;
184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Wait for last operation to be completed */
186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** status = FLASHRAM_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** if(status == HAL_OK)
189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
190:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Proceed to erase the page */
191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** SET_BIT(FLASH->PECR, FLASH_PECR_PARALLBANK);
192:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** SET_BIT(FLASH->PECR, FLASH_PECR_ERASE);
193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** SET_BIT(FLASH->PECR, FLASH_PECR_PROG);
194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Write 00000000h to the first word of the first program page to erase */
196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** *(__IO uint32_t *)Page_Address1 = 0x00000000U;
197:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Write 00000000h to the first word of the second program page to erase */
198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** *(__IO uint32_t *)Page_Address2 = 0x00000000U;
199:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Wait for last operation to be completed */
201:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** status = FLASHRAM_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
202:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* If the erase operation is completed, disable the ERASE, PROG and PARALLBANK bits */
204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** CLEAR_BIT(FLASH->PECR, FLASH_PECR_PROG);
205:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** CLEAR_BIT(FLASH->PECR, FLASH_PECR_ERASE);
ARM GAS /tmp/ccviJFHV.s page 5
206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** CLEAR_BIT(FLASH->PECR, FLASH_PECR_PARALLBANK);
207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
208:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Return the Erase Status */
209:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** return status;
210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /**
213:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @brief Program 2 half pages in program memory in parallel (half page size is 16 Words).
214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @note This function can be used only for STM32L07xxx/STM32L08xxx devices.
215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @param Address1: specifies the first address to be written in the first bank
216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * (BANK1). This parameter should be between FLASH_BASE and (FLASH_BANK1_END - FLASH_PAGE_S
217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @param pBuffer1: pointer to the buffer containing the data to be written
218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * to the first half page in the first bank.
219:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @param Address2: specifies the second address to be written in the second bank
220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * (BANK2). This parameter should be between FLASH_BANK2_BASE and (FLASH_BANK2_END - FLASH_
221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @param pBuffer2: pointer to the buffer containing the data to be written
222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * to the second half page in the second bank.
223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @note To correctly run this function, the @ref HAL_FLASH_Unlock() function
224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * must be called before.
225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * Call the @ref HAL_FLASH_Lock() to disable the flash memory access
226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * (recommended to protect the FLASH memory against possible unwanted operation).
227:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @note Half page write is possible only from SRAM.
228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @note A half page is written to the program memory only if the first
229:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * address to load is the start address of a half page (multiple of 64
230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * bytes) and the 15 remaining words to load are in the same half page.
231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @note During the Program memory half page write all read operations are
232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * forbidden (this includes DMA read operations and debugger read
233:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * operations such as breakpoints, periodic updates, etc.).
234:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @note If a PGAERR is set during a Program memory half page write, the
235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * complete write operation is aborted. Software should then reset the
236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * FPRG and PROG/DATA bits and restart the write operation from the
237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * beginning.
238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @retval HAL status
239:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
240:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __RAM_FUNC HAL_FLASHEx_ProgramParallelHalfPage(uint32_t Address1, uint32_t* pBuffer1, uint32_t Addr
241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** uint32_t count = 0U;
243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** HAL_StatusTypeDef status = HAL_OK;
244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Wait for last operation to be completed */
246:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** status = FLASHRAM_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** if(status == HAL_OK)
249:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Proceed to program the new half page */
251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** SET_BIT(FLASH->PECR, FLASH_PECR_PARALLBANK);
252:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** SET_BIT(FLASH->PECR, FLASH_PECR_FPRG);
253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** SET_BIT(FLASH->PECR, FLASH_PECR_PROG);
254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Wait for last operation to be completed */
256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** status = FLASHRAM_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** if(status == HAL_OK)
258:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
259:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Disable all IRQs */
260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __disable_irq();
261:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
262:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Write the first half page directly with 16 different words */
ARM GAS /tmp/ccviJFHV.s page 6
263:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** while(count < 16U)
264:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
265:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Address1 doesn't need to be increased */
266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** *(__IO uint32_t*) Address1 = *pBuffer1;
267:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** pBuffer1++;
268:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** count ++;
269:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
270:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Write the second half page directly with 16 different words */
272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** count = 0U;
273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** while(count < 16U)
274:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
275:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Address2 doesn't need to be increased */
276:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** *(__IO uint32_t*) Address2 = *pBuffer2;
277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** pBuffer2++;
278:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** count ++;
279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
280:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
281:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Enable IRQs */
282:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __enable_irq();
283:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
284:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Wait for last operation to be completed */
285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** status = FLASHRAM_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
286:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
287:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* if the write operation is completed, disable the PROG, FPRG and PARALLBANK bits */
289:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** CLEAR_BIT(FLASH->PECR, FLASH_PECR_PROG);
290:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** CLEAR_BIT(FLASH->PECR, FLASH_PECR_FPRG);
291:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** CLEAR_BIT(FLASH->PECR, FLASH_PECR_PARALLBANK);
292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
293:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
294:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Return the Write Status */
295:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** return status;
296:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
297:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** #endif /* FLASH_PECR_PARALLBANK */
298:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /**
300:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @brief Program a half page in program memory.
301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @param Address: specifies the address to be written.
302:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @param pBuffer: pointer to the buffer containing the data to be written to
303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * the half page.
304:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @note To correctly run this function, the @ref HAL_FLASH_Unlock() function
305:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * must be called before.
306:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * Call the @ref HAL_FLASH_Lock() to disable the flash memory access
307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * (recommended to protect the FLASH memory against possible unwanted operation)
308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @note Half page write is possible only from SRAM.
309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @note A half page is written to the program memory only if the first
310:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * address to load is the start address of a half page (multiple of 64
311:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * bytes) and the 15 remaining words to load are in the same half page.
312:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @note During the Program memory half page write all read operations are
313:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * forbidden (this includes DMA read operations and debugger read
314:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * operations such as breakpoints, periodic updates, etc.).
315:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @note If a PGAERR is set during a Program memory half page write, the
316:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * complete write operation is aborted. Software should then reset the
317:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * FPRG and PROG/DATA bits and restart the write operation from the
318:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * beginning.
319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @retval HAL status
ARM GAS /tmp/ccviJFHV.s page 7
320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
321:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __RAM_FUNC HAL_FLASHEx_HalfPageProgram(uint32_t Address, uint32_t* pBuffer)
322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
323:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** uint32_t count = 0U;
324:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** HAL_StatusTypeDef status = HAL_OK;
325:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
326:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Wait for last operation to be completed */
327:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** status = FLASHRAM_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
328:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
329:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** if(status == HAL_OK)
330:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
331:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Proceed to program the new half page */
332:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** SET_BIT(FLASH->PECR, FLASH_PECR_FPRG);
333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** SET_BIT(FLASH->PECR, FLASH_PECR_PROG);
334:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
335:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Disable all IRQs */
336:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __disable_irq();
337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
338:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Write one half page directly with 16 different words */
339:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** while(count < 16U)
340:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
341:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Address doesn't need to be increased */
342:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** *(__IO uint32_t*) Address = *pBuffer;
343:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** pBuffer++;
344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** count ++;
345:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
347:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Enable IRQs */
348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __enable_irq();
349:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Wait for last operation to be completed */
351:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** status = FLASHRAM_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
352:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* If the write operation is completed, disable the PROG and FPRG bits */
354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** CLEAR_BIT(FLASH->PECR, FLASH_PECR_PROG);
355:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** CLEAR_BIT(FLASH->PECR, FLASH_PECR_FPRG);
356:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
357:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
358:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Return the Write Status */
359:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** return status;
360:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
361:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
362:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /**
363:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @}
364:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
365:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
366:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /** @defgroup FLASH_RAMFUNC_Exported_Functions_Group3 Peripheral errors functions
367:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @brief Peripheral errors functions
368:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** *
369:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** @verbatim
370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** ===============================================================================
371:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** ##### Peripheral errors functions #####
372:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** ===============================================================================
373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** [..]
374:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** This subsection permit to get in run-time errors of the FLASH peripheral.
375:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** @endverbatim
ARM GAS /tmp/ccviJFHV.s page 8
377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @{
378:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
379:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /**
381:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @brief Get the specific FLASH errors flag.
382:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @param Error pointer is the error value. It can be a mixed of:
383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @arg @ref HAL_FLASH_ERROR_RD FLASH Read Protection error flag (PCROP)
384:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @arg @ref HAL_FLASH_ERROR_SIZE FLASH Programming Parallelism error flag
385:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @arg @ref HAL_FLASH_ERROR_PGA FLASH Programming Alignment error flag
386:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @arg @ref HAL_FLASH_ERROR_WRP FLASH Write protected error flag
387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @arg @ref HAL_FLASH_ERROR_OPTV FLASH Option valid error flag
388:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @arg @ref HAL_FLASH_ERROR_FWWERR FLASH Write or Erase operation aborted
389:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @arg @ref HAL_FLASH_ERROR_NOTZERO FLASH Write operation is done in a not-erased regi
390:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @retval HAL Status
391:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __RAM_FUNC HAL_FLASHEx_GetError(uint32_t * Error)
393:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
394:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** *Error = pFlash.ErrorCode;
395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** return HAL_OK;
396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /**
399:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @}
400:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
401:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
402:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /**
403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @}
404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
405:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /** @addtogroup FLASH_RAMFUNC_Private_Functions
407:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @{
408:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /**
411:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @brief Set the specific FLASH error flag.
412:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @retval HAL Status
413:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** static __RAM_FUNC FLASHRAM_SetErrorCode(void)
415:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
416:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** uint32_t flags = 0;
417:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
418:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR))
419:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
420:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP;
421:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** flags |= FLASH_FLAG_WRPERR;
422:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
423:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGAERR))
424:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
425:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_PGA;
426:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** flags |= FLASH_FLAG_PGAERR;
427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
428:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_SIZERR))
429:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
430:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_SIZE;
431:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** flags |= FLASH_FLAG_SIZERR;
432:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
433:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_OPTVERR))
ARM GAS /tmp/ccviJFHV.s page 9
434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
435:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* WARNING : On the first cut of STM32L031xx and STM32L041xx devices,
436:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * (RefID = 0x1000) the FLASH_FLAG_OPTVERR bit was not behaving
437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * as expected. If the user run an application using the first
438:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * cut of the STM32L031xx device or the first cut of the STM32L041xx
439:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * device, this error should be ignored. The revId of the device
440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * can be retrieved via the HAL_GetREVID() function.
441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** *
442:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
443:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_OPTV;
444:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** flags |= FLASH_FLAG_OPTVERR;
445:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
446:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
447:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_RDERR))
448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
449:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_RD;
450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** flags |= FLASH_FLAG_RDERR;
451:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
452:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_FWWERR))
453:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
454:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_FWWERR;
455:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** flags |= HAL_FLASH_ERROR_FWWERR;
456:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_NOTZEROERR))
458:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_NOTZERO;
460:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** flags |= FLASH_FLAG_NOTZEROERR;
461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
462:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
463:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Clear FLASH error pending bits */
464:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __HAL_FLASH_CLEAR_FLAG(flags);
465:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** return HAL_OK;
467:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
468:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /**
470:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @brief Wait for a FLASH operation to complete.
471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @param Timeout: maximum flash operationtimeout
472:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * @retval HAL status
473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
474:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** static __RAM_FUNC FLASHRAM_WaitForLastOperation(uint32_t Timeout)
475:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
25 .loc 1 475 0
26 .cfi_startproc
27 @ args = 0, pretend = 0, frame = 0
28 @ frame_needed = 0, uses_anonymous_args = 0
29 @ link register save eliminated.
30 .LVL0:
476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset.
477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** Even if the FLASH operation fails, the BUSY flag will be reset and an error
478:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** flag will be set */
479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY) && (Timeout != 0x00U))
31 .loc 1 480 0
32 0000 00E0 b .L2
33 .L4:
481:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
ARM GAS /tmp/ccviJFHV.s page 10
482:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** Timeout--;
34 .loc 1 482 0
35 0002 0138 subs r0, r0, #1
36 .LVL1:
37 .L2:
480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
38 .loc 1 480 0
39 0004 434B ldr r3, .L18
40 0006 9B69 ldr r3, [r3, #24]
41 0008 DB07 lsls r3, r3, #31
42 000a 01D5 bpl .L3
480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
43 .loc 1 480 0 is_stmt 0 discriminator 1
44 000c 0028 cmp r0, #0
45 000e F8D1 bne .L4
46 .L3:
483:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
484:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** if(Timeout == 0x00U)
47 .loc 1 485 0 is_stmt 1
48 0010 0028 cmp r0, #0
49 0012 00D1 bne .LCB28
50 0014 79E0 b .L15 @long jump
51 .LCB28:
486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** return HAL_TIMEOUT;
488:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
489:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Check FLASH End of Operation flag */
491:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP))
52 .loc 1 491 0
53 0016 3F4B ldr r3, .L18
54 0018 9B69 ldr r3, [r3, #24]
55 001a 9B07 lsls r3, r3, #30
56 001c 02D5 bpl .L6
492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Clear FLASH End of Operation pending bit */
494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
57 .loc 1 494 0
58 001e 3D4B ldr r3, .L18
59 0020 0222 movs r2, #2
60 0022 9A61 str r2, [r3, #24]
61 .L6:
495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
496:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** if( __HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) ||
62 .loc 1 497 0
63 0024 3B4B ldr r3, .L18
64 0026 9B69 ldr r3, [r3, #24]
65 0028 DB05 lsls r3, r3, #23
66 002a 17D4 bmi .L7
498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGAERR) ||
67 .loc 1 498 0 discriminator 1
68 002c 394B ldr r3, .L18
69 002e 9B69 ldr r3, [r3, #24]
497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGAERR) ||
70 .loc 1 497 0 discriminator 1
ARM GAS /tmp/ccviJFHV.s page 11
71 0030 9B05 lsls r3, r3, #22
72 0032 13D4 bmi .L7
499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_SIZERR) ||
73 .loc 1 499 0
74 0034 374B ldr r3, .L18
75 0036 9B69 ldr r3, [r3, #24]
498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGAERR) ||
76 .loc 1 498 0
77 0038 5B05 lsls r3, r3, #21
78 003a 0FD4 bmi .L7
500:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_OPTVERR) ||
79 .loc 1 500 0
80 003c 354B ldr r3, .L18
81 003e 9B69 ldr r3, [r3, #24]
499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_SIZERR) ||
82 .loc 1 499 0
83 0040 1B05 lsls r3, r3, #20
84 0042 0BD4 bmi .L7
501:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_RDERR) ||
85 .loc 1 501 0
86 0044 334B ldr r3, .L18
87 0046 9B69 ldr r3, [r3, #24]
500:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_OPTVERR) ||
88 .loc 1 500 0
89 0048 9B04 lsls r3, r3, #18
90 004a 07D4 bmi .L7
502:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_FWWERR) ||
91 .loc 1 502 0
92 004c 314B ldr r3, .L18
93 004e 9B69 ldr r3, [r3, #24]
501:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_RDERR) ||
94 .loc 1 501 0
95 0050 9B03 lsls r3, r3, #14
96 0052 03D4 bmi .L7
503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_NOTZEROERR) )
97 .loc 1 503 0
98 0054 2F4B ldr r3, .L18
99 0056 9B69 ldr r3, [r3, #24]
502:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_FWWERR) ||
100 .loc 1 502 0
101 0058 DB03 lsls r3, r3, #15
102 005a 58D5 bpl .L16
103 .L7:
104 .LVL2:
105 .LBB12:
106 .LBB13:
418:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
107 .loc 1 418 0
108 005c 2D4B ldr r3, .L18
109 005e 9B69 ldr r3, [r3, #24]
110 0060 DB05 lsls r3, r3, #23
111 0062 07D5 bpl .L17
420:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** flags |= FLASH_FLAG_WRPERR;
112 .loc 1 420 0
113 0064 2C4A ldr r2, .L18+4
114 0066 5369 ldr r3, [r2, #20]
115 0068 0221 movs r1, #2
ARM GAS /tmp/ccviJFHV.s page 12
116 006a 0B43 orrs r3, r1
117 006c 5361 str r3, [r2, #20]
118 .LVL3:
421:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
119 .loc 1 421 0
120 006e 8023 movs r3, #128
121 0070 5B00 lsls r3, r3, #1
122 0072 00E0 b .L8
123 .LVL4:
124 .L17:
416:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
125 .loc 1 416 0
126 0074 0023 movs r3, #0
127 .LVL5:
128 .L8:
423:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
129 .loc 1 423 0
130 0076 274A ldr r2, .L18
131 0078 9269 ldr r2, [r2, #24]
132 007a 9205 lsls r2, r2, #22
133 007c 07D5 bpl .L9
425:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** flags |= FLASH_FLAG_PGAERR;
134 .loc 1 425 0
135 007e 2649 ldr r1, .L18+4
136 0080 4A69 ldr r2, [r1, #20]
137 0082 0120 movs r0, #1
138 .LVL6:
139 0084 0243 orrs r2, r0
140 0086 4A61 str r2, [r1, #20]
426:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
141 .loc 1 426 0
142 0088 8022 movs r2, #128
143 008a 9200 lsls r2, r2, #2
144 008c 1343 orrs r3, r2
145 .LVL7:
146 .L9:
428:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
147 .loc 1 428 0
148 008e 214A ldr r2, .L18
149 0090 9269 ldr r2, [r2, #24]
150 0092 5205 lsls r2, r2, #21
151 0094 07D5 bpl .L10
430:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** flags |= FLASH_FLAG_SIZERR;
152 .loc 1 430 0
153 0096 2049 ldr r1, .L18+4
154 0098 4A69 ldr r2, [r1, #20]
155 009a 0820 movs r0, #8
156 009c 0243 orrs r2, r0
157 009e 4A61 str r2, [r1, #20]
431:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
158 .loc 1 431 0
159 00a0 8022 movs r2, #128
160 00a2 D200 lsls r2, r2, #3
161 00a4 1343 orrs r3, r2
162 .LVL8:
163 .L10:
433:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
ARM GAS /tmp/ccviJFHV.s page 13
164 .loc 1 433 0
165 00a6 1B4A ldr r2, .L18
166 00a8 9269 ldr r2, [r2, #24]
167 00aa 1205 lsls r2, r2, #20
168 00ac 07D5 bpl .L11
443:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** flags |= FLASH_FLAG_OPTVERR;
169 .loc 1 443 0
170 00ae 1A49 ldr r1, .L18+4
171 00b0 4A69 ldr r2, [r1, #20]
172 00b2 0420 movs r0, #4
173 00b4 0243 orrs r2, r0
174 00b6 4A61 str r2, [r1, #20]
444:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
175 .loc 1 444 0
176 00b8 8022 movs r2, #128
177 00ba 1201 lsls r2, r2, #4
178 00bc 1343 orrs r3, r2
179 .LVL9:
180 .L11:
447:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
181 .loc 1 447 0
182 00be 154A ldr r2, .L18
183 00c0 9269 ldr r2, [r2, #24]
184 00c2 9204 lsls r2, r2, #18
185 00c4 07D5 bpl .L12
449:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** flags |= FLASH_FLAG_RDERR;
186 .loc 1 449 0
187 00c6 1449 ldr r1, .L18+4
188 00c8 4A69 ldr r2, [r1, #20]
189 00ca 1020 movs r0, #16
190 00cc 0243 orrs r2, r0
191 00ce 4A61 str r2, [r1, #20]
450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
192 .loc 1 450 0
193 00d0 8022 movs r2, #128
194 00d2 9201 lsls r2, r2, #6
195 00d4 1343 orrs r3, r2
196 .LVL10:
197 .L12:
452:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
198 .loc 1 452 0
199 00d6 0F4A ldr r2, .L18
200 00d8 9269 ldr r2, [r2, #24]
201 00da 9203 lsls r2, r2, #14
202 00dc 05D5 bpl .L13
454:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** flags |= HAL_FLASH_ERROR_FWWERR;
203 .loc 1 454 0
204 00de 0E48 ldr r0, .L18+4
205 00e0 4269 ldr r2, [r0, #20]
206 00e2 2021 movs r1, #32
207 00e4 0A43 orrs r2, r1
208 00e6 4261 str r2, [r0, #20]
455:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
209 .loc 1 455 0
210 00e8 0B43 orrs r3, r1
211 .LVL11:
212 .L13:
ARM GAS /tmp/ccviJFHV.s page 14
457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
213 .loc 1 457 0
214 00ea 0A4A ldr r2, .L18
215 00ec 9269 ldr r2, [r2, #24]
216 00ee D203 lsls r2, r2, #15
217 00f0 07D5 bpl .L14
459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** flags |= FLASH_FLAG_NOTZEROERR;
218 .loc 1 459 0
219 00f2 0949 ldr r1, .L18+4
220 00f4 4A69 ldr r2, [r1, #20]
221 00f6 4020 movs r0, #64
222 00f8 0243 orrs r2, r0
223 00fa 4A61 str r2, [r1, #20]
460:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
224 .loc 1 460 0
225 00fc 8022 movs r2, #128
226 00fe 5202 lsls r2, r2, #9
227 0100 1343 orrs r3, r2
228 .LVL12:
229 .L14:
464:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
230 .loc 1 464 0
231 0102 044A ldr r2, .L18
232 0104 9361 str r3, [r2, #24]
233 .LBE13:
234 .LBE12:
504:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
505:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /*Save the error code*/
506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* WARNING : On the first cut of STM32L031xx and STM32L041xx devices,
508:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * (RefID = 0x1000) the FLASH_FLAG_OPTVERR bit was not behaving
509:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * as expected. If the user run an application using the first
510:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * cut of the STM32L031xx device or the first cut of the STM32L041xx
511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * device, this error should be ignored. The revId of the device
512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** * can be retrieved via the HAL_GetREVID() function.
513:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** *
514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** */
515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** FLASHRAM_SetErrorCode();
516:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** return HAL_ERROR;
235 .loc 1 516 0
236 0106 0120 movs r0, #1
237 .LVL13:
238 .L5:
517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
519:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* There is no error flag set */
520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** return HAL_OK;
521:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
239 .loc 1 521 0
240 @ sp needed
241 0108 7047 bx lr
242 .LVL14:
243 .L15:
487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
244 .loc 1 487 0
245 010a 0320 movs r0, #3
246 .LVL15:
ARM GAS /tmp/ccviJFHV.s page 15
247 010c FCE7 b .L5
248 .LVL16:
249 .L16:
520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
250 .loc 1 520 0
251 010e 0020 movs r0, #0
252 .LVL17:
253 0110 FAE7 b .L5
254 .L19:
255 0112 C046 .align 2
256 .L18:
257 0114 00200240 .word 1073881088
258 0118 00000000 .word pFlash
259 .cfi_endproc
260 .LFE46:
262 .align 1
263 .global HAL_FLASHEx_EnableRunPowerDown
264 .syntax unified
265 .code 16
266 .thumb_func
267 .fpu softvfp
269 HAL_FLASHEx_EnableRunPowerDown:
270 .LFB39:
132:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Enable the Power Down in Run mode*/
271 .loc 1 132 0
272 .cfi_startproc
273 @ args = 0, pretend = 0, frame = 0
274 @ frame_needed = 0, uses_anonymous_args = 0
275 @ link register save eliminated.
134:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
276 .loc 1 134 0
277 011c 054B ldr r3, .L21
278 011e 064A ldr r2, .L21+4
279 0120 9A60 str r2, [r3, #8]
280 0122 064A ldr r2, .L21+8
281 0124 9A60 str r2, [r3, #8]
282 0126 1A68 ldr r2, [r3]
283 0128 1021 movs r1, #16
284 012a 0A43 orrs r2, r1
285 012c 1A60 str r2, [r3]
137:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
286 .loc 1 137 0
287 012e 0020 movs r0, #0
288 @ sp needed
289 0130 7047 bx lr
290 .L22:
291 0132 C046 .align 2
292 .L21:
293 0134 00200240 .word 1073881088
294 0138 37261504 .word 68494903
295 013c FDFCFBFA .word -84148995
296 .cfi_endproc
297 .LFE39:
299 .align 1
300 .global HAL_FLASHEx_DisableRunPowerDown
301 .syntax unified
302 .code 16
ARM GAS /tmp/ccviJFHV.s page 16
303 .thumb_func
304 .fpu softvfp
306 HAL_FLASHEx_DisableRunPowerDown:
307 .LFB40:
145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Disable the Power Down in Run mode*/
308 .loc 1 145 0
309 .cfi_startproc
310 @ args = 0, pretend = 0, frame = 0
311 @ frame_needed = 0, uses_anonymous_args = 0
312 @ link register save eliminated.
147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
313 .loc 1 147 0
314 0140 054B ldr r3, .L24
315 0142 064A ldr r2, .L24+4
316 0144 9A60 str r2, [r3, #8]
317 0146 064A ldr r2, .L24+8
318 0148 9A60 str r2, [r3, #8]
319 014a 1A68 ldr r2, [r3]
320 014c 1021 movs r1, #16
321 014e 8A43 bics r2, r1
322 0150 1A60 str r2, [r3]
150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
323 .loc 1 150 0
324 0152 0020 movs r0, #0
325 @ sp needed
326 0154 7047 bx lr
327 .L25:
328 0156 C046 .align 2
329 .L24:
330 0158 00200240 .word 1073881088
331 015c 37261504 .word 68494903
332 0160 FDFCFBFA .word -84148995
333 .cfi_endproc
334 .LFE40:
336 .align 1
337 .global HAL_FLASHEx_EraseParallelPage
338 .syntax unified
339 .code 16
340 .thumb_func
341 .fpu softvfp
343 HAL_FLASHEx_EraseParallelPage:
344 .LFB41:
182:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** HAL_StatusTypeDef status = HAL_OK;
345 .loc 1 182 0
346 .cfi_startproc
347 @ args = 0, pretend = 0, frame = 0
348 @ frame_needed = 0, uses_anonymous_args = 0
349 .LVL18:
350 0164 F8B5 push {r3, r4, r5, r6, r7, lr}
351 .LCFI0:
352 .cfi_def_cfa_offset 24
353 .cfi_offset 3, -24
354 .cfi_offset 4, -20
355 .cfi_offset 5, -16
356 .cfi_offset 6, -12
357 .cfi_offset 7, -8
358 .cfi_offset 14, -4
ARM GAS /tmp/ccviJFHV.s page 17
359 0166 0600 movs r6, r0
360 0168 0D00 movs r5, r1
361 .LVL19:
186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
362 .loc 1 186 0
363 016a 1348 ldr r0, .L29
364 .LVL20:
365 016c FFF748FF bl FLASHRAM_WaitForLastOperation
366 .LVL21:
188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
367 .loc 1 188 0
368 0170 0028 cmp r0, #0
369 0172 00D0 beq .L28
370 .LVL22:
371 .L27:
210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
372 .loc 1 210 0
373 @ sp needed
374 .LVL23:
375 .LVL24:
376 0174 F8BD pop {r3, r4, r5, r6, r7, pc}
377 .LVL25:
378 .L28:
191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** SET_BIT(FLASH->PECR, FLASH_PECR_ERASE);
379 .loc 1 191 0
380 0176 114C ldr r4, .L29+4
381 0178 6268 ldr r2, [r4, #4]
382 017a 8023 movs r3, #128
383 017c 1B02 lsls r3, r3, #8
384 017e 1343 orrs r3, r2
385 0180 6360 str r3, [r4, #4]
192:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** SET_BIT(FLASH->PECR, FLASH_PECR_PROG);
386 .loc 1 192 0
387 0182 6268 ldr r2, [r4, #4]
388 0184 8023 movs r3, #128
389 0186 9B00 lsls r3, r3, #2
390 0188 1343 orrs r3, r2
391 018a 6360 str r3, [r4, #4]
193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
392 .loc 1 193 0
393 018c 6368 ldr r3, [r4, #4]
394 018e 0827 movs r7, #8
395 0190 3B43 orrs r3, r7
396 0192 6360 str r3, [r4, #4]
196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** /* Write 00000000h to the first word of the second program page to erase */
397 .loc 1 196 0
398 0194 0023 movs r3, #0
399 0196 3360 str r3, [r6]
198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
400 .loc 1 198 0
401 0198 2B60 str r3, [r5]
201:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
402 .loc 1 201 0
403 019a 0748 ldr r0, .L29
404 .LVL26:
405 019c FFF730FF bl FLASHRAM_WaitForLastOperation
406 .LVL27:
ARM GAS /tmp/ccviJFHV.s page 18
204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** CLEAR_BIT(FLASH->PECR, FLASH_PECR_ERASE);
407 .loc 1 204 0
408 01a0 6368 ldr r3, [r4, #4]
409 01a2 BB43 bics r3, r7
410 01a4 6360 str r3, [r4, #4]
205:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** CLEAR_BIT(FLASH->PECR, FLASH_PECR_PARALLBANK);
411 .loc 1 205 0
412 01a6 6368 ldr r3, [r4, #4]
413 01a8 054A ldr r2, .L29+8
414 01aa 1340 ands r3, r2
415 01ac 6360 str r3, [r4, #4]
206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
416 .loc 1 206 0
417 01ae 6368 ldr r3, [r4, #4]
418 01b0 044A ldr r2, .L29+12
419 01b2 1340 ands r3, r2
420 01b4 6360 str r3, [r4, #4]
421 01b6 DDE7 b .L27
422 .L30:
423 .align 2
424 .L29:
425 01b8 50C30000 .word 50000
426 01bc 00200240 .word 1073881088
427 01c0 FFFDFFFF .word -513
428 01c4 FF7FFFFF .word -32769
429 .cfi_endproc
430 .LFE41:
432 .align 1
433 .global HAL_FLASHEx_ProgramParallelHalfPage
434 .syntax unified
435 .code 16
436 .thumb_func
437 .fpu softvfp
439 HAL_FLASHEx_ProgramParallelHalfPage:
440 .LFB42:
241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** uint32_t count = 0U;
441 .loc 1 241 0
442 .cfi_startproc
443 @ args = 0, pretend = 0, frame = 0
444 @ frame_needed = 0, uses_anonymous_args = 0
445 .LVL28:
446 01c8 F8B5 push {r3, r4, r5, r6, r7, lr}
447 .LCFI1:
448 .cfi_def_cfa_offset 24
449 .cfi_offset 3, -24
450 .cfi_offset 4, -20
451 .cfi_offset 5, -16
452 .cfi_offset 6, -12
453 .cfi_offset 7, -8
454 .cfi_offset 14, -4
455 01ca 0700 movs r7, r0
456 01cc 0D00 movs r5, r1
457 01ce 1600 movs r6, r2
458 01d0 1C00 movs r4, r3
459 .LVL29:
246:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
460 .loc 1 246 0
ARM GAS /tmp/ccviJFHV.s page 19
461 01d2 1D48 ldr r0, .L39
462 .LVL30:
463 01d4 FFF714FF bl FLASHRAM_WaitForLastOperation
464 .LVL31:
248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
465 .loc 1 248 0
466 01d8 0028 cmp r0, #0
467 01da 00D0 beq .L38
468 .LVL32:
469 .L32:
296:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** #endif /* FLASH_PECR_PARALLBANK */
470 .loc 1 296 0
471 @ sp needed
472 .LVL33:
473 .LVL34:
474 .LVL35:
475 .LVL36:
476 01dc F8BD pop {r3, r4, r5, r6, r7, pc}
477 .LVL37:
478 .L38:
251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** SET_BIT(FLASH->PECR, FLASH_PECR_FPRG);
479 .loc 1 251 0
480 01de 1B4B ldr r3, .L39+4
481 01e0 5968 ldr r1, [r3, #4]
482 01e2 8022 movs r2, #128
483 01e4 1202 lsls r2, r2, #8
484 01e6 0A43 orrs r2, r1
485 01e8 5A60 str r2, [r3, #4]
252:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** SET_BIT(FLASH->PECR, FLASH_PECR_PROG);
486 .loc 1 252 0
487 01ea 5968 ldr r1, [r3, #4]
488 01ec 8022 movs r2, #128
489 01ee D200 lsls r2, r2, #3
490 01f0 0A43 orrs r2, r1
491 01f2 5A60 str r2, [r3, #4]
253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
492 .loc 1 253 0
493 01f4 5A68 ldr r2, [r3, #4]
494 01f6 0821 movs r1, #8
495 01f8 0A43 orrs r2, r1
496 01fa 5A60 str r2, [r3, #4]
256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** if(status == HAL_OK)
497 .loc 1 256 0
498 01fc 1248 ldr r0, .L39
499 .LVL38:
500 01fe FFF7FFFE bl FLASHRAM_WaitForLastOperation
501 .LVL39:
257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
502 .loc 1 257 0
503 0202 0028 cmp r0, #0
504 0204 12D1 bne .L33
505 .LBB14:
506 .LBB15:
507 .file 2 "Drivers/CMSIS/Include/cmsis_gcc.h"
1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//**
2:Drivers/CMSIS/Include/cmsis_gcc.h **** * @file cmsis_gcc.h
3:Drivers/CMSIS/Include/cmsis_gcc.h **** * @brief CMSIS Cortex-M Core Function/Instruction Header File
ARM GAS /tmp/ccviJFHV.s page 20
4:Drivers/CMSIS/Include/cmsis_gcc.h **** * @version V4.30
5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 20. October 2015
6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/
7:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Copyright (c) 2009 - 2015 ARM LIMITED
8:Drivers/CMSIS/Include/cmsis_gcc.h ****
9:Drivers/CMSIS/Include/cmsis_gcc.h **** All rights reserved.
10:Drivers/CMSIS/Include/cmsis_gcc.h **** Redistribution and use in source and binary forms, with or without
11:Drivers/CMSIS/Include/cmsis_gcc.h **** modification, are permitted provided that the following conditions are met:
12:Drivers/CMSIS/Include/cmsis_gcc.h **** - Redistributions of source code must retain the above copyright
13:Drivers/CMSIS/Include/cmsis_gcc.h **** notice, this list of conditions and the following disclaimer.
14:Drivers/CMSIS/Include/cmsis_gcc.h **** - Redistributions in binary form must reproduce the above copyright
15:Drivers/CMSIS/Include/cmsis_gcc.h **** notice, this list of conditions and the following disclaimer in the
16:Drivers/CMSIS/Include/cmsis_gcc.h **** documentation and/or other materials provided with the distribution.
17:Drivers/CMSIS/Include/cmsis_gcc.h **** - Neither the name of ARM nor the names of its contributors may be used
18:Drivers/CMSIS/Include/cmsis_gcc.h **** to endorse or promote products derived from this software without
19:Drivers/CMSIS/Include/cmsis_gcc.h **** specific prior written permission.
20:Drivers/CMSIS/Include/cmsis_gcc.h **** *
21:Drivers/CMSIS/Include/cmsis_gcc.h **** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22:Drivers/CMSIS/Include/cmsis_gcc.h **** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23:Drivers/CMSIS/Include/cmsis_gcc.h **** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24:Drivers/CMSIS/Include/cmsis_gcc.h **** ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
25:Drivers/CMSIS/Include/cmsis_gcc.h **** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26:Drivers/CMSIS/Include/cmsis_gcc.h **** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27:Drivers/CMSIS/Include/cmsis_gcc.h **** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28:Drivers/CMSIS/Include/cmsis_gcc.h **** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29:Drivers/CMSIS/Include/cmsis_gcc.h **** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30:Drivers/CMSIS/Include/cmsis_gcc.h **** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31:Drivers/CMSIS/Include/cmsis_gcc.h **** POSSIBILITY OF SUCH DAMAGE.
32:Drivers/CMSIS/Include/cmsis_gcc.h **** ---------------------------------------------------------------------------*/
33:Drivers/CMSIS/Include/cmsis_gcc.h ****
34:Drivers/CMSIS/Include/cmsis_gcc.h ****
35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H
36:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H
37:Drivers/CMSIS/Include/cmsis_gcc.h ****
38:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */
39:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined ( __GNUC__ )
40:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
41:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion"
42:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion"
43:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter"
44:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
45:Drivers/CMSIS/Include/cmsis_gcc.h ****
46:Drivers/CMSIS/Include/cmsis_gcc.h ****
47:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################### Core Function Access ########################### */
48:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface
49:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions
50:Drivers/CMSIS/Include/cmsis_gcc.h **** @{
51:Drivers/CMSIS/Include/cmsis_gcc.h **** */
52:Drivers/CMSIS/Include/cmsis_gcc.h ****
53:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
54:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts
55:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR.
56:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
57:Drivers/CMSIS/Include/cmsis_gcc.h **** */
58:Drivers/CMSIS/Include/cmsis_gcc.h **** __attribute__( ( always_inline ) ) __STATIC_INLINE void __enable_irq(void)
59:Drivers/CMSIS/Include/cmsis_gcc.h **** {
60:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory");
ARM GAS /tmp/ccviJFHV.s page 21
61:Drivers/CMSIS/Include/cmsis_gcc.h **** }
62:Drivers/CMSIS/Include/cmsis_gcc.h ****
63:Drivers/CMSIS/Include/cmsis_gcc.h ****
64:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
65:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts
66:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR.
67:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
68:Drivers/CMSIS/Include/cmsis_gcc.h **** */
69:Drivers/CMSIS/Include/cmsis_gcc.h **** __attribute__( ( always_inline ) ) __STATIC_INLINE void __disable_irq(void)
70:Drivers/CMSIS/Include/cmsis_gcc.h **** {
71:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory");
508 .loc 2 71 0
509 .syntax divided
510 @ 71 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
511 0206 72B6 cpsid i
512 @ 0 "" 2
513 .thumb
514 .syntax unified
515 .LBE15:
516 .LBE14:
242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** HAL_StatusTypeDef status = HAL_OK;
517 .loc 1 242 0
518 0208 0023 movs r3, #0
519 020a 02E0 b .L34
520 .LVL40:
521 .L35:
266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** pBuffer1++;
522 .loc 1 266 0
523 020c 04CD ldmia r5!, {r2}
524 .LVL41:
525 020e 3A60 str r2, [r7]
526 .LVL42:
268:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
527 .loc 1 268 0
528 0210 0133 adds r3, r3, #1
529 .LVL43:
530 .L34:
263:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
531 .loc 1 263 0
532 0212 0F2B cmp r3, #15
533 0214 FAD9 bls .L35
272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** while(count < 16U)
534 .loc 1 272 0
535 0216 0023 movs r3, #0
536 .LVL44:
537 0218 02E0 b .L36
538 .LVL45:
539 .L37:
276:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** pBuffer2++;
540 .loc 1 276 0
541 021a 04CC ldmia r4!, {r2}
542 .LVL46:
543 021c 3260 str r2, [r6]
544 .LVL47:
278:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
545 .loc 1 278 0
546 021e 0133 adds r3, r3, #1
ARM GAS /tmp/ccviJFHV.s page 22
547 .LVL48:
548 .L36:
273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
549 .loc 1 273 0
550 0220 0F2B cmp r3, #15
551 0222 FAD9 bls .L37
552 .LBB16:
553 .LBB17:
60:Drivers/CMSIS/Include/cmsis_gcc.h **** }
554 .loc 2 60 0
555 .syntax divided
556 @ 60 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
557 0224 62B6 cpsie i
558 @ 0 "" 2
559 .thumb
560 .syntax unified
561 .LBE17:
562 .LBE16:
285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
563 .loc 1 285 0
564 0226 0848 ldr r0, .L39
565 .LVL49:
566 0228 FFF7EAFE bl FLASHRAM_WaitForLastOperation
567 .LVL50:
568 .L33:
289:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** CLEAR_BIT(FLASH->PECR, FLASH_PECR_FPRG);
569 .loc 1 289 0
570 022c 074B ldr r3, .L39+4
571 022e 5A68 ldr r2, [r3, #4]
572 0230 0821 movs r1, #8
573 0232 8A43 bics r2, r1
574 0234 5A60 str r2, [r3, #4]
290:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** CLEAR_BIT(FLASH->PECR, FLASH_PECR_PARALLBANK);
575 .loc 1 290 0
576 0236 5A68 ldr r2, [r3, #4]
577 0238 0549 ldr r1, .L39+8
578 023a 0A40 ands r2, r1
579 023c 5A60 str r2, [r3, #4]
291:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
580 .loc 1 291 0
581 023e 5A68 ldr r2, [r3, #4]
582 0240 0449 ldr r1, .L39+12
583 0242 0A40 ands r2, r1
584 0244 5A60 str r2, [r3, #4]
585 0246 C9E7 b .L32
586 .L40:
587 .align 2
588 .L39:
589 0248 50C30000 .word 50000
590 024c 00200240 .word 1073881088
591 0250 FFFBFFFF .word -1025
592 0254 FF7FFFFF .word -32769
593 .cfi_endproc
594 .LFE42:
596 .align 1
597 .global HAL_FLASHEx_HalfPageProgram
598 .syntax unified
ARM GAS /tmp/ccviJFHV.s page 23
599 .code 16
600 .thumb_func
601 .fpu softvfp
603 HAL_FLASHEx_HalfPageProgram:
604 .LFB43:
322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** uint32_t count = 0U;
605 .loc 1 322 0
606 .cfi_startproc
607 @ args = 0, pretend = 0, frame = 0
608 @ frame_needed = 0, uses_anonymous_args = 0
609 .LVL51:
610 0258 70B5 push {r4, r5, r6, lr}
611 .LCFI2:
612 .cfi_def_cfa_offset 16
613 .cfi_offset 4, -16
614 .cfi_offset 5, -12
615 .cfi_offset 6, -8
616 .cfi_offset 14, -4
617 025a 0500 movs r5, r0
618 025c 0C00 movs r4, r1
619 .LVL52:
327:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
620 .loc 1 327 0
621 025e 1248 ldr r0, .L45
622 .LVL53:
623 0260 FFF7CEFE bl FLASHRAM_WaitForLastOperation
624 .LVL54:
329:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
625 .loc 1 329 0
626 0264 0028 cmp r0, #0
627 0266 1ED1 bne .L42
332:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** SET_BIT(FLASH->PECR, FLASH_PECR_PROG);
628 .loc 1 332 0
629 0268 104B ldr r3, .L45+4
630 026a 5968 ldr r1, [r3, #4]
631 026c 8022 movs r2, #128
632 026e D200 lsls r2, r2, #3
633 0270 0A43 orrs r2, r1
634 0272 5A60 str r2, [r3, #4]
333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
635 .loc 1 333 0
636 0274 5A68 ldr r2, [r3, #4]
637 0276 0821 movs r1, #8
638 0278 0A43 orrs r2, r1
639 027a 5A60 str r2, [r3, #4]
640 .LBB18:
641 .LBB19:
642 .loc 2 71 0
643 .syntax divided
644 @ 71 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
645 027c 72B6 cpsid i
646 @ 0 "" 2
647 .thumb
648 .syntax unified
649 .LBE19:
650 .LBE18:
323:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** HAL_StatusTypeDef status = HAL_OK;
ARM GAS /tmp/ccviJFHV.s page 24
651 .loc 1 323 0
652 027e 0023 movs r3, #0
653 0280 02E0 b .L43
654 .LVL55:
655 .L44:
342:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** pBuffer++;
656 .loc 1 342 0
657 0282 04CC ldmia r4!, {r2}
658 .LVL56:
659 0284 2A60 str r2, [r5]
660 .LVL57:
344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
661 .loc 1 344 0
662 0286 0133 adds r3, r3, #1
663 .LVL58:
664 .L43:
339:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** {
665 .loc 1 339 0
666 0288 0F2B cmp r3, #15
667 028a FAD9 bls .L44
668 .LBB20:
669 .LBB21:
60:Drivers/CMSIS/Include/cmsis_gcc.h **** }
670 .loc 2 60 0
671 .syntax divided
672 @ 60 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
673 028c 62B6 cpsie i
674 @ 0 "" 2
675 .thumb
676 .syntax unified
677 .LBE21:
678 .LBE20:
351:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
679 .loc 1 351 0
680 028e 0648 ldr r0, .L45
681 .LVL59:
682 0290 FFF7B6FE bl FLASHRAM_WaitForLastOperation
683 .LVL60:
354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** CLEAR_BIT(FLASH->PECR, FLASH_PECR_FPRG);
684 .loc 1 354 0
685 0294 054B ldr r3, .L45+4
686 0296 5A68 ldr r2, [r3, #4]
687 0298 0821 movs r1, #8
688 029a 8A43 bics r2, r1
689 029c 5A60 str r2, [r3, #4]
355:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** }
690 .loc 1 355 0
691 029e 5A68 ldr r2, [r3, #4]
692 02a0 0349 ldr r1, .L45+8
693 02a2 0A40 ands r2, r1
694 02a4 5A60 str r2, [r3, #4]
695 .LVL61:
696 .L42:
360:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
697 .loc 1 360 0
698 @ sp needed
699 .LVL62:
ARM GAS /tmp/ccviJFHV.s page 25
700 .LVL63:
701 02a6 70BD pop {r4, r5, r6, pc}
702 .L46:
703 .align 2
704 .L45:
705 02a8 50C30000 .word 50000
706 02ac 00200240 .word 1073881088
707 02b0 FFFBFFFF .word -1025
708 .cfi_endproc
709 .LFE43:
711 .align 1
712 .global HAL_FLASHEx_GetError
713 .syntax unified
714 .code 16
715 .thumb_func
716 .fpu softvfp
718 HAL_FLASHEx_GetError:
719 .LFB44:
393:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** *Error = pFlash.ErrorCode;
720 .loc 1 393 0
721 .cfi_startproc
722 @ args = 0, pretend = 0, frame = 0
723 @ frame_needed = 0, uses_anonymous_args = 0
724 @ link register save eliminated.
725 .LVL64:
394:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c **** return HAL_OK;
726 .loc 1 394 0
727 02b4 024B ldr r3, .L48
728 02b6 5B69 ldr r3, [r3, #20]
729 02b8 0360 str r3, [r0]
396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ramfunc.c ****
730 .loc 1 396 0
731 02ba 0020 movs r0, #0
732 .LVL65:
733 @ sp needed
734 02bc 7047 bx lr
735 .L49:
736 02be C046 .align 2
737 .L48:
738 02c0 00000000 .word pFlash
739 .cfi_endproc
740 .LFE44:
742 .text
743 .Letext0:
744 .file 3 "/usr/arm-none-eabi/include/machine/_default_types.h"
745 .file 4 "/usr/arm-none-eabi/include/sys/_stdint.h"
746 .file 5 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/system_stm32l0xx.h"
747 .file 6 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/stm32l073xx.h"
748 .file 7 "/usr/arm-none-eabi/include/sys/lock.h"
749 .file 8 "/usr/arm-none-eabi/include/sys/_types.h"
750 .file 9 "/usr/lib/gcc/arm-none-eabi/7.2.0/include/stddef.h"
751 .file 10 "/usr/arm-none-eabi/include/sys/reent.h"
752 .file 11 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_def.h"
753 .file 12 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_flash.h"
ARM GAS /tmp/ccviJFHV.s page 26
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32l0xx_hal_flash_ramfunc.c
/tmp/ccviJFHV.s:16 .RamFunc:0000000000000000 $t
/tmp/ccviJFHV.s:22 .RamFunc:0000000000000000 FLASHRAM_WaitForLastOperation
/tmp/ccviJFHV.s:257 .RamFunc:0000000000000114 $d
/tmp/ccviJFHV.s:262 .RamFunc:000000000000011c $t
/tmp/ccviJFHV.s:269 .RamFunc:000000000000011c HAL_FLASHEx_EnableRunPowerDown
/tmp/ccviJFHV.s:293 .RamFunc:0000000000000134 $d
/tmp/ccviJFHV.s:299 .RamFunc:0000000000000140 $t
/tmp/ccviJFHV.s:306 .RamFunc:0000000000000140 HAL_FLASHEx_DisableRunPowerDown
/tmp/ccviJFHV.s:330 .RamFunc:0000000000000158 $d
/tmp/ccviJFHV.s:336 .RamFunc:0000000000000164 $t
/tmp/ccviJFHV.s:343 .RamFunc:0000000000000164 HAL_FLASHEx_EraseParallelPage
/tmp/ccviJFHV.s:425 .RamFunc:00000000000001b8 $d
/tmp/ccviJFHV.s:432 .RamFunc:00000000000001c8 $t
/tmp/ccviJFHV.s:439 .RamFunc:00000000000001c8 HAL_FLASHEx_ProgramParallelHalfPage
/tmp/ccviJFHV.s:589 .RamFunc:0000000000000248 $d
/tmp/ccviJFHV.s:596 .RamFunc:0000000000000258 $t
/tmp/ccviJFHV.s:603 .RamFunc:0000000000000258 HAL_FLASHEx_HalfPageProgram
/tmp/ccviJFHV.s:705 .RamFunc:00000000000002a8 $d
/tmp/ccviJFHV.s:711 .RamFunc:00000000000002b4 $t
/tmp/ccviJFHV.s:718 .RamFunc:00000000000002b4 HAL_FLASHEx_GetError
/tmp/ccviJFHV.s:738 .RamFunc:00000000000002c0 $d
.debug_frame:0000000000000010 $d
UNDEFINED SYMBOLS
pFlash