Files
EEPROM_programmer/build/stm32f4xx_hal_flash_ex.lst
2025-09-05 10:30:26 +02:00

3238 lines
224 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/ccOuuMVv.s page 1
1 .cpu cortex-m4
2 .eabi_attribute 27, 1
3 .eabi_attribute 28, 1
4 .eabi_attribute 20, 1
5 .eabi_attribute 21, 1
6 .eabi_attribute 23, 3
7 .eabi_attribute 24, 1
8 .eabi_attribute 25, 1
9 .eabi_attribute 26, 1
10 .eabi_attribute 30, 1
11 .eabi_attribute 34, 1
12 .eabi_attribute 18, 4
13 .file "stm32f4xx_hal_flash_ex.c"
14 .text
15 .Ltext0:
16 .cfi_sections .debug_frame
17 .section .text.FLASH_MassErase,"ax",%progbits
18 .align 1
19 .arch armv7e-m
20 .syntax unified
21 .thumb
22 .thumb_func
23 .fpu fpv4-sp-d16
25 FLASH_MassErase:
26 .LVL0:
27 .LFB142:
28 .file 1 "Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c"
1:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
2:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** ******************************************************************************
3:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @file stm32f4xx_hal_flash_ex.c
4:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @author MCD Application Team
5:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Extended FLASH HAL module driver.
6:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This file provides firmware functions to manage the following
7:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * functionalities of the FLASH extension peripheral:
8:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * + Extended programming operations functions
9:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
10:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** @verbatim
11:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** ==============================================================================
12:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** ##### Flash Extension features #####
13:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** ==============================================================================
14:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
15:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** [..] Comparing to other previous devices, the FLASH interface for STM32F427xx/437xx and
16:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** STM32F429xx/439xx devices contains the following additional features
17:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
18:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (+) Capacity up to 2 Mbyte with dual bank architecture supporting read-while-write
19:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** capability (RWW)
20:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (+) Dual bank memory organization
21:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (+) PCROP protection for all banks
22:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
23:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** ##### How to use this driver #####
24:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** ==============================================================================
25:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** [..] This driver provides functions to configure and program the FLASH memory
26:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** of all STM32F427xx/437xx, STM32F429xx/439xx, STM32F469xx/479xx and STM32F446xx
27:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** devices. It includes
28:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (#) FLASH Memory Erase functions:
29:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (++) Lock and Unlock the FLASH interface using HAL_FLASH_Unlock() and
30:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_FLASH_Lock() functions
ARM GAS /tmp/ccOuuMVv.s page 2
31:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (++) Erase function: Erase sector, erase all sectors
32:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (++) There are two modes of erase :
33:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (+++) Polling Mode using HAL_FLASHEx_Erase()
34:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (+++) Interrupt Mode using HAL_FLASHEx_Erase_IT()
35:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
36:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (#) Option Bytes Programming functions: Use HAL_FLASHEx_OBProgram() to :
37:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (++) Set/Reset the write protection
38:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (++) Set the Read protection Level
39:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (++) Set the BOR level
40:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (++) Program the user Option Bytes
41:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (#) Advanced Option Bytes Programming functions: Use HAL_FLASHEx_AdvOBProgram() to :
42:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (++) Extended space (bank 2) erase function
43:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (++) Full FLASH space (2 Mo) erase (bank 1 and bank 2)
44:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (++) Dual Boot activation
45:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (++) Write protection configuration for bank 2
46:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (++) PCROP protection configuration and control for both banks
47:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
48:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** @endverbatim
49:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** ******************************************************************************
50:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @attention
51:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
52:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * Copyright (c) 2017 STMicroelectronics.
53:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * All rights reserved.
54:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
55:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This software is licensed under terms that can be found in the LICENSE file in
56:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * the root directory of this software component.
57:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
58:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** ******************************************************************************
59:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
60:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
61:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Includes ------------------------------------------------------------------*/
62:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #include "stm32f4xx_hal.h"
63:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
64:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /** @addtogroup STM32F4xx_HAL_Driver
65:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @{
66:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
67:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
68:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /** @defgroup FLASHEx FLASHEx
69:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief FLASH HAL Extension module driver
70:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @{
71:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
72:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
73:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #ifdef HAL_FLASH_MODULE_ENABLED
74:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
75:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Private typedef -----------------------------------------------------------*/
76:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Private define ------------------------------------------------------------*/
77:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /** @addtogroup FLASHEx_Private_Constants
78:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @{
79:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
80:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #define FLASH_TIMEOUT_VALUE 50000U /* 50 s */
81:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
82:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @}
83:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
84:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
85:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Private macro -------------------------------------------------------------*/
86:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Private variables ---------------------------------------------------------*/
87:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /** @addtogroup FLASHEx_Private_Variables
ARM GAS /tmp/ccOuuMVv.s page 3
88:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @{
89:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
90:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** extern FLASH_ProcessTypeDef pFlash;
91:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
92:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @}
93:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
94:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
95:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Private function prototypes -----------------------------------------------*/
96:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /** @addtogroup FLASHEx_Private_Functions
97:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @{
98:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
99:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Option bytes control */
100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static void FLASH_MassErase(uint8_t VoltageRange, uint32_t Banks);
101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_EnableWRP(uint32_t WRPSector, uint32_t Banks);
102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_DisableWRP(uint32_t WRPSector, uint32_t Banks);
103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_RDP_LevelConfig(uint8_t Level);
104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_UserConfig(uint8_t Iwdg, uint8_t Stop, uint8_t Stdby);
105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_BOR_LevelConfig(uint8_t Level);
106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static uint8_t FLASH_OB_GetUser(void);
107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static uint16_t FLASH_OB_GetWRP(void);
108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static uint8_t FLASH_OB_GetRDP(void);
109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static uint8_t FLASH_OB_GetBOR(void);
110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #if defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F410Tx) || defined(STM32F410Cx) ||
112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** defined(STM32F446xx) || defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) ||
113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** defined(STM32F423xx)
114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_EnablePCROP(uint32_t Sector);
115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_DisablePCROP(uint32_t Sector);
116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #endif /* STM32F401xC || STM32F401xE || STM32F410xx || STM32F411xE || STM32F446xx || STM32F412Zx ||
117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** STM32F413xx || STM32F423xx */
118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx)|| defined(STM32F439xx) ||
120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_EnablePCROP(uint32_t SectorBank1, uint32_t SectorBank2, uint32_t
121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_DisablePCROP(uint32_t SectorBank1, uint32_t SectorBank2, uint32_t
122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_BootConfig(uint8_t BootConfig);
123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */
124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** extern HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout);
126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @}
128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Exported functions --------------------------------------------------------*/
131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions FLASHEx Exported Functions
132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @{
133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions_Group1 Extended IO operation functions
136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Extended IO operation functions
137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** @verbatim
139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** ===============================================================================
140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** ##### Extended programming operation functions #####
141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** ===============================================================================
142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** [..]
143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** This subsection provides a set of functions allowing to manage the Extension FLASH
144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** programming operations.
ARM GAS /tmp/ccOuuMVv.s page 4
145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** @endverbatim
147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @{
148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Perform a mass erase or erase the specified FLASH memory sectors
151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param[in] pEraseInit pointer to an FLASH_EraseInitTypeDef structure that
152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * contains the configuration information for the erasing.
153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param[out] SectorError pointer to variable that
155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * contains the configuration information on faulty sector in case of error
156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * (0xFFFFFFFFU means that all the sectors have been correctly erased)
157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval HAL Status
159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *SectorError)
161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status;
163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** uint32_t index = 0U;
164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Process Locked */
166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash);
167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase));
170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (status == HAL_OK)
175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Initialization of SectorError variable*/
177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *SectorError = 0xFFFFFFFFU;
178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE)
180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Mass erase to be done*/
182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH_MassErase((uint8_t) pEraseInit->VoltageRange, pEraseInit->Banks);
183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* if the erase operation is completed, disable the MER Bit */
188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH->CR &= (~FLASH_MER_BIT);
189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** else
191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_FLASH_NBSECTORS(pEraseInit->NbSectors + pEraseInit->Sector));
194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Erase by sector by sector to be done*/
196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** for (index = pEraseInit->Sector; index < (pEraseInit->NbSectors + pEraseInit->Sector); index+
197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH_Erase_Sector(index, (uint8_t) pEraseInit->VoltageRange);
199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
ARM GAS /tmp/ccOuuMVv.s page 5
202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the SER and SNB Bits */
204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, (FLASH_CR_SER | FLASH_CR_SNB));
205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (status != HAL_OK)
207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* In case of error, stop erase procedure and return the faulty sector*/
209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *SectorError = index;
210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** break;
211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Flush the caches to be sure of the data consistency */
215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH_FlushCaches();
216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Process Unlocked */
219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return status;
222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Perform a mass erase or erase the specified FLASH memory sectors with interrupt enable
226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param pEraseInit pointer to an FLASH_EraseInitTypeDef structure that
227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * contains the configuration information for the erasing.
228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval HAL Status
230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Erase_IT(FLASH_EraseInitTypeDef *pEraseInit)
232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase));
237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Enable End of FLASH Operation interrupt */
239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP);
240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Enable Error source interrupt */
242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_ERR);
243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Clear pending flags (if any) */
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | \
246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR);
247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE)
249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Mass erase to be done*/
251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_MASSERASE;
252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pFlash.Bank = pEraseInit->Banks;
253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH_MassErase((uint8_t) pEraseInit->VoltageRange, pEraseInit->Banks);
254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** else
256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Erase by sector to be done*/
258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
ARM GAS /tmp/ccOuuMVv.s page 6
259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_FLASH_NBSECTORS(pEraseInit->NbSectors + pEraseInit->Sector));
261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_SECTERASE;
263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pFlash.NbSectorsToErase = pEraseInit->NbSectors;
264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pFlash.Sector = pEraseInit->Sector;
265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pFlash.VoltageForErase = (uint8_t)pEraseInit->VoltageRange;
266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Erase 1st sector and wait for IT*/
268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH_Erase_Sector(pEraseInit->Sector, pEraseInit->VoltageRange);
269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return status;
272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Program option bytes
276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param pOBInit pointer to an FLASH_OBInitStruct structure that
277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * contains the configuration information for the programming.
278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval HAL Status
280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_OBProgram(FLASH_OBProgramInitTypeDef *pOBInit)
282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Process Locked */
286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash);
287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OPTIONBYTE(pOBInit->OptionType));
290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Write protection configuration*/
292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if ((pOBInit->OptionType & OPTIONBYTE_WRP) == OPTIONBYTE_WRP)
293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_WRPSTATE(pOBInit->WRPState));
295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (pOBInit->WRPState == OB_WRPSTATE_ENABLE)
296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Enable of Write protection on the selected Sector*/
298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_OB_EnableWRP(pOBInit->WRPSector, pOBInit->Banks);
299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** else
301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Disable of Write protection on the selected Sector*/
303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_OB_DisableWRP(pOBInit->WRPSector, pOBInit->Banks);
304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Read protection configuration*/
308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if ((pOBInit->OptionType & OPTIONBYTE_RDP) == OPTIONBYTE_RDP)
309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_OB_RDP_LevelConfig(pOBInit->RDPLevel);
311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*USER configuration*/
314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if ((pOBInit->OptionType & OPTIONBYTE_USER) == OPTIONBYTE_USER)
315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
ARM GAS /tmp/ccOuuMVv.s page 7
316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_OB_UserConfig(pOBInit->USERConfig & OB_IWDG_SW,
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pOBInit->USERConfig & OB_STOP_NO_RST,
318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pOBInit->USERConfig & OB_STDBY_NO_RST);
319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*BOR Level configuration*/
322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if ((pOBInit->OptionType & OPTIONBYTE_BOR) == OPTIONBYTE_BOR)
323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_OB_BOR_LevelConfig(pOBInit->BORLevel);
325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Process Unlocked */
328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return status;
331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Get the Option byte configuration
335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param pOBInit pointer to an FLASH_OBInitStruct structure that
336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * contains the configuration information for the programming.
337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval None
339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit)
341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pOBInit->OptionType = OPTIONBYTE_WRP | OPTIONBYTE_RDP | OPTIONBYTE_USER | OPTIONBYTE_BOR;
343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Get WRP*/
345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pOBInit->WRPSector = (uint32_t)FLASH_OB_GetWRP();
346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Get RDP Level*/
348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pOBInit->RDPLevel = (uint32_t)FLASH_OB_GetRDP();
349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Get USER*/
351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pOBInit->USERConfig = (uint8_t)FLASH_OB_GetUser();
352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Get BOR Level*/
354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pOBInit->BORLevel = (uint32_t)FLASH_OB_GetBOR();
355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||
358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F410Tx) || defined(STM32F410Cx) ||
359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** defined(STM32F410Rx) || defined(STM32F411xE) || defined(STM32F446xx) || defined(STM32F469xx) ||
360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** defined(STM32F479xx) || defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) ||
361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Program option bytes
364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param pAdvOBInit pointer to an FLASH_AdvOBProgramInitTypeDef structure that
365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * contains the configuration information for the programming.
366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval HAL Status
368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_AdvOBProgram(FLASH_AdvOBProgramInitTypeDef *pAdvOBInit)
370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
ARM GAS /tmp/ccOuuMVv.s page 8
373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OBEX(pAdvOBInit->OptionType));
375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Program PCROP option byte*/
377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (((pAdvOBInit->OptionType) & OPTIONBYTE_PCROP) == OPTIONBYTE_PCROP)
378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_PCROPSTATE(pAdvOBInit->PCROPState));
381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if ((pAdvOBInit->PCROPState) == OB_PCROP_STATE_ENABLE)
382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Enable of Write protection on the selected Sector*/
384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #if defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F410Tx) || defined(STM32F410Cx) ||
385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** defined(STM32F411xE) || defined(STM32F446xx) || defined(STM32F412Zx) || defined(STM32F412Vx) ||
386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_OB_EnablePCROP(pAdvOBInit->Sectors);
388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #else /* STM32F427xx || STM32F437xx || STM32F429xx|| STM32F439xx || STM32F469xx || STM32F479xx */
389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_OB_EnablePCROP(pAdvOBInit->SectorsBank1, pAdvOBInit->SectorsBank2, pAdvOBInit-
390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #endif /* STM32F401xC || STM32F401xE || STM32F410xx || STM32F411xE || STM32F446xx || STM32F412Zx ||
391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** STM32F413xx || STM32F423xx */
392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** else
394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Disable of Write protection on the selected Sector*/
396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #if defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F410Tx) || defined(STM32F410Cx) ||
397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** defined(STM32F411xE) || defined(STM32F446xx) || defined(STM32F412Zx) || defined(STM32F412Vx) ||
398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_OB_DisablePCROP(pAdvOBInit->Sectors);
400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #else /* STM32F427xx || STM32F437xx || STM32F429xx|| STM32F439xx || STM32F469xx || STM32F479xx */
401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_OB_DisablePCROP(pAdvOBInit->SectorsBank1, pAdvOBInit->SectorsBank2, pAdvOBInit
402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #endif /* STM32F401xC || STM32F401xE || STM32F410xx || STM32F411xE || STM32F446xx || STM32F412Zx ||
403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** STM32F413xx || STM32F423xx */
404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||
408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Program BOOT config option byte*/
409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (((pAdvOBInit->OptionType) & OPTIONBYTE_BOOTCONFIG) == OPTIONBYTE_BOOTCONFIG)
410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_OB_BootConfig(pAdvOBInit->BootConfig);
412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */
414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return status;
416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Get the OBEX byte configuration
420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param pAdvOBInit pointer to an FLASH_AdvOBProgramInitTypeDef structure that
421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * contains the configuration information for the programming.
422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval None
424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** void HAL_FLASHEx_AdvOBGetConfig(FLASH_AdvOBProgramInitTypeDef *pAdvOBInit)
426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #if defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F410Tx) || defined(STM32F410Cx) ||
428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** defined(STM32F411xE) || defined(STM32F446xx) || defined(STM32F412Zx) || defined(STM32F412Vx) ||
429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
ARM GAS /tmp/ccOuuMVv.s page 9
430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Get Sector*/
431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pAdvOBInit->Sectors = (*(__IO uint16_t *)(OPTCR_BYTE2_ADDRESS));
432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #else /* STM32F427xx || STM32F437xx || STM32F429xx|| STM32F439xx || STM32F469xx || STM32F479xx */
433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Get Sector for Bank1*/
434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pAdvOBInit->SectorsBank1 = (*(__IO uint16_t *)(OPTCR_BYTE2_ADDRESS));
435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Get Sector for Bank2*/
437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pAdvOBInit->SectorsBank2 = (*(__IO uint16_t *)(OPTCR1_BYTE2_ADDRESS));
438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Get Boot config OB*/
440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pAdvOBInit->BootConfig = *(__IO uint8_t *)OPTCR_BYTE0_ADDRESS;
441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #endif /* STM32F401xC || STM32F401xE || STM32F410xx || STM32F411xE || STM32F446xx || STM32F412Zx ||
442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** STM32F413xx || STM32F423xx */
443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Select the Protection Mode
447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note After PCROP activated Option Byte modification NOT POSSIBLE! excepted
449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * Global Read Out Protection modification (from level1 to level0)
450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note Once SPRMOD bit is active unprotection of a protected sector is not possible
451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note Read a protected sector will set RDERR Flag and write a protected sector will set WRPER
452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note This function can be used only for STM32F42xxx/STM32F43xxx/STM32F401xx/STM32F411xx/STM3
453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * STM32F469xx/STM32F479xx/STM32F412xx/STM32F413xx devices.
454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval HAL Status
456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_OB_SelectPCROP(void)
458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** uint8_t optiontmp;
460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Mask SPRMOD bit */
462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** optiontmp = (uint8_t)((*(__IO uint8_t *)OPTCR_BYTE3_ADDRESS) & (uint8_t)0x7F);
463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Update Option Byte */
465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint8_t *)OPTCR_BYTE3_ADDRESS = (uint8_t)(OB_PCROP_SELECTED | optiontmp);
466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return HAL_OK;
468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Deselect the Protection Mode
472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note After PCROP activated Option Byte modification NOT POSSIBLE! excepted
474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * Global Read Out Protection modification (from level1 to level0)
475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note Once SPRMOD bit is active unprotection of a protected sector is not possible
476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note Read a protected sector will set RDERR Flag and write a protected sector will set WRPER
477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note This function can be used only for STM32F42xxx/STM32F43xxx/STM32F401xx/STM32F411xx/STM3
478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * STM32F469xx/STM32F479xx/STM32F412xx/STM32F413xx devices.
479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval HAL Status
481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_OB_DeSelectPCROP(void)
483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** uint8_t optiontmp;
485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Mask SPRMOD bit */
ARM GAS /tmp/ccOuuMVv.s page 10
487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** optiontmp = (uint8_t)((*(__IO uint8_t *)OPTCR_BYTE3_ADDRESS) & (uint8_t)0x7F);
488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Update Option Byte */
490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint8_t *)OPTCR_BYTE3_ADDRESS = (uint8_t)(OB_PCROP_DESELECTED | optiontmp);
491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return HAL_OK;
493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F401xC || STM32F401xE ||
495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** STM32F411xE || STM32F469xx || STM32F479xx || STM32F412Zx || STM32F412Vx || STM32F412Rx ||
496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** STM32F413xx || STM32F423xx */
497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx)|| defined(STM32F439xx) ||
499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Returns the FLASH Write Protection Option Bytes value for Bank 2
501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note This function can be used only for STM32F42xxx/STM32F43xxx/STM32F469xx/STM32F479xx devi
502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval The FLASH Write Protection Option Bytes value
503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** uint16_t HAL_FLASHEx_OB_GetBank2WRP(void)
505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Return the FLASH write protection Register value */
507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return (*(__IO uint16_t *)(OPTCR1_BYTE2_ADDRESS));
508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */
510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @}
513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||
516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Full erase of FLASH memory sectors
518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param VoltageRange The device voltage range which defines the erase parallelism.
519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_1: when the device voltage range is 1.8V to 2.1V,
521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * the operation will be done by byte (8-bit)
522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_2: when the device voltage range is 2.1V to 2.7V,
523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * the operation will be done by half word (16-bit)
524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_3: when the device voltage range is 2.7V to 3.6V,
525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * the operation will be done by word (32-bit)
526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_4: when the device voltage range is 2.7V to 3.6V + External
527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * the operation will be done by double word (64-bit)
528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param Banks Banks to be erased
530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: Bank1 to be erased
532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: Bank2 to be erased
533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: Bank1 and Bank2 to be erased
534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval HAL Status
536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static void FLASH_MassErase(uint8_t VoltageRange, uint32_t Banks)
538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_VOLTAGERANGE(VoltageRange));
541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks));
542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* if the previous operation is completed, proceed to erase all sectors */
ARM GAS /tmp/ccOuuMVv.s page 11
544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PSIZE);
545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (Banks == FLASH_BANK_BOTH)
547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* bank1 & bank2 will be erased*/
549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH->CR |= FLASH_MER_BIT;
550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** else if (Banks == FLASH_BANK_1)
552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Only bank1 will be erased*/
554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH->CR |= FLASH_CR_MER1;
555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** else
557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Only bank2 will be erased*/
559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH->CR |= FLASH_CR_MER2;
560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH->CR |= FLASH_CR_STRT | ((uint32_t)VoltageRange << 8U);
562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Erase the specified FLASH memory sector
566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param Sector FLASH sector to erase
567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * The value of this parameter depend on device used within the same series
568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param VoltageRange The device voltage range which defines the erase parallelism.
569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_1: when the device voltage range is 1.8V to 2.1V,
571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * the operation will be done by byte (8-bit)
572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_2: when the device voltage range is 2.1V to 2.7V,
573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * the operation will be done by half word (16-bit)
574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_3: when the device voltage range is 2.7V to 3.6V,
575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * the operation will be done by word (32-bit)
576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_4: when the device voltage range is 2.7V to 3.6V + External
577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * the operation will be done by double word (64-bit)
578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval None
580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** void FLASH_Erase_Sector(uint32_t Sector, uint8_t VoltageRange)
582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** uint32_t tmp_psize = 0U;
584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_FLASH_SECTOR(Sector));
587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_VOLTAGERANGE(VoltageRange));
588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (VoltageRange == FLASH_VOLTAGE_RANGE_1)
590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** tmp_psize = FLASH_PSIZE_BYTE;
592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** else if (VoltageRange == FLASH_VOLTAGE_RANGE_2)
594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** tmp_psize = FLASH_PSIZE_HALF_WORD;
596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** else if (VoltageRange == FLASH_VOLTAGE_RANGE_3)
598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** tmp_psize = FLASH_PSIZE_WORD;
600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
ARM GAS /tmp/ccOuuMVv.s page 12
601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** else
602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** tmp_psize = FLASH_PSIZE_DOUBLE_WORD;
604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Need to add offset of 4 when sector higher than FLASH_SECTOR_11 */
607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (Sector > FLASH_SECTOR_11)
608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** Sector += 4U;
610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* If the previous operation is completed, proceed to erase the sector */
612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PSIZE);
613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH->CR |= tmp_psize;
614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_SNB);
615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH->CR |= FLASH_CR_SER | (Sector << FLASH_CR_SNB_Pos);
616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH->CR |= FLASH_CR_STRT;
617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Enable the write protection of the desired bank1 or bank 2 sectors
621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note When the memory read protection level is selected (RDP level = 1),
623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * it is not possible to program or erase the flash sector i if CortexM4
624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * debug features are connected or boot code is executed in RAM, even if nWRPi = 1
625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note Active value of nWRPi bits is inverted when PCROP mode is active (SPRMOD =1).
626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param WRPSector specifies the sector(s) to be write protected.
628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg WRPSector: A value between OB_WRP_SECTOR_0 and OB_WRP_SECTOR_23
630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_WRP_SECTOR_All
631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note BANK2 starts from OB_WRP_SECTOR_12
632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param Banks Enable write protection on all the sectors for the specific bank
634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: WRP on all sectors of bank1
636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: WRP on all sectors of bank2
637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: WRP on all sectors of bank1 & bank2
638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval HAL FLASH State
640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_EnableWRP(uint32_t WRPSector, uint32_t Banks)
642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OB_WRP_SECTOR(WRPSector));
647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks));
648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (status == HAL_OK)
653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (((WRPSector == OB_WRP_SECTOR_All) && ((Banks == FLASH_BANK_1) || (Banks == FLASH_BANK_BOTH)
655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (WRPSector < OB_WRP_SECTOR_12))
656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (WRPSector == OB_WRP_SECTOR_All)
ARM GAS /tmp/ccOuuMVv.s page 13
658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Write protection on all sector of BANK1*/
660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint16_t *)OPTCR_BYTE2_ADDRESS &= (~(WRPSector >> 12));
661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** else
663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Write protection done on sectors of BANK1*/
665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint16_t *)OPTCR_BYTE2_ADDRESS &= (~WRPSector);
666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** else
669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Write protection done on sectors of BANK2*/
671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint16_t *)OPTCR1_BYTE2_ADDRESS &= (~(WRPSector >> 12));
672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Write protection on all sector of BANK2*/
675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if ((WRPSector == OB_WRP_SECTOR_All) && (Banks == FLASH_BANK_BOTH))
676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (status == HAL_OK)
681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint16_t *)OPTCR1_BYTE2_ADDRESS &= (~(WRPSector >> 12));
683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return status;
688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Disable the write protection of the desired bank1 or bank 2 sectors
692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note When the memory read protection level is selected (RDP level = 1),
694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * it is not possible to program or erase the flash sector i if CortexM4
695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * debug features are connected or boot code is executed in RAM, even if nWRPi = 1
696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note Active value of nWRPi bits is inverted when PCROP mode is active (SPRMOD =1).
697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param WRPSector specifies the sector(s) to be write protected.
699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg WRPSector: A value between OB_WRP_SECTOR_0 and OB_WRP_SECTOR_23
701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_WRP_Sector_All
702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note BANK2 starts from OB_WRP_SECTOR_12
703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param Banks Disable write protection on all the sectors for the specific bank
705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: Bank1 to be erased
707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: Bank2 to be erased
708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: Bank1 and Bank2 to be erased
709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval HAL Status
711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_DisableWRP(uint32_t WRPSector, uint32_t Banks)
713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
ARM GAS /tmp/ccOuuMVv.s page 14
715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OB_WRP_SECTOR(WRPSector));
718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks));
719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (status == HAL_OK)
724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (((WRPSector == OB_WRP_SECTOR_All) && ((Banks == FLASH_BANK_1) || (Banks == FLASH_BANK_BOTH)
726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** (WRPSector < OB_WRP_SECTOR_12))
727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (WRPSector == OB_WRP_SECTOR_All)
729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Write protection on all sector of BANK1*/
731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint16_t *)OPTCR_BYTE2_ADDRESS |= (uint16_t)(WRPSector >> 12);
732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** else
734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Write protection done on sectors of BANK1*/
736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint16_t *)OPTCR_BYTE2_ADDRESS |= (uint16_t)WRPSector;
737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** else
740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Write protection done on sectors of BANK2*/
742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint16_t *)OPTCR1_BYTE2_ADDRESS |= (uint16_t)(WRPSector >> 12);
743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Write protection on all sector of BANK2*/
746:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if ((WRPSector == OB_WRP_SECTOR_All) && (Banks == FLASH_BANK_BOTH))
747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (status == HAL_OK)
752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint16_t *)OPTCR1_BYTE2_ADDRESS |= (uint16_t)(WRPSector >> 12);
754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
759:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return status;
760:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
762:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Configure the Dual Bank Boot.
764:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
765:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note This function can be used only for STM32F42xxx/43xxx devices.
766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
767:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param BootConfig specifies the Dual Bank Boot Option byte.
768:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_Dual_BootEnabled: Dual Bank Boot Enable
770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_Dual_BootDisabled: Dual Bank Boot Disabled
771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval None
ARM GAS /tmp/ccOuuMVv.s page 15
772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
773:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_BootConfig(uint8_t BootConfig)
774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
776:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OB_BOOT(BootConfig));
779:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
780:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (status == HAL_OK)
784:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
785:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Set Dual Bank Boot */
786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint8_t *)OPTCR_BYTE0_ADDRESS &= (~FLASH_OPTCR_BFB2);
787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint8_t *)OPTCR_BYTE0_ADDRESS |= BootConfig;
788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return status;
791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
794:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Enable the read/write protection (PCROP) of the desired
795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * sectors of Bank 1 and/or Bank 2.
796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note This function can be used only for STM32F42xxx/43xxx devices.
797:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param SectorBank1 Specifies the sector(s) to be read/write protected or unprotected for bank1
798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_PCROP: A value between OB_PCROP_SECTOR_0 and OB_PCROP_SECTOR_11
800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_PCROP_SECTOR__All
801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param SectorBank2 Specifies the sector(s) to be read/write protected or unprotected for bank2
802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_PCROP: A value between OB_PCROP_SECTOR_12 and OB_PCROP_SECTOR_23
804:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_PCROP_SECTOR__All
805:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param Banks Enable PCROP protection on all the sectors for the specific bank
806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
807:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: WRP on all sectors of bank1
808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: WRP on all sectors of bank2
809:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: WRP on all sectors of bank1 & bank2
810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval HAL Status
812:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_EnablePCROP(uint32_t SectorBank1, uint32_t SectorBank2, uint32_t
814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
817:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks));
818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (status == HAL_OK)
823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if ((Banks == FLASH_BANK_1) || (Banks == FLASH_BANK_BOTH))
825:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OB_PCROP(SectorBank1));
827:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Write protection done on sectors of BANK1*/
828:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint16_t *)OPTCR_BYTE2_ADDRESS |= (uint16_t)SectorBank1;
ARM GAS /tmp/ccOuuMVv.s page 16
829:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
830:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** else
831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
832:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OB_PCROP(SectorBank2));
833:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Write protection done on sectors of BANK2*/
834:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint16_t *)OPTCR1_BYTE2_ADDRESS |= (uint16_t)SectorBank2;
835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
836:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
837:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Write protection on all sector of BANK2*/
838:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (Banks == FLASH_BANK_BOTH)
839:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
840:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OB_PCROP(SectorBank2));
841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
842:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
843:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
844:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (status == HAL_OK)
845:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Write protection done on sectors of BANK2*/
847:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint16_t *)OPTCR1_BYTE2_ADDRESS |= (uint16_t)SectorBank2;
848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
850:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
853:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return status;
854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
855:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
856:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
858:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Disable the read/write protection (PCROP) of the desired
859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * sectors of Bank 1 and/or Bank 2.
860:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note This function can be used only for STM32F42xxx/43xxx devices.
861:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param SectorBank1 specifies the sector(s) to be read/write protected or unprotected for bank1
862:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
863:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_PCROP: A value between OB_PCROP_SECTOR_0 and OB_PCROP_SECTOR_11
864:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_PCROP_SECTOR__All
865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param SectorBank2 Specifies the sector(s) to be read/write protected or unprotected for bank2
866:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_PCROP: A value between OB_PCROP_SECTOR_12 and OB_PCROP_SECTOR_23
868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_PCROP_SECTOR__All
869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param Banks Disable PCROP protection on all the sectors for the specific bank
870:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: WRP on all sectors of bank1
872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: WRP on all sectors of bank2
873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: WRP on all sectors of bank1 & bank2
874:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
875:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval HAL Status
876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_DisablePCROP(uint32_t SectorBank1, uint32_t SectorBank2, uint32_t
878:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
880:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
881:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks));
883:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
885:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
ARM GAS /tmp/ccOuuMVv.s page 17
886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (status == HAL_OK)
888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if ((Banks == FLASH_BANK_1) || (Banks == FLASH_BANK_BOTH))
890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
891:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OB_PCROP(SectorBank1));
892:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Write protection done on sectors of BANK1*/
893:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint16_t *)OPTCR_BYTE2_ADDRESS &= (~SectorBank1);
894:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
895:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** else
896:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
897:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Write protection done on sectors of BANK2*/
898:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OB_PCROP(SectorBank2));
899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint16_t *)OPTCR1_BYTE2_ADDRESS &= (~SectorBank2);
900:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
901:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Write protection on all sector of BANK2*/
903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (Banks == FLASH_BANK_BOTH)
904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
905:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OB_PCROP(SectorBank2));
906:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
909:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (status == HAL_OK)
910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /*Write protection done on sectors of BANK2*/
912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint16_t *)OPTCR1_BYTE2_ADDRESS &= (~SectorBank2);
913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
916:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
917:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
918:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return status;
919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
920:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
921:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */
923:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) ||
925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F410Tx) || defined(STM32F410Cx) ||
926:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** defined(STM32F410Rx) || defined(STM32F411xE) || defined(STM32F446xx) || defined(STM32F412Zx) ||
927:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) ||
928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** defined(STM32F423xx)
929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Mass erase of FLASH memory
931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param VoltageRange The device voltage range which defines the erase parallelism.
932:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
933:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_1: when the device voltage range is 1.8V to 2.1V,
934:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * the operation will be done by byte (8-bit)
935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_2: when the device voltage range is 2.1V to 2.7V,
936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * the operation will be done by half word (16-bit)
937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_3: when the device voltage range is 2.7V to 3.6V,
938:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * the operation will be done by word (32-bit)
939:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_4: when the device voltage range is 2.7V to 3.6V + External
940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * the operation will be done by double word (64-bit)
941:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
942:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param Banks Banks to be erased
ARM GAS /tmp/ccOuuMVv.s page 18
943:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
944:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: Bank1 to be erased
945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
946:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval None
947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
948:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static void FLASH_MassErase(uint8_t VoltageRange, uint32_t Banks)
949:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
29 .loc 1 949 1 view -0
30 .cfi_startproc
31 @ args = 0, pretend = 0, frame = 0
32 @ frame_needed = 0, uses_anonymous_args = 0
33 @ link register save eliminated.
950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
951:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_VOLTAGERANGE(VoltageRange));
34 .loc 1 951 3 view .LVU1
952:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks));
35 .loc 1 952 3 view .LVU2
953:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* If the previous operation is completed, proceed to erase all sectors */
955:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PSIZE);
36 .loc 1 955 3 view .LVU3
37 0000 074B ldr r3, .L2
38 0002 1969 ldr r1, [r3, #16]
39 .LVL1:
40 .loc 1 955 3 is_stmt 0 view .LVU4
41 0004 21F44071 bic r1, r1, #768
42 0008 1961 str r1, [r3, #16]
956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH->CR |= FLASH_CR_MER;
43 .loc 1 956 3 is_stmt 1 view .LVU5
44 .loc 1 956 13 is_stmt 0 view .LVU6
45 000a 1969 ldr r1, [r3, #16]
46 000c 41F00401 orr r1, r1, #4
47 0010 1961 str r1, [r3, #16]
957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH->CR |= FLASH_CR_STRT | ((uint32_t)VoltageRange << 8U);
48 .loc 1 957 3 is_stmt 1 view .LVU7
49 .loc 1 957 13 is_stmt 0 view .LVU8
50 0012 1A69 ldr r2, [r3, #16]
51 0014 42EA0022 orr r2, r2, r0, lsl #8
52 0018 42F48032 orr r2, r2, #65536
53 001c 1A61 str r2, [r3, #16]
958:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
54 .loc 1 958 1 view .LVU9
55 001e 7047 bx lr
56 .L3:
57 .align 2
58 .L2:
59 0020 003C0240 .word 1073888256
60 .cfi_endproc
61 .LFE142:
63 .section .text.FLASH_OB_BOR_LevelConfig,"ax",%progbits
64 .align 1
65 .syntax unified
66 .thumb
67 .thumb_func
68 .fpu fpv4-sp-d16
70 FLASH_OB_BOR_LevelConfig:
71 .LVL2:
ARM GAS /tmp/ccOuuMVv.s page 19
72 .LFB150:
959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
960:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Erase the specified FLASH memory sector
962:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param Sector FLASH sector to erase
963:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * The value of this parameter depend on device used within the same series
964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param VoltageRange The device voltage range which defines the erase parallelism.
965:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
966:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_1: when the device voltage range is 1.8V to 2.1V,
967:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * the operation will be done by byte (8-bit)
968:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_2: when the device voltage range is 2.1V to 2.7V,
969:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * the operation will be done by half word (16-bit)
970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_3: when the device voltage range is 2.7V to 3.6V,
971:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * the operation will be done by word (32-bit)
972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_VOLTAGE_RANGE_4: when the device voltage range is 2.7V to 3.6V + External
973:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * the operation will be done by double word (64-bit)
974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval None
976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** void FLASH_Erase_Sector(uint32_t Sector, uint8_t VoltageRange)
978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** uint32_t tmp_psize = 0U;
980:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_FLASH_SECTOR(Sector));
983:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_VOLTAGERANGE(VoltageRange));
984:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (VoltageRange == FLASH_VOLTAGE_RANGE_1)
986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** tmp_psize = FLASH_PSIZE_BYTE;
988:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
989:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** else if (VoltageRange == FLASH_VOLTAGE_RANGE_2)
990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
991:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** tmp_psize = FLASH_PSIZE_HALF_WORD;
992:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
993:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** else if (VoltageRange == FLASH_VOLTAGE_RANGE_3)
994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
995:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** tmp_psize = FLASH_PSIZE_WORD;
996:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
997:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** else
998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** tmp_psize = FLASH_PSIZE_DOUBLE_WORD;
1000:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1001:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* If the previous operation is completed, proceed to erase the sector */
1003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PSIZE);
1004:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH->CR |= tmp_psize;
1005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_SNB);
1006:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH->CR |= FLASH_CR_SER | (Sector << FLASH_CR_SNB_Pos);
1007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH->CR |= FLASH_CR_STRT;
1008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1009:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1010:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
1011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Enable the write protection of the desired bank 1 sectors
1012:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
1013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note When the memory read protection level is selected (RDP level = 1),
1014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * it is not possible to program or erase the flash sector i if CortexM4
ARM GAS /tmp/ccOuuMVv.s page 20
1015:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * debug features are connected or boot code is executed in RAM, even if nWRPi = 1
1016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note Active value of nWRPi bits is inverted when PCROP mode is active (SPRMOD =1).
1017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
1018:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param WRPSector specifies the sector(s) to be write protected.
1019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * The value of this parameter depend on device used within the same series
1020:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
1021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param Banks Enable write protection on all the sectors for the specific bank
1022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1023:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: WRP on all sectors of bank1
1024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
1025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval HAL Status
1026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
1027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_EnableWRP(uint32_t WRPSector, uint32_t Banks)
1028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
1030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1031:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
1032:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OB_WRP_SECTOR(WRPSector));
1033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks));
1034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
1036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
1037:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1038:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (status == HAL_OK)
1039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint16_t *)OPTCR_BYTE2_ADDRESS &= (~WRPSector);
1041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return status;
1044:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
1047:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Disable the write protection of the desired bank 1 sectors
1048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
1049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note When the memory read protection level is selected (RDP level = 1),
1050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * it is not possible to program or erase the flash sector i if CortexM4
1051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * debug features are connected or boot code is executed in RAM, even if nWRPi = 1
1052:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note Active value of nWRPi bits is inverted when PCROP mode is active (SPRMOD =1).
1053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
1054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param WRPSector specifies the sector(s) to be write protected.
1055:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * The value of this parameter depend on device used within the same series
1056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
1057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param Banks Enable write protection on all the sectors for the specific bank
1058:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1059:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: WRP on all sectors of bank1
1060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
1061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval HAL Status
1062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
1063:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_DisableWRP(uint32_t WRPSector, uint32_t Banks)
1064:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
1066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
1068:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OB_WRP_SECTOR(WRPSector));
1069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks));
1070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
ARM GAS /tmp/ccOuuMVv.s page 21
1072:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
1073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (status == HAL_OK)
1075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint16_t *)OPTCR_BYTE2_ADDRESS |= (uint16_t)WRPSector;
1077:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return status;
1080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1081:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #endif /* STM32F40xxx || STM32F41xxx || STM32F401xx || STM32F410xx || STM32F411xE || STM32F446xx ||
1082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** STM32F413xx || STM32F423xx */
1083:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #if defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F410Tx) || defined(STM32F410Cx) ||
1085:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** defined(STM32F411xE) || defined(STM32F446xx) || defined(STM32F412Zx) || defined(STM32F412Vx) ||
1086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
1087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
1088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Enable the read/write protection (PCROP) of the desired sectors.
1089:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note This function can be used only for STM32F401xx devices.
1090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param Sector specifies the sector(s) to be read/write protected or unprotected.
1091:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_PCROP: A value between OB_PCROP_Sector0 and OB_PCROP_Sector5
1093:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_PCROP_Sector_All
1094:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval HAL Status
1095:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
1096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_EnablePCROP(uint32_t Sector)
1097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
1099:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
1101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OB_PCROP(Sector));
1102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
1104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
1105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (status == HAL_OK)
1107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint16_t *)OPTCR_BYTE2_ADDRESS |= (uint16_t)Sector;
1109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return status;
1112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
1116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Disable the read/write protection (PCROP) of the desired sectors.
1117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note This function can be used only for STM32F401xx devices.
1118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param Sector specifies the sector(s) to be read/write protected or unprotected.
1119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_PCROP: A value between OB_PCROP_Sector0 and OB_PCROP_Sector5
1121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_PCROP_Sector_All
1122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval HAL Status
1123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
1124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_DisablePCROP(uint32_t Sector)
1125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
1127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
ARM GAS /tmp/ccOuuMVv.s page 22
1129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OB_PCROP(Sector));
1130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
1132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
1133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (status == HAL_OK)
1135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint16_t *)OPTCR_BYTE2_ADDRESS &= (~Sector);
1137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return status;
1140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #endif /* STM32F401xC || STM32F401xE || STM32F411xE || STM32F446xx || STM32F412Zx || STM32F412Vx ||
1143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** STM32F413xx || STM32F423xx */
1144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
1146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Set the read protection level.
1147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param Level specifies the read protection level.
1148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_0: No protection
1150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_1: Read protection of the memory
1151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_2: Full chip protection
1152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
1153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @note WARNING: When enabling OB_RDP level 2 it's no more possible to go back to level 1 or 0
1154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *
1155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval HAL Status
1156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
1157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_RDP_LevelConfig(uint8_t Level)
1158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
1160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
1162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OB_RDP_LEVEL(Level));
1163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
1165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
1166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (status == HAL_OK)
1168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint8_t *)OPTCR_BYTE1_ADDRESS = Level;
1170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return status;
1173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
1176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Program the FLASH User Option Byte: IWDG_SW / RST_STOP / RST_STDBY.
1177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param Iwdg Selects the IWDG mode
1178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_IWDG_SW: Software IWDG selected
1180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_IWDG_HW: Hardware IWDG selected
1181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param Stop Reset event when entering STOP mode.
1182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_STOP_NO_RST: No reset generated when entering in STOP
1184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_STOP_RST: Reset generated when entering in STOP
1185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param Stdby Reset event when entering Standby mode.
ARM GAS /tmp/ccOuuMVv.s page 23
1186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_STDBY_NO_RST: No reset generated when entering in STANDBY
1188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_STDBY_RST: Reset generated when entering in STANDBY
1189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval HAL Status
1190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
1191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_UserConfig(uint8_t Iwdg, uint8_t Stop, uint8_t Stdby)
1192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** uint8_t optiontmp;
1194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
1195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
1197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OB_IWDG_SOURCE(Iwdg));
1198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OB_STOP_SOURCE(Stop));
1199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OB_STDBY_SOURCE(Stdby));
1200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
1202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
1203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (status == HAL_OK)
1205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Mask OPTLOCK, OPTSTRT, BOR_LEV and BFB2 bits */
1207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** optiontmp = (uint8_t)((*(__IO uint8_t *)OPTCR_BYTE0_ADDRESS) & (uint8_t)0x1F);
1208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Update User Option Byte */
1210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint8_t *)OPTCR_BYTE0_ADDRESS = Iwdg | (uint8_t)(Stdby | (uint8_t)(Stop | ((uint8_t)opti
1211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return status;
1214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
1217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Set the BOR Level.
1218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @param Level specifies the Option Bytes BOR Reset Level.
1219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_BOR_LEVEL3: Supply voltage ranges from 2.7 to 3.6 V
1221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_BOR_LEVEL2: Supply voltage ranges from 2.4 to 2.7 V
1222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_BOR_LEVEL1: Supply voltage ranges from 2.1 to 2.4 V
1223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_BOR_OFF: Supply voltage ranges from 1.62 to 2.1 V
1224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval HAL Status
1225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
1226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_BOR_LevelConfig(uint8_t Level)
1227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
73 .loc 1 1227 1 is_stmt 1 view -0
74 .cfi_startproc
75 @ args = 0, pretend = 0, frame = 0
76 @ frame_needed = 0, uses_anonymous_args = 0
77 @ link register save eliminated.
1228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Check the parameters */
1229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OB_BOR_LEVEL(Level));
78 .loc 1 1229 3 view .LVU11
1230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Set the BOR Level */
1232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint8_t *)OPTCR_BYTE0_ADDRESS &= (~FLASH_OPTCR_BOR_LEV);
79 .loc 1 1232 3 view .LVU12
80 .loc 1 1232 40 is_stmt 0 view .LVU13
81 0000 044B ldr r3, .L5
82 0002 197D ldrb r1, [r3, #20] @ zero_extendqisi2
ARM GAS /tmp/ccOuuMVv.s page 24
83 0004 01F0F301 and r1, r1, #243
84 0008 1975 strb r1, [r3, #20]
1233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** *(__IO uint8_t *)OPTCR_BYTE0_ADDRESS |= Level;
85 .loc 1 1233 3 is_stmt 1 view .LVU14
86 .loc 1 1233 40 is_stmt 0 view .LVU15
87 000a 1A7D ldrb r2, [r3, #20] @ zero_extendqisi2
88 000c 0243 orrs r2, r2, r0
89 000e 1A75 strb r2, [r3, #20]
1234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return HAL_OK;
90 .loc 1 1235 3 is_stmt 1 view .LVU16
1236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
91 .loc 1 1237 1 is_stmt 0 view .LVU17
92 0010 0020 movs r0, #0
93 .LVL3:
94 .loc 1 1237 1 view .LVU18
95 0012 7047 bx lr
96 .L6:
97 .align 2
98 .L5:
99 0014 003C0240 .word 1073888256
100 .cfi_endproc
101 .LFE150:
103 .section .text.FLASH_OB_GetUser,"ax",%progbits
104 .align 1
105 .syntax unified
106 .thumb
107 .thumb_func
108 .fpu fpv4-sp-d16
110 FLASH_OB_GetUser:
111 .LFB151:
1238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
1240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Return the FLASH User Option Byte value.
1241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval uint8_t FLASH User Option Bytes values: IWDG_SW(Bit0), RST_STOP(Bit1)
1242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * and RST_STDBY(Bit2).
1243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
1244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static uint8_t FLASH_OB_GetUser(void)
1245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
112 .loc 1 1245 1 is_stmt 1 view -0
113 .cfi_startproc
114 @ args = 0, pretend = 0, frame = 0
115 @ frame_needed = 0, uses_anonymous_args = 0
116 @ link register save eliminated.
1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Return the User Option Byte */
1247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return ((uint8_t)(FLASH->OPTCR & 0xE0));
117 .loc 1 1247 3 view .LVU20
118 .loc 1 1247 26 is_stmt 0 view .LVU21
119 0000 024B ldr r3, .L8
120 0002 5869 ldr r0, [r3, #20]
1248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
121 .loc 1 1248 1 view .LVU22
122 0004 00F0E000 and r0, r0, #224
123 0008 7047 bx lr
124 .L9:
125 000a 00BF .align 2
ARM GAS /tmp/ccOuuMVv.s page 25
126 .L8:
127 000c 003C0240 .word 1073888256
128 .cfi_endproc
129 .LFE151:
131 .section .text.FLASH_OB_GetWRP,"ax",%progbits
132 .align 1
133 .syntax unified
134 .thumb
135 .thumb_func
136 .fpu fpv4-sp-d16
138 FLASH_OB_GetWRP:
139 .LFB152:
1249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
1251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Return the FLASH Write Protection Option Bytes value.
1252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval uint16_t FLASH Write Protection Option Bytes value
1253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
1254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static uint16_t FLASH_OB_GetWRP(void)
1255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
140 .loc 1 1255 1 is_stmt 1 view -0
141 .cfi_startproc
142 @ args = 0, pretend = 0, frame = 0
143 @ frame_needed = 0, uses_anonymous_args = 0
144 @ link register save eliminated.
1256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Return the FLASH write protection Register value */
1257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return (*(__IO uint16_t *)(OPTCR_BYTE2_ADDRESS));
145 .loc 1 1257 3 view .LVU24
146 .loc 1 1257 11 is_stmt 0 view .LVU25
147 0000 014B ldr r3, .L11
148 0002 D88A ldrh r0, [r3, #22]
1258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
149 .loc 1 1258 1 view .LVU26
150 0004 80B2 uxth r0, r0
151 0006 7047 bx lr
152 .L12:
153 .align 2
154 .L11:
155 0008 003C0240 .word 1073888256
156 .cfi_endproc
157 .LFE152:
159 .section .text.FLASH_OB_GetRDP,"ax",%progbits
160 .align 1
161 .syntax unified
162 .thumb
163 .thumb_func
164 .fpu fpv4-sp-d16
166 FLASH_OB_GetRDP:
167 .LFB153:
1259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
1261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Returns the FLASH Read Protection level.
1262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval FLASH ReadOut Protection Status:
1263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_0: No protection
1265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_1: Read protection of the memory
1266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_2: Full chip protection
1267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
ARM GAS /tmp/ccOuuMVv.s page 26
1268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static uint8_t FLASH_OB_GetRDP(void)
1269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
168 .loc 1 1269 1 is_stmt 1 view -0
169 .cfi_startproc
170 @ args = 0, pretend = 0, frame = 0
171 @ frame_needed = 0, uses_anonymous_args = 0
172 @ link register save eliminated.
1270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** uint8_t readstatus = OB_RDP_LEVEL_0;
173 .loc 1 1270 3 view .LVU28
174 .LVL4:
1271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (*(__IO uint8_t *)(OPTCR_BYTE1_ADDRESS) == (uint8_t)OB_RDP_LEVEL_2)
175 .loc 1 1272 3 view .LVU29
176 .loc 1 1272 7 is_stmt 0 view .LVU30
177 0000 054B ldr r3, .L16
178 0002 587D ldrb r0, [r3, #21] @ zero_extendqisi2
179 0004 C0B2 uxtb r0, r0
180 .loc 1 1272 6 view .LVU31
181 0006 CC28 cmp r0, #204
182 0008 04D0 beq .L14
1273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** readstatus = OB_RDP_LEVEL_2;
1275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** else if (*(__IO uint8_t *)(OPTCR_BYTE1_ADDRESS) == (uint8_t)OB_RDP_LEVEL_0)
183 .loc 1 1276 8 is_stmt 1 view .LVU32
184 .loc 1 1276 12 is_stmt 0 view .LVU33
185 000a 587D ldrb r0, [r3, #21] @ zero_extendqisi2
186 000c C0B2 uxtb r0, r0
187 .loc 1 1276 11 view .LVU34
188 000e AA28 cmp r0, #170
189 0010 00D0 beq .L14
1277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** readstatus = OB_RDP_LEVEL_0;
1279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** else
1281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** readstatus = OB_RDP_LEVEL_1;
190 .loc 1 1282 16 view .LVU35
191 0012 5520 movs r0, #85
192 .L14:
193 .LVL5:
1283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return readstatus;
194 .loc 1 1285 3 is_stmt 1 view .LVU36
1286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
195 .loc 1 1286 1 is_stmt 0 view .LVU37
196 0014 7047 bx lr
197 .L17:
198 0016 00BF .align 2
199 .L16:
200 0018 003C0240 .word 1073888256
201 .cfi_endproc
202 .LFE153:
204 .section .text.FLASH_OB_GetBOR,"ax",%progbits
205 .align 1
206 .syntax unified
ARM GAS /tmp/ccOuuMVv.s page 27
207 .thumb
208 .thumb_func
209 .fpu fpv4-sp-d16
211 FLASH_OB_GetBOR:
212 .LFB154:
1287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
1289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Returns the FLASH BOR level.
1290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval uint8_t The FLASH BOR level:
1291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * - OB_BOR_LEVEL3: Supply voltage ranges from 2.7 to 3.6 V
1292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * - OB_BOR_LEVEL2: Supply voltage ranges from 2.4 to 2.7 V
1293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * - OB_BOR_LEVEL1: Supply voltage ranges from 2.1 to 2.4 V
1294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * - OB_BOR_OFF : Supply voltage ranges from 1.62 to 2.1 V
1295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
1296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** static uint8_t FLASH_OB_GetBOR(void)
1297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
213 .loc 1 1297 1 is_stmt 1 view -0
214 .cfi_startproc
215 @ args = 0, pretend = 0, frame = 0
216 @ frame_needed = 0, uses_anonymous_args = 0
217 @ link register save eliminated.
1298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Return the FLASH BOR level */
1299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** return (uint8_t)(*(__IO uint8_t *)(OPTCR_BYTE0_ADDRESS) & (uint8_t)0x0C);
218 .loc 1 1299 3 view .LVU39
219 .loc 1 1299 10 is_stmt 0 view .LVU40
220 0000 024B ldr r3, .L19
221 0002 187D ldrb r0, [r3, #20] @ zero_extendqisi2
1300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
222 .loc 1 1300 1 view .LVU41
223 0004 00F00C00 and r0, r0, #12
224 0008 7047 bx lr
225 .L20:
226 000a 00BF .align 2
227 .L19:
228 000c 003C0240 .word 1073888256
229 .cfi_endproc
230 .LFE154:
232 .section .text.FLASH_OB_EnableWRP,"ax",%progbits
233 .align 1
234 .syntax unified
235 .thumb
236 .thumb_func
237 .fpu fpv4-sp-d16
239 FLASH_OB_EnableWRP:
240 .LVL6:
241 .LFB144:
1028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
242 .loc 1 1028 1 is_stmt 1 view -0
243 .cfi_startproc
244 @ args = 0, pretend = 0, frame = 0
245 @ frame_needed = 0, uses_anonymous_args = 0
1028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
246 .loc 1 1028 1 is_stmt 0 view .LVU43
247 0000 10B5 push {r4, lr}
248 .LCFI0:
249 .cfi_def_cfa_offset 8
250 .cfi_offset 4, -8
ARM GAS /tmp/ccOuuMVv.s page 28
251 .cfi_offset 14, -4
252 0002 0446 mov r4, r0
1029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
253 .loc 1 1029 3 is_stmt 1 view .LVU44
254 .LVL7:
1032:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks));
255 .loc 1 1032 3 view .LVU45
1033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
256 .loc 1 1033 3 view .LVU46
1036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
257 .loc 1 1036 3 view .LVU47
1036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
258 .loc 1 1036 12 is_stmt 0 view .LVU48
259 0004 4CF25030 movw r0, #50000
260 .LVL8:
1036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
261 .loc 1 1036 12 view .LVU49
262 0008 FFF7FEFF bl FLASH_WaitForLastOperation
263 .LVL9:
1038:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
264 .loc 1 1038 3 is_stmt 1 view .LVU50
1038:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
265 .loc 1 1038 6 is_stmt 0 view .LVU51
266 000c 28B9 cbnz r0, .L22
1040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
267 .loc 1 1040 5 is_stmt 1 view .LVU52
1040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
268 .loc 1 1040 43 is_stmt 0 view .LVU53
269 000e 034A ldr r2, .L24
270 0010 D38A ldrh r3, [r2, #22]
271 0012 9BB2 uxth r3, r3
272 0014 23EA0404 bic r4, r3, r4
273 .LVL10:
1040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
274 .loc 1 1040 43 view .LVU54
275 0018 D482 strh r4, [r2, #22] @ movhi
276 .L22:
1043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
277 .loc 1 1043 3 is_stmt 1 view .LVU55
1044:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
278 .loc 1 1044 1 is_stmt 0 view .LVU56
279 001a 10BD pop {r4, pc}
280 .L25:
281 .align 2
282 .L24:
283 001c 003C0240 .word 1073888256
284 .cfi_endproc
285 .LFE144:
287 .section .text.FLASH_OB_DisableWRP,"ax",%progbits
288 .align 1
289 .syntax unified
290 .thumb
291 .thumb_func
292 .fpu fpv4-sp-d16
294 FLASH_OB_DisableWRP:
295 .LVL11:
296 .LFB145:
ARM GAS /tmp/ccOuuMVv.s page 29
1064:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
297 .loc 1 1064 1 is_stmt 1 view -0
298 .cfi_startproc
299 @ args = 0, pretend = 0, frame = 0
300 @ frame_needed = 0, uses_anonymous_args = 0
1064:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
301 .loc 1 1064 1 is_stmt 0 view .LVU58
302 0000 10B5 push {r4, lr}
303 .LCFI1:
304 .cfi_def_cfa_offset 8
305 .cfi_offset 4, -8
306 .cfi_offset 14, -4
307 0002 0446 mov r4, r0
1065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
308 .loc 1 1065 3 is_stmt 1 view .LVU59
309 .LVL12:
1068:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks));
310 .loc 1 1068 3 view .LVU60
1069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
311 .loc 1 1069 3 view .LVU61
1072:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
312 .loc 1 1072 3 view .LVU62
1072:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
313 .loc 1 1072 12 is_stmt 0 view .LVU63
314 0004 4CF25030 movw r0, #50000
315 .LVL13:
1072:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
316 .loc 1 1072 12 view .LVU64
317 0008 FFF7FEFF bl FLASH_WaitForLastOperation
318 .LVL14:
1074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
319 .loc 1 1074 3 is_stmt 1 view .LVU65
1074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
320 .loc 1 1074 6 is_stmt 0 view .LVU66
321 000c 28B9 cbnz r0, .L27
1076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
322 .loc 1 1076 5 is_stmt 1 view .LVU67
1076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
323 .loc 1 1076 43 is_stmt 0 view .LVU68
324 000e 034A ldr r2, .L29
325 0010 D38A ldrh r3, [r2, #22]
326 0012 9BB2 uxth r3, r3
1076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
327 .loc 1 1076 46 view .LVU69
328 0014 A4B2 uxth r4, r4
329 .LVL15:
1076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
330 .loc 1 1076 43 view .LVU70
331 0016 1C43 orrs r4, r4, r3
332 0018 D482 strh r4, [r2, #22] @ movhi
333 .L27:
1079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
334 .loc 1 1079 3 is_stmt 1 view .LVU71
1080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #endif /* STM32F40xxx || STM32F41xxx || STM32F401xx || STM32F410xx || STM32F411xE || STM32F446xx ||
335 .loc 1 1080 1 is_stmt 0 view .LVU72
336 001a 10BD pop {r4, pc}
337 .L30:
ARM GAS /tmp/ccOuuMVv.s page 30
338 .align 2
339 .L29:
340 001c 003C0240 .word 1073888256
341 .cfi_endproc
342 .LFE145:
344 .section .text.FLASH_OB_RDP_LevelConfig,"ax",%progbits
345 .align 1
346 .syntax unified
347 .thumb
348 .thumb_func
349 .fpu fpv4-sp-d16
351 FLASH_OB_RDP_LevelConfig:
352 .LVL16:
353 .LFB148:
1158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
354 .loc 1 1158 1 is_stmt 1 view -0
355 .cfi_startproc
356 @ args = 0, pretend = 0, frame = 0
357 @ frame_needed = 0, uses_anonymous_args = 0
1158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
358 .loc 1 1158 1 is_stmt 0 view .LVU74
359 0000 10B5 push {r4, lr}
360 .LCFI2:
361 .cfi_def_cfa_offset 8
362 .cfi_offset 4, -8
363 .cfi_offset 14, -4
364 0002 0446 mov r4, r0
1159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
365 .loc 1 1159 3 is_stmt 1 view .LVU75
366 .LVL17:
1162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
367 .loc 1 1162 3 view .LVU76
1165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
368 .loc 1 1165 3 view .LVU77
1165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
369 .loc 1 1165 12 is_stmt 0 view .LVU78
370 0004 4CF25030 movw r0, #50000
371 .LVL18:
1165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
372 .loc 1 1165 12 view .LVU79
373 0008 FFF7FEFF bl FLASH_WaitForLastOperation
374 .LVL19:
1167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
375 .loc 1 1167 3 is_stmt 1 view .LVU80
1167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
376 .loc 1 1167 6 is_stmt 0 view .LVU81
377 000c 08B9 cbnz r0, .L32
1169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
378 .loc 1 1169 5 is_stmt 1 view .LVU82
1169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
379 .loc 1 1169 42 is_stmt 0 view .LVU83
380 000e 014B ldr r3, .L34
381 0010 5C75 strb r4, [r3, #21]
382 .L32:
1172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
383 .loc 1 1172 3 is_stmt 1 view .LVU84
1173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
ARM GAS /tmp/ccOuuMVv.s page 31
384 .loc 1 1173 1 is_stmt 0 view .LVU85
385 0012 10BD pop {r4, pc}
386 .L35:
387 .align 2
388 .L34:
389 0014 003C0240 .word 1073888256
390 .cfi_endproc
391 .LFE148:
393 .section .text.FLASH_OB_UserConfig,"ax",%progbits
394 .align 1
395 .syntax unified
396 .thumb
397 .thumb_func
398 .fpu fpv4-sp-d16
400 FLASH_OB_UserConfig:
401 .LVL20:
402 .LFB149:
1192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** uint8_t optiontmp;
403 .loc 1 1192 1 is_stmt 1 view -0
404 .cfi_startproc
405 @ args = 0, pretend = 0, frame = 0
406 @ frame_needed = 0, uses_anonymous_args = 0
1192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** uint8_t optiontmp;
407 .loc 1 1192 1 is_stmt 0 view .LVU87
408 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
409 .LCFI3:
410 .cfi_def_cfa_offset 24
411 .cfi_offset 3, -24
412 .cfi_offset 4, -20
413 .cfi_offset 5, -16
414 .cfi_offset 6, -12
415 .cfi_offset 7, -8
416 .cfi_offset 14, -4
417 0002 0446 mov r4, r0
418 0004 0E46 mov r6, r1
419 0006 1546 mov r5, r2
1193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
420 .loc 1 1193 3 is_stmt 1 view .LVU88
1194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
421 .loc 1 1194 3 view .LVU89
422 .LVL21:
1197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OB_STOP_SOURCE(Stop));
423 .loc 1 1197 3 view .LVU90
1198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_OB_STDBY_SOURCE(Stdby));
424 .loc 1 1198 3 view .LVU91
1199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
425 .loc 1 1199 3 view .LVU92
1202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
426 .loc 1 1202 3 view .LVU93
1202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
427 .loc 1 1202 12 is_stmt 0 view .LVU94
428 0008 4CF25030 movw r0, #50000
429 .LVL22:
1202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
430 .loc 1 1202 12 view .LVU95
431 000c FFF7FEFF bl FLASH_WaitForLastOperation
432 .LVL23:
ARM GAS /tmp/ccOuuMVv.s page 32
1204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
433 .loc 1 1204 3 is_stmt 1 view .LVU96
1204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
434 .loc 1 1204 6 is_stmt 0 view .LVU97
435 0010 48B9 cbnz r0, .L37
1207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
436 .loc 1 1207 5 is_stmt 1 view .LVU98
1207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
437 .loc 1 1207 66 is_stmt 0 view .LVU99
438 0012 054F ldr r7, .L39
439 0014 3B7D ldrb r3, [r7, #20] @ zero_extendqisi2
1207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
440 .loc 1 1207 15 view .LVU100
441 0016 03F01F03 and r3, r3, #31
442 .LVL24:
1210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
443 .loc 1 1210 5 is_stmt 1 view .LVU101
1210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
444 .loc 1 1210 69 is_stmt 0 view .LVU102
445 001a 43EA0601 orr r1, r3, r6
1210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
446 .loc 1 1210 51 view .LVU103
447 001e 41EA0502 orr r2, r1, r5
1210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
448 .loc 1 1210 42 view .LVU104
449 0022 2243 orrs r2, r2, r4
450 0024 3A75 strb r2, [r7, #20]
451 .LVL25:
452 .L37:
1213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
453 .loc 1 1213 3 is_stmt 1 view .LVU105
1214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
454 .loc 1 1214 1 is_stmt 0 view .LVU106
455 0026 F8BD pop {r3, r4, r5, r6, r7, pc}
456 .L40:
457 .align 2
458 .L39:
459 0028 003C0240 .word 1073888256
460 .cfi_endproc
461 .LFE149:
463 .section .text.FLASH_OB_EnablePCROP,"ax",%progbits
464 .align 1
465 .syntax unified
466 .thumb
467 .thumb_func
468 .fpu fpv4-sp-d16
470 FLASH_OB_EnablePCROP:
471 .LVL26:
472 .LFB146:
1097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
473 .loc 1 1097 1 is_stmt 1 view -0
474 .cfi_startproc
475 @ args = 0, pretend = 0, frame = 0
476 @ frame_needed = 0, uses_anonymous_args = 0
1097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
477 .loc 1 1097 1 is_stmt 0 view .LVU108
478 0000 10B5 push {r4, lr}
ARM GAS /tmp/ccOuuMVv.s page 33
479 .LCFI4:
480 .cfi_def_cfa_offset 8
481 .cfi_offset 4, -8
482 .cfi_offset 14, -4
483 0002 0446 mov r4, r0
1098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
484 .loc 1 1098 3 is_stmt 1 view .LVU109
485 .LVL27:
1101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
486 .loc 1 1101 3 view .LVU110
1104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
487 .loc 1 1104 3 view .LVU111
1104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
488 .loc 1 1104 12 is_stmt 0 view .LVU112
489 0004 4CF25030 movw r0, #50000
490 .LVL28:
1104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
491 .loc 1 1104 12 view .LVU113
492 0008 FFF7FEFF bl FLASH_WaitForLastOperation
493 .LVL29:
1106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
494 .loc 1 1106 3 is_stmt 1 view .LVU114
1106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
495 .loc 1 1106 6 is_stmt 0 view .LVU115
496 000c 28B9 cbnz r0, .L42
1108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
497 .loc 1 1108 5 is_stmt 1 view .LVU116
1108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
498 .loc 1 1108 43 is_stmt 0 view .LVU117
499 000e 034A ldr r2, .L44
500 0010 D38A ldrh r3, [r2, #22]
501 0012 9BB2 uxth r3, r3
1108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
502 .loc 1 1108 46 view .LVU118
503 0014 A4B2 uxth r4, r4
504 .LVL30:
1108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
505 .loc 1 1108 43 view .LVU119
506 0016 1C43 orrs r4, r4, r3
507 0018 D482 strh r4, [r2, #22] @ movhi
508 .L42:
1111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
509 .loc 1 1111 3 is_stmt 1 view .LVU120
1112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
510 .loc 1 1112 1 is_stmt 0 view .LVU121
511 001a 10BD pop {r4, pc}
512 .L45:
513 .align 2
514 .L44:
515 001c 003C0240 .word 1073888256
516 .cfi_endproc
517 .LFE146:
519 .section .text.FLASH_OB_DisablePCROP,"ax",%progbits
520 .align 1
521 .syntax unified
522 .thumb
523 .thumb_func
ARM GAS /tmp/ccOuuMVv.s page 34
524 .fpu fpv4-sp-d16
526 FLASH_OB_DisablePCROP:
527 .LVL31:
528 .LFB147:
1125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
529 .loc 1 1125 1 is_stmt 1 view -0
530 .cfi_startproc
531 @ args = 0, pretend = 0, frame = 0
532 @ frame_needed = 0, uses_anonymous_args = 0
1125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
533 .loc 1 1125 1 is_stmt 0 view .LVU123
534 0000 10B5 push {r4, lr}
535 .LCFI5:
536 .cfi_def_cfa_offset 8
537 .cfi_offset 4, -8
538 .cfi_offset 14, -4
539 0002 0446 mov r4, r0
1126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
540 .loc 1 1126 3 is_stmt 1 view .LVU124
541 .LVL32:
1129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
542 .loc 1 1129 3 view .LVU125
1132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
543 .loc 1 1132 3 view .LVU126
1132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
544 .loc 1 1132 12 is_stmt 0 view .LVU127
545 0004 4CF25030 movw r0, #50000
546 .LVL33:
1132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
547 .loc 1 1132 12 view .LVU128
548 0008 FFF7FEFF bl FLASH_WaitForLastOperation
549 .LVL34:
1134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
550 .loc 1 1134 3 is_stmt 1 view .LVU129
1134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
551 .loc 1 1134 6 is_stmt 0 view .LVU130
552 000c 28B9 cbnz r0, .L47
1136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
553 .loc 1 1136 5 is_stmt 1 view .LVU131
1136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
554 .loc 1 1136 43 is_stmt 0 view .LVU132
555 000e 034A ldr r2, .L49
556 0010 D38A ldrh r3, [r2, #22]
557 0012 9BB2 uxth r3, r3
558 0014 23EA0404 bic r4, r3, r4
559 .LVL35:
1136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
560 .loc 1 1136 43 view .LVU133
561 0018 D482 strh r4, [r2, #22] @ movhi
562 .L47:
1139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
563 .loc 1 1139 3 is_stmt 1 view .LVU134
1141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #endif /* STM32F401xC || STM32F401xE || STM32F411xE || STM32F446xx || STM32F412Zx || STM32F412Vx ||
564 .loc 1 1141 1 is_stmt 0 view .LVU135
565 001a 10BD pop {r4, pc}
566 .L50:
567 .align 2
ARM GAS /tmp/ccOuuMVv.s page 35
568 .L49:
569 001c 003C0240 .word 1073888256
570 .cfi_endproc
571 .LFE147:
573 .section .text.HAL_FLASHEx_OBProgram,"ax",%progbits
574 .align 1
575 .global HAL_FLASHEx_OBProgram
576 .syntax unified
577 .thumb
578 .thumb_func
579 .fpu fpv4-sp-d16
581 HAL_FLASHEx_OBProgram:
582 .LVL36:
583 .LFB136:
282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
584 .loc 1 282 1 is_stmt 1 view -0
585 .cfi_startproc
586 @ args = 0, pretend = 0, frame = 0
587 @ frame_needed = 0, uses_anonymous_args = 0
283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
588 .loc 1 283 3 view .LVU137
286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
589 .loc 1 286 3 view .LVU138
286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
590 .loc 1 286 3 view .LVU139
591 0000 1F4B ldr r3, .L68
592 0002 1B7E ldrb r3, [r3, #24] @ zero_extendqisi2
593 0004 012B cmp r3, #1
594 0006 38D0 beq .L58
282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
595 .loc 1 282 1 is_stmt 0 discriminator 2 view .LVU140
596 0008 10B5 push {r4, lr}
597 .LCFI6:
598 .cfi_def_cfa_offset 8
599 .cfi_offset 4, -8
600 .cfi_offset 14, -4
601 000a 0446 mov r4, r0
286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
602 .loc 1 286 3 is_stmt 1 discriminator 2 view .LVU141
603 000c 1C4B ldr r3, .L68
604 000e 0122 movs r2, #1
605 0010 1A76 strb r2, [r3, #24]
286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
606 .loc 1 286 3 discriminator 2 view .LVU142
289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
607 .loc 1 289 3 discriminator 2 view .LVU143
292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
608 .loc 1 292 3 discriminator 2 view .LVU144
292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
609 .loc 1 292 15 is_stmt 0 discriminator 2 view .LVU145
610 0012 0368 ldr r3, [r0]
292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
611 .loc 1 292 6 discriminator 2 view .LVU146
612 0014 13F0010F tst r3, #1
613 0018 0CD0 beq .L59
294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (pOBInit->WRPState == OB_WRPSTATE_ENABLE)
614 .loc 1 294 5 is_stmt 1 view .LVU147
ARM GAS /tmp/ccOuuMVv.s page 36
295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
615 .loc 1 295 5 view .LVU148
295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
616 .loc 1 295 16 is_stmt 0 view .LVU149
617 001a 4368 ldr r3, [r0, #4]
295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
618 .loc 1 295 8 view .LVU150
619 001c 9342 cmp r3, r2
620 001e 04D0 beq .L64
303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
621 .loc 1 303 7 is_stmt 1 view .LVU151
303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
622 .loc 1 303 16 is_stmt 0 view .LVU152
623 0020 C168 ldr r1, [r0, #12]
624 0022 8068 ldr r0, [r0, #8]
625 .LVL37:
303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
626 .loc 1 303 16 view .LVU153
627 0024 FFF7FEFF bl FLASH_OB_DisableWRP
628 .LVL38:
303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
629 .loc 1 303 16 view .LVU154
630 0028 05E0 b .L53
631 .LVL39:
632 .L64:
298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
633 .loc 1 298 7 is_stmt 1 view .LVU155
298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
634 .loc 1 298 16 is_stmt 0 view .LVU156
635 002a C168 ldr r1, [r0, #12]
636 002c 8068 ldr r0, [r0, #8]
637 .LVL40:
298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
638 .loc 1 298 16 view .LVU157
639 002e FFF7FEFF bl FLASH_OB_EnableWRP
640 .LVL41:
298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
641 .loc 1 298 16 view .LVU158
642 0032 00E0 b .L53
643 .LVL42:
644 .L59:
283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
645 .loc 1 283 21 view .LVU159
646 0034 0120 movs r0, #1
647 .LVL43:
648 .L53:
308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
649 .loc 1 308 3 is_stmt 1 view .LVU160
308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
650 .loc 1 308 15 is_stmt 0 view .LVU161
651 0036 2368 ldr r3, [r4]
308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
652 .loc 1 308 6 view .LVU162
653 0038 13F0020F tst r3, #2
654 003c 0BD1 bne .L65
655 .L55:
314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
ARM GAS /tmp/ccOuuMVv.s page 37
656 .loc 1 314 3 is_stmt 1 view .LVU163
314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
657 .loc 1 314 15 is_stmt 0 view .LVU164
658 003e 2368 ldr r3, [r4]
314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
659 .loc 1 314 6 view .LVU165
660 0040 13F0040F tst r3, #4
661 0044 0BD1 bne .L66
662 .L56:
322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
663 .loc 1 322 3 is_stmt 1 view .LVU166
322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
664 .loc 1 322 15 is_stmt 0 view .LVU167
665 0046 2368 ldr r3, [r4]
322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
666 .loc 1 322 6 view .LVU168
667 0048 13F0080F tst r3, #8
668 004c 11D1 bne .L67
669 .L57:
328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
670 .loc 1 328 3 is_stmt 1 view .LVU169
328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
671 .loc 1 328 3 view .LVU170
672 004e 0C4B ldr r3, .L68
673 0050 0022 movs r2, #0
674 0052 1A76 strb r2, [r3, #24]
328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
675 .loc 1 328 3 view .LVU171
330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
676 .loc 1 330 3 view .LVU172
331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
677 .loc 1 331 1 is_stmt 0 view .LVU173
678 0054 10BD pop {r4, pc}
679 .LVL44:
680 .L65:
310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
681 .loc 1 310 5 is_stmt 1 view .LVU174
310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
682 .loc 1 310 14 is_stmt 0 view .LVU175
683 0056 207C ldrb r0, [r4, #16] @ zero_extendqisi2
684 .LVL45:
310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
685 .loc 1 310 14 view .LVU176
686 0058 FFF7FEFF bl FLASH_OB_RDP_LevelConfig
687 .LVL46:
310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
688 .loc 1 310 14 view .LVU177
689 005c EFE7 b .L55
690 .L66:
316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pOBInit->USERConfig & OB_STOP_NO_RST,
691 .loc 1 316 5 is_stmt 1 view .LVU178
316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pOBInit->USERConfig & OB_STOP_NO_RST,
692 .loc 1 316 41 is_stmt 0 view .LVU179
693 005e 207E ldrb r0, [r4, #24] @ zero_extendqisi2
694 .LVL47:
316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pOBInit->USERConfig & OB_STOP_NO_RST,
695 .loc 1 316 14 view .LVU180
ARM GAS /tmp/ccOuuMVv.s page 38
696 0060 00F08002 and r2, r0, #128
697 0064 00F04001 and r1, r0, #64
698 0068 00F02000 and r0, r0, #32
699 006c FFF7FEFF bl FLASH_OB_UserConfig
700 .LVL48:
316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pOBInit->USERConfig & OB_STOP_NO_RST,
701 .loc 1 316 14 view .LVU181
702 0070 E9E7 b .L56
703 .L67:
324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
704 .loc 1 324 5 is_stmt 1 view .LVU182
324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
705 .loc 1 324 14 is_stmt 0 view .LVU183
706 0072 207D ldrb r0, [r4, #20] @ zero_extendqisi2
707 .LVL49:
324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
708 .loc 1 324 14 view .LVU184
709 0074 FFF7FEFF bl FLASH_OB_BOR_LevelConfig
710 .LVL50:
324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
711 .loc 1 324 14 view .LVU185
712 0078 E9E7 b .L57
713 .LVL51:
714 .L58:
715 .LCFI7:
716 .cfi_def_cfa_offset 0
717 .cfi_restore 4
718 .cfi_restore 14
286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
719 .loc 1 286 3 view .LVU186
720 007a 0220 movs r0, #2
721 .LVL52:
331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
722 .loc 1 331 1 view .LVU187
723 007c 7047 bx lr
724 .L69:
725 007e 00BF .align 2
726 .L68:
727 0080 00000000 .word pFlash
728 .cfi_endproc
729 .LFE136:
731 .section .text.HAL_FLASHEx_OBGetConfig,"ax",%progbits
732 .align 1
733 .global HAL_FLASHEx_OBGetConfig
734 .syntax unified
735 .thumb
736 .thumb_func
737 .fpu fpv4-sp-d16
739 HAL_FLASHEx_OBGetConfig:
740 .LVL53:
741 .LFB137:
341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pOBInit->OptionType = OPTIONBYTE_WRP | OPTIONBYTE_RDP | OPTIONBYTE_USER | OPTIONBYTE_BOR;
742 .loc 1 341 1 is_stmt 1 view -0
743 .cfi_startproc
744 @ args = 0, pretend = 0, frame = 0
745 @ frame_needed = 0, uses_anonymous_args = 0
341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pOBInit->OptionType = OPTIONBYTE_WRP | OPTIONBYTE_RDP | OPTIONBYTE_USER | OPTIONBYTE_BOR;
ARM GAS /tmp/ccOuuMVv.s page 39
746 .loc 1 341 1 is_stmt 0 view .LVU189
747 0000 10B5 push {r4, lr}
748 .LCFI8:
749 .cfi_def_cfa_offset 8
750 .cfi_offset 4, -8
751 .cfi_offset 14, -4
752 0002 0446 mov r4, r0
342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
753 .loc 1 342 3 is_stmt 1 view .LVU190
342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
754 .loc 1 342 23 is_stmt 0 view .LVU191
755 0004 0F23 movs r3, #15
756 0006 0360 str r3, [r0]
345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
757 .loc 1 345 3 is_stmt 1 view .LVU192
345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
758 .loc 1 345 34 is_stmt 0 view .LVU193
759 0008 FFF7FEFF bl FLASH_OB_GetWRP
760 .LVL54:
345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
761 .loc 1 345 22 view .LVU194
762 000c A060 str r0, [r4, #8]
348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
763 .loc 1 348 3 is_stmt 1 view .LVU195
348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
764 .loc 1 348 33 is_stmt 0 view .LVU196
765 000e FFF7FEFF bl FLASH_OB_GetRDP
766 .LVL55:
348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
767 .loc 1 348 21 view .LVU197
768 0012 2061 str r0, [r4, #16]
351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
769 .loc 1 351 3 is_stmt 1 view .LVU198
351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
770 .loc 1 351 34 is_stmt 0 view .LVU199
771 0014 FFF7FEFF bl FLASH_OB_GetUser
772 .LVL56:
351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
773 .loc 1 351 23 view .LVU200
774 0018 2076 strb r0, [r4, #24]
354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
775 .loc 1 354 3 is_stmt 1 view .LVU201
354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
776 .loc 1 354 33 is_stmt 0 view .LVU202
777 001a FFF7FEFF bl FLASH_OB_GetBOR
778 .LVL57:
354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
779 .loc 1 354 21 view .LVU203
780 001e 6061 str r0, [r4, #20]
355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
781 .loc 1 355 1 view .LVU204
782 0020 10BD pop {r4, pc}
355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
783 .loc 1 355 1 view .LVU205
784 .cfi_endproc
785 .LFE137:
787 .section .text.HAL_FLASHEx_AdvOBProgram,"ax",%progbits
ARM GAS /tmp/ccOuuMVv.s page 40
788 .align 1
789 .global HAL_FLASHEx_AdvOBProgram
790 .syntax unified
791 .thumb
792 .thumb_func
793 .fpu fpv4-sp-d16
795 HAL_FLASHEx_AdvOBProgram:
796 .LVL58:
797 .LFB138:
370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
798 .loc 1 370 1 is_stmt 1 view -0
799 .cfi_startproc
800 @ args = 0, pretend = 0, frame = 0
801 @ frame_needed = 0, uses_anonymous_args = 0
370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_ERROR;
802 .loc 1 370 1 is_stmt 0 view .LVU207
803 0000 08B5 push {r3, lr}
804 .LCFI9:
805 .cfi_def_cfa_offset 8
806 .cfi_offset 3, -8
807 .cfi_offset 14, -4
371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
808 .loc 1 371 3 is_stmt 1 view .LVU208
809 .LVL59:
374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
810 .loc 1 374 3 view .LVU209
377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
811 .loc 1 377 3 view .LVU210
377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
812 .loc 1 377 19 is_stmt 0 view .LVU211
813 0002 0368 ldr r3, [r0]
377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
814 .loc 1 377 6 view .LVU212
815 0004 13F0010F tst r3, #1
816 0008 0AD0 beq .L75
380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if ((pAdvOBInit->PCROPState) == OB_PCROP_STATE_ENABLE)
817 .loc 1 380 5 is_stmt 1 view .LVU213
381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
818 .loc 1 381 5 view .LVU214
381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
819 .loc 1 381 20 is_stmt 0 view .LVU215
820 000a 4368 ldr r3, [r0, #4]
381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
821 .loc 1 381 8 view .LVU216
822 000c 012B cmp r3, #1
823 000e 03D0 beq .L77
399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #else /* STM32F427xx || STM32F437xx || STM32F429xx|| STM32F439xx || STM32F469xx || STM32F479xx */
824 .loc 1 399 7 is_stmt 1 view .LVU217
399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #else /* STM32F427xx || STM32F437xx || STM32F429xx|| STM32F439xx || STM32F469xx || STM32F479xx */
825 .loc 1 399 16 is_stmt 0 view .LVU218
826 0010 0089 ldrh r0, [r0, #8]
827 .LVL60:
399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #else /* STM32F427xx || STM32F437xx || STM32F429xx|| STM32F439xx || STM32F469xx || STM32F479xx */
828 .loc 1 399 16 view .LVU219
829 0012 FFF7FEFF bl FLASH_OB_DisablePCROP
830 .LVL61:
399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #else /* STM32F427xx || STM32F437xx || STM32F429xx|| STM32F439xx || STM32F469xx || STM32F479xx */
ARM GAS /tmp/ccOuuMVv.s page 41
831 .loc 1 399 16 view .LVU220
832 0016 04E0 b .L73
833 .LVL62:
834 .L77:
387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #else /* STM32F427xx || STM32F437xx || STM32F429xx|| STM32F439xx || STM32F469xx || STM32F479xx */
835 .loc 1 387 7 is_stmt 1 view .LVU221
387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #else /* STM32F427xx || STM32F437xx || STM32F429xx|| STM32F439xx || STM32F469xx || STM32F479xx */
836 .loc 1 387 16 is_stmt 0 view .LVU222
837 0018 0089 ldrh r0, [r0, #8]
838 .LVL63:
387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #else /* STM32F427xx || STM32F437xx || STM32F429xx|| STM32F439xx || STM32F469xx || STM32F479xx */
839 .loc 1 387 16 view .LVU223
840 001a FFF7FEFF bl FLASH_OB_EnablePCROP
841 .LVL64:
387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #else /* STM32F427xx || STM32F437xx || STM32F429xx|| STM32F439xx || STM32F469xx || STM32F479xx */
842 .loc 1 387 16 view .LVU224
843 001e 00E0 b .L73
844 .LVL65:
845 .L75:
371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
846 .loc 1 371 21 view .LVU225
847 0020 0120 movs r0, #1
848 .LVL66:
849 .L73:
415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
850 .loc 1 415 3 is_stmt 1 view .LVU226
416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
851 .loc 1 416 1 is_stmt 0 view .LVU227
852 0022 08BD pop {r3, pc}
853 .cfi_endproc
854 .LFE138:
856 .section .text.HAL_FLASHEx_AdvOBGetConfig,"ax",%progbits
857 .align 1
858 .global HAL_FLASHEx_AdvOBGetConfig
859 .syntax unified
860 .thumb
861 .thumb_func
862 .fpu fpv4-sp-d16
864 HAL_FLASHEx_AdvOBGetConfig:
865 .LVL67:
866 .LFB139:
426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #if defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F410Tx) || defined(STM32F410Cx) ||
867 .loc 1 426 1 is_stmt 1 view -0
868 .cfi_startproc
869 @ args = 0, pretend = 0, frame = 0
870 @ frame_needed = 0, uses_anonymous_args = 0
871 @ link register save eliminated.
431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #else /* STM32F427xx || STM32F437xx || STM32F429xx|| STM32F439xx || STM32F469xx || STM32F479xx */
872 .loc 1 431 3 view .LVU229
431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #else /* STM32F427xx || STM32F437xx || STM32F429xx|| STM32F439xx || STM32F469xx || STM32F479xx */
873 .loc 1 431 26 is_stmt 0 view .LVU230
874 0000 014B ldr r3, .L79
875 0002 DB8A ldrh r3, [r3, #22]
431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #else /* STM32F427xx || STM32F437xx || STM32F429xx|| STM32F439xx || STM32F469xx || STM32F479xx */
876 .loc 1 431 23 view .LVU231
877 0004 0381 strh r3, [r0, #8] @ movhi
443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
ARM GAS /tmp/ccOuuMVv.s page 42
878 .loc 1 443 1 view .LVU232
879 0006 7047 bx lr
880 .L80:
881 .align 2
882 .L79:
883 0008 003C0240 .word 1073888256
884 .cfi_endproc
885 .LFE139:
887 .section .text.HAL_FLASHEx_OB_SelectPCROP,"ax",%progbits
888 .align 1
889 .global HAL_FLASHEx_OB_SelectPCROP
890 .syntax unified
891 .thumb
892 .thumb_func
893 .fpu fpv4-sp-d16
895 HAL_FLASHEx_OB_SelectPCROP:
896 .LFB140:
458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** uint8_t optiontmp;
897 .loc 1 458 1 is_stmt 1 view -0
898 .cfi_startproc
899 @ args = 0, pretend = 0, frame = 0
900 @ frame_needed = 0, uses_anonymous_args = 0
901 @ link register save eliminated.
459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
902 .loc 1 459 3 view .LVU234
462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
903 .loc 1 462 3 view .LVU235
462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
904 .loc 1 462 64 is_stmt 0 view .LVU236
905 0000 034A ldr r2, .L82
906 0002 D37D ldrb r3, [r2, #23] @ zero_extendqisi2
907 .LVL68:
465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
908 .loc 1 465 3 is_stmt 1 view .LVU237
465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
909 .loc 1 465 42 is_stmt 0 view .LVU238
910 0004 43F08003 orr r3, r3, #128
911 .LVL69:
465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
912 .loc 1 465 40 view .LVU239
913 0008 D375 strb r3, [r2, #23]
467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
914 .loc 1 467 3 is_stmt 1 view .LVU240
468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
915 .loc 1 468 1 is_stmt 0 view .LVU241
916 000a 0020 movs r0, #0
917 000c 7047 bx lr
918 .L83:
919 000e 00BF .align 2
920 .L82:
921 0010 003C0240 .word 1073888256
922 .cfi_endproc
923 .LFE140:
925 .section .text.HAL_FLASHEx_OB_DeSelectPCROP,"ax",%progbits
926 .align 1
927 .global HAL_FLASHEx_OB_DeSelectPCROP
928 .syntax unified
ARM GAS /tmp/ccOuuMVv.s page 43
929 .thumb
930 .thumb_func
931 .fpu fpv4-sp-d16
933 HAL_FLASHEx_OB_DeSelectPCROP:
934 .LFB141:
483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** uint8_t optiontmp;
935 .loc 1 483 1 is_stmt 1 view -0
936 .cfi_startproc
937 @ args = 0, pretend = 0, frame = 0
938 @ frame_needed = 0, uses_anonymous_args = 0
939 @ link register save eliminated.
484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
940 .loc 1 484 3 view .LVU243
487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
941 .loc 1 487 3 view .LVU244
487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
942 .loc 1 487 64 is_stmt 0 view .LVU245
943 0000 034A ldr r2, .L85
944 0002 D37D ldrb r3, [r2, #23] @ zero_extendqisi2
487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
945 .loc 1 487 13 view .LVU246
946 0004 03F07F03 and r3, r3, #127
947 .LVL70:
490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
948 .loc 1 490 3 is_stmt 1 view .LVU247
490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
949 .loc 1 490 40 is_stmt 0 view .LVU248
950 0008 D375 strb r3, [r2, #23]
492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
951 .loc 1 492 3 is_stmt 1 view .LVU249
493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** #endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F401xC || STM32F401xE ||
952 .loc 1 493 1 is_stmt 0 view .LVU250
953 000a 0020 movs r0, #0
954 000c 7047 bx lr
955 .L86:
956 000e 00BF .align 2
957 .L85:
958 0010 003C0240 .word 1073888256
959 .cfi_endproc
960 .LFE141:
962 .section .text.FLASH_Erase_Sector,"ax",%progbits
963 .align 1
964 .global FLASH_Erase_Sector
965 .syntax unified
966 .thumb
967 .thumb_func
968 .fpu fpv4-sp-d16
970 FLASH_Erase_Sector:
971 .LVL71:
972 .LFB143:
978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** uint32_t tmp_psize = 0U;
973 .loc 1 978 1 is_stmt 1 view -0
974 .cfi_startproc
975 @ args = 0, pretend = 0, frame = 0
976 @ frame_needed = 0, uses_anonymous_args = 0
977 @ link register save eliminated.
979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
ARM GAS /tmp/ccOuuMVv.s page 44
978 .loc 1 979 3 view .LVU252
982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** assert_param(IS_VOLTAGERANGE(VoltageRange));
979 .loc 1 982 3 view .LVU253
983:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
980 .loc 1 983 3 view .LVU254
985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
981 .loc 1 985 3 view .LVU255
985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
982 .loc 1 985 6 is_stmt 0 view .LVU256
983 0000 49B1 cbz r1, .L89
989:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
984 .loc 1 989 8 is_stmt 1 view .LVU257
989:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
985 .loc 1 989 11 is_stmt 0 view .LVU258
986 0002 0129 cmp r1, #1
987 0004 21D0 beq .L90
993:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
988 .loc 1 993 8 is_stmt 1 view .LVU259
993:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
989 .loc 1 993 11 is_stmt 0 view .LVU260
990 0006 0229 cmp r1, #2
991 0008 02D0 beq .L92
999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
992 .loc 1 999 15 view .LVU261
993 000a 4FF4407C mov ip, #768
994 000e 04E0 b .L88
995 .L92:
995:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
996 .loc 1 995 15 view .LVU262
997 0010 4FF4007C mov ip, #512
998 0014 01E0 b .L88
999 .L89:
987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1000 .loc 1 987 15 view .LVU263
1001 0016 4FF0000C mov ip, #0
1002 .L88:
1003 .LVL72:
1003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH->CR |= tmp_psize;
1004 .loc 1 1003 3 is_stmt 1 view .LVU264
1005 001a 0D4B ldr r3, .L93
1006 001c 1969 ldr r1, [r3, #16]
1007 .LVL73:
1003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH->CR |= tmp_psize;
1008 .loc 1 1003 3 is_stmt 0 view .LVU265
1009 001e 21F44071 bic r1, r1, #768
1010 0022 1961 str r1, [r3, #16]
1004:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_SNB);
1011 .loc 1 1004 3 is_stmt 1 view .LVU266
1004:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_SNB);
1012 .loc 1 1004 13 is_stmt 0 view .LVU267
1013 0024 1A69 ldr r2, [r3, #16]
1014 0026 42EA0C02 orr r2, r2, ip
1015 002a 1A61 str r2, [r3, #16]
1005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH->CR |= FLASH_CR_SER | (Sector << FLASH_CR_SNB_Pos);
1016 .loc 1 1005 3 is_stmt 1 view .LVU268
1017 002c 1A69 ldr r2, [r3, #16]
1018 002e 22F0F802 bic r2, r2, #248
ARM GAS /tmp/ccOuuMVv.s page 45
1019 0032 1A61 str r2, [r3, #16]
1006:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH->CR |= FLASH_CR_STRT;
1020 .loc 1 1006 3 view .LVU269
1006:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH->CR |= FLASH_CR_STRT;
1021 .loc 1 1006 13 is_stmt 0 view .LVU270
1022 0034 1A69 ldr r2, [r3, #16]
1023 0036 42EAC000 orr r0, r2, r0, lsl #3
1024 .LVL74:
1006:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH->CR |= FLASH_CR_STRT;
1025 .loc 1 1006 13 view .LVU271
1026 003a 40F00200 orr r0, r0, #2
1027 003e 1861 str r0, [r3, #16]
1007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1028 .loc 1 1007 3 is_stmt 1 view .LVU272
1007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1029 .loc 1 1007 13 is_stmt 0 view .LVU273
1030 0040 1A69 ldr r2, [r3, #16]
1031 0042 42F48032 orr r2, r2, #65536
1032 0046 1A61 str r2, [r3, #16]
1008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1033 .loc 1 1008 1 view .LVU274
1034 0048 7047 bx lr
1035 .LVL75:
1036 .L90:
991:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1037 .loc 1 991 15 view .LVU275
1038 004a 4FF4807C mov ip, #256
1039 004e E4E7 b .L88
1040 .L94:
1041 .align 2
1042 .L93:
1043 0050 003C0240 .word 1073888256
1044 .cfi_endproc
1045 .LFE143:
1047 .section .text.HAL_FLASHEx_Erase_IT,"ax",%progbits
1048 .align 1
1049 .global HAL_FLASHEx_Erase_IT
1050 .syntax unified
1051 .thumb
1052 .thumb_func
1053 .fpu fpv4-sp-d16
1055 HAL_FLASHEx_Erase_IT:
1056 .LVL76:
1057 .LFB135:
232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
1058 .loc 1 232 1 is_stmt 1 view -0
1059 .cfi_startproc
1060 @ args = 0, pretend = 0, frame = 0
1061 @ frame_needed = 0, uses_anonymous_args = 0
232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
1062 .loc 1 232 1 is_stmt 0 view .LVU277
1063 0000 08B5 push {r3, lr}
1064 .LCFI10:
1065 .cfi_def_cfa_offset 8
1066 .cfi_offset 3, -8
1067 .cfi_offset 14, -4
233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
ARM GAS /tmp/ccOuuMVv.s page 46
1068 .loc 1 233 3 is_stmt 1 view .LVU278
1069 .LVL77:
236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1070 .loc 1 236 3 view .LVU279
239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1071 .loc 1 239 3 view .LVU280
1072 0002 134B ldr r3, .L100
1073 0004 1A69 ldr r2, [r3, #16]
1074 0006 42F08072 orr r2, r2, #16777216
1075 000a 1A61 str r2, [r3, #16]
242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1076 .loc 1 242 3 view .LVU281
1077 000c 1A69 ldr r2, [r3, #16]
1078 000e 42F00072 orr r2, r2, #33554432
1079 0012 1A61 str r2, [r3, #16]
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR);
1080 .loc 1 245 3 view .LVU282
1081 0014 F322 movs r2, #243
1082 0016 DA60 str r2, [r3, #12]
248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1083 .loc 1 248 3 view .LVU283
248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1084 .loc 1 248 17 is_stmt 0 view .LVU284
1085 0018 0368 ldr r3, [r0]
248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1086 .loc 1 248 6 view .LVU285
1087 001a 012B cmp r3, #1
1088 001c 0DD0 beq .L99
260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1089 .loc 1 260 5 is_stmt 1 view .LVU286
262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pFlash.NbSectorsToErase = pEraseInit->NbSectors;
1090 .loc 1 262 5 view .LVU287
262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pFlash.NbSectorsToErase = pEraseInit->NbSectors;
1091 .loc 1 262 29 is_stmt 0 view .LVU288
1092 001e 0D4B ldr r3, .L100+4
1093 0020 0122 movs r2, #1
1094 0022 1A70 strb r2, [r3]
263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pFlash.Sector = pEraseInit->Sector;
1095 .loc 1 263 5 is_stmt 1 view .LVU289
263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pFlash.Sector = pEraseInit->Sector;
1096 .loc 1 263 41 is_stmt 0 view .LVU290
1097 0024 C268 ldr r2, [r0, #12]
263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pFlash.Sector = pEraseInit->Sector;
1098 .loc 1 263 29 view .LVU291
1099 0026 5A60 str r2, [r3, #4]
264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pFlash.VoltageForErase = (uint8_t)pEraseInit->VoltageRange;
1100 .loc 1 264 5 is_stmt 1 view .LVU292
264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pFlash.VoltageForErase = (uint8_t)pEraseInit->VoltageRange;
1101 .loc 1 264 31 is_stmt 0 view .LVU293
1102 0028 8268 ldr r2, [r0, #8]
264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pFlash.VoltageForErase = (uint8_t)pEraseInit->VoltageRange;
1103 .loc 1 264 19 view .LVU294
1104 002a DA60 str r2, [r3, #12]
265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1105 .loc 1 265 5 is_stmt 1 view .LVU295
265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1106 .loc 1 265 30 is_stmt 0 view .LVU296
ARM GAS /tmp/ccOuuMVv.s page 47
1107 002c 017C ldrb r1, [r0, #16] @ zero_extendqisi2
265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1108 .loc 1 265 28 view .LVU297
1109 002e 1972 strb r1, [r3, #8]
268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1110 .loc 1 268 5 is_stmt 1 view .LVU298
1111 0030 8068 ldr r0, [r0, #8]
1112 .LVL78:
268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1113 .loc 1 268 5 is_stmt 0 view .LVU299
1114 0032 FFF7FEFF bl FLASH_Erase_Sector
1115 .LVL79:
1116 .L97:
271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1117 .loc 1 271 3 is_stmt 1 view .LVU300
272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1118 .loc 1 272 1 is_stmt 0 view .LVU301
1119 0036 0020 movs r0, #0
1120 0038 08BD pop {r3, pc}
1121 .LVL80:
1122 .L99:
251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pFlash.Bank = pEraseInit->Banks;
1123 .loc 1 251 5 is_stmt 1 view .LVU302
251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** pFlash.Bank = pEraseInit->Banks;
1124 .loc 1 251 29 is_stmt 0 view .LVU303
1125 003a 064B ldr r3, .L100+4
1126 003c 0222 movs r2, #2
1127 003e 1A70 strb r2, [r3]
252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH_MassErase((uint8_t) pEraseInit->VoltageRange, pEraseInit->Banks);
1128 .loc 1 252 5 is_stmt 1 view .LVU304
252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH_MassErase((uint8_t) pEraseInit->VoltageRange, pEraseInit->Banks);
1129 .loc 1 252 29 is_stmt 0 view .LVU305
1130 0040 4268 ldr r2, [r0, #4]
252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** FLASH_MassErase((uint8_t) pEraseInit->VoltageRange, pEraseInit->Banks);
1131 .loc 1 252 17 view .LVU306
1132 0042 1A61 str r2, [r3, #16]
253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1133 .loc 1 253 5 is_stmt 1 view .LVU307
1134 0044 4168 ldr r1, [r0, #4]
1135 0046 007C ldrb r0, [r0, #16] @ zero_extendqisi2
1136 .LVL81:
253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1137 .loc 1 253 5 is_stmt 0 view .LVU308
1138 0048 FFF7FEFF bl FLASH_MassErase
1139 .LVL82:
1140 004c F3E7 b .L97
1141 .L101:
1142 004e 00BF .align 2
1143 .L100:
1144 0050 003C0240 .word 1073888256
1145 0054 00000000 .word pFlash
1146 .cfi_endproc
1147 .LFE135:
1149 .section .text.FLASH_FlushCaches,"ax",%progbits
1150 .align 1
1151 .global FLASH_FlushCaches
1152 .syntax unified
ARM GAS /tmp/ccOuuMVv.s page 48
1153 .thumb
1154 .thumb_func
1155 .fpu fpv4-sp-d16
1157 FLASH_FlushCaches:
1158 .LFB155:
1301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /**
1303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @brief Flush the instruction and data caches
1304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** * @retval None
1305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** */
1306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** void FLASH_FlushCaches(void)
1307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1159 .loc 1 1307 1 is_stmt 1 view -0
1160 .cfi_startproc
1161 @ args = 0, pretend = 0, frame = 0
1162 @ frame_needed = 0, uses_anonymous_args = 0
1163 @ link register save eliminated.
1308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Flush instruction cache */
1309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (READ_BIT(FLASH->ACR, FLASH_ACR_ICEN) != RESET)
1164 .loc 1 1309 3 view .LVU310
1165 .loc 1 1309 7 is_stmt 0 view .LVU311
1166 0000 164B ldr r3, .L105
1167 0002 1B68 ldr r3, [r3]
1168 .loc 1 1309 6 view .LVU312
1169 0004 13F4007F tst r3, #512
1170 0008 10D0 beq .L103
1310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Disable instruction cache */
1312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** __HAL_FLASH_INSTRUCTION_CACHE_DISABLE();
1171 .loc 1 1312 5 is_stmt 1 view .LVU313
1172 000a 144B ldr r3, .L105
1173 000c 1A68 ldr r2, [r3]
1174 000e 22F40072 bic r2, r2, #512
1175 0012 1A60 str r2, [r3]
1313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Reset instruction cache */
1314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** __HAL_FLASH_INSTRUCTION_CACHE_RESET();
1176 .loc 1 1314 5 view .LVU314
1177 .loc 1 1314 5 view .LVU315
1178 0014 1A68 ldr r2, [r3]
1179 0016 42F40062 orr r2, r2, #2048
1180 001a 1A60 str r2, [r3]
1181 .loc 1 1314 5 view .LVU316
1182 001c 1A68 ldr r2, [r3]
1183 001e 22F40062 bic r2, r2, #2048
1184 0022 1A60 str r2, [r3]
1185 .loc 1 1314 5 view .LVU317
1315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Enable instruction cache */
1316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** __HAL_FLASH_INSTRUCTION_CACHE_ENABLE();
1186 .loc 1 1316 5 view .LVU318
1187 0024 1A68 ldr r2, [r3]
1188 0026 42F40072 orr r2, r2, #512
1189 002a 1A60 str r2, [r3]
1190 .L103:
1317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Flush data cache */
1320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** if (READ_BIT(FLASH->ACR, FLASH_ACR_DCEN) != RESET)
ARM GAS /tmp/ccOuuMVv.s page 49
1191 .loc 1 1320 3 view .LVU319
1192 .loc 1 1320 7 is_stmt 0 view .LVU320
1193 002c 0B4B ldr r3, .L105
1194 002e 1B68 ldr r3, [r3]
1195 .loc 1 1320 6 view .LVU321
1196 0030 13F4806F tst r3, #1024
1197 0034 10D0 beq .L102
1321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Disable data cache */
1323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** __HAL_FLASH_DATA_CACHE_DISABLE();
1198 .loc 1 1323 5 is_stmt 1 view .LVU322
1199 0036 094B ldr r3, .L105
1200 0038 1A68 ldr r2, [r3]
1201 003a 22F48062 bic r2, r2, #1024
1202 003e 1A60 str r2, [r3]
1324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Reset data cache */
1325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** __HAL_FLASH_DATA_CACHE_RESET();
1203 .loc 1 1325 5 view .LVU323
1204 .loc 1 1325 5 view .LVU324
1205 0040 1A68 ldr r2, [r3]
1206 0042 42F48052 orr r2, r2, #4096
1207 0046 1A60 str r2, [r3]
1208 .loc 1 1325 5 view .LVU325
1209 0048 1A68 ldr r2, [r3]
1210 004a 22F48052 bic r2, r2, #4096
1211 004e 1A60 str r2, [r3]
1212 .loc 1 1325 5 view .LVU326
1326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** /* Enable data cache */
1327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** __HAL_FLASH_DATA_CACHE_ENABLE();
1213 .loc 1 1327 5 view .LVU327
1214 0050 1A68 ldr r2, [r3]
1215 0052 42F48062 orr r2, r2, #1024
1216 0056 1A60 str r2, [r3]
1217 .L102:
1328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1218 .loc 1 1329 1 is_stmt 0 view .LVU328
1219 0058 7047 bx lr
1220 .L106:
1221 005a 00BF .align 2
1222 .L105:
1223 005c 003C0240 .word 1073888256
1224 .cfi_endproc
1225 .LFE155:
1227 .section .text.HAL_FLASHEx_Erase,"ax",%progbits
1228 .align 1
1229 .global HAL_FLASHEx_Erase
1230 .syntax unified
1231 .thumb
1232 .thumb_func
1233 .fpu fpv4-sp-d16
1235 HAL_FLASHEx_Erase:
1236 .LVL83:
1237 .LFB134:
161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status;
1238 .loc 1 161 1 is_stmt 1 view -0
1239 .cfi_startproc
ARM GAS /tmp/ccOuuMVv.s page 50
1240 @ args = 0, pretend = 0, frame = 0
1241 @ frame_needed = 0, uses_anonymous_args = 0
161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** HAL_StatusTypeDef status;
1242 .loc 1 161 1 is_stmt 0 view .LVU330
1243 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
1244 .LCFI11:
1245 .cfi_def_cfa_offset 24
1246 .cfi_offset 3, -24
1247 .cfi_offset 4, -20
1248 .cfi_offset 5, -16
1249 .cfi_offset 6, -12
1250 .cfi_offset 7, -8
1251 .cfi_offset 14, -4
162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** uint32_t index = 0U;
1252 .loc 1 162 3 is_stmt 1 view .LVU331
163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1253 .loc 1 163 3 view .LVU332
1254 .LVL84:
166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1255 .loc 1 166 3 view .LVU333
166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1256 .loc 1 166 3 view .LVU334
1257 0002 224B ldr r3, .L119
1258 0004 1B7E ldrb r3, [r3, #24] @ zero_extendqisi2
1259 0006 012B cmp r3, #1
1260 0008 3ED0 beq .L115
1261 000a 0446 mov r4, r0
1262 000c 0E46 mov r6, r1
166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1263 .loc 1 166 3 discriminator 2 view .LVU335
1264 000e 1F4B ldr r3, .L119
1265 0010 0122 movs r2, #1
1266 0012 1A76 strb r2, [r3, #24]
166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1267 .loc 1 166 3 discriminator 2 view .LVU336
169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1268 .loc 1 169 3 discriminator 2 view .LVU337
172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1269 .loc 1 172 3 discriminator 2 view .LVU338
172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1270 .loc 1 172 12 is_stmt 0 discriminator 2 view .LVU339
1271 0014 4CF25030 movw r0, #50000
1272 .LVL85:
172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1273 .loc 1 172 12 discriminator 2 view .LVU340
1274 0018 FFF7FEFF bl FLASH_WaitForLastOperation
1275 .LVL86:
174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1276 .loc 1 174 3 is_stmt 1 discriminator 2 view .LVU341
174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1277 .loc 1 174 6 is_stmt 0 discriminator 2 view .LVU342
1278 001c 0746 mov r7, r0
1279 001e 70BB cbnz r0, .L109
177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1280 .loc 1 177 5 is_stmt 1 view .LVU343
177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1281 .loc 1 177 18 is_stmt 0 view .LVU344
ARM GAS /tmp/ccOuuMVv.s page 51
1282 0020 4FF0FF33 mov r3, #-1
1283 0024 3360 str r3, [r6]
179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1284 .loc 1 179 5 is_stmt 1 view .LVU345
179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1285 .loc 1 179 19 is_stmt 0 view .LVU346
1286 0026 2368 ldr r3, [r4]
179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1287 .loc 1 179 8 view .LVU347
1288 0028 012B cmp r3, #1
1289 002a 16D0 beq .L117
193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1290 .loc 1 193 7 is_stmt 1 view .LVU348
196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1291 .loc 1 196 7 view .LVU349
196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1292 .loc 1 196 18 is_stmt 0 view .LVU350
1293 002c A568 ldr r5, [r4, #8]
1294 .LVL87:
1295 .L112:
196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1296 .loc 1 196 40 is_stmt 1 discriminator 1 view .LVU351
196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1297 .loc 1 196 59 is_stmt 0 discriminator 1 view .LVU352
1298 002e E368 ldr r3, [r4, #12]
196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1299 .loc 1 196 83 discriminator 1 view .LVU353
1300 0030 A268 ldr r2, [r4, #8]
196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1301 .loc 1 196 71 discriminator 1 view .LVU354
1302 0032 1344 add r3, r3, r2
196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1303 .loc 1 196 7 discriminator 1 view .LVU355
1304 0034 AB42 cmp r3, r5
1305 0036 20D9 bls .L111
198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1306 .loc 1 198 9 is_stmt 1 view .LVU356
1307 0038 217C ldrb r1, [r4, #16] @ zero_extendqisi2
1308 003a 2846 mov r0, r5
1309 003c FFF7FEFF bl FLASH_Erase_Sector
1310 .LVL88:
201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1311 .loc 1 201 9 view .LVU357
201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1312 .loc 1 201 18 is_stmt 0 view .LVU358
1313 0040 4CF25030 movw r0, #50000
1314 0044 FFF7FEFF bl FLASH_WaitForLastOperation
1315 .LVL89:
204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1316 .loc 1 204 9 is_stmt 1 view .LVU359
1317 0048 114A ldr r2, .L119+4
1318 004a 1369 ldr r3, [r2, #16]
1319 004c 23F0FA03 bic r3, r3, #250
1320 0050 1361 str r3, [r2, #16]
206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1321 .loc 1 206 9 view .LVU360
206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
ARM GAS /tmp/ccOuuMVv.s page 52
1322 .loc 1 206 12 is_stmt 0 view .LVU361
1323 0052 0746 mov r7, r0
1324 0054 80B9 cbnz r0, .L118
196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1325 .loc 1 196 94 is_stmt 1 discriminator 2 view .LVU362
196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1326 .loc 1 196 99 is_stmt 0 discriminator 2 view .LVU363
1327 0056 0135 adds r5, r5, #1
1328 .LVL90:
196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** {
1329 .loc 1 196 99 discriminator 2 view .LVU364
1330 0058 E9E7 b .L112
1331 .LVL91:
1332 .L117:
182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1333 .loc 1 182 7 is_stmt 1 view .LVU365
1334 005a 6168 ldr r1, [r4, #4]
1335 005c 207C ldrb r0, [r4, #16] @ zero_extendqisi2
1336 .LVL92:
182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1337 .loc 1 182 7 is_stmt 0 view .LVU366
1338 005e FFF7FEFF bl FLASH_MassErase
1339 .LVL93:
185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1340 .loc 1 185 7 is_stmt 1 view .LVU367
185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1341 .loc 1 185 16 is_stmt 0 view .LVU368
1342 0062 4CF25030 movw r0, #50000
1343 0066 FFF7FEFF bl FLASH_WaitForLastOperation
1344 .LVL94:
1345 006a 0746 mov r7, r0
1346 .LVL95:
188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1347 .loc 1 188 7 is_stmt 1 view .LVU369
188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1348 .loc 1 188 17 is_stmt 0 view .LVU370
1349 006c 084A ldr r2, .L119+4
1350 006e 1369 ldr r3, [r2, #16]
1351 0070 23F00403 bic r3, r3, #4
1352 0074 1361 str r3, [r2, #16]
1353 0076 00E0 b .L111
1354 .LVL96:
1355 .L118:
209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** break;
1356 .loc 1 209 11 is_stmt 1 view .LVU371
209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** break;
1357 .loc 1 209 24 is_stmt 0 view .LVU372
1358 0078 3560 str r5, [r6]
210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1359 .loc 1 210 11 is_stmt 1 view .LVU373
1360 .LVL97:
1361 .L111:
215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1362 .loc 1 215 5 view .LVU374
1363 007a FFF7FEFF bl FLASH_FlushCaches
1364 .LVL98:
1365 .L109:
ARM GAS /tmp/ccOuuMVv.s page 53
219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1366 .loc 1 219 3 view .LVU375
219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1367 .loc 1 219 3 view .LVU376
1368 007e 034B ldr r3, .L119
1369 0080 0022 movs r2, #0
1370 0082 1A76 strb r2, [r3, #24]
219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1371 .loc 1 219 3 view .LVU377
221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c **** }
1372 .loc 1 221 3 view .LVU378
1373 .LVL99:
1374 .L108:
222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1375 .loc 1 222 1 is_stmt 0 view .LVU379
1376 0084 3846 mov r0, r7
1377 0086 F8BD pop {r3, r4, r5, r6, r7, pc}
1378 .LVL100:
1379 .L115:
166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ****
1380 .loc 1 166 3 view .LVU380
1381 0088 0227 movs r7, #2
1382 008a FBE7 b .L108
1383 .L120:
1384 .align 2
1385 .L119:
1386 008c 00000000 .word pFlash
1387 0090 003C0240 .word 1073888256
1388 .cfi_endproc
1389 .LFE134:
1391 .text
1392 .Letext0:
1393 .file 2 "/usr/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h"
1394 .file 3 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h"
1395 .file 4 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h"
1396 .file 5 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h"
1397 .file 6 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h"
1398 .file 7 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h"
ARM GAS /tmp/ccOuuMVv.s page 54
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32f4xx_hal_flash_ex.c
/tmp/ccOuuMVv.s:18 .text.FLASH_MassErase:0000000000000000 $t
/tmp/ccOuuMVv.s:25 .text.FLASH_MassErase:0000000000000000 FLASH_MassErase
/tmp/ccOuuMVv.s:59 .text.FLASH_MassErase:0000000000000020 $d
/tmp/ccOuuMVv.s:64 .text.FLASH_OB_BOR_LevelConfig:0000000000000000 $t
/tmp/ccOuuMVv.s:70 .text.FLASH_OB_BOR_LevelConfig:0000000000000000 FLASH_OB_BOR_LevelConfig
/tmp/ccOuuMVv.s:99 .text.FLASH_OB_BOR_LevelConfig:0000000000000014 $d
/tmp/ccOuuMVv.s:104 .text.FLASH_OB_GetUser:0000000000000000 $t
/tmp/ccOuuMVv.s:110 .text.FLASH_OB_GetUser:0000000000000000 FLASH_OB_GetUser
/tmp/ccOuuMVv.s:127 .text.FLASH_OB_GetUser:000000000000000c $d
/tmp/ccOuuMVv.s:132 .text.FLASH_OB_GetWRP:0000000000000000 $t
/tmp/ccOuuMVv.s:138 .text.FLASH_OB_GetWRP:0000000000000000 FLASH_OB_GetWRP
/tmp/ccOuuMVv.s:155 .text.FLASH_OB_GetWRP:0000000000000008 $d
/tmp/ccOuuMVv.s:160 .text.FLASH_OB_GetRDP:0000000000000000 $t
/tmp/ccOuuMVv.s:166 .text.FLASH_OB_GetRDP:0000000000000000 FLASH_OB_GetRDP
/tmp/ccOuuMVv.s:200 .text.FLASH_OB_GetRDP:0000000000000018 $d
/tmp/ccOuuMVv.s:205 .text.FLASH_OB_GetBOR:0000000000000000 $t
/tmp/ccOuuMVv.s:211 .text.FLASH_OB_GetBOR:0000000000000000 FLASH_OB_GetBOR
/tmp/ccOuuMVv.s:228 .text.FLASH_OB_GetBOR:000000000000000c $d
/tmp/ccOuuMVv.s:233 .text.FLASH_OB_EnableWRP:0000000000000000 $t
/tmp/ccOuuMVv.s:239 .text.FLASH_OB_EnableWRP:0000000000000000 FLASH_OB_EnableWRP
/tmp/ccOuuMVv.s:283 .text.FLASH_OB_EnableWRP:000000000000001c $d
/tmp/ccOuuMVv.s:288 .text.FLASH_OB_DisableWRP:0000000000000000 $t
/tmp/ccOuuMVv.s:294 .text.FLASH_OB_DisableWRP:0000000000000000 FLASH_OB_DisableWRP
/tmp/ccOuuMVv.s:340 .text.FLASH_OB_DisableWRP:000000000000001c $d
/tmp/ccOuuMVv.s:345 .text.FLASH_OB_RDP_LevelConfig:0000000000000000 $t
/tmp/ccOuuMVv.s:351 .text.FLASH_OB_RDP_LevelConfig:0000000000000000 FLASH_OB_RDP_LevelConfig
/tmp/ccOuuMVv.s:389 .text.FLASH_OB_RDP_LevelConfig:0000000000000014 $d
/tmp/ccOuuMVv.s:394 .text.FLASH_OB_UserConfig:0000000000000000 $t
/tmp/ccOuuMVv.s:400 .text.FLASH_OB_UserConfig:0000000000000000 FLASH_OB_UserConfig
/tmp/ccOuuMVv.s:459 .text.FLASH_OB_UserConfig:0000000000000028 $d
/tmp/ccOuuMVv.s:464 .text.FLASH_OB_EnablePCROP:0000000000000000 $t
/tmp/ccOuuMVv.s:470 .text.FLASH_OB_EnablePCROP:0000000000000000 FLASH_OB_EnablePCROP
/tmp/ccOuuMVv.s:515 .text.FLASH_OB_EnablePCROP:000000000000001c $d
/tmp/ccOuuMVv.s:520 .text.FLASH_OB_DisablePCROP:0000000000000000 $t
/tmp/ccOuuMVv.s:526 .text.FLASH_OB_DisablePCROP:0000000000000000 FLASH_OB_DisablePCROP
/tmp/ccOuuMVv.s:569 .text.FLASH_OB_DisablePCROP:000000000000001c $d
/tmp/ccOuuMVv.s:574 .text.HAL_FLASHEx_OBProgram:0000000000000000 $t
/tmp/ccOuuMVv.s:581 .text.HAL_FLASHEx_OBProgram:0000000000000000 HAL_FLASHEx_OBProgram
/tmp/ccOuuMVv.s:727 .text.HAL_FLASHEx_OBProgram:0000000000000080 $d
/tmp/ccOuuMVv.s:732 .text.HAL_FLASHEx_OBGetConfig:0000000000000000 $t
/tmp/ccOuuMVv.s:739 .text.HAL_FLASHEx_OBGetConfig:0000000000000000 HAL_FLASHEx_OBGetConfig
/tmp/ccOuuMVv.s:788 .text.HAL_FLASHEx_AdvOBProgram:0000000000000000 $t
/tmp/ccOuuMVv.s:795 .text.HAL_FLASHEx_AdvOBProgram:0000000000000000 HAL_FLASHEx_AdvOBProgram
/tmp/ccOuuMVv.s:857 .text.HAL_FLASHEx_AdvOBGetConfig:0000000000000000 $t
/tmp/ccOuuMVv.s:864 .text.HAL_FLASHEx_AdvOBGetConfig:0000000000000000 HAL_FLASHEx_AdvOBGetConfig
/tmp/ccOuuMVv.s:883 .text.HAL_FLASHEx_AdvOBGetConfig:0000000000000008 $d
/tmp/ccOuuMVv.s:888 .text.HAL_FLASHEx_OB_SelectPCROP:0000000000000000 $t
/tmp/ccOuuMVv.s:895 .text.HAL_FLASHEx_OB_SelectPCROP:0000000000000000 HAL_FLASHEx_OB_SelectPCROP
/tmp/ccOuuMVv.s:921 .text.HAL_FLASHEx_OB_SelectPCROP:0000000000000010 $d
/tmp/ccOuuMVv.s:926 .text.HAL_FLASHEx_OB_DeSelectPCROP:0000000000000000 $t
/tmp/ccOuuMVv.s:933 .text.HAL_FLASHEx_OB_DeSelectPCROP:0000000000000000 HAL_FLASHEx_OB_DeSelectPCROP
/tmp/ccOuuMVv.s:958 .text.HAL_FLASHEx_OB_DeSelectPCROP:0000000000000010 $d
/tmp/ccOuuMVv.s:963 .text.FLASH_Erase_Sector:0000000000000000 $t
/tmp/ccOuuMVv.s:970 .text.FLASH_Erase_Sector:0000000000000000 FLASH_Erase_Sector
/tmp/ccOuuMVv.s:1043 .text.FLASH_Erase_Sector:0000000000000050 $d
ARM GAS /tmp/ccOuuMVv.s page 55
/tmp/ccOuuMVv.s:1048 .text.HAL_FLASHEx_Erase_IT:0000000000000000 $t
/tmp/ccOuuMVv.s:1055 .text.HAL_FLASHEx_Erase_IT:0000000000000000 HAL_FLASHEx_Erase_IT
/tmp/ccOuuMVv.s:1144 .text.HAL_FLASHEx_Erase_IT:0000000000000050 $d
/tmp/ccOuuMVv.s:1150 .text.FLASH_FlushCaches:0000000000000000 $t
/tmp/ccOuuMVv.s:1157 .text.FLASH_FlushCaches:0000000000000000 FLASH_FlushCaches
/tmp/ccOuuMVv.s:1223 .text.FLASH_FlushCaches:000000000000005c $d
/tmp/ccOuuMVv.s:1228 .text.HAL_FLASHEx_Erase:0000000000000000 $t
/tmp/ccOuuMVv.s:1235 .text.HAL_FLASHEx_Erase:0000000000000000 HAL_FLASHEx_Erase
/tmp/ccOuuMVv.s:1386 .text.HAL_FLASHEx_Erase:000000000000008c $d
UNDEFINED SYMBOLS
FLASH_WaitForLastOperation
pFlash