ARM GAS /tmp/cc21Th62.s page 1 1 .cpu cortex-m0 2 .eabi_attribute 20, 1 3 .eabi_attribute 21, 1 4 .eabi_attribute 23, 3 5 .eabi_attribute 24, 1 6 .eabi_attribute 25, 1 7 .eabi_attribute 26, 1 8 .eabi_attribute 30, 1 9 .eabi_attribute 34, 0 10 .eabi_attribute 18, 4 11 .file "stm32f0xx_hal_flash.c" 12 .text 13 .Ltext0: 14 .cfi_sections .debug_frame 15 .section .text.FLASH_Program_HalfWord,"ax",%progbits 16 .align 1 17 .arch armv6s-m 18 .syntax unified 19 .code 16 20 .thumb_func 21 .fpu softvfp 23 FLASH_Program_HalfWord: 24 .LVL0: 25 .LFB51: 26 .file 1 "Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c" 1:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 2:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ****************************************************************************** 3:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @file stm32f0xx_hal_flash.c 4:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @author MCD Application Team 5:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief FLASH HAL module driver. 6:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * functionalities of the internal FLASH memory: 8:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * + Program operations functions 9:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * + Memory Control functions 10:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * + Peripheral State functions 11:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * 12:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** @verbatim 13:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ============================================================================== 14:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ##### FLASH peripheral features ##### 15:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ============================================================================== 16:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** [..] The Flash memory interface manages CPU AHB I-Code and D-Code accesses 17:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** to the Flash memory. It implements the erase and program Flash memory operations 18:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** and the read and write protection mechanisms. 19:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 20:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** [..] The Flash memory interface accelerates code execution with a system of instruction 21:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** prefetch. 22:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 23:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** [..] The FLASH main features are: 24:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (+) Flash memory read operations 25:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (+) Flash memory program/erase operations 26:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (+) Read / write protections 27:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (+) Prefetch on I-Code 28:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (+) Option Bytes programming 29:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 30:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 31:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ##### How to use this driver ##### 32:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ============================================================================== ARM GAS /tmp/cc21Th62.s page 2 33:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** [..] 34:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** This driver provides functions and macros to configure and program the FLASH 35:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** memory of all STM32F0xx devices. 36:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 37:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (#) FLASH Memory I/O Programming functions: this group includes all needed 38:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** functions to erase and program the main memory: 39:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Lock and Unlock the FLASH interface 40:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Erase function: Erase page, erase all pages 41:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Program functions: half word, word and doubleword 42:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (#) FLASH Option Bytes Programming functions: this group includes all needed 43:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** functions to manage the Option Bytes: 44:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Lock and Unlock the Option Bytes 45:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Set/Reset the write protection 46:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Set the Read protection Level 47:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Program the user Option Bytes 48:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Launch the Option Bytes loader 49:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Erase Option Bytes 50:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Program the data Option Bytes 51:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Get the Write protection. 52:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Get the user option bytes. 53:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 54:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (#) Interrupts and flags management functions : this group 55:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** includes all needed functions to: 56:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Handle FLASH interrupts 57:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Wait for last FLASH operation according to its status 58:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Get error flag status 59:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 60:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** [..] In addition to these function, this driver includes a set of macros allowing 61:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** to handle the following operations: 62:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 63:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (+) Set/Get the latency 64:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (+) Enable/Disable the prefetch buffer 65:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (+) Enable/Disable the FLASH interrupts 66:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (+) Monitor the FLASH flags status 67:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 68:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** @endverbatim 69:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ****************************************************************************** 70:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @attention 71:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * 72:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** *

© Copyright (c) 2016 STMicroelectronics. 73:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * All rights reserved.

74:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * 75:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * This software component is licensed by ST under BSD 3-Clause license, 76:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * the "License"; You may not use this file except in compliance with the 77:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * License. You may obtain a copy of the License at: 78:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * opensource.org/licenses/BSD-3-Clause 79:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * 80:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ****************************************************************************** 81:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 82:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 83:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Includes ------------------------------------------------------------------*/ 84:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** #include "stm32f0xx_hal.h" 85:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 86:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @addtogroup STM32F0xx_HAL_Driver 87:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{ 88:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 89:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ARM GAS /tmp/cc21Th62.s page 3 90:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** #ifdef HAL_FLASH_MODULE_ENABLED 91:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 92:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @defgroup FLASH FLASH 93:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief FLASH HAL module driver 94:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{ 95:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 96:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 97:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Private typedef -----------------------------------------------------------*/ 98:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Private define ------------------------------------------------------------*/ 99:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @defgroup FLASH_Private_Constants FLASH Private Constants 100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{ 101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @} 104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Private macro ---------------------------- ---------------------------------*/ 107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @defgroup FLASH_Private_Macros FLASH Private Macros 108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{ 109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @} 113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Private variables ---------------------------------------------------------*/ 116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @defgroup FLASH_Private_Variables FLASH Private Variables 117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{ 118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Variables used for Erase pages under interruption*/ 120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** FLASH_ProcessTypeDef pFlash; 121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @} 123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Private function prototypes -----------------------------------------------*/ 126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @defgroup FLASH_Private_Functions FLASH Private Functions 127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{ 128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data); 130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** static void FLASH_SetErrorCode(void); 131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** extern void FLASH_PageErase(uint32_t PageAddress); 132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @} 134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Exported functions ---------------------------------------------------------*/ 137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions FLASH Exported Functions 138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{ 139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group1 Programming operation functions 142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Programming operation functions 143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * 144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** @verbatim 145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** @endverbatim 146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{ ARM GAS /tmp/cc21Th62.s page 4 147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Program halfword, word or double word at a specified address 151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @note The function HAL_FLASH_Unlock() should be called before to unlock the FLASH interface 152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * The function HAL_FLASH_Lock() should be called after to lock the FLASH interface 153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * 154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @note If an erase and a program operations are requested simultaneously, 155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * the erase operation is performed before the program one. 156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * 157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @note FLASH should be previously erased before new programming (only exception to this 158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * is when 0x0000 is programmed) 159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * 160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param TypeProgram Indicate the way to program at a specified address. 161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * This parameter can be a value of @ref FLASH_Type_Program 162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param Address Specifie the address to be programmed. 163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param Data Specifie the data to be programmed 164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * 165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval HAL_StatusTypeDef HAL Status 166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data) 168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_ERROR; 170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** uint8_t index = 0U; 171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** uint8_t nbiterations = 0U; 172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Process Locked */ 174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_LOCK(&pFlash); 175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Check the parameters */ 177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram)); 178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(Address)); 179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Wait for last operation to be completed */ 181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); 182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(status == HAL_OK) 184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(TypeProgram == FLASH_TYPEPROGRAM_HALFWORD) 186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program halfword (16-bit) at a specified address. */ 188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** nbiterations = 1U; 189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else if(TypeProgram == FLASH_TYPEPROGRAM_WORD) 191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program word (32-bit = 2*16-bit) at a specified address. */ 193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** nbiterations = 2U; 194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else 196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program double word (64-bit = 4*16-bit) at a specified address. */ 198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** nbiterations = 4U; 199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** for (index = 0U; index < nbiterations; index++) 202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** FLASH_Program_HalfWord((Address + (2U*index)), (uint16_t)(Data >> (16U*index))); ARM GAS /tmp/cc21Th62.s page 5 204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Wait for last operation to be completed */ 206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE); 207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* If the program operation is completed, disable the PG Bit */ 209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PG); 210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* In case of error, stop programming procedure */ 211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if (status != HAL_OK) 212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** break; 214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Process Unlocked */ 219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_UNLOCK(&pFlash); 220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return status; 222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Program halfword, word or double word at a specified address with interrupt enabled. 226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @note The function HAL_FLASH_Unlock() should be called before to unlock the FLASH interface 227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * The function HAL_FLASH_Lock() should be called after to lock the FLASH interface 228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * 229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @note If an erase and a program operations are requested simultaneously, 230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * the erase operation is performed before the program one. 231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * 232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param TypeProgram Indicate the way to program at a specified address. 233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * This parameter can be a value of @ref FLASH_Type_Program 234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param Address Specifie the address to be programmed. 235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param Data Specifie the data to be programmed 236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * 237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval HAL_StatusTypeDef HAL Status 238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data) 240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK; 242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Process Locked */ 244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_LOCK(&pFlash); 245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Check the parameters */ 247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram)); 248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(Address)); 249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Enable End of FLASH Operation and Error source interrupts */ 251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP | FLASH_IT_ERR); 252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Address = Address; 254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Data = Data; 255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(TypeProgram == FLASH_TYPEPROGRAM_HALFWORD) 257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAMHALFWORD; 259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program halfword (16-bit) at a specified address. */ 260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.DataRemaining = 1U; ARM GAS /tmp/cc21Th62.s page 6 261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else if(TypeProgram == FLASH_TYPEPROGRAM_WORD) 263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAMWORD; 265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program word (32-bit : 2*16-bit) at a specified address. */ 266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.DataRemaining = 2U; 267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else 269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAMDOUBLEWORD; 271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program double word (64-bit : 4*16-bit) at a specified address. */ 272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.DataRemaining = 4U; 273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program halfword (16-bit) at a specified address. */ 276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** FLASH_Program_HalfWord(Address, (uint16_t)Data); 277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return status; 279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief This function handles FLASH interrupt request. 283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval None 284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** void HAL_FLASH_IRQHandler(void) 286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** uint32_t addresstmp = 0U; 288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Check FLASH operation error flags */ 290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) ||__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR)) 291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Return the faulty address */ 293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** addresstmp = pFlash.Address; 294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Reset address */ 295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Address = 0xFFFFFFFFU; 296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Save the Error code */ 298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** FLASH_SetErrorCode(); 299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* FLASH error interrupt user callback */ 301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_FLASH_OperationErrorCallback(addresstmp); 302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Stop the procedure ongoing */ 304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Check FLASH End of Operation flag */ 308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP)) 309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */ 311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP); 312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Process can continue only if no error detected */ 314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(pFlash.ProcedureOnGoing != FLASH_PROC_NONE) 315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(pFlash.ProcedureOnGoing == FLASH_PROC_PAGEERASE) 317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { ARM GAS /tmp/cc21Th62.s page 7 318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Nb of pages to erased can be decreased */ 319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.DataRemaining--; 320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Check if there are still pages to erase */ 322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(pFlash.DataRemaining != 0U) 323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** addresstmp = pFlash.Address; 325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /*Indicate user which sector has been erased */ 326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(addresstmp); 327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /*Increment sector number*/ 329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** addresstmp = pFlash.Address + FLASH_PAGE_SIZE; 330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Address = addresstmp; 331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* If the erase operation is completed, disable the PER Bit */ 333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PER); 334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** FLASH_PageErase(addresstmp); 336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else 338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* No more pages to Erase, user callback can be called. */ 340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Reset Sector and stop Erase pages procedure */ 341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Address = addresstmp = 0xFFFFFFFFU; 342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* FLASH EOP interrupt user callback */ 344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(addresstmp); 345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else if(pFlash.ProcedureOnGoing == FLASH_PROC_MASSERASE) 348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Operation is completed, disable the MER Bit */ 350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_MER); 351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* MassErase ended. Return the selected bank */ 353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* FLASH EOP interrupt user callback */ 354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(0); 355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Stop Mass Erase procedure*/ 357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else 360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Nb of 16-bit data to program can be decreased */ 362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.DataRemaining--; 363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Check if there are still 16-bit data to program */ 365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(pFlash.DataRemaining != 0U) 366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Increment address to 16-bit */ 368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Address += 2; 369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** addresstmp = pFlash.Address; 370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Shift to have next 16-bit data */ 372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Data = (pFlash.Data >> 16U); 373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Operation is completed, disable the PG Bit */ ARM GAS /tmp/cc21Th62.s page 8 375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PG); 376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /*Program halfword (16-bit) at a specified address.*/ 378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** FLASH_Program_HalfWord(addresstmp, (uint16_t)pFlash.Data); 379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else 381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program ended. Return the selected address */ 383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* FLASH EOP interrupt user callback */ 384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if (pFlash.ProcedureOnGoing == FLASH_PROC_PROGRAMHALFWORD) 385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Address); 387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else if (pFlash.ProcedureOnGoing == FLASH_PROC_PROGRAMWORD) 389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Address - 2U); 391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else 393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Address - 6U); 395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Reset Address and stop Program procedure */ 398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Address = 0xFFFFFFFFU; 399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(pFlash.ProcedureOnGoing == FLASH_PROC_NONE) 407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Operation is completed, disable the PG, PER and MER Bits */ 409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, (FLASH_CR_PG | FLASH_CR_PER | FLASH_CR_MER)); 410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Disable End of FLASH Operation and Error source interrupts */ 412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_FLASH_DISABLE_IT(FLASH_IT_EOP | FLASH_IT_ERR); 413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Process Unlocked */ 415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_UNLOCK(&pFlash); 416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief FLASH end of operation interrupt callback 421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param ReturnValue The value saved in this parameter depends on the ongoing procedure 422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * - Mass Erase: No return value expected 423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * - Pages Erase: Address of the page which has been erased 424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * (if 0xFFFFFFFF, it means that all the selected pages have been erased) 425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * - Program: Address which was selected for data program 426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval none 427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __weak void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue) 429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */ 431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** UNUSED(ReturnValue); ARM GAS /tmp/cc21Th62.s page 9 432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed, 434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** the HAL_FLASH_EndOfOperationCallback could be implemented in the user file 435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief FLASH operation error interrupt callback 440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param ReturnValue The value saved in this parameter depends on the ongoing procedure 441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * - Mass Erase: No return value expected 442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * - Pages Erase: Address of the page which returned an error 443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * - Program: Address which was selected for data program 444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval none 445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __weak void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue) 447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */ 449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** UNUSED(ReturnValue); 450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed, 452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** the HAL_FLASH_OperationErrorCallback could be implemented in the user file 453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @} 458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group2 Peripheral Control functions 461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief management functions 462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * 463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** @verbatim 464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** =============================================================================== 465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ##### Peripheral Control functions ##### 466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** =============================================================================== 467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** [..] 468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** This subsection provides a set of functions allowing to control the FLASH 469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** memory operations. 470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** @endverbatim 472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{ 473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Unlock the FLASH control register access 477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval HAL Status 478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Unlock(void) 480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK; 482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET) 484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Authorize the FLASH Registers access */ 486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY1); 487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY2); 488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ARM GAS /tmp/cc21Th62.s page 10 489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Verify Flash is unlocked */ 490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET) 491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** status = HAL_ERROR; 493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return status; 497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Locks the FLASH control register access 501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval HAL Status 502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Lock(void) 504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Set the LOCK Bit to lock the FLASH Registers access */ 506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** SET_BIT(FLASH->CR, FLASH_CR_LOCK); 507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return HAL_OK; 509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Unlock the FLASH Option Control Registers access. 513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval HAL Status 514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void) 516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if (HAL_IS_BIT_CLR(FLASH->CR, FLASH_CR_OPTWRE)) 518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Authorizes the Option Byte register programming */ 520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY1); 521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY2); 522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else 524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return HAL_ERROR; 526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return HAL_OK; 529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Lock the FLASH Option Control Registers access. 533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval HAL Status 534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Lock(void) 536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Clear the OPTWRE Bit to lock the FLASH Option Byte Registers access */ 538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTWRE); 539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return HAL_OK; 541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Launch the option byte loading. 545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @note This function will reset automatically the MCU. ARM GAS /tmp/cc21Th62.s page 11 546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval HAL Status 547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Launch(void) 549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Set the OBL_Launch bit to launch the option byte loading */ 551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** SET_BIT(FLASH->CR, FLASH_CR_OBL_LAUNCH); 552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Wait for last operation to be completed */ 554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return(FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE)); 555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @} 559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group3 Peripheral errors functions 562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Peripheral errors functions 563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * 564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** @verbatim 565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** =============================================================================== 566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ##### Peripheral Errors functions ##### 567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** =============================================================================== 568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** [..] 569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** This subsection permit to get in run-time errors of the FLASH peripheral. 570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** @endverbatim 572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{ 573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Get the specific FLASH error flag. 577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval FLASH_ErrorCode The returned value can be: 578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @ref FLASH_Error_Codes 579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** uint32_t HAL_FLASH_GetError(void) 581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return pFlash.ErrorCode; 583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @} 587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @} 591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @addtogroup FLASH_Private_Functions 594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{ 595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Program a half-word (16-bit) at a specified address. 599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param Address specify the address to be programmed. 600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param Data specify the data to be programmed. 601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval None 602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ ARM GAS /tmp/cc21Th62.s page 12 603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data) 604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 27 .loc 1 604 1 view -0 28 .cfi_startproc 29 @ args = 0, pretend = 0, frame = 0 30 @ frame_needed = 0, uses_anonymous_args = 0 31 .loc 1 604 1 is_stmt 0 view .LVU1 32 0000 10B5 push {r4, lr} 33 .LCFI0: 34 .cfi_def_cfa_offset 8 35 .cfi_offset 4, -8 36 .cfi_offset 14, -4 605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Clean the error context */ 606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; 37 .loc 1 606 3 is_stmt 1 view .LVU2 38 .loc 1 606 20 is_stmt 0 view .LVU3 39 0002 054B ldr r3, .L2 40 0004 0022 movs r2, #0 41 0006 DA61 str r2, [r3, #28] 607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Proceed to program the new data */ 609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** SET_BIT(FLASH->CR, FLASH_CR_PG); 42 .loc 1 609 5 is_stmt 1 view .LVU4 43 0008 044A ldr r2, .L2+4 44 000a 1369 ldr r3, [r2, #16] 45 000c 0124 movs r4, #1 46 000e 2343 orrs r3, r4 47 0010 1361 str r3, [r2, #16] 610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Write data in the address */ 612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** *(__IO uint16_t*)Address = Data; 48 .loc 1 612 3 view .LVU5 49 .loc 1 612 28 is_stmt 0 view .LVU6 50 0012 0180 strh r1, [r0] 613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 51 .loc 1 613 1 view .LVU7 52 @ sp needed 53 0014 10BD pop {r4, pc} 54 .L3: 55 0016 C046 .align 2 56 .L2: 57 0018 00000000 .word pFlash 58 001c 00200240 .word 1073881088 59 .cfi_endproc 60 .LFE51: 62 .section .text.FLASH_SetErrorCode,"ax",%progbits 63 .align 1 64 .syntax unified 65 .code 16 66 .thumb_func 67 .fpu softvfp 69 FLASH_SetErrorCode: 70 .LFB53: 614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Wait for a FLASH operation to complete. 617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param Timeout maximum flash operation timeout ARM GAS /tmp/cc21Th62.s page 13 618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval HAL Status 619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout) 621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset. 623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** Even if the FLASH operation fails, the BUSY flag will be reset and an error 624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** flag will be set */ 625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** uint32_t tickstart = HAL_GetTick(); 627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY)) 629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if (Timeout != HAL_MAX_DELAY) 631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if((Timeout == 0U) || ((HAL_GetTick()-tickstart) > Timeout)) 633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return HAL_TIMEOUT; 635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Check FLASH End of Operation flag */ 640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP)) 641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */ 643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP); 644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) || 647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR)) 648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /*Save the error code*/ 650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** FLASH_SetErrorCode(); 651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return HAL_ERROR; 652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* There is no error flag set */ 655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return HAL_OK; 656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** 660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Set the specific FLASH error flag. 661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval None 662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */ 663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** static void FLASH_SetErrorCode(void) 664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 71 .loc 1 664 1 is_stmt 1 view -0 72 .cfi_startproc 73 @ args = 0, pretend = 0, frame = 0 74 @ frame_needed = 0, uses_anonymous_args = 0 75 @ link register save eliminated. 665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** uint32_t flags = 0U; 76 .loc 1 665 3 view .LVU9 77 .LVL1: 666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR)) ARM GAS /tmp/cc21Th62.s page 14 78 .loc 1 667 3 view .LVU10 79 .loc 1 667 6 is_stmt 0 view .LVU11 80 0000 0C4B ldr r3, .L7 81 0002 DA68 ldr r2, [r3, #12] 82 0004 1023 movs r3, #16 83 0006 1340 ands r3, r2 84 .loc 1 667 5 view .LVU12 85 0008 05D0 beq .L5 668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP; 86 .loc 1 669 5 is_stmt 1 view .LVU13 87 .loc 1 669 22 is_stmt 0 view .LVU14 88 000a 0B4A ldr r2, .L7+4 89 000c D369 ldr r3, [r2, #28] 90 000e 0221 movs r1, #2 91 0010 0B43 orrs r3, r1 92 0012 D361 str r3, [r2, #28] 670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** flags |= FLASH_FLAG_WRPERR; 93 .loc 1 670 5 is_stmt 1 view .LVU15 94 .LVL2: 95 .loc 1 670 11 is_stmt 0 view .LVU16 96 0014 1023 movs r3, #16 97 .LVL3: 98 .L5: 671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR)) 99 .loc 1 672 3 is_stmt 1 view .LVU17 100 .loc 1 672 6 is_stmt 0 view .LVU18 101 0016 074A ldr r2, .L7 102 0018 D268 ldr r2, [r2, #12] 103 .loc 1 672 5 view .LVU19 104 001a 5207 lsls r2, r2, #29 105 001c 06D5 bpl .L6 673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_PROG; 106 .loc 1 674 5 is_stmt 1 view .LVU20 107 .loc 1 674 22 is_stmt 0 view .LVU21 108 001e 0649 ldr r1, .L7+4 109 0020 CA69 ldr r2, [r1, #28] 110 0022 0120 movs r0, #1 111 0024 0243 orrs r2, r0 112 0026 CA61 str r2, [r1, #28] 675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** flags |= FLASH_FLAG_PGERR; 113 .loc 1 675 5 is_stmt 1 view .LVU22 114 .loc 1 675 11 is_stmt 0 view .LVU23 115 0028 0422 movs r2, #4 116 002a 1343 orrs r3, r2 117 .LVL4: 118 .L6: 676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Clear FLASH error pending bits */ 678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(flags); 119 .loc 1 678 3 is_stmt 1 view .LVU24 120 002c 014A ldr r2, .L7 121 002e D360 str r3, [r2, #12] 679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 122 .loc 1 679 1 is_stmt 0 view .LVU25 ARM GAS /tmp/cc21Th62.s page 15 123 @ sp needed 124 0030 7047 bx lr 125 .L8: 126 0032 C046 .align 2 127 .L7: 128 0034 00200240 .word 1073881088 129 0038 00000000 .word pFlash 130 .cfi_endproc 131 .LFE53: 133 .section .text.HAL_FLASH_Program_IT,"ax",%progbits 134 .align 1 135 .global HAL_FLASH_Program_IT 136 .syntax unified 137 .code 16 138 .thumb_func 139 .fpu softvfp 141 HAL_FLASH_Program_IT: 142 .LVL5: 143 .LFB41: 240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK; 144 .loc 1 240 1 is_stmt 1 view -0 145 .cfi_startproc 146 @ args = 0, pretend = 0, frame = 0 147 @ frame_needed = 0, uses_anonymous_args = 0 240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK; 148 .loc 1 240 1 is_stmt 0 view .LVU27 149 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 150 .LCFI1: 151 .cfi_def_cfa_offset 24 152 .cfi_offset 3, -24 153 .cfi_offset 4, -20 154 .cfi_offset 5, -16 155 .cfi_offset 6, -12 156 .cfi_offset 7, -8 157 .cfi_offset 14, -4 158 0002 0C00 movs r4, r1 241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 159 .loc 1 241 3 is_stmt 1 view .LVU28 160 .LVL6: 244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 161 .loc 1 244 3 view .LVU29 244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 162 .loc 1 244 3 view .LVU30 163 0004 1549 ldr r1, .L17 164 .LVL7: 244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 165 .loc 1 244 3 is_stmt 0 view .LVU31 166 0006 097E ldrb r1, [r1, #24] 167 0008 0129 cmp r1, #1 168 000a 25D0 beq .L14 244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 169 .loc 1 244 3 is_stmt 1 discriminator 2 view .LVU32 170 000c 1349 ldr r1, .L17 171 000e 0125 movs r5, #1 172 0010 0D76 strb r5, [r1, #24] 247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(Address)); 173 .loc 1 247 3 discriminator 2 view .LVU33 ARM GAS /tmp/cc21Th62.s page 16 248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 174 .loc 1 248 3 discriminator 2 view .LVU34 251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 175 .loc 1 251 3 discriminator 2 view .LVU35 176 0012 134E ldr r6, .L17+4 177 0014 3769 ldr r7, [r6, #16] 178 0016 A025 movs r5, #160 179 0018 6D01 lsls r5, r5, #5 180 001a 3D43 orrs r5, r7 181 001c 3561 str r5, [r6, #16] 253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Data = Data; 182 .loc 1 253 3 discriminator 2 view .LVU36 253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Data = Data; 183 .loc 1 253 18 is_stmt 0 discriminator 2 view .LVU37 184 001e 8C60 str r4, [r1, #8] 254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 185 .loc 1 254 3 is_stmt 1 discriminator 2 view .LVU38 254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 186 .loc 1 254 15 is_stmt 0 discriminator 2 view .LVU39 187 0020 0A61 str r2, [r1, #16] 188 0022 4B61 str r3, [r1, #20] 256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 189 .loc 1 256 3 is_stmt 1 discriminator 2 view .LVU40 256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 190 .loc 1 256 5 is_stmt 0 discriminator 2 view .LVU41 191 0024 0128 cmp r0, #1 192 0026 0CD0 beq .L15 262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 193 .loc 1 262 8 is_stmt 1 view .LVU42 262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 194 .loc 1 262 10 is_stmt 0 view .LVU43 195 0028 0228 cmp r0, #2 196 002a 0FD0 beq .L16 270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program double word (64-bit : 4*16-bit) at a specified address. */ 197 .loc 1 270 5 is_stmt 1 view .LVU44 270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program double word (64-bit : 4*16-bit) at a specified address. */ 198 .loc 1 270 29 is_stmt 0 view .LVU45 199 002c 0B49 ldr r1, .L17 200 002e 0520 movs r0, #5 201 .LVL8: 270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program double word (64-bit : 4*16-bit) at a specified address. */ 202 .loc 1 270 29 view .LVU46 203 0030 0870 strb r0, [r1] 272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 204 .loc 1 272 5 is_stmt 1 view .LVU47 272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 205 .loc 1 272 26 is_stmt 0 view .LVU48 206 0032 0138 subs r0, r0, #1 207 0034 4860 str r0, [r1, #4] 208 .L12: 276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 209 .loc 1 276 3 is_stmt 1 view .LVU49 210 0036 91B2 uxth r1, r2 211 0038 2000 movs r0, r4 212 003a FFF7FEFF bl FLASH_Program_HalfWord 213 .LVL9: 278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } ARM GAS /tmp/cc21Th62.s page 17 214 .loc 1 278 3 view .LVU50 278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 215 .loc 1 278 10 is_stmt 0 view .LVU51 216 003e 0020 movs r0, #0 217 .L10: 279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 218 .loc 1 279 1 view .LVU52 219 @ sp needed 220 .LVL10: 279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 221 .loc 1 279 1 view .LVU53 222 0040 F8BD pop {r3, r4, r5, r6, r7, pc} 223 .LVL11: 224 .L15: 258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program halfword (16-bit) at a specified address. */ 225 .loc 1 258 5 is_stmt 1 view .LVU54 258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program halfword (16-bit) at a specified address. */ 226 .loc 1 258 29 is_stmt 0 view .LVU55 227 0042 0230 adds r0, r0, #2 228 .LVL12: 258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program halfword (16-bit) at a specified address. */ 229 .loc 1 258 29 view .LVU56 230 0044 0870 strb r0, [r1] 260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 231 .loc 1 260 5 is_stmt 1 view .LVU57 260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 232 .loc 1 260 26 is_stmt 0 view .LVU58 233 0046 0238 subs r0, r0, #2 234 .LVL13: 260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 235 .loc 1 260 26 view .LVU59 236 0048 4860 str r0, [r1, #4] 237 004a F4E7 b .L12 238 .L16: 264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program word (32-bit : 2*16-bit) at a specified address. */ 239 .loc 1 264 5 is_stmt 1 view .LVU60 264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program word (32-bit : 2*16-bit) at a specified address. */ 240 .loc 1 264 29 is_stmt 0 view .LVU61 241 004c 0349 ldr r1, .L17 242 004e 0230 adds r0, r0, #2 243 .LVL14: 264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program word (32-bit : 2*16-bit) at a specified address. */ 244 .loc 1 264 29 view .LVU62 245 0050 0870 strb r0, [r1] 266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 246 .loc 1 266 5 is_stmt 1 view .LVU63 266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 247 .loc 1 266 26 is_stmt 0 view .LVU64 248 0052 0238 subs r0, r0, #2 249 .LVL15: 266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 250 .loc 1 266 26 view .LVU65 251 0054 4860 str r0, [r1, #4] 252 0056 EEE7 b .L12 253 .L14: 244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 254 .loc 1 244 3 view .LVU66 ARM GAS /tmp/cc21Th62.s page 18 255 0058 0220 movs r0, #2 256 .LVL16: 244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 257 .loc 1 244 3 view .LVU67 258 005a F1E7 b .L10 259 .L18: 260 .align 2 261 .L17: 262 005c 00000000 .word pFlash 263 0060 00200240 .word 1073881088 264 .cfi_endproc 265 .LFE41: 267 .section .text.HAL_FLASH_EndOfOperationCallback,"ax",%progbits 268 .align 1 269 .weak HAL_FLASH_EndOfOperationCallback 270 .syntax unified 271 .code 16 272 .thumb_func 273 .fpu softvfp 275 HAL_FLASH_EndOfOperationCallback: 276 .LVL17: 277 .LFB43: 429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */ 278 .loc 1 429 1 is_stmt 1 view -0 279 .cfi_startproc 280 @ args = 0, pretend = 0, frame = 0 281 @ frame_needed = 0, uses_anonymous_args = 0 282 @ link register save eliminated. 431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 283 .loc 1 431 3 view .LVU69 436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 284 .loc 1 436 1 is_stmt 0 view .LVU70 285 @ sp needed 286 0000 7047 bx lr 287 .cfi_endproc 288 .LFE43: 290 .section .text.HAL_FLASH_OperationErrorCallback,"ax",%progbits 291 .align 1 292 .weak HAL_FLASH_OperationErrorCallback 293 .syntax unified 294 .code 16 295 .thumb_func 296 .fpu softvfp 298 HAL_FLASH_OperationErrorCallback: 299 .LVL18: 300 .LFB44: 447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */ 301 .loc 1 447 1 is_stmt 1 view -0 302 .cfi_startproc 303 @ args = 0, pretend = 0, frame = 0 304 @ frame_needed = 0, uses_anonymous_args = 0 305 @ link register save eliminated. 449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 306 .loc 1 449 3 view .LVU72 454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 307 .loc 1 454 1 is_stmt 0 view .LVU73 308 @ sp needed ARM GAS /tmp/cc21Th62.s page 19 309 0000 7047 bx lr 310 .cfi_endproc 311 .LFE44: 313 .section .text.HAL_FLASH_IRQHandler,"ax",%progbits 314 .align 1 315 .global HAL_FLASH_IRQHandler 316 .syntax unified 317 .code 16 318 .thumb_func 319 .fpu softvfp 321 HAL_FLASH_IRQHandler: 322 .LFB42: 286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** uint32_t addresstmp = 0U; 323 .loc 1 286 1 is_stmt 1 view -0 324 .cfi_startproc 325 @ args = 0, pretend = 0, frame = 0 326 @ frame_needed = 0, uses_anonymous_args = 0 327 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 328 .LCFI2: 329 .cfi_def_cfa_offset 24 330 .cfi_offset 3, -24 331 .cfi_offset 4, -20 332 .cfi_offset 5, -16 333 .cfi_offset 6, -12 334 .cfi_offset 7, -8 335 .cfi_offset 14, -4 287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 336 .loc 1 287 3 view .LVU75 337 .LVL19: 290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 338 .loc 1 290 3 view .LVU76 290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 339 .loc 1 290 6 is_stmt 0 view .LVU77 340 0002 514B ldr r3, .L38 341 0004 DB68 ldr r3, [r3, #12] 290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 342 .loc 1 290 5 view .LVU78 343 0006 DB06 lsls r3, r3, #27 344 0008 03D4 bmi .L22 290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 345 .loc 1 290 48 discriminator 1 view .LVU79 346 000a 4F4B ldr r3, .L38 347 000c DB68 ldr r3, [r3, #12] 290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 348 .loc 1 290 46 discriminator 1 view .LVU80 349 000e 5B07 lsls r3, r3, #29 350 0010 0BD5 bpl .L23 351 .L22: 293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Reset address */ 352 .loc 1 293 5 is_stmt 1 view .LVU81 293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Reset address */ 353 .loc 1 293 16 is_stmt 0 view .LVU82 354 0012 4E4C ldr r4, .L38+4 355 0014 A568 ldr r5, [r4, #8] 356 .LVL20: 295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 357 .loc 1 295 5 is_stmt 1 view .LVU83 ARM GAS /tmp/cc21Th62.s page 20 295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 358 .loc 1 295 20 is_stmt 0 view .LVU84 359 0016 0123 movs r3, #1 360 0018 5B42 rsbs r3, r3, #0 361 001a A360 str r3, [r4, #8] 298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 362 .loc 1 298 5 is_stmt 1 view .LVU85 363 001c FFF7FEFF bl FLASH_SetErrorCode 364 .LVL21: 301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 365 .loc 1 301 5 view .LVU86 366 0020 2800 movs r0, r5 367 0022 FFF7FEFF bl HAL_FLASH_OperationErrorCallback 368 .LVL22: 304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 369 .loc 1 304 5 view .LVU87 304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 370 .loc 1 304 29 is_stmt 0 view .LVU88 371 0026 0023 movs r3, #0 372 0028 2370 strb r3, [r4] 373 .LVL23: 374 .L23: 308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 375 .loc 1 308 3 is_stmt 1 view .LVU89 308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 376 .loc 1 308 6 is_stmt 0 view .LVU90 377 002a 474B ldr r3, .L38 378 002c DB68 ldr r3, [r3, #12] 308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 379 .loc 1 308 5 view .LVU91 380 002e 9B06 lsls r3, r3, #26 381 0030 28D5 bpl .L24 311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 382 .loc 1 311 5 is_stmt 1 view .LVU92 383 0032 454B ldr r3, .L38 384 0034 2022 movs r2, #32 385 0036 DA60 str r2, [r3, #12] 314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 386 .loc 1 314 5 view .LVU93 314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 387 .loc 1 314 14 is_stmt 0 view .LVU94 388 0038 444B ldr r3, .L38+4 389 003a 1B78 ldrb r3, [r3] 314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 390 .loc 1 314 7 view .LVU95 391 003c 002B cmp r3, #0 392 003e 21D0 beq .L24 316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 393 .loc 1 316 7 is_stmt 1 view .LVU96 316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 394 .loc 1 316 16 is_stmt 0 view .LVU97 395 0040 424B ldr r3, .L38+4 396 0042 1B78 ldrb r3, [r3] 316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 397 .loc 1 316 9 view .LVU98 398 0044 012B cmp r3, #1 399 0046 2ED0 beq .L33 ARM GAS /tmp/cc21Th62.s page 21 347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 400 .loc 1 347 12 is_stmt 1 view .LVU99 347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 401 .loc 1 347 21 is_stmt 0 view .LVU100 402 0048 404B ldr r3, .L38+4 403 004a 1B78 ldrb r3, [r3] 347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 404 .loc 1 347 14 view .LVU101 405 004c 022B cmp r3, #2 406 004e 4CD0 beq .L34 362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 407 .loc 1 362 9 is_stmt 1 view .LVU102 362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 408 .loc 1 362 15 is_stmt 0 view .LVU103 409 0050 3E4B ldr r3, .L38+4 410 0052 5A68 ldr r2, [r3, #4] 362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 411 .loc 1 362 29 view .LVU104 412 0054 013A subs r2, r2, #1 413 0056 5A60 str r2, [r3, #4] 365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 414 .loc 1 365 9 is_stmt 1 view .LVU105 365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 415 .loc 1 365 18 is_stmt 0 view .LVU106 416 0058 5B68 ldr r3, [r3, #4] 365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 417 .loc 1 365 11 view .LVU107 418 005a 002B cmp r3, #0 419 005c 51D1 bne .L35 384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 420 .loc 1 384 11 is_stmt 1 view .LVU108 384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 421 .loc 1 384 21 is_stmt 0 view .LVU109 422 005e 3B4B ldr r3, .L38+4 423 0060 1B78 ldrb r3, [r3] 384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 424 .loc 1 384 14 view .LVU110 425 0062 032B cmp r3, #3 426 0064 65D0 beq .L36 388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 427 .loc 1 388 16 is_stmt 1 view .LVU111 388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 428 .loc 1 388 26 is_stmt 0 view .LVU112 429 0066 394B ldr r3, .L38+4 430 0068 1B78 ldrb r3, [r3] 388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 431 .loc 1 388 19 view .LVU113 432 006a 042B cmp r3, #4 433 006c 66D0 beq .L37 394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 434 .loc 1 394 13 is_stmt 1 view .LVU114 394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 435 .loc 1 394 52 is_stmt 0 view .LVU115 436 006e 374B ldr r3, .L38+4 437 0070 9868 ldr r0, [r3, #8] 394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 438 .loc 1 394 13 view .LVU116 ARM GAS /tmp/cc21Th62.s page 22 439 0072 0638 subs r0, r0, #6 440 0074 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback 441 .LVL24: 442 .L30: 398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 443 .loc 1 398 11 is_stmt 1 view .LVU117 398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 444 .loc 1 398 26 is_stmt 0 view .LVU118 445 0078 344B ldr r3, .L38+4 446 007a 0122 movs r2, #1 447 007c 5242 rsbs r2, r2, #0 448 007e 9A60 str r2, [r3, #8] 399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 449 .loc 1 399 11 is_stmt 1 view .LVU119 399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 450 .loc 1 399 35 is_stmt 0 view .LVU120 451 0080 0022 movs r2, #0 452 0082 1A70 strb r2, [r3] 453 .L24: 406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 454 .loc 1 406 3 is_stmt 1 view .LVU121 406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 455 .loc 1 406 12 is_stmt 0 view .LVU122 456 0084 314B ldr r3, .L38+4 457 0086 1B78 ldrb r3, [r3] 406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 458 .loc 1 406 5 view .LVU123 459 0088 002B cmp r3, #0 460 008a 0BD1 bne .L21 409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 461 .loc 1 409 5 is_stmt 1 view .LVU124 462 008c 2E4B ldr r3, .L38 463 008e 1A69 ldr r2, [r3, #16] 464 0090 0721 movs r1, #7 465 0092 8A43 bics r2, r1 466 0094 1A61 str r2, [r3, #16] 412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 467 .loc 1 412 5 view .LVU125 468 0096 1A69 ldr r2, [r3, #16] 469 0098 2D49 ldr r1, .L38+8 470 009a 0A40 ands r2, r1 471 009c 1A61 str r2, [r3, #16] 415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 472 .loc 1 415 5 view .LVU126 415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 473 .loc 1 415 5 view .LVU127 474 009e 2B4B ldr r3, .L38+4 475 00a0 0022 movs r2, #0 476 00a2 1A76 strb r2, [r3, #24] 477 .L21: 417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 478 .loc 1 417 1 is_stmt 0 view .LVU128 479 @ sp needed 480 00a4 F8BD pop {r3, r4, r5, r6, r7, pc} 481 .L33: 319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 482 .loc 1 319 9 is_stmt 1 view .LVU129 ARM GAS /tmp/cc21Th62.s page 23 319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 483 .loc 1 319 15 is_stmt 0 view .LVU130 484 00a6 294B ldr r3, .L38+4 485 00a8 5A68 ldr r2, [r3, #4] 319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 486 .loc 1 319 29 view .LVU131 487 00aa 013A subs r2, r2, #1 488 00ac 5A60 str r2, [r3, #4] 322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 489 .loc 1 322 9 is_stmt 1 view .LVU132 322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 490 .loc 1 322 18 is_stmt 0 view .LVU133 491 00ae 5B68 ldr r3, [r3, #4] 322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 492 .loc 1 322 11 view .LVU134 493 00b0 002B cmp r3, #0 494 00b2 11D0 beq .L26 324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /*Indicate user which sector has been erased */ 495 .loc 1 324 11 is_stmt 1 view .LVU135 324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /*Indicate user which sector has been erased */ 496 .loc 1 324 22 is_stmt 0 view .LVU136 497 00b4 254C ldr r4, .L38+4 498 00b6 A068 ldr r0, [r4, #8] 499 .LVL25: 326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 500 .loc 1 326 11 is_stmt 1 view .LVU137 501 00b8 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback 502 .LVL26: 329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Address = addresstmp; 503 .loc 1 329 11 view .LVU138 329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Address = addresstmp; 504 .loc 1 329 30 is_stmt 0 view .LVU139 505 00bc A068 ldr r0, [r4, #8] 329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Address = addresstmp; 506 .loc 1 329 22 view .LVU140 507 00be 8023 movs r3, #128 508 00c0 DB00 lsls r3, r3, #3 509 00c2 9C46 mov ip, r3 510 00c4 6044 add r0, r0, ip 511 .LVL27: 330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 512 .loc 1 330 11 is_stmt 1 view .LVU141 330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 513 .loc 1 330 26 is_stmt 0 view .LVU142 514 00c6 A060 str r0, [r4, #8] 333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 515 .loc 1 333 11 is_stmt 1 view .LVU143 516 00c8 1F4A ldr r2, .L38 517 00ca 1369 ldr r3, [r2, #16] 518 00cc 0221 movs r1, #2 519 00ce 8B43 bics r3, r1 520 00d0 1361 str r3, [r2, #16] 335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 521 .loc 1 335 11 view .LVU144 522 00d2 FFF7FEFF bl FLASH_PageErase 523 .LVL28: 335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } ARM GAS /tmp/cc21Th62.s page 24 524 .loc 1 335 11 is_stmt 0 view .LVU145 525 00d6 D5E7 b .L24 526 .L26: 341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 527 .loc 1 341 11 is_stmt 1 view .LVU146 528 .LVL29: 341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 529 .loc 1 341 26 is_stmt 0 view .LVU147 530 00d8 1C4B ldr r3, .L38+4 531 00da 0120 movs r0, #1 532 00dc 4042 rsbs r0, r0, #0 533 00de 9860 str r0, [r3, #8] 342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* FLASH EOP interrupt user callback */ 534 .loc 1 342 11 is_stmt 1 view .LVU148 342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* FLASH EOP interrupt user callback */ 535 .loc 1 342 35 is_stmt 0 view .LVU149 536 00e0 0022 movs r2, #0 537 00e2 1A70 strb r2, [r3] 344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 538 .loc 1 344 11 is_stmt 1 view .LVU150 539 00e4 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback 540 .LVL30: 541 00e8 CCE7 b .L24 542 .LVL31: 543 .L34: 350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 544 .loc 1 350 9 view .LVU151 545 00ea 174A ldr r2, .L38 546 00ec 1369 ldr r3, [r2, #16] 547 00ee 0421 movs r1, #4 548 00f0 8B43 bics r3, r1 549 00f2 1361 str r3, [r2, #16] 354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 550 .loc 1 354 11 view .LVU152 551 00f4 0020 movs r0, #0 552 00f6 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback 553 .LVL32: 357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 554 .loc 1 357 11 view .LVU153 357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 555 .loc 1 357 35 is_stmt 0 view .LVU154 556 00fa 144B ldr r3, .L38+4 557 00fc 0022 movs r2, #0 558 00fe 1A70 strb r2, [r3] 559 0100 C0E7 b .L24 560 .L35: 368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** addresstmp = pFlash.Address; 561 .loc 1 368 11 is_stmt 1 view .LVU155 368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** addresstmp = pFlash.Address; 562 .loc 1 368 26 is_stmt 0 view .LVU156 563 0102 124B ldr r3, .L38+4 564 0104 9A68 ldr r2, [r3, #8] 565 0106 0232 adds r2, r2, #2 566 0108 9A60 str r2, [r3, #8] 369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 567 .loc 1 369 11 is_stmt 1 view .LVU157 369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ARM GAS /tmp/cc21Th62.s page 25 568 .loc 1 369 22 is_stmt 0 view .LVU158 569 010a 9868 ldr r0, [r3, #8] 570 .LVL33: 372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 571 .loc 1 372 11 is_stmt 1 view .LVU159 372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 572 .loc 1 372 32 is_stmt 0 view .LVU160 573 010c 1E69 ldr r6, [r3, #16] 574 010e 5F69 ldr r7, [r3, #20] 372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 575 .loc 1 372 38 view .LVU161 576 0110 3A04 lsls r2, r7, #16 577 0112 340C lsrs r4, r6, #16 578 0114 1443 orrs r4, r2 579 0116 3D0C lsrs r5, r7, #16 372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 580 .loc 1 372 23 view .LVU162 581 0118 1C61 str r4, [r3, #16] 582 011a 5D61 str r5, [r3, #20] 375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 583 .loc 1 375 11 is_stmt 1 view .LVU163 584 011c 0A49 ldr r1, .L38 585 011e 0A69 ldr r2, [r1, #16] 586 0120 0124 movs r4, #1 587 0122 A243 bics r2, r4 588 0124 0A61 str r2, [r1, #16] 378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 589 .loc 1 378 11 view .LVU164 378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 590 .loc 1 378 62 is_stmt 0 view .LVU165 591 0126 1A69 ldr r2, [r3, #16] 592 0128 5B69 ldr r3, [r3, #20] 378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 593 .loc 1 378 11 view .LVU166 594 012a 91B2 uxth r1, r2 595 012c FFF7FEFF bl FLASH_Program_HalfWord 596 .LVL34: 378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 597 .loc 1 378 11 view .LVU167 598 0130 A8E7 b .L24 599 .L36: 386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 600 .loc 1 386 13 is_stmt 1 view .LVU168 601 0132 064B ldr r3, .L38+4 602 0134 9868 ldr r0, [r3, #8] 603 0136 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback 604 .LVL35: 605 013a 9DE7 b .L30 606 .L37: 390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 607 .loc 1 390 13 view .LVU169 390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 608 .loc 1 390 52 is_stmt 0 view .LVU170 609 013c 034B ldr r3, .L38+4 610 013e 9868 ldr r0, [r3, #8] 390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 611 .loc 1 390 13 view .LVU171 ARM GAS /tmp/cc21Th62.s page 26 612 0140 0238 subs r0, r0, #2 613 0142 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback 614 .LVL36: 615 0146 97E7 b .L30 616 .L39: 617 .align 2 618 .L38: 619 0148 00200240 .word 1073881088 620 014c 00000000 .word pFlash 621 0150 FFEBFFFF .word -5121 622 .cfi_endproc 623 .LFE42: 625 .section .text.HAL_FLASH_Unlock,"ax",%progbits 626 .align 1 627 .global HAL_FLASH_Unlock 628 .syntax unified 629 .code 16 630 .thumb_func 631 .fpu softvfp 633 HAL_FLASH_Unlock: 634 .LFB45: 480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK; 635 .loc 1 480 1 is_stmt 1 view -0 636 .cfi_startproc 637 @ args = 0, pretend = 0, frame = 0 638 @ frame_needed = 0, uses_anonymous_args = 0 639 @ link register save eliminated. 481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 640 .loc 1 481 3 view .LVU173 641 .LVL37: 483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 642 .loc 1 483 3 view .LVU174 483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 643 .loc 1 483 6 is_stmt 0 view .LVU175 644 0000 084B ldr r3, .L44 645 0002 1B69 ldr r3, [r3, #16] 483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 646 .loc 1 483 5 view .LVU176 647 0004 1B06 lsls r3, r3, #24 648 0006 09D5 bpl .L42 486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY2); 649 .loc 1 486 5 is_stmt 1 view .LVU177 650 0008 064B ldr r3, .L44 651 000a 074A ldr r2, .L44+4 652 000c 5A60 str r2, [r3, #4] 487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 653 .loc 1 487 5 view .LVU178 654 000e 074A ldr r2, .L44+8 655 0010 5A60 str r2, [r3, #4] 490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 656 .loc 1 490 5 view .LVU179 490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 657 .loc 1 490 8 is_stmt 0 view .LVU180 658 0012 1B69 ldr r3, [r3, #16] 490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 659 .loc 1 490 7 view .LVU181 660 0014 1B06 lsls r3, r3, #24 ARM GAS /tmp/cc21Th62.s page 27 661 0016 03D4 bmi .L43 481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 662 .loc 1 481 21 view .LVU182 663 0018 0020 movs r0, #0 664 001a 00E0 b .L41 665 .L42: 666 001c 0020 movs r0, #0 667 .L41: 668 .LVL38: 496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 669 .loc 1 496 3 is_stmt 1 view .LVU183 497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 670 .loc 1 497 1 is_stmt 0 view .LVU184 671 @ sp needed 672 001e 7047 bx lr 673 .LVL39: 674 .L43: 492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 675 .loc 1 492 14 view .LVU185 676 0020 0120 movs r0, #1 677 0022 FCE7 b .L41 678 .L45: 679 .align 2 680 .L44: 681 0024 00200240 .word 1073881088 682 0028 23016745 .word 1164378403 683 002c AB89EFCD .word -839939669 684 .cfi_endproc 685 .LFE45: 687 .section .text.HAL_FLASH_Lock,"ax",%progbits 688 .align 1 689 .global HAL_FLASH_Lock 690 .syntax unified 691 .code 16 692 .thumb_func 693 .fpu softvfp 695 HAL_FLASH_Lock: 696 .LFB46: 504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Set the LOCK Bit to lock the FLASH Registers access */ 697 .loc 1 504 1 is_stmt 1 view -0 698 .cfi_startproc 699 @ args = 0, pretend = 0, frame = 0 700 @ frame_needed = 0, uses_anonymous_args = 0 701 @ link register save eliminated. 506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 702 .loc 1 506 3 view .LVU187 703 0000 034A ldr r2, .L47 704 0002 1369 ldr r3, [r2, #16] 705 0004 8021 movs r1, #128 706 0006 0B43 orrs r3, r1 707 0008 1361 str r3, [r2, #16] 508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 708 .loc 1 508 3 view .LVU188 509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 709 .loc 1 509 1 is_stmt 0 view .LVU189 710 000a 0020 movs r0, #0 711 @ sp needed ARM GAS /tmp/cc21Th62.s page 28 712 000c 7047 bx lr 713 .L48: 714 000e C046 .align 2 715 .L47: 716 0010 00200240 .word 1073881088 717 .cfi_endproc 718 .LFE46: 720 .section .text.HAL_FLASH_OB_Unlock,"ax",%progbits 721 .align 1 722 .global HAL_FLASH_OB_Unlock 723 .syntax unified 724 .code 16 725 .thumb_func 726 .fpu softvfp 728 HAL_FLASH_OB_Unlock: 729 .LFB47: 516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if (HAL_IS_BIT_CLR(FLASH->CR, FLASH_CR_OPTWRE)) 730 .loc 1 516 1 is_stmt 1 view -0 731 .cfi_startproc 732 @ args = 0, pretend = 0, frame = 0 733 @ frame_needed = 0, uses_anonymous_args = 0 734 @ link register save eliminated. 517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 735 .loc 1 517 3 view .LVU191 517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 736 .loc 1 517 7 is_stmt 0 view .LVU192 737 0000 064B ldr r3, .L52 738 0002 1B69 ldr r3, [r3, #16] 517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 739 .loc 1 517 6 view .LVU193 740 0004 9B05 lsls r3, r3, #22 741 0006 06D4 bmi .L51 520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY2); 742 .loc 1 520 5 is_stmt 1 view .LVU194 743 0008 044B ldr r3, .L52 744 000a 054A ldr r2, .L52+4 745 000c 9A60 str r2, [r3, #8] 521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 746 .loc 1 521 5 view .LVU195 747 000e 054A ldr r2, .L52+8 748 0010 9A60 str r2, [r3, #8] 528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 749 .loc 1 528 3 view .LVU196 528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 750 .loc 1 528 10 is_stmt 0 view .LVU197 751 0012 0020 movs r0, #0 752 .L50: 529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 753 .loc 1 529 1 view .LVU198 754 @ sp needed 755 0014 7047 bx lr 756 .L51: 525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 757 .loc 1 525 12 view .LVU199 758 0016 0120 movs r0, #1 759 0018 FCE7 b .L50 760 .L53: ARM GAS /tmp/cc21Th62.s page 29 761 001a C046 .align 2 762 .L52: 763 001c 00200240 .word 1073881088 764 0020 23016745 .word 1164378403 765 0024 AB89EFCD .word -839939669 766 .cfi_endproc 767 .LFE47: 769 .section .text.HAL_FLASH_OB_Lock,"ax",%progbits 770 .align 1 771 .global HAL_FLASH_OB_Lock 772 .syntax unified 773 .code 16 774 .thumb_func 775 .fpu softvfp 777 HAL_FLASH_OB_Lock: 778 .LFB48: 536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Clear the OPTWRE Bit to lock the FLASH Option Byte Registers access */ 779 .loc 1 536 1 is_stmt 1 view -0 780 .cfi_startproc 781 @ args = 0, pretend = 0, frame = 0 782 @ frame_needed = 0, uses_anonymous_args = 0 783 @ link register save eliminated. 538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 784 .loc 1 538 3 view .LVU201 785 0000 034A ldr r2, .L55 786 0002 1369 ldr r3, [r2, #16] 787 0004 0349 ldr r1, .L55+4 788 0006 0B40 ands r3, r1 789 0008 1361 str r3, [r2, #16] 540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 790 .loc 1 540 3 view .LVU202 541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 791 .loc 1 541 1 is_stmt 0 view .LVU203 792 000a 0020 movs r0, #0 793 @ sp needed 794 000c 7047 bx lr 795 .L56: 796 000e C046 .align 2 797 .L55: 798 0010 00200240 .word 1073881088 799 0014 FFFDFFFF .word -513 800 .cfi_endproc 801 .LFE48: 803 .section .text.HAL_FLASH_GetError,"ax",%progbits 804 .align 1 805 .global HAL_FLASH_GetError 806 .syntax unified 807 .code 16 808 .thumb_func 809 .fpu softvfp 811 HAL_FLASH_GetError: 812 .LFB50: 581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return pFlash.ErrorCode; 813 .loc 1 581 1 is_stmt 1 view -0 814 .cfi_startproc 815 @ args = 0, pretend = 0, frame = 0 816 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/cc21Th62.s page 30 817 @ link register save eliminated. 582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 818 .loc 1 582 4 view .LVU205 582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 819 .loc 1 582 17 is_stmt 0 view .LVU206 820 0000 014B ldr r3, .L58 821 0002 D869 ldr r0, [r3, #28] 583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 822 .loc 1 583 1 view .LVU207 823 @ sp needed 824 0004 7047 bx lr 825 .L59: 826 0006 C046 .align 2 827 .L58: 828 0008 00000000 .word pFlash 829 .cfi_endproc 830 .LFE50: 832 .section .text.FLASH_WaitForLastOperation,"ax",%progbits 833 .align 1 834 .global FLASH_WaitForLastOperation 835 .syntax unified 836 .code 16 837 .thumb_func 838 .fpu softvfp 840 FLASH_WaitForLastOperation: 841 .LVL40: 842 .LFB52: 621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset. 843 .loc 1 621 1 is_stmt 1 view -0 844 .cfi_startproc 845 @ args = 0, pretend = 0, frame = 0 846 @ frame_needed = 0, uses_anonymous_args = 0 621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset. 847 .loc 1 621 1 is_stmt 0 view .LVU209 848 0000 70B5 push {r4, r5, r6, lr} 849 .LCFI3: 850 .cfi_def_cfa_offset 16 851 .cfi_offset 4, -16 852 .cfi_offset 5, -12 853 .cfi_offset 6, -8 854 .cfi_offset 14, -4 855 0002 0400 movs r4, r0 626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 856 .loc 1 626 3 is_stmt 1 view .LVU210 626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 857 .loc 1 626 24 is_stmt 0 view .LVU211 858 0004 FFF7FEFF bl HAL_GetTick 859 .LVL41: 626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 860 .loc 1 626 24 view .LVU212 861 0008 0500 movs r5, r0 862 .LVL42: 628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 863 .loc 1 628 3 is_stmt 1 view .LVU213 864 .L62: 628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 865 .loc 1 628 9 is_stmt 0 view .LVU214 ARM GAS /tmp/cc21Th62.s page 31 866 000a 124B ldr r3, .L70 867 000c DB68 ldr r3, [r3, #12] 628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 868 .loc 1 628 8 view .LVU215 869 000e DB07 lsls r3, r3, #31 870 0010 0AD5 bpl .L69 630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 871 .loc 1 630 5 is_stmt 1 view .LVU216 630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 872 .loc 1 630 8 is_stmt 0 view .LVU217 873 0012 631C adds r3, r4, #1 874 0014 F9D0 beq .L62 632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 875 .loc 1 632 7 is_stmt 1 view .LVU218 632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 876 .loc 1 632 9 is_stmt 0 view .LVU219 877 0016 002C cmp r4, #0 878 0018 04D0 beq .L63 632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 879 .loc 1 632 31 discriminator 1 view .LVU220 880 001a FFF7FEFF bl HAL_GetTick 881 .LVL43: 632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 882 .loc 1 632 44 discriminator 1 view .LVU221 883 001e 401B subs r0, r0, r5 632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 884 .loc 1 632 26 discriminator 1 view .LVU222 885 0020 A042 cmp r0, r4 886 0022 F2D9 bls .L62 887 .L63: 634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 888 .loc 1 634 9 is_stmt 1 view .LVU223 634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 889 .loc 1 634 16 is_stmt 0 view .LVU224 890 0024 0320 movs r0, #3 891 0026 0FE0 b .L64 892 .L69: 640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 893 .loc 1 640 3 is_stmt 1 view .LVU225 640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 894 .loc 1 640 7 is_stmt 0 view .LVU226 895 0028 0A4B ldr r3, .L70 896 002a DB68 ldr r3, [r3, #12] 640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 897 .loc 1 640 6 view .LVU227 898 002c 9B06 lsls r3, r3, #26 899 002e 02D5 bpl .L66 643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 900 .loc 1 643 5 is_stmt 1 view .LVU228 901 0030 084B ldr r3, .L70 902 0032 2022 movs r2, #32 903 0034 DA60 str r2, [r3, #12] 904 .L66: 646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR)) 905 .loc 1 646 3 view .LVU229 646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR)) 906 .loc 1 646 6 is_stmt 0 view .LVU230 ARM GAS /tmp/cc21Th62.s page 32 907 0036 074B ldr r3, .L70 908 0038 DB68 ldr r3, [r3, #12] 646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR)) 909 .loc 1 646 5 view .LVU231 910 003a DB06 lsls r3, r3, #27 911 003c 05D4 bmi .L67 647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 912 .loc 1 647 6 discriminator 1 view .LVU232 913 003e 054B ldr r3, .L70 914 0040 DB68 ldr r3, [r3, #12] 646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR)) 915 .loc 1 646 47 discriminator 1 view .LVU233 916 0042 5B07 lsls r3, r3, #29 917 0044 01D4 bmi .L67 655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 918 .loc 1 655 10 view .LVU234 919 0046 0020 movs r0, #0 920 .L64: 656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 921 .loc 1 656 1 view .LVU235 922 @ sp needed 923 .LVL44: 924 .LVL45: 656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 925 .loc 1 656 1 view .LVU236 926 0048 70BD pop {r4, r5, r6, pc} 927 .LVL46: 928 .L67: 650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return HAL_ERROR; 929 .loc 1 650 5 is_stmt 1 view .LVU237 930 004a FFF7FEFF bl FLASH_SetErrorCode 931 .LVL47: 651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 932 .loc 1 651 5 view .LVU238 651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 933 .loc 1 651 12 is_stmt 0 view .LVU239 934 004e 0120 movs r0, #1 935 0050 FAE7 b .L64 936 .L71: 937 0052 C046 .align 2 938 .L70: 939 0054 00200240 .word 1073881088 940 .cfi_endproc 941 .LFE52: 943 .section .text.HAL_FLASH_Program,"ax",%progbits 944 .align 1 945 .global HAL_FLASH_Program 946 .syntax unified 947 .code 16 948 .thumb_func 949 .fpu softvfp 951 HAL_FLASH_Program: 952 .LVL48: 953 .LFB40: 168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_ERROR; 954 .loc 1 168 1 is_stmt 1 view -0 955 .cfi_startproc ARM GAS /tmp/cc21Th62.s page 33 956 @ args = 0, pretend = 0, frame = 0 957 @ frame_needed = 0, uses_anonymous_args = 0 168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_ERROR; 958 .loc 1 168 1 is_stmt 0 view .LVU241 959 0000 F0B5 push {r4, r5, r6, r7, lr} 960 .LCFI4: 961 .cfi_def_cfa_offset 20 962 .cfi_offset 4, -20 963 .cfi_offset 5, -16 964 .cfi_offset 6, -12 965 .cfi_offset 7, -8 966 .cfi_offset 14, -4 967 0002 C646 mov lr, r8 968 0004 00B5 push {lr} 969 .LCFI5: 970 .cfi_def_cfa_offset 24 971 .cfi_offset 8, -24 972 0006 0700 movs r7, r0 973 0008 0D00 movs r5, r1 974 000a 9046 mov r8, r2 975 000c 1E00 movs r6, r3 169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** uint8_t index = 0U; 976 .loc 1 169 3 is_stmt 1 view .LVU242 977 .LVL49: 170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** uint8_t nbiterations = 0U; 978 .loc 1 170 3 view .LVU243 171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 979 .loc 1 171 3 view .LVU244 174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 980 .loc 1 174 3 view .LVU245 174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 981 .loc 1 174 3 view .LVU246 982 000e 1F4B ldr r3, .L83 983 0010 1B7E ldrb r3, [r3, #24] 984 0012 012B cmp r3, #1 985 0014 38D0 beq .L80 174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 986 .loc 1 174 3 discriminator 2 view .LVU247 987 0016 1D4B ldr r3, .L83 988 0018 0122 movs r2, #1 989 .LVL50: 174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 990 .loc 1 174 3 is_stmt 0 discriminator 2 view .LVU248 991 001a 1A76 strb r2, [r3, #24] 177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(Address)); 992 .loc 1 177 3 is_stmt 1 discriminator 2 view .LVU249 178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 993 .loc 1 178 3 discriminator 2 view .LVU250 181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 994 .loc 1 181 5 discriminator 2 view .LVU251 181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 995 .loc 1 181 14 is_stmt 0 discriminator 2 view .LVU252 996 001c 1C48 ldr r0, .L83+4 997 .LVL51: 181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 998 .loc 1 181 14 discriminator 2 view .LVU253 999 001e FFF7FEFF bl FLASH_WaitForLastOperation ARM GAS /tmp/cc21Th62.s page 34 1000 .LVL52: 181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 1001 .loc 1 181 14 discriminator 2 view .LVU254 1002 0022 041E subs r4, r0, #0 1003 .LVL53: 183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 1004 .loc 1 183 3 is_stmt 1 discriminator 2 view .LVU255 183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 1005 .loc 1 183 5 is_stmt 0 discriminator 2 view .LVU256 1006 0024 2AD1 bne .L74 185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 1007 .loc 1 185 5 is_stmt 1 view .LVU257 185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 1008 .loc 1 185 7 is_stmt 0 view .LVU258 1009 0026 012F cmp r7, #1 1010 0028 03D0 beq .L81 190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 1011 .loc 1 190 10 is_stmt 1 view .LVU259 190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 1012 .loc 1 190 12 is_stmt 0 view .LVU260 1013 002a 022F cmp r7, #2 1014 002c 1BD0 beq .L76 198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 1015 .loc 1 198 20 view .LVU261 1016 002e 0427 movs r7, #4 1017 .LVL54: 201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 1018 .loc 1 201 5 is_stmt 1 view .LVU262 201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 1019 .loc 1 201 5 is_stmt 0 view .LVU263 1020 0030 19E0 b .L76 1021 .LVL55: 1022 .L81: 188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 1023 .loc 1 188 20 view .LVU264 1024 0032 0127 movs r7, #1 1025 .LVL56: 188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 1026 .loc 1 188 20 view .LVU265 1027 0034 17E0 b .L76 1028 .LVL57: 1029 .L77: 203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 1030 .loc 1 203 70 view .LVU266 1031 0036 2022 movs r2, #32 1032 0038 D21A subs r2, r2, r3 1033 003a 3100 movs r1, r6 1034 003c 9140 lsls r1, r1, r2 1035 003e 0A00 movs r2, r1 1036 0040 4146 mov r1, r8 1037 0042 D940 lsrs r1, r1, r3 1038 0044 1143 orrs r1, r2 1039 .L78: 203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 1040 .loc 1 203 7 view .LVU267 1041 0046 89B2 uxth r1, r1 1042 0048 4019 adds r0, r0, r5 ARM GAS /tmp/cc21Th62.s page 35 1043 004a FFF7FEFF bl FLASH_Program_HalfWord 1044 .LVL58: 206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 1045 .loc 1 206 9 is_stmt 1 view .LVU268 206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 1046 .loc 1 206 18 is_stmt 0 view .LVU269 1047 004e 1048 ldr r0, .L83+4 1048 0050 FFF7FEFF bl FLASH_WaitForLastOperation 1049 .LVL59: 209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* In case of error, stop programming procedure */ 1050 .loc 1 209 9 is_stmt 1 view .LVU270 1051 0054 0F4A ldr r2, .L83+8 1052 0056 1369 ldr r3, [r2, #16] 1053 0058 0121 movs r1, #1 1054 005a 8B43 bics r3, r1 1055 005c 1361 str r3, [r2, #16] 211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 1056 .loc 1 211 7 view .LVU271 211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 1057 .loc 1 211 10 is_stmt 0 view .LVU272 1058 005e 0028 cmp r0, #0 1059 0060 0CD1 bne .L74 201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 1060 .loc 1 201 49 discriminator 2 view .LVU273 1061 0062 0134 adds r4, r4, #1 1062 .LVL60: 201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 1063 .loc 1 201 49 discriminator 2 view .LVU274 1064 0064 E4B2 uxtb r4, r4 1065 .LVL61: 1066 .L76: 201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** { 1067 .loc 1 201 5 discriminator 1 view .LVU275 1068 0066 BC42 cmp r4, r7 1069 0068 08D2 bcs .L74 203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 1070 .loc 1 203 7 is_stmt 1 view .LVU276 203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 1071 .loc 1 203 44 is_stmt 0 view .LVU277 1072 006a 6000 lsls r0, r4, #1 1073 .LVL62: 203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 1074 .loc 1 203 77 view .LVU278 1075 006c 2301 lsls r3, r4, #4 203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 1076 .loc 1 203 70 view .LVU279 1077 006e 2022 movs r2, #32 1078 0070 5242 rsbs r2, r2, #0 1079 0072 9A18 adds r2, r3, r2 1080 0074 DFD4 bmi .L77 1081 0076 3100 movs r1, r6 1082 0078 D140 lsrs r1, r1, r2 1083 007a E4E7 b .L78 1084 .LVL63: 1085 .L74: 219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 1086 .loc 1 219 3 is_stmt 1 view .LVU280 ARM GAS /tmp/cc21Th62.s page 36 219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 1087 .loc 1 219 3 view .LVU281 1088 007c 034B ldr r3, .L83 1089 007e 0022 movs r2, #0 1090 0080 1A76 strb r2, [r3, #24] 221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 1091 .loc 1 221 3 view .LVU282 1092 .LVL64: 1093 .L73: 222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 1094 .loc 1 222 1 is_stmt 0 view .LVU283 1095 @ sp needed 1096 .LVL65: 222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 1097 .loc 1 222 1 view .LVU284 1098 0082 04BC pop {r2} 1099 0084 9046 mov r8, r2 1100 0086 F0BD pop {r4, r5, r6, r7, pc} 1101 .LVL66: 1102 .L80: 174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 1103 .loc 1 174 3 view .LVU285 1104 0088 0220 movs r0, #2 1105 .LVL67: 174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 1106 .loc 1 174 3 view .LVU286 1107 008a FAE7 b .L73 1108 .L84: 1109 .align 2 1110 .L83: 1111 008c 00000000 .word pFlash 1112 0090 50C30000 .word 50000 1113 0094 00200240 .word 1073881088 1114 .cfi_endproc 1115 .LFE40: 1117 .section .text.HAL_FLASH_OB_Launch,"ax",%progbits 1118 .align 1 1119 .global HAL_FLASH_OB_Launch 1120 .syntax unified 1121 .code 16 1122 .thumb_func 1123 .fpu softvfp 1125 HAL_FLASH_OB_Launch: 1126 .LFB49: 549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Set the OBL_Launch bit to launch the option byte loading */ 1127 .loc 1 549 1 is_stmt 1 view -0 1128 .cfi_startproc 1129 @ args = 0, pretend = 0, frame = 0 1130 @ frame_needed = 0, uses_anonymous_args = 0 1131 0000 10B5 push {r4, lr} 1132 .LCFI6: 1133 .cfi_def_cfa_offset 8 1134 .cfi_offset 4, -8 1135 .cfi_offset 14, -4 551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 1136 .loc 1 551 3 view .LVU288 1137 0002 054A ldr r2, .L86 ARM GAS /tmp/cc21Th62.s page 37 1138 0004 1169 ldr r1, [r2, #16] 1139 0006 8023 movs r3, #128 1140 0008 9B01 lsls r3, r3, #6 1141 000a 0B43 orrs r3, r1 1142 000c 1361 str r3, [r2, #16] 554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 1143 .loc 1 554 3 view .LVU289 554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** } 1144 .loc 1 554 10 is_stmt 0 view .LVU290 1145 000e 0348 ldr r0, .L86+4 1146 0010 FFF7FEFF bl FLASH_WaitForLastOperation 1147 .LVL68: 555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** 1148 .loc 1 555 1 view .LVU291 1149 @ sp needed 1150 0014 10BD pop {r4, pc} 1151 .L87: 1152 0016 C046 .align 2 1153 .L86: 1154 0018 00200240 .word 1073881088 1155 001c 50C30000 .word 50000 1156 .cfi_endproc 1157 .LFE49: 1159 .comm pFlash,32,8 1160 .text 1161 .Letext0: 1162 .file 2 "/usr/lib/gcc/arm-none-eabi/8.3.1/include/stdint.h" 1163 .file 3 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h" 1164 .file 4 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f042x6.h" 1165 .file 5 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h" 1166 .file 6 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h" 1167 .file 7 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_flash.h" 1168 .file 8 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h" ARM GAS /tmp/cc21Th62.s page 38 DEFINED SYMBOLS *ABS*:0000000000000000 stm32f0xx_hal_flash.c /tmp/cc21Th62.s:16 .text.FLASH_Program_HalfWord:0000000000000000 $t /tmp/cc21Th62.s:23 .text.FLASH_Program_HalfWord:0000000000000000 FLASH_Program_HalfWord /tmp/cc21Th62.s:57 .text.FLASH_Program_HalfWord:0000000000000018 $d *COM*:0000000000000020 pFlash /tmp/cc21Th62.s:63 .text.FLASH_SetErrorCode:0000000000000000 $t /tmp/cc21Th62.s:69 .text.FLASH_SetErrorCode:0000000000000000 FLASH_SetErrorCode /tmp/cc21Th62.s:128 .text.FLASH_SetErrorCode:0000000000000034 $d /tmp/cc21Th62.s:134 .text.HAL_FLASH_Program_IT:0000000000000000 $t /tmp/cc21Th62.s:141 .text.HAL_FLASH_Program_IT:0000000000000000 HAL_FLASH_Program_IT /tmp/cc21Th62.s:262 .text.HAL_FLASH_Program_IT:000000000000005c $d /tmp/cc21Th62.s:268 .text.HAL_FLASH_EndOfOperationCallback:0000000000000000 $t /tmp/cc21Th62.s:275 .text.HAL_FLASH_EndOfOperationCallback:0000000000000000 HAL_FLASH_EndOfOperationCallback /tmp/cc21Th62.s:291 .text.HAL_FLASH_OperationErrorCallback:0000000000000000 $t /tmp/cc21Th62.s:298 .text.HAL_FLASH_OperationErrorCallback:0000000000000000 HAL_FLASH_OperationErrorCallback /tmp/cc21Th62.s:314 .text.HAL_FLASH_IRQHandler:0000000000000000 $t /tmp/cc21Th62.s:321 .text.HAL_FLASH_IRQHandler:0000000000000000 HAL_FLASH_IRQHandler /tmp/cc21Th62.s:619 .text.HAL_FLASH_IRQHandler:0000000000000148 $d /tmp/cc21Th62.s:626 .text.HAL_FLASH_Unlock:0000000000000000 $t /tmp/cc21Th62.s:633 .text.HAL_FLASH_Unlock:0000000000000000 HAL_FLASH_Unlock /tmp/cc21Th62.s:681 .text.HAL_FLASH_Unlock:0000000000000024 $d /tmp/cc21Th62.s:688 .text.HAL_FLASH_Lock:0000000000000000 $t /tmp/cc21Th62.s:695 .text.HAL_FLASH_Lock:0000000000000000 HAL_FLASH_Lock /tmp/cc21Th62.s:716 .text.HAL_FLASH_Lock:0000000000000010 $d /tmp/cc21Th62.s:721 .text.HAL_FLASH_OB_Unlock:0000000000000000 $t /tmp/cc21Th62.s:728 .text.HAL_FLASH_OB_Unlock:0000000000000000 HAL_FLASH_OB_Unlock /tmp/cc21Th62.s:763 .text.HAL_FLASH_OB_Unlock:000000000000001c $d /tmp/cc21Th62.s:770 .text.HAL_FLASH_OB_Lock:0000000000000000 $t /tmp/cc21Th62.s:777 .text.HAL_FLASH_OB_Lock:0000000000000000 HAL_FLASH_OB_Lock /tmp/cc21Th62.s:798 .text.HAL_FLASH_OB_Lock:0000000000000010 $d /tmp/cc21Th62.s:804 .text.HAL_FLASH_GetError:0000000000000000 $t /tmp/cc21Th62.s:811 .text.HAL_FLASH_GetError:0000000000000000 HAL_FLASH_GetError /tmp/cc21Th62.s:828 .text.HAL_FLASH_GetError:0000000000000008 $d /tmp/cc21Th62.s:833 .text.FLASH_WaitForLastOperation:0000000000000000 $t /tmp/cc21Th62.s:840 .text.FLASH_WaitForLastOperation:0000000000000000 FLASH_WaitForLastOperation /tmp/cc21Th62.s:939 .text.FLASH_WaitForLastOperation:0000000000000054 $d /tmp/cc21Th62.s:944 .text.HAL_FLASH_Program:0000000000000000 $t /tmp/cc21Th62.s:951 .text.HAL_FLASH_Program:0000000000000000 HAL_FLASH_Program /tmp/cc21Th62.s:1111 .text.HAL_FLASH_Program:000000000000008c $d /tmp/cc21Th62.s:1118 .text.HAL_FLASH_OB_Launch:0000000000000000 $t /tmp/cc21Th62.s:1125 .text.HAL_FLASH_OB_Launch:0000000000000000 HAL_FLASH_OB_Launch /tmp/cc21Th62.s:1154 .text.HAL_FLASH_OB_Launch:0000000000000018 $d UNDEFINED SYMBOLS FLASH_PageErase HAL_GetTick