STM32H750VB_Bootloader/build/stm32h7xx_hal_flash_ex.lst

4375 lines
289 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

ARM GAS /tmp/ccM28uwG.s page 1
1 .cpu cortex-m7
2 .eabi_attribute 28, 1
3 .eabi_attribute 20, 1
4 .eabi_attribute 21, 1
5 .eabi_attribute 23, 3
6 .eabi_attribute 24, 1
7 .eabi_attribute 25, 1
8 .eabi_attribute 26, 1
9 .eabi_attribute 30, 1
10 .eabi_attribute 34, 1
11 .eabi_attribute 18, 4
12 .file "stm32h7xx_hal_flash_ex.c"
13 .text
14 .Ltext0:
15 .cfi_sections .debug_frame
16 .section .text.FLASH_MassErase,"ax",%progbits
17 .align 1
18 .arch armv7e-m
19 .syntax unified
20 .thumb
21 .thumb_func
22 .fpu fpv5-d16
24 FLASH_MassErase:
25 .LVL0:
26 .LFB148:
27 .file 1 "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c"
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
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 /tmp/ccM28uwG.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 **** @endverbatim
62:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** ******************************************************************************
63:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @attention
64:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
65:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics.
66:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * All rights reserved.</center></h2>
67:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
68:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This software component is licensed by ST under BSD 3-Clause license,
69:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * the "License"; You may not use this file except in compliance with the
70:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * License. You may obtain a copy of the License at:
71:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * opensource.org/licenses/BSD-3-Clause
72:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
73:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** ******************************************************************************
74:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
75:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
76:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Includes ------------------------------------------------------------------*/
77:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #include "stm32h7xx_hal.h"
78:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
79:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** @addtogroup STM32H7xx_HAL_Driver
80:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @{
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 **** /** @defgroup FLASHEx FLASHEx
84:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief FLASH HAL Extension module driver
85:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @{
86:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
87:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
88:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #ifdef HAL_FLASH_MODULE_ENABLED
ARM GAS /tmp/ccM28uwG.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 **** /* Private typedef -----------------------------------------------------------*/
91:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Private define ------------------------------------------------------------*/
92:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** @addtogroup FLASHEx_Private_Constants
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 **** #define FLASH_TIMEOUT_VALUE 50000U /* 50 s */
96:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
97:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
98:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @}
99:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Private macro -------------------------------------------------------------*/
101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Private variables ---------------------------------------------------------*/
102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Private function prototypes -----------------------------------------------*/
103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Private_Functions FLASHEx Private Functions
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 **** static void FLASH_MassErase(uint32_t VoltageRange, uint32_t Banks);
107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_EnableWRP(uint32_t WRPSector, uint32_t Banks);
108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_DisableWRP(uint32_t WRPSector, uint32_t Bank);
109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_GetWRP(uint32_t *WRPState, uint32_t *WRPSector, uint32_t Bank);
110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_RDPConfig(uint32_t RDPLevel);
111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetRDP(void);
112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_PCROPConfig(uint32_t PCROConfigRDP, uint32_t PCROPStartAddr, uint32_t PCROPEnd
113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_GetPCROP(uint32_t *PCROPConfig, uint32_t *PCROPStartAddr,uint32_t *PCROPEndAdd
114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_BOR_LevelConfig(uint32_t Level);
115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetBOR(void);
116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_UserConfig(uint32_t UserType, uint32_t UserConfig);
117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetUser(void);
118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_BootAddConfig(uint32_t BootOption, uint32_t BootAddress0, uint32_t BootAddress
119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_GetBootAdd(uint32_t *BootAddress0, uint32_t *BootAddress1);
120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_SecureAreaConfig(uint32_t SecureAreaConfig, uint32_t SecureAreaStartAddr, uint
121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_GetSecureArea(uint32_t *SecureAreaConfig, uint32_t *SecureAreaStartAddr, uint3
122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_CRC_AddSector(uint32_t Sector, uint32_t Bank);
123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_CRC_SelectAddress(uint32_t CRCStartAddr, uint32_t CRCEndAddr, uint32_t Bank);
124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_CORE)
126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_CM4BootAddConfig(uint32_t BootOption, uint32_t BootAddress0, uint32_t BootAddr
127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_GetCM4BootAdd(uint32_t *BootAddress0, uint32_t *BootAddress1);
128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /*DUAL_CORE*/
129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_OTPBL_LOCKBL)
131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_OTP_LockConfig(uint32_t OTP_Block);
132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static uint32_t FLASH_OB_OTP_GetLock(void);
133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OTPBL_LOCKBL */
134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_OPTSR2_TCM_AXI_SHARED)
136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_SharedRAM_Config(uint32_t SharedRamConfig);
137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static uint32_t FLASH_OB_SharedRAM_GetConfig(void);
138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OPTSR2_TCM_AXI_SHARED */
139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_OPTSR2_CPUFREQ_BOOST)
141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_CPUFreq_BoostConfig(uint32_t FreqBoost);
142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static uint32_t FLASH_OB_CPUFreq_GetBoost(void);
143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OPTSR2_CPUFREQ_BOOST */
144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @}
ARM GAS /tmp/ccM28uwG.s page 4
146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Exported functions ---------------------------------------------------------*/
149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions FLASHEx Exported Functions
150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @{
151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions_Group1 Extended IO operation functions
154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Extended IO operation functions
155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** @verbatim
157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** ===============================================================================
158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** ##### Extended programming operation functions #####
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 **** This subsection provides a set of functions allowing to manage the Extension FLASH
162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** programming operations Operations.
163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** @endverbatim
165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @{
166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Perform a mass erase or erase the specified FLASH memory sectors
169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param[in] pEraseInit pointer to an FLASH_EraseInitTypeDef structure that
170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * contains the configuration information for the erasing.
171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param[out] SectorError pointer to variable that contains the configuration
173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * information on faulty sector in case of error (0xFFFFFFFF means that all
174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * the sectors have been correctly erased)
175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status
177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *SectorError)
179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t sector_index;
182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */
184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase));
185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(pEraseInit->Banks));
186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Process Locked */
188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash);
189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Reset error code */
191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait for last operation to be completed on Bank1 */
194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pEraseInit->Banks & FLASH_BANK_1) == FLASH_BANK_1)
195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_1) != HAL_OK)
197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = HAL_ERROR;
199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
ARM GAS /tmp/ccM28uwG.s page 5
203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait for last operation to be completed on Bank2 */
204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pEraseInit->Banks & FLASH_BANK_2) == FLASH_BANK_2)
205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_2) != HAL_OK)
207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = HAL_ERROR;
209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(status == HAL_OK)
214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE)
216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Mass erase to be done */
218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_MassErase(pEraseInit->VoltageRange, pEraseInit->Banks);
219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait for last operation to be completed on Bank 1 */
221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pEraseInit->Banks & FLASH_BANK_1) == FLASH_BANK_1)
222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_1) != HAL_OK)
224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = HAL_ERROR;
226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* if the erase operation is completed, disable the Bank1 BER Bit */
228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 &= (~FLASH_CR_BER);
229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait for last operation to be completed on Bank 2 */
232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pEraseInit->Banks & FLASH_BANK_2) == FLASH_BANK_2)
233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_2) != HAL_OK)
235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = HAL_ERROR;
237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* if the erase operation is completed, disable the Bank2 BER Bit */
239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 &= (~FLASH_CR_BER);
240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else
244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /*Initialization of SectorError variable*/
246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *SectorError = 0xFFFFFFFFU;
247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Erase by sector by sector to be done*/
249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** for(sector_index = pEraseInit->Sector; sector_index < (pEraseInit->NbSectors + pEraseInit->Se
250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_Erase_Sector(sector_index, pEraseInit->Banks, pEraseInit->VoltageRange);
252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pEraseInit->Banks & FLASH_BANK_1) == FLASH_BANK_1)
254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_1);
257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the SER Bit */
259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 &= (~(FLASH_CR_SER | FLASH_CR_SNB));
ARM GAS /tmp/ccM28uwG.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 defined (DUAL_BANK)
262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pEraseInit->Banks & FLASH_BANK_2) == FLASH_BANK_2)
263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_2);
266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the SER Bit */
268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 &= (~(FLASH_CR_SER | FLASH_CR_SNB));
269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(status != HAL_OK)
273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* In case of error, stop erase procedure and return the faulty sector */
275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *SectorError = sector_index;
276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** break;
277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Process Unlocked */
283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return status;
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 **** * @brief Perform a mass erase or erase the specified FLASH memory sectors with interrupt enabled
290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param pEraseInit pointer to an FLASH_EraseInitTypeDef structure that
291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * contains the configuration information for the erasing.
292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status
294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Erase_IT(FLASH_EraseInitTypeDef *pEraseInit)
296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */
300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase));
301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(pEraseInit->Banks));
302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Process Locked */
304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash);
305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Reset error code */
307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait for last operation to be completed on Bank 1 */
310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pEraseInit->Banks & FLASH_BANK_1) == FLASH_BANK_1)
311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_1) != HAL_OK)
313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = HAL_ERROR;
315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
ARM GAS /tmp/ccM28uwG.s page 7
317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait for last operation to be completed on Bank 2 */
320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pEraseInit->Banks & FLASH_BANK_2) == FLASH_BANK_2)
321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_2) != HAL_OK)
323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = HAL_ERROR;
325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if (status != HAL_OK)
330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Process Unlocked */
332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else
335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pEraseInit->Banks & FLASH_BANK_1) == FLASH_BANK_1)
337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Enable End of Operation and Error interrupts for Bank 1 */
339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_CR_OPERRIE)
340: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_
341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_IT_STRBERR_BANK1 | FLASH_IT_INCERR_BANK1 | FLASH_IT_OPERR_B
342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else
343: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_
344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_IT_STRBERR_BANK1 | FLASH_IT_INCERR_BANK1);
345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_OPERRIE */
346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pEraseInit->Banks & FLASH_BANK_2) == FLASH_BANK_2)
349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Enable End of Operation and Error interrupts for Bank 2 */
351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_CR_OPERRIE)
352: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_
353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_IT_STRBERR_BANK2 | FLASH_IT_INCERR_BANK2 | FLASH_IT_OPERR_B
354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else
355: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_
356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_IT_STRBERR_BANK2 | FLASH_IT_INCERR_BANK2);
357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_OPERRIE */
358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE)
362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /*Mass erase to be done*/
364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(pEraseInit->Banks == FLASH_BANK_1)
365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_MASSERASE_BANK1;
367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else if(pEraseInit->Banks == FLASH_BANK_2)
370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_MASSERASE_BANK2;
372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
ARM GAS /tmp/ccM28uwG.s page 8
374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else
375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_ALLBANK_MASSERASE;
377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_MassErase(pEraseInit->VoltageRange, pEraseInit->Banks);
380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else
382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Erase by sector to be done */
384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(pEraseInit->Banks == FLASH_BANK_1)
386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_SECTERASE_BANK1;
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 **** pFlash.ProcedureOnGoing = FLASH_PROC_SECTERASE_BANK2;
392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else
394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_SECTERASE_BANK1;
395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.NbSectorsToErase = pEraseInit->NbSectors;
398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.Sector = pEraseInit->Sector;
399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.VoltageForErase = pEraseInit->VoltageRange;
400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Erase first sector and wait for IT */
402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_Erase_Sector(pEraseInit->Sector, pEraseInit->Banks, pEraseInit->VoltageRange);
403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return status;
407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Program option bytes
411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param pOBInit pointer to an FLASH_OBInitStruct structure that
412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * contains the configuration information for the programming.
413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status
415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_OBProgram(FLASH_OBProgramInitTypeDef *pOBInit)
417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status;
419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */
421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OPTIONBYTE(pOBInit->OptionType));
422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Process Locked */
424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash);
425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Reset Error Code */
427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_1) != HAL_OK)
ARM GAS /tmp/ccM28uwG.s page 9
431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = HAL_ERROR;
433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else if(FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_2) != HAL_OK)
436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = HAL_ERROR;
438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else
441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = HAL_OK;
443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(status == HAL_OK)
446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /*Write protection configuration*/
448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_WRP) == OPTIONBYTE_WRP)
449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_WRPSTATE(pOBInit->WRPState));
451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(pOBInit->WRPState == OB_WRPSTATE_ENABLE)
453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /*Enable of Write protection on the selected Sector*/
455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_EnableWRP(pOBInit->WRPSector,pOBInit->Banks);
456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else
458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /*Disable of Write protection on the selected Sector*/
460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_DisableWRP(pOBInit->WRPSector, pOBInit->Banks);
461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Read protection configuration */
465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_RDP) != 0U)
466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure the Read protection level */
468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_RDPConfig(pOBInit->RDPLevel);
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 **** /* User Configuration */
472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_USER) != 0U)
473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure the user option bytes */
475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_UserConfig(pOBInit->USERType, pOBInit->USERConfig);
476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* PCROP Configuration */
479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_PCROP) != 0U)
480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(pOBInit->Banks));
482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /*Configure the Proprietary code readout protection */
484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_PCROPConfig(pOBInit->PCROPConfig, pOBInit->PCROPStartAddr, pOBInit->PCROPEndAddr, pO
485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* BOR Level configuration */
ARM GAS /tmp/ccM28uwG.s page 10
488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_BOR) == OPTIONBYTE_BOR)
489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_BOR_LevelConfig(pOBInit->BORLevel);
491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE)
494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* CM7 Boot Address configuration */
495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_CM7_BOOTADD) == OPTIONBYTE_CM7_BOOTADD)
496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_BootAddConfig(pOBInit->BootConfig, pOBInit->BootAddr0, pOBInit->BootAddr1);
498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* CM4 Boot Address configuration */
501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_CM4_BOOTADD) == OPTIONBYTE_CM4_BOOTADD)
502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_CM4BootAddConfig(pOBInit->CM4BootConfig, pOBInit->CM4BootAddr0, pOBInit->CM4BootAddr
504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else /* Single Core*/
506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Boot Address configuration */
507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_BOOTADD) == OPTIONBYTE_BOOTADD)
508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_BootAddConfig(pOBInit->BootConfig, pOBInit->BootAddr0, pOBInit->BootAddr1);
510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /*DUAL_CORE*/
512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Secure area configuration */
514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_SECURE_AREA) == OPTIONBYTE_SECURE_AREA)
515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_SecureAreaConfig(pOBInit->SecureAreaConfig, pOBInit->SecureAreaStartAddr, pOBInit->S
517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(FLASH_OTPBL_LOCKBL)
520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* OTP Block Lock configuration */
521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_OTP_LOCK) == OPTIONBYTE_OTP_LOCK)
522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_OTP_LockConfig(pOBInit->OTPBlockLock);
524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OTPBL_LOCKBL */
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_OPTSR2_TCM_AXI_SHARED)
528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* TCM / AXI Shared RAM configuration */
529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_SHARED_RAM) == OPTIONBYTE_SHARED_RAM)
530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_SharedRAM_Config(pOBInit->SharedRamConfig);
532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OPTSR2_TCM_AXI_SHARED */
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_CPUFREQ_BOOST)
536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* CPU Frequency Boost configuration */
537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((pOBInit->OptionType & OPTIONBYTE_FREQ_BOOST) == OPTIONBYTE_FREQ_BOOST)
538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_CPUFreq_BoostConfig(pOBInit->FreqBoostState);
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_CPUFREQ_BOOST */
542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Process Unlocked */
ARM GAS /tmp/ccM28uwG.s page 11
545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return status;
548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Get the Option byte configuration
552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param pOBInit pointer to an FLASH_OBInitStruct structure that
553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * contains the configuration information for the programming.
554: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
555: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
556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None
558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit)
560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->OptionType = (OPTIONBYTE_USER | OPTIONBYTE_RDP | OPTIONBYTE_BOR);
562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Get Read protection level */
564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->RDPLevel = FLASH_OB_GetRDP();
565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Get the user option bytes */
567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->USERConfig = FLASH_OB_GetUser();
568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /*Get BOR Level*/
570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->BORLevel = FLASH_OB_GetBOR();
571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if ((pOBInit->Banks == FLASH_BANK_1) || (pOBInit->Banks == FLASH_BANK_2))
574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else
575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if (pOBInit->Banks == FLASH_BANK_1)
576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->OptionType |= (OPTIONBYTE_WRP | OPTIONBYTE_PCROP | OPTIONBYTE_SECURE_AREA);
579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Get write protection on the selected area */
581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_GetWRP(&(pOBInit->WRPState), &(pOBInit->WRPSector), pOBInit->Banks);
582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Get the Proprietary code readout protection */
584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_GetPCROP(&(pOBInit->PCROPConfig), &(pOBInit->PCROPStartAddr), &(pOBInit->PCROPEndAddr)
585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /*Get Bank Secure area*/
587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_GetSecureArea(&(pOBInit->SecureAreaConfig), &(pOBInit->SecureAreaStartAddr), &(pOBInit
588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /*Get Boot Address*/
591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_GetBootAdd(&(pOBInit->BootAddr0), &(pOBInit->BootAddr1));
592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE)
593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->OptionType |= OPTIONBYTE_CM7_BOOTADD | OPTIONBYTE_CM4_BOOTADD;
594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /*Get CM4 Boot Address*/
596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_OB_GetCM4BootAdd(&(pOBInit->CM4BootAddr0), &(pOBInit->CM4BootAddr1));
597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else
598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->OptionType |= OPTIONBYTE_BOOTADD;
599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /*DUAL_CORE*/
600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_OTPBL_LOCKBL)
ARM GAS /tmp/ccM28uwG.s page 12
602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->OptionType |= OPTIONBYTE_OTP_LOCK;
603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Get OTP Block Lock */
605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->OTPBlockLock = FLASH_OB_OTP_GetLock();
606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OTPBL_LOCKBL */
607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_OPTSR2_TCM_AXI_SHARED)
609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->OptionType |= OPTIONBYTE_SHARED_RAM;
610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Get TCM / AXI Shared RAM */
612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->SharedRamConfig = FLASH_OB_SharedRAM_GetConfig();
613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OPTSR2_TCM_AXI_SHARED */
614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_OPTSR2_CPUFREQ_BOOST)
616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->OptionType |= OPTIONBYTE_FREQ_BOOST;
617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Get CPU Frequency Boost */
619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->FreqBoostState = FLASH_OB_CPUFreq_GetBoost();
620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OPTSR2_CPUFREQ_BOOST */
621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Unlock the FLASH Bank1 control registers access
625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status
626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Unlock_Bank1(void)
628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(READ_BIT(FLASH->CR1, FLASH_CR_LOCK) != 0U)
630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Authorize the FLASH Bank1 Registers access */
632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** WRITE_REG(FLASH->KEYR1, FLASH_KEY1);
633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** WRITE_REG(FLASH->KEYR1, FLASH_KEY2);
634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Verify Flash Bank1 is unlocked */
636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if (READ_BIT(FLASH->CR1, FLASH_CR_LOCK) != 0U)
637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return HAL_ERROR;
639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return HAL_OK;
643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Locks the FLASH Bank1 control registers access
647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status
648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Lock_Bank1(void)
650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set the LOCK Bit to lock the FLASH Bank1 Registers access */
652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** SET_BIT(FLASH->CR1, FLASH_CR_LOCK);
653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return HAL_OK;
654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Unlock the FLASH Bank2 control registers access
ARM GAS /tmp/ccM28uwG.s page 13
659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status
660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Unlock_Bank2(void)
662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(READ_BIT(FLASH->CR2, FLASH_CR_LOCK) != 0U)
664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Authorize the FLASH Bank2 Registers access */
666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** WRITE_REG(FLASH->KEYR2, FLASH_KEY1);
667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** WRITE_REG(FLASH->KEYR2, FLASH_KEY2);
668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Verify Flash Bank1 is unlocked */
670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if (READ_BIT(FLASH->CR2, FLASH_CR_LOCK) != 0U)
671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return HAL_ERROR;
673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return HAL_OK;
677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Locks the FLASH Bank2 control registers access
681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status
682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Lock_Bank2(void)
684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set the LOCK Bit to lock the FLASH Bank2 Registers access */
686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** SET_BIT(FLASH->CR2, FLASH_CR_LOCK);
687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return HAL_OK;
688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /*
692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Perform a CRC computation on the specified FLASH memory area
693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param pCRCInit pointer to an FLASH_CRCInitTypeDef structure that
694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * contains the configuration information for the CRC computation.
695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note CRC computation uses CRC-32 (Ethernet) polynomial 0x4C11DB7
696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note The application should avoid running a CRC on PCROP or secure-only
697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * user Flash memory area since it may alter the expected CRC value.
698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * A special error flag (CRC read error: CRCRDERR) can be used to
699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * detect such a case.
700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status
701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_ComputeCRC(FLASH_CRCInitTypeDef *pCRCInit, uint32_t *CRC_Result)
703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status;
705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t sector_index;
706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */
708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK_EXCLUSIVE(pCRCInit->Bank));
709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_TYPECRC(pCRCInit->TypeCRC));
710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait for OB change operation to be completed */
712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = FLASH_OB_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if (status == HAL_OK)
715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
ARM GAS /tmp/ccM28uwG.s page 14
716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if (pCRCInit->Bank == FLASH_BANK_1)
717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Enable CRC feature */
719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 |= FLASH_CR_CRC_EN;
720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Clear CRC flags in Status Register: CRC end of calculation and CRC read error */
722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CCR1 |= (FLASH_CCR_CLR_CRCEND | FLASH_CCR_CLR_CRCRDERR);
723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
724: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
725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR1 |= FLASH_CRCCR_CLEAN_CRC | pCRCInit->BurstSize | pCRCInit->TypeCRC;
726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if (pCRCInit->TypeCRC == FLASH_CRC_SECTORS)
728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Clear sectors list */
730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR1 |= FLASH_CRCCR_CLEAN_SECT;
731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Select CRC sectors */
733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** for(sector_index = pCRCInit->Sector; sector_index < (pCRCInit->NbSectors + pCRCInit->Sector
734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_CRC_AddSector(sector_index, FLASH_BANK_1);
736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else if (pCRCInit->TypeCRC == FLASH_CRC_BANK)
739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Enable Bank 1 CRC select bit */
741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR1 |= FLASH_CRCCR_ALL_BANK;
742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else
744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Select CRC start and end addresses */
746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_CRC_SelectAddress(pCRCInit->CRCStartAddr, pCRCInit->CRCEndAddr, FLASH_BANK_1);
747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Start the CRC calculation */
750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR1 |= FLASH_CRCCR_START_CRC;
751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait on CRC busy flag */
753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = FLASH_CRC_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_1);
754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Return CRC result */
756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*CRC_Result) = FLASH->CRCDATA;
757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Disable CRC feature */
759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 &= (~FLASH_CR_CRC_EN);
760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Clear CRC flags */
762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_CLEAR_FLAG_BANK1(FLASH_FLAG_CRCEND_BANK1 | FLASH_FLAG_CRCRDERR_BANK1);
763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else
766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Enable CRC feature */
768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 |= FLASH_CR_CRC_EN;
769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Clear CRC flags in Status Register: CRC end of calculation and CRC read error */
771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CCR2 |= (FLASH_CCR_CLR_CRCEND | FLASH_CCR_CLR_CRCRDERR);
772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
ARM GAS /tmp/ccM28uwG.s page 15
773: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
774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR2 |= FLASH_CRCCR_CLEAN_CRC | pCRCInit->BurstSize | pCRCInit->TypeCRC;
775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if (pCRCInit->TypeCRC == FLASH_CRC_SECTORS)
777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Clear sectors list */
779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR2 |= FLASH_CRCCR_CLEAN_SECT;
780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Add CRC sectors */
782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** for(sector_index = pCRCInit->Sector; sector_index < (pCRCInit->NbSectors + pCRCInit->Sector
783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_CRC_AddSector(sector_index, FLASH_BANK_2);
785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else if (pCRCInit->TypeCRC == FLASH_CRC_BANK)
788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Enable Bank 2 CRC select bit */
790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR2 |= FLASH_CRCCR_ALL_BANK;
791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else
793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Select CRC start and end addresses */
795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_CRC_SelectAddress(pCRCInit->CRCStartAddr, pCRCInit->CRCEndAddr, FLASH_BANK_2);
796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Start the CRC calculation */
799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR2 |= FLASH_CRCCR_START_CRC;
800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Wait on CRC busy flag */
802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** status = FLASH_CRC_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE, FLASH_BANK_2);
803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Return CRC result */
805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*CRC_Result) = FLASH->CRCDATA;
806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Disable CRC feature */
808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 &= (~FLASH_CR_CRC_EN);
809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Clear CRC flags */
811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** __HAL_FLASH_CLEAR_FLAG_BANK2(FLASH_FLAG_CRCEND_BANK2 | FLASH_FLAG_CRCRDERR_BANK2);
812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return status;
817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @}
821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
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 **** * @}
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 **** /* Private functions ---------------------------------------------------------*/
828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /** @addtogroup FLASHEx_Private_Functions
ARM GAS /tmp/ccM28uwG.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 **** */
832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Mass erase of FLASH memory
835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param VoltageRange The device program/erase parallelism.
836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values:
837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_1 : Flash program/erase by 8 bits
838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_2 : Flash program/erase by 16 bits
839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_3 : Flash program/erase by 32 bits
840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_4 : Flash program/erase by 64 bits
841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Banks Banks to be erased
843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values:
844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: Bank1 to be erased
845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: Bank2 to be erased
846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: Bank1 and Bank2 to be erased
847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status
849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_MassErase(uint32_t VoltageRange, uint32_t Banks)
851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
28 .loc 1 851 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.
852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */
853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_CR_PSIZE)
854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_VOLTAGERANGE(VoltageRange));
33 .loc 1 854 3 view .LVU1
855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else
856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** UNUSED(VoltageRange);
857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_PSIZE */
858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks));
34 .loc 1 858 3 view .LVU2
859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Flash Mass Erase */
862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_BOTH) == FLASH_BANK_BOTH)
863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_CR_PSIZE)
865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Reset Program/erase VoltageRange for Bank1 and Bank2 */
866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 &= (~FLASH_CR_PSIZE);
867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 &= (~FLASH_CR_PSIZE);
868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set voltage range */
870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 |= VoltageRange;
871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 |= VoltageRange;
872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_PSIZE */
873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set Mass Erase Bit */
875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->OPTCR |= FLASH_OPTCR_MER;
876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else
878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
ARM GAS /tmp/ccM28uwG.s page 17
880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Proceed to erase Flash Bank */
881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_1) == FLASH_BANK_1)
35 .loc 1 881 5 view .LVU3
36 .loc 1 881 7 is_stmt 0 view .LVU4
37 0000 11F0010F tst r1, #1
38 0004 0BD0 beq .L1
882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_CR_PSIZE)
884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set Program/erase VoltageRange for Bank1 */
885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 &= (~FLASH_CR_PSIZE);
39 .loc 1 885 7 is_stmt 1 view .LVU5
40 .loc 1 885 18 is_stmt 0 view .LVU6
41 0006 064B ldr r3, .L3
42 0008 DA68 ldr r2, [r3, #12]
43 000a 22F03002 bic r2, r2, #48
44 000e DA60 str r2, [r3, #12]
886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 |= VoltageRange;
45 .loc 1 886 7 is_stmt 1 view .LVU7
46 .loc 1 886 18 is_stmt 0 view .LVU8
47 0010 DA68 ldr r2, [r3, #12]
48 0012 1043 orrs r0, r0, r2
49 .LVL1:
50 .loc 1 886 18 view .LVU9
51 0014 D860 str r0, [r3, #12]
887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_PSIZE */
888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Erase Bank1 */
890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 |= (FLASH_CR_BER | FLASH_CR_START);
52 .loc 1 890 7 is_stmt 1 view .LVU10
53 .loc 1 890 18 is_stmt 0 view .LVU11
54 0016 DA68 ldr r2, [r3, #12]
55 0018 42F08802 orr r2, r2, #136
56 001c DA60 str r2, [r3, #12]
57 .L1:
891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_2) == FLASH_BANK_2)
895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_CR_PSIZE)
897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set Program/erase VoltageRange for Bank2 */
898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 &= (~FLASH_CR_PSIZE);
899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 |= VoltageRange;
900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_PSIZE */
901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Erase Bank2 */
903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 |= (FLASH_CR_BER | FLASH_CR_START);
904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
58 .loc 1 907 1 view .LVU12
59 001e 7047 bx lr
60 .L4:
61 .align 2
62 .L3:
63 0020 00200052 .word 1375739904
ARM GAS /tmp/ccM28uwG.s page 18
64 .cfi_endproc
65 .LFE148:
67 .section .text.FLASH_OB_EnableWRP,"ax",%progbits
68 .align 1
69 .syntax unified
70 .thumb
71 .thumb_func
72 .fpu fpv5-d16
74 FLASH_OB_EnableWRP:
75 .LVL2:
76 .LFB150:
908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Erase the specified FLASH memory sector
911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Sector FLASH sector to erase
912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be a value of @ref FLASH_Sectors
913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Banks Banks to be erased
914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values:
915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: Bank1 to be erased
916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: Bank2 to be erased
917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: Bank1 and Bank2 to be erased
918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param VoltageRange The device program/erase parallelism.
919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values:
920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_1 : Flash program/erase by 8 bits
921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_2 : Flash program/erase by 16 bits
922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_3 : Flash program/erase by 32 bits
923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_4 : Flash program/erase by 64 bits
924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None
926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** void FLASH_Erase_Sector(uint32_t Sector, uint32_t Banks, uint32_t VoltageRange)
928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_SECTOR(Sector));
930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK_EXCLUSIVE(Banks));
931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_CR_PSIZE)
932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_VOLTAGERANGE(VoltageRange));
933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else
934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** UNUSED(VoltageRange);
935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_PSIZE */
936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_1) == FLASH_BANK_1)
938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_CR_PSIZE)
940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Reset Program/erase VoltageRange and Sector Number for Bank1 */
941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 &= ~(FLASH_CR_PSIZE | FLASH_CR_SNB);
942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 |= (FLASH_CR_SER | VoltageRange | (Sector << FLASH_CR_SNB_Pos) | FLASH_CR_START);
944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else
945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Reset Sector Number for Bank1 */
946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 &= ~(FLASH_CR_SNB);
947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR1 |= (FLASH_CR_SER | (Sector << FLASH_CR_SNB_Pos) | FLASH_CR_START);
949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_PSIZE */
950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_2) == FLASH_BANK_2)
ARM GAS /tmp/ccM28uwG.s page 19
954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_CR_PSIZE)
956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Reset Program/erase VoltageRange and Sector Number for Bank2 */
957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 &= ~(FLASH_CR_PSIZE | FLASH_CR_SNB);
958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 |= (FLASH_CR_SER | VoltageRange | (Sector << FLASH_CR_SNB_Pos) | FLASH_CR_START);
960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else
961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Reset Sector Number for Bank2 */
962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 &= ~(FLASH_CR_SNB);
963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CR2 |= (FLASH_CR_SER | (Sector << FLASH_CR_SNB_Pos) | FLASH_CR_START);
965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_CR_PSIZE */
966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Enable the write protection of the desired bank1 or bank 2 sectors
972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param WRPSector specifies the sector(s) to be write protected.
973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values:
974: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
975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Banks the specific bank to apply WRP sectors
977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values:
978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: enable WRP on specified bank1 sectors
979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: enable WRP on specified bank2 sectors
980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: enable WRP on both bank1 and bank2 specified sectors
981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL FLASH State
983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_EnableWRP(uint32_t WRPSector, uint32_t Banks)
985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
77 .loc 1 985 1 is_stmt 1 view -0
78 .cfi_startproc
79 @ args = 0, pretend = 0, frame = 0
80 @ frame_needed = 0, uses_anonymous_args = 0
81 @ link register save eliminated.
986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */
987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_WRP_SECTOR(WRPSector));
82 .loc 1 987 3 view .LVU14
988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks));
83 .loc 1 988 3 view .LVU15
989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_1) == FLASH_BANK_1)
84 .loc 1 990 3 view .LVU16
85 .loc 1 990 5 is_stmt 0 view .LVU17
86 0000 11F0010F tst r1, #1
87 0004 05D0 beq .L5
991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Enable Write Protection for bank 1 */
993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->WPSN_PRG1 &= (~(WRPSector & FLASH_WPSN_WRPSN));
88 .loc 1 993 5 is_stmt 1 view .LVU18
89 .loc 1 993 22 is_stmt 0 view .LVU19
90 0006 034A ldr r2, .L7
91 0008 D36B ldr r3, [r2, #60]
92 .loc 1 993 38 view .LVU20
93 000a C0B2 uxtb r0, r0
ARM GAS /tmp/ccM28uwG.s page 20
94 .LVL3:
95 .loc 1 993 22 view .LVU21
96 000c 23EA0000 bic r0, r3, r0
97 0010 D063 str r0, [r2, #60]
98 .L5:
994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_2) == FLASH_BANK_2)
998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Enable Write Protection for bank 2 */
1000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->WPSN_PRG2 &= (~(WRPSector & FLASH_WPSN_WRPSN));
1001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
1003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
99 .loc 1 1003 1 view .LVU22
100 0012 7047 bx lr
101 .L8:
102 .align 2
103 .L7:
104 0014 00200052 .word 1375739904
105 .cfi_endproc
106 .LFE150:
108 .section .text.FLASH_OB_DisableWRP,"ax",%progbits
109 .align 1
110 .syntax unified
111 .thumb
112 .thumb_func
113 .fpu fpv5-d16
115 FLASH_OB_DisableWRP:
116 .LVL4:
117 .LFB151:
1004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
1006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Disable the write protection of the desired bank1 or bank 2 sectors
1007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param WRPSector specifies the sector(s) to disable write protection.
1008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1009: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
1010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Banks the specific bank to apply WRP sectors
1012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: disable WRP on specified bank1 sectors
1014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: disable WRP on specified bank2 sectors
1015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: disable WRP on both bank1 and bank2 specified sectors
1016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL FLASH State
1018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
1019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_DisableWRP(uint32_t WRPSector, uint32_t Banks)
1020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
118 .loc 1 1020 1 is_stmt 1 view -0
119 .cfi_startproc
120 @ args = 0, pretend = 0, frame = 0
121 @ frame_needed = 0, uses_anonymous_args = 0
122 @ link register save eliminated.
1021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */
1022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_WRP_SECTOR(WRPSector));
123 .loc 1 1022 3 view .LVU24
ARM GAS /tmp/ccM28uwG.s page 21
1023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks));
124 .loc 1 1023 3 view .LVU25
1024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_1) == FLASH_BANK_1)
125 .loc 1 1025 3 view .LVU26
126 .loc 1 1025 5 is_stmt 0 view .LVU27
127 0000 11F0010F tst r1, #1
128 0004 04D0 beq .L9
1026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Disable Write Protection for bank 1 */
1028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->WPSN_PRG1 |= (WRPSector & FLASH_WPSN_WRPSN);
129 .loc 1 1028 5 is_stmt 1 view .LVU28
130 .loc 1 1028 22 is_stmt 0 view .LVU29
131 0006 034A ldr r2, .L11
132 0008 D36B ldr r3, [r2, #60]
133 .loc 1 1028 36 view .LVU30
134 000a C0B2 uxtb r0, r0
135 .LVL5:
136 .loc 1 1028 22 view .LVU31
137 000c 1843 orrs r0, r0, r3
138 000e D063 str r0, [r2, #60]
139 .L9:
1029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
1032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_2) == FLASH_BANK_2)
1033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Disable Write Protection for bank 2 */
1035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->WPSN_PRG2 |= (WRPSector & FLASH_WPSN_WRPSN);
1036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
1038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
140 .loc 1 1038 1 view .LVU32
141 0010 7047 bx lr
142 .L12:
143 0012 00BF .align 2
144 .L11:
145 0014 00200052 .word 1375739904
146 .cfi_endproc
147 .LFE151:
149 .section .text.FLASH_OB_GetWRP,"ax",%progbits
150 .align 1
151 .syntax unified
152 .thumb
153 .thumb_func
154 .fpu fpv5-d16
156 FLASH_OB_GetWRP:
157 .LVL6:
158 .LFB152:
1039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
1041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Get the write protection of the given bank 1 or bank 2 sectors
1042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param WRPState gives the write protection state on the given bank.
1043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg WRPState: OB_WRPSTATE_DISABLE or OB_WRPSTATE_ENABLE
1045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param WRPSector gives the write protected sector(s) on the given bank .
ARM GAS /tmp/ccM28uwG.s page 22
1047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1048: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
1049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Bank the specific bank to apply WRP sectors
1051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be exclusively one of the following values:
1052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: Get bank1 WRP sectors
1053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: Get bank2 WRP sectors
1054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: note allowed in this functions
1055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL FLASH State
1057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
1058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_GetWRP(uint32_t *WRPState, uint32_t *WRPSector, uint32_t Bank)
1059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
159 .loc 1 1059 1 is_stmt 1 view -0
160 .cfi_startproc
161 @ args = 0, pretend = 0, frame = 0
162 @ frame_needed = 0, uses_anonymous_args = 0
163 @ link register save eliminated.
1060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t regvalue = 0U;
164 .loc 1 1060 3 view .LVU34
1061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(Bank == FLASH_BANK_1)
165 .loc 1 1062 3 view .LVU35
166 .loc 1 1062 5 is_stmt 0 view .LVU36
167 0000 012A cmp r2, #1
168 0002 06D0 beq .L18
1060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t regvalue = 0U;
169 .loc 1 1060 12 view .LVU37
170 0004 0023 movs r3, #0
171 .LVL7:
172 .L14:
1063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** regvalue = FLASH->WPSN_CUR1;
1065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
1068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(Bank == FLASH_BANK_2)
1069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** regvalue = FLASH->WPSN_CUR2;
1071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
1073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*WRPSector) = (~regvalue) & FLASH_WPSN_WRPSN;
173 .loc 1 1074 3 is_stmt 1 view .LVU38
174 .loc 1 1074 19 is_stmt 0 view .LVU39
175 0006 DB43 mvns r3, r3
176 .LVL8:
177 .loc 1 1074 30 view .LVU40
178 0008 DBB2 uxtb r3, r3
179 .LVL9:
180 .loc 1 1074 16 view .LVU41
181 000a 0B60 str r3, [r1]
1075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(*WRPSector == 0U)
182 .loc 1 1076 3 is_stmt 1 view .LVU42
183 .loc 1 1076 5 is_stmt 0 view .LVU43
184 000c 23B9 cbnz r3, .L15
ARM GAS /tmp/ccM28uwG.s page 23
1077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*WRPState) = OB_WRPSTATE_DISABLE;
185 .loc 1 1078 5 is_stmt 1 view .LVU44
186 .loc 1 1078 17 is_stmt 0 view .LVU45
187 000e 0360 str r3, [r0]
188 0010 7047 bx lr
189 .LVL10:
190 .L18:
1064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
191 .loc 1 1064 5 is_stmt 1 view .LVU46
1064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
192 .loc 1 1064 14 is_stmt 0 view .LVU47
193 0012 034B ldr r3, .L19
194 0014 9B6B ldr r3, [r3, #56]
195 .LVL11:
1064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
196 .loc 1 1064 14 view .LVU48
197 0016 F6E7 b .L14
198 .LVL12:
199 .L15:
1079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else
1081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*WRPState) = OB_WRPSTATE_ENABLE;
200 .loc 1 1082 5 is_stmt 1 view .LVU49
201 .loc 1 1082 17 is_stmt 0 view .LVU50
202 0018 0123 movs r3, #1
203 001a 0360 str r3, [r0]
1083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
204 .loc 1 1084 1 view .LVU51
205 001c 7047 bx lr
206 .L20:
207 001e 00BF .align 2
208 .L19:
209 0020 00200052 .word 1375739904
210 .cfi_endproc
211 .LFE152:
213 .section .text.FLASH_OB_RDPConfig,"ax",%progbits
214 .align 1
215 .syntax unified
216 .thumb
217 .thumb_func
218 .fpu fpv5-d16
220 FLASH_OB_RDPConfig:
221 .LVL13:
222 .LFB153:
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 Set the read protection level.
1088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note To configure the RDP level, the option lock bit OPTLOCK must be
1090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * cleared with the call of the HAL_FLASH_OB_Unlock() function.
1091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note To validate the RDP level, the option bytes must be reloaded
1092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * through the call of the HAL_FLASH_OB_Launch() function.
1093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note !!! Warning : When enabling OB_RDP level 2 it's no more possible
1094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * to go back to level 1 or 0 !!!
ARM GAS /tmp/ccM28uwG.s page 24
1095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param RDPLevel specifies the read protection level.
1097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_0: No protection
1099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_1: Read protection of the memory
1100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_2: Full chip protection
1101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL status
1103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
1104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_RDPConfig(uint32_t RDPLevel)
1105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
223 .loc 1 1105 1 is_stmt 1 view -0
224 .cfi_startproc
225 @ args = 0, pretend = 0, frame = 0
226 @ frame_needed = 0, uses_anonymous_args = 0
227 @ link register save eliminated.
1106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */
1107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_RDP_LEVEL(RDPLevel));
228 .loc 1 1107 3 view .LVU53
1108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure the RDP level in the option bytes register */
1110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** MODIFY_REG(FLASH->OPTSR_PRG, FLASH_OPTSR_RDP, RDPLevel);
229 .loc 1 1110 3 view .LVU54
230 0000 034A ldr r2, .L22
231 0002 136A ldr r3, [r2, #32]
232 0004 23F47F43 bic r3, r3, #65280
233 0008 0343 orrs r3, r3, r0
234 000a 1362 str r3, [r2, #32]
1111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
235 .loc 1 1111 1 is_stmt 0 view .LVU55
236 000c 7047 bx lr
237 .L23:
238 000e 00BF .align 2
239 .L22:
240 0010 00200052 .word 1375739904
241 .cfi_endproc
242 .LFE153:
244 .section .text.FLASH_OB_GetRDP,"ax",%progbits
245 .align 1
246 .syntax unified
247 .thumb
248 .thumb_func
249 .fpu fpv5-d16
251 FLASH_OB_GetRDP:
252 .LFB154:
1112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
1114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Get the read protection level.
1115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval RDPLevel specifies the read protection level.
1116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This return value can be one of the following values:
1117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_0: No protection
1118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_1: Read protection of the memory
1119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_2: Full chip protection
1120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetRDP(void)
1122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
253 .loc 1 1122 1 is_stmt 1 view -0
ARM GAS /tmp/ccM28uwG.s page 25
254 .cfi_startproc
255 @ args = 0, pretend = 0, frame = 0
256 @ frame_needed = 0, uses_anonymous_args = 0
257 @ link register save eliminated.
1123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t rdp_level = READ_BIT(FLASH->OPTSR_CUR, FLASH_OPTSR_RDP);
258 .loc 1 1123 3 view .LVU57
259 .loc 1 1123 24 is_stmt 0 view .LVU58
260 0000 064B ldr r3, .L27
261 0002 D869 ldr r0, [r3, #28]
262 .loc 1 1123 12 view .LVU59
263 0004 00F47F40 and r0, r0, #65280
264 .LVL14:
1124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if ((rdp_level != OB_RDP_LEVEL_0) && (rdp_level != OB_RDP_LEVEL_2))
265 .loc 1 1125 3 is_stmt 1 view .LVU60
266 .loc 1 1125 6 is_stmt 0 view .LVU61
267 0008 B0F52A4F cmp r0, #43520
268 000c 18BF it ne
269 000e B0F54C4F cmpne r0, #52224
270 0012 00D1 bne .L26
271 .LVL15:
272 .L24:
1126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return (OB_RDP_LEVEL_1);
1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else
1130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return rdp_level;
1132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
273 .loc 1 1133 1 view .LVU62
274 0014 7047 bx lr
275 .LVL16:
276 .L26:
1127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
277 .loc 1 1127 12 view .LVU63
278 0016 4FF4AA40 mov r0, #21760
279 .LVL17:
1127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
280 .loc 1 1127 12 view .LVU64
281 001a FBE7 b .L24
282 .L28:
283 .align 2
284 .L27:
285 001c 00200052 .word 1375739904
286 .cfi_endproc
287 .LFE154:
289 .section .text.FLASH_OB_UserConfig,"ax",%progbits
290 .align 1
291 .syntax unified
292 .thumb
293 .thumb_func
294 .fpu fpv5-d16
296 FLASH_OB_UserConfig:
297 .LVL18:
298 .LFB155:
1134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
ARM GAS /tmp/ccM28uwG.s page 26
1135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE)
1136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
1137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Program the FLASH User Option Byte.
1138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note To configure the user option bytes, the option lock bit OPTLOCK must
1140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * be cleared with the call of the HAL_FLASH_OB_Unlock() function.
1141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note To validate the user option bytes, the option bytes must be reloaded
1143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * through the call of the HAL_FLASH_OB_Launch() function.
1144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param UserType The FLASH User Option Bytes to be modified :
1146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * a combination of @ref FLASHEx_OB_USER_Type
1147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param UserConfig The FLASH User Option Bytes values:
1149: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),
1150: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]),
1151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * SECURITY(Bit 21), BCM4(Bit 22), BCM7(Bit 23), nRST_STOP_D2(Bit 24),
1152: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).
1153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL status
1155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
1156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else
1157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Program the FLASH User Option Byte.
1159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note To configure the user option bytes, the option lock bit OPTLOCK must
1161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * be cleared with the call of the HAL_FLASH_OB_Unlock() function.
1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note To validate the user option bytes, the option bytes must be reloaded
1164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * through the call of the HAL_FLASH_OB_Launch() function.
1165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param UserType The FLASH User Option Bytes to be modified :
1167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * a combination of @arg FLASHEx_OB_USER_Type
1168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param UserConfig The FLASH User Option Bytes values:
1170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * IWDG_SW(Bit4), nRST_STOP_D1(Bit 6), nRST_STDY_D1(Bit 7),
1171: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]),
1172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * SECURITY(Bit 21), IO_HSLV (Bit 29) and SWAP_BANK_OPT(Bit 31).
1173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL status
1175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
1176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /*DUAL_CORE*/
1177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_UserConfig(uint32_t UserType, uint32_t UserConfig)
1178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
299 .loc 1 1178 1 is_stmt 1 view -0
300 .cfi_startproc
301 @ args = 0, pretend = 0, frame = 0
302 @ frame_needed = 0, uses_anonymous_args = 0
303 @ link register save eliminated.
1179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t optr_reg_val = 0;
304 .loc 1 1179 3 view .LVU66
1180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t optr_reg_mask = 0;
305 .loc 1 1180 3 view .LVU67
1181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */
1183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_USER_TYPE(UserType));
306 .loc 1 1183 3 view .LVU68
ARM GAS /tmp/ccM28uwG.s page 27
1184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_IWDG1_SW) != 0U)
307 .loc 1 1185 3 view .LVU69
308 .loc 1 1185 5 is_stmt 0 view .LVU70
309 0000 10F00103 ands r3, r0, #1
310 0004 47D0 beq .L38
1186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* IWDG_HW option byte should be modified */
1188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_IWDG1_SOURCE(UserConfig & FLASH_OPTSR_IWDG1_SW));
311 .loc 1 1188 5 is_stmt 1 view .LVU71
1189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for IWDG_HW option byte */
1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_IWDG1_SW);
312 .loc 1 1191 5 view .LVU72
313 .loc 1 1191 33 is_stmt 0 view .LVU73
314 0006 01F01003 and r3, r1, #16
315 .LVL19:
1192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_IWDG1_SW;
316 .loc 1 1192 5 is_stmt 1 view .LVU74
317 .loc 1 1192 19 is_stmt 0 view .LVU75
318 000a 1022 movs r2, #16
319 .LVL20:
320 .L30:
1193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE)
1195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_IWDG2_SW) != 0U)
1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* IWDG2_SW option byte should be modified */
1198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_IWDG2_SOURCE(UserConfig & FLASH_OPTSR_IWDG2_SW));
1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for IWDG2_SW option byte */
1201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_IWDG2_SW);
1202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_IWDG2_SW;
1203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /*DUAL_CORE*/
1205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_NRST_STOP_D1) != 0U)
321 .loc 1 1205 3 is_stmt 1 view .LVU76
322 .loc 1 1205 5 is_stmt 0 view .LVU77
323 000c 10F0020F tst r0, #2
324 0010 05D0 beq .L31
1206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* NRST_STOP option byte should be modified */
1208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_STOP_D1_RESET(UserConfig & FLASH_OPTSR_NRST_STOP_D1));
325 .loc 1 1208 5 is_stmt 1 view .LVU78
1209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for NRST_STOP option byte */
1211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_NRST_STOP_D1);
326 .loc 1 1211 5 view .LVU79
327 .loc 1 1211 33 is_stmt 0 view .LVU80
328 0012 01F0400C and ip, r1, #64
329 .loc 1 1211 18 view .LVU81
330 0016 43EA0C03 orr r3, r3, ip
331 .LVL21:
1212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_NRST_STOP_D1;
332 .loc 1 1212 5 is_stmt 1 view .LVU82
333 .loc 1 1212 19 is_stmt 0 view .LVU83
334 001a 42F04002 orr r2, r2, #64
ARM GAS /tmp/ccM28uwG.s page 28
335 .LVL22:
336 .L31:
1213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_NRST_STDBY_D1) != 0U)
337 .loc 1 1215 3 is_stmt 1 view .LVU84
338 .loc 1 1215 5 is_stmt 0 view .LVU85
339 001e 10F0040F tst r0, #4
340 0022 05D0 beq .L32
1216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* NRST_STDBY option byte should be modified */
1218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_STDBY_D1_RESET(UserConfig & FLASH_OPTSR_NRST_STBY_D1));
341 .loc 1 1218 5 is_stmt 1 view .LVU86
1219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for NRST_STDBY option byte */
1221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_NRST_STBY_D1);
342 .loc 1 1221 5 view .LVU87
343 .loc 1 1221 33 is_stmt 0 view .LVU88
344 0024 01F0800C and ip, r1, #128
345 .loc 1 1221 18 view .LVU89
346 0028 43EA0C03 orr r3, r3, ip
347 .LVL23:
1222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_NRST_STBY_D1;
348 .loc 1 1222 5 is_stmt 1 view .LVU90
349 .loc 1 1222 19 is_stmt 0 view .LVU91
350 002c 42F08002 orr r2, r2, #128
351 .LVL24:
352 .L32:
1223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_IWDG_STOP) != 0U)
353 .loc 1 1225 3 is_stmt 1 view .LVU92
354 .loc 1 1225 5 is_stmt 0 view .LVU93
355 0030 10F0080F tst r0, #8
356 0034 05D0 beq .L33
1226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* IWDG_STOP option byte should be modified */
1228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_USER_IWDG_STOP(UserConfig & FLASH_OPTSR_FZ_IWDG_STOP));
357 .loc 1 1228 5 is_stmt 1 view .LVU94
1229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for IWDG_STOP option byte */
1231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_FZ_IWDG_STOP);
358 .loc 1 1231 5 view .LVU95
359 .loc 1 1231 33 is_stmt 0 view .LVU96
360 0036 01F4003C and ip, r1, #131072
361 .loc 1 1231 18 view .LVU97
362 003a 43EA0C03 orr r3, r3, ip
363 .LVL25:
1232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_FZ_IWDG_STOP;
364 .loc 1 1232 5 is_stmt 1 view .LVU98
365 .loc 1 1232 19 is_stmt 0 view .LVU99
366 003e 42F40032 orr r2, r2, #131072
367 .LVL26:
368 .L33:
1233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_IWDG_STDBY) != 0U)
ARM GAS /tmp/ccM28uwG.s page 29
369 .loc 1 1235 3 is_stmt 1 view .LVU100
370 .loc 1 1235 5 is_stmt 0 view .LVU101
371 0042 10F0100F tst r0, #16
372 0046 05D0 beq .L34
1236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* IWDG_STDBY option byte should be modified */
1238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_USER_IWDG_STDBY(UserConfig & FLASH_OPTSR_FZ_IWDG_SDBY));
373 .loc 1 1238 5 is_stmt 1 view .LVU102
1239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for IWDG_STDBY option byte */
1241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_FZ_IWDG_SDBY);
374 .loc 1 1241 5 view .LVU103
375 .loc 1 1241 33 is_stmt 0 view .LVU104
376 0048 01F4802C and ip, r1, #262144
377 .loc 1 1241 18 view .LVU105
378 004c 43EA0C03 orr r3, r3, ip
379 .LVL27:
1242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_FZ_IWDG_SDBY;
380 .loc 1 1242 5 is_stmt 1 view .LVU106
381 .loc 1 1242 19 is_stmt 0 view .LVU107
382 0050 42F48022 orr r2, r2, #262144
383 .LVL28:
384 .L34:
1243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_ST_RAM_SIZE) != 0U)
385 .loc 1 1245 3 is_stmt 1 view .LVU108
386 .loc 1 1245 5 is_stmt 0 view .LVU109
387 0054 10F0200F tst r0, #32
388 0058 05D0 beq .L35
1246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* ST_RAM_SIZE option byte should be modified */
1248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_USER_ST_RAM_SIZE(UserConfig & FLASH_OPTSR_ST_RAM_SIZE));
389 .loc 1 1248 5 is_stmt 1 view .LVU110
1249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for ST_RAM_SIZE option byte */
1251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_ST_RAM_SIZE);
390 .loc 1 1251 5 view .LVU111
391 .loc 1 1251 33 is_stmt 0 view .LVU112
392 005a 01F4C01C and ip, r1, #1572864
393 .loc 1 1251 18 view .LVU113
394 005e 43EA0C03 orr r3, r3, ip
395 .LVL29:
1252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_ST_RAM_SIZE;
396 .loc 1 1252 5 is_stmt 1 view .LVU114
397 .loc 1 1252 19 is_stmt 0 view .LVU115
398 0062 42F4C012 orr r2, r2, #1572864
399 .LVL30:
400 .L35:
1253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_SECURITY) != 0U)
401 .loc 1 1255 3 is_stmt 1 view .LVU116
402 .loc 1 1255 5 is_stmt 0 view .LVU117
403 0066 10F0400F tst r0, #64
404 006a 05D0 beq .L36
1256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
ARM GAS /tmp/ccM28uwG.s page 30
1257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* SECURITY option byte should be modified */
1258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_USER_SECURITY(UserConfig & FLASH_OPTSR_SECURITY));
405 .loc 1 1258 5 is_stmt 1 view .LVU118
1259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for SECURITY option byte */
1261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_SECURITY);
406 .loc 1 1261 5 view .LVU119
407 .loc 1 1261 33 is_stmt 0 view .LVU120
408 006c 01F4001C and ip, r1, #2097152
409 .loc 1 1261 18 view .LVU121
410 0070 43EA0C03 orr r3, r3, ip
411 .LVL31:
1262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_SECURITY;
412 .loc 1 1262 5 is_stmt 1 view .LVU122
413 .loc 1 1262 19 is_stmt 0 view .LVU123
414 0074 42F40012 orr r2, r2, #2097152
415 .LVL32:
416 .L36:
1263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE)
1266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_BCM4) != 0U)
1267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* BCM4 option byte should be modified */
1269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_USER_BCM4(UserConfig & FLASH_OPTSR_BCM4));
1270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for BCM4 option byte */
1272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_BCM4);
1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_BCM4;
1274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_BCM7) != 0U)
1277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* BCM7 option byte should be modified */
1279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_USER_BCM7(UserConfig & FLASH_OPTSR_BCM7));
1280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for BCM7 option byte */
1282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_BCM7);
1283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_BCM7;
1284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_CORE */
1286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_OPTSR_NRST_STOP_D2)
1288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_NRST_STOP_D2) != 0U)
1289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* NRST_STOP option byte should be modified */
1291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_STOP_D2_RESET(UserConfig & FLASH_OPTSR_NRST_STOP_D2));
1292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for NRST_STOP option byte */
1294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_NRST_STOP_D2);
1295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_NRST_STOP_D2;
1296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_NRST_STDBY_D2) != 0U)
1299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* NRST_STDBY option byte should be modified */
1301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_STDBY_D2_RESET(UserConfig & FLASH_OPTSR_NRST_STBY_D2));
ARM GAS /tmp/ccM28uwG.s page 31
1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for NRST_STDBY option byte */
1304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_NRST_STBY_D2);
1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_NRST_STBY_D2;
1306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OPTSR_NRST_STOP_D2 */
1308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
1310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_SWAP_BANK) != 0U)
1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* SWAP_BANK_OPT option byte should be modified */
1313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_USER_SWAP_BANK(UserConfig & FLASH_OPTSR_SWAP_BANK_OPT));
1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for SWAP_BANK_OPT option byte */
1316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_SWAP_BANK_OPT);
1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_SWAP_BANK_OPT;
1318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
1320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_IOHSLV) != 0U)
417 .loc 1 1321 3 is_stmt 1 view .LVU124
418 .loc 1 1321 5 is_stmt 0 view .LVU125
419 0078 10F0800F tst r0, #128
420 007c 04D0 beq .L37
1322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* IOHSLV_OPT option byte should be modified */
1324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_USER_IOHSLV(UserConfig & FLASH_OPTSR_IO_HSLV));
421 .loc 1 1324 5 is_stmt 1 view .LVU126
1325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for IOHSLV_OPT option byte */
1327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_IO_HSLV);
422 .loc 1 1327 5 view .LVU127
423 .loc 1 1327 33 is_stmt 0 view .LVU128
424 007e 01F00051 and r1, r1, #536870912
425 .LVL33:
426 .loc 1 1327 18 view .LVU129
427 0082 0B43 orrs r3, r3, r1
428 .LVL34:
1328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_IO_HSLV;
429 .loc 1 1328 5 is_stmt 1 view .LVU130
430 .loc 1 1328 19 is_stmt 0 view .LVU131
431 0084 42F00052 orr r2, r2, #536870912
432 .LVL35:
433 .L37:
1329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_OPTSR_VDDMMC_HSLV)
1332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((UserType & OB_USER_VDDMMC_HSLV) != 0U)
1333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* VDDMMC_HSLV option byte should be modified */
1335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_USER_VDDMMC_HSLV(UserConfig & FLASH_OPTSR_VDDMMC_HSLV));
1336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set value and mask for VDDMMC_HSLV option byte */
1338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTSR_VDDMMC_HSLV);
1339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTSR_VDDMMC_HSLV;
1340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* FLASH_OPTSR_VDDMMC_HSLV */
ARM GAS /tmp/ccM28uwG.s page 32
1342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure the option bytes register */
1344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** MODIFY_REG(FLASH->OPTSR_PRG, optr_reg_mask, optr_reg_val);
434 .loc 1 1344 3 is_stmt 1 view .LVU132
435 0088 0448 ldr r0, .L39
436 .LVL36:
437 .loc 1 1344 3 is_stmt 0 view .LVU133
438 008a 016A ldr r1, [r0, #32]
439 008c 21EA0202 bic r2, r1, r2
440 .LVL37:
441 .loc 1 1344 3 view .LVU134
442 0090 1343 orrs r3, r3, r2
443 .LVL38:
444 .loc 1 1344 3 view .LVU135
445 0092 0362 str r3, [r0, #32]
1345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
446 .loc 1 1345 1 view .LVU136
447 0094 7047 bx lr
448 .LVL39:
449 .L38:
1180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
450 .loc 1 1180 12 view .LVU137
451 0096 1A46 mov r2, r3
452 0098 B8E7 b .L30
453 .L40:
454 009a 00BF .align 2
455 .L39:
456 009c 00200052 .word 1375739904
457 .cfi_endproc
458 .LFE155:
460 .section .text.FLASH_OB_GetUser,"ax",%progbits
461 .align 1
462 .syntax unified
463 .thumb
464 .thumb_func
465 .fpu fpv5-d16
467 FLASH_OB_GetUser:
468 .LFB156:
1346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE)
1348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
1349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Return the FLASH User Option Byte value.
1350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval The FLASH User Option Bytes values
1351: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),
1352: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]),
1353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * SECURITY(Bit 21), BCM4(Bit 22), BCM7(Bit 23), nRST_STOP_D2(Bit 24),
1354: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).
1355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
1356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else
1357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
1358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Return the FLASH User Option Byte value.
1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval The FLASH User Option Bytes values
1360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * IWDG_SW(Bit4), nRST_STOP_D1(Bit 6), nRST_STDY_D1(Bit 7),
1361: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]),
1362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * SECURITY(Bit 21), IO_HSLV (Bit 29) and SWAP_BANK_OPT(Bit 31).
1363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
1364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /*DUAL_CORE*/
ARM GAS /tmp/ccM28uwG.s page 33
1365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetUser(void)
1366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
469 .loc 1 1366 1 is_stmt 1 view -0
470 .cfi_startproc
471 @ args = 0, pretend = 0, frame = 0
472 @ frame_needed = 0, uses_anonymous_args = 0
473 @ link register save eliminated.
1367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t userConfig = READ_REG(FLASH->OPTSR_CUR);
474 .loc 1 1367 3 view .LVU139
475 .loc 1 1367 12 is_stmt 0 view .LVU140
476 0000 024B ldr r3, .L42
477 0002 DB69 ldr r3, [r3, #28]
478 .LVL40:
1368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** userConfig &= (~(FLASH_OPTSR_BOR_LEV | FLASH_OPTSR_RDP));
479 .loc 1 1368 3 is_stmt 1 view .LVU141
1369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return userConfig;
480 .loc 1 1370 3 view .LVU142
1371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
481 .loc 1 1371 1 is_stmt 0 view .LVU143
482 0004 0248 ldr r0, .L42+4
483 0006 1840 ands r0, r0, r3
484 .LVL41:
485 .loc 1 1371 1 view .LVU144
486 0008 7047 bx lr
487 .L43:
488 000a 00BF .align 2
489 .L42:
490 000c 00200052 .word 1375739904
491 0010 F300FFFF .word -65293
492 .cfi_endproc
493 .LFE156:
495 .section .text.FLASH_OB_PCROPConfig,"ax",%progbits
496 .align 1
497 .syntax unified
498 .thumb
499 .thumb_func
500 .fpu fpv5-d16
502 FLASH_OB_PCROPConfig:
503 .LVL42:
504 .LFB157:
1372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
1374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Configure the Proprietary code readout protection of the desired addresses
1375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note To configure the PCROP options, the option lock bit OPTLOCK must be
1377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * cleared with the call of the HAL_FLASH_OB_Unlock() function.
1378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @note To validate the PCROP options, the option bytes must be reloaded
1379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * through the call of the HAL_FLASH_OB_Launch() function.
1380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1381: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
1382: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
1383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter must be a value of @arg FLASHEx_OB_PCROP_RDP enumeration
1384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param PCROPStartAddr specifies the start address of the Proprietary code readout protection
1386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be an address between begin and end of the bank
1387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
ARM GAS /tmp/ccM28uwG.s page 34
1388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param PCROPEndAddr specifies the end address of the Proprietary code readout protection
1389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be an address between PCROPStartAddr and end of the bank
1390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Banks the specific bank to apply PCROP protection
1392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: PCROP on specified bank1 area
1394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: PCROP on specified bank2 area
1395: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
1396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None
1398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
1399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_PCROPConfig(uint32_t PCROPConfig, uint32_t PCROPStartAddr, uint32_t PCROPEndAd
1400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
505 .loc 1 1400 1 is_stmt 1 view -0
506 .cfi_startproc
507 @ args = 0, pretend = 0, frame = 0
508 @ frame_needed = 0, uses_anonymous_args = 0
509 @ link register save eliminated.
1401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */
1402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks));
510 .loc 1 1402 3 view .LVU146
1403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_PCROP_RDP(PCROPConfig));
511 .loc 1 1403 3 view .LVU147
1404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_1) == FLASH_BANK_1)
512 .loc 1 1405 3 view .LVU148
513 .loc 1 1405 5 is_stmt 0 view .LVU149
514 0000 13F0010F tst r3, #1
515 0004 0AD0 beq .L44
1406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK1(PCROPStartAddr));
516 .loc 1 1407 5 is_stmt 1 view .LVU150
1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK1(PCROPEndAddr));
517 .loc 1 1408 5 view .LVU151
1409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure the Proprietary code readout protection */
1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->PRAR_PRG1 = ((PCROPStartAddr - FLASH_BANK1_BASE) >> 8) |
518 .loc 1 1411 5 view .LVU152
519 .loc 1 1411 41 is_stmt 0 view .LVU153
520 0006 01F17841 add r1, r1, #-134217728
521 .LVL43:
1412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((PCROPEndAddr - FLASH_BANK1_BASE) >> 8) << FLASH_PRAR_PROT_AREA_END_Pos) |
522 .loc 1 1412 40 view .LVU154
523 000a 02F17842 add r2, r2, #-134217728
524 .LVL44:
525 .loc 1 1412 60 view .LVU155
526 000e 120A lsrs r2, r2, #8
527 .LVL45:
528 .loc 1 1412 66 view .LVU156
529 0010 1204 lsls r2, r2, #16
1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((PCROPEndAddr - FLASH_BANK1_BASE) >> 8) << FLASH_PRAR_PROT_AREA_END_Pos) |
530 .loc 1 1411 99 view .LVU157
531 0012 42EA1122 orr r2, r2, r1, lsr #8
532 .loc 1 1412 99 view .LVU158
533 0016 1043 orrs r0, r0, r2
534 .LVL46:
1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((PCROPEndAddr - FLASH_BANK1_BASE) >> 8) << FLASH_PRAR_PROT_AREA_END_Pos) |
ARM GAS /tmp/ccM28uwG.s page 35
535 .loc 1 1411 22 view .LVU159
536 0018 014B ldr r3, .L46
537 .LVL47:
1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((PCROPEndAddr - FLASH_BANK1_BASE) >> 8) << FLASH_PRAR_PROT_AREA_END_Pos) |
538 .loc 1 1411 22 view .LVU160
539 001a D862 str r0, [r3, #44]
540 .LVL48:
541 .L44:
1413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** PCROPConfig;
1414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
1417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_2) == FLASH_BANK_2)
1418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK2(PCROPStartAddr));
1420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK2(PCROPEndAddr));
1421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure the Proprietary code readout protection */
1423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->PRAR_PRG2 = ((PCROPStartAddr - FLASH_BANK2_BASE) >> 8) |
1424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((PCROPEndAddr - FLASH_BANK2_BASE) >> 8) << FLASH_PRAR_PROT_AREA_END_Pos) |
1425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** PCROPConfig;
1426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
1428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
542 .loc 1 1428 1 view .LVU161
543 001c 7047 bx lr
544 .L47:
545 001e 00BF .align 2
546 .L46:
547 0020 00200052 .word 1375739904
548 .cfi_endproc
549 .LFE157:
551 .section .text.FLASH_OB_GetPCROP,"ax",%progbits
552 .align 1
553 .syntax unified
554 .thumb
555 .thumb_func
556 .fpu fpv5-d16
558 FLASH_OB_GetPCROP:
559 .LVL49:
560 .LFB158:
1429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
1431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Get the Proprietary code readout protection configuration on a given Bank
1432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1433: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
1434: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
1435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param PCROPStartAddr gives the start address of the Proprietary code readout protection of th
1437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1438: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
1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Bank the specific bank to apply PCROP protection
1441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be exclusively one of the following values:
1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: PCROP on specified bank1 area
1443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: PCROP on specified bank2 area
1444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: is not allowed here
ARM GAS /tmp/ccM28uwG.s page 36
1445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None
1447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
1448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_GetPCROP(uint32_t *PCROPConfig, uint32_t *PCROPStartAddr, uint32_t *PCROPEndAd
1449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
561 .loc 1 1449 1 is_stmt 1 view -0
562 .cfi_startproc
563 @ args = 0, pretend = 0, frame = 0
564 @ frame_needed = 0, uses_anonymous_args = 0
565 @ link register save eliminated.
566 .loc 1 1449 1 is_stmt 0 view .LVU163
567 0000 10B4 push {r4}
568 .LCFI0:
569 .cfi_def_cfa_offset 4
570 .cfi_offset 4, -4
1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t regvalue = 0;
571 .loc 1 1450 3 is_stmt 1 view .LVU164
572 .LVL50:
1451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t bankBase = 0;
573 .loc 1 1451 3 view .LVU165
1452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(Bank == FLASH_BANK_1)
574 .loc 1 1453 3 view .LVU166
575 .loc 1 1453 5 is_stmt 0 view .LVU167
576 0002 012B cmp r3, #1
577 0004 13D0 beq .L52
1451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t bankBase = 0;
578 .loc 1 1451 12 view .LVU168
579 0006 4FF0000C mov ip, #0
1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t bankBase = 0;
580 .loc 1 1450 12 view .LVU169
581 000a 6346 mov r3, ip
582 .LVL51:
583 .L49:
1454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** regvalue = FLASH->PRAR_CUR1;
1456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK1_BASE;
1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
1460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(Bank == FLASH_BANK_2)
1461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** regvalue = FLASH->PRAR_CUR2;
1463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK2_BASE;
1464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
1466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*PCROPConfig) = (regvalue & FLASH_PRAR_DMEP);
584 .loc 1 1467 3 is_stmt 1 view .LVU170
585 .loc 1 1467 31 is_stmt 0 view .LVU171
586 000c 03F00044 and r4, r3, #-2147483648
587 .loc 1 1467 18 view .LVU172
588 0010 0460 str r4, [r0]
1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*PCROPStartAddr) = ((regvalue & FLASH_PRAR_PROT_AREA_START) << 8) + bankBase;
589 .loc 1 1469 3 is_stmt 1 view .LVU173
590 .loc 1 1469 64 is_stmt 0 view .LVU174
ARM GAS /tmp/ccM28uwG.s page 37
591 0012 0948 ldr r0, .L53
592 .LVL52:
593 .loc 1 1469 64 view .LVU175
594 0014 00EA0320 and r0, r0, r3, lsl #8
595 .loc 1 1469 70 view .LVU176
596 0018 6044 add r0, r0, ip
597 .loc 1 1469 21 view .LVU177
598 001a 0860 str r0, [r1]
1470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*PCROPEndAddr) = (regvalue & FLASH_PRAR_PROT_AREA_END) >> FLASH_PRAR_PROT_AREA_END_Pos;
599 .loc 1 1470 3 is_stmt 1 view .LVU178
600 .loc 1 1470 59 is_stmt 0 view .LVU179
601 001c C3F30B43 ubfx r3, r3, #16, #12
602 .LVL53:
603 .loc 1 1470 19 view .LVU180
604 0020 1360 str r3, [r2]
1471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*PCROPEndAddr) = ((*PCROPEndAddr) << 8) + bankBase;
605 .loc 1 1471 3 is_stmt 1 view .LVU181
606 .loc 1 1471 44 is_stmt 0 view .LVU182
607 0022 0CEB0323 add r3, ip, r3, lsl #8
608 .loc 1 1471 19 view .LVU183
609 0026 1360 str r3, [r2]
1472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
610 .loc 1 1472 1 view .LVU184
611 0028 5DF8044B ldr r4, [sp], #4
612 .LCFI1:
613 .cfi_remember_state
614 .cfi_restore 4
615 .cfi_def_cfa_offset 0
616 002c 7047 bx lr
617 .LVL54:
618 .L52:
619 .LCFI2:
620 .cfi_restore_state
1455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK1_BASE;
621 .loc 1 1455 5 is_stmt 1 view .LVU185
1455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK1_BASE;
622 .loc 1 1455 14 is_stmt 0 view .LVU186
623 002e 034B ldr r3, .L53+4
624 .LVL55:
1455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK1_BASE;
625 .loc 1 1455 14 view .LVU187
626 0030 9B6A ldr r3, [r3, #40]
627 .LVL56:
1456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
628 .loc 1 1456 5 is_stmt 1 view .LVU188
1456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
629 .loc 1 1456 14 is_stmt 0 view .LVU189
630 0032 4FF0006C mov ip, #134217728
631 0036 E9E7 b .L49
632 .L54:
633 .align 2
634 .L53:
635 0038 00FF0F00 .word 1048320
636 003c 00200052 .word 1375739904
637 .cfi_endproc
638 .LFE158:
640 .section .text.FLASH_OB_BOR_LevelConfig,"ax",%progbits
ARM GAS /tmp/ccM28uwG.s page 38
641 .align 1
642 .syntax unified
643 .thumb
644 .thumb_func
645 .fpu fpv5-d16
647 FLASH_OB_BOR_LevelConfig:
648 .LVL57:
649 .LFB159:
1473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Set the BOR Level.
1476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Level specifies the Option Bytes BOR Reset Level.
1477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_BOR_LEVEL0: Reset level threshold is set to 1.6V
1479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_BOR_LEVEL1: Reset level threshold is set to 2.1V
1480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_BOR_LEVEL2: Reset level threshold is set to 2.4V
1481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_BOR_LEVEL3: Reset level threshold is set to 2.7V
1482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None
1483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
1484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_BOR_LevelConfig(uint32_t Level)
1485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
650 .loc 1 1485 1 is_stmt 1 view -0
651 .cfi_startproc
652 @ args = 0, pretend = 0, frame = 0
653 @ frame_needed = 0, uses_anonymous_args = 0
654 @ link register save eliminated.
1486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_BOR_LEVEL(Level));
655 .loc 1 1486 3 view .LVU191
1487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure BOR_LEV option byte */
1489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** MODIFY_REG(FLASH->OPTSR_PRG, FLASH_OPTSR_BOR_LEV, Level);
656 .loc 1 1489 3 view .LVU192
657 0000 034A ldr r2, .L56
658 0002 136A ldr r3, [r2, #32]
659 0004 23F00C03 bic r3, r3, #12
660 0008 0343 orrs r3, r3, r0
661 000a 1362 str r3, [r2, #32]
1490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
662 .loc 1 1490 1 is_stmt 0 view .LVU193
663 000c 7047 bx lr
664 .L57:
665 000e 00BF .align 2
666 .L56:
667 0010 00200052 .word 1375739904
668 .cfi_endproc
669 .LFE159:
671 .section .text.FLASH_OB_GetBOR,"ax",%progbits
672 .align 1
673 .syntax unified
674 .thumb
675 .thumb_func
676 .fpu fpv5-d16
678 FLASH_OB_GetBOR:
679 .LFB160:
1491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
1493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Get the BOR Level.
ARM GAS /tmp/ccM28uwG.s page 39
1494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval The Option Bytes BOR Reset Level.
1495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_BOR_LEVEL0: Reset level threshold is set to 1.6V
1497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_BOR_LEVEL1: Reset level threshold is set to 2.1V
1498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_BOR_LEVEL2: Reset level threshold is set to 2.4V
1499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg OB_BOR_LEVEL3: Reset level threshold is set to 2.7V
1500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
1501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetBOR(void)
1502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
680 .loc 1 1502 1 is_stmt 1 view -0
681 .cfi_startproc
682 @ args = 0, pretend = 0, frame = 0
683 @ frame_needed = 0, uses_anonymous_args = 0
684 @ link register save eliminated.
1503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return (FLASH->OPTSR_CUR & FLASH_OPTSR_BOR_LEV);
685 .loc 1 1503 3 view .LVU195
686 .loc 1 1503 16 is_stmt 0 view .LVU196
687 0000 024B ldr r3, .L59
688 0002 D869 ldr r0, [r3, #28]
1504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
689 .loc 1 1504 1 view .LVU197
690 0004 00F00C00 and r0, r0, #12
691 0008 7047 bx lr
692 .L60:
693 000a 00BF .align 2
694 .L59:
695 000c 00200052 .word 1375739904
696 .cfi_endproc
697 .LFE160:
699 .section .text.FLASH_OB_BootAddConfig,"ax",%progbits
700 .align 1
701 .syntax unified
702 .thumb
703 .thumb_func
704 .fpu fpv5-d16
706 FLASH_OB_BootAddConfig:
707 .LVL58:
708 .LFB161:
1505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
1507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Set Boot address
1508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param BootOption Boot address option byte to be programmed,
1509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter must be a value of @ref FLASHEx_OB_BOOT_OPTION
1510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (OB_BOOT_ADD0, OB_BOOT_ADD1 or OB_BOOT_ADD_BOTH)
1511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param BootAddress0 Specifies the Boot Address 0
1513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param BootAddress1 Specifies the Boot Address 1
1514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status
1515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
1516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_BootAddConfig(uint32_t BootOption, uint32_t BootAddress0, uint32_t BootAddress
1517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
709 .loc 1 1517 1 is_stmt 1 view -0
710 .cfi_startproc
711 @ args = 0, pretend = 0, frame = 0
712 @ frame_needed = 0, uses_anonymous_args = 0
713 @ link register save eliminated.
714 .loc 1 1517 1 is_stmt 0 view .LVU199
ARM GAS /tmp/ccM28uwG.s page 40
715 0000 30B4 push {r4, r5}
716 .LCFI3:
717 .cfi_def_cfa_offset 8
718 .cfi_offset 4, -8
719 .cfi_offset 5, -4
1518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */
1519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_BOOT_ADD_OPTION(BootOption));
720 .loc 1 1519 3 is_stmt 1 view .LVU200
1520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((BootOption & OB_BOOT_ADD0) == OB_BOOT_ADD0)
721 .loc 1 1521 3 view .LVU201
722 .loc 1 1521 5 is_stmt 0 view .LVU202
723 0002 10F0010F tst r0, #1
724 0006 06D0 beq .L62
1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */
1524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_BOOT_ADDRESS(BootAddress0));
725 .loc 1 1524 5 is_stmt 1 view .LVU203
1525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure CM7 BOOT ADD0 */
1527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE)
1528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** MODIFY_REG(FLASH->BOOT7_PRG, FLASH_BOOT7_BCM7_ADD0, (BootAddress0 >> 16));
1529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else /* Single Core*/
1530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** MODIFY_REG(FLASH->BOOT_PRG, FLASH_BOOT_ADD0, (BootAddress0 >> 16));
726 .loc 1 1530 5 view .LVU204
727 0008 084C ldr r4, .L65
728 000a 656C ldr r5, [r4, #68]
729 000c 084B ldr r3, .L65+4
730 000e 2B40 ands r3, r3, r5
731 0010 43EA1141 orr r1, r3, r1, lsr #16
732 .LVL59:
733 .loc 1 1530 5 is_stmt 0 view .LVU205
734 0014 6164 str r1, [r4, #68]
735 .L62:
1531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_CORE */
1532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((BootOption & OB_BOOT_ADD1) == OB_BOOT_ADD1)
736 .loc 1 1534 3 is_stmt 1 view .LVU206
737 .loc 1 1534 5 is_stmt 0 view .LVU207
738 0016 10F0020F tst r0, #2
739 001a 04D0 beq .L61
1535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */
1537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_BOOT_ADDRESS(BootAddress1));
740 .loc 1 1537 5 is_stmt 1 view .LVU208
1538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure CM7 BOOT ADD1 */
1540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE)
1541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** MODIFY_REG(FLASH->BOOT7_PRG, FLASH_BOOT7_BCM7_ADD1, BootAddress1);
1542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else /* Single Core*/
1543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** MODIFY_REG(FLASH->BOOT_PRG, FLASH_BOOT_ADD1, BootAddress1);
741 .loc 1 1543 5 view .LVU209
742 001c 0349 ldr r1, .L65
743 001e 4B6C ldr r3, [r1, #68]
744 0020 9BB2 uxth r3, r3
745 0022 1A43 orrs r2, r2, r3
ARM GAS /tmp/ccM28uwG.s page 41
746 .LVL60:
747 .loc 1 1543 5 is_stmt 0 view .LVU210
748 0024 4A64 str r2, [r1, #68]
749 .L61:
1544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_CORE */
1545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
750 .loc 1 1546 1 view .LVU211
751 0026 30BC pop {r4, r5}
752 .LCFI4:
753 .cfi_restore 5
754 .cfi_restore 4
755 .cfi_def_cfa_offset 0
756 0028 7047 bx lr
757 .L66:
758 002a 00BF .align 2
759 .L65:
760 002c 00200052 .word 1375739904
761 0030 0000FFFF .word -65536
762 .cfi_endproc
763 .LFE161:
765 .section .text.FLASH_OB_GetBootAdd,"ax",%progbits
766 .align 1
767 .syntax unified
768 .thumb
769 .thumb_func
770 .fpu fpv5-d16
772 FLASH_OB_GetBootAdd:
773 .LVL61:
774 .LFB162:
1547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
1549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Get Boot address
1550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param BootAddress0 Specifies the Boot Address 0.
1551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param BootAddress1 Specifies the Boot Address 1.
1552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status
1553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
1554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_GetBootAdd(uint32_t *BootAddress0, uint32_t *BootAddress1)
1555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
775 .loc 1 1555 1 is_stmt 1 view -0
776 .cfi_startproc
777 @ args = 0, pretend = 0, frame = 0
778 @ frame_needed = 0, uses_anonymous_args = 0
779 @ link register save eliminated.
1556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t regvalue;
780 .loc 1 1556 3 view .LVU213
1557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE)
1559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** regvalue = FLASH->BOOT7_CUR;
1560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*BootAddress0) = (regvalue & FLASH_BOOT7_BCM7_ADD0) << 16;
1562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*BootAddress1) = (regvalue & FLASH_BOOT7_BCM7_ADD1);
1563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else /* Single Core */
1564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** regvalue = FLASH->BOOT_CUR;
781 .loc 1 1564 3 view .LVU214
782 .loc 1 1564 12 is_stmt 0 view .LVU215
783 0000 034B ldr r3, .L68
ARM GAS /tmp/ccM28uwG.s page 42
784 0002 1A6C ldr r2, [r3, #64]
785 .LVL62:
1565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*BootAddress0) = (regvalue & FLASH_BOOT_ADD0) << 16;
786 .loc 1 1566 3 is_stmt 1 view .LVU216
787 .loc 1 1566 50 is_stmt 0 view .LVU217
788 0004 1304 lsls r3, r2, #16
789 .loc 1 1566 19 view .LVU218
790 0006 0360 str r3, [r0]
1567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*BootAddress1) = (regvalue & FLASH_BOOT_ADD1);
791 .loc 1 1567 3 is_stmt 1 view .LVU219
792 .loc 1 1567 31 is_stmt 0 view .LVU220
793 0008 024B ldr r3, .L68+4
794 000a 1340 ands r3, r3, r2
795 .loc 1 1567 19 view .LVU221
796 000c 0B60 str r3, [r1]
1568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_CORE */
1569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
797 .loc 1 1569 1 view .LVU222
798 000e 7047 bx lr
799 .L69:
800 .align 2
801 .L68:
802 0010 00200052 .word 1375739904
803 0014 0000FFFF .word -65536
804 .cfi_endproc
805 .LFE162:
807 .section .text.FLASH_OB_SecureAreaConfig,"ax",%progbits
808 .align 1
809 .syntax unified
810 .thumb
811 .thumb_func
812 .fpu fpv5-d16
814 FLASH_OB_SecureAreaConfig:
815 .LVL63:
816 .LFB163:
1570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE)
1572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
1573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Set CM4 Boot address
1574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param BootOption Boot address option byte to be programmed,
1575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter must be a value of @ref FLASHEx_OB_BOOT_OPTION
1576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (OB_BOOT_ADD0, OB_BOOT_ADD1 or OB_BOOT_ADD_BOTH)
1577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param BootAddress0 Specifies the CM4 Boot Address 0.
1579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param BootAddress1 Specifies the CM4 Boot Address 1.
1580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status
1581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
1582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_CM4BootAddConfig(uint32_t BootOption, uint32_t BootAddress0, uint32_t BootAddr
1583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */
1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_BOOT_ADD_OPTION(BootOption));
1586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((BootOption & OB_BOOT_ADD0) == OB_BOOT_ADD0)
1588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */
1590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_BOOT_ADDRESS(BootAddress0));
ARM GAS /tmp/ccM28uwG.s page 43
1591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure CM4 BOOT ADD0 */
1593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** MODIFY_REG(FLASH->BOOT4_PRG, FLASH_BOOT4_BCM4_ADD0, (BootAddress0 >> 16));
1594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((BootOption & OB_BOOT_ADD1) == OB_BOOT_ADD1)
1598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */
1600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_BOOT_ADDRESS(BootAddress1));
1601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure CM4 BOOT ADD1 */
1603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** MODIFY_REG(FLASH->BOOT4_PRG, FLASH_BOOT4_BCM4_ADD1, BootAddress1);
1604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
1608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Get CM4 Boot address
1609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param BootAddress0 Specifies the CM4 Boot Address 0.
1610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param BootAddress1 Specifies the CM4 Boot Address 1.
1611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval HAL Status
1612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
1613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_GetCM4BootAdd(uint32_t *BootAddress0, uint32_t *BootAddress1)
1614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t regvalue;
1616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** regvalue = FLASH->BOOT4_CUR;
1618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*BootAddress0) = (regvalue & FLASH_BOOT4_BCM4_ADD0) << 16;
1620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*BootAddress1) = (regvalue & FLASH_BOOT4_BCM4_ADD1);
1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /*DUAL_CORE*/
1623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
1625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Set secure area configuration
1626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param SecureAreaConfig specify if the secure area will be deleted or not
1627: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.
1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** *
1629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param SecureAreaStartAddr Specifies the secure area start address
1630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param SecureAreaEndAddr Specifies the secure area end address
1631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Banks the specific bank to apply Security protection
1632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: Secure area on specified bank1 area
1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: Secure area on specified bank2 area
1635: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
1636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None
1637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
1638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_SecureAreaConfig(uint32_t SecureAreaConfig, uint32_t SecureAreaStartAddr, uint
1639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
817 .loc 1 1639 1 is_stmt 1 view -0
818 .cfi_startproc
819 @ args = 0, pretend = 0, frame = 0
820 @ frame_needed = 0, uses_anonymous_args = 0
821 @ link register save eliminated.
1640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */
1641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks));
822 .loc 1 1641 3 view .LVU224
ARM GAS /tmp/ccM28uwG.s page 44
1642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_OB_SECURE_RDP(SecureAreaConfig));
823 .loc 1 1642 3 view .LVU225
1643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_1) == FLASH_BANK_1)
824 .loc 1 1644 3 view .LVU226
825 .loc 1 1644 5 is_stmt 0 view .LVU227
826 0000 13F0010F tst r3, #1
827 0004 0CD0 beq .L70
1645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */
1647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK1(SecureAreaStartAddr));
828 .loc 1 1647 5 is_stmt 1 view .LVU228
1648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK1(SecureAreaEndAddr));
829 .loc 1 1648 5 view .LVU229
1649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure the secure area */
1651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->SCAR_PRG1 = ((SecureAreaStartAddr - FLASH_BANK1_BASE) >> 8)
830 .loc 1 1651 5 view .LVU230
831 .loc 1 1651 46 is_stmt 0 view .LVU231
832 0006 01F17841 add r1, r1, #-134217728
833 .LVL64:
1652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((SecureAreaEndAddr - FLASH_BANK1_BASE) >> 8) << FLASH_SCAR_SEC_AREA_END_Po
834 .loc 1 1652 45 view .LVU232
835 000a 02F17842 add r2, r2, #-134217728
836 .LVL65:
837 .loc 1 1652 65 view .LVU233
838 000e 120A lsrs r2, r2, #8
839 .LVL66:
840 .loc 1 1652 71 view .LVU234
841 0010 1204 lsls r2, r2, #16
1651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((SecureAreaEndAddr - FLASH_BANK1_BASE) >> 8) << FLASH_SCAR_SEC_AREA_END_Po
842 .loc 1 1651 103 view .LVU235
843 0012 42EA1122 orr r2, r2, r1, lsr #8
1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (SecureAreaConfig & FLASH_SCAR_DMES);
844 .loc 1 1653 42 view .LVU236
845 0016 00F00040 and r0, r0, #-2147483648
846 .LVL67:
1652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((SecureAreaEndAddr - FLASH_BANK1_BASE) >> 8) << FLASH_SCAR_SEC_AREA_END_Po
847 .loc 1 1652 103 view .LVU237
848 001a 1043 orrs r0, r0, r2
1651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((SecureAreaEndAddr - FLASH_BANK1_BASE) >> 8) << FLASH_SCAR_SEC_AREA_END_Po
849 .loc 1 1651 22 view .LVU238
850 001c 014B ldr r3, .L72
851 .LVL68:
1651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((SecureAreaEndAddr - FLASH_BANK1_BASE) >> 8) << FLASH_SCAR_SEC_AREA_END_Po
852 .loc 1 1651 22 view .LVU239
853 001e 5863 str r0, [r3, #52]
854 .LVL69:
855 .L70:
1654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
1657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if((Banks & FLASH_BANK_2) == FLASH_BANK_2)
1658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */
1660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK2(SecureAreaStartAddr));
1661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK2(SecureAreaEndAddr));
ARM GAS /tmp/ccM28uwG.s page 45
1662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Configure the secure area */
1664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->SCAR_PRG2 = ((SecureAreaStartAddr - FLASH_BANK2_BASE) >> 8)
1665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (((SecureAreaEndAddr - FLASH_BANK2_BASE) >> 8) << FLASH_SCAR_SEC_AREA_END_Po
1666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (SecureAreaConfig & FLASH_SCAR_DMES);
1667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
1669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
856 .loc 1 1669 1 view .LVU240
857 0020 7047 bx lr
858 .L73:
859 0022 00BF .align 2
860 .L72:
861 0024 00200052 .word 1375739904
862 .cfi_endproc
863 .LFE163:
865 .section .text.FLASH_OB_GetSecureArea,"ax",%progbits
866 .align 1
867 .syntax unified
868 .thumb
869 .thumb_func
870 .fpu fpv5-d16
872 FLASH_OB_GetSecureArea:
873 .LVL70:
874 .LFB164:
1670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
1672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @brief Get secure area configuration
1673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param SecureAreaConfig indicates if the secure area will be deleted or not
1674: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.
1675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param SecureAreaStartAddr gives the secure area start address
1676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param SecureAreaEndAddr gives the secure area end address
1677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Bank Specifies the Bank
1678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None
1679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
1680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_OB_GetSecureArea(uint32_t *SecureAreaConfig, uint32_t *SecureAreaStartAddr, uint3
1681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
875 .loc 1 1681 1 is_stmt 1 view -0
876 .cfi_startproc
877 @ args = 0, pretend = 0, frame = 0
878 @ frame_needed = 0, uses_anonymous_args = 0
879 @ link register save eliminated.
880 .loc 1 1681 1 is_stmt 0 view .LVU242
881 0000 10B4 push {r4}
882 .LCFI5:
883 .cfi_def_cfa_offset 4
884 .cfi_offset 4, -4
1682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t regvalue = 0;
885 .loc 1 1682 3 is_stmt 1 view .LVU243
886 .LVL71:
1683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t bankBase = 0;
887 .loc 1 1683 3 view .LVU244
1684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check Bank parameter value */
1686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(Bank == FLASH_BANK_1)
888 .loc 1 1686 3 view .LVU245
889 .loc 1 1686 5 is_stmt 0 view .LVU246
ARM GAS /tmp/ccM28uwG.s page 46
890 0002 012B cmp r3, #1
891 0004 13D0 beq .L78
1683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t bankBase = 0;
892 .loc 1 1683 12 view .LVU247
893 0006 4FF0000C mov ip, #0
1682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t bankBase = 0;
894 .loc 1 1682 12 view .LVU248
895 000a 6346 mov r3, ip
896 .LVL72:
897 .L75:
1687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** regvalue = FLASH->SCAR_CUR1;
1689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK1_BASE;
1690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
1693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(Bank == FLASH_BANK_2)
1694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** regvalue = FLASH->SCAR_CUR2;
1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK2_BASE;
1697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
1699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Get the secure area settings */
1701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*SecureAreaConfig) = (regvalue & FLASH_SCAR_DMES);
898 .loc 1 1701 3 is_stmt 1 view .LVU249
899 .loc 1 1701 35 is_stmt 0 view .LVU250
900 000c 03F00044 and r4, r3, #-2147483648
901 .loc 1 1701 23 view .LVU251
902 0010 0460 str r4, [r0]
1702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*SecureAreaStartAddr) = ((regvalue & FLASH_SCAR_SEC_AREA_START) << 8) + bankBase;
903 .loc 1 1702 3 is_stmt 1 view .LVU252
904 .loc 1 1702 68 is_stmt 0 view .LVU253
905 0012 0948 ldr r0, .L79
906 .LVL73:
907 .loc 1 1702 68 view .LVU254
908 0014 00EA0320 and r0, r0, r3, lsl #8
909 .loc 1 1702 74 view .LVU255
910 0018 6044 add r0, r0, ip
911 .loc 1 1702 26 view .LVU256
912 001a 0860 str r0, [r1]
1703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*SecureAreaEndAddr) = (regvalue & FLASH_SCAR_SEC_AREA_END) >> FLASH_SCAR_SEC_AREA_END_Pos;
913 .loc 1 1703 3 is_stmt 1 view .LVU257
914 .loc 1 1703 63 is_stmt 0 view .LVU258
915 001c C3F30B43 ubfx r3, r3, #16, #12
916 .LVL74:
917 .loc 1 1703 24 view .LVU259
918 0020 1360 str r3, [r2]
1704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** (*SecureAreaEndAddr) = ((*SecureAreaEndAddr) << 8) + bankBase;
919 .loc 1 1704 3 is_stmt 1 view .LVU260
920 .loc 1 1704 54 is_stmt 0 view .LVU261
921 0022 0CEB0323 add r3, ip, r3, lsl #8
922 .loc 1 1704 24 view .LVU262
923 0026 1360 str r3, [r2]
1705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
924 .loc 1 1705 1 view .LVU263
925 0028 5DF8044B ldr r4, [sp], #4
ARM GAS /tmp/ccM28uwG.s page 47
926 .LCFI6:
927 .cfi_remember_state
928 .cfi_restore 4
929 .cfi_def_cfa_offset 0
930 002c 7047 bx lr
931 .LVL75:
932 .L78:
933 .LCFI7:
934 .cfi_restore_state
1688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK1_BASE;
935 .loc 1 1688 5 is_stmt 1 view .LVU264
1688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK1_BASE;
936 .loc 1 1688 14 is_stmt 0 view .LVU265
937 002e 034B ldr r3, .L79+4
938 .LVL76:
1688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** bankBase = FLASH_BANK1_BASE;
939 .loc 1 1688 14 view .LVU266
940 0030 1B6B ldr r3, [r3, #48]
941 .LVL77:
1689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
942 .loc 1 1689 5 is_stmt 1 view .LVU267
1689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
943 .loc 1 1689 14 is_stmt 0 view .LVU268
944 0032 4FF0006C mov ip, #134217728
945 0036 E9E7 b .L75
946 .L80:
947 .align 2
948 .L79:
949 0038 00FF0F00 .word 1048320
950 003c 00200052 .word 1375739904
951 .cfi_endproc
952 .LFE164:
954 .section .text.FLASH_CRC_AddSector,"ax",%progbits
955 .align 1
956 .syntax unified
957 .thumb
958 .thumb_func
959 .fpu fpv5-d16
961 FLASH_CRC_AddSector:
962 .LVL78:
963 .LFB165:
1706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
1708: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
1709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Sector Specifies the CRC sector number
1710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Bank Specifies the Bank
1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None
1712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
1713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_CRC_AddSector(uint32_t Sector, uint32_t Bank)
1714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
964 .loc 1 1714 1 is_stmt 1 view -0
965 .cfi_startproc
966 @ args = 0, pretend = 0, frame = 0
967 @ frame_needed = 0, uses_anonymous_args = 0
968 @ link register save eliminated.
1715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Check the parameters */
1716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_SECTOR(Sector));
ARM GAS /tmp/ccM28uwG.s page 48
969 .loc 1 1716 3 view .LVU270
1717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if (Bank == FLASH_BANK_1)
970 .loc 1 1718 3 view .LVU271
971 .loc 1 1718 6 is_stmt 0 view .LVU272
972 0000 0129 cmp r1, #1
973 0002 00D0 beq .L83
974 .LVL79:
975 .L81:
1719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Clear CRC sector */
1721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR1 &= (~FLASH_CRCCR_CRC_SECT);
1722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Select CRC Sector and activate ADD_SECT bit */
1724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR1 |= Sector | FLASH_CRCCR_ADD_SECT;
1725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
1727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else
1728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Clear CRC sector */
1730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR2 &= (~FLASH_CRCCR_CRC_SECT);
1731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Select CRC Sector and activate ADD_SECT bit */
1733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCCR2 |= Sector | FLASH_CRCCR_ADD_SECT;
1734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
1736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
976 .loc 1 1736 1 view .LVU273
977 0004 7047 bx lr
978 .LVL80:
979 .L83:
1721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
980 .loc 1 1721 5 is_stmt 1 view .LVU274
1721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
981 .loc 1 1721 19 is_stmt 0 view .LVU275
982 0006 054A ldr r2, .L84
983 0008 136D ldr r3, [r2, #80]
984 000a 23F00703 bic r3, r3, #7
985 000e 1365 str r3, [r2, #80]
1724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
986 .loc 1 1724 5 is_stmt 1 view .LVU276
1724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
987 .loc 1 1724 19 is_stmt 0 view .LVU277
988 0010 136D ldr r3, [r2, #80]
989 0012 1843 orrs r0, r0, r3
990 .LVL81:
1724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
991 .loc 1 1724 19 view .LVU278
992 0014 40F40070 orr r0, r0, #512
993 0018 1065 str r0, [r2, #80]
994 .loc 1 1736 1 view .LVU279
995 001a F3E7 b .L81
996 .L85:
997 .align 2
998 .L84:
999 001c 00200052 .word 1375739904
1000 .cfi_endproc
ARM GAS /tmp/ccM28uwG.s page 49
1001 .LFE165:
1003 .section .text.FLASH_CRC_SelectAddress,"ax",%progbits
1004 .align 1
1005 .syntax unified
1006 .thumb
1007 .thumb_func
1008 .fpu fpv5-d16
1010 FLASH_CRC_SelectAddress:
1011 .LVL82:
1012 .LFB166:
1737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /**
1739: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
1740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param CRCStartAddr Specifies the CRC start address
1741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param CRCEndAddr Specifies the CRC end address
1742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @param Bank Specifies the Bank
1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** * @retval None
1744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** */
1745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** static void FLASH_CRC_SelectAddress(uint32_t CRCStartAddr, uint32_t CRCEndAddr, uint32_t Bank)
1746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1013 .loc 1 1746 1 is_stmt 1 view -0
1014 .cfi_startproc
1015 @ args = 0, pretend = 0, frame = 0
1016 @ frame_needed = 0, uses_anonymous_args = 0
1017 @ link register save eliminated.
1747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if (Bank == FLASH_BANK_1)
1018 .loc 1 1747 3 view .LVU281
1019 .loc 1 1747 6 is_stmt 0 view .LVU282
1020 0000 012A cmp r2, #1
1021 0002 00D0 beq .L88
1022 .L86:
1748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK1(CRCStartAddr));
1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK1(CRCEndAddr));
1751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Write CRC Start and End addresses */
1753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCSADD1 = CRCStartAddr;
1754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCEADD1 = CRCEndAddr;
1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (DUAL_BANK)
1757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** else
1758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK2(CRCStartAddr));
1760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK2(CRCEndAddr));
1761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Write CRC Start and End addresses */
1763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCSADD2 = CRCStartAddr;
1764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCEADD2 = CRCEndAddr;
1765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
1767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1023 .loc 1 1767 1 view .LVU283
1024 0004 7047 bx lr
1025 .L88:
1749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS_BANK1(CRCEndAddr));
1026 .loc 1 1749 5 is_stmt 1 view .LVU284
1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
ARM GAS /tmp/ccM28uwG.s page 50
1027 .loc 1 1750 5 view .LVU285
1753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCEADD1 = CRCEndAddr;
1028 .loc 1 1753 5 view .LVU286
1753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH->CRCEADD1 = CRCEndAddr;
1029 .loc 1 1753 21 is_stmt 0 view .LVU287
1030 0006 024B ldr r3, .L89
1031 0008 5865 str r0, [r3, #84]
1754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1032 .loc 1 1754 5 is_stmt 1 view .LVU288
1754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1033 .loc 1 1754 21 is_stmt 0 view .LVU289
1034 000a 9965 str r1, [r3, #88]
1035 .loc 1 1767 1 view .LVU290
1036 000c FAE7 b .L86
1037 .L90:
1038 000e 00BF .align 2
1039 .L89:
1040 0010 00200052 .word 1375739904
1041 .cfi_endproc
1042 .LFE166:
1044 .section .text.HAL_FLASHEx_OBProgram,"ax",%progbits
1045 .align 1
1046 .global HAL_FLASHEx_OBProgram
1047 .syntax unified
1048 .thumb
1049 .thumb_func
1050 .fpu fpv5-d16
1052 HAL_FLASHEx_OBProgram:
1053 .LVL83:
1054 .LFB143:
417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status;
1055 .loc 1 417 1 is_stmt 1 view -0
1056 .cfi_startproc
1057 @ args = 0, pretend = 0, frame = 0
1058 @ frame_needed = 0, uses_anonymous_args = 0
417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status;
1059 .loc 1 417 1 is_stmt 0 view .LVU292
1060 0000 38B5 push {r3, r4, r5, lr}
1061 .LCFI8:
1062 .cfi_def_cfa_offset 16
1063 .cfi_offset 3, -16
1064 .cfi_offset 4, -12
1065 .cfi_offset 5, -8
1066 .cfi_offset 14, -4
418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1067 .loc 1 418 3 is_stmt 1 view .LVU293
421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1068 .loc 1 421 3 view .LVU294
424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1069 .loc 1 424 3 view .LVU295
424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1070 .loc 1 424 3 view .LVU296
1071 0002 314B ldr r3, .L110
1072 0004 1B7D ldrb r3, [r3, #20] @ zero_extendqisi2
1073 0006 012B cmp r3, #1
1074 0008 5BD0 beq .L101
1075 000a 0446 mov r4, r0
ARM GAS /tmp/ccM28uwG.s page 51
424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1076 .loc 1 424 3 discriminator 2 view .LVU297
1077 000c 2E4B ldr r3, .L110
1078 000e 0121 movs r1, #1
1079 0010 1975 strb r1, [r3, #20]
424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1080 .loc 1 424 3 discriminator 2 view .LVU298
427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1081 .loc 1 427 3 discriminator 2 view .LVU299
427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1082 .loc 1 427 20 is_stmt 0 discriminator 2 view .LVU300
1083 0012 0022 movs r2, #0
1084 0014 9A61 str r2, [r3, #24]
430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1085 .loc 1 430 3 is_stmt 1 discriminator 2 view .LVU301
430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1086 .loc 1 430 6 is_stmt 0 discriminator 2 view .LVU302
1087 0016 4CF25030 movw r0, #50000
1088 .LVL84:
430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1089 .loc 1 430 6 discriminator 2 view .LVU303
1090 001a FFF7FEFF bl FLASH_WaitForLastOperation
1091 .LVL85:
430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1092 .loc 1 430 5 discriminator 2 view .LVU304
1093 001e 0546 mov r5, r0
1094 0020 0028 cmp r0, #0
1095 0022 48D1 bne .L102
442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1096 .loc 1 442 5 is_stmt 1 view .LVU305
1097 .LVL86:
445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1098 .loc 1 445 3 view .LVU306
448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1099 .loc 1 448 5 view .LVU307
448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1100 .loc 1 448 16 is_stmt 0 view .LVU308
1101 0024 2368 ldr r3, [r4]
448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1102 .loc 1 448 7 view .LVU309
1103 0026 13F0010F tst r3, #1
1104 002a 06D0 beq .L94
450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1105 .loc 1 450 7 is_stmt 1 view .LVU310
452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1106 .loc 1 452 7 view .LVU311
452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1107 .loc 1 452 17 is_stmt 0 view .LVU312
1108 002c 6368 ldr r3, [r4, #4]
452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1109 .loc 1 452 9 view .LVU313
1110 002e 012B cmp r3, #1
1111 0030 22D0 beq .L104
460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1112 .loc 1 460 9 is_stmt 1 view .LVU314
1113 0032 E169 ldr r1, [r4, #28]
1114 0034 A068 ldr r0, [r4, #8]
ARM GAS /tmp/ccM28uwG.s page 52
1115 0036 FFF7FEFF bl FLASH_OB_DisableWRP
1116 .LVL87:
1117 .L94:
465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1118 .loc 1 465 5 view .LVU315
465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1119 .loc 1 465 16 is_stmt 0 view .LVU316
1120 003a 2368 ldr r3, [r4]
465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1121 .loc 1 465 7 view .LVU317
1122 003c 13F0020F tst r3, #2
1123 0040 1FD1 bne .L105
1124 .L96:
472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1125 .loc 1 472 5 is_stmt 1 view .LVU318
472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1126 .loc 1 472 16 is_stmt 0 view .LVU319
1127 0042 2368 ldr r3, [r4]
472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1128 .loc 1 472 7 view .LVU320
1129 0044 13F0040F tst r3, #4
1130 0048 1FD1 bne .L106
1131 .L97:
479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1132 .loc 1 479 5 is_stmt 1 view .LVU321
479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1133 .loc 1 479 16 is_stmt 0 view .LVU322
1134 004a 2368 ldr r3, [r4]
479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1135 .loc 1 479 7 view .LVU323
1136 004c 13F0080F tst r3, #8
1137 0050 20D1 bne .L107
1138 .L98:
488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1139 .loc 1 488 5 is_stmt 1 view .LVU324
488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1140 .loc 1 488 16 is_stmt 0 view .LVU325
1141 0052 2368 ldr r3, [r4]
488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1142 .loc 1 488 7 view .LVU326
1143 0054 13F0100F tst r3, #16
1144 0058 23D1 bne .L108
1145 .L99:
507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1146 .loc 1 507 5 is_stmt 1 view .LVU327
507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1147 .loc 1 507 16 is_stmt 0 view .LVU328
1148 005a 2368 ldr r3, [r4]
507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1149 .loc 1 507 7 view .LVU329
1150 005c 13F0400F tst r3, #64
1151 0060 23D1 bne .L109
1152 .L100:
514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1153 .loc 1 514 5 is_stmt 1 view .LVU330
514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1154 .loc 1 514 16 is_stmt 0 view .LVU331
ARM GAS /tmp/ccM28uwG.s page 53
1155 0062 2368 ldr r3, [r4]
514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1156 .loc 1 514 7 view .LVU332
1157 0064 13F0200F tst r3, #32
1158 0068 26D0 beq .L93
516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1159 .loc 1 516 7 is_stmt 1 view .LVU333
1160 006a E369 ldr r3, [r4, #28]
1161 006c 226C ldr r2, [r4, #64]
1162 006e E16B ldr r1, [r4, #60]
1163 0070 A06B ldr r0, [r4, #56]
1164 0072 FFF7FEFF bl FLASH_OB_SecureAreaConfig
1165 .LVL88:
1166 0076 1FE0 b .L93
1167 .L104:
455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1168 .loc 1 455 9 view .LVU334
1169 0078 E169 ldr r1, [r4, #28]
1170 007a A068 ldr r0, [r4, #8]
1171 007c FFF7FEFF bl FLASH_OB_EnableWRP
1172 .LVL89:
1173 0080 DBE7 b .L94
1174 .L105:
468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1175 .loc 1 468 7 view .LVU335
1176 0082 E068 ldr r0, [r4, #12]
1177 0084 FFF7FEFF bl FLASH_OB_RDPConfig
1178 .LVL90:
1179 0088 DBE7 b .L96
1180 .L106:
475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1181 .loc 1 475 7 view .LVU336
1182 008a A169 ldr r1, [r4, #24]
1183 008c 6069 ldr r0, [r4, #20]
1184 008e FFF7FEFF bl FLASH_OB_UserConfig
1185 .LVL91:
1186 0092 DAE7 b .L97
1187 .L107:
481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1188 .loc 1 481 7 view .LVU337
484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1189 .loc 1 484 7 view .LVU338
1190 0094 E369 ldr r3, [r4, #28]
1191 0096 A26A ldr r2, [r4, #40]
1192 0098 616A ldr r1, [r4, #36]
1193 009a 206A ldr r0, [r4, #32]
1194 009c FFF7FEFF bl FLASH_OB_PCROPConfig
1195 .LVL92:
1196 00a0 D7E7 b .L98
1197 .L108:
490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1198 .loc 1 490 7 view .LVU339
1199 00a2 2069 ldr r0, [r4, #16]
1200 00a4 FFF7FEFF bl FLASH_OB_BOR_LevelConfig
1201 .LVL93:
1202 00a8 D7E7 b .L99
1203 .L109:
ARM GAS /tmp/ccM28uwG.s page 54
509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1204 .loc 1 509 7 view .LVU340
1205 00aa 626B ldr r2, [r4, #52]
1206 00ac 216B ldr r1, [r4, #48]
1207 00ae E06A ldr r0, [r4, #44]
1208 00b0 FFF7FEFF bl FLASH_OB_BootAddConfig
1209 .LVL94:
1210 00b4 D5E7 b .L100
1211 .LVL95:
1212 .L102:
432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1213 .loc 1 432 12 is_stmt 0 view .LVU341
1214 00b6 0125 movs r5, #1
1215 .L93:
545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1216 .loc 1 545 3 is_stmt 1 view .LVU342
545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1217 .loc 1 545 3 view .LVU343
1218 00b8 034B ldr r3, .L110
1219 00ba 0022 movs r2, #0
1220 00bc 1A75 strb r2, [r3, #20]
545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1221 .loc 1 545 3 view .LVU344
547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1222 .loc 1 547 3 view .LVU345
1223 .LVL96:
1224 .L92:
548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1225 .loc 1 548 1 is_stmt 0 view .LVU346
1226 00be 2846 mov r0, r5
1227 00c0 38BD pop {r3, r4, r5, pc}
1228 .LVL97:
1229 .L101:
424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1230 .loc 1 424 3 view .LVU347
1231 00c2 0225 movs r5, #2
1232 00c4 FBE7 b .L92
1233 .L111:
1234 00c6 00BF .align 2
1235 .L110:
1236 00c8 00000000 .word pFlash
1237 .cfi_endproc
1238 .LFE143:
1240 .section .text.HAL_FLASHEx_OBGetConfig,"ax",%progbits
1241 .align 1
1242 .global HAL_FLASHEx_OBGetConfig
1243 .syntax unified
1244 .thumb
1245 .thumb_func
1246 .fpu fpv5-d16
1248 HAL_FLASHEx_OBGetConfig:
1249 .LVL98:
1250 .LFB144:
560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->OptionType = (OPTIONBYTE_USER | OPTIONBYTE_RDP | OPTIONBYTE_BOR);
1251 .loc 1 560 1 is_stmt 1 view -0
1252 .cfi_startproc
1253 @ args = 0, pretend = 0, frame = 0
ARM GAS /tmp/ccM28uwG.s page 55
1254 @ frame_needed = 0, uses_anonymous_args = 0
560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pOBInit->OptionType = (OPTIONBYTE_USER | OPTIONBYTE_RDP | OPTIONBYTE_BOR);
1255 .loc 1 560 1 is_stmt 0 view .LVU349
1256 0000 10B5 push {r4, lr}
1257 .LCFI9:
1258 .cfi_def_cfa_offset 8
1259 .cfi_offset 4, -8
1260 .cfi_offset 14, -4
1261 0002 0446 mov r4, r0
561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1262 .loc 1 561 3 is_stmt 1 view .LVU350
561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1263 .loc 1 561 23 is_stmt 0 view .LVU351
1264 0004 1623 movs r3, #22
1265 0006 0360 str r3, [r0]
564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1266 .loc 1 564 3 is_stmt 1 view .LVU352
564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1267 .loc 1 564 23 is_stmt 0 view .LVU353
1268 0008 FFF7FEFF bl FLASH_OB_GetRDP
1269 .LVL99:
564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1270 .loc 1 564 21 view .LVU354
1271 000c E060 str r0, [r4, #12]
567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1272 .loc 1 567 3 is_stmt 1 view .LVU355
567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1273 .loc 1 567 25 is_stmt 0 view .LVU356
1274 000e FFF7FEFF bl FLASH_OB_GetUser
1275 .LVL100:
567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1276 .loc 1 567 23 view .LVU357
1277 0012 A061 str r0, [r4, #24]
570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1278 .loc 1 570 3 is_stmt 1 view .LVU358
570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1279 .loc 1 570 23 is_stmt 0 view .LVU359
1280 0014 FFF7FEFF bl FLASH_OB_GetBOR
1281 .LVL101:
570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1282 .loc 1 570 21 view .LVU360
1283 0018 2061 str r0, [r4, #16]
575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
1284 .loc 1 575 3 is_stmt 1 view .LVU361
575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
1285 .loc 1 575 14 is_stmt 0 view .LVU362
1286 001a E269 ldr r2, [r4, #28]
575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
1287 .loc 1 575 6 view .LVU363
1288 001c 012A cmp r2, #1
1289 001e 0AD0 beq .L115
1290 .L113:
591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined(DUAL_CORE)
1291 .loc 1 591 3 is_stmt 1 view .LVU364
1292 0020 04F13401 add r1, r4, #52
1293 0024 04F13000 add r0, r4, #48
1294 0028 FFF7FEFF bl FLASH_OB_GetBootAdd
ARM GAS /tmp/ccM28uwG.s page 56
1295 .LVL102:
598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /*DUAL_CORE*/
1296 .loc 1 598 3 view .LVU365
598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /*DUAL_CORE*/
1297 .loc 1 598 23 is_stmt 0 view .LVU366
1298 002c 2368 ldr r3, [r4]
1299 002e 43F04003 orr r3, r3, #64
1300 0032 2360 str r3, [r4]
621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1301 .loc 1 621 1 view .LVU367
1302 0034 10BD pop {r4, pc}
1303 .LVL103:
1304 .L115:
578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1305 .loc 1 578 5 is_stmt 1 view .LVU368
578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1306 .loc 1 578 25 is_stmt 0 view .LVU369
1307 0036 2368 ldr r3, [r4]
1308 0038 43F02903 orr r3, r3, #41
1309 003c 2146 mov r1, r4
1310 003e 41F8083B str r3, [r1], #8
581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1311 .loc 1 581 5 is_stmt 1 view .LVU370
1312 0042 201D adds r0, r4, #4
1313 0044 FFF7FEFF bl FLASH_OB_GetWRP
1314 .LVL104:
584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1315 .loc 1 584 5 view .LVU371
1316 0048 E369 ldr r3, [r4, #28]
1317 004a 04F12802 add r2, r4, #40
1318 004e 04F12401 add r1, r4, #36
1319 0052 04F12000 add r0, r4, #32
1320 0056 FFF7FEFF bl FLASH_OB_GetPCROP
1321 .LVL105:
587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1322 .loc 1 587 5 view .LVU372
1323 005a E369 ldr r3, [r4, #28]
1324 005c 04F14002 add r2, r4, #64
1325 0060 04F13C01 add r1, r4, #60
1326 0064 04F13800 add r0, r4, #56
1327 0068 FFF7FEFF bl FLASH_OB_GetSecureArea
1328 .LVL106:
1329 006c D8E7 b .L113
1330 .cfi_endproc
1331 .LFE144:
1333 .section .text.HAL_FLASHEx_Unlock_Bank1,"ax",%progbits
1334 .align 1
1335 .global HAL_FLASHEx_Unlock_Bank1
1336 .syntax unified
1337 .thumb
1338 .thumb_func
1339 .fpu fpv5-d16
1341 HAL_FLASHEx_Unlock_Bank1:
1342 .LFB145:
628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** if(READ_BIT(FLASH->CR1, FLASH_CR_LOCK) != 0U)
1343 .loc 1 628 1 view -0
1344 .cfi_startproc
ARM GAS /tmp/ccM28uwG.s page 57
1345 @ args = 0, pretend = 0, frame = 0
1346 @ frame_needed = 0, uses_anonymous_args = 0
1347 @ link register save eliminated.
629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1348 .loc 1 629 3 view .LVU374
629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1349 .loc 1 629 6 is_stmt 0 view .LVU375
1350 0000 0A4B ldr r3, .L120
1351 0002 DB68 ldr r3, [r3, #12]
629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1352 .loc 1 629 5 view .LVU376
1353 0004 13F0010F tst r3, #1
1354 0008 0BD0 beq .L118
632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** WRITE_REG(FLASH->KEYR1, FLASH_KEY2);
1355 .loc 1 632 5 is_stmt 1 view .LVU377
1356 000a 084B ldr r3, .L120
1357 000c 084A ldr r2, .L120+4
1358 000e 5A60 str r2, [r3, #4]
633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1359 .loc 1 633 5 view .LVU378
1360 0010 02F18832 add r2, r2, #-2004318072
1361 0014 5A60 str r2, [r3, #4]
636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1362 .loc 1 636 5 view .LVU379
636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1363 .loc 1 636 9 is_stmt 0 view .LVU380
1364 0016 DB68 ldr r3, [r3, #12]
636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1365 .loc 1 636 8 view .LVU381
1366 0018 13F0010F tst r3, #1
1367 001c 03D1 bne .L119
642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1368 .loc 1 642 10 view .LVU382
1369 001e 0020 movs r0, #0
1370 0020 7047 bx lr
1371 .L118:
1372 0022 0020 movs r0, #0
1373 0024 7047 bx lr
1374 .L119:
638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1375 .loc 1 638 14 view .LVU383
1376 0026 0120 movs r0, #1
643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1377 .loc 1 643 1 view .LVU384
1378 0028 7047 bx lr
1379 .L121:
1380 002a 00BF .align 2
1381 .L120:
1382 002c 00200052 .word 1375739904
1383 0030 23016745 .word 1164378403
1384 .cfi_endproc
1385 .LFE145:
1387 .section .text.HAL_FLASHEx_Lock_Bank1,"ax",%progbits
1388 .align 1
1389 .global HAL_FLASHEx_Lock_Bank1
1390 .syntax unified
1391 .thumb
ARM GAS /tmp/ccM28uwG.s page 58
1392 .thumb_func
1393 .fpu fpv5-d16
1395 HAL_FLASHEx_Lock_Bank1:
1396 .LFB146:
650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** /* Set the LOCK Bit to lock the FLASH Bank1 Registers access */
1397 .loc 1 650 1 is_stmt 1 view -0
1398 .cfi_startproc
1399 @ args = 0, pretend = 0, frame = 0
1400 @ frame_needed = 0, uses_anonymous_args = 0
1401 @ link register save eliminated.
652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** return HAL_OK;
1402 .loc 1 652 3 view .LVU386
1403 0000 034A ldr r2, .L123
1404 0002 D368 ldr r3, [r2, #12]
1405 0004 43F00103 orr r3, r3, #1
1406 0008 D360 str r3, [r2, #12]
653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1407 .loc 1 653 3 view .LVU387
654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1408 .loc 1 654 1 is_stmt 0 view .LVU388
1409 000a 0020 movs r0, #0
1410 000c 7047 bx lr
1411 .L124:
1412 000e 00BF .align 2
1413 .L123:
1414 0010 00200052 .word 1375739904
1415 .cfi_endproc
1416 .LFE146:
1418 .section .text.HAL_FLASHEx_ComputeCRC,"ax",%progbits
1419 .align 1
1420 .global HAL_FLASHEx_ComputeCRC
1421 .syntax unified
1422 .thumb
1423 .thumb_func
1424 .fpu fpv5-d16
1426 HAL_FLASHEx_ComputeCRC:
1427 .LVL107:
1428 .LFB147:
703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status;
1429 .loc 1 703 1 is_stmt 1 view -0
1430 .cfi_startproc
1431 @ args = 0, pretend = 0, frame = 0
1432 @ frame_needed = 0, uses_anonymous_args = 0
703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status;
1433 .loc 1 703 1 is_stmt 0 view .LVU390
1434 0000 70B5 push {r4, r5, r6, lr}
1435 .LCFI10:
1436 .cfi_def_cfa_offset 16
1437 .cfi_offset 4, -16
1438 .cfi_offset 5, -12
1439 .cfi_offset 6, -8
1440 .cfi_offset 14, -4
1441 0002 0446 mov r4, r0
1442 0004 0D46 mov r5, r1
704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t sector_index;
1443 .loc 1 704 3 is_stmt 1 view .LVU391
705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
ARM GAS /tmp/ccM28uwG.s page 59
1444 .loc 1 705 3 view .LVU392
708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_TYPECRC(pCRCInit->TypeCRC));
1445 .loc 1 708 3 view .LVU393
709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1446 .loc 1 709 3 view .LVU394
712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1447 .loc 1 712 3 view .LVU395
712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1448 .loc 1 712 12 is_stmt 0 view .LVU396
1449 0006 4CF25030 movw r0, #50000
1450 .LVL108:
712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1451 .loc 1 712 12 view .LVU397
1452 000a FFF7FEFF bl FLASH_OB_WaitForLastOperation
1453 .LVL109:
714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1454 .loc 1 714 3 is_stmt 1 view .LVU398
714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1455 .loc 1 714 6 is_stmt 0 view .LVU399
1456 000e 10B9 cbnz r0, .L126
716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1457 .loc 1 716 5 is_stmt 1 view .LVU400
716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1458 .loc 1 716 17 is_stmt 0 view .LVU401
1459 0010 A368 ldr r3, [r4, #8]
716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1460 .loc 1 716 8 view .LVU402
1461 0012 012B cmp r3, #1
1462 0014 00D0 beq .L133
1463 .LVL110:
1464 .L126:
816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1465 .loc 1 816 3 is_stmt 1 view .LVU403
817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1466 .loc 1 817 1 is_stmt 0 view .LVU404
1467 0016 70BD pop {r4, r5, r6, pc}
1468 .LVL111:
1469 .L133:
719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1470 .loc 1 719 7 is_stmt 1 view .LVU405
719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1471 .loc 1 719 18 is_stmt 0 view .LVU406
1472 0018 244B ldr r3, .L135
1473 001a DA68 ldr r2, [r3, #12]
1474 001c 42F40042 orr r2, r2, #32768
1475 0020 DA60 str r2, [r3, #12]
722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1476 .loc 1 722 7 is_stmt 1 view .LVU407
722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1477 .loc 1 722 19 is_stmt 0 view .LVU408
1478 0022 5A69 ldr r2, [r3, #20]
1479 0024 42F0C052 orr r2, r2, #402653184
1480 0028 5A61 str r2, [r3, #20]
725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1481 .loc 1 725 7 is_stmt 1 view .LVU409
725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1482 .loc 1 725 21 is_stmt 0 view .LVU410
ARM GAS /tmp/ccM28uwG.s page 60
1483 002a 1A6D ldr r2, [r3, #80]
725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1484 .loc 1 725 56 view .LVU411
1485 002c 6168 ldr r1, [r4, #4]
725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1486 .loc 1 725 78 view .LVU412
1487 002e 2068 ldr r0, [r4]
725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1488 .loc 1 725 68 view .LVU413
1489 0030 0143 orrs r1, r1, r0
725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1490 .loc 1 725 21 view .LVU414
1491 0032 0A43 orrs r2, r2, r1
1492 0034 42F40032 orr r2, r2, #131072
1493 0038 1A65 str r2, [r3, #80]
727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1494 .loc 1 727 7 is_stmt 1 view .LVU415
727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1495 .loc 1 727 19 is_stmt 0 view .LVU416
1496 003a 2368 ldr r3, [r4]
727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1497 .loc 1 727 10 view .LVU417
1498 003c B3F5807F cmp r3, #256
1499 0040 08D0 beq .L134
738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1500 .loc 1 738 12 is_stmt 1 view .LVU418
738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1501 .loc 1 738 15 is_stmt 0 view .LVU419
1502 0042 1B4A ldr r2, .L135+4
1503 0044 9342 cmp r3, r2
1504 0046 2AD1 bne .L131
741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1505 .loc 1 741 9 is_stmt 1 view .LVU420
741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1506 .loc 1 741 23 is_stmt 0 view .LVU421
1507 0048 184A ldr r2, .L135
1508 004a 136D ldr r3, [r2, #80]
1509 004c 43F48003 orr r3, r3, #4194304
1510 0050 1365 str r3, [r2, #80]
1511 0052 10E0 b .L130
1512 .L134:
730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1513 .loc 1 730 9 is_stmt 1 view .LVU422
730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1514 .loc 1 730 23 is_stmt 0 view .LVU423
1515 0054 154A ldr r2, .L135
1516 0056 136D ldr r3, [r2, #80]
1517 0058 43F48063 orr r3, r3, #1024
1518 005c 1365 str r3, [r2, #80]
733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1519 .loc 1 733 9 is_stmt 1 view .LVU424
733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1520 .loc 1 733 26 is_stmt 0 view .LVU425
1521 005e E668 ldr r6, [r4, #12]
1522 .LVL112:
733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1523 .loc 1 733 9 view .LVU426
ARM GAS /tmp/ccM28uwG.s page 61
1524 0060 04E0 b .L128
1525 .L129:
735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1526 .loc 1 735 11 is_stmt 1 discriminator 3 view .LVU427
1527 0062 0121 movs r1, #1
1528 0064 3046 mov r0, r6
1529 0066 FFF7FEFF bl FLASH_CRC_AddSector
1530 .LVL113:
733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1531 .loc 1 733 103 discriminator 3 view .LVU428
733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1532 .loc 1 733 115 is_stmt 0 discriminator 3 view .LVU429
1533 006a 0136 adds r6, r6, #1
1534 .LVL114:
1535 .L128:
733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1536 .loc 1 733 46 is_stmt 1 discriminator 1 view .LVU430
733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1537 .loc 1 733 70 is_stmt 0 discriminator 1 view .LVU431
1538 006c 2369 ldr r3, [r4, #16]
733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1539 .loc 1 733 92 discriminator 1 view .LVU432
1540 006e E268 ldr r2, [r4, #12]
733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1541 .loc 1 733 82 discriminator 1 view .LVU433
1542 0070 1344 add r3, r3, r2
733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1543 .loc 1 733 9 discriminator 1 view .LVU434
1544 0072 B342 cmp r3, r6
1545 0074 F5D8 bhi .L129
1546 .LVL115:
1547 .L130:
750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1548 .loc 1 750 7 is_stmt 1 view .LVU435
750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1549 .loc 1 750 21 is_stmt 0 view .LVU436
1550 0076 0D4C ldr r4, .L135
1551 .LVL116:
750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1552 .loc 1 750 21 view .LVU437
1553 0078 236D ldr r3, [r4, #80]
1554 007a 43F48033 orr r3, r3, #65536
1555 007e 2365 str r3, [r4, #80]
753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1556 .loc 1 753 7 is_stmt 1 view .LVU438
753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1557 .loc 1 753 16 is_stmt 0 view .LVU439
1558 0080 0121 movs r1, #1
1559 0082 4CF25030 movw r0, #50000
1560 0086 FFF7FEFF bl FLASH_CRC_WaitForLastOperation
1561 .LVL117:
756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1562 .loc 1 756 7 is_stmt 1 view .LVU440
756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1563 .loc 1 756 28 is_stmt 0 view .LVU441
1564 008a E36D ldr r3, [r4, #92]
756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
ARM GAS /tmp/ccM28uwG.s page 62
1565 .loc 1 756 21 view .LVU442
1566 008c 2B60 str r3, [r5]
759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1567 .loc 1 759 7 is_stmt 1 view .LVU443
759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1568 .loc 1 759 18 is_stmt 0 view .LVU444
1569 008e E368 ldr r3, [r4, #12]
1570 0090 23F40043 bic r3, r3, #32768
1571 0094 E360 str r3, [r4, #12]
762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1572 .loc 1 762 7 is_stmt 1 view .LVU445
1573 0096 4FF0C053 mov r3, #402653184
1574 009a 6361 str r3, [r4, #20]
1575 009c BBE7 b .L126
1576 .LVL118:
1577 .L131:
746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1578 .loc 1 746 9 view .LVU446
1579 009e 0122 movs r2, #1
1580 00a0 A169 ldr r1, [r4, #24]
1581 00a2 6069 ldr r0, [r4, #20]
1582 00a4 FFF7FEFF bl FLASH_CRC_SelectAddress
1583 .LVL119:
1584 00a8 E5E7 b .L130
1585 .L136:
1586 00aa 00BF .align 2
1587 .L135:
1588 00ac 00200052 .word 1375739904
1589 00b0 00014000 .word 4194560
1590 .cfi_endproc
1591 .LFE147:
1593 .section .text.FLASH_Erase_Sector,"ax",%progbits
1594 .align 1
1595 .global FLASH_Erase_Sector
1596 .syntax unified
1597 .thumb
1598 .thumb_func
1599 .fpu fpv5-d16
1601 FLASH_Erase_Sector:
1602 .LVL120:
1603 .LFB149:
928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_SECTOR(Sector));
1604 .loc 1 928 1 view -0
1605 .cfi_startproc
1606 @ args = 0, pretend = 0, frame = 0
1607 @ frame_needed = 0, uses_anonymous_args = 0
1608 @ link register save eliminated.
929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK_EXCLUSIVE(Banks));
1609 .loc 1 929 3 view .LVU448
930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #if defined (FLASH_CR_PSIZE)
1610 .loc 1 930 3 view .LVU449
932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else
1611 .loc 1 932 3 view .LVU450
937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1612 .loc 1 937 3 view .LVU451
937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1613 .loc 1 937 5 is_stmt 0 view .LVU452
ARM GAS /tmp/ccM28uwG.s page 63
1614 0000 11F0010F tst r1, #1
1615 0004 0BD0 beq .L137
941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1616 .loc 1 941 5 is_stmt 1 view .LVU453
941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1617 .loc 1 941 16 is_stmt 0 view .LVU454
1618 0006 0649 ldr r1, .L139
1619 .LVL121:
941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1620 .loc 1 941 16 view .LVU455
1621 0008 CB68 ldr r3, [r1, #12]
1622 000a 23F4E663 bic r3, r3, #1840
1623 000e CB60 str r3, [r1, #12]
943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else
1624 .loc 1 943 5 is_stmt 1 view .LVU456
943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else
1625 .loc 1 943 16 is_stmt 0 view .LVU457
1626 0010 CB68 ldr r3, [r1, #12]
943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else
1627 .loc 1 943 48 view .LVU458
1628 0012 42EA0022 orr r2, r2, r0, lsl #8
1629 .LVL122:
943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #else
1630 .loc 1 943 16 view .LVU459
1631 0016 1A43 orrs r2, r2, r3
1632 0018 42F08402 orr r2, r2, #132
1633 001c CA60 str r2, [r1, #12]
1634 .L137:
968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1635 .loc 1 968 1 view .LVU460
1636 001e 7047 bx lr
1637 .L140:
1638 .align 2
1639 .L139:
1640 0020 00200052 .word 1375739904
1641 .cfi_endproc
1642 .LFE149:
1644 .section .text.HAL_FLASHEx_Erase,"ax",%progbits
1645 .align 1
1646 .global HAL_FLASHEx_Erase
1647 .syntax unified
1648 .thumb
1649 .thumb_func
1650 .fpu fpv5-d16
1652 HAL_FLASHEx_Erase:
1653 .LVL123:
1654 .LFB141:
179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
1655 .loc 1 179 1 is_stmt 1 view -0
1656 .cfi_startproc
1657 @ args = 0, pretend = 0, frame = 0
1658 @ frame_needed = 0, uses_anonymous_args = 0
179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
1659 .loc 1 179 1 is_stmt 0 view .LVU462
1660 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
1661 .LCFI11:
1662 .cfi_def_cfa_offset 24
ARM GAS /tmp/ccM28uwG.s page 64
1663 .cfi_offset 3, -24
1664 .cfi_offset 4, -20
1665 .cfi_offset 5, -16
1666 .cfi_offset 6, -12
1667 .cfi_offset 7, -8
1668 .cfi_offset 14, -4
180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** uint32_t sector_index;
1669 .loc 1 180 3 is_stmt 1 view .LVU463
1670 .LVL124:
181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1671 .loc 1 181 3 view .LVU464
184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(pEraseInit->Banks));
1672 .loc 1 184 3 view .LVU465
185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1673 .loc 1 185 3 view .LVU466
188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1674 .loc 1 188 3 view .LVU467
188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1675 .loc 1 188 3 view .LVU468
1676 0002 2E4B ldr r3, .L160
1677 0004 1B7D ldrb r3, [r3, #20] @ zero_extendqisi2
1678 0006 012B cmp r3, #1
1679 0008 56D0 beq .L151
1680 000a 0446 mov r4, r0
1681 000c 0F46 mov r7, r1
188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1682 .loc 1 188 3 discriminator 2 view .LVU469
1683 000e 2B4B ldr r3, .L160
1684 0010 0122 movs r2, #1
1685 0012 1A75 strb r2, [r3, #20]
188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1686 .loc 1 188 3 discriminator 2 view .LVU470
191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1687 .loc 1 191 3 discriminator 2 view .LVU471
191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1688 .loc 1 191 20 is_stmt 0 discriminator 2 view .LVU472
1689 0014 0022 movs r2, #0
1690 0016 9A61 str r2, [r3, #24]
194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1691 .loc 1 194 3 is_stmt 1 discriminator 2 view .LVU473
194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1692 .loc 1 194 17 is_stmt 0 discriminator 2 view .LVU474
1693 0018 4368 ldr r3, [r0, #4]
194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1694 .loc 1 194 5 discriminator 2 view .LVU475
1695 001a 13F0010F tst r3, #1
1696 001e 08D1 bne .L156
1697 .LVL125:
1698 .L143:
215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1699 .loc 1 215 5 is_stmt 1 view .LVU476
215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1700 .loc 1 215 18 is_stmt 0 view .LVU477
1701 0020 2368 ldr r3, [r4]
215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1702 .loc 1 215 7 view .LVU478
1703 0022 012B cmp r3, #1
ARM GAS /tmp/ccM28uwG.s page 65
1704 0024 0ED0 beq .L157
246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1705 .loc 1 246 7 is_stmt 1 view .LVU479
246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1706 .loc 1 246 20 is_stmt 0 view .LVU480
1707 0026 4FF0FF33 mov r3, #-1
1708 002a 3B60 str r3, [r7]
249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1709 .loc 1 249 7 is_stmt 1 view .LVU481
249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1710 .loc 1 249 24 is_stmt 0 view .LVU482
1711 002c A568 ldr r5, [r4, #8]
1712 .LVL126:
249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1713 .loc 1 249 7 view .LVU483
1714 002e 0026 movs r6, #0
1715 0030 22E0 b .L147
1716 .LVL127:
1717 .L156:
196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1718 .loc 1 196 5 is_stmt 1 view .LVU484
196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1719 .loc 1 196 8 is_stmt 0 view .LVU485
1720 0032 0121 movs r1, #1
1721 .LVL128:
196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1722 .loc 1 196 8 view .LVU486
1723 0034 4CF25030 movw r0, #50000
1724 .LVL129:
196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1725 .loc 1 196 8 view .LVU487
1726 0038 FFF7FEFF bl FLASH_WaitForLastOperation
1727 .LVL130:
196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1728 .loc 1 196 7 view .LVU488
1729 003c 0028 cmp r0, #0
1730 003e EFD0 beq .L143
198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1731 .loc 1 198 14 view .LVU489
1732 0040 0126 movs r6, #1
1733 0042 34E0 b .L144
1734 .LVL131:
1735 .L157:
218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1736 .loc 1 218 7 is_stmt 1 view .LVU490
1737 0044 6168 ldr r1, [r4, #4]
1738 0046 2069 ldr r0, [r4, #16]
1739 0048 FFF7FEFF bl FLASH_MassErase
1740 .LVL132:
221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1741 .loc 1 221 7 view .LVU491
221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1742 .loc 1 221 21 is_stmt 0 view .LVU492
1743 004c 6368 ldr r3, [r4, #4]
221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1744 .loc 1 221 9 view .LVU493
1745 004e 13F0010F tst r3, #1
ARM GAS /tmp/ccM28uwG.s page 66
1746 0052 01D1 bne .L158
1747 0054 0026 movs r6, #0
1748 0056 2AE0 b .L144
1749 .L158:
223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1750 .loc 1 223 9 is_stmt 1 view .LVU494
223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1751 .loc 1 223 12 is_stmt 0 view .LVU495
1752 0058 0121 movs r1, #1
1753 005a 4CF25030 movw r0, #50000
1754 005e FFF7FEFF bl FLASH_WaitForLastOperation
1755 .LVL133:
223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1756 .loc 1 223 11 view .LVU496
1757 0062 0646 mov r6, r0
1758 0064 00B1 cbz r0, .L146
225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1759 .loc 1 225 18 view .LVU497
1760 0066 0126 movs r6, #1
1761 .L146:
1762 .LVL134:
228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1763 .loc 1 228 9 is_stmt 1 view .LVU498
228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1764 .loc 1 228 20 is_stmt 0 view .LVU499
1765 0068 154A ldr r2, .L160+4
1766 006a D368 ldr r3, [r2, #12]
1767 006c 23F00803 bic r3, r3, #8
1768 0070 D360 str r3, [r2, #12]
1769 0072 1CE0 b .L144
1770 .LVL135:
1771 .L148:
272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1772 .loc 1 272 9 is_stmt 1 view .LVU500
272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1773 .loc 1 272 11 is_stmt 0 view .LVU501
1774 0074 D6B9 cbnz r6, .L159
249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1775 .loc 1 249 107 is_stmt 1 discriminator 2 view .LVU502
249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1776 .loc 1 249 119 is_stmt 0 discriminator 2 view .LVU503
1777 0076 0135 adds r5, r5, #1
1778 .LVL136:
1779 .L147:
249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1780 .loc 1 249 46 is_stmt 1 discriminator 1 view .LVU504
249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1781 .loc 1 249 72 is_stmt 0 discriminator 1 view .LVU505
1782 0078 E368 ldr r3, [r4, #12]
249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1783 .loc 1 249 96 discriminator 1 view .LVU506
1784 007a A268 ldr r2, [r4, #8]
249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1785 .loc 1 249 84 discriminator 1 view .LVU507
1786 007c 1344 add r3, r3, r2
249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1787 .loc 1 249 7 discriminator 1 view .LVU508
ARM GAS /tmp/ccM28uwG.s page 67
1788 007e AB42 cmp r3, r5
1789 0080 15D9 bls .L144
251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1790 .loc 1 251 9 is_stmt 1 view .LVU509
1791 0082 2269 ldr r2, [r4, #16]
1792 0084 6168 ldr r1, [r4, #4]
1793 0086 2846 mov r0, r5
1794 0088 FFF7FEFF bl FLASH_Erase_Sector
1795 .LVL137:
253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1796 .loc 1 253 9 view .LVU510
253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1797 .loc 1 253 23 is_stmt 0 view .LVU511
1798 008c 6368 ldr r3, [r4, #4]
253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1799 .loc 1 253 11 view .LVU512
1800 008e 13F0010F tst r3, #1
1801 0092 EFD0 beq .L148
256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1802 .loc 1 256 11 is_stmt 1 view .LVU513
256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1803 .loc 1 256 20 is_stmt 0 view .LVU514
1804 0094 0121 movs r1, #1
1805 0096 4CF25030 movw r0, #50000
1806 009a FFF7FEFF bl FLASH_WaitForLastOperation
1807 .LVL138:
1808 009e 0646 mov r6, r0
1809 .LVL139:
259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1810 .loc 1 259 11 is_stmt 1 view .LVU515
259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1811 .loc 1 259 22 is_stmt 0 view .LVU516
1812 00a0 074A ldr r2, .L160+4
1813 00a2 D168 ldr r1, [r2, #12]
1814 00a4 074B ldr r3, .L160+8
1815 00a6 0B40 ands r3, r3, r1
1816 00a8 D360 str r3, [r2, #12]
1817 00aa E3E7 b .L148
1818 .L159:
275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** break;
1819 .loc 1 275 11 is_stmt 1 view .LVU517
275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** break;
1820 .loc 1 275 24 is_stmt 0 view .LVU518
1821 00ac 3D60 str r5, [r7]
276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1822 .loc 1 276 11 is_stmt 1 view .LVU519
1823 .LVL140:
1824 .L144:
283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1825 .loc 1 283 3 view .LVU520
283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1826 .loc 1 283 3 view .LVU521
1827 00ae 034B ldr r3, .L160
1828 00b0 0022 movs r2, #0
1829 00b2 1A75 strb r2, [r3, #20]
283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1830 .loc 1 283 3 view .LVU522
ARM GAS /tmp/ccM28uwG.s page 68
285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1831 .loc 1 285 3 view .LVU523
1832 .LVL141:
1833 .L142:
286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1834 .loc 1 286 1 is_stmt 0 view .LVU524
1835 00b4 3046 mov r0, r6
1836 00b6 F8BD pop {r3, r4, r5, r6, r7, pc}
1837 .LVL142:
1838 .L151:
188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1839 .loc 1 188 3 view .LVU525
1840 00b8 0226 movs r6, #2
1841 00ba FBE7 b .L142
1842 .L161:
1843 .align 2
1844 .L160:
1845 00bc 00000000 .word pFlash
1846 00c0 00200052 .word 1375739904
1847 00c4 FBF8FFFF .word -1797
1848 .cfi_endproc
1849 .LFE141:
1851 .section .text.HAL_FLASHEx_Erase_IT,"ax",%progbits
1852 .align 1
1853 .global HAL_FLASHEx_Erase_IT
1854 .syntax unified
1855 .thumb
1856 .thumb_func
1857 .fpu fpv5-d16
1859 HAL_FLASHEx_Erase_IT:
1860 .LVL143:
1861 .LFB142:
296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
1862 .loc 1 296 1 is_stmt 1 view -0
1863 .cfi_startproc
1864 @ args = 0, pretend = 0, frame = 0
1865 @ frame_needed = 0, uses_anonymous_args = 0
297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1866 .loc 1 297 3 view .LVU527
300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(pEraseInit->Banks));
1867 .loc 1 300 3 view .LVU528
301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1868 .loc 1 301 3 view .LVU529
304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1869 .loc 1 304 3 view .LVU530
304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1870 .loc 1 304 3 view .LVU531
1871 0000 234B ldr r3, .L176
1872 0002 1B7D ldrb r3, [r3, #20] @ zero_extendqisi2
1873 0004 012B cmp r3, #1
1874 0006 40D0 beq .L169
296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
1875 .loc 1 296 1 is_stmt 0 discriminator 2 view .LVU532
1876 0008 10B5 push {r4, lr}
1877 .LCFI12:
1878 .cfi_def_cfa_offset 8
1879 .cfi_offset 4, -8
ARM GAS /tmp/ccM28uwG.s page 69
1880 .cfi_offset 14, -4
1881 000a 0446 mov r4, r0
304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1882 .loc 1 304 3 is_stmt 1 discriminator 2 view .LVU533
1883 000c 204B ldr r3, .L176
1884 000e 0122 movs r2, #1
1885 0010 1A75 strb r2, [r3, #20]
304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1886 .loc 1 304 3 discriminator 2 view .LVU534
307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1887 .loc 1 307 3 discriminator 2 view .LVU535
307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1888 .loc 1 307 20 is_stmt 0 discriminator 2 view .LVU536
1889 0012 0022 movs r2, #0
1890 0014 9A61 str r2, [r3, #24]
310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1891 .loc 1 310 3 is_stmt 1 discriminator 2 view .LVU537
310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1892 .loc 1 310 17 is_stmt 0 discriminator 2 view .LVU538
1893 0016 4368 ldr r3, [r0, #4]
310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1894 .loc 1 310 5 discriminator 2 view .LVU539
1895 0018 13F0010F tst r3, #1
1896 001c 16D1 bne .L174
1897 .LVL144:
1898 .L164:
336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1899 .loc 1 336 5 is_stmt 1 view .LVU540
336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1900 .loc 1 336 19 is_stmt 0 view .LVU541
1901 001e 6368 ldr r3, [r4, #4]
336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1902 .loc 1 336 7 view .LVU542
1903 0020 13F0010F tst r3, #1
1904 0024 04D0 beq .L165
340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** FLASH_IT_STRBERR_BANK1 | FLASH_IT_INCERR_BANK1 | FLASH_IT_OPERR_B
1905 .loc 1 340 7 is_stmt 1 view .LVU543
1906 0026 1B4A ldr r2, .L176+4
1907 0028 D368 ldr r3, [r2, #12]
1908 002a 43F4DE03 orr r3, r3, #7274496
1909 002e D360 str r3, [r2, #12]
1910 .L165:
361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1911 .loc 1 361 5 view .LVU544
361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1912 .loc 1 361 18 is_stmt 0 view .LVU545
1913 0030 2368 ldr r3, [r4]
361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1914 .loc 1 361 7 view .LVU546
1915 0032 012B cmp r3, #1
1916 0034 1AD1 bne .L166
364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1917 .loc 1 364 7 is_stmt 1 view .LVU547
364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1918 .loc 1 364 20 is_stmt 0 view .LVU548
1919 0036 6168 ldr r1, [r4, #4]
364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
ARM GAS /tmp/ccM28uwG.s page 70
1920 .loc 1 364 9 view .LVU549
1921 0038 0129 cmp r1, #1
1922 003a 13D0 beq .L175
376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1923 .loc 1 376 9 is_stmt 1 view .LVU550
376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1924 .loc 1 376 33 is_stmt 0 view .LVU551
1925 003c 144B ldr r3, .L176
1926 003e 0722 movs r2, #7
1927 0040 1A70 strb r2, [r3]
1928 .L168:
379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1929 .loc 1 379 7 is_stmt 1 view .LVU552
1930 0042 2069 ldr r0, [r4, #16]
1931 0044 FFF7FEFF bl FLASH_MassErase
1932 .LVL145:
1933 0048 0020 movs r0, #0
1934 .L163:
407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1935 .loc 1 407 1 is_stmt 0 view .LVU553
1936 004a 10BD pop {r4, pc}
1937 .LVL146:
1938 .L174:
312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1939 .loc 1 312 5 is_stmt 1 view .LVU554
312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1940 .loc 1 312 8 is_stmt 0 view .LVU555
1941 004c 0121 movs r1, #1
1942 004e 4CF25030 movw r0, #50000
1943 .LVL147:
312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1944 .loc 1 312 8 view .LVU556
1945 0052 FFF7FEFF bl FLASH_WaitForLastOperation
1946 .LVL148:
312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1947 .loc 1 312 7 view .LVU557
1948 0056 0028 cmp r0, #0
1949 0058 E1D0 beq .L164
314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1950 .loc 1 314 7 is_stmt 1 view .LVU558
1951 .LVL149:
329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** {
1952 .loc 1 329 3 view .LVU559
332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1953 .loc 1 332 5 view .LVU560
332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1954 .loc 1 332 5 view .LVU561
1955 005a 0D4B ldr r3, .L176
1956 005c 0022 movs r2, #0
1957 005e 1A75 strb r2, [r3, #20]
332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1958 .loc 1 332 5 view .LVU562
314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1959 .loc 1 314 14 is_stmt 0 view .LVU563
1960 0060 0120 movs r0, #1
1961 0062 F2E7 b .L163
1962 .LVL150:
ARM GAS /tmp/ccM28uwG.s page 71
1963 .L175:
366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1964 .loc 1 366 9 is_stmt 1 view .LVU564
366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1965 .loc 1 366 33 is_stmt 0 view .LVU565
1966 0064 0A4B ldr r3, .L176
1967 0066 0222 movs r2, #2
1968 0068 1A70 strb r2, [r3]
1969 006a EAE7 b .L168
1970 .L166:
394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
1971 .loc 1 394 7 is_stmt 1 view .LVU566
394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** #endif /* DUAL_BANK */
1972 .loc 1 394 31 is_stmt 0 view .LVU567
1973 006c 084B ldr r3, .L176
1974 006e 0122 movs r2, #1
1975 0070 1A70 strb r2, [r3]
397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.Sector = pEraseInit->Sector;
1976 .loc 1 397 7 is_stmt 1 view .LVU568
397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.Sector = pEraseInit->Sector;
1977 .loc 1 397 43 is_stmt 0 view .LVU569
1978 0072 E268 ldr r2, [r4, #12]
397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.Sector = pEraseInit->Sector;
1979 .loc 1 397 31 view .LVU570
1980 0074 5A60 str r2, [r3, #4]
398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.VoltageForErase = pEraseInit->VoltageRange;
1981 .loc 1 398 7 is_stmt 1 view .LVU571
398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.VoltageForErase = pEraseInit->VoltageRange;
1982 .loc 1 398 33 is_stmt 0 view .LVU572
1983 0076 A268 ldr r2, [r4, #8]
398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** pFlash.VoltageForErase = pEraseInit->VoltageRange;
1984 .loc 1 398 21 view .LVU573
1985 0078 DA60 str r2, [r3, #12]
399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1986 .loc 1 399 7 is_stmt 1 view .LVU574
399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1987 .loc 1 399 42 is_stmt 0 view .LVU575
1988 007a 2269 ldr r2, [r4, #16]
399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
1989 .loc 1 399 30 view .LVU576
1990 007c 9A60 str r2, [r3, #8]
402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c **** }
1991 .loc 1 402 7 is_stmt 1 view .LVU577
1992 007e 6168 ldr r1, [r4, #4]
1993 0080 A068 ldr r0, [r4, #8]
1994 0082 FFF7FEFF bl FLASH_Erase_Sector
1995 .LVL151:
1996 0086 0020 movs r0, #0
1997 0088 DFE7 b .L163
1998 .LVL152:
1999 .L169:
2000 .LCFI13:
2001 .cfi_def_cfa_offset 0
2002 .cfi_restore 4
2003 .cfi_restore 14
304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
2004 .loc 1 304 3 is_stmt 0 view .LVU578
ARM GAS /tmp/ccM28uwG.s page 72
2005 008a 0220 movs r0, #2
2006 .LVL153:
407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_flash_ex.c ****
2007 .loc 1 407 1 view .LVU579
2008 008c 7047 bx lr
2009 .L177:
2010 008e 00BF .align 2
2011 .L176:
2012 0090 00000000 .word pFlash
2013 0094 00200052 .word 1375739904
2014 .cfi_endproc
2015 .LFE142:
2017 .text
2018 .Letext0:
2019 .file 2 "/usr/arm-none-eabi/include/machine/_default_types.h"
2020 .file 3 "/usr/arm-none-eabi/include/sys/_stdint.h"
2021 .file 4 "Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h750xx.h"
2022 .file 5 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h"
2023 .file 6 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash.h"
2024 .file 7 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_flash_ex.h"
ARM GAS /tmp/ccM28uwG.s page 73
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32h7xx_hal_flash_ex.c
/tmp/ccM28uwG.s:17 .text.FLASH_MassErase:0000000000000000 $t
/tmp/ccM28uwG.s:24 .text.FLASH_MassErase:0000000000000000 FLASH_MassErase
/tmp/ccM28uwG.s:63 .text.FLASH_MassErase:0000000000000020 $d
/tmp/ccM28uwG.s:68 .text.FLASH_OB_EnableWRP:0000000000000000 $t
/tmp/ccM28uwG.s:74 .text.FLASH_OB_EnableWRP:0000000000000000 FLASH_OB_EnableWRP
/tmp/ccM28uwG.s:104 .text.FLASH_OB_EnableWRP:0000000000000014 $d
/tmp/ccM28uwG.s:109 .text.FLASH_OB_DisableWRP:0000000000000000 $t
/tmp/ccM28uwG.s:115 .text.FLASH_OB_DisableWRP:0000000000000000 FLASH_OB_DisableWRP
/tmp/ccM28uwG.s:145 .text.FLASH_OB_DisableWRP:0000000000000014 $d
/tmp/ccM28uwG.s:150 .text.FLASH_OB_GetWRP:0000000000000000 $t
/tmp/ccM28uwG.s:156 .text.FLASH_OB_GetWRP:0000000000000000 FLASH_OB_GetWRP
/tmp/ccM28uwG.s:209 .text.FLASH_OB_GetWRP:0000000000000020 $d
/tmp/ccM28uwG.s:214 .text.FLASH_OB_RDPConfig:0000000000000000 $t
/tmp/ccM28uwG.s:220 .text.FLASH_OB_RDPConfig:0000000000000000 FLASH_OB_RDPConfig
/tmp/ccM28uwG.s:240 .text.FLASH_OB_RDPConfig:0000000000000010 $d
/tmp/ccM28uwG.s:245 .text.FLASH_OB_GetRDP:0000000000000000 $t
/tmp/ccM28uwG.s:251 .text.FLASH_OB_GetRDP:0000000000000000 FLASH_OB_GetRDP
/tmp/ccM28uwG.s:285 .text.FLASH_OB_GetRDP:000000000000001c $d
/tmp/ccM28uwG.s:290 .text.FLASH_OB_UserConfig:0000000000000000 $t
/tmp/ccM28uwG.s:296 .text.FLASH_OB_UserConfig:0000000000000000 FLASH_OB_UserConfig
/tmp/ccM28uwG.s:456 .text.FLASH_OB_UserConfig:000000000000009c $d
/tmp/ccM28uwG.s:461 .text.FLASH_OB_GetUser:0000000000000000 $t
/tmp/ccM28uwG.s:467 .text.FLASH_OB_GetUser:0000000000000000 FLASH_OB_GetUser
/tmp/ccM28uwG.s:490 .text.FLASH_OB_GetUser:000000000000000c $d
/tmp/ccM28uwG.s:496 .text.FLASH_OB_PCROPConfig:0000000000000000 $t
/tmp/ccM28uwG.s:502 .text.FLASH_OB_PCROPConfig:0000000000000000 FLASH_OB_PCROPConfig
/tmp/ccM28uwG.s:547 .text.FLASH_OB_PCROPConfig:0000000000000020 $d
/tmp/ccM28uwG.s:552 .text.FLASH_OB_GetPCROP:0000000000000000 $t
/tmp/ccM28uwG.s:558 .text.FLASH_OB_GetPCROP:0000000000000000 FLASH_OB_GetPCROP
/tmp/ccM28uwG.s:635 .text.FLASH_OB_GetPCROP:0000000000000038 $d
/tmp/ccM28uwG.s:641 .text.FLASH_OB_BOR_LevelConfig:0000000000000000 $t
/tmp/ccM28uwG.s:647 .text.FLASH_OB_BOR_LevelConfig:0000000000000000 FLASH_OB_BOR_LevelConfig
/tmp/ccM28uwG.s:667 .text.FLASH_OB_BOR_LevelConfig:0000000000000010 $d
/tmp/ccM28uwG.s:672 .text.FLASH_OB_GetBOR:0000000000000000 $t
/tmp/ccM28uwG.s:678 .text.FLASH_OB_GetBOR:0000000000000000 FLASH_OB_GetBOR
/tmp/ccM28uwG.s:695 .text.FLASH_OB_GetBOR:000000000000000c $d
/tmp/ccM28uwG.s:700 .text.FLASH_OB_BootAddConfig:0000000000000000 $t
/tmp/ccM28uwG.s:706 .text.FLASH_OB_BootAddConfig:0000000000000000 FLASH_OB_BootAddConfig
/tmp/ccM28uwG.s:760 .text.FLASH_OB_BootAddConfig:000000000000002c $d
/tmp/ccM28uwG.s:766 .text.FLASH_OB_GetBootAdd:0000000000000000 $t
/tmp/ccM28uwG.s:772 .text.FLASH_OB_GetBootAdd:0000000000000000 FLASH_OB_GetBootAdd
/tmp/ccM28uwG.s:802 .text.FLASH_OB_GetBootAdd:0000000000000010 $d
/tmp/ccM28uwG.s:808 .text.FLASH_OB_SecureAreaConfig:0000000000000000 $t
/tmp/ccM28uwG.s:814 .text.FLASH_OB_SecureAreaConfig:0000000000000000 FLASH_OB_SecureAreaConfig
/tmp/ccM28uwG.s:861 .text.FLASH_OB_SecureAreaConfig:0000000000000024 $d
/tmp/ccM28uwG.s:866 .text.FLASH_OB_GetSecureArea:0000000000000000 $t
/tmp/ccM28uwG.s:872 .text.FLASH_OB_GetSecureArea:0000000000000000 FLASH_OB_GetSecureArea
/tmp/ccM28uwG.s:949 .text.FLASH_OB_GetSecureArea:0000000000000038 $d
/tmp/ccM28uwG.s:955 .text.FLASH_CRC_AddSector:0000000000000000 $t
/tmp/ccM28uwG.s:961 .text.FLASH_CRC_AddSector:0000000000000000 FLASH_CRC_AddSector
/tmp/ccM28uwG.s:999 .text.FLASH_CRC_AddSector:000000000000001c $d
/tmp/ccM28uwG.s:1004 .text.FLASH_CRC_SelectAddress:0000000000000000 $t
/tmp/ccM28uwG.s:1010 .text.FLASH_CRC_SelectAddress:0000000000000000 FLASH_CRC_SelectAddress
/tmp/ccM28uwG.s:1040 .text.FLASH_CRC_SelectAddress:0000000000000010 $d
/tmp/ccM28uwG.s:1045 .text.HAL_FLASHEx_OBProgram:0000000000000000 $t
ARM GAS /tmp/ccM28uwG.s page 74
/tmp/ccM28uwG.s:1052 .text.HAL_FLASHEx_OBProgram:0000000000000000 HAL_FLASHEx_OBProgram
/tmp/ccM28uwG.s:1236 .text.HAL_FLASHEx_OBProgram:00000000000000c8 $d
/tmp/ccM28uwG.s:1241 .text.HAL_FLASHEx_OBGetConfig:0000000000000000 $t
/tmp/ccM28uwG.s:1248 .text.HAL_FLASHEx_OBGetConfig:0000000000000000 HAL_FLASHEx_OBGetConfig
/tmp/ccM28uwG.s:1334 .text.HAL_FLASHEx_Unlock_Bank1:0000000000000000 $t
/tmp/ccM28uwG.s:1341 .text.HAL_FLASHEx_Unlock_Bank1:0000000000000000 HAL_FLASHEx_Unlock_Bank1
/tmp/ccM28uwG.s:1382 .text.HAL_FLASHEx_Unlock_Bank1:000000000000002c $d
/tmp/ccM28uwG.s:1388 .text.HAL_FLASHEx_Lock_Bank1:0000000000000000 $t
/tmp/ccM28uwG.s:1395 .text.HAL_FLASHEx_Lock_Bank1:0000000000000000 HAL_FLASHEx_Lock_Bank1
/tmp/ccM28uwG.s:1414 .text.HAL_FLASHEx_Lock_Bank1:0000000000000010 $d
/tmp/ccM28uwG.s:1419 .text.HAL_FLASHEx_ComputeCRC:0000000000000000 $t
/tmp/ccM28uwG.s:1426 .text.HAL_FLASHEx_ComputeCRC:0000000000000000 HAL_FLASHEx_ComputeCRC
/tmp/ccM28uwG.s:1588 .text.HAL_FLASHEx_ComputeCRC:00000000000000ac $d
/tmp/ccM28uwG.s:1594 .text.FLASH_Erase_Sector:0000000000000000 $t
/tmp/ccM28uwG.s:1601 .text.FLASH_Erase_Sector:0000000000000000 FLASH_Erase_Sector
/tmp/ccM28uwG.s:1640 .text.FLASH_Erase_Sector:0000000000000020 $d
/tmp/ccM28uwG.s:1645 .text.HAL_FLASHEx_Erase:0000000000000000 $t
/tmp/ccM28uwG.s:1652 .text.HAL_FLASHEx_Erase:0000000000000000 HAL_FLASHEx_Erase
/tmp/ccM28uwG.s:1845 .text.HAL_FLASHEx_Erase:00000000000000bc $d
/tmp/ccM28uwG.s:1852 .text.HAL_FLASHEx_Erase_IT:0000000000000000 $t
/tmp/ccM28uwG.s:1859 .text.HAL_FLASHEx_Erase_IT:0000000000000000 HAL_FLASHEx_Erase_IT
/tmp/ccM28uwG.s:2012 .text.HAL_FLASHEx_Erase_IT:0000000000000090 $d
UNDEFINED SYMBOLS
FLASH_WaitForLastOperation
pFlash
FLASH_OB_WaitForLastOperation
FLASH_CRC_WaitForLastOperation