ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 1 1 .cpu cortex-m7 2 .arch armv7e-m 3 .fpu fpv5-d16 4 .eabi_attribute 28, 1 5 .eabi_attribute 20, 1 6 .eabi_attribute 21, 1 7 .eabi_attribute 23, 3 8 .eabi_attribute 24, 1 9 .eabi_attribute 25, 1 10 .eabi_attribute 26, 1 11 .eabi_attribute 30, 1 12 .eabi_attribute 34, 1 13 .eabi_attribute 18, 4 14 .file "stm32h7xx_hal_flash.c" 15 .text 16 .Ltext0: 17 .cfi_sections .debug_frame 18 .file 1 "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c" 19 .section .text.HAL_FLASH_EndOfOperationCallback,"ax",%progbits 20 .align 1 21 .weak HAL_FLASH_EndOfOperationCallback 22 .syntax unified 23 .thumb 24 .thumb_func 26 HAL_FLASH_EndOfOperationCallback: 27 .LVL0: 28 .LFB338: 1:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** 2:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** ****************************************************************************** 3:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @file stm32h7xx_hal_flash.c 4:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @author MCD Application Team 5:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @brief FLASH HAL module driver. 6:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * functionalities of the internal FLASH memory: 8:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * + Program operations functions 9:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * + Memory Control functions 10:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * + Peripheral Errors functions 11:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * 12:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** @verbatim 13:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** ============================================================================== 14:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** ##### FLASH peripheral features ##### 15:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** ============================================================================== 16:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 17:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** [..] The Flash memory interface manages CPU AXI I-Code and D-Code accesses 18:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** to the Flash memory. It implements the erase and program Flash memory operations 19:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** and the read and write protection mechanisms. 20:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 21:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** [..] The FLASH main features are: 22:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (+) Flash memory read operations 23:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (+) Flash memory program/erase operations 24:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (+) Read / write protections 25:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (+) Option bytes programming 26:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (+) Error code correction (ECC) : Data in flash are 266-bits word 27:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (10 bits added per flash word) 28:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 29:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** ##### How to use this driver ##### 30:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** ============================================================================== ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 2 31:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** [..] 32:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** This driver provides functions and macros to configure and program the FLASH 33:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** memory of all STM32H7xx devices. 34:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 35:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (#) FLASH Memory IO Programming functions: 36:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (++) Lock and Unlock the FLASH interface using HAL_FLASH_Unlock() and 37:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_FLASH_Lock() functions 38:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (++) Program functions: 256-bit word only 39:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (++) There Two modes of programming : 40:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (+++) Polling mode using HAL_FLASH_Program() function 41:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (+++) Interrupt mode using HAL_FLASH_Program_IT() function 42:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 43:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (#) Interrupts and flags management functions : 44:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (++) Handle FLASH interrupts by calling HAL_FLASH_IRQHandler() 45:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (++) Callback functions are called when the flash operations are finished : 46:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback() when everything is ok, otherwise 47:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_FLASH_OperationErrorCallback() 48:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (++) Get error flag status by calling HAL_FLASH_GetError() 49:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 50:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (#) Option bytes management functions : 51:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (++) Lock and Unlock the option bytes using HAL_FLASH_OB_Unlock() and 52:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_FLASH_OB_Lock() functions 53:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (++) Launch the reload of the option bytes using HAL_FLASH_OB_Launch() function. 54:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** In this case, a reset is generated 55:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** [..] 56:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** In addition to these functions, this driver includes a set of macros allowing 57:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** to handle the following operations: 58:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (+) Set the latency 59:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (+) Enable/Disable the FLASH interrupts 60:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (+) Monitor the FLASH flags status 61:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** [..] 62:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (@) For any Flash memory program operation (erase or program), the CPU clock frequency 63:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (HCLK) must be at least 1MHz. 64:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (@) The contents of the Flash memory are not guaranteed if a device reset occurs during 65:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** a Flash memory operation. 66:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (@) The application can simultaneously request a read and a write operation through each AXI 67:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** interface. 68:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** As the Flash memory is divided into two independent banks, the embedded Flash 69:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** memory interface can drive different operations at the same time on each bank. For 70:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** example a read, write or erase operation can be executed on bank 1 while another read, 71:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** write or erase operation is executed on bank 2. 72:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 73:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** @endverbatim 74:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** ****************************************************************************** 75:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @attention 76:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * 77:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * Copyright (c) 2017 STMicroelectronics. 78:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * All rights reserved. 79:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * 80:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * This software is licensed under terms that can be found in the LICENSE file in 81:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * the root directory of this software component. 82:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 83:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** ****************************************************************************** 84:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 85:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 86:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Includes ------------------------------------------------------------------*/ 87:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #include "stm32h7xx_hal.h" ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 3 88:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 89:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** @addtogroup STM32H7xx_HAL_Driver 90:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @{ 91:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 92:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 93:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** @defgroup FLASH FLASH 94:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @brief FLASH HAL module driver 95:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @{ 96:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 97:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 98:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #ifdef HAL_FLASH_MODULE_ENABLED 99:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Private typedef -----------------------------------------------------------*/ 101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Private define ------------------------------------------------------------*/ 102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** @addtogroup FLASH_Private_Constants 103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @{ 104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #define FLASH_TIMEOUT_VALUE 50000U /* 50 s */ 106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** 107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @} 108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Private macro -------------------------------------------------------------*/ 110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Private variables ---------------------------------------------------------*/ 111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** @addtogroup FLASH_Private_Variables 112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @{ 113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_ProcessTypeDef pFlash; 115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** 116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @} 117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Private function prototypes -----------------------------------------------*/ 119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Exported functions ---------------------------------------------------------*/ 120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions FLASH Exported functions 122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @{ 123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group1 Programming operation functions 126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @brief Programming operation functions 127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * 128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** @verbatim 129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** =============================================================================== 130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** ##### Programming operation functions ##### 131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** =============================================================================== 132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** [..] 133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** This subsection provides a set of functions allowing to manage the FLASH 134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** program operations. 135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** @endverbatim 137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @{ 138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** 141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @brief Program a flash word at a specified address 142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @param TypeProgram Indicate the way to program at a specified address. 143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * This parameter can be a value of @ref FLASH_Type_Program 144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @param FlashAddress specifies the address to be programmed. ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 4 145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * This parameter shall be aligned to the Flash word: 146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * - 256 bits for STM32H74x/5X devices (8x 32bits words) 147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * - 128 bits for STM32H7Ax/BX devices (4x 32bits words) 148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * - 256 bits for STM32H72x/3X devices (8x 32bits words) 149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @param DataAddress specifies the address of data to be programmed. 150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * This parameter shall be 32-bit aligned 151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * 152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @retval HAL_StatusTypeDef HAL Status 153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t FlashAddress, uint32_t DataAddre 155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_StatusTypeDef status; 157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __IO uint32_t *dest_addr = (__IO uint32_t *)FlashAddress; 158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __IO uint32_t *src_addr = (__IO uint32_t*)DataAddress; 159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** uint32_t bank; 160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** uint8_t row_index = FLASH_NB_32BITWORD_IN_FLASHWORD; 161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Check the parameters */ 163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram)); 164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(FlashAddress)); 165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Process Locked */ 167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_LOCK(&pFlash); 168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (FLASH_OPTCR_PG_OTP) 170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if((IS_FLASH_PROGRAM_ADDRESS_BANK1(FlashAddress)) || (IS_FLASH_PROGRAM_ADDRESS_OTP(FlashAddress)) 171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #else 172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(IS_FLASH_PROGRAM_ADDRESS_BANK1(FlashAddress)) 173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* FLASH_OPTCR_PG_OTP */ 174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** bank = FLASH_BANK_1; 176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */ 177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** UNUSED(TypeProgram); 178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (DUAL_BANK) 180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else if(IS_FLASH_PROGRAM_ADDRESS_BANK2(FlashAddress)) 181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** bank = FLASH_BANK_2; 183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* DUAL_BANK */ 185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_ERROR; 188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Reset error code */ 191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; 192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Wait for last operation to be completed */ 194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, bank); 195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(status == HAL_OK) 197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (DUAL_BANK) 199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(bank == FLASH_BANK_1) 200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (FLASH_OPTCR_PG_OTP) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 5 202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (TypeProgram == FLASH_TYPEPROGRAM_OTPWORD) 203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Set OTP_PG bit */ 205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** SET_BIT(FLASH->OPTCR, FLASH_OPTCR_PG_OTP); 206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* FLASH_OPTCR_PG_OTP */ 209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Set PG bit */ 211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** SET_BIT(FLASH->CR1, FLASH_CR_PG); 212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Set PG bit */ 217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** SET_BIT(FLASH->CR2, FLASH_CR_PG); 218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #else /* Single Bank */ 220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (FLASH_OPTCR_PG_OTP) 221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (TypeProgram == FLASH_TYPEPROGRAM_OTPWORD) 222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Set OTP_PG bit */ 224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** SET_BIT(FLASH->OPTCR, FLASH_OPTCR_PG_OTP); 225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* FLASH_OPTCR_PG_OTP */ 228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Set PG bit */ 230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** SET_BIT(FLASH->CR1, FLASH_CR_PG); 231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* DUAL_BANK */ 233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __ISB(); 235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __DSB(); 236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (FLASH_OPTCR_PG_OTP) 238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (TypeProgram == FLASH_TYPEPROGRAM_OTPWORD) 239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Program an OTP word (16 bits) */ 241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** *(__IO uint16_t *)FlashAddress = *(__IO uint16_t*)DataAddress; 242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* FLASH_OPTCR_PG_OTP */ 245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Program the flash word */ 247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** do 248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** *dest_addr = *src_addr; 250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** dest_addr++; 251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** src_addr++; 252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** row_index--; 253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } while (row_index != 0U); 254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __ISB(); 257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __DSB(); 258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 6 259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Wait for last operation to be completed */ 260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, bank); 261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (DUAL_BANK) 263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (FLASH_OPTCR_PG_OTP) 264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (TypeProgram == FLASH_TYPEPROGRAM_OTPWORD) 265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* If the program operation is completed, disable the OTP_PG */ 267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** CLEAR_BIT(FLASH->OPTCR, FLASH_OPTCR_PG_OTP); 268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* FLASH_OPTCR_PG_OTP */ 271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(bank == FLASH_BANK_1) 273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* If the program operation is completed, disable the PG */ 275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** CLEAR_BIT(FLASH->CR1, FLASH_CR_PG); 276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* If the program operation is completed, disable the PG */ 280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** CLEAR_BIT(FLASH->CR2, FLASH_CR_PG); 281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #else /* Single Bank */ 284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (FLASH_OPTCR_PG_OTP) 285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (TypeProgram == FLASH_TYPEPROGRAM_OTPWORD) 286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* If the program operation is completed, disable the OTP_PG */ 288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** CLEAR_BIT(FLASH->OPTCR, FLASH_OPTCR_PG_OTP); 289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* FLASH_OPTCR_PG_OTP */ 292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* If the program operation is completed, disable the PG */ 294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** CLEAR_BIT(FLASH->CR1, FLASH_CR_PG); 295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* DUAL_BANK */ 297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Process Unlocked */ 300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_UNLOCK(&pFlash); 301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return status; 303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** 306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @brief Program a flash word at a specified address with interrupt enabled. 307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @param TypeProgram Indicate the way to program at a specified address. 308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * This parameter can be a value of @ref FLASH_Type_Program 309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @param FlashAddress specifies the address to be programmed. 310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * This parameter shall be aligned to the Flash word: 311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * - 256 bits for STM32H74x/5X devices (8x 32bits words) 312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * - 128 bits for STM32H7Ax/BX devices (4x 32bits words) 313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * - 256 bits for STM32H72x/3X devices (8x 32bits words) 314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @param DataAddress specifies the address of data to be programmed. 315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * This parameter shall be 32-bit aligned ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 7 316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * 317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @retval HAL Status 318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t FlashAddress, uint32_t DataAd 320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_StatusTypeDef status; 322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __IO uint32_t *dest_addr = (__IO uint32_t*)FlashAddress; 323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __IO uint32_t *src_addr = (__IO uint32_t*)DataAddress; 324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** uint32_t bank; 325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** uint8_t row_index = FLASH_NB_32BITWORD_IN_FLASHWORD; 326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Check the parameters */ 328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram)); 329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(FlashAddress)); 330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Process Locked */ 332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_LOCK(&pFlash); 333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Reset error code */ 335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; 336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (FLASH_OPTCR_PG_OTP) 338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if((IS_FLASH_PROGRAM_ADDRESS_BANK1(FlashAddress)) || (IS_FLASH_PROGRAM_ADDRESS_OTP(FlashAddress)) 339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #else 340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(IS_FLASH_PROGRAM_ADDRESS_BANK1(FlashAddress)) 341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* FLASH_OPTCR_PG_OTP */ 342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** bank = FLASH_BANK_1; 344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */ 345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** UNUSED(TypeProgram); 346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (DUAL_BANK) 348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else if(IS_FLASH_PROGRAM_ADDRESS_BANK2(FlashAddress)) 349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** bank = FLASH_BANK_2; 351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* DUAL_BANK */ 353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_ERROR; 356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Wait for last operation to be completed */ 359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, bank); 360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (status != HAL_OK) 362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Process Unlocked */ 364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_UNLOCK(&pFlash); 365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.Address = FlashAddress; 369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (DUAL_BANK) 371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(bank == FLASH_BANK_1) 372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 8 373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Set internal variables used by the IRQ handler */ 374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAM_BANK1; 375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (FLASH_OPTCR_PG_OTP) 377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (TypeProgram == FLASH_TYPEPROGRAM_OTPWORD) 378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Set OTP_PG bit */ 380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** SET_BIT(FLASH->OPTCR, FLASH_OPTCR_PG_OTP); 381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* FLASH_OPTCR_PG_OTP */ 384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Set PG bit */ 386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** SET_BIT(FLASH->CR1, FLASH_CR_PG); 387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Enable End of Operation and Error interrupts for Bank 1 */ 390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (FLASH_CR_OPERRIE) 391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_ENABLE_IT_BANK1(FLASH_IT_EOP_BANK1 | FLASH_IT_WRPERR_BANK1 | FLASH_IT_PGSERR_ 392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_IT_STRBERR_BANK1 | FLASH_IT_INCERR_BANK1 | FLASH_IT_OPERR_B 393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #else 394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_ENABLE_IT_BANK1(FLASH_IT_EOP_BANK1 | FLASH_IT_WRPERR_BANK1 | FLASH_IT_PGSERR_ 395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_IT_STRBERR_BANK1 | FLASH_IT_INCERR_BANK1); 396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* FLASH_CR_OPERRIE */ 397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Set internal variables used by the IRQ handler */ 401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAM_BANK2; 402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Set PG bit */ 404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** SET_BIT(FLASH->CR2, FLASH_CR_PG); 405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Enable End of Operation and Error interrupts for Bank2 */ 407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (FLASH_CR_OPERRIE) 408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_ENABLE_IT_BANK2(FLASH_IT_EOP_BANK2 | FLASH_IT_WRPERR_BANK2 | FLASH_IT_PGSERR_ 409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_IT_STRBERR_BANK2 | FLASH_IT_INCERR_BANK2 | FLASH_IT_OPERR_B 410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #else 411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_ENABLE_IT_BANK2(FLASH_IT_EOP_BANK2 | FLASH_IT_WRPERR_BANK2 | FLASH_IT_PGSERR_ 412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_IT_STRBERR_BANK2 | FLASH_IT_INCERR_BANK2); 413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* FLASH_CR_OPERRIE */ 414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #else /* Single Bank */ 416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Set internal variables used by the IRQ handler */ 417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAM_BANK1; 418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (FLASH_OPTCR_PG_OTP) 420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (TypeProgram == FLASH_TYPEPROGRAM_OTPWORD) 421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Set OTP_PG bit */ 423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** SET_BIT(FLASH->OPTCR, FLASH_OPTCR_PG_OTP); 424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* FLASH_OPTCR_PG_OTP */ 427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Set PG bit */ 429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** SET_BIT(FLASH->CR1, FLASH_CR_PG); ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 9 430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Enable End of Operation and Error interrupts for Bank 1 */ 433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (FLASH_CR_OPERRIE) 434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_ENABLE_IT_BANK1(FLASH_IT_EOP_BANK1 | FLASH_IT_WRPERR_BANK1 | FLASH_IT_PGSERR_ 435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_IT_STRBERR_BANK1 | FLASH_IT_INCERR_BANK1 | FLASH_IT_OPERR_B 436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #else 437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_ENABLE_IT_BANK1(FLASH_IT_EOP_BANK1 | FLASH_IT_WRPERR_BANK1 | FLASH_IT_PGSERR_ 438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_IT_STRBERR_BANK1 | FLASH_IT_INCERR_BANK1); 439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* FLASH_CR_OPERRIE */ 440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* DUAL_BANK */ 441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __ISB(); 443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __DSB(); 444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (FLASH_OPTCR_PG_OTP) 446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (TypeProgram == FLASH_TYPEPROGRAM_OTPWORD) 447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Program an OTP word (16 bits) */ 449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** *(__IO uint16_t *)FlashAddress = *(__IO uint16_t*)DataAddress; 450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* FLASH_OPTCR_PG_OTP */ 453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Program the flash word */ 455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** do 456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** *dest_addr = *src_addr; 458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** dest_addr++; 459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** src_addr++; 460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** row_index--; 461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } while (row_index != 0U); 462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __ISB(); 465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __DSB(); 466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return status; 469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** 472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @brief This function handles FLASH interrupt request. 473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @retval None 474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** void HAL_FLASH_IRQHandler(void) 476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** uint32_t temp; 478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** uint32_t errorflag; 479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_ProcedureTypeDef procedure; 480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Check FLASH Bank1 End of Operation flag */ 482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG_BANK1(FLASH_SR_EOP) != RESET) 483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(pFlash.ProcedureOnGoing == FLASH_PROC_SECTERASE_BANK1) 485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Nb of sector to erased can be decreased */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 10 487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.NbSectorsToErase--; 488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Check if there are still sectors to erase */ 490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(pFlash.NbSectorsToErase != 0U) 491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Indicate user which sector has been erased */ 493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Sector); 494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear bank 1 End of Operation pending bit */ 496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG_BANK1(FLASH_FLAG_EOP_BANK1); 497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Increment sector number */ 499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.Sector++; 500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** temp = pFlash.Sector; 501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_Erase_Sector(temp, FLASH_BANK_1, pFlash.VoltageForErase); 502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* No more sectors to Erase, user callback can be called */ 506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Reset Sector and stop Erase sectors procedure */ 507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.Sector = 0xFFFFFFFFU; 508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* FLASH EOP interrupt user callback */ 511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Sector); 512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */ 514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG_BANK1(FLASH_FLAG_EOP_BANK1); 515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** procedure = pFlash.ProcedureOnGoing; 520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if((procedure == FLASH_PROC_MASSERASE_BANK1) || (procedure == FLASH_PROC_ALLBANK_MASSERASE)) 522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* MassErase ended. Return the selected bank */ 524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* FLASH EOP interrupt user callback */ 525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(FLASH_BANK_1); 526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else if(procedure == FLASH_PROC_PROGRAM_BANK1) 528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Program ended. Return the selected address */ 530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* FLASH EOP interrupt user callback */ 531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Address); 532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Nothing to do */ 536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if((procedure != FLASH_PROC_SECTERASE_BANK2) && \ 539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (procedure != FLASH_PROC_MASSERASE_BANK2) && \ 540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (procedure != FLASH_PROC_PROGRAM_BANK2)) 541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 11 544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG_BANK1(FLASH_FLAG_EOP_BANK1); 545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (DUAL_BANK) 550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Check FLASH Bank2 End of Operation flag */ 551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG_BANK2(FLASH_SR_EOP) != RESET) 552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(pFlash.ProcedureOnGoing == FLASH_PROC_SECTERASE_BANK2) 554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /*Nb of sector to erased can be decreased*/ 556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.NbSectorsToErase--; 557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Check if there are still sectors to erase*/ 559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(pFlash.NbSectorsToErase != 0U) 560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /*Indicate user which sector has been erased*/ 562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Sector); 563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear bank 2 End of Operation pending bit */ 565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG_BANK2(FLASH_FLAG_EOP_BANK2); 566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /*Increment sector number*/ 568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.Sector++; 569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** temp = pFlash.Sector; 570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_Erase_Sector(temp, FLASH_BANK_2, pFlash.VoltageForErase); 571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* No more sectors to Erase, user callback can be called */ 575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Reset Sector and stop Erase sectors procedure */ 576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.Sector = 0xFFFFFFFFU; 577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* FLASH EOP interrupt user callback */ 580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Sector); 581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */ 583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG_BANK2(FLASH_FLAG_EOP_BANK2); 584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** procedure = pFlash.ProcedureOnGoing; 589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if((procedure == FLASH_PROC_MASSERASE_BANK2) || (procedure == FLASH_PROC_ALLBANK_MASSERASE)) 591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /*MassErase ended. Return the selected bank*/ 593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* FLASH EOP interrupt user callback */ 594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(FLASH_BANK_2); 595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else if(procedure == FLASH_PROC_PROGRAM_BANK2) 597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Program ended. Return the selected address */ 599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* FLASH EOP interrupt user callback */ 600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Address); ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 12 601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Nothing to do */ 605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if((procedure != FLASH_PROC_SECTERASE_BANK1) && \ 608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (procedure != FLASH_PROC_MASSERASE_BANK1) && \ 609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (procedure != FLASH_PROC_PROGRAM_BANK1)) 610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */ 613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG_BANK2(FLASH_FLAG_EOP_BANK2); 614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* DUAL_BANK */ 618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Check FLASH Bank1 operation error flags */ 620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (FLASH_SR_OPERR) 621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** errorflag = FLASH->SR1 & (FLASH_FLAG_WRPERR_BANK1 | FLASH_FLAG_PGSERR_BANK1 | FLASH_FLAG_STRBERR_ 622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_FLAG_INCERR_BANK1 | FLASH_FLAG_OPERR_BANK1); 623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #else 624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** errorflag = FLASH->SR1 & (FLASH_FLAG_WRPERR_BANK1 | FLASH_FLAG_PGSERR_BANK1 | FLASH_FLAG_STRBERR_ 625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_FLAG_INCERR_BANK1); 626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* FLASH_SR_OPERR */ 627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(errorflag != 0U) 629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Save the error code */ 631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ErrorCode |= errorflag; 632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear error programming flags */ 634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG_BANK1(errorflag); 635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** procedure = pFlash.ProcedureOnGoing; 637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(procedure == FLASH_PROC_SECTERASE_BANK1) 639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Return the faulty sector */ 641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** temp = pFlash.Sector; 642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.Sector = 0xFFFFFFFFU; 643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else if((procedure == FLASH_PROC_MASSERASE_BANK1) || (procedure == FLASH_PROC_ALLBANK_MASSERASE 645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Return the faulty bank */ 647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** temp = FLASH_BANK_1; 648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Return the faulty address */ 652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** temp = pFlash.Address; 653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Stop the procedure ongoing*/ 656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 13 658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* FLASH error interrupt user callback */ 659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_FLASH_OperationErrorCallback(temp); 660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if (USE_FLASH_ECC == 1U) 663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Check FLASH Bank1 ECC single correction error flag */ 664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** errorflag = FLASH->SR1 & FLASH_FLAG_SNECCERR_BANK1; 665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(errorflag != 0U) 667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Save the error code */ 669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ErrorCode |= errorflag; 670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Call User callback */ 672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_FLASHEx_EccCorrectionCallback(); 673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear FLASH Bank1 ECC single correction error flag in order to allow new ECC error record */ 675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG_BANK1(errorflag); 676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Check FLASH Bank1 ECC double detection error flag */ 679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** errorflag = FLASH->SR1 & FLASH_FLAG_DBECCERR_BANK1; 680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(errorflag != 0U) 682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Save the error code */ 684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ErrorCode |= errorflag; 685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Call User callback */ 687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_FLASHEx_EccDetectionCallback(); 688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear FLASH Bank1 ECC double detection error flag in order to allow new ECC error record */ 690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG_BANK1(errorflag); 691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* USE_FLASH_ECC */ 693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (DUAL_BANK) 695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Check FLASH Bank2 operation error flags */ 696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (FLASH_SR_OPERR) 697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** errorflag = FLASH->SR2 & ((FLASH_FLAG_WRPERR_BANK2 | FLASH_FLAG_PGSERR_BANK2 | FLASH_FLAG_STRBERR 698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_FLAG_INCERR_BANK2 | FLASH_FLAG_OPERR_BANK2) & 0x7FFFFFFFU); 699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #else 700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** errorflag = FLASH->SR2 & ((FLASH_FLAG_WRPERR_BANK2 | FLASH_FLAG_PGSERR_BANK2 | FLASH_FLAG_STRBERR 701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_FLAG_INCERR_BANK2) & 0x7FFFFFFFU); 702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* FLASH_SR_OPERR */ 703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(errorflag != 0U) 705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Save the error code */ 707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ErrorCode |= (errorflag | 0x80000000U); 708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear error programming flags */ 710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG_BANK2(errorflag); 711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** procedure = pFlash.ProcedureOnGoing; 713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(procedure== FLASH_PROC_SECTERASE_BANK2) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 14 715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /*return the faulty sector*/ 717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** temp = pFlash.Sector; 718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.Sector = 0xFFFFFFFFU; 719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else if((procedure == FLASH_PROC_MASSERASE_BANK2) || (procedure == FLASH_PROC_ALLBANK_MASSERASE 721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /*return the faulty bank*/ 723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** temp = FLASH_BANK_2; 724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /*return the faulty address*/ 728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** temp = pFlash.Address; 729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /*Stop the procedure ongoing*/ 732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* FLASH error interrupt user callback */ 735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_FLASH_OperationErrorCallback(temp); 736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if (USE_FLASH_ECC == 1U) 739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Check FLASH Bank2 ECC single correction error flag */ 740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** errorflag = FLASH->SR2 & FLASH_FLAG_SNECCERR_BANK2; 741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(errorflag != 0U) 743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Save the error code */ 745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ErrorCode |= (errorflag | 0x80000000U); 746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Call User callback */ 748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_FLASHEx_EccCorrectionCallback(); 749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear FLASH Bank2 ECC single correction error flag in order to allow new ECC error record */ 751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG_BANK2(errorflag); 752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Check FLASH Bank2 ECC double detection error flag */ 755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** errorflag = FLASH->SR2 & FLASH_FLAG_DBECCERR_BANK2; 756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(errorflag != 0U) 758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Save the error code */ 760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ErrorCode |= (errorflag | 0x80000000U); 761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Call User callback */ 763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_FLASHEx_EccDetectionCallback(); 764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear FLASH Bank2 ECC double detection error flag in order to allow new ECC error record */ 766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG_BANK2(errorflag); 767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* USE_FLASH_ECC */ 770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* DUAL_BANK */ 771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 15 772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(pFlash.ProcedureOnGoing == FLASH_PROC_NONE) 773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (FLASH_CR_OPERRIE) 775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Disable Bank1 Operation and Error source interrupt */ 776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_DISABLE_IT_BANK1(FLASH_IT_EOP_BANK1 | FLASH_IT_WRPERR_BANK1 | FLASH_IT_PGSERR_BA 777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_IT_STRBERR_BANK1 | FLASH_IT_INCERR_BANK1 | FLASH_IT_OPERR_BA 778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (DUAL_BANK) 780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Disable Bank2 Operation and Error source interrupt */ 781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_DISABLE_IT_BANK2(FLASH_IT_EOP_BANK2 | FLASH_IT_WRPERR_BANK2 | FLASH_IT_PGSERR_BA 782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_IT_STRBERR_BANK2 | FLASH_IT_INCERR_BANK2 | FLASH_IT_OPERR_BA 783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* DUAL_BANK */ 784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #else 785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Disable Bank1 Operation and Error source interrupt */ 786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_DISABLE_IT_BANK1(FLASH_IT_EOP_BANK1 | FLASH_IT_WRPERR_BANK1 | FLASH_IT_PGSERR_BA 787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_IT_STRBERR_BANK1 | FLASH_IT_INCERR_BANK1); 788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (DUAL_BANK) 790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Disable Bank2 Operation and Error source interrupt */ 791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_DISABLE_IT_BANK2(FLASH_IT_EOP_BANK2 | FLASH_IT_WRPERR_BANK2 | FLASH_IT_PGSERR_BA 792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_IT_STRBERR_BANK2 | FLASH_IT_INCERR_BANK2); 793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* DUAL_BANK */ 794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* FLASH_CR_OPERRIE */ 795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Process Unlocked */ 797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_UNLOCK(&pFlash); 798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** 802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @brief FLASH end of operation interrupt callback 803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @param ReturnValue The value saved in this parameter depends on the ongoing procedure 804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * Mass Erase: Bank number which has been requested to erase 805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * Sectors Erase: Sector which has been erased 806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * (if 0xFFFFFFFF, it means that all the selected sectors have been erased) 807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * Program: Address which was selected for data program 808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @retval None 809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __weak void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue) 811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 29 .loc 1 811 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. 812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */ 813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** UNUSED(ReturnValue); 34 .loc 1 813 3 view .LVU1 814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed, 816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** the HAL_FLASH_EndOfOperationCallback could be implemented in the user file 817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 35 .loc 1 818 1 is_stmt 0 view .LVU2 36 0000 7047 bx lr 37 .cfi_endproc 38 .LFE338: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 16 40 .section .text.HAL_FLASH_OperationErrorCallback,"ax",%progbits 41 .align 1 42 .weak HAL_FLASH_OperationErrorCallback 43 .syntax unified 44 .thumb 45 .thumb_func 47 HAL_FLASH_OperationErrorCallback: 48 .LVL1: 49 .LFB339: 819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** 821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @brief FLASH operation error interrupt callback 822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @param ReturnValue The value saved in this parameter depends on the ongoing procedure 823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * Mass Erase: Bank number which has been requested to erase 824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * Sectors Erase: Sector number which returned an error 825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * Program: Address which was selected for data program 826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @retval None 827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __weak void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue) 829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 50 .loc 1 829 1 is_stmt 1 view -0 51 .cfi_startproc 52 @ args = 0, pretend = 0, frame = 0 53 @ frame_needed = 0, uses_anonymous_args = 0 54 @ link register save eliminated. 830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */ 831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** UNUSED(ReturnValue); 55 .loc 1 831 3 view .LVU4 832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed, 834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** the HAL_FLASH_OperationErrorCallback could be implemented in the user file 835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 56 .loc 1 836 1 is_stmt 0 view .LVU5 57 0000 7047 bx lr 58 .cfi_endproc 59 .LFE339: 61 .section .text.HAL_FLASH_IRQHandler,"ax",%progbits 62 .align 1 63 .global HAL_FLASH_IRQHandler 64 .syntax unified 65 .thumb 66 .thumb_func 68 HAL_FLASH_IRQHandler: 69 .LFB337: 476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** uint32_t temp; 70 .loc 1 476 1 is_stmt 1 view -0 71 .cfi_startproc 72 @ args = 0, pretend = 0, frame = 0 73 @ frame_needed = 0, uses_anonymous_args = 0 74 0000 10B5 push {r4, lr} 75 .cfi_def_cfa_offset 8 76 .cfi_offset 4, -8 77 .cfi_offset 14, -4 477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** uint32_t errorflag; 78 .loc 1 477 3 view .LVU7 478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_ProcedureTypeDef procedure; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 17 79 .loc 1 478 3 view .LVU8 479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 80 .loc 1 479 3 view .LVU9 482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 81 .loc 1 482 3 view .LVU10 482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 82 .loc 1 482 6 is_stmt 0 view .LVU11 83 0002 7A4B ldr r3, .L32 84 0004 1B69 ldr r3, [r3, #16] 482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 85 .loc 1 482 5 view .LVU12 86 0006 13F4803F tst r3, #65536 87 000a 17D0 beq .L4 484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 88 .loc 1 484 5 is_stmt 1 view .LVU13 484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 89 .loc 1 484 14 is_stmt 0 view .LVU14 90 000c 784B ldr r3, .L32+4 91 000e 1B78 ldrb r3, [r3] @ zero_extendqisi2 484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 92 .loc 1 484 7 view .LVU15 93 0010 012B cmp r3, #1 94 0012 49D0 beq .L24 519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 95 .loc 1 519 7 is_stmt 1 view .LVU16 519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 96 .loc 1 519 17 is_stmt 0 view .LVU17 97 0014 764B ldr r3, .L32+4 98 0016 1B78 ldrb r3, [r3] @ zero_extendqisi2 99 0018 DCB2 uxtb r4, r3 100 .LVL2: 521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 101 .loc 1 521 7 is_stmt 1 view .LVU18 521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 102 .loc 1 521 9 is_stmt 0 view .LVU19 103 001a 072B cmp r3, #7 104 001c 18BF it ne 105 001e 022B cmpne r3, #2 106 0020 67D0 beq .L25 527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 107 .loc 1 527 12 is_stmt 1 view .LVU20 527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 108 .loc 1 527 14 is_stmt 0 view .LVU21 109 0022 032C cmp r4, #3 110 0024 69D0 beq .L26 111 .L8: 536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 112 .loc 1 536 7 is_stmt 1 view .LVU22 538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (procedure != FLASH_PROC_MASSERASE_BANK2) && \ 113 .loc 1 538 7 view .LVU23 539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (procedure != FLASH_PROC_PROGRAM_BANK2)) 114 .loc 1 539 52 is_stmt 0 view .LVU24 115 0026 043C subs r4, r4, #4 116 .LVL3: 539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (procedure != FLASH_PROC_PROGRAM_BANK2)) 117 .loc 1 539 52 view .LVU25 118 0028 E4B2 uxtb r4, r4 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 18 119 .LVL4: 538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (procedure != FLASH_PROC_MASSERASE_BANK2) && \ 120 .loc 1 538 9 view .LVU26 121 002a 022C cmp r4, #2 122 002c 06D9 bls .L4 542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */ 123 .loc 1 542 9 is_stmt 1 view .LVU27 542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */ 124 .loc 1 542 33 is_stmt 0 view .LVU28 125 002e 704B ldr r3, .L32+4 126 0030 0022 movs r2, #0 127 0032 1A70 strb r2, [r3] 544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 128 .loc 1 544 9 is_stmt 1 view .LVU29 129 0034 6D4B ldr r3, .L32 130 0036 4FF48032 mov r2, #65536 131 003a 5A61 str r2, [r3, #20] 132 .LVL5: 133 .L4: 551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 134 .loc 1 551 3 view .LVU30 551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 135 .loc 1 551 6 is_stmt 0 view .LVU31 136 003c 6B4B ldr r3, .L32 137 003e D3F81031 ldr r3, [r3, #272] 551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 138 .loc 1 551 5 view .LVU32 139 0042 13F4803F tst r3, #65536 140 0046 18D0 beq .L9 553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 141 .loc 1 553 5 is_stmt 1 view .LVU33 553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 142 .loc 1 553 14 is_stmt 0 view .LVU34 143 0048 694B ldr r3, .L32+4 144 004a 1B78 ldrb r3, [r3] @ zero_extendqisi2 553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 145 .loc 1 553 7 view .LVU35 146 004c 042B cmp r3, #4 147 004e 59D0 beq .L27 588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 148 .loc 1 588 7 is_stmt 1 view .LVU36 588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 149 .loc 1 588 17 is_stmt 0 view .LVU37 150 0050 674B ldr r3, .L32+4 151 0052 1B78 ldrb r3, [r3] @ zero_extendqisi2 152 0054 DCB2 uxtb r4, r3 153 .LVL6: 590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 154 .loc 1 590 7 is_stmt 1 view .LVU38 590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 155 .loc 1 590 9 is_stmt 0 view .LVU39 156 0056 072B cmp r3, #7 157 0058 18BF it ne 158 005a 052B cmpne r3, #5 159 005c 79D0 beq .L28 596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 160 .loc 1 596 12 is_stmt 1 view .LVU40 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 19 596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 161 .loc 1 596 14 is_stmt 0 view .LVU41 162 005e 062C cmp r4, #6 163 0060 7BD0 beq .L29 164 .L13: 605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 165 .loc 1 605 7 is_stmt 1 view .LVU42 607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (procedure != FLASH_PROC_MASSERASE_BANK1) && \ 166 .loc 1 607 7 view .LVU43 608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (procedure != FLASH_PROC_PROGRAM_BANK1)) 167 .loc 1 608 52 is_stmt 0 view .LVU44 168 0062 013C subs r4, r4, #1 169 .LVL7: 608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (procedure != FLASH_PROC_PROGRAM_BANK1)) 170 .loc 1 608 52 view .LVU45 171 0064 E4B2 uxtb r4, r4 172 .LVL8: 607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** (procedure != FLASH_PROC_MASSERASE_BANK1) && \ 173 .loc 1 607 9 view .LVU46 174 0066 022C cmp r4, #2 175 0068 07D9 bls .L9 611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */ 176 .loc 1 611 9 is_stmt 1 view .LVU47 611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */ 177 .loc 1 611 33 is_stmt 0 view .LVU48 178 006a 614B ldr r3, .L32+4 179 006c 0022 movs r2, #0 180 006e 1A70 strb r2, [r3] 613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 181 .loc 1 613 9 is_stmt 1 view .LVU49 182 0070 5E4B ldr r3, .L32 183 0072 4FF48032 mov r2, #65536 184 0076 C3F81421 str r2, [r3, #276] 185 .LVL9: 186 .L9: 624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_FLAG_INCERR_BANK1); 187 .loc 1 624 3 view .LVU50 624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_FLAG_INCERR_BANK1); 188 .loc 1 624 20 is_stmt 0 view .LVU51 189 007a 5C4B ldr r3, .L32 190 007c 1B69 ldr r3, [r3, #16] 191 .LVL10: 628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 192 .loc 1 628 3 is_stmt 1 view .LVU52 628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 193 .loc 1 628 5 is_stmt 0 view .LVU53 194 007e 13F43813 ands r3, r3, #3014656 195 .LVL11: 628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 196 .loc 1 628 5 view .LVU54 197 0082 79D0 beq .L14 631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 198 .loc 1 631 5 is_stmt 1 view .LVU55 631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 199 .loc 1 631 11 is_stmt 0 view .LVU56 200 0084 5A4A ldr r2, .L32+4 201 0086 9169 ldr r1, [r2, #24] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 20 631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 202 .loc 1 631 22 view .LVU57 203 0088 1943 orrs r1, r1, r3 204 008a 9161 str r1, [r2, #24] 634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 205 .loc 1 634 5 is_stmt 1 view .LVU58 206 008c 5749 ldr r1, .L32 207 008e 4B61 str r3, [r1, #20] 636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 208 .loc 1 636 5 view .LVU59 636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 209 .loc 1 636 15 is_stmt 0 view .LVU60 210 0090 1378 ldrb r3, [r2] @ zero_extendqisi2 211 .LVL12: 636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 212 .loc 1 636 15 view .LVU61 213 0092 DAB2 uxtb r2, r3 214 .LVL13: 638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 215 .loc 1 638 5 is_stmt 1 view .LVU62 638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 216 .loc 1 638 7 is_stmt 0 view .LVU63 217 0094 012B cmp r3, #1 218 0096 65D0 beq .L30 644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 219 .loc 1 644 10 is_stmt 1 view .LVU64 644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 220 .loc 1 644 12 is_stmt 0 view .LVU65 221 0098 072A cmp r2, #7 222 009a 18BF it ne 223 009c 022A cmpne r2, #2 224 009e 00F08580 beq .L21 652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 225 .loc 1 652 7 is_stmt 1 view .LVU66 652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 226 .loc 1 652 12 is_stmt 0 view .LVU67 227 00a2 534B ldr r3, .L32+4 228 00a4 1869 ldr r0, [r3, #16] 229 .LVL14: 652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 230 .loc 1 652 12 view .LVU68 231 00a6 62E0 b .L16 232 .LVL15: 233 .L24: 487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 234 .loc 1 487 7 is_stmt 1 view .LVU69 487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 235 .loc 1 487 13 is_stmt 0 view .LVU70 236 00a8 514B ldr r3, .L32+4 237 00aa 5A68 ldr r2, [r3, #4] 487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 238 .loc 1 487 30 view .LVU71 239 00ac 013A subs r2, r2, #1 240 00ae 5A60 str r2, [r3, #4] 490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 241 .loc 1 490 7 is_stmt 1 view .LVU72 490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 21 242 .loc 1 490 16 is_stmt 0 view .LVU73 243 00b0 5B68 ldr r3, [r3, #4] 490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 244 .loc 1 490 9 view .LVU74 245 00b2 83B1 cbz r3, .L6 493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 246 .loc 1 493 9 is_stmt 1 view .LVU75 493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 247 .loc 1 493 48 is_stmt 0 view .LVU76 248 00b4 4E4C ldr r4, .L32+4 249 00b6 E068 ldr r0, [r4, #12] 493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 250 .loc 1 493 9 view .LVU77 251 00b8 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback 252 .LVL16: 496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 253 .loc 1 496 9 is_stmt 1 view .LVU78 254 00bc 4B4B ldr r3, .L32 255 00be 4FF48032 mov r2, #65536 256 00c2 5A61 str r2, [r3, #20] 499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** temp = pFlash.Sector; 257 .loc 1 499 9 view .LVU79 499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** temp = pFlash.Sector; 258 .loc 1 499 15 is_stmt 0 view .LVU80 259 00c4 E368 ldr r3, [r4, #12] 499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** temp = pFlash.Sector; 260 .loc 1 499 22 view .LVU81 261 00c6 0133 adds r3, r3, #1 262 00c8 E360 str r3, [r4, #12] 500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_Erase_Sector(temp, FLASH_BANK_1, pFlash.VoltageForErase); 263 .loc 1 500 9 is_stmt 1 view .LVU82 500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_Erase_Sector(temp, FLASH_BANK_1, pFlash.VoltageForErase); 264 .loc 1 500 14 is_stmt 0 view .LVU83 265 00ca E068 ldr r0, [r4, #12] 266 .LVL17: 501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 267 .loc 1 501 9 is_stmt 1 view .LVU84 501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 268 .loc 1 501 54 is_stmt 0 view .LVU85 269 00cc A268 ldr r2, [r4, #8] 501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 270 .loc 1 501 9 view .LVU86 271 00ce 0121 movs r1, #1 272 00d0 FFF7FEFF bl FLASH_Erase_Sector 273 .LVL18: 501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 274 .loc 1 501 9 view .LVU87 275 00d4 B2E7 b .L4 276 .LVL19: 277 .L6: 507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 278 .loc 1 507 9 is_stmt 1 view .LVU88 507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 279 .loc 1 507 23 is_stmt 0 view .LVU89 280 00d6 464B ldr r3, .L32+4 281 00d8 4FF0FF32 mov r2, #-1 282 00dc DA60 str r2, [r3, #12] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 22 508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 283 .loc 1 508 9 is_stmt 1 view .LVU90 508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 284 .loc 1 508 33 is_stmt 0 view .LVU91 285 00de 0022 movs r2, #0 286 00e0 1A70 strb r2, [r3] 511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 287 .loc 1 511 9 is_stmt 1 view .LVU92 511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 288 .loc 1 511 48 is_stmt 0 view .LVU93 289 00e2 D868 ldr r0, [r3, #12] 511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 290 .loc 1 511 9 view .LVU94 291 00e4 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback 292 .LVL20: 514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 293 .loc 1 514 9 is_stmt 1 view .LVU95 294 00e8 404B ldr r3, .L32 295 00ea 4FF48032 mov r2, #65536 296 00ee 5A61 str r2, [r3, #20] 297 00f0 A4E7 b .L4 298 .LVL21: 299 .L25: 525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 300 .loc 1 525 9 view .LVU96 301 00f2 0120 movs r0, #1 302 00f4 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback 303 .LVL22: 304 00f8 95E7 b .L8 305 .L26: 531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 306 .loc 1 531 9 view .LVU97 531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 307 .loc 1 531 48 is_stmt 0 view .LVU98 308 00fa 3D4B ldr r3, .L32+4 309 00fc 1869 ldr r0, [r3, #16] 531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 310 .loc 1 531 9 view .LVU99 311 00fe FFF7FEFF bl HAL_FLASH_EndOfOperationCallback 312 .LVL23: 313 0102 90E7 b .L8 314 .LVL24: 315 .L27: 556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 316 .loc 1 556 7 is_stmt 1 view .LVU100 556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 317 .loc 1 556 13 is_stmt 0 view .LVU101 318 0104 3A4B ldr r3, .L32+4 319 0106 5A68 ldr r2, [r3, #4] 556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 320 .loc 1 556 30 view .LVU102 321 0108 013A subs r2, r2, #1 322 010a 5A60 str r2, [r3, #4] 559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 323 .loc 1 559 7 is_stmt 1 view .LVU103 559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 324 .loc 1 559 16 is_stmt 0 view .LVU104 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 23 325 010c 5B68 ldr r3, [r3, #4] 559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 326 .loc 1 559 9 view .LVU105 327 010e 8BB1 cbz r3, .L11 562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 328 .loc 1 562 9 is_stmt 1 view .LVU106 562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 329 .loc 1 562 48 is_stmt 0 view .LVU107 330 0110 374C ldr r4, .L32+4 331 0112 E068 ldr r0, [r4, #12] 562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 332 .loc 1 562 9 view .LVU108 333 0114 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback 334 .LVL25: 565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 335 .loc 1 565 9 is_stmt 1 view .LVU109 336 0118 344B ldr r3, .L32 337 011a 4FF48032 mov r2, #65536 338 011e C3F81421 str r2, [r3, #276] 568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** temp = pFlash.Sector; 339 .loc 1 568 9 view .LVU110 568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** temp = pFlash.Sector; 340 .loc 1 568 15 is_stmt 0 view .LVU111 341 0122 E368 ldr r3, [r4, #12] 568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** temp = pFlash.Sector; 342 .loc 1 568 22 view .LVU112 343 0124 0133 adds r3, r3, #1 344 0126 E360 str r3, [r4, #12] 569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_Erase_Sector(temp, FLASH_BANK_2, pFlash.VoltageForErase); 345 .loc 1 569 9 is_stmt 1 view .LVU113 569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_Erase_Sector(temp, FLASH_BANK_2, pFlash.VoltageForErase); 346 .loc 1 569 14 is_stmt 0 view .LVU114 347 0128 E068 ldr r0, [r4, #12] 348 .LVL26: 570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 349 .loc 1 570 9 is_stmt 1 view .LVU115 570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 350 .loc 1 570 54 is_stmt 0 view .LVU116 351 012a A268 ldr r2, [r4, #8] 570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 352 .loc 1 570 9 view .LVU117 353 012c 0221 movs r1, #2 354 012e FFF7FEFF bl FLASH_Erase_Sector 355 .LVL27: 570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 356 .loc 1 570 9 view .LVU118 357 0132 A2E7 b .L9 358 .LVL28: 359 .L11: 576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 360 .loc 1 576 9 is_stmt 1 view .LVU119 576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE; 361 .loc 1 576 23 is_stmt 0 view .LVU120 362 0134 2E4B ldr r3, .L32+4 363 0136 4FF0FF32 mov r2, #-1 364 013a DA60 str r2, [r3, #12] 577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 24 365 .loc 1 577 9 is_stmt 1 view .LVU121 577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 366 .loc 1 577 33 is_stmt 0 view .LVU122 367 013c 0022 movs r2, #0 368 013e 1A70 strb r2, [r3] 580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 369 .loc 1 580 9 is_stmt 1 view .LVU123 580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 370 .loc 1 580 48 is_stmt 0 view .LVU124 371 0140 D868 ldr r0, [r3, #12] 580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 372 .loc 1 580 9 view .LVU125 373 0142 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback 374 .LVL29: 583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 375 .loc 1 583 9 is_stmt 1 view .LVU126 376 0146 294B ldr r3, .L32 377 0148 4FF48032 mov r2, #65536 378 014c C3F81421 str r2, [r3, #276] 379 0150 93E7 b .L9 380 .LVL30: 381 .L28: 594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 382 .loc 1 594 9 view .LVU127 383 0152 0220 movs r0, #2 384 0154 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback 385 .LVL31: 386 0158 83E7 b .L13 387 .L29: 600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 388 .loc 1 600 9 view .LVU128 600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 389 .loc 1 600 48 is_stmt 0 view .LVU129 390 015a 254B ldr r3, .L32+4 391 015c 1869 ldr r0, [r3, #16] 600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 392 .loc 1 600 9 view .LVU130 393 015e FFF7FEFF bl HAL_FLASH_EndOfOperationCallback 394 .LVL32: 395 0162 7EE7 b .L13 396 .LVL33: 397 .L30: 641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.Sector = 0xFFFFFFFFU; 398 .loc 1 641 7 is_stmt 1 view .LVU131 641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.Sector = 0xFFFFFFFFU; 399 .loc 1 641 12 is_stmt 0 view .LVU132 400 0164 224B ldr r3, .L32+4 401 0166 D868 ldr r0, [r3, #12] 402 .LVL34: 642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 403 .loc 1 642 7 is_stmt 1 view .LVU133 642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 404 .loc 1 642 21 is_stmt 0 view .LVU134 405 0168 4FF0FF32 mov r2, #-1 406 .LVL35: 642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 407 .loc 1 642 21 view .LVU135 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 25 408 016c DA60 str r2, [r3, #12] 409 .LVL36: 410 .L16: 656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 411 .loc 1 656 5 is_stmt 1 view .LVU136 656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 412 .loc 1 656 29 is_stmt 0 view .LVU137 413 016e 204B ldr r3, .L32+4 656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 414 .loc 1 656 29 view .LVU138 415 0170 0022 movs r2, #0 416 0172 1A70 strb r2, [r3] 417 .LVL37: 659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 418 .loc 1 659 5 is_stmt 1 view .LVU139 419 0174 FFF7FEFF bl HAL_FLASH_OperationErrorCallback 420 .LVL38: 421 .L14: 700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_FLAG_INCERR_BANK2) & 0x7FFFFFFFU); 422 .loc 1 700 3 view .LVU140 700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_FLAG_INCERR_BANK2) & 0x7FFFFFFFU); 423 .loc 1 700 20 is_stmt 0 view .LVU141 424 0178 1C4B ldr r3, .L32 425 017a D3F81031 ldr r3, [r3, #272] 426 .LVL39: 704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 427 .loc 1 704 3 is_stmt 1 view .LVU142 704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 428 .loc 1 704 5 is_stmt 0 view .LVU143 429 017e 13F43813 ands r3, r3, #3014656 430 .LVL40: 704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 431 .loc 1 704 5 view .LVU144 432 0182 1ED0 beq .L17 707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 433 .loc 1 707 5 is_stmt 1 view .LVU145 707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 434 .loc 1 707 11 is_stmt 0 view .LVU146 435 0184 1A49 ldr r1, .L32+4 436 0186 8A69 ldr r2, [r1, #24] 707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 437 .loc 1 707 22 view .LVU147 438 0188 1A43 orrs r2, r2, r3 439 018a 42F00042 orr r2, r2, #-2147483648 440 018e 8A61 str r2, [r1, #24] 710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 441 .loc 1 710 5 is_stmt 1 view .LVU148 442 0190 164A ldr r2, .L32 443 0192 C2F81431 str r3, [r2, #276] 712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 444 .loc 1 712 5 view .LVU149 712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 445 .loc 1 712 15 is_stmt 0 view .LVU150 446 0196 0B78 ldrb r3, [r1] @ zero_extendqisi2 447 .LVL41: 712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 448 .loc 1 712 15 view .LVU151 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 26 449 0198 DAB2 uxtb r2, r3 450 .LVL42: 714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 451 .loc 1 714 5 is_stmt 1 view .LVU152 714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 452 .loc 1 714 7 is_stmt 0 view .LVU153 453 019a 042B cmp r3, #4 454 019c 08D0 beq .L31 720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 455 .loc 1 720 10 is_stmt 1 view .LVU154 720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 456 .loc 1 720 12 is_stmt 0 view .LVU155 457 019e 072A cmp r2, #7 458 01a0 18BF it ne 459 01a2 052A cmpne r2, #5 460 01a4 1FD0 beq .L22 728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 461 .loc 1 728 7 is_stmt 1 view .LVU156 728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 462 .loc 1 728 12 is_stmt 0 view .LVU157 463 01a6 124B ldr r3, .L32+4 464 01a8 1869 ldr r0, [r3, #16] 465 .LVL43: 728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 466 .loc 1 728 12 view .LVU158 467 01aa 05E0 b .L19 468 .LVL44: 469 .L21: 647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 470 .loc 1 647 12 view .LVU159 471 01ac 0120 movs r0, #1 472 01ae DEE7 b .L16 473 .LVL45: 474 .L31: 717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.Sector = 0xFFFFFFFFU; 475 .loc 1 717 7 is_stmt 1 view .LVU160 717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.Sector = 0xFFFFFFFFU; 476 .loc 1 717 12 is_stmt 0 view .LVU161 477 01b0 C868 ldr r0, [r1, #12] 478 .LVL46: 718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 479 .loc 1 718 7 is_stmt 1 view .LVU162 718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 480 .loc 1 718 21 is_stmt 0 view .LVU163 481 01b2 4FF0FF32 mov r2, #-1 482 .LVL47: 718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 483 .loc 1 718 21 view .LVU164 484 01b6 CA60 str r2, [r1, #12] 485 .LVL48: 486 .L19: 732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 487 .loc 1 732 5 is_stmt 1 view .LVU165 732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 488 .loc 1 732 29 is_stmt 0 view .LVU166 489 01b8 0D4B ldr r3, .L32+4 490 01ba 0022 movs r2, #0 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 27 491 01bc 1A70 strb r2, [r3] 492 .LVL49: 735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 493 .loc 1 735 5 is_stmt 1 view .LVU167 494 01be FFF7FEFF bl HAL_FLASH_OperationErrorCallback 495 .LVL50: 496 .L17: 772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 497 .loc 1 772 3 view .LVU168 772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 498 .loc 1 772 12 is_stmt 0 view .LVU169 499 01c2 0B4B ldr r3, .L32+4 500 01c4 1B78 ldrb r3, [r3] @ zero_extendqisi2 772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 501 .loc 1 772 5 view .LVU170 502 01c6 6BB9 cbnz r3, .L3 786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_IT_STRBERR_BANK1 | FLASH_IT_INCERR_BANK1); 503 .loc 1 786 5 is_stmt 1 view .LVU171 504 01c8 084B ldr r3, .L32 505 01ca DA68 ldr r2, [r3, #12] 506 01cc 22F43C12 bic r2, r2, #3080192 507 01d0 DA60 str r2, [r3, #12] 791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_IT_STRBERR_BANK2 | FLASH_IT_INCERR_BANK2); 508 .loc 1 791 5 view .LVU172 509 01d2 D3F80C21 ldr r2, [r3, #268] 510 01d6 22F43C12 bic r2, r2, #3080192 511 01da C3F80C21 str r2, [r3, #268] 797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 512 .loc 1 797 5 view .LVU173 797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 513 .loc 1 797 5 view .LVU174 514 01de 044B ldr r3, .L32+4 515 01e0 0022 movs r2, #0 516 01e2 1A75 strb r2, [r3, #20] 797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 517 .loc 1 797 5 discriminator 1 view .LVU175 518 .L3: 799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 519 .loc 1 799 1 is_stmt 0 view .LVU176 520 01e4 10BD pop {r4, pc} 521 .LVL51: 522 .L22: 723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 523 .loc 1 723 12 view .LVU177 524 01e6 0220 movs r0, #2 525 01e8 E6E7 b .L19 526 .L33: 527 01ea 00BF .align 2 528 .L32: 529 01ec 00200052 .word 1375739904 530 01f0 00000000 .word pFlash 531 .cfi_endproc 532 .LFE337: 534 .section .text.HAL_FLASH_Unlock,"ax",%progbits 535 .align 1 536 .global HAL_FLASH_Unlock 537 .syntax unified ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 28 538 .thumb 539 .thumb_func 541 HAL_FLASH_Unlock: 542 .LFB340: 837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** 839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @} 840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group2 Peripheral Control functions 843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @brief Management functions 844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * 845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** @verbatim 846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** =============================================================================== 847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** ##### Peripheral Control functions ##### 848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** =============================================================================== 849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** [..] 850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** This subsection provides a set of functions allowing to control the FLASH 851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** memory operations. 852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** @endverbatim 854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @{ 855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** 858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @brief Unlock the FLASH control registers access 859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @retval HAL Status 860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Unlock(void) 862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 543 .loc 1 862 1 is_stmt 1 view -0 544 .cfi_startproc 545 @ args = 0, pretend = 0, frame = 0 546 @ frame_needed = 0, uses_anonymous_args = 0 547 @ link register save eliminated. 863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(READ_BIT(FLASH->CR1, FLASH_CR_LOCK) != 0U) 548 .loc 1 863 3 view .LVU179 549 .loc 1 863 6 is_stmt 0 view .LVU180 550 0000 144B ldr r3, .L40 551 0002 DB68 ldr r3, [r3, #12] 552 .loc 1 863 5 view .LVU181 553 0004 13F0010F tst r3, #1 554 0008 09D0 beq .L35 864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Authorize the FLASH Bank1 Registers access */ 866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** WRITE_REG(FLASH->KEYR1, FLASH_KEY1); 555 .loc 1 866 5 is_stmt 1 view .LVU182 556 000a 124B ldr r3, .L40 557 000c 124A ldr r2, .L40+4 558 000e 5A60 str r2, [r3, #4] 867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** WRITE_REG(FLASH->KEYR1, FLASH_KEY2); 559 .loc 1 867 5 view .LVU183 560 0010 02F18832 add r2, r2, #-2004318072 561 0014 5A60 str r2, [r3, #4] 868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Verify Flash Bank1 is unlocked */ 870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (READ_BIT(FLASH->CR1, FLASH_CR_LOCK) != 0U) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 29 562 .loc 1 870 5 view .LVU184 563 .loc 1 870 9 is_stmt 0 view .LVU185 564 0016 DB68 ldr r3, [r3, #12] 565 .loc 1 870 8 view .LVU186 566 0018 13F0010F tst r3, #1 567 001c 14D1 bne .L37 568 .L35: 871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_ERROR; 873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (DUAL_BANK) 877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(READ_BIT(FLASH->CR2, FLASH_CR_LOCK) != 0U) 569 .loc 1 877 3 is_stmt 1 view .LVU187 570 .loc 1 877 6 is_stmt 0 view .LVU188 571 001e 0D4B ldr r3, .L40 572 0020 D3F80C31 ldr r3, [r3, #268] 573 .loc 1 877 5 view .LVU189 574 0024 13F0010F tst r3, #1 575 0028 10D0 beq .L38 878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Authorize the FLASH Bank2 Registers access */ 880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** WRITE_REG(FLASH->KEYR2, FLASH_KEY1); 576 .loc 1 880 5 is_stmt 1 view .LVU190 577 002a 0A4B ldr r3, .L40 578 002c 0A4A ldr r2, .L40+4 579 002e C3F80421 str r2, [r3, #260] 881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** WRITE_REG(FLASH->KEYR2, FLASH_KEY2); 580 .loc 1 881 5 view .LVU191 581 0032 02F18832 add r2, r2, #-2004318072 582 0036 C3F80421 str r2, [r3, #260] 882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Verify Flash Bank2 is unlocked */ 884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (READ_BIT(FLASH->CR2, FLASH_CR_LOCK) != 0U) 583 .loc 1 884 5 view .LVU192 584 .loc 1 884 9 is_stmt 0 view .LVU193 585 003a D3F80C31 ldr r3, [r3, #268] 586 .loc 1 884 8 view .LVU194 587 003e 13F0010F tst r3, #1 588 0042 05D1 bne .L39 885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_ERROR; 887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* DUAL_BANK */ 890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_OK; 589 .loc 1 891 10 view .LVU195 590 0044 0020 movs r0, #0 591 0046 7047 bx lr 592 .L37: 872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 593 .loc 1 872 14 view .LVU196 594 0048 0120 movs r0, #1 595 004a 7047 bx lr 596 .L38: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 30 597 .loc 1 891 10 view .LVU197 598 004c 0020 movs r0, #0 599 004e 7047 bx lr 600 .L39: 886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 601 .loc 1 886 14 view .LVU198 602 0050 0120 movs r0, #1 892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 603 .loc 1 892 1 view .LVU199 604 0052 7047 bx lr 605 .L41: 606 .align 2 607 .L40: 608 0054 00200052 .word 1375739904 609 0058 23016745 .word 1164378403 610 .cfi_endproc 611 .LFE340: 613 .section .text.HAL_FLASH_Lock,"ax",%progbits 614 .align 1 615 .global HAL_FLASH_Lock 616 .syntax unified 617 .thumb 618 .thumb_func 620 HAL_FLASH_Lock: 621 .LFB341: 893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** 895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @brief Locks the FLASH control registers access 896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @retval HAL Status 897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Lock(void) 899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 622 .loc 1 899 1 is_stmt 1 view -0 623 .cfi_startproc 624 @ args = 0, pretend = 0, frame = 0 625 @ frame_needed = 0, uses_anonymous_args = 0 626 @ link register save eliminated. 900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Set the LOCK Bit to lock the FLASH Bank1 Control Register access */ 901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** SET_BIT(FLASH->CR1, FLASH_CR_LOCK); 627 .loc 1 901 3 view .LVU201 628 0000 0D4B ldr r3, .L46 629 0002 DA68 ldr r2, [r3, #12] 630 0004 42F00102 orr r2, r2, #1 631 0008 DA60 str r2, [r3, #12] 902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Verify Flash Bank1 is locked */ 904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (READ_BIT(FLASH->CR1, FLASH_CR_LOCK) == 0U) 632 .loc 1 904 3 view .LVU202 633 .loc 1 904 7 is_stmt 0 view .LVU203 634 000a DB68 ldr r3, [r3, #12] 635 .loc 1 904 6 view .LVU204 636 000c 13F0010F tst r3, #1 637 0010 0DD0 beq .L44 905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_ERROR; 907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 31 909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (DUAL_BANK) 910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Set the LOCK Bit to lock the FLASH Bank2 Control Register access */ 911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** SET_BIT(FLASH->CR2, FLASH_CR_LOCK); 638 .loc 1 911 3 is_stmt 1 view .LVU205 639 0012 094B ldr r3, .L46 640 0014 D3F80C21 ldr r2, [r3, #268] 641 0018 42F00102 orr r2, r2, #1 642 001c C3F80C21 str r2, [r3, #268] 912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Verify Flash Bank2 is locked */ 914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (READ_BIT(FLASH->CR2, FLASH_CR_LOCK) == 0U) 643 .loc 1 914 3 view .LVU206 644 .loc 1 914 7 is_stmt 0 view .LVU207 645 0020 D3F80C31 ldr r3, [r3, #268] 646 .loc 1 914 6 view .LVU208 647 0024 13F0010F tst r3, #1 648 0028 03D0 beq .L45 915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_ERROR; 917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* DUAL_BANK */ 919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_OK; 649 .loc 1 920 10 view .LVU209 650 002a 0020 movs r0, #0 651 002c 7047 bx lr 652 .L44: 906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 653 .loc 1 906 12 view .LVU210 654 002e 0120 movs r0, #1 655 0030 7047 bx lr 656 .L45: 916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 657 .loc 1 916 12 view .LVU211 658 0032 0120 movs r0, #1 921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 659 .loc 1 921 1 view .LVU212 660 0034 7047 bx lr 661 .L47: 662 0036 00BF .align 2 663 .L46: 664 0038 00200052 .word 1375739904 665 .cfi_endproc 666 .LFE341: 668 .section .text.HAL_FLASH_OB_Unlock,"ax",%progbits 669 .align 1 670 .global HAL_FLASH_OB_Unlock 671 .syntax unified 672 .thumb 673 .thumb_func 675 HAL_FLASH_OB_Unlock: 676 .LFB342: 922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** 924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @brief Unlock the FLASH Option Control Registers access. 925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @retval HAL Status 926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 32 927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void) 928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 677 .loc 1 928 1 is_stmt 1 view -0 678 .cfi_startproc 679 @ args = 0, pretend = 0, frame = 0 680 @ frame_needed = 0, uses_anonymous_args = 0 681 @ link register save eliminated. 929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(READ_BIT(FLASH->OPTCR, FLASH_OPTCR_OPTLOCK) != 0U) 682 .loc 1 929 3 view .LVU214 683 .loc 1 929 6 is_stmt 0 view .LVU215 684 0000 0A4B ldr r3, .L52 685 0002 9B69 ldr r3, [r3, #24] 686 .loc 1 929 5 view .LVU216 687 0004 13F0010F tst r3, #1 688 0008 0BD0 beq .L50 930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Authorizes the Option Byte registers programming */ 932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** WRITE_REG(FLASH->OPTKEYR, FLASH_OPT_KEY1); 689 .loc 1 932 5 is_stmt 1 view .LVU217 690 000a 084B ldr r3, .L52 691 000c 084A ldr r2, .L52+4 692 000e 9A60 str r2, [r3, #8] 933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** WRITE_REG(FLASH->OPTKEYR, FLASH_OPT_KEY2); 693 .loc 1 933 5 view .LVU218 694 0010 02F14432 add r2, r2, #1145324612 695 0014 9A60 str r2, [r3, #8] 934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Verify that the Option Bytes are unlocked */ 936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (READ_BIT(FLASH->OPTCR, FLASH_OPTCR_OPTLOCK) != 0U) 696 .loc 1 936 5 view .LVU219 697 .loc 1 936 9 is_stmt 0 view .LVU220 698 0016 9B69 ldr r3, [r3, #24] 699 .loc 1 936 8 view .LVU221 700 0018 13F0010F tst r3, #1 701 001c 03D1 bne .L51 937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_ERROR; 939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_OK; 702 .loc 1 942 10 view .LVU222 703 001e 0020 movs r0, #0 704 0020 7047 bx lr 705 .L50: 706 0022 0020 movs r0, #0 707 0024 7047 bx lr 708 .L51: 938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 709 .loc 1 938 14 view .LVU223 710 0026 0120 movs r0, #1 943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 711 .loc 1 943 1 view .LVU224 712 0028 7047 bx lr 713 .L53: 714 002a 00BF .align 2 715 .L52: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 33 716 002c 00200052 .word 1375739904 717 0030 3B2A1908 .word 135866939 718 .cfi_endproc 719 .LFE342: 721 .section .text.HAL_FLASH_OB_Lock,"ax",%progbits 722 .align 1 723 .global HAL_FLASH_OB_Lock 724 .syntax unified 725 .thumb 726 .thumb_func 728 HAL_FLASH_OB_Lock: 729 .LFB343: 944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** 946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @brief Lock the FLASH Option Control Registers access. 947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @retval HAL Status 948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Lock(void) 950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 730 .loc 1 950 1 is_stmt 1 view -0 731 .cfi_startproc 732 @ args = 0, pretend = 0, frame = 0 733 @ frame_needed = 0, uses_anonymous_args = 0 734 @ link register save eliminated. 951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Set the OPTLOCK Bit to lock the FLASH Option Byte Registers access */ 952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** SET_BIT(FLASH->OPTCR, FLASH_OPTCR_OPTLOCK); 735 .loc 1 952 3 view .LVU226 736 0000 064B ldr r3, .L57 737 0002 9A69 ldr r2, [r3, #24] 738 0004 42F00102 orr r2, r2, #1 739 0008 9A61 str r2, [r3, #24] 953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Verify that the Option Bytes are locked */ 955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (READ_BIT(FLASH->OPTCR, FLASH_OPTCR_OPTLOCK) == 0U) 740 .loc 1 955 3 view .LVU227 741 .loc 1 955 7 is_stmt 0 view .LVU228 742 000a 9B69 ldr r3, [r3, #24] 743 .loc 1 955 6 view .LVU229 744 000c 13F0010F tst r3, #1 745 0010 01D0 beq .L56 956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_ERROR; 958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_OK; 746 .loc 1 960 10 view .LVU230 747 0012 0020 movs r0, #0 748 0014 7047 bx lr 749 .L56: 957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 750 .loc 1 957 12 view .LVU231 751 0016 0120 movs r0, #1 961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 752 .loc 1 961 1 view .LVU232 753 0018 7047 bx lr 754 .L58: 755 001a 00BF .align 2 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 34 756 .L57: 757 001c 00200052 .word 1375739904 758 .cfi_endproc 759 .LFE343: 761 .section .text.HAL_FLASH_GetError,"ax",%progbits 762 .align 1 763 .global HAL_FLASH_GetError 764 .syntax unified 765 .thumb 766 .thumb_func 768 HAL_FLASH_GetError: 769 .LFB345: 962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** 964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @brief Launch the option bytes loading. 965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @retval HAL Status 966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Launch(void) 968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_StatusTypeDef status; 970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Wait for CRC computation to be completed */ 972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (FLASH_CRC_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_1) != HAL_OK) 973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** status = HAL_ERROR; 975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (DUAL_BANK) 977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else if (FLASH_CRC_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_2) != HAL_OK) 978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** status = HAL_ERROR; 980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* DUAL_BANK */ 982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** status = HAL_OK; 985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (status == HAL_OK) 988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Set OPTSTRT Bit */ 990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** SET_BIT(FLASH->OPTCR, FLASH_OPTCR_OPTSTART); 991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Wait for OB change operation to be completed */ 993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** status = FLASH_OB_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return status; 997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** 1000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @} 1001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 1002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group3 Peripheral State and Errors functions 1004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @brief Peripheral Errors functions 1005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * 1006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** @verbatim ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 35 1007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** =============================================================================== 1008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** ##### Peripheral Errors functions ##### 1009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** =============================================================================== 1010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** [..] 1011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** This subsection permits to get in run-time Errors of the FLASH peripheral. 1012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** @endverbatim 1014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @{ 1015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 1016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** 1018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @brief Get the specific FLASH error flag. 1019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @retval HAL_FLASH_ERRORCode The returned value can be: 1020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_NONE : No error set 1021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * 1022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_WRP_BANK1 : Write Protection Error on Bank 1 1023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_PGS_BANK1 : Program Sequence Error on Bank 1 1024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_STRB_BANK1 : Strobe Error on Bank 1 1025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_INC_BANK1 : Inconsistency Error on Bank 1 1026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_OPE_BANK1 : Operation Error on Bank 1 1027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_RDP_BANK1 : Read Protection Error on Bank 1 1028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_RDS_BANK1 : Read Secured Error on Bank 1 1029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_SNECC_BANK1: ECC Single Correction Error on Bank 1 1030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_DBECC_BANK1: ECC Double Detection Error on Bank 1 1031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_CRCRD_BANK1: CRC Read Error on Bank 1 1032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * 1033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_WRP_BANK2 : Write Protection Error on Bank 2 1034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_PGS_BANK2 : Program Sequence Error on Bank 2 1035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_STRB_BANK2 : Strobe Error on Bank 2 1036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_INC_BANK2 : Inconsistency Error on Bank 2 1037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_OPE_BANK2 : Operation Error on Bank 2 1038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_RDP_BANK2 : Read Protection Error on Bank 2 1039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_RDS_BANK2 : Read Secured Error on Bank 2 1040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_SNECC_BANK2: SNECC Error on Bank 2 1041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_DBECC_BANK2: Double Detection ECC on Bank 2 1042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_CRCRD_BANK2: CRC Read Error on Bank 2 1043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 1044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** uint32_t HAL_FLASH_GetError(void) 1046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 770 .loc 1 1046 1 is_stmt 1 view -0 771 .cfi_startproc 772 @ args = 0, pretend = 0, frame = 0 773 @ frame_needed = 0, uses_anonymous_args = 0 774 @ link register save eliminated. 1047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return pFlash.ErrorCode; 775 .loc 1 1047 4 view .LVU234 776 .loc 1 1047 17 is_stmt 0 view .LVU235 777 0000 014B ldr r3, .L60 778 0002 9869 ldr r0, [r3, #24] 1048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 779 .loc 1 1048 1 view .LVU236 780 0004 7047 bx lr 781 .L61: 782 0006 00BF .align 2 783 .L60: 784 0008 00000000 .word pFlash ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 36 785 .cfi_endproc 786 .LFE345: 788 .section .text.FLASH_WaitForLastOperation,"ax",%progbits 789 .align 1 790 .global FLASH_WaitForLastOperation 791 .syntax unified 792 .thumb 793 .thumb_func 795 FLASH_WaitForLastOperation: 796 .LVL52: 797 .LFB346: 1049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** 1051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @} 1052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 1053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** 1055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @} 1056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 1057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Private functions ---------------------------------------------------------*/ 1059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** @addtogroup FLASH_Private_Functions 1061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @{ 1062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 1063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** 1065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @brief Wait for a FLASH operation to complete. 1066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @param Timeout maximum flash operation timeout 1067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @param Bank flash FLASH_BANK_1 or FLASH_BANK_2 1068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @retval HAL_StatusTypeDef HAL Status 1069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 1070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout, uint32_t Bank) 1071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 798 .loc 1 1071 1 is_stmt 1 view -0 799 .cfi_startproc 800 @ args = 0, pretend = 0, frame = 0 801 @ frame_needed = 0, uses_anonymous_args = 0 802 .loc 1 1071 1 is_stmt 0 view .LVU238 803 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 804 .cfi_def_cfa_offset 24 805 .cfi_offset 3, -24 806 .cfi_offset 4, -20 807 .cfi_offset 5, -16 808 .cfi_offset 6, -12 809 .cfi_offset 7, -8 810 .cfi_offset 14, -4 811 0002 0546 mov r5, r0 812 0004 0E46 mov r6, r1 1072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Wait for the FLASH operation to complete by polling on QW flag to be reset. 1073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** Even if the FLASH operation fails, the QW flag will be reset and an error 1074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** flag will be set */ 1075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** uint32_t bsyflag = FLASH_FLAG_QW_BANK1; 813 .loc 1 1076 3 is_stmt 1 view .LVU239 814 .LVL53: 1077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** uint32_t errorflag = 0; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 37 815 .loc 1 1077 3 view .LVU240 1078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** uint32_t tickstart = HAL_GetTick(); 816 .loc 1 1078 3 view .LVU241 817 .loc 1 1078 24 is_stmt 0 view .LVU242 818 0006 FFF7FEFF bl HAL_GetTick 819 .LVL54: 820 .loc 1 1078 24 view .LVU243 821 000a 0746 mov r7, r0 822 .LVL55: 1079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** assert_param(IS_FLASH_BANK_EXCLUSIVE(Bank)); 823 .loc 1 1080 3 is_stmt 1 view .LVU244 1081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (DUAL_BANK) 1083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (Bank == FLASH_BANK_2) 824 .loc 1 1084 3 view .LVU245 825 .loc 1 1084 6 is_stmt 0 view .LVU246 826 000c 022E cmp r6, #2 827 000e 09D0 beq .L84 1076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** uint32_t errorflag = 0; 828 .loc 1 1076 12 view .LVU247 829 0010 0424 movs r4, #4 830 0012 17E0 b .L65 831 .LVL56: 832 .L86: 1085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Select bsyflag depending on Bank */ 1087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** bsyflag = FLASH_FLAG_QW_BANK2; 1088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* DUAL_BANK */ 1090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** while(__HAL_FLASH_GET_FLAG(bsyflag)) 1092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(Timeout != HAL_MAX_DELAY) 1094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 833 .loc 1 1095 7 is_stmt 1 view .LVU248 834 .loc 1 1095 12 is_stmt 0 view .LVU249 835 0014 FFF7FEFF bl HAL_GetTick 836 .LVL57: 837 .loc 1 1095 26 discriminator 1 view .LVU250 838 0018 C01B subs r0, r0, r7 839 .loc 1 1095 9 discriminator 1 view .LVU251 840 001a A842 cmp r0, r5 841 001c 5DD8 bhi .L78 842 .loc 1 1095 50 discriminator 1 view .LVU252 843 001e 8DB9 cbnz r5, .L65 1096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_TIMEOUT; 844 .loc 1 1097 16 view .LVU253 845 0020 0320 movs r0, #3 846 0022 4AE0 b .L66 847 .LVL58: 848 .L84: 1087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 849 .loc 1 1087 13 view .LVU254 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 38 850 0024 304C ldr r4, .L90 851 0026 0DE0 b .L65 852 .LVL59: 853 .L68: 1091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 854 .loc 1 1091 9 discriminator 2 view .LVU255 855 0028 304B ldr r3, .L90+4 856 002a D3F81031 ldr r3, [r3, #272] 857 002e 24EA0303 bic r3, r4, r3 858 0032 23F00043 bic r3, r3, #-2147483648 859 0036 B3FA83F3 clz r3, r3 860 003a 5B09 lsrs r3, r3, #5 861 .L69: 1091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 862 .loc 1 1091 9 discriminator 4 view .LVU256 863 003c 63B1 cbz r3, .L85 1093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 864 .loc 1 1093 5 is_stmt 1 view .LVU257 1093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 865 .loc 1 1093 7 is_stmt 0 view .LVU258 866 003e B5F1FF3F cmp r5, #-1 867 0042 E7D1 bne .L86 868 .LVL60: 869 .L65: 1091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 870 .loc 1 1091 9 is_stmt 1 view .LVU259 871 0044 002C cmp r4, #0 872 0046 EFDB blt .L68 1091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 873 .loc 1 1091 9 is_stmt 0 discriminator 1 view .LVU260 874 0048 284B ldr r3, .L90+4 875 004a 1B69 ldr r3, [r3, #16] 876 004c 34EA0303 bics r3, r4, r3 877 0050 0CBF ite eq 878 0052 0123 moveq r3, #1 879 0054 0023 movne r3, #0 880 0056 F1E7 b .L69 881 .L85: 1098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Get Error Flags */ 1103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (Bank == FLASH_BANK_1) 882 .loc 1 1103 3 is_stmt 1 view .LVU261 883 .loc 1 1103 6 is_stmt 0 view .LVU262 884 0058 012E cmp r6, #1 885 005a 1CD0 beq .L87 1104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** errorflag = FLASH->SR1 & FLASH_FLAG_ALL_ERRORS_BANK1; 1106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (DUAL_BANK) 1108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 1109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** errorflag = (FLASH->SR2 & FLASH_FLAG_ALL_ERRORS_BANK2) | 0x80000000U; 886 .loc 1 1110 5 is_stmt 1 view .LVU263 887 .loc 1 1110 23 is_stmt 0 view .LVU264 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 39 888 005c 234B ldr r3, .L90+4 889 005e D3F81031 ldr r3, [r3, #272] 890 .loc 1 1110 60 view .LVU265 891 0062 23F06843 bic r3, r3, #-402653184 892 0066 23F4A003 bic r3, r3, #5242880 893 006a 5B0C lsrs r3, r3, #17 894 006c 5B04 lsls r3, r3, #17 895 .loc 1 1110 15 view .LVU266 896 006e 43F00043 orr r3, r3, #-2147483648 897 .LVL61: 898 .L72: 1111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* DUAL_BANK */ 1113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* In case of error reported in Flash SR1 or SR2 register */ 1115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if((errorflag & 0x7FFFFFFFU) != 0U) 899 .loc 1 1115 3 is_stmt 1 view .LVU267 900 .loc 1 1115 5 is_stmt 0 view .LVU268 901 0072 33F00041 bics r1, r3, #-2147483648 902 0076 17D1 bne .L88 1116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /*Save the error code*/ 1118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ErrorCode |= errorflag; 1119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear error programming flags */ 1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(errorflag); 1122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_ERROR; 1124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Check FLASH End of Operation flag */ 1127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(Bank == FLASH_BANK_1) 903 .loc 1 1127 3 is_stmt 1 view .LVU269 904 .loc 1 1127 5 is_stmt 0 view .LVU270 905 0078 012E cmp r6, #1 906 007a 23D0 beq .L89 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG_BANK1(FLASH_FLAG_EOP_BANK1)) 1130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */ 1132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG_BANK1(FLASH_FLAG_EOP_BANK1); 1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (DUAL_BANK) 1136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 1137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG_BANK2(FLASH_FLAG_EOP_BANK2)) 907 .loc 1 1138 5 is_stmt 1 view .LVU271 908 .loc 1 1138 9 is_stmt 0 view .LVU272 909 007c 1B4B ldr r3, .L90+4 910 .LVL62: 911 .loc 1 1138 9 view .LVU273 912 007e D3F81031 ldr r3, [r3, #272] 913 .loc 1 1138 8 view .LVU274 914 0082 13F4803F tst r3, #65536 915 0086 2CD0 beq .L81 1139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 40 1140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */ 1141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG_BANK2(FLASH_FLAG_EOP_BANK2); 916 .loc 1 1141 7 is_stmt 1 view .LVU275 917 0088 184B ldr r3, .L90+4 918 008a 4FF48032 mov r2, #65536 919 008e C3F81421 str r2, [r3, #276] 1142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* DUAL_BANK */ 1145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_OK; 920 .loc 1 1146 10 is_stmt 0 view .LVU276 921 0092 0020 movs r0, #0 922 0094 11E0 b .L66 923 .LVL63: 924 .L87: 1105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 925 .loc 1 1105 5 is_stmt 1 view .LVU277 1105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 926 .loc 1 1105 22 is_stmt 0 view .LVU278 927 0096 154B ldr r3, .L90+4 928 0098 1B69 ldr r3, [r3, #16] 1105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 929 .loc 1 1105 15 view .LVU279 930 009a 23F06843 bic r3, r3, #-402653184 931 009e 23F4A003 bic r3, r3, #5242880 932 00a2 5B0C lsrs r3, r3, #17 933 00a4 5B04 lsls r3, r3, #17 934 .LVL64: 1105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 935 .loc 1 1105 15 view .LVU280 936 00a6 E4E7 b .L72 937 .L88: 1118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 938 .loc 1 1118 5 is_stmt 1 view .LVU281 1118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 939 .loc 1 1118 11 is_stmt 0 view .LVU282 940 00a8 1148 ldr r0, .L90+8 941 00aa 8269 ldr r2, [r0, #24] 1118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 942 .loc 1 1118 22 view .LVU283 943 00ac 1A43 orrs r2, r2, r3 944 00ae 8261 str r2, [r0, #24] 1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 945 .loc 1 1121 5 is_stmt 1 view .LVU284 946 00b0 002B cmp r3, #0 947 00b2 03DB blt .L74 1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 948 .loc 1 1121 5 is_stmt 0 discriminator 1 view .LVU285 949 00b4 0D4A ldr r2, .L90+4 950 00b6 5361 str r3, [r2, #20] 951 .LVL65: 952 .L75: 1123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 953 .loc 1 1123 5 is_stmt 1 view .LVU286 1123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 954 .loc 1 1123 12 is_stmt 0 view .LVU287 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 41 955 00b8 0120 movs r0, #1 956 .LVL66: 957 .L66: 1147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 958 .loc 1 1147 1 view .LVU288 959 00ba F8BD pop {r3, r4, r5, r6, r7, pc} 960 .LVL67: 961 .L74: 1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 962 .loc 1 1121 5 discriminator 2 view .LVU289 963 00bc 0B4B ldr r3, .L90+4 964 .LVL68: 1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 965 .loc 1 1121 5 discriminator 2 view .LVU290 966 00be C3F81411 str r1, [r3, #276] 967 00c2 F9E7 b .L75 968 .LVL69: 969 .L89: 1129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 970 .loc 1 1129 5 is_stmt 1 view .LVU291 1129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 971 .loc 1 1129 9 is_stmt 0 view .LVU292 972 00c4 094B ldr r3, .L90+4 973 .LVL70: 1129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 974 .loc 1 1129 9 view .LVU293 975 00c6 1B69 ldr r3, [r3, #16] 1129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 976 .loc 1 1129 8 view .LVU294 977 00c8 13F4803F tst r3, #65536 978 00cc 07D0 beq .L80 1132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 979 .loc 1 1132 7 is_stmt 1 view .LVU295 980 00ce 074B ldr r3, .L90+4 981 00d0 4FF48032 mov r2, #65536 982 00d4 5A61 str r2, [r3, #20] 1146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 983 .loc 1 1146 10 is_stmt 0 view .LVU296 984 00d6 0020 movs r0, #0 985 00d8 EFE7 b .L66 986 .LVL71: 987 .L78: 1097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 988 .loc 1 1097 16 view .LVU297 989 00da 0320 movs r0, #3 990 00dc EDE7 b .L66 991 .LVL72: 992 .L80: 1146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 993 .loc 1 1146 10 view .LVU298 994 00de 0020 movs r0, #0 995 00e0 EBE7 b .L66 996 .L81: 997 00e2 0020 movs r0, #0 998 00e4 E9E7 b .L66 999 .L91: 1000 00e6 00BF .align 2 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 42 1001 .L90: 1002 00e8 04000080 .word -2147483644 1003 00ec 00200052 .word 1375739904 1004 00f0 00000000 .word pFlash 1005 .cfi_endproc 1006 .LFE346: 1008 .section .text.HAL_FLASH_Program,"ax",%progbits 1009 .align 1 1010 .global HAL_FLASH_Program 1011 .syntax unified 1012 .thumb 1013 .thumb_func 1015 HAL_FLASH_Program: 1016 .LVL73: 1017 .LFB335: 155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_StatusTypeDef status; 1018 .loc 1 155 1 is_stmt 1 view -0 1019 .cfi_startproc 1020 @ args = 0, pretend = 0, frame = 0 1021 @ frame_needed = 0, uses_anonymous_args = 0 155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_StatusTypeDef status; 1022 .loc 1 155 1 is_stmt 0 view .LVU300 1023 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr} 1024 .cfi_def_cfa_offset 32 1025 .cfi_offset 3, -32 1026 .cfi_offset 4, -28 1027 .cfi_offset 5, -24 1028 .cfi_offset 6, -20 1029 .cfi_offset 7, -16 1030 .cfi_offset 8, -12 1031 .cfi_offset 9, -8 1032 .cfi_offset 14, -4 156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __IO uint32_t *dest_addr = (__IO uint32_t *)FlashAddress; 1033 .loc 1 156 3 is_stmt 1 view .LVU301 157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __IO uint32_t *src_addr = (__IO uint32_t*)DataAddress; 1034 .loc 1 157 3 view .LVU302 1035 .LVL74: 158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** uint32_t bank; 1036 .loc 1 158 3 view .LVU303 159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** uint8_t row_index = FLASH_NB_32BITWORD_IN_FLASHWORD; 1037 .loc 1 159 3 view .LVU304 160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1038 .loc 1 160 3 view .LVU305 163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(FlashAddress)); 1039 .loc 1 163 3 view .LVU306 164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1040 .loc 1 164 3 view .LVU307 167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1041 .loc 1 167 3 view .LVU308 167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1042 .loc 1 167 3 view .LVU309 1043 0004 3E4B ldr r3, .L113 1044 0006 1B7D ldrb r3, [r3, #20] @ zero_extendqisi2 1045 0008 012B cmp r3, #1 1046 000a 75D0 beq .L103 1047 000c 0646 mov r6, r0 1048 000e 0C46 mov r4, r1 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 43 1049 0010 1546 mov r5, r2 1050 0012 0F46 mov r7, r1 1051 0014 9046 mov r8, r2 167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1052 .loc 1 167 3 discriminator 2 view .LVU310 1053 0016 3A4B ldr r3, .L113 1054 0018 0122 movs r2, #1 1055 .LVL75: 167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1056 .loc 1 167 3 is_stmt 0 discriminator 2 view .LVU311 1057 001a 1A75 strb r2, [r3, #20] 167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1058 .loc 1 167 3 is_stmt 1 view .LVU312 170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #else 1059 .loc 1 170 3 view .LVU313 170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #else 1060 .loc 1 170 7 is_stmt 0 view .LVU314 1061 001c 01F17842 add r2, r1, #-134217728 170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #else 1062 .loc 1 170 57 view .LVU315 1063 0020 384B ldr r3, .L113+4 1064 0022 0B44 add r3, r3, r1 170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #else 1065 .loc 1 170 5 view .LVU316 1066 0024 B3F5806F cmp r3, #1024 1067 0028 28BF it cs 1068 002a B2F5801F cmpcs r2, #1048576 1069 002e 42D3 bcc .L104 180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1070 .loc 1 180 8 is_stmt 1 view .LVU317 180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1071 .loc 1 180 11 is_stmt 0 view .LVU318 1072 0030 A1F10163 sub r3, r1, #135266304 180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1073 .loc 1 180 10 view .LVU319 1074 0034 B3F5801F cmp r3, #1048576 1075 0038 60D2 bcs .L105 182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1076 .loc 1 182 10 view .LVU320 1077 003a 4FF00209 mov r9, #2 1078 .L94: 1079 .LVL76: 191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1080 .loc 1 191 3 is_stmt 1 view .LVU321 191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1081 .loc 1 191 20 is_stmt 0 view .LVU322 1082 003e 304B ldr r3, .L113 1083 0040 0022 movs r2, #0 1084 0042 9A61 str r2, [r3, #24] 194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1085 .loc 1 194 3 is_stmt 1 view .LVU323 194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1086 .loc 1 194 12 is_stmt 0 view .LVU324 1087 0044 4946 mov r1, r9 1088 .LVL77: 194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1089 .loc 1 194 12 view .LVU325 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 44 1090 0046 4CF25030 movw r0, #50000 1091 .LVL78: 194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1092 .loc 1 194 12 view .LVU326 1093 004a FFF7FEFF bl FLASH_WaitForLastOperation 1094 .LVL79: 196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1095 .loc 1 196 3 is_stmt 1 view .LVU327 196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1096 .loc 1 196 5 is_stmt 0 view .LVU328 1097 004e 68BB cbnz r0, .L95 199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1098 .loc 1 199 5 is_stmt 1 view .LVU329 199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1099 .loc 1 199 7 is_stmt 0 view .LVU330 1100 0050 B9F1010F cmp r9, #1 1101 0054 32D0 beq .L108 217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1102 .loc 1 217 7 is_stmt 1 view .LVU331 1103 0056 2C4A ldr r2, .L113+8 1104 0058 D2F80C31 ldr r3, [r2, #268] 1105 005c 43F00203 orr r3, r3, #2 1106 0060 C2F80C31 str r3, [r2, #268] 1107 .L98: 234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __DSB(); 1108 .loc 1 234 5 view .LVU332 1109 .LBB18: 1110 .LBI18: 1111 .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.2.0 5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 08. May 2019 6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/ 7:Drivers/CMSIS/Include/cmsis_gcc.h **** /* 8:Drivers/CMSIS/Include/cmsis_gcc.h **** * Copyright (c) 2009-2019 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 */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 45 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))) 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 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 46 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 **** 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; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 47 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; iwlen; ++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; iwlen; ++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 **** 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 **** /* ########################### Core Function Access ########################### */ 186:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface 187:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions 188:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ 189:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 190:Drivers/CMSIS/Include/cmsis_gcc.h **** 191:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 192:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts 193:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR. 194:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. 195:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 196:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void) 197:Drivers/CMSIS/Include/cmsis_gcc.h **** { 198:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory"); 199:Drivers/CMSIS/Include/cmsis_gcc.h **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 48 200:Drivers/CMSIS/Include/cmsis_gcc.h **** 201:Drivers/CMSIS/Include/cmsis_gcc.h **** 202:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 203:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts 204:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR. 205:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. 206:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 207:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void) 208:Drivers/CMSIS/Include/cmsis_gcc.h **** { 209:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory"); 210:Drivers/CMSIS/Include/cmsis_gcc.h **** } 211:Drivers/CMSIS/Include/cmsis_gcc.h **** 212:Drivers/CMSIS/Include/cmsis_gcc.h **** 213:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 214:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register 215:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the Control Register. 216:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Control Register value 217:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 218:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_CONTROL(void) 219:Drivers/CMSIS/Include/cmsis_gcc.h **** { 220:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 221:Drivers/CMSIS/Include/cmsis_gcc.h **** 222:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control" : "=r" (result) ); 223:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 224:Drivers/CMSIS/Include/cmsis_gcc.h **** } 225:Drivers/CMSIS/Include/cmsis_gcc.h **** 226:Drivers/CMSIS/Include/cmsis_gcc.h **** 227:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 228:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 229:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register (non-secure) 230:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the non-secure Control Register when in secure mode. 231:Drivers/CMSIS/Include/cmsis_gcc.h **** \return non-secure Control Register value 232:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) 234:Drivers/CMSIS/Include/cmsis_gcc.h **** { 235:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 236:Drivers/CMSIS/Include/cmsis_gcc.h **** 237:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); 238:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 239:Drivers/CMSIS/Include/cmsis_gcc.h **** } 240:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 241:Drivers/CMSIS/Include/cmsis_gcc.h **** 242:Drivers/CMSIS/Include/cmsis_gcc.h **** 243:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 244:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register 245:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the Control Register. 246:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set 247:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 248:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) 249:Drivers/CMSIS/Include/cmsis_gcc.h **** { 250:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); 251:Drivers/CMSIS/Include/cmsis_gcc.h **** } 252:Drivers/CMSIS/Include/cmsis_gcc.h **** 253:Drivers/CMSIS/Include/cmsis_gcc.h **** 254:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 255:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 256:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register (non-secure) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 49 257:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the non-secure Control Register when in secure state. 258:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set 259:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 260:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) 261:Drivers/CMSIS/Include/cmsis_gcc.h **** { 262:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); 263:Drivers/CMSIS/Include/cmsis_gcc.h **** } 264:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 265:Drivers/CMSIS/Include/cmsis_gcc.h **** 266:Drivers/CMSIS/Include/cmsis_gcc.h **** 267:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 268:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get IPSR Register 269:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the IPSR Register. 270:Drivers/CMSIS/Include/cmsis_gcc.h **** \return IPSR Register value 271:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 272:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_IPSR(void) 273:Drivers/CMSIS/Include/cmsis_gcc.h **** { 274:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 275:Drivers/CMSIS/Include/cmsis_gcc.h **** 276:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); 277:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 278:Drivers/CMSIS/Include/cmsis_gcc.h **** } 279:Drivers/CMSIS/Include/cmsis_gcc.h **** 280:Drivers/CMSIS/Include/cmsis_gcc.h **** 281:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 282:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get APSR Register 283:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the APSR Register. 284:Drivers/CMSIS/Include/cmsis_gcc.h **** \return APSR Register value 285:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 286:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void) 287:Drivers/CMSIS/Include/cmsis_gcc.h **** { 288:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 289:Drivers/CMSIS/Include/cmsis_gcc.h **** 290:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, apsr" : "=r" (result) ); 291:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 292:Drivers/CMSIS/Include/cmsis_gcc.h **** } 293:Drivers/CMSIS/Include/cmsis_gcc.h **** 294:Drivers/CMSIS/Include/cmsis_gcc.h **** 295:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 296:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get xPSR Register 297:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the xPSR Register. 298:Drivers/CMSIS/Include/cmsis_gcc.h **** \return xPSR Register value 299:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 300:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void) 301:Drivers/CMSIS/Include/cmsis_gcc.h **** { 302:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 303:Drivers/CMSIS/Include/cmsis_gcc.h **** 304:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); 305:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 306:Drivers/CMSIS/Include/cmsis_gcc.h **** } 307:Drivers/CMSIS/Include/cmsis_gcc.h **** 308:Drivers/CMSIS/Include/cmsis_gcc.h **** 309:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 310:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer 311:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer (PSP). 312:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value 313:Drivers/CMSIS/Include/cmsis_gcc.h **** */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 50 314:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSP(void) 315:Drivers/CMSIS/Include/cmsis_gcc.h **** { 316:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 317:Drivers/CMSIS/Include/cmsis_gcc.h **** 318:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp" : "=r" (result) ); 319:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 320:Drivers/CMSIS/Include/cmsis_gcc.h **** } 321:Drivers/CMSIS/Include/cmsis_gcc.h **** 322:Drivers/CMSIS/Include/cmsis_gcc.h **** 323:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 324:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 325:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer (non-secure) 326:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure s 327:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value 328:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 329:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) 330:Drivers/CMSIS/Include/cmsis_gcc.h **** { 331:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 332:Drivers/CMSIS/Include/cmsis_gcc.h **** 333:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); 334:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 335:Drivers/CMSIS/Include/cmsis_gcc.h **** } 336:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 337:Drivers/CMSIS/Include/cmsis_gcc.h **** 338:Drivers/CMSIS/Include/cmsis_gcc.h **** 339:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 340:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer 341:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer (PSP). 342:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set 343:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 344:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) 345:Drivers/CMSIS/Include/cmsis_gcc.h **** { 346:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); 347:Drivers/CMSIS/Include/cmsis_gcc.h **** } 348:Drivers/CMSIS/Include/cmsis_gcc.h **** 349:Drivers/CMSIS/Include/cmsis_gcc.h **** 350:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 351:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 352:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) 353:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure sta 354:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set 355:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 356:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) 357:Drivers/CMSIS/Include/cmsis_gcc.h **** { 358:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); 359:Drivers/CMSIS/Include/cmsis_gcc.h **** } 360:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 361:Drivers/CMSIS/Include/cmsis_gcc.h **** 362:Drivers/CMSIS/Include/cmsis_gcc.h **** 363:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 364:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer 365:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer (MSP). 366:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value 367:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 368:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSP(void) 369:Drivers/CMSIS/Include/cmsis_gcc.h **** { 370:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 51 371:Drivers/CMSIS/Include/cmsis_gcc.h **** 372:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp" : "=r" (result) ); 373:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 374:Drivers/CMSIS/Include/cmsis_gcc.h **** } 375:Drivers/CMSIS/Include/cmsis_gcc.h **** 376:Drivers/CMSIS/Include/cmsis_gcc.h **** 377:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 378:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 379:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer (non-secure) 380:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure stat 381:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value 382:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 383:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) 384:Drivers/CMSIS/Include/cmsis_gcc.h **** { 385:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 386:Drivers/CMSIS/Include/cmsis_gcc.h **** 387:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); 388:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 389:Drivers/CMSIS/Include/cmsis_gcc.h **** } 390:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 391:Drivers/CMSIS/Include/cmsis_gcc.h **** 392:Drivers/CMSIS/Include/cmsis_gcc.h **** 393:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 394:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer 395:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer (MSP). 396:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set 397:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 398:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) 399:Drivers/CMSIS/Include/cmsis_gcc.h **** { 400:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); 401:Drivers/CMSIS/Include/cmsis_gcc.h **** } 402:Drivers/CMSIS/Include/cmsis_gcc.h **** 403:Drivers/CMSIS/Include/cmsis_gcc.h **** 404:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 405:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 406:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer (non-secure) 407:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. 408:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set 409:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 410:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) 411:Drivers/CMSIS/Include/cmsis_gcc.h **** { 412:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); 413:Drivers/CMSIS/Include/cmsis_gcc.h **** } 414:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 415:Drivers/CMSIS/Include/cmsis_gcc.h **** 416:Drivers/CMSIS/Include/cmsis_gcc.h **** 417:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 418:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 419:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Stack Pointer (non-secure) 420:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. 421:Drivers/CMSIS/Include/cmsis_gcc.h **** \return SP Register value 422:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 423:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) 424:Drivers/CMSIS/Include/cmsis_gcc.h **** { 425:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 426:Drivers/CMSIS/Include/cmsis_gcc.h **** 427:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 52 428:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 429:Drivers/CMSIS/Include/cmsis_gcc.h **** } 430:Drivers/CMSIS/Include/cmsis_gcc.h **** 431:Drivers/CMSIS/Include/cmsis_gcc.h **** 432:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 433:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Stack Pointer (non-secure) 434:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. 435:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfStack Stack Pointer value to set 436:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 437:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) 438:Drivers/CMSIS/Include/cmsis_gcc.h **** { 439:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); 440:Drivers/CMSIS/Include/cmsis_gcc.h **** } 441:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 442:Drivers/CMSIS/Include/cmsis_gcc.h **** 443:Drivers/CMSIS/Include/cmsis_gcc.h **** 444:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 445:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask 446:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the priority mask bit from the Priority Mask Register. 447:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value 448:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 449:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) 450:Drivers/CMSIS/Include/cmsis_gcc.h **** { 451:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 452:Drivers/CMSIS/Include/cmsis_gcc.h **** 453:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory"); 454:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 455:Drivers/CMSIS/Include/cmsis_gcc.h **** } 456:Drivers/CMSIS/Include/cmsis_gcc.h **** 457:Drivers/CMSIS/Include/cmsis_gcc.h **** 458:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 459:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 460:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask (non-secure) 461:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the non-secure priority mask bit from the Priority Mask Reg 462:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value 463:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 464:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) 465:Drivers/CMSIS/Include/cmsis_gcc.h **** { 466:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 467:Drivers/CMSIS/Include/cmsis_gcc.h **** 468:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory"); 469:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 470:Drivers/CMSIS/Include/cmsis_gcc.h **** } 471:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 472:Drivers/CMSIS/Include/cmsis_gcc.h **** 473:Drivers/CMSIS/Include/cmsis_gcc.h **** 474:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 475:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask 476:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Priority Mask Register. 477:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask 478:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 479:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) 480:Drivers/CMSIS/Include/cmsis_gcc.h **** { 481:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); 482:Drivers/CMSIS/Include/cmsis_gcc.h **** } 483:Drivers/CMSIS/Include/cmsis_gcc.h **** 484:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 53 485:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 486:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 487:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask (non-secure) 488:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Priority Mask Register when in secure state. 489:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask 490:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 491:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) 492:Drivers/CMSIS/Include/cmsis_gcc.h **** { 493:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); 494:Drivers/CMSIS/Include/cmsis_gcc.h **** } 495:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 496:Drivers/CMSIS/Include/cmsis_gcc.h **** 497:Drivers/CMSIS/Include/cmsis_gcc.h **** 498:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ 499:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ 500:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) 501:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 502:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable FIQ 503:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables FIQ interrupts by clearing the F-bit in the CPSR. 504:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. 505:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 506:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_fault_irq(void) 507:Drivers/CMSIS/Include/cmsis_gcc.h **** { 508:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie f" : : : "memory"); 509:Drivers/CMSIS/Include/cmsis_gcc.h **** } 510:Drivers/CMSIS/Include/cmsis_gcc.h **** 511:Drivers/CMSIS/Include/cmsis_gcc.h **** 512:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 513:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable FIQ 514:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables FIQ interrupts by setting the F-bit in the CPSR. 515:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. 516:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 517:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_fault_irq(void) 518:Drivers/CMSIS/Include/cmsis_gcc.h **** { 519:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid f" : : : "memory"); 520:Drivers/CMSIS/Include/cmsis_gcc.h **** } 521:Drivers/CMSIS/Include/cmsis_gcc.h **** 522:Drivers/CMSIS/Include/cmsis_gcc.h **** 523:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 524:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority 525:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Base Priority register. 526:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value 527:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 528:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) 529:Drivers/CMSIS/Include/cmsis_gcc.h **** { 530:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 531:Drivers/CMSIS/Include/cmsis_gcc.h **** 532:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri" : "=r" (result) ); 533:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 534:Drivers/CMSIS/Include/cmsis_gcc.h **** } 535:Drivers/CMSIS/Include/cmsis_gcc.h **** 536:Drivers/CMSIS/Include/cmsis_gcc.h **** 537:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 538:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 539:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority (non-secure) 540:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Base Priority register when in secure state. 541:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 54 542:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 543:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) 544:Drivers/CMSIS/Include/cmsis_gcc.h **** { 545:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 546:Drivers/CMSIS/Include/cmsis_gcc.h **** 547:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); 548:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 549:Drivers/CMSIS/Include/cmsis_gcc.h **** } 550:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 551:Drivers/CMSIS/Include/cmsis_gcc.h **** 552:Drivers/CMSIS/Include/cmsis_gcc.h **** 553:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 554:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority 555:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register. 556:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set 557:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 558:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) 559:Drivers/CMSIS/Include/cmsis_gcc.h **** { 560:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); 561:Drivers/CMSIS/Include/cmsis_gcc.h **** } 562:Drivers/CMSIS/Include/cmsis_gcc.h **** 563:Drivers/CMSIS/Include/cmsis_gcc.h **** 564:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 565:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 566:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority (non-secure) 567:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Base Priority register when in secure state. 568:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set 569:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 570:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) 571:Drivers/CMSIS/Include/cmsis_gcc.h **** { 572:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); 573:Drivers/CMSIS/Include/cmsis_gcc.h **** } 574:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 575:Drivers/CMSIS/Include/cmsis_gcc.h **** 576:Drivers/CMSIS/Include/cmsis_gcc.h **** 577:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 578:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority with condition 579:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register only if BASEPRI masking is disable 580:Drivers/CMSIS/Include/cmsis_gcc.h **** or the new value increases the BASEPRI priority level. 581:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set 582:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 583:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) 584:Drivers/CMSIS/Include/cmsis_gcc.h **** { 585:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); 586:Drivers/CMSIS/Include/cmsis_gcc.h **** } 587:Drivers/CMSIS/Include/cmsis_gcc.h **** 588:Drivers/CMSIS/Include/cmsis_gcc.h **** 589:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 590:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask 591:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Fault Mask register. 592:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value 593:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 594:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) 595:Drivers/CMSIS/Include/cmsis_gcc.h **** { 596:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 597:Drivers/CMSIS/Include/cmsis_gcc.h **** 598:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 55 599:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 600:Drivers/CMSIS/Include/cmsis_gcc.h **** } 601:Drivers/CMSIS/Include/cmsis_gcc.h **** 602:Drivers/CMSIS/Include/cmsis_gcc.h **** 603:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 604:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 605:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask (non-secure) 606:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Fault Mask register when in secure state. 607:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value 608:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 609:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) 610:Drivers/CMSIS/Include/cmsis_gcc.h **** { 611:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 612:Drivers/CMSIS/Include/cmsis_gcc.h **** 613:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); 614:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 615:Drivers/CMSIS/Include/cmsis_gcc.h **** } 616:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 617:Drivers/CMSIS/Include/cmsis_gcc.h **** 618:Drivers/CMSIS/Include/cmsis_gcc.h **** 619:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 620:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask 621:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Fault Mask register. 622:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set 623:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 624:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) 625:Drivers/CMSIS/Include/cmsis_gcc.h **** { 626:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); 627:Drivers/CMSIS/Include/cmsis_gcc.h **** } 628:Drivers/CMSIS/Include/cmsis_gcc.h **** 629:Drivers/CMSIS/Include/cmsis_gcc.h **** 630:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 631:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 632:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask (non-secure) 633:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Fault Mask register when in secure state. 634:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set 635:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 636:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) 637:Drivers/CMSIS/Include/cmsis_gcc.h **** { 638:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); 639:Drivers/CMSIS/Include/cmsis_gcc.h **** } 640:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 641:Drivers/CMSIS/Include/cmsis_gcc.h **** 642:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ 643:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ 644:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ 645:Drivers/CMSIS/Include/cmsis_gcc.h **** 646:Drivers/CMSIS/Include/cmsis_gcc.h **** 647:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 648:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) 649:Drivers/CMSIS/Include/cmsis_gcc.h **** 650:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 651:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit 652:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 653:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure 654:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. 655:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 56 656:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). 657:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value 658:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 659:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) 660:Drivers/CMSIS/Include/cmsis_gcc.h **** { 661:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ 662:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 663:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI 664:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; 665:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 666:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 667:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim" : "=r" (result) ); 668:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 669:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 670:Drivers/CMSIS/Include/cmsis_gcc.h **** } 671:Drivers/CMSIS/Include/cmsis_gcc.h **** 672:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) 673:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 674:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit (non-secure) 675:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 676:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. 677:Drivers/CMSIS/Include/cmsis_gcc.h **** 678:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in 679:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value 680:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 681:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) 682:Drivers/CMSIS/Include/cmsis_gcc.h **** { 683:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) 684:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI 685:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; 686:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 687:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 688:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); 689:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 690:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 691:Drivers/CMSIS/Include/cmsis_gcc.h **** } 692:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 693:Drivers/CMSIS/Include/cmsis_gcc.h **** 694:Drivers/CMSIS/Include/cmsis_gcc.h **** 695:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 696:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer Limit 697:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 698:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure 699:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. 700:Drivers/CMSIS/Include/cmsis_gcc.h **** 701:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). 702:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set 703:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 704:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) 705:Drivers/CMSIS/Include/cmsis_gcc.h **** { 706:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ 707:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 708:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI 709:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; 710:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 711:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); 712:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 57 713:Drivers/CMSIS/Include/cmsis_gcc.h **** } 714:Drivers/CMSIS/Include/cmsis_gcc.h **** 715:Drivers/CMSIS/Include/cmsis_gcc.h **** 716:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 717:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 718:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) 719:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 720:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. 721:Drivers/CMSIS/Include/cmsis_gcc.h **** 722:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in s 723:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set 724:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 725:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) 726:Drivers/CMSIS/Include/cmsis_gcc.h **** { 727:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) 728:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI 729:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; 730:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 731:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); 732:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 733:Drivers/CMSIS/Include/cmsis_gcc.h **** } 734:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 735:Drivers/CMSIS/Include/cmsis_gcc.h **** 736:Drivers/CMSIS/Include/cmsis_gcc.h **** 737:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 738:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit 739:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 740:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure 741:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. 742:Drivers/CMSIS/Include/cmsis_gcc.h **** 743:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). 744:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value 745:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 746:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) 747:Drivers/CMSIS/Include/cmsis_gcc.h **** { 748:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ 749:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 750:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI 751:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; 752:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 753:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 754:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim" : "=r" (result) ); 755:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 756:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 757:Drivers/CMSIS/Include/cmsis_gcc.h **** } 758:Drivers/CMSIS/Include/cmsis_gcc.h **** 759:Drivers/CMSIS/Include/cmsis_gcc.h **** 760:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 761:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 762:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit (non-secure) 763:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 764:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. 765:Drivers/CMSIS/Include/cmsis_gcc.h **** 766:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in sec 767:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value 768:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 769:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 58 770:Drivers/CMSIS/Include/cmsis_gcc.h **** { 771:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) 772:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI 773:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; 774:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 775:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 776:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); 777:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 778:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 779:Drivers/CMSIS/Include/cmsis_gcc.h **** } 780:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 781:Drivers/CMSIS/Include/cmsis_gcc.h **** 782:Drivers/CMSIS/Include/cmsis_gcc.h **** 783:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 784:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit 785:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 786:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure 787:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. 788:Drivers/CMSIS/Include/cmsis_gcc.h **** 789:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). 790:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set 791:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 792:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) 793:Drivers/CMSIS/Include/cmsis_gcc.h **** { 794:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ 795:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 796:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI 797:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; 798:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 799:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); 800:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 801:Drivers/CMSIS/Include/cmsis_gcc.h **** } 802:Drivers/CMSIS/Include/cmsis_gcc.h **** 803:Drivers/CMSIS/Include/cmsis_gcc.h **** 804:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 805:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 806:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit (non-secure) 807:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 808:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. 809:Drivers/CMSIS/Include/cmsis_gcc.h **** 810:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secu 811:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer value to set 812:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 813:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) 814:Drivers/CMSIS/Include/cmsis_gcc.h **** { 815:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) 816:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI 817:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; 818:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 819:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); 820:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 821:Drivers/CMSIS/Include/cmsis_gcc.h **** } 822:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 823:Drivers/CMSIS/Include/cmsis_gcc.h **** 824:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 825:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ 826:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 59 827:Drivers/CMSIS/Include/cmsis_gcc.h **** 828:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 829:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get FPSCR 830:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Floating Point Status/Control register. 831:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Floating Point Status/Control register value 832:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 833:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FPSCR(void) 834:Drivers/CMSIS/Include/cmsis_gcc.h **** { 835:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ 836:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) 837:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_get_fpscr) 838:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed 839:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) 840:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ 841:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_arm_get_fpscr(); 842:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 843:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 844:Drivers/CMSIS/Include/cmsis_gcc.h **** 845:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); 846:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 847:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 848:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 849:Drivers/CMSIS/Include/cmsis_gcc.h **** return(0U); 850:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 851:Drivers/CMSIS/Include/cmsis_gcc.h **** } 852:Drivers/CMSIS/Include/cmsis_gcc.h **** 853:Drivers/CMSIS/Include/cmsis_gcc.h **** 854:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 855:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set FPSCR 856:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Floating Point Status/Control register. 857:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] fpscr Floating Point Status/Control value to set 858:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 859:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr) 860:Drivers/CMSIS/Include/cmsis_gcc.h **** { 861:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ 862:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) 863:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_set_fpscr) 864:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed 865:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) 866:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ 867:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_arm_set_fpscr(fpscr); 868:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 869:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory"); 870:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 871:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 872:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)fpscr; 873:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 874:Drivers/CMSIS/Include/cmsis_gcc.h **** } 875:Drivers/CMSIS/Include/cmsis_gcc.h **** 876:Drivers/CMSIS/Include/cmsis_gcc.h **** 877:Drivers/CMSIS/Include/cmsis_gcc.h **** /*@} end of CMSIS_Core_RegAccFunctions */ 878:Drivers/CMSIS/Include/cmsis_gcc.h **** 879:Drivers/CMSIS/Include/cmsis_gcc.h **** 880:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################## Core Instruction Access ######################### */ 881:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface 882:Drivers/CMSIS/Include/cmsis_gcc.h **** Access to dedicated instructions 883:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 60 884:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 885:Drivers/CMSIS/Include/cmsis_gcc.h **** 886:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2. 887:Drivers/CMSIS/Include/cmsis_gcc.h **** * For thumb1, use low register (r0-r7), specified by constraint "l" 888:Drivers/CMSIS/Include/cmsis_gcc.h **** * Otherwise, use general registers, specified by constraint "r" */ 889:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__) 890:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r) 891:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r) 892:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r) 893:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 894:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r) 895:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r) 896:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r) 897:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 898:Drivers/CMSIS/Include/cmsis_gcc.h **** 899:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 900:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief No Operation 901:Drivers/CMSIS/Include/cmsis_gcc.h **** \details No Operation does nothing. This instruction can be used for code alignment purposes. 902:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 903:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP() __ASM volatile ("nop") 904:Drivers/CMSIS/Include/cmsis_gcc.h **** 905:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 906:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Interrupt 907:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o 908:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 909:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI() __ASM volatile ("wfi") 910:Drivers/CMSIS/Include/cmsis_gcc.h **** 911:Drivers/CMSIS/Include/cmsis_gcc.h **** 912:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 913:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Event 914:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Event is a hint instruction that permits the processor to enter 915:Drivers/CMSIS/Include/cmsis_gcc.h **** a low-power state until one of a number of events occurs. 916:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 917:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE() __ASM volatile ("wfe") 918:Drivers/CMSIS/Include/cmsis_gcc.h **** 919:Drivers/CMSIS/Include/cmsis_gcc.h **** 920:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 921:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Send Event 922:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. 923:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 924:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV() __ASM volatile ("sev") 925:Drivers/CMSIS/Include/cmsis_gcc.h **** 926:Drivers/CMSIS/Include/cmsis_gcc.h **** 927:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 928:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Instruction Synchronization Barrier 929:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Instruction Synchronization Barrier flushes the pipeline in the processor, 930:Drivers/CMSIS/Include/cmsis_gcc.h **** so that all instructions following the ISB are fetched from cache or memory, 931:Drivers/CMSIS/Include/cmsis_gcc.h **** after the instruction has been completed. 932:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 933:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void) 1112 .loc 2 933 27 view .LVU333 1113 .LBB19: 934:Drivers/CMSIS/Include/cmsis_gcc.h **** { 935:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("isb 0xF":::"memory"); 1114 .loc 2 935 3 view .LVU334 1115 .syntax unified 1116 @ 935 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 61 1117 0064 BFF36F8F isb 0xF 1118 @ 0 "" 2 1119 .thumb 1120 .syntax unified 1121 .LBE19: 1122 .LBE18: 235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1123 .loc 1 235 5 view .LVU335 1124 .LBB20: 1125 .LBI20: 936:Drivers/CMSIS/Include/cmsis_gcc.h **** } 937:Drivers/CMSIS/Include/cmsis_gcc.h **** 938:Drivers/CMSIS/Include/cmsis_gcc.h **** 939:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 940:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Synchronization Barrier 941:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Acts as a special kind of Data Memory Barrier. 942:Drivers/CMSIS/Include/cmsis_gcc.h **** It completes when all explicit memory accesses before this instruction complete. 943:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 944:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DSB(void) 1126 .loc 2 944 27 view .LVU336 1127 .LBB21: 945:Drivers/CMSIS/Include/cmsis_gcc.h **** { 946:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dsb 0xF":::"memory"); 1128 .loc 2 946 3 view .LVU337 1129 .syntax unified 1130 @ 946 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 1131 0068 BFF34F8F dsb 0xF 1132 @ 0 "" 2 1133 .thumb 1134 .syntax unified 1135 .LBE21: 1136 .LBE20: 238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1137 .loc 1 238 5 view .LVU338 238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1138 .loc 1 238 8 is_stmt 0 view .LVU339 1139 006c 022E cmp r6, #2 1140 006e 33D0 beq .L109 160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1141 .loc 1 160 11 view .LVU340 1142 0070 0423 movs r3, #4 1143 .LVL80: 1144 .L99: 247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1145 .loc 1 247 7 is_stmt 1 view .LVU341 249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** dest_addr++; 1146 .loc 1 249 9 view .LVU342 249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** dest_addr++; 1147 .loc 1 249 22 is_stmt 0 view .LVU343 1148 0072 58F8042B ldr r2, [r8], #4 1149 .LVL81: 249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** dest_addr++; 1150 .loc 1 249 20 view .LVU344 1151 0076 47F8042B str r2, [r7], #4 1152 .LVL82: 250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** src_addr++; 1153 .loc 1 250 9 is_stmt 1 view .LVU345 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 62 251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** row_index--; 1154 .loc 1 251 9 view .LVU346 252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } while (row_index != 0U); 1155 .loc 1 252 9 view .LVU347 252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } while (row_index != 0U); 1156 .loc 1 252 18 is_stmt 0 view .LVU348 1157 007a 013B subs r3, r3, #1 1158 .LVL83: 253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1159 .loc 1 253 25 is_stmt 1 discriminator 1 view .LVU349 1160 007c 13F0FF03 ands r3, r3, #255 1161 .LVL84: 253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1162 .loc 1 253 25 is_stmt 0 discriminator 1 view .LVU350 1163 0080 F7D1 bne .L99 1164 .LVL85: 1165 .L100: 256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __DSB(); 1166 .loc 1 256 5 is_stmt 1 view .LVU351 1167 .LBB22: 1168 .LBI22: 933:Drivers/CMSIS/Include/cmsis_gcc.h **** { 1169 .loc 2 933 27 view .LVU352 1170 .LBB23: 935:Drivers/CMSIS/Include/cmsis_gcc.h **** } 1171 .loc 2 935 3 view .LVU353 1172 .syntax unified 1173 @ 935 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 1174 0082 BFF36F8F isb 0xF 1175 @ 0 "" 2 1176 .thumb 1177 .syntax unified 1178 .LBE23: 1179 .LBE22: 257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1180 .loc 1 257 5 view .LVU354 1181 .LBB24: 1182 .LBI24: 944:Drivers/CMSIS/Include/cmsis_gcc.h **** { 1183 .loc 2 944 27 view .LVU355 1184 .LBB25: 1185 .loc 2 946 3 view .LVU356 1186 .syntax unified 1187 @ 946 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 1188 0086 BFF34F8F dsb 0xF 1189 @ 0 "" 2 1190 .thumb 1191 .syntax unified 1192 .LBE25: 1193 .LBE24: 260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1194 .loc 1 260 5 view .LVU357 260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1195 .loc 1 260 14 is_stmt 0 view .LVU358 1196 008a 4946 mov r1, r9 1197 008c 4CF25030 movw r0, #50000 1198 .LVL86: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 63 260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1199 .loc 1 260 14 view .LVU359 1200 0090 FFF7FEFF bl FLASH_WaitForLastOperation 1201 .LVL87: 264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1202 .loc 1 264 5 is_stmt 1 view .LVU360 264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1203 .loc 1 264 8 is_stmt 0 view .LVU361 1204 0094 022E cmp r6, #2 1205 0096 23D0 beq .L110 272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1206 .loc 1 272 7 is_stmt 1 view .LVU362 272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1207 .loc 1 272 9 is_stmt 0 view .LVU363 1208 0098 B9F1010F cmp r9, #1 1209 009c 26D0 beq .L111 280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1210 .loc 1 280 9 is_stmt 1 view .LVU364 1211 009e 1A4A ldr r2, .L113+8 1212 00a0 D2F80C31 ldr r3, [r2, #268] 1213 00a4 23F00203 bic r3, r3, #2 1214 00a8 C2F80C31 str r3, [r2, #268] 1215 .L95: 300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1216 .loc 1 300 3 view .LVU365 300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1217 .loc 1 300 3 view .LVU366 1218 00ac 144B ldr r3, .L113 1219 00ae 0022 movs r2, #0 1220 00b0 1A75 strb r2, [r3, #20] 300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1221 .loc 1 300 3 view .LVU367 302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1222 .loc 1 302 3 view .LVU368 1223 .LVL88: 1224 .L93: 303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1225 .loc 1 303 1 is_stmt 0 view .LVU369 1226 00b2 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 1227 .LVL89: 1228 .L104: 175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */ 1229 .loc 1 175 10 view .LVU370 1230 00b6 4FF00109 mov r9, #1 1231 00ba C0E7 b .L94 1232 .LVL90: 1233 .L108: 202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1234 .loc 1 202 7 is_stmt 1 view .LVU371 202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1235 .loc 1 202 10 is_stmt 0 view .LVU372 1236 00bc 022E cmp r6, #2 1237 00be 05D0 beq .L112 211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1238 .loc 1 211 9 is_stmt 1 view .LVU373 1239 00c0 114A ldr r2, .L113+8 1240 00c2 D368 ldr r3, [r2, #12] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 64 1241 00c4 43F00203 orr r3, r3, #2 1242 00c8 D360 str r3, [r2, #12] 1243 00ca CBE7 b .L98 1244 .L112: 205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1245 .loc 1 205 9 view .LVU374 1246 00cc 0E4A ldr r2, .L113+8 1247 00ce 9369 ldr r3, [r2, #24] 1248 00d0 43F02003 orr r3, r3, #32 1249 00d4 9361 str r3, [r2, #24] 1250 00d6 C5E7 b .L98 1251 .L109: 241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1252 .loc 1 241 7 view .LVU375 241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1253 .loc 1 241 40 is_stmt 0 view .LVU376 1254 00d8 2B88 ldrh r3, [r5] 1255 00da 9BB2 uxth r3, r3 241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1256 .loc 1 241 38 view .LVU377 1257 00dc 2380 strh r3, [r4] @ movhi 1258 00de D0E7 b .L100 1259 .LVL91: 1260 .L110: 267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1261 .loc 1 267 7 is_stmt 1 view .LVU378 1262 00e0 094A ldr r2, .L113+8 1263 00e2 9369 ldr r3, [r2, #24] 1264 00e4 23F02003 bic r3, r3, #32 1265 00e8 9361 str r3, [r2, #24] 1266 00ea DFE7 b .L95 1267 .L111: 275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1268 .loc 1 275 9 view .LVU379 1269 00ec 064A ldr r2, .L113+8 1270 00ee D368 ldr r3, [r2, #12] 1271 00f0 23F00203 bic r3, r3, #2 1272 00f4 D360 str r3, [r2, #12] 1273 00f6 D9E7 b .L95 1274 .LVL92: 1275 .L103: 167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1276 .loc 1 167 3 is_stmt 0 discriminator 1 view .LVU380 1277 00f8 0220 movs r0, #2 1278 .LVL93: 167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1279 .loc 1 167 3 discriminator 1 view .LVU381 1280 00fa DAE7 b .L93 1281 .LVL94: 1282 .L105: 187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1283 .loc 1 187 12 view .LVU382 1284 00fc 0120 movs r0, #1 1285 .LVL95: 187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1286 .loc 1 187 12 view .LVU383 1287 00fe D8E7 b .L93 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 65 1288 .L114: 1289 .align 2 1290 .L113: 1291 0100 00000000 .word pFlash 1292 0104 001000F7 .word -150990848 1293 0108 00200052 .word 1375739904 1294 .cfi_endproc 1295 .LFE335: 1297 .section .text.HAL_FLASH_Program_IT,"ax",%progbits 1298 .align 1 1299 .global HAL_FLASH_Program_IT 1300 .syntax unified 1301 .thumb 1302 .thumb_func 1304 HAL_FLASH_Program_IT: 1305 .LVL96: 1306 .LFB336: 320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_StatusTypeDef status; 1307 .loc 1 320 1 is_stmt 1 view -0 1308 .cfi_startproc 1309 @ args = 0, pretend = 0, frame = 0 1310 @ frame_needed = 0, uses_anonymous_args = 0 320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_StatusTypeDef status; 1311 .loc 1 320 1 is_stmt 0 view .LVU385 1312 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr} 1313 .cfi_def_cfa_offset 32 1314 .cfi_offset 3, -32 1315 .cfi_offset 4, -28 1316 .cfi_offset 5, -24 1317 .cfi_offset 6, -20 1318 .cfi_offset 7, -16 1319 .cfi_offset 8, -12 1320 .cfi_offset 9, -8 1321 .cfi_offset 14, -4 321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __IO uint32_t *dest_addr = (__IO uint32_t*)FlashAddress; 1322 .loc 1 321 3 is_stmt 1 view .LVU386 322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __IO uint32_t *src_addr = (__IO uint32_t*)DataAddress; 1323 .loc 1 322 3 view .LVU387 1324 .LVL97: 323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** uint32_t bank; 1325 .loc 1 323 3 view .LVU388 324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** uint8_t row_index = FLASH_NB_32BITWORD_IN_FLASHWORD; 1326 .loc 1 324 3 view .LVU389 325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1327 .loc 1 325 3 view .LVU390 328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(FlashAddress)); 1328 .loc 1 328 3 view .LVU391 329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1329 .loc 1 329 3 view .LVU392 332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1330 .loc 1 332 3 view .LVU393 332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1331 .loc 1 332 3 view .LVU394 1332 0004 3A4B ldr r3, .L133 1333 0006 1B7D ldrb r3, [r3, #20] @ zero_extendqisi2 1334 0008 012B cmp r3, #1 1335 000a 6CD0 beq .L125 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 66 1336 000c 8046 mov r8, r0 1337 000e 0C46 mov r4, r1 1338 0010 1546 mov r5, r2 1339 0012 0E46 mov r6, r1 1340 0014 1746 mov r7, r2 332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1341 .loc 1 332 3 discriminator 2 view .LVU395 1342 0016 364B ldr r3, .L133 1343 0018 0122 movs r2, #1 1344 .LVL98: 332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1345 .loc 1 332 3 is_stmt 0 discriminator 2 view .LVU396 1346 001a 1A75 strb r2, [r3, #20] 332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1347 .loc 1 332 3 is_stmt 1 view .LVU397 335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1348 .loc 1 335 3 view .LVU398 335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1349 .loc 1 335 20 is_stmt 0 view .LVU399 1350 001c 0022 movs r2, #0 1351 001e 9A61 str r2, [r3, #24] 338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #else 1352 .loc 1 338 3 is_stmt 1 view .LVU400 338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #else 1353 .loc 1 338 7 is_stmt 0 view .LVU401 1354 0020 01F17842 add r2, r1, #-134217728 338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #else 1355 .loc 1 338 57 view .LVU402 1356 0024 334B ldr r3, .L133+4 1357 0026 0B44 add r3, r3, r1 338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #else 1358 .loc 1 338 5 view .LVU403 1359 0028 B3F5806F cmp r3, #1024 1360 002c 28BF it cs 1361 002e B2F5801F cmpcs r2, #1048576 1362 0032 11D3 bcc .L126 348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1363 .loc 1 348 8 is_stmt 1 view .LVU404 348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1364 .loc 1 348 11 is_stmt 0 view .LVU405 1365 0034 A1F10163 sub r3, r1, #135266304 348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1366 .loc 1 348 10 view .LVU406 1367 0038 B3F5801F cmp r3, #1048576 1368 003c 55D2 bcs .L127 350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1369 .loc 1 350 10 view .LVU407 1370 003e 4FF00209 mov r9, #2 1371 .L117: 1372 .LVL99: 359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1373 .loc 1 359 3 is_stmt 1 view .LVU408 359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1374 .loc 1 359 12 is_stmt 0 view .LVU409 1375 0042 4946 mov r1, r9 1376 .LVL100: 359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 67 1377 .loc 1 359 12 view .LVU410 1378 0044 4CF25030 movw r0, #50000 1379 .LVL101: 359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1380 .loc 1 359 12 view .LVU411 1381 0048 FFF7FEFF bl FLASH_WaitForLastOperation 1382 .LVL102: 361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1383 .loc 1 361 3 is_stmt 1 view .LVU412 361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1384 .loc 1 361 6 is_stmt 0 view .LVU413 1385 004c 38B1 cbz r0, .L118 364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1386 .loc 1 364 5 is_stmt 1 view .LVU414 364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1387 .loc 1 364 5 view .LVU415 1388 004e 284B ldr r3, .L133 1389 0050 0022 movs r2, #0 1390 0052 1A75 strb r2, [r3, #20] 364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1391 .loc 1 364 5 view .LVU416 1392 .LVL103: 1393 .L116: 469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1394 .loc 1 469 1 is_stmt 0 view .LVU417 1395 0054 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 1396 .LVL104: 1397 .L126: 343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */ 1398 .loc 1 343 10 view .LVU418 1399 0058 4FF00109 mov r9, #1 1400 005c F1E7 b .L117 1401 .LVL105: 1402 .L118: 368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1403 .loc 1 368 5 is_stmt 1 view .LVU419 368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1404 .loc 1 368 20 is_stmt 0 view .LVU420 1405 005e 244B ldr r3, .L133 1406 0060 1C61 str r4, [r3, #16] 371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1407 .loc 1 371 5 is_stmt 1 view .LVU421 371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1408 .loc 1 371 7 is_stmt 0 view .LVU422 1409 0062 B9F1010F cmp r9, #1 1410 0066 24D0 beq .L130 401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1411 .loc 1 401 7 is_stmt 1 view .LVU423 401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1412 .loc 1 401 31 is_stmt 0 view .LVU424 1413 0068 214B ldr r3, .L133 1414 006a 0622 movs r2, #6 1415 006c 1A70 strb r2, [r3] 404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1416 .loc 1 404 7 is_stmt 1 view .LVU425 1417 006e 224B ldr r3, .L133+8 1418 0070 D3F80C21 ldr r2, [r3, #268] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 68 1419 0074 42F00202 orr r2, r2, #2 1420 0078 C3F80C21 str r2, [r3, #268] 411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_IT_STRBERR_BANK2 | FLASH_IT_INCERR_BANK2); 1421 .loc 1 411 7 view .LVU426 1422 007c D3F80C21 ldr r2, [r3, #268] 1423 0080 42F43C12 orr r2, r2, #3080192 1424 0084 C3F80C21 str r2, [r3, #268] 1425 .L122: 442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __DSB(); 1426 .loc 1 442 5 view .LVU427 1427 .LBB26: 1428 .LBI26: 933:Drivers/CMSIS/Include/cmsis_gcc.h **** { 1429 .loc 2 933 27 view .LVU428 1430 .LBB27: 935:Drivers/CMSIS/Include/cmsis_gcc.h **** } 1431 .loc 2 935 3 view .LVU429 1432 .syntax unified 1433 @ 935 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 1434 0088 BFF36F8F isb 0xF 1435 @ 0 "" 2 1436 .thumb 1437 .syntax unified 1438 .LBE27: 1439 .LBE26: 443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1440 .loc 1 443 5 view .LVU430 1441 .LBB28: 1442 .LBI28: 944:Drivers/CMSIS/Include/cmsis_gcc.h **** { 1443 .loc 2 944 27 view .LVU431 1444 .LBB29: 1445 .loc 2 946 3 view .LVU432 1446 .syntax unified 1447 @ 946 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 1448 008c BFF34F8F dsb 0xF 1449 @ 0 "" 2 1450 .thumb 1451 .syntax unified 1452 .LBE29: 1453 .LBE28: 446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1454 .loc 1 446 5 view .LVU433 446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1455 .loc 1 446 8 is_stmt 0 view .LVU434 1456 0090 B8F1020F cmp r8, #2 1457 0094 23D0 beq .L131 325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1458 .loc 1 325 11 view .LVU435 1459 0096 0423 movs r3, #4 1460 .LVL106: 1461 .L123: 455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1462 .loc 1 455 7 is_stmt 1 view .LVU436 457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** dest_addr++; 1463 .loc 1 457 9 view .LVU437 457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** dest_addr++; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 69 1464 .loc 1 457 22 is_stmt 0 view .LVU438 1465 0098 57F8042B ldr r2, [r7], #4 1466 .LVL107: 457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** dest_addr++; 1467 .loc 1 457 20 view .LVU439 1468 009c 46F8042B str r2, [r6], #4 1469 .LVL108: 458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** src_addr++; 1470 .loc 1 458 9 is_stmt 1 view .LVU440 459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** row_index--; 1471 .loc 1 459 9 view .LVU441 460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } while (row_index != 0U); 1472 .loc 1 460 9 view .LVU442 460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } while (row_index != 0U); 1473 .loc 1 460 18 is_stmt 0 view .LVU443 1474 00a0 013B subs r3, r3, #1 1475 .LVL109: 461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1476 .loc 1 461 26 is_stmt 1 discriminator 1 view .LVU444 1477 00a2 13F0FF03 ands r3, r3, #255 1478 .LVL110: 461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1479 .loc 1 461 26 is_stmt 0 discriminator 1 view .LVU445 1480 00a6 F7D1 bne .L123 1481 .LVL111: 1482 .L124: 464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __DSB(); 1483 .loc 1 464 5 is_stmt 1 view .LVU446 1484 .LBB30: 1485 .LBI30: 933:Drivers/CMSIS/Include/cmsis_gcc.h **** { 1486 .loc 2 933 27 view .LVU447 1487 .LBB31: 935:Drivers/CMSIS/Include/cmsis_gcc.h **** } 1488 .loc 2 935 3 view .LVU448 1489 .syntax unified 1490 @ 935 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 1491 00a8 BFF36F8F isb 0xF 1492 @ 0 "" 2 1493 .thumb 1494 .syntax unified 1495 .LBE31: 1496 .LBE30: 465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1497 .loc 1 465 5 view .LVU449 1498 .LBB32: 1499 .LBI32: 944:Drivers/CMSIS/Include/cmsis_gcc.h **** { 1500 .loc 2 944 27 view .LVU450 1501 .LBB33: 1502 .loc 2 946 3 view .LVU451 1503 .syntax unified 1504 @ 946 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 1505 00ac BFF34F8F dsb 0xF 1506 @ 0 "" 2 947:Drivers/CMSIS/Include/cmsis_gcc.h **** } 1507 .loc 2 947 1 is_stmt 0 view .LVU452 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 70 1508 .thumb 1509 .syntax unified 1510 00b0 D0E7 b .L116 1511 .LVL112: 1512 .L130: 1513 .loc 2 947 1 view .LVU453 1514 .LBE33: 1515 .LBE32: 374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1516 .loc 1 374 7 is_stmt 1 view .LVU454 374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1517 .loc 1 374 31 is_stmt 0 view .LVU455 1518 00b2 0322 movs r2, #3 1519 00b4 1A70 strb r2, [r3] 377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1520 .loc 1 377 7 is_stmt 1 view .LVU456 377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1521 .loc 1 377 10 is_stmt 0 view .LVU457 1522 00b6 B8F1020F cmp r8, #2 1523 00ba 0AD0 beq .L132 386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1524 .loc 1 386 9 is_stmt 1 view .LVU458 1525 00bc 0E4A ldr r2, .L133+8 1526 00be D368 ldr r3, [r2, #12] 1527 00c0 43F00203 orr r3, r3, #2 1528 00c4 D360 str r3, [r2, #12] 1529 .L121: 394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH_IT_STRBERR_BANK1 | FLASH_IT_INCERR_BANK1); 1530 .loc 1 394 7 view .LVU459 1531 00c6 0C4A ldr r2, .L133+8 1532 00c8 D368 ldr r3, [r2, #12] 1533 00ca 43F43C13 orr r3, r3, #3080192 1534 00ce D360 str r3, [r2, #12] 1535 00d0 DAE7 b .L122 1536 .L132: 380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1537 .loc 1 380 9 view .LVU460 1538 00d2 094A ldr r2, .L133+8 1539 00d4 9369 ldr r3, [r2, #24] 1540 00d6 43F02003 orr r3, r3, #32 1541 00da 9361 str r3, [r2, #24] 1542 00dc F3E7 b .L121 1543 .L131: 449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1544 .loc 1 449 7 view .LVU461 449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1545 .loc 1 449 40 is_stmt 0 view .LVU462 1546 00de 2B88 ldrh r3, [r5] 1547 00e0 9BB2 uxth r3, r3 449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1548 .loc 1 449 38 view .LVU463 1549 00e2 2380 strh r3, [r4] @ movhi 1550 00e4 E0E7 b .L124 1551 .LVL113: 1552 .L125: 332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1553 .loc 1 332 3 discriminator 1 view .LVU464 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 71 1554 00e6 0220 movs r0, #2 1555 .LVL114: 332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1556 .loc 1 332 3 discriminator 1 view .LVU465 1557 00e8 B4E7 b .L116 1558 .LVL115: 1559 .L127: 355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1560 .loc 1 355 12 view .LVU466 1561 00ea 0120 movs r0, #1 1562 .LVL116: 355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1563 .loc 1 355 12 view .LVU467 1564 00ec B2E7 b .L116 1565 .L134: 1566 00ee 00BF .align 2 1567 .L133: 1568 00f0 00000000 .word pFlash 1569 00f4 001000F7 .word -150990848 1570 00f8 00200052 .word 1375739904 1571 .cfi_endproc 1572 .LFE336: 1574 .section .text.FLASH_OB_WaitForLastOperation,"ax",%progbits 1575 .align 1 1576 .global FLASH_OB_WaitForLastOperation 1577 .syntax unified 1578 .thumb 1579 .thumb_func 1581 FLASH_OB_WaitForLastOperation: 1582 .LVL117: 1583 .LFB347: 1148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** 1150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @brief Wait for a FLASH Option Bytes change operation to complete. 1151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @param Timeout maximum flash operation timeout 1152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @retval HAL_StatusTypeDef HAL Status 1153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 1154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_StatusTypeDef FLASH_OB_WaitForLastOperation(uint32_t Timeout) 1155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1584 .loc 1 1155 1 is_stmt 1 view -0 1585 .cfi_startproc 1586 @ args = 0, pretend = 0, frame = 0 1587 @ frame_needed = 0, uses_anonymous_args = 0 1588 .loc 1 1155 1 is_stmt 0 view .LVU469 1589 0000 38B5 push {r3, r4, r5, lr} 1590 .cfi_def_cfa_offset 16 1591 .cfi_offset 3, -16 1592 .cfi_offset 4, -12 1593 .cfi_offset 5, -8 1594 .cfi_offset 14, -4 1595 0002 0446 mov r4, r0 1156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Get timeout */ 1157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** uint32_t tickstart = HAL_GetTick(); 1596 .loc 1 1157 3 is_stmt 1 view .LVU470 1597 .loc 1 1157 24 is_stmt 0 view .LVU471 1598 0004 FFF7FEFF bl HAL_GetTick 1599 .LVL118: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 72 1600 .loc 1 1157 24 view .LVU472 1601 0008 0546 mov r5, r0 1602 .LVL119: 1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Wait for the FLASH Option Bytes change operation to complete by polling on OPT_BUSY flag to be 1160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** while(READ_BIT(FLASH->OPTSR_CUR, FLASH_OPTSR_OPT_BUSY) != 0U) 1603 .loc 1 1160 3 is_stmt 1 view .LVU473 1604 .L137: 1605 .loc 1 1160 58 view .LVU474 1606 .loc 1 1160 9 is_stmt 0 view .LVU475 1607 000a 134B ldr r3, .L146 1608 000c DB69 ldr r3, [r3, #28] 1609 .loc 1 1160 58 view .LVU476 1610 000e 13F0010F tst r3, #1 1611 0012 0BD0 beq .L144 1161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(Timeout != HAL_MAX_DELAY) 1612 .loc 1 1162 5 is_stmt 1 view .LVU477 1613 .loc 1 1162 7 is_stmt 0 view .LVU478 1614 0014 B4F1FF3F cmp r4, #-1 1615 0018 F7D0 beq .L137 1163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 1616 .loc 1 1164 7 is_stmt 1 view .LVU479 1617 .loc 1 1164 12 is_stmt 0 view .LVU480 1618 001a FFF7FEFF bl HAL_GetTick 1619 .LVL120: 1620 .loc 1 1164 26 discriminator 1 view .LVU481 1621 001e 401B subs r0, r0, r5 1622 .loc 1 1164 9 discriminator 1 view .LVU482 1623 0020 A042 cmp r0, r4 1624 0022 16D8 bhi .L140 1625 .loc 1 1164 50 discriminator 1 view .LVU483 1626 0024 002C cmp r4, #0 1627 0026 F0D1 bne .L137 1165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_TIMEOUT; 1628 .loc 1 1166 16 view .LVU484 1629 0028 0320 movs r0, #3 1630 002a 05E0 b .L138 1631 .L144: 1167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Check option byte change error */ 1172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(READ_BIT(FLASH->OPTSR_CUR, FLASH_OPTSR_OPTCHANGEERR) != 0U) 1632 .loc 1 1172 3 is_stmt 1 view .LVU485 1633 .loc 1 1172 6 is_stmt 0 view .LVU486 1634 002c 0A4B ldr r3, .L146 1635 002e DB69 ldr r3, [r3, #28] 1636 .loc 1 1172 5 view .LVU487 1637 0030 13F0804F tst r3, #1073741824 1638 0034 01D1 bne .L145 1173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Save the error code */ 1175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_OB_CHANGE; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 73 1176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear the OB error flag */ 1178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** FLASH->OPTCCR |= FLASH_OPTCCR_CLR_OPTCHANGEERR; 1179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_ERROR; 1181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* If there is no error flag set */ 1184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_OK; 1639 .loc 1 1184 10 view .LVU488 1640 0036 0020 movs r0, #0 1641 .L138: 1185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1642 .loc 1 1185 1 view .LVU489 1643 0038 38BD pop {r3, r4, r5, pc} 1644 .LVL121: 1645 .L145: 1175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1646 .loc 1 1175 5 is_stmt 1 view .LVU490 1175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1647 .loc 1 1175 11 is_stmt 0 view .LVU491 1648 003a 084A ldr r2, .L146+4 1649 003c 9369 ldr r3, [r2, #24] 1175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1650 .loc 1 1175 22 view .LVU492 1651 003e 43F08043 orr r3, r3, #1073741824 1652 0042 9361 str r3, [r2, #24] 1178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1653 .loc 1 1178 5 is_stmt 1 view .LVU493 1178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1654 .loc 1 1178 10 is_stmt 0 view .LVU494 1655 0044 044A ldr r2, .L146 1656 0046 536A ldr r3, [r2, #36] 1178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1657 .loc 1 1178 19 view .LVU495 1658 0048 43F08043 orr r3, r3, #1073741824 1659 004c 5362 str r3, [r2, #36] 1180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1660 .loc 1 1180 5 is_stmt 1 view .LVU496 1180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1661 .loc 1 1180 12 is_stmt 0 view .LVU497 1662 004e 0120 movs r0, #1 1663 0050 F2E7 b .L138 1664 .L140: 1166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1665 .loc 1 1166 16 view .LVU498 1666 0052 0320 movs r0, #3 1667 0054 F0E7 b .L138 1668 .L147: 1669 0056 00BF .align 2 1670 .L146: 1671 0058 00200052 .word 1375739904 1672 005c 00000000 .word pFlash 1673 .cfi_endproc 1674 .LFE347: 1676 .section .text.FLASH_CRC_WaitForLastOperation,"ax",%progbits 1677 .align 1 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 74 1678 .global FLASH_CRC_WaitForLastOperation 1679 .syntax unified 1680 .thumb 1681 .thumb_func 1683 FLASH_CRC_WaitForLastOperation: 1684 .LVL122: 1685 .LFB348: 1186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /** 1188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @brief Wait for a FLASH CRC computation to complete. 1189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @param Timeout maximum flash operation timeout 1190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @param Bank flash FLASH_BANK_1 or FLASH_BANK_2 1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** * @retval HAL_StatusTypeDef HAL Status 1192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** */ 1193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_StatusTypeDef FLASH_CRC_WaitForLastOperation(uint32_t Timeout, uint32_t Bank) 1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1686 .loc 1 1194 1 is_stmt 1 view -0 1687 .cfi_startproc 1688 @ args = 0, pretend = 0, frame = 0 1689 @ frame_needed = 0, uses_anonymous_args = 0 1690 .loc 1 1194 1 is_stmt 0 view .LVU500 1691 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 1692 .cfi_def_cfa_offset 24 1693 .cfi_offset 3, -24 1694 .cfi_offset 4, -20 1695 .cfi_offset 5, -16 1696 .cfi_offset 6, -12 1697 .cfi_offset 7, -8 1698 .cfi_offset 14, -4 1699 0002 0546 mov r5, r0 1700 0004 0E46 mov r6, r1 1195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** uint32_t bsyflag; 1701 .loc 1 1195 3 is_stmt 1 view .LVU501 1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** uint32_t tickstart = HAL_GetTick(); 1702 .loc 1 1196 3 view .LVU502 1703 .loc 1 1196 24 is_stmt 0 view .LVU503 1704 0006 FFF7FEFF bl HAL_GetTick 1705 .LVL123: 1706 .loc 1 1196 24 view .LVU504 1707 000a 0746 mov r7, r0 1708 .LVL124: 1197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** assert_param(IS_FLASH_BANK_EXCLUSIVE(Bank)); 1709 .loc 1 1198 3 is_stmt 1 view .LVU505 1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Select bsyflag depending on Bank */ 1201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(Bank == FLASH_BANK_1) 1710 .loc 1 1201 3 view .LVU506 1711 .loc 1 1201 5 is_stmt 0 view .LVU507 1712 000c 012E cmp r6, #1 1713 000e 09D0 beq .L149 1202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** bsyflag = FLASH_FLAG_CRC_BUSY_BANK1; 1204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 1206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** bsyflag = FLASH_FLAG_CRC_BUSY_BANK2; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 75 1714 .loc 1 1207 13 view .LVU508 1715 0010 264C ldr r4, .L168 1716 0012 17E0 b .L151 1717 .LVL125: 1718 .L164: 1208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Wait for the FLASH CRC computation to complete by polling on CRC_BUSY flag to be reset */ 1211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** while(__HAL_FLASH_GET_FLAG(bsyflag)) 1212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(Timeout != HAL_MAX_DELAY) 1214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 1719 .loc 1 1215 7 is_stmt 1 view .LVU509 1720 .loc 1 1215 12 is_stmt 0 view .LVU510 1721 0014 FFF7FEFF bl HAL_GetTick 1722 .LVL126: 1723 .loc 1 1215 26 discriminator 1 view .LVU511 1724 0018 C01B subs r0, r0, r7 1725 .loc 1 1215 9 discriminator 1 view .LVU512 1726 001a A842 cmp r0, r5 1727 001c 44D8 bhi .L158 1728 .loc 1 1215 50 discriminator 1 view .LVU513 1729 001e 8DB9 cbnz r5, .L151 1216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_TIMEOUT; 1730 .loc 1 1217 16 view .LVU514 1731 0020 0320 movs r0, #3 1732 0022 22E0 b .L152 1733 .LVL127: 1734 .L149: 1203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1735 .loc 1 1203 13 view .LVU515 1736 0024 0824 movs r4, #8 1737 0026 0DE0 b .L151 1738 .LVL128: 1739 .L154: 1211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1740 .loc 1 1211 9 discriminator 2 view .LVU516 1741 0028 214B ldr r3, .L168+4 1742 002a D3F81031 ldr r3, [r3, #272] 1743 002e 24EA0303 bic r3, r4, r3 1744 0032 23F00043 bic r3, r3, #-2147483648 1745 0036 B3FA83F3 clz r3, r3 1746 003a 5B09 lsrs r3, r3, #5 1747 .L155: 1211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1748 .loc 1 1211 9 discriminator 4 view .LVU517 1749 003c 63B1 cbz r3, .L163 1213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1750 .loc 1 1213 5 is_stmt 1 view .LVU518 1213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1751 .loc 1 1213 7 is_stmt 0 view .LVU519 1752 003e B5F1FF3F cmp r5, #-1 1753 0042 E7D1 bne .L164 1754 .LVL129: 1755 .L151: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 76 1211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1756 .loc 1 1211 9 is_stmt 1 view .LVU520 1757 0044 002C cmp r4, #0 1758 0046 EFDB blt .L154 1211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1759 .loc 1 1211 9 is_stmt 0 discriminator 1 view .LVU521 1760 0048 194B ldr r3, .L168+4 1761 004a 1B69 ldr r3, [r3, #16] 1762 004c 34EA0303 bics r3, r4, r3 1763 0050 0CBF ite eq 1764 0052 0123 moveq r3, #1 1765 0054 0023 movne r3, #0 1766 0056 F1E7 b .L155 1767 .L163: 1218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Check FLASH CRC read error flag */ 1223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if(Bank == FLASH_BANK_1) 1768 .loc 1 1223 3 is_stmt 1 view .LVU522 1769 .loc 1 1223 5 is_stmt 0 view .LVU523 1770 0058 012E cmp r6, #1 1771 005a 07D0 beq .L165 1224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG_BANK1(FLASH_FLAG_CRCRDERR_BANK1)) 1226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Save the error code */ 1228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_CRCRD_BANK1; 1229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear FLASH CRC read error pending bit */ 1231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG_BANK1(FLASH_FLAG_CRCRDERR_BANK1); 1232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_ERROR; 1234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #if defined (DUAL_BANK) 1237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** else 1238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG_BANK2(FLASH_FLAG_CRCRDERR_BANK2)) 1772 .loc 1 1239 5 is_stmt 1 view .LVU524 1773 .loc 1 1239 9 is_stmt 0 view .LVU525 1774 005c 144B ldr r3, .L168+4 1775 005e D3F81031 ldr r3, [r3, #272] 1776 .loc 1 1239 8 view .LVU526 1777 0062 13F0805F tst r3, #268435456 1778 0066 13D1 bne .L166 1240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Save the error code */ 1242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_CRCRD_BANK2; 1243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* Clear FLASH CRC read error pending bit */ 1245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG_BANK2(FLASH_FLAG_CRCRDERR_BANK2); 1246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_ERROR; 1248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 77 1250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** #endif /* DUAL_BANK */ 1251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** /* If there is no error flag set */ 1253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** return HAL_OK; 1779 .loc 1 1253 10 view .LVU527 1780 0068 0020 movs r0, #0 1781 .L152: 1254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1782 .loc 1 1254 1 view .LVU528 1783 006a F8BD pop {r3, r4, r5, r6, r7, pc} 1784 .LVL130: 1785 .L165: 1225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1786 .loc 1 1225 5 is_stmt 1 view .LVU529 1225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1787 .loc 1 1225 9 is_stmt 0 view .LVU530 1788 006c 104B ldr r3, .L168+4 1789 006e 1B69 ldr r3, [r3, #16] 1225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1790 .loc 1 1225 8 view .LVU531 1791 0070 13F0805F tst r3, #268435456 1792 0074 01D1 bne .L167 1253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1793 .loc 1 1253 10 view .LVU532 1794 0076 0020 movs r0, #0 1795 0078 F7E7 b .L152 1796 .L167: 1228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1797 .loc 1 1228 7 is_stmt 1 view .LVU533 1228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1798 .loc 1 1228 13 is_stmt 0 view .LVU534 1799 007a 0E4A ldr r2, .L168+8 1800 007c 9369 ldr r3, [r2, #24] 1228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1801 .loc 1 1228 24 view .LVU535 1802 007e 43F08053 orr r3, r3, #268435456 1803 0082 9361 str r3, [r2, #24] 1231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1804 .loc 1 1231 7 is_stmt 1 view .LVU536 1805 0084 0A4B ldr r3, .L168+4 1806 0086 4FF08052 mov r2, #268435456 1807 008a 5A61 str r2, [r3, #20] 1233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1808 .loc 1 1233 7 view .LVU537 1233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1809 .loc 1 1233 14 is_stmt 0 view .LVU538 1810 008c 0120 movs r0, #1 1811 008e ECE7 b .L152 1812 .L166: 1242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1813 .loc 1 1242 7 is_stmt 1 view .LVU539 1242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1814 .loc 1 1242 13 is_stmt 0 view .LVU540 1815 0090 084A ldr r2, .L168+8 1816 0092 9369 ldr r3, [r2, #24] 1242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1817 .loc 1 1242 24 view .LVU541 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 78 1818 0094 43F01043 orr r3, r3, #-1879048192 1819 0098 9361 str r3, [r2, #24] 1245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1820 .loc 1 1245 7 is_stmt 1 view .LVU542 1821 009a 054B ldr r3, .L168+4 1822 009c 4FF08052 mov r2, #268435456 1823 00a0 C3F81421 str r2, [r3, #276] 1247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1824 .loc 1 1247 7 view .LVU543 1247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1825 .loc 1 1247 14 is_stmt 0 view .LVU544 1826 00a4 0120 movs r0, #1 1827 00a6 E0E7 b .L152 1828 .L158: 1217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1829 .loc 1 1217 16 view .LVU545 1830 00a8 0320 movs r0, #3 1831 00aa DEE7 b .L152 1832 .L169: 1833 .align 2 1834 .L168: 1835 00ac 08000080 .word -2147483640 1836 00b0 00200052 .word 1375739904 1837 00b4 00000000 .word pFlash 1838 .cfi_endproc 1839 .LFE348: 1841 .section .text.HAL_FLASH_OB_Launch,"ax",%progbits 1842 .align 1 1843 .global HAL_FLASH_OB_Launch 1844 .syntax unified 1845 .thumb 1846 .thumb_func 1848 HAL_FLASH_OB_Launch: 1849 .LFB344: 968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** HAL_StatusTypeDef status; 1850 .loc 1 968 1 is_stmt 1 view -0 1851 .cfi_startproc 1852 @ args = 0, pretend = 0, frame = 0 1853 @ frame_needed = 0, uses_anonymous_args = 0 1854 0000 08B5 push {r3, lr} 1855 .cfi_def_cfa_offset 8 1856 .cfi_offset 3, -8 1857 .cfi_offset 14, -4 969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1858 .loc 1 969 3 view .LVU547 972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1859 .loc 1 972 3 view .LVU548 972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1860 .loc 1 972 7 is_stmt 0 view .LVU549 1861 0002 0121 movs r1, #1 1862 0004 4CF25030 movw r0, #50000 1863 0008 FFF7FEFF bl FLASH_CRC_WaitForLastOperation 1864 .LVL131: 972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1865 .loc 1 972 6 discriminator 1 view .LVU550 1866 000c 08B1 cbz r0, .L175 974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 79 1867 .loc 1 974 12 view .LVU551 1868 000e 0120 movs r0, #1 1869 .L171: 1870 .LVL132: 996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1871 .loc 1 996 3 is_stmt 1 view .LVU552 997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1872 .loc 1 997 1 is_stmt 0 view .LVU553 1873 0010 08BD pop {r3, pc} 1874 .LVL133: 1875 .L175: 977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1876 .loc 1 977 8 is_stmt 1 view .LVU554 977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1877 .loc 1 977 12 is_stmt 0 view .LVU555 1878 0012 0221 movs r1, #2 1879 0014 4CF25030 movw r0, #50000 1880 0018 FFF7FEFF bl FLASH_CRC_WaitForLastOperation 1881 .LVL134: 977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1882 .loc 1 977 11 discriminator 1 view .LVU556 1883 001c 08B1 cbz r0, .L176 979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1884 .loc 1 979 12 view .LVU557 1885 001e 0120 movs r0, #1 1886 0020 F6E7 b .L171 1887 .L176: 984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1888 .loc 1 984 5 is_stmt 1 view .LVU558 1889 .LVL135: 987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** { 1890 .loc 1 987 3 view .LVU559 990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** 1891 .loc 1 990 5 view .LVU560 1892 0022 054A ldr r2, .L177 1893 0024 9369 ldr r3, [r2, #24] 1894 0026 43F00203 orr r3, r3, #2 1895 002a 9361 str r3, [r2, #24] 993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1896 .loc 1 993 5 view .LVU561 993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1897 .loc 1 993 14 is_stmt 0 view .LVU562 1898 002c 4CF25030 movw r0, #50000 1899 0030 FFF7FEFF bl FLASH_OB_WaitForLastOperation 1900 .LVL136: 993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash.c **** } 1901 .loc 1 993 14 view .LVU563 1902 0034 ECE7 b .L171 1903 .L178: 1904 0036 00BF .align 2 1905 .L177: 1906 0038 00200052 .word 1375739904 1907 .cfi_endproc 1908 .LFE344: 1910 .global pFlash 1911 .section .bss.pFlash,"aw",%nobits 1912 .align 2 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 80 1915 pFlash: 1916 0000 00000000 .space 28 1916 00000000 1916 00000000 1916 00000000 1916 00000000 1917 .text 1918 .Letext0: 1919 .file 3 "C:/Users/lenex/AppData/Roaming/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-to 1920 .file 4 "C:/Users/lenex/AppData/Roaming/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-to 1921 .file 5 "Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7a3xx.h" 1922 .file 6 "Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h" 1923 .file 7 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h" 1924 .file 8 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h" 1925 .file 9 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h" 1926 .file 10 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h" ARM GAS C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s page 81 DEFINED SYMBOLS *ABS*:00000000 stm32h7xx_hal_flash.c C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:20 .text.HAL_FLASH_EndOfOperationCallback:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:26 .text.HAL_FLASH_EndOfOperationCallback:00000000 HAL_FLASH_EndOfOperationCallback C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:41 .text.HAL_FLASH_OperationErrorCallback:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:47 .text.HAL_FLASH_OperationErrorCallback:00000000 HAL_FLASH_OperationErrorCallback C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:62 .text.HAL_FLASH_IRQHandler:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:68 .text.HAL_FLASH_IRQHandler:00000000 HAL_FLASH_IRQHandler C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:529 .text.HAL_FLASH_IRQHandler:000001ec $d C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:1915 .bss.pFlash:00000000 pFlash C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:535 .text.HAL_FLASH_Unlock:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:541 .text.HAL_FLASH_Unlock:00000000 HAL_FLASH_Unlock C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:608 .text.HAL_FLASH_Unlock:00000054 $d C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:614 .text.HAL_FLASH_Lock:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:620 .text.HAL_FLASH_Lock:00000000 HAL_FLASH_Lock C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:664 .text.HAL_FLASH_Lock:00000038 $d C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:669 .text.HAL_FLASH_OB_Unlock:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:675 .text.HAL_FLASH_OB_Unlock:00000000 HAL_FLASH_OB_Unlock C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:716 .text.HAL_FLASH_OB_Unlock:0000002c $d C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:722 .text.HAL_FLASH_OB_Lock:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:728 .text.HAL_FLASH_OB_Lock:00000000 HAL_FLASH_OB_Lock C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:757 .text.HAL_FLASH_OB_Lock:0000001c $d C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:762 .text.HAL_FLASH_GetError:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:768 .text.HAL_FLASH_GetError:00000000 HAL_FLASH_GetError C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:784 .text.HAL_FLASH_GetError:00000008 $d C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:789 .text.FLASH_WaitForLastOperation:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:795 .text.FLASH_WaitForLastOperation:00000000 FLASH_WaitForLastOperation C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:1002 .text.FLASH_WaitForLastOperation:000000e8 $d C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:1009 .text.HAL_FLASH_Program:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:1015 .text.HAL_FLASH_Program:00000000 HAL_FLASH_Program C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:1291 .text.HAL_FLASH_Program:00000100 $d C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:1298 .text.HAL_FLASH_Program_IT:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:1304 .text.HAL_FLASH_Program_IT:00000000 HAL_FLASH_Program_IT C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:1568 .text.HAL_FLASH_Program_IT:000000f0 $d C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:1575 .text.FLASH_OB_WaitForLastOperation:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:1581 .text.FLASH_OB_WaitForLastOperation:00000000 FLASH_OB_WaitForLastOperation C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:1671 .text.FLASH_OB_WaitForLastOperation:00000058 $d C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:1677 .text.FLASH_CRC_WaitForLastOperation:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:1683 .text.FLASH_CRC_WaitForLastOperation:00000000 FLASH_CRC_WaitForLastOperation C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:1835 .text.FLASH_CRC_WaitForLastOperation:000000ac $d C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:1842 .text.HAL_FLASH_OB_Launch:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:1848 .text.HAL_FLASH_OB_Launch:00000000 HAL_FLASH_OB_Launch C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:1906 .text.HAL_FLASH_OB_Launch:00000038 $d C:\Users\lenex\AppData\Local\Temp\cc7Zf4wj.s:1912 .bss.pFlash:00000000 $d UNDEFINED SYMBOLS FLASH_Erase_Sector HAL_GetTick