You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
KED/bsl/cmakeTest_makefile/build/stm32f0xx_hal_flash.lst

2247 lines
133 KiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

ARM GAS /tmp/cc21Th62.s page 1
1 .cpu cortex-m0
2 .eabi_attribute 20, 1
3 .eabi_attribute 21, 1
4 .eabi_attribute 23, 3
5 .eabi_attribute 24, 1
6 .eabi_attribute 25, 1
7 .eabi_attribute 26, 1
8 .eabi_attribute 30, 1
9 .eabi_attribute 34, 0
10 .eabi_attribute 18, 4
11 .file "stm32f0xx_hal_flash.c"
12 .text
13 .Ltext0:
14 .cfi_sections .debug_frame
15 .section .text.FLASH_Program_HalfWord,"ax",%progbits
16 .align 1
17 .arch armv6s-m
18 .syntax unified
19 .code 16
20 .thumb_func
21 .fpu softvfp
23 FLASH_Program_HalfWord:
24 .LVL0:
25 .LFB51:
26 .file 1 "Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c"
1:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
2:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ******************************************************************************
3:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @file stm32f0xx_hal_flash.c
4:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @author MCD Application Team
5:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief FLASH HAL module driver.
6:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * This file provides firmware functions to manage the following
7:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * functionalities of the internal FLASH memory:
8:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * + Program operations functions
9:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * + Memory Control functions
10:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * + Peripheral State functions
11:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** *
12:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** @verbatim
13:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ==============================================================================
14:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ##### FLASH peripheral features #####
15:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ==============================================================================
16:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** [..] The Flash memory interface manages CPU AHB I-Code and D-Code accesses
17:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** to the Flash memory. It implements the erase and program Flash memory operations
18:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** and the read and write protection mechanisms.
19:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
20:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** [..] The Flash memory interface accelerates code execution with a system of instruction
21:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** prefetch.
22:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
23:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** [..] The FLASH main features are:
24:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (+) Flash memory read operations
25:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (+) Flash memory program/erase operations
26:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (+) Read / write protections
27:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (+) Prefetch on I-Code
28:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (+) Option Bytes programming
29:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
30:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
31:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ##### How to use this driver #####
32:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ==============================================================================
ARM GAS /tmp/cc21Th62.s page 2
33:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** [..]
34:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** This driver provides functions and macros to configure and program the FLASH
35:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** memory of all STM32F0xx devices.
36:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
37:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (#) FLASH Memory I/O Programming functions: this group includes all needed
38:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** functions to erase and program the main memory:
39:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Lock and Unlock the FLASH interface
40:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Erase function: Erase page, erase all pages
41:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Program functions: half word, word and doubleword
42:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (#) FLASH Option Bytes Programming functions: this group includes all needed
43:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** functions to manage the Option Bytes:
44:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Lock and Unlock the Option Bytes
45:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Set/Reset the write protection
46:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Set the Read protection Level
47:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Program the user Option Bytes
48:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Launch the Option Bytes loader
49:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Erase Option Bytes
50:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Program the data Option Bytes
51:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Get the Write protection.
52:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Get the user option bytes.
53:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
54:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (#) Interrupts and flags management functions : this group
55:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** includes all needed functions to:
56:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Handle FLASH interrupts
57:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Wait for last FLASH operation according to its status
58:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (++) Get error flag status
59:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
60:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** [..] In addition to these function, this driver includes a set of macros allowing
61:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** to handle the following operations:
62:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
63:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (+) Set/Get the latency
64:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (+) Enable/Disable the prefetch buffer
65:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (+) Enable/Disable the FLASH interrupts
66:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** (+) Monitor the FLASH flags status
67:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
68:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** @endverbatim
69:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ******************************************************************************
70:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @attention
71:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** *
72:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
73:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * All rights reserved.</center></h2>
74:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** *
75:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * This software component is licensed by ST under BSD 3-Clause license,
76:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * the "License"; You may not use this file except in compliance with the
77:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * License. You may obtain a copy of the License at:
78:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * opensource.org/licenses/BSD-3-Clause
79:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** *
80:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ******************************************************************************
81:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
82:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
83:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Includes ------------------------------------------------------------------*/
84:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** #include "stm32f0xx_hal.h"
85:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
86:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @addtogroup STM32F0xx_HAL_Driver
87:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{
88:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
89:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
ARM GAS /tmp/cc21Th62.s page 3
90:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** #ifdef HAL_FLASH_MODULE_ENABLED
91:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
92:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @defgroup FLASH FLASH
93:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief FLASH HAL module driver
94:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{
95:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
96:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
97:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Private typedef -----------------------------------------------------------*/
98:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Private define ------------------------------------------------------------*/
99:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @defgroup FLASH_Private_Constants FLASH Private Constants
100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{
101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @}
104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Private macro ---------------------------- ---------------------------------*/
107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @defgroup FLASH_Private_Macros FLASH Private Macros
108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{
109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @}
113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Private variables ---------------------------------------------------------*/
116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @defgroup FLASH_Private_Variables FLASH Private Variables
117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{
118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Variables used for Erase pages under interruption*/
120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** FLASH_ProcessTypeDef pFlash;
121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @}
123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Private function prototypes -----------------------------------------------*/
126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @defgroup FLASH_Private_Functions FLASH Private Functions
127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{
128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data);
130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** static void FLASH_SetErrorCode(void);
131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** extern void FLASH_PageErase(uint32_t PageAddress);
132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @}
134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Exported functions ---------------------------------------------------------*/
137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions FLASH Exported Functions
138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{
139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group1 Programming operation functions
142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Programming operation functions
143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** *
144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** @verbatim
145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** @endverbatim
146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{
ARM GAS /tmp/cc21Th62.s page 4
147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Program halfword, word or double word at a specified address
151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @note The function HAL_FLASH_Unlock() should be called before to unlock the FLASH interface
152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * The function HAL_FLASH_Lock() should be called after to lock the FLASH interface
153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** *
154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @note If an erase and a program operations are requested simultaneously,
155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * the erase operation is performed before the program one.
156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** *
157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @note FLASH should be previously erased before new programming (only exception to this
158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * is when 0x0000 is programmed)
159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** *
160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param TypeProgram Indicate the way to program at a specified address.
161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * This parameter can be a value of @ref FLASH_Type_Program
162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param Address Specifie the address to be programmed.
163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param Data Specifie the data to be programmed
164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** *
165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval HAL_StatusTypeDef HAL Status
166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_ERROR;
170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** uint8_t index = 0U;
171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** uint8_t nbiterations = 0U;
172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Process Locked */
174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_LOCK(&pFlash);
175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Check the parameters */
177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram));
178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(Address));
179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Wait for last operation to be completed */
181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(status == HAL_OK)
184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(TypeProgram == FLASH_TYPEPROGRAM_HALFWORD)
186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program halfword (16-bit) at a specified address. */
188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** nbiterations = 1U;
189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else if(TypeProgram == FLASH_TYPEPROGRAM_WORD)
191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program word (32-bit = 2*16-bit) at a specified address. */
193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** nbiterations = 2U;
194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else
196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program double word (64-bit = 4*16-bit) at a specified address. */
198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** nbiterations = 4U;
199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** for (index = 0U; index < nbiterations; index++)
202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** FLASH_Program_HalfWord((Address + (2U*index)), (uint16_t)(Data >> (16U*index)));
ARM GAS /tmp/cc21Th62.s page 5
204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Wait for last operation to be completed */
206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* If the program operation is completed, disable the PG Bit */
209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PG);
210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* In case of error, stop programming procedure */
211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if (status != HAL_OK)
212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** break;
214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Process Unlocked */
219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_UNLOCK(&pFlash);
220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return status;
222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Program halfword, word or double word at a specified address with interrupt enabled.
226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @note The function HAL_FLASH_Unlock() should be called before to unlock the FLASH interface
227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * The function HAL_FLASH_Lock() should be called after to lock the FLASH interface
228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** *
229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @note If an erase and a program operations are requested simultaneously,
230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * the erase operation is performed before the program one.
231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** *
232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param TypeProgram Indicate the way to program at a specified address.
233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * This parameter can be a value of @ref FLASH_Type_Program
234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param Address Specifie the address to be programmed.
235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param Data Specifie the data to be programmed
236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** *
237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval HAL_StatusTypeDef HAL Status
238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK;
242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Process Locked */
244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_LOCK(&pFlash);
245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Check the parameters */
247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram));
248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(Address));
249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Enable End of FLASH Operation and Error source interrupts */
251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP | FLASH_IT_ERR);
252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Address = Address;
254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Data = Data;
255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(TypeProgram == FLASH_TYPEPROGRAM_HALFWORD)
257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAMHALFWORD;
259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program halfword (16-bit) at a specified address. */
260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.DataRemaining = 1U;
ARM GAS /tmp/cc21Th62.s page 6
261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else if(TypeProgram == FLASH_TYPEPROGRAM_WORD)
263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAMWORD;
265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program word (32-bit : 2*16-bit) at a specified address. */
266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.DataRemaining = 2U;
267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else
269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAMDOUBLEWORD;
271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program double word (64-bit : 4*16-bit) at a specified address. */
272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.DataRemaining = 4U;
273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program halfword (16-bit) at a specified address. */
276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** FLASH_Program_HalfWord(Address, (uint16_t)Data);
277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return status;
279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief This function handles FLASH interrupt request.
283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval None
284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** void HAL_FLASH_IRQHandler(void)
286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** uint32_t addresstmp = 0U;
288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Check FLASH operation error flags */
290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) ||__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR))
291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Return the faulty address */
293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** addresstmp = pFlash.Address;
294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Reset address */
295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Address = 0xFFFFFFFFU;
296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Save the Error code */
298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** FLASH_SetErrorCode();
299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* FLASH error interrupt user callback */
301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_FLASH_OperationErrorCallback(addresstmp);
302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Stop the procedure ongoing */
304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Check FLASH End of Operation flag */
308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP))
309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */
311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Process can continue only if no error detected */
314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(pFlash.ProcedureOnGoing != FLASH_PROC_NONE)
315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(pFlash.ProcedureOnGoing == FLASH_PROC_PAGEERASE)
317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
ARM GAS /tmp/cc21Th62.s page 7
318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Nb of pages to erased can be decreased */
319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.DataRemaining--;
320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Check if there are still pages to erase */
322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(pFlash.DataRemaining != 0U)
323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** addresstmp = pFlash.Address;
325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /*Indicate user which sector has been erased */
326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(addresstmp);
327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /*Increment sector number*/
329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** addresstmp = pFlash.Address + FLASH_PAGE_SIZE;
330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Address = addresstmp;
331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* If the erase operation is completed, disable the PER Bit */
333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PER);
334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** FLASH_PageErase(addresstmp);
336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else
338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* No more pages to Erase, user callback can be called. */
340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Reset Sector and stop Erase pages procedure */
341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Address = addresstmp = 0xFFFFFFFFU;
342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* FLASH EOP interrupt user callback */
344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(addresstmp);
345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else if(pFlash.ProcedureOnGoing == FLASH_PROC_MASSERASE)
348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Operation is completed, disable the MER Bit */
350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_MER);
351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* MassErase ended. Return the selected bank */
353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* FLASH EOP interrupt user callback */
354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(0);
355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Stop Mass Erase procedure*/
357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else
360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Nb of 16-bit data to program can be decreased */
362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.DataRemaining--;
363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Check if there are still 16-bit data to program */
365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(pFlash.DataRemaining != 0U)
366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Increment address to 16-bit */
368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Address += 2;
369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** addresstmp = pFlash.Address;
370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Shift to have next 16-bit data */
372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Data = (pFlash.Data >> 16U);
373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Operation is completed, disable the PG Bit */
ARM GAS /tmp/cc21Th62.s page 8
375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PG);
376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /*Program halfword (16-bit) at a specified address.*/
378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** FLASH_Program_HalfWord(addresstmp, (uint16_t)pFlash.Data);
379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else
381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program ended. Return the selected address */
383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* FLASH EOP interrupt user callback */
384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if (pFlash.ProcedureOnGoing == FLASH_PROC_PROGRAMHALFWORD)
385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Address);
387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else if (pFlash.ProcedureOnGoing == FLASH_PROC_PROGRAMWORD)
389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Address - 2U);
391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else
393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Address - 6U);
395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Reset Address and stop Program procedure */
398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Address = 0xFFFFFFFFU;
399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(pFlash.ProcedureOnGoing == FLASH_PROC_NONE)
407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Operation is completed, disable the PG, PER and MER Bits */
409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, (FLASH_CR_PG | FLASH_CR_PER | FLASH_CR_MER));
410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Disable End of FLASH Operation and Error source interrupts */
412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_FLASH_DISABLE_IT(FLASH_IT_EOP | FLASH_IT_ERR);
413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Process Unlocked */
415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_UNLOCK(&pFlash);
416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief FLASH end of operation interrupt callback
421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param ReturnValue The value saved in this parameter depends on the ongoing procedure
422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * - Mass Erase: No return value expected
423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * - Pages Erase: Address of the page which has been erased
424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * (if 0xFFFFFFFF, it means that all the selected pages have been erased)
425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * - Program: Address which was selected for data program
426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval none
427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __weak void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue)
429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */
431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** UNUSED(ReturnValue);
ARM GAS /tmp/cc21Th62.s page 9
432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed,
434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** the HAL_FLASH_EndOfOperationCallback could be implemented in the user file
435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief FLASH operation error interrupt callback
440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param ReturnValue The value saved in this parameter depends on the ongoing procedure
441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * - Mass Erase: No return value expected
442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * - Pages Erase: Address of the page which returned an error
443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * - Program: Address which was selected for data program
444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval none
445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __weak void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue)
447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */
449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** UNUSED(ReturnValue);
450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed,
452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** the HAL_FLASH_OperationErrorCallback could be implemented in the user file
453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @}
458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group2 Peripheral Control functions
461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief management functions
462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** *
463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** @verbatim
464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ===============================================================================
465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ##### Peripheral Control functions #####
466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ===============================================================================
467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** [..]
468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** This subsection provides a set of functions allowing to control the FLASH
469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** memory operations.
470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** @endverbatim
472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{
473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Unlock the FLASH control register access
477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval HAL Status
478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Unlock(void)
480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK;
482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Authorize the FLASH Registers access */
486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY1);
487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY2);
488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
ARM GAS /tmp/cc21Th62.s page 10
489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Verify Flash is unlocked */
490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** status = HAL_ERROR;
493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return status;
497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Locks the FLASH control register access
501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval HAL Status
502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Lock(void)
504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Set the LOCK Bit to lock the FLASH Registers access */
506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** SET_BIT(FLASH->CR, FLASH_CR_LOCK);
507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return HAL_OK;
509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Unlock the FLASH Option Control Registers access.
513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval HAL Status
514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void)
516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if (HAL_IS_BIT_CLR(FLASH->CR, FLASH_CR_OPTWRE))
518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Authorizes the Option Byte register programming */
520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY1);
521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY2);
522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** else
524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return HAL_ERROR;
526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return HAL_OK;
529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Lock the FLASH Option Control Registers access.
533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval HAL Status
534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Lock(void)
536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Clear the OPTWRE Bit to lock the FLASH Option Byte Registers access */
538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTWRE);
539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return HAL_OK;
541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Launch the option byte loading.
545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @note This function will reset automatically the MCU.
ARM GAS /tmp/cc21Th62.s page 11
546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval HAL Status
547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Launch(void)
549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Set the OBL_Launch bit to launch the option byte loading */
551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** SET_BIT(FLASH->CR, FLASH_CR_OBL_LAUNCH);
552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Wait for last operation to be completed */
554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return(FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE));
555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @}
559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group3 Peripheral errors functions
562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Peripheral errors functions
563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** *
564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** @verbatim
565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ===============================================================================
566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ##### Peripheral Errors functions #####
567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** ===============================================================================
568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** [..]
569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** This subsection permit to get in run-time errors of the FLASH peripheral.
570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** @endverbatim
572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{
573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Get the specific FLASH error flag.
577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval FLASH_ErrorCode The returned value can be:
578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @ref FLASH_Error_Codes
579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** uint32_t HAL_FLASH_GetError(void)
581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return pFlash.ErrorCode;
583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @}
587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @}
591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /** @addtogroup FLASH_Private_Functions
594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @{
595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Program a half-word (16-bit) at a specified address.
599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param Address specify the address to be programmed.
600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param Data specify the data to be programmed.
601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval None
602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
ARM GAS /tmp/cc21Th62.s page 12
603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data)
604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
27 .loc 1 604 1 view -0
28 .cfi_startproc
29 @ args = 0, pretend = 0, frame = 0
30 @ frame_needed = 0, uses_anonymous_args = 0
31 .loc 1 604 1 is_stmt 0 view .LVU1
32 0000 10B5 push {r4, lr}
33 .LCFI0:
34 .cfi_def_cfa_offset 8
35 .cfi_offset 4, -8
36 .cfi_offset 14, -4
605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Clean the error context */
606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
37 .loc 1 606 3 is_stmt 1 view .LVU2
38 .loc 1 606 20 is_stmt 0 view .LVU3
39 0002 054B ldr r3, .L2
40 0004 0022 movs r2, #0
41 0006 DA61 str r2, [r3, #28]
607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Proceed to program the new data */
609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** SET_BIT(FLASH->CR, FLASH_CR_PG);
42 .loc 1 609 5 is_stmt 1 view .LVU4
43 0008 044A ldr r2, .L2+4
44 000a 1369 ldr r3, [r2, #16]
45 000c 0124 movs r4, #1
46 000e 2343 orrs r3, r4
47 0010 1361 str r3, [r2, #16]
610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Write data in the address */
612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** *(__IO uint16_t*)Address = Data;
48 .loc 1 612 3 view .LVU5
49 .loc 1 612 28 is_stmt 0 view .LVU6
50 0012 0180 strh r1, [r0]
613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
51 .loc 1 613 1 view .LVU7
52 @ sp needed
53 0014 10BD pop {r4, pc}
54 .L3:
55 0016 C046 .align 2
56 .L2:
57 0018 00000000 .word pFlash
58 001c 00200240 .word 1073881088
59 .cfi_endproc
60 .LFE51:
62 .section .text.FLASH_SetErrorCode,"ax",%progbits
63 .align 1
64 .syntax unified
65 .code 16
66 .thumb_func
67 .fpu softvfp
69 FLASH_SetErrorCode:
70 .LFB53:
614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Wait for a FLASH operation to complete.
617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @param Timeout maximum flash operation timeout
ARM GAS /tmp/cc21Th62.s page 13
618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval HAL Status
619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout)
621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset.
623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** Even if the FLASH operation fails, the BUSY flag will be reset and an error
624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** flag will be set */
625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** uint32_t tickstart = HAL_GetTick();
627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY))
629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if (Timeout != HAL_MAX_DELAY)
631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if((Timeout == 0U) || ((HAL_GetTick()-tickstart) > Timeout))
633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return HAL_TIMEOUT;
635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Check FLASH End of Operation flag */
640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP))
641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */
643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) ||
647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR))
648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /*Save the error code*/
650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** FLASH_SetErrorCode();
651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return HAL_ERROR;
652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* There is no error flag set */
655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return HAL_OK;
656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /**
660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @brief Set the specific FLASH error flag.
661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** * @retval None
662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** */
663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** static void FLASH_SetErrorCode(void)
664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
71 .loc 1 664 1 is_stmt 1 view -0
72 .cfi_startproc
73 @ args = 0, pretend = 0, frame = 0
74 @ frame_needed = 0, uses_anonymous_args = 0
75 @ link register save eliminated.
665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** uint32_t flags = 0U;
76 .loc 1 665 3 view .LVU9
77 .LVL1:
666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR))
ARM GAS /tmp/cc21Th62.s page 14
78 .loc 1 667 3 view .LVU10
79 .loc 1 667 6 is_stmt 0 view .LVU11
80 0000 0C4B ldr r3, .L7
81 0002 DA68 ldr r2, [r3, #12]
82 0004 1023 movs r3, #16
83 0006 1340 ands r3, r2
84 .loc 1 667 5 view .LVU12
85 0008 05D0 beq .L5
668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP;
86 .loc 1 669 5 is_stmt 1 view .LVU13
87 .loc 1 669 22 is_stmt 0 view .LVU14
88 000a 0B4A ldr r2, .L7+4
89 000c D369 ldr r3, [r2, #28]
90 000e 0221 movs r1, #2
91 0010 0B43 orrs r3, r1
92 0012 D361 str r3, [r2, #28]
670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** flags |= FLASH_FLAG_WRPERR;
93 .loc 1 670 5 is_stmt 1 view .LVU15
94 .LVL2:
95 .loc 1 670 11 is_stmt 0 view .LVU16
96 0014 1023 movs r3, #16
97 .LVL3:
98 .L5:
671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR))
99 .loc 1 672 3 is_stmt 1 view .LVU17
100 .loc 1 672 6 is_stmt 0 view .LVU18
101 0016 074A ldr r2, .L7
102 0018 D268 ldr r2, [r2, #12]
103 .loc 1 672 5 view .LVU19
104 001a 5207 lsls r2, r2, #29
105 001c 06D5 bpl .L6
673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_PROG;
106 .loc 1 674 5 is_stmt 1 view .LVU20
107 .loc 1 674 22 is_stmt 0 view .LVU21
108 001e 0649 ldr r1, .L7+4
109 0020 CA69 ldr r2, [r1, #28]
110 0022 0120 movs r0, #1
111 0024 0243 orrs r2, r0
112 0026 CA61 str r2, [r1, #28]
675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** flags |= FLASH_FLAG_PGERR;
113 .loc 1 675 5 is_stmt 1 view .LVU22
114 .loc 1 675 11 is_stmt 0 view .LVU23
115 0028 0422 movs r2, #4
116 002a 1343 orrs r3, r2
117 .LVL4:
118 .L6:
676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Clear FLASH error pending bits */
678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(flags);
119 .loc 1 678 3 is_stmt 1 view .LVU24
120 002c 014A ldr r2, .L7
121 002e D360 str r3, [r2, #12]
679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
122 .loc 1 679 1 is_stmt 0 view .LVU25
ARM GAS /tmp/cc21Th62.s page 15
123 @ sp needed
124 0030 7047 bx lr
125 .L8:
126 0032 C046 .align 2
127 .L7:
128 0034 00200240 .word 1073881088
129 0038 00000000 .word pFlash
130 .cfi_endproc
131 .LFE53:
133 .section .text.HAL_FLASH_Program_IT,"ax",%progbits
134 .align 1
135 .global HAL_FLASH_Program_IT
136 .syntax unified
137 .code 16
138 .thumb_func
139 .fpu softvfp
141 HAL_FLASH_Program_IT:
142 .LVL5:
143 .LFB41:
240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK;
144 .loc 1 240 1 is_stmt 1 view -0
145 .cfi_startproc
146 @ args = 0, pretend = 0, frame = 0
147 @ frame_needed = 0, uses_anonymous_args = 0
240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK;
148 .loc 1 240 1 is_stmt 0 view .LVU27
149 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
150 .LCFI1:
151 .cfi_def_cfa_offset 24
152 .cfi_offset 3, -24
153 .cfi_offset 4, -20
154 .cfi_offset 5, -16
155 .cfi_offset 6, -12
156 .cfi_offset 7, -8
157 .cfi_offset 14, -4
158 0002 0C00 movs r4, r1
241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
159 .loc 1 241 3 is_stmt 1 view .LVU28
160 .LVL6:
244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
161 .loc 1 244 3 view .LVU29
244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
162 .loc 1 244 3 view .LVU30
163 0004 1549 ldr r1, .L17
164 .LVL7:
244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
165 .loc 1 244 3 is_stmt 0 view .LVU31
166 0006 097E ldrb r1, [r1, #24]
167 0008 0129 cmp r1, #1
168 000a 25D0 beq .L14
244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
169 .loc 1 244 3 is_stmt 1 discriminator 2 view .LVU32
170 000c 1349 ldr r1, .L17
171 000e 0125 movs r5, #1
172 0010 0D76 strb r5, [r1, #24]
247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(Address));
173 .loc 1 247 3 discriminator 2 view .LVU33
ARM GAS /tmp/cc21Th62.s page 16
248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
174 .loc 1 248 3 discriminator 2 view .LVU34
251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
175 .loc 1 251 3 discriminator 2 view .LVU35
176 0012 134E ldr r6, .L17+4
177 0014 3769 ldr r7, [r6, #16]
178 0016 A025 movs r5, #160
179 0018 6D01 lsls r5, r5, #5
180 001a 3D43 orrs r5, r7
181 001c 3561 str r5, [r6, #16]
253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Data = Data;
182 .loc 1 253 3 discriminator 2 view .LVU36
253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Data = Data;
183 .loc 1 253 18 is_stmt 0 discriminator 2 view .LVU37
184 001e 8C60 str r4, [r1, #8]
254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
185 .loc 1 254 3 is_stmt 1 discriminator 2 view .LVU38
254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
186 .loc 1 254 15 is_stmt 0 discriminator 2 view .LVU39
187 0020 0A61 str r2, [r1, #16]
188 0022 4B61 str r3, [r1, #20]
256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
189 .loc 1 256 3 is_stmt 1 discriminator 2 view .LVU40
256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
190 .loc 1 256 5 is_stmt 0 discriminator 2 view .LVU41
191 0024 0128 cmp r0, #1
192 0026 0CD0 beq .L15
262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
193 .loc 1 262 8 is_stmt 1 view .LVU42
262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
194 .loc 1 262 10 is_stmt 0 view .LVU43
195 0028 0228 cmp r0, #2
196 002a 0FD0 beq .L16
270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program double word (64-bit : 4*16-bit) at a specified address. */
197 .loc 1 270 5 is_stmt 1 view .LVU44
270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program double word (64-bit : 4*16-bit) at a specified address. */
198 .loc 1 270 29 is_stmt 0 view .LVU45
199 002c 0B49 ldr r1, .L17
200 002e 0520 movs r0, #5
201 .LVL8:
270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program double word (64-bit : 4*16-bit) at a specified address. */
202 .loc 1 270 29 view .LVU46
203 0030 0870 strb r0, [r1]
272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
204 .loc 1 272 5 is_stmt 1 view .LVU47
272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
205 .loc 1 272 26 is_stmt 0 view .LVU48
206 0032 0138 subs r0, r0, #1
207 0034 4860 str r0, [r1, #4]
208 .L12:
276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
209 .loc 1 276 3 is_stmt 1 view .LVU49
210 0036 91B2 uxth r1, r2
211 0038 2000 movs r0, r4
212 003a FFF7FEFF bl FLASH_Program_HalfWord
213 .LVL9:
278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
ARM GAS /tmp/cc21Th62.s page 17
214 .loc 1 278 3 view .LVU50
278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
215 .loc 1 278 10 is_stmt 0 view .LVU51
216 003e 0020 movs r0, #0
217 .L10:
279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
218 .loc 1 279 1 view .LVU52
219 @ sp needed
220 .LVL10:
279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
221 .loc 1 279 1 view .LVU53
222 0040 F8BD pop {r3, r4, r5, r6, r7, pc}
223 .LVL11:
224 .L15:
258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program halfword (16-bit) at a specified address. */
225 .loc 1 258 5 is_stmt 1 view .LVU54
258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program halfword (16-bit) at a specified address. */
226 .loc 1 258 29 is_stmt 0 view .LVU55
227 0042 0230 adds r0, r0, #2
228 .LVL12:
258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program halfword (16-bit) at a specified address. */
229 .loc 1 258 29 view .LVU56
230 0044 0870 strb r0, [r1]
260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
231 .loc 1 260 5 is_stmt 1 view .LVU57
260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
232 .loc 1 260 26 is_stmt 0 view .LVU58
233 0046 0238 subs r0, r0, #2
234 .LVL13:
260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
235 .loc 1 260 26 view .LVU59
236 0048 4860 str r0, [r1, #4]
237 004a F4E7 b .L12
238 .L16:
264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program word (32-bit : 2*16-bit) at a specified address. */
239 .loc 1 264 5 is_stmt 1 view .LVU60
264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program word (32-bit : 2*16-bit) at a specified address. */
240 .loc 1 264 29 is_stmt 0 view .LVU61
241 004c 0349 ldr r1, .L17
242 004e 0230 adds r0, r0, #2
243 .LVL14:
264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Program word (32-bit : 2*16-bit) at a specified address. */
244 .loc 1 264 29 view .LVU62
245 0050 0870 strb r0, [r1]
266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
246 .loc 1 266 5 is_stmt 1 view .LVU63
266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
247 .loc 1 266 26 is_stmt 0 view .LVU64
248 0052 0238 subs r0, r0, #2
249 .LVL15:
266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
250 .loc 1 266 26 view .LVU65
251 0054 4860 str r0, [r1, #4]
252 0056 EEE7 b .L12
253 .L14:
244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
254 .loc 1 244 3 view .LVU66
ARM GAS /tmp/cc21Th62.s page 18
255 0058 0220 movs r0, #2
256 .LVL16:
244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
257 .loc 1 244 3 view .LVU67
258 005a F1E7 b .L10
259 .L18:
260 .align 2
261 .L17:
262 005c 00000000 .word pFlash
263 0060 00200240 .word 1073881088
264 .cfi_endproc
265 .LFE41:
267 .section .text.HAL_FLASH_EndOfOperationCallback,"ax",%progbits
268 .align 1
269 .weak HAL_FLASH_EndOfOperationCallback
270 .syntax unified
271 .code 16
272 .thumb_func
273 .fpu softvfp
275 HAL_FLASH_EndOfOperationCallback:
276 .LVL17:
277 .LFB43:
429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */
278 .loc 1 429 1 is_stmt 1 view -0
279 .cfi_startproc
280 @ args = 0, pretend = 0, frame = 0
281 @ frame_needed = 0, uses_anonymous_args = 0
282 @ link register save eliminated.
431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
283 .loc 1 431 3 view .LVU69
436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
284 .loc 1 436 1 is_stmt 0 view .LVU70
285 @ sp needed
286 0000 7047 bx lr
287 .cfi_endproc
288 .LFE43:
290 .section .text.HAL_FLASH_OperationErrorCallback,"ax",%progbits
291 .align 1
292 .weak HAL_FLASH_OperationErrorCallback
293 .syntax unified
294 .code 16
295 .thumb_func
296 .fpu softvfp
298 HAL_FLASH_OperationErrorCallback:
299 .LVL18:
300 .LFB44:
447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */
301 .loc 1 447 1 is_stmt 1 view -0
302 .cfi_startproc
303 @ args = 0, pretend = 0, frame = 0
304 @ frame_needed = 0, uses_anonymous_args = 0
305 @ link register save eliminated.
449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
306 .loc 1 449 3 view .LVU72
454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
307 .loc 1 454 1 is_stmt 0 view .LVU73
308 @ sp needed
ARM GAS /tmp/cc21Th62.s page 19
309 0000 7047 bx lr
310 .cfi_endproc
311 .LFE44:
313 .section .text.HAL_FLASH_IRQHandler,"ax",%progbits
314 .align 1
315 .global HAL_FLASH_IRQHandler
316 .syntax unified
317 .code 16
318 .thumb_func
319 .fpu softvfp
321 HAL_FLASH_IRQHandler:
322 .LFB42:
286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** uint32_t addresstmp = 0U;
323 .loc 1 286 1 is_stmt 1 view -0
324 .cfi_startproc
325 @ args = 0, pretend = 0, frame = 0
326 @ frame_needed = 0, uses_anonymous_args = 0
327 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
328 .LCFI2:
329 .cfi_def_cfa_offset 24
330 .cfi_offset 3, -24
331 .cfi_offset 4, -20
332 .cfi_offset 5, -16
333 .cfi_offset 6, -12
334 .cfi_offset 7, -8
335 .cfi_offset 14, -4
287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
336 .loc 1 287 3 view .LVU75
337 .LVL19:
290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
338 .loc 1 290 3 view .LVU76
290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
339 .loc 1 290 6 is_stmt 0 view .LVU77
340 0002 514B ldr r3, .L38
341 0004 DB68 ldr r3, [r3, #12]
290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
342 .loc 1 290 5 view .LVU78
343 0006 DB06 lsls r3, r3, #27
344 0008 03D4 bmi .L22
290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
345 .loc 1 290 48 discriminator 1 view .LVU79
346 000a 4F4B ldr r3, .L38
347 000c DB68 ldr r3, [r3, #12]
290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
348 .loc 1 290 46 discriminator 1 view .LVU80
349 000e 5B07 lsls r3, r3, #29
350 0010 0BD5 bpl .L23
351 .L22:
293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Reset address */
352 .loc 1 293 5 is_stmt 1 view .LVU81
293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Reset address */
353 .loc 1 293 16 is_stmt 0 view .LVU82
354 0012 4E4C ldr r4, .L38+4
355 0014 A568 ldr r5, [r4, #8]
356 .LVL20:
295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
357 .loc 1 295 5 is_stmt 1 view .LVU83
ARM GAS /tmp/cc21Th62.s page 20
295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
358 .loc 1 295 20 is_stmt 0 view .LVU84
359 0016 0123 movs r3, #1
360 0018 5B42 rsbs r3, r3, #0
361 001a A360 str r3, [r4, #8]
298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
362 .loc 1 298 5 is_stmt 1 view .LVU85
363 001c FFF7FEFF bl FLASH_SetErrorCode
364 .LVL21:
301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
365 .loc 1 301 5 view .LVU86
366 0020 2800 movs r0, r5
367 0022 FFF7FEFF bl HAL_FLASH_OperationErrorCallback
368 .LVL22:
304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
369 .loc 1 304 5 view .LVU87
304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
370 .loc 1 304 29 is_stmt 0 view .LVU88
371 0026 0023 movs r3, #0
372 0028 2370 strb r3, [r4]
373 .LVL23:
374 .L23:
308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
375 .loc 1 308 3 is_stmt 1 view .LVU89
308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
376 .loc 1 308 6 is_stmt 0 view .LVU90
377 002a 474B ldr r3, .L38
378 002c DB68 ldr r3, [r3, #12]
308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
379 .loc 1 308 5 view .LVU91
380 002e 9B06 lsls r3, r3, #26
381 0030 28D5 bpl .L24
311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
382 .loc 1 311 5 is_stmt 1 view .LVU92
383 0032 454B ldr r3, .L38
384 0034 2022 movs r2, #32
385 0036 DA60 str r2, [r3, #12]
314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
386 .loc 1 314 5 view .LVU93
314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
387 .loc 1 314 14 is_stmt 0 view .LVU94
388 0038 444B ldr r3, .L38+4
389 003a 1B78 ldrb r3, [r3]
314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
390 .loc 1 314 7 view .LVU95
391 003c 002B cmp r3, #0
392 003e 21D0 beq .L24
316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
393 .loc 1 316 7 is_stmt 1 view .LVU96
316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
394 .loc 1 316 16 is_stmt 0 view .LVU97
395 0040 424B ldr r3, .L38+4
396 0042 1B78 ldrb r3, [r3]
316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
397 .loc 1 316 9 view .LVU98
398 0044 012B cmp r3, #1
399 0046 2ED0 beq .L33
ARM GAS /tmp/cc21Th62.s page 21
347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
400 .loc 1 347 12 is_stmt 1 view .LVU99
347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
401 .loc 1 347 21 is_stmt 0 view .LVU100
402 0048 404B ldr r3, .L38+4
403 004a 1B78 ldrb r3, [r3]
347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
404 .loc 1 347 14 view .LVU101
405 004c 022B cmp r3, #2
406 004e 4CD0 beq .L34
362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
407 .loc 1 362 9 is_stmt 1 view .LVU102
362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
408 .loc 1 362 15 is_stmt 0 view .LVU103
409 0050 3E4B ldr r3, .L38+4
410 0052 5A68 ldr r2, [r3, #4]
362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
411 .loc 1 362 29 view .LVU104
412 0054 013A subs r2, r2, #1
413 0056 5A60 str r2, [r3, #4]
365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
414 .loc 1 365 9 is_stmt 1 view .LVU105
365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
415 .loc 1 365 18 is_stmt 0 view .LVU106
416 0058 5B68 ldr r3, [r3, #4]
365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
417 .loc 1 365 11 view .LVU107
418 005a 002B cmp r3, #0
419 005c 51D1 bne .L35
384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
420 .loc 1 384 11 is_stmt 1 view .LVU108
384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
421 .loc 1 384 21 is_stmt 0 view .LVU109
422 005e 3B4B ldr r3, .L38+4
423 0060 1B78 ldrb r3, [r3]
384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
424 .loc 1 384 14 view .LVU110
425 0062 032B cmp r3, #3
426 0064 65D0 beq .L36
388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
427 .loc 1 388 16 is_stmt 1 view .LVU111
388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
428 .loc 1 388 26 is_stmt 0 view .LVU112
429 0066 394B ldr r3, .L38+4
430 0068 1B78 ldrb r3, [r3]
388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
431 .loc 1 388 19 view .LVU113
432 006a 042B cmp r3, #4
433 006c 66D0 beq .L37
394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
434 .loc 1 394 13 is_stmt 1 view .LVU114
394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
435 .loc 1 394 52 is_stmt 0 view .LVU115
436 006e 374B ldr r3, .L38+4
437 0070 9868 ldr r0, [r3, #8]
394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
438 .loc 1 394 13 view .LVU116
ARM GAS /tmp/cc21Th62.s page 22
439 0072 0638 subs r0, r0, #6
440 0074 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
441 .LVL24:
442 .L30:
398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
443 .loc 1 398 11 is_stmt 1 view .LVU117
398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
444 .loc 1 398 26 is_stmt 0 view .LVU118
445 0078 344B ldr r3, .L38+4
446 007a 0122 movs r2, #1
447 007c 5242 rsbs r2, r2, #0
448 007e 9A60 str r2, [r3, #8]
399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
449 .loc 1 399 11 is_stmt 1 view .LVU119
399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
450 .loc 1 399 35 is_stmt 0 view .LVU120
451 0080 0022 movs r2, #0
452 0082 1A70 strb r2, [r3]
453 .L24:
406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
454 .loc 1 406 3 is_stmt 1 view .LVU121
406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
455 .loc 1 406 12 is_stmt 0 view .LVU122
456 0084 314B ldr r3, .L38+4
457 0086 1B78 ldrb r3, [r3]
406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
458 .loc 1 406 5 view .LVU123
459 0088 002B cmp r3, #0
460 008a 0BD1 bne .L21
409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
461 .loc 1 409 5 is_stmt 1 view .LVU124
462 008c 2E4B ldr r3, .L38
463 008e 1A69 ldr r2, [r3, #16]
464 0090 0721 movs r1, #7
465 0092 8A43 bics r2, r1
466 0094 1A61 str r2, [r3, #16]
412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
467 .loc 1 412 5 view .LVU125
468 0096 1A69 ldr r2, [r3, #16]
469 0098 2D49 ldr r1, .L38+8
470 009a 0A40 ands r2, r1
471 009c 1A61 str r2, [r3, #16]
415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
472 .loc 1 415 5 view .LVU126
415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
473 .loc 1 415 5 view .LVU127
474 009e 2B4B ldr r3, .L38+4
475 00a0 0022 movs r2, #0
476 00a2 1A76 strb r2, [r3, #24]
477 .L21:
417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
478 .loc 1 417 1 is_stmt 0 view .LVU128
479 @ sp needed
480 00a4 F8BD pop {r3, r4, r5, r6, r7, pc}
481 .L33:
319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
482 .loc 1 319 9 is_stmt 1 view .LVU129
ARM GAS /tmp/cc21Th62.s page 23
319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
483 .loc 1 319 15 is_stmt 0 view .LVU130
484 00a6 294B ldr r3, .L38+4
485 00a8 5A68 ldr r2, [r3, #4]
319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
486 .loc 1 319 29 view .LVU131
487 00aa 013A subs r2, r2, #1
488 00ac 5A60 str r2, [r3, #4]
322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
489 .loc 1 322 9 is_stmt 1 view .LVU132
322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
490 .loc 1 322 18 is_stmt 0 view .LVU133
491 00ae 5B68 ldr r3, [r3, #4]
322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
492 .loc 1 322 11 view .LVU134
493 00b0 002B cmp r3, #0
494 00b2 11D0 beq .L26
324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /*Indicate user which sector has been erased */
495 .loc 1 324 11 is_stmt 1 view .LVU135
324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /*Indicate user which sector has been erased */
496 .loc 1 324 22 is_stmt 0 view .LVU136
497 00b4 254C ldr r4, .L38+4
498 00b6 A068 ldr r0, [r4, #8]
499 .LVL25:
326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
500 .loc 1 326 11 is_stmt 1 view .LVU137
501 00b8 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
502 .LVL26:
329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Address = addresstmp;
503 .loc 1 329 11 view .LVU138
329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Address = addresstmp;
504 .loc 1 329 30 is_stmt 0 view .LVU139
505 00bc A068 ldr r0, [r4, #8]
329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.Address = addresstmp;
506 .loc 1 329 22 view .LVU140
507 00be 8023 movs r3, #128
508 00c0 DB00 lsls r3, r3, #3
509 00c2 9C46 mov ip, r3
510 00c4 6044 add r0, r0, ip
511 .LVL27:
330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
512 .loc 1 330 11 is_stmt 1 view .LVU141
330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
513 .loc 1 330 26 is_stmt 0 view .LVU142
514 00c6 A060 str r0, [r4, #8]
333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
515 .loc 1 333 11 is_stmt 1 view .LVU143
516 00c8 1F4A ldr r2, .L38
517 00ca 1369 ldr r3, [r2, #16]
518 00cc 0221 movs r1, #2
519 00ce 8B43 bics r3, r1
520 00d0 1361 str r3, [r2, #16]
335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
521 .loc 1 335 11 view .LVU144
522 00d2 FFF7FEFF bl FLASH_PageErase
523 .LVL28:
335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
ARM GAS /tmp/cc21Th62.s page 24
524 .loc 1 335 11 is_stmt 0 view .LVU145
525 00d6 D5E7 b .L24
526 .L26:
341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
527 .loc 1 341 11 is_stmt 1 view .LVU146
528 .LVL29:
341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
529 .loc 1 341 26 is_stmt 0 view .LVU147
530 00d8 1C4B ldr r3, .L38+4
531 00da 0120 movs r0, #1
532 00dc 4042 rsbs r0, r0, #0
533 00de 9860 str r0, [r3, #8]
342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* FLASH EOP interrupt user callback */
534 .loc 1 342 11 is_stmt 1 view .LVU148
342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* FLASH EOP interrupt user callback */
535 .loc 1 342 35 is_stmt 0 view .LVU149
536 00e0 0022 movs r2, #0
537 00e2 1A70 strb r2, [r3]
344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
538 .loc 1 344 11 is_stmt 1 view .LVU150
539 00e4 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
540 .LVL30:
541 00e8 CCE7 b .L24
542 .LVL31:
543 .L34:
350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
544 .loc 1 350 9 view .LVU151
545 00ea 174A ldr r2, .L38
546 00ec 1369 ldr r3, [r2, #16]
547 00ee 0421 movs r1, #4
548 00f0 8B43 bics r3, r1
549 00f2 1361 str r3, [r2, #16]
354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
550 .loc 1 354 11 view .LVU152
551 00f4 0020 movs r0, #0
552 00f6 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
553 .LVL32:
357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
554 .loc 1 357 11 view .LVU153
357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
555 .loc 1 357 35 is_stmt 0 view .LVU154
556 00fa 144B ldr r3, .L38+4
557 00fc 0022 movs r2, #0
558 00fe 1A70 strb r2, [r3]
559 0100 C0E7 b .L24
560 .L35:
368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** addresstmp = pFlash.Address;
561 .loc 1 368 11 is_stmt 1 view .LVU155
368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** addresstmp = pFlash.Address;
562 .loc 1 368 26 is_stmt 0 view .LVU156
563 0102 124B ldr r3, .L38+4
564 0104 9A68 ldr r2, [r3, #8]
565 0106 0232 adds r2, r2, #2
566 0108 9A60 str r2, [r3, #8]
369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
567 .loc 1 369 11 is_stmt 1 view .LVU157
369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
ARM GAS /tmp/cc21Th62.s page 25
568 .loc 1 369 22 is_stmt 0 view .LVU158
569 010a 9868 ldr r0, [r3, #8]
570 .LVL33:
372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
571 .loc 1 372 11 is_stmt 1 view .LVU159
372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
572 .loc 1 372 32 is_stmt 0 view .LVU160
573 010c 1E69 ldr r6, [r3, #16]
574 010e 5F69 ldr r7, [r3, #20]
372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
575 .loc 1 372 38 view .LVU161
576 0110 3A04 lsls r2, r7, #16
577 0112 340C lsrs r4, r6, #16
578 0114 1443 orrs r4, r2
579 0116 3D0C lsrs r5, r7, #16
372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
580 .loc 1 372 23 view .LVU162
581 0118 1C61 str r4, [r3, #16]
582 011a 5D61 str r5, [r3, #20]
375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
583 .loc 1 375 11 is_stmt 1 view .LVU163
584 011c 0A49 ldr r1, .L38
585 011e 0A69 ldr r2, [r1, #16]
586 0120 0124 movs r4, #1
587 0122 A243 bics r2, r4
588 0124 0A61 str r2, [r1, #16]
378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
589 .loc 1 378 11 view .LVU164
378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
590 .loc 1 378 62 is_stmt 0 view .LVU165
591 0126 1A69 ldr r2, [r3, #16]
592 0128 5B69 ldr r3, [r3, #20]
378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
593 .loc 1 378 11 view .LVU166
594 012a 91B2 uxth r1, r2
595 012c FFF7FEFF bl FLASH_Program_HalfWord
596 .LVL34:
378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
597 .loc 1 378 11 view .LVU167
598 0130 A8E7 b .L24
599 .L36:
386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
600 .loc 1 386 13 is_stmt 1 view .LVU168
601 0132 064B ldr r3, .L38+4
602 0134 9868 ldr r0, [r3, #8]
603 0136 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
604 .LVL35:
605 013a 9DE7 b .L30
606 .L37:
390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
607 .loc 1 390 13 view .LVU169
390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
608 .loc 1 390 52 is_stmt 0 view .LVU170
609 013c 034B ldr r3, .L38+4
610 013e 9868 ldr r0, [r3, #8]
390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
611 .loc 1 390 13 view .LVU171
ARM GAS /tmp/cc21Th62.s page 26
612 0140 0238 subs r0, r0, #2
613 0142 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
614 .LVL36:
615 0146 97E7 b .L30
616 .L39:
617 .align 2
618 .L38:
619 0148 00200240 .word 1073881088
620 014c 00000000 .word pFlash
621 0150 FFEBFFFF .word -5121
622 .cfi_endproc
623 .LFE42:
625 .section .text.HAL_FLASH_Unlock,"ax",%progbits
626 .align 1
627 .global HAL_FLASH_Unlock
628 .syntax unified
629 .code 16
630 .thumb_func
631 .fpu softvfp
633 HAL_FLASH_Unlock:
634 .LFB45:
480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK;
635 .loc 1 480 1 is_stmt 1 view -0
636 .cfi_startproc
637 @ args = 0, pretend = 0, frame = 0
638 @ frame_needed = 0, uses_anonymous_args = 0
639 @ link register save eliminated.
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
640 .loc 1 481 3 view .LVU173
641 .LVL37:
483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
642 .loc 1 483 3 view .LVU174
483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
643 .loc 1 483 6 is_stmt 0 view .LVU175
644 0000 084B ldr r3, .L44
645 0002 1B69 ldr r3, [r3, #16]
483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
646 .loc 1 483 5 view .LVU176
647 0004 1B06 lsls r3, r3, #24
648 0006 09D5 bpl .L42
486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY2);
649 .loc 1 486 5 is_stmt 1 view .LVU177
650 0008 064B ldr r3, .L44
651 000a 074A ldr r2, .L44+4
652 000c 5A60 str r2, [r3, #4]
487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
653 .loc 1 487 5 view .LVU178
654 000e 074A ldr r2, .L44+8
655 0010 5A60 str r2, [r3, #4]
490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
656 .loc 1 490 5 view .LVU179
490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
657 .loc 1 490 8 is_stmt 0 view .LVU180
658 0012 1B69 ldr r3, [r3, #16]
490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
659 .loc 1 490 7 view .LVU181
660 0014 1B06 lsls r3, r3, #24
ARM GAS /tmp/cc21Th62.s page 27
661 0016 03D4 bmi .L43
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
662 .loc 1 481 21 view .LVU182
663 0018 0020 movs r0, #0
664 001a 00E0 b .L41
665 .L42:
666 001c 0020 movs r0, #0
667 .L41:
668 .LVL38:
496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
669 .loc 1 496 3 is_stmt 1 view .LVU183
497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
670 .loc 1 497 1 is_stmt 0 view .LVU184
671 @ sp needed
672 001e 7047 bx lr
673 .LVL39:
674 .L43:
492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
675 .loc 1 492 14 view .LVU185
676 0020 0120 movs r0, #1
677 0022 FCE7 b .L41
678 .L45:
679 .align 2
680 .L44:
681 0024 00200240 .word 1073881088
682 0028 23016745 .word 1164378403
683 002c AB89EFCD .word -839939669
684 .cfi_endproc
685 .LFE45:
687 .section .text.HAL_FLASH_Lock,"ax",%progbits
688 .align 1
689 .global HAL_FLASH_Lock
690 .syntax unified
691 .code 16
692 .thumb_func
693 .fpu softvfp
695 HAL_FLASH_Lock:
696 .LFB46:
504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Set the LOCK Bit to lock the FLASH Registers access */
697 .loc 1 504 1 is_stmt 1 view -0
698 .cfi_startproc
699 @ args = 0, pretend = 0, frame = 0
700 @ frame_needed = 0, uses_anonymous_args = 0
701 @ link register save eliminated.
506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
702 .loc 1 506 3 view .LVU187
703 0000 034A ldr r2, .L47
704 0002 1369 ldr r3, [r2, #16]
705 0004 8021 movs r1, #128
706 0006 0B43 orrs r3, r1
707 0008 1361 str r3, [r2, #16]
508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
708 .loc 1 508 3 view .LVU188
509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
709 .loc 1 509 1 is_stmt 0 view .LVU189
710 000a 0020 movs r0, #0
711 @ sp needed
ARM GAS /tmp/cc21Th62.s page 28
712 000c 7047 bx lr
713 .L48:
714 000e C046 .align 2
715 .L47:
716 0010 00200240 .word 1073881088
717 .cfi_endproc
718 .LFE46:
720 .section .text.HAL_FLASH_OB_Unlock,"ax",%progbits
721 .align 1
722 .global HAL_FLASH_OB_Unlock
723 .syntax unified
724 .code 16
725 .thumb_func
726 .fpu softvfp
728 HAL_FLASH_OB_Unlock:
729 .LFB47:
516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** if (HAL_IS_BIT_CLR(FLASH->CR, FLASH_CR_OPTWRE))
730 .loc 1 516 1 is_stmt 1 view -0
731 .cfi_startproc
732 @ args = 0, pretend = 0, frame = 0
733 @ frame_needed = 0, uses_anonymous_args = 0
734 @ link register save eliminated.
517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
735 .loc 1 517 3 view .LVU191
517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
736 .loc 1 517 7 is_stmt 0 view .LVU192
737 0000 064B ldr r3, .L52
738 0002 1B69 ldr r3, [r3, #16]
517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
739 .loc 1 517 6 view .LVU193
740 0004 9B05 lsls r3, r3, #22
741 0006 06D4 bmi .L51
520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY2);
742 .loc 1 520 5 is_stmt 1 view .LVU194
743 0008 044B ldr r3, .L52
744 000a 054A ldr r2, .L52+4
745 000c 9A60 str r2, [r3, #8]
521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
746 .loc 1 521 5 view .LVU195
747 000e 054A ldr r2, .L52+8
748 0010 9A60 str r2, [r3, #8]
528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
749 .loc 1 528 3 view .LVU196
528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
750 .loc 1 528 10 is_stmt 0 view .LVU197
751 0012 0020 movs r0, #0
752 .L50:
529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
753 .loc 1 529 1 view .LVU198
754 @ sp needed
755 0014 7047 bx lr
756 .L51:
525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
757 .loc 1 525 12 view .LVU199
758 0016 0120 movs r0, #1
759 0018 FCE7 b .L50
760 .L53:
ARM GAS /tmp/cc21Th62.s page 29
761 001a C046 .align 2
762 .L52:
763 001c 00200240 .word 1073881088
764 0020 23016745 .word 1164378403
765 0024 AB89EFCD .word -839939669
766 .cfi_endproc
767 .LFE47:
769 .section .text.HAL_FLASH_OB_Lock,"ax",%progbits
770 .align 1
771 .global HAL_FLASH_OB_Lock
772 .syntax unified
773 .code 16
774 .thumb_func
775 .fpu softvfp
777 HAL_FLASH_OB_Lock:
778 .LFB48:
536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Clear the OPTWRE Bit to lock the FLASH Option Byte Registers access */
779 .loc 1 536 1 is_stmt 1 view -0
780 .cfi_startproc
781 @ args = 0, pretend = 0, frame = 0
782 @ frame_needed = 0, uses_anonymous_args = 0
783 @ link register save eliminated.
538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
784 .loc 1 538 3 view .LVU201
785 0000 034A ldr r2, .L55
786 0002 1369 ldr r3, [r2, #16]
787 0004 0349 ldr r1, .L55+4
788 0006 0B40 ands r3, r1
789 0008 1361 str r3, [r2, #16]
540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
790 .loc 1 540 3 view .LVU202
541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
791 .loc 1 541 1 is_stmt 0 view .LVU203
792 000a 0020 movs r0, #0
793 @ sp needed
794 000c 7047 bx lr
795 .L56:
796 000e C046 .align 2
797 .L55:
798 0010 00200240 .word 1073881088
799 0014 FFFDFFFF .word -513
800 .cfi_endproc
801 .LFE48:
803 .section .text.HAL_FLASH_GetError,"ax",%progbits
804 .align 1
805 .global HAL_FLASH_GetError
806 .syntax unified
807 .code 16
808 .thumb_func
809 .fpu softvfp
811 HAL_FLASH_GetError:
812 .LFB50:
581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return pFlash.ErrorCode;
813 .loc 1 581 1 is_stmt 1 view -0
814 .cfi_startproc
815 @ args = 0, pretend = 0, frame = 0
816 @ frame_needed = 0, uses_anonymous_args = 0
ARM GAS /tmp/cc21Th62.s page 30
817 @ link register save eliminated.
582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
818 .loc 1 582 4 view .LVU205
582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
819 .loc 1 582 17 is_stmt 0 view .LVU206
820 0000 014B ldr r3, .L58
821 0002 D869 ldr r0, [r3, #28]
583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
822 .loc 1 583 1 view .LVU207
823 @ sp needed
824 0004 7047 bx lr
825 .L59:
826 0006 C046 .align 2
827 .L58:
828 0008 00000000 .word pFlash
829 .cfi_endproc
830 .LFE50:
832 .section .text.FLASH_WaitForLastOperation,"ax",%progbits
833 .align 1
834 .global FLASH_WaitForLastOperation
835 .syntax unified
836 .code 16
837 .thumb_func
838 .fpu softvfp
840 FLASH_WaitForLastOperation:
841 .LVL40:
842 .LFB52:
621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset.
843 .loc 1 621 1 is_stmt 1 view -0
844 .cfi_startproc
845 @ args = 0, pretend = 0, frame = 0
846 @ frame_needed = 0, uses_anonymous_args = 0
621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset.
847 .loc 1 621 1 is_stmt 0 view .LVU209
848 0000 70B5 push {r4, r5, r6, lr}
849 .LCFI3:
850 .cfi_def_cfa_offset 16
851 .cfi_offset 4, -16
852 .cfi_offset 5, -12
853 .cfi_offset 6, -8
854 .cfi_offset 14, -4
855 0002 0400 movs r4, r0
626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
856 .loc 1 626 3 is_stmt 1 view .LVU210
626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
857 .loc 1 626 24 is_stmt 0 view .LVU211
858 0004 FFF7FEFF bl HAL_GetTick
859 .LVL41:
626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
860 .loc 1 626 24 view .LVU212
861 0008 0500 movs r5, r0
862 .LVL42:
628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
863 .loc 1 628 3 is_stmt 1 view .LVU213
864 .L62:
628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
865 .loc 1 628 9 is_stmt 0 view .LVU214
ARM GAS /tmp/cc21Th62.s page 31
866 000a 124B ldr r3, .L70
867 000c DB68 ldr r3, [r3, #12]
628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
868 .loc 1 628 8 view .LVU215
869 000e DB07 lsls r3, r3, #31
870 0010 0AD5 bpl .L69
630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
871 .loc 1 630 5 is_stmt 1 view .LVU216
630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
872 .loc 1 630 8 is_stmt 0 view .LVU217
873 0012 631C adds r3, r4, #1
874 0014 F9D0 beq .L62
632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
875 .loc 1 632 7 is_stmt 1 view .LVU218
632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
876 .loc 1 632 9 is_stmt 0 view .LVU219
877 0016 002C cmp r4, #0
878 0018 04D0 beq .L63
632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
879 .loc 1 632 31 discriminator 1 view .LVU220
880 001a FFF7FEFF bl HAL_GetTick
881 .LVL43:
632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
882 .loc 1 632 44 discriminator 1 view .LVU221
883 001e 401B subs r0, r0, r5
632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
884 .loc 1 632 26 discriminator 1 view .LVU222
885 0020 A042 cmp r0, r4
886 0022 F2D9 bls .L62
887 .L63:
634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
888 .loc 1 634 9 is_stmt 1 view .LVU223
634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
889 .loc 1 634 16 is_stmt 0 view .LVU224
890 0024 0320 movs r0, #3
891 0026 0FE0 b .L64
892 .L69:
640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
893 .loc 1 640 3 is_stmt 1 view .LVU225
640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
894 .loc 1 640 7 is_stmt 0 view .LVU226
895 0028 0A4B ldr r3, .L70
896 002a DB68 ldr r3, [r3, #12]
640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
897 .loc 1 640 6 view .LVU227
898 002c 9B06 lsls r3, r3, #26
899 002e 02D5 bpl .L66
643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
900 .loc 1 643 5 is_stmt 1 view .LVU228
901 0030 084B ldr r3, .L70
902 0032 2022 movs r2, #32
903 0034 DA60 str r2, [r3, #12]
904 .L66:
646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR))
905 .loc 1 646 3 view .LVU229
646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR))
906 .loc 1 646 6 is_stmt 0 view .LVU230
ARM GAS /tmp/cc21Th62.s page 32
907 0036 074B ldr r3, .L70
908 0038 DB68 ldr r3, [r3, #12]
646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR))
909 .loc 1 646 5 view .LVU231
910 003a DB06 lsls r3, r3, #27
911 003c 05D4 bmi .L67
647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
912 .loc 1 647 6 discriminator 1 view .LVU232
913 003e 054B ldr r3, .L70
914 0040 DB68 ldr r3, [r3, #12]
646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR))
915 .loc 1 646 47 discriminator 1 view .LVU233
916 0042 5B07 lsls r3, r3, #29
917 0044 01D4 bmi .L67
655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
918 .loc 1 655 10 view .LVU234
919 0046 0020 movs r0, #0
920 .L64:
656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
921 .loc 1 656 1 view .LVU235
922 @ sp needed
923 .LVL44:
924 .LVL45:
656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
925 .loc 1 656 1 view .LVU236
926 0048 70BD pop {r4, r5, r6, pc}
927 .LVL46:
928 .L67:
650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** return HAL_ERROR;
929 .loc 1 650 5 is_stmt 1 view .LVU237
930 004a FFF7FEFF bl FLASH_SetErrorCode
931 .LVL47:
651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
932 .loc 1 651 5 view .LVU238
651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
933 .loc 1 651 12 is_stmt 0 view .LVU239
934 004e 0120 movs r0, #1
935 0050 FAE7 b .L64
936 .L71:
937 0052 C046 .align 2
938 .L70:
939 0054 00200240 .word 1073881088
940 .cfi_endproc
941 .LFE52:
943 .section .text.HAL_FLASH_Program,"ax",%progbits
944 .align 1
945 .global HAL_FLASH_Program
946 .syntax unified
947 .code 16
948 .thumb_func
949 .fpu softvfp
951 HAL_FLASH_Program:
952 .LVL48:
953 .LFB40:
168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_ERROR;
954 .loc 1 168 1 is_stmt 1 view -0
955 .cfi_startproc
ARM GAS /tmp/cc21Th62.s page 33
956 @ args = 0, pretend = 0, frame = 0
957 @ frame_needed = 0, uses_anonymous_args = 0
168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_ERROR;
958 .loc 1 168 1 is_stmt 0 view .LVU241
959 0000 F0B5 push {r4, r5, r6, r7, lr}
960 .LCFI4:
961 .cfi_def_cfa_offset 20
962 .cfi_offset 4, -20
963 .cfi_offset 5, -16
964 .cfi_offset 6, -12
965 .cfi_offset 7, -8
966 .cfi_offset 14, -4
967 0002 C646 mov lr, r8
968 0004 00B5 push {lr}
969 .LCFI5:
970 .cfi_def_cfa_offset 24
971 .cfi_offset 8, -24
972 0006 0700 movs r7, r0
973 0008 0D00 movs r5, r1
974 000a 9046 mov r8, r2
975 000c 1E00 movs r6, r3
169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** uint8_t index = 0U;
976 .loc 1 169 3 is_stmt 1 view .LVU242
977 .LVL49:
170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** uint8_t nbiterations = 0U;
978 .loc 1 170 3 view .LVU243
171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
979 .loc 1 171 3 view .LVU244
174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
980 .loc 1 174 3 view .LVU245
174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
981 .loc 1 174 3 view .LVU246
982 000e 1F4B ldr r3, .L83
983 0010 1B7E ldrb r3, [r3, #24]
984 0012 012B cmp r3, #1
985 0014 38D0 beq .L80
174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
986 .loc 1 174 3 discriminator 2 view .LVU247
987 0016 1D4B ldr r3, .L83
988 0018 0122 movs r2, #1
989 .LVL50:
174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
990 .loc 1 174 3 is_stmt 0 discriminator 2 view .LVU248
991 001a 1A76 strb r2, [r3, #24]
177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(Address));
992 .loc 1 177 3 is_stmt 1 discriminator 2 view .LVU249
178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
993 .loc 1 178 3 discriminator 2 view .LVU250
181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
994 .loc 1 181 5 discriminator 2 view .LVU251
181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
995 .loc 1 181 14 is_stmt 0 discriminator 2 view .LVU252
996 001c 1C48 ldr r0, .L83+4
997 .LVL51:
181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
998 .loc 1 181 14 discriminator 2 view .LVU253
999 001e FFF7FEFF bl FLASH_WaitForLastOperation
ARM GAS /tmp/cc21Th62.s page 34
1000 .LVL52:
181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
1001 .loc 1 181 14 discriminator 2 view .LVU254
1002 0022 041E subs r4, r0, #0
1003 .LVL53:
183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
1004 .loc 1 183 3 is_stmt 1 discriminator 2 view .LVU255
183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
1005 .loc 1 183 5 is_stmt 0 discriminator 2 view .LVU256
1006 0024 2AD1 bne .L74
185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
1007 .loc 1 185 5 is_stmt 1 view .LVU257
185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
1008 .loc 1 185 7 is_stmt 0 view .LVU258
1009 0026 012F cmp r7, #1
1010 0028 03D0 beq .L81
190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
1011 .loc 1 190 10 is_stmt 1 view .LVU259
190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
1012 .loc 1 190 12 is_stmt 0 view .LVU260
1013 002a 022F cmp r7, #2
1014 002c 1BD0 beq .L76
198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
1015 .loc 1 198 20 view .LVU261
1016 002e 0427 movs r7, #4
1017 .LVL54:
201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
1018 .loc 1 201 5 is_stmt 1 view .LVU262
201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
1019 .loc 1 201 5 is_stmt 0 view .LVU263
1020 0030 19E0 b .L76
1021 .LVL55:
1022 .L81:
188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
1023 .loc 1 188 20 view .LVU264
1024 0032 0127 movs r7, #1
1025 .LVL56:
188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
1026 .loc 1 188 20 view .LVU265
1027 0034 17E0 b .L76
1028 .LVL57:
1029 .L77:
203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
1030 .loc 1 203 70 view .LVU266
1031 0036 2022 movs r2, #32
1032 0038 D21A subs r2, r2, r3
1033 003a 3100 movs r1, r6
1034 003c 9140 lsls r1, r1, r2
1035 003e 0A00 movs r2, r1
1036 0040 4146 mov r1, r8
1037 0042 D940 lsrs r1, r1, r3
1038 0044 1143 orrs r1, r2
1039 .L78:
203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
1040 .loc 1 203 7 view .LVU267
1041 0046 89B2 uxth r1, r1
1042 0048 4019 adds r0, r0, r5
ARM GAS /tmp/cc21Th62.s page 35
1043 004a FFF7FEFF bl FLASH_Program_HalfWord
1044 .LVL58:
206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
1045 .loc 1 206 9 is_stmt 1 view .LVU268
206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
1046 .loc 1 206 18 is_stmt 0 view .LVU269
1047 004e 1048 ldr r0, .L83+4
1048 0050 FFF7FEFF bl FLASH_WaitForLastOperation
1049 .LVL59:
209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* In case of error, stop programming procedure */
1050 .loc 1 209 9 is_stmt 1 view .LVU270
1051 0054 0F4A ldr r2, .L83+8
1052 0056 1369 ldr r3, [r2, #16]
1053 0058 0121 movs r1, #1
1054 005a 8B43 bics r3, r1
1055 005c 1361 str r3, [r2, #16]
211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
1056 .loc 1 211 7 view .LVU271
211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
1057 .loc 1 211 10 is_stmt 0 view .LVU272
1058 005e 0028 cmp r0, #0
1059 0060 0CD1 bne .L74
201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
1060 .loc 1 201 49 discriminator 2 view .LVU273
1061 0062 0134 adds r4, r4, #1
1062 .LVL60:
201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
1063 .loc 1 201 49 discriminator 2 view .LVU274
1064 0064 E4B2 uxtb r4, r4
1065 .LVL61:
1066 .L76:
201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** {
1067 .loc 1 201 5 discriminator 1 view .LVU275
1068 0066 BC42 cmp r4, r7
1069 0068 08D2 bcs .L74
203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
1070 .loc 1 203 7 is_stmt 1 view .LVU276
203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
1071 .loc 1 203 44 is_stmt 0 view .LVU277
1072 006a 6000 lsls r0, r4, #1
1073 .LVL62:
203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
1074 .loc 1 203 77 view .LVU278
1075 006c 2301 lsls r3, r4, #4
203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
1076 .loc 1 203 70 view .LVU279
1077 006e 2022 movs r2, #32
1078 0070 5242 rsbs r2, r2, #0
1079 0072 9A18 adds r2, r3, r2
1080 0074 DFD4 bmi .L77
1081 0076 3100 movs r1, r6
1082 0078 D140 lsrs r1, r1, r2
1083 007a E4E7 b .L78
1084 .LVL63:
1085 .L74:
219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
1086 .loc 1 219 3 is_stmt 1 view .LVU280
ARM GAS /tmp/cc21Th62.s page 36
219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
1087 .loc 1 219 3 view .LVU281
1088 007c 034B ldr r3, .L83
1089 007e 0022 movs r2, #0
1090 0080 1A76 strb r2, [r3, #24]
221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
1091 .loc 1 221 3 view .LVU282
1092 .LVL64:
1093 .L73:
222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
1094 .loc 1 222 1 is_stmt 0 view .LVU283
1095 @ sp needed
1096 .LVL65:
222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
1097 .loc 1 222 1 view .LVU284
1098 0082 04BC pop {r2}
1099 0084 9046 mov r8, r2
1100 0086 F0BD pop {r4, r5, r6, r7, pc}
1101 .LVL66:
1102 .L80:
174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
1103 .loc 1 174 3 view .LVU285
1104 0088 0220 movs r0, #2
1105 .LVL67:
174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
1106 .loc 1 174 3 view .LVU286
1107 008a FAE7 b .L73
1108 .L84:
1109 .align 2
1110 .L83:
1111 008c 00000000 .word pFlash
1112 0090 50C30000 .word 50000
1113 0094 00200240 .word 1073881088
1114 .cfi_endproc
1115 .LFE40:
1117 .section .text.HAL_FLASH_OB_Launch,"ax",%progbits
1118 .align 1
1119 .global HAL_FLASH_OB_Launch
1120 .syntax unified
1121 .code 16
1122 .thumb_func
1123 .fpu softvfp
1125 HAL_FLASH_OB_Launch:
1126 .LFB49:
549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** /* Set the OBL_Launch bit to launch the option byte loading */
1127 .loc 1 549 1 is_stmt 1 view -0
1128 .cfi_startproc
1129 @ args = 0, pretend = 0, frame = 0
1130 @ frame_needed = 0, uses_anonymous_args = 0
1131 0000 10B5 push {r4, lr}
1132 .LCFI6:
1133 .cfi_def_cfa_offset 8
1134 .cfi_offset 4, -8
1135 .cfi_offset 14, -4
551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
1136 .loc 1 551 3 view .LVU288
1137 0002 054A ldr r2, .L86
ARM GAS /tmp/cc21Th62.s page 37
1138 0004 1169 ldr r1, [r2, #16]
1139 0006 8023 movs r3, #128
1140 0008 9B01 lsls r3, r3, #6
1141 000a 0B43 orrs r3, r1
1142 000c 1361 str r3, [r2, #16]
554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
1143 .loc 1 554 3 view .LVU289
554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c **** }
1144 .loc 1 554 10 is_stmt 0 view .LVU290
1145 000e 0348 ldr r0, .L86+4
1146 0010 FFF7FEFF bl FLASH_WaitForLastOperation
1147 .LVL68:
555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_flash.c ****
1148 .loc 1 555 1 view .LVU291
1149 @ sp needed
1150 0014 10BD pop {r4, pc}
1151 .L87:
1152 0016 C046 .align 2
1153 .L86:
1154 0018 00200240 .word 1073881088
1155 001c 50C30000 .word 50000
1156 .cfi_endproc
1157 .LFE49:
1159 .comm pFlash,32,8
1160 .text
1161 .Letext0:
1162 .file 2 "/usr/lib/gcc/arm-none-eabi/8.3.1/include/stdint.h"
1163 .file 3 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h"
1164 .file 4 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f042x6.h"
1165 .file 5 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h"
1166 .file 6 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h"
1167 .file 7 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_flash.h"
1168 .file 8 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h"
ARM GAS /tmp/cc21Th62.s page 38
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32f0xx_hal_flash.c
/tmp/cc21Th62.s:16 .text.FLASH_Program_HalfWord:0000000000000000 $t
/tmp/cc21Th62.s:23 .text.FLASH_Program_HalfWord:0000000000000000 FLASH_Program_HalfWord
/tmp/cc21Th62.s:57 .text.FLASH_Program_HalfWord:0000000000000018 $d
*COM*:0000000000000020 pFlash
/tmp/cc21Th62.s:63 .text.FLASH_SetErrorCode:0000000000000000 $t
/tmp/cc21Th62.s:69 .text.FLASH_SetErrorCode:0000000000000000 FLASH_SetErrorCode
/tmp/cc21Th62.s:128 .text.FLASH_SetErrorCode:0000000000000034 $d
/tmp/cc21Th62.s:134 .text.HAL_FLASH_Program_IT:0000000000000000 $t
/tmp/cc21Th62.s:141 .text.HAL_FLASH_Program_IT:0000000000000000 HAL_FLASH_Program_IT
/tmp/cc21Th62.s:262 .text.HAL_FLASH_Program_IT:000000000000005c $d
/tmp/cc21Th62.s:268 .text.HAL_FLASH_EndOfOperationCallback:0000000000000000 $t
/tmp/cc21Th62.s:275 .text.HAL_FLASH_EndOfOperationCallback:0000000000000000 HAL_FLASH_EndOfOperationCallback
/tmp/cc21Th62.s:291 .text.HAL_FLASH_OperationErrorCallback:0000000000000000 $t
/tmp/cc21Th62.s:298 .text.HAL_FLASH_OperationErrorCallback:0000000000000000 HAL_FLASH_OperationErrorCallback
/tmp/cc21Th62.s:314 .text.HAL_FLASH_IRQHandler:0000000000000000 $t
/tmp/cc21Th62.s:321 .text.HAL_FLASH_IRQHandler:0000000000000000 HAL_FLASH_IRQHandler
/tmp/cc21Th62.s:619 .text.HAL_FLASH_IRQHandler:0000000000000148 $d
/tmp/cc21Th62.s:626 .text.HAL_FLASH_Unlock:0000000000000000 $t
/tmp/cc21Th62.s:633 .text.HAL_FLASH_Unlock:0000000000000000 HAL_FLASH_Unlock
/tmp/cc21Th62.s:681 .text.HAL_FLASH_Unlock:0000000000000024 $d
/tmp/cc21Th62.s:688 .text.HAL_FLASH_Lock:0000000000000000 $t
/tmp/cc21Th62.s:695 .text.HAL_FLASH_Lock:0000000000000000 HAL_FLASH_Lock
/tmp/cc21Th62.s:716 .text.HAL_FLASH_Lock:0000000000000010 $d
/tmp/cc21Th62.s:721 .text.HAL_FLASH_OB_Unlock:0000000000000000 $t
/tmp/cc21Th62.s:728 .text.HAL_FLASH_OB_Unlock:0000000000000000 HAL_FLASH_OB_Unlock
/tmp/cc21Th62.s:763 .text.HAL_FLASH_OB_Unlock:000000000000001c $d
/tmp/cc21Th62.s:770 .text.HAL_FLASH_OB_Lock:0000000000000000 $t
/tmp/cc21Th62.s:777 .text.HAL_FLASH_OB_Lock:0000000000000000 HAL_FLASH_OB_Lock
/tmp/cc21Th62.s:798 .text.HAL_FLASH_OB_Lock:0000000000000010 $d
/tmp/cc21Th62.s:804 .text.HAL_FLASH_GetError:0000000000000000 $t
/tmp/cc21Th62.s:811 .text.HAL_FLASH_GetError:0000000000000000 HAL_FLASH_GetError
/tmp/cc21Th62.s:828 .text.HAL_FLASH_GetError:0000000000000008 $d
/tmp/cc21Th62.s:833 .text.FLASH_WaitForLastOperation:0000000000000000 $t
/tmp/cc21Th62.s:840 .text.FLASH_WaitForLastOperation:0000000000000000 FLASH_WaitForLastOperation
/tmp/cc21Th62.s:939 .text.FLASH_WaitForLastOperation:0000000000000054 $d
/tmp/cc21Th62.s:944 .text.HAL_FLASH_Program:0000000000000000 $t
/tmp/cc21Th62.s:951 .text.HAL_FLASH_Program:0000000000000000 HAL_FLASH_Program
/tmp/cc21Th62.s:1111 .text.HAL_FLASH_Program:000000000000008c $d
/tmp/cc21Th62.s:1118 .text.HAL_FLASH_OB_Launch:0000000000000000 $t
/tmp/cc21Th62.s:1125 .text.HAL_FLASH_OB_Launch:0000000000000000 HAL_FLASH_OB_Launch
/tmp/cc21Th62.s:1154 .text.HAL_FLASH_OB_Launch:0000000000000018 $d
UNDEFINED SYMBOLS
FLASH_PageErase
HAL_GetTick