mv-bms/Software/build/stm32f3xx_hal_flash.lst

2042 lines
111 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

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

ARM GAS /tmp/ccv5crZT.s page 1
1 .cpu cortex-m4
2 .arch armv7e-m
3 .fpu fpv4-sp-d16
4 .eabi_attribute 27, 1
5 .eabi_attribute 28, 1
6 .eabi_attribute 20, 1
7 .eabi_attribute 21, 1
8 .eabi_attribute 23, 3
9 .eabi_attribute 24, 1
10 .eabi_attribute 25, 1
11 .eabi_attribute 26, 1
12 .eabi_attribute 30, 6
13 .eabi_attribute 34, 1
14 .eabi_attribute 18, 4
15 .file "stm32f3xx_hal_flash.c"
16 .text
17 .Ltext0:
18 .cfi_sections .debug_frame
19 .file 1 "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c"
20 .global pFlash
21 .section .bss.pFlash,"aw",%nobits
22 .align 3
25 pFlash:
26 0000 00000000 .space 32
26 00000000
26 00000000
26 00000000
26 00000000
27 .section .text.HAL_FLASH_Program,"ax",%progbits
28 .align 1
29 .global HAL_FLASH_Program
30 .syntax unified
31 .thumb
32 .thumb_func
34 HAL_FLASH_Program:
35 .LFB130:
1:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
2:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ******************************************************************************
3:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @file stm32f3xx_hal_flash.c
4:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @author MCD Application Team
5:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief FLASH HAL module driver.
6:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * This file provides firmware functions to manage the following
7:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * functionalities of the internal FLASH memory:
8:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * + Program operations functions
9:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * + Memory Control functions
10:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * + Peripheral State functions
11:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
12:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @verbatim
13:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ==============================================================================
14:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ##### FLASH peripheral features #####
15:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ==============================================================================
16:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** [..] The Flash memory interface manages CPU AHB I-Code and D-Code accesses
17:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** to the Flash memory. It implements the erase and program Flash memory operations
18:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** and the read and write protection mechanisms.
19:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
20:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** [..] The Flash memory interface accelerates code execution with a system of instruction
21:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** prefetch.
ARM GAS /tmp/ccv5crZT.s page 2
22:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
23:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** [..] The FLASH main features are:
24:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (+) Flash memory read operations
25:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (+) Flash memory program/erase operations
26:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (+) Read / write protections
27:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (+) Prefetch on I-Code
28:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (+) Option Bytes programming
29:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
30:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
31:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ##### How to use this driver #####
32:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ==============================================================================
33:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** [..]
34:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** This driver provides functions and macros to configure and program the FLASH
35:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** memory of all STM32F3xx devices.
36:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
37:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (#) FLASH Memory I/O Programming functions: this group includes all needed
38:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** functions to erase and program the main memory:
39:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Lock and Unlock the FLASH interface
40:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Erase function: Erase page, erase all pages
41:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Program functions: half word, word and doubleword
42:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (#) FLASH Option Bytes Programming functions: this group includes all needed
43:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** functions to manage the Option Bytes:
44:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Lock and Unlock the Option Bytes
45:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Set/Reset the write protection
46:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Set the Read protection Level
47:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Program the user Option Bytes
48:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Launch the Option Bytes loader
49:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Erase Option Bytes
50:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Program the data Option Bytes
51:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Get the Write protection.
52:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Get the user option bytes.
53:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
54:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (#) Interrupts and flags management functions : this group
55:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** includes all needed functions to:
56:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Handle FLASH interrupts
57:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Wait for last FLASH operation according to its status
58:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (++) Get error flag status
59:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
60:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** [..] In addition to these function, this driver includes a set of macros allowing
61:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** to handle the following operations:
62:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
63:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (+) Set/Get the latency
64:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (+) Enable/Disable the prefetch buffer
65:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (+) Enable/Disable the half cycle access
66:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (+) Enable/Disable the FLASH interrupts
67:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** (+) Monitor the FLASH flags status
68:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
69:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @endverbatim
70:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ******************************************************************************
71:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @attention
72:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
73:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * Copyright (c) 2016 STMicroelectronics.
74:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * All rights reserved.
75:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
76:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * This software is licensed under terms that can be found in the LICENSE file in
77:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * the root directory of this software component.
78:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
ARM GAS /tmp/ccv5crZT.s page 3
79:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ******************************************************************************
80:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
81:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
82:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Includes ------------------------------------------------------------------*/
83:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** #include "stm32f3xx_hal.h"
84:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
85:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @addtogroup STM32F3xx_HAL_Driver
86:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
87:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
88:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
89:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** #ifdef HAL_FLASH_MODULE_ENABLED
90:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
91:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH FLASH
92:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief FLASH HAL module driver
93:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
94:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
95:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
96:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Private typedef -----------------------------------------------------------*/
97:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Private define ------------------------------------------------------------*/
98:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Private_Constants FLASH Private Constants
99:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @}
103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Private macro ---------------------------- ---------------------------------*/
106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Private_Macros FLASH Private Macros
107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @}
112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Private variables ---------------------------------------------------------*/
115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Private_Variables FLASH Private Variables
116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Variables used for Erase pages under interruption*/
119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** FLASH_ProcessTypeDef pFlash;
120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @}
122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Private function prototypes -----------------------------------------------*/
125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Private_Functions FLASH Private Functions
126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data);
129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** static void FLASH_SetErrorCode(void);
130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** extern void FLASH_PageErase(uint32_t PageAddress);
131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @}
133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Exported functions ---------------------------------------------------------*/
ARM GAS /tmp/ccv5crZT.s page 4
136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions FLASH Exported Functions
137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group1 Programming operation functions
141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Programming operation functions
142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @verbatim
144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @endverbatim
145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Program halfword, word or double word at a specified address
150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @note The function HAL_FLASH_Unlock() should be called before to unlock the FLASH interface
151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * The function HAL_FLASH_Lock() should be called after to lock the FLASH interface
152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @note If an erase and a program operations are requested simultaneously,
154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * the erase operation is performed before the program one.
155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @note FLASH should be previously erased before new programming (only exception to this
157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * is when 0x0000 is programmed)
158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param TypeProgram Indicate the way to program at a specified address.
160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * This parameter can be a value of @ref FLASH_Type_Program
161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param Address Specifie the address to be programmed.
162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param Data Specifie the data to be programmed
163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval HAL_StatusTypeDef HAL Status
165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
36 .loc 1 167 1
37 .cfi_startproc
38 @ args = 0, pretend = 0, frame = 24
39 @ frame_needed = 1, uses_anonymous_args = 0
40 0000 F0B5 push {r4, r5, r6, r7, lr}
41 .cfi_def_cfa_offset 20
42 .cfi_offset 4, -20
43 .cfi_offset 5, -16
44 .cfi_offset 6, -12
45 .cfi_offset 7, -8
46 .cfi_offset 14, -4
47 0002 87B0 sub sp, sp, #28
48 .cfi_def_cfa_offset 48
49 0004 00AF add r7, sp, #0
50 .cfi_def_cfa_register 7
51 0006 F860 str r0, [r7, #12]
52 0008 B960 str r1, [r7, #8]
53 000a C7E90023 strd r2, [r7]
168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_ERROR;
54 .loc 1 168 21
55 000e 0123 movs r3, #1
56 0010 FB75 strb r3, [r7, #23]
169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** uint8_t index = 0U;
57 .loc 1 169 11
58 0012 0023 movs r3, #0
ARM GAS /tmp/ccv5crZT.s page 5
59 0014 BB75 strb r3, [r7, #22]
170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** uint8_t nbiterations = 0U;
60 .loc 1 170 11
61 0016 0023 movs r3, #0
62 0018 7B75 strb r3, [r7, #21]
171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Process Locked */
173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_LOCK(&pFlash);
63 .loc 1 173 3
64 001a 2F4B ldr r3, .L12
65 001c 1B7E ldrb r3, [r3, #24] @ zero_extendqisi2
66 001e 012B cmp r3, #1
67 0020 01D1 bne .L2
68 .loc 1 173 3 is_stmt 0 discriminator 1
69 0022 0223 movs r3, #2
70 .loc 1 173 3
71 0024 54E0 b .L3
72 .L2:
73 .loc 1 173 3 discriminator 2
74 0026 2C4B ldr r3, .L12
75 0028 0122 movs r2, #1
76 002a 1A76 strb r2, [r3, #24]
174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Check the parameters */
176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram));
177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(Address));
178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Wait for last operation to be completed */
180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
77 .loc 1 180 14 is_stmt 1
78 002c 4CF25030 movw r0, #50000
79 0030 FFF7FEFF bl FLASH_WaitForLastOperation
80 0034 0346 mov r3, r0
81 0036 FB75 strb r3, [r7, #23]
181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(status == HAL_OK)
82 .loc 1 182 5
83 0038 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
84 003a 002B cmp r3, #0
85 003c 44D1 bne .L4
183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(TypeProgram == FLASH_TYPEPROGRAM_HALFWORD)
86 .loc 1 184 7
87 003e FB68 ldr r3, [r7, #12]
88 0040 012B cmp r3, #1
89 0042 02D1 bne .L5
185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Program halfword (16-bit) at a specified address. */
187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** nbiterations = 1U;
90 .loc 1 187 20
91 0044 0123 movs r3, #1
92 0046 7B75 strb r3, [r7, #21]
93 0048 07E0 b .L6
94 .L5:
188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else if(TypeProgram == FLASH_TYPEPROGRAM_WORD)
95 .loc 1 189 12
ARM GAS /tmp/ccv5crZT.s page 6
96 004a FB68 ldr r3, [r7, #12]
97 004c 022B cmp r3, #2
98 004e 02D1 bne .L7
190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Program word (32-bit = 2*16-bit) at a specified address. */
192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** nbiterations = 2U;
99 .loc 1 192 20
100 0050 0223 movs r3, #2
101 0052 7B75 strb r3, [r7, #21]
102 0054 01E0 b .L6
103 .L7:
193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else
195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Program double word (64-bit = 4*16-bit) at a specified address. */
197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** nbiterations = 4U;
104 .loc 1 197 20
105 0056 0423 movs r3, #4
106 0058 7B75 strb r3, [r7, #21]
107 .L6:
198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** for (index = 0U; index < nbiterations; index++)
108 .loc 1 200 16
109 005a 0023 movs r3, #0
110 005c BB75 strb r3, [r7, #22]
111 .loc 1 200 5
112 005e 2DE0 b .L8
113 .L10:
201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** FLASH_Program_HalfWord((Address + (2U*index)), (uint16_t)(Data >> (16U*index)));
114 .loc 1 202 44
115 0060 BB7D ldrb r3, [r7, #22] @ zero_extendqisi2
116 0062 5A00 lsls r2, r3, #1
117 .loc 1 202 7
118 0064 BB68 ldr r3, [r7, #8]
119 0066 02EB030C add ip, r2, r3
120 .loc 1 202 77
121 006a BB7D ldrb r3, [r7, #22] @ zero_extendqisi2
122 006c 1901 lsls r1, r3, #4
123 .loc 1 202 70
124 006e D7E90023 ldrd r2, [r7]
125 0072 C1F12006 rsb r6, r1, #32
126 0076 A1F12000 sub r0, r1, #32
127 007a 22FA01F4 lsr r4, r2, r1
128 007e 03FA06F6 lsl r6, r3, r6
129 0082 3443 orrs r4, r4, r6
130 0084 23FA00F0 lsr r0, r3, r0
131 0088 0443 orrs r4, r4, r0
132 008a 23FA01F5 lsr r5, r3, r1
133 .loc 1 202 7
134 008e A3B2 uxth r3, r4
135 0090 1946 mov r1, r3
136 0092 6046 mov r0, ip
137 0094 FFF7FEFF bl FLASH_Program_HalfWord
203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Wait for last operation to be completed */
ARM GAS /tmp/ccv5crZT.s page 7
205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
138 .loc 1 205 18
139 0098 4CF25030 movw r0, #50000
140 009c FFF7FEFF bl FLASH_WaitForLastOperation
141 00a0 0346 mov r3, r0
142 00a2 FB75 strb r3, [r7, #23]
206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* If the program operation is completed, disable the PG Bit */
208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PG);
143 .loc 1 208 9
144 00a4 0D4B ldr r3, .L12+4
145 00a6 1B69 ldr r3, [r3, #16]
146 00a8 0C4A ldr r2, .L12+4
147 00aa 23F00103 bic r3, r3, #1
148 00ae 1361 str r3, [r2, #16]
209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* In case of error, stop programming procedure */
210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if (status != HAL_OK)
149 .loc 1 210 10
150 00b0 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
151 00b2 002B cmp r3, #0
152 00b4 07D1 bne .L11
200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
153 .loc 1 200 49 discriminator 2
154 00b6 BB7D ldrb r3, [r7, #22] @ zero_extendqisi2
155 00b8 0133 adds r3, r3, #1
156 00ba BB75 strb r3, [r7, #22]
157 .L8:
200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
158 .loc 1 200 28 discriminator 1
159 00bc BA7D ldrb r2, [r7, #22] @ zero_extendqisi2
160 00be 7B7D ldrb r3, [r7, #21] @ zero_extendqisi2
161 00c0 9A42 cmp r2, r3
162 00c2 CDD3 bcc .L10
163 00c4 00E0 b .L4
164 .L11:
211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** break;
165 .loc 1 212 9
166 00c6 00BF nop
167 .L4:
213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Process Unlocked */
218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_UNLOCK(&pFlash);
168 .loc 1 218 3
169 00c8 034B ldr r3, .L12
170 00ca 0022 movs r2, #0
171 00cc 1A76 strb r2, [r3, #24]
219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return status;
172 .loc 1 220 10
173 00ce FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
174 .L3:
221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
175 .loc 1 221 1
ARM GAS /tmp/ccv5crZT.s page 8
176 00d0 1846 mov r0, r3
177 00d2 1C37 adds r7, r7, #28
178 .cfi_def_cfa_offset 20
179 00d4 BD46 mov sp, r7
180 .cfi_def_cfa_register 13
181 @ sp needed
182 00d6 F0BD pop {r4, r5, r6, r7, pc}
183 .L13:
184 .align 2
185 .L12:
186 00d8 00000000 .word pFlash
187 00dc 00200240 .word 1073881088
188 .cfi_endproc
189 .LFE130:
191 .section .text.HAL_FLASH_Program_IT,"ax",%progbits
192 .align 1
193 .global HAL_FLASH_Program_IT
194 .syntax unified
195 .thumb
196 .thumb_func
198 HAL_FLASH_Program_IT:
199 .LFB131:
222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Program halfword, word or double word at a specified address with interrupt enabled.
225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @note The function HAL_FLASH_Unlock() should be called before to unlock the FLASH interface
226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * The function HAL_FLASH_Lock() should be called after to lock the FLASH interface
227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @note If an erase and a program operations are requested simultaneously,
229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * the erase operation is performed before the program one.
230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param TypeProgram Indicate the way to program at a specified address.
232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * This parameter can be a value of @ref FLASH_Type_Program
233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param Address Specifie the address to be programmed.
234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param Data Specifie the data to be programmed
235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval HAL_StatusTypeDef HAL Status
237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
200 .loc 1 239 1
201 .cfi_startproc
202 @ args = 0, pretend = 0, frame = 24
203 @ frame_needed = 1, uses_anonymous_args = 0
204 0000 80B5 push {r7, lr}
205 .cfi_def_cfa_offset 8
206 .cfi_offset 7, -8
207 .cfi_offset 14, -4
208 0002 86B0 sub sp, sp, #24
209 .cfi_def_cfa_offset 32
210 0004 00AF add r7, sp, #0
211 .cfi_def_cfa_register 7
212 0006 F860 str r0, [r7, #12]
213 0008 B960 str r1, [r7, #8]
214 000a C7E90023 strd r2, [r7]
240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK;
215 .loc 1 240 21
ARM GAS /tmp/ccv5crZT.s page 9
216 000e 0023 movs r3, #0
217 0010 FB75 strb r3, [r7, #23]
241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Process Locked */
243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_LOCK(&pFlash);
218 .loc 1 243 3
219 0012 1D4B ldr r3, .L20
220 0014 1B7E ldrb r3, [r3, #24] @ zero_extendqisi2
221 0016 012B cmp r3, #1
222 0018 01D1 bne .L15
223 .loc 1 243 3 is_stmt 0 discriminator 1
224 001a 0223 movs r3, #2
225 .loc 1 243 3
226 001c 30E0 b .L16
227 .L15:
228 .loc 1 243 3 discriminator 2
229 001e 1A4B ldr r3, .L20
230 0020 0122 movs r2, #1
231 0022 1A76 strb r2, [r3, #24]
244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Check the parameters */
246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram));
247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** assert_param(IS_FLASH_PROGRAM_ADDRESS(Address));
248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Enable End of FLASH Operation and Error source interrupts */
250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP | FLASH_IT_ERR);
232 .loc 1 250 3 is_stmt 1
233 0024 194B ldr r3, .L20+4
234 0026 1B69 ldr r3, [r3, #16]
235 0028 184A ldr r2, .L20+4
236 002a 43F4A053 orr r3, r3, #5120
237 002e 1361 str r3, [r2, #16]
251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.Address = Address;
238 .loc 1 252 18
239 0030 154A ldr r2, .L20
240 0032 BB68 ldr r3, [r7, #8]
241 0034 9360 str r3, [r2, #8]
253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.Data = Data;
242 .loc 1 253 15
243 0036 1449 ldr r1, .L20
244 0038 D7E90023 ldrd r2, [r7]
245 003c C1E90423 strd r2, [r1, #16]
254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(TypeProgram == FLASH_TYPEPROGRAM_HALFWORD)
246 .loc 1 255 5
247 0040 FB68 ldr r3, [r7, #12]
248 0042 012B cmp r3, #1
249 0044 06D1 bne .L17
256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAMHALFWORD;
250 .loc 1 257 29
251 0046 104B ldr r3, .L20
252 0048 0322 movs r2, #3
253 004a 1A70 strb r2, [r3]
258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Program halfword (16-bit) at a specified address. */
259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.DataRemaining = 1U;
ARM GAS /tmp/ccv5crZT.s page 10
254 .loc 1 259 26
255 004c 0E4B ldr r3, .L20
256 004e 0122 movs r2, #1
257 0050 5A60 str r2, [r3, #4]
258 0052 0FE0 b .L18
259 .L17:
260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else if(TypeProgram == FLASH_TYPEPROGRAM_WORD)
260 .loc 1 261 10
261 0054 FB68 ldr r3, [r7, #12]
262 0056 022B cmp r3, #2
263 0058 06D1 bne .L19
262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAMWORD;
264 .loc 1 263 29
265 005a 0B4B ldr r3, .L20
266 005c 0422 movs r2, #4
267 005e 1A70 strb r2, [r3]
264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Program word (32-bit : 2*16-bit) at a specified address. */
265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.DataRemaining = 2U;
268 .loc 1 265 26
269 0060 094B ldr r3, .L20
270 0062 0222 movs r2, #2
271 0064 5A60 str r2, [r3, #4]
272 0066 05E0 b .L18
273 .L19:
266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else
268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAMDOUBLEWORD;
274 .loc 1 269 29
275 0068 074B ldr r3, .L20
276 006a 0522 movs r2, #5
277 006c 1A70 strb r2, [r3]
270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Program double word (64-bit : 4*16-bit) at a specified address. */
271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.DataRemaining = 4U;
278 .loc 1 271 26
279 006e 064B ldr r3, .L20
280 0070 0422 movs r2, #4
281 0072 5A60 str r2, [r3, #4]
282 .L18:
272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Program halfword (16-bit) at a specified address. */
275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** FLASH_Program_HalfWord(Address, (uint16_t)Data);
283 .loc 1 275 3
284 0074 3B88 ldrh r3, [r7]
285 0076 1946 mov r1, r3
286 0078 B868 ldr r0, [r7, #8]
287 007a FFF7FEFF bl FLASH_Program_HalfWord
276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return status;
288 .loc 1 277 10
289 007e FB7D ldrb r3, [r7, #23] @ zero_extendqisi2
290 .L16:
278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
291 .loc 1 278 1
ARM GAS /tmp/ccv5crZT.s page 11
292 0080 1846 mov r0, r3
293 0082 1837 adds r7, r7, #24
294 .cfi_def_cfa_offset 8
295 0084 BD46 mov sp, r7
296 .cfi_def_cfa_register 13
297 @ sp needed
298 0086 80BD pop {r7, pc}
299 .L21:
300 .align 2
301 .L20:
302 0088 00000000 .word pFlash
303 008c 00200240 .word 1073881088
304 .cfi_endproc
305 .LFE131:
307 .section .text.HAL_FLASH_IRQHandler,"ax",%progbits
308 .align 1
309 .global HAL_FLASH_IRQHandler
310 .syntax unified
311 .thumb
312 .thumb_func
314 HAL_FLASH_IRQHandler:
315 .LFB132:
279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief This function handles FLASH interrupt request.
282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval None
283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** void HAL_FLASH_IRQHandler(void)
285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
316 .loc 1 285 1
317 .cfi_startproc
318 @ args = 0, pretend = 0, frame = 8
319 @ frame_needed = 1, uses_anonymous_args = 0
320 0000 80B5 push {r7, lr}
321 .cfi_def_cfa_offset 8
322 .cfi_offset 7, -8
323 .cfi_offset 14, -4
324 0002 82B0 sub sp, sp, #8
325 .cfi_def_cfa_offset 16
326 0004 00AF add r7, sp, #0
327 .cfi_def_cfa_register 7
286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** uint32_t addresstmp = 0U;
328 .loc 1 286 12
329 0006 0023 movs r3, #0
330 0008 7B60 str r3, [r7, #4]
287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Check FLASH operation error flags */
289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) ||__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR))
331 .loc 1 289 6
332 000a 6D4B ldr r3, .L35
333 000c DB68 ldr r3, [r3, #12]
334 000e 03F01003 and r3, r3, #16
335 .loc 1 289 5
336 0012 102B cmp r3, #16
337 0014 05D0 beq .L23
338 .loc 1 289 48 discriminator 1
339 0016 6A4B ldr r3, .L35
ARM GAS /tmp/ccv5crZT.s page 12
340 0018 DB68 ldr r3, [r3, #12]
341 001a 03F00403 and r3, r3, #4
342 .loc 1 289 46 discriminator 1
343 001e 042B cmp r3, #4
344 0020 0ED1 bne .L24
345 .L23:
290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Return the faulty address */
292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** addresstmp = pFlash.Address;
346 .loc 1 292 16
347 0022 684B ldr r3, .L35+4
348 0024 9B68 ldr r3, [r3, #8]
349 0026 7B60 str r3, [r7, #4]
293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Reset address */
294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.Address = 0xFFFFFFFFU;
350 .loc 1 294 20
351 0028 664B ldr r3, .L35+4
352 002a 4FF0FF32 mov r2, #-1
353 002e 9A60 str r2, [r3, #8]
295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Save the Error code */
297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** FLASH_SetErrorCode();
354 .loc 1 297 5
355 0030 FFF7FEFF bl FLASH_SetErrorCode
298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* FLASH error interrupt user callback */
300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_FLASH_OperationErrorCallback(addresstmp);
356 .loc 1 300 5
357 0034 7868 ldr r0, [r7, #4]
358 0036 FFF7FEFF bl HAL_FLASH_OperationErrorCallback
301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Stop the procedure ongoing */
303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
359 .loc 1 303 29
360 003a 624B ldr r3, .L35+4
361 003c 0022 movs r2, #0
362 003e 1A70 strb r2, [r3]
363 .L24:
304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Check FLASH End of Operation flag */
307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP))
364 .loc 1 307 6
365 0040 5F4B ldr r3, .L35
366 0042 DB68 ldr r3, [r3, #12]
367 0044 03F02003 and r3, r3, #32
368 .loc 1 307 5
369 0048 202B cmp r3, #32
370 004a 40F0A080 bne .L25
308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */
310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
371 .loc 1 310 5
372 004e 5C4B ldr r3, .L35
373 0050 2022 movs r2, #32
374 0052 DA60 str r2, [r3, #12]
311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
ARM GAS /tmp/ccv5crZT.s page 13
312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Process can continue only if no error detected */
313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(pFlash.ProcedureOnGoing != FLASH_PROC_NONE)
375 .loc 1 313 14
376 0054 5B4B ldr r3, .L35+4
377 0056 1B78 ldrb r3, [r3]
378 0058 DBB2 uxtb r3, r3
379 .loc 1 313 7
380 005a 002B cmp r3, #0
381 005c 00F09780 beq .L25
314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(pFlash.ProcedureOnGoing == FLASH_PROC_PAGEERASE)
382 .loc 1 315 16
383 0060 584B ldr r3, .L35+4
384 0062 1B78 ldrb r3, [r3]
385 0064 DBB2 uxtb r3, r3
386 .loc 1 315 9
387 0066 012B cmp r3, #1
388 0068 2DD1 bne .L26
316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Nb of pages to erased can be decreased */
318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.DataRemaining--;
389 .loc 1 318 15
390 006a 564B ldr r3, .L35+4
391 006c 5B68 ldr r3, [r3, #4]
392 .loc 1 318 29
393 006e 013B subs r3, r3, #1
394 0070 544A ldr r2, .L35+4
395 0072 5360 str r3, [r2, #4]
319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Check if there are still pages to erase */
321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(pFlash.DataRemaining != 0U)
396 .loc 1 321 18
397 0074 534B ldr r3, .L35+4
398 0076 5B68 ldr r3, [r3, #4]
399 .loc 1 321 11
400 0078 002B cmp r3, #0
401 007a 17D0 beq .L27
322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** addresstmp = pFlash.Address;
402 .loc 1 323 22
403 007c 514B ldr r3, .L35+4
404 007e 9B68 ldr r3, [r3, #8]
405 0080 7B60 str r3, [r7, #4]
324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /*Indicate user which sector has been erased */
325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(addresstmp);
406 .loc 1 325 11
407 0082 7868 ldr r0, [r7, #4]
408 0084 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /*Increment sector number*/
328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** addresstmp = pFlash.Address + FLASH_PAGE_SIZE;
409 .loc 1 328 30
410 0088 4E4B ldr r3, .L35+4
411 008a 9B68 ldr r3, [r3, #8]
412 .loc 1 328 22
413 008c 03F50063 add r3, r3, #2048
414 0090 7B60 str r3, [r7, #4]
ARM GAS /tmp/ccv5crZT.s page 14
329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.Address = addresstmp;
415 .loc 1 329 26
416 0092 4C4A ldr r2, .L35+4
417 0094 7B68 ldr r3, [r7, #4]
418 0096 9360 str r3, [r2, #8]
330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* If the erase operation is completed, disable the PER Bit */
332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PER);
419 .loc 1 332 11
420 0098 494B ldr r3, .L35
421 009a 1B69 ldr r3, [r3, #16]
422 009c 484A ldr r2, .L35
423 009e 23F00203 bic r3, r3, #2
424 00a2 1361 str r3, [r2, #16]
333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** FLASH_PageErase(addresstmp);
425 .loc 1 334 11
426 00a4 7868 ldr r0, [r7, #4]
427 00a6 FFF7FEFF bl FLASH_PageErase
428 00aa 70E0 b .L25
429 .L27:
335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else
337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* No more pages to Erase, user callback can be called. */
339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Reset Sector and stop Erase pages procedure */
340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.Address = addresstmp = 0xFFFFFFFFU;
430 .loc 1 340 39
431 00ac 4FF0FF33 mov r3, #-1
432 00b0 7B60 str r3, [r7, #4]
433 .loc 1 340 26
434 00b2 444A ldr r2, .L35+4
435 00b4 7B68 ldr r3, [r7, #4]
436 00b6 9360 str r3, [r2, #8]
341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
437 .loc 1 341 35
438 00b8 424B ldr r3, .L35+4
439 00ba 0022 movs r2, #0
440 00bc 1A70 strb r2, [r3]
342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* FLASH EOP interrupt user callback */
343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(addresstmp);
441 .loc 1 343 11
442 00be 7868 ldr r0, [r7, #4]
443 00c0 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
444 00c4 63E0 b .L25
445 .L26:
344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else if(pFlash.ProcedureOnGoing == FLASH_PROC_MASSERASE)
446 .loc 1 346 21
447 00c6 3F4B ldr r3, .L35+4
448 00c8 1B78 ldrb r3, [r3]
449 00ca DBB2 uxtb r3, r3
450 .loc 1 346 14
451 00cc 022B cmp r3, #2
452 00ce 0CD1 bne .L28
347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
ARM GAS /tmp/ccv5crZT.s page 15
348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Operation is completed, disable the MER Bit */
349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_MER);
453 .loc 1 349 9
454 00d0 3B4B ldr r3, .L35
455 00d2 1B69 ldr r3, [r3, #16]
456 00d4 3A4A ldr r2, .L35
457 00d6 23F00403 bic r3, r3, #4
458 00da 1361 str r3, [r2, #16]
350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* MassErase ended. Return the selected bank */
352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* FLASH EOP interrupt user callback */
353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(0U);
459 .loc 1 353 11
460 00dc 0020 movs r0, #0
461 00de FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Stop Mass Erase procedure*/
356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
462 .loc 1 356 35
463 00e2 384B ldr r3, .L35+4
464 00e4 0022 movs r2, #0
465 00e6 1A70 strb r2, [r3]
466 00e8 51E0 b .L25
467 .L28:
357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else
359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Nb of 16-bit data to program can be decreased */
361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.DataRemaining--;
468 .loc 1 361 15
469 00ea 364B ldr r3, .L35+4
470 00ec 5B68 ldr r3, [r3, #4]
471 .loc 1 361 29
472 00ee 013B subs r3, r3, #1
473 00f0 344A ldr r2, .L35+4
474 00f2 5360 str r3, [r2, #4]
362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Check if there are still 16-bit data to program */
364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(pFlash.DataRemaining != 0U)
475 .loc 1 364 18
476 00f4 334B ldr r3, .L35+4
477 00f6 5B68 ldr r3, [r3, #4]
478 .loc 1 364 11
479 00f8 002B cmp r3, #0
480 00fa 24D0 beq .L29
365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Increment address to 16-bit */
367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.Address += 2U;
481 .loc 1 367 17
482 00fc 314B ldr r3, .L35+4
483 00fe 9B68 ldr r3, [r3, #8]
484 .loc 1 367 26
485 0100 0233 adds r3, r3, #2
486 0102 304A ldr r2, .L35+4
487 0104 9360 str r3, [r2, #8]
368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** addresstmp = pFlash.Address;
488 .loc 1 368 22
ARM GAS /tmp/ccv5crZT.s page 16
489 0106 2F4B ldr r3, .L35+4
490 0108 9B68 ldr r3, [r3, #8]
491 010a 7B60 str r3, [r7, #4]
369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Shift to have next 16-bit data */
371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.Data = (pFlash.Data >> 16U);
492 .loc 1 371 32
493 010c 2D4B ldr r3, .L35+4
494 010e D3E90401 ldrd r0, [r3, #16]
495 .loc 1 371 38
496 0112 4FF00002 mov r2, #0
497 0116 4FF00003 mov r3, #0
498 011a 020C lsrs r2, r0, #16
499 011c 42EA0142 orr r2, r2, r1, lsl #16
500 0120 0B0C lsrs r3, r1, #16
501 .loc 1 371 23
502 0122 2849 ldr r1, .L35+4
503 0124 C1E90423 strd r2, [r1, #16]
372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Operation is completed, disable the PG Bit */
374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_PG);
504 .loc 1 374 11
505 0128 254B ldr r3, .L35
506 012a 1B69 ldr r3, [r3, #16]
507 012c 244A ldr r2, .L35
508 012e 23F00103 bic r3, r3, #1
509 0132 1361 str r3, [r2, #16]
375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /*Program halfword (16-bit) at a specified address.*/
377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** FLASH_Program_HalfWord(addresstmp, (uint16_t)pFlash.Data);
510 .loc 1 377 62
511 0134 234B ldr r3, .L35+4
512 0136 D3E90423 ldrd r2, [r3, #16]
513 .loc 1 377 11
514 013a 93B2 uxth r3, r2
515 013c 1946 mov r1, r3
516 013e 7868 ldr r0, [r7, #4]
517 0140 FFF7FEFF bl FLASH_Program_HalfWord
518 0144 23E0 b .L25
519 .L29:
378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else
380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Program ended. Return the selected address */
382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* FLASH EOP interrupt user callback */
383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if (pFlash.ProcedureOnGoing == FLASH_PROC_PROGRAMHALFWORD)
520 .loc 1 383 21
521 0146 1F4B ldr r3, .L35+4
522 0148 1B78 ldrb r3, [r3]
523 014a DBB2 uxtb r3, r3
524 .loc 1 383 14
525 014c 032B cmp r3, #3
526 014e 05D1 bne .L30
384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Address);
527 .loc 1 385 52
528 0150 1C4B ldr r3, .L35+4
ARM GAS /tmp/ccv5crZT.s page 17
529 0152 9B68 ldr r3, [r3, #8]
530 .loc 1 385 13
531 0154 1846 mov r0, r3
532 0156 FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
533 015a 11E0 b .L31
534 .L30:
386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else if (pFlash.ProcedureOnGoing == FLASH_PROC_PROGRAMWORD)
535 .loc 1 387 26
536 015c 194B ldr r3, .L35+4
537 015e 1B78 ldrb r3, [r3]
538 0160 DBB2 uxtb r3, r3
539 .loc 1 387 19
540 0162 042B cmp r3, #4
541 0164 06D1 bne .L32
388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Address - 2U);
542 .loc 1 389 52
543 0166 174B ldr r3, .L35+4
544 0168 9B68 ldr r3, [r3, #8]
545 .loc 1 389 13
546 016a 023B subs r3, r3, #2
547 016c 1846 mov r0, r3
548 016e FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
549 0172 05E0 b .L31
550 .L32:
390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else
392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_FLASH_EndOfOperationCallback(pFlash.Address - 6U);
551 .loc 1 393 52
552 0174 134B ldr r3, .L35+4
553 0176 9B68 ldr r3, [r3, #8]
554 .loc 1 393 13
555 0178 063B subs r3, r3, #6
556 017a 1846 mov r0, r3
557 017c FFF7FEFF bl HAL_FLASH_EndOfOperationCallback
558 .L31:
394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Reset Address and stop Program procedure */
397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.Address = 0xFFFFFFFFU;
559 .loc 1 397 26
560 0180 104B ldr r3, .L35+4
561 0182 4FF0FF32 mov r2, #-1
562 0186 9A60 str r2, [r3, #8]
398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
563 .loc 1 398 35
564 0188 0E4B ldr r3, .L35+4
565 018a 0022 movs r2, #0
566 018c 1A70 strb r2, [r3]
567 .L25:
399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
ARM GAS /tmp/ccv5crZT.s page 18
404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(pFlash.ProcedureOnGoing == FLASH_PROC_NONE)
568 .loc 1 405 12
569 018e 0D4B ldr r3, .L35+4
570 0190 1B78 ldrb r3, [r3]
571 0192 DBB2 uxtb r3, r3
572 .loc 1 405 5
573 0194 002B cmp r3, #0
574 0196 0ED1 bne .L34
406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Operation is completed, disable the PG, PER and MER Bits */
408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, (FLASH_CR_PG | FLASH_CR_PER | FLASH_CR_MER));
575 .loc 1 408 5
576 0198 094B ldr r3, .L35
577 019a 1B69 ldr r3, [r3, #16]
578 019c 084A ldr r2, .L35
579 019e 23F00703 bic r3, r3, #7
580 01a2 1361 str r3, [r2, #16]
409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Disable End of FLASH Operation and Error source interrupts */
411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_FLASH_DISABLE_IT(FLASH_IT_EOP | FLASH_IT_ERR);
581 .loc 1 411 5
582 01a4 064B ldr r3, .L35
583 01a6 1B69 ldr r3, [r3, #16]
584 01a8 054A ldr r2, .L35
585 01aa 23F4A053 bic r3, r3, #5120
586 01ae 1361 str r3, [r2, #16]
412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Process Unlocked */
414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_UNLOCK(&pFlash);
587 .loc 1 414 5
588 01b0 044B ldr r3, .L35+4
589 01b2 0022 movs r2, #0
590 01b4 1A76 strb r2, [r3, #24]
591 .L34:
415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
592 .loc 1 416 1
593 01b6 00BF nop
594 01b8 0837 adds r7, r7, #8
595 .cfi_def_cfa_offset 8
596 01ba BD46 mov sp, r7
597 .cfi_def_cfa_register 13
598 @ sp needed
599 01bc 80BD pop {r7, pc}
600 .L36:
601 01be 00BF .align 2
602 .L35:
603 01c0 00200240 .word 1073881088
604 01c4 00000000 .word pFlash
605 .cfi_endproc
606 .LFE132:
608 .section .text.HAL_FLASH_EndOfOperationCallback,"ax",%progbits
609 .align 1
610 .weak HAL_FLASH_EndOfOperationCallback
611 .syntax unified
612 .thumb
ARM GAS /tmp/ccv5crZT.s page 19
613 .thumb_func
615 HAL_FLASH_EndOfOperationCallback:
616 .LFB133:
417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief FLASH end of operation interrupt callback
420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param ReturnValue The value saved in this parameter depends on the ongoing procedure
421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * - Mass Erase: No return value expected
422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * - Pages Erase: Address of the page which has been erased
423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * (if 0xFFFFFFFF, it means that all the selected pages have been erased)
424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * - Program: Address which was selected for data program
425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval none
426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __weak void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue)
428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
617 .loc 1 428 1
618 .cfi_startproc
619 @ args = 0, pretend = 0, frame = 8
620 @ frame_needed = 1, uses_anonymous_args = 0
621 @ link register save eliminated.
622 0000 80B4 push {r7}
623 .cfi_def_cfa_offset 4
624 .cfi_offset 7, -4
625 0002 83B0 sub sp, sp, #12
626 .cfi_def_cfa_offset 16
627 0004 00AF add r7, sp, #0
628 .cfi_def_cfa_register 7
629 0006 7860 str r0, [r7, #4]
429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */
430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** UNUSED(ReturnValue);
431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed,
433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** the HAL_FLASH_EndOfOperationCallback could be implemented in the user file
434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
630 .loc 1 435 1
631 0008 00BF nop
632 000a 0C37 adds r7, r7, #12
633 .cfi_def_cfa_offset 4
634 000c BD46 mov sp, r7
635 .cfi_def_cfa_register 13
636 @ sp needed
637 000e 5DF8047B ldr r7, [sp], #4
638 .cfi_restore 7
639 .cfi_def_cfa_offset 0
640 0012 7047 bx lr
641 .cfi_endproc
642 .LFE133:
644 .section .text.HAL_FLASH_OperationErrorCallback,"ax",%progbits
645 .align 1
646 .weak HAL_FLASH_OperationErrorCallback
647 .syntax unified
648 .thumb
649 .thumb_func
651 HAL_FLASH_OperationErrorCallback:
652 .LFB134:
436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
ARM GAS /tmp/ccv5crZT.s page 20
437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief FLASH operation error interrupt callback
439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param ReturnValue The value saved in this parameter depends on the ongoing procedure
440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * - Mass Erase: No return value expected
441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * - Pages Erase: Address of the page which returned an error
442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * - Program: Address which was selected for data program
443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval none
444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __weak void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue)
446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
653 .loc 1 446 1
654 .cfi_startproc
655 @ args = 0, pretend = 0, frame = 8
656 @ frame_needed = 1, uses_anonymous_args = 0
657 @ link register save eliminated.
658 0000 80B4 push {r7}
659 .cfi_def_cfa_offset 4
660 .cfi_offset 7, -4
661 0002 83B0 sub sp, sp, #12
662 .cfi_def_cfa_offset 16
663 0004 00AF add r7, sp, #0
664 .cfi_def_cfa_register 7
665 0006 7860 str r0, [r7, #4]
447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Prevent unused argument(s) compilation warning */
448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** UNUSED(ReturnValue);
449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* NOTE : This function Should not be modified, when the callback is needed,
451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** the HAL_FLASH_OperationErrorCallback could be implemented in the user file
452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
666 .loc 1 453 1
667 0008 00BF nop
668 000a 0C37 adds r7, r7, #12
669 .cfi_def_cfa_offset 4
670 000c BD46 mov sp, r7
671 .cfi_def_cfa_register 13
672 @ sp needed
673 000e 5DF8047B ldr r7, [sp], #4
674 .cfi_restore 7
675 .cfi_def_cfa_offset 0
676 0012 7047 bx lr
677 .cfi_endproc
678 .LFE134:
680 .section .text.HAL_FLASH_Unlock,"ax",%progbits
681 .align 1
682 .global HAL_FLASH_Unlock
683 .syntax unified
684 .thumb
685 .thumb_func
687 HAL_FLASH_Unlock:
688 .LFB135:
454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @}
457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group2 Peripheral Control functions
ARM GAS /tmp/ccv5crZT.s page 21
460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief management functions
461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @verbatim
463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ===============================================================================
464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ##### Peripheral Control functions #####
465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ===============================================================================
466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** [..]
467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** This subsection provides a set of functions allowing to control the FLASH
468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** memory operations.
469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @endverbatim
471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Unlock the FLASH control register access
476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval HAL Status
477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Unlock(void)
479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
689 .loc 1 479 1
690 .cfi_startproc
691 @ args = 0, pretend = 0, frame = 8
692 @ frame_needed = 1, uses_anonymous_args = 0
693 @ link register save eliminated.
694 0000 80B4 push {r7}
695 .cfi_def_cfa_offset 4
696 .cfi_offset 7, -4
697 0002 83B0 sub sp, sp, #12
698 .cfi_def_cfa_offset 16
699 0004 00AF add r7, sp, #0
700 .cfi_def_cfa_register 7
480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef status = HAL_OK;
701 .loc 1 480 21
702 0006 0023 movs r3, #0
703 0008 FB71 strb r3, [r7, #7]
481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
704 .loc 1 482 6
705 000a 0D4B ldr r3, .L42
706 000c 1B69 ldr r3, [r3, #16]
707 000e 03F08003 and r3, r3, #128
708 .loc 1 482 5
709 0012 002B cmp r3, #0
710 0014 0DD0 beq .L40
483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Authorize the FLASH Registers access */
485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY1);
711 .loc 1 485 5
712 0016 0A4B ldr r3, .L42
713 0018 0A4A ldr r2, .L42+4
714 001a 5A60 str r2, [r3, #4]
486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** WRITE_REG(FLASH->KEYR, FLASH_KEY2);
715 .loc 1 486 5
716 001c 084B ldr r3, .L42
717 001e 0A4A ldr r2, .L42+8
718 0020 5A60 str r2, [r3, #4]
ARM GAS /tmp/ccv5crZT.s page 22
487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Verify Flash is unlocked */
489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
719 .loc 1 489 8
720 0022 074B ldr r3, .L42
721 0024 1B69 ldr r3, [r3, #16]
722 0026 03F08003 and r3, r3, #128
723 .loc 1 489 7
724 002a 002B cmp r3, #0
725 002c 01D0 beq .L40
490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** status = HAL_ERROR;
726 .loc 1 491 14
727 002e 0123 movs r3, #1
728 0030 FB71 strb r3, [r7, #7]
729 .L40:
492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return status;
730 .loc 1 495 10
731 0032 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
732 .loc 1 496 1
733 0034 1846 mov r0, r3
734 0036 0C37 adds r7, r7, #12
735 .cfi_def_cfa_offset 4
736 0038 BD46 mov sp, r7
737 .cfi_def_cfa_register 13
738 @ sp needed
739 003a 5DF8047B ldr r7, [sp], #4
740 .cfi_restore 7
741 .cfi_def_cfa_offset 0
742 003e 7047 bx lr
743 .L43:
744 .align 2
745 .L42:
746 0040 00200240 .word 1073881088
747 0044 23016745 .word 1164378403
748 0048 AB89EFCD .word -839939669
749 .cfi_endproc
750 .LFE135:
752 .section .text.HAL_FLASH_Lock,"ax",%progbits
753 .align 1
754 .global HAL_FLASH_Lock
755 .syntax unified
756 .thumb
757 .thumb_func
759 HAL_FLASH_Lock:
760 .LFB136:
497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Locks the FLASH control register access
500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval HAL Status
501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Lock(void)
503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
ARM GAS /tmp/ccv5crZT.s page 23
761 .loc 1 503 1
762 .cfi_startproc
763 @ args = 0, pretend = 0, frame = 0
764 @ frame_needed = 1, uses_anonymous_args = 0
765 @ link register save eliminated.
766 0000 80B4 push {r7}
767 .cfi_def_cfa_offset 4
768 .cfi_offset 7, -4
769 0002 00AF add r7, sp, #0
770 .cfi_def_cfa_register 7
504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Set the LOCK Bit to lock the FLASH Registers access */
505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** SET_BIT(FLASH->CR, FLASH_CR_LOCK);
771 .loc 1 505 3
772 0004 054B ldr r3, .L46
773 0006 1B69 ldr r3, [r3, #16]
774 0008 044A ldr r2, .L46
775 000a 43F08003 orr r3, r3, #128
776 000e 1361 str r3, [r2, #16]
506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return HAL_OK;
777 .loc 1 507 10
778 0010 0023 movs r3, #0
508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
779 .loc 1 508 1
780 0012 1846 mov r0, r3
781 0014 BD46 mov sp, r7
782 .cfi_def_cfa_register 13
783 @ sp needed
784 0016 5DF8047B ldr r7, [sp], #4
785 .cfi_restore 7
786 .cfi_def_cfa_offset 0
787 001a 7047 bx lr
788 .L47:
789 .align 2
790 .L46:
791 001c 00200240 .word 1073881088
792 .cfi_endproc
793 .LFE136:
795 .section .text.HAL_FLASH_OB_Unlock,"ax",%progbits
796 .align 1
797 .global HAL_FLASH_OB_Unlock
798 .syntax unified
799 .thumb
800 .thumb_func
802 HAL_FLASH_OB_Unlock:
803 .LFB137:
509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Unlock the FLASH Option Control Registers access.
512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval HAL Status
513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void)
515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
804 .loc 1 515 1
805 .cfi_startproc
806 @ args = 0, pretend = 0, frame = 0
807 @ frame_needed = 1, uses_anonymous_args = 0
ARM GAS /tmp/ccv5crZT.s page 24
808 @ link register save eliminated.
809 0000 80B4 push {r7}
810 .cfi_def_cfa_offset 4
811 .cfi_offset 7, -4
812 0002 00AF add r7, sp, #0
813 .cfi_def_cfa_register 7
516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if (HAL_IS_BIT_CLR(FLASH->CR, FLASH_CR_OPTWRE))
814 .loc 1 516 7
815 0004 094B ldr r3, .L52
816 0006 1B69 ldr r3, [r3, #16]
817 0008 03F40073 and r3, r3, #512
818 .loc 1 516 6
819 000c 002B cmp r3, #0
820 000e 07D1 bne .L49
517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Authorizes the Option Byte register programming */
519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY1);
821 .loc 1 519 5
822 0010 064B ldr r3, .L52
823 0012 074A ldr r2, .L52+4
824 0014 9A60 str r2, [r3, #8]
520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY2);
825 .loc 1 520 5
826 0016 054B ldr r3, .L52
827 0018 064A ldr r2, .L52+8
828 001a 9A60 str r2, [r3, #8]
521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** else
523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return HAL_ERROR;
525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return HAL_OK;
829 .loc 1 527 10
830 001c 0023 movs r3, #0
831 001e 00E0 b .L51
832 .L49:
524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
833 .loc 1 524 12
834 0020 0123 movs r3, #1
835 .L51:
528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
836 .loc 1 528 1
837 0022 1846 mov r0, r3
838 0024 BD46 mov sp, r7
839 .cfi_def_cfa_register 13
840 @ sp needed
841 0026 5DF8047B ldr r7, [sp], #4
842 .cfi_restore 7
843 .cfi_def_cfa_offset 0
844 002a 7047 bx lr
845 .L53:
846 .align 2
847 .L52:
848 002c 00200240 .word 1073881088
849 0030 23016745 .word 1164378403
850 0034 AB89EFCD .word -839939669
ARM GAS /tmp/ccv5crZT.s page 25
851 .cfi_endproc
852 .LFE137:
854 .section .text.HAL_FLASH_OB_Lock,"ax",%progbits
855 .align 1
856 .global HAL_FLASH_OB_Lock
857 .syntax unified
858 .thumb
859 .thumb_func
861 HAL_FLASH_OB_Lock:
862 .LFB138:
529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Lock the FLASH Option Control Registers access.
532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval HAL Status
533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Lock(void)
535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
863 .loc 1 535 1
864 .cfi_startproc
865 @ args = 0, pretend = 0, frame = 0
866 @ frame_needed = 1, uses_anonymous_args = 0
867 @ link register save eliminated.
868 0000 80B4 push {r7}
869 .cfi_def_cfa_offset 4
870 .cfi_offset 7, -4
871 0002 00AF add r7, sp, #0
872 .cfi_def_cfa_register 7
536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Clear the OPTWRE Bit to lock the FLASH Option Byte Registers access */
537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** CLEAR_BIT(FLASH->CR, FLASH_CR_OPTWRE);
873 .loc 1 537 3
874 0004 054B ldr r3, .L56
875 0006 1B69 ldr r3, [r3, #16]
876 0008 044A ldr r2, .L56
877 000a 23F40073 bic r3, r3, #512
878 000e 1361 str r3, [r2, #16]
538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return HAL_OK;
879 .loc 1 539 10
880 0010 0023 movs r3, #0
540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
881 .loc 1 540 1
882 0012 1846 mov r0, r3
883 0014 BD46 mov sp, r7
884 .cfi_def_cfa_register 13
885 @ sp needed
886 0016 5DF8047B ldr r7, [sp], #4
887 .cfi_restore 7
888 .cfi_def_cfa_offset 0
889 001a 7047 bx lr
890 .L57:
891 .align 2
892 .L56:
893 001c 00200240 .word 1073881088
894 .cfi_endproc
895 .LFE138:
897 .section .text.HAL_FLASH_OB_Launch,"ax",%progbits
898 .align 1
ARM GAS /tmp/ccv5crZT.s page 26
899 .global HAL_FLASH_OB_Launch
900 .syntax unified
901 .thumb
902 .thumb_func
904 HAL_FLASH_OB_Launch:
905 .LFB139:
541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Launch the option byte loading.
544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @note This function will reset automatically the MCU.
545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval HAL Status
546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Launch(void)
548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
906 .loc 1 548 1
907 .cfi_startproc
908 @ args = 0, pretend = 0, frame = 0
909 @ frame_needed = 1, uses_anonymous_args = 0
910 0000 80B5 push {r7, lr}
911 .cfi_def_cfa_offset 8
912 .cfi_offset 7, -8
913 .cfi_offset 14, -4
914 0002 00AF add r7, sp, #0
915 .cfi_def_cfa_register 7
549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Set the OBL_Launch bit to launch the option byte loading */
550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** SET_BIT(FLASH->CR, FLASH_CR_OBL_LAUNCH);
916 .loc 1 550 3
917 0004 064B ldr r3, .L60
918 0006 1B69 ldr r3, [r3, #16]
919 0008 054A ldr r2, .L60
920 000a 43F40053 orr r3, r3, #8192
921 000e 1361 str r3, [r2, #16]
551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Wait for last operation to be completed */
553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return(FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE));
922 .loc 1 553 10
923 0010 4CF25030 movw r0, #50000
924 0014 FFF7FEFF bl FLASH_WaitForLastOperation
925 0018 0346 mov r3, r0
554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
926 .loc 1 554 1
927 001a 1846 mov r0, r3
928 001c 80BD pop {r7, pc}
929 .L61:
930 001e 00BF .align 2
931 .L60:
932 0020 00200240 .word 1073881088
933 .cfi_endproc
934 .LFE139:
936 .section .text.HAL_FLASH_GetError,"ax",%progbits
937 .align 1
938 .global HAL_FLASH_GetError
939 .syntax unified
940 .thumb
941 .thumb_func
943 HAL_FLASH_GetError:
944 .LFB140:
ARM GAS /tmp/ccv5crZT.s page 27
555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @}
558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group3 Peripheral errors functions
561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Peripheral errors functions
562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *
563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @verbatim
564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ===============================================================================
565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ##### Peripheral Errors functions #####
566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** ===============================================================================
567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** [..]
568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** This subsection permit to get in run-time errors of the FLASH peripheral.
569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @endverbatim
571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Get the specific FLASH error flag.
576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval FLASH_ErrorCode The returned value can be:
577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @ref FLASH_Error_Codes
578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** uint32_t HAL_FLASH_GetError(void)
580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
945 .loc 1 580 1
946 .cfi_startproc
947 @ args = 0, pretend = 0, frame = 0
948 @ frame_needed = 1, uses_anonymous_args = 0
949 @ link register save eliminated.
950 0000 80B4 push {r7}
951 .cfi_def_cfa_offset 4
952 .cfi_offset 7, -4
953 0002 00AF add r7, sp, #0
954 .cfi_def_cfa_register 7
581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return pFlash.ErrorCode;
955 .loc 1 581 17
956 0004 034B ldr r3, .L64
957 0006 DB69 ldr r3, [r3, #28]
582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
958 .loc 1 582 1
959 0008 1846 mov r0, r3
960 000a BD46 mov sp, r7
961 .cfi_def_cfa_register 13
962 @ sp needed
963 000c 5DF8047B ldr r7, [sp], #4
964 .cfi_restore 7
965 .cfi_def_cfa_offset 0
966 0010 7047 bx lr
967 .L65:
968 0012 00BF .align 2
969 .L64:
970 0014 00000000 .word pFlash
971 .cfi_endproc
972 .LFE140:
974 .section .text.FLASH_Program_HalfWord,"ax",%progbits
ARM GAS /tmp/ccv5crZT.s page 28
975 .align 1
976 .syntax unified
977 .thumb
978 .thumb_func
980 FLASH_Program_HalfWord:
981 .LFB141:
583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @}
586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @}
590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @addtogroup FLASH_Private_Functions
593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @{
594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Program a half-word (16-bit) at a specified address.
598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param Address specify the address to be programmed.
599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param Data specify the data to be programmed.
600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval None
601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data)
603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
982 .loc 1 603 1
983 .cfi_startproc
984 @ args = 0, pretend = 0, frame = 8
985 @ frame_needed = 1, uses_anonymous_args = 0
986 @ link register save eliminated.
987 0000 80B4 push {r7}
988 .cfi_def_cfa_offset 4
989 .cfi_offset 7, -4
990 0002 83B0 sub sp, sp, #12
991 .cfi_def_cfa_offset 16
992 0004 00AF add r7, sp, #0
993 .cfi_def_cfa_register 7
994 0006 7860 str r0, [r7, #4]
995 0008 0B46 mov r3, r1
996 000a 7B80 strh r3, [r7, #2] @ movhi
604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Clean the error context */
605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
997 .loc 1 605 20
998 000c 084B ldr r3, .L67
999 000e 0022 movs r2, #0
1000 0010 DA61 str r2, [r3, #28]
606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Proceed to program the new data */
608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** SET_BIT(FLASH->CR, FLASH_CR_PG);
1001 .loc 1 608 5
1002 0012 084B ldr r3, .L67+4
1003 0014 1B69 ldr r3, [r3, #16]
1004 0016 074A ldr r2, .L67+4
1005 0018 43F00103 orr r3, r3, #1
1006 001c 1361 str r3, [r2, #16]
ARM GAS /tmp/ccv5crZT.s page 29
609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Write data in the address */
611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** *(__IO uint16_t*)Address = Data;
1007 .loc 1 611 4
1008 001e 7B68 ldr r3, [r7, #4]
1009 .loc 1 611 28
1010 0020 7A88 ldrh r2, [r7, #2] @ movhi
1011 0022 1A80 strh r2, [r3] @ movhi
612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
1012 .loc 1 612 1
1013 0024 00BF nop
1014 0026 0C37 adds r7, r7, #12
1015 .cfi_def_cfa_offset 4
1016 0028 BD46 mov sp, r7
1017 .cfi_def_cfa_register 13
1018 @ sp needed
1019 002a 5DF8047B ldr r7, [sp], #4
1020 .cfi_restore 7
1021 .cfi_def_cfa_offset 0
1022 002e 7047 bx lr
1023 .L68:
1024 .align 2
1025 .L67:
1026 0030 00000000 .word pFlash
1027 0034 00200240 .word 1073881088
1028 .cfi_endproc
1029 .LFE141:
1031 .section .text.FLASH_WaitForLastOperation,"ax",%progbits
1032 .align 1
1033 .global FLASH_WaitForLastOperation
1034 .syntax unified
1035 .thumb
1036 .thumb_func
1038 FLASH_WaitForLastOperation:
1039 .LFB142:
613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Wait for a FLASH operation to complete.
616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @param Timeout maximum flash operation timeout
617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval HAL Status
618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout)
620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
1040 .loc 1 620 1
1041 .cfi_startproc
1042 @ args = 0, pretend = 0, frame = 16
1043 @ frame_needed = 1, uses_anonymous_args = 0
1044 0000 80B5 push {r7, lr}
1045 .cfi_def_cfa_offset 8
1046 .cfi_offset 7, -8
1047 .cfi_offset 14, -4
1048 0002 84B0 sub sp, sp, #16
1049 .cfi_def_cfa_offset 24
1050 0004 00AF add r7, sp, #0
1051 .cfi_def_cfa_register 7
1052 0006 7860 str r0, [r7, #4]
621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset.
ARM GAS /tmp/ccv5crZT.s page 30
622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** Even if the FLASH operation fails, the BUSY flag will be reset and an error
623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** flag will be set */
624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** uint32_t tickstart = HAL_GetTick();
1053 .loc 1 625 24
1054 0008 FFF7FEFF bl HAL_GetTick
1055 000c F860 str r0, [r7, #12]
626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY))
1056 .loc 1 627 8
1057 000e 10E0 b .L71
1058 .L74:
628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if (Timeout != HAL_MAX_DELAY)
1059 .loc 1 629 8
1060 0010 7B68 ldr r3, [r7, #4]
1061 0012 B3F1FF3F cmp r3, #-1
1062 0016 0CD0 beq .L71
630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if((Timeout == 0U) || ((HAL_GetTick()-tickstart) > Timeout))
1063 .loc 1 631 9
1064 0018 7B68 ldr r3, [r7, #4]
1065 001a 002B cmp r3, #0
1066 001c 07D0 beq .L72
1067 .loc 1 631 31 discriminator 1
1068 001e FFF7FEFF bl HAL_GetTick
1069 0022 0246 mov r2, r0
1070 .loc 1 631 44 discriminator 1
1071 0024 FB68 ldr r3, [r7, #12]
1072 0026 D31A subs r3, r2, r3
1073 .loc 1 631 26 discriminator 1
1074 0028 7A68 ldr r2, [r7, #4]
1075 002a 9A42 cmp r2, r3
1076 002c 01D2 bcs .L71
1077 .L72:
632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return HAL_TIMEOUT;
1078 .loc 1 633 16
1079 002e 0323 movs r3, #3
1080 0030 1FE0 b .L73
1081 .L71:
627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
1082 .loc 1 627 9
1083 0032 124B ldr r3, .L78
1084 0034 DB68 ldr r3, [r3, #12]
1085 0036 03F00103 and r3, r3, #1
1086 003a 012B cmp r3, #1
1087 003c E8D0 beq .L74
634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Check FLASH End of Operation flag */
639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP))
1088 .loc 1 639 7
1089 003e 0F4B ldr r3, .L78
1090 0040 DB68 ldr r3, [r3, #12]
ARM GAS /tmp/ccv5crZT.s page 31
1091 0042 03F02003 and r3, r3, #32
1092 .loc 1 639 6
1093 0046 202B cmp r3, #32
1094 0048 02D1 bne .L75
640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Clear FLASH End of Operation pending bit */
642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
1095 .loc 1 642 5
1096 004a 0C4B ldr r3, .L78
1097 004c 2022 movs r2, #32
1098 004e DA60 str r2, [r3, #12]
1099 .L75:
643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) ||
1100 .loc 1 645 6
1101 0050 0A4B ldr r3, .L78
1102 0052 DB68 ldr r3, [r3, #12]
1103 0054 03F01003 and r3, r3, #16
1104 .loc 1 645 5
1105 0058 102B cmp r3, #16
1106 005a 05D0 beq .L76
646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR))
1107 .loc 1 646 6
1108 005c 074B ldr r3, .L78
1109 005e DB68 ldr r3, [r3, #12]
1110 0060 03F00403 and r3, r3, #4
645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR))
1111 .loc 1 645 47 discriminator 1
1112 0064 042B cmp r3, #4
1113 0066 03D1 bne .L77
1114 .L76:
647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /*Save the error code*/
649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** FLASH_SetErrorCode();
1115 .loc 1 649 5
1116 0068 FFF7FEFF bl FLASH_SetErrorCode
650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return HAL_ERROR;
1117 .loc 1 650 12
1118 006c 0123 movs r3, #1
1119 006e 00E0 b .L73
1120 .L77:
651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* There is no error flag set */
654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** return HAL_OK;
1121 .loc 1 654 10
1122 0070 0023 movs r3, #0
1123 .L73:
655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
1124 .loc 1 655 1
1125 0072 1846 mov r0, r3
1126 0074 1037 adds r7, r7, #16
1127 .cfi_def_cfa_offset 8
1128 0076 BD46 mov sp, r7
1129 .cfi_def_cfa_register 13
1130 @ sp needed
ARM GAS /tmp/ccv5crZT.s page 32
1131 0078 80BD pop {r7, pc}
1132 .L79:
1133 007a 00BF .align 2
1134 .L78:
1135 007c 00200240 .word 1073881088
1136 .cfi_endproc
1137 .LFE142:
1139 .section .text.FLASH_SetErrorCode,"ax",%progbits
1140 .align 1
1141 .syntax unified
1142 .thumb
1143 .thumb_func
1145 FLASH_SetErrorCode:
1146 .LFB143:
656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @brief Set the specific FLASH error flag.
660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** * @retval None
661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** */
662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** static void FLASH_SetErrorCode(void)
663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
1147 .loc 1 663 1
1148 .cfi_startproc
1149 @ args = 0, pretend = 0, frame = 8
1150 @ frame_needed = 1, uses_anonymous_args = 0
1151 @ link register save eliminated.
1152 0000 80B4 push {r7}
1153 .cfi_def_cfa_offset 4
1154 .cfi_offset 7, -4
1155 0002 83B0 sub sp, sp, #12
1156 .cfi_def_cfa_offset 16
1157 0004 00AF add r7, sp, #0
1158 .cfi_def_cfa_register 7
664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** uint32_t flags = 0U;
1159 .loc 1 664 12
1160 0006 0023 movs r3, #0
1161 0008 7B60 str r3, [r7, #4]
665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****
666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR))
1162 .loc 1 666 6
1163 000a 144B ldr r3, .L83
1164 000c DB68 ldr r3, [r3, #12]
1165 000e 03F01003 and r3, r3, #16
1166 .loc 1 666 5
1167 0012 102B cmp r3, #16
1168 0014 09D1 bne .L81
667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP;
1169 .loc 1 668 11
1170 0016 124B ldr r3, .L83+4
1171 0018 DB69 ldr r3, [r3, #28]
1172 .loc 1 668 22
1173 001a 43F00203 orr r3, r3, #2
1174 001e 104A ldr r2, .L83+4
1175 0020 D361 str r3, [r2, #28]
669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** flags |= FLASH_FLAG_WRPERR;
ARM GAS /tmp/ccv5crZT.s page 33
1176 .loc 1 669 11
1177 0022 7B68 ldr r3, [r7, #4]
1178 0024 43F01003 orr r3, r3, #16
1179 0028 7B60 str r3, [r7, #4]
1180 .L81:
670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR))
1181 .loc 1 671 6
1182 002a 0C4B ldr r3, .L83
1183 002c DB68 ldr r3, [r3, #12]
1184 002e 03F00403 and r3, r3, #4
1185 .loc 1 671 5
1186 0032 042B cmp r3, #4
1187 0034 09D1 bne .L82
672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** pFlash.ErrorCode |= HAL_FLASH_ERROR_PROG;
1188 .loc 1 673 11
1189 0036 0A4B ldr r3, .L83+4
1190 0038 DB69 ldr r3, [r3, #28]
1191 .loc 1 673 22
1192 003a 43F00103 orr r3, r3, #1
1193 003e 084A ldr r2, .L83+4
1194 0040 D361 str r3, [r2, #28]
674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** flags |= FLASH_FLAG_PGERR;
1195 .loc 1 674 11
1196 0042 7B68 ldr r3, [r7, #4]
1197 0044 43F00403 orr r3, r3, #4
1198 0048 7B60 str r3, [r7, #4]
1199 .L82:
675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Clear FLASH error pending bits */
677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __HAL_FLASH_CLEAR_FLAG(flags);
1200 .loc 1 677 3
1201 004a 044A ldr r2, .L83
1202 004c 7B68 ldr r3, [r7, #4]
1203 004e D360 str r3, [r2, #12]
678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
1204 .loc 1 678 1
1205 0050 00BF nop
1206 0052 0C37 adds r7, r7, #12
1207 .cfi_def_cfa_offset 4
1208 0054 BD46 mov sp, r7
1209 .cfi_def_cfa_register 13
1210 @ sp needed
1211 0056 5DF8047B ldr r7, [sp], #4
1212 .cfi_restore 7
1213 .cfi_def_cfa_offset 0
1214 005a 7047 bx lr
1215 .L84:
1216 .align 2
1217 .L83:
1218 005c 00200240 .word 1073881088
1219 0060 00000000 .word pFlash
1220 .cfi_endproc
1221 .LFE143:
1223 .text
1224 .Letext0:
ARM GAS /tmp/ccv5crZT.s page 34
1225 .file 2 "/nix/store/p8vkamc9b2vlibs9aw76vnasdbifhcbm-gcc-arm-embedded-13.2.rel1/arm-none-eabi/incl
1226 .file 3 "/nix/store/p8vkamc9b2vlibs9aw76vnasdbifhcbm-gcc-arm-embedded-13.2.rel1/arm-none-eabi/incl
1227 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h"
1228 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h"
1229 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
1230 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h"
1231 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h"
ARM GAS /tmp/ccv5crZT.s page 35
DEFINED SYMBOLS
*ABS*:00000000 stm32f3xx_hal_flash.c
/tmp/ccv5crZT.s:25 .bss.pFlash:00000000 pFlash
/tmp/ccv5crZT.s:22 .bss.pFlash:00000000 $d
/tmp/ccv5crZT.s:28 .text.HAL_FLASH_Program:00000000 $t
/tmp/ccv5crZT.s:34 .text.HAL_FLASH_Program:00000000 HAL_FLASH_Program
/tmp/ccv5crZT.s:1038 .text.FLASH_WaitForLastOperation:00000000 FLASH_WaitForLastOperation
/tmp/ccv5crZT.s:980 .text.FLASH_Program_HalfWord:00000000 FLASH_Program_HalfWord
/tmp/ccv5crZT.s:186 .text.HAL_FLASH_Program:000000d8 $d
/tmp/ccv5crZT.s:192 .text.HAL_FLASH_Program_IT:00000000 $t
/tmp/ccv5crZT.s:198 .text.HAL_FLASH_Program_IT:00000000 HAL_FLASH_Program_IT
/tmp/ccv5crZT.s:302 .text.HAL_FLASH_Program_IT:00000088 $d
/tmp/ccv5crZT.s:308 .text.HAL_FLASH_IRQHandler:00000000 $t
/tmp/ccv5crZT.s:314 .text.HAL_FLASH_IRQHandler:00000000 HAL_FLASH_IRQHandler
/tmp/ccv5crZT.s:1145 .text.FLASH_SetErrorCode:00000000 FLASH_SetErrorCode
/tmp/ccv5crZT.s:651 .text.HAL_FLASH_OperationErrorCallback:00000000 HAL_FLASH_OperationErrorCallback
/tmp/ccv5crZT.s:615 .text.HAL_FLASH_EndOfOperationCallback:00000000 HAL_FLASH_EndOfOperationCallback
/tmp/ccv5crZT.s:603 .text.HAL_FLASH_IRQHandler:000001c0 $d
/tmp/ccv5crZT.s:609 .text.HAL_FLASH_EndOfOperationCallback:00000000 $t
/tmp/ccv5crZT.s:645 .text.HAL_FLASH_OperationErrorCallback:00000000 $t
/tmp/ccv5crZT.s:681 .text.HAL_FLASH_Unlock:00000000 $t
/tmp/ccv5crZT.s:687 .text.HAL_FLASH_Unlock:00000000 HAL_FLASH_Unlock
/tmp/ccv5crZT.s:746 .text.HAL_FLASH_Unlock:00000040 $d
/tmp/ccv5crZT.s:753 .text.HAL_FLASH_Lock:00000000 $t
/tmp/ccv5crZT.s:759 .text.HAL_FLASH_Lock:00000000 HAL_FLASH_Lock
/tmp/ccv5crZT.s:791 .text.HAL_FLASH_Lock:0000001c $d
/tmp/ccv5crZT.s:796 .text.HAL_FLASH_OB_Unlock:00000000 $t
/tmp/ccv5crZT.s:802 .text.HAL_FLASH_OB_Unlock:00000000 HAL_FLASH_OB_Unlock
/tmp/ccv5crZT.s:848 .text.HAL_FLASH_OB_Unlock:0000002c $d
/tmp/ccv5crZT.s:855 .text.HAL_FLASH_OB_Lock:00000000 $t
/tmp/ccv5crZT.s:861 .text.HAL_FLASH_OB_Lock:00000000 HAL_FLASH_OB_Lock
/tmp/ccv5crZT.s:893 .text.HAL_FLASH_OB_Lock:0000001c $d
/tmp/ccv5crZT.s:898 .text.HAL_FLASH_OB_Launch:00000000 $t
/tmp/ccv5crZT.s:904 .text.HAL_FLASH_OB_Launch:00000000 HAL_FLASH_OB_Launch
/tmp/ccv5crZT.s:932 .text.HAL_FLASH_OB_Launch:00000020 $d
/tmp/ccv5crZT.s:937 .text.HAL_FLASH_GetError:00000000 $t
/tmp/ccv5crZT.s:943 .text.HAL_FLASH_GetError:00000000 HAL_FLASH_GetError
/tmp/ccv5crZT.s:970 .text.HAL_FLASH_GetError:00000014 $d
/tmp/ccv5crZT.s:975 .text.FLASH_Program_HalfWord:00000000 $t
/tmp/ccv5crZT.s:1026 .text.FLASH_Program_HalfWord:00000030 $d
/tmp/ccv5crZT.s:1032 .text.FLASH_WaitForLastOperation:00000000 $t
/tmp/ccv5crZT.s:1135 .text.FLASH_WaitForLastOperation:0000007c $d
/tmp/ccv5crZT.s:1140 .text.FLASH_SetErrorCode:00000000 $t
/tmp/ccv5crZT.s:1218 .text.FLASH_SetErrorCode:0000005c $d
UNDEFINED SYMBOLS
FLASH_PageErase
HAL_GetTick