ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.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_ex.c" 15 .text 16 .Ltext0: 17 .cfi_sections .debug_frame 18 .file 1 "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c" 19 .section .text.FLASH_MassErase,"ax",%progbits 20 .align 1 21 .syntax unified 22 .thumb 23 .thumb_func 25 FLASH_MassErase: 26 .LVL0: 27 .LFB344: 1:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 2:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** ****************************************************************************** 3:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @file stm32h7xx_hal_flash_ex.c 4:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @author MCD Application Team 5:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Extended FLASH HAL module driver. 6:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * functionalities of the FLASH extension peripheral: 8:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * + Extended programming operations functions 9:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 10:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** @verbatim 11:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** ============================================================================== 12:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** ##### Flash Extension features ##### 13:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** ============================================================================== 14:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 15:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** [..] Comparing to other previous devices, the FLASH interface for STM32H7xx 16:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** devices contains the following additional features 17:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 18:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (+) Capacity up to 2 Mbyte with dual bank architecture supporting read-while-write 19:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** capability (RWW) 20:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (+) Dual bank memory organization 21:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (+) PCROP protection for all banks 22:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (+) Global readout protection (RDP) 23:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (+) Write protection 24:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (+) Secure access only protection 25:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (+) Bank / register swapping (when Dual-Bank) 26:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (+) Cyclic Redundancy Check (CRC) 27:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 28:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** ##### How to use this driver ##### 29:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** ============================================================================== 30:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** [..] This driver provides functions to configure and program the FLASH memory 31:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** of all STM32H7xx devices. It includes ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 2 32:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (#) FLASH Memory Erase functions: 33:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) Lock and Unlock the FLASH interface using HAL_FLASH_Unlock() and 34:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_FLASH_Lock() functions 35:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) Erase function: Sector erase, bank erase and dual-bank mass erase 36:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) There are two modes of erase : 37:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (+++) Polling Mode using HAL_FLASHEx_Erase() 38:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (+++) Interrupt Mode using HAL_FLASHEx_Erase_IT() 39:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 40:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (#) Option Bytes Programming functions: Use HAL_FLASHEx_OBProgram() to: 41:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) Set/Reset the write protection per bank 42:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) Set the Read protection Level 43:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) Set the BOR level 44:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) Program the user Option Bytes 45:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) PCROP protection configuration and control per bank 46:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) Secure area configuration and control per bank 47:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) Core Boot address configuration 48:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) TCM / AXI shared RAM configuration 49:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) CPU Frequency Boost configuration 50:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 51:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (#) FLASH Memory Lock and unlock per Bank: HAL_FLASHEx_Lock_Bank1(), HAL_FLASHEx_Unlock_Bank1 52:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_FLASHEx_Lock_Bank2() and HAL_FLASHEx_Unlock_Bank2() functions 53:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 54:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (#) FLASH CRC computation function: Use HAL_FLASHEx_ComputeCRC() to: 55:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) Enable CRC feature 56:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) Program the desired burst size 57:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) Define the user Flash Area on which the CRC has be computed 58:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) Perform the CRC computation 59:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) Disable CRC feature 60:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 61:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (#) Error correction code error functions: 62:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) Use the HAL_FLASHEx_EnableEccCorrectionInterrupt() and HAL_FLASHEx_DisableEccCorrect 63:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** functions to enable and disable the FLASH ECC correction interruption. 64:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) Use the HAL_FLASHEx_EnableEccDetectionInterrupt() and HAL_FLASHEx_DisableEccDetectio 65:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** functions to enable and disable the FLASH ECC Detection interruption. 66:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) Handle ECCD interrupt by calling HAL_FLASHEx_BusFault_IRQHandler() 67:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) Use HAL_FLASHEx_BusFault_IRQHandler() function called under BusFault_IRQHandler() in 68:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** to handle the ECCD interrupt. 69:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (++) Use HAL_FLASHEx_GetEccInfo() function to get the flash ECC fail information. 70:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 71:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** @endverbatim 72:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** ****************************************************************************** 73:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @attention 74:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 75:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * Copyright (c) 2017 STMicroelectronics. 76:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * All rights reserved. 77:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 78:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This software is licensed under terms that can be found in the LICENSE file in 79:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * the root directory of this software component. 80:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 81:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** ****************************************************************************** 82:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 83:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 84:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Includes ------------------------------------------------------------------*/ 85:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #include "stm32h7xx_hal.h" 86:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 87:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** @addtogroup STM32H7xx_HAL_Driver 88:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @{ ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 3 89:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 90:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 91:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** @defgroup FLASHEx FLASHEx 92:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief FLASH HAL Extension module driver 93:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @{ 94:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 95:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 96:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #ifdef HAL_FLASH_MODULE_ENABLED 97:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 98:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Private typedef -----------------------------------------------------------*/ 99:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Private define ------------------------------------------------------------*/ 100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** @addtogroup FLASHEx_Private_Constants 101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @{ 102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #define FLASH_TIMEOUT_VALUE 50000U /* 50 s */ 104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @} 107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Private macro -------------------------------------------------------------*/ 109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Private variables ---------------------------------------------------------*/ 110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Private function prototypes -----------------------------------------------*/ 111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Private_Functions FLASHEx Private Functions 112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @{ 113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_MassErase(uint32_t VoltageRange, uint32_t Banks); 115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_EnableWRP(uint32_t WRPSector, uint32_t Banks); 116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_DisableWRP(uint32_t WRPSector, uint32_t Bank); 117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_GetWRP(uint32_t *WRPState, uint32_t *WRPSector, uint32_t Bank); 118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_RDPConfig(uint32_t RDPLevel); 119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetRDP(void); 120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_PCROPConfig(uint32_t PCROConfigRDP, uint32_t PCROPStartAddr, uint32_t PCROPEnd 121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_GetPCROP(uint32_t *PCROPConfig, uint32_t *PCROPStartAddr,uint32_t *PCROPEndAdd 122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_BOR_LevelConfig(uint32_t Level); 123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetBOR(void); 124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_UserConfig(uint32_t UserType, uint32_t UserConfig); 125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetUser(void); 126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_BootAddConfig(uint32_t BootOption, uint32_t BootAddress0, uint32_t BootAddress 127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_GetBootAdd(uint32_t *BootAddress0, uint32_t *BootAddress1); 128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_SecureAreaConfig(uint32_t SecureAreaConfig, uint32_t SecureAreaStartAddr, uint 129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_GetSecureArea(uint32_t *SecureAreaConfig, uint32_t *SecureAreaStartAddr, uint3 130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_CRC_AddSector(uint32_t Sector, uint32_t Bank); 131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_CRC_SelectAddress(uint32_t CRCStartAddr, uint32_t CRCEndAddr, uint32_t Bank); 132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_CORE) 134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_CM4BootAddConfig(uint32_t BootOption, uint32_t BootAddress0, uint32_t BootAddr 135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_GetCM4BootAdd(uint32_t *BootAddress0, uint32_t *BootAddress1); 136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /*DUAL_CORE*/ 137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_OTPBL_LOCKBL) 139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_OTP_LockConfig(uint32_t OTP_Block); 140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static uint32_t FLASH_OB_OTP_GetLock(void); 141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OTPBL_LOCKBL */ 142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_OPTSR2_TCM_AXI_SHARED) 144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_SharedRAM_Config(uint32_t SharedRamConfig); 145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static uint32_t FLASH_OB_SharedRAM_GetConfig(void); ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 4 146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OPTSR2_TCM_AXI_SHARED */ 147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_OPTSR2_CPUFREQ_BOOST) 149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_CPUFreq_BoostConfig(uint32_t FreqBoost); 150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static uint32_t FLASH_OB_CPUFreq_GetBoost(void); 151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OPTSR2_CPUFREQ_BOOST */ 152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @} 154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Exported functions ---------------------------------------------------------*/ 157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions FLASHEx Exported Functions 158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @{ 159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions_Group1 Extended IO operation functions 162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Extended IO operation functions 163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** @verbatim 165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** =============================================================================== 166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** ##### Extended programming operation functions ##### 167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** =============================================================================== 168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** [..] 169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** This subsection provides a set of functions allowing to manage the Extension FLASH 170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** programming operations Operations. 171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** @endverbatim 173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @{ 174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Perform a mass erase or erase the specified FLASH memory sectors 177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param[in] pEraseInit pointer to an FLASH_EraseInitTypeDef structure that 178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * contains the configuration information for the erasing. 179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param[out] SectorError pointer to variable that contains the configuration 181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * information on faulty sector in case of error (0xFFFFFFFF means that all 182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * the sectors have been correctly erased) 183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status 185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *SectorError) 187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; 189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t sector_index; 190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */ 192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase)); 193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(pEraseInit->Banks)); 194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Process Locked */ 196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash); 197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Reset error code */ 199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; 200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait for last operation to be completed on Bank1 */ 202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pEraseInit->Banks & FLASH_BANK_1) == FLASH_BANK_1) ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 5 203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_1) != HAL_OK) 205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = HAL_ERROR; 207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait for last operation to be completed on Bank2 */ 212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pEraseInit->Banks & FLASH_BANK_2) == FLASH_BANK_2) 213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_2) != HAL_OK) 215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = HAL_ERROR; 217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(status == HAL_OK) 222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE) 224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Mass erase to be done */ 226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_MassErase(pEraseInit->VoltageRange, pEraseInit->Banks); 227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait for last operation to be completed on Bank 1 */ 229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pEraseInit->Banks & FLASH_BANK_1) == FLASH_BANK_1) 230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_1) != HAL_OK) 232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = HAL_ERROR; 234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* if the erase operation is completed, disable the Bank1 BER Bit */ 236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 &= (~FLASH_CR_BER); 237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait for last operation to be completed on Bank 2 */ 240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pEraseInit->Banks & FLASH_BANK_2) == FLASH_BANK_2) 241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_2) != HAL_OK) 243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = HAL_ERROR; 245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* if the erase operation is completed, disable the Bank2 BER Bit */ 247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 &= (~FLASH_CR_BER); 248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else 252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /*Initialization of SectorError variable*/ 254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *SectorError = 0xFFFFFFFFU; 255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Erase by sector by sector to be done*/ 257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** for(sector_index = pEraseInit->Sector; sector_index < (pEraseInit->NbSectors + pEraseInit->Se 258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_Erase_Sector(sector_index, pEraseInit->Banks, pEraseInit->VoltageRange); ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 6 260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pEraseInit->Banks & FLASH_BANK_1) == FLASH_BANK_1) 262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_1); 265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the SER Bit */ 267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 &= (~(FLASH_CR_SER | FLASH_CR_SNB)); 268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pEraseInit->Banks & FLASH_BANK_2) == FLASH_BANK_2) 271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_2); 274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the SER Bit */ 276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 &= (~(FLASH_CR_SER | FLASH_CR_SNB)); 277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(status != HAL_OK) 281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* In case of error, stop erase procedure and return the faulty sector */ 283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *SectorError = sector_index; 284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** break; 285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Process Unlocked */ 291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash); 292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return status; 294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Perform a mass erase or erase the specified FLASH memory sectors with interrupt enabled 298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param pEraseInit pointer to an FLASH_EraseInitTypeDef structure that 299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * contains the configuration information for the erasing. 300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status 302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Erase_IT(FLASH_EraseInitTypeDef *pEraseInit) 304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; 306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */ 308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase)); 309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(pEraseInit->Banks)); 310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Process Locked */ 312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash); 313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Reset error code */ 315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; 316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 7 317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait for last operation to be completed on Bank 1 */ 318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pEraseInit->Banks & FLASH_BANK_1) == FLASH_BANK_1) 319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_1) != HAL_OK) 321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = HAL_ERROR; 323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait for last operation to be completed on Bank 2 */ 328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pEraseInit->Banks & FLASH_BANK_2) == FLASH_BANK_2) 329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_2) != HAL_OK) 331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = HAL_ERROR; 333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if (status != HAL_OK) 338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Process Unlocked */ 340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash); 341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else 343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pEraseInit->Banks & FLASH_BANK_1) == FLASH_BANK_1) 345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Enable End of Operation and Error interrupts for Bank 1 */ 347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_CR_OPERRIE) 348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_ENABLE_IT_BANK1(FLASH_IT_EOP_BANK1 | FLASH_IT_WRPERR_BANK1 | FLASH_IT_PGSERR_ 349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_IT_STRBERR_BANK1 | FLASH_IT_INCERR_BANK1 | FLASH_IT_OPERR_B 350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else 351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_ENABLE_IT_BANK1(FLASH_IT_EOP_BANK1 | FLASH_IT_WRPERR_BANK1 | FLASH_IT_PGSERR_ 352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_IT_STRBERR_BANK1 | FLASH_IT_INCERR_BANK1); 353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_OPERRIE */ 354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pEraseInit->Banks & FLASH_BANK_2) == FLASH_BANK_2) 357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Enable End of Operation and Error interrupts for Bank 2 */ 359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_CR_OPERRIE) 360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_ENABLE_IT_BANK2(FLASH_IT_EOP_BANK2 | FLASH_IT_WRPERR_BANK2 | FLASH_IT_PGSERR_ 361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_IT_STRBERR_BANK2 | FLASH_IT_INCERR_BANK2 | FLASH_IT_OPERR_B 362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else 363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_ENABLE_IT_BANK2(FLASH_IT_EOP_BANK2 | FLASH_IT_WRPERR_BANK2 | FLASH_IT_PGSERR_ 364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_IT_STRBERR_BANK2 | FLASH_IT_INCERR_BANK2); 365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_OPERRIE */ 366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE) 370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /*Mass erase to be done*/ 372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(pEraseInit->Banks == FLASH_BANK_1) 373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 8 374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_MASSERASE_BANK1; 375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else if(pEraseInit->Banks == FLASH_BANK_2) 378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_MASSERASE_BANK2; 380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else 383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_ALLBANK_MASSERASE; 385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_MassErase(pEraseInit->VoltageRange, pEraseInit->Banks); 388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else 390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Erase by sector to be done */ 392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(pEraseInit->Banks == FLASH_BANK_1) 394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_SECTERASE_BANK1; 396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else 398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_SECTERASE_BANK2; 400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else 402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_SECTERASE_BANK1; 403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.NbSectorsToErase = pEraseInit->NbSectors; 406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.Sector = pEraseInit->Sector; 407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.VoltageForErase = pEraseInit->VoltageRange; 408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Erase first sector and wait for IT */ 410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_Erase_Sector(pEraseInit->Sector, pEraseInit->Banks, pEraseInit->VoltageRange); 411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return status; 415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Program option bytes 419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param pOBInit pointer to an FLASH_OBProgramInitTypeDef structure that 420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * contains the configuration information for the programming. 421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status 423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_OBProgram(FLASH_OBProgramInitTypeDef *pOBInit) 425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status; 427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */ 429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OPTIONBYTE(pOBInit->OptionType)); 430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 9 431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Process Locked */ 432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash); 433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Reset Error Code */ 435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE; 436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait for last operation to be completed */ 438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_1) != HAL_OK) 439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = HAL_ERROR; 441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else if(FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_2) != HAL_OK) 444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = HAL_ERROR; 446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else 449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = HAL_OK; 451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(status == HAL_OK) 454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /*Write protection configuration*/ 456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_WRP) == OPTIONBYTE_WRP) 457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_WRPSTATE(pOBInit->WRPState)); 459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(pOBInit->WRPState == OB_WRPSTATE_ENABLE) 461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /*Enable of Write protection on the selected Sector*/ 463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_EnableWRP(pOBInit->WRPSector,pOBInit->Banks); 464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else 466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /*Disable of Write protection on the selected Sector*/ 468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_DisableWRP(pOBInit->WRPSector, pOBInit->Banks); 469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Read protection configuration */ 473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_RDP) != 0U) 474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure the Read protection level */ 476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_RDPConfig(pOBInit->RDPLevel); 477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* User Configuration */ 480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_USER) != 0U) 481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure the user option bytes */ 483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_UserConfig(pOBInit->USERType, pOBInit->USERConfig); 484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* PCROP Configuration */ 487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_PCROP) != 0U) ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 10 488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(pOBInit->Banks)); 490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /*Configure the Proprietary code readout protection */ 492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_PCROPConfig(pOBInit->PCROPConfig, pOBInit->PCROPStartAddr, pOBInit->PCROPEndAddr, pO 493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* BOR Level configuration */ 496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_BOR) == OPTIONBYTE_BOR) 497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_BOR_LevelConfig(pOBInit->BORLevel); 499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE) 502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* CM7 Boot Address configuration */ 503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_CM7_BOOTADD) == OPTIONBYTE_CM7_BOOTADD) 504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_BootAddConfig(pOBInit->BootConfig, pOBInit->BootAddr0, pOBInit->BootAddr1); 506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* CM4 Boot Address configuration */ 509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_CM4_BOOTADD) == OPTIONBYTE_CM4_BOOTADD) 510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_CM4BootAddConfig(pOBInit->CM4BootConfig, pOBInit->CM4BootAddr0, pOBInit->CM4BootAddr 512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else /* Single Core*/ 514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Boot Address configuration */ 515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_BOOTADD) == OPTIONBYTE_BOOTADD) 516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_BootAddConfig(pOBInit->BootConfig, pOBInit->BootAddr0, pOBInit->BootAddr1); 518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /*DUAL_CORE*/ 520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Secure area configuration */ 522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_SECURE_AREA) == OPTIONBYTE_SECURE_AREA) 523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_SecureAreaConfig(pOBInit->SecureAreaConfig, pOBInit->SecureAreaStartAddr, pOBInit->S 525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(FLASH_OTPBL_LOCKBL) 528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* OTP Block Lock configuration */ 529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_OTP_LOCK) == OPTIONBYTE_OTP_LOCK) 530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_OTP_LockConfig(pOBInit->OTPBlockLock); 532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OTPBL_LOCKBL */ 534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(FLASH_OPTSR2_TCM_AXI_SHARED) 536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* TCM / AXI Shared RAM configuration */ 537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_SHARED_RAM) == OPTIONBYTE_SHARED_RAM) 538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_SharedRAM_Config(pOBInit->SharedRamConfig); 540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OPTSR2_TCM_AXI_SHARED */ 542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(FLASH_OPTSR2_CPUFREQ_BOOST) 544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* CPU Frequency Boost configuration */ ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 11 545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_FREQ_BOOST) == OPTIONBYTE_FREQ_BOOST) 546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_CPUFreq_BoostConfig(pOBInit->FreqBoostState); 548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OPTSR2_CPUFREQ_BOOST */ 550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Process Unlocked */ 553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash); 554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return status; 556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Get the Option byte configuration 560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param pOBInit pointer to an FLASH_OBProgramInitTypeDef structure that 561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * contains the configuration information for the programming. 562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note The parameter Banks of the pOBInit structure must be set exclusively to FLASH_BANK_1 or 563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * as this parameter is use to get the given Bank WRP, PCROP and secured area configuratio 564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit) 568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->OptionType = (OPTIONBYTE_USER | OPTIONBYTE_RDP | OPTIONBYTE_BOR); 570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Get Read protection level */ 572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->RDPLevel = FLASH_OB_GetRDP(); 573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Get the user option bytes */ 575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->USERConfig = FLASH_OB_GetUser(); 576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /*Get BOR Level*/ 578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->BORLevel = FLASH_OB_GetBOR(); 579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if ((pOBInit->Banks == FLASH_BANK_1) || (pOBInit->Banks == FLASH_BANK_2)) 582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else 583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if (pOBInit->Banks == FLASH_BANK_1) 584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->OptionType |= (OPTIONBYTE_WRP | OPTIONBYTE_PCROP | OPTIONBYTE_SECURE_AREA); 587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Get write protection on the selected area */ 589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_GetWRP(&(pOBInit->WRPState), &(pOBInit->WRPSector), pOBInit->Banks); 590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Get the Proprietary code readout protection */ 592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_GetPCROP(&(pOBInit->PCROPConfig), &(pOBInit->PCROPStartAddr), &(pOBInit->PCROPEndAddr) 593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /*Get Bank Secure area*/ 595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_GetSecureArea(&(pOBInit->SecureAreaConfig), &(pOBInit->SecureAreaStartAddr), &(pOBInit 596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /*Get Boot Address*/ 599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_GetBootAdd(&(pOBInit->BootAddr0), &(pOBInit->BootAddr1)); 600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE) 601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->OptionType |= OPTIONBYTE_CM7_BOOTADD | OPTIONBYTE_CM4_BOOTADD; ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 12 602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /*Get CM4 Boot Address*/ 604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_GetCM4BootAdd(&(pOBInit->CM4BootAddr0), &(pOBInit->CM4BootAddr1)); 605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else 606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->OptionType |= OPTIONBYTE_BOOTADD; 607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /*DUAL_CORE*/ 608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_OTPBL_LOCKBL) 610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->OptionType |= OPTIONBYTE_OTP_LOCK; 611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Get OTP Block Lock */ 613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->OTPBlockLock = FLASH_OB_OTP_GetLock(); 614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OTPBL_LOCKBL */ 615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_OPTSR2_TCM_AXI_SHARED) 617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->OptionType |= OPTIONBYTE_SHARED_RAM; 618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Get TCM / AXI Shared RAM */ 620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->SharedRamConfig = FLASH_OB_SharedRAM_GetConfig(); 621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OPTSR2_TCM_AXI_SHARED */ 622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_OPTSR2_CPUFREQ_BOOST) 624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->OptionType |= OPTIONBYTE_FREQ_BOOST; 625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Get CPU Frequency Boost */ 627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->FreqBoostState = FLASH_OB_CPUFreq_GetBoost(); 628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OPTSR2_CPUFREQ_BOOST */ 629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Unlock the FLASH Bank1 control registers access 633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status 634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Unlock_Bank1(void) 636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(READ_BIT(FLASH->CR1, FLASH_CR_LOCK) != 0U) 638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Authorize the FLASH Bank1 Registers access */ 640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** WRITE_REG(FLASH->KEYR1, FLASH_KEY1); 641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** WRITE_REG(FLASH->KEYR1, FLASH_KEY2); 642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Verify Flash Bank1 is unlocked */ 644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if (READ_BIT(FLASH->CR1, FLASH_CR_LOCK) != 0U) 645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return HAL_ERROR; 647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return HAL_OK; 651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Locks the FLASH Bank1 control registers access 655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status 656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Lock_Bank1(void) 658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 13 659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set the LOCK Bit to lock the FLASH Bank1 Registers access */ 660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** SET_BIT(FLASH->CR1, FLASH_CR_LOCK); 661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return HAL_OK; 662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Unlock the FLASH Bank2 control registers access 667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status 668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Unlock_Bank2(void) 670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(READ_BIT(FLASH->CR2, FLASH_CR_LOCK) != 0U) 672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Authorize the FLASH Bank2 Registers access */ 674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** WRITE_REG(FLASH->KEYR2, FLASH_KEY1); 675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** WRITE_REG(FLASH->KEYR2, FLASH_KEY2); 676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Verify Flash Bank1 is unlocked */ 678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if (READ_BIT(FLASH->CR2, FLASH_CR_LOCK) != 0U) 679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return HAL_ERROR; 681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return HAL_OK; 685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Locks the FLASH Bank2 control registers access 689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status 690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Lock_Bank2(void) 692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set the LOCK Bit to lock the FLASH Bank2 Registers access */ 694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** SET_BIT(FLASH->CR2, FLASH_CR_LOCK); 695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return HAL_OK; 696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* 700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Perform a CRC computation on the specified FLASH memory area 701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param pCRCInit pointer to an FLASH_CRCInitTypeDef structure that 702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * contains the configuration information for the CRC computation. 703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note CRC computation uses CRC-32 (Ethernet) polynomial 0x4C11DB7 704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note The application should avoid running a CRC on PCROP or secure-only 705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * user Flash memory area since it may alter the expected CRC value. 706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * A special error flag (CRC read error: CRCRDERR) can be used to 707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * detect such a case. 708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status 709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_ComputeCRC(FLASH_CRCInitTypeDef *pCRCInit, uint32_t *CRC_Result) 711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status; 713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t sector_index; 714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */ ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 14 716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK_EXCLUSIVE(pCRCInit->Bank)); 717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_TYPECRC(pCRCInit->TypeCRC)); 718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait for OB change operation to be completed */ 720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = FLASH_OB_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE); 721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if (status == HAL_OK) 723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if (pCRCInit->Bank == FLASH_BANK_1) 725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Enable CRC feature */ 727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 |= FLASH_CR_CRC_EN; 728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Clear CRC flags in Status Register: CRC end of calculation and CRC read error */ 730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CCR1 |= (FLASH_CCR_CLR_CRCEND | FLASH_CCR_CLR_CRCRDERR); 731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Clear current CRC result, program burst size and define memory area on which CRC has to be 733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR1 |= FLASH_CRCCR_CLEAN_CRC | pCRCInit->BurstSize | pCRCInit->TypeCRC; 734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if (pCRCInit->TypeCRC == FLASH_CRC_SECTORS) 736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Clear sectors list */ 738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR1 |= FLASH_CRCCR_CLEAN_SECT; 739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Select CRC sectors */ 741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** for(sector_index = pCRCInit->Sector; sector_index < (pCRCInit->NbSectors + pCRCInit->Sector 742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_CRC_AddSector(sector_index, FLASH_BANK_1); 744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else if (pCRCInit->TypeCRC == FLASH_CRC_BANK) 747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Enable Bank 1 CRC select bit */ 749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR1 |= FLASH_CRCCR_ALL_BANK; 750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else 752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Select CRC start and end addresses */ 754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_CRC_SelectAddress(pCRCInit->CRCStartAddr, pCRCInit->CRCEndAddr, FLASH_BANK_1); 755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Start the CRC calculation */ 758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR1 |= FLASH_CRCCR_START_CRC; 759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait on CRC busy flag */ 761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = FLASH_CRC_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_1); 762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Return CRC result */ 764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*CRC_Result) = FLASH->CRCDATA; 765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Disable CRC feature */ 767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 &= (~FLASH_CR_CRC_EN); 768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Clear CRC flags */ 770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_CLEAR_FLAG_BANK1(FLASH_FLAG_CRCEND_BANK1 | FLASH_FLAG_CRCRDERR_BANK1); 771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 15 773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else 774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Enable CRC feature */ 776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 |= FLASH_CR_CRC_EN; 777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Clear CRC flags in Status Register: CRC end of calculation and CRC read error */ 779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CCR2 |= (FLASH_CCR_CLR_CRCEND | FLASH_CCR_CLR_CRCRDERR); 780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Clear current CRC result, program burst size and define memory area on which CRC has to be 782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR2 |= FLASH_CRCCR_CLEAN_CRC | pCRCInit->BurstSize | pCRCInit->TypeCRC; 783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if (pCRCInit->TypeCRC == FLASH_CRC_SECTORS) 785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Clear sectors list */ 787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR2 |= FLASH_CRCCR_CLEAN_SECT; 788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Add CRC sectors */ 790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** for(sector_index = pCRCInit->Sector; sector_index < (pCRCInit->NbSectors + pCRCInit->Sector 791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_CRC_AddSector(sector_index, FLASH_BANK_2); 793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else if (pCRCInit->TypeCRC == FLASH_CRC_BANK) 796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Enable Bank 2 CRC select bit */ 798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR2 |= FLASH_CRCCR_ALL_BANK; 799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else 801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Select CRC start and end addresses */ 803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_CRC_SelectAddress(pCRCInit->CRCStartAddr, pCRCInit->CRCEndAddr, FLASH_BANK_2); 804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Start the CRC calculation */ 807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR2 |= FLASH_CRCCR_START_CRC; 808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait on CRC busy flag */ 810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = FLASH_CRC_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_2); 811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Return CRC result */ 813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*CRC_Result) = FLASH->CRCDATA; 814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Disable CRC feature */ 816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 &= (~FLASH_CR_CRC_EN); 817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Clear CRC flags */ 819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_CLEAR_FLAG_BANK2(FLASH_FLAG_CRCEND_BANK2 | FLASH_FLAG_CRCRDERR_BANK2); 820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return status; 825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @} 829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 16 830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if (USE_FLASH_ECC == 1U) 832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions_Group2 Extended ECC operation functions 833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Extended ECC operation functions 834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** @verbatim 836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** =============================================================================== 837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** ##### Extended ECC operation functions ##### 838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** =============================================================================== 839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** [..] 840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** This subsection provides a set of functions allowing to manage the Extended FLASH 841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** ECC Operations. 842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** @endverbatim 844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @{ 845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Enable ECC correction interrupts on FLASH BANK1 and BANK2. 849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param None 850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** void HAL_FLASHEx_EnableEccCorrectionInterrupt(void) 853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_SNECCERR_BANK1); 855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_SNECCERR_BANK2); 858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Disable ECC correction interrupts on FLASH BANK1 and BANK2. 863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param None 864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** void HAL_FLASHEx_DisableEccCorrectionInterrupt(void) 867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_DISABLE_IT(FLASH_IT_SNECCERR_BANK1); 869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_DISABLE_IT(FLASH_IT_SNECCERR_BANK2); 872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Enable ECC correction interrupt on FLASH BANK1. 877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param None 878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** void HAL_FLASHEx_EnableEccCorrectionInterrupt_Bank1(void) 881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_SNECCERR_BANK1); 883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Disable ECC correction interrupt on FLASH BANK1. ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 17 887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param None 888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** void HAL_FLASHEx_DisableEccCorrectionInterrupt_Bank1(void) 891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_DISABLE_IT(FLASH_IT_SNECCERR_BANK1); 893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Enable ECC correction interrupt on FLASH BANK2. 898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param None 899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** void HAL_FLASHEx_EnableEccCorrectionInterrupt_Bank2(void) 902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_SNECCERR_BANK2); 904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Disable ECC correction interrupt on FLASH BANK2. 908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param None 909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** void HAL_FLASHEx_DisableEccCorrectionInterrupt_Bank2(void) 912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_DISABLE_IT(FLASH_IT_SNECCERR_BANK2); 914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Enable ECC Detection interrupts on FLASH BANK1 and BANK2. 919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param None 920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** void HAL_FLASHEx_EnableEccDetectionInterrupt(void) 923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_DBECCERR_BANK1); 925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_DBECCERR_BANK2); 928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Disable ECC Detection interrupts on FLASH BANK1 and BANK2. 933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param None 934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** void HAL_FLASHEx_DisableEccDetectionInterrupt(void) 937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_DISABLE_IT(FLASH_IT_DBECCERR_BANK1); 939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_DISABLE_IT(FLASH_IT_DBECCERR_BANK2); 942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 18 944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Enable ECC Detection interrupt on FLASH BANK1. 947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param None 948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** void HAL_FLASHEx_EnableEccDetectionInterrupt_Bank1(void) 951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_DBECCERR_BANK1); 953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Disable ECC correction interrupt on FLASH BANK1. 957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param None 958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** void HAL_FLASHEx_DisableEccDetectionInterrupt_Bank1(void) 961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_DISABLE_IT(FLASH_IT_DBECCERR_BANK1); 963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Enable ECC Detection interrupt on FLASH BANK2. 968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param None 969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** void HAL_FLASHEx_EnableEccDetectionInterrupt_Bank2(void) 972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_DBECCERR_BANK2); 974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Disable ECC Detection interrupt on FLASH BANK2. 978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param None 979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** void HAL_FLASHEx_DisableEccDetectionInterrupt_Bank2(void) 982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_DISABLE_IT(FLASH_IT_DBECCERR_BANK2); 984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Get the ECC error information. 989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param pData Pointer to an FLASH_EccInfoTypeDef structure that contains the 990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * ECC error information. 991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note This function should be called before ECC bit is cleared 992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * (in callback function) 993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** void HAL_FLASHEx_GetEccInfo(FLASH_EccInfoTypeDef *pData) 996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t errorflag; 998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check FLASH Bank1 ECC single correction and double detection error flags */ 1000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** errorflag = FLASH->SR1 & (FLASH_FLAG_SNECCERR_BANK1 | FLASH_FLAG_DBECCERR_BANK1); ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 19 1001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(errorflag != 0U) 1002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pData->Area = FLASH_ECC_AREA_USER_BANK1; 1004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pData->Address = ((((FLASH->ECC_FA1 & FLASH_ECC_FA_FAIL_ECC_ADDR))* FLASH_NB_32BITWORD_IN_FLASH 1005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 1007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check FLASH Bank2 ECC single correction and double detection error flags */ 1008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** errorflag = FLASH->SR2 & (FLASH_FLAG_SNECCERR_BANK2 | FLASH_FLAG_DBECCERR_BANK2); 1009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(errorflag != 0U) 1010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pData->Area = FLASH_ECC_AREA_USER_BANK2; 1012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pData->Address = ((((FLASH->ECC_FA2 & FLASH_ECC_FA_FAIL_ECC_ADDR))* FLASH_NB_32BITWORD_IN_FLASH 1013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 1015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Handle Flash ECC Detection interrupt request. 1019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 1020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** void HAL_FLASHEx_BusFault_IRQHandler(void) 1022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check if the ECC double error occured*/ 1024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if ((FLASH->SR1 & FLASH_FLAG_DBECCERR_BANK1) != 0) 1025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* FLASH ECC detection user callback */ 1027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_FLASHEx_EccDetectionCallback(); 1028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Clear Bank 1 ECC double detection error flag 1030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** note : this step will clear all the informations related to the flash ECC detection 1031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_CLEAR_FLAG_BANK1(FLASH_FLAG_DBECCERR_BANK1); 1033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 1035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check if the ECC double error occured*/ 1036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if ((FLASH->SR2 & FLASH_FLAG_DBECCERR_BANK2) != 0) 1037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* FLASH ECC detection user callback */ 1039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_FLASHEx_EccDetectionCallback(); 1040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Clear Bank 2 ECC double detection error flag 1042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** note : this step will clear all the informations related to the flash ECC detection 1043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_CLEAR_FLAG_BANK2(FLASH_FLAG_DBECCERR_BANK2); 1045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 1047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief FLASH ECC Correction interrupt callback. 1051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 1052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __weak void HAL_FLASHEx_EccCorrectionCallback(void) 1054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* NOTE : This function should not be modified, when the callback is needed, 1056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** the HAL_FLASHEx_EccCorrectionCallback could be implemented in the user file 1057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 20 1058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief FLASH ECC Detection interrupt callback. 1062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 1063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __weak void HAL_FLASHEx_EccDetectionCallback(void) 1065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* NOTE : This function should not be modified, when the callback is needed, 1067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** the HAL_FLASHEx_EccDetectionCallback could be implemented in the user file 1068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @} 1073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* USE_FLASH_ECC */ 1075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @} 1078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Private functions ---------------------------------------------------------*/ 1081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** @addtogroup FLASHEx_Private_Functions 1083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @{ 1084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Mass erase of FLASH memory 1088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param VoltageRange The device program/erase parallelism. 1089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values: 1090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_1 : Flash program/erase by 8 bits 1091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_2 : Flash program/erase by 16 bits 1092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_3 : Flash program/erase by 32 bits 1093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_4 : Flash program/erase by 64 bits 1094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Banks Banks to be erased 1096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values: 1097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: Bank1 to be erased 1098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: Bank2 to be erased 1099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: Bank1 and Bank2 to be erased 1100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status 1102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_MassErase(uint32_t VoltageRange, uint32_t Banks) 1104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 28 .loc 1 1104 1 view -0 29 .cfi_startproc 30 @ args = 0, pretend = 0, frame = 0 31 @ frame_needed = 0, uses_anonymous_args = 0 32 @ link register save eliminated. 1105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */ 1106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_CR_PSIZE) 1107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_VOLTAGERANGE(VoltageRange)); 1108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else 1109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** UNUSED(VoltageRange); ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 21 33 .loc 1 1109 3 view .LVU1 1110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_PSIZE */ 1111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks)); 34 .loc 1 1111 3 view .LVU2 1112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 1114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Flash Mass Erase */ 1115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_BOTH) == FLASH_BANK_BOTH) 35 .loc 1 1115 3 view .LVU3 36 .loc 1 1115 13 is_stmt 0 view .LVU4 37 0000 01F00303 and r3, r1, #3 38 .loc 1 1115 5 view .LVU5 39 0004 032B cmp r3, #3 40 0006 12D0 beq .L5 1116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_CR_PSIZE) 1118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Reset Program/erase VoltageRange for Bank1 and Bank2 */ 1119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 &= (~FLASH_CR_PSIZE); 1120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 &= (~FLASH_CR_PSIZE); 1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set voltage range */ 1123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 |= VoltageRange; 1124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 |= VoltageRange; 1125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_PSIZE */ 1126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set Mass Erase Bit */ 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->OPTCR |= FLASH_OPTCR_MER; 1129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else 1131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 1132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Proceed to erase Flash Bank */ 1134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_1) == FLASH_BANK_1) 41 .loc 1 1134 5 is_stmt 1 view .LVU6 42 .loc 1 1134 7 is_stmt 0 view .LVU7 43 0008 11F0010F tst r1, #1 44 000c 04D0 beq .L4 1135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_CR_PSIZE) 1137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set Program/erase VoltageRange for Bank1 */ 1138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 &= (~FLASH_CR_PSIZE); 1139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 |= VoltageRange; 1140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_PSIZE */ 1141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Erase Bank1 */ 1143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 |= (FLASH_CR_BER | FLASH_CR_START); 45 .loc 1 1143 7 is_stmt 1 view .LVU8 46 .loc 1 1143 12 is_stmt 0 view .LVU9 47 000e 0B4A ldr r2, .L6 48 0010 D368 ldr r3, [r2, #12] 49 .loc 1 1143 18 view .LVU10 50 0012 43F02803 orr r3, r3, #40 51 0016 D360 str r3, [r2, #12] 52 .L4: 1144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 22 1147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_2) == FLASH_BANK_2) 53 .loc 1 1147 5 is_stmt 1 view .LVU11 54 .loc 1 1147 7 is_stmt 0 view .LVU12 55 0018 11F0020F tst r1, #2 56 001c 06D0 beq .L1 1148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_CR_PSIZE) 1150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set Program/erase VoltageRange for Bank2 */ 1151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 &= (~FLASH_CR_PSIZE); 1152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 |= VoltageRange; 1153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_PSIZE */ 1154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Erase Bank2 */ 1156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 |= (FLASH_CR_BER | FLASH_CR_START); 57 .loc 1 1156 7 is_stmt 1 view .LVU13 58 .loc 1 1156 12 is_stmt 0 view .LVU14 59 001e 074A ldr r2, .L6 60 0020 D2F80C31 ldr r3, [r2, #268] 61 .loc 1 1156 18 view .LVU15 62 0024 43F02803 orr r3, r3, #40 63 0028 C2F80C31 str r3, [r2, #268] 64 .L1: 1157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 1159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 65 .loc 1 1160 1 view .LVU16 66 002c 7047 bx lr 67 .L5: 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 68 .loc 1 1128 5 is_stmt 1 view .LVU17 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 69 .loc 1 1128 10 is_stmt 0 view .LVU18 70 002e 034A ldr r2, .L6 71 0030 9369 ldr r3, [r2, #24] 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 72 .loc 1 1128 18 view .LVU19 73 0032 43F01003 orr r3, r3, #16 74 0036 9361 str r3, [r2, #24] 75 0038 7047 bx lr 76 .L7: 77 003a 00BF .align 2 78 .L6: 79 003c 00200052 .word 1375739904 80 .cfi_endproc 81 .LFE344: 83 .section .text.FLASH_OB_EnableWRP,"ax",%progbits 84 .align 1 85 .syntax unified 86 .thumb 87 .thumb_func 89 FLASH_OB_EnableWRP: 90 .LVL1: 91 .LFB346: 1161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Erase the specified FLASH memory sector ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 23 1164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Sector FLASH sector to erase 1165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be a value of @ref FLASH_Sectors 1166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Banks Banks to be erased 1167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values: 1168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: Bank1 to be erased 1169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: Bank2 to be erased 1170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: Bank1 and Bank2 to be erased 1171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param VoltageRange The device program/erase parallelism. 1172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values: 1173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_1 : Flash program/erase by 8 bits 1174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_2 : Flash program/erase by 16 bits 1175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_3 : Flash program/erase by 32 bits 1176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_4 : Flash program/erase by 64 bits 1177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 1179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** void FLASH_Erase_Sector(uint32_t Sector, uint32_t Banks, uint32_t VoltageRange) 1181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_SECTOR(Sector)); 1183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK_EXCLUSIVE(Banks)); 1184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_CR_PSIZE) 1185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_VOLTAGERANGE(VoltageRange)); 1186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else 1187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** UNUSED(VoltageRange); 1188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_PSIZE */ 1189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_1) == FLASH_BANK_1) 1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_CR_PSIZE) 1193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Reset Program/erase VoltageRange and Sector Number for Bank1 */ 1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 &= ~(FLASH_CR_PSIZE | FLASH_CR_SNB); 1195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 |= (FLASH_CR_SER | VoltageRange | (Sector << FLASH_CR_SNB_Pos) | FLASH_CR_START); 1197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else 1198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Reset Sector Number for Bank1 */ 1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 &= ~(FLASH_CR_SNB); 1200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 |= (FLASH_CR_SER | (Sector << FLASH_CR_SNB_Pos) | FLASH_CR_START); 1202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_PSIZE */ 1203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 1206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_2) == FLASH_BANK_2) 1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_CR_PSIZE) 1209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Reset Program/erase VoltageRange and Sector Number for Bank2 */ 1210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 &= ~(FLASH_CR_PSIZE | FLASH_CR_SNB); 1211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 |= (FLASH_CR_SER | VoltageRange | (Sector << FLASH_CR_SNB_Pos) | FLASH_CR_START); 1213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else 1214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Reset Sector Number for Bank2 */ 1215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 &= ~(FLASH_CR_SNB); 1216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 |= (FLASH_CR_SER | (Sector << FLASH_CR_SNB_Pos) | FLASH_CR_START); 1218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_PSIZE */ 1219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 24 1221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Enable the write protection of the desired bank1 or bank 2 sectors 1225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param WRPSector specifies the sector(s) to be write protected. 1226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values: 1227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg WRPSector: A combination of OB_WRP_SECTOR_0 to OB_WRP_SECTOR_7 or OB_WRP_SECTO 1228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Banks the specific bank to apply WRP sectors 1230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values: 1231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: enable WRP on specified bank1 sectors 1232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: enable WRP on specified bank2 sectors 1233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: enable WRP on both bank1 and bank2 specified sectors 1234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL FLASH State 1236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_EnableWRP(uint32_t WRPSector, uint32_t Banks) 1238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 92 .loc 1 1238 1 is_stmt 1 view -0 93 .cfi_startproc 94 @ args = 0, pretend = 0, frame = 0 95 @ frame_needed = 0, uses_anonymous_args = 0 96 @ link register save eliminated. 1239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */ 1240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_WRP_SECTOR(WRPSector)); 97 .loc 1 1240 3 view .LVU21 1241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks)); 98 .loc 1 1241 3 view .LVU22 1242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_1) == FLASH_BANK_1) 99 .loc 1 1243 3 view .LVU23 100 .loc 1 1243 5 is_stmt 0 view .LVU24 101 0000 11F0010F tst r1, #1 102 0004 04D0 beq .L9 1244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Enable Write Protection for bank 1 */ 1246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->WPSN_PRG1 &= (~(WRPSector & FLASH_WPSN_WRPSN)); 103 .loc 1 1246 5 is_stmt 1 view .LVU25 104 .loc 1 1246 10 is_stmt 0 view .LVU26 105 0006 084A ldr r2, .L11 106 0008 D36B ldr r3, [r2, #60] 107 .loc 1 1246 22 view .LVU27 108 000a 23EA0003 bic r3, r3, r0 109 000e D363 str r3, [r2, #60] 110 .L9: 1247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 1250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_2) == FLASH_BANK_2) 111 .loc 1 1250 3 is_stmt 1 view .LVU28 112 .loc 1 1250 5 is_stmt 0 view .LVU29 113 0010 11F0020F tst r1, #2 114 0014 06D0 beq .L8 1251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Enable Write Protection for bank 2 */ 1253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->WPSN_PRG2 &= (~(WRPSector & FLASH_WPSN_WRPSN)); 115 .loc 1 1253 5 is_stmt 1 view .LVU30 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 25 116 .loc 1 1253 10 is_stmt 0 view .LVU31 117 0016 044A ldr r2, .L11 118 0018 D2F83C31 ldr r3, [r2, #316] 119 .loc 1 1253 22 view .LVU32 120 001c 23EA0003 bic r3, r3, r0 121 0020 C2F83C31 str r3, [r2, #316] 122 .L8: 1254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 1256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 123 .loc 1 1256 1 view .LVU33 124 0024 7047 bx lr 125 .L12: 126 0026 00BF .align 2 127 .L11: 128 0028 00200052 .word 1375739904 129 .cfi_endproc 130 .LFE346: 132 .section .text.FLASH_OB_DisableWRP,"ax",%progbits 133 .align 1 134 .syntax unified 135 .thumb 136 .thumb_func 138 FLASH_OB_DisableWRP: 139 .LVL2: 140 .LFB347: 1257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Disable the write protection of the desired bank1 or bank 2 sectors 1260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param WRPSector specifies the sector(s) to disable write protection. 1261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values: 1262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg WRPSector: A combination of FLASH_OB_WRP_SECTOR_0 to FLASH_OB_WRP_SECTOR_7 or 1263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Banks the specific bank to apply WRP sectors 1265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values: 1266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: disable WRP on specified bank1 sectors 1267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: disable WRP on specified bank2 sectors 1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: disable WRP on both bank1 and bank2 specified sectors 1269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL FLASH State 1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_DisableWRP(uint32_t WRPSector, uint32_t Banks) 1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 141 .loc 1 1273 1 is_stmt 1 view -0 142 .cfi_startproc 143 @ args = 0, pretend = 0, frame = 0 144 @ frame_needed = 0, uses_anonymous_args = 0 145 @ link register save eliminated. 1274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */ 1275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_WRP_SECTOR(WRPSector)); 146 .loc 1 1275 3 view .LVU35 1276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks)); 147 .loc 1 1276 3 view .LVU36 1277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_1) == FLASH_BANK_1) 148 .loc 1 1278 3 view .LVU37 149 .loc 1 1278 5 is_stmt 0 view .LVU38 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 26 150 0000 11F0010F tst r1, #1 151 0004 03D0 beq .L14 1279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Disable Write Protection for bank 1 */ 1281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->WPSN_PRG1 |= (WRPSector & FLASH_WPSN_WRPSN); 152 .loc 1 1281 5 is_stmt 1 view .LVU39 153 .loc 1 1281 10 is_stmt 0 view .LVU40 154 0006 074A ldr r2, .L16 155 0008 D36B ldr r3, [r2, #60] 156 .loc 1 1281 22 view .LVU41 157 000a 0343 orrs r3, r3, r0 158 000c D363 str r3, [r2, #60] 159 .L14: 1282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 1285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_2) == FLASH_BANK_2) 160 .loc 1 1285 3 is_stmt 1 view .LVU42 161 .loc 1 1285 5 is_stmt 0 view .LVU43 162 000e 11F0020F tst r1, #2 163 0012 05D0 beq .L13 1286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Disable Write Protection for bank 2 */ 1288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->WPSN_PRG2 |= (WRPSector & FLASH_WPSN_WRPSN); 164 .loc 1 1288 5 is_stmt 1 view .LVU44 165 .loc 1 1288 10 is_stmt 0 view .LVU45 166 0014 034A ldr r2, .L16 167 0016 D2F83C31 ldr r3, [r2, #316] 168 .loc 1 1288 22 view .LVU46 169 001a 0343 orrs r3, r3, r0 170 001c C2F83C31 str r3, [r2, #316] 171 .L13: 1289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 1291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 172 .loc 1 1291 1 view .LVU47 173 0020 7047 bx lr 174 .L17: 175 0022 00BF .align 2 176 .L16: 177 0024 00200052 .word 1375739904 178 .cfi_endproc 179 .LFE347: 181 .section .text.FLASH_OB_GetWRP,"ax",%progbits 182 .align 1 183 .syntax unified 184 .thumb 185 .thumb_func 187 FLASH_OB_GetWRP: 188 .LVL3: 189 .LFB348: 1292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Get the write protection of the given bank 1 or bank 2 sectors 1295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param WRPState gives the write protection state on the given bank. 1296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values: 1297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg WRPState: OB_WRPSTATE_DISABLE or OB_WRPSTATE_ENABLE ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 27 1298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param WRPSector gives the write protected sector(s) on the given bank . 1300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values: 1301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg WRPSector: A combination of FLASH_OB_WRP_SECTOR_0 to FLASH_OB_WRP_SECTOR_7 or FLA 1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Bank the specific bank to apply WRP sectors 1304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be exclusively one of the following values: 1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: Get bank1 WRP sectors 1306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: Get bank2 WRP sectors 1307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: note allowed in this functions 1308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL FLASH State 1310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_GetWRP(uint32_t *WRPState, uint32_t *WRPSector, uint32_t Bank) 1312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 190 .loc 1 1312 1 is_stmt 1 view -0 191 .cfi_startproc 192 @ args = 0, pretend = 0, frame = 0 193 @ frame_needed = 0, uses_anonymous_args = 0 194 @ link register save eliminated. 1313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t regvalue = 0U; 195 .loc 1 1313 3 view .LVU49 1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(Bank == FLASH_BANK_1) 196 .loc 1 1315 3 view .LVU50 197 .loc 1 1315 5 is_stmt 0 view .LVU51 198 0000 012A cmp r2, #1 199 0002 07D0 beq .L24 1316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** regvalue = FLASH->WPSN_CUR1; 1318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 1321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(Bank == FLASH_BANK_2) 200 .loc 1 1321 3 is_stmt 1 view .LVU52 201 .loc 1 1321 5 is_stmt 0 view .LVU53 202 0004 022A cmp r2, #2 203 0006 08D0 beq .L25 204 0008 0023 movs r3, #0 205 .LVL4: 206 .L20: 1322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** regvalue = FLASH->WPSN_CUR2; 1324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 1326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*WRPSector) = (~regvalue) & FLASH_WPSN_WRPSN; 207 .loc 1 1327 3 is_stmt 1 view .LVU54 208 .loc 1 1327 19 is_stmt 0 view .LVU55 209 000a DB43 mvns r3, r3 210 .LVL5: 211 .loc 1 1327 16 view .LVU56 212 000c 0B60 str r3, [r1] 1328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(*WRPSector == 0U) 213 .loc 1 1329 3 is_stmt 1 view .LVU57 214 .loc 1 1329 5 is_stmt 0 view .LVU58 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 28 215 000e 43B9 cbnz r3, .L21 1330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*WRPState) = OB_WRPSTATE_DISABLE; 216 .loc 1 1331 5 is_stmt 1 view .LVU59 217 .loc 1 1331 17 is_stmt 0 view .LVU60 218 0010 0360 str r3, [r0] 219 0012 7047 bx lr 220 .LVL6: 221 .L24: 1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 222 .loc 1 1317 5 is_stmt 1 view .LVU61 1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 223 .loc 1 1317 14 is_stmt 0 view .LVU62 224 0014 044B ldr r3, .L26 225 0016 9B6B ldr r3, [r3, #56] 226 .LVL7: 1321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 227 .loc 1 1321 3 is_stmt 1 view .LVU63 228 0018 F7E7 b .L20 229 .LVL8: 230 .L25: 1323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 231 .loc 1 1323 5 view .LVU64 1323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 232 .loc 1 1323 14 is_stmt 0 view .LVU65 233 001a 034B ldr r3, .L26 234 001c D3F83831 ldr r3, [r3, #312] 235 .LVL9: 1323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 236 .loc 1 1323 14 view .LVU66 237 0020 F3E7 b .L20 238 .LVL10: 239 .L21: 1332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else 1334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*WRPState) = OB_WRPSTATE_ENABLE; 240 .loc 1 1335 5 is_stmt 1 view .LVU67 241 .loc 1 1335 17 is_stmt 0 view .LVU68 242 0022 0123 movs r3, #1 243 .LVL11: 244 .loc 1 1335 17 view .LVU69 245 0024 0360 str r3, [r0] 246 .LVL12: 1336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 247 .loc 1 1337 1 view .LVU70 248 0026 7047 bx lr 249 .L27: 250 .align 2 251 .L26: 252 0028 00200052 .word 1375739904 253 .cfi_endproc 254 .LFE348: 256 .section .text.FLASH_OB_RDPConfig,"ax",%progbits 257 .align 1 258 .syntax unified ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 29 259 .thumb 260 .thumb_func 262 FLASH_OB_RDPConfig: 263 .LVL13: 264 .LFB349: 1338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Set the read protection level. 1341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note To configure the RDP level, the option lock bit OPTLOCK must be 1343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * cleared with the call of the HAL_FLASH_OB_Unlock() function. 1344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note To validate the RDP level, the option bytes must be reloaded 1345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * through the call of the HAL_FLASH_OB_Launch() function. 1346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note !!! Warning : When enabling OB_RDP level 2 it's no more possible 1347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * to go back to level 1 or 0 !!! 1348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param RDPLevel specifies the read protection level. 1350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values: 1351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_0: No protection 1352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_1: Read protection of the memory 1353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_2: Full chip protection 1354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL status 1356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_RDPConfig(uint32_t RDPLevel) 1358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 265 .loc 1 1358 1 is_stmt 1 view -0 266 .cfi_startproc 267 @ args = 0, pretend = 0, frame = 0 268 @ frame_needed = 0, uses_anonymous_args = 0 269 @ link register save eliminated. 1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */ 1360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_RDP_LEVEL(RDPLevel)); 270 .loc 1 1360 3 view .LVU72 1361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure the RDP level in the option bytes register */ 1363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** MODIFY_REG(FLASH->OPTSR_PRG, FLASH_OPTSR_RDP, RDPLevel); 271 .loc 1 1363 3 view .LVU73 272 0000 034A ldr r2, .L29 273 0002 136A ldr r3, [r2, #32] 274 0004 23F47F43 bic r3, r3, #65280 275 0008 0343 orrs r3, r3, r0 276 000a 1362 str r3, [r2, #32] 1364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 277 .loc 1 1364 1 is_stmt 0 view .LVU74 278 000c 7047 bx lr 279 .L30: 280 000e 00BF .align 2 281 .L29: 282 0010 00200052 .word 1375739904 283 .cfi_endproc 284 .LFE349: 286 .section .text.FLASH_OB_GetRDP,"ax",%progbits 287 .align 1 288 .syntax unified 289 .thumb 290 .thumb_func ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 30 292 FLASH_OB_GetRDP: 293 .LFB350: 1365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Get the read protection level. 1368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval RDPLevel specifies the read protection level. 1369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This return value can be one of the following values: 1370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_0: No protection 1371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_1: Read protection of the memory 1372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_2: Full chip protection 1373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetRDP(void) 1375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 294 .loc 1 1375 1 is_stmt 1 view -0 295 .cfi_startproc 296 @ args = 0, pretend = 0, frame = 0 297 @ frame_needed = 0, uses_anonymous_args = 0 298 @ link register save eliminated. 1376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t rdp_level = READ_BIT(FLASH->OPTSR_CUR, FLASH_OPTSR_RDP); 299 .loc 1 1376 3 view .LVU76 300 .loc 1 1376 24 is_stmt 0 view .LVU77 301 0000 064B ldr r3, .L34 302 0002 D869 ldr r0, [r3, #28] 303 .loc 1 1376 12 view .LVU78 304 0004 00F47F40 and r0, r0, #65280 305 .LVL14: 1377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if ((rdp_level != OB_RDP_LEVEL_0) && (rdp_level != OB_RDP_LEVEL_2)) 306 .loc 1 1378 3 is_stmt 1 view .LVU79 307 .loc 1 1378 6 is_stmt 0 view .LVU80 308 0008 B0F52A4F cmp r0, #43520 309 000c 18BF it ne 310 000e B0F54C4F cmpne r0, #52224 311 0012 00D1 bne .L33 312 .LVL15: 313 .L31: 1379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return (OB_RDP_LEVEL_1); 1381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else 1383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return rdp_level; 1385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 314 .loc 1 1386 1 view .LVU81 315 0014 7047 bx lr 316 .LVL16: 317 .L33: 1380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 318 .loc 1 1380 12 view .LVU82 319 0016 4FF4AA40 mov r0, #21760 320 .LVL17: 1380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 321 .loc 1 1380 12 view .LVU83 322 001a FBE7 b .L31 323 .L35: 324 .align 2 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 31 325 .L34: 326 001c 00200052 .word 1375739904 327 .cfi_endproc 328 .LFE350: 330 .section .text.FLASH_OB_UserConfig,"ax",%progbits 331 .align 1 332 .syntax unified 333 .thumb 334 .thumb_func 336 FLASH_OB_UserConfig: 337 .LVL18: 338 .LFB351: 1387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE) 1389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Program the FLASH User Option Byte. 1391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note To configure the user option bytes, the option lock bit OPTLOCK must 1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * be cleared with the call of the HAL_FLASH_OB_Unlock() function. 1394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note To validate the user option bytes, the option bytes must be reloaded 1396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * through the call of the HAL_FLASH_OB_Launch() function. 1397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param UserType The FLASH User Option Bytes to be modified : 1399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * a combination of @ref FLASHEx_OB_USER_Type 1400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param UserConfig The FLASH User Option Bytes values: 1402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * IWDG1_SW(Bit4), IWDG2_SW(Bit 5), nRST_STOP_D1(Bit 6), nRST_STDY_D1(Bit 7), 1403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * FZ_IWDG_STOP(Bit 17), FZ_IWDG_SDBY(Bit 18), ST_RAM_SIZE(Bit[19:20]), 1404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * SECURITY(Bit 21), BCM4(Bit 22), BCM7(Bit 23), nRST_STOP_D2(Bit 24), 1405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * nRST_STDY_D2(Bit 25), IO_HSLV (Bit 29) and SWAP_BANK_OPT(Bit 31). 1406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL status 1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else 1410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Program the FLASH User Option Byte. 1412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note To configure the user option bytes, the option lock bit OPTLOCK must 1414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * be cleared with the call of the HAL_FLASH_OB_Unlock() function. 1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note To validate the user option bytes, the option bytes must be reloaded 1417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * through the call of the HAL_FLASH_OB_Launch() function. 1418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param UserType The FLASH User Option Bytes to be modified : 1420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * a combination of @arg FLASHEx_OB_USER_Type 1421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param UserConfig The FLASH User Option Bytes values: 1423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * IWDG_SW(Bit4), nRST_STOP_D1(Bit 6), nRST_STDY_D1(Bit 7), 1424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * FZ_IWDG_STOP(Bit 17), FZ_IWDG_SDBY(Bit 18), ST_RAM_SIZE(Bit[19:20]), 1425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * SECURITY(Bit 21), IO_HSLV (Bit 29) and SWAP_BANK_OPT(Bit 31). 1426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL status 1428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /*DUAL_CORE*/ 1430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_UserConfig(uint32_t UserType, uint32_t UserConfig) 1431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 32 339 .loc 1 1431 1 is_stmt 1 view -0 340 .cfi_startproc 341 @ args = 0, pretend = 0, frame = 0 342 @ frame_needed = 0, uses_anonymous_args = 0 343 @ link register save eliminated. 1432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t optr_reg_val = 0; 344 .loc 1 1432 3 view .LVU85 1433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t optr_reg_mask = 0; 345 .loc 1 1433 3 view .LVU86 1434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */ 1436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_USER_TYPE(UserType)); 346 .loc 1 1436 3 view .LVU87 1437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_IWDG1_SW) != 0U) 347 .loc 1 1438 3 view .LVU88 348 .loc 1 1438 5 is_stmt 0 view .LVU89 349 0000 10F00103 ands r3, r0, #1 350 0004 59D0 beq .L47 1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* IWDG_HW option byte should be modified */ 1441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_IWDG1_SOURCE(UserConfig & FLASH_OPTSR_IWDG1_SW)); 351 .loc 1 1441 5 is_stmt 1 view .LVU90 1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for IWDG_HW option byte */ 1444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_IWDG1_SW); 352 .loc 1 1444 5 view .LVU91 353 .loc 1 1444 33 is_stmt 0 view .LVU92 354 0006 01F01003 and r3, r1, #16 355 .LVL19: 1445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_IWDG1_SW; 356 .loc 1 1445 5 is_stmt 1 view .LVU93 357 .loc 1 1445 19 is_stmt 0 view .LVU94 358 000a 1022 movs r2, #16 359 .LVL20: 360 .L37: 1446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE) 1448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_IWDG2_SW) != 0U) 1449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* IWDG2_SW option byte should be modified */ 1451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_IWDG2_SOURCE(UserConfig & FLASH_OPTSR_IWDG2_SW)); 1452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for IWDG2_SW option byte */ 1454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_IWDG2_SW); 1455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_IWDG2_SW; 1456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /*DUAL_CORE*/ 1458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_NRST_STOP_D1) != 0U) 361 .loc 1 1458 3 is_stmt 1 view .LVU95 362 .loc 1 1458 5 is_stmt 0 view .LVU96 363 000c 10F0020F tst r0, #2 364 0010 05D0 beq .L38 1459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* NRST_STOP option byte should be modified */ 1461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_STOP_D1_RESET(UserConfig & FLASH_OPTSR_NRST_STOP_D1)); 365 .loc 1 1461 5 is_stmt 1 view .LVU97 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 33 1462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for NRST_STOP option byte */ 1464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_NRST_STOP_D1); 366 .loc 1 1464 5 view .LVU98 367 .loc 1 1464 33 is_stmt 0 view .LVU99 368 0012 01F0400C and ip, r1, #64 369 .loc 1 1464 18 view .LVU100 370 0016 43EA0C03 orr r3, r3, ip 371 .LVL21: 1465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_NRST_STOP_D1; 372 .loc 1 1465 5 is_stmt 1 view .LVU101 373 .loc 1 1465 19 is_stmt 0 view .LVU102 374 001a 42F04002 orr r2, r2, #64 375 .LVL22: 376 .L38: 1466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_NRST_STDBY_D1) != 0U) 377 .loc 1 1468 3 is_stmt 1 view .LVU103 378 .loc 1 1468 5 is_stmt 0 view .LVU104 379 001e 10F0040F tst r0, #4 380 0022 05D0 beq .L39 1469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* NRST_STDBY option byte should be modified */ 1471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_STDBY_D1_RESET(UserConfig & FLASH_OPTSR_NRST_STBY_D1)); 381 .loc 1 1471 5 is_stmt 1 view .LVU105 1472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for NRST_STDBY option byte */ 1474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_NRST_STBY_D1); 382 .loc 1 1474 5 view .LVU106 383 .loc 1 1474 33 is_stmt 0 view .LVU107 384 0024 01F0800C and ip, r1, #128 385 .loc 1 1474 18 view .LVU108 386 0028 43EA0C03 orr r3, r3, ip 387 .LVL23: 1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_NRST_STBY_D1; 388 .loc 1 1475 5 is_stmt 1 view .LVU109 389 .loc 1 1475 19 is_stmt 0 view .LVU110 390 002c 42F08002 orr r2, r2, #128 391 .LVL24: 392 .L39: 1476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_IWDG_STOP) != 0U) 393 .loc 1 1478 3 is_stmt 1 view .LVU111 394 .loc 1 1478 5 is_stmt 0 view .LVU112 395 0030 10F0080F tst r0, #8 396 0034 05D0 beq .L40 1479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* IWDG_STOP option byte should be modified */ 1481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_USER_IWDG_STOP(UserConfig & FLASH_OPTSR_FZ_IWDG_STOP)); 397 .loc 1 1481 5 is_stmt 1 view .LVU113 1482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for IWDG_STOP option byte */ 1484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_FZ_IWDG_STOP); 398 .loc 1 1484 5 view .LVU114 399 .loc 1 1484 33 is_stmt 0 view .LVU115 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 34 400 0036 01F4003C and ip, r1, #131072 401 .loc 1 1484 18 view .LVU116 402 003a 43EA0C03 orr r3, r3, ip 403 .LVL25: 1485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_FZ_IWDG_STOP; 404 .loc 1 1485 5 is_stmt 1 view .LVU117 405 .loc 1 1485 19 is_stmt 0 view .LVU118 406 003e 42F40032 orr r2, r2, #131072 407 .LVL26: 408 .L40: 1486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_IWDG_STDBY) != 0U) 409 .loc 1 1488 3 is_stmt 1 view .LVU119 410 .loc 1 1488 5 is_stmt 0 view .LVU120 411 0042 10F0100F tst r0, #16 412 0046 05D0 beq .L41 1489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* IWDG_STDBY option byte should be modified */ 1491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_USER_IWDG_STDBY(UserConfig & FLASH_OPTSR_FZ_IWDG_SDBY)); 413 .loc 1 1491 5 is_stmt 1 view .LVU121 1492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for IWDG_STDBY option byte */ 1494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_FZ_IWDG_SDBY); 414 .loc 1 1494 5 view .LVU122 415 .loc 1 1494 33 is_stmt 0 view .LVU123 416 0048 01F4802C and ip, r1, #262144 417 .loc 1 1494 18 view .LVU124 418 004c 43EA0C03 orr r3, r3, ip 419 .LVL27: 1495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_FZ_IWDG_SDBY; 420 .loc 1 1495 5 is_stmt 1 view .LVU125 421 .loc 1 1495 19 is_stmt 0 view .LVU126 422 0050 42F48022 orr r2, r2, #262144 423 .LVL28: 424 .L41: 1496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_ST_RAM_SIZE) != 0U) 425 .loc 1 1498 3 is_stmt 1 view .LVU127 426 .loc 1 1498 5 is_stmt 0 view .LVU128 427 0054 10F0200F tst r0, #32 428 0058 05D0 beq .L42 1499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* ST_RAM_SIZE option byte should be modified */ 1501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_USER_ST_RAM_SIZE(UserConfig & FLASH_OPTSR_ST_RAM_SIZE)); 429 .loc 1 1501 5 is_stmt 1 view .LVU129 1502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for ST_RAM_SIZE option byte */ 1504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_ST_RAM_SIZE); 430 .loc 1 1504 5 view .LVU130 431 .loc 1 1504 33 is_stmt 0 view .LVU131 432 005a 01F4C01C and ip, r1, #1572864 433 .loc 1 1504 18 view .LVU132 434 005e 43EA0C03 orr r3, r3, ip 435 .LVL29: 1505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_ST_RAM_SIZE; ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 35 436 .loc 1 1505 5 is_stmt 1 view .LVU133 437 .loc 1 1505 19 is_stmt 0 view .LVU134 438 0062 42F4C012 orr r2, r2, #1572864 439 .LVL30: 440 .L42: 1506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_SECURITY) != 0U) 441 .loc 1 1508 3 is_stmt 1 view .LVU135 442 .loc 1 1508 5 is_stmt 0 view .LVU136 443 0066 10F0400F tst r0, #64 444 006a 05D0 beq .L43 1509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* SECURITY option byte should be modified */ 1511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_USER_SECURITY(UserConfig & FLASH_OPTSR_SECURITY)); 445 .loc 1 1511 5 is_stmt 1 view .LVU137 1512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for SECURITY option byte */ 1514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_SECURITY); 446 .loc 1 1514 5 view .LVU138 447 .loc 1 1514 33 is_stmt 0 view .LVU139 448 006c 01F4001C and ip, r1, #2097152 449 .loc 1 1514 18 view .LVU140 450 0070 43EA0C03 orr r3, r3, ip 451 .LVL31: 1515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_SECURITY; 452 .loc 1 1515 5 is_stmt 1 view .LVU141 453 .loc 1 1515 19 is_stmt 0 view .LVU142 454 0074 42F40012 orr r2, r2, #2097152 455 .LVL32: 456 .L43: 1516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE) 1519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_BCM4) != 0U) 1520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* BCM4 option byte should be modified */ 1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_USER_BCM4(UserConfig & FLASH_OPTSR_BCM4)); 1523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for BCM4 option byte */ 1525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_BCM4); 1526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_BCM4; 1527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_BCM7) != 0U) 1530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* BCM7 option byte should be modified */ 1532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_USER_BCM7(UserConfig & FLASH_OPTSR_BCM7)); 1533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for BCM7 option byte */ 1535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_BCM7); 1536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_BCM7; 1537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_CORE */ 1539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_OPTSR_NRST_STOP_D2) 1541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_NRST_STOP_D2) != 0U) ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 36 1542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* NRST_STOP option byte should be modified */ 1544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_STOP_D2_RESET(UserConfig & FLASH_OPTSR_NRST_STOP_D2)); 1545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for NRST_STOP option byte */ 1547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_NRST_STOP_D2); 1548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_NRST_STOP_D2; 1549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_NRST_STDBY_D2) != 0U) 1552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* NRST_STDBY option byte should be modified */ 1554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_STDBY_D2_RESET(UserConfig & FLASH_OPTSR_NRST_STBY_D2)); 1555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for NRST_STDBY option byte */ 1557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_NRST_STBY_D2); 1558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_NRST_STBY_D2; 1559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OPTSR_NRST_STOP_D2 */ 1561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 1563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_SWAP_BANK) != 0U) 457 .loc 1 1563 3 is_stmt 1 view .LVU143 458 .loc 1 1563 5 is_stmt 0 view .LVU144 459 0078 10F4807F tst r0, #256 460 007c 05D0 beq .L44 1564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* SWAP_BANK_OPT option byte should be modified */ 1566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_USER_SWAP_BANK(UserConfig & FLASH_OPTSR_SWAP_BANK_OPT)); 461 .loc 1 1566 5 is_stmt 1 view .LVU145 1567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for SWAP_BANK_OPT option byte */ 1569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_SWAP_BANK_OPT); 462 .loc 1 1569 5 view .LVU146 463 .loc 1 1569 33 is_stmt 0 view .LVU147 464 007e 01F0004C and ip, r1, #-2147483648 465 .loc 1 1569 18 view .LVU148 466 0082 43EA0C03 orr r3, r3, ip 467 .LVL33: 1570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_SWAP_BANK_OPT; 468 .loc 1 1570 5 is_stmt 1 view .LVU149 469 .loc 1 1570 19 is_stmt 0 view .LVU150 470 0086 42F00042 orr r2, r2, #-2147483648 471 .LVL34: 472 .L44: 1571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 1573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_IOHSLV) != 0U) 473 .loc 1 1574 3 is_stmt 1 view .LVU151 474 .loc 1 1574 5 is_stmt 0 view .LVU152 475 008a 10F0800F tst r0, #128 476 008e 05D0 beq .L45 1575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* IOHSLV_OPT option byte should be modified */ 1577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_USER_IOHSLV(UserConfig & FLASH_OPTSR_IO_HSLV)); 477 .loc 1 1577 5 is_stmt 1 view .LVU153 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 37 1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for IOHSLV_OPT option byte */ 1580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_IO_HSLV); 478 .loc 1 1580 5 view .LVU154 479 .loc 1 1580 33 is_stmt 0 view .LVU155 480 0090 01F0005C and ip, r1, #536870912 481 .loc 1 1580 18 view .LVU156 482 0094 43EA0C03 orr r3, r3, ip 483 .LVL35: 1581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_IO_HSLV; 484 .loc 1 1581 5 is_stmt 1 view .LVU157 485 .loc 1 1581 19 is_stmt 0 view .LVU158 486 0098 42F00052 orr r2, r2, #536870912 487 .LVL36: 488 .L45: 1582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_OPTSR_VDDMMC_HSLV) 1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_VDDMMC_HSLV) != 0U) 489 .loc 1 1585 3 is_stmt 1 view .LVU159 490 .loc 1 1585 5 is_stmt 0 view .LVU160 491 009c 10F4007F tst r0, #512 492 00a0 04D0 beq .L46 1586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* VDDMMC_HSLV option byte should be modified */ 1588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_USER_VDDMMC_HSLV(UserConfig & FLASH_OPTSR_VDDMMC_HSLV)); 493 .loc 1 1588 5 is_stmt 1 view .LVU161 1589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for VDDMMC_HSLV option byte */ 1591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_VDDMMC_HSLV); 494 .loc 1 1591 5 view .LVU162 495 .loc 1 1591 33 is_stmt 0 view .LVU163 496 00a2 01F48031 and r1, r1, #65536 497 .LVL37: 498 .loc 1 1591 18 view .LVU164 499 00a6 0B43 orrs r3, r3, r1 500 .LVL38: 1592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_VDDMMC_HSLV; 501 .loc 1 1592 5 is_stmt 1 view .LVU165 502 .loc 1 1592 19 is_stmt 0 view .LVU166 503 00a8 42F48032 orr r2, r2, #65536 504 .LVL39: 505 .L46: 1593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OPTSR_VDDMMC_HSLV */ 1595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure the option bytes register */ 1597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** MODIFY_REG(FLASH->OPTSR_PRG, optr_reg_mask, optr_reg_val); 506 .loc 1 1597 3 is_stmt 1 view .LVU167 507 00ac 0448 ldr r0, .L48 508 .LVL40: 509 .loc 1 1597 3 is_stmt 0 view .LVU168 510 00ae 016A ldr r1, [r0, #32] 511 00b0 21EA0202 bic r2, r1, r2 512 .LVL41: 513 .loc 1 1597 3 view .LVU169 514 00b4 1343 orrs r3, r3, r2 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 38 515 .LVL42: 516 .loc 1 1597 3 view .LVU170 517 00b6 0362 str r3, [r0, #32] 1598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 518 .loc 1 1598 1 view .LVU171 519 00b8 7047 bx lr 520 .LVL43: 521 .L47: 1433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 522 .loc 1 1433 12 view .LVU172 523 00ba 1A46 mov r2, r3 524 00bc A6E7 b .L37 525 .L49: 526 00be 00BF .align 2 527 .L48: 528 00c0 00200052 .word 1375739904 529 .cfi_endproc 530 .LFE351: 532 .section .text.FLASH_OB_GetUser,"ax",%progbits 533 .align 1 534 .syntax unified 535 .thumb 536 .thumb_func 538 FLASH_OB_GetUser: 539 .LFB352: 1599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE) 1601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Return the FLASH User Option Byte value. 1603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval The FLASH User Option Bytes values 1604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * IWDG1_SW(Bit4), IWDG2_SW(Bit 5), nRST_STOP_D1(Bit 6), nRST_STDY_D1(Bit 7), 1605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * FZ_IWDG_STOP(Bit 17), FZ_IWDG_SDBY(Bit 18), ST_RAM_SIZE(Bit[19:20]), 1606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * SECURITY(Bit 21), BCM4(Bit 22), BCM7(Bit 23), nRST_STOP_D2(Bit 24), 1607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * nRST_STDY_D2(Bit 25), IO_HSLV (Bit 29) and SWAP_BANK_OPT(Bit 31). 1608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else 1610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Return the FLASH User Option Byte value. 1612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval The FLASH User Option Bytes values 1613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * IWDG_SW(Bit4), nRST_STOP_D1(Bit 6), nRST_STDY_D1(Bit 7), 1614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * FZ_IWDG_STOP(Bit 17), FZ_IWDG_SDBY(Bit 18), ST_RAM_SIZE(Bit[19:20]), 1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * SECURITY(Bit 21), IO_HSLV (Bit 29) and SWAP_BANK_OPT(Bit 31). 1616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /*DUAL_CORE*/ 1618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetUser(void) 1619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 540 .loc 1 1619 1 is_stmt 1 view -0 541 .cfi_startproc 542 @ args = 0, pretend = 0, frame = 0 543 @ frame_needed = 0, uses_anonymous_args = 0 544 @ link register save eliminated. 1620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t userConfig = READ_REG(FLASH->OPTSR_CUR); 545 .loc 1 1620 3 view .LVU174 546 .loc 1 1620 12 is_stmt 0 view .LVU175 547 0000 024B ldr r3, .L51 548 0002 DB69 ldr r3, [r3, #28] 549 .LVL44: ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 39 1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** userConfig &= (~(FLASH_OPTSR_BOR_LEV | FLASH_OPTSR_RDP)); 550 .loc 1 1621 3 is_stmt 1 view .LVU176 1622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return userConfig; 551 .loc 1 1623 3 view .LVU177 1624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 552 .loc 1 1624 1 is_stmt 0 view .LVU178 553 0004 0248 ldr r0, .L51+4 554 0006 1840 ands r0, r0, r3 555 .LVL45: 556 .loc 1 1624 1 view .LVU179 557 0008 7047 bx lr 558 .L52: 559 000a 00BF .align 2 560 .L51: 561 000c 00200052 .word 1375739904 562 0010 F300FFFF .word -65293 563 .cfi_endproc 564 .LFE352: 566 .section .text.FLASH_OB_PCROPConfig,"ax",%progbits 567 .align 1 568 .syntax unified 569 .thumb 570 .thumb_func 572 FLASH_OB_PCROPConfig: 573 .LVL46: 574 .LFB353: 1625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Configure the Proprietary code readout protection of the desired addresses 1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note To configure the PCROP options, the option lock bit OPTLOCK must be 1630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * cleared with the call of the HAL_FLASH_OB_Unlock() function. 1631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note To validate the PCROP options, the option bytes must be reloaded 1632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * through the call of the HAL_FLASH_OB_Launch() function. 1633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param PCROPConfig specifies if the PCROP area for the given Bank shall be erased or not 1635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * when RDP level decreased from Level 1 to Level 0, or after a bank erase with protection 1636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter must be a value of @arg FLASHEx_OB_PCROP_RDP enumeration 1637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param PCROPStartAddr specifies the start address of the Proprietary code readout protection 1639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be an address between begin and end of the bank 1640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param PCROPEndAddr specifies the end address of the Proprietary code readout protection 1642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be an address between PCROPStartAddr and end of the bank 1643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Banks the specific bank to apply PCROP protection 1645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values: 1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: PCROP on specified bank1 area 1647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: PCROP on specified bank2 area 1648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: PCROP on specified bank1 and bank2 area (same config will be a 1649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 1651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_PCROPConfig(uint32_t PCROPConfig, uint32_t PCROPStartAddr, uint32_t PCROPEndAd 1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 575 .loc 1 1653 1 is_stmt 1 view -0 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 40 576 .cfi_startproc 577 @ args = 0, pretend = 0, frame = 0 578 @ frame_needed = 0, uses_anonymous_args = 0 579 @ link register save eliminated. 580 .loc 1 1653 1 is_stmt 0 view .LVU181 581 0000 30B4 push {r4, r5} 582 .cfi_def_cfa_offset 8 583 .cfi_offset 4, -8 584 .cfi_offset 5, -4 1654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */ 1655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks)); 585 .loc 1 1655 3 is_stmt 1 view .LVU182 1656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_PCROP_RDP(PCROPConfig)); 586 .loc 1 1656 3 view .LVU183 1657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_1) == FLASH_BANK_1) 587 .loc 1 1658 3 view .LVU184 588 .loc 1 1658 5 is_stmt 0 view .LVU185 589 0002 13F0010F tst r3, #1 590 0006 0AD0 beq .L54 1659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK1(PCROPStartAddr)); 591 .loc 1 1660 5 is_stmt 1 view .LVU186 1661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK1(PCROPEndAddr)); 592 .loc 1 1661 5 view .LVU187 1662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure the Proprietary code readout protection */ 1664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->PRAR_PRG1 = ((PCROPStartAddr - FLASH_BANK1_BASE) >> 8) | 593 .loc 1 1664 5 view .LVU188 594 .loc 1 1664 41 is_stmt 0 view .LVU189 595 0008 01F1784C add ip, r1, #-134217728 1665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((PCROPEndAddr - FLASH_BANK1_BASE) >> 8) << FLASH_PRAR_PROT_AREA_END_Pos) | 596 .loc 1 1665 40 view .LVU190 597 000c 02F17844 add r4, r2, #-134217728 598 .loc 1 1665 60 view .LVU191 599 0010 240A lsrs r4, r4, #8 600 .loc 1 1665 66 view .LVU192 601 0012 2404 lsls r4, r4, #16 1664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((PCROPEndAddr - FLASH_BANK1_BASE) >> 8) << FLASH_PRAR_PROT_AREA_END_Pos) | 602 .loc 1 1664 99 view .LVU193 603 0014 44EA1C24 orr r4, r4, ip, lsr #8 604 .loc 1 1665 99 view .LVU194 605 0018 0443 orrs r4, r4, r0 1664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((PCROPEndAddr - FLASH_BANK1_BASE) >> 8) << FLASH_PRAR_PROT_AREA_END_Pos) | 606 .loc 1 1664 22 view .LVU195 607 001a 094D ldr r5, .L57 608 001c EC62 str r4, [r5, #44] 609 .L54: 1666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** PCROPConfig; 1667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 1670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_2) == FLASH_BANK_2) 610 .loc 1 1670 3 is_stmt 1 view .LVU196 611 .loc 1 1670 5 is_stmt 0 view .LVU197 612 001e 13F0020F tst r3, #2 613 0022 0BD0 beq .L53 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 41 1671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK2(PCROPStartAddr)); 614 .loc 1 1672 5 is_stmt 1 view .LVU198 1673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK2(PCROPEndAddr)); 615 .loc 1 1673 5 view .LVU199 1674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure the Proprietary code readout protection */ 1676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->PRAR_PRG2 = ((PCROPStartAddr - FLASH_BANK2_BASE) >> 8) | 616 .loc 1 1676 5 view .LVU200 617 .loc 1 1676 41 is_stmt 0 view .LVU201 618 0024 A1F10161 sub r1, r1, #135266304 619 .LVL47: 1677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((PCROPEndAddr - FLASH_BANK2_BASE) >> 8) << FLASH_PRAR_PROT_AREA_END_Pos) | 620 .loc 1 1677 40 view .LVU202 621 0028 A2F10162 sub r2, r2, #135266304 622 .LVL48: 623 .loc 1 1677 60 view .LVU203 624 002c 120A lsrs r2, r2, #8 625 .LVL49: 626 .loc 1 1677 66 view .LVU204 627 002e 1204 lsls r2, r2, #16 1676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((PCROPEndAddr - FLASH_BANK2_BASE) >> 8) << FLASH_PRAR_PROT_AREA_END_Pos) | 628 .loc 1 1676 99 view .LVU205 629 0030 42EA1121 orr r1, r2, r1, lsr #8 630 .LVL50: 631 .loc 1 1677 99 view .LVU206 632 0034 0843 orrs r0, r0, r1 633 .LVL51: 1676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((PCROPEndAddr - FLASH_BANK2_BASE) >> 8) << FLASH_PRAR_PROT_AREA_END_Pos) | 634 .loc 1 1676 22 view .LVU207 635 0036 024B ldr r3, .L57 636 .LVL52: 1676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((PCROPEndAddr - FLASH_BANK2_BASE) >> 8) << FLASH_PRAR_PROT_AREA_END_Pos) | 637 .loc 1 1676 22 view .LVU208 638 0038 C3F82C01 str r0, [r3, #300] 639 .L53: 1678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** PCROPConfig; 1679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 1681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 640 .loc 1 1681 1 view .LVU209 641 003c 30BC pop {r4, r5} 642 .cfi_restore 5 643 .cfi_restore 4 644 .cfi_def_cfa_offset 0 645 003e 7047 bx lr 646 .L58: 647 .align 2 648 .L57: 649 0040 00200052 .word 1375739904 650 .cfi_endproc 651 .LFE353: 653 .section .text.FLASH_OB_GetPCROP,"ax",%progbits 654 .align 1 655 .syntax unified 656 .thumb 657 .thumb_func ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 42 659 FLASH_OB_GetPCROP: 660 .LVL53: 661 .LFB354: 1682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Get the Proprietary code readout protection configuration on a given Bank 1685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param PCROPConfig indicates if the PCROP area for the given Bank shall be erased or not 1687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * when RDP level decreased from Level 1 to Level 0 or after a bank erase with protection 1688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param PCROPStartAddr gives the start address of the Proprietary code readout protection of th 1690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param PCROPEndAddr gives the end address of the Proprietary code readout protection of the ba 1692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Bank the specific bank to apply PCROP protection 1694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be exclusively one of the following values: 1695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: PCROP on specified bank1 area 1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: PCROP on specified bank2 area 1697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: is not allowed here 1698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 1700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_GetPCROP(uint32_t *PCROPConfig, uint32_t *PCROPStartAddr, uint32_t *PCROPEndAd 1702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 662 .loc 1 1702 1 is_stmt 1 view -0 663 .cfi_startproc 664 @ args = 0, pretend = 0, frame = 0 665 @ frame_needed = 0, uses_anonymous_args = 0 666 @ link register save eliminated. 667 .loc 1 1702 1 is_stmt 0 view .LVU211 668 0000 10B4 push {r4} 669 .cfi_def_cfa_offset 4 670 .cfi_offset 4, -4 1703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t regvalue = 0; 671 .loc 1 1703 3 is_stmt 1 view .LVU212 672 .LVL54: 1704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t bankBase = 0; 673 .loc 1 1704 3 view .LVU213 1705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(Bank == FLASH_BANK_1) 674 .loc 1 1706 3 view .LVU214 675 .loc 1 1706 5 is_stmt 0 view .LVU215 676 0002 012B cmp r3, #1 677 0004 15D0 beq .L64 1707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** regvalue = FLASH->PRAR_CUR1; 1709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK1_BASE; 1710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 1713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(Bank == FLASH_BANK_2) 678 .loc 1 1713 3 is_stmt 1 view .LVU216 679 .loc 1 1713 5 is_stmt 0 view .LVU217 680 0006 022B cmp r3, #2 681 0008 18D0 beq .L65 682 000a 4FF0000C mov ip, #0 683 000e 6346 mov r3, ip ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 43 684 .LVL55: 685 .L61: 1714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** regvalue = FLASH->PRAR_CUR2; 1716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK2_BASE; 1717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 1719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*PCROPConfig) = (regvalue & FLASH_PRAR_DMEP); 686 .loc 1 1720 3 is_stmt 1 view .LVU218 687 .loc 1 1720 31 is_stmt 0 view .LVU219 688 0010 03F00044 and r4, r3, #-2147483648 689 .loc 1 1720 18 view .LVU220 690 0014 0460 str r4, [r0] 1721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*PCROPStartAddr) = ((regvalue & FLASH_PRAR_PROT_AREA_START) << 8) + bankBase; 691 .loc 1 1722 3 is_stmt 1 view .LVU221 692 .loc 1 1722 64 is_stmt 0 view .LVU222 693 0016 0C48 ldr r0, .L66 694 .LVL56: 695 .loc 1 1722 64 view .LVU223 696 0018 00EA0320 and r0, r0, r3, lsl #8 697 .loc 1 1722 70 view .LVU224 698 001c 6044 add r0, r0, ip 699 .loc 1 1722 21 view .LVU225 700 001e 0860 str r0, [r1] 1723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*PCROPEndAddr) = (regvalue & FLASH_PRAR_PROT_AREA_END) >> FLASH_PRAR_PROT_AREA_END_Pos; 701 .loc 1 1723 3 is_stmt 1 view .LVU226 702 .loc 1 1723 59 is_stmt 0 view .LVU227 703 0020 C3F30B43 ubfx r3, r3, #16, #12 704 .LVL57: 705 .loc 1 1723 19 view .LVU228 706 0024 1360 str r3, [r2] 1724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*PCROPEndAddr) = ((*PCROPEndAddr) << 8) + bankBase; 707 .loc 1 1724 3 is_stmt 1 view .LVU229 708 .loc 1 1724 44 is_stmt 0 view .LVU230 709 0026 0CEB0323 add r3, ip, r3, lsl #8 710 .loc 1 1724 19 view .LVU231 711 002a 1360 str r3, [r2] 1725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 712 .loc 1 1725 1 view .LVU232 713 002c 5DF8044B ldr r4, [sp], #4 714 .cfi_remember_state 715 .cfi_restore 4 716 .cfi_def_cfa_offset 0 717 0030 7047 bx lr 718 .LVL58: 719 .L64: 720 .cfi_restore_state 1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK1_BASE; 721 .loc 1 1708 5 is_stmt 1 view .LVU233 1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK1_BASE; 722 .loc 1 1708 14 is_stmt 0 view .LVU234 723 0032 064B ldr r3, .L66+4 724 .LVL59: 1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK1_BASE; 725 .loc 1 1708 14 view .LVU235 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 44 726 0034 9B6A ldr r3, [r3, #40] 727 .LVL60: 1709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 728 .loc 1 1709 5 is_stmt 1 view .LVU236 1713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 729 .loc 1 1713 3 view .LVU237 1709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 730 .loc 1 1709 14 is_stmt 0 view .LVU238 731 0036 4FF0006C mov ip, #134217728 732 003a E9E7 b .L61 733 .LVL61: 734 .L65: 1715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK2_BASE; 735 .loc 1 1715 5 is_stmt 1 view .LVU239 1715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK2_BASE; 736 .loc 1 1715 14 is_stmt 0 view .LVU240 737 003c 034B ldr r3, .L66+4 738 .LVL62: 1715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK2_BASE; 739 .loc 1 1715 14 view .LVU241 740 003e D3F82831 ldr r3, [r3, #296] 741 .LVL63: 1716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 742 .loc 1 1716 5 is_stmt 1 view .LVU242 1716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 743 .loc 1 1716 14 is_stmt 0 view .LVU243 744 0042 4FF0016C mov ip, #135266304 745 0046 E3E7 b .L61 746 .L67: 747 .align 2 748 .L66: 749 0048 00FF0F00 .word 1048320 750 004c 00200052 .word 1375739904 751 .cfi_endproc 752 .LFE354: 754 .section .text.FLASH_OB_BOR_LevelConfig,"ax",%progbits 755 .align 1 756 .syntax unified 757 .thumb 758 .thumb_func 760 FLASH_OB_BOR_LevelConfig: 761 .LVL64: 762 .LFB355: 1726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Set the BOR Level. 1729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Level specifies the Option Bytes BOR Reset Level. 1730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values: 1731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_BOR_LEVEL0: Reset level threshold is set to 1.6V 1732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_BOR_LEVEL1: Reset level threshold is set to 2.1V 1733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_BOR_LEVEL2: Reset level threshold is set to 2.4V 1734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_BOR_LEVEL3: Reset level threshold is set to 2.7V 1735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 1736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_BOR_LevelConfig(uint32_t Level) 1738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 763 .loc 1 1738 1 is_stmt 1 view -0 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 45 764 .cfi_startproc 765 @ args = 0, pretend = 0, frame = 0 766 @ frame_needed = 0, uses_anonymous_args = 0 767 @ link register save eliminated. 1739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_BOR_LEVEL(Level)); 768 .loc 1 1739 3 view .LVU245 1740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure BOR_LEV option byte */ 1742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** MODIFY_REG(FLASH->OPTSR_PRG, FLASH_OPTSR_BOR_LEV, Level); 769 .loc 1 1742 3 view .LVU246 770 0000 034A ldr r2, .L69 771 0002 136A ldr r3, [r2, #32] 772 0004 23F00C03 bic r3, r3, #12 773 0008 0343 orrs r3, r3, r0 774 000a 1362 str r3, [r2, #32] 1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 775 .loc 1 1743 1 is_stmt 0 view .LVU247 776 000c 7047 bx lr 777 .L70: 778 000e 00BF .align 2 779 .L69: 780 0010 00200052 .word 1375739904 781 .cfi_endproc 782 .LFE355: 784 .section .text.FLASH_OB_GetBOR,"ax",%progbits 785 .align 1 786 .syntax unified 787 .thumb 788 .thumb_func 790 FLASH_OB_GetBOR: 791 .LFB356: 1744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Get the BOR Level. 1747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval The Option Bytes BOR Reset Level. 1748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values: 1749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_BOR_LEVEL0: Reset level threshold is set to 1.6V 1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_BOR_LEVEL1: Reset level threshold is set to 2.1V 1751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_BOR_LEVEL2: Reset level threshold is set to 2.4V 1752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_BOR_LEVEL3: Reset level threshold is set to 2.7V 1753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetBOR(void) 1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 792 .loc 1 1755 1 is_stmt 1 view -0 793 .cfi_startproc 794 @ args = 0, pretend = 0, frame = 0 795 @ frame_needed = 0, uses_anonymous_args = 0 796 @ link register save eliminated. 1756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return (FLASH->OPTSR_CUR & FLASH_OPTSR_BOR_LEV); 797 .loc 1 1756 3 view .LVU249 798 .loc 1 1756 16 is_stmt 0 view .LVU250 799 0000 024B ldr r3, .L72 800 0002 D869 ldr r0, [r3, #28] 1757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 801 .loc 1 1757 1 view .LVU251 802 0004 00F00C00 and r0, r0, #12 803 0008 7047 bx lr ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 46 804 .L73: 805 000a 00BF .align 2 806 .L72: 807 000c 00200052 .word 1375739904 808 .cfi_endproc 809 .LFE356: 811 .section .text.FLASH_OB_BootAddConfig,"ax",%progbits 812 .align 1 813 .syntax unified 814 .thumb 815 .thumb_func 817 FLASH_OB_BootAddConfig: 818 .LVL65: 819 .LFB357: 1758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Set Boot address 1761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param BootOption Boot address option byte to be programmed, 1762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter must be a value of @ref FLASHEx_OB_BOOT_OPTION 1763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (OB_BOOT_ADD0, OB_BOOT_ADD1 or OB_BOOT_ADD_BOTH) 1764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param BootAddress0 Specifies the Boot Address 0 1766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param BootAddress1 Specifies the Boot Address 1 1767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status 1768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_BootAddConfig(uint32_t BootOption, uint32_t BootAddress0, uint32_t BootAddress 1770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 820 .loc 1 1770 1 is_stmt 1 view -0 821 .cfi_startproc 822 @ args = 0, pretend = 0, frame = 0 823 @ frame_needed = 0, uses_anonymous_args = 0 824 @ link register save eliminated. 825 .loc 1 1770 1 is_stmt 0 view .LVU253 826 0000 10B4 push {r4} 827 .cfi_def_cfa_offset 4 828 .cfi_offset 4, -4 1771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */ 1772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_BOOT_ADD_OPTION(BootOption)); 829 .loc 1 1772 3 is_stmt 1 view .LVU254 1773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((BootOption & OB_BOOT_ADD0) == OB_BOOT_ADD0) 830 .loc 1 1774 3 view .LVU255 831 .loc 1 1774 5 is_stmt 0 view .LVU256 832 0002 10F0010F tst r0, #1 833 0006 06D0 beq .L75 1775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */ 1777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_BOOT_ADDRESS(BootAddress0)); 834 .loc 1 1777 5 is_stmt 1 view .LVU257 1778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure CM7 BOOT ADD0 */ 1780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE) 1781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** MODIFY_REG(FLASH->BOOT7_PRG, FLASH_BOOT7_BCM7_ADD0, (BootAddress0 >> 16)); 1782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else /* Single Core*/ 1783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** MODIFY_REG(FLASH->BOOT_PRG, FLASH_BOOT_ADD0, (BootAddress0 >> 16)); 835 .loc 1 1783 5 view .LVU258 836 0008 084C ldr r4, .L78 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 47 837 000a 636C ldr r3, [r4, #68] 838 000c 6FF30F03 bfc r3, #0, #16 839 0010 43EA1143 orr r3, r3, r1, lsr #16 840 0014 6364 str r3, [r4, #68] 841 .L75: 1784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_CORE */ 1785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((BootOption & OB_BOOT_ADD1) == OB_BOOT_ADD1) 842 .loc 1 1787 3 view .LVU259 843 .loc 1 1787 5 is_stmt 0 view .LVU260 844 0016 10F0020F tst r0, #2 845 001a 04D0 beq .L74 1788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */ 1790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_BOOT_ADDRESS(BootAddress1)); 846 .loc 1 1790 5 is_stmt 1 view .LVU261 1791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure CM7 BOOT ADD1 */ 1793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE) 1794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** MODIFY_REG(FLASH->BOOT7_PRG, FLASH_BOOT7_BCM7_ADD1, BootAddress1); 1795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else /* Single Core*/ 1796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** MODIFY_REG(FLASH->BOOT_PRG, FLASH_BOOT_ADD1, BootAddress1); 847 .loc 1 1796 5 view .LVU262 848 001c 0349 ldr r1, .L78 849 .LVL66: 850 .loc 1 1796 5 is_stmt 0 view .LVU263 851 001e 4B6C ldr r3, [r1, #68] 852 0020 9BB2 uxth r3, r3 853 0022 1343 orrs r3, r3, r2 854 0024 4B64 str r3, [r1, #68] 855 .L74: 1797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_CORE */ 1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 856 .loc 1 1799 1 view .LVU264 857 0026 5DF8044B ldr r4, [sp], #4 858 .cfi_restore 4 859 .cfi_def_cfa_offset 0 860 002a 7047 bx lr 861 .L79: 862 .align 2 863 .L78: 864 002c 00200052 .word 1375739904 865 .cfi_endproc 866 .LFE357: 868 .section .text.FLASH_OB_GetBootAdd,"ax",%progbits 869 .align 1 870 .syntax unified 871 .thumb 872 .thumb_func 874 FLASH_OB_GetBootAdd: 875 .LVL67: 876 .LFB358: 1800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Get Boot address ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 48 1803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param BootAddress0 Specifies the Boot Address 0. 1804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param BootAddress1 Specifies the Boot Address 1. 1805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status 1806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_GetBootAdd(uint32_t *BootAddress0, uint32_t *BootAddress1) 1808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 877 .loc 1 1808 1 is_stmt 1 view -0 878 .cfi_startproc 879 @ args = 0, pretend = 0, frame = 0 880 @ frame_needed = 0, uses_anonymous_args = 0 881 @ link register save eliminated. 1809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t regvalue; 882 .loc 1 1809 3 view .LVU266 1810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE) 1812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** regvalue = FLASH->BOOT7_CUR; 1813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*BootAddress0) = (regvalue & FLASH_BOOT7_BCM7_ADD0) << 16; 1815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*BootAddress1) = (regvalue & FLASH_BOOT7_BCM7_ADD1); 1816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else /* Single Core */ 1817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** regvalue = FLASH->BOOT_CUR; 883 .loc 1 1817 3 view .LVU267 884 .loc 1 1817 12 is_stmt 0 view .LVU268 885 0000 034B ldr r3, .L81 886 0002 1B6C ldr r3, [r3, #64] 887 .LVL68: 1818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*BootAddress0) = (regvalue & FLASH_BOOT_ADD0) << 16; 888 .loc 1 1819 3 is_stmt 1 view .LVU269 889 .loc 1 1819 50 is_stmt 0 view .LVU270 890 0004 1A04 lsls r2, r3, #16 891 .loc 1 1819 19 view .LVU271 892 0006 0260 str r2, [r0] 1820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*BootAddress1) = (regvalue & FLASH_BOOT_ADD1); 893 .loc 1 1820 3 is_stmt 1 view .LVU272 894 .loc 1 1820 31 is_stmt 0 view .LVU273 895 0008 6FF30F03 bfc r3, #0, #16 896 .LVL69: 897 .loc 1 1820 19 view .LVU274 898 000c 0B60 str r3, [r1] 1821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_CORE */ 1822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 899 .loc 1 1822 1 view .LVU275 900 000e 7047 bx lr 901 .L82: 902 .align 2 903 .L81: 904 0010 00200052 .word 1375739904 905 .cfi_endproc 906 .LFE358: 908 .section .text.FLASH_OB_SecureAreaConfig,"ax",%progbits 909 .align 1 910 .syntax unified 911 .thumb 912 .thumb_func 914 FLASH_OB_SecureAreaConfig: 915 .LVL70: ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 49 916 .LFB359: 1823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE) 1825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Set CM4 Boot address 1827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param BootOption Boot address option byte to be programmed, 1828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter must be a value of @ref FLASHEx_OB_BOOT_OPTION 1829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (OB_BOOT_ADD0, OB_BOOT_ADD1 or OB_BOOT_ADD_BOTH) 1830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param BootAddress0 Specifies the CM4 Boot Address 0. 1832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param BootAddress1 Specifies the CM4 Boot Address 1. 1833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status 1834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_CM4BootAddConfig(uint32_t BootOption, uint32_t BootAddress0, uint32_t BootAddr 1836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */ 1838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_BOOT_ADD_OPTION(BootOption)); 1839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((BootOption & OB_BOOT_ADD0) == OB_BOOT_ADD0) 1841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */ 1843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_BOOT_ADDRESS(BootAddress0)); 1844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure CM4 BOOT ADD0 */ 1846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** MODIFY_REG(FLASH->BOOT4_PRG, FLASH_BOOT4_BCM4_ADD0, (BootAddress0 >> 16)); 1847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((BootOption & OB_BOOT_ADD1) == OB_BOOT_ADD1) 1851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */ 1853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_BOOT_ADDRESS(BootAddress1)); 1854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure CM4 BOOT ADD1 */ 1856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** MODIFY_REG(FLASH->BOOT4_PRG, FLASH_BOOT4_BCM4_ADD1, BootAddress1); 1857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Get CM4 Boot address 1862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param BootAddress0 Specifies the CM4 Boot Address 0. 1863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param BootAddress1 Specifies the CM4 Boot Address 1. 1864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status 1865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_GetCM4BootAdd(uint32_t *BootAddress0, uint32_t *BootAddress1) 1867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t regvalue; 1869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** regvalue = FLASH->BOOT4_CUR; 1871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*BootAddress0) = (regvalue & FLASH_BOOT4_BCM4_ADD0) << 16; 1873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*BootAddress1) = (regvalue & FLASH_BOOT4_BCM4_ADD1); 1874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /*DUAL_CORE*/ 1876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Set secure area configuration ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 50 1879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param SecureAreaConfig specify if the secure area will be deleted or not 1880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * when RDP level decreased from Level 1 to Level 0 or during a mass erase. 1881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * 1882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param SecureAreaStartAddr Specifies the secure area start address 1883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param SecureAreaEndAddr Specifies the secure area end address 1884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Banks the specific bank to apply Security protection 1885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values: 1886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: Secure area on specified bank1 area 1887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: Secure area on specified bank2 area 1888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: Secure area on specified bank1 and bank2 area (same config wil 1889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_SecureAreaConfig(uint32_t SecureAreaConfig, uint32_t SecureAreaStartAddr, uint 1892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 917 .loc 1 1892 1 is_stmt 1 view -0 918 .cfi_startproc 919 @ args = 0, pretend = 0, frame = 0 920 @ frame_needed = 0, uses_anonymous_args = 0 921 @ link register save eliminated. 922 .loc 1 1892 1 is_stmt 0 view .LVU277 923 0000 30B4 push {r4, r5} 924 .cfi_def_cfa_offset 8 925 .cfi_offset 4, -8 926 .cfi_offset 5, -4 1893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */ 1894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks)); 927 .loc 1 1894 3 is_stmt 1 view .LVU278 1895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_SECURE_RDP(SecureAreaConfig)); 928 .loc 1 1895 3 view .LVU279 1896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_1) == FLASH_BANK_1) 929 .loc 1 1897 3 view .LVU280 930 .loc 1 1897 5 is_stmt 0 view .LVU281 931 0002 13F0010F tst r3, #1 932 0006 0CD0 beq .L84 1898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */ 1900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK1(SecureAreaStartAddr)); 933 .loc 1 1900 5 is_stmt 1 view .LVU282 1901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK1(SecureAreaEndAddr)); 934 .loc 1 1901 5 view .LVU283 1902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure the secure area */ 1904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->SCAR_PRG1 = ((SecureAreaStartAddr - FLASH_BANK1_BASE) >> 8) 935 .loc 1 1904 5 view .LVU284 936 .loc 1 1904 46 is_stmt 0 view .LVU285 937 0008 01F1784C add ip, r1, #-134217728 1905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((SecureAreaEndAddr - FLASH_BANK1_BASE) >> 8) << FLASH_SCAR_SEC_AREA_END_Po 938 .loc 1 1905 45 view .LVU286 939 000c 02F17844 add r4, r2, #-134217728 940 .loc 1 1905 65 view .LVU287 941 0010 240A lsrs r4, r4, #8 942 .loc 1 1905 71 view .LVU288 943 0012 2404 lsls r4, r4, #16 1904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((SecureAreaEndAddr - FLASH_BANK1_BASE) >> 8) << FLASH_SCAR_SEC_AREA_END_Po 944 .loc 1 1904 103 view .LVU289 945 0014 44EA1C24 orr r4, r4, ip, lsr #8 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 51 1906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (SecureAreaConfig & FLASH_SCAR_DMES); 946 .loc 1 1906 42 view .LVU290 947 0018 00F00045 and r5, r0, #-2147483648 1905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((SecureAreaEndAddr - FLASH_BANK1_BASE) >> 8) << FLASH_SCAR_SEC_AREA_END_Po 948 .loc 1 1905 103 view .LVU291 949 001c 2C43 orrs r4, r4, r5 1904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((SecureAreaEndAddr - FLASH_BANK1_BASE) >> 8) << FLASH_SCAR_SEC_AREA_END_Po 950 .loc 1 1904 22 view .LVU292 951 001e 0A4D ldr r5, .L87 952 0020 6C63 str r4, [r5, #52] 953 .L84: 1907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 1910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_2) == FLASH_BANK_2) 954 .loc 1 1910 3 is_stmt 1 view .LVU293 955 .loc 1 1910 5 is_stmt 0 view .LVU294 956 0022 13F0020F tst r3, #2 957 0026 0DD0 beq .L83 1911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */ 1913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK2(SecureAreaStartAddr)); 958 .loc 1 1913 5 is_stmt 1 view .LVU295 1914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK2(SecureAreaEndAddr)); 959 .loc 1 1914 5 view .LVU296 1915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure the secure area */ 1917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->SCAR_PRG2 = ((SecureAreaStartAddr - FLASH_BANK2_BASE) >> 8) 960 .loc 1 1917 5 view .LVU297 961 .loc 1 1917 46 is_stmt 0 view .LVU298 962 0028 A1F10161 sub r1, r1, #135266304 963 .LVL71: 1918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((SecureAreaEndAddr - FLASH_BANK2_BASE) >> 8) << FLASH_SCAR_SEC_AREA_END_Po 964 .loc 1 1918 45 view .LVU299 965 002c A2F10162 sub r2, r2, #135266304 966 .LVL72: 967 .loc 1 1918 65 view .LVU300 968 0030 120A lsrs r2, r2, #8 969 .LVL73: 970 .loc 1 1918 71 view .LVU301 971 0032 1204 lsls r2, r2, #16 1917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((SecureAreaEndAddr - FLASH_BANK2_BASE) >> 8) << FLASH_SCAR_SEC_AREA_END_Po 972 .loc 1 1917 103 view .LVU302 973 0034 42EA1121 orr r1, r2, r1, lsr #8 974 .LVL74: 1919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (SecureAreaConfig & FLASH_SCAR_DMES); 975 .loc 1 1919 42 view .LVU303 976 0038 00F00040 and r0, r0, #-2147483648 977 .LVL75: 1918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((SecureAreaEndAddr - FLASH_BANK2_BASE) >> 8) << FLASH_SCAR_SEC_AREA_END_Po 978 .loc 1 1918 103 view .LVU304 979 003c 0843 orrs r0, r0, r1 1917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((SecureAreaEndAddr - FLASH_BANK2_BASE) >> 8) << FLASH_SCAR_SEC_AREA_END_Po 980 .loc 1 1917 22 view .LVU305 981 003e 024B ldr r3, .L87 982 .LVL76: 1917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((SecureAreaEndAddr - FLASH_BANK2_BASE) >> 8) << FLASH_SCAR_SEC_AREA_END_Po ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 52 983 .loc 1 1917 22 view .LVU306 984 0040 C3F83401 str r0, [r3, #308] 985 .L83: 1920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 1922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 986 .loc 1 1922 1 view .LVU307 987 0044 30BC pop {r4, r5} 988 .cfi_restore 5 989 .cfi_restore 4 990 .cfi_def_cfa_offset 0 991 0046 7047 bx lr 992 .L88: 993 .align 2 994 .L87: 995 0048 00200052 .word 1375739904 996 .cfi_endproc 997 .LFE359: 999 .section .text.FLASH_OB_GetSecureArea,"ax",%progbits 1000 .align 1 1001 .syntax unified 1002 .thumb 1003 .thumb_func 1005 FLASH_OB_GetSecureArea: 1006 .LVL77: 1007 .LFB360: 1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Get secure area configuration 1926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param SecureAreaConfig indicates if the secure area will be deleted or not 1927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * when RDP level decreased from Level 1 to Level 0 or during a mass erase. 1928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param SecureAreaStartAddr gives the secure area start address 1929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param SecureAreaEndAddr gives the secure area end address 1930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Bank Specifies the Bank 1931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 1932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_GetSecureArea(uint32_t *SecureAreaConfig, uint32_t *SecureAreaStartAddr, uint3 1934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1008 .loc 1 1934 1 is_stmt 1 view -0 1009 .cfi_startproc 1010 @ args = 0, pretend = 0, frame = 0 1011 @ frame_needed = 0, uses_anonymous_args = 0 1012 @ link register save eliminated. 1013 .loc 1 1934 1 is_stmt 0 view .LVU309 1014 0000 10B4 push {r4} 1015 .cfi_def_cfa_offset 4 1016 .cfi_offset 4, -4 1935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t regvalue = 0; 1017 .loc 1 1935 3 is_stmt 1 view .LVU310 1018 .LVL78: 1936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t bankBase = 0; 1019 .loc 1 1936 3 view .LVU311 1937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check Bank parameter value */ 1939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(Bank == FLASH_BANK_1) 1020 .loc 1 1939 3 view .LVU312 1021 .loc 1 1939 5 is_stmt 0 view .LVU313 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 53 1022 0002 012B cmp r3, #1 1023 0004 15D0 beq .L94 1940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** regvalue = FLASH->SCAR_CUR1; 1942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK1_BASE; 1943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 1946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(Bank == FLASH_BANK_2) 1024 .loc 1 1946 3 is_stmt 1 view .LVU314 1025 .loc 1 1946 5 is_stmt 0 view .LVU315 1026 0006 022B cmp r3, #2 1027 0008 18D0 beq .L95 1028 000a 4FF0000C mov ip, #0 1029 000e 6346 mov r3, ip 1030 .LVL79: 1031 .L91: 1947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** regvalue = FLASH->SCAR_CUR2; 1949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK2_BASE; 1950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 1952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Get the secure area settings */ 1954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*SecureAreaConfig) = (regvalue & FLASH_SCAR_DMES); 1032 .loc 1 1954 3 is_stmt 1 view .LVU316 1033 .loc 1 1954 35 is_stmt 0 view .LVU317 1034 0010 03F00044 and r4, r3, #-2147483648 1035 .loc 1 1954 23 view .LVU318 1036 0014 0460 str r4, [r0] 1955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*SecureAreaStartAddr) = ((regvalue & FLASH_SCAR_SEC_AREA_START) << 8) + bankBase; 1037 .loc 1 1955 3 is_stmt 1 view .LVU319 1038 .loc 1 1955 68 is_stmt 0 view .LVU320 1039 0016 0C48 ldr r0, .L96 1040 .LVL80: 1041 .loc 1 1955 68 view .LVU321 1042 0018 00EA0320 and r0, r0, r3, lsl #8 1043 .loc 1 1955 74 view .LVU322 1044 001c 6044 add r0, r0, ip 1045 .loc 1 1955 26 view .LVU323 1046 001e 0860 str r0, [r1] 1956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*SecureAreaEndAddr) = (regvalue & FLASH_SCAR_SEC_AREA_END) >> FLASH_SCAR_SEC_AREA_END_Pos; 1047 .loc 1 1956 3 is_stmt 1 view .LVU324 1048 .loc 1 1956 63 is_stmt 0 view .LVU325 1049 0020 C3F30B43 ubfx r3, r3, #16, #12 1050 .LVL81: 1051 .loc 1 1956 24 view .LVU326 1052 0024 1360 str r3, [r2] 1957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*SecureAreaEndAddr) = ((*SecureAreaEndAddr) << 8) + bankBase; 1053 .loc 1 1957 3 is_stmt 1 view .LVU327 1054 .loc 1 1957 54 is_stmt 0 view .LVU328 1055 0026 0CEB0323 add r3, ip, r3, lsl #8 1056 .loc 1 1957 24 view .LVU329 1057 002a 1360 str r3, [r2] 1958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1058 .loc 1 1958 1 view .LVU330 1059 002c 5DF8044B ldr r4, [sp], #4 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 54 1060 .cfi_remember_state 1061 .cfi_restore 4 1062 .cfi_def_cfa_offset 0 1063 0030 7047 bx lr 1064 .LVL82: 1065 .L94: 1066 .cfi_restore_state 1941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK1_BASE; 1067 .loc 1 1941 5 is_stmt 1 view .LVU331 1941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK1_BASE; 1068 .loc 1 1941 14 is_stmt 0 view .LVU332 1069 0032 064B ldr r3, .L96+4 1070 .LVL83: 1941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK1_BASE; 1071 .loc 1 1941 14 view .LVU333 1072 0034 1B6B ldr r3, [r3, #48] 1073 .LVL84: 1942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1074 .loc 1 1942 5 is_stmt 1 view .LVU334 1946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1075 .loc 1 1946 3 view .LVU335 1942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1076 .loc 1 1942 14 is_stmt 0 view .LVU336 1077 0036 4FF0006C mov ip, #134217728 1078 003a E9E7 b .L91 1079 .LVL85: 1080 .L95: 1948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK2_BASE; 1081 .loc 1 1948 5 is_stmt 1 view .LVU337 1948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK2_BASE; 1082 .loc 1 1948 14 is_stmt 0 view .LVU338 1083 003c 034B ldr r3, .L96+4 1084 .LVL86: 1948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK2_BASE; 1085 .loc 1 1948 14 view .LVU339 1086 003e D3F83031 ldr r3, [r3, #304] 1087 .LVL87: 1949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1088 .loc 1 1949 5 is_stmt 1 view .LVU340 1949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1089 .loc 1 1949 14 is_stmt 0 view .LVU341 1090 0042 4FF0016C mov ip, #135266304 1091 0046 E3E7 b .L91 1092 .L97: 1093 .align 2 1094 .L96: 1095 0048 00FF0F00 .word 1048320 1096 004c 00200052 .word 1375739904 1097 .cfi_endproc 1098 .LFE360: 1100 .section .text.FLASH_CRC_AddSector,"ax",%progbits 1101 .align 1 1102 .syntax unified 1103 .thumb 1104 .thumb_func 1106 FLASH_CRC_AddSector: 1107 .LVL88: ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 55 1108 .LFB361: 1959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Add a CRC sector to the list of sectors on which the CRC will be calculated 1962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Sector Specifies the CRC sector number 1963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Bank Specifies the Bank 1964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 1965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_CRC_AddSector(uint32_t Sector, uint32_t Bank) 1967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1109 .loc 1 1967 1 is_stmt 1 view -0 1110 .cfi_startproc 1111 @ args = 0, pretend = 0, frame = 0 1112 @ frame_needed = 0, uses_anonymous_args = 0 1113 @ link register save eliminated. 1968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */ 1969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_SECTOR(Sector)); 1114 .loc 1 1969 3 view .LVU343 1970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if (Bank == FLASH_BANK_1) 1115 .loc 1 1971 3 view .LVU344 1116 .loc 1 1971 6 is_stmt 0 view .LVU345 1117 0000 0129 cmp r1, #1 1118 0002 0ED0 beq .L101 1972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Clear CRC sector */ 1974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR1 &= (~FLASH_CRCCR_CRC_SECT); 1975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Select CRC Sector and activate ADD_SECT bit */ 1977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR1 |= Sector | FLASH_CRCCR_ADD_SECT; 1978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 1980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else 1981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Clear CRC sector */ 1983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR2 &= (~FLASH_CRCCR_CRC_SECT); 1119 .loc 1 1983 5 is_stmt 1 view .LVU346 1120 .loc 1 1983 10 is_stmt 0 view .LVU347 1121 0004 0C4A ldr r2, .L102 1122 0006 D2F85031 ldr r3, [r2, #336] 1123 .loc 1 1983 19 view .LVU348 1124 000a 23F03F03 bic r3, r3, #63 1125 000e C2F85031 str r3, [r2, #336] 1984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Select CRC Sector and activate ADD_SECT bit */ 1986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR2 |= Sector | FLASH_CRCCR_ADD_SECT; 1126 .loc 1 1986 5 is_stmt 1 view .LVU349 1127 .loc 1 1986 10 is_stmt 0 view .LVU350 1128 0012 D2F85031 ldr r3, [r2, #336] 1129 .loc 1 1986 19 view .LVU351 1130 0016 0343 orrs r3, r3, r0 1131 0018 43F40073 orr r3, r3, #512 1132 001c C2F85031 str r3, [r2, #336] 1987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 1989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1133 .loc 1 1989 1 view .LVU352 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 56 1134 0020 7047 bx lr 1135 .L101: 1974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1136 .loc 1 1974 5 is_stmt 1 view .LVU353 1974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1137 .loc 1 1974 10 is_stmt 0 view .LVU354 1138 0022 054A ldr r2, .L102 1139 0024 136D ldr r3, [r2, #80] 1974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1140 .loc 1 1974 19 view .LVU355 1141 0026 23F03F03 bic r3, r3, #63 1142 002a 1365 str r3, [r2, #80] 1977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1143 .loc 1 1977 5 is_stmt 1 view .LVU356 1977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1144 .loc 1 1977 10 is_stmt 0 view .LVU357 1145 002c 136D ldr r3, [r2, #80] 1977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1146 .loc 1 1977 19 view .LVU358 1147 002e 0343 orrs r3, r3, r0 1148 0030 43F40073 orr r3, r3, #512 1149 0034 1365 str r3, [r2, #80] 1150 0036 7047 bx lr 1151 .L103: 1152 .align 2 1153 .L102: 1154 0038 00200052 .word 1375739904 1155 .cfi_endproc 1156 .LFE361: 1158 .section .text.FLASH_CRC_SelectAddress,"ax",%progbits 1159 .align 1 1160 .syntax unified 1161 .thumb 1162 .thumb_func 1164 FLASH_CRC_SelectAddress: 1165 .LVL89: 1166 .LFB362: 1990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 1992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Select CRC start and end memory addresses on which the CRC will be calculated 1993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param CRCStartAddr Specifies the CRC start address 1994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param CRCEndAddr Specifies the CRC end address 1995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Bank Specifies the Bank 1996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 1997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 1998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_CRC_SelectAddress(uint32_t CRCStartAddr, uint32_t CRCEndAddr, uint32_t Bank) 1999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1167 .loc 1 1999 1 is_stmt 1 view -0 1168 .cfi_startproc 1169 @ args = 0, pretend = 0, frame = 0 1170 @ frame_needed = 0, uses_anonymous_args = 0 1171 @ link register save eliminated. 2000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if (Bank == FLASH_BANK_1) 1172 .loc 1 2000 3 view .LVU360 1173 .loc 1 2000 6 is_stmt 0 view .LVU361 1174 0000 012A cmp r2, #1 1175 0002 05D0 beq .L107 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 57 2001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK1(CRCStartAddr)); 2003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK1(CRCEndAddr)); 2004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Write CRC Start and End addresses */ 2006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCSADD1 = CRCStartAddr; 2007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCEADD1 = CRCEndAddr; 2008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK) 2010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else 2011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK2(CRCStartAddr)); 1176 .loc 1 2012 5 is_stmt 1 view .LVU362 2013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK2(CRCEndAddr)); 1177 .loc 1 2013 5 view .LVU363 2014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Write CRC Start and End addresses */ 2016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCSADD2 = CRCStartAddr; 1178 .loc 1 2016 5 view .LVU364 1179 .loc 1 2016 21 is_stmt 0 view .LVU365 1180 0004 044B ldr r3, .L108 1181 0006 C3F85401 str r0, [r3, #340] 2017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCEADD2 = CRCEndAddr; 1182 .loc 1 2017 5 is_stmt 1 view .LVU366 1183 .loc 1 2017 21 is_stmt 0 view .LVU367 1184 000a C3F85811 str r1, [r3, #344] 2018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 2020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1185 .loc 1 2020 1 view .LVU368 1186 000e 7047 bx lr 1187 .L107: 2002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK1(CRCEndAddr)); 1188 .loc 1 2002 5 is_stmt 1 view .LVU369 2003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1189 .loc 1 2003 5 view .LVU370 2006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCEADD1 = CRCEndAddr; 1190 .loc 1 2006 5 view .LVU371 2006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCEADD1 = CRCEndAddr; 1191 .loc 1 2006 21 is_stmt 0 view .LVU372 1192 0010 014B ldr r3, .L108 1193 0012 5865 str r0, [r3, #84] 2007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1194 .loc 1 2007 5 is_stmt 1 view .LVU373 2007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1195 .loc 1 2007 21 is_stmt 0 view .LVU374 1196 0014 9965 str r1, [r3, #88] 1197 0016 7047 bx lr 1198 .L109: 1199 .align 2 1200 .L108: 1201 0018 00200052 .word 1375739904 1202 .cfi_endproc 1203 .LFE362: 1205 .section .text.FLASH_OB_OTP_LockConfig,"ax",%progbits 1206 .align 1 1207 .syntax unified ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 58 1208 .thumb 1209 .thumb_func 1211 FLASH_OB_OTP_LockConfig: 1212 .LVL90: 1213 .LFB363: 2021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 2022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @} 2023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 2024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_OTPBL_LOCKBL) 2026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** 2027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Configure the OTP Block Lock. 2028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param OTP_Block specifies the OTP Block to lock. 2029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be a value of @ref FLASHEx_OTP_Blocks 2030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None 2031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 2032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_OTP_LockConfig(uint32_t OTP_Block) 2033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1214 .loc 1 2033 1 is_stmt 1 view -0 1215 .cfi_startproc 1216 @ args = 0, pretend = 0, frame = 0 1217 @ frame_needed = 0, uses_anonymous_args = 0 1218 @ link register save eliminated. 2034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */ 2035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OTP_BLOCK(OTP_Block)); 1219 .loc 1 2035 3 view .LVU376 2036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure the OTP Block lock in the option bytes register */ 2038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->OTPBL_PRG |= (OTP_Block & FLASH_OTPBL_LOCKBL); 1220 .loc 1 2038 3 view .LVU377 1221 .loc 1 2038 8 is_stmt 0 view .LVU378 1222 0000 024A ldr r2, .L111 1223 0002 D36E ldr r3, [r2, #108] 1224 .loc 1 2038 34 view .LVU379 1225 0004 80B2 uxth r0, r0 1226 .LVL91: 1227 .loc 1 2038 20 view .LVU380 1228 0006 0343 orrs r3, r3, r0 1229 0008 D366 str r3, [r2, #108] 2039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1230 .loc 1 2039 1 view .LVU381 1231 000a 7047 bx lr 1232 .L112: 1233 .align 2 1234 .L111: 1235 000c 00200052 .word 1375739904 1236 .cfi_endproc 1237 .LFE363: 1239 .section .text.FLASH_OB_OTP_GetLock,"ax",%progbits 1240 .align 1 1241 .syntax unified 1242 .thumb 1243 .thumb_func 1245 FLASH_OB_OTP_GetLock: 1246 .LFB364: 2040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 59 2042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Get the OTP Block Lock. 2043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval OTP_Block specifies the OTP Block to lock. 2044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This return value can be a value of @ref FLASHEx_OTP_Blocks 2045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */ 2046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static uint32_t FLASH_OB_OTP_GetLock(void) 2047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1247 .loc 1 2047 1 is_stmt 1 view -0 1248 .cfi_startproc 1249 @ args = 0, pretend = 0, frame = 0 1250 @ frame_needed = 0, uses_anonymous_args = 0 1251 @ link register save eliminated. 2048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return (FLASH->OTPBL_CUR); 1252 .loc 1 2048 3 view .LVU383 1253 .loc 1 2048 16 is_stmt 0 view .LVU384 1254 0000 014B ldr r3, .L114 1255 0002 986E ldr r0, [r3, #104] 2049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1256 .loc 1 2049 1 view .LVU385 1257 0004 7047 bx lr 1258 .L115: 1259 0006 00BF .align 2 1260 .L114: 1261 0008 00200052 .word 1375739904 1262 .cfi_endproc 1263 .LFE364: 1265 .section .text.HAL_FLASHEx_OBProgram,"ax",%progbits 1266 .align 1 1267 .global HAL_FLASHEx_OBProgram 1268 .syntax unified 1269 .thumb 1270 .thumb_func 1272 HAL_FLASHEx_OBProgram: 1273 .LVL92: 1274 .LFB337: 425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status; 1275 .loc 1 425 1 is_stmt 1 view -0 1276 .cfi_startproc 1277 @ args = 0, pretend = 0, frame = 0 1278 @ frame_needed = 0, uses_anonymous_args = 0 425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status; 1279 .loc 1 425 1 is_stmt 0 view .LVU387 1280 0000 38B5 push {r3, r4, r5, lr} 1281 .cfi_def_cfa_offset 16 1282 .cfi_offset 3, -16 1283 .cfi_offset 4, -12 1284 .cfi_offset 5, -8 1285 .cfi_offset 14, -4 426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1286 .loc 1 426 3 is_stmt 1 view .LVU388 429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1287 .loc 1 429 3 view .LVU389 432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1288 .loc 1 432 3 view .LVU390 432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1289 .loc 1 432 3 view .LVU391 1290 0002 394B ldr r3, .L139 1291 0004 1B7D ldrb r3, [r3, #20] @ zero_extendqisi2 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 60 1292 0006 012B cmp r3, #1 1293 0008 6BD0 beq .L127 1294 000a 0446 mov r4, r0 432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1295 .loc 1 432 3 discriminator 2 view .LVU392 1296 000c 364B ldr r3, .L139 1297 000e 0121 movs r1, #1 1298 0010 1975 strb r1, [r3, #20] 432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1299 .loc 1 432 3 view .LVU393 435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1300 .loc 1 435 3 view .LVU394 435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1301 .loc 1 435 20 is_stmt 0 view .LVU395 1302 0012 0022 movs r2, #0 1303 0014 9A61 str r2, [r3, #24] 438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1304 .loc 1 438 3 is_stmt 1 view .LVU396 438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1305 .loc 1 438 6 is_stmt 0 view .LVU397 1306 0016 4CF25030 movw r0, #50000 1307 .LVL93: 438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1308 .loc 1 438 6 view .LVU398 1309 001a FFF7FEFF bl FLASH_WaitForLastOperation 1310 .LVL94: 438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1311 .loc 1 438 5 discriminator 1 view .LVU399 1312 001e 28B1 cbz r0, .L131 440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1313 .loc 1 440 12 view .LVU400 1314 0020 0125 movs r5, #1 1315 .L118: 553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1316 .loc 1 553 3 is_stmt 1 view .LVU401 553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1317 .loc 1 553 3 view .LVU402 1318 0022 314B ldr r3, .L139 1319 0024 0022 movs r2, #0 1320 0026 1A75 strb r2, [r3, #20] 553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1321 .loc 1 553 3 view .LVU403 555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1322 .loc 1 555 3 view .LVU404 1323 .LVL95: 1324 .L117: 556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1325 .loc 1 556 1 is_stmt 0 view .LVU405 1326 0028 2846 mov r0, r5 1327 002a 38BD pop {r3, r4, r5, pc} 1328 .LVL96: 1329 .L131: 443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1330 .loc 1 443 8 is_stmt 1 view .LVU406 443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1331 .loc 1 443 11 is_stmt 0 view .LVU407 1332 002c 0221 movs r1, #2 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 61 1333 002e 4CF25030 movw r0, #50000 1334 0032 FFF7FEFF bl FLASH_WaitForLastOperation 1335 .LVL97: 443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1336 .loc 1 443 10 discriminator 1 view .LVU408 1337 0036 0546 mov r5, r0 1338 0038 0028 cmp r0, #0 1339 003a 50D1 bne .L129 450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1340 .loc 1 450 5 is_stmt 1 view .LVU409 1341 .LVL98: 453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1342 .loc 1 453 3 view .LVU410 456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1343 .loc 1 456 5 view .LVU411 456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1344 .loc 1 456 16 is_stmt 0 view .LVU412 1345 003c 2368 ldr r3, [r4] 456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1346 .loc 1 456 7 view .LVU413 1347 003e 13F0010F tst r3, #1 1348 0042 06D0 beq .L119 458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1349 .loc 1 458 7 is_stmt 1 view .LVU414 460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1350 .loc 1 460 7 view .LVU415 460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1351 .loc 1 460 17 is_stmt 0 view .LVU416 1352 0044 6368 ldr r3, [r4, #4] 460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1353 .loc 1 460 9 view .LVU417 1354 0046 012B cmp r3, #1 1355 0048 23D0 beq .L132 468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1356 .loc 1 468 9 is_stmt 1 view .LVU418 1357 004a E169 ldr r1, [r4, #28] 1358 004c A068 ldr r0, [r4, #8] 1359 004e FFF7FEFF bl FLASH_OB_DisableWRP 1360 .LVL99: 1361 .L119: 473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1362 .loc 1 473 5 view .LVU419 473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1363 .loc 1 473 16 is_stmt 0 view .LVU420 1364 0052 2368 ldr r3, [r4] 473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1365 .loc 1 473 7 view .LVU421 1366 0054 13F0020F tst r3, #2 1367 0058 20D1 bne .L133 1368 .L121: 480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1369 .loc 1 480 5 is_stmt 1 view .LVU422 480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1370 .loc 1 480 16 is_stmt 0 view .LVU423 1371 005a 2368 ldr r3, [r4] 480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1372 .loc 1 480 7 view .LVU424 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 62 1373 005c 13F0040F tst r3, #4 1374 0060 20D1 bne .L134 1375 .L122: 487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1376 .loc 1 487 5 is_stmt 1 view .LVU425 487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1377 .loc 1 487 16 is_stmt 0 view .LVU426 1378 0062 2368 ldr r3, [r4] 487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1379 .loc 1 487 7 view .LVU427 1380 0064 13F0080F tst r3, #8 1381 0068 21D1 bne .L135 1382 .L123: 496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1383 .loc 1 496 5 is_stmt 1 view .LVU428 496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1384 .loc 1 496 16 is_stmt 0 view .LVU429 1385 006a 2368 ldr r3, [r4] 496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1386 .loc 1 496 7 view .LVU430 1387 006c 13F0100F tst r3, #16 1388 0070 24D1 bne .L136 1389 .L124: 515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1390 .loc 1 515 5 is_stmt 1 view .LVU431 515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1391 .loc 1 515 16 is_stmt 0 view .LVU432 1392 0072 2368 ldr r3, [r4] 515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1393 .loc 1 515 7 view .LVU433 1394 0074 13F0400F tst r3, #64 1395 0078 24D1 bne .L137 1396 .L125: 522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1397 .loc 1 522 5 is_stmt 1 view .LVU434 522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1398 .loc 1 522 16 is_stmt 0 view .LVU435 1399 007a 2368 ldr r3, [r4] 522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1400 .loc 1 522 7 view .LVU436 1401 007c 13F0200F tst r3, #32 1402 0080 26D1 bne .L138 1403 .L126: 529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1404 .loc 1 529 5 is_stmt 1 view .LVU437 529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1405 .loc 1 529 16 is_stmt 0 view .LVU438 1406 0082 2368 ldr r3, [r4] 529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1407 .loc 1 529 7 view .LVU439 1408 0084 13F0800F tst r3, #128 1409 0088 CBD0 beq .L118 531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1410 .loc 1 531 7 is_stmt 1 view .LVU440 1411 008a 606C ldr r0, [r4, #68] 1412 008c FFF7FEFF bl FLASH_OB_OTP_LockConfig 1413 .LVL100: ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 63 1414 0090 C7E7 b .L118 1415 .L132: 463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1416 .loc 1 463 9 view .LVU441 1417 0092 E169 ldr r1, [r4, #28] 1418 0094 A068 ldr r0, [r4, #8] 1419 0096 FFF7FEFF bl FLASH_OB_EnableWRP 1420 .LVL101: 1421 009a DAE7 b .L119 1422 .L133: 476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1423 .loc 1 476 7 view .LVU442 1424 009c E068 ldr r0, [r4, #12] 1425 009e FFF7FEFF bl FLASH_OB_RDPConfig 1426 .LVL102: 1427 00a2 DAE7 b .L121 1428 .L134: 483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1429 .loc 1 483 7 view .LVU443 1430 00a4 A169 ldr r1, [r4, #24] 1431 00a6 6069 ldr r0, [r4, #20] 1432 00a8 FFF7FEFF bl FLASH_OB_UserConfig 1433 .LVL103: 1434 00ac D9E7 b .L122 1435 .L135: 489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1436 .loc 1 489 7 view .LVU444 492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1437 .loc 1 492 7 view .LVU445 1438 00ae E369 ldr r3, [r4, #28] 1439 00b0 A26A ldr r2, [r4, #40] 1440 00b2 616A ldr r1, [r4, #36] 1441 00b4 206A ldr r0, [r4, #32] 1442 00b6 FFF7FEFF bl FLASH_OB_PCROPConfig 1443 .LVL104: 1444 00ba D6E7 b .L123 1445 .L136: 498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1446 .loc 1 498 7 view .LVU446 1447 00bc 2069 ldr r0, [r4, #16] 1448 00be FFF7FEFF bl FLASH_OB_BOR_LevelConfig 1449 .LVL105: 1450 00c2 D6E7 b .L124 1451 .L137: 517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1452 .loc 1 517 7 view .LVU447 1453 00c4 626B ldr r2, [r4, #52] 1454 00c6 216B ldr r1, [r4, #48] 1455 00c8 E06A ldr r0, [r4, #44] 1456 00ca FFF7FEFF bl FLASH_OB_BootAddConfig 1457 .LVL106: 1458 00ce D4E7 b .L125 1459 .L138: 524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1460 .loc 1 524 7 view .LVU448 1461 00d0 E369 ldr r3, [r4, #28] 1462 00d2 226C ldr r2, [r4, #64] ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 64 1463 00d4 E16B ldr r1, [r4, #60] 1464 00d6 A06B ldr r0, [r4, #56] 1465 00d8 FFF7FEFF bl FLASH_OB_SecureAreaConfig 1466 .LVL107: 1467 00dc D1E7 b .L126 1468 .LVL108: 1469 .L129: 445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1470 .loc 1 445 12 is_stmt 0 view .LVU449 1471 00de 0125 movs r5, #1 1472 00e0 9FE7 b .L118 1473 .LVL109: 1474 .L127: 432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1475 .loc 1 432 3 discriminator 1 view .LVU450 1476 00e2 0225 movs r5, #2 1477 00e4 A0E7 b .L117 1478 .L140: 1479 00e6 00BF .align 2 1480 .L139: 1481 00e8 00000000 .word pFlash 1482 .cfi_endproc 1483 .LFE337: 1485 .section .text.HAL_FLASHEx_OBGetConfig,"ax",%progbits 1486 .align 1 1487 .global HAL_FLASHEx_OBGetConfig 1488 .syntax unified 1489 .thumb 1490 .thumb_func 1492 HAL_FLASHEx_OBGetConfig: 1493 .LVL110: 1494 .LFB338: 568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->OptionType = (OPTIONBYTE_USER | OPTIONBYTE_RDP | OPTIONBYTE_BOR); 1495 .loc 1 568 1 is_stmt 1 view -0 1496 .cfi_startproc 1497 @ args = 0, pretend = 0, frame = 0 1498 @ frame_needed = 0, uses_anonymous_args = 0 568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->OptionType = (OPTIONBYTE_USER | OPTIONBYTE_RDP | OPTIONBYTE_BOR); 1499 .loc 1 568 1 is_stmt 0 view .LVU452 1500 0000 10B5 push {r4, lr} 1501 .cfi_def_cfa_offset 8 1502 .cfi_offset 4, -8 1503 .cfi_offset 14, -4 1504 0002 0446 mov r4, r0 569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1505 .loc 1 569 3 is_stmt 1 view .LVU453 569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1506 .loc 1 569 23 is_stmt 0 view .LVU454 1507 0004 1623 movs r3, #22 1508 0006 0360 str r3, [r0] 572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1509 .loc 1 572 3 is_stmt 1 view .LVU455 572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1510 .loc 1 572 23 is_stmt 0 view .LVU456 1511 0008 FFF7FEFF bl FLASH_OB_GetRDP 1512 .LVL111: 572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 65 1513 .loc 1 572 21 discriminator 1 view .LVU457 1514 000c E060 str r0, [r4, #12] 575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1515 .loc 1 575 3 is_stmt 1 view .LVU458 575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1516 .loc 1 575 25 is_stmt 0 view .LVU459 1517 000e FFF7FEFF bl FLASH_OB_GetUser 1518 .LVL112: 575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1519 .loc 1 575 23 discriminator 1 view .LVU460 1520 0012 A061 str r0, [r4, #24] 578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1521 .loc 1 578 3 is_stmt 1 view .LVU461 578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1522 .loc 1 578 23 is_stmt 0 view .LVU462 1523 0014 FFF7FEFF bl FLASH_OB_GetBOR 1524 .LVL113: 578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1525 .loc 1 578 21 discriminator 1 view .LVU463 1526 0018 2061 str r0, [r4, #16] 581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else 1527 .loc 1 581 3 is_stmt 1 view .LVU464 581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else 1528 .loc 1 581 15 is_stmt 0 view .LVU465 1529 001a E269 ldr r2, [r4, #28] 581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else 1530 .loc 1 581 40 view .LVU466 1531 001c 531E subs r3, r2, #1 581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else 1532 .loc 1 581 6 view .LVU467 1533 001e 012B cmp r3, #1 1534 0020 10D9 bls .L144 1535 .L142: 599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE) 1536 .loc 1 599 3 is_stmt 1 view .LVU468 1537 0022 04F13401 add r1, r4, #52 1538 0026 04F13000 add r0, r4, #48 1539 002a FFF7FEFF bl FLASH_OB_GetBootAdd 1540 .LVL114: 606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /*DUAL_CORE*/ 1541 .loc 1 606 3 view .LVU469 606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /*DUAL_CORE*/ 1542 .loc 1 606 10 is_stmt 0 view .LVU470 1543 002e 2368 ldr r3, [r4] 606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /*DUAL_CORE*/ 1544 .loc 1 606 23 view .LVU471 1545 0030 43F04002 orr r2, r3, #64 1546 0034 2260 str r2, [r4] 610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1547 .loc 1 610 3 is_stmt 1 view .LVU472 610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1548 .loc 1 610 23 is_stmt 0 view .LVU473 1549 0036 43F0C003 orr r3, r3, #192 1550 003a 2360 str r3, [r4] 613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OTPBL_LOCKBL */ 1551 .loc 1 613 3 is_stmt 1 view .LVU474 613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OTPBL_LOCKBL */ ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 66 1552 .loc 1 613 27 is_stmt 0 view .LVU475 1553 003c FFF7FEFF bl FLASH_OB_OTP_GetLock 1554 .LVL115: 613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OTPBL_LOCKBL */ 1555 .loc 1 613 25 discriminator 1 view .LVU476 1556 0040 6064 str r0, [r4, #68] 629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1557 .loc 1 629 1 view .LVU477 1558 0042 10BD pop {r4, pc} 1559 .LVL116: 1560 .L144: 586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1561 .loc 1 586 5 is_stmt 1 view .LVU478 586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1562 .loc 1 586 12 is_stmt 0 view .LVU479 1563 0044 2368 ldr r3, [r4] 586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1564 .loc 1 586 25 view .LVU480 1565 0046 43F02903 orr r3, r3, #41 1566 004a 2146 mov r1, r4 1567 004c 41F8083B str r3, [r1], #8 589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1568 .loc 1 589 5 is_stmt 1 view .LVU481 1569 0050 201D adds r0, r4, #4 1570 0052 FFF7FEFF bl FLASH_OB_GetWRP 1571 .LVL117: 592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1572 .loc 1 592 5 view .LVU482 1573 0056 E369 ldr r3, [r4, #28] 1574 0058 04F12802 add r2, r4, #40 1575 005c 04F12401 add r1, r4, #36 1576 0060 04F12000 add r0, r4, #32 1577 0064 FFF7FEFF bl FLASH_OB_GetPCROP 1578 .LVL118: 595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1579 .loc 1 595 5 view .LVU483 1580 0068 E369 ldr r3, [r4, #28] 1581 006a 04F14002 add r2, r4, #64 1582 006e 04F13C01 add r1, r4, #60 1583 0072 04F13800 add r0, r4, #56 1584 0076 FFF7FEFF bl FLASH_OB_GetSecureArea 1585 .LVL119: 1586 007a D2E7 b .L142 1587 .cfi_endproc 1588 .LFE338: 1590 .section .text.HAL_FLASHEx_Unlock_Bank1,"ax",%progbits 1591 .align 1 1592 .global HAL_FLASHEx_Unlock_Bank1 1593 .syntax unified 1594 .thumb 1595 .thumb_func 1597 HAL_FLASHEx_Unlock_Bank1: 1598 .LFB339: 636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(READ_BIT(FLASH->CR1, FLASH_CR_LOCK) != 0U) 1599 .loc 1 636 1 view -0 1600 .cfi_startproc 1601 @ args = 0, pretend = 0, frame = 0 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 67 1602 @ frame_needed = 0, uses_anonymous_args = 0 1603 @ link register save eliminated. 637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1604 .loc 1 637 3 view .LVU485 637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1605 .loc 1 637 6 is_stmt 0 view .LVU486 1606 0000 0A4B ldr r3, .L149 1607 0002 DB68 ldr r3, [r3, #12] 637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1608 .loc 1 637 5 view .LVU487 1609 0004 13F0010F tst r3, #1 1610 0008 0BD0 beq .L147 640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** WRITE_REG(FLASH->KEYR1, FLASH_KEY2); 1611 .loc 1 640 5 is_stmt 1 view .LVU488 1612 000a 084B ldr r3, .L149 1613 000c 084A ldr r2, .L149+4 1614 000e 5A60 str r2, [r3, #4] 641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1615 .loc 1 641 5 view .LVU489 1616 0010 02F18832 add r2, r2, #-2004318072 1617 0014 5A60 str r2, [r3, #4] 644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1618 .loc 1 644 5 view .LVU490 644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1619 .loc 1 644 9 is_stmt 0 view .LVU491 1620 0016 DB68 ldr r3, [r3, #12] 644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1621 .loc 1 644 8 view .LVU492 1622 0018 13F0010F tst r3, #1 1623 001c 03D1 bne .L148 650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1624 .loc 1 650 10 view .LVU493 1625 001e 0020 movs r0, #0 1626 0020 7047 bx lr 1627 .L147: 1628 0022 0020 movs r0, #0 1629 0024 7047 bx lr 1630 .L148: 646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1631 .loc 1 646 14 view .LVU494 1632 0026 0120 movs r0, #1 651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1633 .loc 1 651 1 view .LVU495 1634 0028 7047 bx lr 1635 .L150: 1636 002a 00BF .align 2 1637 .L149: 1638 002c 00200052 .word 1375739904 1639 0030 23016745 .word 1164378403 1640 .cfi_endproc 1641 .LFE339: 1643 .section .text.HAL_FLASHEx_Lock_Bank1,"ax",%progbits 1644 .align 1 1645 .global HAL_FLASHEx_Lock_Bank1 1646 .syntax unified 1647 .thumb 1648 .thumb_func ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 68 1650 HAL_FLASHEx_Lock_Bank1: 1651 .LFB340: 658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set the LOCK Bit to lock the FLASH Bank1 Registers access */ 1652 .loc 1 658 1 is_stmt 1 view -0 1653 .cfi_startproc 1654 @ args = 0, pretend = 0, frame = 0 1655 @ frame_needed = 0, uses_anonymous_args = 0 1656 @ link register save eliminated. 660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return HAL_OK; 1657 .loc 1 660 3 view .LVU497 1658 0000 034A ldr r2, .L152 1659 0002 D368 ldr r3, [r2, #12] 1660 0004 43F00103 orr r3, r3, #1 1661 0008 D360 str r3, [r2, #12] 661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1662 .loc 1 661 3 view .LVU498 662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1663 .loc 1 662 1 is_stmt 0 view .LVU499 1664 000a 0020 movs r0, #0 1665 000c 7047 bx lr 1666 .L153: 1667 000e 00BF .align 2 1668 .L152: 1669 0010 00200052 .word 1375739904 1670 .cfi_endproc 1671 .LFE340: 1673 .section .text.HAL_FLASHEx_Unlock_Bank2,"ax",%progbits 1674 .align 1 1675 .global HAL_FLASHEx_Unlock_Bank2 1676 .syntax unified 1677 .thumb 1678 .thumb_func 1680 HAL_FLASHEx_Unlock_Bank2: 1681 .LFB341: 670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(READ_BIT(FLASH->CR2, FLASH_CR_LOCK) != 0U) 1682 .loc 1 670 1 is_stmt 1 view -0 1683 .cfi_startproc 1684 @ args = 0, pretend = 0, frame = 0 1685 @ frame_needed = 0, uses_anonymous_args = 0 1686 @ link register save eliminated. 671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1687 .loc 1 671 3 view .LVU501 671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1688 .loc 1 671 6 is_stmt 0 view .LVU502 1689 0000 0C4B ldr r3, .L158 1690 0002 D3F80C31 ldr r3, [r3, #268] 671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1691 .loc 1 671 5 view .LVU503 1692 0006 13F0010F tst r3, #1 1693 000a 0ED0 beq .L156 674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** WRITE_REG(FLASH->KEYR2, FLASH_KEY2); 1694 .loc 1 674 5 is_stmt 1 view .LVU504 1695 000c 094B ldr r3, .L158 1696 000e 0A4A ldr r2, .L158+4 1697 0010 C3F80421 str r2, [r3, #260] 675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1698 .loc 1 675 5 view .LVU505 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 69 1699 0014 02F18832 add r2, r2, #-2004318072 1700 0018 C3F80421 str r2, [r3, #260] 678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1701 .loc 1 678 5 view .LVU506 678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1702 .loc 1 678 9 is_stmt 0 view .LVU507 1703 001c D3F80C31 ldr r3, [r3, #268] 678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1704 .loc 1 678 8 view .LVU508 1705 0020 13F0010F tst r3, #1 1706 0024 03D1 bne .L157 684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1707 .loc 1 684 10 view .LVU509 1708 0026 0020 movs r0, #0 1709 0028 7047 bx lr 1710 .L156: 1711 002a 0020 movs r0, #0 1712 002c 7047 bx lr 1713 .L157: 680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1714 .loc 1 680 14 view .LVU510 1715 002e 0120 movs r0, #1 685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1716 .loc 1 685 1 view .LVU511 1717 0030 7047 bx lr 1718 .L159: 1719 0032 00BF .align 2 1720 .L158: 1721 0034 00200052 .word 1375739904 1722 0038 23016745 .word 1164378403 1723 .cfi_endproc 1724 .LFE341: 1726 .section .text.HAL_FLASHEx_Lock_Bank2,"ax",%progbits 1727 .align 1 1728 .global HAL_FLASHEx_Lock_Bank2 1729 .syntax unified 1730 .thumb 1731 .thumb_func 1733 HAL_FLASHEx_Lock_Bank2: 1734 .LFB342: 692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set the LOCK Bit to lock the FLASH Bank2 Registers access */ 1735 .loc 1 692 1 is_stmt 1 view -0 1736 .cfi_startproc 1737 @ args = 0, pretend = 0, frame = 0 1738 @ frame_needed = 0, uses_anonymous_args = 0 1739 @ link register save eliminated. 694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return HAL_OK; 1740 .loc 1 694 3 view .LVU513 1741 0000 044A ldr r2, .L161 1742 0002 D2F80C31 ldr r3, [r2, #268] 1743 0006 43F00103 orr r3, r3, #1 1744 000a C2F80C31 str r3, [r2, #268] 695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1745 .loc 1 695 3 view .LVU514 696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */ 1746 .loc 1 696 1 is_stmt 0 view .LVU515 1747 000e 0020 movs r0, #0 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 70 1748 0010 7047 bx lr 1749 .L162: 1750 0012 00BF .align 2 1751 .L161: 1752 0014 00200052 .word 1375739904 1753 .cfi_endproc 1754 .LFE342: 1756 .section .text.HAL_FLASHEx_ComputeCRC,"ax",%progbits 1757 .align 1 1758 .global HAL_FLASHEx_ComputeCRC 1759 .syntax unified 1760 .thumb 1761 .thumb_func 1763 HAL_FLASHEx_ComputeCRC: 1764 .LVL120: 1765 .LFB343: 711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status; 1766 .loc 1 711 1 is_stmt 1 view -0 1767 .cfi_startproc 1768 @ args = 0, pretend = 0, frame = 0 1769 @ frame_needed = 0, uses_anonymous_args = 0 711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status; 1770 .loc 1 711 1 is_stmt 0 view .LVU517 1771 0000 70B5 push {r4, r5, r6, lr} 1772 .cfi_def_cfa_offset 16 1773 .cfi_offset 4, -16 1774 .cfi_offset 5, -12 1775 .cfi_offset 6, -8 1776 .cfi_offset 14, -4 1777 0002 0446 mov r4, r0 1778 0004 0E46 mov r6, r1 712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t sector_index; 1779 .loc 1 712 3 is_stmt 1 view .LVU518 713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1780 .loc 1 713 3 view .LVU519 716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_TYPECRC(pCRCInit->TypeCRC)); 1781 .loc 1 716 3 view .LVU520 717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1782 .loc 1 717 3 view .LVU521 720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1783 .loc 1 720 3 view .LVU522 720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1784 .loc 1 720 12 is_stmt 0 view .LVU523 1785 0006 4CF25030 movw r0, #50000 1786 .LVL121: 720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1787 .loc 1 720 12 view .LVU524 1788 000a FFF7FEFF bl FLASH_OB_WaitForLastOperation 1789 .LVL122: 722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1790 .loc 1 722 3 is_stmt 1 view .LVU525 722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1791 .loc 1 722 6 is_stmt 0 view .LVU526 1792 000e 0028 cmp r0, #0 1793 0010 40F09D80 bne .L164 724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1794 .loc 1 724 5 is_stmt 1 view .LVU527 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 71 724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1795 .loc 1 724 17 is_stmt 0 view .LVU528 1796 0014 A368 ldr r3, [r4, #8] 724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1797 .loc 1 724 8 view .LVU529 1798 0016 012B cmp r3, #1 1799 0018 25D0 beq .L177 776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1800 .loc 1 776 7 is_stmt 1 view .LVU530 776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1801 .loc 1 776 12 is_stmt 0 view .LVU531 1802 001a 504B ldr r3, .L180 1803 001c D3F80C21 ldr r2, [r3, #268] 776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1804 .loc 1 776 18 view .LVU532 1805 0020 42F40042 orr r2, r2, #32768 1806 0024 C3F80C21 str r2, [r3, #268] 779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1807 .loc 1 779 7 is_stmt 1 view .LVU533 779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1808 .loc 1 779 12 is_stmt 0 view .LVU534 1809 0028 D3F81421 ldr r2, [r3, #276] 779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1810 .loc 1 779 19 view .LVU535 1811 002c 42F0C052 orr r2, r2, #402653184 1812 0030 C3F81421 str r2, [r3, #276] 782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1813 .loc 1 782 7 is_stmt 1 view .LVU536 782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1814 .loc 1 782 12 is_stmt 0 view .LVU537 1815 0034 D3F85021 ldr r2, [r3, #336] 782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1816 .loc 1 782 56 view .LVU538 1817 0038 6168 ldr r1, [r4, #4] 782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1818 .loc 1 782 78 view .LVU539 1819 003a 2068 ldr r0, [r4] 782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1820 .loc 1 782 68 view .LVU540 1821 003c 0143 orrs r1, r1, r0 782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1822 .loc 1 782 21 view .LVU541 1823 003e 0A43 orrs r2, r2, r1 1824 0040 42F40032 orr r2, r2, #131072 1825 0044 C3F85021 str r2, [r3, #336] 784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1826 .loc 1 784 7 is_stmt 1 view .LVU542 784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1827 .loc 1 784 19 is_stmt 0 view .LVU543 1828 0048 2368 ldr r3, [r4] 784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1829 .loc 1 784 10 view .LVU544 1830 004a B3F5807F cmp r3, #256 1831 004e 53D0 beq .L178 795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1832 .loc 1 795 12 is_stmt 1 view .LVU545 795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 72 1833 .loc 1 795 15 is_stmt 0 view .LVU546 1834 0050 434A ldr r2, .L180+4 1835 0052 9342 cmp r3, r2 1836 0054 7CD1 bne .L175 798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1837 .loc 1 798 9 is_stmt 1 view .LVU547 798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1838 .loc 1 798 14 is_stmt 0 view .LVU548 1839 0056 414A ldr r2, .L180 1840 0058 D2F85031 ldr r3, [r2, #336] 798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1841 .loc 1 798 23 view .LVU549 1842 005c 43F48003 orr r3, r3, #4194304 1843 0060 C2F85031 str r3, [r2, #336] 1844 0064 5BE0 b .L174 1845 .L177: 727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1846 .loc 1 727 7 is_stmt 1 view .LVU550 727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1847 .loc 1 727 12 is_stmt 0 view .LVU551 1848 0066 3D4B ldr r3, .L180 1849 0068 DA68 ldr r2, [r3, #12] 727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1850 .loc 1 727 18 view .LVU552 1851 006a 42F40042 orr r2, r2, #32768 1852 006e DA60 str r2, [r3, #12] 730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1853 .loc 1 730 7 is_stmt 1 view .LVU553 730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1854 .loc 1 730 12 is_stmt 0 view .LVU554 1855 0070 5A69 ldr r2, [r3, #20] 730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1856 .loc 1 730 19 view .LVU555 1857 0072 42F0C052 orr r2, r2, #402653184 1858 0076 5A61 str r2, [r3, #20] 733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1859 .loc 1 733 7 is_stmt 1 view .LVU556 733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1860 .loc 1 733 12 is_stmt 0 view .LVU557 1861 0078 1A6D ldr r2, [r3, #80] 733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1862 .loc 1 733 56 view .LVU558 1863 007a 6168 ldr r1, [r4, #4] 733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1864 .loc 1 733 78 view .LVU559 1865 007c 2068 ldr r0, [r4] 733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1866 .loc 1 733 68 view .LVU560 1867 007e 0143 orrs r1, r1, r0 733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1868 .loc 1 733 21 view .LVU561 1869 0080 0A43 orrs r2, r2, r1 1870 0082 42F40032 orr r2, r2, #131072 1871 0086 1A65 str r2, [r3, #80] 735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1872 .loc 1 735 7 is_stmt 1 view .LVU562 735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 73 1873 .loc 1 735 19 is_stmt 0 view .LVU563 1874 0088 2368 ldr r3, [r4] 735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1875 .loc 1 735 10 view .LVU564 1876 008a B3F5807F cmp r3, #256 1877 008e 08D0 beq .L179 746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1878 .loc 1 746 12 is_stmt 1 view .LVU565 746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1879 .loc 1 746 15 is_stmt 0 view .LVU566 1880 0090 334A ldr r2, .L180+4 1881 0092 9342 cmp r3, r2 1882 0094 2AD1 bne .L170 749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1883 .loc 1 749 9 is_stmt 1 view .LVU567 749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1884 .loc 1 749 14 is_stmt 0 view .LVU568 1885 0096 314A ldr r2, .L180 1886 0098 136D ldr r3, [r2, #80] 749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1887 .loc 1 749 23 view .LVU569 1888 009a 43F48003 orr r3, r3, #4194304 1889 009e 1365 str r3, [r2, #80] 1890 00a0 10E0 b .L169 1891 .L179: 738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1892 .loc 1 738 9 is_stmt 1 view .LVU570 738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1893 .loc 1 738 14 is_stmt 0 view .LVU571 1894 00a2 2E4A ldr r2, .L180 1895 00a4 136D ldr r3, [r2, #80] 738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1896 .loc 1 738 23 view .LVU572 1897 00a6 43F48063 orr r3, r3, #1024 1898 00aa 1365 str r3, [r2, #80] 741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1899 .loc 1 741 9 is_stmt 1 view .LVU573 741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1900 .loc 1 741 26 is_stmt 0 view .LVU574 1901 00ac E568 ldr r5, [r4, #12] 1902 .LVL123: 741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1903 .loc 1 741 9 view .LVU575 1904 00ae 04E0 b .L167 1905 .L168: 743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1906 .loc 1 743 11 is_stmt 1 view .LVU576 1907 00b0 0121 movs r1, #1 1908 00b2 2846 mov r0, r5 1909 00b4 FFF7FEFF bl FLASH_CRC_AddSector 1910 .LVL124: 741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1911 .loc 1 741 115 discriminator 3 view .LVU577 1912 00b8 0135 adds r5, r5, #1 1913 .LVL125: 1914 .L167: 741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 74 1915 .loc 1 741 59 discriminator 1 view .LVU578 741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1916 .loc 1 741 70 is_stmt 0 discriminator 1 view .LVU579 1917 00ba 2369 ldr r3, [r4, #16] 741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1918 .loc 1 741 92 discriminator 1 view .LVU580 1919 00bc E268 ldr r2, [r4, #12] 741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1920 .loc 1 741 82 discriminator 1 view .LVU581 1921 00be 1344 add r3, r3, r2 741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1922 .loc 1 741 59 discriminator 1 view .LVU582 1923 00c0 AB42 cmp r3, r5 1924 00c2 F5D8 bhi .L168 1925 .LVL126: 1926 .L169: 758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1927 .loc 1 758 7 is_stmt 1 view .LVU583 758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1928 .loc 1 758 12 is_stmt 0 view .LVU584 1929 00c4 254C ldr r4, .L180 1930 .LVL127: 758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1931 .loc 1 758 12 view .LVU585 1932 00c6 236D ldr r3, [r4, #80] 758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1933 .loc 1 758 21 view .LVU586 1934 00c8 43F48033 orr r3, r3, #65536 1935 00cc 2365 str r3, [r4, #80] 761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1936 .loc 1 761 7 is_stmt 1 view .LVU587 761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1937 .loc 1 761 16 is_stmt 0 view .LVU588 1938 00ce 0121 movs r1, #1 1939 00d0 4CF25030 movw r0, #50000 1940 00d4 FFF7FEFF bl FLASH_CRC_WaitForLastOperation 1941 .LVL128: 764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1942 .loc 1 764 7 is_stmt 1 view .LVU589 764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1943 .loc 1 764 28 is_stmt 0 view .LVU590 1944 00d8 E36D ldr r3, [r4, #92] 764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1945 .loc 1 764 21 view .LVU591 1946 00da 3360 str r3, [r6] 767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1947 .loc 1 767 7 is_stmt 1 view .LVU592 767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1948 .loc 1 767 12 is_stmt 0 view .LVU593 1949 00dc E368 ldr r3, [r4, #12] 767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1950 .loc 1 767 18 view .LVU594 1951 00de 23F40043 bic r3, r3, #32768 1952 00e2 E360 str r3, [r4, #12] 770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1953 .loc 1 770 7 is_stmt 1 view .LVU595 1954 00e4 4FF0C053 mov r3, #402653184 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 75 1955 00e8 6361 str r3, [r4, #20] 1956 00ea 30E0 b .L164 1957 .LVL129: 1958 .L170: 754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1959 .loc 1 754 9 view .LVU596 1960 00ec 0122 movs r2, #1 1961 00ee A169 ldr r1, [r4, #24] 1962 00f0 6069 ldr r0, [r4, #20] 1963 00f2 FFF7FEFF bl FLASH_CRC_SelectAddress 1964 .LVL130: 1965 00f6 E5E7 b .L169 1966 .L178: 787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1967 .loc 1 787 9 view .LVU597 787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1968 .loc 1 787 14 is_stmt 0 view .LVU598 1969 00f8 184A ldr r2, .L180 1970 00fa D2F85031 ldr r3, [r2, #336] 787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 1971 .loc 1 787 23 view .LVU599 1972 00fe 43F48063 orr r3, r3, #1024 1973 0102 C2F85031 str r3, [r2, #336] 790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1974 .loc 1 790 9 is_stmt 1 view .LVU600 790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1975 .loc 1 790 26 is_stmt 0 view .LVU601 1976 0106 E568 ldr r5, [r4, #12] 1977 .LVL131: 790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1978 .loc 1 790 9 view .LVU602 1979 0108 04E0 b .L172 1980 .L173: 792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 1981 .loc 1 792 11 is_stmt 1 view .LVU603 1982 010a 0221 movs r1, #2 1983 010c 2846 mov r0, r5 1984 010e FFF7FEFF bl FLASH_CRC_AddSector 1985 .LVL132: 790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1986 .loc 1 790 115 discriminator 3 view .LVU604 1987 0112 0135 adds r5, r5, #1 1988 .LVL133: 1989 .L172: 790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1990 .loc 1 790 59 discriminator 1 view .LVU605 790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1991 .loc 1 790 70 is_stmt 0 discriminator 1 view .LVU606 1992 0114 2369 ldr r3, [r4, #16] 790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1993 .loc 1 790 92 discriminator 1 view .LVU607 1994 0116 E268 ldr r2, [r4, #12] 790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1995 .loc 1 790 82 discriminator 1 view .LVU608 1996 0118 1344 add r3, r3, r2 790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 1997 .loc 1 790 59 discriminator 1 view .LVU609 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 76 1998 011a AB42 cmp r3, r5 1999 011c F5D8 bhi .L173 2000 .LVL134: 2001 .L174: 807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2002 .loc 1 807 7 is_stmt 1 view .LVU610 807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2003 .loc 1 807 12 is_stmt 0 view .LVU611 2004 011e 0F4C ldr r4, .L180 2005 .LVL135: 807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2006 .loc 1 807 12 view .LVU612 2007 0120 D4F85031 ldr r3, [r4, #336] 807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2008 .loc 1 807 21 view .LVU613 2009 0124 43F48033 orr r3, r3, #65536 2010 0128 C4F85031 str r3, [r4, #336] 810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2011 .loc 1 810 7 is_stmt 1 view .LVU614 810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2012 .loc 1 810 16 is_stmt 0 view .LVU615 2013 012c 0221 movs r1, #2 2014 012e 4CF25030 movw r0, #50000 2015 0132 FFF7FEFF bl FLASH_CRC_WaitForLastOperation 2016 .LVL136: 813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2017 .loc 1 813 7 is_stmt 1 view .LVU616 813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2018 .loc 1 813 28 is_stmt 0 view .LVU617 2019 0136 E36D ldr r3, [r4, #92] 813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2020 .loc 1 813 21 view .LVU618 2021 0138 3360 str r3, [r6] 816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2022 .loc 1 816 7 is_stmt 1 view .LVU619 816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2023 .loc 1 816 12 is_stmt 0 view .LVU620 2024 013a D4F80C31 ldr r3, [r4, #268] 816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2025 .loc 1 816 18 view .LVU621 2026 013e 23F40043 bic r3, r3, #32768 2027 0142 C4F80C31 str r3, [r4, #268] 819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2028 .loc 1 819 7 is_stmt 1 view .LVU622 2029 0146 4FF0C053 mov r3, #402653184 2030 014a C4F81431 str r3, [r4, #276] 2031 .LVL137: 2032 .L164: 824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2033 .loc 1 824 3 view .LVU623 825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2034 .loc 1 825 1 is_stmt 0 view .LVU624 2035 014e 70BD pop {r4, r5, r6, pc} 2036 .LVL138: 2037 .L175: 803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2038 .loc 1 803 9 is_stmt 1 view .LVU625 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 77 2039 0150 0222 movs r2, #2 2040 0152 A169 ldr r1, [r4, #24] 2041 0154 6069 ldr r0, [r4, #20] 2042 0156 FFF7FEFF bl FLASH_CRC_SelectAddress 2043 .LVL139: 2044 015a E0E7 b .L174 2045 .L181: 2046 .align 2 2047 .L180: 2048 015c 00200052 .word 1375739904 2049 0160 00014000 .word 4194560 2050 .cfi_endproc 2051 .LFE343: 2053 .section .text.FLASH_Erase_Sector,"ax",%progbits 2054 .align 1 2055 .global FLASH_Erase_Sector 2056 .syntax unified 2057 .thumb 2058 .thumb_func 2060 FLASH_Erase_Sector: 2061 .LVL140: 2062 .LFB345: 1181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_SECTOR(Sector)); 2063 .loc 1 1181 1 view -0 2064 .cfi_startproc 2065 @ args = 0, pretend = 0, frame = 0 2066 @ frame_needed = 0, uses_anonymous_args = 0 2067 @ link register save eliminated. 1182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK_EXCLUSIVE(Banks)); 2068 .loc 1 1182 3 view .LVU627 1183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_CR_PSIZE) 2069 .loc 1 1183 3 view .LVU628 1187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_PSIZE */ 2070 .loc 1 1187 3 view .LVU629 1190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2071 .loc 1 1190 3 view .LVU630 1190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2072 .loc 1 1190 5 is_stmt 0 view .LVU631 2073 0000 11F0010F tst r1, #1 2074 0004 0AD0 beq .L183 1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2075 .loc 1 1199 5 is_stmt 1 view .LVU632 1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2076 .loc 1 1199 10 is_stmt 0 view .LVU633 2077 0006 0F4A ldr r2, .L185 2078 .LVL141: 1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2079 .loc 1 1199 10 view .LVU634 2080 0008 D368 ldr r3, [r2, #12] 1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2081 .loc 1 1199 16 view .LVU635 2082 000a 23F4FE53 bic r3, r3, #8128 2083 000e D360 str r3, [r2, #12] 1201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_PSIZE */ 2084 .loc 1 1201 5 is_stmt 1 view .LVU636 1201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_PSIZE */ 2085 .loc 1 1201 10 is_stmt 0 view .LVU637 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 78 2086 0010 D368 ldr r3, [r2, #12] 1201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_PSIZE */ 2087 .loc 1 1201 16 view .LVU638 2088 0012 43EA8013 orr r3, r3, r0, lsl #6 2089 0016 43F02403 orr r3, r3, #36 2090 001a D360 str r3, [r2, #12] 2091 .L183: 1206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2092 .loc 1 1206 3 is_stmt 1 view .LVU639 1206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2093 .loc 1 1206 5 is_stmt 0 view .LVU640 2094 001c 11F0020F tst r1, #2 2095 0020 0ED0 beq .L182 1215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2096 .loc 1 1215 5 is_stmt 1 view .LVU641 1215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2097 .loc 1 1215 10 is_stmt 0 view .LVU642 2098 0022 084A ldr r2, .L185 2099 0024 D2F80C31 ldr r3, [r2, #268] 1215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2100 .loc 1 1215 16 view .LVU643 2101 0028 23F4FE53 bic r3, r3, #8128 2102 002c C2F80C31 str r3, [r2, #268] 1217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_PSIZE */ 2103 .loc 1 1217 5 is_stmt 1 view .LVU644 1217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_PSIZE */ 2104 .loc 1 1217 10 is_stmt 0 view .LVU645 2105 0030 D2F80C31 ldr r3, [r2, #268] 1217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_PSIZE */ 2106 .loc 1 1217 16 view .LVU646 2107 0034 43EA8013 orr r3, r3, r0, lsl #6 2108 0038 43F02403 orr r3, r3, #36 2109 003c C2F80C31 str r3, [r2, #268] 2110 .L182: 1221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2111 .loc 1 1221 1 view .LVU647 2112 0040 7047 bx lr 2113 .L186: 2114 0042 00BF .align 2 2115 .L185: 2116 0044 00200052 .word 1375739904 2117 .cfi_endproc 2118 .LFE345: 2120 .section .text.HAL_FLASHEx_Erase,"ax",%progbits 2121 .align 1 2122 .global HAL_FLASHEx_Erase 2123 .syntax unified 2124 .thumb 2125 .thumb_func 2127 HAL_FLASHEx_Erase: 2128 .LVL142: 2129 .LFB335: 187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; 2130 .loc 1 187 1 is_stmt 1 view -0 2131 .cfi_startproc 2132 @ args = 0, pretend = 0, frame = 0 2133 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 79 187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; 2134 .loc 1 187 1 is_stmt 0 view .LVU649 2135 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 2136 .cfi_def_cfa_offset 24 2137 .cfi_offset 3, -24 2138 .cfi_offset 4, -20 2139 .cfi_offset 5, -16 2140 .cfi_offset 6, -12 2141 .cfi_offset 7, -8 2142 .cfi_offset 14, -4 188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t sector_index; 2143 .loc 1 188 3 is_stmt 1 view .LVU650 2144 .LVL143: 189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2145 .loc 1 189 3 view .LVU651 192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(pEraseInit->Banks)); 2146 .loc 1 192 3 view .LVU652 193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2147 .loc 1 193 3 view .LVU653 196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2148 .loc 1 196 3 view .LVU654 196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2149 .loc 1 196 3 view .LVU655 2150 0002 474B ldr r3, .L214 2151 0004 1B7D ldrb r3, [r3, #20] @ zero_extendqisi2 2152 0006 012B cmp r3, #1 2153 0008 00F08880 beq .L201 2154 000c 0446 mov r4, r0 2155 000e 0F46 mov r7, r1 196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2156 .loc 1 196 3 discriminator 2 view .LVU656 2157 0010 434B ldr r3, .L214 2158 0012 0122 movs r2, #1 2159 0014 1A75 strb r2, [r3, #20] 196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2160 .loc 1 196 3 view .LVU657 199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2161 .loc 1 199 3 view .LVU658 199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2162 .loc 1 199 20 is_stmt 0 view .LVU659 2163 0016 0022 movs r2, #0 2164 0018 9A61 str r2, [r3, #24] 202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2165 .loc 1 202 3 is_stmt 1 view .LVU660 202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2166 .loc 1 202 17 is_stmt 0 view .LVU661 2167 001a 4368 ldr r3, [r0, #4] 202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2168 .loc 1 202 5 view .LVU662 2169 001c 13F0010F tst r3, #1 2170 0020 0DD1 bne .L208 188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t sector_index; 2171 .loc 1 188 21 view .LVU663 2172 0022 0025 movs r5, #0 2173 .LVL144: 2174 .L189: 212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 80 2175 .loc 1 212 3 is_stmt 1 view .LVU664 212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2176 .loc 1 212 17 is_stmt 0 view .LVU665 2177 0024 6368 ldr r3, [r4, #4] 212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2178 .loc 1 212 5 view .LVU666 2179 0026 13F0020F tst r3, #2 2180 002a 12D1 bne .L209 2181 .L190: 221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2182 .loc 1 221 3 is_stmt 1 view .LVU667 221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2183 .loc 1 221 5 is_stmt 0 view .LVU668 2184 002c CDB9 cbnz r5, .L191 223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2185 .loc 1 223 5 is_stmt 1 view .LVU669 223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2186 .loc 1 223 18 is_stmt 0 view .LVU670 2187 002e 2368 ldr r3, [r4] 223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2188 .loc 1 223 7 view .LVU671 2189 0030 012B cmp r3, #1 2190 0032 1BD0 beq .L210 254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2191 .loc 1 254 7 is_stmt 1 view .LVU672 254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2192 .loc 1 254 20 is_stmt 0 view .LVU673 2193 0034 4FF0FF33 mov r3, #-1 2194 0038 3B60 str r3, [r7] 257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2195 .loc 1 257 7 is_stmt 1 view .LVU674 257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2196 .loc 1 257 24 is_stmt 0 view .LVU675 2197 003a A668 ldr r6, [r4, #8] 2198 .LVL145: 257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2199 .loc 1 257 7 view .LVU676 2200 003c 4CE0 b .L196 2201 .LVL146: 2202 .L208: 204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2203 .loc 1 204 5 is_stmt 1 view .LVU677 204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2204 .loc 1 204 8 is_stmt 0 view .LVU678 2205 003e 0121 movs r1, #1 2206 .LVL147: 204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2207 .loc 1 204 8 view .LVU679 2208 0040 4CF25030 movw r0, #50000 2209 .LVL148: 204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2210 .loc 1 204 8 view .LVU680 2211 0044 FFF7FEFF bl FLASH_WaitForLastOperation 2212 .LVL149: 204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2213 .loc 1 204 7 discriminator 1 view .LVU681 2214 0048 0546 mov r5, r0 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 81 2215 004a 0028 cmp r0, #0 2216 004c EAD0 beq .L189 206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2217 .loc 1 206 14 view .LVU682 2218 004e 0125 movs r5, #1 2219 0050 E8E7 b .L189 2220 .LVL150: 2221 .L209: 214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2222 .loc 1 214 5 is_stmt 1 view .LVU683 214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2223 .loc 1 214 8 is_stmt 0 view .LVU684 2224 0052 0221 movs r1, #2 2225 0054 4CF25030 movw r0, #50000 2226 0058 FFF7FEFF bl FLASH_WaitForLastOperation 2227 .LVL151: 214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2228 .loc 1 214 7 discriminator 1 view .LVU685 2229 005c 0028 cmp r0, #0 2230 005e E5D0 beq .L190 216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2231 .loc 1 216 14 view .LVU686 2232 0060 0125 movs r5, #1 2233 .LVL152: 2234 .L191: 291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2235 .loc 1 291 3 is_stmt 1 view .LVU687 291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2236 .loc 1 291 3 view .LVU688 2237 0062 2F4B ldr r3, .L214 2238 0064 0022 movs r2, #0 2239 0066 1A75 strb r2, [r3, #20] 291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2240 .loc 1 291 3 view .LVU689 293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2241 .loc 1 293 3 view .LVU690 2242 .LVL153: 2243 .L188: 294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2244 .loc 1 294 1 is_stmt 0 view .LVU691 2245 0068 2846 mov r0, r5 2246 006a F8BD pop {r3, r4, r5, r6, r7, pc} 2247 .LVL154: 2248 .L210: 226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2249 .loc 1 226 7 is_stmt 1 view .LVU692 2250 006c 6168 ldr r1, [r4, #4] 2251 006e 2069 ldr r0, [r4, #16] 2252 0070 FFF7FEFF bl FLASH_MassErase 2253 .LVL155: 229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2254 .loc 1 229 7 view .LVU693 229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2255 .loc 1 229 21 is_stmt 0 view .LVU694 2256 0074 6368 ldr r3, [r4, #4] 229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2257 .loc 1 229 9 view .LVU695 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 82 2258 0076 13F0010F tst r3, #1 2259 007a 12D1 bne .L211 2260 .L193: 240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2261 .loc 1 240 7 is_stmt 1 view .LVU696 240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2262 .loc 1 240 21 is_stmt 0 view .LVU697 2263 007c 6368 ldr r3, [r4, #4] 240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2264 .loc 1 240 9 view .LVU698 2265 007e 13F0020F tst r3, #2 2266 0082 EED0 beq .L191 242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2267 .loc 1 242 9 is_stmt 1 view .LVU699 242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2268 .loc 1 242 12 is_stmt 0 view .LVU700 2269 0084 0221 movs r1, #2 2270 0086 4CF25030 movw r0, #50000 2271 008a FFF7FEFF bl FLASH_WaitForLastOperation 2272 .LVL156: 242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2273 .loc 1 242 11 discriminator 1 view .LVU701 2274 008e 00B1 cbz r0, .L195 244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2275 .loc 1 244 18 view .LVU702 2276 0090 0125 movs r5, #1 2277 .LVL157: 2278 .L195: 247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2279 .loc 1 247 9 is_stmt 1 view .LVU703 247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2280 .loc 1 247 14 is_stmt 0 view .LVU704 2281 0092 244A ldr r2, .L214+4 2282 0094 D2F80C31 ldr r3, [r2, #268] 247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2283 .loc 1 247 20 view .LVU705 2284 0098 23F00803 bic r3, r3, #8 2285 009c C2F80C31 str r3, [r2, #268] 2286 00a0 DFE7 b .L191 2287 .L211: 231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2288 .loc 1 231 9 is_stmt 1 view .LVU706 231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2289 .loc 1 231 12 is_stmt 0 view .LVU707 2290 00a2 0121 movs r1, #1 2291 00a4 4CF25030 movw r0, #50000 2292 00a8 FFF7FEFF bl FLASH_WaitForLastOperation 2293 .LVL158: 231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2294 .loc 1 231 11 discriminator 1 view .LVU708 2295 00ac 00B1 cbz r0, .L194 233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2296 .loc 1 233 18 view .LVU709 2297 00ae 0125 movs r5, #1 2298 .LVL159: 2299 .L194: 236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 83 2300 .loc 1 236 9 is_stmt 1 view .LVU710 236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2301 .loc 1 236 14 is_stmt 0 view .LVU711 2302 00b0 1C4A ldr r2, .L214+4 2303 00b2 D368 ldr r3, [r2, #12] 236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2304 .loc 1 236 20 view .LVU712 2305 00b4 23F00803 bic r3, r3, #8 2306 00b8 D360 str r3, [r2, #12] 2307 00ba DFE7 b .L193 2308 .LVL160: 2309 .L213: 264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2310 .loc 1 264 11 is_stmt 1 view .LVU713 264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2311 .loc 1 264 20 is_stmt 0 view .LVU714 2312 00bc 0121 movs r1, #1 2313 00be 4CF25030 movw r0, #50000 2314 00c2 FFF7FEFF bl FLASH_WaitForLastOperation 2315 .LVL161: 2316 00c6 0546 mov r5, r0 2317 .LVL162: 267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2318 .loc 1 267 11 is_stmt 1 view .LVU715 267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2319 .loc 1 267 16 is_stmt 0 view .LVU716 2320 00c8 164A ldr r2, .L214+4 2321 00ca D168 ldr r1, [r2, #12] 267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2322 .loc 1 267 22 view .LVU717 2323 00cc 164B ldr r3, .L214+8 2324 00ce 0B40 ands r3, r3, r1 2325 00d0 D360 str r3, [r2, #12] 2326 00d2 0FE0 b .L197 2327 .L198: 280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2328 .loc 1 280 9 is_stmt 1 view .LVU718 280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2329 .loc 1 280 11 is_stmt 0 view .LVU719 2330 00d4 05BB cbnz r5, .L212 257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2331 .loc 1 257 119 is_stmt 1 discriminator 2 view .LVU720 2332 00d6 0136 adds r6, r6, #1 2333 .LVL163: 2334 .L196: 257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2335 .loc 1 257 59 discriminator 1 view .LVU721 257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2336 .loc 1 257 72 is_stmt 0 discriminator 1 view .LVU722 2337 00d8 E368 ldr r3, [r4, #12] 257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2338 .loc 1 257 96 discriminator 1 view .LVU723 2339 00da A268 ldr r2, [r4, #8] 257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2340 .loc 1 257 84 discriminator 1 view .LVU724 2341 00dc 1344 add r3, r3, r2 257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 84 2342 .loc 1 257 59 discriminator 1 view .LVU725 2343 00de B342 cmp r3, r6 2344 00e0 BFD9 bls .L191 259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2345 .loc 1 259 9 is_stmt 1 view .LVU726 2346 00e2 2269 ldr r2, [r4, #16] 2347 00e4 6168 ldr r1, [r4, #4] 2348 00e6 3046 mov r0, r6 2349 00e8 FFF7FEFF bl FLASH_Erase_Sector 2350 .LVL164: 261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2351 .loc 1 261 9 view .LVU727 261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2352 .loc 1 261 23 is_stmt 0 view .LVU728 2353 00ec 6368 ldr r3, [r4, #4] 261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2354 .loc 1 261 11 view .LVU729 2355 00ee 13F0010F tst r3, #1 2356 00f2 E3D1 bne .L213 2357 .L197: 270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2358 .loc 1 270 9 is_stmt 1 view .LVU730 270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2359 .loc 1 270 23 is_stmt 0 view .LVU731 2360 00f4 6368 ldr r3, [r4, #4] 270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2361 .loc 1 270 11 view .LVU732 2362 00f6 13F0020F tst r3, #2 2363 00fa EBD0 beq .L198 273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2364 .loc 1 273 11 is_stmt 1 view .LVU733 273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2365 .loc 1 273 20 is_stmt 0 view .LVU734 2366 00fc 0221 movs r1, #2 2367 00fe 4CF25030 movw r0, #50000 2368 0102 FFF7FEFF bl FLASH_WaitForLastOperation 2369 .LVL165: 2370 0106 0546 mov r5, r0 2371 .LVL166: 276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2372 .loc 1 276 11 is_stmt 1 view .LVU735 276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2373 .loc 1 276 16 is_stmt 0 view .LVU736 2374 0108 064A ldr r2, .L214+4 2375 010a D2F80C11 ldr r1, [r2, #268] 276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2376 .loc 1 276 22 view .LVU737 2377 010e 064B ldr r3, .L214+8 2378 0110 0B40 ands r3, r3, r1 2379 0112 C2F80C31 str r3, [r2, #268] 2380 0116 DDE7 b .L198 2381 .L212: 283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** break; 2382 .loc 1 283 11 is_stmt 1 view .LVU738 283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** break; 2383 .loc 1 283 24 is_stmt 0 view .LVU739 2384 0118 3E60 str r6, [r7] ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 85 284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2385 .loc 1 284 11 is_stmt 1 view .LVU740 2386 011a A2E7 b .L191 2387 .LVL167: 2388 .L201: 196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2389 .loc 1 196 3 is_stmt 0 discriminator 1 view .LVU741 2390 011c 0225 movs r5, #2 2391 011e A3E7 b .L188 2392 .L215: 2393 .align 2 2394 .L214: 2395 0120 00000000 .word pFlash 2396 0124 00200052 .word 1375739904 2397 0128 3BE0FFFF .word -8133 2398 .cfi_endproc 2399 .LFE335: 2401 .section .text.HAL_FLASHEx_Erase_IT,"ax",%progbits 2402 .align 1 2403 .global HAL_FLASHEx_Erase_IT 2404 .syntax unified 2405 .thumb 2406 .thumb_func 2408 HAL_FLASHEx_Erase_IT: 2409 .LVL168: 2410 .LFB336: 304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; 2411 .loc 1 304 1 is_stmt 1 view -0 2412 .cfi_startproc 2413 @ args = 0, pretend = 0, frame = 0 2414 @ frame_needed = 0, uses_anonymous_args = 0 304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK; 2415 .loc 1 304 1 is_stmt 0 view .LVU743 2416 0000 38B5 push {r3, r4, r5, lr} 2417 .cfi_def_cfa_offset 16 2418 .cfi_offset 3, -16 2419 .cfi_offset 4, -12 2420 .cfi_offset 5, -8 2421 .cfi_offset 14, -4 305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2422 .loc 1 305 3 is_stmt 1 view .LVU744 2423 .LVL169: 308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(pEraseInit->Banks)); 2424 .loc 1 308 3 view .LVU745 309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2425 .loc 1 309 3 view .LVU746 312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2426 .loc 1 312 3 view .LVU747 312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2427 .loc 1 312 3 view .LVU748 2428 0002 374B ldr r3, .L241 2429 0004 1B7D ldrb r3, [r3, #20] @ zero_extendqisi2 2430 0006 012B cmp r3, #1 2431 0008 68D0 beq .L230 2432 000a 0446 mov r4, r0 312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2433 .loc 1 312 3 discriminator 2 view .LVU749 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 86 2434 000c 344B ldr r3, .L241 2435 000e 0122 movs r2, #1 2436 0010 1A75 strb r2, [r3, #20] 312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2437 .loc 1 312 3 view .LVU750 315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2438 .loc 1 315 3 view .LVU751 315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2439 .loc 1 315 20 is_stmt 0 view .LVU752 2440 0012 0022 movs r2, #0 2441 0014 9A61 str r2, [r3, #24] 318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2442 .loc 1 318 3 is_stmt 1 view .LVU753 318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2443 .loc 1 318 17 is_stmt 0 view .LVU754 2444 0016 4368 ldr r3, [r0, #4] 318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2445 .loc 1 318 5 view .LVU755 2446 0018 13F0010F tst r3, #1 2447 001c 0AD1 bne .L235 305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2448 .loc 1 305 21 view .LVU756 2449 001e 0025 movs r5, #0 2450 .LVL170: 2451 .L218: 328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2452 .loc 1 328 3 is_stmt 1 view .LVU757 328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2453 .loc 1 328 17 is_stmt 0 view .LVU758 2454 0020 6368 ldr r3, [r4, #4] 328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2455 .loc 1 328 5 view .LVU759 2456 0022 13F0020F tst r3, #2 2457 0026 0FD1 bne .L236 2458 .L219: 337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2459 .loc 1 337 3 is_stmt 1 view .LVU760 337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2460 .loc 1 337 6 is_stmt 0 view .LVU761 2461 0028 BDB1 cbz r5, .L221 2462 .LVL171: 2463 .L220: 340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2464 .loc 1 340 5 is_stmt 1 view .LVU762 340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2465 .loc 1 340 5 view .LVU763 2466 002a 2D4B ldr r3, .L241 2467 002c 0022 movs r2, #0 2468 002e 1A75 strb r2, [r3, #20] 340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2469 .loc 1 340 5 view .LVU764 2470 .LVL172: 2471 .L217: 415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2472 .loc 1 415 1 is_stmt 0 view .LVU765 2473 0030 2846 mov r0, r5 2474 0032 38BD pop {r3, r4, r5, pc} ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 87 2475 .LVL173: 2476 .L235: 320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2477 .loc 1 320 5 is_stmt 1 view .LVU766 320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2478 .loc 1 320 8 is_stmt 0 view .LVU767 2479 0034 0121 movs r1, #1 2480 0036 4CF25030 movw r0, #50000 2481 .LVL174: 320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2482 .loc 1 320 8 view .LVU768 2483 003a FFF7FEFF bl FLASH_WaitForLastOperation 2484 .LVL175: 320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2485 .loc 1 320 7 discriminator 1 view .LVU769 2486 003e 0546 mov r5, r0 2487 0040 0028 cmp r0, #0 2488 0042 EDD0 beq .L218 322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2489 .loc 1 322 14 view .LVU770 2490 0044 0125 movs r5, #1 2491 0046 EBE7 b .L218 2492 .LVL176: 2493 .L236: 330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2494 .loc 1 330 5 is_stmt 1 view .LVU771 330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2495 .loc 1 330 8 is_stmt 0 view .LVU772 2496 0048 0221 movs r1, #2 2497 004a 4CF25030 movw r0, #50000 2498 004e FFF7FEFF bl FLASH_WaitForLastOperation 2499 .LVL177: 330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2500 .loc 1 330 7 discriminator 1 view .LVU773 2501 0052 0028 cmp r0, #0 2502 0054 E8D0 beq .L219 332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2503 .loc 1 332 14 view .LVU774 2504 0056 0125 movs r5, #1 2505 .LVL178: 332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2506 .loc 1 332 14 view .LVU775 2507 0058 E7E7 b .L220 2508 .LVL179: 2509 .L221: 344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2510 .loc 1 344 5 is_stmt 1 view .LVU776 344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2511 .loc 1 344 19 is_stmt 0 view .LVU777 2512 005a 6368 ldr r3, [r4, #4] 344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2513 .loc 1 344 7 view .LVU778 2514 005c 13F0010F tst r3, #1 2515 0060 04D0 beq .L222 351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_IT_STRBERR_BANK1 | FLASH_IT_INCERR_BANK1); 2516 .loc 1 351 7 is_stmt 1 view .LVU779 2517 0062 204A ldr r2, .L241+4 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 88 2518 0064 D368 ldr r3, [r2, #12] 2519 0066 43F43C13 orr r3, r3, #3080192 2520 006a D360 str r3, [r2, #12] 2521 .L222: 356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2522 .loc 1 356 5 view .LVU780 356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2523 .loc 1 356 19 is_stmt 0 view .LVU781 2524 006c 6368 ldr r3, [r4, #4] 356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2525 .loc 1 356 7 view .LVU782 2526 006e 13F0020F tst r3, #2 2527 0072 06D0 beq .L223 363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_IT_STRBERR_BANK2 | FLASH_IT_INCERR_BANK2); 2528 .loc 1 363 7 is_stmt 1 view .LVU783 2529 0074 1B4A ldr r2, .L241+4 2530 0076 D2F80C31 ldr r3, [r2, #268] 2531 007a 43F43C13 orr r3, r3, #3080192 2532 007e C2F80C31 str r3, [r2, #268] 2533 .L223: 369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2534 .loc 1 369 5 view .LVU784 369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2535 .loc 1 369 18 is_stmt 0 view .LVU785 2536 0082 2368 ldr r3, [r4] 369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2537 .loc 1 369 7 view .LVU786 2538 0084 012B cmp r3, #1 2539 0086 11D0 beq .L237 393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2540 .loc 1 393 7 is_stmt 1 view .LVU787 393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2541 .loc 1 393 20 is_stmt 0 view .LVU788 2542 0088 6368 ldr r3, [r4, #4] 393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2543 .loc 1 393 9 view .LVU789 2544 008a 012B cmp r3, #1 2545 008c 22D0 beq .L238 399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2546 .loc 1 399 9 is_stmt 1 view .LVU790 399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2547 .loc 1 399 33 is_stmt 0 view .LVU791 2548 008e 144B ldr r3, .L241 2549 0090 0422 movs r2, #4 2550 0092 1A70 strb r2, [r3] 2551 .L229: 405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.Sector = pEraseInit->Sector; 2552 .loc 1 405 7 is_stmt 1 view .LVU792 405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.Sector = pEraseInit->Sector; 2553 .loc 1 405 43 is_stmt 0 view .LVU793 2554 0094 E268 ldr r2, [r4, #12] 405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.Sector = pEraseInit->Sector; 2555 .loc 1 405 31 view .LVU794 2556 0096 124B ldr r3, .L241 2557 0098 5A60 str r2, [r3, #4] 406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.VoltageForErase = pEraseInit->VoltageRange; 2558 .loc 1 406 7 is_stmt 1 view .LVU795 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 89 406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.VoltageForErase = pEraseInit->VoltageRange; 2559 .loc 1 406 33 is_stmt 0 view .LVU796 2560 009a A268 ldr r2, [r4, #8] 406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.VoltageForErase = pEraseInit->VoltageRange; 2561 .loc 1 406 21 view .LVU797 2562 009c DA60 str r2, [r3, #12] 407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2563 .loc 1 407 7 is_stmt 1 view .LVU798 407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2564 .loc 1 407 42 is_stmt 0 view .LVU799 2565 009e 2269 ldr r2, [r4, #16] 407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2566 .loc 1 407 30 view .LVU800 2567 00a0 9A60 str r2, [r3, #8] 410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2568 .loc 1 410 7 is_stmt 1 view .LVU801 2569 00a2 6168 ldr r1, [r4, #4] 2570 00a4 A068 ldr r0, [r4, #8] 2571 00a6 FFF7FEFF bl FLASH_Erase_Sector 2572 .LVL180: 2573 00aa C1E7 b .L217 2574 .L237: 372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2575 .loc 1 372 7 view .LVU802 372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2576 .loc 1 372 20 is_stmt 0 view .LVU803 2577 00ac 6168 ldr r1, [r4, #4] 372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2578 .loc 1 372 9 view .LVU804 2579 00ae 0129 cmp r1, #1 2580 00b0 08D0 beq .L239 377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2581 .loc 1 377 12 is_stmt 1 view .LVU805 377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** { 2582 .loc 1 377 14 is_stmt 0 view .LVU806 2583 00b2 0229 cmp r1, #2 2584 00b4 0AD0 beq .L240 384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2585 .loc 1 384 9 is_stmt 1 view .LVU807 384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2586 .loc 1 384 33 is_stmt 0 view .LVU808 2587 00b6 0A4B ldr r3, .L241 2588 00b8 0722 movs r2, #7 2589 00ba 1A70 strb r2, [r3] 2590 .L226: 387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2591 .loc 1 387 7 is_stmt 1 view .LVU809 2592 00bc 2069 ldr r0, [r4, #16] 2593 00be FFF7FEFF bl FLASH_MassErase 2594 .LVL181: 2595 00c2 B5E7 b .L217 2596 .L239: 374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2597 .loc 1 374 9 view .LVU810 374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2598 .loc 1 374 33 is_stmt 0 view .LVU811 2599 00c4 064B ldr r3, .L241 ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 90 2600 00c6 0222 movs r2, #2 2601 00c8 1A70 strb r2, [r3] 2602 00ca F7E7 b .L226 2603 .L240: 379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2604 .loc 1 379 9 is_stmt 1 view .LVU812 379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2605 .loc 1 379 33 is_stmt 0 view .LVU813 2606 00cc 044B ldr r3, .L241 2607 00ce 0522 movs r2, #5 2608 00d0 1A70 strb r2, [r3] 2609 00d2 F3E7 b .L226 2610 .L238: 395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2611 .loc 1 395 9 is_stmt 1 view .LVU814 395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** } 2612 .loc 1 395 33 is_stmt 0 view .LVU815 2613 00d4 024B ldr r3, .L241 2614 00d6 0122 movs r2, #1 2615 00d8 1A70 strb r2, [r3] 2616 00da DBE7 b .L229 2617 .LVL182: 2618 .L230: 312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** 2619 .loc 1 312 3 discriminator 1 view .LVU816 2620 00dc 0225 movs r5, #2 2621 00de A7E7 b .L217 2622 .L242: 2623 .align 2 2624 .L241: 2625 00e0 00000000 .word pFlash 2626 00e4 00200052 .word 1375739904 2627 .cfi_endproc 2628 .LFE336: 2630 .text 2631 .Letext0: 2632 .file 2 "C:/Users/lenex/AppData/Roaming/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-to 2633 .file 3 "C:/Users/lenex/AppData/Roaming/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-to 2634 .file 4 "Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7a3xx.h" 2635 .file 5 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h" 2636 .file 6 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h" 2637 .file 7 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h" ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 91 DEFINED SYMBOLS *ABS*:00000000 stm32h7xx_hal_flash_ex.c C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:20 .text.FLASH_MassErase:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:25 .text.FLASH_MassErase:00000000 FLASH_MassErase C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:79 .text.FLASH_MassErase:0000003c $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:84 .text.FLASH_OB_EnableWRP:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:89 .text.FLASH_OB_EnableWRP:00000000 FLASH_OB_EnableWRP C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:128 .text.FLASH_OB_EnableWRP:00000028 $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:133 .text.FLASH_OB_DisableWRP:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:138 .text.FLASH_OB_DisableWRP:00000000 FLASH_OB_DisableWRP C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:177 .text.FLASH_OB_DisableWRP:00000024 $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:182 .text.FLASH_OB_GetWRP:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:187 .text.FLASH_OB_GetWRP:00000000 FLASH_OB_GetWRP C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:252 .text.FLASH_OB_GetWRP:00000028 $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:257 .text.FLASH_OB_RDPConfig:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:262 .text.FLASH_OB_RDPConfig:00000000 FLASH_OB_RDPConfig C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:282 .text.FLASH_OB_RDPConfig:00000010 $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:287 .text.FLASH_OB_GetRDP:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:292 .text.FLASH_OB_GetRDP:00000000 FLASH_OB_GetRDP C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:326 .text.FLASH_OB_GetRDP:0000001c $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:331 .text.FLASH_OB_UserConfig:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:336 .text.FLASH_OB_UserConfig:00000000 FLASH_OB_UserConfig C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:528 .text.FLASH_OB_UserConfig:000000c0 $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:533 .text.FLASH_OB_GetUser:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:538 .text.FLASH_OB_GetUser:00000000 FLASH_OB_GetUser C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:561 .text.FLASH_OB_GetUser:0000000c $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:567 .text.FLASH_OB_PCROPConfig:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:572 .text.FLASH_OB_PCROPConfig:00000000 FLASH_OB_PCROPConfig C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:649 .text.FLASH_OB_PCROPConfig:00000040 $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:654 .text.FLASH_OB_GetPCROP:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:659 .text.FLASH_OB_GetPCROP:00000000 FLASH_OB_GetPCROP C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:749 .text.FLASH_OB_GetPCROP:00000048 $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:755 .text.FLASH_OB_BOR_LevelConfig:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:760 .text.FLASH_OB_BOR_LevelConfig:00000000 FLASH_OB_BOR_LevelConfig C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:780 .text.FLASH_OB_BOR_LevelConfig:00000010 $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:785 .text.FLASH_OB_GetBOR:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:790 .text.FLASH_OB_GetBOR:00000000 FLASH_OB_GetBOR C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:807 .text.FLASH_OB_GetBOR:0000000c $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:812 .text.FLASH_OB_BootAddConfig:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:817 .text.FLASH_OB_BootAddConfig:00000000 FLASH_OB_BootAddConfig C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:864 .text.FLASH_OB_BootAddConfig:0000002c $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:869 .text.FLASH_OB_GetBootAdd:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:874 .text.FLASH_OB_GetBootAdd:00000000 FLASH_OB_GetBootAdd C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:904 .text.FLASH_OB_GetBootAdd:00000010 $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:909 .text.FLASH_OB_SecureAreaConfig:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:914 .text.FLASH_OB_SecureAreaConfig:00000000 FLASH_OB_SecureAreaConfig C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:995 .text.FLASH_OB_SecureAreaConfig:00000048 $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1000 .text.FLASH_OB_GetSecureArea:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1005 .text.FLASH_OB_GetSecureArea:00000000 FLASH_OB_GetSecureArea C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1095 .text.FLASH_OB_GetSecureArea:00000048 $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1101 .text.FLASH_CRC_AddSector:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1106 .text.FLASH_CRC_AddSector:00000000 FLASH_CRC_AddSector C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1154 .text.FLASH_CRC_AddSector:00000038 $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1159 .text.FLASH_CRC_SelectAddress:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1164 .text.FLASH_CRC_SelectAddress:00000000 FLASH_CRC_SelectAddress C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1201 .text.FLASH_CRC_SelectAddress:00000018 $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1206 .text.FLASH_OB_OTP_LockConfig:00000000 $t ARM GAS C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s page 92 C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1211 .text.FLASH_OB_OTP_LockConfig:00000000 FLASH_OB_OTP_LockConfig C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1235 .text.FLASH_OB_OTP_LockConfig:0000000c $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1240 .text.FLASH_OB_OTP_GetLock:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1245 .text.FLASH_OB_OTP_GetLock:00000000 FLASH_OB_OTP_GetLock C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1261 .text.FLASH_OB_OTP_GetLock:00000008 $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1266 .text.HAL_FLASHEx_OBProgram:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1272 .text.HAL_FLASHEx_OBProgram:00000000 HAL_FLASHEx_OBProgram C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1481 .text.HAL_FLASHEx_OBProgram:000000e8 $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1486 .text.HAL_FLASHEx_OBGetConfig:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1492 .text.HAL_FLASHEx_OBGetConfig:00000000 HAL_FLASHEx_OBGetConfig C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1591 .text.HAL_FLASHEx_Unlock_Bank1:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1597 .text.HAL_FLASHEx_Unlock_Bank1:00000000 HAL_FLASHEx_Unlock_Bank1 C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1638 .text.HAL_FLASHEx_Unlock_Bank1:0000002c $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1644 .text.HAL_FLASHEx_Lock_Bank1:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1650 .text.HAL_FLASHEx_Lock_Bank1:00000000 HAL_FLASHEx_Lock_Bank1 C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1669 .text.HAL_FLASHEx_Lock_Bank1:00000010 $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1674 .text.HAL_FLASHEx_Unlock_Bank2:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1680 .text.HAL_FLASHEx_Unlock_Bank2:00000000 HAL_FLASHEx_Unlock_Bank2 C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1721 .text.HAL_FLASHEx_Unlock_Bank2:00000034 $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1727 .text.HAL_FLASHEx_Lock_Bank2:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1733 .text.HAL_FLASHEx_Lock_Bank2:00000000 HAL_FLASHEx_Lock_Bank2 C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1752 .text.HAL_FLASHEx_Lock_Bank2:00000014 $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1757 .text.HAL_FLASHEx_ComputeCRC:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:1763 .text.HAL_FLASHEx_ComputeCRC:00000000 HAL_FLASHEx_ComputeCRC C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:2048 .text.HAL_FLASHEx_ComputeCRC:0000015c $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:2054 .text.FLASH_Erase_Sector:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:2060 .text.FLASH_Erase_Sector:00000000 FLASH_Erase_Sector C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:2116 .text.FLASH_Erase_Sector:00000044 $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:2121 .text.HAL_FLASHEx_Erase:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:2127 .text.HAL_FLASHEx_Erase:00000000 HAL_FLASHEx_Erase C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:2395 .text.HAL_FLASHEx_Erase:00000120 $d C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:2402 .text.HAL_FLASHEx_Erase_IT:00000000 $t C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:2408 .text.HAL_FLASHEx_Erase_IT:00000000 HAL_FLASHEx_Erase_IT C:\Users\lenex\AppData\Local\Temp\ccRfjMkk.s:2625 .text.HAL_FLASHEx_Erase_IT:000000e0 $d UNDEFINED SYMBOLS FLASH_WaitForLastOperation pFlash FLASH_OB_WaitForLastOperation FLASH_CRC_WaitForLastOperation