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