Files

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