Files
stm32f4_makefile/build/stm32f4xx_hal_flash.lst
2025-06-25 11:12:35 +08:00

2577 lines
158 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

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

ARM GAS /tmp/ccfOHnGG.s page 1
1 .cpu cortex-m4
2 .arch armv7e-m
3 .fpu fpv4-sp-d16
4 .eabi_attribute 27, 1
5 .eabi_attribute 28, 1
6 .eabi_attribute 20, 1
7 .eabi_attribute 21, 1
8 .eabi_attribute 23, 3
9 .eabi_attribute 24, 1
10 .eabi_attribute 25, 1
11 .eabi_attribute 26, 1
12 .eabi_attribute 30, 1
13 .eabi_attribute 34, 1
14 .eabi_attribute 18, 4
15 .file "stm32f4xx_hal_flash.c"
16 .text
17 .Ltext0:
18 .cfi_sections .debug_frame
19 .section .text.FLASH_Program_DoubleWord,"ax",%progbits
20 .align 1
21 .syntax unified
22 .thumb
23 .thumb_func
25 FLASH_Program_DoubleWord:
26 .LVL0:
27 .LFB146:
28 .file 1 "Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c"
1:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
2:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ******************************************************************************
3:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @file stm32f4xx_hal_flash.c
4:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @author MCD Application Team
5:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief FLASH HAL module driver.
6:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * This file provides firmware functions to manage the following
7:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * functionalities of the internal FLASH memory:
8:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * + Program operations functions
9:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * + Memory Control functions
10:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * + Peripheral Errors functions
11:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
12:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @verbatim
13:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ==============================================================================
14:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ##### FLASH peripheral features #####
15:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ==============================================================================
16:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
17:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..] The Flash memory interface manages CPU AHB I-Code and D-Code accesses
18:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** to the Flash memory. It implements the erase and program Flash memory operations
19:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** and the read and write protection mechanisms.
20:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
21:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..] The Flash memory interface accelerates code execution with a system of instruction
22:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** prefetch and cache lines.
23:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
24:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..] The FLASH main features are:
25:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Flash memory read operations
26:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Flash memory program/erase operations
27:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Read / write protections
28:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Prefetch on I-Code
29:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) 64 cache lines of 128 bits on I-Code
30:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) 8 cache lines of 128 bits on D-Code
ARM GAS /tmp/ccfOHnGG.s page 2
31:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
32:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
33:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ##### How to use this driver #####
34:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ==============================================================================
35:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..]
36:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** This driver provides functions and macros to configure and program the FLASH
37:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** memory of all STM32F4xx devices.
38:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
39:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (#) FLASH Memory IO Programming functions:
40:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (++) Lock and Unlock the FLASH interface using HAL_FLASH_Unlock() and
41:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_FLASH_Lock() functions
42:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (++) Program functions: byte, half word, word and double word
43:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (++) There Two modes of programming :
44:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+++) Polling mode using HAL_FLASH_Program() function
45:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+++) Interrupt mode using HAL_FLASH_Program_IT() function
46:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
47:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (#) Interrupts and flags management functions :
48:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (++) Handle FLASH interrupts by calling HAL_FLASH_IRQHandler()
49:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (++) Wait for last FLASH operation according to its status
50:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (++) Get error flag status by calling HAL_SetErrorCode()
51:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
52:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..]
53:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** In addition to these functions, this driver includes a set of macros allowing
54:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** to handle the following operations:
55:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Set the latency
56:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Enable/Disable the prefetch buffer
57:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Enable/Disable the Instruction cache and the Data cache
58:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Reset the Instruction cache and the Data cache
59:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Enable/Disable the FLASH interrupts
60:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (+) Monitor the FLASH flags status
61:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
62:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @endverbatim
63:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ******************************************************************************
64:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @attention
65:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
66:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * Copyright (c) 2017 STMicroelectronics.
67:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * All rights reserved.
68:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
69:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * This software is licensed under terms that can be found in the LICENSE file in
70:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * the root directory of this software component.
71:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
72:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ******************************************************************************
73:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
74:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
75:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Includes ------------------------------------------------------------------*/
76:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #include "stm32f4xx_hal.h"
77:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
78:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @addtogroup STM32F4xx_HAL_Driver
79:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{
80:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
81:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
82:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @defgroup FLASH FLASH
83:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief FLASH HAL module driver
84:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{
85:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
86:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
87:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #ifdef HAL_FLASH_MODULE_ENABLED
ARM GAS /tmp/ccfOHnGG.s page 3
88:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
89:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Private typedef -----------------------------------------------------------*/
90:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Private define ------------------------------------------------------------*/
91:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @addtogroup FLASH_Private_Constants
92:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{
93:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
94:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #define FLASH_TIMEOUT_VALUE 50000U /* 50 s */
95:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
96:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @}
97:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
98:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Private macro -------------------------------------------------------------*/
99:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Private variables ---------------------------------------------------------*/
100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @addtogroup FLASH_Private_Variables
101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{
102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Variable used for Erase sectors under interruption */
104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_ProcessTypeDef pFlash;
105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @}
107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Private function prototypes -----------------------------------------------*/
110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @addtogroup FLASH_Private_Functions
111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{
112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Program operations */
114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data);
115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_Word(uint32_t Address, uint32_t Data);
116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data);
117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_Byte(uint32_t Address, uint8_t Data);
118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_SetErrorCode(void);
119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout);
121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @}
123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Exported functions --------------------------------------------------------*/
126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions FLASH Exported Functions
127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{
128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group1 Programming operation functions
131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Programming operation functions
132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @verbatim
134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ===============================================================================
135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ##### Programming operation functions #####
136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ===============================================================================
137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..]
138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** This subsection provides a set of functions allowing to manage the FLASH
139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** program operations.
140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @endverbatim
142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{
143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
ARM GAS /tmp/ccfOHnGG.s page 4
145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Program byte, halfword, word or double word at a specified address
147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param TypeProgram Indicate the way to program at a specified address.
148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * This parameter can be a value of @ref FLASH_Type_Program
149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Address specifies the address to be programmed.
150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Data specifies the data to be programmed
151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL_StatusTypeDef HAL Status
153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status;
157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Process Locked */
159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_LOCK(&pFlash);
160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check the parameters */
162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram));
163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Wait for last operation to be completed */
165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (status == HAL_OK)
168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (TypeProgram == FLASH_TYPEPROGRAM_BYTE)
170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program byte (8-bit) at a specified address.*/
172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_Byte(Address, (uint8_t) Data);
173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else if (TypeProgram == FLASH_TYPEPROGRAM_HALFWORD)
175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program halfword (16-bit) at a specified address.*/
177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_HalfWord(Address, (uint16_t) Data);
178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else if (TypeProgram == FLASH_TYPEPROGRAM_WORD)
180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program word (32-bit) at a specified address.*/
182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_Word(Address, (uint32_t) Data);
183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else
185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program double word (64-bit) at a specified address.*/
187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_DoubleWord(Address, Data);
188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Wait for last operation to be completed */
191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* If the program operation is completed, disable the PG Bit */
194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR &= (~FLASH_CR_PG);
195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Process Unlocked */
198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_UNLOCK(&pFlash);
199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return status;
201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
ARM GAS /tmp/ccfOHnGG.s page 5
202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Program byte, halfword, word or double word at a specified address with interrupt ena
205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param TypeProgram Indicate the way to program at a specified address.
206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * This parameter can be a value of @ref FLASH_Type_Program
207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Address specifies the address to be programmed.
208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Data specifies the data to be programmed
209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL Status
211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK;
215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check the parameters */
217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram));
218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Enable End of FLASH Operation interrupt */
220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP);
221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Enable Error source interrupt */
223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_ERR);
224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAM;
226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Address = Address;
227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (TypeProgram == FLASH_TYPEPROGRAM_BYTE)
229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program byte (8-bit) at a specified address.*/
231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_Byte(Address, (uint8_t) Data);
232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else if (TypeProgram == FLASH_TYPEPROGRAM_HALFWORD)
234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program halfword (16-bit) at a specified address.*/
236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_HalfWord(Address, (uint16_t) Data);
237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else if (TypeProgram == FLASH_TYPEPROGRAM_WORD)
239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program word (32-bit) at a specified address.*/
241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_Word(Address, (uint32_t) Data);
242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else
244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program double word (64-bit) at a specified address.*/
246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Program_DoubleWord(Address, Data);
247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return status;
250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief This function handles FLASH interrupt request.
254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None
255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** void HAL_FLASH_IRQHandler(void)
257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** uint32_t addresstmp = 0U;
ARM GAS /tmp/ccfOHnGG.s page 6
259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check FLASH operation error flags */
261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #if defined(FLASH_SR_RDERR)
262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG((FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \
263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR | FLASH_FLAG_RDERR)) != RESET)
264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #else
265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG((FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \
266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET)
267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #endif /* FLASH_SR_RDERR */
268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (pFlash.ProcedureOnGoing == FLASH_PROC_SECTERASE)
270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*return the faulty sector*/
272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Sector;
273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Sector = 0xFFFFFFFFU;
274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else if (pFlash.ProcedureOnGoing == FLASH_PROC_MASSERASE)
276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*return the faulty bank*/
278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Bank;
279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else
281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*return the faulty address*/
283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Address;
284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Save the Error code*/
287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_SetErrorCode();
288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* FLASH error interrupt user callback */
290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_FLASH_OperationErrorCallback(addresstmp);
291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Stop the procedure ongoing*/
293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check FLASH End of Operation flag */
297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP) != RESET)
298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */
300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (pFlash.ProcedureOnGoing == FLASH_PROC_SECTERASE)
303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Nb of sector to erased can be decreased*/
305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.NbSectorsToErase--;
306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check if there are still sectors to erase*/
308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (pFlash.NbSectorsToErase != 0U)
309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Sector;
311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Indicate user which sector has been erased*/
312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(addresstmp);
313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Increment sector number*/
315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Sector++;
ARM GAS /tmp/ccfOHnGG.s page 7
316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Sector;
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Erase_Sector(addresstmp, pFlash.VoltageForErase);
318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else
320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*No more sectors to Erase, user callback can be called.*/
322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Reset Sector and stop Erase sectors procedure*/
323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Sector = addresstmp = 0xFFFFFFFFU;
324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Flush the caches to be sure of the data consistency */
327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FlushCaches();
328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* FLASH EOP interrupt user callback */
330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(addresstmp);
331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else
334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (pFlash.ProcedureOnGoing == FLASH_PROC_MASSERASE)
336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* MassErase ended. Return the selected bank */
338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Flush the caches to be sure of the data consistency */
339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FlushCaches();
340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* FLASH EOP interrupt user callback */
342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Bank);
343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else
345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Program ended. Return the selected address*/
347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* FLASH EOP interrupt user callback */
348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Address);
349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (pFlash.ProcedureOnGoing == FLASH_PROC_NONE)
355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Operation is completed, disable the PG, SER, SNB and MER Bits */
357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, (FLASH_CR_PG | FLASH_CR_SER | FLASH_CR_SNB | FLASH_MER_BIT));
358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Disable End of FLASH Operation interrupt */
360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_DISABLE_IT(FLASH_IT_EOP);
361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Disable Error source interrupt */
363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_DISABLE_IT(FLASH_IT_ERR);
364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief FLASH end of operation interrupt callback
369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param ReturnValue The value saved in this parameter depends on the ongoing procedure
370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * Mass Erase: Bank number which has been requested to erase
371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * Sectors Erase: Sector which has been erased
372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * (if 0xFFFFFFFFU, it means that all the selected sectors have been erased)
ARM GAS /tmp/ccfOHnGG.s page 8
373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * Program: Address which was selected for data program
374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None
375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __weak void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue)
377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */
379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** UNUSED(ReturnValue);
380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed,
381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** the HAL_FLASH_EndOfOperationCallback could be implemented in the user file
382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief FLASH operation error interrupt callback
387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param ReturnValue The value saved in this parameter depends on the ongoing procedure
388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * Mass Erase: Bank number which has been requested to erase
389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * Sectors Erase: Sector number which returned an error
390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * Program: Address which was selected for data program
391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None
392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __weak void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue)
394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */
396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** UNUSED(ReturnValue);
397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed,
398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** the HAL_FLASH_OperationErrorCallback could be implemented in the user file
399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @}
404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group2 Peripheral Control functions
407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief management functions
408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @verbatim
410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ===============================================================================
411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ##### Peripheral Control functions #####
412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ===============================================================================
413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..]
414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** This subsection provides a set of functions allowing to control the FLASH
415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** memory operations.
416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @endverbatim
418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{
419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Unlock the FLASH control register access
423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL Status
424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Unlock(void)
426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK;
428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
ARM GAS /tmp/ccfOHnGG.s page 9
430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Authorize the FLASH Registers access */
432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY1);
433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY2);
434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Verify Flash is unlocked */
436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** status = HAL_ERROR;
439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return status;
443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Locks the FLASH control register access
447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL Status
448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Lock(void)
450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Set the LOCK Bit to lock the FLASH Registers access */
452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_CR_LOCK;
453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_OK;
455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Unlock the FLASH Option Control Registers access.
459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL Status
460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void)
462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if ((FLASH->OPTCR & FLASH_OPTCR_OPTLOCK) != RESET)
464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Authorizes the Option Byte register programming */
466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->OPTKEYR = FLASH_OPT_KEY1;
467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->OPTKEYR = FLASH_OPT_KEY2;
468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** else
470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_ERROR;
472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_OK;
475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Lock the FLASH Option Control Registers access.
479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL Status
480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Lock(void)
482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Set the OPTLOCK Bit to lock the FLASH Option Byte Registers access */
484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->OPTCR |= FLASH_OPTCR_OPTLOCK;
485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_OK;
ARM GAS /tmp/ccfOHnGG.s page 10
487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Launch the option byte loading.
491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL Status
492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Launch(void)
494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Set the OPTSTRT bit in OPTCR register */
496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *(__IO uint8_t *)OPTCR_BYTE0_ADDRESS |= FLASH_OPTCR_OPTSTRT;
497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Wait for last operation to be completed */
499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return (FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE));
500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @}
504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group3 Peripheral State and Errors functions
507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Peripheral Errors functions
508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @verbatim
510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ===============================================================================
511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ##### Peripheral Errors functions #####
512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** ===============================================================================
513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** [..]
514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** This subsection permits to get in run-time Errors of the FLASH peripheral.
515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** @endverbatim
517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @{
518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Get the specific FLASH error flag.
522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval FLASH_ErrorCode: The returned value can be a combination of:
523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_RD: FLASH Read Protection error flag (PCROP)
524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_PGS: FLASH Programming Sequence error flag
525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_PGP: FLASH Programming Parallelism error flag
526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_PGA: FLASH Programming Alignment error flag
527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_WRP: FLASH Write protected error flag
528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @arg HAL_FLASH_ERROR_OPERATION: FLASH operation Error flag
529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** uint32_t HAL_FLASH_GetError(void)
531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return pFlash.ErrorCode;
533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @}
537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Wait for a FLASH operation to complete.
541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Timeout maximum flash operationtimeout
542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval HAL Status
543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
ARM GAS /tmp/ccfOHnGG.s page 11
544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout)
545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** uint32_t tickstart = 0U;
547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear Error Code */
549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset.
552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** Even if the FLASH operation fails, the BUSY flag will be reset and an error
553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** flag will be set */
554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Get tick */
555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** tickstart = HAL_GetTick();
556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** while (__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY) != RESET)
558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (Timeout != HAL_MAX_DELAY)
560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if ((Timeout == 0U) || ((HAL_GetTick() - tickstart) > Timeout))
562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_TIMEOUT;
564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check FLASH End of Operation flag */
569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP) != RESET)
570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */
572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #if defined(FLASH_SR_RDERR)
575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG((FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \
576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR | FLASH_FLAG_RDERR)) != RESET)
577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #else
578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG((FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \
579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET)
580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #endif /* FLASH_SR_RDERR */
581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Save the error code*/
583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_SetErrorCode();
584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_ERROR;
585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* If there is no error flag set */
588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_OK;
589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Program a double word (64-bit) at a specified address.
594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note This function must be used when the device voltage range is from
595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 2.7V to 3.6V and Vpp in the range 7V to 9V.
596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note If an erase and a program operations are requested simultaneously,
598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * the erase operation is performed before the program one.
599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Address specifies the address to be programmed.
ARM GAS /tmp/ccfOHnGG.s page 12
601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Data specifies the data to be programmed.
602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None
603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data)
605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
29 .loc 1 605 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.
34 .loc 1 605 1 is_stmt 0 view .LVU1
35 0000 10B4 push {r4}
36 .LCFI0:
37 .cfi_def_cfa_offset 4
38 .cfi_offset 4, -4
606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check the parameters */
607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** assert_param(IS_FLASH_ADDRESS(Address));
39 .loc 1 607 3 is_stmt 1 view .LVU2
608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* If the previous operation is completed, proceed to program the new data */
610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PSIZE);
40 .loc 1 610 3 view .LVU3
41 0002 0A49 ldr r1, .L3
42 0004 0C69 ldr r4, [r1, #16]
43 0006 24F44074 bic r4, r4, #768
44 000a 0C61 str r4, [r1, #16]
611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_PSIZE_DOUBLE_WORD;
45 .loc 1 611 3 view .LVU4
46 .loc 1 611 13 is_stmt 0 view .LVU5
47 000c 0C69 ldr r4, [r1, #16]
48 000e 44F44074 orr r4, r4, #768
49 0012 0C61 str r4, [r1, #16]
612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_CR_PG;
50 .loc 1 612 3 is_stmt 1 view .LVU6
51 .loc 1 612 13 is_stmt 0 view .LVU7
52 0014 0C69 ldr r4, [r1, #16]
53 0016 44F00104 orr r4, r4, #1
54 001a 0C61 str r4, [r1, #16]
613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Program first word */
615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *(__IO uint32_t *)Address = (uint32_t)Data;
55 .loc 1 615 3 is_stmt 1 view .LVU8
56 .loc 1 615 29 is_stmt 0 view .LVU9
57 001c 0260 str r2, [r0]
616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Barrier to ensure programming is performed in 2 steps, in right order
618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** (independently of compiler optimization behavior) */
619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __ISB();
58 .loc 1 619 3 is_stmt 1 view .LVU10
59 .LBB4:
60 .LBI4:
61 .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.4.1
5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 27. May 2021
ARM GAS /tmp/ccfOHnGG.s page 13
6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/
7:Drivers/CMSIS/Include/cmsis_gcc.h **** /*
8:Drivers/CMSIS/Include/cmsis_gcc.h **** * Copyright (c) 2009-2021 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 */
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)))
ARM GAS /tmp/ccfOHnGG.s page 14
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
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 ****
ARM GAS /tmp/ccfOHnGG.s page 15
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;
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 ****
ARM GAS /tmp/ccfOHnGG.s page 16
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 **** #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U)
186:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STACK_SEAL
187:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STACK_SEAL __StackSeal
188:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
189:Drivers/CMSIS/Include/cmsis_gcc.h ****
190:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __TZ_STACK_SEAL_SIZE
191:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __TZ_STACK_SEAL_SIZE 8U
192:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
193:Drivers/CMSIS/Include/cmsis_gcc.h ****
194:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __TZ_STACK_SEAL_VALUE
195:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __TZ_STACK_SEAL_VALUE 0xFEF5EDA5FEF5EDA5ULL
196:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
197:Drivers/CMSIS/Include/cmsis_gcc.h ****
198:Drivers/CMSIS/Include/cmsis_gcc.h ****
199:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_STACKSEAL_S (uint32_t* stackTop) {
200:Drivers/CMSIS/Include/cmsis_gcc.h **** *((uint64_t *)stackTop) = __TZ_STACK_SEAL_VALUE;
201:Drivers/CMSIS/Include/cmsis_gcc.h **** }
202:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
203:Drivers/CMSIS/Include/cmsis_gcc.h ****
204:Drivers/CMSIS/Include/cmsis_gcc.h ****
205:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################## Core Instruction Access ######################### */
206:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface
207:Drivers/CMSIS/Include/cmsis_gcc.h **** Access to dedicated instructions
208:Drivers/CMSIS/Include/cmsis_gcc.h **** @{
209:Drivers/CMSIS/Include/cmsis_gcc.h **** */
210:Drivers/CMSIS/Include/cmsis_gcc.h ****
211:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2.
212:Drivers/CMSIS/Include/cmsis_gcc.h **** * For thumb1, use low register (r0-r7), specified by constraint "l"
213:Drivers/CMSIS/Include/cmsis_gcc.h **** * Otherwise, use general registers, specified by constraint "r" */
214:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__)
215:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r)
216:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r)
217:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r)
218:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
219:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r)
220:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r)
221:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r)
222:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
223:Drivers/CMSIS/Include/cmsis_gcc.h ****
224:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
225:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief No Operation
226:Drivers/CMSIS/Include/cmsis_gcc.h **** \details No Operation does nothing. This instruction can be used for code alignment purposes.
227:Drivers/CMSIS/Include/cmsis_gcc.h **** */
228:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP() __ASM volatile ("nop")
229:Drivers/CMSIS/Include/cmsis_gcc.h ****
230:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
231:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Interrupt
232:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o
233:Drivers/CMSIS/Include/cmsis_gcc.h **** */
ARM GAS /tmp/ccfOHnGG.s page 17
234:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI() __ASM volatile ("wfi":::"memory")
235:Drivers/CMSIS/Include/cmsis_gcc.h ****
236:Drivers/CMSIS/Include/cmsis_gcc.h ****
237:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
238:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Event
239:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Event is a hint instruction that permits the processor to enter
240:Drivers/CMSIS/Include/cmsis_gcc.h **** a low-power state until one of a number of events occurs.
241:Drivers/CMSIS/Include/cmsis_gcc.h **** */
242:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE() __ASM volatile ("wfe":::"memory")
243:Drivers/CMSIS/Include/cmsis_gcc.h ****
244:Drivers/CMSIS/Include/cmsis_gcc.h ****
245:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
246:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Send Event
247:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Send Event is a hint instruction. It causes an event to be signaled to the CPU.
248:Drivers/CMSIS/Include/cmsis_gcc.h **** */
249:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV() __ASM volatile ("sev")
250:Drivers/CMSIS/Include/cmsis_gcc.h ****
251:Drivers/CMSIS/Include/cmsis_gcc.h ****
252:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
253:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Instruction Synchronization Barrier
254:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Instruction Synchronization Barrier flushes the pipeline in the processor,
255:Drivers/CMSIS/Include/cmsis_gcc.h **** so that all instructions following the ISB are fetched from cache or memory,
256:Drivers/CMSIS/Include/cmsis_gcc.h **** after the instruction has been completed.
257:Drivers/CMSIS/Include/cmsis_gcc.h **** */
258:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void)
62 .loc 2 258 27 view .LVU11
63 .LBB5:
259:Drivers/CMSIS/Include/cmsis_gcc.h **** {
260:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("isb 0xF":::"memory");
64 .loc 2 260 3 view .LVU12
65 .syntax unified
66 @ 260 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
67 001e BFF36F8F isb 0xF
68 @ 0 "" 2
69 .thumb
70 .syntax unified
71 .LBE5:
72 .LBE4:
620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Program second word */
622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *(__IO uint32_t *)(Address + 4) = (uint32_t)(Data >> 32);
73 .loc 1 622 3 view .LVU13
74 .loc 1 622 35 is_stmt 0 view .LVU14
75 0022 4360 str r3, [r0, #4]
623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
76 .loc 1 623 1 view .LVU15
77 0024 5DF8044B ldr r4, [sp], #4
78 .LCFI1:
79 .cfi_restore 4
80 .cfi_def_cfa_offset 0
81 0028 7047 bx lr
82 .L4:
83 002a 00BF .align 2
84 .L3:
85 002c 003C0240 .word 1073888256
86 .cfi_endproc
87 .LFE146:
ARM GAS /tmp/ccfOHnGG.s page 18
89 .section .text.FLASH_Program_Word,"ax",%progbits
90 .align 1
91 .syntax unified
92 .thumb
93 .thumb_func
95 FLASH_Program_Word:
96 .LVL1:
97 .LFB147:
624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Program word (32-bit) at a specified address.
628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note This function must be used when the device voltage range is from
629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 2.7V to 3.6V.
630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note If an erase and a program operations are requested simultaneously,
632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * the erase operation is performed before the program one.
633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Address specifies the address to be programmed.
635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Data specifies the data to be programmed.
636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None
637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_Word(uint32_t Address, uint32_t Data)
639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
98 .loc 1 639 1 is_stmt 1 view -0
99 .cfi_startproc
100 @ args = 0, pretend = 0, frame = 0
101 @ frame_needed = 0, uses_anonymous_args = 0
102 @ link register save eliminated.
640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check the parameters */
641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** assert_param(IS_FLASH_ADDRESS(Address));
103 .loc 1 641 3 view .LVU17
642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* If the previous operation is completed, proceed to program the new data */
644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PSIZE);
104 .loc 1 644 3 view .LVU18
105 0000 074B ldr r3, .L6
106 0002 1A69 ldr r2, [r3, #16]
107 0004 22F44072 bic r2, r2, #768
108 0008 1A61 str r2, [r3, #16]
645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_PSIZE_WORD;
109 .loc 1 645 3 view .LVU19
110 .loc 1 645 13 is_stmt 0 view .LVU20
111 000a 1A69 ldr r2, [r3, #16]
112 000c 42F40072 orr r2, r2, #512
113 0010 1A61 str r2, [r3, #16]
646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_CR_PG;
114 .loc 1 646 3 is_stmt 1 view .LVU21
115 .loc 1 646 13 is_stmt 0 view .LVU22
116 0012 1A69 ldr r2, [r3, #16]
117 0014 42F00102 orr r2, r2, #1
118 0018 1A61 str r2, [r3, #16]
647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *(__IO uint32_t *)Address = Data;
119 .loc 1 648 3 is_stmt 1 view .LVU23
120 .loc 1 648 29 is_stmt 0 view .LVU24
121 001a 0160 str r1, [r0]
ARM GAS /tmp/ccfOHnGG.s page 19
649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
122 .loc 1 649 1 view .LVU25
123 001c 7047 bx lr
124 .L7:
125 001e 00BF .align 2
126 .L6:
127 0020 003C0240 .word 1073888256
128 .cfi_endproc
129 .LFE147:
131 .section .text.FLASH_Program_HalfWord,"ax",%progbits
132 .align 1
133 .syntax unified
134 .thumb
135 .thumb_func
137 FLASH_Program_HalfWord:
138 .LVL2:
139 .LFB148:
650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Program a half-word (16-bit) at a specified address.
653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note This function must be used when the device voltage range is from
654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 2.1V to 3.6V.
655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note If an erase and a program operations are requested simultaneously,
657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * the erase operation is performed before the program one.
658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Address specifies the address to be programmed.
660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Data specifies the data to be programmed.
661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None
662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data)
664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
140 .loc 1 664 1 is_stmt 1 view -0
141 .cfi_startproc
142 @ args = 0, pretend = 0, frame = 0
143 @ frame_needed = 0, uses_anonymous_args = 0
144 @ link register save eliminated.
665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check the parameters */
666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** assert_param(IS_FLASH_ADDRESS(Address));
145 .loc 1 666 3 view .LVU27
667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* If the previous operation is completed, proceed to program the new data */
669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PSIZE);
146 .loc 1 669 3 view .LVU28
147 0000 074B ldr r3, .L9
148 0002 1A69 ldr r2, [r3, #16]
149 0004 22F44072 bic r2, r2, #768
150 0008 1A61 str r2, [r3, #16]
670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_PSIZE_HALF_WORD;
151 .loc 1 670 3 view .LVU29
152 .loc 1 670 13 is_stmt 0 view .LVU30
153 000a 1A69 ldr r2, [r3, #16]
154 000c 42F48072 orr r2, r2, #256
155 0010 1A61 str r2, [r3, #16]
671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_CR_PG;
156 .loc 1 671 3 is_stmt 1 view .LVU31
157 .loc 1 671 13 is_stmt 0 view .LVU32
ARM GAS /tmp/ccfOHnGG.s page 20
158 0012 1A69 ldr r2, [r3, #16]
159 0014 42F00102 orr r2, r2, #1
160 0018 1A61 str r2, [r3, #16]
672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *(__IO uint16_t *)Address = Data;
161 .loc 1 673 3 is_stmt 1 view .LVU33
162 .loc 1 673 29 is_stmt 0 view .LVU34
163 001a 0180 strh r1, [r0] @ movhi
674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
164 .loc 1 674 1 view .LVU35
165 001c 7047 bx lr
166 .L10:
167 001e 00BF .align 2
168 .L9:
169 0020 003C0240 .word 1073888256
170 .cfi_endproc
171 .LFE148:
173 .section .text.FLASH_Program_Byte,"ax",%progbits
174 .align 1
175 .syntax unified
176 .thumb
177 .thumb_func
179 FLASH_Program_Byte:
180 .LVL3:
181 .LFB149:
675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Program byte (8-bit) at a specified address.
678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note This function must be used when the device voltage range is from
679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * 1.8V to 3.6V.
680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @note If an erase and a program operations are requested simultaneously,
682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * the erase operation is performed before the program one.
683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *
684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Address specifies the address to be programmed.
685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @param Data specifies the data to be programmed.
686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None
687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_Program_Byte(uint32_t Address, uint8_t Data)
689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
182 .loc 1 689 1 is_stmt 1 view -0
183 .cfi_startproc
184 @ args = 0, pretend = 0, frame = 0
185 @ frame_needed = 0, uses_anonymous_args = 0
186 @ link register save eliminated.
690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Check the parameters */
691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** assert_param(IS_FLASH_ADDRESS(Address));
187 .loc 1 691 3 view .LVU37
692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* If the previous operation is completed, proceed to program the new data */
694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PSIZE);
188 .loc 1 694 3 view .LVU38
189 0000 064B ldr r3, .L12
190 0002 1A69 ldr r2, [r3, #16]
191 0004 22F44072 bic r2, r2, #768
192 0008 1A61 str r2, [r3, #16]
695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_PSIZE_BYTE;
ARM GAS /tmp/ccfOHnGG.s page 21
193 .loc 1 695 3 view .LVU39
194 .loc 1 695 13 is_stmt 0 view .LVU40
195 000a 1A69 ldr r2, [r3, #16]
196 000c 1A61 str r2, [r3, #16]
696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->CR |= FLASH_CR_PG;
197 .loc 1 696 3 is_stmt 1 view .LVU41
198 .loc 1 696 13 is_stmt 0 view .LVU42
199 000e 1A69 ldr r2, [r3, #16]
200 0010 42F00102 orr r2, r2, #1
201 0014 1A61 str r2, [r3, #16]
697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** *(__IO uint8_t *)Address = Data;
202 .loc 1 698 3 is_stmt 1 view .LVU43
203 .loc 1 698 28 is_stmt 0 view .LVU44
204 0016 0170 strb r1, [r0]
699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
205 .loc 1 699 1 view .LVU45
206 0018 7047 bx lr
207 .L13:
208 001a 00BF .align 2
209 .L12:
210 001c 003C0240 .word 1073888256
211 .cfi_endproc
212 .LFE149:
214 .section .text.FLASH_SetErrorCode,"ax",%progbits
215 .align 1
216 .syntax unified
217 .thumb
218 .thumb_func
220 FLASH_SetErrorCode:
221 .LFB150:
700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /**
702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @brief Set the specific FLASH error flag.
703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** * @retval None
704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** */
705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** static void FLASH_SetErrorCode(void)
706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
222 .loc 1 706 1 is_stmt 1 view -0
223 .cfi_startproc
224 @ args = 0, pretend = 0, frame = 0
225 @ frame_needed = 0, uses_anonymous_args = 0
226 @ link register save eliminated.
707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) != RESET)
227 .loc 1 707 3 view .LVU47
228 .loc 1 707 7 is_stmt 0 view .LVU48
229 0000 204B ldr r3, .L20
230 0002 DB68 ldr r3, [r3, #12]
231 .loc 1 707 6 view .LVU49
232 0004 13F0100F tst r3, #16
233 0008 07D0 beq .L15
708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP;
234 .loc 1 709 5 is_stmt 1 view .LVU50
235 .loc 1 709 22 is_stmt 0 view .LVU51
236 000a 1F4A ldr r2, .L20+4
237 000c D369 ldr r3, [r2, #28]
ARM GAS /tmp/ccfOHnGG.s page 22
238 000e 43F01003 orr r3, r3, #16
239 0012 D361 str r3, [r2, #28]
710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH write protection error pending bit */
712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_WRPERR);
240 .loc 1 712 5 is_stmt 1 view .LVU52
241 0014 1B4B ldr r3, .L20
242 0016 1022 movs r2, #16
243 0018 DA60 str r2, [r3, #12]
244 .L15:
713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGAERR) != RESET)
245 .loc 1 715 3 view .LVU53
246 .loc 1 715 7 is_stmt 0 view .LVU54
247 001a 1A4B ldr r3, .L20
248 001c DB68 ldr r3, [r3, #12]
249 .loc 1 715 6 view .LVU55
250 001e 13F0200F tst r3, #32
251 0022 07D0 beq .L16
716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_PGA;
252 .loc 1 717 5 is_stmt 1 view .LVU56
253 .loc 1 717 22 is_stmt 0 view .LVU57
254 0024 184A ldr r2, .L20+4
255 0026 D369 ldr r3, [r2, #28]
256 0028 43F00803 orr r3, r3, #8
257 002c D361 str r3, [r2, #28]
718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH Programming alignment error pending bit */
720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_PGAERR);
258 .loc 1 720 5 is_stmt 1 view .LVU58
259 002e 154B ldr r3, .L20
260 0030 2022 movs r2, #32
261 0032 DA60 str r2, [r3, #12]
262 .L16:
721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGPERR) != RESET)
263 .loc 1 723 3 view .LVU59
264 .loc 1 723 7 is_stmt 0 view .LVU60
265 0034 134B ldr r3, .L20
266 0036 DB68 ldr r3, [r3, #12]
267 .loc 1 723 6 view .LVU61
268 0038 13F0400F tst r3, #64
269 003c 07D0 beq .L17
724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_PGP;
270 .loc 1 725 5 is_stmt 1 view .LVU62
271 .loc 1 725 22 is_stmt 0 view .LVU63
272 003e 124A ldr r2, .L20+4
273 0040 D369 ldr r3, [r2, #28]
274 0042 43F00403 orr r3, r3, #4
275 0046 D361 str r3, [r2, #28]
726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH Programming parallelism error pending bit */
728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_PGPERR);
ARM GAS /tmp/ccfOHnGG.s page 23
276 .loc 1 728 5 is_stmt 1 view .LVU64
277 0048 0E4B ldr r3, .L20
278 004a 4022 movs r2, #64
279 004c DA60 str r2, [r3, #12]
280 .L17:
729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGSERR) != RESET)
281 .loc 1 731 3 view .LVU65
282 .loc 1 731 7 is_stmt 0 view .LVU66
283 004e 0D4B ldr r3, .L20
284 0050 DB68 ldr r3, [r3, #12]
285 .loc 1 731 6 view .LVU67
286 0052 13F0800F tst r3, #128
287 0056 07D0 beq .L18
732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_PGS;
288 .loc 1 733 5 is_stmt 1 view .LVU68
289 .loc 1 733 22 is_stmt 0 view .LVU69
290 0058 0B4A ldr r2, .L20+4
291 005a D369 ldr r3, [r2, #28]
292 005c 43F00203 orr r3, r3, #2
293 0060 D361 str r3, [r2, #28]
734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH Programming sequence error pending bit */
736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_PGSERR);
294 .loc 1 736 5 is_stmt 1 view .LVU70
295 0062 084B ldr r3, .L20
296 0064 8022 movs r2, #128
297 0066 DA60 str r2, [r3, #12]
298 .L18:
737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #if defined(FLASH_SR_RDERR)
739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_RDERR) != RESET)
740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_RD;
742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH Proprietary readout protection error pending bit */
744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_RDERR);
745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
746:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** #endif /* FLASH_SR_RDERR */
747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_OPERR) != RESET)
299 .loc 1 747 3 view .LVU71
300 .loc 1 747 7 is_stmt 0 view .LVU72
301 0068 064B ldr r3, .L20
302 006a DB68 ldr r3, [r3, #12]
303 .loc 1 747 6 view .LVU73
304 006c 13F0020F tst r3, #2
305 0070 07D0 beq .L14
748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_OPERATION;
306 .loc 1 749 5 is_stmt 1 view .LVU74
307 .loc 1 749 22 is_stmt 0 view .LVU75
308 0072 054A ldr r2, .L20+4
309 0074 D369 ldr r3, [r2, #28]
310 0076 43F02003 orr r3, r3, #32
311 007a D361 str r3, [r2, #28]
ARM GAS /tmp/ccfOHnGG.s page 24
750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Clear FLASH Operation error pending bit */
752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_OPERR);
312 .loc 1 752 5 is_stmt 1 view .LVU76
313 007c 014B ldr r3, .L20
314 007e 0222 movs r2, #2
315 0080 DA60 str r2, [r3, #12]
316 .L14:
753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
317 .loc 1 754 1 is_stmt 0 view .LVU77
318 0082 7047 bx lr
319 .L21:
320 .align 2
321 .L20:
322 0084 003C0240 .word 1073888256
323 0088 00000000 .word .LANCHOR0
324 .cfi_endproc
325 .LFE150:
327 .section .text.HAL_FLASH_Program_IT,"ax",%progbits
328 .align 1
329 .global HAL_FLASH_Program_IT
330 .syntax unified
331 .thumb
332 .thumb_func
334 HAL_FLASH_Program_IT:
335 .LVL4:
336 .LFB135:
213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK;
337 .loc 1 213 1 is_stmt 1 view -0
338 .cfi_startproc
339 @ args = 0, pretend = 0, frame = 0
340 @ frame_needed = 0, uses_anonymous_args = 0
213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK;
341 .loc 1 213 1 is_stmt 0 view .LVU79
342 0000 70B5 push {r4, r5, r6, lr}
343 .LCFI2:
344 .cfi_def_cfa_offset 16
345 .cfi_offset 4, -16
346 .cfi_offset 5, -12
347 .cfi_offset 6, -8
348 .cfi_offset 14, -4
349 0002 0646 mov r6, r0
350 0004 0846 mov r0, r1
351 .LVL5:
214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
352 .loc 1 214 3 is_stmt 1 view .LVU80
217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
353 .loc 1 217 3 view .LVU81
220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
354 .loc 1 220 3 view .LVU82
355 0006 114C ldr r4, .L31
356 0008 2569 ldr r5, [r4, #16]
357 000a 45F08075 orr r5, r5, #16777216
358 000e 2561 str r5, [r4, #16]
223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
359 .loc 1 223 3 view .LVU83
ARM GAS /tmp/ccfOHnGG.s page 25
360 0010 2569 ldr r5, [r4, #16]
361 0012 45F00075 orr r5, r5, #33554432
362 0016 2561 str r5, [r4, #16]
225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Address = Address;
363 .loc 1 225 3 view .LVU84
225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Address = Address;
364 .loc 1 225 27 is_stmt 0 view .LVU85
365 0018 0D49 ldr r1, .L31+4
366 .LVL6:
225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Address = Address;
367 .loc 1 225 27 view .LVU86
368 001a 0324 movs r4, #3
369 001c 0C70 strb r4, [r1]
226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
370 .loc 1 226 3 is_stmt 1 view .LVU87
226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
371 .loc 1 226 18 is_stmt 0 view .LVU88
372 001e 4861 str r0, [r1, #20]
228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
373 .loc 1 228 3 is_stmt 1 view .LVU89
228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
374 .loc 1 228 6 is_stmt 0 view .LVU90
375 0020 3EB1 cbz r6, .L28
233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
376 .loc 1 233 8 is_stmt 1 view .LVU91
233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
377 .loc 1 233 11 is_stmt 0 view .LVU92
378 0022 012E cmp r6, #1
379 0024 09D0 beq .L29
238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
380 .loc 1 238 8 is_stmt 1 view .LVU93
238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
381 .loc 1 238 11 is_stmt 0 view .LVU94
382 0026 022E cmp r6, #2
383 0028 0BD0 beq .L30
246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
384 .loc 1 246 5 is_stmt 1 view .LVU95
385 002a FFF7FEFF bl FLASH_Program_DoubleWord
386 .LVL7:
387 .L24:
249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
388 .loc 1 249 3 view .LVU96
250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
389 .loc 1 250 1 is_stmt 0 view .LVU97
390 002e 0020 movs r0, #0
391 0030 70BD pop {r4, r5, r6, pc}
392 .LVL8:
393 .L28:
231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
394 .loc 1 231 5 is_stmt 1 view .LVU98
395 0032 D1B2 uxtb r1, r2
396 0034 FFF7FEFF bl FLASH_Program_Byte
397 .LVL9:
231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
398 .loc 1 231 5 is_stmt 0 view .LVU99
399 0038 F9E7 b .L24
400 .LVL10:
ARM GAS /tmp/ccfOHnGG.s page 26
401 .L29:
236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
402 .loc 1 236 5 is_stmt 1 view .LVU100
403 003a 91B2 uxth r1, r2
404 003c FFF7FEFF bl FLASH_Program_HalfWord
405 .LVL11:
236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
406 .loc 1 236 5 is_stmt 0 view .LVU101
407 0040 F5E7 b .L24
408 .LVL12:
409 .L30:
241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
410 .loc 1 241 5 is_stmt 1 view .LVU102
411 0042 1146 mov r1, r2
412 0044 FFF7FEFF bl FLASH_Program_Word
413 .LVL13:
241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
414 .loc 1 241 5 is_stmt 0 view .LVU103
415 0048 F1E7 b .L24
416 .L32:
417 004a 00BF .align 2
418 .L31:
419 004c 003C0240 .word 1073888256
420 0050 00000000 .word .LANCHOR0
421 .cfi_endproc
422 .LFE135:
424 .section .text.HAL_FLASH_EndOfOperationCallback,"ax",%progbits
425 .align 1
426 .weak HAL_FLASH_EndOfOperationCallback
427 .syntax unified
428 .thumb
429 .thumb_func
431 HAL_FLASH_EndOfOperationCallback:
432 .LVL14:
433 .LFB137:
377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */
434 .loc 1 377 1 is_stmt 1 view -0
435 .cfi_startproc
436 @ args = 0, pretend = 0, frame = 0
437 @ frame_needed = 0, uses_anonymous_args = 0
438 @ link register save eliminated.
379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed,
439 .loc 1 379 3 view .LVU105
383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
440 .loc 1 383 1 is_stmt 0 view .LVU106
441 0000 7047 bx lr
442 .cfi_endproc
443 .LFE137:
445 .section .text.HAL_FLASH_OperationErrorCallback,"ax",%progbits
446 .align 1
447 .weak HAL_FLASH_OperationErrorCallback
448 .syntax unified
449 .thumb
450 .thumb_func
452 HAL_FLASH_OperationErrorCallback:
453 .LVL15:
454 .LFB138:
ARM GAS /tmp/ccfOHnGG.s page 27
394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */
455 .loc 1 394 1 is_stmt 1 view -0
456 .cfi_startproc
457 @ args = 0, pretend = 0, frame = 0
458 @ frame_needed = 0, uses_anonymous_args = 0
459 @ link register save eliminated.
396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed,
460 .loc 1 396 3 view .LVU108
400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
461 .loc 1 400 1 is_stmt 0 view .LVU109
462 0000 7047 bx lr
463 .cfi_endproc
464 .LFE138:
466 .section .text.HAL_FLASH_IRQHandler,"ax",%progbits
467 .align 1
468 .global HAL_FLASH_IRQHandler
469 .syntax unified
470 .thumb
471 .thumb_func
473 HAL_FLASH_IRQHandler:
474 .LFB136:
257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** uint32_t addresstmp = 0U;
475 .loc 1 257 1 is_stmt 1 view -0
476 .cfi_startproc
477 @ args = 0, pretend = 0, frame = 0
478 @ frame_needed = 0, uses_anonymous_args = 0
479 0000 10B5 push {r4, lr}
480 .LCFI3:
481 .cfi_def_cfa_offset 8
482 .cfi_offset 4, -8
483 .cfi_offset 14, -4
258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
484 .loc 1 258 3 view .LVU111
485 .LVL16:
265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET)
486 .loc 1 265 3 view .LVU112
265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET)
487 .loc 1 265 7 is_stmt 0 view .LVU113
488 0002 384B ldr r3, .L51
489 0004 DB68 ldr r3, [r3, #12]
265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET)
490 .loc 1 265 6 view .LVU114
491 0006 13F0F20F tst r3, #242
492 000a 13D0 beq .L36
269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
493 .loc 1 269 5 is_stmt 1 view .LVU115
269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
494 .loc 1 269 15 is_stmt 0 view .LVU116
495 000c 364B ldr r3, .L51+4
496 000e 1B78 ldrb r3, [r3] @ zero_extendqisi2
497 0010 DBB2 uxtb r3, r3
269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
498 .loc 1 269 8 view .LVU117
499 0012 012B cmp r3, #1
500 0014 38D0 beq .L47
275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
501 .loc 1 275 10 is_stmt 1 view .LVU118
ARM GAS /tmp/ccfOHnGG.s page 28
275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
502 .loc 1 275 20 is_stmt 0 view .LVU119
503 0016 344B ldr r3, .L51+4
504 0018 1B78 ldrb r3, [r3] @ zero_extendqisi2
505 001a DBB2 uxtb r3, r3
275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
506 .loc 1 275 13 view .LVU120
507 001c 022B cmp r3, #2
508 001e 39D0 beq .L48
283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
509 .loc 1 283 7 is_stmt 1 view .LVU121
283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
510 .loc 1 283 18 is_stmt 0 view .LVU122
511 0020 314B ldr r3, .L51+4
512 0022 5C69 ldr r4, [r3, #20]
513 .LVL17:
514 .L38:
287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
515 .loc 1 287 5 is_stmt 1 view .LVU123
516 0024 FFF7FEFF bl FLASH_SetErrorCode
517 .LVL18:
290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
518 .loc 1 290 5 view .LVU124
519 0028 2046 mov r0, r4
520 002a FFF7FEFF bl HAL_FLASH_OperationErrorCallback
521 .LVL19:
293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
522 .loc 1 293 5 view .LVU125
293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
523 .loc 1 293 29 is_stmt 0 view .LVU126
524 002e 2E4B ldr r3, .L51+4
525 0030 0022 movs r2, #0
526 0032 1A70 strb r2, [r3]
527 .LVL20:
528 .L36:
297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
529 .loc 1 297 3 is_stmt 1 view .LVU127
297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
530 .loc 1 297 7 is_stmt 0 view .LVU128
531 0034 2B4B ldr r3, .L51
532 0036 DB68 ldr r3, [r3, #12]
297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
533 .loc 1 297 6 view .LVU129
534 0038 13F0010F tst r3, #1
535 003c 13D0 beq .L40
300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
536 .loc 1 300 5 is_stmt 1 view .LVU130
537 003e 294B ldr r3, .L51
538 0040 0122 movs r2, #1
539 0042 DA60 str r2, [r3, #12]
302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
540 .loc 1 302 5 view .LVU131
302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
541 .loc 1 302 15 is_stmt 0 view .LVU132
542 0044 284B ldr r3, .L51+4
543 0046 1B78 ldrb r3, [r3] @ zero_extendqisi2
544 0048 DBB2 uxtb r3, r3
ARM GAS /tmp/ccfOHnGG.s page 29
302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
545 .loc 1 302 8 view .LVU133
546 004a 9342 cmp r3, r2
547 004c 25D0 beq .L49
335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
548 .loc 1 335 7 is_stmt 1 view .LVU134
335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
549 .loc 1 335 17 is_stmt 0 view .LVU135
550 004e 264B ldr r3, .L51+4
551 0050 1B78 ldrb r3, [r3] @ zero_extendqisi2
552 0052 DBB2 uxtb r3, r3
335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
553 .loc 1 335 10 view .LVU136
554 0054 022B cmp r3, #2
555 0056 3ED0 beq .L50
348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
556 .loc 1 348 9 is_stmt 1 view .LVU137
557 0058 234B ldr r3, .L51+4
558 005a 5869 ldr r0, [r3, #20]
559 005c FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
560 .LVL21:
561 .L44:
350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
562 .loc 1 350 7 view .LVU138
350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
563 .loc 1 350 31 is_stmt 0 view .LVU139
564 0060 214B ldr r3, .L51+4
565 0062 0022 movs r2, #0
566 0064 1A70 strb r2, [r3]
567 .L40:
354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
568 .loc 1 354 3 is_stmt 1 view .LVU140
354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
569 .loc 1 354 13 is_stmt 0 view .LVU141
570 0066 204B ldr r3, .L51+4
571 0068 1B78 ldrb r3, [r3] @ zero_extendqisi2
354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
572 .loc 1 354 6 view .LVU142
573 006a 63B9 cbnz r3, .L35
357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
574 .loc 1 357 5 is_stmt 1 view .LVU143
575 006c 1D4B ldr r3, .L51
576 006e 1A69 ldr r2, [r3, #16]
577 0070 22F07F02 bic r2, r2, #127
578 0074 1A61 str r2, [r3, #16]
360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
579 .loc 1 360 5 view .LVU144
580 0076 1A69 ldr r2, [r3, #16]
581 0078 22F08072 bic r2, r2, #16777216
582 007c 1A61 str r2, [r3, #16]
363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
583 .loc 1 363 5 view .LVU145
584 007e 1A69 ldr r2, [r3, #16]
585 0080 22F00072 bic r2, r2, #33554432
586 0084 1A61 str r2, [r3, #16]
587 .L35:
365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
ARM GAS /tmp/ccfOHnGG.s page 30
588 .loc 1 365 1 is_stmt 0 view .LVU146
589 0086 10BD pop {r4, pc}
590 .LVL22:
591 .L47:
272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Sector = 0xFFFFFFFFU;
592 .loc 1 272 7 is_stmt 1 view .LVU147
272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.Sector = 0xFFFFFFFFU;
593 .loc 1 272 18 is_stmt 0 view .LVU148
594 0088 174B ldr r3, .L51+4
595 008a DC68 ldr r4, [r3, #12]
596 .LVL23:
273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
597 .loc 1 273 7 is_stmt 1 view .LVU149
273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
598 .loc 1 273 21 is_stmt 0 view .LVU150
599 008c 4FF0FF32 mov r2, #-1
600 0090 DA60 str r2, [r3, #12]
601 0092 C7E7 b .L38
602 .LVL24:
603 .L48:
278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
604 .loc 1 278 7 is_stmt 1 view .LVU151
278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
605 .loc 1 278 18 is_stmt 0 view .LVU152
606 0094 144B ldr r3, .L51+4
607 0096 1C69 ldr r4, [r3, #16]
608 .LVL25:
278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
609 .loc 1 278 18 view .LVU153
610 0098 C4E7 b .L38
611 .LVL26:
612 .L49:
305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
613 .loc 1 305 7 is_stmt 1 view .LVU154
305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
614 .loc 1 305 13 is_stmt 0 view .LVU155
615 009a 134B ldr r3, .L51+4
616 009c 5A68 ldr r2, [r3, #4]
305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
617 .loc 1 305 30 view .LVU156
618 009e 013A subs r2, r2, #1
619 00a0 5A60 str r2, [r3, #4]
308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
620 .loc 1 308 7 is_stmt 1 view .LVU157
308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
621 .loc 1 308 17 is_stmt 0 view .LVU158
622 00a2 5B68 ldr r3, [r3, #4]
308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
623 .loc 1 308 10 view .LVU159
624 00a4 5BB1 cbz r3, .L42
310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Indicate user which sector has been erased*/
625 .loc 1 310 9 is_stmt 1 view .LVU160
310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /*Indicate user which sector has been erased*/
626 .loc 1 310 20 is_stmt 0 view .LVU161
627 00a6 104C ldr r4, .L51+4
628 00a8 E068 ldr r0, [r4, #12]
629 .LVL27:
ARM GAS /tmp/ccfOHnGG.s page 31
312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
630 .loc 1 312 9 is_stmt 1 view .LVU162
631 00aa FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
632 .LVL28:
315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Sector;
633 .loc 1 315 9 view .LVU163
315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Sector;
634 .loc 1 315 15 is_stmt 0 view .LVU164
635 00ae E368 ldr r3, [r4, #12]
315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** addresstmp = pFlash.Sector;
636 .loc 1 315 22 view .LVU165
637 00b0 0133 adds r3, r3, #1
638 00b2 E360 str r3, [r4, #12]
316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Erase_Sector(addresstmp, pFlash.VoltageForErase);
639 .loc 1 316 9 is_stmt 1 view .LVU166
316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_Erase_Sector(addresstmp, pFlash.VoltageForErase);
640 .loc 1 316 20 is_stmt 0 view .LVU167
641 00b4 E068 ldr r0, [r4, #12]
642 .LVL29:
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
643 .loc 1 317 9 is_stmt 1 view .LVU168
644 00b6 217A ldrb r1, [r4, #8] @ zero_extendqisi2
645 00b8 FFF7FEFF bl FLASH_Erase_Sector
646 .LVL30:
317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
647 .loc 1 317 9 is_stmt 0 view .LVU169
648 00bc D3E7 b .L40
649 .L42:
323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
650 .loc 1 323 9 is_stmt 1 view .LVU170
651 .LVL31:
323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
652 .loc 1 323 23 is_stmt 0 view .LVU171
653 00be 0A4B ldr r3, .L51+4
654 00c0 4FF0FF34 mov r4, #-1
655 00c4 DC60 str r4, [r3, #12]
324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
656 .loc 1 324 9 is_stmt 1 view .LVU172
324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
657 .loc 1 324 33 is_stmt 0 view .LVU173
658 00c6 0022 movs r2, #0
659 00c8 1A70 strb r2, [r3]
327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
660 .loc 1 327 9 is_stmt 1 view .LVU174
661 00ca FFF7FEFF bl FLASH_FlushCaches
662 .LVL32:
330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
663 .loc 1 330 9 view .LVU175
664 00ce 2046 mov r0, r4
665 00d0 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
666 .LVL33:
667 00d4 C7E7 b .L40
668 .LVL34:
669 .L50:
339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
670 .loc 1 339 9 view .LVU176
671 00d6 FFF7FEFF bl FLASH_FlushCaches
ARM GAS /tmp/ccfOHnGG.s page 32
672 .LVL35:
342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
673 .loc 1 342 9 view .LVU177
674 00da 034B ldr r3, .L51+4
675 00dc 1869 ldr r0, [r3, #16]
676 00de FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
677 .LVL36:
678 00e2 BDE7 b .L44
679 .L52:
680 .align 2
681 .L51:
682 00e4 003C0240 .word 1073888256
683 00e8 00000000 .word .LANCHOR0
684 .cfi_endproc
685 .LFE136:
687 .section .text.HAL_FLASH_Unlock,"ax",%progbits
688 .align 1
689 .global HAL_FLASH_Unlock
690 .syntax unified
691 .thumb
692 .thumb_func
694 HAL_FLASH_Unlock:
695 .LFB139:
426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK;
696 .loc 1 426 1 view -0
697 .cfi_startproc
698 @ args = 0, pretend = 0, frame = 0
699 @ frame_needed = 0, uses_anonymous_args = 0
700 @ link register save eliminated.
427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
701 .loc 1 427 3 view .LVU179
702 .LVL37:
429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
703 .loc 1 429 3 view .LVU180
429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
704 .loc 1 429 7 is_stmt 0 view .LVU181
705 0000 094B ldr r3, .L58
706 0002 1B69 ldr r3, [r3, #16]
429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
707 .loc 1 429 6 view .LVU182
708 0004 002B cmp r3, #0
709 0006 01DB blt .L57
427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
710 .loc 1 427 21 view .LVU183
711 0008 0020 movs r0, #0
712 000a 7047 bx lr
713 .L57:
432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY2);
714 .loc 1 432 5 is_stmt 1 view .LVU184
715 000c 064B ldr r3, .L58
716 000e 074A ldr r2, .L58+4
717 0010 5A60 str r2, [r3, #4]
433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
718 .loc 1 433 5 view .LVU185
719 0012 02F18832 add r2, r2, #-2004318072
720 0016 5A60 str r2, [r3, #4]
436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
ARM GAS /tmp/ccfOHnGG.s page 33
721 .loc 1 436 5 view .LVU186
436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
722 .loc 1 436 9 is_stmt 0 view .LVU187
723 0018 1B69 ldr r3, [r3, #16]
436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
724 .loc 1 436 8 view .LVU188
725 001a 002B cmp r3, #0
726 001c 01DB blt .L56
427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
727 .loc 1 427 21 view .LVU189
728 001e 0020 movs r0, #0
729 0020 7047 bx lr
730 .L56:
438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
731 .loc 1 438 14 view .LVU190
732 0022 0120 movs r0, #1
733 .LVL38:
442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
734 .loc 1 442 3 is_stmt 1 view .LVU191
443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
735 .loc 1 443 1 is_stmt 0 view .LVU192
736 0024 7047 bx lr
737 .L59:
738 0026 00BF .align 2
739 .L58:
740 0028 003C0240 .word 1073888256
741 002c 23016745 .word 1164378403
742 .cfi_endproc
743 .LFE139:
745 .section .text.HAL_FLASH_Lock,"ax",%progbits
746 .align 1
747 .global HAL_FLASH_Lock
748 .syntax unified
749 .thumb
750 .thumb_func
752 HAL_FLASH_Lock:
753 .LFB140:
450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Set the LOCK Bit to lock the FLASH Registers access */
754 .loc 1 450 1 is_stmt 1 view -0
755 .cfi_startproc
756 @ args = 0, pretend = 0, frame = 0
757 @ frame_needed = 0, uses_anonymous_args = 0
758 @ link register save eliminated.
452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
759 .loc 1 452 3 view .LVU194
452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
760 .loc 1 452 13 is_stmt 0 view .LVU195
761 0000 034A ldr r2, .L61
762 0002 1369 ldr r3, [r2, #16]
763 0004 43F00043 orr r3, r3, #-2147483648
764 0008 1361 str r3, [r2, #16]
454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
765 .loc 1 454 3 is_stmt 1 view .LVU196
455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
766 .loc 1 455 1 is_stmt 0 view .LVU197
767 000a 0020 movs r0, #0
768 000c 7047 bx lr
ARM GAS /tmp/ccfOHnGG.s page 34
769 .L62:
770 000e 00BF .align 2
771 .L61:
772 0010 003C0240 .word 1073888256
773 .cfi_endproc
774 .LFE140:
776 .section .text.HAL_FLASH_OB_Unlock,"ax",%progbits
777 .align 1
778 .global HAL_FLASH_OB_Unlock
779 .syntax unified
780 .thumb
781 .thumb_func
783 HAL_FLASH_OB_Unlock:
784 .LFB141:
462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** if ((FLASH->OPTCR & FLASH_OPTCR_OPTLOCK) != RESET)
785 .loc 1 462 1 is_stmt 1 view -0
786 .cfi_startproc
787 @ args = 0, pretend = 0, frame = 0
788 @ frame_needed = 0, uses_anonymous_args = 0
789 @ link register save eliminated.
463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
790 .loc 1 463 3 view .LVU199
463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
791 .loc 1 463 13 is_stmt 0 view .LVU200
792 0000 074B ldr r3, .L66
793 0002 5B69 ldr r3, [r3, #20]
463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
794 .loc 1 463 6 view .LVU201
795 0004 13F0010F tst r3, #1
796 0008 07D0 beq .L65
466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->OPTKEYR = FLASH_OPT_KEY2;
797 .loc 1 466 5 is_stmt 1 view .LVU202
466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH->OPTKEYR = FLASH_OPT_KEY2;
798 .loc 1 466 20 is_stmt 0 view .LVU203
799 000a 054B ldr r3, .L66
800 000c 054A ldr r2, .L66+4
801 000e 9A60 str r2, [r3, #8]
467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
802 .loc 1 467 5 is_stmt 1 view .LVU204
467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
803 .loc 1 467 20 is_stmt 0 view .LVU205
804 0010 02F14432 add r2, r2, #1145324612
805 0014 9A60 str r2, [r3, #8]
474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
806 .loc 1 474 3 is_stmt 1 view .LVU206
474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
807 .loc 1 474 10 is_stmt 0 view .LVU207
808 0016 0020 movs r0, #0
809 0018 7047 bx lr
810 .L65:
471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
811 .loc 1 471 12 view .LVU208
812 001a 0120 movs r0, #1
475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
813 .loc 1 475 1 view .LVU209
814 001c 7047 bx lr
815 .L67:
ARM GAS /tmp/ccfOHnGG.s page 35
816 001e 00BF .align 2
817 .L66:
818 0020 003C0240 .word 1073888256
819 0024 3B2A1908 .word 135866939
820 .cfi_endproc
821 .LFE141:
823 .section .text.HAL_FLASH_OB_Lock,"ax",%progbits
824 .align 1
825 .global HAL_FLASH_OB_Lock
826 .syntax unified
827 .thumb
828 .thumb_func
830 HAL_FLASH_OB_Lock:
831 .LFB142:
482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Set the OPTLOCK Bit to lock the FLASH Option Byte Registers access */
832 .loc 1 482 1 is_stmt 1 view -0
833 .cfi_startproc
834 @ args = 0, pretend = 0, frame = 0
835 @ frame_needed = 0, uses_anonymous_args = 0
836 @ link register save eliminated.
484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
837 .loc 1 484 3 view .LVU211
484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
838 .loc 1 484 16 is_stmt 0 view .LVU212
839 0000 034A ldr r2, .L69
840 0002 5369 ldr r3, [r2, #20]
841 0004 43F00103 orr r3, r3, #1
842 0008 5361 str r3, [r2, #20]
486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
843 .loc 1 486 3 is_stmt 1 view .LVU213
487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
844 .loc 1 487 1 is_stmt 0 view .LVU214
845 000a 0020 movs r0, #0
846 000c 7047 bx lr
847 .L70:
848 000e 00BF .align 2
849 .L69:
850 0010 003C0240 .word 1073888256
851 .cfi_endproc
852 .LFE142:
854 .section .text.HAL_FLASH_GetError,"ax",%progbits
855 .align 1
856 .global HAL_FLASH_GetError
857 .syntax unified
858 .thumb
859 .thumb_func
861 HAL_FLASH_GetError:
862 .LFB144:
531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return pFlash.ErrorCode;
863 .loc 1 531 1 is_stmt 1 view -0
864 .cfi_startproc
865 @ args = 0, pretend = 0, frame = 0
866 @ frame_needed = 0, uses_anonymous_args = 0
867 @ link register save eliminated.
532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
868 .loc 1 532 3 view .LVU216
532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
ARM GAS /tmp/ccfOHnGG.s page 36
869 .loc 1 532 16 is_stmt 0 view .LVU217
870 0000 014B ldr r3, .L72
871 0002 D869 ldr r0, [r3, #28]
533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
872 .loc 1 533 1 view .LVU218
873 0004 7047 bx lr
874 .L73:
875 0006 00BF .align 2
876 .L72:
877 0008 00000000 .word .LANCHOR0
878 .cfi_endproc
879 .LFE144:
881 .section .text.FLASH_WaitForLastOperation,"ax",%progbits
882 .align 1
883 .global FLASH_WaitForLastOperation
884 .syntax unified
885 .thumb
886 .thumb_func
888 FLASH_WaitForLastOperation:
889 .LVL39:
890 .LFB145:
545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** uint32_t tickstart = 0U;
891 .loc 1 545 1 is_stmt 1 view -0
892 .cfi_startproc
893 @ args = 0, pretend = 0, frame = 0
894 @ frame_needed = 0, uses_anonymous_args = 0
545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** uint32_t tickstart = 0U;
895 .loc 1 545 1 is_stmt 0 view .LVU220
896 0000 38B5 push {r3, r4, r5, lr}
897 .LCFI4:
898 .cfi_def_cfa_offset 16
899 .cfi_offset 3, -16
900 .cfi_offset 4, -12
901 .cfi_offset 5, -8
902 .cfi_offset 14, -4
903 0002 0446 mov r4, r0
546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
904 .loc 1 546 3 is_stmt 1 view .LVU221
905 .LVL40:
549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
906 .loc 1 549 3 view .LVU222
549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
907 .loc 1 549 20 is_stmt 0 view .LVU223
908 0004 144B ldr r3, .L85
909 0006 0022 movs r2, #0
910 0008 DA61 str r2, [r3, #28]
555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
911 .loc 1 555 3 is_stmt 1 view .LVU224
555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
912 .loc 1 555 15 is_stmt 0 view .LVU225
913 000a FFF7FEFF bl HAL_GetTick
914 .LVL41:
555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
915 .loc 1 555 15 view .LVU226
916 000e 0546 mov r5, r0
917 .LVL42:
557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
ARM GAS /tmp/ccfOHnGG.s page 37
918 .loc 1 557 3 is_stmt 1 view .LVU227
919 .L76:
557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
920 .loc 1 557 9 view .LVU228
557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
921 .loc 1 557 10 is_stmt 0 view .LVU229
922 0010 124B ldr r3, .L85+4
923 0012 DB68 ldr r3, [r3, #12]
557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
924 .loc 1 557 9 view .LVU230
925 0014 13F4803F tst r3, #65536
926 0018 0AD0 beq .L83
559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
927 .loc 1 559 5 is_stmt 1 view .LVU231
559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
928 .loc 1 559 8 is_stmt 0 view .LVU232
929 001a B4F1FF3F cmp r4, #-1
930 001e F7D0 beq .L76
561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
931 .loc 1 561 7 is_stmt 1 view .LVU233
561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
932 .loc 1 561 10 is_stmt 0 view .LVU234
933 0020 24B1 cbz r4, .L77
561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
934 .loc 1 561 32 discriminator 1 view .LVU235
935 0022 FFF7FEFF bl HAL_GetTick
936 .LVL43:
561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
937 .loc 1 561 46 discriminator 1 view .LVU236
938 0026 401B subs r0, r0, r5
561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
939 .loc 1 561 27 discriminator 1 view .LVU237
940 0028 A042 cmp r0, r4
941 002a F1D9 bls .L76
942 .L77:
563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
943 .loc 1 563 9 is_stmt 1 view .LVU238
563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
944 .loc 1 563 16 is_stmt 0 view .LVU239
945 002c 0320 movs r0, #3
946 002e 0DE0 b .L78
947 .L83:
569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
948 .loc 1 569 3 is_stmt 1 view .LVU240
569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
949 .loc 1 569 7 is_stmt 0 view .LVU241
950 0030 0A4B ldr r3, .L85+4
951 0032 DB68 ldr r3, [r3, #12]
569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
952 .loc 1 569 6 view .LVU242
953 0034 13F0010F tst r3, #1
954 0038 02D0 beq .L80
572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
955 .loc 1 572 5 is_stmt 1 view .LVU243
956 003a 084B ldr r3, .L85+4
957 003c 0122 movs r2, #1
958 003e DA60 str r2, [r3, #12]
ARM GAS /tmp/ccfOHnGG.s page 38
959 .L80:
578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET)
960 .loc 1 578 3 view .LVU244
578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET)
961 .loc 1 578 7 is_stmt 0 view .LVU245
962 0040 064B ldr r3, .L85+4
963 0042 DB68 ldr r3, [r3, #12]
578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR)) != RESET)
964 .loc 1 578 6 view .LVU246
965 0044 13F0F20F tst r3, #242
966 0048 01D1 bne .L84
588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
967 .loc 1 588 10 view .LVU247
968 004a 0020 movs r0, #0
969 .L78:
590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
970 .loc 1 590 1 view .LVU248
971 004c 38BD pop {r3, r4, r5, pc}
972 .LVL44:
973 .L84:
583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** return HAL_ERROR;
974 .loc 1 583 5 is_stmt 1 view .LVU249
975 004e FFF7FEFF bl FLASH_SetErrorCode
976 .LVL45:
584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
977 .loc 1 584 5 view .LVU250
584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
978 .loc 1 584 12 is_stmt 0 view .LVU251
979 0052 0120 movs r0, #1
980 0054 FAE7 b .L78
981 .L86:
982 0056 00BF .align 2
983 .L85:
984 0058 00000000 .word .LANCHOR0
985 005c 003C0240 .word 1073888256
986 .cfi_endproc
987 .LFE145:
989 .section .text.HAL_FLASH_Program,"ax",%progbits
990 .align 1
991 .global HAL_FLASH_Program
992 .syntax unified
993 .thumb
994 .thumb_func
996 HAL_FLASH_Program:
997 .LVL46:
998 .LFB134:
155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status;
999 .loc 1 155 1 is_stmt 1 view -0
1000 .cfi_startproc
1001 @ args = 0, pretend = 0, frame = 0
1002 @ frame_needed = 0, uses_anonymous_args = 0
155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** HAL_StatusTypeDef status;
1003 .loc 1 155 1 is_stmt 0 view .LVU253
1004 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
1005 .LCFI5:
1006 .cfi_def_cfa_offset 24
1007 .cfi_offset 3, -24
ARM GAS /tmp/ccfOHnGG.s page 39
1008 .cfi_offset 4, -20
1009 .cfi_offset 5, -16
1010 .cfi_offset 6, -12
1011 .cfi_offset 7, -8
1012 .cfi_offset 14, -4
1013 0002 1646 mov r6, r2
156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
1014 .loc 1 156 3 is_stmt 1 view .LVU254
159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
1015 .loc 1 159 3 view .LVU255
159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
1016 .loc 1 159 3 view .LVU256
1017 0004 1B4A ldr r2, .L99
1018 .LVL47:
159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
1019 .loc 1 159 3 is_stmt 0 view .LVU257
1020 0006 127E ldrb r2, [r2, #24] @ zero_extendqisi2
1021 0008 012A cmp r2, #1
1022 000a 30D0 beq .L94
1023 000c 0446 mov r4, r0
1024 000e 0D46 mov r5, r1
1025 0010 1F46 mov r7, r3
159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
1026 .loc 1 159 3 is_stmt 1 discriminator 2 view .LVU258
1027 0012 184B ldr r3, .L99
1028 0014 0122 movs r2, #1
1029 0016 1A76 strb r2, [r3, #24]
159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
1030 .loc 1 159 3 discriminator 2 view .LVU259
162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
1031 .loc 1 162 3 discriminator 2 view .LVU260
165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
1032 .loc 1 165 3 discriminator 2 view .LVU261
165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
1033 .loc 1 165 12 is_stmt 0 discriminator 2 view .LVU262
1034 0018 4CF25030 movw r0, #50000
1035 .LVL48:
165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
1036 .loc 1 165 12 discriminator 2 view .LVU263
1037 001c FFF7FEFF bl FLASH_WaitForLastOperation
1038 .LVL49:
167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
1039 .loc 1 167 3 is_stmt 1 discriminator 2 view .LVU264
167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
1040 .loc 1 167 6 is_stmt 0 discriminator 2 view .LVU265
1041 0020 90B9 cbnz r0, .L89
169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
1042 .loc 1 169 5 is_stmt 1 view .LVU266
169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
1043 .loc 1 169 8 is_stmt 0 view .LVU267
1044 0022 ACB1 cbz r4, .L96
174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
1045 .loc 1 174 10 is_stmt 1 view .LVU268
174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
1046 .loc 1 174 13 is_stmt 0 view .LVU269
1047 0024 012C cmp r4, #1
1048 0026 18D0 beq .L97
ARM GAS /tmp/ccfOHnGG.s page 40
179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
1049 .loc 1 179 10 is_stmt 1 view .LVU270
179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** {
1050 .loc 1 179 13 is_stmt 0 view .LVU271
1051 0028 022C cmp r4, #2
1052 002a 1BD0 beq .L98
187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
1053 .loc 1 187 7 is_stmt 1 view .LVU272
1054 002c 3246 mov r2, r6
1055 002e 3B46 mov r3, r7
1056 0030 2846 mov r0, r5
1057 .LVL50:
187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
1058 .loc 1 187 7 is_stmt 0 view .LVU273
1059 0032 FFF7FEFF bl FLASH_Program_DoubleWord
1060 .LVL51:
1061 .L91:
191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
1062 .loc 1 191 5 is_stmt 1 view .LVU274
191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
1063 .loc 1 191 14 is_stmt 0 view .LVU275
1064 0036 4CF25030 movw r0, #50000
1065 003a FFF7FEFF bl FLASH_WaitForLastOperation
1066 .LVL52:
194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
1067 .loc 1 194 5 is_stmt 1 view .LVU276
194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
1068 .loc 1 194 15 is_stmt 0 view .LVU277
1069 003e 0E4A ldr r2, .L99+4
1070 0040 1369 ldr r3, [r2, #16]
1071 0042 23F00103 bic r3, r3, #1
1072 0046 1361 str r3, [r2, #16]
1073 .L89:
198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
1074 .loc 1 198 3 is_stmt 1 view .LVU278
198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
1075 .loc 1 198 3 view .LVU279
1076 0048 0A4B ldr r3, .L99
1077 004a 0022 movs r2, #0
1078 004c 1A76 strb r2, [r3, #24]
198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
1079 .loc 1 198 3 view .LVU280
200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
1080 .loc 1 200 3 view .LVU281
1081 .LVL53:
1082 .L88:
201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
1083 .loc 1 201 1 is_stmt 0 view .LVU282
1084 004e F8BD pop {r3, r4, r5, r6, r7, pc}
1085 .LVL54:
1086 .L96:
172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
1087 .loc 1 172 7 is_stmt 1 view .LVU283
1088 0050 F1B2 uxtb r1, r6
1089 0052 2846 mov r0, r5
1090 .LVL55:
172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
ARM GAS /tmp/ccfOHnGG.s page 41
1091 .loc 1 172 7 is_stmt 0 view .LVU284
1092 0054 FFF7FEFF bl FLASH_Program_Byte
1093 .LVL56:
1094 0058 EDE7 b .L91
1095 .LVL57:
1096 .L97:
177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
1097 .loc 1 177 7 is_stmt 1 view .LVU285
1098 005a B1B2 uxth r1, r6
1099 005c 2846 mov r0, r5
1100 .LVL58:
177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
1101 .loc 1 177 7 is_stmt 0 view .LVU286
1102 005e FFF7FEFF bl FLASH_Program_HalfWord
1103 .LVL59:
1104 0062 E8E7 b .L91
1105 .LVL60:
1106 .L98:
182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
1107 .loc 1 182 7 is_stmt 1 view .LVU287
1108 0064 3146 mov r1, r6
1109 0066 2846 mov r0, r5
1110 .LVL61:
182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
1111 .loc 1 182 7 is_stmt 0 view .LVU288
1112 0068 FFF7FEFF bl FLASH_Program_Word
1113 .LVL62:
1114 006c E3E7 b .L91
1115 .LVL63:
1116 .L94:
159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
1117 .loc 1 159 3 view .LVU289
1118 006e 0220 movs r0, #2
1119 .LVL64:
159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
1120 .loc 1 159 3 view .LVU290
1121 0070 EDE7 b .L88
1122 .L100:
1123 0072 00BF .align 2
1124 .L99:
1125 0074 00000000 .word .LANCHOR0
1126 0078 003C0240 .word 1073888256
1127 .cfi_endproc
1128 .LFE134:
1130 .section .text.HAL_FLASH_OB_Launch,"ax",%progbits
1131 .align 1
1132 .global HAL_FLASH_OB_Launch
1133 .syntax unified
1134 .thumb
1135 .thumb_func
1137 HAL_FLASH_OB_Launch:
1138 .LFB143:
494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** /* Set the OPTSTRT bit in OPTCR register */
1139 .loc 1 494 1 is_stmt 1 view -0
1140 .cfi_startproc
1141 @ args = 0, pretend = 0, frame = 0
1142 @ frame_needed = 0, uses_anonymous_args = 0
ARM GAS /tmp/ccfOHnGG.s page 42
1143 0000 08B5 push {r3, lr}
1144 .LCFI6:
1145 .cfi_def_cfa_offset 8
1146 .cfi_offset 3, -8
1147 .cfi_offset 14, -4
496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
1148 .loc 1 496 3 view .LVU292
496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
1149 .loc 1 496 40 is_stmt 0 view .LVU293
1150 0002 054A ldr r2, .L103
1151 0004 137D ldrb r3, [r2, #20] @ zero_extendqisi2
1152 0006 43F00203 orr r3, r3, #2
1153 000a 1375 strb r3, [r2, #20]
499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
1154 .loc 1 499 3 is_stmt 1 view .LVU294
499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c **** }
1155 .loc 1 499 11 is_stmt 0 view .LVU295
1156 000c 4CF25030 movw r0, #50000
1157 0010 FFF7FEFF bl FLASH_WaitForLastOperation
1158 .LVL65:
500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ****
1159 .loc 1 500 1 view .LVU296
1160 0014 08BD pop {r3, pc}
1161 .L104:
1162 0016 00BF .align 2
1163 .L103:
1164 0018 003C0240 .word 1073888256
1165 .cfi_endproc
1166 .LFE143:
1168 .global pFlash
1169 .section .bss.pFlash,"aw",%nobits
1170 .align 2
1171 .set .LANCHOR0,. + 0
1174 pFlash:
1175 0000 00000000 .space 32
1175 00000000
1175 00000000
1175 00000000
1175 00000000
1176 .text
1177 .Letext0:
1178 .file 3 "/home/jfen/toolchain/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_defaul
1179 .file 4 "/home/jfen/toolchain/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h"
1180 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h"
1181 .file 6 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h"
1182 .file 7 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h"
1183 .file 8 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h"
1184 .file 9 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h"
1185 .file 10 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h"
ARM GAS /tmp/ccfOHnGG.s page 43
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32f4xx_hal_flash.c
/tmp/ccfOHnGG.s:20 .text.FLASH_Program_DoubleWord:0000000000000000 $t
/tmp/ccfOHnGG.s:25 .text.FLASH_Program_DoubleWord:0000000000000000 FLASH_Program_DoubleWord
/tmp/ccfOHnGG.s:85 .text.FLASH_Program_DoubleWord:000000000000002c $d
/tmp/ccfOHnGG.s:90 .text.FLASH_Program_Word:0000000000000000 $t
/tmp/ccfOHnGG.s:95 .text.FLASH_Program_Word:0000000000000000 FLASH_Program_Word
/tmp/ccfOHnGG.s:127 .text.FLASH_Program_Word:0000000000000020 $d
/tmp/ccfOHnGG.s:132 .text.FLASH_Program_HalfWord:0000000000000000 $t
/tmp/ccfOHnGG.s:137 .text.FLASH_Program_HalfWord:0000000000000000 FLASH_Program_HalfWord
/tmp/ccfOHnGG.s:169 .text.FLASH_Program_HalfWord:0000000000000020 $d
/tmp/ccfOHnGG.s:174 .text.FLASH_Program_Byte:0000000000000000 $t
/tmp/ccfOHnGG.s:179 .text.FLASH_Program_Byte:0000000000000000 FLASH_Program_Byte
/tmp/ccfOHnGG.s:210 .text.FLASH_Program_Byte:000000000000001c $d
/tmp/ccfOHnGG.s:215 .text.FLASH_SetErrorCode:0000000000000000 $t
/tmp/ccfOHnGG.s:220 .text.FLASH_SetErrorCode:0000000000000000 FLASH_SetErrorCode
/tmp/ccfOHnGG.s:322 .text.FLASH_SetErrorCode:0000000000000084 $d
/tmp/ccfOHnGG.s:328 .text.HAL_FLASH_Program_IT:0000000000000000 $t
/tmp/ccfOHnGG.s:334 .text.HAL_FLASH_Program_IT:0000000000000000 HAL_FLASH_Program_IT
/tmp/ccfOHnGG.s:419 .text.HAL_FLASH_Program_IT:000000000000004c $d
/tmp/ccfOHnGG.s:425 .text.HAL_FLASH_EndOfOperationCallback:0000000000000000 $t
/tmp/ccfOHnGG.s:431 .text.HAL_FLASH_EndOfOperationCallback:0000000000000000 HAL_FLASH_EndOfOperationCallback
/tmp/ccfOHnGG.s:446 .text.HAL_FLASH_OperationErrorCallback:0000000000000000 $t
/tmp/ccfOHnGG.s:452 .text.HAL_FLASH_OperationErrorCallback:0000000000000000 HAL_FLASH_OperationErrorCallback
/tmp/ccfOHnGG.s:467 .text.HAL_FLASH_IRQHandler:0000000000000000 $t
/tmp/ccfOHnGG.s:473 .text.HAL_FLASH_IRQHandler:0000000000000000 HAL_FLASH_IRQHandler
/tmp/ccfOHnGG.s:682 .text.HAL_FLASH_IRQHandler:00000000000000e4 $d
/tmp/ccfOHnGG.s:688 .text.HAL_FLASH_Unlock:0000000000000000 $t
/tmp/ccfOHnGG.s:694 .text.HAL_FLASH_Unlock:0000000000000000 HAL_FLASH_Unlock
/tmp/ccfOHnGG.s:740 .text.HAL_FLASH_Unlock:0000000000000028 $d
/tmp/ccfOHnGG.s:746 .text.HAL_FLASH_Lock:0000000000000000 $t
/tmp/ccfOHnGG.s:752 .text.HAL_FLASH_Lock:0000000000000000 HAL_FLASH_Lock
/tmp/ccfOHnGG.s:772 .text.HAL_FLASH_Lock:0000000000000010 $d
/tmp/ccfOHnGG.s:777 .text.HAL_FLASH_OB_Unlock:0000000000000000 $t
/tmp/ccfOHnGG.s:783 .text.HAL_FLASH_OB_Unlock:0000000000000000 HAL_FLASH_OB_Unlock
/tmp/ccfOHnGG.s:818 .text.HAL_FLASH_OB_Unlock:0000000000000020 $d
/tmp/ccfOHnGG.s:824 .text.HAL_FLASH_OB_Lock:0000000000000000 $t
/tmp/ccfOHnGG.s:830 .text.HAL_FLASH_OB_Lock:0000000000000000 HAL_FLASH_OB_Lock
/tmp/ccfOHnGG.s:850 .text.HAL_FLASH_OB_Lock:0000000000000010 $d
/tmp/ccfOHnGG.s:855 .text.HAL_FLASH_GetError:0000000000000000 $t
/tmp/ccfOHnGG.s:861 .text.HAL_FLASH_GetError:0000000000000000 HAL_FLASH_GetError
/tmp/ccfOHnGG.s:877 .text.HAL_FLASH_GetError:0000000000000008 $d
/tmp/ccfOHnGG.s:882 .text.FLASH_WaitForLastOperation:0000000000000000 $t
/tmp/ccfOHnGG.s:888 .text.FLASH_WaitForLastOperation:0000000000000000 FLASH_WaitForLastOperation
/tmp/ccfOHnGG.s:984 .text.FLASH_WaitForLastOperation:0000000000000058 $d
/tmp/ccfOHnGG.s:990 .text.HAL_FLASH_Program:0000000000000000 $t
/tmp/ccfOHnGG.s:996 .text.HAL_FLASH_Program:0000000000000000 HAL_FLASH_Program
/tmp/ccfOHnGG.s:1125 .text.HAL_FLASH_Program:0000000000000074 $d
/tmp/ccfOHnGG.s:1131 .text.HAL_FLASH_OB_Launch:0000000000000000 $t
/tmp/ccfOHnGG.s:1137 .text.HAL_FLASH_OB_Launch:0000000000000000 HAL_FLASH_OB_Launch
/tmp/ccfOHnGG.s:1164 .text.HAL_FLASH_OB_Launch:0000000000000018 $d
/tmp/ccfOHnGG.s:1174 .bss.pFlash:0000000000000000 pFlash
/tmp/ccfOHnGG.s:1170 .bss.pFlash:0000000000000000 $d
UNDEFINED SYMBOLS
FLASH_Erase_Sector
FLASH_FlushCaches
ARM GAS /tmp/ccfOHnGG.s page 44
HAL_GetTick