Files
bassofono/codice/build/stm32g4xx_hal_flash_ex.lst
2021-07-03 18:17:05 +02:00

3412 lines
219 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/cc6KszU6.s page 1
1 .cpu cortex-m4
2 .eabi_attribute 27, 1
3 .eabi_attribute 28, 1
4 .eabi_attribute 23, 1
5 .eabi_attribute 24, 1
6 .eabi_attribute 25, 1
7 .eabi_attribute 26, 1
8 .eabi_attribute 30, 2
9 .eabi_attribute 34, 1
10 .eabi_attribute 18, 4
11 .file "stm32g4xx_hal_flash_ex.c"
12 .text
13 .Ltext0:
14 .cfi_sections .debug_frame
15 .section .text.HAL_FLASHEx_Erase,"ax",%progbits
16 .align 1
17 .p2align 2,,3
18 .global HAL_FLASHEx_Erase
19 .syntax unified
20 .thumb
21 .thumb_func
22 .fpu fpv4-sp-d16
24 HAL_FLASHEx_Erase:
25 .LFB329:
26 .file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c"
1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** ******************************************************************************
3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @file stm32g4xx_hal_flash_ex.c
4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @author MCD Application Team
5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Extended FLASH HAL module driver.
6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This file provides firmware functions to manage the following
7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * functionalities of the FLASH extended peripheral:
8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * + Extended programming operations functions
9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *
10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** @verbatim
11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** ==============================================================================
12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** ##### Flash Extended features #####
13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** ==============================================================================
14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** [..] Comparing to other previous devices, the FLASH interface for STM32G4xx
16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** devices contains the following additional features
17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (+) Capacity up to 512 Kbytes with dual bank architecture supporting read-while-write
19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** capability (RWW)
20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (+) Dual bank 64-bits memory organization with possibility of single bank 128-bits
21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (+) Protected areas including WRP, PCROP and Securable memory
22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** ##### How to use this driver #####
24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** ==============================================================================
25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** [..] This driver provides functions to configure and program the FLASH memory
26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** of all STM32G4xx devices. It includes
27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (#) Flash Memory Erase functions:
28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (++) Lock and Unlock the FLASH interface using HAL_FLASH_Unlock() and
29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_FLASH_Lock() functions
30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (++) Erase function: Erase pages, or mass erase banks
31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (++) There are two modes of erase :
32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (+++) Polling Mode using HAL_FLASHEx_Erase()
ARM GAS /tmp/cc6KszU6.s page 2
33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (+++) Interrupt Mode using HAL_FLASHEx_Erase_IT()
34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (#) Option Bytes Programming function: Use HAL_FLASHEx_OBProgram() to:
36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (++) Configure the write protection areas (WRP)
37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (++) Set the Read protection Level (RDP)
38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (++) Program the user Option Bytes
39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (++) Configure the Proprietary Code ReadOut protection areas (PCROP)
40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (++) Configure the Securable memory areas
41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (++) Configure the Boot Lock
42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (#) Get Option Bytes Configuration function: Use HAL_FLASHEx_OBGetConfig() to:
44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (++) Get the configuration of write protection areas (WRP)
45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (++) Get the level of read protection (RDP)
46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (++) Get the value of the user Option Bytes
47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (++) Get the configuration of Proprietary Code ReadOut Protection areas (PCROP)
48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (++) Get the configuration of Securable memory areas
49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (++) Get the status of Boot Lock
50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (#) Activation of Securable memory area: Use HAL_FLASHEx_EnableSecMemProtection()
52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (++) Deny the access to securable memory area
53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (#) Enable or disable debugger: Use HAL_FLASHEx_EnableDebugger() or
55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_FLASHEx_DisableDebugger()
56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** @endverbatim
58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** ******************************************************************************
59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @attention
60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *
61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * <h2><center>&copy; COPYRIGHT(c) 2019 STMicroelectronics</center></h2>
62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *
63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This software component is licensed by ST under BSD 3-Clause license,
64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * the "License"; You may not use this file except in compliance with the
65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * License. You may obtain a copy of the License at:
66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * opensource.org/licenses/BSD-3-Clause
67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *
68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** ******************************************************************************
69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Includes ------------------------------------------------------------------*/
72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #include "stm32g4xx_hal.h"
73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** @addtogroup STM32G4xx_HAL_Driver
75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @{
76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** @defgroup FLASHEx FLASHEx
79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief FLASH Extended HAL module driver
80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @{
81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #ifdef HAL_FLASH_MODULE_ENABLED
84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Private typedef -----------------------------------------------------------*/
86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Private define ------------------------------------------------------------*/
87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Private macro -------------------------------------------------------------*/
88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Private variables ---------------------------------------------------------*/
89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Private function prototypes -----------------------------------------------*/
ARM GAS /tmp/cc6KszU6.s page 3
90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Private_Functions FLASHEx Private Functions
91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @{
92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static void FLASH_MassErase(uint32_t Banks);
94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_WRPConfig(uint32_t WRPArea, uint32_t WRPStartOffset, uint32_t WRD
95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_RDPConfig(uint32_t RDPLevel);
96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_UserConfig(uint32_t UserType, uint32_t UserConfig);
97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_PCROPConfig(uint32_t PCROPConfig, uint32_t PCROPStartAddr, uint32
98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static void FLASH_OB_GetWRP(uint32_t WRPArea, uint32_t *WRPStartOffset, uint32_t *WRDP
99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetRDP(void);
100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetUser(void);
101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static void FLASH_OB_GetPCROP(uint32_t *PCROPConfig, uint32_t *PCROPStartAddr, uint32_
102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_SecMemConfig(uint32_t SecMemBank, uint32_t SecMemSize);
103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static void FLASH_OB_GetSecMem(uint32_t SecMemBank, uint32_t *SecMemSize);
104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_BootLockConfig(uint32_t BootLockConfig);
105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetBootLock(void);
106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @}
109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Exported functions -------------------------------------------------------*/
112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions FLASHEx Exported Functions
113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @{
114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** @defgroup FLASHEx_Exported_Functions_Group1 Extended IO operation functions
117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Extended IO operation functions
118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *
119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** @verbatim
120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** ===============================================================================
121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** ##### Extended programming operation functions #####
122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** ===============================================================================
123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** [..]
124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** This subsection provides a set of functions allowing to manage the Extended FLASH
125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** programming operations Operations.
126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** @endverbatim
128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @{
129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Perform a mass erase or erase the specified FLASH memory pages.
132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param[in] pEraseInit pointer to an FLASH_EraseInitTypeDef structure that
133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * contains the configuration information for the erasing.
134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param[out] PageError pointer to variable that contains the configuration
135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * information on faulty page in case of error (0xFFFFFFFF means that all
136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * the pages have been correctly erased).
137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval HAL_Status
138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *PageError)
140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
27 .loc 1 140 0
28 .cfi_startproc
29 @ args = 0, pretend = 0, frame = 0
30 @ frame_needed = 0, uses_anonymous_args = 0
31 .LVL0:
32 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr}
ARM GAS /tmp/cc6KszU6.s page 4
33 .LCFI0:
34 .cfi_def_cfa_offset 32
35 .cfi_offset 4, -32
36 .cfi_offset 5, -28
37 .cfi_offset 6, -24
38 .cfi_offset 7, -20
39 .cfi_offset 8, -16
40 .cfi_offset 9, -12
41 .cfi_offset 10, -8
42 .cfi_offset 14, -4
141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status;
142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t page_index;
143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */
145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase));
146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Process Locked */
148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash);
43 .loc 1 148 0
44 0004 544F ldr r7, .L26
45 0006 3B78 ldrb r3, [r7] @ zero_extendqisi2
46 0008 012B cmp r3, #1
47 000a 78D0 beq .L16
48 000c 0546 mov r5, r0
49 .loc 1 148 0 is_stmt 0 discriminator 2
50 000e 0124 movs r4, #1
149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
51 .loc 1 151 0 is_stmt 1 discriminator 2
52 0010 4FF47A70 mov r0, #1000
53 .LVL1:
54 0014 8846 mov r8, r1
148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
55 .loc 1 148 0 discriminator 2
56 0016 3C70 strb r4, [r7]
57 .loc 1 151 0 discriminator 2
58 0018 FFF7FEFF bl FLASH_WaitForLastOperation
59 .LVL2:
152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (status == HAL_OK)
60 .loc 1 153 0 discriminator 2
61 001c 8246 mov r10, r0
62 001e 20B1 cbz r0, .L23
63 .LVL3:
64 .L3:
154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Deactivate the cache if they are activated to avoid data misbehavior */
158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(FLASH->ACR, FLASH_ACR_ICEN) != 0U)
159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Disable instruction cache */
161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_FLASH_INSTRUCTION_CACHE_DISABLE();
162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(FLASH->ACR, FLASH_ACR_DCEN) != 0U)
164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
ARM GAS /tmp/cc6KszU6.s page 5
165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Disable data cache */
166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_FLASH_DATA_CACHE_DISABLE();
167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_ICACHE_DCACHE_ENABLED;
168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_ICACHE_ENABLED;
172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (READ_BIT(FLASH->ACR, FLASH_ACR_DCEN) != 0U)
175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Disable data cache */
177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_FLASH_DATA_CACHE_DISABLE();
178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_DCACHE_ENABLED;
179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_DISABLED;
183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE)
186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Mass erase to be done */
188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_MassErase(pEraseInit->Banks);
189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK)
194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the MER1 and MER2 Bits */
195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, (FLASH_CR_MER1 | FLASH_CR_MER2));
196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #else
197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the MER1 Bit */
198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, (FLASH_CR_MER1));
199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /*Initialization of PageError variable*/
204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PageError = 0xFFFFFFFFU;
205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** for (page_index = pEraseInit->Page; page_index < (pEraseInit->Page + pEraseInit->NbPages); pa
207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_PageErase(page_index, pEraseInit->Banks);
209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* If the erase operation is completed, disable the PER Bit */
214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, (FLASH_CR_PER | FLASH_CR_PNB));
215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (status != HAL_OK)
217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* In case of error, stop erase procedure and return the faulty page */
219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PageError = page_index;
220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** break;
221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
ARM GAS /tmp/cc6KszU6.s page 6
222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Flush the caches to be sure of the data consistency */
226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_FlushCaches();
227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Process Unlocked */
230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
65 .loc 1 230 0
66 0020 0023 movs r3, #0
67 0022 3B70 strb r3, [r7]
231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return status;
233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
68 .loc 1 233 0
69 0024 5046 mov r0, r10
70 0026 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc}
71 .LVL4:
72 .L23:
158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
73 .loc 1 158 0
74 002a 4C4B ldr r3, .L26+4
155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
75 .loc 1 155 0
76 002c 7860 str r0, [r7, #4]
158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
77 .loc 1 158 0
78 002e 1A68 ldr r2, [r3]
79 0030 12F4007F tst r2, #512
161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
80 .loc 1 161 0
81 0034 1A68 ldr r2, [r3]
158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
82 .loc 1 158 0
83 0036 67D1 bne .L24
174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
84 .loc 1 174 0
85 0038 5205 lsls r2, r2, #21
86 003a 40F18B80 bpl .L7
177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_DCACHE_ENABLED;
87 .loc 1 177 0
88 003e 1A68 ldr r2, [r3]
178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
89 .loc 1 178 0
90 0040 0221 movs r1, #2
177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_DCACHE_ENABLED;
91 .loc 1 177 0
92 0042 22F48062 bic r2, r2, #1024
93 0046 1A60 str r2, [r3]
178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
94 .loc 1 178 0
95 0048 3977 strb r1, [r7, #28]
96 .L6:
185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
97 .loc 1 185 0
98 004a 2B68 ldr r3, [r5]
ARM GAS /tmp/cc6KszU6.s page 7
99 004c 012B cmp r3, #1
100 004e 68D0 beq .L25
204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
101 .loc 1 204 0
102 0050 4FF0FF33 mov r3, #-1
103 0054 C8F80030 str r3, [r8]
206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
104 .loc 1 206 0
105 0058 D5E90263 ldrd r6, r3, [r5, #8]
106 005c 3344 add r3, r3, r6
107 005e 9E42 cmp r6, r3
108 0060 27D2 bcs .L10
109 .LBB28:
110 .LBB29:
234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Perform a mass erase or erase the specified FLASH memory pages with interrupt enabled.
237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param pEraseInit pointer to an FLASH_EraseInitTypeDef structure that
238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * contains the configuration information for the erasing.
239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval HAL_Status
240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_Erase_IT(FLASH_EraseInitTypeDef *pEraseInit)
242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Process Locked */
246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash);
247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */
249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase));
250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Deactivate the cache if they are activated to avoid data misbehavior */
254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(FLASH->ACR, FLASH_ACR_ICEN) != 0U)
255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Disable instruction cache */
257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_FLASH_INSTRUCTION_CACHE_DISABLE();
258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(FLASH->ACR, FLASH_ACR_DCEN) != 0U)
260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Disable data cache */
262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_FLASH_DATA_CACHE_DISABLE();
263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_ICACHE_DCACHE_ENABLED;
264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_ICACHE_ENABLED;
268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (READ_BIT(FLASH->ACR, FLASH_ACR_DCEN) != 0U)
271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Disable data cache */
273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_FLASH_DATA_CACHE_DISABLE();
274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_DCACHE_ENABLED;
275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
ARM GAS /tmp/cc6KszU6.s page 8
277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_DISABLED;
279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Enable End of Operation and Error interrupts */
282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP | FLASH_IT_OPERR);
283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.Bank = pEraseInit->Banks;
285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE)
287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Mass erase to be done */
289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_MASS_ERASE;
290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_MassErase(pEraseInit->Banks);
291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Erase by page to be done */
295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PAGE_ERASE;
296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.NbPagesToErase = pEraseInit->NbPages;
297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.Page = pEraseInit->Page;
298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /*Erase 1st page and wait for IT */
300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_PageErase(pEraseInit->Page, pEraseInit->Banks);
301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return status;
304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Program Option bytes.
308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param pOBInit pointer to an FLASH_OBInitStruct structure that
309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * contains the configuration information for the programming.
310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note To configure any option bytes, the option lock bit OPTLOCK must be
311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * cleared with the call of HAL_FLASH_OB_Unlock() function.
312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note New option bytes configuration will be taken into account in two cases:
313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after an option bytes launch through the call of HAL_FLASH_OB_Launch()
314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after a power reset (BOR reset or exit from Standby/Shutdown modes)
315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval HAL_Status
316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_OBProgram(FLASH_OBProgramInitTypeDef *pOBInit)
318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */
322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OPTIONBYTE(pOBInit->OptionType));
323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Process Locked */
325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_LOCK(&pFlash);
326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Write protection configuration */
330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((pOBInit->OptionType & OPTIONBYTE_WRP) != 0U)
331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure of Write protection on the selected area */
333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (FLASH_OB_WRPConfig(pOBInit->WRPArea, pOBInit->WRPStartOffset, pOBInit->WRPEndOffset) != HAL
ARM GAS /tmp/cc6KszU6.s page 9
334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = HAL_ERROR;
336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Read protection configuration */
340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((pOBInit->OptionType & OPTIONBYTE_RDP) != 0U)
341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the Read protection level */
343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (FLASH_OB_RDPConfig(pOBInit->RDPLevel) != HAL_OK)
344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = HAL_ERROR;
346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* User Configuration */
350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((pOBInit->OptionType & OPTIONBYTE_USER) != 0U)
351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the user option bytes */
353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (FLASH_OB_UserConfig(pOBInit->USERType, pOBInit->USERConfig) != HAL_OK)
354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = HAL_ERROR;
356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* PCROP Configuration */
360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((pOBInit->OptionType & OPTIONBYTE_PCROP) != 0U)
361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (pOBInit->PCROPStartAddr != pOBInit->PCROPEndAddr)
363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the Proprietary code readout protection */
365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (FLASH_OB_PCROPConfig(pOBInit->PCROPConfig, pOBInit->PCROPStartAddr, pOBInit->PCROPEndAddr
366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = HAL_ERROR;
368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Securable memory Configuration */
373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((pOBInit->OptionType & OPTIONBYTE_SEC) != 0U)
374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the securable memory area */
376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (FLASH_OB_SecMemConfig(pOBInit->SecBank, pOBInit->SecSize) != HAL_OK)
377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = HAL_ERROR;
379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Boot Entry Point Configuration */
383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((pOBInit->OptionType & OPTIONBYTE_BOOT_LOCK) != 0U)
384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the boot unique entry point option */
386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (FLASH_OB_BootLockConfig(pOBInit->BootEntryPoint) != HAL_OK)
387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = HAL_ERROR;
389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
ARM GAS /tmp/cc6KszU6.s page 10
391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Process Unlocked */
393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_UNLOCK(&pFlash);
394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return status;
396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Get the Option bytes configuration.
400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param pOBInit pointer to an FLASH_OBInitStruct structure that contains the
401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * configuration information.
402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note The fields pOBInit->WRPArea and pOBInit->PCROPConfig should indicate
403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * which area is requested for the WRP and PCROP, else no information will be returned.
404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval None
405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit)
407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pOBInit->OptionType = (OPTIONBYTE_RDP | OPTIONBYTE_USER);
409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK)
411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((pOBInit->WRPArea == OB_WRPAREA_BANK1_AREAA) || (pOBInit->WRPArea == OB_WRPAREA_BANK1_AREAB)
412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (pOBInit->WRPArea == OB_WRPAREA_BANK2_AREAA) || (pOBInit->WRPArea == OB_WRPAREA_BANK2_AREAB))
413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #else
414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((pOBInit->WRPArea == OB_WRPAREA_BANK1_AREAA) || (pOBInit->WRPArea == OB_WRPAREA_BANK1_AREAB))
415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pOBInit->OptionType |= OPTIONBYTE_WRP;
418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get write protection on the selected area */
419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_OB_GetWRP(pOBInit->WRPArea, &(pOBInit->WRPStartOffset), &(pOBInit->WRPEndOffset));
420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get Read protection level */
423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pOBInit->RDPLevel = FLASH_OB_GetRDP();
424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get the user option bytes */
426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pOBInit->USERConfig = FLASH_OB_GetUser();
427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK)
429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((pOBInit->PCROPConfig == FLASH_BANK_1) || (pOBInit->PCROPConfig == FLASH_BANK_2))
430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #else
431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (pOBInit->PCROPConfig == FLASH_BANK_1)
432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pOBInit->OptionType |= OPTIONBYTE_PCROP;
435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get the Proprietary code readout protection */
436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_OB_GetPCROP(&(pOBInit->PCROPConfig), &(pOBInit->PCROPStartAddr), &(pOBInit->PCROPEndAddr)
437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pOBInit->OptionType |= OPTIONBYTE_BOOT_LOCK;
440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get the boot entry point */
442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pOBInit->BootEntryPoint = FLASH_OB_GetBootLock();
443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get the securable memory area configuration */
445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK)
446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((pOBInit->SecBank == FLASH_BANK_1) || (pOBInit->SecBank == FLASH_BANK_2))
447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #else
ARM GAS /tmp/cc6KszU6.s page 11
448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (pOBInit->SecBank == FLASH_BANK_1)
449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pOBInit->OptionType |= OPTIONBYTE_SEC;
452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_OB_GetSecMem(pOBInit->SecBank, &(pOBInit->SecSize));
453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Enable the FLASH Securable Memory protection.
458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param Bank: Bank to be protected
459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: Bank1 to be protected
461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: Bank2 to be protected (*)
462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: Bank1 and Bank2 to be protected (*)
463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note (*) availability depends on devices
464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval HAL Status
465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef HAL_FLASHEx_EnableSecMemProtection(uint32_t Bank)
467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK)
469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(FLASH->OPTR, FLASH_OPTR_DBANK) != 0U)
470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */
472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Bank));
473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Enable the Securable Memory Protection Bit for the bank 1 if requested */
475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((Bank & FLASH_BANK_1) != 0U)
476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_SEC_PROT1);
478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Enable the Securable Memory Protection Bit for the bank 2 if requested */
481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((Bank & FLASH_BANK_2) != 0U)
482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_SEC_PROT2);
484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_SEC_PROT1);
490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return HAL_OK;
493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Enable Debugger.
497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note After calling this API, flash interface allow debugger intrusion.
498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval None
499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** void HAL_FLASHEx_EnableDebugger(void)
501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH->ACR |= FLASH_ACR_DBG_SWEN;
503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
ARM GAS /tmp/cc6KszU6.s page 12
505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Disable Debugger.
508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note After calling this API, Debugger is disabled: it's no more possible to
509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * break, see CPU register, etc...
510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval None
511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** void HAL_FLASHEx_DisableDebugger(void)
513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH->ACR &= ~FLASH_ACR_DBG_SWEN;
515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @}
519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @}
523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Private functions ---------------------------------------------------------*/
526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /** @addtogroup FLASHEx_Private_Functions
528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @{
529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Mass erase of FLASH memory.
532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param Banks Banks to be erased.
533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: Bank1 to be erased
535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: Bank2 to be erased (*)
536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_BOTH: Bank1 and Bank2 to be erased (*)
537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note (*) availability depends on devices
538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval None
539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static void FLASH_MassErase(uint32_t Banks)
541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK)
543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(FLASH->OPTR, FLASH_OPTR_DBANK) != 0U)
544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */
547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK(Banks));
548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set the Mass Erase Bit for the bank 1 if requested */
550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((Banks & FLASH_BANK_1) != 0U)
551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_MER1);
553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK)
556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set the Mass Erase Bit for the bank 2 if requested */
557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((Banks & FLASH_BANK_2) != 0U)
558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_MER2);
560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
ARM GAS /tmp/cc6KszU6.s page 13
562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK)
564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, (FLASH_CR_MER1 | FLASH_CR_MER2));
567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Proceed to erase all sectors */
571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT);
572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Erase the specified FLASH memory page.
576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param Page FLASH page to erase.
577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter must be a value between 0 and (max number of pages in the bank - 1).
578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param Banks Bank where the page will be erased.
579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: Page in bank 1 to be erased
581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: Page in bank 2 to be erased (*)
582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note (*) availability depends on devices
583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval None
584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** void FLASH_PageErase(uint32_t Page, uint32_t Banks)
586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */
588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_PAGE(Page));
589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK)
591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(FLASH->OPTR, FLASH_OPTR_DBANK) == 0U)
592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_BKER);
594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK_EXCLUSIVE(Banks));
598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((Banks & FLASH_BANK_1) != 0U)
600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_BKER);
602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_BKER);
606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Proceed to erase the page */
611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->CR, FLASH_CR_PNB, ((Page & 0xFFU) << FLASH_CR_PNB_Pos));
111 .loc 1 611 0
112 0062 3E4C ldr r4, .L26+4
113 0064 4FEAC609 lsl r9, r6, #3
114 0068 05E0 b .L13
115 .LVL5:
116 .L12:
117 .LBE29:
ARM GAS /tmp/cc6KszU6.s page 14
118 .LBE28:
206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
119 .loc 1 206 0 discriminator 2
120 006a D5E90232 ldrd r3, r2, [r5, #8]
121 006e 0136 adds r6, r6, #1
122 .LVL6:
123 0070 1344 add r3, r3, r2
124 0072 B342 cmp r3, r6
125 0074 1DD9 bls .L10
126 .LVL7:
127 .L13:
128 .LBB31:
129 .LBB30:
130 .loc 1 611 0
131 0076 6369 ldr r3, [r4, #20]
132 0078 09F4FF62 and r2, r9, #2040
133 007c 23F4FC73 bic r3, r3, #504
134 0080 1343 orrs r3, r3, r2
135 0082 6361 str r3, [r4, #20]
612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_PER);
136 .loc 1 612 0
137 0084 6369 ldr r3, [r4, #20]
138 0086 43F00203 orr r3, r3, #2
139 008a 6361 str r3, [r4, #20]
613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT);
140 .loc 1 613 0
141 008c 6369 ldr r3, [r4, #20]
142 008e 43F48033 orr r3, r3, #65536
143 0092 6361 str r3, [r4, #20]
144 .LVL8:
145 .LBE30:
146 .LBE31:
211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
147 .loc 1 211 0
148 0094 4FF47A70 mov r0, #1000
149 0098 FFF7FEFF bl FLASH_WaitForLastOperation
150 .LVL9:
214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
151 .loc 1 214 0
152 009c 6369 ldr r3, [r4, #20]
153 009e 23F4FD73 bic r3, r3, #506
154 00a2 09F10809 add r9, r9, #8
155 00a6 6361 str r3, [r4, #20]
216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
156 .loc 1 216 0
157 00a8 0028 cmp r0, #0
158 00aa DED0 beq .L12
219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** break;
159 .loc 1 219 0
160 00ac C8F80060 str r6, [r8]
211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
161 .loc 1 211 0
162 00b0 8246 mov r10, r0
163 .LVL10:
164 .L10:
165 .LBB32:
166 .LBB33:
ARM GAS /tmp/cc6KszU6.s page 15
614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Flush the instruction and data caches.
618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval None
619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** void FLASH_FlushCaches(void)
621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_CacheTypeDef cache = pFlash.CacheToReactivate;
167 .loc 1 622 0
168 00b2 3B7F ldrb r3, [r7, #28] @ zero_extendqisi2
169 00b4 DBB2 uxtb r3, r3
170 .LVL11:
623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Flush instruction cache */
625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((cache == FLASH_CACHE_ICACHE_ENABLED) ||
171 .loc 1 625 0
172 00b6 03F0FD02 and r2, r3, #253
173 00ba 012A cmp r2, #1
174 00bc 0CD1 bne .L14
626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (cache == FLASH_CACHE_ICACHE_DCACHE_ENABLED))
627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Reset instruction cache */
629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_FLASH_INSTRUCTION_CACHE_RESET();
175 .loc 1 629 0
176 00be 274A ldr r2, .L26+4
177 00c0 1168 ldr r1, [r2]
178 00c2 41F40061 orr r1, r1, #2048
179 00c6 1160 str r1, [r2]
180 00c8 1168 ldr r1, [r2]
181 00ca 21F40061 bic r1, r1, #2048
182 00ce 1160 str r1, [r2]
630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Enable instruction cache */
631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_FLASH_INSTRUCTION_CACHE_ENABLE();
183 .loc 1 631 0
184 00d0 1168 ldr r1, [r2]
185 00d2 41F40071 orr r1, r1, #512
186 00d6 1160 str r1, [r2]
187 .L14:
632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Flush data cache */
635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((cache == FLASH_CACHE_DCACHE_ENABLED) ||
188 .loc 1 635 0
189 00d8 023B subs r3, r3, #2
190 .LVL12:
191 00da 012B cmp r3, #1
192 00dc 0CD8 bhi .L15
636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (cache == FLASH_CACHE_ICACHE_DCACHE_ENABLED))
637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Reset data cache */
639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_FLASH_DATA_CACHE_RESET();
193 .loc 1 639 0
194 00de 1F4B ldr r3, .L26+4
195 .LVL13:
196 00e0 1A68 ldr r2, [r3]
197 00e2 42F48052 orr r2, r2, #4096
ARM GAS /tmp/cc6KszU6.s page 16
198 00e6 1A60 str r2, [r3]
199 00e8 1A68 ldr r2, [r3]
200 00ea 22F48052 bic r2, r2, #4096
201 00ee 1A60 str r2, [r3]
640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Enable data cache */
641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** __HAL_FLASH_DATA_CACHE_ENABLE();
202 .loc 1 641 0
203 00f0 1A68 ldr r2, [r3]
204 00f2 42F48062 orr r2, r2, #1024
205 00f6 1A60 str r2, [r3]
206 .L15:
642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Reset internal variable */
645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_DISABLED;
207 .loc 1 645 0
208 00f8 0023 movs r3, #0
209 00fa 3B77 strb r3, [r7, #28]
210 00fc 90E7 b .L3
211 .LVL14:
212 .L16:
213 .LBE33:
214 .LBE32:
148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
215 .loc 1 148 0
216 00fe 4FF0020A mov r10, #2
233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
217 .loc 1 233 0
218 0102 5046 mov r0, r10
219 .LVL15:
220 0104 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc}
221 .LVL16:
222 .L24:
161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
223 .loc 1 161 0
224 0108 22F40072 bic r2, r2, #512
225 010c 1A60 str r2, [r3]
163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
226 .loc 1 163 0
227 010e 1A68 ldr r2, [r3]
228 0110 5105 lsls r1, r2, #21
229 0112 1DD5 bpl .L5
166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_ICACHE_DCACHE_ENABLED;
230 .loc 1 166 0
231 0114 1A68 ldr r2, [r3]
167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
232 .loc 1 167 0
233 0116 0321 movs r1, #3
166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_ICACHE_DCACHE_ENABLED;
234 .loc 1 166 0
235 0118 22F48062 bic r2, r2, #1024
236 011c 1A60 str r2, [r3]
167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
237 .loc 1 167 0
238 011e 3977 strb r1, [r7, #28]
239 0120 93E7 b .L6
240 .L25:
ARM GAS /tmp/cc6KszU6.s page 17
241 .LVL17:
242 .LBB34:
243 .LBB35:
550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
244 .loc 1 550 0
245 0122 6B68 ldr r3, [r5, #4]
246 0124 DB07 lsls r3, r3, #31
247 0126 04D5 bpl .L9
552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
248 .loc 1 552 0
249 0128 0C4A ldr r2, .L26+4
250 012a 5369 ldr r3, [r2, #20]
251 012c 43F00403 orr r3, r3, #4
252 0130 5361 str r3, [r2, #20]
253 .LVL18:
254 .L9:
571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
255 .loc 1 571 0
256 0132 0A4C ldr r4, .L26+4
257 0134 6369 ldr r3, [r4, #20]
258 0136 43F48033 orr r3, r3, #65536
259 013a 6361 str r3, [r4, #20]
260 .LBE35:
261 .LBE34:
191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
262 .loc 1 191 0
263 013c 4FF47A70 mov r0, #1000
264 .LVL19:
265 0140 FFF7FEFF bl FLASH_WaitForLastOperation
266 .LVL20:
198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
267 .loc 1 198 0
268 0144 6369 ldr r3, [r4, #20]
269 0146 23F00403 bic r3, r3, #4
191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
270 .loc 1 191 0
271 014a 8246 mov r10, r0
272 .LVL21:
198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
273 .loc 1 198 0
274 014c 6361 str r3, [r4, #20]
275 014e B0E7 b .L10
276 .LVL22:
277 .L5:
171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
278 .loc 1 171 0
279 0150 3C77 strb r4, [r7, #28]
280 0152 7AE7 b .L6
281 .L7:
182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
282 .loc 1 182 0
283 0154 3877 strb r0, [r7, #28]
284 0156 78E7 b .L6
285 .L27:
286 .align 2
287 .L26:
288 0158 00000000 .word pFlash
ARM GAS /tmp/cc6KszU6.s page 18
289 015c 00200240 .word 1073881088
290 .cfi_endproc
291 .LFE329:
293 .section .text.HAL_FLASHEx_Erase_IT,"ax",%progbits
294 .align 1
295 .p2align 2,,3
296 .global HAL_FLASHEx_Erase_IT
297 .syntax unified
298 .thumb
299 .thumb_func
300 .fpu fpv4-sp-d16
302 HAL_FLASHEx_Erase_IT:
303 .LFB330:
242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
304 .loc 1 242 0
305 .cfi_startproc
306 @ args = 0, pretend = 0, frame = 0
307 @ frame_needed = 0, uses_anonymous_args = 0
308 @ link register save eliminated.
309 .LVL23:
246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
310 .loc 1 246 0
311 0000 2D4B ldr r3, .L46
312 0002 1A78 ldrb r2, [r3] @ zero_extendqisi2
313 0004 012A cmp r2, #1
314 0006 55D0 beq .L36
242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
315 .loc 1 242 0 discriminator 2
316 0008 30B4 push {r4, r5}
317 .LCFI1:
318 .cfi_def_cfa_offset 8
319 .cfi_offset 4, -8
320 .cfi_offset 5, -4
254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
321 .loc 1 254 0 discriminator 2
322 000a 2C4A ldr r2, .L46+4
251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
323 .loc 1 251 0 discriminator 2
324 000c 0024 movs r4, #0
325 000e 5C60 str r4, [r3, #4]
254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
326 .loc 1 254 0 discriminator 2
327 0010 1468 ldr r4, [r2]
246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
328 .loc 1 246 0 discriminator 2
329 0012 0121 movs r1, #1
254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
330 .loc 1 254 0 discriminator 2
331 0014 A505 lsls r5, r4, #22
246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
332 .loc 1 246 0 discriminator 2
333 0016 1970 strb r1, [r3]
254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
334 .loc 1 254 0 discriminator 2
335 0018 2CD4 bmi .L44
270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
336 .loc 1 270 0
ARM GAS /tmp/cc6KszU6.s page 19
337 001a 1168 ldr r1, [r2]
338 001c 11F48061 ands r1, r1, #1024
339 0020 36D0 beq .L33
273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_DCACHE_ENABLED;
340 .loc 1 273 0
341 0022 1168 ldr r1, [r2]
274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
342 .loc 1 274 0
343 0024 0224 movs r4, #2
273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_DCACHE_ENABLED;
344 .loc 1 273 0
345 0026 21F48061 bic r1, r1, #1024
346 002a 1160 str r1, [r2]
274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
347 .loc 1 274 0
348 002c 1C77 strb r4, [r3, #28]
349 .L32:
282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
350 .loc 1 282 0 discriminator 4
351 002e 234A ldr r2, .L46+4
352 0030 5169 ldr r1, [r2, #20]
353 0032 41F04071 orr r1, r1, #50331648
354 0036 5161 str r1, [r2, #20]
284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
355 .loc 1 284 0 discriminator 4
356 0038 D0E90041 ldrd r4, r1, [r0]
286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
357 .loc 1 286 0 discriminator 4
358 003c 012C cmp r4, #1
284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
359 .loc 1 284 0 discriminator 4
360 003e 1961 str r1, [r3, #16]
286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
361 .loc 1 286 0 discriminator 4
362 0040 28D0 beq .L45
297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
363 .loc 1 297 0
364 0042 D0E90214 ldrd r1, r4, [r0, #8]
295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.NbPagesToErase = pEraseInit->NbPages;
365 .loc 1 295 0
366 0046 0125 movs r5, #1
367 0048 1D72 strb r5, [r3, #8]
296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.Page = pEraseInit->Page;
368 .loc 1 296 0
369 004a 9C61 str r4, [r3, #24]
297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
370 .loc 1 297 0
371 004c 5961 str r1, [r3, #20]
372 .LVL24:
373 .LBB36:
374 .LBB37:
611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_PER);
375 .loc 1 611 0
376 004e 5369 ldr r3, [r2, #20]
377 0050 C900 lsls r1, r1, #3
378 .LVL25:
379 0052 23F4FC73 bic r3, r3, #504
ARM GAS /tmp/cc6KszU6.s page 20
380 0056 01F4FF61 and r1, r1, #2040
381 005a 1943 orrs r1, r1, r3
382 005c 5161 str r1, [r2, #20]
383 .LVL26:
612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT);
384 .loc 1 612 0
385 005e 5369 ldr r3, [r2, #20]
386 0060 43F00203 orr r3, r3, #2
387 0064 5361 str r3, [r2, #20]
613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
388 .loc 1 613 0
389 0066 5369 ldr r3, [r2, #20]
390 0068 43F48033 orr r3, r3, #65536
391 .LBE37:
392 .LBE36:
303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
393 .loc 1 303 0
394 006c 0020 movs r0, #0
395 .LVL27:
396 .LBB39:
397 .LBB38:
613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
398 .loc 1 613 0
399 006e 5361 str r3, [r2, #20]
400 .LBE38:
401 .LBE39:
304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
402 .loc 1 304 0
403 0070 30BC pop {r4, r5}
404 .LCFI2:
405 .cfi_remember_state
406 .cfi_restore 5
407 .cfi_restore 4
408 .cfi_def_cfa_offset 0
409 0072 7047 bx lr
410 .LVL28:
411 .L44:
412 .LCFI3:
413 .cfi_restore_state
257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
414 .loc 1 257 0
415 0074 1468 ldr r4, [r2]
416 0076 24F40074 bic r4, r4, #512
417 007a 1460 str r4, [r2]
259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
418 .loc 1 259 0
419 007c 1468 ldr r4, [r2]
420 007e 6405 lsls r4, r4, #21
421 0080 06D5 bpl .L33
262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_ICACHE_DCACHE_ENABLED;
422 .loc 1 262 0
423 0082 1168 ldr r1, [r2]
263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
424 .loc 1 263 0
425 0084 0324 movs r4, #3
262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pFlash.CacheToReactivate = FLASH_CACHE_ICACHE_DCACHE_ENABLED;
426 .loc 1 262 0
ARM GAS /tmp/cc6KszU6.s page 21
427 0086 21F48061 bic r1, r1, #1024
428 008a 1160 str r1, [r2]
263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
429 .loc 1 263 0
430 008c 1C77 strb r4, [r3, #28]
431 008e CEE7 b .L32
432 .L33:
278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
433 .loc 1 278 0
434 0090 1977 strb r1, [r3, #28]
435 0092 CCE7 b .L32
436 .L45:
289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_MassErase(pEraseInit->Banks);
437 .loc 1 289 0
438 0094 0220 movs r0, #2
439 .LVL29:
440 0096 1872 strb r0, [r3, #8]
441 .LVL30:
442 .LBB40:
443 .LBB41:
550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
444 .loc 1 550 0
445 0098 CB07 lsls r3, r1, #31
446 009a 03D5 bpl .L35
552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
447 .loc 1 552 0
448 009c 5369 ldr r3, [r2, #20]
449 009e 43F00403 orr r3, r3, #4
450 00a2 5361 str r3, [r2, #20]
451 .L35:
571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
452 .loc 1 571 0
453 00a4 054A ldr r2, .L46+4
454 00a6 5369 ldr r3, [r2, #20]
455 00a8 43F48033 orr r3, r3, #65536
456 .LBE41:
457 .LBE40:
303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
458 .loc 1 303 0
459 00ac 0020 movs r0, #0
460 .LBB43:
461 .LBB42:
571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
462 .loc 1 571 0
463 00ae 5361 str r3, [r2, #20]
464 .LBE42:
465 .LBE43:
304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
466 .loc 1 304 0
467 00b0 30BC pop {r4, r5}
468 .LCFI4:
469 .cfi_restore 5
470 .cfi_restore 4
471 .cfi_def_cfa_offset 0
472 00b2 7047 bx lr
473 .LVL31:
474 .L36:
ARM GAS /tmp/cc6KszU6.s page 22
246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
475 .loc 1 246 0
476 00b4 0220 movs r0, #2
477 .LVL32:
304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
478 .loc 1 304 0
479 00b6 7047 bx lr
480 .L47:
481 .align 2
482 .L46:
483 00b8 00000000 .word pFlash
484 00bc 00200240 .word 1073881088
485 .cfi_endproc
486 .LFE330:
488 .section .text.HAL_FLASHEx_OBProgram,"ax",%progbits
489 .align 1
490 .p2align 2,,3
491 .global HAL_FLASHEx_OBProgram
492 .syntax unified
493 .thumb
494 .thumb_func
495 .fpu fpv4-sp-d16
497 HAL_FLASHEx_OBProgram:
498 .LFB331:
318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status = HAL_OK;
499 .loc 1 318 0
500 .cfi_startproc
501 @ args = 0, pretend = 0, frame = 0
502 @ frame_needed = 0, uses_anonymous_args = 0
503 .LVL33:
504 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr}
505 .LCFI5:
506 .cfi_def_cfa_offset 32
507 .cfi_offset 3, -32
508 .cfi_offset 4, -28
509 .cfi_offset 5, -24
510 .cfi_offset 6, -20
511 .cfi_offset 7, -16
512 .cfi_offset 8, -12
513 .cfi_offset 9, -8
514 .cfi_offset 14, -4
325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
515 .loc 1 325 0
516 0004 B84E ldr r6, .L163
517 0006 3378 ldrb r3, [r6] @ zero_extendqisi2
518 0008 012B cmp r3, #1
519 000a 00F05A81 beq .L85
330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
520 .loc 1 330 0 discriminator 2
521 000e 0368 ldr r3, [r0]
325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
522 .loc 1 325 0 discriminator 2
523 0010 0125 movs r5, #1
327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
524 .loc 1 327 0 discriminator 2
525 0012 0022 movs r2, #0
330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
ARM GAS /tmp/cc6KszU6.s page 23
526 .loc 1 330 0 discriminator 2
527 0014 13EA0507 ands r7, r3, r5
528 0018 0446 mov r4, r0
325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
529 .loc 1 325 0 discriminator 2
530 001a 3570 strb r5, [r6]
327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
531 .loc 1 327 0 discriminator 2
532 001c 7260 str r2, [r6, #4]
330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
533 .loc 1 330 0 discriminator 2
534 001e 40F0DB80 bne .L152
535 .LVL34:
536 .L50:
340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
537 .loc 1 340 0
538 0022 9D07 lsls r5, r3, #30
539 0024 00F1CE80 bmi .L153
540 .LVL35:
541 .L54:
350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
542 .loc 1 350 0
543 0028 5807 lsls r0, r3, #29
544 002a 42D4 bmi .L154
545 .LVL36:
546 .L57:
360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
547 .loc 1 360 0
548 002c 1907 lsls r1, r3, #28
549 002e 0AD4 bmi .L155
550 .LVL37:
551 .L75:
373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
552 .loc 1 373 0
553 0030 9A06 lsls r2, r3, #26
554 0032 00F1F880 bmi .L156
555 .LVL38:
556 .L79:
383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
557 .loc 1 383 0
558 0036 DB06 lsls r3, r3, #27
559 0038 00F1ED80 bmi .L157
560 .LVL39:
561 .L83:
393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
562 .loc 1 393 0
563 003c 0023 movs r3, #0
564 003e 3370 strb r3, [r6]
396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
565 .loc 1 396 0
566 0040 3846 mov r0, r7
567 0042 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc}
568 .LVL40:
569 .L155:
362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
570 .loc 1 362 0
571 0046 D4E90885 ldrd r8, r5, [r4, #32]
ARM GAS /tmp/cc6KszU6.s page 24
572 004a A845 cmp r8, r5
573 004c F0D0 beq .L75
574 .LBB56:
575 .LBB57:
646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Configure the write protection area into Option Bytes.
650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note When the memory read protection level is selected (RDP level = 1),
651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * it is not possible to program or erase Flash memory if the CPU debug
652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * features are connected (JTAG or single wire) or boot code is being
653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * executed from RAM or System flash, even if WRP is not activated.
654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note To configure any option bytes, the option lock bit OPTLOCK must be
655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * cleared with the call of HAL_FLASH_OB_Unlock() function.
656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note New option bytes configuration will be taken into account in two cases:
657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after an option bytes launch through the call of HAL_FLASH_OB_Launch()
658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after a power reset (BOR reset or exit from Standby/Shutdown modes)
659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param WRPArea specifies the area to be configured.
660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_WRPAREA_BANK1_AREAA: Flash Bank 1 Area A
662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_WRPAREA_BANK1_AREAB: Flash Bank 1 Area B
663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_WRPAREA_BANK2_AREAA: Flash Bank 2 Area A (*)
664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_WRPAREA_BANK2_AREAB: Flash Bank 2 Area B (*)
665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note (*) availability depends on devices
666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param WRPStartOffset specifies the start page of the write protected area.
667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be page number between 0 and (max number of pages in the bank - 1).
668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param WRDPEndOffset specifies the end page of the write protected area.
669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be page number between WRPStartOffset and (max number of pages in th
670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval HAL_Status
671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_WRPConfig(uint32_t WRPArea, uint32_t WRPStartOffset, uint32_t WRD
673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status;
675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */
677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_WRPAREA(WRPArea));
678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_PAGE(WRPStartOffset));
679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_PAGE(WRDPEndOffset));
680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (status == HAL_OK)
685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the write protected area */
687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (WRPArea == OB_WRPAREA_BANK1_AREAA)
688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH->WRP1AR = ((WRDPEndOffset << FLASH_WRP1AR_WRP1A_END_Pos) | WRPStartOffset);
690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (WRPArea == OB_WRPAREA_BANK1_AREAB)
692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH->WRP1BR = ((WRDPEndOffset << FLASH_WRP1BR_WRP1B_END_Pos) | WRPStartOffset);
694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK)
696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (WRPArea == OB_WRPAREA_BANK2_AREAA)
697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH->WRP2AR = ((WRDPEndOffset << FLASH_WRP2AR_WRP2A_END_Pos) | WRPStartOffset);
ARM GAS /tmp/cc6KszU6.s page 25
699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (WRPArea == OB_WRPAREA_BANK2_AREAB)
701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH->WRP2BR = ((WRDPEndOffset << FLASH_WRP2BR_WRP2B_END_Pos) | WRPStartOffset);
703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Nothing to do */
708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set OPTSTRT Bit */
711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTSTRT);
712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return status;
718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Set the read protection level into Option Bytes.
722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note To configure any option bytes, the option lock bit OPTLOCK must be
723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * cleared with the call of HAL_FLASH_OB_Unlock() function.
724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note New option bytes configuration will be taken into account in two cases:
725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after an option bytes launch through the call of HAL_FLASH_OB_Launch()
726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after a power reset (BOR reset or exit from Standby/Shutdown modes)
727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note !!! Warning : When enabling OB_RDP level 2 it's no more possible
728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * to go back to level 1 or 0 !!!
729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param RDPLevel specifies the read protection level.
730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_0: No protection
732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_1: Memory Read protection
733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_2: Full chip protection
734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *
735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval HAL_Status
736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_RDPConfig(uint32_t RDPLevel)
738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status;
740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */
742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_RDP_LEVEL(RDPLevel));
743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (status == HAL_OK)
748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the RDP level in the option bytes register */
750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->OPTR, FLASH_OPTR_RDP, RDPLevel);
751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set OPTSTRT Bit */
753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTSTRT);
754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
ARM GAS /tmp/cc6KszU6.s page 26
756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return status;
760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Program the FLASH User Option Bytes.
764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note To configure any option bytes, the option lock bit OPTLOCK must be
765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * cleared with the call of HAL_FLASH_OB_Unlock() function.
766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note New option bytes configuration will be taken into account in two cases:
767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after an option bytes launch through the call of HAL_FLASH_OB_Launch()
768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after a power reset (BOR reset or exit from Standby/Shutdown modes)
769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param UserType The FLASH User Option Bytes to be modified.
770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be a combination of @ref FLASH_OB_USER_Type.
771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param UserConfig The selected User Option Bytes values:
772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be a combination of @ref FLASH_OB_USER_BOR_LEVEL,
773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_nRST_STOP, @ref FLASH_OB_USER_nRST_STANDBY ,
774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_nRST_SHUTDOWN, @ref FLASH_OB_USER_IWDG_SW,
775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_IWDG_STOP, @ref FLASH_OB_USER_IWDG_STANDBY,
776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_WWDG_SW, @ref FLASH_OB_USER_WWDG_SW,
777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_BFB2 (*), @ref FLASH_OB_USER_nBOOT1,
778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_SRAM_PE, @ref FLASH_OB_USER_CCMSRAM_RST,
779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_nSWBOOT0, @ref FLASH_OB_USER_nBOOT0,
780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_NRST_MODE, @ref FLASH_OB_USER_INTERNAL_RESET_HOLDER
781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note (*) availability depends on devices
782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval HAL_Status
783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_UserConfig(uint32_t UserType, uint32_t UserConfig)
785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t optr_reg_val = 0;
787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t optr_reg_mask = 0;
788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status;
789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */
791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_TYPE(UserType));
792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (status == HAL_OK)
797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_BOR_LEV) != 0U)
799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* BOR level option byte should be modified */
801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_BOR_LEVEL(UserConfig & FLASH_OPTR_BOR_LEV));
802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for BOR level option byte */
804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_BOR_LEV);
805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_BOR_LEV;
806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_nRST_STOP) != 0U)
809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* nRST_STOP option byte should be modified */
811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_STOP(UserConfig & FLASH_OPTR_nRST_STOP));
812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
ARM GAS /tmp/cc6KszU6.s page 27
813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for nRST_STOP option byte */
814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_nRST_STOP);
815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nRST_STOP;
816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_nRST_STDBY) != 0U)
819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* nRST_STDBY option byte should be modified */
821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_STANDBY(UserConfig & FLASH_OPTR_nRST_STDBY));
822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for nRST_STDBY option byte */
824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_nRST_STDBY);
825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nRST_STDBY;
826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_nRST_SHDW) != 0U)
829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* nRST_SHDW option byte should be modified */
831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_SHUTDOWN(UserConfig & FLASH_OPTR_nRST_SHDW));
832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for nRST_SHDW option byte */
834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_nRST_SHDW);
835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nRST_SHDW;
836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_IWDG_SW) != 0U)
839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* IWDG_SW option byte should be modified */
841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_IWDG(UserConfig & FLASH_OPTR_IWDG_SW));
842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for IWDG_SW option byte */
844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_IWDG_SW);
845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IWDG_SW;
846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_IWDG_STOP) != 0U)
849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* IWDG_STOP option byte should be modified */
851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_IWDG_STOP(UserConfig & FLASH_OPTR_IWDG_STOP));
852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for IWDG_STOP option byte */
854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_IWDG_STOP);
855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IWDG_STOP;
856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_IWDG_STDBY) != 0U)
859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* IWDG_STDBY option byte should be modified */
861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_IWDG_STDBY(UserConfig & FLASH_OPTR_IWDG_STDBY));
862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for IWDG_STDBY option byte */
864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_IWDG_STDBY);
865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IWDG_STDBY;
866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_WWDG_SW) != 0U)
869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
ARM GAS /tmp/cc6KszU6.s page 28
870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* WWDG_SW option byte should be modified */
871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_WWDG(UserConfig & FLASH_OPTR_WWDG_SW));
872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for WWDG_SW option byte */
874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_WWDG_SW);
875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_WWDG_SW;
876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_BFB2)
879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_BFB2) != 0U)
880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* BFB2 option byte should be modified */
882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_BFB2(UserConfig & FLASH_OPTR_BFB2));
883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for BFB2 option byte */
885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_BFB2);
886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_BFB2;
887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_nBOOT1) != 0U)
891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* nBOOT1 option byte should be modified */
893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_BOOT1(UserConfig & FLASH_OPTR_nBOOT1));
894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for nBOOT1 option byte */
896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_nBOOT1);
897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nBOOT1;
898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_SRAM_PE) != 0U)
901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* SRAM_PE option byte should be modified */
903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_SRAM_PARITY(UserConfig & FLASH_OPTR_SRAM_PE));
904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for SRAM_PE option byte */
906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_SRAM_PE);
907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_SRAM_PE;
908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_CCMSRAM_RST) != 0U)
911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* CCMSRAM_RST option byte should be modified */
913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_CCMSRAM_RST(UserConfig & FLASH_OPTR_CCMSRAM_RST));
914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for CCMSRAM_RST option byte */
916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_CCMSRAM_RST);
917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_CCMSRAM_RST;
918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_nSWBOOT0) != 0U)
921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* nSWBOOT0 option byte should be modified */
923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_SWBOOT0(UserConfig & FLASH_OPTR_nSWBOOT0));
924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for nSWBOOT0 option byte */
926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_nSWBOOT0);
ARM GAS /tmp/cc6KszU6.s page 29
927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nSWBOOT0;
928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_nBOOT0) != 0U)
931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* nBOOT0 option byte should be modified */
933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_BOOT0(UserConfig & FLASH_OPTR_nBOOT0));
934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for nBOOT0 option byte */
936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_nBOOT0);
937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nBOOT0;
938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_NRST_MODE) != 0U)
941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Reset Configuration option byte should be modified */
943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_NRST_MODE(UserConfig & FLASH_OPTR_NRST_MODE));
944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for Reset Configuration option byte */
946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_NRST_MODE);
947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_NRST_MODE;
948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((UserType & OB_USER_IRHEN) != 0U)
951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* IRH option byte should be modified */
953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_USER_IRHEN(UserConfig & FLASH_OPTR_IRHEN));
954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set value and mask for IRH option byte */
956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_val |= (UserConfig & FLASH_OPTR_IRHEN);
957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IRHEN;
958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the option bytes register */
961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->OPTR, optr_reg_mask, optr_reg_val);
962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set OPTSTRT Bit */
964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTSTRT);
965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return status;
971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Configure the Proprietary code readout protection area into Option Bytes.
975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note To configure any option bytes, the option lock bit OPTLOCK must be
976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * cleared with the call of HAL_FLASH_OB_Unlock() function.
977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note New option bytes configuration will be taken into account in two cases:
978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after an option bytes launch through the call of HAL_FLASH_OB_Launch()
979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after a power reset (BOR reset or exit from Standby/Shutdown modes)
980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param PCROPConfig specifies the configuration (Bank to be configured and PCROP_RDP option).
981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter must be a combination of FLASH_BANK_1 or FLASH_BANK_2 (*)
982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * with OB_PCROP_RDP_NOT_ERASE or OB_PCROP_RDP_ERASE.
983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note (*) availability depends on devices
ARM GAS /tmp/cc6KszU6.s page 30
984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param PCROPStartAddr specifies the start address of the Proprietary code readout protection.
985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be an address between begin and end of the bank.
986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param PCROPEndAddr specifies the end address of the Proprietary code readout protection.
987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be an address between PCROPStartAddr and end of the bank.
988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval HAL_Status
989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_PCROPConfig(uint32_t PCROPConfig, uint32_t PCROPStartAddr, uint32
991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status;
993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t reg_value;
994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t bank1_addr;
995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK)
996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t bank2_addr;
997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */
1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK_EXCLUSIVE(PCROPConfig & FLASH_BANK_BOTH));
1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_PCROP_RDP(PCROPConfig & FLASH_PCROP1ER_PCROP_RDP));
1002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_MAIN_MEM_ADDRESS(PCROPStartAddr));
1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_MAIN_MEM_ADDRESS(PCROPEndAddr));
1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
576 .loc 1 1006 0
577 004e 4FF47A70 mov r0, #1000
578 .LBE57:
579 .LBE56:
365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
580 .loc 1 365 0
581 0052 D4F81C90 ldr r9, [r4, #28]
582 .LVL41:
583 .LBB59:
584 .LBB58:
585 .loc 1 1006 0
586 0056 FFF7FEFF bl FLASH_WaitForLastOperation
587 .LVL42:
1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (status == HAL_OK)
588 .loc 1 1008 0
589 005a 0028 cmp r0, #0
590 005c 40F03581 bne .L158
591 .LVL43:
1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK)
1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get the information about the bank swapping */
1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_FB_MODE) == 0U)
1013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** bank1_addr = FLASH_BASE;
1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** bank2_addr = FLASH_BASE + FLASH_BANK_SIZE;
1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** bank1_addr = FLASH_BASE + FLASH_BANK_SIZE;
1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** bank2_addr = FLASH_BASE;
1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #else
1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** bank1_addr = FLASH_BASE;
ARM GAS /tmp/cc6KszU6.s page 31
1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
1025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK)
1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(FLASH->OPTR, FLASH_OPTR_DBANK) == 0U)
1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the Proprietary code readout protection */
1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((PCROPConfig & FLASH_BANK_BOTH) == FLASH_BANK_1)
1031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = ((PCROPStartAddr - FLASH_BASE) >> 4);
1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP1SR, FLASH_PCROP1SR_PCROP1_STRT, reg_value);
1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = ((PCROPEndAddr - FLASH_BASE) >> 4);
1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP1ER, FLASH_PCROP1ER_PCROP1_END, reg_value);
1037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if ((PCROPConfig & FLASH_BANK_BOTH) == FLASH_BANK_2)
1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = ((PCROPStartAddr - FLASH_BASE) >> 4);
1041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP2SR, FLASH_PCROP2SR_PCROP2_STRT, reg_value);
1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = ((PCROPEndAddr - FLASH_BASE) >> 4);
1044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP2ER, FLASH_PCROP2ER_PCROP2_END, reg_value);
1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Nothing to do */
1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the Proprietary code readout protection */
1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((PCROPConfig & FLASH_BANK_BOTH) == FLASH_BANK_1)
592 .loc 1 1055 0
593 0060 19F0010F tst r9, #1
594 0064 0FD0 beq .L77
595 .LVL44:
1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = ((PCROPStartAddr - bank1_addr) >> 3);
1058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP1SR, FLASH_PCROP1SR_PCROP1_STRT, reg_value);
596 .loc 1 1058 0
597 0066 A149 ldr r1, .L163+4
598 0068 A148 ldr r0, .L163+8
599 .LVL45:
600 006a 4A6A ldr r2, [r1, #36]
1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP1SR, FLASH_PCROP1SR_PCROP1_STRT, reg_value);
601 .loc 1 1057 0
602 006c 08F17848 add r8, r8, #-134217728
603 .LVL46:
604 .loc 1 1058 0
605 0070 0240 ands r2, r2, r0
606 0072 42EAD802 orr r2, r2, r8, lsr #3
607 0076 4A62 str r2, [r1, #36]
608 .LVL47:
1059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = ((PCROPEndAddr - bank1_addr) >> 3);
1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP1ER, FLASH_PCROP1ER_PCROP1_END, reg_value);
609 .loc 1 1061 0
ARM GAS /tmp/cc6KszU6.s page 32
610 0078 8B6A ldr r3, [r1, #40]
1060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP1ER, FLASH_PCROP1ER_PCROP1_END, reg_value);
611 .loc 1 1060 0
612 007a 05F17845 add r5, r5, #-134217728
613 .LVL48:
614 .loc 1 1061 0
615 007e 0340 ands r3, r3, r0
616 0080 43EAD505 orr r5, r3, r5, lsr #3
617 .LVL49:
618 0084 8D62 str r5, [r1, #40]
619 .LVL50:
620 .L77:
1062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK)
1064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if ((PCROPConfig & FLASH_BANK_BOTH) == FLASH_BANK_2)
1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = ((PCROPStartAddr - bank2_addr) >> 3);
1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP2SR, FLASH_PCROP2SR_PCROP2_STRT, reg_value);
1068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = ((PCROPEndAddr - bank2_addr) >> 3);
1070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP2ER, FLASH_PCROP2ER_PCROP2_END, reg_value);
1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
1073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Nothing to do */
1076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->PCROP1ER, FLASH_PCROP1ER_PCROP_RDP, (PCROPConfig & FLASH_PCROP1ER_PCROP_RDP))
621 .loc 1 1079 0
622 0086 994A ldr r2, .L163+4
623 0088 936A ldr r3, [r2, #40]
624 008a 09F00049 and r9, r9, #-2147483648
625 .LVL51:
626 008e 23F00043 bic r3, r3, #-2147483648
627 0092 43EA0903 orr r3, r3, r9
628 0096 9362 str r3, [r2, #40]
1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set OPTSTRT Bit */
1082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTSTRT);
629 .loc 1 1082 0
630 0098 5369 ldr r3, [r2, #20]
631 009a 43F40033 orr r3, r3, #131072
632 009e 5361 str r3, [r2, #20]
1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
1085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
633 .loc 1 1085 0
634 00a0 4FF47A70 mov r0, #1000
635 00a4 FFF7FEFF bl FLASH_WaitForLastOperation
636 .LVL52:
637 00a8 2368 ldr r3, [r4]
638 .LBE58:
639 .LBE59:
365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
640 .loc 1 365 0
ARM GAS /tmp/cc6KszU6.s page 33
641 00aa 0028 cmp r0, #0
642 00ac C0D0 beq .L75
643 .LVL53:
367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
644 .loc 1 367 0
645 00ae 0127 movs r7, #1
646 00b0 BEE7 b .L75
647 .LVL54:
648 .L154:
649 .LBB60:
650 .LBB61:
794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
651 .loc 1 794 0
652 00b2 4FF47A70 mov r0, #1000
653 .LBE61:
654 .LBE60:
353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
655 .loc 1 353 0
656 00b6 D4E90558 ldrd r5, r8, [r4, #20]
657 .LVL55:
658 .LBB64:
659 .LBB62:
794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
660 .loc 1 794 0
661 00ba FFF7FEFF bl FLASH_WaitForLastOperation
662 .LVL56:
796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
663 .loc 1 796 0
664 00be 0028 cmp r0, #0
665 00c0 40F0D680 bne .L159
798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
666 .loc 1 798 0
667 00c4 15F00103 ands r3, r5, #1
668 00c8 00F00A81 beq .L87
804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_BOR_LEV;
669 .loc 1 804 0
670 00cc 08F4E062 and r2, r8, #1792
671 .LVL57:
672 00d0 4FF4B850 mov r0, #5888
673 .LVL58:
805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
674 .loc 1 805 0
675 00d4 4FF4E063 mov r3, #1792
676 .LVL59:
677 .L59:
808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
678 .loc 1 808 0
679 00d8 A907 lsls r1, r5, #30
680 00da 03D5 bpl .L60
814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nRST_STOP;
681 .loc 1 814 0
682 00dc 08F48051 and r1, r8, #4096
815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
683 .loc 1 815 0
684 00e0 0346 mov r3, r0
814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nRST_STOP;
685 .loc 1 814 0
ARM GAS /tmp/cc6KszU6.s page 34
686 00e2 0A43 orrs r2, r2, r1
687 .LVL60:
688 .L60:
818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
689 .loc 1 818 0
690 00e4 6807 lsls r0, r5, #29
691 00e6 04D5 bpl .L61
824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nRST_STDBY;
692 .loc 1 824 0
693 00e8 08F40051 and r1, r8, #8192
825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
694 .loc 1 825 0
695 00ec 43F40053 orr r3, r3, #8192
824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nRST_STDBY;
696 .loc 1 824 0
697 00f0 0A43 orrs r2, r2, r1
698 .LVL61:
699 .L61:
828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
700 .loc 1 828 0
701 00f2 E904 lsls r1, r5, #19
702 00f4 04D5 bpl .L62
834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nRST_SHDW;
703 .loc 1 834 0
704 00f6 08F48041 and r1, r8, #16384
835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
705 .loc 1 835 0
706 00fa 43F48043 orr r3, r3, #16384
834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nRST_SHDW;
707 .loc 1 834 0
708 00fe 0A43 orrs r2, r2, r1
709 .LVL62:
710 .L62:
838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
711 .loc 1 838 0
712 0100 2807 lsls r0, r5, #28
713 0102 04D5 bpl .L63
844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IWDG_SW;
714 .loc 1 844 0
715 0104 08F48031 and r1, r8, #65536
845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
716 .loc 1 845 0
717 0108 43F48033 orr r3, r3, #65536
844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IWDG_SW;
718 .loc 1 844 0
719 010c 0A43 orrs r2, r2, r1
720 .LVL63:
721 .L63:
848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
722 .loc 1 848 0
723 010e E906 lsls r1, r5, #27
724 0110 04D5 bpl .L64
854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IWDG_STOP;
725 .loc 1 854 0
726 0112 08F40031 and r1, r8, #131072
855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
727 .loc 1 855 0
ARM GAS /tmp/cc6KszU6.s page 35
728 0116 43F40033 orr r3, r3, #131072
854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IWDG_STOP;
729 .loc 1 854 0
730 011a 0A43 orrs r2, r2, r1
731 .LVL64:
732 .L64:
858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
733 .loc 1 858 0
734 011c A806 lsls r0, r5, #26
735 011e 04D5 bpl .L65
864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IWDG_STDBY;
736 .loc 1 864 0
737 0120 08F48021 and r1, r8, #262144
865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
738 .loc 1 865 0
739 0124 43F48023 orr r3, r3, #262144
864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IWDG_STDBY;
740 .loc 1 864 0
741 0128 0A43 orrs r2, r2, r1
742 .LVL65:
743 .L65:
868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
744 .loc 1 868 0
745 012a 6906 lsls r1, r5, #25
746 012c 04D5 bpl .L66
874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_WWDG_SW;
747 .loc 1 874 0
748 012e 08F40021 and r1, r8, #524288
875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
749 .loc 1 875 0
750 0132 43F40023 orr r3, r3, #524288
874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_WWDG_SW;
751 .loc 1 874 0
752 0136 0A43 orrs r2, r2, r1
753 .LVL66:
754 .L66:
890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
755 .loc 1 890 0
756 0138 A805 lsls r0, r5, #22
757 013a 04D5 bpl .L67
896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nBOOT1;
758 .loc 1 896 0
759 013c 08F40001 and r1, r8, #8388608
897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
760 .loc 1 897 0
761 0140 43F40003 orr r3, r3, #8388608
896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nBOOT1;
762 .loc 1 896 0
763 0144 0A43 orrs r2, r2, r1
764 .LVL67:
765 .L67:
900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
766 .loc 1 900 0
767 0146 6905 lsls r1, r5, #21
768 0148 04D5 bpl .L68
906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_SRAM_PE;
769 .loc 1 906 0
ARM GAS /tmp/cc6KszU6.s page 36
770 014a 08F08071 and r1, r8, #16777216
907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
771 .loc 1 907 0
772 014e 43F08073 orr r3, r3, #16777216
906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_SRAM_PE;
773 .loc 1 906 0
774 0152 0A43 orrs r2, r2, r1
775 .LVL68:
776 .L68:
910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
777 .loc 1 910 0
778 0154 2805 lsls r0, r5, #20
779 0156 04D5 bpl .L69
916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_CCMSRAM_RST;
780 .loc 1 916 0
781 0158 08F00071 and r1, r8, #33554432
917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
782 .loc 1 917 0
783 015c 43F00073 orr r3, r3, #33554432
916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_CCMSRAM_RST;
784 .loc 1 916 0
785 0160 0A43 orrs r2, r2, r1
786 .LVL69:
787 .L69:
920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
788 .loc 1 920 0
789 0162 A904 lsls r1, r5, #18
790 0164 04D5 bpl .L70
926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nSWBOOT0;
791 .loc 1 926 0
792 0166 08F08061 and r1, r8, #67108864
927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
793 .loc 1 927 0
794 016a 43F08063 orr r3, r3, #67108864
926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nSWBOOT0;
795 .loc 1 926 0
796 016e 0A43 orrs r2, r2, r1
797 .LVL70:
798 .L70:
930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
799 .loc 1 930 0
800 0170 6804 lsls r0, r5, #17
801 0172 04D5 bpl .L71
936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nBOOT0;
802 .loc 1 936 0
803 0174 08F00061 and r1, r8, #134217728
937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
804 .loc 1 937 0
805 0178 43F00063 orr r3, r3, #134217728
936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_nBOOT0;
806 .loc 1 936 0
807 017c 0A43 orrs r2, r2, r1
808 .LVL71:
809 .L71:
940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
810 .loc 1 940 0
811 017e 2904 lsls r1, r5, #16
ARM GAS /tmp/cc6KszU6.s page 37
812 0180 04D5 bpl .L72
946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_NRST_MODE;
813 .loc 1 946 0
814 0182 08F04051 and r1, r8, #805306368
947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
815 .loc 1 947 0
816 0186 43F04053 orr r3, r3, #805306368
946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_NRST_MODE;
817 .loc 1 946 0
818 018a 0A43 orrs r2, r2, r1
819 .LVL72:
820 .L72:
950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
821 .loc 1 950 0
822 018c E803 lsls r0, r5, #15
823 018e 05D5 bpl .L73
956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** optr_reg_mask |= FLASH_OPTR_IRHEN;
824 .loc 1 956 0
825 0190 08F08048 and r8, r8, #1073741824
826 .LVL73:
827 0194 42EA0802 orr r2, r2, r8
828 .LVL74:
957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
829 .loc 1 957 0
830 0198 43F08043 orr r3, r3, #1073741824
831 .LVL75:
832 .L73:
961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
833 .loc 1 961 0
834 019c 5348 ldr r0, .L163+4
835 019e 016A ldr r1, [r0, #32]
836 01a0 21EA0303 bic r3, r1, r3
837 01a4 1A43 orrs r2, r2, r3
838 .LVL76:
839 01a6 0262 str r2, [r0, #32]
964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
840 .loc 1 964 0
841 01a8 4369 ldr r3, [r0, #20]
842 01aa 43F40033 orr r3, r3, #131072
843 01ae 4361 str r3, [r0, #20]
967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
844 .loc 1 967 0
845 01b0 4FF47A70 mov r0, #1000
846 01b4 FFF7FEFF bl FLASH_WaitForLastOperation
847 .LVL77:
848 01b8 2368 ldr r3, [r4]
849 .LBE62:
850 .LBE64:
353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
851 .loc 1 353 0
852 01ba 0028 cmp r0, #0
853 01bc 3FF436AF beq .L57
854 .LVL78:
355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
855 .loc 1 355 0
856 01c0 0127 movs r7, #1
857 01c2 33E7 b .L57
ARM GAS /tmp/cc6KszU6.s page 38
858 .LVL79:
859 .L153:
860 .LBB65:
861 .LBB66:
745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
862 .loc 1 745 0
863 01c4 4FF47A70 mov r0, #1000
864 .LBE66:
865 .LBE65:
343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
866 .loc 1 343 0
867 01c8 2569 ldr r5, [r4, #16]
868 .LVL80:
869 .LBB69:
870 .LBB67:
745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
871 .loc 1 745 0
872 01ca FFF7FEFF bl FLASH_WaitForLastOperation
873 .LVL81:
747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
874 .loc 1 747 0
875 01ce 0028 cmp r0, #0
876 01d0 63D0 beq .L55
877 01d2 2368 ldr r3, [r4]
878 .LBE67:
879 .LBE69:
345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
880 .loc 1 345 0
881 01d4 0127 movs r7, #1
882 .LVL82:
883 01d6 27E7 b .L54
884 .LVL83:
885 .L152:
886 .LBB70:
887 .LBB71:
682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
888 .loc 1 682 0
889 01d8 4FF47A70 mov r0, #1000
890 .LVL84:
891 .LBE71:
892 .LBE70:
333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
893 .loc 1 333 0
894 01dc D4E90187 ldrd r8, r7, [r4, #4]
895 01e0 D4F80C90 ldr r9, [r4, #12]
896 .LVL85:
897 .LBB74:
898 .LBB72:
682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
899 .loc 1 682 0
900 01e4 FFF7FEFF bl FLASH_WaitForLastOperation
901 .LVL86:
684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
902 .loc 1 684 0
903 01e8 0028 cmp r0, #0
904 01ea 3ED1 bne .L160
687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
ARM GAS /tmp/cc6KszU6.s page 39
905 .loc 1 687 0
906 01ec B8F1000F cmp r8, #0
907 01f0 6ED1 bne .L52
689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
908 .loc 1 689 0
909 01f2 3E4B ldr r3, .L163+4
910 01f4 47EA0947 orr r7, r7, r9, lsl #16
911 .LVL87:
912 01f8 DF62 str r7, [r3, #44]
913 .L53:
711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
914 .loc 1 711 0
915 01fa 3C4A ldr r2, .L163+4
916 01fc 5369 ldr r3, [r2, #20]
917 01fe 43F40033 orr r3, r3, #131072
918 0202 5361 str r3, [r2, #20]
714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
919 .loc 1 714 0
920 0204 4FF47A70 mov r0, #1000
921 .LVL88:
922 0208 FFF7FEFF bl FLASH_WaitForLastOperation
923 .LVL89:
924 .LBE72:
925 .LBE74:
319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
926 .loc 1 319 0
927 020c 071C adds r7, r0, #0
928 020e 2368 ldr r3, [r4]
929 0210 18BF it ne
930 0212 0127 movne r7, #1
931 0214 05E7 b .L50
932 .LVL90:
933 .L157:
934 .LBB75:
935 .LBB76:
1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return status;
1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Configure the Securable memory area into Option Bytes.
1093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note To configure any option bytes, the option lock bit OPTLOCK must be
1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * cleared with the call of HAL_FLASH_OB_Unlock() function.
1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note New option bytes configuration will be taken into account in two cases:
1096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after an option bytes launch through the call of HAL_FLASH_OB_Launch()
1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after a power reset (BOR reset or exit from Standby/Shutdown modes)
1098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param SecBank specifies bank of securable memory area to be configured.
1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: Securable memory in Bank1 to be configured
1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: Securable memory in Bank2 to be configured (*)
1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note (*) availability depends on devices
1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param SecSize specifies the number of pages of the Securable memory area,
1104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * starting from first page of the bank.
1105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be page number between 0 and (max number of pages in the bank - 1)
1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval HAL Status
1107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
ARM GAS /tmp/cc6KszU6.s page 40
1108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_SecMemConfig(uint32_t SecBank, uint32_t SecSize)
1109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status;
1111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */
1113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_FLASH_BANK_EXCLUSIVE(SecBank));
1114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_SECMEM_SIZE(SecSize));
1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (status == HAL_OK)
1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Configure the write protected area */
1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (SecBank == FLASH_BANK_1)
1123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->SEC1R, FLASH_SEC1R_SEC_SIZE1, SecSize);
1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK)
1127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (SecBank == FLASH_BANK_2)
1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->SEC2R, FLASH_SEC2R_SEC_SIZE2, SecSize);
1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Nothing to do */
1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set OPTSTRT Bit */
1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTSTRT);
1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return status;
1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Configure the Boot Lock into Option Bytes.
1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note To configure any option bytes, the option lock bit OPTLOCK must be
1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * cleared with the call of HAL_FLASH_OB_Unlock() function.
1151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note New option bytes configuration will be taken into account in two cases:
1152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after an option bytes launch through the call of HAL_FLASH_OB_Launch()
1153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * - after a power reset (BOR reset or exit from Standby/Shutdown modes)
1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param BootLockConfig specifies the boot lock configuration.
1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_BOOT_LOCK_ENABLE: Enable Boot Lock
1157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_BOOT_LOCK_DISABLE: Disable Boot Lock
1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *
1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval HAL_Status
1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static HAL_StatusTypeDef FLASH_OB_BootLockConfig(uint32_t BootLockConfig)
1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** HAL_StatusTypeDef status;
1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
ARM GAS /tmp/cc6KszU6.s page 41
1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */
1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** assert_param(IS_OB_BOOT_LOCK(BootLockConfig));
1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
936 .loc 1 1169 0
937 0216 4FF47A70 mov r0, #1000
938 .LBE76:
939 .LBE75:
386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
940 .loc 1 386 0
941 021a A46A ldr r4, [r4, #40]
942 .LVL91:
943 .LBB79:
944 .LBB77:
945 .loc 1 1169 0
946 021c FFF7FEFF bl FLASH_WaitForLastOperation
947 .LVL92:
1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (status == HAL_OK)
948 .loc 1 1171 0
949 0220 48B3 cbz r0, .L161
950 .LVL93:
951 .L84:
952 .LBE77:
953 .LBE79:
388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
954 .loc 1 388 0
955 0222 0127 movs r7, #1
956 0224 0AE7 b .L83
957 .LVL94:
958 .L156:
959 .LBB80:
960 .LBB81:
1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
961 .loc 1 1117 0
962 0226 4FF47A70 mov r0, #1000
963 .LBE81:
964 .LBE80:
376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
965 .loc 1 376 0
966 022a D4E90B58 ldrd r5, r8, [r4, #44]
967 .LVL95:
968 .LBB83:
969 .LBB82:
1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
970 .loc 1 1117 0
971 022e FFF7FEFF bl FLASH_WaitForLastOperation
972 .LVL96:
1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
973 .loc 1 1119 0
974 0232 B8B9 cbnz r0, .L162
1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
975 .loc 1 1122 0
976 0234 012D cmp r5, #1
977 0236 06D1 bne .L81
1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
ARM GAS /tmp/cc6KszU6.s page 42
978 .loc 1 1124 0
979 0238 2C4A ldr r2, .L163+4
980 023a 136F ldr r3, [r2, #112]
981 023c 23F07F03 bic r3, r3, #127
982 0240 43EA0803 orr r3, r3, r8
983 0244 1367 str r3, [r2, #112]
984 .L81:
1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
985 .loc 1 1138 0
986 0246 294A ldr r2, .L163+4
987 0248 5369 ldr r3, [r2, #20]
988 024a 43F40033 orr r3, r3, #131072
989 024e 5361 str r3, [r2, #20]
1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
990 .loc 1 1141 0
991 0250 4FF47A70 mov r0, #1000
992 .LVL97:
993 0254 FFF7FEFF bl FLASH_WaitForLastOperation
994 .LVL98:
995 0258 2368 ldr r3, [r4]
996 .LBE82:
997 .LBE83:
376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
998 .loc 1 376 0
999 025a 0028 cmp r0, #0
1000 025c 3FF4EBAE beq .L79
1001 .LVL99:
378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1002 .loc 1 378 0
1003 0260 0127 movs r7, #1
1004 0262 E8E6 b .L79
1005 .LVL100:
1006 .L162:
1007 0264 2368 ldr r3, [r4]
1008 0266 0127 movs r7, #1
1009 .LVL101:
1010 0268 E5E6 b .L79
1011 .LVL102:
1012 .L160:
335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1013 .loc 1 335 0
1014 026a 2F46 mov r7, r5
1015 .LVL103:
1016 026c 2368 ldr r3, [r4]
1017 026e D8E6 b .L50
1018 .LVL104:
1019 .L159:
1020 0270 2368 ldr r3, [r4]
355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1021 .loc 1 355 0
1022 0272 0127 movs r7, #1
1023 .LVL105:
1024 0274 DAE6 b .L57
1025 .LVL106:
1026 .L161:
1027 .LBB84:
1028 .LBB78:
ARM GAS /tmp/cc6KszU6.s page 43
1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** MODIFY_REG(FLASH->SEC1R, FLASH_SEC1R_BOOT_LOCK, BootLockConfig);
1029 .loc 1 1173 0
1030 0276 1D4A ldr r2, .L163+4
1031 0278 136F ldr r3, [r2, #112]
1032 027a 23F48033 bic r3, r3, #65536
1033 027e 2343 orrs r3, r3, r4
1034 0280 1367 str r3, [r2, #112]
1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Set OPTSTRT Bit */
1176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_OPTSTRT);
1035 .loc 1 1176 0
1036 0282 5369 ldr r3, [r2, #20]
1037 0284 43F40033 orr r3, r3, #131072
1038 0288 5361 str r3, [r2, #20]
1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Wait for last operation to be completed */
1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
1039 .loc 1 1179 0
1040 028a 4FF47A70 mov r0, #1000
1041 .LVL107:
1042 028e FFF7FEFF bl FLASH_WaitForLastOperation
1043 .LVL108:
1044 .LBE78:
1045 .LBE84:
386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1046 .loc 1 386 0
1047 0292 0028 cmp r0, #0
1048 0294 3FF4D2AE beq .L83
1049 0298 C3E7 b .L84
1050 .LVL109:
1051 .L55:
1052 .LBB85:
1053 .LBB68:
750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1054 .loc 1 750 0
1055 029a 144A ldr r2, .L163+4
1056 029c 136A ldr r3, [r2, #32]
1057 029e 23F0FF03 bic r3, r3, #255
1058 02a2 2B43 orrs r3, r3, r5
1059 02a4 1362 str r3, [r2, #32]
753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1060 .loc 1 753 0
1061 02a6 5369 ldr r3, [r2, #20]
1062 02a8 43F40033 orr r3, r3, #131072
1063 02ac 5361 str r3, [r2, #20]
756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1064 .loc 1 756 0
1065 02ae 4FF47A70 mov r0, #1000
1066 .LVL110:
1067 02b2 FFF7FEFF bl FLASH_WaitForLastOperation
1068 .LVL111:
1069 02b6 2368 ldr r3, [r4]
1070 .LBE68:
1071 .LBE85:
343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1072 .loc 1 343 0
ARM GAS /tmp/cc6KszU6.s page 44
1073 02b8 0028 cmp r0, #0
1074 02ba 3FF4B5AE beq .L54
1075 .LVL112:
345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1076 .loc 1 345 0
1077 02be 0127 movs r7, #1
1078 02c0 B2E6 b .L54
1079 .LVL113:
1080 .L85:
325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1081 .loc 1 325 0
1082 02c2 0227 movs r7, #2
396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1083 .loc 1 396 0
1084 02c4 3846 mov r0, r7
1085 .LVL114:
1086 02c6 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc}
1087 .LVL115:
1088 .L158:
1089 02ca 2368 ldr r3, [r4]
367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1090 .loc 1 367 0
1091 02cc 0127 movs r7, #1
1092 .LVL116:
1093 02ce AFE6 b .L75
1094 .LVL117:
1095 .L52:
1096 .LBB86:
1097 .LBB73:
691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1098 .loc 1 691 0
1099 02d0 B8F1010F cmp r8, #1
1100 02d4 91D1 bne .L53
693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1101 .loc 1 693 0
1102 02d6 054B ldr r3, .L163+4
1103 02d8 47EA0947 orr r7, r7, r9, lsl #16
1104 .LVL118:
1105 02dc 1F63 str r7, [r3, #48]
1106 02de 8CE7 b .L53
1107 .LVL119:
1108 .L87:
1109 .LBE73:
1110 .LBE86:
1111 .LBB87:
1112 .LBB63:
786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t optr_reg_mask = 0;
1113 .loc 1 786 0
1114 02e0 1A46 mov r2, r3
798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1115 .loc 1 798 0
1116 02e2 4FF48050 mov r0, #4096
1117 .LVL120:
1118 02e6 F7E6 b .L59
1119 .L164:
1120 .align 2
1121 .L163:
ARM GAS /tmp/cc6KszU6.s page 45
1122 02e8 00000000 .word pFlash
1123 02ec 00200240 .word 1073881088
1124 02f0 00C0FFFF .word -16384
1125 .LBE63:
1126 .LBE87:
1127 .cfi_endproc
1128 .LFE331:
1130 .section .text.HAL_FLASHEx_OBGetConfig,"ax",%progbits
1131 .align 1
1132 .p2align 2,,3
1133 .global HAL_FLASHEx_OBGetConfig
1134 .syntax unified
1135 .thumb
1136 .thumb_func
1137 .fpu fpv4-sp-d16
1139 HAL_FLASHEx_OBGetConfig:
1140 .LFB332:
407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pOBInit->OptionType = (OPTIONBYTE_RDP | OPTIONBYTE_USER);
1141 .loc 1 407 0
1142 .cfi_startproc
1143 @ args = 0, pretend = 0, frame = 0
1144 @ frame_needed = 0, uses_anonymous_args = 0
1145 @ link register save eliminated.
1146 .LVL121:
414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
1147 .loc 1 414 0
1148 0000 4268 ldr r2, [r0, #4]
408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1149 .loc 1 408 0
1150 0002 0623 movs r3, #6
414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
1151 .loc 1 414 0
1152 0004 012A cmp r2, #1
407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** pOBInit->OptionType = (OPTIONBYTE_RDP | OPTIONBYTE_USER);
1153 .loc 1 407 0
1154 0006 10B4 push {r4}
1155 .LCFI6:
1156 .cfi_def_cfa_offset 4
1157 .cfi_offset 4, -4
408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1158 .loc 1 408 0
1159 0008 0360 str r3, [r0]
414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
1160 .loc 1 414 0
1161 000a 3AD9 bls .L178
1162 .L166:
1163 .LBB88:
1164 .LBB89:
1180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return status;
1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Return the Securable memory area configuration into Option Bytes.
1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param[in] SecBank specifies the bank where securable memory area is located.
1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
ARM GAS /tmp/cc6KszU6.s page 46
1189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_1: Securable memory in Bank1
1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg FLASH_BANK_2: Securable memory in Bank2 (*)
1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note (*) availability depends on devices
1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param[out] SecSize specifies the number of pages used in the securable
1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** memory area of the bank.
1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval None
1195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static void FLASH_OB_GetSecMem(uint32_t SecBank, uint32_t *SecSize)
1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get the configuration of the securable memory area */
1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (SecBank == FLASH_BANK_1)
1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *SecSize = READ_BIT(FLASH->SEC1R, FLASH_SEC1R_SEC_SIZE1);
1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK)
1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (SecBank == FLASH_BANK_2)
1205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *SecSize = READ_BIT(FLASH->SEC2R, FLASH_SEC2R_SEC_SIZE2);
1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Nothing to do */
1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
1216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Return the Boot Lock configuration into Option Byte.
1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval BootLockConfig.
1218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This return value can be one of the following values:
1219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_BOOT_LOCK_ENABLE: Boot lock enabled
1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_BOOT_LOCK_DISABLE: Boot lock disabled
1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetBootLock(void)
1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return (READ_REG(FLASH->SEC1R) & FLASH_SEC1R_BOOT_LOCK);
1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Return the Write Protection configuration into Option Bytes.
1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param[in] WRPArea specifies the area to be returned.
1230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter can be one of the following values:
1231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_WRPAREA_BANK1_AREAA: Flash Bank 1 Area A
1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_WRPAREA_BANK1_AREAB: Flash Bank 1 Area B
1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_WRPAREA_BANK2_AREAA: Flash Bank 2 Area A (don't apply to STM32G43x/STM32G44x
1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_WRPAREA_BANK2_AREAB: Flash Bank 2 Area B (don't apply to STM32G43x/STM32G44x
1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param[out] WRPStartOffset specifies the address where to copied the start page
1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * of the write protected area.
1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param[out] WRDPEndOffset specifies the address where to copied the end page of
1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * the write protected area.
1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval None
1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static void FLASH_OB_GetWRP(uint32_t WRPArea, uint32_t *WRPStartOffset, uint32_t *WRDPEndOffset)
1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get the configuration of the write protected area */
1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (WRPArea == OB_WRPAREA_BANK1_AREAA)
1245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
ARM GAS /tmp/cc6KszU6.s page 47
1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRPStartOffset = READ_BIT(FLASH->WRP1AR, FLASH_WRP1AR_WRP1A_STRT);
1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRDPEndOffset = (READ_BIT(FLASH->WRP1AR, FLASH_WRP1AR_WRP1A_END) >> FLASH_WRP1AR_WRP1A_END_Pos
1248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (WRPArea == OB_WRPAREA_BANK1_AREAB)
1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRPStartOffset = READ_BIT(FLASH->WRP1BR, FLASH_WRP1BR_WRP1B_STRT);
1252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRDPEndOffset = (READ_BIT(FLASH->WRP1BR, FLASH_WRP1BR_WRP1B_END) >> FLASH_WRP1BR_WRP1B_END_Pos
1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK)
1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (WRPArea == OB_WRPAREA_BANK2_AREAA)
1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRPStartOffset = READ_BIT(FLASH->WRP2AR, FLASH_WRP2AR_WRP2A_STRT);
1258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRDPEndOffset = (READ_BIT(FLASH->WRP2AR, FLASH_WRP2AR_WRP2A_END) >> FLASH_WRP2AR_WRP2A_END_Pos
1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (WRPArea == OB_WRPAREA_BANK2_AREAB)
1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRPStartOffset = READ_BIT(FLASH->WRP2BR, FLASH_WRP2BR_WRP2B_STRT);
1263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRDPEndOffset = (READ_BIT(FLASH->WRP2BR, FLASH_WRP2BR_WRP2B_END) >> FLASH_WRP2BR_WRP2B_END_Pos
1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Nothing to do */
1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Return the FLASH Read Protection level into Option Bytes.
1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval RDP_Level
1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This return value can be one of the following values:
1276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_0: No protection
1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_1: Read protection of the memory
1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @arg OB_RDP_LEVEL_2: Full chip protection
1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
1280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetRDP(void)
1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t rdp_level = READ_BIT(FLASH->OPTR, FLASH_OPTR_RDP);
1165 .loc 1 1282 0
1166 000c 284A ldr r2, .L179
1167 000e 126A ldr r2, [r2, #32]
1168 0010 D2B2 uxtb r2, r2
1169 .LVL122:
1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if ((rdp_level != OB_RDP_LEVEL_0) && (rdp_level != OB_RDP_LEVEL_2))
1170 .loc 1 1284 0
1171 0012 AA2A cmp r2, #170
1172 0014 02D0 beq .L168
1285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return (OB_RDP_LEVEL_1);
1173 .loc 1 1286 0
1174 0016 CC2A cmp r2, #204
1175 0018 18BF it ne
1176 001a BB22 movne r2, #187
1177 .LVL123:
1178 .L168:
1179 .LBE89:
1180 .LBE88:
ARM GAS /tmp/cc6KszU6.s page 48
1181 .LBB90:
1182 .LBB91:
1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return rdp_level;
1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Return the FLASH User Option Byte value.
1296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval OB_user_config
1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This return value is a combination of @ref FLASH_OB_USER_BOR_LEVEL,
1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_nRST_STOP, @ref FLASH_OB_USER_nRST_STANDBY,
1299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_nRST_SHUTDOWN, @ref FLASH_OB_USER_IWDG_SW,
1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_IWDG_STOP, @ref FLASH_OB_USER_IWDG_STANDBY,
1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_WWDG_SW, @ref FLASH_OB_USER_WWDG_SW,
1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_BFB2 (*), @ref FLASH_OB_USER_DBANK (*),
1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_nBOOT1, @ref FLASH_OB_USER_SRAM_PE,
1304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_CCMSRAM_RST, @ref OB_USER_nSWBOOT0,@ref FLASH_OB_USER_nBOOT0,
1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @ref FLASH_OB_USER_NRST_MODE, @ref FLASH_OB_USER_INTERNAL_RESET_HOLDER
1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @note (*) availability depends on devices
1307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
1308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static uint32_t FLASH_OB_GetUser(void)
1309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t user_config = READ_REG(FLASH->OPTR);
1183 .loc 1 1310 0
1184 001c 2449 ldr r1, .L179
1185 .LBE91:
1186 .LBE90:
423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1187 .loc 1 423 0
1188 001e 0261 str r2, [r0, #16]
1189 .LBB94:
1190 .LBB92:
1191 .loc 1 1310 0
1192 0020 0A6A ldr r2, [r1, #32]
1193 .LBE92:
1194 .LBE94:
431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
1195 .loc 1 431 0
1196 0022 C469 ldr r4, [r0, #28]
1197 .LBB95:
1198 .LBB93:
1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** CLEAR_BIT(user_config, FLASH_OPTR_RDP);
1199 .loc 1 1311 0
1200 0024 22F0FF02 bic r2, r2, #255
1201 .LBE93:
1202 .LBE95:
431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
1203 .loc 1 431 0
1204 0028 012C cmp r4, #1
426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1205 .loc 1 426 0
1206 002a 8261 str r2, [r0, #24]
431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
1207 .loc 1 431 0
ARM GAS /tmp/cc6KszU6.s page 49
1208 002c 14D1 bne .L169
1209 .LBB96:
1210 .LBB97:
1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** return user_config;
1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /**
1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @brief Return the FLASH PCROP configuration into Option Bytes.
1318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param[in,out] PCROPConfig specifies the configuration (Bank to be configured and PCROP_RDP opt
1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * This parameter must be a combination of FLASH_BANK_1 or FLASH_BANK_2
1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * with OB_PCROP_RDP_NOT_ERASE or OB_PCROP_RDP_ERASE.
1321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param[out] PCROPStartAddr specifies the address where to copied the start address
1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * of the Proprietary code readout protection.
1323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @param[out] PCROPEndAddr specifies the address where to copied the end address of
1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * the Proprietary code readout protection.
1325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** * @retval None
1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** */
1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** static void FLASH_OB_GetPCROP(uint32_t *PCROPConfig, uint32_t *PCROPStartAddr, uint32_t *PCROPEndAd
1328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t reg_value;
1330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t bank1_addr;
1331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK)
1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** uint32_t bank2_addr;
1333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get the information about the bank swapping */
1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(SYSCFG->MEMRMP, SYSCFG_MEMRMP_FB_MODE) == 0U)
1336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** bank1_addr = FLASH_BASE;
1338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** bank2_addr = FLASH_BASE + FLASH_BANK_SIZE;
1339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
1341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** bank1_addr = FLASH_BASE + FLASH_BANK_SIZE;
1343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** bank2_addr = FLASH_BASE;
1344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #else
1346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** bank1_addr = FLASH_BASE;
1347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
1348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK)
1350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (READ_BIT(FLASH->OPTR, FLASH_OPTR_DBANK) == 0U)
1351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (((*PCROPConfig) & FLASH_BANK_BOTH) == FLASH_BANK_1)
1353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = (READ_REG(FLASH->PCROP1SR) & FLASH_PCROP1SR_PCROP1_STRT);
1355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PCROPStartAddr = (reg_value << 4) + FLASH_BASE;
1356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = (READ_REG(FLASH->PCROP1ER) & FLASH_PCROP1ER_PCROP1_END);
1358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PCROPEndAddr = (reg_value << 4) + FLASH_BASE;
1359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (((*PCROPConfig) & FLASH_BANK_BOTH) == FLASH_BANK_2)
1361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = (READ_REG(FLASH->PCROP2SR) & FLASH_PCROP2SR_PCROP2_STRT);
1363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PCROPStartAddr = (reg_value << 4) + FLASH_BASE;
1364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = (READ_REG(FLASH->PCROP2ER) & FLASH_PCROP2ER_PCROP2_END);
ARM GAS /tmp/cc6KszU6.s page 50
1366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PCROPEndAddr = (reg_value << 4) + FLASH_BASE;
1367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
1369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Nothing to do */
1371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
1374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
1375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** if (((*PCROPConfig) & FLASH_BANK_BOTH) == FLASH_BANK_1)
1377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = (READ_REG(FLASH->PCROP1SR) & FLASH_PCROP1SR_PCROP1_STRT);
1211 .loc 1 1378 0
1212 002e 4C6A ldr r4, [r1, #36]
1379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PCROPStartAddr = (reg_value << 3) + bank1_addr;
1213 .loc 1 1379 0
1214 0030 204A ldr r2, .L179+4
1215 0032 02EAC404 and r4, r2, r4, lsl #3
1216 0036 04F10064 add r4, r4, #134217728
1217 003a 0462 str r4, [r0, #32]
1380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = (READ_REG(FLASH->PCROP1ER) & FLASH_PCROP1ER_PCROP1_END);
1218 .loc 1 1381 0
1219 003c 8C6A ldr r4, [r1, #40]
1382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PCROPEndAddr = (reg_value << 3) + bank1_addr;
1220 .loc 1 1382 0
1221 003e 02EAC402 and r2, r2, r4, lsl #3
1222 0042 02F10062 add r2, r2, #134217728
1223 0046 4262 str r2, [r0, #36]
1383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK)
1385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else if (((*PCROPConfig) & FLASH_BANK_BOTH) == FLASH_BANK_2)
1386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = (READ_REG(FLASH->PCROP2SR) & FLASH_PCROP2SR_PCROP2_STRT);
1388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PCROPStartAddr = (reg_value << 3) + bank2_addr;
1389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** reg_value = (READ_REG(FLASH->PCROP2ER) & FLASH_PCROP2ER_PCROP2_END);
1391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PCROPEndAddr = (reg_value << 3) + bank2_addr;
1392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
1394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** else
1395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Nothing to do */
1397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *PCROPConfig |= (READ_REG(FLASH->PCROP1ER) & FLASH_PCROP1ER_PCROP_RDP);
1224 .loc 1 1400 0
1225 0048 8A6A ldr r2, [r1, #40]
1226 004a 02F00042 and r2, r2, #-2147483648
1227 004e 42F00102 orr r2, r2, #1
1228 .LBE97:
1229 .LBE96:
434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get the Proprietary code readout protection */
1230 .loc 1 434 0
1231 0052 43F00803 orr r3, r3, #8
ARM GAS /tmp/cc6KszU6.s page 51
1232 .LVL124:
1233 .LBB99:
1234 .LBB98:
1235 .loc 1 1400 0
1236 0056 C261 str r2, [r0, #28]
1237 .LVL125:
1238 .L169:
1239 .LBE98:
1240 .LBE99:
439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1241 .loc 1 439 0
1242 0058 43F01002 orr r2, r3, #16
1243 .LBB100:
1244 .LBB101:
1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1245 .loc 1 1224 0
1246 005c 1449 ldr r1, .L179
1247 .LBE101:
1248 .LBE100:
439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1249 .loc 1 439 0
1250 005e 0260 str r2, [r0]
1251 .LBB104:
1252 .LBB102:
1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1253 .loc 1 1224 0
1254 0060 0A6F ldr r2, [r1, #112]
1255 .LBE102:
1256 .LBE104:
448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
1257 .loc 1 448 0
1258 0062 C46A ldr r4, [r0, #44]
1259 .LBB105:
1260 .LBB103:
1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1261 .loc 1 1224 0
1262 0064 02F48032 and r2, r2, #65536
1263 .LBE103:
1264 .LBE105:
448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
1265 .loc 1 448 0
1266 0068 012C cmp r4, #1
442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1267 .loc 1 442 0
1268 006a 8262 str r2, [r0, #40]
448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #endif
1269 .loc 1 448 0
1270 006c 06D1 bne .L165
451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_OB_GetSecMem(pOBInit->SecBank, &(pOBInit->SecSize));
1271 .loc 1 451 0
1272 006e 43F03003 orr r3, r3, #48
1273 0072 0360 str r3, [r0]
1274 .LVL126:
1275 .LBB106:
1276 .LBB107:
1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1277 .loc 1 1201 0
ARM GAS /tmp/cc6KszU6.s page 52
1278 0074 0B6F ldr r3, [r1, #112]
1279 0076 03F07F03 and r3, r3, #127
1280 007a 0363 str r3, [r0, #48]
1281 .LVL127:
1282 .L165:
1283 .LBE107:
1284 .LBE106:
454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1285 .loc 1 454 0
1286 007c 5DF8044B ldr r4, [sp], #4
1287 .LCFI7:
1288 .cfi_remember_state
1289 .cfi_restore 4
1290 .cfi_def_cfa_offset 0
1291 0080 7047 bx lr
1292 .L178:
1293 .LCFI8:
1294 .cfi_restore_state
417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Get write protection on the selected area */
1295 .loc 1 417 0
1296 0082 0723 movs r3, #7
1297 0084 0360 str r3, [r0]
1298 .LVL128:
1299 .LBB108:
1300 .LBB109:
1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRDPEndOffset = (READ_BIT(FLASH->WRP1AR, FLASH_WRP1AR_WRP1A_END) >> FLASH_WRP1AR_WRP1A_END_Pos
1301 .loc 1 1246 0
1302 0086 0A49 ldr r1, .L179
1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** {
1303 .loc 1 1244 0
1304 0088 42B9 cbnz r2, .L167
1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRDPEndOffset = (READ_BIT(FLASH->WRP1AR, FLASH_WRP1AR_WRP1A_END) >> FLASH_WRP1AR_WRP1A_END_Pos
1305 .loc 1 1246 0
1306 008a CA6A ldr r2, [r1, #44]
1307 .LVL129:
1308 008c 02F03F02 and r2, r2, #63
1309 0090 8260 str r2, [r0, #8]
1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1310 .loc 1 1247 0
1311 0092 CA6A ldr r2, [r1, #44]
1312 0094 C2F30542 ubfx r2, r2, #16, #6
1313 0098 C260 str r2, [r0, #12]
1314 009a B7E7 b .L166
1315 .LVL130:
1316 .L167:
1251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** *WRDPEndOffset = (READ_BIT(FLASH->WRP1BR, FLASH_WRP1BR_WRP1B_END) >> FLASH_WRP1BR_WRP1B_END_Pos
1317 .loc 1 1251 0
1318 009c 0A6B ldr r2, [r1, #48]
1319 .LVL131:
1320 009e 02F03F02 and r2, r2, #63
1321 00a2 8260 str r2, [r0, #8]
1252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1322 .loc 1 1252 0
1323 00a4 0A6B ldr r2, [r1, #48]
1324 00a6 C2F30542 ubfx r2, r2, #16, #6
1325 00aa C260 str r2, [r0, #12]
1326 00ac AEE7 b .L166
ARM GAS /tmp/cc6KszU6.s page 53
1327 .L180:
1328 00ae 00BF .align 2
1329 .L179:
1330 00b0 00200240 .word 1073881088
1331 00b4 F8FF0100 .word 131064
1332 .LBE109:
1333 .LBE108:
1334 .cfi_endproc
1335 .LFE332:
1337 .section .text.HAL_FLASHEx_EnableSecMemProtection,"ax",%progbits
1338 .align 1
1339 .p2align 2,,3
1340 .global HAL_FLASHEx_EnableSecMemProtection
1341 .syntax unified
1342 .thumb
1343 .thumb_func
1344 .fpu fpv4-sp-d16
1346 HAL_FLASHEx_EnableSecMemProtection:
1347 .LFB333:
467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** #if defined (FLASH_OPTR_DBANK)
1348 .loc 1 467 0
1349 .cfi_startproc
1350 @ args = 0, pretend = 0, frame = 0
1351 @ frame_needed = 0, uses_anonymous_args = 0
1352 @ link register save eliminated.
1353 .LVL132:
489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1354 .loc 1 489 0
1355 0000 034A ldr r2, .L182
1356 0002 5369 ldr r3, [r2, #20]
1357 0004 43F08053 orr r3, r3, #268435456
1358 0008 5361 str r3, [r2, #20]
493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1359 .loc 1 493 0
1360 000a 0020 movs r0, #0
1361 .LVL133:
1362 000c 7047 bx lr
1363 .L183:
1364 000e 00BF .align 2
1365 .L182:
1366 0010 00200240 .word 1073881088
1367 .cfi_endproc
1368 .LFE333:
1370 .section .text.HAL_FLASHEx_EnableDebugger,"ax",%progbits
1371 .align 1
1372 .p2align 2,,3
1373 .global HAL_FLASHEx_EnableDebugger
1374 .syntax unified
1375 .thumb
1376 .thumb_func
1377 .fpu fpv4-sp-d16
1379 HAL_FLASHEx_EnableDebugger:
1380 .LFB334:
501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH->ACR |= FLASH_ACR_DBG_SWEN;
1381 .loc 1 501 0
1382 .cfi_startproc
1383 @ args = 0, pretend = 0, frame = 0
ARM GAS /tmp/cc6KszU6.s page 54
1384 @ frame_needed = 0, uses_anonymous_args = 0
1385 @ link register save eliminated.
502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1386 .loc 1 502 0
1387 0000 024A ldr r2, .L185
1388 0002 1368 ldr r3, [r2]
1389 0004 43F48023 orr r3, r3, #262144
1390 0008 1360 str r3, [r2]
503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1391 .loc 1 503 0
1392 000a 7047 bx lr
1393 .L186:
1394 .align 2
1395 .L185:
1396 000c 00200240 .word 1073881088
1397 .cfi_endproc
1398 .LFE334:
1400 .section .text.HAL_FLASHEx_DisableDebugger,"ax",%progbits
1401 .align 1
1402 .p2align 2,,3
1403 .global HAL_FLASHEx_DisableDebugger
1404 .syntax unified
1405 .thumb
1406 .thumb_func
1407 .fpu fpv4-sp-d16
1409 HAL_FLASHEx_DisableDebugger:
1410 .LFB335:
513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH->ACR &= ~FLASH_ACR_DBG_SWEN;
1411 .loc 1 513 0
1412 .cfi_startproc
1413 @ args = 0, pretend = 0, frame = 0
1414 @ frame_needed = 0, uses_anonymous_args = 0
1415 @ link register save eliminated.
514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1416 .loc 1 514 0
1417 0000 024A ldr r2, .L188
1418 0002 1368 ldr r3, [r2]
1419 0004 23F48023 bic r3, r3, #262144
1420 0008 1360 str r3, [r2]
515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1421 .loc 1 515 0
1422 000a 7047 bx lr
1423 .L189:
1424 .align 2
1425 .L188:
1426 000c 00200240 .word 1073881088
1427 .cfi_endproc
1428 .LFE335:
1430 .section .text.FLASH_PageErase,"ax",%progbits
1431 .align 1
1432 .p2align 2,,3
1433 .global FLASH_PageErase
1434 .syntax unified
1435 .thumb
1436 .thumb_func
1437 .fpu fpv4-sp-d16
1439 FLASH_PageErase:
ARM GAS /tmp/cc6KszU6.s page 55
1440 .LFB337:
586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Check the parameters */
1441 .loc 1 586 0
1442 .cfi_startproc
1443 @ args = 0, pretend = 0, frame = 0
1444 @ frame_needed = 0, uses_anonymous_args = 0
1445 @ link register save eliminated.
1446 .LVL134:
611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_PER);
1447 .loc 1 611 0
1448 0000 084B ldr r3, .L191
1449 0002 5A69 ldr r2, [r3, #20]
1450 0004 C000 lsls r0, r0, #3
1451 .LVL135:
1452 0006 22F4FC72 bic r2, r2, #504
1453 000a 00F4FF60 and r0, r0, #2040
1454 000e 1043 orrs r0, r0, r2
1455 0010 5861 str r0, [r3, #20]
612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** SET_BIT(FLASH->CR, FLASH_CR_STRT);
1456 .loc 1 612 0
1457 0012 5A69 ldr r2, [r3, #20]
1458 0014 42F00202 orr r2, r2, #2
1459 0018 5A61 str r2, [r3, #20]
613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1460 .loc 1 613 0
1461 001a 5A69 ldr r2, [r3, #20]
1462 001c 42F48032 orr r2, r2, #65536
1463 0020 5A61 str r2, [r3, #20]
614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1464 .loc 1 614 0
1465 0022 7047 bx lr
1466 .L192:
1467 .align 2
1468 .L191:
1469 0024 00200240 .word 1073881088
1470 .cfi_endproc
1471 .LFE337:
1473 .section .text.FLASH_FlushCaches,"ax",%progbits
1474 .align 1
1475 .p2align 2,,3
1476 .global FLASH_FlushCaches
1477 .syntax unified
1478 .thumb
1479 .thumb_func
1480 .fpu fpv4-sp-d16
1482 FLASH_FlushCaches:
1483 .LFB338:
621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** FLASH_CacheTypeDef cache = pFlash.CacheToReactivate;
1484 .loc 1 621 0
1485 .cfi_startproc
1486 @ args = 0, pretend = 0, frame = 0
1487 @ frame_needed = 0, uses_anonymous_args = 0
1488 @ link register save eliminated.
622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1489 .loc 1 622 0
1490 0000 1349 ldr r1, .L196
1491 0002 0B7F ldrb r3, [r1, #28] @ zero_extendqisi2
ARM GAS /tmp/cc6KszU6.s page 56
1492 0004 DBB2 uxtb r3, r3
1493 .LVL136:
625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (cache == FLASH_CACHE_ICACHE_DCACHE_ENABLED))
1494 .loc 1 625 0
1495 0006 03F0FD02 and r2, r3, #253
1496 000a 012A cmp r2, #1
1497 000c 0CD1 bne .L194
629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Enable instruction cache */
1498 .loc 1 629 0
1499 000e 114A ldr r2, .L196+4
1500 0010 1068 ldr r0, [r2]
1501 0012 40F40060 orr r0, r0, #2048
1502 0016 1060 str r0, [r2]
1503 0018 1068 ldr r0, [r2]
1504 001a 20F40060 bic r0, r0, #2048
1505 001e 1060 str r0, [r2]
631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1506 .loc 1 631 0
1507 0020 1068 ldr r0, [r2]
1508 0022 40F40070 orr r0, r0, #512
1509 0026 1060 str r0, [r2]
1510 .L194:
635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** (cache == FLASH_CACHE_ICACHE_DCACHE_ENABLED))
1511 .loc 1 635 0
1512 0028 023B subs r3, r3, #2
1513 .LVL137:
1514 002a 012B cmp r3, #1
1515 002c 0CD8 bhi .L195
639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** /* Enable data cache */
1516 .loc 1 639 0
1517 002e 094B ldr r3, .L196+4
1518 .LVL138:
1519 0030 1A68 ldr r2, [r3]
1520 0032 42F48052 orr r2, r2, #4096
1521 0036 1A60 str r2, [r3]
1522 0038 1A68 ldr r2, [r3]
1523 003a 22F48052 bic r2, r2, #4096
1524 003e 1A60 str r2, [r3]
641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1525 .loc 1 641 0
1526 0040 1A68 ldr r2, [r3]
1527 0042 42F48062 orr r2, r2, #1024
1528 0046 1A60 str r2, [r3]
1529 .L195:
645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c **** }
1530 .loc 1 645 0
1531 0048 0023 movs r3, #0
1532 004a 0B77 strb r3, [r1, #28]
646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash_ex.c ****
1533 .loc 1 646 0
1534 004c 7047 bx lr
1535 .L197:
1536 004e 00BF .align 2
1537 .L196:
1538 0050 00000000 .word pFlash
1539 0054 00200240 .word 1073881088
1540 .cfi_endproc
ARM GAS /tmp/cc6KszU6.s page 57
1541 .LFE338:
1543 .text
1544 .Letext0:
1545 .file 2 "/usr/include/newlib/machine/_default_types.h"
1546 .file 3 "/usr/include/newlib/sys/_stdint.h"
1547 .file 4 "Drivers/CMSIS/Include/core_cm4.h"
1548 .file 5 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h"
1549 .file 6 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h"
1550 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h"
1551 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h"
1552 .file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h"
1553 .file 10 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h"
ARM GAS /tmp/cc6KszU6.s page 58
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32g4xx_hal_flash_ex.c
/tmp/cc6KszU6.s:16 .text.HAL_FLASHEx_Erase:0000000000000000 $t
/tmp/cc6KszU6.s:24 .text.HAL_FLASHEx_Erase:0000000000000000 HAL_FLASHEx_Erase
/tmp/cc6KszU6.s:288 .text.HAL_FLASHEx_Erase:0000000000000158 $d
/tmp/cc6KszU6.s:294 .text.HAL_FLASHEx_Erase_IT:0000000000000000 $t
/tmp/cc6KszU6.s:302 .text.HAL_FLASHEx_Erase_IT:0000000000000000 HAL_FLASHEx_Erase_IT
/tmp/cc6KszU6.s:483 .text.HAL_FLASHEx_Erase_IT:00000000000000b8 $d
/tmp/cc6KszU6.s:489 .text.HAL_FLASHEx_OBProgram:0000000000000000 $t
/tmp/cc6KszU6.s:497 .text.HAL_FLASHEx_OBProgram:0000000000000000 HAL_FLASHEx_OBProgram
/tmp/cc6KszU6.s:1122 .text.HAL_FLASHEx_OBProgram:00000000000002e8 $d
/tmp/cc6KszU6.s:1131 .text.HAL_FLASHEx_OBGetConfig:0000000000000000 $t
/tmp/cc6KszU6.s:1139 .text.HAL_FLASHEx_OBGetConfig:0000000000000000 HAL_FLASHEx_OBGetConfig
/tmp/cc6KszU6.s:1330 .text.HAL_FLASHEx_OBGetConfig:00000000000000b0 $d
/tmp/cc6KszU6.s:1338 .text.HAL_FLASHEx_EnableSecMemProtection:0000000000000000 $t
/tmp/cc6KszU6.s:1346 .text.HAL_FLASHEx_EnableSecMemProtection:0000000000000000 HAL_FLASHEx_EnableSecMemProtection
/tmp/cc6KszU6.s:1366 .text.HAL_FLASHEx_EnableSecMemProtection:0000000000000010 $d
/tmp/cc6KszU6.s:1371 .text.HAL_FLASHEx_EnableDebugger:0000000000000000 $t
/tmp/cc6KszU6.s:1379 .text.HAL_FLASHEx_EnableDebugger:0000000000000000 HAL_FLASHEx_EnableDebugger
/tmp/cc6KszU6.s:1396 .text.HAL_FLASHEx_EnableDebugger:000000000000000c $d
/tmp/cc6KszU6.s:1401 .text.HAL_FLASHEx_DisableDebugger:0000000000000000 $t
/tmp/cc6KszU6.s:1409 .text.HAL_FLASHEx_DisableDebugger:0000000000000000 HAL_FLASHEx_DisableDebugger
/tmp/cc6KszU6.s:1426 .text.HAL_FLASHEx_DisableDebugger:000000000000000c $d
/tmp/cc6KszU6.s:1431 .text.FLASH_PageErase:0000000000000000 $t
/tmp/cc6KszU6.s:1439 .text.FLASH_PageErase:0000000000000000 FLASH_PageErase
/tmp/cc6KszU6.s:1469 .text.FLASH_PageErase:0000000000000024 $d
/tmp/cc6KszU6.s:1474 .text.FLASH_FlushCaches:0000000000000000 $t
/tmp/cc6KszU6.s:1482 .text.FLASH_FlushCaches:0000000000000000 FLASH_FlushCaches
/tmp/cc6KszU6.s:1538 .text.FLASH_FlushCaches:0000000000000050 $d
UNDEFINED SYMBOLS
FLASH_WaitForLastOperation
pFlash