Files
RFG_stm32_ADC_STM32F429/build/stm32f4xx_hal_flash.lst

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