ARM GAS /tmp/ccXKI0RP.s page 1 1 .cpu cortex-m3 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, 1 10 .eabi_attribute 18, 4 11 .file "stm32f1xx_hal_flash_ex.c" 12 .text 13 .Ltext0: 14 .cfi_sections .debug_frame 15 .section .text.FLASH_MassErase,"ax",%progbits 16 .align 1 17 .arch armv7-m 18 .syntax unified 19 .thumb 20 .thumb_func 21 .fpu softvfp 23 FLASH_MassErase: 24 .LVL0: 25 .LFB71: 26 .file 1 "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c" 1:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 2:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** ****************************************************************************** 3:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @file stm32f1xx_hal_flash_ex.c 4:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @author MCD Application Team 5:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @brief Extended FLASH HAL module driver. 6:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * 7:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * This file provides firmware functions to manage the following 8:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * functionalities of the FLASH peripheral: 9:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * + Extended Initialization/de-initialization functions 10:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * + Extended I/O operation functions 11:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * + Extended Peripheral Control functions 12:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * 13:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** @verbatim 14:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** ============================================================================== 15:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** ##### Flash peripheral extended features ##### 16:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** ============================================================================== 17:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 18:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** ##### How to use this driver ##### 19:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** ============================================================================== 20:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** [..] This driver provides functions to configure and program the FLASH memory 21:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** of all STM32F1xxx devices. It includes 22:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 23:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** (++) Set/Reset the write protection 24:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** (++) Program the user Option Bytes 25:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** (++) Get the Read protection Level 26:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 27:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** @endverbatim 28:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** ****************************************************************************** 29:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @attention 30:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * 31:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** *

© Copyright (c) 2016 STMicroelectronics. 32:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * All rights reserved.

ARM GAS /tmp/ccXKI0RP.s page 2 33:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * 34:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * This software component is licensed by ST under BSD 3-Clause license, 35:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * the "License"; You may not use this file except in compliance with the 36:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * License. You may obtain a copy of the License at: 37:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * opensource.org/licenses/BSD-3-Clause 38:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * 39:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** ****************************************************************************** 40:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 41:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 42:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Includes ------------------------------------------------------------------*/ 43:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #include "stm32f1xx_hal.h" 44:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 45:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** @addtogroup STM32F1xx_HAL_Driver 46:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @{ 47:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 48:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #ifdef HAL_FLASH_MODULE_ENABLED 49:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 50:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** @addtogroup FLASH 51:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @{ 52:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 53:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** @addtogroup FLASH_Private_Variables 54:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @{ 55:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 56:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Variables used for Erase pages under interruption*/ 57:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** extern FLASH_ProcessTypeDef pFlash; 58:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 59:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @} 60:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 61:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 62:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 63:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @} 64:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 65:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 66:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** @defgroup FLASHEx FLASHEx 67:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @brief FLASH HAL Extension module driver 68:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @{ 69:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 70:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 71:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Private typedef -----------------------------------------------------------*/ 72:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Private define ------------------------------------------------------------*/ 73:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Private_Constants FLASHEx Private Constants 74:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @{ 75:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 76:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #define FLASH_POSITION_IWDGSW_BIT FLASH_OBR_IWDG_SW_Pos 77:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #define FLASH_POSITION_OB_USERDATA0_BIT FLASH_OBR_DATA0_Pos 78:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #define FLASH_POSITION_OB_USERDATA1_BIT FLASH_OBR_DATA1_Pos 79:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 80:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @} 81:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 82:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 83:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Private macro -------------------------------------------------------------*/ 84:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Private_Macros FLASHEx Private Macros 85:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @{ 86:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 87:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 88:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @} 89:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ ARM GAS /tmp/ccXKI0RP.s page 3 90:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 91:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Private variables ---------------------------------------------------------*/ 92:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Private function prototypes -----------------------------------------------*/ 93:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Private_Functions FLASHEx Private Functions 94:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @{ 95:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 96:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Erase operations */ 97:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** static void FLASH_MassErase(uint32_t Banks); 98:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** void FLASH_PageErase(uint32_t PageAddress); 99:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 100:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Option bytes control */ 101:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_EnableWRP(uint32_t WriteProtectPage); 102:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_DisableWRP(uint32_t WriteProtectPage); 103:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_RDP_LevelConfig(uint8_t ReadProtectLevel); 104:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_UserConfig(uint8_t UserConfig); 105:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_ProgramData(uint32_t Address, uint8_t Data); 106:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetWRP(void); 107:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetRDP(void); 108:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** static uint8_t FLASH_OB_GetUser(void); 109:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 110:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 111:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @} 112:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 113:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 114:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Exported functions ---------------------------------------------------------*/ 115:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions FLASHEx Exported Functions 116:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @{ 117:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 118:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 119:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions_Group1 FLASHEx Memory Erasing functions 120:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @brief FLASH Memory Erasing functions 121:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * 122:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** @verbatim 123:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** ============================================================================== 124:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** ##### FLASH Erasing Programming functions ##### 125:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** ============================================================================== 126:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 127:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** [..] The FLASH Memory Erasing functions, includes the following functions: 128:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** (+) @ref HAL_FLASHEx_Erase: return only when erase has been done 129:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** (+) @ref HAL_FLASHEx_Erase_IT: end of erase is done when @ref HAL_FLASH_EndOfOperationCallback 130:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** is called with parameter 0xFFFFFFFF 131:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 132:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** [..] Any operation of erase should follow these steps: 133:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** (#) Call the @ref HAL_FLASH_Unlock() function to enable the flash control register and 134:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** program memory access. 135:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** (#) Call the desired function to erase page. 136:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** (#) Call the @ref HAL_FLASH_Lock() to disable the flash program memory access 137:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** (recommended to protect the FLASH memory against possible unwanted operation). 138:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 139:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** @endverbatim 140:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @{ 141:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 142:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 143:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 144:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 145:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @brief Perform a mass erase or erase the specified FLASH memory pages 146:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @note To correctly run this function, the @ref HAL_FLASH_Unlock() function ARM GAS /tmp/ccXKI0RP.s page 4 147:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * must be called before. 148:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * Call the @ref HAL_FLASH_Lock() to disable the flash memory access 149:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * (recommended to protect the FLASH memory against possible unwanted operation) 150:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @param[in] pEraseInit pointer to an FLASH_EraseInitTypeDef structure that 151:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * contains the configuration information for the erasing. 152:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * 153:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @param[out] PageError pointer to variable that 154:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * contains the configuration information on faulty page in case of error 155:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * (0xFFFFFFFF means that all the pages have been correctly erased) 156:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * 157:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @retval HAL_StatusTypeDef HAL Status 158:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 159:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *PageError) 160:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 161:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR; 162:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint32_t address = 0U; 163:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 164:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Process Locked */ 165:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash); 166:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 167:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Check the parameters */ 168:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase)); 169:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 170:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE) 171:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 172:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_BANK2_END) 173:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (pEraseInit->Banks == FLASH_BANK_BOTH) 174:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 175:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Mass Erase requested for Bank1 and Bank2 */ 176:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 177:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if ((FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK) && \ 178:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** (FLASH_WaitForLastOperationBank2((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK)) 179:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 180:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /*Mass erase to be done*/ 181:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** FLASH_MassErase(FLASH_BANK_BOTH); 182:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 183:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 184:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if ((FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK) && \ 185:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** (FLASH_WaitForLastOperationBank2((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK)) 186:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 187:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = HAL_OK; 188:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 189:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 190:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the MER Bit */ 191:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_MER); 192:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR2, FLASH_CR2_MER); 193:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 194:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 195:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** else if (pEraseInit->Banks == FLASH_BANK_2) 196:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 197:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Mass Erase requested for Bank2 */ 198:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 199:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (FLASH_WaitForLastOperationBank2((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK) 200:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 201:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /*Mass erase to be done*/ 202:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** FLASH_MassErase(FLASH_BANK_2); 203:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** ARM GAS /tmp/ccXKI0RP.s page 5 204:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 205:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperationBank2((uint32_t)FLASH_TIMEOUT_VALUE); 206:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 207:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the MER Bit */ 208:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR2, FLASH_CR2_MER); 209:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 210:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 211:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** else 212:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_BANK2_END */ 213:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 214:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Mass Erase requested for Bank1 */ 215:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 216:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK) 217:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 218:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /*Mass erase to be done*/ 219:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** FLASH_MassErase(FLASH_BANK_1); 220:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 221:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 222:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 223:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 224:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the MER Bit */ 225:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_MER); 226:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 227:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 228:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 229:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** else 230:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 231:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Page Erase is requested */ 232:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Check the parameters */ 233:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(pEraseInit->PageAddress)); 234:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages)); 235:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 236:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_BANK2_END) 237:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Page Erase requested on address located on bank2 */ 238:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if(pEraseInit->PageAddress > FLASH_BANK1_END) 239:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 240:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 241:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (FLASH_WaitForLastOperationBank2((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK) 242:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 243:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /*Initialization of PageError variable*/ 244:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** *PageError = 0xFFFFFFFFU; 245:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 246:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Erase by page by page to be done*/ 247:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** for(address = pEraseInit->PageAddress; 248:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** address < (pEraseInit->PageAddress + (pEraseInit->NbPages)*FLASH_PAGE_SIZE); 249:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** address += FLASH_PAGE_SIZE) 250:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 251:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** FLASH_PageErase(address); 252:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 253:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 254:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperationBank2((uint32_t)FLASH_TIMEOUT_VALUE); 255:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 256:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the PER Bit */ 257:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR2, FLASH_CR2_PER); 258:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 259:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (status != HAL_OK) 260:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { ARM GAS /tmp/ccXKI0RP.s page 6 261:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* In case of error, stop erase procedure and return the faulty address */ 262:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** *PageError = address; 263:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** break; 264:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 265:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 266:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 267:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 268:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** else 269:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_BANK2_END */ 270:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 271:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Page Erase requested on address located on bank1 */ 272:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE) == HAL_OK) 274:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 275:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /*Initialization of PageError variable*/ 276:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** *PageError = 0xFFFFFFFFU; 277:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 278:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Erase page by page to be done*/ 279:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** for(address = pEraseInit->PageAddress; 280:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** address < ((pEraseInit->NbPages * FLASH_PAGE_SIZE) + pEraseInit->PageAddress); 281:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** address += FLASH_PAGE_SIZE) 282:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 283:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** FLASH_PageErase(address); 284:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 285:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 286:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 287:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 288:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the PER Bit */ 289:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PER); 290:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 291:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (status != HAL_OK) 292:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 293:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* In case of error, stop erase procedure and return the faulty address */ 294:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** *PageError = address; 295:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** break; 296:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 297:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 298:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 299:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 300:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 301:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 302:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Process Unlocked */ 303:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash); 304:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 305:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return status; 306:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 307:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 308:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 309:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @brief Perform a mass erase or erase the specified FLASH memory pages with interrupt enabled 310:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @note To correctly run this function, the @ref HAL_FLASH_Unlock() function 311:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * must be called before. 312:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * Call the @ref HAL_FLASH_Lock() to disable the flash memory access 313:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * (recommended to protect the FLASH memory against possible unwanted operation) 314:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @param pEraseInit pointer to an FLASH_EraseInitTypeDef structure that 315:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * contains the configuration information for the erasing. 316:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * 317:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @retval HAL_StatusTypeDef HAL Status ARM GAS /tmp/ccXKI0RP.s page 7 318:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 319:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Erase_IT(FLASH_EraseInitTypeDef *pEraseInit) 320:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 321:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; 322:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 323:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Process Locked */ 324:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash); 325:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 326:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* If procedure already ongoing, reject the next one */ 327:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (pFlash.ProcedureOnGoing != FLASH_PROC_NONE) 328:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 329:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return HAL_ERROR; 330:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 331:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 332:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Check the parameters */ 333:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase)); 334:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 335:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Enable End of FLASH Operation and Error source interrupts */ 336:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP | FLASH_IT_ERR); 337:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 338:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_BANK2_END) 339:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Enable End of FLASH Operation and Error source interrupts */ 340:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP_BANK2 | FLASH_IT_ERR_BANK2); 341:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 342:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif 343:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE) 344:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 345:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /*Mass erase to be done*/ 346:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_MASSERASE; 347:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** FLASH_MassErase(pEraseInit->Banks); 348:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 349:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** else 350:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 351:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Erase by page to be done*/ 352:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 353:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Check the parameters */ 354:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(pEraseInit->PageAddress)); 355:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages)); 356:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 357:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PAGEERASE; 358:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pFlash.DataRemaining = pEraseInit->NbPages; 359:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pFlash.Address = pEraseInit->PageAddress; 360:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 361:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /*Erase 1st page and wait for IT*/ 362:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** FLASH_PageErase(pEraseInit->PageAddress); 363:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 364:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 365:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return status; 366:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 367:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 368:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 369:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @} 370:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 371:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 372:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions_Group2 Option Bytes Programming functions 373:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @brief Option Bytes Programming functions 374:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * ARM GAS /tmp/ccXKI0RP.s page 8 375:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** @verbatim 376:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** ============================================================================== 377:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** ##### Option Bytes Programming functions ##### 378:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** ============================================================================== 379:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** [..] 380:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** This subsection provides a set of functions allowing to control the FLASH 381:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** option bytes operations. 382:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 383:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** @endverbatim 384:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @{ 385:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 386:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 387:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 388:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @brief Erases the FLASH option bytes. 389:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @note This functions erases all option bytes except the Read protection (RDP). 390:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * The function @ref HAL_FLASH_Unlock() should be called before to unlock the FLASH interf 391:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * The function @ref HAL_FLASH_OB_Unlock() should be called before to unlock the options b 392:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * The function @ref HAL_FLASH_OB_Launch() should be called after to force the reload of t 393:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * (system reset will occur) 394:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @retval HAL status 395:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 396:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 397:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_OBErase(void) 398:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 399:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint8_t rdptmp = OB_RDP_LEVEL_0; 400:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR; 401:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 402:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Get the actual read protection Option Byte value */ 403:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** rdptmp = FLASH_OB_GetRDP(); 404:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 405:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 406:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 407:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 408:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if(status == HAL_OK) 409:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 410:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Clean the error context */ 411:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; 412:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 413:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* If the previous operation is completed, proceed to erase the option bytes */ 414:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTER); 415:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT); 416:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 417:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 418:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 419:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 420:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the OPTER Bit */ 421:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTER); 422:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 423:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if(status == HAL_OK) 424:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 425:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Restore the last read protection Option Byte value */ 426:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_OB_RDP_LevelConfig(rdptmp); 427:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 428:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 429:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 430:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Return the erase status */ 431:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return status; ARM GAS /tmp/ccXKI0RP.s page 9 432:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 433:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 434:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 435:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @brief Program option bytes 436:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @note The function @ref HAL_FLASH_Unlock() should be called before to unlock the FLASH interf 437:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * The function @ref HAL_FLASH_OB_Unlock() should be called before to unlock the options b 438:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * The function @ref HAL_FLASH_OB_Launch() should be called after to force the reload of t 439:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * (system reset will occur) 440:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * 441:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @param pOBInit pointer to an FLASH_OBInitStruct structure that 442:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * contains the configuration information for the programming. 443:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * 444:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @retval HAL_StatusTypeDef HAL Status 445:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 446:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_OBProgram(FLASH_OBProgramInitTypeDef *pOBInit) 447:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 448:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR; 449:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 450:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Process Locked */ 451:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash); 452:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 453:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Check the parameters */ 454:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** assert_param(IS_OPTIONBYTE(pOBInit->OptionType)); 455:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 456:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Write protection configuration */ 457:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_WRP) == OPTIONBYTE_WRP) 458:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 459:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** assert_param(IS_WRPSTATE(pOBInit->WRPState)); 460:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (pOBInit->WRPState == OB_WRPSTATE_ENABLE) 461:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 462:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Enable of Write protection on the selected page */ 463:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_OB_EnableWRP(pOBInit->WRPPage); 464:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 465:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** else 466:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 467:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Disable of Write protection on the selected page */ 468:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_OB_DisableWRP(pOBInit->WRPPage); 469:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (status != HAL_OK) 471:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 472:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Process Unlocked */ 473:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash); 474:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return status; 475:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 476:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 477:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 478:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Read protection configuration */ 479:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_RDP) == OPTIONBYTE_RDP) 480:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 481:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_OB_RDP_LevelConfig(pOBInit->RDPLevel); 482:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (status != HAL_OK) 483:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 484:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Process Unlocked */ 485:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash); 486:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return status; 487:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 488:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } ARM GAS /tmp/ccXKI0RP.s page 10 489:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 490:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* USER configuration */ 491:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_USER) == OPTIONBYTE_USER) 492:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 493:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_OB_UserConfig(pOBInit->USERConfig); 494:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (status != HAL_OK) 495:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 496:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Process Unlocked */ 497:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash); 498:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return status; 499:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 500:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 501:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 502:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* DATA configuration*/ 503:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_DATA) == OPTIONBYTE_DATA) 504:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 505:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_OB_ProgramData(pOBInit->DATAAddress, pOBInit->DATAData); 506:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (status != HAL_OK) 507:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 508:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Process Unlocked */ 509:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash); 510:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return status; 511:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 512:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 513:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 514:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Process Unlocked */ 515:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash); 516:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 517:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return status; 518:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 519:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 520:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 521:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @brief Get the Option byte configuration 522:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @param pOBInit pointer to an FLASH_OBInitStruct structure that 523:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * contains the configuration information for the programming. 524:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * 525:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @retval None 526:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 527:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit) 528:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 529:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pOBInit->OptionType = OPTIONBYTE_WRP | OPTIONBYTE_RDP | OPTIONBYTE_USER; 530:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 531:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /*Get WRP*/ 532:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pOBInit->WRPPage = FLASH_OB_GetWRP(); 533:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 534:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /*Get RDP Level*/ 535:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pOBInit->RDPLevel = FLASH_OB_GetRDP(); 536:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 537:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /*Get USER*/ 538:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pOBInit->USERConfig = FLASH_OB_GetUser(); 539:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 540:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 541:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 542:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @brief Get the Option byte user data 543:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @param DATAAdress Address of the option byte DATA 544:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * This parameter can be one of the following values: 545:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @arg @ref OB_DATA_ADDRESS_DATA0 ARM GAS /tmp/ccXKI0RP.s page 11 546:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @arg @ref OB_DATA_ADDRESS_DATA1 547:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @retval Value programmed in USER data 548:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 549:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint32_t HAL_FLASHEx_OBGetUserData(uint32_t DATAAdress) 550:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 551:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint32_t value = 0; 552:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 553:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (DATAAdress == OB_DATA_ADDRESS_DATA0) 554:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 555:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Get value programmed in OB USER Data0 */ 556:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** value = READ_BIT(FLASH->OBR, FLASH_OBR_DATA0) >> FLASH_POSITION_OB_USERDATA0_BIT; 557:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 558:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** else 559:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 560:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Get value programmed in OB USER Data1 */ 561:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** value = READ_BIT(FLASH->OBR, FLASH_OBR_DATA1) >> FLASH_POSITION_OB_USERDATA1_BIT; 562:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 563:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 564:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return value; 565:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 566:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 567:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 568:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @} 569:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 570:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 571:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 572:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @} 573:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 574:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 575:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** @addtogroup FLASHEx_Private_Functions 576:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @{ 577:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 578:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 579:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 580:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @brief Full erase of FLASH memory Bank 581:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @param Banks Banks to be erased 582:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * This parameter can be one of the following values: 583:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @arg @ref FLASH_BANK_1 Bank1 to be erased 584:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** @if STM32F101xG 585:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @arg @ref FLASH_BANK_2 Bank2 to be erased 586:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @arg @ref FLASH_BANK_BOTH Bank1 and Bank2 to be erased 587:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** @endif 588:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** @if STM32F103xG 589:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @arg @ref FLASH_BANK_2 Bank2 to be erased 590:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @arg @ref FLASH_BANK_BOTH Bank1 and Bank2 to be erased 591:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** @endif 592:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * 593:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @retval None 594:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 595:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** static void FLASH_MassErase(uint32_t Banks) 596:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 27 .loc 1 596 1 view -0 28 .cfi_startproc 29 @ args = 0, pretend = 0, frame = 0 30 @ frame_needed = 0, uses_anonymous_args = 0 31 @ link register save eliminated. 597:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Check the parameters */ ARM GAS /tmp/ccXKI0RP.s page 12 598:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks)); 32 .loc 1 598 3 view .LVU1 599:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 600:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Clean the error context */ 601:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; 33 .loc 1 601 3 view .LVU2 34 .loc 1 601 20 is_stmt 0 view .LVU3 35 0000 064B ldr r3, .L2 36 0002 0022 movs r2, #0 37 0004 DA61 str r2, [r3, #28] 602:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 603:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_BANK2_END) 604:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if(Banks == FLASH_BANK_BOTH) 605:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 606:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* bank1 & bank2 will be erased*/ 607:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_MER); 608:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR2, FLASH_CR2_MER); 609:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT); 610:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR2, FLASH_CR2_STRT); 611:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 612:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** else if(Banks == FLASH_BANK_2) 613:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 614:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /*Only bank2 will be erased*/ 615:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR2, FLASH_CR2_MER); 616:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR2, FLASH_CR2_STRT); 617:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 618:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** else 619:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 620:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_BANK2_END */ 621:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if !defined(FLASH_BANK2_END) 622:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Prevent unused argument(s) compilation warning */ 623:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** UNUSED(Banks); 38 .loc 1 623 3 is_stmt 1 view .LVU4 624:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_BANK2_END */ 625:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Only bank1 will be erased*/ 626:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_MER); 39 .loc 1 626 5 view .LVU5 40 0006 064B ldr r3, .L2+4 41 0008 1A69 ldr r2, [r3, #16] 42 000a 42F00402 orr r2, r2, #4 43 000e 1A61 str r2, [r3, #16] 627:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT); 44 .loc 1 627 5 view .LVU6 45 0010 1A69 ldr r2, [r3, #16] 46 0012 42F04002 orr r2, r2, #64 47 0016 1A61 str r2, [r3, #16] 628:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_BANK2_END) 629:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 630:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_BANK2_END */ 631:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 48 .loc 1 631 1 is_stmt 0 view .LVU7 49 0018 7047 bx lr 50 .L3: 51 001a 00BF .align 2 52 .L2: 53 001c 00000000 .word pFlash 54 0020 00200240 .word 1073881088 ARM GAS /tmp/ccXKI0RP.s page 13 55 .cfi_endproc 56 .LFE71: 58 .section .text.FLASH_OB_GetWRP,"ax",%progbits 59 .align 1 60 .syntax unified 61 .thumb 62 .thumb_func 63 .fpu softvfp 65 FLASH_OB_GetWRP: 66 .LFB77: 632:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 633:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 634:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @brief Enable the write protection of the desired pages 635:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @note An option byte erase is done automatically in this function. 636:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @note When the memory read protection level is selected (RDP level = 1), 637:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * it is not possible to program or erase the flash page i if 638:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * debug features are connected or boot code is executed in RAM, even if nWRPi = 1 639:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * 640:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @param WriteProtectPage specifies the page(s) to be write protected. 641:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * The value of this parameter depend on device used within the same series 642:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @retval HAL status 643:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 644:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_EnableWRP(uint32_t WriteProtectPage) 645:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 646:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; 647:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint16_t WRP0_Data = 0xFFFF; 648:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_WRP1_WRP1) 649:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint16_t WRP1_Data = 0xFFFF; 650:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_WRP1_WRP1 */ 651:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_WRP2_WRP2) 652:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint16_t WRP2_Data = 0xFFFF; 653:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_WRP2_WRP2 */ 654:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_WRP3_WRP3) 655:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint16_t WRP3_Data = 0xFFFF; 656:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_WRP3_WRP3 */ 657:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 658:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Check the parameters */ 659:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** assert_param(IS_OB_WRP(WriteProtectPage)); 660:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 661:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Get current write protected pages and the new pages to be protected ******/ 662:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WriteProtectPage = (uint32_t)(~((~FLASH_OB_GetWRP()) | WriteProtectPage)); 663:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 664:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES0TO15MASK) 665:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRP0_Data = (uint16_t)(WriteProtectPage & OB_WRP_PAGES0TO15MASK); 666:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #elif defined(OB_WRP_PAGES0TO31MASK) 667:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRP0_Data = (uint16_t)(WriteProtectPage & OB_WRP_PAGES0TO31MASK); 668:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES0TO31MASK */ 669:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 670:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES16TO31MASK) 671:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRP1_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES16TO31MASK) >> 8U); 672:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #elif defined(OB_WRP_PAGES32TO63MASK) 673:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRP1_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES32TO63MASK) >> 8U); 674:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO63MASK */ 675:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 676:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES64TO95MASK) 677:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRP2_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES64TO95MASK) >> 16U); 678:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES64TO95MASK */ ARM GAS /tmp/ccXKI0RP.s page 14 679:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES32TO47MASK) 680:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRP2_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES32TO47MASK) >> 16U); 681:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO47MASK */ 682:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 683:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES96TO127MASK) 684:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES96TO127MASK) >> 24U); 685:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #elif defined(OB_WRP_PAGES48TO255MASK) 686:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO255MASK) >> 24U); 687:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #elif defined(OB_WRP_PAGES48TO511MASK) 688:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO511MASK) >> 24U); 689:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #elif defined(OB_WRP_PAGES48TO127MASK) 690:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO127MASK) >> 24U); 691:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES96TO127MASK */ 692:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 693:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 694:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 695:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 696:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if(status == HAL_OK) 697:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 698:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Clean the error context */ 699:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; 700:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 701:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* To be able to write again option byte, need to perform a option byte erase */ 702:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = HAL_FLASHEx_OBErase(); 703:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (status == HAL_OK) 704:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 705:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Enable write protection */ 706:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTPG); 707:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 708:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_WRP0_WRP0) 709:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if(WRP0_Data != 0xFFU) 710:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 711:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** OB->WRP0 &= WRP0_Data; 712:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 713:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 714:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 715:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 716:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_WRP0_WRP0 */ 717:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 718:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_WRP1_WRP1) 719:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if((status == HAL_OK) && (WRP1_Data != 0xFFU)) 720:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 721:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** OB->WRP1 &= WRP1_Data; 722:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 723:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 724:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 725:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 726:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_WRP1_WRP1 */ 727:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 728:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_WRP2_WRP2) 729:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if((status == HAL_OK) && (WRP2_Data != 0xFFU)) 730:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 731:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** OB->WRP2 &= WRP2_Data; 732:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 733:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 734:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 735:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } ARM GAS /tmp/ccXKI0RP.s page 15 736:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_WRP2_WRP2 */ 737:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 738:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_WRP3_WRP3) 739:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if((status == HAL_OK) && (WRP3_Data != 0xFFU)) 740:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 741:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** OB->WRP3 &= WRP3_Data; 742:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 743:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 744:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 745:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 746:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_WRP3_WRP3 */ 747:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 748:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* if the program operation is completed, disable the OPTPG Bit */ 749:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTPG); 750:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 751:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 752:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 753:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return status; 754:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 755:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 756:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 757:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @brief Disable the write protection of the desired pages 758:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @note An option byte erase is done automatically in this function. 759:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @note When the memory read protection level is selected (RDP level = 1), 760:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * it is not possible to program or erase the flash page i if 761:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * debug features are connected or boot code is executed in RAM, even if nWRPi = 1 762:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * 763:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @param WriteProtectPage specifies the page(s) to be write unprotected. 764:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * The value of this parameter depend on device used within the same series 765:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @retval HAL status 766:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 767:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_DisableWRP(uint32_t WriteProtectPage) 768:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 769:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; 770:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint16_t WRP0_Data = 0xFFFF; 771:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_WRP1_WRP1) 772:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint16_t WRP1_Data = 0xFFFF; 773:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_WRP1_WRP1 */ 774:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_WRP2_WRP2) 775:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint16_t WRP2_Data = 0xFFFF; 776:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_WRP2_WRP2 */ 777:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_WRP3_WRP3) 778:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint16_t WRP3_Data = 0xFFFF; 779:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_WRP3_WRP3 */ 780:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 781:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Check the parameters */ 782:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** assert_param(IS_OB_WRP(WriteProtectPage)); 783:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 784:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Get current write protected pages and the new pages to be unprotected ******/ 785:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WriteProtectPage = (FLASH_OB_GetWRP() | WriteProtectPage); 786:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 787:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES0TO15MASK) 788:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRP0_Data = (uint16_t)(WriteProtectPage & OB_WRP_PAGES0TO15MASK); 789:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #elif defined(OB_WRP_PAGES0TO31MASK) 790:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRP0_Data = (uint16_t)(WriteProtectPage & OB_WRP_PAGES0TO31MASK); 791:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES0TO31MASK */ 792:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** ARM GAS /tmp/ccXKI0RP.s page 16 793:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES16TO31MASK) 794:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRP1_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES16TO31MASK) >> 8U); 795:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #elif defined(OB_WRP_PAGES32TO63MASK) 796:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRP1_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES32TO63MASK) >> 8U); 797:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO63MASK */ 798:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 799:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES64TO95MASK) 800:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRP2_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES64TO95MASK) >> 16U); 801:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES64TO95MASK */ 802:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES32TO47MASK) 803:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRP2_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES32TO47MASK) >> 16U); 804:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO47MASK */ 805:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 806:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(OB_WRP_PAGES96TO127MASK) 807:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES96TO127MASK) >> 24U); 808:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #elif defined(OB_WRP_PAGES48TO255MASK) 809:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO255MASK) >> 24U); 810:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #elif defined(OB_WRP_PAGES48TO511MASK) 811:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO511MASK) >> 24U); 812:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #elif defined(OB_WRP_PAGES48TO127MASK) 813:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRP3_Data = (uint16_t)((WriteProtectPage & OB_WRP_PAGES48TO127MASK) >> 24U); 814:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES96TO127MASK */ 815:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 816:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 817:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 818:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 819:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 820:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if(status == HAL_OK) 821:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 822:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Clean the error context */ 823:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; 824:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 825:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* To be able to write again option byte, need to perform a option byte erase */ 826:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = HAL_FLASHEx_OBErase(); 827:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (status == HAL_OK) 828:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 829:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTPG); 830:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 831:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_WRP0_WRP0) 832:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if(WRP0_Data != 0xFFU) 833:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 834:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** OB->WRP0 |= WRP0_Data; 835:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 836:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 837:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 838:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 839:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_WRP0_WRP0 */ 840:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 841:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_WRP1_WRP1) 842:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if((status == HAL_OK) && (WRP1_Data != 0xFFU)) 843:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 844:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** OB->WRP1 |= WRP1_Data; 845:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 846:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 847:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 848:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 849:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_WRP1_WRP1 */ ARM GAS /tmp/ccXKI0RP.s page 17 850:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 851:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_WRP2_WRP2) 852:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if((status == HAL_OK) && (WRP2_Data != 0xFFU)) 853:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 854:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** OB->WRP2 |= WRP2_Data; 855:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 856:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 857:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 858:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 859:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_WRP2_WRP2 */ 860:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 861:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_WRP3_WRP3) 862:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if((status == HAL_OK) && (WRP3_Data != 0xFFU)) 863:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 864:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** OB->WRP3 |= WRP3_Data; 865:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 866:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 867:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 868:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 869:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_WRP3_WRP3 */ 870:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 871:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* if the program operation is completed, disable the OPTPG Bit */ 872:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTPG); 873:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 874:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 875:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return status; 876:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 877:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 878:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 879:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @brief Set the read protection level. 880:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @param ReadProtectLevel specifies the read protection level. 881:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * This parameter can be one of the following values: 882:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_0 No protection 883:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_1 Read protection of the memory 884:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @retval HAL status 885:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 886:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_RDP_LevelConfig(uint8_t ReadProtectLevel) 887:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 888:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; 889:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 890:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Check the parameters */ 891:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** assert_param(IS_OB_RDP_LEVEL(ReadProtectLevel)); 892:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 893:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 894:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 895:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 896:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if(status == HAL_OK) 897:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 898:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Clean the error context */ 899:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; 900:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 901:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* If the previous operation is completed, proceed to erase the option bytes */ 902:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTER); 903:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT); 904:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 905:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 906:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); ARM GAS /tmp/ccXKI0RP.s page 18 907:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 908:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the OPTER Bit */ 909:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTER); 910:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 911:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if(status == HAL_OK) 912:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 913:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Enable the Option Bytes Programming operation */ 914:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTPG); 915:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 916:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRITE_REG(OB->RDP, ReadProtectLevel); 917:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 918:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 919:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 920:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 921:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* if the program operation is completed, disable the OPTPG Bit */ 922:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTPG); 923:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 924:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 925:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 926:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return status; 927:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 928:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 929:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 930:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @brief Program the FLASH User Option Byte. 931:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @note Programming of the OB should be performed only after an erase (otherwise PGERR occurs) 932:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @param UserConfig The FLASH User Option Bytes values FLASH_OBR_IWDG_SW(Bit2), 933:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * FLASH_OBR_nRST_STOP(Bit3),FLASH_OBR_nRST_STDBY(Bit4). 934:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * And BFBF2(Bit5) for STM32F101xG and STM32F103xG . 935:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @retval HAL status 936:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 937:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_UserConfig(uint8_t UserConfig) 938:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 939:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; 940:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 941:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Check the parameters */ 942:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** assert_param(IS_OB_IWDG_SOURCE((UserConfig&OB_IWDG_SW))); 943:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** assert_param(IS_OB_STOP_SOURCE((UserConfig&OB_STOP_NO_RST))); 944:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** assert_param(IS_OB_STDBY_SOURCE((UserConfig&OB_STDBY_NO_RST))); 945:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_BANK2_END) 946:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** assert_param(IS_OB_BOOT1((UserConfig&OB_BOOT1_SET))); 947:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_BANK2_END */ 948:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 949:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 950:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 951:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 952:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if(status == HAL_OK) 953:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 954:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Clean the error context */ 955:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; 956:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 957:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Enable the Option Bytes Programming operation */ 958:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTPG); 959:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 960:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_BANK2_END) 961:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** OB->USER = (UserConfig | 0xF0U); 962:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #else 963:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** OB->USER = (UserConfig | 0x88U); ARM GAS /tmp/ccXKI0RP.s page 19 964:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_BANK2_END */ 965:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 966:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 967:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 968:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 969:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* if the program operation is completed, disable the OPTPG Bit */ 970:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTPG); 971:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 972:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 973:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return status; 974:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 975:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 976:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 977:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @brief Programs a half word at a specified Option Byte Data address. 978:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @note The function @ref HAL_FLASH_Unlock() should be called before to unlock the FLASH interf 979:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * The function @ref HAL_FLASH_OB_Unlock() should be called before to unlock the options b 980:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * The function @ref HAL_FLASH_OB_Launch() should be called after to force the reload of t 981:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * (system reset will occur) 982:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * Programming of the OB should be performed only after an erase (otherwise PGERR occurs) 983:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @param Address specifies the address to be programmed. 984:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * This parameter can be 0x1FFFF804 or 0x1FFFF806. 985:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @param Data specifies the data to be programmed. 986:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @retval HAL status 987:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 988:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_ProgramData(uint32_t Address, uint8_t Data) 989:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 990:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR; 991:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 992:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Check the parameters */ 993:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** assert_param(IS_OB_DATA_ADDRESS(Address)); 994:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 995:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 996:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 997:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 998:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if(status == HAL_OK) 999:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1000:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Clean the error context */ 1001:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; 1002:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1003:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Enables the Option Bytes Programming operation */ 1004:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTPG); 1005:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** *(__IO uint16_t*)Address = Data; 1006:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1007:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 1008:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 1009:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1010:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* If the program operation is completed, disable the OPTPG Bit */ 1011:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTPG); 1012:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1013:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Return the Option Byte Data Program Status */ 1014:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return status; 1015:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1016:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1017:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 1018:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @brief Return the FLASH Write Protection Option Bytes value. 1019:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @retval The FLASH Write Protection Option Bytes value 1020:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ ARM GAS /tmp/ccXKI0RP.s page 20 1021:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetWRP(void) 1022:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 67 .loc 1 1022 1 is_stmt 1 view -0 68 .cfi_startproc 69 @ args = 0, pretend = 0, frame = 0 70 @ frame_needed = 0, uses_anonymous_args = 0 71 @ link register save eliminated. 1023:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Return the FLASH write protection Register value */ 1024:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return (uint32_t)(READ_REG(FLASH->WRPR)); 72 .loc 1 1024 3 view .LVU9 73 .loc 1 1024 10 is_stmt 0 view .LVU10 74 0000 014B ldr r3, .L5 75 0002 186A ldr r0, [r3, #32] 1025:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 76 .loc 1 1025 1 view .LVU11 77 0004 7047 bx lr 78 .L6: 79 0006 00BF .align 2 80 .L5: 81 0008 00200240 .word 1073881088 82 .cfi_endproc 83 .LFE77: 85 .section .text.FLASH_OB_GetRDP,"ax",%progbits 86 .align 1 87 .syntax unified 88 .thumb 89 .thumb_func 90 .fpu softvfp 92 FLASH_OB_GetRDP: 93 .LFB78: 1026:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1027:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 1028:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @brief Returns the FLASH Read Protection level. 1029:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @retval FLASH RDP level 1030:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * This parameter can be one of the following values: 1031:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_0 No protection 1032:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @arg @ref OB_RDP_LEVEL_1 Read protection of the memory 1033:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 1034:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetRDP(void) 1035:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 94 .loc 1 1035 1 is_stmt 1 view -0 95 .cfi_startproc 96 @ args = 0, pretend = 0, frame = 0 97 @ frame_needed = 0, uses_anonymous_args = 0 98 @ link register save eliminated. 1036:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint32_t readstatus = OB_RDP_LEVEL_0; 99 .loc 1 1036 3 view .LVU13 100 .LVL1: 1037:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint32_t tmp_reg = 0U; 101 .loc 1 1037 3 view .LVU14 1038:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1039:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Read RDP level bits */ 1040:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** tmp_reg = READ_BIT(FLASH->OBR, FLASH_OBR_RDPRT); 102 .loc 1 1040 3 view .LVU15 103 .loc 1 1040 13 is_stmt 0 view .LVU16 104 0000 044B ldr r3, .L10 105 0002 DB69 ldr r3, [r3, #28] ARM GAS /tmp/ccXKI0RP.s page 21 106 .LVL2: 1041:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1042:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (tmp_reg == FLASH_OBR_RDPRT) 107 .loc 1 1042 3 is_stmt 1 view .LVU17 108 .loc 1 1042 6 is_stmt 0 view .LVU18 109 0004 13F0020F tst r3, #2 110 0008 01D0 beq .L9 1043:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1044:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** readstatus = OB_RDP_LEVEL_1; 111 .loc 1 1044 16 view .LVU19 112 000a 0020 movs r0, #0 113 000c 7047 bx lr 114 .L9: 1045:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1046:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** else 1047:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1048:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** readstatus = OB_RDP_LEVEL_0; 115 .loc 1 1048 16 view .LVU20 116 000e A520 movs r0, #165 1049:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1050:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1051:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return readstatus; 117 .loc 1 1051 3 is_stmt 1 view .LVU21 1052:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 118 .loc 1 1052 1 is_stmt 0 view .LVU22 119 0010 7047 bx lr 120 .L11: 121 0012 00BF .align 2 122 .L10: 123 0014 00200240 .word 1073881088 124 .cfi_endproc 125 .LFE78: 127 .section .text.FLASH_OB_GetUser,"ax",%progbits 128 .align 1 129 .syntax unified 130 .thumb 131 .thumb_func 132 .fpu softvfp 134 FLASH_OB_GetUser: 135 .LFB79: 1053:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1054:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 1055:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @brief Return the FLASH User Option Byte value. 1056:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @retval The FLASH User Option Bytes values: FLASH_OBR_IWDG_SW(Bit2), 1057:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * FLASH_OBR_nRST_STOP(Bit3),FLASH_OBR_nRST_STDBY(Bit4). 1058:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * And FLASH_OBR_BFB2(Bit5) for STM32F101xG and STM32F103xG . 1059:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 1060:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** static uint8_t FLASH_OB_GetUser(void) 1061:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 136 .loc 1 1061 1 is_stmt 1 view -0 137 .cfi_startproc 138 @ args = 0, pretend = 0, frame = 0 139 @ frame_needed = 0, uses_anonymous_args = 0 140 @ link register save eliminated. 1062:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Return the User Option Byte */ 1063:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return (uint8_t)((READ_REG(FLASH->OBR) & FLASH_OBR_USER) >> FLASH_POSITION_IWDGSW_BIT); 141 .loc 1 1063 3 view .LVU24 ARM GAS /tmp/ccXKI0RP.s page 22 142 .loc 1 1063 21 is_stmt 0 view .LVU25 143 0000 024B ldr r3, .L13 144 0002 D869 ldr r0, [r3, #28] 1064:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 145 .loc 1 1064 1 view .LVU26 146 0004 C0F38200 ubfx r0, r0, #2, #3 147 0008 7047 bx lr 148 .L14: 149 000a 00BF .align 2 150 .L13: 151 000c 00200240 .word 1073881088 152 .cfi_endproc 153 .LFE79: 155 .section .text.FLASH_OB_RDP_LevelConfig,"ax",%progbits 156 .align 1 157 .syntax unified 158 .thumb 159 .thumb_func 160 .fpu softvfp 162 FLASH_OB_RDP_LevelConfig: 163 .LVL3: 164 .LFB74: 887:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; 165 .loc 1 887 1 is_stmt 1 view -0 166 .cfi_startproc 167 @ args = 0, pretend = 0, frame = 0 168 @ frame_needed = 0, uses_anonymous_args = 0 887:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; 169 .loc 1 887 1 is_stmt 0 view .LVU28 170 0000 38B5 push {r3, r4, r5, lr} 171 .LCFI0: 172 .cfi_def_cfa_offset 16 173 .cfi_offset 3, -16 174 .cfi_offset 4, -12 175 .cfi_offset 5, -8 176 .cfi_offset 14, -4 177 0002 0546 mov r5, r0 888:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 178 .loc 1 888 3 is_stmt 1 view .LVU29 179 .LVL4: 891:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 180 .loc 1 891 3 view .LVU30 894:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 181 .loc 1 894 3 view .LVU31 894:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 182 .loc 1 894 12 is_stmt 0 view .LVU32 183 0004 4CF25030 movw r0, #50000 184 .LVL5: 894:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 185 .loc 1 894 12 view .LVU33 186 0008 FFF7FEFF bl FLASH_WaitForLastOperation 187 .LVL6: 896:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 188 .loc 1 896 3 is_stmt 1 view .LVU34 896:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 189 .loc 1 896 5 is_stmt 0 view .LVU35 190 000c 0346 mov r3, r0 ARM GAS /tmp/ccXKI0RP.s page 23 191 000e 08B1 cbz r0, .L18 192 .LVL7: 193 .L16: 926:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 194 .loc 1 926 3 is_stmt 1 view .LVU36 927:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 195 .loc 1 927 1 is_stmt 0 view .LVU37 196 0010 1846 mov r0, r3 197 0012 38BD pop {r3, r4, r5, pc} 198 .LVL8: 199 .L18: 899:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 200 .loc 1 899 5 is_stmt 1 view .LVU38 899:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 201 .loc 1 899 22 is_stmt 0 view .LVU39 202 0014 134B ldr r3, .L19 203 0016 0022 movs r2, #0 204 0018 DA61 str r2, [r3, #28] 902:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT); 205 .loc 1 902 5 is_stmt 1 view .LVU40 206 001a 134C ldr r4, .L19+4 207 001c 2369 ldr r3, [r4, #16] 208 001e 43F02003 orr r3, r3, #32 209 0022 2361 str r3, [r4, #16] 903:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 210 .loc 1 903 5 view .LVU41 211 0024 2369 ldr r3, [r4, #16] 212 0026 43F04003 orr r3, r3, #64 213 002a 2361 str r3, [r4, #16] 906:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 214 .loc 1 906 5 view .LVU42 906:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 215 .loc 1 906 14 is_stmt 0 view .LVU43 216 002c 4CF25030 movw r0, #50000 217 .LVL9: 906:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 218 .loc 1 906 14 view .LVU44 219 0030 FFF7FEFF bl FLASH_WaitForLastOperation 220 .LVL10: 909:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 221 .loc 1 909 5 is_stmt 1 view .LVU45 222 0034 2369 ldr r3, [r4, #16] 223 0036 23F02003 bic r3, r3, #32 224 003a 2361 str r3, [r4, #16] 911:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 225 .loc 1 911 5 view .LVU46 911:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 226 .loc 1 911 7 is_stmt 0 view .LVU47 227 003c 0346 mov r3, r0 228 003e 0028 cmp r0, #0 229 0040 E6D1 bne .L16 914:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 230 .loc 1 914 7 is_stmt 1 view .LVU48 231 0042 2369 ldr r3, [r4, #16] 232 0044 43F01003 orr r3, r3, #16 233 0048 2361 str r3, [r4, #16] 916:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** ARM GAS /tmp/ccXKI0RP.s page 24 234 .loc 1 916 7 view .LVU49 235 004a ADB2 uxth r5, r5 236 004c 074B ldr r3, .L19+8 237 004e 1D80 strh r5, [r3] @ movhi 919:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 238 .loc 1 919 7 view .LVU50 919:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 239 .loc 1 919 16 is_stmt 0 view .LVU51 240 0050 4CF25030 movw r0, #50000 241 .LVL11: 919:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 242 .loc 1 919 16 view .LVU52 243 0054 FFF7FEFF bl FLASH_WaitForLastOperation 244 .LVL12: 245 0058 0346 mov r3, r0 246 .LVL13: 922:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 247 .loc 1 922 7 is_stmt 1 view .LVU53 248 005a 2269 ldr r2, [r4, #16] 249 005c 22F01002 bic r2, r2, #16 250 0060 2261 str r2, [r4, #16] 251 0062 D5E7 b .L16 252 .L20: 253 .align 2 254 .L19: 255 0064 00000000 .word pFlash 256 0068 00200240 .word 1073881088 257 006c 00F8FF1F .word 536868864 258 .cfi_endproc 259 .LFE74: 261 .section .text.FLASH_OB_UserConfig,"ax",%progbits 262 .align 1 263 .syntax unified 264 .thumb 265 .thumb_func 266 .fpu softvfp 268 FLASH_OB_UserConfig: 269 .LVL14: 270 .LFB75: 938:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; 271 .loc 1 938 1 view -0 272 .cfi_startproc 273 @ args = 0, pretend = 0, frame = 0 274 @ frame_needed = 0, uses_anonymous_args = 0 938:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; 275 .loc 1 938 1 is_stmt 0 view .LVU55 276 0000 38B5 push {r3, r4, r5, lr} 277 .LCFI1: 278 .cfi_def_cfa_offset 16 279 .cfi_offset 3, -16 280 .cfi_offset 4, -12 281 .cfi_offset 5, -8 282 .cfi_offset 14, -4 283 0002 0446 mov r4, r0 939:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 284 .loc 1 939 3 is_stmt 1 view .LVU56 285 .LVL15: ARM GAS /tmp/ccXKI0RP.s page 25 942:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** assert_param(IS_OB_STOP_SOURCE((UserConfig&OB_STOP_NO_RST))); 286 .loc 1 942 3 view .LVU57 943:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** assert_param(IS_OB_STDBY_SOURCE((UserConfig&OB_STDBY_NO_RST))); 287 .loc 1 943 3 view .LVU58 944:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_BANK2_END) 288 .loc 1 944 3 view .LVU59 950:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 289 .loc 1 950 3 view .LVU60 950:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 290 .loc 1 950 12 is_stmt 0 view .LVU61 291 0004 4CF25030 movw r0, #50000 292 .LVL16: 950:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 293 .loc 1 950 12 view .LVU62 294 0008 FFF7FEFF bl FLASH_WaitForLastOperation 295 .LVL17: 952:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 296 .loc 1 952 3 is_stmt 1 view .LVU63 952:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 297 .loc 1 952 5 is_stmt 0 view .LVU64 298 000c 0346 mov r3, r0 299 000e 08B1 cbz r0, .L24 300 .LVL18: 301 .L22: 973:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 302 .loc 1 973 3 is_stmt 1 view .LVU65 974:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 303 .loc 1 974 1 is_stmt 0 view .LVU66 304 0010 1846 mov r0, r3 305 0012 38BD pop {r3, r4, r5, pc} 306 .LVL19: 307 .L24: 955:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 308 .loc 1 955 5 is_stmt 1 view .LVU67 955:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 309 .loc 1 955 22 is_stmt 0 view .LVU68 310 0014 0A4B ldr r3, .L25 311 0016 0022 movs r2, #0 312 0018 DA61 str r2, [r3, #28] 958:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 313 .loc 1 958 5 is_stmt 1 view .LVU69 314 001a 0A4D ldr r5, .L25+4 315 001c 2B69 ldr r3, [r5, #16] 316 001e 43F01003 orr r3, r3, #16 317 0022 2B61 str r3, [r5, #16] 963:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_BANK2_END */ 318 .loc 1 963 5 view .LVU70 963:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_BANK2_END */ 319 .loc 1 963 14 is_stmt 0 view .LVU71 320 0024 44F08804 orr r4, r4, #136 321 0028 074B ldr r3, .L25+8 322 002a 5C80 strh r4, [r3, #2] @ movhi 967:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 323 .loc 1 967 5 is_stmt 1 view .LVU72 967:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 324 .loc 1 967 14 is_stmt 0 view .LVU73 325 002c 4CF25030 movw r0, #50000 ARM GAS /tmp/ccXKI0RP.s page 26 326 .LVL20: 967:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 327 .loc 1 967 14 view .LVU74 328 0030 FFF7FEFF bl FLASH_WaitForLastOperation 329 .LVL21: 330 0034 0346 mov r3, r0 331 .LVL22: 970:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 332 .loc 1 970 5 is_stmt 1 view .LVU75 333 0036 2A69 ldr r2, [r5, #16] 334 0038 22F01002 bic r2, r2, #16 335 003c 2A61 str r2, [r5, #16] 336 003e E7E7 b .L22 337 .L26: 338 .align 2 339 .L25: 340 0040 00000000 .word pFlash 341 0044 00200240 .word 1073881088 342 0048 00F8FF1F .word 536868864 343 .cfi_endproc 344 .LFE75: 346 .section .text.FLASH_OB_ProgramData,"ax",%progbits 347 .align 1 348 .syntax unified 349 .thumb 350 .thumb_func 351 .fpu softvfp 353 FLASH_OB_ProgramData: 354 .LVL23: 355 .LFB76: 989:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR; 356 .loc 1 989 1 view -0 357 .cfi_startproc 358 @ args = 0, pretend = 0, frame = 0 359 @ frame_needed = 0, uses_anonymous_args = 0 989:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR; 360 .loc 1 989 1 is_stmt 0 view .LVU77 361 0000 70B5 push {r4, r5, r6, lr} 362 .LCFI2: 363 .cfi_def_cfa_offset 16 364 .cfi_offset 4, -16 365 .cfi_offset 5, -12 366 .cfi_offset 6, -8 367 .cfi_offset 14, -4 368 0002 0646 mov r6, r0 369 0004 0C46 mov r4, r1 990:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 370 .loc 1 990 3 is_stmt 1 view .LVU78 371 .LVL24: 993:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 372 .loc 1 993 3 view .LVU79 996:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 373 .loc 1 996 3 view .LVU80 996:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 374 .loc 1 996 12 is_stmt 0 view .LVU81 375 0006 4CF25030 movw r0, #50000 376 .LVL25: ARM GAS /tmp/ccXKI0RP.s page 27 996:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 377 .loc 1 996 12 view .LVU82 378 000a FFF7FEFF bl FLASH_WaitForLastOperation 379 .LVL26: 998:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 380 .loc 1 998 3 is_stmt 1 view .LVU83 998:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 381 .loc 1 998 5 is_stmt 0 view .LVU84 382 000e 0346 mov r3, r0 383 0010 08B1 cbz r0, .L30 384 .LVL27: 385 .L28: 1014:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 386 .loc 1 1014 3 is_stmt 1 view .LVU85 1015:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 387 .loc 1 1015 1 is_stmt 0 view .LVU86 388 0012 1846 mov r0, r3 389 0014 70BD pop {r4, r5, r6, pc} 390 .LVL28: 391 .L30: 1001:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 392 .loc 1 1001 5 is_stmt 1 view .LVU87 1001:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 393 .loc 1 1001 22 is_stmt 0 view .LVU88 394 0016 0A4B ldr r3, .L31 395 0018 0022 movs r2, #0 396 001a DA61 str r2, [r3, #28] 1004:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** *(__IO uint16_t*)Address = Data; 397 .loc 1 1004 5 is_stmt 1 view .LVU89 398 001c 094D ldr r5, .L31+4 399 001e 2B69 ldr r3, [r5, #16] 400 0020 43F01003 orr r3, r3, #16 401 0024 2B61 str r3, [r5, #16] 1005:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 402 .loc 1 1005 5 view .LVU90 1005:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 403 .loc 1 1005 30 is_stmt 0 view .LVU91 404 0026 A4B2 uxth r4, r4 405 0028 3480 strh r4, [r6] @ movhi 1008:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 406 .loc 1 1008 5 is_stmt 1 view .LVU92 1008:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 407 .loc 1 1008 14 is_stmt 0 view .LVU93 408 002a 4CF25030 movw r0, #50000 409 .LVL29: 1008:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 410 .loc 1 1008 14 view .LVU94 411 002e FFF7FEFF bl FLASH_WaitForLastOperation 412 .LVL30: 413 0032 0346 mov r3, r0 414 .LVL31: 1011:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 415 .loc 1 1011 5 is_stmt 1 view .LVU95 416 0034 2A69 ldr r2, [r5, #16] 417 0036 22F01002 bic r2, r2, #16 418 003a 2A61 str r2, [r5, #16] 419 003c E9E7 b .L28 ARM GAS /tmp/ccXKI0RP.s page 28 420 .L32: 421 003e 00BF .align 2 422 .L31: 423 0040 00000000 .word pFlash 424 0044 00200240 .word 1073881088 425 .cfi_endproc 426 .LFE76: 428 .section .text.HAL_FLASHEx_OBErase,"ax",%progbits 429 .align 1 430 .global HAL_FLASHEx_OBErase 431 .syntax unified 432 .thumb 433 .thumb_func 434 .fpu softvfp 436 HAL_FLASHEx_OBErase: 437 .LFB67: 398:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint8_t rdptmp = OB_RDP_LEVEL_0; 438 .loc 1 398 1 view -0 439 .cfi_startproc 440 @ args = 0, pretend = 0, frame = 0 441 @ frame_needed = 0, uses_anonymous_args = 0 442 0000 38B5 push {r3, r4, r5, lr} 443 .LCFI3: 444 .cfi_def_cfa_offset 16 445 .cfi_offset 3, -16 446 .cfi_offset 4, -12 447 .cfi_offset 5, -8 448 .cfi_offset 14, -4 399:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR; 449 .loc 1 399 3 view .LVU97 450 .LVL32: 400:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 451 .loc 1 400 3 view .LVU98 403:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 452 .loc 1 403 3 view .LVU99 403:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 453 .loc 1 403 12 is_stmt 0 view .LVU100 454 0002 FFF7FEFF bl FLASH_OB_GetRDP 455 .LVL33: 403:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 456 .loc 1 403 10 view .LVU101 457 0006 C5B2 uxtb r5, r0 458 .LVL34: 406:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 459 .loc 1 406 3 is_stmt 1 view .LVU102 406:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 460 .loc 1 406 12 is_stmt 0 view .LVU103 461 0008 4CF25030 movw r0, #50000 462 000c FFF7FEFF bl FLASH_WaitForLastOperation 463 .LVL35: 408:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 464 .loc 1 408 3 is_stmt 1 view .LVU104 408:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 465 .loc 1 408 5 is_stmt 0 view .LVU105 466 0010 0346 mov r3, r0 467 0012 08B1 cbz r0, .L36 468 .LVL36: ARM GAS /tmp/ccXKI0RP.s page 29 469 .L34: 431:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 470 .loc 1 431 3 is_stmt 1 view .LVU106 432:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 471 .loc 1 432 1 is_stmt 0 view .LVU107 472 0014 1846 mov r0, r3 473 0016 38BD pop {r3, r4, r5, pc} 474 .LVL37: 475 .L36: 411:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 476 .loc 1 411 5 is_stmt 1 view .LVU108 411:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 477 .loc 1 411 22 is_stmt 0 view .LVU109 478 0018 0D4B ldr r3, .L37 479 001a 0022 movs r2, #0 480 001c DA61 str r2, [r3, #28] 414:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT); 481 .loc 1 414 5 is_stmt 1 view .LVU110 482 001e 0D4C ldr r4, .L37+4 483 0020 2369 ldr r3, [r4, #16] 484 0022 43F02003 orr r3, r3, #32 485 0026 2361 str r3, [r4, #16] 415:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 486 .loc 1 415 5 view .LVU111 487 0028 2369 ldr r3, [r4, #16] 488 002a 43F04003 orr r3, r3, #64 489 002e 2361 str r3, [r4, #16] 418:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 490 .loc 1 418 5 view .LVU112 418:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 491 .loc 1 418 14 is_stmt 0 view .LVU113 492 0030 4CF25030 movw r0, #50000 493 .LVL38: 418:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 494 .loc 1 418 14 view .LVU114 495 0034 FFF7FEFF bl FLASH_WaitForLastOperation 496 .LVL39: 421:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 497 .loc 1 421 5 is_stmt 1 view .LVU115 498 0038 2369 ldr r3, [r4, #16] 499 003a 23F02003 bic r3, r3, #32 500 003e 2361 str r3, [r4, #16] 423:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 501 .loc 1 423 5 view .LVU116 423:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 502 .loc 1 423 7 is_stmt 0 view .LVU117 503 0040 0346 mov r3, r0 504 0042 0028 cmp r0, #0 505 0044 E6D1 bne .L34 426:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 506 .loc 1 426 7 is_stmt 1 view .LVU118 426:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 507 .loc 1 426 16 is_stmt 0 view .LVU119 508 0046 2846 mov r0, r5 509 .LVL40: 426:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 510 .loc 1 426 16 view .LVU120 ARM GAS /tmp/ccXKI0RP.s page 30 511 0048 FFF7FEFF bl FLASH_OB_RDP_LevelConfig 512 .LVL41: 513 004c 0346 mov r3, r0 514 .LVL42: 426:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 515 .loc 1 426 16 view .LVU121 516 004e E1E7 b .L34 517 .L38: 518 .align 2 519 .L37: 520 0050 00000000 .word pFlash 521 0054 00200240 .word 1073881088 522 .cfi_endproc 523 .LFE67: 525 .section .text.FLASH_OB_EnableWRP,"ax",%progbits 526 .align 1 527 .syntax unified 528 .thumb 529 .thumb_func 530 .fpu softvfp 532 FLASH_OB_EnableWRP: 533 .LVL43: 534 .LFB72: 645:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; 535 .loc 1 645 1 is_stmt 1 view -0 536 .cfi_startproc 537 @ args = 0, pretend = 0, frame = 0 538 @ frame_needed = 0, uses_anonymous_args = 0 645:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; 539 .loc 1 645 1 is_stmt 0 view .LVU123 540 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 541 .LCFI4: 542 .cfi_def_cfa_offset 24 543 .cfi_offset 3, -24 544 .cfi_offset 4, -20 545 .cfi_offset 5, -16 546 .cfi_offset 6, -12 547 .cfi_offset 7, -8 548 .cfi_offset 14, -4 549 0002 0446 mov r4, r0 646:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint16_t WRP0_Data = 0xFFFF; 550 .loc 1 646 3 is_stmt 1 view .LVU124 551 .LVL44: 647:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_WRP1_WRP1) 552 .loc 1 647 3 view .LVU125 649:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_WRP1_WRP1 */ 553 .loc 1 649 3 view .LVU126 652:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_WRP2_WRP2 */ 554 .loc 1 652 3 view .LVU127 655:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_WRP3_WRP3 */ 555 .loc 1 655 3 view .LVU128 659:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 556 .loc 1 659 3 view .LVU129 662:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 557 .loc 1 662 3 view .LVU130 662:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 558 .loc 1 662 37 is_stmt 0 view .LVU131 ARM GAS /tmp/ccXKI0RP.s page 31 559 0004 FFF7FEFF bl FLASH_OB_GetWRP 560 .LVL45: 662:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 561 .loc 1 662 20 view .LVU132 562 0008 20EA0404 bic r4, r0, r4 563 .LVL46: 667:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES0TO31MASK */ 564 .loc 1 667 3 is_stmt 1 view .LVU133 673:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO63MASK */ 565 .loc 1 673 3 view .LVU134 673:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO63MASK */ 566 .loc 1 673 13 is_stmt 0 view .LVU135 567 000c C4F30727 ubfx r7, r4, #8, #8 568 .LVL47: 677:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES64TO95MASK */ 569 .loc 1 677 3 is_stmt 1 view .LVU136 677:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES64TO95MASK */ 570 .loc 1 677 13 is_stmt 0 view .LVU137 571 0010 C4F30746 ubfx r6, r4, #16, #8 572 .LVL48: 684:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #elif defined(OB_WRP_PAGES48TO255MASK) 573 .loc 1 684 3 is_stmt 1 view .LVU138 694:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 574 .loc 1 694 3 view .LVU139 694:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 575 .loc 1 694 12 is_stmt 0 view .LVU140 576 0014 4CF25030 movw r0, #50000 577 0018 FFF7FEFF bl FLASH_WaitForLastOperation 578 .LVL49: 696:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 579 .loc 1 696 3 is_stmt 1 view .LVU141 696:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 580 .loc 1 696 5 is_stmt 0 view .LVU142 581 001c 0346 mov r3, r0 582 001e 08B1 cbz r0, .L46 583 .LVL50: 584 .L40: 753:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 585 .loc 1 753 3 is_stmt 1 view .LVU143 754:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 586 .loc 1 754 1 is_stmt 0 view .LVU144 587 0020 1846 mov r0, r3 588 0022 F8BD pop {r3, r4, r5, r6, r7, pc} 589 .LVL51: 590 .L46: 754:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 591 .loc 1 754 1 view .LVU145 592 0024 E5B2 uxtb r5, r4 593 0026 240E lsrs r4, r4, #24 594 .LVL52: 699:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 595 .loc 1 699 5 is_stmt 1 view .LVU146 699:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 596 .loc 1 699 22 is_stmt 0 view .LVU147 597 0028 224B ldr r3, .L51 598 002a 0022 movs r2, #0 599 002c DA61 str r2, [r3, #28] ARM GAS /tmp/ccXKI0RP.s page 32 702:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (status == HAL_OK) 600 .loc 1 702 5 is_stmt 1 view .LVU148 702:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (status == HAL_OK) 601 .loc 1 702 14 is_stmt 0 view .LVU149 602 002e FFF7FEFF bl HAL_FLASHEx_OBErase 603 .LVL53: 703:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 604 .loc 1 703 5 is_stmt 1 view .LVU150 703:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 605 .loc 1 703 8 is_stmt 0 view .LVU151 606 0032 0346 mov r3, r0 607 0034 0028 cmp r0, #0 608 0036 F3D1 bne .L40 706:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 609 .loc 1 706 7 is_stmt 1 view .LVU152 610 0038 1F49 ldr r1, .L51+4 611 003a 0A69 ldr r2, [r1, #16] 612 003c 42F01002 orr r2, r2, #16 613 0040 0A61 str r2, [r1, #16] 709:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 614 .loc 1 709 7 view .LVU153 709:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 615 .loc 1 709 9 is_stmt 0 view .LVU154 616 0042 FF2D cmp r5, #255 617 0044 0ED1 bne .L47 618 .LVL54: 619 .L41: 719:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 620 .loc 1 719 7 is_stmt 1 view .LVU155 719:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 621 .loc 1 719 9 is_stmt 0 view .LVU156 622 0046 0BB9 cbnz r3, .L42 719:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 623 .loc 1 719 29 discriminator 1 view .LVU157 624 0048 FF2F cmp r7, #255 625 004a 15D1 bne .L48 626 .LVL55: 627 .L42: 729:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 628 .loc 1 729 7 is_stmt 1 view .LVU158 729:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 629 .loc 1 729 9 is_stmt 0 view .LVU159 630 004c 0BB9 cbnz r3, .L43 729:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 631 .loc 1 729 29 discriminator 1 view .LVU160 632 004e FF2E cmp r6, #255 633 0050 1CD1 bne .L49 634 .LVL56: 635 .L43: 739:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 636 .loc 1 739 7 is_stmt 1 view .LVU161 739:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 637 .loc 1 739 9 is_stmt 0 view .LVU162 638 0052 0BB9 cbnz r3, .L44 739:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 639 .loc 1 739 29 discriminator 1 view .LVU163 640 0054 FF2C cmp r4, #255 ARM GAS /tmp/ccXKI0RP.s page 33 641 0056 23D1 bne .L50 642 .L44: 749:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 643 .loc 1 749 7 is_stmt 1 view .LVU164 644 0058 1749 ldr r1, .L51+4 645 005a 0A69 ldr r2, [r1, #16] 646 005c 22F01002 bic r2, r2, #16 647 0060 0A61 str r2, [r1, #16] 648 0062 DDE7 b .L40 649 .LVL57: 650 .L47: 711:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 651 .loc 1 711 9 view .LVU165 711:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 652 .loc 1 711 18 is_stmt 0 view .LVU166 653 0064 154B ldr r3, .L51+8 654 0066 1A89 ldrh r2, [r3, #8] 655 0068 1540 ands r5, r5, r2 656 .LVL58: 711:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 657 .loc 1 711 18 view .LVU167 658 006a 1D81 strh r5, [r3, #8] @ movhi 714:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 659 .loc 1 714 9 is_stmt 1 view .LVU168 714:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 660 .loc 1 714 18 is_stmt 0 view .LVU169 661 006c 4CF25030 movw r0, #50000 662 .LVL59: 714:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 663 .loc 1 714 18 view .LVU170 664 0070 FFF7FEFF bl FLASH_WaitForLastOperation 665 .LVL60: 666 0074 0346 mov r3, r0 667 .LVL61: 714:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 668 .loc 1 714 18 view .LVU171 669 0076 E6E7 b .L41 670 .L48: 721:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 671 .loc 1 721 9 is_stmt 1 view .LVU172 721:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 672 .loc 1 721 18 is_stmt 0 view .LVU173 673 0078 104B ldr r3, .L51+8 674 .LVL62: 721:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 675 .loc 1 721 18 view .LVU174 676 007a 5A89 ldrh r2, [r3, #10] 677 007c 1740 ands r7, r7, r2 678 .LVL63: 721:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 679 .loc 1 721 18 view .LVU175 680 007e 5F81 strh r7, [r3, #10] @ movhi 724:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 681 .loc 1 724 9 is_stmt 1 view .LVU176 724:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 682 .loc 1 724 18 is_stmt 0 view .LVU177 683 0080 4CF25030 movw r0, #50000 ARM GAS /tmp/ccXKI0RP.s page 34 684 0084 FFF7FEFF bl FLASH_WaitForLastOperation 685 .LVL64: 686 0088 0346 mov r3, r0 687 .LVL65: 724:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 688 .loc 1 724 18 view .LVU178 689 008a DFE7 b .L42 690 .L49: 731:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 691 .loc 1 731 9 is_stmt 1 view .LVU179 731:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 692 .loc 1 731 18 is_stmt 0 view .LVU180 693 008c 0B4B ldr r3, .L51+8 694 .LVL66: 731:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 695 .loc 1 731 18 view .LVU181 696 008e 9A89 ldrh r2, [r3, #12] 697 0090 1640 ands r6, r6, r2 698 .LVL67: 731:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 699 .loc 1 731 18 view .LVU182 700 0092 9E81 strh r6, [r3, #12] @ movhi 734:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 701 .loc 1 734 9 is_stmt 1 view .LVU183 734:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 702 .loc 1 734 18 is_stmt 0 view .LVU184 703 0094 4CF25030 movw r0, #50000 704 0098 FFF7FEFF bl FLASH_WaitForLastOperation 705 .LVL68: 706 009c 0346 mov r3, r0 707 .LVL69: 734:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 708 .loc 1 734 18 view .LVU185 709 009e D8E7 b .L43 710 .L50: 741:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 711 .loc 1 741 9 is_stmt 1 view .LVU186 741:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 712 .loc 1 741 18 is_stmt 0 view .LVU187 713 00a0 064B ldr r3, .L51+8 714 .LVL70: 741:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 715 .loc 1 741 18 view .LVU188 716 00a2 D889 ldrh r0, [r3, #14] 717 00a4 2040 ands r0, r0, r4 718 00a6 D881 strh r0, [r3, #14] @ movhi 744:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 719 .loc 1 744 9 is_stmt 1 view .LVU189 744:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 720 .loc 1 744 18 is_stmt 0 view .LVU190 721 00a8 4CF25030 movw r0, #50000 722 00ac FFF7FEFF bl FLASH_WaitForLastOperation 723 .LVL71: 724 00b0 0346 mov r3, r0 725 .LVL72: 744:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 726 .loc 1 744 18 view .LVU191 ARM GAS /tmp/ccXKI0RP.s page 35 727 00b2 D1E7 b .L44 728 .L52: 729 .align 2 730 .L51: 731 00b4 00000000 .word pFlash 732 00b8 00200240 .word 1073881088 733 00bc 00F8FF1F .word 536868864 734 .cfi_endproc 735 .LFE72: 737 .section .text.FLASH_OB_DisableWRP,"ax",%progbits 738 .align 1 739 .syntax unified 740 .thumb 741 .thumb_func 742 .fpu softvfp 744 FLASH_OB_DisableWRP: 745 .LVL73: 746 .LFB73: 768:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; 747 .loc 1 768 1 is_stmt 1 view -0 748 .cfi_startproc 749 @ args = 0, pretend = 0, frame = 0 750 @ frame_needed = 0, uses_anonymous_args = 0 768:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; 751 .loc 1 768 1 is_stmt 0 view .LVU193 752 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 753 .LCFI5: 754 .cfi_def_cfa_offset 24 755 .cfi_offset 3, -24 756 .cfi_offset 4, -20 757 .cfi_offset 5, -16 758 .cfi_offset 6, -12 759 .cfi_offset 7, -8 760 .cfi_offset 14, -4 761 0002 0446 mov r4, r0 769:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint16_t WRP0_Data = 0xFFFF; 762 .loc 1 769 3 is_stmt 1 view .LVU194 763 .LVL74: 770:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_WRP1_WRP1) 764 .loc 1 770 3 view .LVU195 772:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_WRP1_WRP1 */ 765 .loc 1 772 3 view .LVU196 775:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_WRP2_WRP2 */ 766 .loc 1 775 3 view .LVU197 778:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_WRP3_WRP3 */ 767 .loc 1 778 3 view .LVU198 782:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 768 .loc 1 782 3 view .LVU199 785:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 769 .loc 1 785 3 view .LVU200 785:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 770 .loc 1 785 23 is_stmt 0 view .LVU201 771 0004 FFF7FEFF bl FLASH_OB_GetWRP 772 .LVL75: 785:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 773 .loc 1 785 20 view .LVU202 774 0008 0443 orrs r4, r4, r0 ARM GAS /tmp/ccXKI0RP.s page 36 775 .LVL76: 790:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES0TO31MASK */ 776 .loc 1 790 3 is_stmt 1 view .LVU203 796:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO63MASK */ 777 .loc 1 796 3 view .LVU204 796:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES32TO63MASK */ 778 .loc 1 796 13 is_stmt 0 view .LVU205 779 000a C4F30727 ubfx r7, r4, #8, #8 780 .LVL77: 800:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES64TO95MASK */ 781 .loc 1 800 3 is_stmt 1 view .LVU206 800:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* OB_WRP_PAGES64TO95MASK */ 782 .loc 1 800 13 is_stmt 0 view .LVU207 783 000e C4F30746 ubfx r6, r4, #16, #8 784 .LVL78: 807:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #elif defined(OB_WRP_PAGES48TO255MASK) 785 .loc 1 807 3 is_stmt 1 view .LVU208 818:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 786 .loc 1 818 3 view .LVU209 818:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 787 .loc 1 818 12 is_stmt 0 view .LVU210 788 0012 4CF25030 movw r0, #50000 789 0016 FFF7FEFF bl FLASH_WaitForLastOperation 790 .LVL79: 820:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 791 .loc 1 820 3 is_stmt 1 view .LVU211 820:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 792 .loc 1 820 5 is_stmt 0 view .LVU212 793 001a 0346 mov r3, r0 794 001c 08B1 cbz r0, .L60 795 .LVL80: 796 .L54: 875:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 797 .loc 1 875 3 is_stmt 1 view .LVU213 876:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 798 .loc 1 876 1 is_stmt 0 view .LVU214 799 001e 1846 mov r0, r3 800 0020 F8BD pop {r3, r4, r5, r6, r7, pc} 801 .LVL81: 802 .L60: 876:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 803 .loc 1 876 1 view .LVU215 804 0022 E5B2 uxtb r5, r4 805 0024 240E lsrs r4, r4, #24 806 .LVL82: 823:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 807 .loc 1 823 5 is_stmt 1 view .LVU216 823:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 808 .loc 1 823 22 is_stmt 0 view .LVU217 809 0026 234B ldr r3, .L65 810 0028 0022 movs r2, #0 811 002a DA61 str r2, [r3, #28] 826:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (status == HAL_OK) 812 .loc 1 826 5 is_stmt 1 view .LVU218 826:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (status == HAL_OK) 813 .loc 1 826 14 is_stmt 0 view .LVU219 814 002c FFF7FEFF bl HAL_FLASHEx_OBErase ARM GAS /tmp/ccXKI0RP.s page 37 815 .LVL83: 827:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 816 .loc 1 827 5 is_stmt 1 view .LVU220 827:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 817 .loc 1 827 8 is_stmt 0 view .LVU221 818 0030 0346 mov r3, r0 819 0032 0028 cmp r0, #0 820 0034 F3D1 bne .L54 829:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 821 .loc 1 829 7 is_stmt 1 view .LVU222 822 0036 2049 ldr r1, .L65+4 823 0038 0A69 ldr r2, [r1, #16] 824 003a 42F01002 orr r2, r2, #16 825 003e 0A61 str r2, [r1, #16] 832:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 826 .loc 1 832 7 view .LVU223 832:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 827 .loc 1 832 9 is_stmt 0 view .LVU224 828 0040 FF2D cmp r5, #255 829 0042 0ED1 bne .L61 830 .LVL84: 831 .L55: 842:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 832 .loc 1 842 7 is_stmt 1 view .LVU225 842:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 833 .loc 1 842 9 is_stmt 0 view .LVU226 834 0044 0BB9 cbnz r3, .L56 842:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 835 .loc 1 842 29 discriminator 1 view .LVU227 836 0046 FF2F cmp r7, #255 837 0048 15D1 bne .L62 838 .LVL85: 839 .L56: 852:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 840 .loc 1 852 7 is_stmt 1 view .LVU228 852:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 841 .loc 1 852 9 is_stmt 0 view .LVU229 842 004a 0BB9 cbnz r3, .L57 852:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 843 .loc 1 852 29 discriminator 1 view .LVU230 844 004c FF2E cmp r6, #255 845 004e 1CD1 bne .L63 846 .LVL86: 847 .L57: 862:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 848 .loc 1 862 7 is_stmt 1 view .LVU231 862:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 849 .loc 1 862 9 is_stmt 0 view .LVU232 850 0050 0BB9 cbnz r3, .L58 862:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 851 .loc 1 862 29 discriminator 1 view .LVU233 852 0052 FF2C cmp r4, #255 853 0054 23D1 bne .L64 854 .L58: 872:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 855 .loc 1 872 7 is_stmt 1 view .LVU234 856 0056 1849 ldr r1, .L65+4 ARM GAS /tmp/ccXKI0RP.s page 38 857 0058 0A69 ldr r2, [r1, #16] 858 005a 22F01002 bic r2, r2, #16 859 005e 0A61 str r2, [r1, #16] 860 0060 DDE7 b .L54 861 .LVL87: 862 .L61: 834:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 863 .loc 1 834 9 view .LVU235 834:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 864 .loc 1 834 18 is_stmt 0 view .LVU236 865 0062 164B ldr r3, .L65+8 866 0064 1A89 ldrh r2, [r3, #8] 867 0066 1543 orrs r5, r5, r2 868 .LVL88: 834:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 869 .loc 1 834 18 view .LVU237 870 0068 1D81 strh r5, [r3, #8] @ movhi 837:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 871 .loc 1 837 9 is_stmt 1 view .LVU238 837:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 872 .loc 1 837 18 is_stmt 0 view .LVU239 873 006a 4CF25030 movw r0, #50000 874 .LVL89: 837:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 875 .loc 1 837 18 view .LVU240 876 006e FFF7FEFF bl FLASH_WaitForLastOperation 877 .LVL90: 878 0072 0346 mov r3, r0 879 .LVL91: 837:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 880 .loc 1 837 18 view .LVU241 881 0074 E6E7 b .L55 882 .L62: 844:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 883 .loc 1 844 9 is_stmt 1 view .LVU242 844:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 884 .loc 1 844 18 is_stmt 0 view .LVU243 885 0076 114B ldr r3, .L65+8 886 .LVL92: 844:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 887 .loc 1 844 18 view .LVU244 888 0078 5A89 ldrh r2, [r3, #10] 889 007a 1743 orrs r7, r7, r2 890 .LVL93: 844:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 891 .loc 1 844 18 view .LVU245 892 007c 5F81 strh r7, [r3, #10] @ movhi 847:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 893 .loc 1 847 9 is_stmt 1 view .LVU246 847:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 894 .loc 1 847 18 is_stmt 0 view .LVU247 895 007e 4CF25030 movw r0, #50000 896 0082 FFF7FEFF bl FLASH_WaitForLastOperation 897 .LVL94: 898 0086 0346 mov r3, r0 899 .LVL95: 847:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } ARM GAS /tmp/ccXKI0RP.s page 39 900 .loc 1 847 18 view .LVU248 901 0088 DFE7 b .L56 902 .L63: 854:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 903 .loc 1 854 9 is_stmt 1 view .LVU249 854:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 904 .loc 1 854 18 is_stmt 0 view .LVU250 905 008a 0C4B ldr r3, .L65+8 906 .LVL96: 854:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 907 .loc 1 854 18 view .LVU251 908 008c 9A89 ldrh r2, [r3, #12] 909 008e 1643 orrs r6, r6, r2 910 .LVL97: 854:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 911 .loc 1 854 18 view .LVU252 912 0090 9E81 strh r6, [r3, #12] @ movhi 857:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 913 .loc 1 857 9 is_stmt 1 view .LVU253 857:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 914 .loc 1 857 18 is_stmt 0 view .LVU254 915 0092 4CF25030 movw r0, #50000 916 0096 FFF7FEFF bl FLASH_WaitForLastOperation 917 .LVL98: 918 009a 0346 mov r3, r0 919 .LVL99: 857:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 920 .loc 1 857 18 view .LVU255 921 009c D8E7 b .L57 922 .L64: 864:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 923 .loc 1 864 9 is_stmt 1 view .LVU256 864:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 924 .loc 1 864 18 is_stmt 0 view .LVU257 925 009e 074B ldr r3, .L65+8 926 .LVL100: 864:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 927 .loc 1 864 18 view .LVU258 928 00a0 D889 ldrh r0, [r3, #14] 929 00a2 2043 orrs r0, r0, r4 930 00a4 D881 strh r0, [r3, #14] @ movhi 867:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 931 .loc 1 867 9 is_stmt 1 view .LVU259 867:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 932 .loc 1 867 18 is_stmt 0 view .LVU260 933 00a6 4CF25030 movw r0, #50000 934 00aa FFF7FEFF bl FLASH_WaitForLastOperation 935 .LVL101: 936 00ae 0346 mov r3, r0 937 .LVL102: 867:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 938 .loc 1 867 18 view .LVU261 939 00b0 D1E7 b .L58 940 .L66: 941 00b2 00BF .align 2 942 .L65: 943 00b4 00000000 .word pFlash ARM GAS /tmp/ccXKI0RP.s page 40 944 00b8 00200240 .word 1073881088 945 00bc 00F8FF1F .word 536868864 946 .cfi_endproc 947 .LFE73: 949 .section .text.HAL_FLASHEx_OBProgram,"ax",%progbits 950 .align 1 951 .global HAL_FLASHEx_OBProgram 952 .syntax unified 953 .thumb 954 .thumb_func 955 .fpu softvfp 957 HAL_FLASHEx_OBProgram: 958 .LVL103: 959 .LFB68: 447:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR; 960 .loc 1 447 1 is_stmt 1 view -0 961 .cfi_startproc 962 @ args = 0, pretend = 0, frame = 0 963 @ frame_needed = 0, uses_anonymous_args = 0 448:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 964 .loc 1 448 3 view .LVU263 451:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 965 .loc 1 451 3 view .LVU264 451:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 966 .loc 1 451 3 view .LVU265 967 0000 284B ldr r3, .L85 968 0002 1B7E ldrb r3, [r3, #24] @ zero_extendqisi2 969 0004 012B cmp r3, #1 970 0006 4AD0 beq .L75 447:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR; 971 .loc 1 447 1 is_stmt 0 discriminator 2 view .LVU266 972 0008 10B5 push {r4, lr} 973 .LCFI6: 974 .cfi_def_cfa_offset 8 975 .cfi_offset 4, -8 976 .cfi_offset 14, -4 977 000a 0446 mov r4, r0 451:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 978 .loc 1 451 3 is_stmt 1 discriminator 2 view .LVU267 979 000c 254B ldr r3, .L85 980 000e 0122 movs r2, #1 981 0010 1A76 strb r2, [r3, #24] 454:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 982 .loc 1 454 3 discriminator 2 view .LVU268 457:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 983 .loc 1 457 3 discriminator 2 view .LVU269 457:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 984 .loc 1 457 14 is_stmt 0 discriminator 2 view .LVU270 985 0012 0368 ldr r3, [r0] 457:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 986 .loc 1 457 5 discriminator 2 view .LVU271 987 0014 13F0010F tst r3, #1 988 0018 10D0 beq .L76 459:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (pOBInit->WRPState == OB_WRPSTATE_ENABLE) 989 .loc 1 459 5 is_stmt 1 view .LVU272 460:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 990 .loc 1 460 5 view .LVU273 ARM GAS /tmp/ccXKI0RP.s page 41 460:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 991 .loc 1 460 16 is_stmt 0 view .LVU274 992 001a 4368 ldr r3, [r0, #4] 460:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 993 .loc 1 460 8 view .LVU275 994 001c 9342 cmp r3, r2 995 001e 08D0 beq .L81 468:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 996 .loc 1 468 7 is_stmt 1 view .LVU276 468:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 997 .loc 1 468 16 is_stmt 0 view .LVU277 998 0020 8068 ldr r0, [r0, #8] 999 .LVL104: 468:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1000 .loc 1 468 16 view .LVU278 1001 0022 FFF7FEFF bl FLASH_OB_DisableWRP 1002 .LVL105: 1003 0026 0346 mov r3, r0 1004 .LVL106: 1005 .L71: 470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1006 .loc 1 470 5 is_stmt 1 view .LVU279 470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1007 .loc 1 470 8 is_stmt 0 view .LVU280 1008 0028 4BB1 cbz r3, .L69 473:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return status; 1009 .loc 1 473 7 is_stmt 1 view .LVU281 473:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return status; 1010 .loc 1 473 7 view .LVU282 1011 002a 1E4A ldr r2, .L85 1012 002c 0021 movs r1, #0 1013 002e 1176 strb r1, [r2, #24] 474:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1014 .loc 1 474 7 view .LVU283 474:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1015 .loc 1 474 14 is_stmt 0 view .LVU284 1016 0030 14E0 b .L68 1017 .LVL107: 1018 .L81: 463:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1019 .loc 1 463 7 is_stmt 1 view .LVU285 463:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1020 .loc 1 463 16 is_stmt 0 view .LVU286 1021 0032 8068 ldr r0, [r0, #8] 1022 .LVL108: 463:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1023 .loc 1 463 16 view .LVU287 1024 0034 FFF7FEFF bl FLASH_OB_EnableWRP 1025 .LVL109: 1026 0038 0346 mov r3, r0 1027 .LVL110: 463:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1028 .loc 1 463 16 view .LVU288 1029 003a F5E7 b .L71 1030 .LVL111: 1031 .L76: 448:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** ARM GAS /tmp/ccXKI0RP.s page 42 1032 .loc 1 448 21 view .LVU289 1033 003c 0123 movs r3, #1 1034 .LVL112: 1035 .L69: 479:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1036 .loc 1 479 3 is_stmt 1 view .LVU290 479:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1037 .loc 1 479 14 is_stmt 0 view .LVU291 1038 003e 2268 ldr r2, [r4] 479:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1039 .loc 1 479 5 view .LVU292 1040 0040 12F0020F tst r2, #2 1041 0044 0CD1 bne .L82 1042 .LVL113: 1043 .L72: 491:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1044 .loc 1 491 3 is_stmt 1 view .LVU293 491:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1045 .loc 1 491 14 is_stmt 0 view .LVU294 1046 0046 2268 ldr r2, [r4] 491:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1047 .loc 1 491 5 view .LVU295 1048 0048 12F0040F tst r2, #4 1049 004c 12D1 bne .L83 1050 .LVL114: 1051 .L73: 503:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1052 .loc 1 503 3 is_stmt 1 view .LVU296 503:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1053 .loc 1 503 14 is_stmt 0 view .LVU297 1054 004e 2268 ldr r2, [r4] 503:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1055 .loc 1 503 5 view .LVU298 1056 0050 12F0080F tst r2, #8 1057 0054 18D1 bne .L84 1058 .LVL115: 1059 .L74: 515:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1060 .loc 1 515 3 is_stmt 1 view .LVU299 515:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1061 .loc 1 515 3 view .LVU300 1062 0056 134A ldr r2, .L85 1063 0058 0021 movs r1, #0 1064 005a 1176 strb r1, [r2, #24] 517:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1065 .loc 1 517 3 view .LVU301 1066 .LVL116: 1067 .L68: 518:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1068 .loc 1 518 1 is_stmt 0 view .LVU302 1069 005c 1846 mov r0, r3 1070 005e 10BD pop {r4, pc} 1071 .LVL117: 1072 .L82: 481:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (status != HAL_OK) 1073 .loc 1 481 5 is_stmt 1 view .LVU303 481:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (status != HAL_OK) ARM GAS /tmp/ccXKI0RP.s page 43 1074 .loc 1 481 14 is_stmt 0 view .LVU304 1075 0060 207C ldrb r0, [r4, #16] @ zero_extendqisi2 1076 0062 FFF7FEFF bl FLASH_OB_RDP_LevelConfig 1077 .LVL118: 482:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1078 .loc 1 482 5 is_stmt 1 view .LVU305 482:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1079 .loc 1 482 8 is_stmt 0 view .LVU306 1080 0066 0346 mov r3, r0 1081 0068 0028 cmp r0, #0 1082 006a ECD0 beq .L72 485:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return status; 1083 .loc 1 485 7 is_stmt 1 view .LVU307 485:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return status; 1084 .loc 1 485 7 view .LVU308 1085 006c 0D4A ldr r2, .L85 1086 006e 0021 movs r1, #0 1087 0070 1176 strb r1, [r2, #24] 486:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1088 .loc 1 486 7 view .LVU309 486:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1089 .loc 1 486 14 is_stmt 0 view .LVU310 1090 0072 F3E7 b .L68 1091 .LVL119: 1092 .L83: 493:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (status != HAL_OK) 1093 .loc 1 493 5 is_stmt 1 view .LVU311 493:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (status != HAL_OK) 1094 .loc 1 493 14 is_stmt 0 view .LVU312 1095 0074 607C ldrb r0, [r4, #17] @ zero_extendqisi2 1096 0076 FFF7FEFF bl FLASH_OB_UserConfig 1097 .LVL120: 494:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1098 .loc 1 494 5 is_stmt 1 view .LVU313 494:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1099 .loc 1 494 8 is_stmt 0 view .LVU314 1100 007a 0346 mov r3, r0 1101 007c 0028 cmp r0, #0 1102 007e E6D0 beq .L73 497:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return status; 1103 .loc 1 497 7 is_stmt 1 view .LVU315 497:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return status; 1104 .loc 1 497 7 view .LVU316 1105 0080 084A ldr r2, .L85 1106 0082 0021 movs r1, #0 1107 0084 1176 strb r1, [r2, #24] 498:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1108 .loc 1 498 7 view .LVU317 498:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1109 .loc 1 498 14 is_stmt 0 view .LVU318 1110 0086 E9E7 b .L68 1111 .LVL121: 1112 .L84: 505:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (status != HAL_OK) 1113 .loc 1 505 5 is_stmt 1 view .LVU319 505:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if (status != HAL_OK) 1114 .loc 1 505 14 is_stmt 0 view .LVU320 ARM GAS /tmp/ccXKI0RP.s page 44 1115 0088 217E ldrb r1, [r4, #24] @ zero_extendqisi2 1116 008a 6069 ldr r0, [r4, #20] 1117 008c FFF7FEFF bl FLASH_OB_ProgramData 1118 .LVL122: 506:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1119 .loc 1 506 5 is_stmt 1 view .LVU321 506:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1120 .loc 1 506 8 is_stmt 0 view .LVU322 1121 0090 0346 mov r3, r0 1122 0092 0028 cmp r0, #0 1123 0094 DFD0 beq .L74 509:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return status; 1124 .loc 1 509 7 is_stmt 1 view .LVU323 509:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** return status; 1125 .loc 1 509 7 view .LVU324 1126 0096 034A ldr r2, .L85 1127 0098 0021 movs r1, #0 1128 009a 1176 strb r1, [r2, #24] 510:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1129 .loc 1 510 7 view .LVU325 510:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1130 .loc 1 510 14 is_stmt 0 view .LVU326 1131 009c DEE7 b .L68 1132 .LVL123: 1133 .L75: 1134 .LCFI7: 1135 .cfi_def_cfa_offset 0 1136 .cfi_restore 4 1137 .cfi_restore 14 451:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1138 .loc 1 451 3 view .LVU327 1139 009e 0223 movs r3, #2 518:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1140 .loc 1 518 1 view .LVU328 1141 00a0 1846 mov r0, r3 1142 .LVL124: 518:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1143 .loc 1 518 1 view .LVU329 1144 00a2 7047 bx lr 1145 .L86: 1146 .align 2 1147 .L85: 1148 00a4 00000000 .word pFlash 1149 .cfi_endproc 1150 .LFE68: 1152 .section .text.HAL_FLASHEx_OBGetConfig,"ax",%progbits 1153 .align 1 1154 .global HAL_FLASHEx_OBGetConfig 1155 .syntax unified 1156 .thumb 1157 .thumb_func 1158 .fpu softvfp 1160 HAL_FLASHEx_OBGetConfig: 1161 .LVL125: 1162 .LFB69: 528:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pOBInit->OptionType = OPTIONBYTE_WRP | OPTIONBYTE_RDP | OPTIONBYTE_USER; 1163 .loc 1 528 1 is_stmt 1 view -0 ARM GAS /tmp/ccXKI0RP.s page 45 1164 .cfi_startproc 1165 @ args = 0, pretend = 0, frame = 0 1166 @ frame_needed = 0, uses_anonymous_args = 0 528:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pOBInit->OptionType = OPTIONBYTE_WRP | OPTIONBYTE_RDP | OPTIONBYTE_USER; 1167 .loc 1 528 1 is_stmt 0 view .LVU331 1168 0000 10B5 push {r4, lr} 1169 .LCFI8: 1170 .cfi_def_cfa_offset 8 1171 .cfi_offset 4, -8 1172 .cfi_offset 14, -4 1173 0002 0446 mov r4, r0 529:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1174 .loc 1 529 3 is_stmt 1 view .LVU332 529:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1175 .loc 1 529 23 is_stmt 0 view .LVU333 1176 0004 0723 movs r3, #7 1177 0006 0360 str r3, [r0] 532:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1178 .loc 1 532 3 is_stmt 1 view .LVU334 532:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1179 .loc 1 532 22 is_stmt 0 view .LVU335 1180 0008 FFF7FEFF bl FLASH_OB_GetWRP 1181 .LVL126: 532:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1182 .loc 1 532 20 view .LVU336 1183 000c A060 str r0, [r4, #8] 535:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1184 .loc 1 535 3 is_stmt 1 view .LVU337 535:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1185 .loc 1 535 23 is_stmt 0 view .LVU338 1186 000e FFF7FEFF bl FLASH_OB_GetRDP 1187 .LVL127: 535:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1188 .loc 1 535 21 view .LVU339 1189 0012 2074 strb r0, [r4, #16] 538:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1190 .loc 1 538 3 is_stmt 1 view .LVU340 538:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1191 .loc 1 538 25 is_stmt 0 view .LVU341 1192 0014 FFF7FEFF bl FLASH_OB_GetUser 1193 .LVL128: 538:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1194 .loc 1 538 23 view .LVU342 1195 0018 6074 strb r0, [r4, #17] 539:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1196 .loc 1 539 1 view .LVU343 1197 001a 10BD pop {r4, pc} 539:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1198 .loc 1 539 1 view .LVU344 1199 .cfi_endproc 1200 .LFE69: 1202 .section .text.HAL_FLASHEx_OBGetUserData,"ax",%progbits 1203 .align 1 1204 .global HAL_FLASHEx_OBGetUserData 1205 .syntax unified 1206 .thumb 1207 .thumb_func ARM GAS /tmp/ccXKI0RP.s page 46 1208 .fpu softvfp 1210 HAL_FLASHEx_OBGetUserData: 1211 .LVL129: 1212 .LFB70: 550:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint32_t value = 0; 1213 .loc 1 550 1 is_stmt 1 view -0 1214 .cfi_startproc 1215 @ args = 0, pretend = 0, frame = 0 1216 @ frame_needed = 0, uses_anonymous_args = 0 1217 @ link register save eliminated. 551:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1218 .loc 1 551 3 view .LVU346 553:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1219 .loc 1 553 3 view .LVU347 553:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1220 .loc 1 553 6 is_stmt 0 view .LVU348 1221 0000 064B ldr r3, .L93 1222 0002 9842 cmp r0, r3 1223 0004 04D0 beq .L92 561:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1224 .loc 1 561 5 is_stmt 1 view .LVU349 561:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1225 .loc 1 561 13 is_stmt 0 view .LVU350 1226 0006 064B ldr r3, .L93+4 1227 0008 D869 ldr r0, [r3, #28] 1228 .LVL130: 561:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1229 .loc 1 561 11 view .LVU351 1230 000a C0F38740 ubfx r0, r0, #18, #8 1231 .LVL131: 564:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1232 .loc 1 564 3 is_stmt 1 view .LVU352 565:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1233 .loc 1 565 1 is_stmt 0 view .LVU353 1234 000e 7047 bx lr 1235 .LVL132: 1236 .L92: 556:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1237 .loc 1 556 5 is_stmt 1 view .LVU354 556:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1238 .loc 1 556 13 is_stmt 0 view .LVU355 1239 0010 034B ldr r3, .L93+4 1240 0012 D869 ldr r0, [r3, #28] 1241 .LVL133: 556:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1242 .loc 1 556 11 view .LVU356 1243 0014 C0F38720 ubfx r0, r0, #10, #8 1244 .LVL134: 556:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1245 .loc 1 556 11 view .LVU357 1246 0018 7047 bx lr 1247 .L94: 1248 001a 00BF .align 2 1249 .L93: 1250 001c 04F8FF1F .word 536868868 1251 0020 00200240 .word 1073881088 1252 .cfi_endproc ARM GAS /tmp/ccXKI0RP.s page 47 1253 .LFE70: 1255 .section .text.FLASH_PageErase,"ax",%progbits 1256 .align 1 1257 .global FLASH_PageErase 1258 .syntax unified 1259 .thumb 1260 .thumb_func 1261 .fpu softvfp 1263 FLASH_PageErase: 1264 .LVL135: 1265 .LFB80: 1065:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1066:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 1067:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @} 1068:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 1069:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1070:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 1071:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @} 1072:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 1073:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1074:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** @addtogroup FLASH 1075:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @{ 1076:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 1077:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1078:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** @addtogroup FLASH_Private_Functions 1079:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @{ 1080:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 1081:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1082:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /** 1083:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @brief Erase the specified FLASH memory page 1084:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @param PageAddress FLASH page to erase 1085:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * The value of this parameter depend on device used within the same series 1086:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * 1087:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** * @retval None 1088:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** */ 1089:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** void FLASH_PageErase(uint32_t PageAddress) 1090:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1266 .loc 1 1090 1 is_stmt 1 view -0 1267 .cfi_startproc 1268 @ args = 0, pretend = 0, frame = 0 1269 @ frame_needed = 0, uses_anonymous_args = 0 1270 @ link register save eliminated. 1091:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Clean the error context */ 1092:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; 1271 .loc 1 1092 3 view .LVU359 1272 .loc 1 1092 20 is_stmt 0 view .LVU360 1273 0000 064B ldr r3, .L96 1274 0002 0022 movs r2, #0 1275 0004 DA61 str r2, [r3, #28] 1093:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1094:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_BANK2_END) 1095:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** if(PageAddress > FLASH_BANK1_END) 1096:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1097:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Proceed to erase the page */ 1098:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR2, FLASH_CR2_PER); 1099:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRITE_REG(FLASH->AR2, PageAddress); 1100:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR2, FLASH_CR2_STRT); ARM GAS /tmp/ccXKI0RP.s page 48 1101:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1102:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** else 1103:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1104:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_BANK2_END */ 1105:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** /* Proceed to erase the page */ 1106:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_PER); 1276 .loc 1 1106 5 is_stmt 1 view .LVU361 1277 0006 064B ldr r3, .L96+4 1278 0008 1A69 ldr r2, [r3, #16] 1279 000a 42F00202 orr r2, r2, #2 1280 000e 1A61 str r2, [r3, #16] 1107:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** WRITE_REG(FLASH->AR, PageAddress); 1281 .loc 1 1107 5 view .LVU362 1282 0010 5861 str r0, [r3, #20] 1108:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT); 1283 .loc 1 1108 5 view .LVU363 1284 0012 1A69 ldr r2, [r3, #16] 1285 0014 42F04002 orr r2, r2, #64 1286 0018 1A61 str r2, [r3, #16] 1109:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #if defined(FLASH_BANK2_END) 1110:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1111:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** #endif /* FLASH_BANK2_END */ 1112:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1287 .loc 1 1112 1 is_stmt 0 view .LVU364 1288 001a 7047 bx lr 1289 .L97: 1290 .align 2 1291 .L96: 1292 001c 00000000 .word pFlash 1293 0020 00200240 .word 1073881088 1294 .cfi_endproc 1295 .LFE80: 1297 .section .text.HAL_FLASHEx_Erase,"ax",%progbits 1298 .align 1 1299 .global HAL_FLASHEx_Erase 1300 .syntax unified 1301 .thumb 1302 .thumb_func 1303 .fpu softvfp 1305 HAL_FLASHEx_Erase: 1306 .LVL136: 1307 .LFB65: 160:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR; 1308 .loc 1 160 1 is_stmt 1 view -0 1309 .cfi_startproc 1310 @ args = 0, pretend = 0, frame = 0 1311 @ frame_needed = 0, uses_anonymous_args = 0 161:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint32_t address = 0U; 1312 .loc 1 161 3 view .LVU366 162:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1313 .loc 1 162 3 view .LVU367 165:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1314 .loc 1 165 3 view .LVU368 165:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1315 .loc 1 165 3 view .LVU369 1316 0000 264B ldr r3, .L115 1317 0002 1B7E ldrb r3, [r3, #24] @ zero_extendqisi2 ARM GAS /tmp/ccXKI0RP.s page 49 1318 0004 012B cmp r3, #1 1319 0006 46D0 beq .L105 160:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR; 1320 .loc 1 160 1 is_stmt 0 discriminator 2 view .LVU370 1321 0008 70B5 push {r4, r5, r6, lr} 1322 .LCFI9: 1323 .cfi_def_cfa_offset 16 1324 .cfi_offset 4, -16 1325 .cfi_offset 5, -12 1326 .cfi_offset 6, -8 1327 .cfi_offset 14, -4 1328 000a 0E46 mov r6, r1 1329 000c 0546 mov r5, r0 165:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1330 .loc 1 165 3 is_stmt 1 discriminator 2 view .LVU371 1331 000e 234B ldr r3, .L115 1332 0010 0122 movs r2, #1 1333 0012 1A76 strb r2, [r3, #24] 168:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1334 .loc 1 168 3 discriminator 2 view .LVU372 170:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1335 .loc 1 170 3 discriminator 2 view .LVU373 170:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1336 .loc 1 170 17 is_stmt 0 discriminator 2 view .LVU374 1337 0014 0368 ldr r3, [r0] 170:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1338 .loc 1 170 6 discriminator 2 view .LVU375 1339 0016 022B cmp r3, #2 1340 0018 20D0 beq .L112 233:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages)); 1341 .loc 1 233 5 is_stmt 1 view .LVU376 234:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1342 .loc 1 234 5 view .LVU377 273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1343 .loc 1 273 7 view .LVU378 273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1344 .loc 1 273 11 is_stmt 0 view .LVU379 1345 001a 4CF25030 movw r0, #50000 1346 .LVL137: 273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1347 .loc 1 273 11 view .LVU380 1348 001e FFF7FEFF bl FLASH_WaitForLastOperation 1349 .LVL138: 273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1350 .loc 1 273 10 view .LVU381 1351 0022 90BB cbnz r0, .L107 276:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1352 .loc 1 276 9 is_stmt 1 view .LVU382 276:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1353 .loc 1 276 20 is_stmt 0 view .LVU383 1354 0024 4FF0FF33 mov r3, #-1 1355 0028 3360 str r3, [r6] 279:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** address < ((pEraseInit->NbPages * FLASH_PAGE_SIZE) + pEraseInit->PageAddress); 1356 .loc 1 279 9 is_stmt 1 view .LVU384 279:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** address < ((pEraseInit->NbPages * FLASH_PAGE_SIZE) + pEraseInit->PageAddress); 1357 .loc 1 279 21 is_stmt 0 view .LVU385 1358 002a AC68 ldr r4, [r5, #8] ARM GAS /tmp/ccXKI0RP.s page 50 1359 .LVL139: 161:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint32_t address = 0U; 1360 .loc 1 161 21 view .LVU386 1361 002c 0121 movs r1, #1 1362 .LVL140: 1363 .L102: 280:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** address += FLASH_PAGE_SIZE) 1364 .loc 1 280 35 discriminator 1 view .LVU387 1365 002e EA68 ldr r2, [r5, #12] 280:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** address += FLASH_PAGE_SIZE) 1366 .loc 1 280 76 discriminator 1 view .LVU388 1367 0030 AB68 ldr r3, [r5, #8] 280:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** address += FLASH_PAGE_SIZE) 1368 .loc 1 280 64 discriminator 1 view .LVU389 1369 0032 03EB8223 add r3, r3, r2, lsl #10 279:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** address < ((pEraseInit->NbPages * FLASH_PAGE_SIZE) + pEraseInit->PageAddress); 1370 .loc 1 279 9 discriminator 1 view .LVU390 1371 0036 A342 cmp r3, r4 1372 0038 28D9 bls .L101 283:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1373 .loc 1 283 11 is_stmt 1 view .LVU391 1374 003a 2046 mov r0, r4 1375 003c FFF7FEFF bl FLASH_PageErase 1376 .LVL141: 286:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1377 .loc 1 286 11 view .LVU392 286:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1378 .loc 1 286 20 is_stmt 0 view .LVU393 1379 0040 4CF25030 movw r0, #50000 1380 0044 FFF7FEFF bl FLASH_WaitForLastOperation 1381 .LVL142: 289:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1382 .loc 1 289 11 is_stmt 1 view .LVU394 1383 0048 154A ldr r2, .L115+4 1384 004a 1369 ldr r3, [r2, #16] 1385 004c 23F00203 bic r3, r3, #2 1386 0050 1361 str r3, [r2, #16] 291:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1387 .loc 1 291 11 view .LVU395 291:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1388 .loc 1 291 14 is_stmt 0 view .LVU396 1389 0052 0146 mov r1, r0 1390 0054 B8B9 cbnz r0, .L113 281:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1391 .loc 1 281 21 view .LVU397 1392 0056 04F58064 add r4, r4, #1024 1393 .LVL143: 281:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1394 .loc 1 281 21 view .LVU398 1395 005a E8E7 b .L102 1396 .LVL144: 1397 .L112: 216:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1398 .loc 1 216 7 is_stmt 1 view .LVU399 216:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1399 .loc 1 216 11 is_stmt 0 view .LVU400 1400 005c 4CF25030 movw r0, #50000 ARM GAS /tmp/ccXKI0RP.s page 51 1401 .LVL145: 216:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1402 .loc 1 216 11 view .LVU401 1403 0060 FFF7FEFF bl FLASH_WaitForLastOperation 1404 .LVL146: 216:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1405 .loc 1 216 10 view .LVU402 1406 0064 08B1 cbz r0, .L114 161:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint32_t address = 0U; 1407 .loc 1 161 21 view .LVU403 1408 0066 0121 movs r1, #1 1409 0068 10E0 b .L101 1410 .L114: 219:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1411 .loc 1 219 9 is_stmt 1 view .LVU404 1412 006a 0120 movs r0, #1 1413 006c FFF7FEFF bl FLASH_MassErase 1414 .LVL147: 222:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1415 .loc 1 222 9 view .LVU405 222:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1416 .loc 1 222 18 is_stmt 0 view .LVU406 1417 0070 4CF25030 movw r0, #50000 1418 0074 FFF7FEFF bl FLASH_WaitForLastOperation 1419 .LVL148: 1420 0078 0146 mov r1, r0 1421 .LVL149: 225:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1422 .loc 1 225 9 is_stmt 1 view .LVU407 1423 007a 094A ldr r2, .L115+4 1424 007c 1369 ldr r3, [r2, #16] 1425 007e 23F00403 bic r3, r3, #4 1426 0082 1361 str r3, [r2, #16] 1427 0084 02E0 b .L101 1428 .LVL150: 1429 .L113: 294:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** break; 1430 .loc 1 294 13 view .LVU408 294:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** break; 1431 .loc 1 294 24 is_stmt 0 view .LVU409 1432 0086 3460 str r4, [r6] 295:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1433 .loc 1 295 13 is_stmt 1 view .LVU410 1434 0088 00E0 b .L101 1435 .LVL151: 1436 .L107: 161:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** uint32_t address = 0U; 1437 .loc 1 161 21 is_stmt 0 view .LVU411 1438 008a 0121 movs r1, #1 1439 .LVL152: 1440 .L101: 303:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1441 .loc 1 303 3 is_stmt 1 view .LVU412 303:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1442 .loc 1 303 3 view .LVU413 1443 008c 034B ldr r3, .L115 1444 008e 0022 movs r2, #0 ARM GAS /tmp/ccXKI0RP.s page 52 1445 0090 1A76 strb r2, [r3, #24] 305:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1446 .loc 1 305 3 view .LVU414 306:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1447 .loc 1 306 1 is_stmt 0 view .LVU415 1448 0092 0846 mov r0, r1 1449 0094 70BD pop {r4, r5, r6, pc} 1450 .LVL153: 1451 .L105: 1452 .LCFI10: 1453 .cfi_def_cfa_offset 0 1454 .cfi_restore 4 1455 .cfi_restore 5 1456 .cfi_restore 6 1457 .cfi_restore 14 165:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1458 .loc 1 165 3 view .LVU416 1459 0096 0221 movs r1, #2 1460 .LVL154: 306:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1461 .loc 1 306 1 view .LVU417 1462 0098 0846 mov r0, r1 1463 .LVL155: 306:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1464 .loc 1 306 1 view .LVU418 1465 009a 7047 bx lr 1466 .L116: 1467 .align 2 1468 .L115: 1469 009c 00000000 .word pFlash 1470 00a0 00200240 .word 1073881088 1471 .cfi_endproc 1472 .LFE65: 1474 .section .text.HAL_FLASHEx_Erase_IT,"ax",%progbits 1475 .align 1 1476 .global HAL_FLASHEx_Erase_IT 1477 .syntax unified 1478 .thumb 1479 .thumb_func 1480 .fpu softvfp 1482 HAL_FLASHEx_Erase_IT: 1483 .LVL156: 1484 .LFB66: 320:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; 1485 .loc 1 320 1 is_stmt 1 view -0 1486 .cfi_startproc 1487 @ args = 0, pretend = 0, frame = 0 1488 @ frame_needed = 0, uses_anonymous_args = 0 320:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; 1489 .loc 1 320 1 is_stmt 0 view .LVU420 1490 0000 08B5 push {r3, lr} 1491 .LCFI11: 1492 .cfi_def_cfa_offset 8 1493 .cfi_offset 3, -8 1494 .cfi_offset 14, -4 321:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1495 .loc 1 321 3 is_stmt 1 view .LVU421 ARM GAS /tmp/ccXKI0RP.s page 53 1496 .LVL157: 324:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1497 .loc 1 324 3 view .LVU422 324:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1498 .loc 1 324 3 view .LVU423 1499 0002 144B ldr r3, .L124 1500 0004 1B7E ldrb r3, [r3, #24] @ zero_extendqisi2 1501 0006 012B cmp r3, #1 1502 0008 20D0 beq .L120 324:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1503 .loc 1 324 3 discriminator 2 view .LVU424 1504 000a 124B ldr r3, .L124 1505 000c 0122 movs r2, #1 1506 000e 1A76 strb r2, [r3, #24] 327:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1507 .loc 1 327 3 discriminator 2 view .LVU425 327:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1508 .loc 1 327 13 is_stmt 0 discriminator 2 view .LVU426 1509 0010 1B78 ldrb r3, [r3] @ zero_extendqisi2 327:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1510 .loc 1 327 6 discriminator 2 view .LVU427 1511 0012 EBB9 cbnz r3, .L121 333:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1512 .loc 1 333 3 is_stmt 1 view .LVU428 336:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1513 .loc 1 336 3 view .LVU429 1514 0014 104A ldr r2, .L124+4 1515 0016 1369 ldr r3, [r2, #16] 1516 0018 43F4A053 orr r3, r3, #5120 1517 001c 1361 str r3, [r2, #16] 343:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1518 .loc 1 343 3 view .LVU430 343:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1519 .loc 1 343 17 is_stmt 0 view .LVU431 1520 001e 0368 ldr r3, [r0] 343:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** { 1521 .loc 1 343 6 view .LVU432 1522 0020 022B cmp r3, #2 1523 0022 0BD0 beq .L123 354:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** assert_param(IS_FLASH_NB_PAGES(pEraseInit->PageAddress, pEraseInit->NbPages)); 1524 .loc 1 354 5 is_stmt 1 view .LVU433 355:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1525 .loc 1 355 5 view .LVU434 357:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pFlash.DataRemaining = pEraseInit->NbPages; 1526 .loc 1 357 5 view .LVU435 357:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pFlash.DataRemaining = pEraseInit->NbPages; 1527 .loc 1 357 29 is_stmt 0 view .LVU436 1528 0024 0B4B ldr r3, .L124 1529 0026 0122 movs r2, #1 1530 0028 1A70 strb r2, [r3] 358:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pFlash.Address = pEraseInit->PageAddress; 1531 .loc 1 358 5 is_stmt 1 view .LVU437 358:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pFlash.Address = pEraseInit->PageAddress; 1532 .loc 1 358 38 is_stmt 0 view .LVU438 1533 002a C268 ldr r2, [r0, #12] 358:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** pFlash.Address = pEraseInit->PageAddress; 1534 .loc 1 358 26 view .LVU439 ARM GAS /tmp/ccXKI0RP.s page 54 1535 002c 5A60 str r2, [r3, #4] 359:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1536 .loc 1 359 5 is_stmt 1 view .LVU440 359:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1537 .loc 1 359 32 is_stmt 0 view .LVU441 1538 002e 8268 ldr r2, [r0, #8] 359:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1539 .loc 1 359 20 view .LVU442 1540 0030 9A60 str r2, [r3, #8] 362:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1541 .loc 1 362 5 is_stmt 1 view .LVU443 1542 0032 8068 ldr r0, [r0, #8] 1543 .LVL158: 362:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1544 .loc 1 362 5 is_stmt 0 view .LVU444 1545 0034 FFF7FEFF bl FLASH_PageErase 1546 .LVL159: 365:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1547 .loc 1 365 10 view .LVU445 1548 0038 0020 movs r0, #0 1549 .L118: 366:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1550 .loc 1 366 1 view .LVU446 1551 003a 08BD pop {r3, pc} 1552 .LVL160: 1553 .L123: 346:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** FLASH_MassErase(pEraseInit->Banks); 1554 .loc 1 346 5 is_stmt 1 view .LVU447 346:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** FLASH_MassErase(pEraseInit->Banks); 1555 .loc 1 346 29 is_stmt 0 view .LVU448 1556 003c 054B ldr r3, .L124 1557 003e 0222 movs r2, #2 1558 0040 1A70 strb r2, [r3] 347:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1559 .loc 1 347 9 is_stmt 1 view .LVU449 1560 0042 4068 ldr r0, [r0, #4] 1561 .LVL161: 347:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1562 .loc 1 347 9 is_stmt 0 view .LVU450 1563 0044 FFF7FEFF bl FLASH_MassErase 1564 .LVL162: 365:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1565 .loc 1 365 10 view .LVU451 1566 0048 0020 movs r0, #0 1567 004a F6E7 b .L118 1568 .LVL163: 1569 .L120: 324:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1570 .loc 1 324 3 view .LVU452 1571 004c 0220 movs r0, #2 1572 .LVL164: 324:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** 1573 .loc 1 324 3 view .LVU453 1574 004e F4E7 b .L118 1575 .LVL165: 1576 .L121: 329:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } ARM GAS /tmp/ccXKI0RP.s page 55 1577 .loc 1 329 12 view .LVU454 1578 0050 0120 movs r0, #1 1579 .LVL166: 329:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c **** } 1580 .loc 1 329 12 view .LVU455 1581 0052 F2E7 b .L118 1582 .L125: 1583 .align 2 1584 .L124: 1585 0054 00000000 .word pFlash 1586 0058 00200240 .word 1073881088 1587 .cfi_endproc 1588 .LFE66: 1590 .text 1591 .Letext0: 1592 .file 2 "/usr/arm-none-eabi/include/machine/_default_types.h" 1593 .file 3 "/usr/arm-none-eabi/include/sys/_stdint.h" 1594 .file 4 "Drivers/CMSIS/Include/core_cm3.h" 1595 .file 5 "Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h" 1596 .file 6 "Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h" 1597 .file 7 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h" 1598 .file 8 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h" 1599 .file 9 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h" 1600 .file 10 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h" ARM GAS /tmp/ccXKI0RP.s page 56 DEFINED SYMBOLS *ABS*:0000000000000000 stm32f1xx_hal_flash_ex.c /tmp/ccXKI0RP.s:16 .text.FLASH_MassErase:0000000000000000 $t /tmp/ccXKI0RP.s:23 .text.FLASH_MassErase:0000000000000000 FLASH_MassErase /tmp/ccXKI0RP.s:53 .text.FLASH_MassErase:000000000000001c $d /tmp/ccXKI0RP.s:59 .text.FLASH_OB_GetWRP:0000000000000000 $t /tmp/ccXKI0RP.s:65 .text.FLASH_OB_GetWRP:0000000000000000 FLASH_OB_GetWRP /tmp/ccXKI0RP.s:81 .text.FLASH_OB_GetWRP:0000000000000008 $d /tmp/ccXKI0RP.s:86 .text.FLASH_OB_GetRDP:0000000000000000 $t /tmp/ccXKI0RP.s:92 .text.FLASH_OB_GetRDP:0000000000000000 FLASH_OB_GetRDP /tmp/ccXKI0RP.s:123 .text.FLASH_OB_GetRDP:0000000000000014 $d /tmp/ccXKI0RP.s:128 .text.FLASH_OB_GetUser:0000000000000000 $t /tmp/ccXKI0RP.s:134 .text.FLASH_OB_GetUser:0000000000000000 FLASH_OB_GetUser /tmp/ccXKI0RP.s:151 .text.FLASH_OB_GetUser:000000000000000c $d /tmp/ccXKI0RP.s:156 .text.FLASH_OB_RDP_LevelConfig:0000000000000000 $t /tmp/ccXKI0RP.s:162 .text.FLASH_OB_RDP_LevelConfig:0000000000000000 FLASH_OB_RDP_LevelConfig /tmp/ccXKI0RP.s:255 .text.FLASH_OB_RDP_LevelConfig:0000000000000064 $d /tmp/ccXKI0RP.s:262 .text.FLASH_OB_UserConfig:0000000000000000 $t /tmp/ccXKI0RP.s:268 .text.FLASH_OB_UserConfig:0000000000000000 FLASH_OB_UserConfig /tmp/ccXKI0RP.s:340 .text.FLASH_OB_UserConfig:0000000000000040 $d /tmp/ccXKI0RP.s:347 .text.FLASH_OB_ProgramData:0000000000000000 $t /tmp/ccXKI0RP.s:353 .text.FLASH_OB_ProgramData:0000000000000000 FLASH_OB_ProgramData /tmp/ccXKI0RP.s:423 .text.FLASH_OB_ProgramData:0000000000000040 $d /tmp/ccXKI0RP.s:429 .text.HAL_FLASHEx_OBErase:0000000000000000 $t /tmp/ccXKI0RP.s:436 .text.HAL_FLASHEx_OBErase:0000000000000000 HAL_FLASHEx_OBErase /tmp/ccXKI0RP.s:520 .text.HAL_FLASHEx_OBErase:0000000000000050 $d /tmp/ccXKI0RP.s:526 .text.FLASH_OB_EnableWRP:0000000000000000 $t /tmp/ccXKI0RP.s:532 .text.FLASH_OB_EnableWRP:0000000000000000 FLASH_OB_EnableWRP /tmp/ccXKI0RP.s:731 .text.FLASH_OB_EnableWRP:00000000000000b4 $d /tmp/ccXKI0RP.s:738 .text.FLASH_OB_DisableWRP:0000000000000000 $t /tmp/ccXKI0RP.s:744 .text.FLASH_OB_DisableWRP:0000000000000000 FLASH_OB_DisableWRP /tmp/ccXKI0RP.s:943 .text.FLASH_OB_DisableWRP:00000000000000b4 $d /tmp/ccXKI0RP.s:950 .text.HAL_FLASHEx_OBProgram:0000000000000000 $t /tmp/ccXKI0RP.s:957 .text.HAL_FLASHEx_OBProgram:0000000000000000 HAL_FLASHEx_OBProgram /tmp/ccXKI0RP.s:1148 .text.HAL_FLASHEx_OBProgram:00000000000000a4 $d /tmp/ccXKI0RP.s:1153 .text.HAL_FLASHEx_OBGetConfig:0000000000000000 $t /tmp/ccXKI0RP.s:1160 .text.HAL_FLASHEx_OBGetConfig:0000000000000000 HAL_FLASHEx_OBGetConfig /tmp/ccXKI0RP.s:1203 .text.HAL_FLASHEx_OBGetUserData:0000000000000000 $t /tmp/ccXKI0RP.s:1210 .text.HAL_FLASHEx_OBGetUserData:0000000000000000 HAL_FLASHEx_OBGetUserData /tmp/ccXKI0RP.s:1250 .text.HAL_FLASHEx_OBGetUserData:000000000000001c $d /tmp/ccXKI0RP.s:1256 .text.FLASH_PageErase:0000000000000000 $t /tmp/ccXKI0RP.s:1263 .text.FLASH_PageErase:0000000000000000 FLASH_PageErase /tmp/ccXKI0RP.s:1292 .text.FLASH_PageErase:000000000000001c $d /tmp/ccXKI0RP.s:1298 .text.HAL_FLASHEx_Erase:0000000000000000 $t /tmp/ccXKI0RP.s:1305 .text.HAL_FLASHEx_Erase:0000000000000000 HAL_FLASHEx_Erase /tmp/ccXKI0RP.s:1469 .text.HAL_FLASHEx_Erase:000000000000009c $d /tmp/ccXKI0RP.s:1475 .text.HAL_FLASHEx_Erase_IT:0000000000000000 $t /tmp/ccXKI0RP.s:1482 .text.HAL_FLASHEx_Erase_IT:0000000000000000 HAL_FLASHEx_Erase_IT /tmp/ccXKI0RP.s:1585 .text.HAL_FLASHEx_Erase_IT:0000000000000054 $d UNDEFINED SYMBOLS pFlash FLASH_WaitForLastOperation