ams-master/Software/build/debug/stm32h7xx_hal_flash.lst
2025-03-21 15:35:07 +01:00

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