Files
Last update 5 months 3 weeks
by Masakatsu Honda
stm32f4xx_hal_flash.lstARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 1 1 .cpu cortex-m4 2 .arch armv7e-m 3 .fpu fpv4-sp-d16 4 .eabi_attribute 27, 1 5 .eabi_attribute 28, 1 6 .eabi_attribute 20, 1 7 .eabi_attribute 21, 1 8 .eabi_attribute 23, 3 9 .eabi_attribute 24, 1 10 .eabi_attribute 25, 1 11 .eabi_attribute 26, 1 12 .eabi_attribute 30, 1 13 .eabi_attribute 34, 1 14 .eabi_attribute 18, 4 15 .file "stm32f4xx_hal_flash.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .section .text.FLASH_Program_DoubleWord,"ax",%progbits 20 .align 1 21 .syntax unified 22 .thumb 23 .thumb_func 25 FLASH_Program_DoubleWord: 26 .LVL0: 27 .LFB251: 28 .file 1 "Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c" 1:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 2:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ****************************************************************************** 3:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @file stm32f4xx_hal_flash.c 4:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @author MCD Application Team 5:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief FLASH HAL module driver. 6:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * functionalities of the internal FLASH memory: 8:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * + Program operations functions 9:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * + Memory Control functions 10:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * + Peripheral Errors functions 11:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 12:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @verbatim 13:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ============================================================================== 14:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ##### FLASH peripheral features ##### 15:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ============================================================================== 16:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 17:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..] The Flash memory interface manages CPU AHB I-Code and D-Code accesses 18:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** to the Flash memory. It implements the erase and program Flash memory operations 19:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** and the read and write protection mechanisms. 20:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 21:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..] The Flash memory interface accelerates code execution with a system of instruction 22:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** prefetch and cache lines. 23:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 24:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..] The FLASH main features are: 25:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Flash memory read operations 26:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Flash memory program/erase operations 27:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Read / write protections 28:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Prefetch on I-Code 29:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) 64 cache lines of 128 bits on I-Code 30:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) 8 cache lines of 128 bits on D-Code ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 2 31:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 32:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 33:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ##### How to use this driver ##### 34:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ============================================================================== 35:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..] 36:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** This driver provides functions and macros to configure and program the FLASH 37:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** memory of all STM32F4xx devices. 38:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 39:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (#) FLASH Memory IO Programming functions: 40:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (++) Lock and Unlock the FLASH interface using HAL_FLASH_Unlock() and 41:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_FLASH_Lock() functions 42:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (++) Program functions: byte, half word, word and double word 43:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (++) There Two modes of programming : 44:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+++) Polling mode using HAL_FLASH_Program() function 45:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+++) Interrupt mode using HAL_FLASH_Program_IT() function 46:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 47:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (#) Interrupts and flags management functions : 48:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (++) Handle FLASH interrupts by calling HAL_FLASH_IRQHandler() 49:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (++) Wait for last FLASH operation according to its status 50:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (++) Get error flag status by calling HAL_SetErrorCode() 51:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 52:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..] 53:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** In addition to these functions, this driver includes a set of macros allowing 54:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** to handle the following operations: 55:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Set the latency 56:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Enable/Disable the prefetch buffer 57:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Enable/Disable the Instruction cache and the Data cache 58:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Reset the Instruction cache and the Data cache 59:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Enable/Disable the FLASH interrupts 60:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Monitor the FLASH flags status 61:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 62:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @endverbatim 63:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ****************************************************************************** 64:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @attention 65:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 66:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * Copyright (c) 2017 STMicroelectronics. 67:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * All rights reserved. 68:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 69:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * This software is licensed under terms that can be found in the LICENSE file in 70:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * the root directory of this software component. 71:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 72:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ****************************************************************************** 73:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 74:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 75:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Includes ------------------------------------------------------------------*/ 76:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #include "stm32f4xx_hal.h" 77:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 78:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @addtogroup STM32F4xx_HAL_Driver 79:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{ 80:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 81:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 82:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @defgroup FLASH FLASH 83:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief FLASH HAL module driver 84:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{ 85:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 86:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 87:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #ifdef HAL_FLASH_MODULE_ENABLED ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 3 88:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 89:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Private typedef -----------------------------------------------------------*/ 90:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Private define ------------------------------------------------------------*/ 91:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @addtogroup FLASH_Private_Constants 92:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{ 93:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 94:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #define FLASH_TIMEOUT_VALUE 50000U /* 50 s */ 95:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 96:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @} 97:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 98:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Private macro -------------------------------------------------------------*/ 99:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Private variables ---------------------------------------------------------*/ 100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @addtogroup FLASH_Private_Variables 101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{ 102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Variable used for Erase sectors under interruption */ 104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_ProcessTypeDef pFlash; 105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @} 107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Private function prototypes -----------------------------------------------*/ 110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @addtogroup FLASH_Private_Functions 111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{ 112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Program operations */ 114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data); 115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_Word(uint32_t Address, uint32_t Data); 116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data); 117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_Byte(uint32_t Address, uint8_t Data); 118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_SetErrorCode(void); 119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout); 121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @} 123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Exported functions --------------------------------------------------------*/ 126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions FLASH Exported Functions 127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{ 128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group1 Programming operation functions 131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Programming operation functions 132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @verbatim 134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** =============================================================================== 135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ##### Programming operation functions ##### 136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** =============================================================================== 137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..] 138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** This subsection provides a set of functions allowing to manage the FLASH 139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** program operations. 140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @endverbatim 142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{ 143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 4 145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Program byte, halfword, word or double word at a specified address 147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param TypeProgram Indicate the way to program at a specified address. 148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * This parameter can be a value of @ref FLASH_Type_Program 149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Address specifies the address to be programmed. 150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Data specifies the data to be programmed 151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL_StatusTypeDef HAL Status 153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data) 155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_ERROR; 157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Process Locked */ 159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_LOCK(&pFlash); 160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check the parameters */ 162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram)); 163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Wait for last operation to be completed */ 165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (status == HAL_OK) 168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (TypeProgram == FLASH_TYPEPROGRAM_BYTE) 170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program byte (8-bit) at a specified address.*/ 172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_Byte(Address, (uint8_t) Data); 173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else if (TypeProgram == FLASH_TYPEPROGRAM_HALFWORD) 175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program halfword (16-bit) at a specified address.*/ 177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_HalfWord(Address, (uint16_t) Data); 178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else if (TypeProgram == FLASH_TYPEPROGRAM_WORD) 180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program word (32-bit) at a specified address.*/ 182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_Word(Address, (uint32_t) Data); 183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else 185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program double word (64-bit) at a specified address.*/ 187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_DoubleWord(Address, Data); 188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Wait for last operation to be completed */ 191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* If the program operation is completed, disable the PG Bit */ 194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR &= (~FLASH_CR_PG); 195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Process Unlocked */ 198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_UNLOCK(&pFlash); 199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return status; 201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 5 202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Program byte, halfword, word or double word at a specified address with interrupt ena 205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param TypeProgram Indicate the way to program at a specified address. 206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * This parameter can be a value of @ref FLASH_Type_Program 207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Address specifies the address to be programmed. 208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Data specifies the data to be programmed 209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL Status 211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data) 213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK; 215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check the parameters */ 217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram)); 218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Enable End of FLASH Operation interrupt */ 220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP); 221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Enable Error source interrupt */ 223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_ERR); 224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAM; 226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Address = Address; 227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (TypeProgram == FLASH_TYPEPROGRAM_BYTE) 229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program byte (8-bit) at a specified address.*/ 231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_Byte(Address, (uint8_t) Data); 232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else if (TypeProgram == FLASH_TYPEPROGRAM_HALFWORD) 234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program halfword (16-bit) at a specified address.*/ 236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_HalfWord(Address, (uint16_t) Data); 237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else if (TypeProgram == FLASH_TYPEPROGRAM_WORD) 239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program word (32-bit) at a specified address.*/ 241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_Word(Address, (uint32_t) Data); 242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else 244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program double word (64-bit) at a specified address.*/ 246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_DoubleWord(Address, Data); 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return status; 250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief This function handles FLASH interrupt request. 254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None 255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** void HAL_FLASH_IRQHandler(void) 257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** uint32_t addresstmp = 0U; ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 6 259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check FLASH operation error flags */ 261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #if defined(FLASH_SR_RDERR) 262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG((FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \ 263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR | FLASH_FLAG_RDERR)) != RESET) 264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #else 265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG((FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \ 266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET) 267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #endif /* FLASH_SR_RDERR */ 268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (pFlash.ProcedureOnGoing == FLASH_PROC_SECTERASE) 270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*return the faulty sector*/ 272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Sector; 273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Sector = 0xFFFFFFFFU; 274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else if (pFlash.ProcedureOnGoing == FLASH_PROC_MASSERASE) 276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*return the faulty bank*/ 278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Bank; 279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else 281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*return the faulty address*/ 283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Address; 284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Save the Error code*/ 287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_SetErrorCode(); 288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* FLASH error interrupt user callback */ 290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_FLASH_OperationErrorCallback(addresstmp); 291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Stop the procedure ongoing*/ 293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check FLASH End of Operation flag */ 297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP) != RESET) 298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */ 300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP); 301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (pFlash.ProcedureOnGoing == FLASH_PROC_SECTERASE) 303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Nb of sector to erased can be decreased*/ 305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.NbSectorsToErase--; 306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check if there are still sectors to erase*/ 308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (pFlash.NbSectorsToErase != 0U) 309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Sector; 311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Indicate user which sector has been erased*/ 312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(addresstmp); 313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Increment sector number*/ 315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Sector++; ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 7 316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Sector; 317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Erase_Sector(addresstmp, pFlash.VoltageForErase); 318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else 320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*No more sectors to Erase, user callback can be called.*/ 322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Reset Sector and stop Erase sectors procedure*/ 323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Sector = addresstmp = 0xFFFFFFFFU; 324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Flush the caches to be sure of the data consistency */ 327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FlushCaches(); 328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* FLASH EOP interrupt user callback */ 330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(addresstmp); 331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else 334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (pFlash.ProcedureOnGoing == FLASH_PROC_MASSERASE) 336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* MassErase ended. Return the selected bank */ 338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Flush the caches to be sure of the data consistency */ 339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FlushCaches(); 340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* FLASH EOP interrupt user callback */ 342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Bank); 343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else 345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program ended. Return the selected address*/ 347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* FLASH EOP interrupt user callback */ 348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Address); 349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (pFlash.ProcedureOnGoing == FLASH_PROC_NONE) 355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Operation is completed, disable the PG, SER, SNB and MER Bits */ 357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, (FLASH_CR_PG | FLASH_CR_SER | FLASH_CR_SNB | FLASH_MER_BIT)); 358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Disable End of FLASH Operation interrupt */ 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_DISABLE_IT(FLASH_IT_EOP); 361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Disable Error source interrupt */ 363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_DISABLE_IT(FLASH_IT_ERR); 364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief FLASH end of operation interrupt callback 369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param ReturnValue The value saved in this parameter depends on the ongoing procedure 370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * Mass Erase: Bank number which has been requested to erase 371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * Sectors Erase: Sector which has been erased 372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * (if 0xFFFFFFFFU, it means that all the selected sectors have been erased) ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 8 373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * Program: Address which was selected for data program 374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None 375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __weak void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue) 377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */ 379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** UNUSED(ReturnValue); 380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed, 381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** the HAL_FLASH_EndOfOperationCallback could be implemented in the user file 382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief FLASH operation error interrupt callback 387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param ReturnValue The value saved in this parameter depends on the ongoing procedure 388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * Mass Erase: Bank number which has been requested to erase 389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * Sectors Erase: Sector number which returned an error 390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * Program: Address which was selected for data program 391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None 392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __weak void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue) 394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */ 396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** UNUSED(ReturnValue); 397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed, 398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** the HAL_FLASH_OperationErrorCallback could be implemented in the user file 399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @} 404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group2 Peripheral Control functions 407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief management functions 408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @verbatim 410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** =============================================================================== 411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ##### Peripheral Control functions ##### 412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** =============================================================================== 413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..] 414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** This subsection provides a set of functions allowing to control the FLASH 415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** memory operations. 416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @endverbatim 418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{ 419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Unlock the FLASH control register access 423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL Status 424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Unlock(void) 426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK; 428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET) ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 9 430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Authorize the FLASH Registers access */ 432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY1); 433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY2); 434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Verify Flash is unlocked */ 436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET) 437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** status = HAL_ERROR; 439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return status; 443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Locks the FLASH control register access 447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL Status 448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Lock(void) 450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Set the LOCK Bit to lock the FLASH Registers access */ 452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_CR_LOCK; 453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_OK; 455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Unlock the FLASH Option Control Registers access. 459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL Status 460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void) 462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if ((FLASH->OPTCR & FLASH_OPTCR_OPTLOCK) != RESET) 464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Authorizes the Option Byte register programming */ 466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->OPTKEYR = FLASH_OPT_KEY1; 467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->OPTKEYR = FLASH_OPT_KEY2; 468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else 470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_ERROR; 472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_OK; 475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Lock the FLASH Option Control Registers access. 479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL Status 480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Lock(void) 482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Set the OPTLOCK Bit to lock the FLASH Option Byte Registers access */ 484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->OPTCR |= FLASH_OPTCR_OPTLOCK; 485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_OK; ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 10 487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Launch the option byte loading. 491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL Status 492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Launch(void) 494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Set the OPTSTRT bit in OPTCR register */ 496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *(__IO uint8_t *)OPTCR_BYTE0_ADDRESS |= FLASH_OPTCR_OPTSTRT; 497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Wait for last operation to be completed */ 499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return (FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE)); 500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @} 504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group3 Peripheral State and Errors functions 507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Peripheral Errors functions 508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @verbatim 510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** =============================================================================== 511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ##### Peripheral Errors functions ##### 512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** =============================================================================== 513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..] 514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** This subsection permits to get in run-time Errors of the FLASH peripheral. 515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @endverbatim 517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{ 518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Get the specific FLASH error flag. 522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval FLASH_ErrorCode: The returned value can be a combination of: 523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_RD: FLASH Read Protection error flag (PCROP) 524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_PGS: FLASH Programming Sequence error flag 525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_PGP: FLASH Programming Parallelism error flag 526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_PGA: FLASH Programming Alignment error flag 527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_WRP: FLASH Write protected error flag 528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_OPERATION: FLASH operation Error flag 529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** uint32_t HAL_FLASH_GetError(void) 531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return pFlash.ErrorCode; 533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @} 537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Wait for a FLASH operation to complete. 541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Timeout maximum flash operationtimeout 542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL Status 543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 11 544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout) 545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** uint32_t tickstart = 0U; 547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear Error Code */ 549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; 550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset. 552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** Even if the FLASH operation fails, the BUSY flag will be reset and an error 553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** flag will be set */ 554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Get tick */ 555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** tickstart = HAL_GetTick(); 556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** while (__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY) != RESET) 558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (Timeout != HAL_MAX_DELAY) 560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if ((Timeout == 0U) || ((HAL_GetTick() - tickstart) > Timeout)) 562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_TIMEOUT; 564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check FLASH End of Operation flag */ 569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP) != RESET) 570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */ 572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP); 573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #if defined(FLASH_SR_RDERR) 575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG((FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \ 576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR | FLASH_FLAG_RDERR)) != RESET) 577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #else 578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG((FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \ 579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET) 580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #endif /* FLASH_SR_RDERR */ 581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Save the error code*/ 583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_SetErrorCode(); 584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_ERROR; 585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* If there is no error flag set */ 588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_OK; 589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Program a double word (64-bit) at a specified address. 594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note This function must be used when the device voltage range is from 595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 2.7V to 3.6V and Vpp in the range 7V to 9V. 596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note If an erase and a program operations are requested simultaneously, 598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * the erase operation is performed before the program one. 599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Address specifies the address to be programmed. ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 12 601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Data specifies the data to be programmed. 602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None 603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data) 605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 29 .loc 1 605 1 view -0 30 .cfi_startproc 31 @ args = 0, pretend = 0, frame = 0 32 @ frame_needed = 0, uses_anonymous_args = 0 33 @ link register save eliminated. 34 .loc 1 605 1 is_stmt 0 view .LVU1 35 0000 10B4 push {r4} 36 .LCFI0: 37 .cfi_def_cfa_offset 4 38 .cfi_offset 4, -4 606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check the parameters */ 607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** assert_param(IS_FLASH_ADDRESS(Address)); 39 .loc 1 607 3 is_stmt 1 view .LVU2 608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* If the previous operation is completed, proceed to program the new data */ 610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PSIZE); 40 .loc 1 610 3 view .LVU3 41 0002 0A49 ldr r1, .L3 42 0004 0C69 ldr r4, [r1, #16] 43 0006 24F44074 bic r4, r4, #768 44 000a 0C61 str r4, [r1, #16] 611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_PSIZE_DOUBLE_WORD; 45 .loc 1 611 3 view .LVU4 46 .loc 1 611 13 is_stmt 0 view .LVU5 47 000c 0C69 ldr r4, [r1, #16] 48 000e 44F44074 orr r4, r4, #768 49 0012 0C61 str r4, [r1, #16] 612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_CR_PG; 50 .loc 1 612 3 is_stmt 1 view .LVU6 51 .loc 1 612 13 is_stmt 0 view .LVU7 52 0014 0C69 ldr r4, [r1, #16] 53 0016 44F00104 orr r4, r4, #1 54 001a 0C61 str r4, [r1, #16] 613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Program first word */ 615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *(__IO uint32_t *)Address = (uint32_t)Data; 55 .loc 1 615 3 is_stmt 1 view .LVU8 56 .loc 1 615 29 is_stmt 0 view .LVU9 57 001c 0260 str r2, [r0] 616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Barrier to ensure programming is performed in 2 steps, in right order 618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (independently of compiler optimization behavior) */ 619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __ISB(); 58 .loc 1 619 3 is_stmt 1 view .LVU10 59 .LBB4: 60 .LBI4: 61 .file 2 "Drivers/CMSIS/Include/cmsis_gcc.h" 1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//** 2:Drivers/CMSIS/Include/cmsis_gcc.h **** * @file cmsis_gcc.h 3:Drivers/CMSIS/Include/cmsis_gcc.h **** * @brief CMSIS compiler GCC header file 4:Drivers/CMSIS/Include/cmsis_gcc.h **** * @version V5.4.1 5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 27. May 2021 ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 13 6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/ 7:Drivers/CMSIS/Include/cmsis_gcc.h **** /* 8:Drivers/CMSIS/Include/cmsis_gcc.h **** * Copyright (c) 2009-2021 Arm Limited. All rights reserved. 9:Drivers/CMSIS/Include/cmsis_gcc.h **** * 10:Drivers/CMSIS/Include/cmsis_gcc.h **** * SPDX-License-Identifier: Apache-2.0 11:Drivers/CMSIS/Include/cmsis_gcc.h **** * 12:Drivers/CMSIS/Include/cmsis_gcc.h **** * Licensed under the Apache License, Version 2.0 (the License); you may 13:Drivers/CMSIS/Include/cmsis_gcc.h **** * not use this file except in compliance with the License. 14:Drivers/CMSIS/Include/cmsis_gcc.h **** * You may obtain a copy of the License at 15:Drivers/CMSIS/Include/cmsis_gcc.h **** * 16:Drivers/CMSIS/Include/cmsis_gcc.h **** * www.apache.org/licenses/LICENSE-2.0 17:Drivers/CMSIS/Include/cmsis_gcc.h **** * 18:Drivers/CMSIS/Include/cmsis_gcc.h **** * Unless required by applicable law or agreed to in writing, software 19:Drivers/CMSIS/Include/cmsis_gcc.h **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 20:Drivers/CMSIS/Include/cmsis_gcc.h **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21:Drivers/CMSIS/Include/cmsis_gcc.h **** * See the License for the specific language governing permissions and 22:Drivers/CMSIS/Include/cmsis_gcc.h **** * limitations under the License. 23:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 24:Drivers/CMSIS/Include/cmsis_gcc.h **** 25:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H 26:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H 27:Drivers/CMSIS/Include/cmsis_gcc.h **** 28:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */ 29:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 30:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion" 31:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion" 32:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter" 33:Drivers/CMSIS/Include/cmsis_gcc.h **** 34:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Fallback for __has_builtin */ 35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __has_builtin 36:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __has_builtin(x) (0) 37:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 38:Drivers/CMSIS/Include/cmsis_gcc.h **** 39:Drivers/CMSIS/Include/cmsis_gcc.h **** /* CMSIS compiler specific defines */ 40:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ASM 41:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ASM __asm 42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INLINE 44:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INLINE inline 45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_INLINE 47:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_INLINE static inline 48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_FORCEINLINE 50:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline 51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __NO_RETURN 53:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NO_RETURN __attribute__((__noreturn__)) 54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __USED 56:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __USED __attribute__((used)) 57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK 59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak)) 60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED 62:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED __attribute__((packed, aligned(1))) ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 14 63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_STRUCT 65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) 66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_UNION 68:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_UNION union __attribute__((packed, aligned(1))) 69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32 /* deprecated */ 71:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 72:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 73:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 74:Drivers/CMSIS/Include/cmsis_gcc.h **** struct __attribute__((packed)) T_UINT32 { uint32_t v; }; 75:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 76:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) 77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_WRITE 79:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 80:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 81:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 82:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; 83:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 84:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))- 85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_READ 87:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 88:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 89:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 90:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; 91:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 92:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(add 93:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 94:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_WRITE 95:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 96:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 97:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 98:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; 99:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 100:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))- 101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_READ 103:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 104:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 105:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 106:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; 107:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 108:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(add 109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ALIGNED 111:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ALIGNED(x) __attribute__((aligned(x))) 112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __RESTRICT 114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict 115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 116:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __COMPILER_BARRIER 117:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __COMPILER_BARRIER() __ASM volatile("":::"memory") 118:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 119:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 15 120:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ######################### Startup and Lowlevel Init ######################## */ 121:Drivers/CMSIS/Include/cmsis_gcc.h **** 122:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PROGRAM_START 123:Drivers/CMSIS/Include/cmsis_gcc.h **** 124:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 125:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Initializes data and bss sections 126:Drivers/CMSIS/Include/cmsis_gcc.h **** \details This default implementations initialized all data and additional bss 127:Drivers/CMSIS/Include/cmsis_gcc.h **** sections relying on .copy.table and .zero.table specified properly 128:Drivers/CMSIS/Include/cmsis_gcc.h **** in the used linker script. 129:Drivers/CMSIS/Include/cmsis_gcc.h **** 130:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 131:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE __NO_RETURN void __cmsis_start(void) 132:Drivers/CMSIS/Include/cmsis_gcc.h **** { 133:Drivers/CMSIS/Include/cmsis_gcc.h **** extern void _start(void) __NO_RETURN; 134:Drivers/CMSIS/Include/cmsis_gcc.h **** 135:Drivers/CMSIS/Include/cmsis_gcc.h **** typedef struct { 136:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t const* src; 137:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t* dest; 138:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t wlen; 139:Drivers/CMSIS/Include/cmsis_gcc.h **** } __copy_table_t; 140:Drivers/CMSIS/Include/cmsis_gcc.h **** 141:Drivers/CMSIS/Include/cmsis_gcc.h **** typedef struct { 142:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t* dest; 143:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t wlen; 144:Drivers/CMSIS/Include/cmsis_gcc.h **** } __zero_table_t; 145:Drivers/CMSIS/Include/cmsis_gcc.h **** 146:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __copy_table_t __copy_table_start__; 147:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __copy_table_t __copy_table_end__; 148:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __zero_table_t __zero_table_start__; 149:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __zero_table_t __zero_table_end__; 150:Drivers/CMSIS/Include/cmsis_gcc.h **** 151:Drivers/CMSIS/Include/cmsis_gcc.h **** for (__copy_table_t const* pTable = &__copy_table_start__; pTable < &__copy_table_end__; ++pTable 152:Drivers/CMSIS/Include/cmsis_gcc.h **** for(uint32_t i=0u; i<pTable->wlen; ++i) { 153:Drivers/CMSIS/Include/cmsis_gcc.h **** pTable->dest[i] = pTable->src[i]; 154:Drivers/CMSIS/Include/cmsis_gcc.h **** } 155:Drivers/CMSIS/Include/cmsis_gcc.h **** } 156:Drivers/CMSIS/Include/cmsis_gcc.h **** 157:Drivers/CMSIS/Include/cmsis_gcc.h **** for (__zero_table_t const* pTable = &__zero_table_start__; pTable < &__zero_table_end__; ++pTable 158:Drivers/CMSIS/Include/cmsis_gcc.h **** for(uint32_t i=0u; i<pTable->wlen; ++i) { 159:Drivers/CMSIS/Include/cmsis_gcc.h **** pTable->dest[i] = 0u; 160:Drivers/CMSIS/Include/cmsis_gcc.h **** } 161:Drivers/CMSIS/Include/cmsis_gcc.h **** } 162:Drivers/CMSIS/Include/cmsis_gcc.h **** 163:Drivers/CMSIS/Include/cmsis_gcc.h **** _start(); 164:Drivers/CMSIS/Include/cmsis_gcc.h **** } 165:Drivers/CMSIS/Include/cmsis_gcc.h **** 166:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PROGRAM_START __cmsis_start 167:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 168:Drivers/CMSIS/Include/cmsis_gcc.h **** 169:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INITIAL_SP 170:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INITIAL_SP __StackTop 171:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 172:Drivers/CMSIS/Include/cmsis_gcc.h **** 173:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STACK_LIMIT 174:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STACK_LIMIT __StackLimit 175:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 176:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 16 177:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE 178:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE __Vectors 179:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 180:Drivers/CMSIS/Include/cmsis_gcc.h **** 181:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE_ATTRIBUTE 182:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE_ATTRIBUTE __attribute__((used, section(".vectors"))) 183:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 184:Drivers/CMSIS/Include/cmsis_gcc.h **** 185:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) 186:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STACK_SEAL 187:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STACK_SEAL __StackSeal 188:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 189:Drivers/CMSIS/Include/cmsis_gcc.h **** 190:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __TZ_STACK_SEAL_SIZE 191:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __TZ_STACK_SEAL_SIZE 8U 192:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 193:Drivers/CMSIS/Include/cmsis_gcc.h **** 194:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __TZ_STACK_SEAL_VALUE 195:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __TZ_STACK_SEAL_VALUE 0xFEF5EDA5FEF5EDA5ULL 196:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 197:Drivers/CMSIS/Include/cmsis_gcc.h **** 198:Drivers/CMSIS/Include/cmsis_gcc.h **** 199:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_STACKSEAL_S (uint32_t* stackTop) { 200:Drivers/CMSIS/Include/cmsis_gcc.h **** *((uint64_t *)stackTop) = __TZ_STACK_SEAL_VALUE; 201:Drivers/CMSIS/Include/cmsis_gcc.h **** } 202:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 203:Drivers/CMSIS/Include/cmsis_gcc.h **** 204:Drivers/CMSIS/Include/cmsis_gcc.h **** 205:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################## Core Instruction Access ######################### */ 206:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface 207:Drivers/CMSIS/Include/cmsis_gcc.h **** Access to dedicated instructions 208:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ 209:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 210:Drivers/CMSIS/Include/cmsis_gcc.h **** 211:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2. 212:Drivers/CMSIS/Include/cmsis_gcc.h **** * For thumb1, use low register (r0-r7), specified by constraint "l" 213:Drivers/CMSIS/Include/cmsis_gcc.h **** * Otherwise, use general registers, specified by constraint "r" */ 214:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__) 215:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r) 216:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r) 217:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r) 218:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 219:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r) 220:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r) 221:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r) 222:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 223:Drivers/CMSIS/Include/cmsis_gcc.h **** 224:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 225:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief No Operation 226:Drivers/CMSIS/Include/cmsis_gcc.h **** \details No Operation does nothing. This instruction can be used for code alignment purposes. 227:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 228:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP() __ASM volatile ("nop") 229:Drivers/CMSIS/Include/cmsis_gcc.h **** 230:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 231:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Interrupt 232:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o 233:Drivers/CMSIS/Include/cmsis_gcc.h **** */ ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 17 234:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI() __ASM volatile ("wfi":::"memory") 235:Drivers/CMSIS/Include/cmsis_gcc.h **** 236:Drivers/CMSIS/Include/cmsis_gcc.h **** 237:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 238:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Event 239:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Event is a hint instruction that permits the processor to enter 240:Drivers/CMSIS/Include/cmsis_gcc.h **** a low-power state until one of a number of events occurs. 241:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 242:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE() __ASM volatile ("wfe":::"memory") 243:Drivers/CMSIS/Include/cmsis_gcc.h **** 244:Drivers/CMSIS/Include/cmsis_gcc.h **** 245:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 246:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Send Event 247:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. 248:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 249:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV() __ASM volatile ("sev") 250:Drivers/CMSIS/Include/cmsis_gcc.h **** 251:Drivers/CMSIS/Include/cmsis_gcc.h **** 252:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 253:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Instruction Synchronization Barrier 254:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Instruction Synchronization Barrier flushes the pipeline in the processor, 255:Drivers/CMSIS/Include/cmsis_gcc.h **** so that all instructions following the ISB are fetched from cache or memory, 256:Drivers/CMSIS/Include/cmsis_gcc.h **** after the instruction has been completed. 257:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 258:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void) 62 .loc 2 258 27 view .LVU11 63 .LBB5: 259:Drivers/CMSIS/Include/cmsis_gcc.h **** { 260:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("isb 0xF":::"memory"); 64 .loc 2 260 3 view .LVU12 65 .syntax unified 66 @ 260 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 67 001e BFF36F8F isb 0xF 68 @ 0 "" 2 69 .thumb 70 .syntax unified 71 .LBE5: 72 .LBE4: 620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Program second word */ 622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *(__IO uint32_t *)(Address + 4) = (uint32_t)(Data >> 32); 73 .loc 1 622 3 view .LVU13 74 .loc 1 622 35 is_stmt 0 view .LVU14 75 0022 4360 str r3, [r0, #4] 623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 76 .loc 1 623 1 view .LVU15 77 0024 5DF8044B ldr r4, [sp], #4 78 .LCFI1: 79 .cfi_restore 4 80 .cfi_def_cfa_offset 0 81 0028 7047 bx lr 82 .L4: 83 002a 00BF .align 2 84 .L3: 85 002c 003C0240 .word 1073888256 86 .cfi_endproc 87 .LFE251: ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 18 89 .section .text.FLASH_Program_Word,"ax",%progbits 90 .align 1 91 .syntax unified 92 .thumb 93 .thumb_func 95 FLASH_Program_Word: 96 .LVL1: 97 .LFB252: 624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Program word (32-bit) at a specified address. 628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note This function must be used when the device voltage range is from 629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 2.7V to 3.6V. 630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note If an erase and a program operations are requested simultaneously, 632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * the erase operation is performed before the program one. 633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Address specifies the address to be programmed. 635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Data specifies the data to be programmed. 636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None 637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_Word(uint32_t Address, uint32_t Data) 639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 98 .loc 1 639 1 is_stmt 1 view -0 99 .cfi_startproc 100 @ args = 0, pretend = 0, frame = 0 101 @ frame_needed = 0, uses_anonymous_args = 0 102 @ link register save eliminated. 640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check the parameters */ 641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** assert_param(IS_FLASH_ADDRESS(Address)); 103 .loc 1 641 3 view .LVU17 642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* If the previous operation is completed, proceed to program the new data */ 644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PSIZE); 104 .loc 1 644 3 view .LVU18 105 0000 074B ldr r3, .L6 106 0002 1A69 ldr r2, [r3, #16] 107 0004 22F44072 bic r2, r2, #768 108 0008 1A61 str r2, [r3, #16] 645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_PSIZE_WORD; 109 .loc 1 645 3 view .LVU19 110 .loc 1 645 13 is_stmt 0 view .LVU20 111 000a 1A69 ldr r2, [r3, #16] 112 000c 42F40072 orr r2, r2, #512 113 0010 1A61 str r2, [r3, #16] 646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_CR_PG; 114 .loc 1 646 3 is_stmt 1 view .LVU21 115 .loc 1 646 13 is_stmt 0 view .LVU22 116 0012 1A69 ldr r2, [r3, #16] 117 0014 42F00102 orr r2, r2, #1 118 0018 1A61 str r2, [r3, #16] 647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *(__IO uint32_t *)Address = Data; 119 .loc 1 648 3 is_stmt 1 view .LVU23 120 .loc 1 648 29 is_stmt 0 view .LVU24 121 001a 0160 str r1, [r0] ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 19 649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 122 .loc 1 649 1 view .LVU25 123 001c 7047 bx lr 124 .L7: 125 001e 00BF .align 2 126 .L6: 127 0020 003C0240 .word 1073888256 128 .cfi_endproc 129 .LFE252: 131 .section .text.FLASH_Program_HalfWord,"ax",%progbits 132 .align 1 133 .syntax unified 134 .thumb 135 .thumb_func 137 FLASH_Program_HalfWord: 138 .LVL2: 139 .LFB253: 650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Program a half-word (16-bit) at a specified address. 653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note This function must be used when the device voltage range is from 654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 2.1V to 3.6V. 655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note If an erase and a program operations are requested simultaneously, 657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * the erase operation is performed before the program one. 658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Address specifies the address to be programmed. 660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Data specifies the data to be programmed. 661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None 662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data) 664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 140 .loc 1 664 1 is_stmt 1 view -0 141 .cfi_startproc 142 @ args = 0, pretend = 0, frame = 0 143 @ frame_needed = 0, uses_anonymous_args = 0 144 @ link register save eliminated. 665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check the parameters */ 666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** assert_param(IS_FLASH_ADDRESS(Address)); 145 .loc 1 666 3 view .LVU27 667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* If the previous operation is completed, proceed to program the new data */ 669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PSIZE); 146 .loc 1 669 3 view .LVU28 147 0000 074B ldr r3, .L9 148 0002 1A69 ldr r2, [r3, #16] 149 0004 22F44072 bic r2, r2, #768 150 0008 1A61 str r2, [r3, #16] 670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_PSIZE_HALF_WORD; 151 .loc 1 670 3 view .LVU29 152 .loc 1 670 13 is_stmt 0 view .LVU30 153 000a 1A69 ldr r2, [r3, #16] 154 000c 42F48072 orr r2, r2, #256 155 0010 1A61 str r2, [r3, #16] 671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_CR_PG; 156 .loc 1 671 3 is_stmt 1 view .LVU31 157 .loc 1 671 13 is_stmt 0 view .LVU32 ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 20 158 0012 1A69 ldr r2, [r3, #16] 159 0014 42F00102 orr r2, r2, #1 160 0018 1A61 str r2, [r3, #16] 672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *(__IO uint16_t *)Address = Data; 161 .loc 1 673 3 is_stmt 1 view .LVU33 162 .loc 1 673 29 is_stmt 0 view .LVU34 163 001a 0180 strh r1, [r0] @ movhi 674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 164 .loc 1 674 1 view .LVU35 165 001c 7047 bx lr 166 .L10: 167 001e 00BF .align 2 168 .L9: 169 0020 003C0240 .word 1073888256 170 .cfi_endproc 171 .LFE253: 173 .section .text.FLASH_Program_Byte,"ax",%progbits 174 .align 1 175 .syntax unified 176 .thumb 177 .thumb_func 179 FLASH_Program_Byte: 180 .LVL3: 181 .LFB254: 675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Program byte (8-bit) at a specified address. 678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note This function must be used when the device voltage range is from 679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 1.8V to 3.6V. 680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note If an erase and a program operations are requested simultaneously, 682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * the erase operation is performed before the program one. 683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Address specifies the address to be programmed. 685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Data specifies the data to be programmed. 686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None 687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_Byte(uint32_t Address, uint8_t Data) 689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 182 .loc 1 689 1 is_stmt 1 view -0 183 .cfi_startproc 184 @ args = 0, pretend = 0, frame = 0 185 @ frame_needed = 0, uses_anonymous_args = 0 186 @ link register save eliminated. 690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check the parameters */ 691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** assert_param(IS_FLASH_ADDRESS(Address)); 187 .loc 1 691 3 view .LVU37 692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* If the previous operation is completed, proceed to program the new data */ 694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PSIZE); 188 .loc 1 694 3 view .LVU38 189 0000 064B ldr r3, .L12 190 0002 1A69 ldr r2, [r3, #16] 191 0004 22F44072 bic r2, r2, #768 192 0008 1A61 str r2, [r3, #16] 695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_PSIZE_BYTE; ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 21 193 .loc 1 695 3 view .LVU39 194 .loc 1 695 13 is_stmt 0 view .LVU40 195 000a 1A69 ldr r2, [r3, #16] 196 000c 1A61 str r2, [r3, #16] 696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_CR_PG; 197 .loc 1 696 3 is_stmt 1 view .LVU41 198 .loc 1 696 13 is_stmt 0 view .LVU42 199 000e 1A69 ldr r2, [r3, #16] 200 0010 42F00102 orr r2, r2, #1 201 0014 1A61 str r2, [r3, #16] 697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *(__IO uint8_t *)Address = Data; 202 .loc 1 698 3 is_stmt 1 view .LVU43 203 .loc 1 698 28 is_stmt 0 view .LVU44 204 0016 0170 strb r1, [r0] 699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 205 .loc 1 699 1 view .LVU45 206 0018 7047 bx lr 207 .L13: 208 001a 00BF .align 2 209 .L12: 210 001c 003C0240 .word 1073888256 211 .cfi_endproc 212 .LFE254: 214 .section .text.FLASH_SetErrorCode,"ax",%progbits 215 .align 1 216 .syntax unified 217 .thumb 218 .thumb_func 220 FLASH_SetErrorCode: 221 .LFB255: 700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** 702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Set the specific FLASH error flag. 703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None 704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */ 705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_SetErrorCode(void) 706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 222 .loc 1 706 1 is_stmt 1 view -0 223 .cfi_startproc 224 @ args = 0, pretend = 0, frame = 0 225 @ frame_needed = 0, uses_anonymous_args = 0 226 @ link register save eliminated. 707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) != RESET) 227 .loc 1 707 3 view .LVU47 228 .loc 1 707 7 is_stmt 0 view .LVU48 229 0000 204B ldr r3, .L20 230 0002 DB68 ldr r3, [r3, #12] 231 .loc 1 707 6 view .LVU49 232 0004 13F0100F tst r3, #16 233 0008 07D0 beq .L15 708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP; 234 .loc 1 709 5 is_stmt 1 view .LVU50 235 .loc 1 709 22 is_stmt 0 view .LVU51 236 000a 1F4A ldr r2, .L20+4 237 000c D369 ldr r3, [r2, #28] ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 22 238 000e 43F01003 orr r3, r3, #16 239 0012 D361 str r3, [r2, #28] 710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH write protection error pending bit */ 712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_WRPERR); 240 .loc 1 712 5 is_stmt 1 view .LVU52 241 0014 1B4B ldr r3, .L20 242 0016 1022 movs r2, #16 243 0018 DA60 str r2, [r3, #12] 244 .L15: 713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGAERR) != RESET) 245 .loc 1 715 3 view .LVU53 246 .loc 1 715 7 is_stmt 0 view .LVU54 247 001a 1A4B ldr r3, .L20 248 001c DB68 ldr r3, [r3, #12] 249 .loc 1 715 6 view .LVU55 250 001e 13F0200F tst r3, #32 251 0022 07D0 beq .L16 716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_PGA; 252 .loc 1 717 5 is_stmt 1 view .LVU56 253 .loc 1 717 22 is_stmt 0 view .LVU57 254 0024 184A ldr r2, .L20+4 255 0026 D369 ldr r3, [r2, #28] 256 0028 43F00803 orr r3, r3, #8 257 002c D361 str r3, [r2, #28] 718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH Programming alignment error pending bit */ 720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_PGAERR); 258 .loc 1 720 5 is_stmt 1 view .LVU58 259 002e 154B ldr r3, .L20 260 0030 2022 movs r2, #32 261 0032 DA60 str r2, [r3, #12] 262 .L16: 721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGPERR) != RESET) 263 .loc 1 723 3 view .LVU59 264 .loc 1 723 7 is_stmt 0 view .LVU60 265 0034 134B ldr r3, .L20 266 0036 DB68 ldr r3, [r3, #12] 267 .loc 1 723 6 view .LVU61 268 0038 13F0400F tst r3, #64 269 003c 07D0 beq .L17 724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_PGP; 270 .loc 1 725 5 is_stmt 1 view .LVU62 271 .loc 1 725 22 is_stmt 0 view .LVU63 272 003e 124A ldr r2, .L20+4 273 0040 D369 ldr r3, [r2, #28] 274 0042 43F00403 orr r3, r3, #4 275 0046 D361 str r3, [r2, #28] 726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH Programming parallelism error pending bit */ 728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_PGPERR); ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 23 276 .loc 1 728 5 is_stmt 1 view .LVU64 277 0048 0E4B ldr r3, .L20 278 004a 4022 movs r2, #64 279 004c DA60 str r2, [r3, #12] 280 .L17: 729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGSERR) != RESET) 281 .loc 1 731 3 view .LVU65 282 .loc 1 731 7 is_stmt 0 view .LVU66 283 004e 0D4B ldr r3, .L20 284 0050 DB68 ldr r3, [r3, #12] 285 .loc 1 731 6 view .LVU67 286 0052 13F0800F tst r3, #128 287 0056 07D0 beq .L18 732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_PGS; 288 .loc 1 733 5 is_stmt 1 view .LVU68 289 .loc 1 733 22 is_stmt 0 view .LVU69 290 0058 0B4A ldr r2, .L20+4 291 005a D369 ldr r3, [r2, #28] 292 005c 43F00203 orr r3, r3, #2 293 0060 D361 str r3, [r2, #28] 734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH Programming sequence error pending bit */ 736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_PGSERR); 294 .loc 1 736 5 is_stmt 1 view .LVU70 295 0062 084B ldr r3, .L20 296 0064 8022 movs r2, #128 297 0066 DA60 str r2, [r3, #12] 298 .L18: 737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #if defined(FLASH_SR_RDERR) 739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_RDERR) != RESET) 740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_RD; 742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH Proprietary readout protection error pending bit */ 744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_RDERR); 745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 746:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #endif /* FLASH_SR_RDERR */ 747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_OPERR) != RESET) 299 .loc 1 747 3 view .LVU71 300 .loc 1 747 7 is_stmt 0 view .LVU72 301 0068 064B ldr r3, .L20 302 006a DB68 ldr r3, [r3, #12] 303 .loc 1 747 6 view .LVU73 304 006c 13F0020F tst r3, #2 305 0070 07D0 beq .L14 748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_OPERATION; 306 .loc 1 749 5 is_stmt 1 view .LVU74 307 .loc 1 749 22 is_stmt 0 view .LVU75 308 0072 054A ldr r2, .L20+4 309 0074 D369 ldr r3, [r2, #28] 310 0076 43F02003 orr r3, r3, #32 311 007a D361 str r3, [r2, #28] ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 24 750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH Operation error pending bit */ 752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_OPERR); 312 .loc 1 752 5 is_stmt 1 view .LVU76 313 007c 014B ldr r3, .L20 314 007e 0222 movs r2, #2 315 0080 DA60 str r2, [r3, #12] 316 .L14: 753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 317 .loc 1 754 1 is_stmt 0 view .LVU77 318 0082 7047 bx lr 319 .L21: 320 .align 2 321 .L20: 322 0084 003C0240 .word 1073888256 323 0088 00000000 .word .LANCHOR0 324 .cfi_endproc 325 .LFE255: 327 .section .text.HAL_FLASH_Program_IT,"ax",%progbits 328 .align 1 329 .global HAL_FLASH_Program_IT 330 .syntax unified 331 .thumb 332 .thumb_func 334 HAL_FLASH_Program_IT: 335 .LVL4: 336 .LFB240: 213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK; 337 .loc 1 213 1 is_stmt 1 view -0 338 .cfi_startproc 339 @ args = 0, pretend = 0, frame = 0 340 @ frame_needed = 0, uses_anonymous_args = 0 213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK; 341 .loc 1 213 1 is_stmt 0 view .LVU79 342 0000 70B5 push {r4, r5, r6, lr} 343 .LCFI2: 344 .cfi_def_cfa_offset 16 345 .cfi_offset 4, -16 346 .cfi_offset 5, -12 347 .cfi_offset 6, -8 348 .cfi_offset 14, -4 349 0002 0646 mov r6, r0 350 0004 0846 mov r0, r1 351 .LVL5: 214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 352 .loc 1 214 3 is_stmt 1 view .LVU80 217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 353 .loc 1 217 3 view .LVU81 220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 354 .loc 1 220 3 view .LVU82 355 0006 114C ldr r4, .L31 356 0008 2569 ldr r5, [r4, #16] 357 000a 45F08075 orr r5, r5, #16777216 358 000e 2561 str r5, [r4, #16] 223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 359 .loc 1 223 3 view .LVU83 ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 25 360 0010 2569 ldr r5, [r4, #16] 361 0012 45F00075 orr r5, r5, #33554432 362 0016 2561 str r5, [r4, #16] 225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Address = Address; 363 .loc 1 225 3 view .LVU84 225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Address = Address; 364 .loc 1 225 27 is_stmt 0 view .LVU85 365 0018 0D49 ldr r1, .L31+4 366 .LVL6: 225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Address = Address; 367 .loc 1 225 27 view .LVU86 368 001a 0324 movs r4, #3 369 001c 0C70 strb r4, [r1] 226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 370 .loc 1 226 3 is_stmt 1 view .LVU87 226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 371 .loc 1 226 18 is_stmt 0 view .LVU88 372 001e 4861 str r0, [r1, #20] 228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 373 .loc 1 228 3 is_stmt 1 view .LVU89 228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 374 .loc 1 228 6 is_stmt 0 view .LVU90 375 0020 3EB1 cbz r6, .L28 233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 376 .loc 1 233 8 is_stmt 1 view .LVU91 233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 377 .loc 1 233 11 is_stmt 0 view .LVU92 378 0022 012E cmp r6, #1 379 0024 09D0 beq .L29 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 380 .loc 1 238 8 is_stmt 1 view .LVU93 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 381 .loc 1 238 11 is_stmt 0 view .LVU94 382 0026 022E cmp r6, #2 383 0028 0BD0 beq .L30 246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 384 .loc 1 246 5 is_stmt 1 view .LVU95 385 002a FFF7FEFF bl FLASH_Program_DoubleWord 386 .LVL7: 387 .L24: 249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 388 .loc 1 249 3 view .LVU96 250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 389 .loc 1 250 1 is_stmt 0 view .LVU97 390 002e 0020 movs r0, #0 391 0030 70BD pop {r4, r5, r6, pc} 392 .LVL8: 393 .L28: 231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 394 .loc 1 231 5 is_stmt 1 view .LVU98 395 0032 D1B2 uxtb r1, r2 396 0034 FFF7FEFF bl FLASH_Program_Byte 397 .LVL9: 231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 398 .loc 1 231 5 is_stmt 0 view .LVU99 399 0038 F9E7 b .L24 400 .LVL10: ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 26 401 .L29: 236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 402 .loc 1 236 5 is_stmt 1 view .LVU100 403 003a 91B2 uxth r1, r2 404 003c FFF7FEFF bl FLASH_Program_HalfWord 405 .LVL11: 236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 406 .loc 1 236 5 is_stmt 0 view .LVU101 407 0040 F5E7 b .L24 408 .LVL12: 409 .L30: 241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 410 .loc 1 241 5 is_stmt 1 view .LVU102 411 0042 1146 mov r1, r2 412 0044 FFF7FEFF bl FLASH_Program_Word 413 .LVL13: 241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 414 .loc 1 241 5 is_stmt 0 view .LVU103 415 0048 F1E7 b .L24 416 .L32: 417 004a 00BF .align 2 418 .L31: 419 004c 003C0240 .word 1073888256 420 0050 00000000 .word .LANCHOR0 421 .cfi_endproc 422 .LFE240: 424 .section .text.HAL_FLASH_EndOfOperationCallback,"ax",%progbits 425 .align 1 426 .weak HAL_FLASH_EndOfOperationCallback 427 .syntax unified 428 .thumb 429 .thumb_func 431 HAL_FLASH_EndOfOperationCallback: 432 .LVL14: 433 .LFB242: 377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */ 434 .loc 1 377 1 is_stmt 1 view -0 435 .cfi_startproc 436 @ args = 0, pretend = 0, frame = 0 437 @ frame_needed = 0, uses_anonymous_args = 0 438 @ link register save eliminated. 379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed, 439 .loc 1 379 3 view .LVU105 383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 440 .loc 1 383 1 is_stmt 0 view .LVU106 441 0000 7047 bx lr 442 .cfi_endproc 443 .LFE242: 445 .section .text.HAL_FLASH_OperationErrorCallback,"ax",%progbits 446 .align 1 447 .weak HAL_FLASH_OperationErrorCallback 448 .syntax unified 449 .thumb 450 .thumb_func 452 HAL_FLASH_OperationErrorCallback: 453 .LVL15: 454 .LFB243: ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 27 394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */ 455 .loc 1 394 1 is_stmt 1 view -0 456 .cfi_startproc 457 @ args = 0, pretend = 0, frame = 0 458 @ frame_needed = 0, uses_anonymous_args = 0 459 @ link register save eliminated. 396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed, 460 .loc 1 396 3 view .LVU108 400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 461 .loc 1 400 1 is_stmt 0 view .LVU109 462 0000 7047 bx lr 463 .cfi_endproc 464 .LFE243: 466 .section .text.HAL_FLASH_IRQHandler,"ax",%progbits 467 .align 1 468 .global HAL_FLASH_IRQHandler 469 .syntax unified 470 .thumb 471 .thumb_func 473 HAL_FLASH_IRQHandler: 474 .LFB241: 257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** uint32_t addresstmp = 0U; 475 .loc 1 257 1 is_stmt 1 view -0 476 .cfi_startproc 477 @ args = 0, pretend = 0, frame = 0 478 @ frame_needed = 0, uses_anonymous_args = 0 479 0000 10B5 push {r4, lr} 480 .LCFI3: 481 .cfi_def_cfa_offset 8 482 .cfi_offset 4, -8 483 .cfi_offset 14, -4 258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 484 .loc 1 258 3 view .LVU111 485 .LVL16: 265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET) 486 .loc 1 265 3 view .LVU112 265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET) 487 .loc 1 265 7 is_stmt 0 view .LVU113 488 0002 384B ldr r3, .L51 489 0004 DB68 ldr r3, [r3, #12] 265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET) 490 .loc 1 265 6 view .LVU114 491 0006 13F0F20F tst r3, #242 492 000a 13D0 beq .L36 269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 493 .loc 1 269 5 is_stmt 1 view .LVU115 269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 494 .loc 1 269 15 is_stmt 0 view .LVU116 495 000c 364B ldr r3, .L51+4 496 000e 1B78 ldrb r3, [r3] @ zero_extendqisi2 497 0010 DBB2 uxtb r3, r3 269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 498 .loc 1 269 8 view .LVU117 499 0012 012B cmp r3, #1 500 0014 38D0 beq .L47 275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 501 .loc 1 275 10 is_stmt 1 view .LVU118 ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 28 275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 502 .loc 1 275 20 is_stmt 0 view .LVU119 503 0016 344B ldr r3, .L51+4 504 0018 1B78 ldrb r3, [r3] @ zero_extendqisi2 505 001a DBB2 uxtb r3, r3 275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 506 .loc 1 275 13 view .LVU120 507 001c 022B cmp r3, #2 508 001e 39D0 beq .L48 283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 509 .loc 1 283 7 is_stmt 1 view .LVU121 283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 510 .loc 1 283 18 is_stmt 0 view .LVU122 511 0020 314B ldr r3, .L51+4 512 0022 5C69 ldr r4, [r3, #20] 513 .LVL17: 514 .L38: 287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 515 .loc 1 287 5 is_stmt 1 view .LVU123 516 0024 FFF7FEFF bl FLASH_SetErrorCode 517 .LVL18: 290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 518 .loc 1 290 5 view .LVU124 519 0028 2046 mov r0, r4 520 002a FFF7FEFF bl HAL_FLASH_OperationErrorCallback 521 .LVL19: 293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 522 .loc 1 293 5 view .LVU125 293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 523 .loc 1 293 29 is_stmt 0 view .LVU126 524 002e 2E4B ldr r3, .L51+4 525 0030 0022 movs r2, #0 526 0032 1A70 strb r2, [r3] 527 .LVL20: 528 .L36: 297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 529 .loc 1 297 3 is_stmt 1 view .LVU127 297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 530 .loc 1 297 7 is_stmt 0 view .LVU128 531 0034 2B4B ldr r3, .L51 532 0036 DB68 ldr r3, [r3, #12] 297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 533 .loc 1 297 6 view .LVU129 534 0038 13F0010F tst r3, #1 535 003c 13D0 beq .L40 300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 536 .loc 1 300 5 is_stmt 1 view .LVU130 537 003e 294B ldr r3, .L51 538 0040 0122 movs r2, #1 539 0042 DA60 str r2, [r3, #12] 302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 540 .loc 1 302 5 view .LVU131 302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 541 .loc 1 302 15 is_stmt 0 view .LVU132 542 0044 284B ldr r3, .L51+4 543 0046 1B78 ldrb r3, [r3] @ zero_extendqisi2 544 0048 DBB2 uxtb r3, r3 ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 29 302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 545 .loc 1 302 8 view .LVU133 546 004a 9342 cmp r3, r2 547 004c 25D0 beq .L49 335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 548 .loc 1 335 7 is_stmt 1 view .LVU134 335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 549 .loc 1 335 17 is_stmt 0 view .LVU135 550 004e 264B ldr r3, .L51+4 551 0050 1B78 ldrb r3, [r3] @ zero_extendqisi2 552 0052 DBB2 uxtb r3, r3 335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 553 .loc 1 335 10 view .LVU136 554 0054 022B cmp r3, #2 555 0056 3ED0 beq .L50 348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 556 .loc 1 348 9 is_stmt 1 view .LVU137 557 0058 234B ldr r3, .L51+4 558 005a 5869 ldr r0, [r3, #20] 559 005c FFF7FEFF bl HAL_FLASH_EndOfOperationCallback 560 .LVL21: 561 .L44: 350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 562 .loc 1 350 7 view .LVU138 350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 563 .loc 1 350 31 is_stmt 0 view .LVU139 564 0060 214B ldr r3, .L51+4 565 0062 0022 movs r2, #0 566 0064 1A70 strb r2, [r3] 567 .L40: 354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 568 .loc 1 354 3 is_stmt 1 view .LVU140 354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 569 .loc 1 354 13 is_stmt 0 view .LVU141 570 0066 204B ldr r3, .L51+4 571 0068 1B78 ldrb r3, [r3] @ zero_extendqisi2 354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 572 .loc 1 354 6 view .LVU142 573 006a 63B9 cbnz r3, .L35 357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 574 .loc 1 357 5 is_stmt 1 view .LVU143 575 006c 1D4B ldr r3, .L51 576 006e 1A69 ldr r2, [r3, #16] 577 0070 22F0FF02 bic r2, r2, #255 578 0074 1A61 str r2, [r3, #16] 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 579 .loc 1 360 5 view .LVU144 580 0076 1A69 ldr r2, [r3, #16] 581 0078 22F08072 bic r2, r2, #16777216 582 007c 1A61 str r2, [r3, #16] 363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 583 .loc 1 363 5 view .LVU145 584 007e 1A69 ldr r2, [r3, #16] 585 0080 22F00072 bic r2, r2, #33554432 586 0084 1A61 str r2, [r3, #16] 587 .L35: 365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 30 588 .loc 1 365 1 is_stmt 0 view .LVU146 589 0086 10BD pop {r4, pc} 590 .LVL22: 591 .L47: 272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Sector = 0xFFFFFFFFU; 592 .loc 1 272 7 is_stmt 1 view .LVU147 272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Sector = 0xFFFFFFFFU; 593 .loc 1 272 18 is_stmt 0 view .LVU148 594 0088 174B ldr r3, .L51+4 595 008a DC68 ldr r4, [r3, #12] 596 .LVL23: 273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 597 .loc 1 273 7 is_stmt 1 view .LVU149 273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 598 .loc 1 273 21 is_stmt 0 view .LVU150 599 008c 4FF0FF32 mov r2, #-1 600 0090 DA60 str r2, [r3, #12] 601 0092 C7E7 b .L38 602 .LVL24: 603 .L48: 278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 604 .loc 1 278 7 is_stmt 1 view .LVU151 278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 605 .loc 1 278 18 is_stmt 0 view .LVU152 606 0094 144B ldr r3, .L51+4 607 0096 1C69 ldr r4, [r3, #16] 608 .LVL25: 278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 609 .loc 1 278 18 view .LVU153 610 0098 C4E7 b .L38 611 .LVL26: 612 .L49: 305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 613 .loc 1 305 7 is_stmt 1 view .LVU154 305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 614 .loc 1 305 13 is_stmt 0 view .LVU155 615 009a 134B ldr r3, .L51+4 616 009c 5A68 ldr r2, [r3, #4] 305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 617 .loc 1 305 30 view .LVU156 618 009e 013A subs r2, r2, #1 619 00a0 5A60 str r2, [r3, #4] 308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 620 .loc 1 308 7 is_stmt 1 view .LVU157 308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 621 .loc 1 308 17 is_stmt 0 view .LVU158 622 00a2 5B68 ldr r3, [r3, #4] 308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 623 .loc 1 308 10 view .LVU159 624 00a4 5BB1 cbz r3, .L42 310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Indicate user which sector has been erased*/ 625 .loc 1 310 9 is_stmt 1 view .LVU160 310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Indicate user which sector has been erased*/ 626 .loc 1 310 20 is_stmt 0 view .LVU161 627 00a6 104C ldr r4, .L51+4 628 00a8 E068 ldr r0, [r4, #12] 629 .LVL27: ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 31 312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 630 .loc 1 312 9 is_stmt 1 view .LVU162 631 00aa FFF7FEFF bl HAL_FLASH_EndOfOperationCallback 632 .LVL28: 315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Sector; 633 .loc 1 315 9 view .LVU163 315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Sector; 634 .loc 1 315 15 is_stmt 0 view .LVU164 635 00ae E368 ldr r3, [r4, #12] 315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Sector; 636 .loc 1 315 22 view .LVU165 637 00b0 0133 adds r3, r3, #1 638 00b2 E360 str r3, [r4, #12] 316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Erase_Sector(addresstmp, pFlash.VoltageForErase); 639 .loc 1 316 9 is_stmt 1 view .LVU166 316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Erase_Sector(addresstmp, pFlash.VoltageForErase); 640 .loc 1 316 20 is_stmt 0 view .LVU167 641 00b4 E068 ldr r0, [r4, #12] 642 .LVL29: 317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 643 .loc 1 317 9 is_stmt 1 view .LVU168 644 00b6 217A ldrb r1, [r4, #8] @ zero_extendqisi2 645 00b8 FFF7FEFF bl FLASH_Erase_Sector 646 .LVL30: 317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 647 .loc 1 317 9 is_stmt 0 view .LVU169 648 00bc D3E7 b .L40 649 .L42: 323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 650 .loc 1 323 9 is_stmt 1 view .LVU170 651 .LVL31: 323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 652 .loc 1 323 23 is_stmt 0 view .LVU171 653 00be 0A4B ldr r3, .L51+4 654 00c0 4FF0FF34 mov r4, #-1 655 00c4 DC60 str r4, [r3, #12] 324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 656 .loc 1 324 9 is_stmt 1 view .LVU172 324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 657 .loc 1 324 33 is_stmt 0 view .LVU173 658 00c6 0022 movs r2, #0 659 00c8 1A70 strb r2, [r3] 327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 660 .loc 1 327 9 is_stmt 1 view .LVU174 661 00ca FFF7FEFF bl FLASH_FlushCaches 662 .LVL32: 330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 663 .loc 1 330 9 view .LVU175 664 00ce 2046 mov r0, r4 665 00d0 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback 666 .LVL33: 667 00d4 C7E7 b .L40 668 .LVL34: 669 .L50: 339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 670 .loc 1 339 9 view .LVU176 671 00d6 FFF7FEFF bl FLASH_FlushCaches ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 32 672 .LVL35: 342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 673 .loc 1 342 9 view .LVU177 674 00da 034B ldr r3, .L51+4 675 00dc 1869 ldr r0, [r3, #16] 676 00de FFF7FEFF bl HAL_FLASH_EndOfOperationCallback 677 .LVL36: 678 00e2 BDE7 b .L44 679 .L52: 680 .align 2 681 .L51: 682 00e4 003C0240 .word 1073888256 683 00e8 00000000 .word .LANCHOR0 684 .cfi_endproc 685 .LFE241: 687 .section .text.HAL_FLASH_Unlock,"ax",%progbits 688 .align 1 689 .global HAL_FLASH_Unlock 690 .syntax unified 691 .thumb 692 .thumb_func 694 HAL_FLASH_Unlock: 695 .LFB244: 426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK; 696 .loc 1 426 1 view -0 697 .cfi_startproc 698 @ args = 0, pretend = 0, frame = 0 699 @ frame_needed = 0, uses_anonymous_args = 0 700 @ link register save eliminated. 427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 701 .loc 1 427 3 view .LVU179 702 .LVL37: 429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 703 .loc 1 429 3 view .LVU180 429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 704 .loc 1 429 7 is_stmt 0 view .LVU181 705 0000 094B ldr r3, .L58 706 0002 1B69 ldr r3, [r3, #16] 429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 707 .loc 1 429 6 view .LVU182 708 0004 002B cmp r3, #0 709 0006 01DB blt .L57 427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 710 .loc 1 427 21 view .LVU183 711 0008 0020 movs r0, #0 712 000a 7047 bx lr 713 .L57: 432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY2); 714 .loc 1 432 5 is_stmt 1 view .LVU184 715 000c 064B ldr r3, .L58 716 000e 074A ldr r2, .L58+4 717 0010 5A60 str r2, [r3, #4] 433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 718 .loc 1 433 5 view .LVU185 719 0012 02F18832 add r2, r2, #-2004318072 720 0016 5A60 str r2, [r3, #4] 436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 33 721 .loc 1 436 5 view .LVU186 436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 722 .loc 1 436 9 is_stmt 0 view .LVU187 723 0018 1B69 ldr r3, [r3, #16] 436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 724 .loc 1 436 8 view .LVU188 725 001a 002B cmp r3, #0 726 001c 01DB blt .L56 427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 727 .loc 1 427 21 view .LVU189 728 001e 0020 movs r0, #0 729 0020 7047 bx lr 730 .L56: 438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 731 .loc 1 438 14 view .LVU190 732 0022 0120 movs r0, #1 733 .LVL38: 442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 734 .loc 1 442 3 is_stmt 1 view .LVU191 443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 735 .loc 1 443 1 is_stmt 0 view .LVU192 736 0024 7047 bx lr 737 .L59: 738 0026 00BF .align 2 739 .L58: 740 0028 003C0240 .word 1073888256 741 002c 23016745 .word 1164378403 742 .cfi_endproc 743 .LFE244: 745 .section .text.HAL_FLASH_Lock,"ax",%progbits 746 .align 1 747 .global HAL_FLASH_Lock 748 .syntax unified 749 .thumb 750 .thumb_func 752 HAL_FLASH_Lock: 753 .LFB245: 450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Set the LOCK Bit to lock the FLASH Registers access */ 754 .loc 1 450 1 is_stmt 1 view -0 755 .cfi_startproc 756 @ args = 0, pretend = 0, frame = 0 757 @ frame_needed = 0, uses_anonymous_args = 0 758 @ link register save eliminated. 452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 759 .loc 1 452 3 view .LVU194 452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 760 .loc 1 452 13 is_stmt 0 view .LVU195 761 0000 034A ldr r2, .L61 762 0002 1369 ldr r3, [r2, #16] 763 0004 43F00043 orr r3, r3, #-2147483648 764 0008 1361 str r3, [r2, #16] 454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 765 .loc 1 454 3 is_stmt 1 view .LVU196 455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 766 .loc 1 455 1 is_stmt 0 view .LVU197 767 000a 0020 movs r0, #0 768 000c 7047 bx lr ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 34 769 .L62: 770 000e 00BF .align 2 771 .L61: 772 0010 003C0240 .word 1073888256 773 .cfi_endproc 774 .LFE245: 776 .section .text.HAL_FLASH_OB_Unlock,"ax",%progbits 777 .align 1 778 .global HAL_FLASH_OB_Unlock 779 .syntax unified 780 .thumb 781 .thumb_func 783 HAL_FLASH_OB_Unlock: 784 .LFB246: 462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if ((FLASH->OPTCR & FLASH_OPTCR_OPTLOCK) != RESET) 785 .loc 1 462 1 is_stmt 1 view -0 786 .cfi_startproc 787 @ args = 0, pretend = 0, frame = 0 788 @ frame_needed = 0, uses_anonymous_args = 0 789 @ link register save eliminated. 463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 790 .loc 1 463 3 view .LVU199 463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 791 .loc 1 463 13 is_stmt 0 view .LVU200 792 0000 074B ldr r3, .L66 793 0002 5B69 ldr r3, [r3, #20] 463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 794 .loc 1 463 6 view .LVU201 795 0004 13F0010F tst r3, #1 796 0008 07D0 beq .L65 466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->OPTKEYR = FLASH_OPT_KEY2; 797 .loc 1 466 5 is_stmt 1 view .LVU202 466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->OPTKEYR = FLASH_OPT_KEY2; 798 .loc 1 466 20 is_stmt 0 view .LVU203 799 000a 054B ldr r3, .L66 800 000c 054A ldr r2, .L66+4 801 000e 9A60 str r2, [r3, #8] 467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 802 .loc 1 467 5 is_stmt 1 view .LVU204 467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 803 .loc 1 467 20 is_stmt 0 view .LVU205 804 0010 02F14432 add r2, r2, #1145324612 805 0014 9A60 str r2, [r3, #8] 474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 806 .loc 1 474 3 is_stmt 1 view .LVU206 474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 807 .loc 1 474 10 is_stmt 0 view .LVU207 808 0016 0020 movs r0, #0 809 0018 7047 bx lr 810 .L65: 471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 811 .loc 1 471 12 view .LVU208 812 001a 0120 movs r0, #1 475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 813 .loc 1 475 1 view .LVU209 814 001c 7047 bx lr 815 .L67: ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 35 816 001e 00BF .align 2 817 .L66: 818 0020 003C0240 .word 1073888256 819 0024 3B2A1908 .word 135866939 820 .cfi_endproc 821 .LFE246: 823 .section .text.HAL_FLASH_OB_Lock,"ax",%progbits 824 .align 1 825 .global HAL_FLASH_OB_Lock 826 .syntax unified 827 .thumb 828 .thumb_func 830 HAL_FLASH_OB_Lock: 831 .LFB247: 482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Set the OPTLOCK Bit to lock the FLASH Option Byte Registers access */ 832 .loc 1 482 1 is_stmt 1 view -0 833 .cfi_startproc 834 @ args = 0, pretend = 0, frame = 0 835 @ frame_needed = 0, uses_anonymous_args = 0 836 @ link register save eliminated. 484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 837 .loc 1 484 3 view .LVU211 484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 838 .loc 1 484 16 is_stmt 0 view .LVU212 839 0000 034A ldr r2, .L69 840 0002 5369 ldr r3, [r2, #20] 841 0004 43F00103 orr r3, r3, #1 842 0008 5361 str r3, [r2, #20] 486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 843 .loc 1 486 3 is_stmt 1 view .LVU213 487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 844 .loc 1 487 1 is_stmt 0 view .LVU214 845 000a 0020 movs r0, #0 846 000c 7047 bx lr 847 .L70: 848 000e 00BF .align 2 849 .L69: 850 0010 003C0240 .word 1073888256 851 .cfi_endproc 852 .LFE247: 854 .section .text.HAL_FLASH_GetError,"ax",%progbits 855 .align 1 856 .global HAL_FLASH_GetError 857 .syntax unified 858 .thumb 859 .thumb_func 861 HAL_FLASH_GetError: 862 .LFB249: 531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return pFlash.ErrorCode; 863 .loc 1 531 1 is_stmt 1 view -0 864 .cfi_startproc 865 @ args = 0, pretend = 0, frame = 0 866 @ frame_needed = 0, uses_anonymous_args = 0 867 @ link register save eliminated. 532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 868 .loc 1 532 3 view .LVU216 532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 36 869 .loc 1 532 16 is_stmt 0 view .LVU217 870 0000 014B ldr r3, .L72 871 0002 D869 ldr r0, [r3, #28] 533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 872 .loc 1 533 1 view .LVU218 873 0004 7047 bx lr 874 .L73: 875 0006 00BF .align 2 876 .L72: 877 0008 00000000 .word .LANCHOR0 878 .cfi_endproc 879 .LFE249: 881 .section .text.FLASH_WaitForLastOperation,"ax",%progbits 882 .align 1 883 .global FLASH_WaitForLastOperation 884 .syntax unified 885 .thumb 886 .thumb_func 888 FLASH_WaitForLastOperation: 889 .LVL39: 890 .LFB250: 545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** uint32_t tickstart = 0U; 891 .loc 1 545 1 is_stmt 1 view -0 892 .cfi_startproc 893 @ args = 0, pretend = 0, frame = 0 894 @ frame_needed = 0, uses_anonymous_args = 0 545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** uint32_t tickstart = 0U; 895 .loc 1 545 1 is_stmt 0 view .LVU220 896 0000 38B5 push {r3, r4, r5, lr} 897 .LCFI4: 898 .cfi_def_cfa_offset 16 899 .cfi_offset 3, -16 900 .cfi_offset 4, -12 901 .cfi_offset 5, -8 902 .cfi_offset 14, -4 903 0002 0446 mov r4, r0 546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 904 .loc 1 546 3 is_stmt 1 view .LVU221 905 .LVL40: 549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 906 .loc 1 549 3 view .LVU222 549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 907 .loc 1 549 20 is_stmt 0 view .LVU223 908 0004 144B ldr r3, .L85 909 0006 0022 movs r2, #0 910 0008 DA61 str r2, [r3, #28] 555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 911 .loc 1 555 3 is_stmt 1 view .LVU224 555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 912 .loc 1 555 15 is_stmt 0 view .LVU225 913 000a FFF7FEFF bl HAL_GetTick 914 .LVL41: 555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 915 .loc 1 555 15 view .LVU226 916 000e 0546 mov r5, r0 917 .LVL42: 557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 37 918 .loc 1 557 3 is_stmt 1 view .LVU227 919 .L76: 557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 920 .loc 1 557 9 view .LVU228 557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 921 .loc 1 557 10 is_stmt 0 view .LVU229 922 0010 124B ldr r3, .L85+4 923 0012 DB68 ldr r3, [r3, #12] 557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 924 .loc 1 557 9 view .LVU230 925 0014 13F4803F tst r3, #65536 926 0018 0AD0 beq .L83 559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 927 .loc 1 559 5 is_stmt 1 view .LVU231 559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 928 .loc 1 559 8 is_stmt 0 view .LVU232 929 001a B4F1FF3F cmp r4, #-1 930 001e F7D0 beq .L76 561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 931 .loc 1 561 7 is_stmt 1 view .LVU233 561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 932 .loc 1 561 10 is_stmt 0 view .LVU234 933 0020 24B1 cbz r4, .L77 561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 934 .loc 1 561 32 discriminator 1 view .LVU235 935 0022 FFF7FEFF bl HAL_GetTick 936 .LVL43: 561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 937 .loc 1 561 46 discriminator 1 view .LVU236 938 0026 401B subs r0, r0, r5 561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 939 .loc 1 561 27 discriminator 1 view .LVU237 940 0028 A042 cmp r0, r4 941 002a F1D9 bls .L76 942 .L77: 563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 943 .loc 1 563 9 is_stmt 1 view .LVU238 563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 944 .loc 1 563 16 is_stmt 0 view .LVU239 945 002c 0320 movs r0, #3 946 002e 0DE0 b .L78 947 .L83: 569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 948 .loc 1 569 3 is_stmt 1 view .LVU240 569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 949 .loc 1 569 7 is_stmt 0 view .LVU241 950 0030 0A4B ldr r3, .L85+4 951 0032 DB68 ldr r3, [r3, #12] 569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 952 .loc 1 569 6 view .LVU242 953 0034 13F0010F tst r3, #1 954 0038 02D0 beq .L80 572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 955 .loc 1 572 5 is_stmt 1 view .LVU243 956 003a 084B ldr r3, .L85+4 957 003c 0122 movs r2, #1 958 003e DA60 str r2, [r3, #12] ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 38 959 .L80: 578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET) 960 .loc 1 578 3 view .LVU244 578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET) 961 .loc 1 578 7 is_stmt 0 view .LVU245 962 0040 064B ldr r3, .L85+4 963 0042 DB68 ldr r3, [r3, #12] 578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET) 964 .loc 1 578 6 view .LVU246 965 0044 13F0F20F tst r3, #242 966 0048 01D1 bne .L84 588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 967 .loc 1 588 10 view .LVU247 968 004a 0020 movs r0, #0 969 .L78: 590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 970 .loc 1 590 1 view .LVU248 971 004c 38BD pop {r3, r4, r5, pc} 972 .LVL44: 973 .L84: 583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_ERROR; 974 .loc 1 583 5 is_stmt 1 view .LVU249 975 004e FFF7FEFF bl FLASH_SetErrorCode 976 .LVL45: 584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 977 .loc 1 584 5 view .LVU250 584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 978 .loc 1 584 12 is_stmt 0 view .LVU251 979 0052 0120 movs r0, #1 980 0054 FAE7 b .L78 981 .L86: 982 0056 00BF .align 2 983 .L85: 984 0058 00000000 .word .LANCHOR0 985 005c 003C0240 .word 1073888256 986 .cfi_endproc 987 .LFE250: 989 .section .text.HAL_FLASH_Program,"ax",%progbits 990 .align 1 991 .global HAL_FLASH_Program 992 .syntax unified 993 .thumb 994 .thumb_func 996 HAL_FLASH_Program: 997 .LVL46: 998 .LFB239: 155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_ERROR; 999 .loc 1 155 1 is_stmt 1 view -0 1000 .cfi_startproc 1001 @ args = 0, pretend = 0, frame = 0 1002 @ frame_needed = 0, uses_anonymous_args = 0 155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_ERROR; 1003 .loc 1 155 1 is_stmt 0 view .LVU253 1004 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 1005 .LCFI5: 1006 .cfi_def_cfa_offset 24 1007 .cfi_offset 3, -24 ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 39 1008 .cfi_offset 4, -20 1009 .cfi_offset 5, -16 1010 .cfi_offset 6, -12 1011 .cfi_offset 7, -8 1012 .cfi_offset 14, -4 1013 0002 1646 mov r6, r2 156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 1014 .loc 1 156 3 is_stmt 1 view .LVU254 1015 .LVL47: 159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 1016 .loc 1 159 3 view .LVU255 159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 1017 .loc 1 159 3 view .LVU256 1018 0004 1B4A ldr r2, .L99 1019 .LVL48: 159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 1020 .loc 1 159 3 is_stmt 0 view .LVU257 1021 0006 127E ldrb r2, [r2, #24] @ zero_extendqisi2 1022 0008 012A cmp r2, #1 1023 000a 30D0 beq .L94 1024 000c 0446 mov r4, r0 1025 000e 0D46 mov r5, r1 1026 0010 1F46 mov r7, r3 159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 1027 .loc 1 159 3 is_stmt 1 discriminator 2 view .LVU258 1028 0012 184B ldr r3, .L99 1029 0014 0122 movs r2, #1 1030 0016 1A76 strb r2, [r3, #24] 159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 1031 .loc 1 159 3 discriminator 2 view .LVU259 162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 1032 .loc 1 162 3 discriminator 2 view .LVU260 165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 1033 .loc 1 165 3 discriminator 2 view .LVU261 165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 1034 .loc 1 165 12 is_stmt 0 discriminator 2 view .LVU262 1035 0018 4CF25030 movw r0, #50000 1036 .LVL49: 165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 1037 .loc 1 165 12 discriminator 2 view .LVU263 1038 001c FFF7FEFF bl FLASH_WaitForLastOperation 1039 .LVL50: 167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 1040 .loc 1 167 3 is_stmt 1 discriminator 2 view .LVU264 167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 1041 .loc 1 167 6 is_stmt 0 discriminator 2 view .LVU265 1042 0020 90B9 cbnz r0, .L89 169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 1043 .loc 1 169 5 is_stmt 1 view .LVU266 169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 1044 .loc 1 169 8 is_stmt 0 view .LVU267 1045 0022 ACB1 cbz r4, .L96 174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 1046 .loc 1 174 10 is_stmt 1 view .LVU268 174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 1047 .loc 1 174 13 is_stmt 0 view .LVU269 1048 0024 012C cmp r4, #1 ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 40 1049 0026 18D0 beq .L97 179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 1050 .loc 1 179 10 is_stmt 1 view .LVU270 179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** { 1051 .loc 1 179 13 is_stmt 0 view .LVU271 1052 0028 022C cmp r4, #2 1053 002a 1BD0 beq .L98 187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 1054 .loc 1 187 7 is_stmt 1 view .LVU272 1055 002c 3246 mov r2, r6 1056 002e 3B46 mov r3, r7 1057 0030 2846 mov r0, r5 1058 .LVL51: 187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 1059 .loc 1 187 7 is_stmt 0 view .LVU273 1060 0032 FFF7FEFF bl FLASH_Program_DoubleWord 1061 .LVL52: 1062 .L91: 191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 1063 .loc 1 191 5 is_stmt 1 view .LVU274 191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 1064 .loc 1 191 14 is_stmt 0 view .LVU275 1065 0036 4CF25030 movw r0, #50000 1066 003a FFF7FEFF bl FLASH_WaitForLastOperation 1067 .LVL53: 194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 1068 .loc 1 194 5 is_stmt 1 view .LVU276 194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 1069 .loc 1 194 15 is_stmt 0 view .LVU277 1070 003e 0E4A ldr r2, .L99+4 1071 0040 1369 ldr r3, [r2, #16] 1072 0042 23F00103 bic r3, r3, #1 1073 0046 1361 str r3, [r2, #16] 1074 .L89: 198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 1075 .loc 1 198 3 is_stmt 1 view .LVU278 198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 1076 .loc 1 198 3 view .LVU279 1077 0048 0A4B ldr r3, .L99 1078 004a 0022 movs r2, #0 1079 004c 1A76 strb r2, [r3, #24] 198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 1080 .loc 1 198 3 view .LVU280 200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 1081 .loc 1 200 3 view .LVU281 1082 .LVL54: 1083 .L88: 201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 1084 .loc 1 201 1 is_stmt 0 view .LVU282 1085 004e F8BD pop {r3, r4, r5, r6, r7, pc} 1086 .LVL55: 1087 .L96: 172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 1088 .loc 1 172 7 is_stmt 1 view .LVU283 1089 0050 F1B2 uxtb r1, r6 1090 0052 2846 mov r0, r5 1091 .LVL56: ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 41 172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 1092 .loc 1 172 7 is_stmt 0 view .LVU284 1093 0054 FFF7FEFF bl FLASH_Program_Byte 1094 .LVL57: 1095 0058 EDE7 b .L91 1096 .LVL58: 1097 .L97: 177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 1098 .loc 1 177 7 is_stmt 1 view .LVU285 1099 005a B1B2 uxth r1, r6 1100 005c 2846 mov r0, r5 1101 .LVL59: 177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 1102 .loc 1 177 7 is_stmt 0 view .LVU286 1103 005e FFF7FEFF bl FLASH_Program_HalfWord 1104 .LVL60: 1105 0062 E8E7 b .L91 1106 .LVL61: 1107 .L98: 182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 1108 .loc 1 182 7 is_stmt 1 view .LVU287 1109 0064 3146 mov r1, r6 1110 0066 2846 mov r0, r5 1111 .LVL62: 182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 1112 .loc 1 182 7 is_stmt 0 view .LVU288 1113 0068 FFF7FEFF bl FLASH_Program_Word 1114 .LVL63: 1115 006c E3E7 b .L91 1116 .LVL64: 1117 .L94: 159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 1118 .loc 1 159 3 view .LVU289 1119 006e 0220 movs r0, #2 1120 .LVL65: 159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 1121 .loc 1 159 3 view .LVU290 1122 0070 EDE7 b .L88 1123 .L100: 1124 0072 00BF .align 2 1125 .L99: 1126 0074 00000000 .word .LANCHOR0 1127 0078 003C0240 .word 1073888256 1128 .cfi_endproc 1129 .LFE239: 1131 .section .text.HAL_FLASH_OB_Launch,"ax",%progbits 1132 .align 1 1133 .global HAL_FLASH_OB_Launch 1134 .syntax unified 1135 .thumb 1136 .thumb_func 1138 HAL_FLASH_OB_Launch: 1139 .LFB248: 494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Set the OPTSTRT bit in OPTCR register */ 1140 .loc 1 494 1 is_stmt 1 view -0 1141 .cfi_startproc 1142 @ args = 0, pretend = 0, frame = 0 ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 42 1143 @ frame_needed = 0, uses_anonymous_args = 0 1144 0000 08B5 push {r3, lr} 1145 .LCFI6: 1146 .cfi_def_cfa_offset 8 1147 .cfi_offset 3, -8 1148 .cfi_offset 14, -4 496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 1149 .loc 1 496 3 view .LVU292 496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 1150 .loc 1 496 40 is_stmt 0 view .LVU293 1151 0002 054A ldr r2, .L103 1152 0004 137D ldrb r3, [r2, #20] @ zero_extendqisi2 1153 0006 43F00203 orr r3, r3, #2 1154 000a 1375 strb r3, [r2, #20] 499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 1155 .loc 1 499 3 is_stmt 1 view .LVU294 499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** } 1156 .loc 1 499 11 is_stmt 0 view .LVU295 1157 000c 4CF25030 movw r0, #50000 1158 0010 FFF7FEFF bl FLASH_WaitForLastOperation 1159 .LVL66: 500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** 1160 .loc 1 500 1 view .LVU296 1161 0014 08BD pop {r3, pc} 1162 .L104: 1163 0016 00BF .align 2 1164 .L103: 1165 0018 003C0240 .word 1073888256 1166 .cfi_endproc 1167 .LFE248: 1169 .global pFlash 1170 .section .bss.pFlash,"aw",%nobits 1171 .align 2 1172 .set .LANCHOR0,. + 0 1175 pFlash: 1176 0000 00000000 .space 32 1176 00000000 1176 00000000 1176 00000000 1176 00000000 1177 .text 1178 .Letext0: 1179 .file 3 "c:\\tools\\gcc-arm-none-eabi-10.3-2021.10-win32\\gcc-arm-none-eabi-10.3-2021.10\\arm-none 1180 .file 4 "c:\\tools\\gcc-arm-none-eabi-10.3-2021.10-win32\\gcc-arm-none-eabi-10.3-2021.10\\arm-none 1181 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f405xx.h" 1182 .file 6 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h" 1183 .file 7 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h" 1184 .file 8 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h" 1185 .file 9 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h" 1186 .file 10 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h" ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 43 DEFINED SYMBOLS *ABS*:00000000 stm32f4xx_hal_flash.c C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:20 .text.FLASH_Program_DoubleWord:00000000 $t C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:25 .text.FLASH_Program_DoubleWord:00000000 FLASH_Program_DoubleWord C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:85 .text.FLASH_Program_DoubleWord:0000002c $d C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:90 .text.FLASH_Program_Word:00000000 $t C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:95 .text.FLASH_Program_Word:00000000 FLASH_Program_Word C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:127 .text.FLASH_Program_Word:00000020 $d C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:132 .text.FLASH_Program_HalfWord:00000000 $t C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:137 .text.FLASH_Program_HalfWord:00000000 FLASH_Program_HalfWord C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:169 .text.FLASH_Program_HalfWord:00000020 $d C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:174 .text.FLASH_Program_Byte:00000000 $t C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:179 .text.FLASH_Program_Byte:00000000 FLASH_Program_Byte C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:210 .text.FLASH_Program_Byte:0000001c $d C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:215 .text.FLASH_SetErrorCode:00000000 $t C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:220 .text.FLASH_SetErrorCode:00000000 FLASH_SetErrorCode C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:322 .text.FLASH_SetErrorCode:00000084 $d C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:328 .text.HAL_FLASH_Program_IT:00000000 $t C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:334 .text.HAL_FLASH_Program_IT:00000000 HAL_FLASH_Program_IT C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:419 .text.HAL_FLASH_Program_IT:0000004c $d C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:425 .text.HAL_FLASH_EndOfOperationCallback:00000000 $t C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:431 .text.HAL_FLASH_EndOfOperationCallback:00000000 HAL_FLASH_EndOfOperationCallback C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:446 .text.HAL_FLASH_OperationErrorCallback:00000000 $t C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:452 .text.HAL_FLASH_OperationErrorCallback:00000000 HAL_FLASH_OperationErrorCallback C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:467 .text.HAL_FLASH_IRQHandler:00000000 $t C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:473 .text.HAL_FLASH_IRQHandler:00000000 HAL_FLASH_IRQHandler C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:682 .text.HAL_FLASH_IRQHandler:000000e4 $d C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:688 .text.HAL_FLASH_Unlock:00000000 $t C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:694 .text.HAL_FLASH_Unlock:00000000 HAL_FLASH_Unlock C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:740 .text.HAL_FLASH_Unlock:00000028 $d C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:746 .text.HAL_FLASH_Lock:00000000 $t C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:752 .text.HAL_FLASH_Lock:00000000 HAL_FLASH_Lock C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:772 .text.HAL_FLASH_Lock:00000010 $d C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:777 .text.HAL_FLASH_OB_Unlock:00000000 $t C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:783 .text.HAL_FLASH_OB_Unlock:00000000 HAL_FLASH_OB_Unlock C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:818 .text.HAL_FLASH_OB_Unlock:00000020 $d C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:824 .text.HAL_FLASH_OB_Lock:00000000 $t C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:830 .text.HAL_FLASH_OB_Lock:00000000 HAL_FLASH_OB_Lock C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:850 .text.HAL_FLASH_OB_Lock:00000010 $d C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:855 .text.HAL_FLASH_GetError:00000000 $t C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:861 .text.HAL_FLASH_GetError:00000000 HAL_FLASH_GetError C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:877 .text.HAL_FLASH_GetError:00000008 $d C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:882 .text.FLASH_WaitForLastOperation:00000000 $t C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:888 .text.FLASH_WaitForLastOperation:00000000 FLASH_WaitForLastOperation C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:984 .text.FLASH_WaitForLastOperation:00000058 $d C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:990 .text.HAL_FLASH_Program:00000000 $t C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:996 .text.HAL_FLASH_Program:00000000 HAL_FLASH_Program C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:1126 .text.HAL_FLASH_Program:00000074 $d C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:1132 .text.HAL_FLASH_OB_Launch:00000000 $t C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:1138 .text.HAL_FLASH_OB_Launch:00000000 HAL_FLASH_OB_Launch C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:1165 .text.HAL_FLASH_OB_Launch:00000018 $d C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:1175 .bss.pFlash:00000000 pFlash C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s:1171 .bss.pFlash:00000000 $d UNDEFINED SYMBOLS FLASH_Erase_Sector FLASH_FlushCaches ARM GAS C:\Users\MHONDA~1\AppData\Local\Temp\ccjF2jJ8.s page 44 HAL_GetTick