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