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_ex.lst

3228 lines
202 KiB

ARM GAS /tmp/cc9alhJF.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_ex.c"
12 .text
13 .Ltext0:
14 .cfi_sections .debug_frame
15 .section .text.FLASH_OB_ProtectedSectorsConfig,"ax",%progbits
16 .align 1
17 .syntax unified
18 .code 16
19 .thumb_func
20 .fpu softvfp
22 FLASH_OB_ProtectedSectorsConfig:
23 .LFB62:
24 .file 1 "./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c"
1:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
2:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** ******************************************************************************
3:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @file stm32l0xx_hal_flash_ex.c
4:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @author MCD Application Team
5:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Extended FLASH HAL module driver.
6:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *
7:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * This file provides firmware functions to manage the following
8:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * functionalities of the internal FLASH memory:
9:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * + FLASH Interface configuration
10:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * + FLASH Memory Erasing
11:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * + DATA EEPROM Programming/Erasing
12:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * + Option Bytes Programming
13:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * + Interrupts management
14:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *
15:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** @verbatim
16:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** ==============================================================================
17:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** ##### Flash peripheral Extended features #####
18:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** ==============================================================================
19:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
20:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** [..] Comparing to other products, the FLASH interface for STM32L0xx
21:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** devices contains the following additional features
22:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (+) Erase functions
23:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (+) DATA_EEPROM memory management
24:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (+) BOOT option bit configuration
25:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (+) PCROP protection for all sectors
26:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
27:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** ##### How to use this driver #####
28:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** ==============================================================================
29:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** [..] This driver provides functions to configure and program the FLASH memory
30:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** of all STM32L0xx. It includes:
31:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (+) Full DATA_EEPROM erase and program management
32:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (+) Boot activation
33:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (+) PCROP protection configuration and control for all pages
34:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
ARM GAS /tmp/cc9alhJF.s page 2
35:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** @endverbatim
36:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** ******************************************************************************
37:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @attention
38:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *
39:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
40:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *
41:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * Redistribution and use in source and binary forms, with or without modification,
42:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * are permitted provided that the following conditions are met:
43:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * 1. Redistributions of source code must retain the above copyright notice,
44:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * this list of conditions and the following disclaimer.
45:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * 2. Redistributions in binary form must reproduce the above copyright notice,
46:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * this list of conditions and the following disclaimer in the documentation
47:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * and/or other materials provided with the distribution.
48:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * 3. Neither the name of STMicroelectronics nor the names of its contributors
49:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * may be used to endorse or promote products derived from this software
50:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * without specific prior written permission.
51:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *
52:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
53:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
54:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
55:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
56:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
57:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
58:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
59:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
60:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
61:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
62:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *
63:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** ******************************************************************************
64:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
65:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
66:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Includes ------------------------------------------------------------------*/
67:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #include "stm32l0xx_hal.h"
68:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
69:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /** @addtogroup STM32L0xx_HAL_Driver
70:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @{
71:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
72:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #ifdef HAL_FLASH_MODULE_ENABLED
73:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
74:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /** @addtogroup FLASH
75:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @{
76:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
77:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /** @addtogroup FLASH_Private_Variables
78:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @{
79:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
80:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Variables used for Erase pages under interruption*/
81:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** extern FLASH_ProcessTypeDef pFlash;
82:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
83:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @}
84:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
85:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
86:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
87:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @}
88:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
89:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
90:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /** @defgroup FLASHEx FLASHEx
91:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief FLASH HAL Extension module driver
ARM GAS /tmp/cc9alhJF.s page 3
92:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @{
93:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
94:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
95:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Private typedef -----------------------------------------------------------*/
96:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Private define ------------------------------------------------------------*/
97:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Private_Constants FLASHEx Private Constants
98:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @{
99:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
100:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @}
102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
103:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Private macro -------------------------------------------------------------*/
105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Private_Macros FLASHEx Private Macros
106:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @{
107:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
109:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @}
110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
111:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
112:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Private variables ---------------------------------------------------------*/
113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Private function prototypes -----------------------------------------------*/
114:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Private_Functions FLASHEx Private Functions
115:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @{
116:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** void FLASH_PageErase(uint32_t PageAddress);
118:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #if defined(FLASH_OPTR_BFB2)
119:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_BootConfig(uint8_t OB_BOOT);
120:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #endif /* FLASH_OPTR_BFB2 */
121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_RDPConfig(uint8_t OB_RDP);
122:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_UserConfig(uint8_t OB_IWDG, uint8_t OB_STOP, uint8_t OB_STDBY);
123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_BORConfig(uint8_t OB_BOR);
124:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static uint8_t FLASH_OB_GetRDP(void);
125:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static uint8_t FLASH_OB_GetUser(void);
126:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static uint8_t FLASH_OB_GetBOR(void);
127:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static uint8_t FLASH_OB_GetBOOTBit1(void);
128:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_BOOTBit1Config(uint8_t OB_BootBit1);
129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #if defined(STM32L071xx) || defined(STM32L072xx) || defined(STM32L073xx) || defined(STM32L081xx) ||
130:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_ProtectedSectorsConfig(uint32_t Sector, uint32_t Sector2, uint32
131:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #else
132:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_ProtectedSectorsConfig(uint32_t Sector, uint32_t NewState);
133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #endif
134:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetWRP(void);
135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #if defined(STM32L071xx) || defined(STM32L072xx) || defined(STM32L073xx) || defined(STM32L081xx) ||
136:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetWRP2(void);
137:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #endif
138:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
139:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
140:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @}
141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Exported functions ---------------------------------------------------------*/
144:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions FLASHEx Exported Functions
145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @{
146:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
148:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions_Group1 FLASHEx Memory Erasing functions
ARM GAS /tmp/cc9alhJF.s page 4
149:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief FLASH Memory Erasing functions
150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *
151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** @verbatim
152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** ==============================================================================
153:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** ##### FLASH Erasing Programming functions #####
154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** ==============================================================================
155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** [..] The FLASH Memory Erasing functions, includes the following functions:
157:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (+) @ref HAL_FLASHEx_Erase: return only when erase has been done
158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (+) @ref HAL_FLASHEx_Erase_IT: end of erase is done when @ref HAL_FLASH_EndOfOperationCallback
159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** is called with parameter 0xFFFFFFFF
160:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** [..] Any operation of erase should follow these steps:
162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (#) Call the @ref HAL_FLASH_Unlock() function to enable the flash control register and
163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** program memory access.
164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (#) Call the desired function to erase page.
165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (#) Call the @ref HAL_FLASH_Lock() to disable the flash program memory access
166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (recommended to protect the FLASH memory against possible unwanted operation).
167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** @endverbatim
169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @{
170:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Erase the specified FLASH memory Pages
174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @note To correctly run this function, the @ref HAL_FLASH_Unlock() function
175:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * must be called before.
176:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * Call the @ref HAL_FLASH_Lock() to disable the flash memory access
177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * (recommended to protect the FLASH memory against possible unwanted operation)
178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param[in] pEraseInit pointer to an FLASH_EraseInitTypeDef structure that
179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * contains the configuration information for the erasing.
180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *
181:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param[out] PageError pointer to variable that
182:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * contains the configuration information on faulty page in case of error
183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * (0xFFFFFFFF means that all the pages have been correctly erased)
184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *
185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval HAL_StatusTypeDef HAL Status
186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *PageError)
188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
190:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** uint32_t address = 0U;
191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
192:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Process Locked */
193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash);
194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
197:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if (status == HAL_OK)
199:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /*Initialization of PageError variable*/
201:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *PageError = 0xFFFFFFFFU;
202:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Check the parameters */
204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_NBPAGES(pEraseInit->NbPages));
205:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase));
ARM GAS /tmp/cc9alhJF.s page 5
206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(pEraseInit->PageAddress));
207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS((pEraseInit->PageAddress & ~(FLASH_PAGE_SIZE - 1U)) + pEr
208:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
209:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Erase page by page to be done*/
210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** for(address = pEraseInit->PageAddress;
211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** address < ((pEraseInit->NbPages * FLASH_PAGE_SIZE) + pEraseInit->PageAddress);
212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** address += FLASH_PAGE_SIZE)
213:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** FLASH_PageErase(address);
215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
219:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the ERASE Bit */
220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->PECR, FLASH_PECR_PROG);
221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->PECR, FLASH_PECR_ERASE);
222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if (status != HAL_OK)
224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* In case of error, stop erase procedure and return the faulty address */
226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *PageError = address;
227:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** break;
228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
229:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Process Unlocked */
233:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
234:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
239:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Perform a page erase of the specified FLASH memory pages with interrupt enabled
240:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @note To correctly run this function, the @ref HAL_FLASH_Unlock() function
241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * must be called before.
242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * Call the @ref HAL_FLASH_Lock() to disable the flash memory access
243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * (recommended to protect the FLASH memory against possible unwanted operation)
244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * End of erase is done when @ref HAL_FLASH_EndOfOperationCallback is called with paramet
245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * 0xFFFFFFFF
246:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param pEraseInit pointer to an FLASH_EraseInitTypeDef structure that
247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * contains the configuration information for the erasing.
248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *
249:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval HAL_StatusTypeDef HAL Status
250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Erase_IT(FLASH_EraseInitTypeDef *pEraseInit)
252:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* If procedure already ongoing, reject the next one */
256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if (pFlash.ProcedureOnGoing != FLASH_PROC_NONE)
257:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
258:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return HAL_ERROR;
259:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
260:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
261:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Check the parameters */
262:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_NBPAGES(pEraseInit->NbPages));
ARM GAS /tmp/cc9alhJF.s page 6
263:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase));
264:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(pEraseInit->PageAddress));
265:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS((pEraseInit->PageAddress & ~(FLASH_PAGE_SIZE - 1)) + pErase
266:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
267:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Process Locked */
268:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash);
269:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
270:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
272:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if (status == HAL_OK)
274:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
275:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Enable End of FLASH Operation and Error source interrupts */
276:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP | FLASH_IT_ERR);
277:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
278:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PAGEERASE;
279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pFlash.NbPagesToErase = pEraseInit->NbPages;
280:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pFlash.Page = pEraseInit->PageAddress;
281:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
282:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /*Erase 1st page and wait for IT*/
283:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** FLASH_PageErase(pEraseInit->PageAddress);
284:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
285:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** else
286:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
287:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Process Unlocked */
288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
289:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
290:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
291:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
293:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
294:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
295:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @}
296:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
297:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
298:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions_Group2 Option Bytes Programming functions
299:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Option Bytes Programming functions
300:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *
301:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** @verbatim
302:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** ==============================================================================
303:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** ##### Option Bytes Programming functions #####
304:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** ==============================================================================
305:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
306:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** [..] Any operation of erase or program should follow these steps:
307:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (#) Call the @ref HAL_FLASH_OB_Unlock() function to enable the Flash option control
308:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** register access.
309:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (#) Call following function to program the desired option bytes.
310:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (++) @ref HAL_FLASHEx_OBProgram:
311:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** - To Enable/Disable the desired sector write protection.
312:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** - To set the desired read Protection Level.
313:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** - To configure the user option Bytes: IWDG, STOP and the Standby.
314:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** - To Set the BOR level.
315:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (#) Once all needed option bytes to be programmed are correctly written, call the
316:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** @ref HAL_FLASH_OB_Launch(void) function to launch the Option Bytes programming process.
317:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (#) Call the @ref HAL_FLASH_OB_Lock() to disable the Flash option control register access (reco
318:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** to protect the option Bytes against possible unwanted operations).
319:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
ARM GAS /tmp/cc9alhJF.s page 7
320:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** [..] Proprietary code Read Out Protection (PcROP):
321:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (#) The PcROP sector is selected by using the same option bytes as the Write
322:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** protection (nWRPi bits). As a result, these 2 options are exclusive each other.
323:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (#) In order to activate the PcROP (change the function of the nWRPi option bits),
324:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** the WPRMOD option bit must be activated.
325:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (#) The active value of nWRPi bits is inverted when PCROP mode is active, this
326:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** means: if WPRMOD = 1 and nWRPi = 1 (default value), then the user sector "i"
327:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** is read/write protected.
328:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (#) To activate PCROP mode for Flash sector(s), you need to call the following function:
329:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (++) @ref HAL_FLASHEx_AdvOBProgram in selecting sectors to be read/write protected
330:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (++) @ref HAL_FLASHEx_OB_SelectPCROP to enable the read/write protection
331:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
332:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** @endverbatim
333:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @{
334:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
335:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
336:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
337:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Program option bytes
338:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param pOBInit pointer to an FLASH_OBInitStruct structure that
339:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * contains the configuration information for the programming.
340:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *
341:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval HAL_StatusTypeDef HAL Status
342:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
343:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_OBProgram(FLASH_OBProgramInitTypeDef *pOBInit)
344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
345:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
346:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
347:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Process Locked */
348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash);
349:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
350:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Check the parameters */
351:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_OPTIONBYTE(pOBInit->OptionType));
352:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
353:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /*Write protection configuration*/
354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_WRP) == OPTIONBYTE_WRP)
355:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
356:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_WRPSTATE(pOBInit->WRPState));
357:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #if defined(STM32L071xx) || defined(STM32L072xx) || defined(STM32L073xx) || defined(STM32L081xx) ||
358:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_OB_ProtectedSectorsConfig(pOBInit->WRPSector, pOBInit->WRPSector2, pOBInit->WRPS
359:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #else
360:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_OB_ProtectedSectorsConfig(pOBInit->WRPSector, pOBInit->WRPState);
361:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #endif
362:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if (status != HAL_OK)
363:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
364:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Process Unlocked */
365:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
366:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
367:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
368:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
369:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
370:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Read protection configuration*/
371:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_RDP) == OPTIONBYTE_RDP)
372:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_OB_RDPConfig(pOBInit->RDPLevel);
374:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if (status != HAL_OK)
375:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
376:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Process Unlocked */
ARM GAS /tmp/cc9alhJF.s page 8
377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
378:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
379:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
380:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
381:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
382:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* USER configuration*/
383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_USER) == OPTIONBYTE_USER)
384:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
385:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_OB_UserConfig(pOBInit->USERConfig & OB_IWDG_SW,
386:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pOBInit->USERConfig & OB_STOP_NORST,
387:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pOBInit->USERConfig & OB_STDBY_NORST);
388:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if (status != HAL_OK)
389:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
390:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Process Unlocked */
391:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
393:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
394:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
395:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
396:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* BOR Level configuration*/
397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_BOR) == OPTIONBYTE_BOR)
398:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
399:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_OB_BORConfig(pOBInit->BORLevel);
400:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if (status != HAL_OK)
401:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
402:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Process Unlocked */
403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
405:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
406:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
407:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
408:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Program BOOT Bit1 config option byte */
409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if ((pOBInit->OptionType & OPTIONBYTE_BOOT_BIT1) == OPTIONBYTE_BOOT_BIT1)
410:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
411:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_OB_BOOTBit1Config(pOBInit->BOOTBit1Config);
412:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
413:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Process Unlocked */
414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
415:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
416:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
417:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
418:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
419:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
420:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Get the Option byte configuration
421:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param pOBInit pointer to an FLASH_OBInitStruct structure that
422:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * contains the configuration information for the programming.
423:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *
424:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval None
425:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
426:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit)
427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
428:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pOBInit->OptionType = OPTIONBYTE_WRP | OPTIONBYTE_RDP | OPTIONBYTE_USER | OPTIONBYTE_BOR;
429:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
430:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Get WRP sector */
431:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pOBInit->WRPSector = FLASH_OB_GetWRP();
432:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
433:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #if defined(STM32L071xx) || defined(STM32L072xx) || defined(STM32L073xx) || defined(STM32L081xx) ||
ARM GAS /tmp/cc9alhJF.s page 9
434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pOBInit->WRPSector2 = FLASH_OB_GetWRP2();
435:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #endif
436:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
437:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /*Get RDP Level*/
438:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pOBInit->RDPLevel = FLASH_OB_GetRDP();
439:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
440:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /*Get USER*/
441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pOBInit->USERConfig = FLASH_OB_GetUser();
442:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
443:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /*Get BOR Level*/
444:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pOBInit->BORLevel = FLASH_OB_GetBOR();
445:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
446:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Get BOOT bit 1 config OB */
447:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pOBInit->BOOTBit1Config = FLASH_OB_GetBOOTBit1();
448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
449:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
450:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #if defined(FLASH_OPTR_WPRMOD) || defined(FLASH_OPTR_BFB2)
451:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
452:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
453:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Program option bytes
454:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param pAdvOBInit pointer to an FLASH_AdvOBProgramInitTypeDef structure that
455:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * contains the configuration information for the programming.
456:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *
457:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval HAL_StatusTypeDef HAL Status
458:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
459:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_AdvOBProgram (FLASH_AdvOBProgramInitTypeDef *pAdvOBInit)
460:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
462:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
463:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Check the parameters */
464:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_OBEX(pAdvOBInit->OptionType));
465:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
466:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #if defined(FLASH_OPTR_WPRMOD)
467:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
468:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Program PCROP option byte*/
469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if ((pAdvOBInit->OptionType & OPTIONBYTE_PCROP) == OPTIONBYTE_PCROP)
470:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
471:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Check the parameters */
472:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_PCROPSTATE(pAdvOBInit->PCROPState));
473:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #if defined(STM32L071xx) || defined(STM32L072xx) || defined(STM32L073xx) || defined(STM32L081xx) ||
474:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_OB_ProtectedSectorsConfig(pAdvOBInit->PCROPSector, pAdvOBInit->PCROPSector2, pAd
475:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #else
476:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_OB_ProtectedSectorsConfig(pAdvOBInit->PCROPSector, pAdvOBInit->PCROPState);
477:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #endif
478:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
479:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
480:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #endif /* FLASH_OPTR_WPRMOD */
481:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
482:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #if defined(FLASH_OPTR_BFB2)
483:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
484:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Program BOOT config option byte */
485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if ((pAdvOBInit->OptionType & OPTIONBYTE_BOOTCONFIG) == OPTIONBYTE_BOOTCONFIG)
486:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_OB_BootConfig(pAdvOBInit->BootConfig);
488:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
489:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
490:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #endif /* FLASH_OPTR_BFB2 */
ARM GAS /tmp/cc9alhJF.s page 10
491:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
492:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
494:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
495:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
496:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Get the OBEX byte configuration
497:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param pAdvOBInit pointer to an FLASH_AdvOBProgramInitTypeDef structure that
498:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * contains the configuration information for the programming.
499:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *
500:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval None
501:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
502:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** void HAL_FLASHEx_AdvOBGetConfig(FLASH_AdvOBProgramInitTypeDef *pAdvOBInit)
503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
504:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pAdvOBInit->OptionType = 0;
505:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
506:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #if defined(FLASH_OPTR_WPRMOD)
507:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
508:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pAdvOBInit->OptionType |= OPTIONBYTE_PCROP;
509:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
510:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
511:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Get PCROP state */
512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pAdvOBInit->PCROPState = (FLASH->OPTR & FLASH_OPTR_WPRMOD) >> FLASH_OPTR_WPRMOD_Pos;
513:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Get PCROP protected sector */
514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pAdvOBInit->PCROPSector = FLASH->WRPR;
515:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
516:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #if defined(STM32L071xx) || defined(STM32L072xx) || defined(STM32L073xx) || defined(STM32L081xx) ||
517:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Get PCROP protected sector */
518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pAdvOBInit->PCROPSector2 = FLASH->WRPR2;
519:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #endif
520:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #endif /* FLASH_OPTR_WPRMOD */
521:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
522:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #if defined(FLASH_OPTR_BFB2)
523:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
524:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pAdvOBInit->OptionType |= OPTIONBYTE_BOOTCONFIG;
525:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
526:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Get Boot config OB */
527:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pAdvOBInit->BootConfig = (FLASH->OPTR & FLASH_OPTR_BFB2) >> 16U;
528:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
529:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #endif /* FLASH_OPTR_BFB2 */
530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
531:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
532:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #endif /* FLASH_OPTR_WPRMOD || FLASH_OPTR_BFB2 */
533:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
534:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #if defined(FLASH_OPTR_WPRMOD)
535:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
536:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
537:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Select the Protection Mode (WPRMOD).
538:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @note Once WPRMOD bit is active, unprotection of a protected sector is not possible
539:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @note Read a protected sector will set RDERR Flag and write a protected sector will set WRPER
540:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval HAL status
541:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
542:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_OB_SelectPCROP(void)
543:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
544:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
545:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** uint16_t tmp1 = 0;
546:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** uint32_t tmp2 = 0;
547:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** uint8_t optiontmp = 0;
ARM GAS /tmp/cc9alhJF.s page 11
548:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** uint16_t optiontmp2 = 0;
549:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
550:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
551:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
552:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Mask RDP Byte */
553:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** optiontmp = (uint8_t)(*(__IO uint8_t *)(OB_BASE));
554:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
555:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Update Option Byte */
556:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** optiontmp2 = (uint16_t)(OB_PCROP_SELECTED | optiontmp);
557:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
558:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* calculate the option byte to write */
559:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp1 = (uint16_t)(~(optiontmp2 ));
560:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp2 = (uint32_t)(((uint32_t)((uint32_t)(tmp1) << 16U)) | ((uint32_t)optiontmp2));
561:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
562:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if(status == HAL_OK)
563:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
564:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Clean the error context */
565:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
566:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
567:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* program PCRop */
568:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** OB->RDP = tmp2;
569:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
570:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
571:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
572:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
573:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
574:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Return the Read protection operation Status */
575:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
576:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
577:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
578:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
579:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Deselect the Protection Mode (WPRMOD).
580:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @note Once WPRMOD bit is active, unprotection of a protected sector is not possible
581:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @note Read a protected sector will set RDERR Flag and write a protected sector will set WRPER
582:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval HAL status
583:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
584:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_OB_DeSelectPCROP(void)
585:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
586:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
587:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** uint16_t tmp1 = 0;
588:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** uint32_t tmp2 = 0;
589:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** uint8_t optiontmp = 0;
590:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** uint16_t optiontmp2 = 0;
591:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
592:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
593:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
594:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Mask RDP Byte */
595:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** optiontmp = (uint8_t)(*(__IO uint8_t *)(OB_BASE));
596:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
597:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Update Option Byte */
598:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** optiontmp2 = (uint16_t)(OB_PCROP_DESELECTED | optiontmp);
599:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
600:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* calculate the option byte to write */
601:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp1 = (uint16_t)(~(optiontmp2 ));
602:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp2 = (uint32_t)(((uint32_t)((uint32_t)(tmp1) << 16U)) | ((uint32_t)optiontmp2));
603:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
604:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if(status == HAL_OK)
ARM GAS /tmp/cc9alhJF.s page 12
605:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
606:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Clean the error context */
607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
608:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
609:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* program PCRop */
610:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** OB->RDP = tmp2;
611:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
612:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
613:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
614:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
615:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
616:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Return the Read protection operation Status */
617:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
618:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
619:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
620:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #endif /* FLASH_OPTR_WPRMOD */
621:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
622:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
623:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @}
624:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
625:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
626:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions_Group3 DATA EEPROM Programming functions
627:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief DATA EEPROM Programming functions
628:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *
629:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** @verbatim
630:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** ===============================================================================
631:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** ##### DATA EEPROM Programming functions #####
632:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** ===============================================================================
633:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
634:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** [..] Any operation of erase or program should follow these steps:
635:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (#) Call the @ref HAL_FLASHEx_DATAEEPROM_Unlock() function to enable the data EEPROM access
636:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** and Flash program erase control register access.
637:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (#) Call the desired function to erase or program data.
638:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** (#) Call the @ref HAL_FLASHEx_DATAEEPROM_Lock() to disable the data EEPROM access
639:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** and Flash program erase control register access(recommended
640:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** to protect the DATA_EEPROM against possible unwanted operation).
641:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
642:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** @endverbatim
643:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @{
644:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
645:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
646:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
647:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Unlocks the data memory and FLASH_PECR register access.
648:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval HAL_StatusTypeDef HAL Status
649:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
650:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_DATAEEPROM_Unlock(void)
651:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if((FLASH->PECR & FLASH_PECR_PELOCK) != RESET)
653:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
654:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Unlocking the Data memory and FLASH_PECR register access*/
655:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** FLASH->PEKEYR = FLASH_PEKEY1;
656:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** FLASH->PEKEYR = FLASH_PEKEY2;
657:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
658:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** else
659:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
660:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return HAL_ERROR;
661:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
ARM GAS /tmp/cc9alhJF.s page 13
662:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return HAL_OK;
663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
664:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
665:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
666:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Locks the Data memory and FLASH_PECR register access.
667:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval HAL_StatusTypeDef HAL Status
668:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
669:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_DATAEEPROM_Lock(void)
670:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
671:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Set the PELOCK Bit to lock the data memory and FLASH_PECR register access */
672:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** SET_BIT(FLASH->PECR, FLASH_PECR_PELOCK);
673:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
674:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return HAL_OK;
675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
676:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
677:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
678:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Erase a word in data memory.
679:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param Address specifies the address to be erased.
680:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @note To correctly run this function, the @ref HAL_FLASHEx_DATAEEPROM_Unlock() function
681:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * must be called before.
682:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * Call the @ref HAL_FLASHEx_DATAEEPROM_Lock() to the data EEPROM access
683:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * and Flash program erase control register access(recommended to protect
684:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * the DATA_EEPROM against possible unwanted operation).
685:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval HAL_StatusTypeDef HAL Status
686:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
687:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_DATAEEPROM_Erase(uint32_t Address)
688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
689:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
690:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
691:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Check the parameters */
692:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_FLASH_DATA_ADDRESS(Address));
693:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
694:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
695:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
696:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
697:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if(status == HAL_OK)
698:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
699:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Clean the error context */
700:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
701:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
702:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Write 00000000h to valid address in the data memory */
703:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *(__IO uint32_t *) Address = 0x00000000U;
704:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
705:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
706:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
707:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
708:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Return the erase status */
709:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
710:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
711:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
712:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
713:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Program word at a specified address
714:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @note To correctly run this function, the @ref HAL_FLASHEx_DATAEEPROM_Unlock() function
715:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * must be called before.
716:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * Call the @ref HAL_FLASHEx_DATAEEPROM_Unlock() to he data EEPROM access
717:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * and Flash program erase control register access(recommended to protect
718:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * the DATA_EEPROM against possible unwanted operation).
ARM GAS /tmp/cc9alhJF.s page 14
719:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @note The function @ref HAL_FLASHEx_DATAEEPROM_EnableFixedTimeProgram() can be called before
720:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * this function to configure the Fixed Time Programming.
721:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param TypeProgram Indicate the way to program at a specified address.
722:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * This parameter can be a value of @ref FLASHEx_Type_Program_Data
723:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param Address specifie the address to be programmed.
724:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param Data specifie the data to be programmed
725:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *
726:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval HAL_StatusTypeDef HAL Status
727:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
728:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
729:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_DATAEEPROM_Program(uint32_t TypeProgram, uint32_t Address, uint32_t
730:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
731:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
732:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
733:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Process Locked */
734:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash);
735:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
736:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Check the parameters */
737:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_TYPEPROGRAMDATA(TypeProgram));
738:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_FLASH_DATA_ADDRESS(Address));
739:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
740:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
741:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
742:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if(status == HAL_OK)
744:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
745:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Clean the error context */
746:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
747:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
748:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if(TypeProgram == FLASH_TYPEPROGRAMDATA_WORD)
749:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
750:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Program word (32-bit) at a specified address.*/
751:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *(__IO uint32_t *)Address = Data;
752:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** else if(TypeProgram == FLASH_TYPEPROGRAMDATA_HALFWORD)
754:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
755:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Program halfword (16-bit) at a specified address.*/
756:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *(__IO uint16_t *)Address = (uint16_t) Data;
757:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
758:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** else if(TypeProgram == FLASH_TYPEPROGRAMDATA_BYTE)
759:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
760:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Program byte (8-bit) at a specified address.*/
761:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *(__IO uint8_t *)Address = (uint8_t) Data;
762:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
763:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** else
764:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
765:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = HAL_ERROR;
766:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
767:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
768:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if (status != HAL_OK)
769:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
770:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
771:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
772:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
773:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
774:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
775:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Process Unlocked */
ARM GAS /tmp/cc9alhJF.s page 15
776:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
777:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
778:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
779:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
780:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
781:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
782:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Enable DATA EEPROM fixed Time programming (2*Tprog).
783:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval None
784:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
785:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** void HAL_FLASHEx_DATAEEPROM_EnableFixedTimeProgram(void)
786:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
787:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** SET_BIT(FLASH->PECR, FLASH_PECR_FIX);
788:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
789:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
790:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
791:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Disables DATA EEPROM fixed Time programming (2*Tprog).
792:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval None
793:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
794:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** void HAL_FLASHEx_DATAEEPROM_DisableFixedTimeProgram(void)
795:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
796:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->PECR, FLASH_PECR_FIX);
797:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
798:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
799:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
800:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @}
801:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
802:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
803:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
804:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @}
805:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
806:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
807:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /** @addtogroup FLASHEx_Private_Functions
808:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @{
809:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
810:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
811:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /*
812:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** ==============================================================================
813:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** OPTIONS BYTES
814:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** ==============================================================================
815:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
816:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
817:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Enables or disables the read out protection.
818:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @note To correctly run this function, the @ref HAL_FLASH_OB_Unlock() function
819:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * must be called before.
820:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param OB_RDP specifies the read protection level.
821:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * This parameter can be:
822:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_0 No protection
823:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_1 Read protection of the memory
824:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_2 Chip protection
825:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *
826:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * !!!Warning!!! When enabling OB_RDP_LEVEL_2 it's no more possible to go back to level 1 or 0
827:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *
828:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval HAL status
829:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
830:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_RDPConfig(uint8_t OB_RDP)
831:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
832:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
ARM GAS /tmp/cc9alhJF.s page 16
833:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** uint32_t tmp1 = 0U, tmp2 = 0U, tmp3 = 0U;
834:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
835:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Check the parameters */
836:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_OB_RDP(OB_RDP));
837:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
838:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp1 = (uint32_t)(OB->RDP & FLASH_OPTR_RDPROT);
839:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
840:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #if defined(FLASH_OPTR_WPRMOD)
841:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Mask WPRMOD bit */
842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp3 = (uint32_t)(OB->RDP & FLASH_OPTR_WPRMOD);
843:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #endif
844:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
845:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* calculate the option byte to write */
846:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp1 = (~((uint32_t)(OB_RDP | tmp3)));
847:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp2 = (uint32_t)(((uint32_t)((uint32_t)(tmp1) << 16U)) | ((uint32_t)(OB_RDP | tmp3)));
848:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
849:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
850:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
851:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
852:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if(status == HAL_OK)
853:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
854:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Clean the error context */
855:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
856:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
857:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* program read protection level */
858:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** OB->RDP = tmp2;
859:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
860:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
861:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
862:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
863:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
864:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Return the Read protection operation Status */
865:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
866:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
867:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
868:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
869:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Programs the FLASH brownout reset threshold level Option Byte.
870:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param OB_BOR Selects the brownout reset threshold level.
871:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * This parameter can be one of the following values:
872:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_BOR_OFF BOR is disabled at power down, the reset is asserted when the VDD
873:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * power supply reaches the PDR(Power Down Reset) threshold (1.5V)
874:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_BOR_LEVEL1 BOR Reset threshold levels for 1.7V - 1.8V VDD power supply
875:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_BOR_LEVEL2 BOR Reset threshold levels for 1.9V - 2.0V VDD power supply
876:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_BOR_LEVEL3 BOR Reset threshold levels for 2.3V - 2.4V VDD power supply
877:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_BOR_LEVEL4 BOR Reset threshold levels for 2.55V - 2.65V VDD power supply
878:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_BOR_LEVEL5 BOR Reset threshold levels for 2.8V - 2.9V VDD power supply
879:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval HAL status
880:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
881:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_BORConfig(uint8_t OB_BOR)
882:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
883:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
884:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** uint32_t tmp = 0, tmp1 = 0;
885:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
886:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Check the parameters */
887:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_OB_BOR_LEVEL(OB_BOR));
888:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
889:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Get the User Option byte register */
ARM GAS /tmp/cc9alhJF.s page 17
890:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp1 = OB->USER & ((~FLASH_OPTR_BOR_LEV) >> 16U);
891:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
892:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Calculate the option byte to write - [0xFF | nUSER | 0x00 | USER]*/
893:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp = (uint32_t)~((OB_BOR | tmp1)) << 16U;
894:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp |= (OB_BOR | tmp1);
895:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
896:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
897:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
898:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
899:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if(status == HAL_OK)
900:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
901:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Clean the error context */
902:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
903:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
904:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Write the BOR Option Byte */
905:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** OB->USER = tmp;
906:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
907:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
908:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
909:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
910:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
911:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Return the Option Byte BOR programmation Status */
912:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
913:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
914:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
915:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
916:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Sets or resets the BOOT bit1 option bit.
917:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param OB_BootBit1 Set or Reset the BOOT bit1 option bit.
918:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * This parameter can be one of the following values:
919:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_BOOT_BIT1_RESET BOOT1 option bit reset
920:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_BOOT_BIT1_SET BOOT1 option bit set
921:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval HAL status
922:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
923:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_BOOTBit1Config(uint8_t OB_BootBit1)
924:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
925:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
926:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** uint32_t tmp = 0, tmp1 = 0, OB_Bits = ((uint32_t) OB_BootBit1) << 15;
927:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
928:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Check the parameters */
929:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_OB_BOOT1(OB_BootBit1));
930:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
931:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Get the User Option byte register */
932:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp1 = OB->USER & ((~FLASH_OPTR_BOOT1) >> 16U);
933:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
934:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Calculate the user option byte to write */
935:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp = (~(OB_Bits | tmp1)) << 16U;
936:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp |= OB_Bits | tmp1;
937:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
938:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
939:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
940:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
941:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if(status == HAL_OK)
942:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
943:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Clean the error context */
944:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
945:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Program OB */
946:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** OB->USER = tmp;
ARM GAS /tmp/cc9alhJF.s page 18
947:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
948:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
949:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
950:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
951:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
952:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
953:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
954:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
955:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Returns the FLASH User Option Bytes values.
956:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval The FLASH User Option Bytes.
957:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
958:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static uint8_t FLASH_OB_GetUser(void)
959:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
960:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Return the User Option Byte */
961:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return (uint8_t)((FLASH->OPTR & FLASH_OPTR_USER) >> 16U);
962:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
963:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
964:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
965:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Returns the FLASH Read Protection level.
966:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval FLASH RDP level
967:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * This parameter can be one of the following values:
968:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_0 No protection
969:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_1 Read protection of the memory
970:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_2 Full chip protection
971:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
972:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static uint8_t FLASH_OB_GetRDP(void)
973:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
974:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return (uint8_t)(FLASH->OPTR & FLASH_OPTR_RDPROT);
975:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
976:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
977:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
978:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Returns the FLASH BOR level.
979:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval The BOR level Option Bytes.
980:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
981:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static uint8_t FLASH_OB_GetBOR(void)
982:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
983:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Return the BOR level */
984:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return (uint8_t)((FLASH->OPTR & (uint32_t)FLASH_OPTR_BOR_LEV) >> 16U);
985:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
986:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
987:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
988:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Returns the FLASH BOOT bit1 value.
989:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval The BOOT bit 1 value Option Bytes.
990:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
991:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static uint8_t FLASH_OB_GetBOOTBit1(void)
992:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
993:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Return the BOR level */
994:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return (FLASH->OPTR & FLASH_OPTR_BOOT1) >> FLASH_OPTR_BOOT1_Pos;
995:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
996:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
997:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
998:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
999:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Returns the FLASH Write Protection Option Bytes value.
1000:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval The FLASH Write Protection Option Bytes value.
1001:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
1002:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetWRP(void)
1003:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
ARM GAS /tmp/cc9alhJF.s page 19
1004:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Return the FLASH write protection Register value */
1005:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return (uint32_t)(FLASH->WRPR);
1006:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1007:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1008:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #if defined(STM32L071xx) || defined(STM32L072xx) || defined(STM32L073xx) || defined(STM32L081xx) ||
1009:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
1010:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Returns the FLASH Write Protection Option Bytes value.
1011:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval The FLASH Write Protection Option Bytes value.
1012:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
1013:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetWRP2(void)
1014:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1015:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Return the FLASH write protection Register value */
1016:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return (uint32_t)(FLASH->WRPR2);
1017:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1018:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #endif /* STM32L071xx || STM32L072xx || STM32L073xx || STM32L081xx || STM32L082xx || STM32L083xx */
1019:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1020:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #if defined(STM32L071xx) || defined(STM32L072xx) || defined(STM32L073xx) || defined(STM32L081xx) ||
1021:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
1022:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Write Option Byte of the desired pages of the Flash.
1023:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param Sector specifies the sectors to be write protected.
1024:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param Sector2 specifies the sectors to be write protected (only stm32l07xxx and stm32l08xxx d
1025:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param NewState new state of the specified FLASH Pages Write protection.
1026:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * This parameter can be:
1027:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_WRPSTATE_ENABLE
1028:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_WRPSTATE_DISABLE
1029:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval HAL_StatusTypeDef
1030:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
1031:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_ProtectedSectorsConfig(uint32_t Sector, uint32_t Sector2, uint32_
1032:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #else
1033:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
1034:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Write Option Byte of the desired pages of the Flash.
1035:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param Sector specifies the sectors to be write protected.
1036:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param NewState new state of the specified FLASH Pages Write protection.
1037:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * This parameter can be:
1038:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_WRPSTATE_ENABLE
1039:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_WRPSTATE_DISABLE
1040:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval HAL_StatusTypeDef
1041:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
1042:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_ProtectedSectorsConfig(uint32_t Sector, uint32_t NewState)
1043:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #endif
1044:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
25 .loc 1 1044 0
26 .cfi_startproc
27 @ args = 0, pretend = 0, frame = 0
28 @ frame_needed = 0, uses_anonymous_args = 0
29 .LVL0:
30 0000 70B5 push {r4, r5, r6, lr}
31 .LCFI0:
32 .cfi_def_cfa_offset 16
33 .cfi_offset 4, -16
34 .cfi_offset 5, -12
35 .cfi_offset 6, -8
36 .cfi_offset 14, -4
37 0002 0400 movs r4, r0
38 0004 0E00 movs r6, r1
39 0006 1500 movs r5, r2
40 .LVL1:
ARM GAS /tmp/cc9alhJF.s page 20
1045:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
1046:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** uint32_t WRP_Data = 0;
1047:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** uint32_t OB_WRP = Sector;
1048:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1049:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
1050:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
41 .loc 1 1050 0
42 0008 2948 ldr r0, .L9
43 .LVL2:
44 000a FFF7FEFF bl FLASH_WaitForLastOperation
45 .LVL3:
1051:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1052:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if(status == HAL_OK)
46 .loc 1 1052 0
47 000e 0028 cmp r0, #0
48 0010 2DD1 bne .L2
1053:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1054:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Clean the error context */
1055:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
49 .loc 1 1055 0
50 0012 284B ldr r3, .L9+4
51 0014 0022 movs r2, #0
52 0016 5A61 str r2, [r3, #20]
1056:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1057:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Update WRP only if at least 1 selected sector */
1058:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if (OB_WRP != 0x00000000U)
53 .loc 1 1058 0
54 0018 002C cmp r4, #0
55 001a 0BD0 beq .L3
1059:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1060:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if ((OB_WRP & WRP_MASK_LOW) != 0x00000000U)
56 .loc 1 1060 0
57 001c 2304 lsls r3, r4, #16
58 001e 09D0 beq .L3
1061:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1062:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if (NewState != OB_WRPSTATE_DISABLE)
59 .loc 1 1062 0
60 0020 002D cmp r5, #0
61 0022 28D0 beq .L4
1063:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1064:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** WRP_Data = (uint16_t)(((OB_WRP & WRP_MASK_LOW) | OB->WRP01));
62 .loc 1 1064 0
63 0024 2449 ldr r1, .L9+8
64 0026 8B68 ldr r3, [r1, #8]
65 0028 2343 orrs r3, r4
66 002a 9BB2 uxth r3, r3
67 .LVL4:
1065:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** OB->WRP01 = (uint32_t)(~(WRP_Data) << 16U) | (WRP_Data);
68 .loc 1 1065 0
69 002c DA43 mvns r2, r3
70 002e 1204 lsls r2, r2, #16
71 0030 1343 orrs r3, r2
72 .LVL5:
73 0032 8B60 str r3, [r1, #8]
74 .L3:
1066:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1067:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** else
ARM GAS /tmp/cc9alhJF.s page 21
1068:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** WRP_Data = (uint16_t)(~OB_WRP & (WRP_MASK_LOW & OB->WRP01));
1070:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** OB->WRP01 = (uint32_t)((~WRP_Data) << 16U) | (WRP_Data);
1071:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1072:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1073:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1074:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #if defined(STM32L071xx) || defined(STM32L072xx) || defined(STM32L073xx) || defined(STM32L081xx) ||
1075:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Update WRP only if at least 1 selected sector */
1076:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if (OB_WRP != 0x00000000U)
75 .loc 1 1076 0
76 0034 002C cmp r4, #0
77 0036 0CD0 beq .L5
1077:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1078:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if ((OB_WRP & WRP_MASK_HIGH) != 0x00000000U)
78 .loc 1 1078 0
79 0038 230C lsrs r3, r4, #16
80 003a 0AD0 beq .L5
1079:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1080:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if (NewState != OB_WRPSTATE_DISABLE)
81 .loc 1 1080 0
82 003c 002D cmp r5, #0
83 003e 23D0 beq .L6
1081:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1082:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** WRP_Data = (uint16_t)((((OB_WRP & WRP_MASK_HIGH) >> 16U | OB->WRP23)));
84 .loc 1 1082 0
85 0040 1C00 movs r4, r3
86 .LVL6:
87 0042 1D4A ldr r2, .L9+8
88 0044 D368 ldr r3, [r2, #12]
89 0046 1C43 orrs r4, r3
90 0048 A4B2 uxth r4, r4
91 .LVL7:
1083:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** OB->WRP23 = (uint32_t)(~(WRP_Data) << 16U) | (WRP_Data);
92 .loc 1 1083 0
93 004a E343 mvns r3, r4
94 004c 1B04 lsls r3, r3, #16
95 004e 1C43 orrs r4, r3
96 .LVL8:
97 0050 D460 str r4, [r2, #12]
98 .L5:
99 .LVL9:
1084:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1085:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** else
1086:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1087:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** WRP_Data = (uint16_t)((((~OB_WRP & WRP_MASK_HIGH) >> 16U & OB->WRP23)));
1088:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** OB->WRP23 = (uint32_t)((~WRP_Data) << 16U) | (WRP_Data);
1089:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1090:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1091:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1092:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1093:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** OB_WRP = Sector2;
1094:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Update WRP only if at least 1 selected sector */
1095:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if (OB_WRP != 0x00000000U)
100 .loc 1 1095 0
101 0052 002E cmp r6, #0
102 0054 0BD0 beq .L2
1096:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
ARM GAS /tmp/cc9alhJF.s page 22
1097:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if ((OB_WRP & WRP_MASK_LOW) != 0x00000000U)
103 .loc 1 1097 0
104 0056 3304 lsls r3, r6, #16
105 0058 09D0 beq .L2
1098:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1099:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if (NewState != OB_WRPSTATE_DISABLE)
106 .loc 1 1099 0
107 005a 002D cmp r5, #0
108 005c 1ED1 bne .L8
1100:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** WRP_Data = (uint16_t)(((OB_WRP & WRP_MASK_LOW) | OB->WRP45));
1102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** OB->WRP45 =(uint32_t)(~(WRP_Data) << 16U) | (WRP_Data);
1103:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1104:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** else
1105:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1106:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** WRP_Data = (uint16_t)(~OB_WRP & (WRP_MASK_LOW & OB->WRP45));
109 .loc 1 1106 0
110 005e 1649 ldr r1, .L9+8
111 0060 0B69 ldr r3, [r1, #16]
112 0062 B343 bics r3, r6
113 0064 9BB2 uxth r3, r3
114 .LVL10:
1107:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** OB->WRP45 = (uint32_t)((~WRP_Data) << 16U) | (WRP_Data);
115 .loc 1 1107 0
116 0066 DA43 mvns r2, r3
117 0068 1204 lsls r2, r2, #16
118 006a 1343 orrs r3, r2
119 .LVL11:
120 006c 0B61 str r3, [r1, #16]
121 .LVL12:
122 .L2:
1108:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1109:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1110:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1111:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #endif /* STM32L071xx || STM32L072xx || STM32L073xx || STM32L081xx || STM32L082xx || STM32L083xx */
1112:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1113:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
1114:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
123 .loc 1 1114 0
124 006e 1048 ldr r0, .L9
125 .LVL13:
126 0070 FFF7FEFF bl FLASH_WaitForLastOperation
127 .LVL14:
1115:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1116:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Return the write protection operation Status */
1117:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
1118:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
128 .loc 1 1118 0
129 @ sp needed
130 .LVL15:
131 0074 70BD pop {r4, r5, r6, pc}
132 .LVL16:
133 .L4:
1069:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** OB->WRP01 = (uint32_t)((~WRP_Data) << 16U) | (WRP_Data);
134 .loc 1 1069 0
135 0076 1049 ldr r1, .L9+8
136 0078 8B68 ldr r3, [r1, #8]
ARM GAS /tmp/cc9alhJF.s page 23
137 007a A343 bics r3, r4
138 007c 9BB2 uxth r3, r3
139 .LVL17:
1070:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
140 .loc 1 1070 0
141 007e DA43 mvns r2, r3
142 0080 1204 lsls r2, r2, #16
143 0082 1343 orrs r3, r2
144 .LVL18:
145 0084 8B60 str r3, [r1, #8]
146 0086 D5E7 b .L3
147 .L6:
1087:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** OB->WRP23 = (uint32_t)((~WRP_Data) << 16U) | (WRP_Data);
148 .loc 1 1087 0
149 0088 E443 mvns r4, r4
150 .LVL19:
151 008a 240C lsrs r4, r4, #16
152 .LVL20:
153 008c 0A4A ldr r2, .L9+8
154 008e D368 ldr r3, [r2, #12]
155 0090 2340 ands r3, r4
156 .LVL21:
1088:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
157 .loc 1 1088 0
158 0092 DC43 mvns r4, r3
159 0094 2404 lsls r4, r4, #16
160 0096 1C43 orrs r4, r3
161 0098 D460 str r4, [r2, #12]
162 009a DAE7 b .L5
163 .LVL22:
164 .L8:
1101:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** OB->WRP45 =(uint32_t)(~(WRP_Data) << 16U) | (WRP_Data);
165 .loc 1 1101 0
166 009c 064A ldr r2, .L9+8
167 009e 1369 ldr r3, [r2, #16]
168 00a0 1E43 orrs r6, r3
169 .LVL23:
170 00a2 B6B2 uxth r6, r6
171 .LVL24:
1102:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
172 .loc 1 1102 0
173 00a4 F343 mvns r3, r6
174 00a6 1B04 lsls r3, r3, #16
175 00a8 1E43 orrs r6, r3
176 .LVL25:
177 00aa 1661 str r6, [r2, #16]
178 00ac DFE7 b .L2
179 .L10:
180 00ae C046 .align 2
181 .L9:
182 00b0 50C30000 .word 50000
183 00b4 00000000 .word pFlash
184 00b8 0000F81F .word 536346624
185 .cfi_endproc
186 .LFE62:
188 .section .text.HAL_FLASHEx_Erase,"ax",%progbits
189 .align 1
ARM GAS /tmp/cc9alhJF.s page 24
190 .global HAL_FLASHEx_Erase
191 .syntax unified
192 .code 16
193 .thumb_func
194 .fpu softvfp
196 HAL_FLASHEx_Erase:
197 .LFB39:
188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
198 .loc 1 188 0
199 .cfi_startproc
200 @ args = 0, pretend = 0, frame = 0
201 @ frame_needed = 0, uses_anonymous_args = 0
202 .LVL26:
203 0000 F0B5 push {r4, r5, r6, r7, lr}
204 .LCFI1:
205 .cfi_def_cfa_offset 20
206 .cfi_offset 4, -20
207 .cfi_offset 5, -16
208 .cfi_offset 6, -12
209 .cfi_offset 7, -8
210 .cfi_offset 14, -4
211 0002 C646 mov lr, r8
212 0004 00B5 push {lr}
213 .LCFI2:
214 .cfi_def_cfa_offset 24
215 .cfi_offset 8, -24
216 0006 0600 movs r6, r0
217 0008 8846 mov r8, r1
218 .LVL27:
193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
219 .loc 1 193 0
220 000a 204B ldr r3, .L19
221 000c 1B7C ldrb r3, [r3, #16]
222 000e 012B cmp r3, #1
223 0010 3AD0 beq .L17
193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
224 .loc 1 193 0 is_stmt 0 discriminator 2
225 0012 1E4B ldr r3, .L19
226 0014 0122 movs r2, #1
227 0016 1A74 strb r2, [r3, #16]
196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
228 .loc 1 196 0 is_stmt 1 discriminator 2
229 0018 1D48 ldr r0, .L19+4
230 .LVL28:
231 001a FFF7FEFF bl FLASH_WaitForLastOperation
232 .LVL29:
198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
233 .loc 1 198 0 discriminator 2
234 001e 0028 cmp r0, #0
235 0020 2CD1 bne .L13
201:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
236 .loc 1 201 0
237 0022 0123 movs r3, #1
238 0024 5B42 rsbs r3, r3, #0
239 0026 4246 mov r2, r8
240 0028 1360 str r3, [r2]
210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** address < ((pEraseInit->NbPages * FLASH_PAGE_SIZE) + pEraseInit->PageAddress);
ARM GAS /tmp/cc9alhJF.s page 25
241 .loc 1 210 0
242 002a 7568 ldr r5, [r6, #4]
243 .LVL30:
244 .L14:
211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** address += FLASH_PAGE_SIZE)
245 .loc 1 211 0 discriminator 1
246 002c B368 ldr r3, [r6, #8]
247 002e DB01 lsls r3, r3, #7
248 0030 7268 ldr r2, [r6, #4]
249 0032 9446 mov ip, r2
250 0034 6344 add r3, r3, ip
210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** address < ((pEraseInit->NbPages * FLASH_PAGE_SIZE) + pEraseInit->PageAddress);
251 .loc 1 210 0 discriminator 1
252 0036 AB42 cmp r3, r5
253 0038 20D9 bls .L13
254 .LVL31:
255 .LBB18:
256 .LBB19:
1119:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1120:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
1121:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Programs the FLASH User Option Byte: IWDG_SW / RST_STOP / RST_STDBY.
1122:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param OB_IWDG Selects the WDG mode.
1123:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1124:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_IWDG_SW Software WDG selected
1125:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_IWDG_HW Hardware WDG selected
1126:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param OB_STOP Reset event when entering STOP mode.
1127:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1128:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_STOP_NORST No reset generated when entering in STOP
1129:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_STOP_RST Reset generated when entering in STOP
1130:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param OB_STDBY Reset event when entering Standby mode.
1131:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1132:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_STDBY_NORST No reset generated when entering in STANDBY
1133:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_STDBY_RST Reset generated when entering in STANDBY
1134:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval HAL status
1135:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
1136:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_UserConfig(uint8_t OB_IWDG, uint8_t OB_STOP, uint8_t OB_STDBY)
1137:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1138:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
1139:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** uint32_t tmp = 0, tmp1 = 0;
1140:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1141:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Check the parameters */
1142:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_OB_IWDG_SOURCE(OB_IWDG));
1143:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_OB_STOP_SOURCE(OB_STOP));
1144:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_OB_STDBY_SOURCE(OB_STDBY));
1145:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1146:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Get the User Option byte register */
1147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp1 = OB->USER & ((~FLASH_OPTR_USER) >> 16U);
1148:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1149:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Calculate the user option byte to write */
1150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp = (uint32_t)(((uint32_t)~((uint32_t)((uint32_t)(OB_IWDG) | (uint32_t)(OB_STOP) | (uint32_t)(O
1151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp |= ((uint32_t)(OB_IWDG) | ((uint32_t)OB_STOP) | (uint32_t)(OB_STDBY) | tmp1);
1152:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1153:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
1154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
1155:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if(status == HAL_OK)
1157:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
ARM GAS /tmp/cc9alhJF.s page 26
1158:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Clean the error context */
1159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
1160:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1161:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Write the User Option Byte */
1162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** OB->USER = tmp;
1163:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1164:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
1165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
1166:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1167:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1168:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Return the Option Byte program Status */
1169:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
1170:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1171:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1172:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #if defined(FLASH_OPTR_BFB2)
1173:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
1174:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Configures to boot from Bank1 or Bank2.
1175:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param OB_BOOT select the FLASH Bank to boot from.
1176:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1177:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1178:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_BOOT_BANK1 BFB2 option bit reset
1179:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @arg @ref OB_BOOT_BANK2 BFB2 option bit set
1180:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval HAL status
1181:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
1182:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_BootConfig(uint8_t OB_BOOT)
1183:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1184:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
1185:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** uint32_t tmp = 0U, tmp1 = 0U;
1186:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1187:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Check the parameters */
1188:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** assert_param(IS_OB_BOOT_BANK(OB_BOOT));
1189:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1190:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Get the User Option byte register and BOR Level*/
1191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp1 = OB->USER & ((~FLASH_OPTR_BFB2) >> 16U);
1192:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Calculate the option byte to write */
1194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp = (uint32_t)~(OB_BOOT | tmp1) << 16U;
1195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp |= (OB_BOOT | tmp1);
1196:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1197:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
1198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
1199:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if(status == HAL_OK)
1201:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1202:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Clean the error context */
1203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
1204:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1205:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Write the BOOT Option Byte */
1206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** OB->USER = tmp;
1207:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1208:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
1209:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
1210:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1211:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Return the Option Byte program Status */
1213:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
1214:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
ARM GAS /tmp/cc9alhJF.s page 27
1215:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1216:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #endif /* FLASH_OPTR_BFB2 */
1217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1218:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
1219:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @}
1220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
1221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1222:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
1223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @}
1224:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
1225:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /** @addtogroup FLASH
1227:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @{
1228:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
1229:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1230:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1231:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /** @addtogroup FLASH_Private_Functions
1232:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @{
1233:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
1234:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1235:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /**
1236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @brief Erases a specified page in program memory.
1237:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @param PageAddress The page address in program memory to be erased.
1238:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @note A Page is erased in the Program memory only if the address to load
1239:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * is the start address of a page (multiple of @ref FLASH_PAGE_SIZE bytes).
1240:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** * @retval None
1241:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** */
1242:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** void FLASH_PageErase(uint32_t PageAddress)
1243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1244:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Clean the error context */
1245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
257 .loc 1 1245 0
258 003a 0022 movs r2, #0
259 003c 134B ldr r3, .L19
260 003e 5A61 str r2, [r3, #20]
1246:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1247:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Set the ERASE bit */
1248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** SET_BIT(FLASH->PECR, FLASH_PECR_ERASE);
261 .loc 1 1248 0
262 0040 144C ldr r4, .L19+8
263 0042 6168 ldr r1, [r4, #4]
264 0044 8023 movs r3, #128
265 0046 9B00 lsls r3, r3, #2
266 0048 0B43 orrs r3, r1
267 004a 6360 str r3, [r4, #4]
1249:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1250:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Set PROG bit */
1251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** SET_BIT(FLASH->PECR, FLASH_PECR_PROG);
268 .loc 1 1251 0
269 004c 6368 ldr r3, [r4, #4]
270 004e 0827 movs r7, #8
271 0050 3B43 orrs r3, r7
272 0052 6360 str r3, [r4, #4]
1252:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1253:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Write 00000000h to the first word of the program page to erase */
1254:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** *(__IO uint32_t *)(uint32_t)(PageAddress & ~(FLASH_PAGE_SIZE - 1)) = 0x00000000;
273 .loc 1 1254 0
ARM GAS /tmp/cc9alhJF.s page 28
274 0054 7F23 movs r3, #127
275 0056 2900 movs r1, r5
276 0058 9943 bics r1, r3
277 005a 0A60 str r2, [r1]
278 .LVL32:
279 .LBE19:
280 .LBE18:
217:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
281 .loc 1 217 0
282 005c 0C48 ldr r0, .L19+4
283 .LVL33:
284 005e FFF7FEFF bl FLASH_WaitForLastOperation
285 .LVL34:
220:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->PECR, FLASH_PECR_ERASE);
286 .loc 1 220 0
287 0062 6368 ldr r3, [r4, #4]
288 0064 BB43 bics r3, r7
289 0066 6360 str r3, [r4, #4]
221:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
290 .loc 1 221 0
291 0068 6368 ldr r3, [r4, #4]
292 006a 0B4A ldr r2, .L19+12
293 006c 1340 ands r3, r2
294 006e 6360 str r3, [r4, #4]
223:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
295 .loc 1 223 0
296 0070 0028 cmp r0, #0
297 0072 01D1 bne .L18
212:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
298 .loc 1 212 0
299 0074 8035 adds r5, r5, #128
300 .LVL35:
301 0076 D9E7 b .L14
302 .L18:
226:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** break;
303 .loc 1 226 0
304 0078 4346 mov r3, r8
305 007a 1D60 str r5, [r3]
306 .LVL36:
307 .L13:
233:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
308 .loc 1 233 0
309 007c 034B ldr r3, .L19
310 007e 0022 movs r2, #0
311 0080 1A74 strb r2, [r3, #16]
312 .LVL37:
313 .L12:
236:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
314 .loc 1 236 0
315 @ sp needed
316 .LVL38:
317 .LVL39:
318 0082 04BC pop {r2}
319 0084 9046 mov r8, r2
320 0086 F0BD pop {r4, r5, r6, r7, pc}
321 .LVL40:
322 .L17:
ARM GAS /tmp/cc9alhJF.s page 29
193:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
323 .loc 1 193 0
324 0088 0220 movs r0, #2
325 .LVL41:
326 008a FAE7 b .L12
327 .L20:
328 .align 2
329 .L19:
330 008c 00000000 .word pFlash
331 0090 50C30000 .word 50000
332 0094 00200240 .word 1073881088
333 0098 FFFDFFFF .word -513
334 .cfi_endproc
335 .LFE39:
337 .section .text.HAL_FLASHEx_Erase_IT,"ax",%progbits
338 .align 1
339 .global HAL_FLASHEx_Erase_IT
340 .syntax unified
341 .code 16
342 .thumb_func
343 .fpu softvfp
345 HAL_FLASHEx_Erase_IT:
346 .LFB40:
252:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
347 .loc 1 252 0
348 .cfi_startproc
349 @ args = 0, pretend = 0, frame = 0
350 @ frame_needed = 0, uses_anonymous_args = 0
351 .LVL42:
352 0000 70B5 push {r4, r5, r6, lr}
353 .LCFI3:
354 .cfi_def_cfa_offset 16
355 .cfi_offset 4, -16
356 .cfi_offset 5, -12
357 .cfi_offset 6, -8
358 .cfi_offset 14, -4
359 0002 0400 movs r4, r0
360 .LVL43:
256:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
361 .loc 1 256 0
362 0004 1A4B ldr r3, .L27
363 0006 1B78 ldrb r3, [r3]
364 0008 002B cmp r3, #0
365 000a 2CD1 bne .L24
268:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
366 .loc 1 268 0
367 000c 184B ldr r3, .L27
368 000e 1B7C ldrb r3, [r3, #16]
369 0010 012B cmp r3, #1
370 0012 2AD0 beq .L25
268:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
371 .loc 1 268 0 is_stmt 0 discriminator 2
372 0014 164B ldr r3, .L27
373 0016 0122 movs r2, #1
374 0018 1A74 strb r2, [r3, #16]
271:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
375 .loc 1 271 0 is_stmt 1 discriminator 2
ARM GAS /tmp/cc9alhJF.s page 30
376 001a 1648 ldr r0, .L27+4
377 .LVL44:
378 001c FFF7FEFF bl FLASH_WaitForLastOperation
379 .LVL45:
273:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
380 .loc 1 273 0 discriminator 2
381 0020 0028 cmp r0, #0
382 0022 03D0 beq .L26
288:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
383 .loc 1 288 0
384 0024 124B ldr r3, .L27
385 0026 0022 movs r2, #0
386 0028 1A74 strb r2, [r3, #16]
387 002a 1DE0 b .L22
388 .L26:
276:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
389 .loc 1 276 0
390 002c 124B ldr r3, .L27+8
391 002e 5968 ldr r1, [r3, #4]
392 0030 C022 movs r2, #192
393 0032 9202 lsls r2, r2, #10
394 0034 0A43 orrs r2, r1
395 0036 5A60 str r2, [r3, #4]
278:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pFlash.NbPagesToErase = pEraseInit->NbPages;
396 .loc 1 278 0
397 0038 0D4A ldr r2, .L27
398 003a 0121 movs r1, #1
399 003c 1170 strb r1, [r2]
279:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pFlash.Page = pEraseInit->PageAddress;
400 .loc 1 279 0
401 003e A168 ldr r1, [r4, #8]
402 0040 5160 str r1, [r2, #4]
280:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
403 .loc 1 280 0
404 0042 6168 ldr r1, [r4, #4]
405 0044 D160 str r1, [r2, #12]
283:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
406 .loc 1 283 0
407 0046 6168 ldr r1, [r4, #4]
408 .LVL46:
409 .LBB20:
410 .LBB21:
1245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
411 .loc 1 1245 0
412 0048 0024 movs r4, #0
413 .LVL47:
414 004a 5461 str r4, [r2, #20]
1248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
415 .loc 1 1248 0
416 004c 5D68 ldr r5, [r3, #4]
417 004e 8022 movs r2, #128
418 0050 9200 lsls r2, r2, #2
419 0052 2A43 orrs r2, r5
420 0054 5A60 str r2, [r3, #4]
1251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
421 .loc 1 1251 0
422 0056 5A68 ldr r2, [r3, #4]
ARM GAS /tmp/cc9alhJF.s page 31
423 0058 0825 movs r5, #8
424 005a 2A43 orrs r2, r5
425 005c 5A60 str r2, [r3, #4]
426 .loc 1 1254 0
427 005e 7F23 movs r3, #127
428 0060 9943 bics r1, r3
429 .LVL48:
430 0062 0C60 str r4, [r1]
431 0064 00E0 b .L22
432 .LVL49:
433 .L24:
434 .LBE21:
435 .LBE20:
258:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
436 .loc 1 258 0
437 0066 0120 movs r0, #1
438 .LVL50:
439 .L22:
292:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
440 .loc 1 292 0
441 @ sp needed
442 0068 70BD pop {r4, r5, r6, pc}
443 .LVL51:
444 .L25:
268:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
445 .loc 1 268 0
446 006a 0220 movs r0, #2
447 .LVL52:
448 006c FCE7 b .L22
449 .L28:
450 006e C046 .align 2
451 .L27:
452 0070 00000000 .word pFlash
453 0074 50C30000 .word 50000
454 0078 00200240 .word 1073881088
455 .cfi_endproc
456 .LFE40:
458 .section .text.HAL_FLASHEx_OBProgram,"ax",%progbits
459 .align 1
460 .global HAL_FLASHEx_OBProgram
461 .syntax unified
462 .code 16
463 .thumb_func
464 .fpu softvfp
466 HAL_FLASHEx_OBProgram:
467 .LFB41:
344:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
468 .loc 1 344 0
469 .cfi_startproc
470 @ args = 0, pretend = 0, frame = 0
471 @ frame_needed = 0, uses_anonymous_args = 0
472 .LVL53:
473 0000 70B5 push {r4, r5, r6, lr}
474 .LCFI4:
475 .cfi_def_cfa_offset 16
476 .cfi_offset 4, -16
477 .cfi_offset 5, -12
ARM GAS /tmp/cc9alhJF.s page 32
478 .cfi_offset 6, -8
479 .cfi_offset 14, -4
480 0002 0400 movs r4, r0
481 .LVL54:
348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
482 .loc 1 348 0
483 0004 514B ldr r3, .L50
484 0006 1B7C ldrb r3, [r3, #16]
485 0008 012B cmp r3, #1
486 000a 00D1 bne .LCB475
487 000c 9CE0 b .L40 @long jump
488 .LCB475:
348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
489 .loc 1 348 0 is_stmt 0 discriminator 2
490 000e 0123 movs r3, #1
491 0010 4E4A ldr r2, .L50
492 0012 1374 strb r3, [r2, #16]
354:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
493 .loc 1 354 0 is_stmt 1 discriminator 2
494 0014 0268 ldr r2, [r0]
495 0016 1342 tst r3, r2
496 0018 11D1 bne .L42
345:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
497 .loc 1 345 0
498 001a 0120 movs r0, #1
499 .LVL55:
500 .L31:
371:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
501 .loc 1 371 0
502 001c 2368 ldr r3, [r4]
503 001e 9B07 lsls r3, r3, #30
504 0020 18D4 bmi .L43
505 .LVL56:
506 .L32:
383:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
507 .loc 1 383 0
508 0022 2368 ldr r3, [r4]
509 0024 5B07 lsls r3, r3, #29
510 0026 34D4 bmi .L44
511 .LVL57:
512 .L34:
397:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
513 .loc 1 397 0
514 0028 2368 ldr r3, [r4]
515 002a 1B07 lsls r3, r3, #28
516 002c 56D4 bmi .L45
517 .LVL58:
518 .L36:
409:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
519 .loc 1 409 0
520 002e 2368 ldr r3, [r4]
521 0030 DB06 lsls r3, r3, #27
522 0032 00D5 bpl .LCB522
523 0034 6FE0 b .L46 @long jump
524 .LCB522:
525 .LVL59:
526 .L38:
ARM GAS /tmp/cc9alhJF.s page 33
414:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
527 .loc 1 414 0
528 0036 454B ldr r3, .L50
529 0038 0022 movs r2, #0
530 003a 1A74 strb r2, [r3, #16]
531 .LVL60:
532 .L30:
417:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
533 .loc 1 417 0
534 @ sp needed
535 003c 70BD pop {r4, r5, r6, pc}
536 .LVL61:
537 .L42:
358:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #else
538 .loc 1 358 0
539 003e 4268 ldr r2, [r0, #4]
540 0040 C168 ldr r1, [r0, #12]
541 0042 8068 ldr r0, [r0, #8]
542 .LVL62:
543 0044 FFF7FEFF bl FLASH_OB_ProtectedSectorsConfig
544 .LVL63:
362:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
545 .loc 1 362 0
546 0048 0028 cmp r0, #0
547 004a E7D0 beq .L31
365:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
548 .loc 1 365 0
549 004c 3F4B ldr r3, .L50
550 004e 0022 movs r2, #0
551 0050 1A74 strb r2, [r3, #16]
366:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
552 .loc 1 366 0
553 0052 F3E7 b .L30
554 .L43:
373:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if (status != HAL_OK)
555 .loc 1 373 0
556 0054 237C ldrb r3, [r4, #16]
557 .LVL64:
558 .LBB30:
559 .LBB31:
838:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
560 .loc 1 838 0
561 0056 3E4A ldr r2, .L50+4
562 0058 1168 ldr r1, [r2]
563 .LVL65:
842:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #endif
564 .loc 1 842 0
565 005a 1268 ldr r2, [r2]
566 005c 8021 movs r1, #128
567 005e 4900 lsls r1, r1, #1
568 0060 0A40 ands r2, r1
569 .LVL66:
846:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp2 = (uint32_t)(((uint32_t)((uint32_t)(tmp1) << 16U)) | ((uint32_t)(OB_RDP | tmp3)));
570 .loc 1 846 0
571 0062 1343 orrs r3, r2
572 .LVL67:
573 0064 DD43 mvns r5, r3
ARM GAS /tmp/cc9alhJF.s page 34
574 .LVL68:
847:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
575 .loc 1 847 0
576 0066 2D04 lsls r5, r5, #16
577 .LVL69:
578 0068 1D43 orrs r5, r3
579 .LVL70:
850:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
580 .loc 1 850 0
581 006a 3A48 ldr r0, .L50+8
582 .LVL71:
583 006c FFF7FEFF bl FLASH_WaitForLastOperation
584 .LVL72:
852:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
585 .loc 1 852 0
586 0070 0028 cmp r0, #0
587 0072 05D0 beq .L47
588 .LVL73:
589 .L33:
590 .LBE31:
591 .LBE30:
374:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
592 .loc 1 374 0
593 0074 0028 cmp r0, #0
594 0076 D4D0 beq .L32
377:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
595 .loc 1 377 0
596 0078 344B ldr r3, .L50
597 007a 0022 movs r2, #0
598 007c 1A74 strb r2, [r3, #16]
378:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
599 .loc 1 378 0
600 007e DDE7 b .L30
601 .LVL74:
602 .L47:
603 .LBB33:
604 .LBB32:
855:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
605 .loc 1 855 0
606 0080 324B ldr r3, .L50
607 0082 0022 movs r2, #0
608 0084 5A61 str r2, [r3, #20]
858:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
609 .loc 1 858 0
610 0086 324B ldr r3, .L50+4
611 0088 1D60 str r5, [r3]
861:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
612 .loc 1 861 0
613 008a 3248 ldr r0, .L50+8
614 .LVL75:
615 008c FFF7FEFF bl FLASH_WaitForLastOperation
616 .LVL76:
617 0090 F0E7 b .L33
618 .LVL77:
619 .L44:
620 .LBE32:
621 .LBE33:
ARM GAS /tmp/cc9alhJF.s page 35
385:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pOBInit->USERConfig & OB_STOP_NORST,
622 .loc 1 385 0
623 0092 A37C ldrb r3, [r4, #18]
624 0094 1021 movs r1, #16
625 0096 1940 ands r1, r3
626 0098 2020 movs r0, #32
627 .LVL78:
628 009a 1840 ands r0, r3
629 009c 4022 movs r2, #64
630 009e 1A40 ands r2, r3
631 .LVL79:
632 .LBB34:
633 .LBB35:
1147:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
634 .loc 1 1147 0
635 00a0 2B4B ldr r3, .L50+4
636 00a2 5B68 ldr r3, [r3, #4]
637 00a4 2C4D ldr r5, .L50+12
638 00a6 2B40 ands r3, r5
639 .LVL80:
1150:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp |= ((uint32_t)(OB_IWDG) | ((uint32_t)OB_STOP) | (uint32_t)(OB_STDBY) | tmp1);
640 .loc 1 1150 0
641 00a8 0143 orrs r1, r0
642 .LVL81:
643 00aa 0A43 orrs r2, r1
644 .LVL82:
645 00ac 1343 orrs r3, r2
646 .LVL83:
647 00ae DD43 mvns r5, r3
648 00b0 2D04 lsls r5, r5, #16
649 .LVL84:
1151:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
650 .loc 1 1151 0
651 00b2 1D43 orrs r5, r3
652 .LVL85:
1154:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
653 .loc 1 1154 0
654 00b4 2748 ldr r0, .L50+8
655 .LVL86:
656 00b6 FFF7FEFF bl FLASH_WaitForLastOperation
657 .LVL87:
1156:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
658 .loc 1 1156 0
659 00ba 0028 cmp r0, #0
660 00bc 05D0 beq .L48
661 .LVL88:
662 .L35:
663 .LBE35:
664 .LBE34:
388:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
665 .loc 1 388 0
666 00be 0028 cmp r0, #0
667 00c0 B2D0 beq .L34
391:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
668 .loc 1 391 0
669 00c2 224B ldr r3, .L50
670 00c4 0022 movs r2, #0
ARM GAS /tmp/cc9alhJF.s page 36
671 00c6 1A74 strb r2, [r3, #16]
392:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
672 .loc 1 392 0
673 00c8 B8E7 b .L30
674 .LVL89:
675 .L48:
676 .LBB37:
677 .LBB36:
1159:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
678 .loc 1 1159 0
679 00ca 204B ldr r3, .L50
680 00cc 0022 movs r2, #0
681 00ce 5A61 str r2, [r3, #20]
1162:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
682 .loc 1 1162 0
683 00d0 1F4B ldr r3, .L50+4
684 00d2 5D60 str r5, [r3, #4]
1165:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
685 .loc 1 1165 0
686 00d4 1F48 ldr r0, .L50+8
687 .LVL90:
688 00d6 FFF7FEFF bl FLASH_WaitForLastOperation
689 .LVL91:
690 00da F0E7 b .L35
691 .LVL92:
692 .L45:
693 .LBE36:
694 .LBE37:
399:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if (status != HAL_OK)
695 .loc 1 399 0
696 00dc 637C ldrb r3, [r4, #17]
697 .LVL93:
698 .LBB38:
699 .LBB39:
890:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
700 .loc 1 890 0
701 00de 1C4A ldr r2, .L50+4
702 00e0 5268 ldr r2, [r2, #4]
703 00e2 1E49 ldr r1, .L50+16
704 00e4 0A40 ands r2, r1
705 .LVL94:
893:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp |= (OB_BOR | tmp1);
706 .loc 1 893 0
707 00e6 1343 orrs r3, r2
708 .LVL95:
709 00e8 DD43 mvns r5, r3
710 00ea 2D04 lsls r5, r5, #16
711 .LVL96:
894:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
712 .loc 1 894 0
713 00ec 1D43 orrs r5, r3
714 .LVL97:
897:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
715 .loc 1 897 0
716 00ee 1948 ldr r0, .L50+8
717 .LVL98:
718 00f0 FFF7FEFF bl FLASH_WaitForLastOperation
ARM GAS /tmp/cc9alhJF.s page 37
719 .LVL99:
899:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
720 .loc 1 899 0
721 00f4 0028 cmp r0, #0
722 00f6 05D0 beq .L49
723 .LVL100:
724 .L37:
725 .LBE39:
726 .LBE38:
400:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
727 .loc 1 400 0
728 00f8 0028 cmp r0, #0
729 00fa 98D0 beq .L36
403:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** return status;
730 .loc 1 403 0
731 00fc 134B ldr r3, .L50
732 00fe 0022 movs r2, #0
733 0100 1A74 strb r2, [r3, #16]
404:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
734 .loc 1 404 0
735 0102 9BE7 b .L30
736 .LVL101:
737 .L49:
738 .LBB41:
739 .LBB40:
902:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
740 .loc 1 902 0
741 0104 114B ldr r3, .L50
742 0106 0022 movs r2, #0
743 0108 5A61 str r2, [r3, #20]
905:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
744 .loc 1 905 0
745 010a 114B ldr r3, .L50+4
746 010c 5D60 str r5, [r3, #4]
908:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
747 .loc 1 908 0
748 010e 1148 ldr r0, .L50+8
749 .LVL102:
750 0110 FFF7FEFF bl FLASH_WaitForLastOperation
751 .LVL103:
752 0114 F0E7 b .L37
753 .LVL104:
754 .L46:
755 .LBE40:
756 .LBE41:
411:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
757 .loc 1 411 0
758 0116 E37C ldrb r3, [r4, #19]
759 .LVL105:
760 .LBB42:
761 .LBB43:
926:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
762 .loc 1 926 0
763 0118 DB03 lsls r3, r3, #15
764 .LVL106:
932:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
765 .loc 1 932 0
ARM GAS /tmp/cc9alhJF.s page 38
766 011a 0D4A ldr r2, .L50+4
767 011c 5268 ldr r2, [r2, #4]
768 011e 5204 lsls r2, r2, #17
769 0120 520C lsrs r2, r2, #17
770 .LVL107:
935:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp |= OB_Bits | tmp1;
771 .loc 1 935 0
772 0122 1343 orrs r3, r2
773 .LVL108:
774 0124 DC43 mvns r4, r3
775 .LVL109:
776 0126 2404 lsls r4, r4, #16
777 .LVL110:
936:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
778 .loc 1 936 0
779 0128 1C43 orrs r4, r3
780 .LVL111:
939:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
781 .loc 1 939 0
782 012a 0A48 ldr r0, .L50+8
783 .LVL112:
784 012c FFF7FEFF bl FLASH_WaitForLastOperation
785 .LVL113:
941:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
786 .loc 1 941 0
787 0130 0028 cmp r0, #0
788 0132 00D0 beq .LCB858
789 0134 7FE7 b .L38 @long jump
790 .LCB858:
944:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Program OB */
791 .loc 1 944 0
792 0136 054B ldr r3, .L50
793 0138 0022 movs r2, #0
794 013a 5A61 str r2, [r3, #20]
946:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
795 .loc 1 946 0
796 013c 044B ldr r3, .L50+4
797 013e 5C60 str r4, [r3, #4]
948:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
798 .loc 1 948 0
799 0140 0448 ldr r0, .L50+8
800 .LVL114:
801 0142 FFF7FEFF bl FLASH_WaitForLastOperation
802 .LVL115:
803 0146 76E7 b .L38
804 .LVL116:
805 .L40:
806 .LBE43:
807 .LBE42:
348:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
808 .loc 1 348 0
809 0148 0220 movs r0, #2
810 .LVL117:
811 014a 77E7 b .L30
812 .L51:
813 .align 2
814 .L50:
ARM GAS /tmp/cc9alhJF.s page 39
815 014c 00000000 .word pFlash
816 0150 0000F81F .word 536346624
817 0154 50C30000 .word 50000
818 0158 8FFF0000 .word 65423
819 015c F0FF0000 .word 65520
820 .cfi_endproc
821 .LFE41:
823 .section .text.HAL_FLASHEx_OBGetConfig,"ax",%progbits
824 .align 1
825 .global HAL_FLASHEx_OBGetConfig
826 .syntax unified
827 .code 16
828 .thumb_func
829 .fpu softvfp
831 HAL_FLASHEx_OBGetConfig:
832 .LFB42:
427:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pOBInit->OptionType = OPTIONBYTE_WRP | OPTIONBYTE_RDP | OPTIONBYTE_USER | OPTIONBYTE_BOR;
833 .loc 1 427 0
834 .cfi_startproc
835 @ args = 0, pretend = 0, frame = 0
836 @ frame_needed = 0, uses_anonymous_args = 0
837 @ link register save eliminated.
838 .LVL118:
428:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
839 .loc 1 428 0
840 0000 0F23 movs r3, #15
841 0002 0360 str r3, [r0]
842 .LBB44:
843 .LBB45:
1005:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
844 .loc 1 1005 0
845 0004 0A4B ldr r3, .L53
846 0006 1A6A ldr r2, [r3, #32]
847 .LBE45:
848 .LBE44:
431:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
849 .loc 1 431 0
850 0008 8260 str r2, [r0, #8]
851 .LBB46:
852 .LBB47:
1016:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
853 .loc 1 1016 0
854 000a 8022 movs r2, #128
855 000c 9A58 ldr r2, [r3, r2]
856 .LBE47:
857 .LBE46:
434:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #endif
858 .loc 1 434 0
859 000e C260 str r2, [r0, #12]
860 .LBB48:
861 .LBB49:
974:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
862 .loc 1 974 0
863 0010 DA69 ldr r2, [r3, #28]
864 .LBE49:
865 .LBE48:
438:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
ARM GAS /tmp/cc9alhJF.s page 40
866 .loc 1 438 0
867 0012 0274 strb r2, [r0, #16]
868 .LBB50:
869 .LBB51:
961:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
870 .loc 1 961 0
871 0014 D969 ldr r1, [r3, #28]
872 0016 090C lsrs r1, r1, #16
873 0018 7022 movs r2, #112
874 001a 0A40 ands r2, r1
875 .LBE51:
876 .LBE50:
441:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
877 .loc 1 441 0
878 001c 8274 strb r2, [r0, #18]
879 .LBB52:
880 .LBB53:
984:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
881 .loc 1 984 0
882 001e D969 ldr r1, [r3, #28]
883 0020 090C lsrs r1, r1, #16
884 0022 0F22 movs r2, #15
885 0024 0A40 ands r2, r1
886 .LBE53:
887 .LBE52:
444:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
888 .loc 1 444 0
889 0026 4274 strb r2, [r0, #17]
890 .LBB54:
891 .LBB55:
994:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
892 .loc 1 994 0
893 0028 DB69 ldr r3, [r3, #28]
894 002a DB0F lsrs r3, r3, #31
895 .LBE55:
896 .LBE54:
447:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
897 .loc 1 447 0
898 002c C374 strb r3, [r0, #19]
448:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
899 .loc 1 448 0
900 @ sp needed
901 002e 7047 bx lr
902 .L54:
903 .align 2
904 .L53:
905 0030 00200240 .word 1073881088
906 .cfi_endproc
907 .LFE42:
909 .section .text.HAL_FLASHEx_AdvOBProgram,"ax",%progbits
910 .align 1
911 .global HAL_FLASHEx_AdvOBProgram
912 .syntax unified
913 .code 16
914 .thumb_func
915 .fpu softvfp
917 HAL_FLASHEx_AdvOBProgram:
ARM GAS /tmp/cc9alhJF.s page 41
918 .LFB43:
460:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
919 .loc 1 460 0
920 .cfi_startproc
921 @ args = 0, pretend = 0, frame = 0
922 @ frame_needed = 0, uses_anonymous_args = 0
923 .LVL119:
924 0000 10B5 push {r4, lr}
925 .LCFI5:
926 .cfi_def_cfa_offset 8
927 .cfi_offset 4, -8
928 .cfi_offset 14, -4
929 0002 0400 movs r4, r0
930 .LVL120:
469:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
931 .loc 1 469 0
932 0004 0368 ldr r3, [r0]
933 0006 DB07 lsls r3, r3, #31
934 0008 04D4 bmi .L60
461:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
935 .loc 1 461 0
936 000a 0120 movs r0, #1
937 .LVL121:
938 .L56:
485:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
939 .loc 1 485 0
940 000c 2368 ldr r3, [r4]
941 000e 9B07 lsls r3, r3, #30
942 0010 06D4 bmi .L61
943 .LVL122:
944 .L57:
493:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
945 .loc 1 493 0
946 @ sp needed
947 0012 10BD pop {r4, pc}
948 .LVL123:
949 .L60:
474:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #else
950 .loc 1 474 0
951 0014 4268 ldr r2, [r0, #4]
952 0016 C168 ldr r1, [r0, #12]
953 0018 8068 ldr r0, [r0, #8]
954 .LVL124:
955 001a FFF7FEFF bl FLASH_OB_ProtectedSectorsConfig
956 .LVL125:
957 001e F5E7 b .L56
958 .L61:
487:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
959 .loc 1 487 0
960 0020 237C ldrb r3, [r4, #16]
961 .LVL126:
962 .LBB58:
963 .LBB59:
1191:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
964 .loc 1 1191 0
965 0022 0B4A ldr r2, .L62
966 0024 5268 ldr r2, [r2, #4]
ARM GAS /tmp/cc9alhJF.s page 42
967 0026 0B49 ldr r1, .L62+4
968 0028 0A40 ands r2, r1
969 .LVL127:
1194:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp |= (OB_BOOT | tmp1);
970 .loc 1 1194 0
971 002a 1343 orrs r3, r2
972 .LVL128:
973 002c DC43 mvns r4, r3
974 .LVL129:
975 002e 2404 lsls r4, r4, #16
976 .LVL130:
1195:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
977 .loc 1 1195 0
978 0030 1C43 orrs r4, r3
979 .LVL131:
1198:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
980 .loc 1 1198 0
981 0032 0948 ldr r0, .L62+8
982 .LVL132:
983 0034 FFF7FEFF bl FLASH_WaitForLastOperation
984 .LVL133:
1200:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
985 .loc 1 1200 0
986 0038 0028 cmp r0, #0
987 003a EAD1 bne .L57
1203:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
988 .loc 1 1203 0
989 003c 074B ldr r3, .L62+12
990 003e 0022 movs r2, #0
991 0040 5A61 str r2, [r3, #20]
1206:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
992 .loc 1 1206 0
993 0042 034B ldr r3, .L62
994 0044 5C60 str r4, [r3, #4]
1209:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
995 .loc 1 1209 0
996 0046 0448 ldr r0, .L62+8
997 .LVL134:
998 0048 FFF7FEFF bl FLASH_WaitForLastOperation
999 .LVL135:
1000 004c E1E7 b .L57
1001 .L63:
1002 004e C046 .align 2
1003 .L62:
1004 0050 0000F81F .word 536346624
1005 0054 7FFF0000 .word 65407
1006 0058 50C30000 .word 50000
1007 005c 00000000 .word pFlash
1008 .LBE59:
1009 .LBE58:
1010 .cfi_endproc
1011 .LFE43:
1013 .section .text.HAL_FLASHEx_AdvOBGetConfig,"ax",%progbits
1014 .align 1
1015 .global HAL_FLASHEx_AdvOBGetConfig
1016 .syntax unified
1017 .code 16
ARM GAS /tmp/cc9alhJF.s page 43
1018 .thumb_func
1019 .fpu softvfp
1021 HAL_FLASHEx_AdvOBGetConfig:
1022 .LFB44:
503:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** pAdvOBInit->OptionType = 0;
1023 .loc 1 503 0
1024 .cfi_startproc
1025 @ args = 0, pretend = 0, frame = 0
1026 @ frame_needed = 0, uses_anonymous_args = 0
1027 @ link register save eliminated.
1028 .LVL136:
508:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1029 .loc 1 508 0
1030 0000 0122 movs r2, #1
1031 0002 0260 str r2, [r0]
512:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Get PCROP protected sector */
1032 .loc 1 512 0
1033 0004 084B ldr r3, .L65
1034 0006 D969 ldr r1, [r3, #28]
1035 0008 090A lsrs r1, r1, #8
1036 000a 0A40 ands r2, r1
1037 000c 4260 str r2, [r0, #4]
514:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1038 .loc 1 514 0
1039 000e 1A6A ldr r2, [r3, #32]
1040 0010 8260 str r2, [r0, #8]
518:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** #endif
1041 .loc 1 518 0
1042 0012 8022 movs r2, #128
1043 0014 9A58 ldr r2, [r3, r2]
1044 0016 C260 str r2, [r0, #12]
524:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1045 .loc 1 524 0
1046 0018 0322 movs r2, #3
1047 001a 0260 str r2, [r0]
527:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1048 .loc 1 527 0
1049 001c DA69 ldr r2, [r3, #28]
1050 001e 120C lsrs r2, r2, #16
1051 0020 8023 movs r3, #128
1052 0022 1340 ands r3, r2
1053 0024 0382 strh r3, [r0, #16]
530:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1054 .loc 1 530 0
1055 @ sp needed
1056 0026 7047 bx lr
1057 .L66:
1058 .align 2
1059 .L65:
1060 0028 00200240 .word 1073881088
1061 .cfi_endproc
1062 .LFE44:
1064 .section .text.HAL_FLASHEx_OB_SelectPCROP,"ax",%progbits
1065 .align 1
1066 .global HAL_FLASHEx_OB_SelectPCROP
1067 .syntax unified
1068 .code 16
ARM GAS /tmp/cc9alhJF.s page 44
1069 .thumb_func
1070 .fpu softvfp
1072 HAL_FLASHEx_OB_SelectPCROP:
1073 .LFB45:
543:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
1074 .loc 1 543 0
1075 .cfi_startproc
1076 @ args = 0, pretend = 0, frame = 0
1077 @ frame_needed = 0, uses_anonymous_args = 0
1078 0000 10B5 push {r4, lr}
1079 .LCFI6:
1080 .cfi_def_cfa_offset 8
1081 .cfi_offset 4, -8
1082 .cfi_offset 14, -4
1083 .LVL137:
550:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1084 .loc 1 550 0
1085 0002 0B48 ldr r0, .L70
1086 0004 FFF7FEFF bl FLASH_WaitForLastOperation
1087 .LVL138:
553:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1088 .loc 1 553 0
1089 0008 0A4B ldr r3, .L70+4
1090 000a 1B78 ldrb r3, [r3]
1091 .LVL139:
556:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1092 .loc 1 556 0
1093 000c 8022 movs r2, #128
1094 000e 5200 lsls r2, r2, #1
1095 0010 1A43 orrs r2, r3
1096 .LVL140:
559:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp2 = (uint32_t)(((uint32_t)((uint32_t)(tmp1) << 16U)) | ((uint32_t)optiontmp2));
1097 .loc 1 559 0
1098 0012 D343 mvns r3, r2
1099 .LVL141:
560:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1100 .loc 1 560 0
1101 0014 1B04 lsls r3, r3, #16
1102 .LVL142:
1103 0016 1343 orrs r3, r2
1104 .LVL143:
562:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1105 .loc 1 562 0
1106 0018 0028 cmp r0, #0
1107 001a 00D0 beq .L69
1108 .LVL144:
1109 .L68:
576:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1110 .loc 1 576 0
1111 @ sp needed
1112 001c 10BD pop {r4, pc}
1113 .LVL145:
1114 .L69:
565:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1115 .loc 1 565 0
1116 001e 064A ldr r2, .L70+8
1117 .LVL146:
ARM GAS /tmp/cc9alhJF.s page 45
1118 0020 0021 movs r1, #0
1119 0022 5161 str r1, [r2, #20]
568:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1120 .loc 1 568 0
1121 0024 034A ldr r2, .L70+4
1122 0026 1360 str r3, [r2]
571:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1123 .loc 1 571 0
1124 0028 0148 ldr r0, .L70
1125 .LVL147:
1126 002a FFF7FEFF bl FLASH_WaitForLastOperation
1127 .LVL148:
1128 002e F5E7 b .L68
1129 .L71:
1130 .align 2
1131 .L70:
1132 0030 50C30000 .word 50000
1133 0034 0000F81F .word 536346624
1134 0038 00000000 .word pFlash
1135 .cfi_endproc
1136 .LFE45:
1138 .section .text.HAL_FLASHEx_OB_DeSelectPCROP,"ax",%progbits
1139 .align 1
1140 .global HAL_FLASHEx_OB_DeSelectPCROP
1141 .syntax unified
1142 .code 16
1143 .thumb_func
1144 .fpu softvfp
1146 HAL_FLASHEx_OB_DeSelectPCROP:
1147 .LFB46:
585:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
1148 .loc 1 585 0
1149 .cfi_startproc
1150 @ args = 0, pretend = 0, frame = 0
1151 @ frame_needed = 0, uses_anonymous_args = 0
1152 0000 10B5 push {r4, lr}
1153 .LCFI7:
1154 .cfi_def_cfa_offset 8
1155 .cfi_offset 4, -8
1156 .cfi_offset 14, -4
1157 .LVL149:
592:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1158 .loc 1 592 0
1159 0002 0A48 ldr r0, .L75
1160 0004 FFF7FEFF bl FLASH_WaitForLastOperation
1161 .LVL150:
595:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1162 .loc 1 595 0
1163 0008 094B ldr r3, .L75+4
1164 000a 1A78 ldrb r2, [r3]
1165 000c D2B2 uxtb r2, r2
1166 .LVL151:
601:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** tmp2 = (uint32_t)(((uint32_t)((uint32_t)(tmp1) << 16U)) | ((uint32_t)optiontmp2));
1167 .loc 1 601 0
1168 000e D343 mvns r3, r2
1169 .LVL152:
602:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
ARM GAS /tmp/cc9alhJF.s page 46
1170 .loc 1 602 0
1171 0010 1B04 lsls r3, r3, #16
1172 .LVL153:
1173 0012 1343 orrs r3, r2
1174 .LVL154:
604:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1175 .loc 1 604 0
1176 0014 0028 cmp r0, #0
1177 0016 00D0 beq .L74
1178 .LVL155:
1179 .L73:
618:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1180 .loc 1 618 0
1181 @ sp needed
1182 0018 10BD pop {r4, pc}
1183 .LVL156:
1184 .L74:
607:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1185 .loc 1 607 0
1186 001a 064A ldr r2, .L75+8
1187 .LVL157:
1188 001c 0021 movs r1, #0
1189 001e 5161 str r1, [r2, #20]
610:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1190 .loc 1 610 0
1191 0020 034A ldr r2, .L75+4
1192 0022 1360 str r3, [r2]
613:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1193 .loc 1 613 0
1194 0024 0148 ldr r0, .L75
1195 .LVL158:
1196 0026 FFF7FEFF bl FLASH_WaitForLastOperation
1197 .LVL159:
1198 002a F5E7 b .L73
1199 .L76:
1200 .align 2
1201 .L75:
1202 002c 50C30000 .word 50000
1203 0030 0000F81F .word 536346624
1204 0034 00000000 .word pFlash
1205 .cfi_endproc
1206 .LFE46:
1208 .section .text.HAL_FLASHEx_DATAEEPROM_Unlock,"ax",%progbits
1209 .align 1
1210 .global HAL_FLASHEx_DATAEEPROM_Unlock
1211 .syntax unified
1212 .code 16
1213 .thumb_func
1214 .fpu softvfp
1216 HAL_FLASHEx_DATAEEPROM_Unlock:
1217 .LFB47:
651:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** if((FLASH->PECR & FLASH_PECR_PELOCK) != RESET)
1218 .loc 1 651 0
1219 .cfi_startproc
1220 @ args = 0, pretend = 0, frame = 0
1221 @ frame_needed = 0, uses_anonymous_args = 0
1222 @ link register save eliminated.
ARM GAS /tmp/cc9alhJF.s page 47
652:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1223 .loc 1 652 0
1224 0000 064B ldr r3, .L80
1225 0002 5B68 ldr r3, [r3, #4]
1226 0004 DB07 lsls r3, r3, #31
1227 0006 06D5 bpl .L79
655:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** FLASH->PEKEYR = FLASH_PEKEY2;
1228 .loc 1 655 0
1229 0008 044B ldr r3, .L80
1230 000a 054A ldr r2, .L80+4
1231 000c DA60 str r2, [r3, #12]
656:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1232 .loc 1 656 0
1233 000e 054A ldr r2, .L80+8
1234 0010 DA60 str r2, [r3, #12]
662:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1235 .loc 1 662 0
1236 0012 0020 movs r0, #0
1237 .L78:
663:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1238 .loc 1 663 0
1239 @ sp needed
1240 0014 7047 bx lr
1241 .L79:
660:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1242 .loc 1 660 0
1243 0016 0120 movs r0, #1
1244 0018 FCE7 b .L78
1245 .L81:
1246 001a C046 .align 2
1247 .L80:
1248 001c 00200240 .word 1073881088
1249 0020 EFCDAB89 .word -1985229329
1250 0024 05040302 .word 33752069
1251 .cfi_endproc
1252 .LFE47:
1254 .section .text.HAL_FLASHEx_DATAEEPROM_Lock,"ax",%progbits
1255 .align 1
1256 .global HAL_FLASHEx_DATAEEPROM_Lock
1257 .syntax unified
1258 .code 16
1259 .thumb_func
1260 .fpu softvfp
1262 HAL_FLASHEx_DATAEEPROM_Lock:
1263 .LFB48:
670:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Set the PELOCK Bit to lock the data memory and FLASH_PECR register access */
1264 .loc 1 670 0
1265 .cfi_startproc
1266 @ args = 0, pretend = 0, frame = 0
1267 @ frame_needed = 0, uses_anonymous_args = 0
1268 @ link register save eliminated.
672:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1269 .loc 1 672 0
1270 0000 034A ldr r2, .L83
1271 0002 5368 ldr r3, [r2, #4]
1272 0004 0121 movs r1, #1
1273 0006 0B43 orrs r3, r1
ARM GAS /tmp/cc9alhJF.s page 48
1274 0008 5360 str r3, [r2, #4]
675:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1275 .loc 1 675 0
1276 000a 0020 movs r0, #0
1277 @ sp needed
1278 000c 7047 bx lr
1279 .L84:
1280 000e C046 .align 2
1281 .L83:
1282 0010 00200240 .word 1073881088
1283 .cfi_endproc
1284 .LFE48:
1286 .section .text.HAL_FLASHEx_DATAEEPROM_Erase,"ax",%progbits
1287 .align 1
1288 .global HAL_FLASHEx_DATAEEPROM_Erase
1289 .syntax unified
1290 .code 16
1291 .thumb_func
1292 .fpu softvfp
1294 HAL_FLASHEx_DATAEEPROM_Erase:
1295 .LFB49:
688:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
1296 .loc 1 688 0
1297 .cfi_startproc
1298 @ args = 0, pretend = 0, frame = 0
1299 @ frame_needed = 0, uses_anonymous_args = 0
1300 .LVL160:
1301 0000 10B5 push {r4, lr}
1302 .LCFI8:
1303 .cfi_def_cfa_offset 8
1304 .cfi_offset 4, -8
1305 .cfi_offset 14, -4
1306 0002 0400 movs r4, r0
1307 .LVL161:
695:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1308 .loc 1 695 0
1309 0004 0648 ldr r0, .L88
1310 .LVL162:
1311 0006 FFF7FEFF bl FLASH_WaitForLastOperation
1312 .LVL163:
697:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1313 .loc 1 697 0
1314 000a 0028 cmp r0, #0
1315 000c 00D0 beq .L87
1316 .LVL164:
1317 .L86:
710:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1318 .loc 1 710 0
1319 @ sp needed
1320 .LVL165:
1321 000e 10BD pop {r4, pc}
1322 .LVL166:
1323 .L87:
700:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1324 .loc 1 700 0
1325 0010 0023 movs r3, #0
1326 0012 044A ldr r2, .L88+4
ARM GAS /tmp/cc9alhJF.s page 49
1327 0014 5361 str r3, [r2, #20]
703:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1328 .loc 1 703 0
1329 0016 2360 str r3, [r4]
705:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1330 .loc 1 705 0
1331 0018 0148 ldr r0, .L88
1332 .LVL167:
1333 001a FFF7FEFF bl FLASH_WaitForLastOperation
1334 .LVL168:
1335 001e F6E7 b .L86
1336 .L89:
1337 .align 2
1338 .L88:
1339 0020 50C30000 .word 50000
1340 0024 00000000 .word pFlash
1341 .cfi_endproc
1342 .LFE49:
1344 .section .text.HAL_FLASHEx_DATAEEPROM_Program,"ax",%progbits
1345 .align 1
1346 .global HAL_FLASHEx_DATAEEPROM_Program
1347 .syntax unified
1348 .code 16
1349 .thumb_func
1350 .fpu softvfp
1352 HAL_FLASHEx_DATAEEPROM_Program:
1353 .LFB50:
730:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
1354 .loc 1 730 0
1355 .cfi_startproc
1356 @ args = 0, pretend = 0, frame = 0
1357 @ frame_needed = 0, uses_anonymous_args = 0
1358 .LVL169:
1359 0000 70B5 push {r4, r5, r6, lr}
1360 .LCFI9:
1361 .cfi_def_cfa_offset 16
1362 .cfi_offset 4, -16
1363 .cfi_offset 5, -12
1364 .cfi_offset 6, -8
1365 .cfi_offset 14, -4
1366 0002 0400 movs r4, r0
1367 0004 0E00 movs r6, r1
1368 0006 1500 movs r5, r2
1369 .LVL170:
734:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1370 .loc 1 734 0
1371 0008 124B ldr r3, .L100
1372 000a 1B7C ldrb r3, [r3, #16]
1373 000c 012B cmp r3, #1
1374 000e 1FD0 beq .L96
734:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1375 .loc 1 734 0 is_stmt 0 discriminator 2
1376 0010 104B ldr r3, .L100
1377 0012 0122 movs r2, #1
1378 .LVL171:
1379 0014 1A74 strb r2, [r3, #16]
741:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
ARM GAS /tmp/cc9alhJF.s page 50
1380 .loc 1 741 0 is_stmt 1 discriminator 2
1381 0016 1048 ldr r0, .L100+4
1382 .LVL172:
1383 0018 FFF7FEFF bl FLASH_WaitForLastOperation
1384 .LVL173:
743:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1385 .loc 1 743 0 discriminator 2
1386 001c 0028 cmp r0, #0
1387 001e 0CD1 bne .L92
746:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1388 .loc 1 746 0
1389 0020 0C4B ldr r3, .L100
1390 0022 0022 movs r2, #0
1391 0024 5A61 str r2, [r3, #20]
748:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1392 .loc 1 748 0
1393 0026 022C cmp r4, #2
1394 0028 06D0 beq .L97
753:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1395 .loc 1 753 0
1396 002a 012C cmp r4, #1
1397 002c 09D0 beq .L98
758:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** {
1398 .loc 1 758 0
1399 002e 002C cmp r4, #0
1400 0030 0AD1 bne .L99
761:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1401 .loc 1 761 0
1402 0032 EDB2 uxtb r5, r5
1403 .LVL174:
1404 0034 3570 strb r5, [r6]
1405 0036 00E0 b .L92
1406 .LVL175:
1407 .L97:
751:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1408 .loc 1 751 0
1409 0038 3560 str r5, [r6]
1410 .LVL176:
1411 .L92:
776:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1412 .loc 1 776 0
1413 003a 064B ldr r3, .L100
1414 003c 0022 movs r2, #0
1415 003e 1A74 strb r2, [r3, #16]
1416 .LVL177:
1417 .L91:
779:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1418 .loc 1 779 0
1419 @ sp needed
1420 .LVL178:
1421 .LVL179:
1422 0040 70BD pop {r4, r5, r6, pc}
1423 .LVL180:
1424 .L98:
756:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1425 .loc 1 756 0
1426 0042 ADB2 uxth r5, r5
ARM GAS /tmp/cc9alhJF.s page 51
1427 .LVL181:
1428 0044 3580 strh r5, [r6]
1429 0046 F8E7 b .L92
1430 .LVL182:
1431 .L99:
771:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1432 .loc 1 771 0
1433 0048 0348 ldr r0, .L100+4
1434 004a FFF7FEFF bl FLASH_WaitForLastOperation
1435 .LVL183:
1436 004e F4E7 b .L92
1437 .LVL184:
1438 .L96:
734:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1439 .loc 1 734 0
1440 0050 0220 movs r0, #2
1441 .LVL185:
1442 0052 F5E7 b .L91
1443 .L101:
1444 .align 2
1445 .L100:
1446 0054 00000000 .word pFlash
1447 0058 50C30000 .word 50000
1448 .cfi_endproc
1449 .LFE50:
1451 .section .text.HAL_FLASHEx_DATAEEPROM_EnableFixedTimeProgram,"ax",%progbits
1452 .align 1
1453 .global HAL_FLASHEx_DATAEEPROM_EnableFixedTimeProgram
1454 .syntax unified
1455 .code 16
1456 .thumb_func
1457 .fpu softvfp
1459 HAL_FLASHEx_DATAEEPROM_EnableFixedTimeProgram:
1460 .LFB51:
786:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** SET_BIT(FLASH->PECR, FLASH_PECR_FIX);
1461 .loc 1 786 0
1462 .cfi_startproc
1463 @ args = 0, pretend = 0, frame = 0
1464 @ frame_needed = 0, uses_anonymous_args = 0
1465 @ link register save eliminated.
787:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1466 .loc 1 787 0
1467 0000 034A ldr r2, .L103
1468 0002 5168 ldr r1, [r2, #4]
1469 0004 8023 movs r3, #128
1470 0006 5B00 lsls r3, r3, #1
1471 0008 0B43 orrs r3, r1
1472 000a 5360 str r3, [r2, #4]
788:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1473 .loc 1 788 0
1474 @ sp needed
1475 000c 7047 bx lr
1476 .L104:
1477 000e C046 .align 2
1478 .L103:
1479 0010 00200240 .word 1073881088
1480 .cfi_endproc
ARM GAS /tmp/cc9alhJF.s page 52
1481 .LFE51:
1483 .section .text.HAL_FLASHEx_DATAEEPROM_DisableFixedTimeProgram,"ax",%progbits
1484 .align 1
1485 .global HAL_FLASHEx_DATAEEPROM_DisableFixedTimeProgram
1486 .syntax unified
1487 .code 16
1488 .thumb_func
1489 .fpu softvfp
1491 HAL_FLASHEx_DATAEEPROM_DisableFixedTimeProgram:
1492 .LFB52:
795:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->PECR, FLASH_PECR_FIX);
1493 .loc 1 795 0
1494 .cfi_startproc
1495 @ args = 0, pretend = 0, frame = 0
1496 @ frame_needed = 0, uses_anonymous_args = 0
1497 @ link register save eliminated.
796:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1498 .loc 1 796 0
1499 0000 024A ldr r2, .L106
1500 0002 5368 ldr r3, [r2, #4]
1501 0004 0249 ldr r1, .L106+4
1502 0006 0B40 ands r3, r1
1503 0008 5360 str r3, [r2, #4]
797:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1504 .loc 1 797 0
1505 @ sp needed
1506 000a 7047 bx lr
1507 .L107:
1508 .align 2
1509 .L106:
1510 000c 00200240 .word 1073881088
1511 0010 FFFEFFFF .word -257
1512 .cfi_endproc
1513 .LFE52:
1515 .section .text.FLASH_PageErase,"ax",%progbits
1516 .align 1
1517 .global FLASH_PageErase
1518 .syntax unified
1519 .code 16
1520 .thumb_func
1521 .fpu softvfp
1523 FLASH_PageErase:
1524 .LFB65:
1243:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** /* Clean the error context */
1525 .loc 1 1243 0
1526 .cfi_startproc
1527 @ args = 0, pretend = 0, frame = 0
1528 @ frame_needed = 0, uses_anonymous_args = 0
1529 .LVL186:
1530 0000 10B5 push {r4, lr}
1531 .LCFI10:
1532 .cfi_def_cfa_offset 8
1533 .cfi_offset 4, -8
1534 .cfi_offset 14, -4
1245:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1535 .loc 1 1245 0
1536 0002 0021 movs r1, #0
ARM GAS /tmp/cc9alhJF.s page 53
1537 0004 074B ldr r3, .L109
1538 0006 5961 str r1, [r3, #20]
1248:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1539 .loc 1 1248 0
1540 0008 074B ldr r3, .L109+4
1541 000a 5C68 ldr r4, [r3, #4]
1542 000c 8022 movs r2, #128
1543 000e 9200 lsls r2, r2, #2
1544 0010 2243 orrs r2, r4
1545 0012 5A60 str r2, [r3, #4]
1251:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c ****
1546 .loc 1 1251 0
1547 0014 5A68 ldr r2, [r3, #4]
1548 0016 0824 movs r4, #8
1549 0018 2243 orrs r2, r4
1550 001a 5A60 str r2, [r3, #4]
1551 .loc 1 1254 0
1552 001c 7F23 movs r3, #127
1553 001e 9843 bics r0, r3
1554 .LVL187:
1555 0020 0160 str r1, [r0]
1255:./Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_hal_flash_ex.c **** }
1556 .loc 1 1255 0
1557 @ sp needed
1558 0022 10BD pop {r4, pc}
1559 .L110:
1560 .align 2
1561 .L109:
1562 0024 00000000 .word pFlash
1563 0028 00200240 .word 1073881088
1564 .cfi_endproc
1565 .LFE65:
1567 .text
1568 .Letext0:
1569 .file 2 "/usr/arm-none-eabi/include/machine/_default_types.h"
1570 .file 3 "/usr/arm-none-eabi/include/sys/_stdint.h"
1571 .file 4 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/system_stm32l0xx.h"
1572 .file 5 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/stm32l073xx.h"
1573 .file 6 "/usr/arm-none-eabi/include/sys/lock.h"
1574 .file 7 "/usr/arm-none-eabi/include/sys/_types.h"
1575 .file 8 "/usr/lib/gcc/arm-none-eabi/7.2.0/include/stddef.h"
1576 .file 9 "/usr/arm-none-eabi/include/sys/reent.h"
1577 .file 10 "Drivers/CMSIS/Device/ST/STM32L0xx/Include/stm32l0xx.h"
1578 .file 11 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_def.h"
1579 .file 12 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_flash.h"
1580 .file 13 "Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_hal_flash_ex.h"
ARM GAS /tmp/cc9alhJF.s page 54
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32l0xx_hal_flash_ex.c
/tmp/cc9alhJF.s:16 .text.FLASH_OB_ProtectedSectorsConfig:0000000000000000 $t
/tmp/cc9alhJF.s:22 .text.FLASH_OB_ProtectedSectorsConfig:0000000000000000 FLASH_OB_ProtectedSectorsConfig
/tmp/cc9alhJF.s:182 .text.FLASH_OB_ProtectedSectorsConfig:00000000000000b0 $d
/tmp/cc9alhJF.s:189 .text.HAL_FLASHEx_Erase:0000000000000000 $t
/tmp/cc9alhJF.s:196 .text.HAL_FLASHEx_Erase:0000000000000000 HAL_FLASHEx_Erase
/tmp/cc9alhJF.s:330 .text.HAL_FLASHEx_Erase:000000000000008c $d
/tmp/cc9alhJF.s:338 .text.HAL_FLASHEx_Erase_IT:0000000000000000 $t
/tmp/cc9alhJF.s:345 .text.HAL_FLASHEx_Erase_IT:0000000000000000 HAL_FLASHEx_Erase_IT
/tmp/cc9alhJF.s:452 .text.HAL_FLASHEx_Erase_IT:0000000000000070 $d
/tmp/cc9alhJF.s:459 .text.HAL_FLASHEx_OBProgram:0000000000000000 $t
/tmp/cc9alhJF.s:466 .text.HAL_FLASHEx_OBProgram:0000000000000000 HAL_FLASHEx_OBProgram
/tmp/cc9alhJF.s:815 .text.HAL_FLASHEx_OBProgram:000000000000014c $d
/tmp/cc9alhJF.s:824 .text.HAL_FLASHEx_OBGetConfig:0000000000000000 $t
/tmp/cc9alhJF.s:831 .text.HAL_FLASHEx_OBGetConfig:0000000000000000 HAL_FLASHEx_OBGetConfig
/tmp/cc9alhJF.s:905 .text.HAL_FLASHEx_OBGetConfig:0000000000000030 $d
/tmp/cc9alhJF.s:910 .text.HAL_FLASHEx_AdvOBProgram:0000000000000000 $t
/tmp/cc9alhJF.s:917 .text.HAL_FLASHEx_AdvOBProgram:0000000000000000 HAL_FLASHEx_AdvOBProgram
/tmp/cc9alhJF.s:1004 .text.HAL_FLASHEx_AdvOBProgram:0000000000000050 $d
/tmp/cc9alhJF.s:1014 .text.HAL_FLASHEx_AdvOBGetConfig:0000000000000000 $t
/tmp/cc9alhJF.s:1021 .text.HAL_FLASHEx_AdvOBGetConfig:0000000000000000 HAL_FLASHEx_AdvOBGetConfig
/tmp/cc9alhJF.s:1060 .text.HAL_FLASHEx_AdvOBGetConfig:0000000000000028 $d
/tmp/cc9alhJF.s:1065 .text.HAL_FLASHEx_OB_SelectPCROP:0000000000000000 $t
/tmp/cc9alhJF.s:1072 .text.HAL_FLASHEx_OB_SelectPCROP:0000000000000000 HAL_FLASHEx_OB_SelectPCROP
/tmp/cc9alhJF.s:1132 .text.HAL_FLASHEx_OB_SelectPCROP:0000000000000030 $d
/tmp/cc9alhJF.s:1139 .text.HAL_FLASHEx_OB_DeSelectPCROP:0000000000000000 $t
/tmp/cc9alhJF.s:1146 .text.HAL_FLASHEx_OB_DeSelectPCROP:0000000000000000 HAL_FLASHEx_OB_DeSelectPCROP
/tmp/cc9alhJF.s:1202 .text.HAL_FLASHEx_OB_DeSelectPCROP:000000000000002c $d
/tmp/cc9alhJF.s:1209 .text.HAL_FLASHEx_DATAEEPROM_Unlock:0000000000000000 $t
/tmp/cc9alhJF.s:1216 .text.HAL_FLASHEx_DATAEEPROM_Unlock:0000000000000000 HAL_FLASHEx_DATAEEPROM_Unlock
/tmp/cc9alhJF.s:1248 .text.HAL_FLASHEx_DATAEEPROM_Unlock:000000000000001c $d
/tmp/cc9alhJF.s:1255 .text.HAL_FLASHEx_DATAEEPROM_Lock:0000000000000000 $t
/tmp/cc9alhJF.s:1262 .text.HAL_FLASHEx_DATAEEPROM_Lock:0000000000000000 HAL_FLASHEx_DATAEEPROM_Lock
/tmp/cc9alhJF.s:1282 .text.HAL_FLASHEx_DATAEEPROM_Lock:0000000000000010 $d
/tmp/cc9alhJF.s:1287 .text.HAL_FLASHEx_DATAEEPROM_Erase:0000000000000000 $t
/tmp/cc9alhJF.s:1294 .text.HAL_FLASHEx_DATAEEPROM_Erase:0000000000000000 HAL_FLASHEx_DATAEEPROM_Erase
/tmp/cc9alhJF.s:1339 .text.HAL_FLASHEx_DATAEEPROM_Erase:0000000000000020 $d
/tmp/cc9alhJF.s:1345 .text.HAL_FLASHEx_DATAEEPROM_Program:0000000000000000 $t
/tmp/cc9alhJF.s:1352 .text.HAL_FLASHEx_DATAEEPROM_Program:0000000000000000 HAL_FLASHEx_DATAEEPROM_Program
/tmp/cc9alhJF.s:1446 .text.HAL_FLASHEx_DATAEEPROM_Program:0000000000000054 $d
/tmp/cc9alhJF.s:1452 .text.HAL_FLASHEx_DATAEEPROM_EnableFixedTimeProgram:0000000000000000 $t
/tmp/cc9alhJF.s:1459 .text.HAL_FLASHEx_DATAEEPROM_EnableFixedTimeProgram:0000000000000000 HAL_FLASHEx_DATAEEPROM_EnableFixedTimeProgram
/tmp/cc9alhJF.s:1479 .text.HAL_FLASHEx_DATAEEPROM_EnableFixedTimeProgram:0000000000000010 $d
/tmp/cc9alhJF.s:1484 .text.HAL_FLASHEx_DATAEEPROM_DisableFixedTimeProgram:0000000000000000 $t
/tmp/cc9alhJF.s:1491 .text.HAL_FLASHEx_DATAEEPROM_DisableFixedTimeProgram:0000000000000000 HAL_FLASHEx_DATAEEPROM_DisableFixedTimeProgram
/tmp/cc9alhJF.s:1510 .text.HAL_FLASHEx_DATAEEPROM_DisableFixedTimeProgram:000000000000000c $d
/tmp/cc9alhJF.s:1516 .text.FLASH_PageErase:0000000000000000 $t
/tmp/cc9alhJF.s:1523 .text.FLASH_PageErase:0000000000000000 FLASH_PageErase
/tmp/cc9alhJF.s:1562 .text.FLASH_PageErase:0000000000000024 $d
.debug_frame:0000000000000010 $d
UNDEFINED SYMBOLS
FLASH_WaitForLastOperation
pFlash