ARM GAS  /tmp/ccv5crZT.s 			page 1


   1              		.cpu cortex-m4
   2              		.arch armv7e-m
   3              		.fpu fpv4-sp-d16
   4              		.eabi_attribute 27, 1
   5              		.eabi_attribute 28, 1
   6              		.eabi_attribute 20, 1
   7              		.eabi_attribute 21, 1
   8              		.eabi_attribute 23, 3
   9              		.eabi_attribute 24, 1
  10              		.eabi_attribute 25, 1
  11              		.eabi_attribute 26, 1
  12              		.eabi_attribute 30, 6
  13              		.eabi_attribute 34, 1
  14              		.eabi_attribute 18, 4
  15              		.file	"stm32f3xx_hal_flash.c"
  16              		.text
  17              	.Ltext0:
  18              		.cfi_sections	.debug_frame
  19              		.file 1 "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c"
  20              		.global	pFlash
  21              		.section	.bss.pFlash,"aw",%nobits
  22              		.align	3
  25              	pFlash:
  26 0000 00000000 		.space	32
  26      00000000 
  26      00000000 
  26      00000000 
  26      00000000 
  27              		.section	.text.HAL_FLASH_Program,"ax",%progbits
  28              		.align	1
  29              		.global	HAL_FLASH_Program
  30              		.syntax unified
  31              		.thumb
  32              		.thumb_func
  34              	HAL_FLASH_Program:
  35              	.LFB130:
   1:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
   2:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   ******************************************************************************
   3:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @file    stm32f3xx_hal_flash.c
   4:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @author  MCD Application Team
   5:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @brief   FLASH HAL module driver.
   6:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *          This file provides firmware functions to manage the following 
   7:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *          functionalities of the internal FLASH memory:
   8:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *           + Program operations functions
   9:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *           + Memory Control functions 
  10:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *           + Peripheral State functions
  11:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *         
  12:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   @verbatim
  13:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   ==============================================================================
  14:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****                         ##### FLASH peripheral features #####
  15:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   ==============================================================================
  16:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   [..] The Flash memory interface manages CPU AHB I-Code and D-Code accesses 
  17:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****        to the Flash memory. It implements the erase and program Flash memory operations 
  18:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****        and the read and write protection mechanisms.
  19:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
  20:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   [..] The Flash memory interface accelerates code execution with a system of instruction
  21:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       prefetch. 
ARM GAS  /tmp/ccv5crZT.s 			page 2


  22:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
  23:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   [..] The FLASH main features are:
  24:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       (+) Flash memory read operations
  25:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       (+) Flash memory program/erase operations
  26:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       (+) Read / write protections
  27:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       (+) Prefetch on I-Code
  28:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       (+) Option Bytes programming
  29:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
  30:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
  31:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****                      ##### How to use this driver #####
  32:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   ==============================================================================
  33:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   [..]                             
  34:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       This driver provides functions and macros to configure and program the FLASH 
  35:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       memory of all STM32F3xx devices.
  36:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     
  37:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       (#) FLASH Memory I/O Programming functions: this group includes all needed
  38:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           functions to erase and program the main memory:
  39:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         (++) Lock and Unlock the FLASH interface
  40:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         (++) Erase function: Erase page, erase all pages
  41:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         (++) Program functions: half word, word and doubleword
  42:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       (#) FLASH Option Bytes Programming functions: this group includes all needed
  43:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           functions to manage the Option Bytes:
  44:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         (++) Lock and Unlock the Option Bytes
  45:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         (++) Set/Reset the write protection
  46:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         (++) Set the Read protection Level
  47:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         (++) Program the user Option Bytes
  48:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         (++) Launch the Option Bytes loader
  49:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         (++) Erase Option Bytes
  50:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         (++) Program the data Option Bytes
  51:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         (++) Get the Write protection.
  52:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         (++) Get the user option bytes.
  53:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     
  54:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       (#) Interrupts and flags management functions : this group 
  55:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           includes all needed functions to:
  56:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         (++) Handle FLASH interrupts
  57:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         (++) Wait for last FLASH operation according to its status
  58:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         (++) Get error flag status
  59:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
  60:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   [..] In addition to these function, this driver includes a set of macros allowing
  61:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****        to handle the following operations:
  62:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       
  63:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       (+) Set/Get the latency
  64:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       (+) Enable/Disable the prefetch buffer
  65:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       (+) Enable/Disable the half cycle access
  66:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       (+) Enable/Disable the FLASH interrupts
  67:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       (+) Monitor the FLASH flags status
  68:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           
  69:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   @endverbatim
  70:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   ******************************************************************************
  71:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @attention
  72:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *
  73:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * Copyright (c) 2016 STMicroelectronics.
  74:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * All rights reserved.
  75:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *
  76:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * This software is licensed under terms that can be found in the LICENSE file in
  77:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * the root directory of this software component.
  78:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * If no LICENSE file comes with this software, it is provided AS-IS.
ARM GAS  /tmp/ccv5crZT.s 			page 3


  79:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   ******************************************************************************
  80:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
  81:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
  82:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Includes ------------------------------------------------------------------*/
  83:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** #include "stm32f3xx_hal.h"
  84:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
  85:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @addtogroup STM32F3xx_HAL_Driver
  86:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @{
  87:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
  88:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
  89:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** #ifdef HAL_FLASH_MODULE_ENABLED
  90:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
  91:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH FLASH
  92:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @brief FLASH HAL module driver
  93:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @{
  94:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
  95:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
  96:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Private typedef -----------------------------------------------------------*/
  97:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Private define ------------------------------------------------------------*/
  98:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Private_Constants FLASH Private Constants
  99:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @{
 100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @}
 103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Private macro ---------------------------- ---------------------------------*/
 106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Private_Macros FLASH Private Macros
 107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @{
 108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****  
 110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @}
 112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Private variables ---------------------------------------------------------*/
 115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Private_Variables FLASH Private Variables
 116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @{
 117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Variables used for Erase pages under interruption*/
 119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** FLASH_ProcessTypeDef pFlash;
 120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @}
 122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Private function prototypes -----------------------------------------------*/
 125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Private_Functions FLASH Private Functions
 126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @{
 127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** static  void   FLASH_Program_HalfWord(uint32_t Address, uint16_t Data);
 129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** static  void   FLASH_SetErrorCode(void);
 130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** extern void    FLASH_PageErase(uint32_t PageAddress);
 131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @}
 133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /* Exported functions ---------------------------------------------------------*/
ARM GAS  /tmp/ccv5crZT.s 			page 4


 136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions FLASH Exported Functions
 137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @{
 138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   
 140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group1 Programming operation functions 
 141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *  @brief   Programming operation functions 
 142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *
 143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @verbatim   
 144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @endverbatim
 145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @{
 146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @brief  Program halfword, word or double word at a specified address
 150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @note   The function HAL_FLASH_Unlock() should be called before to unlock the FLASH interface
 151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *         The function HAL_FLASH_Lock() should be called after to lock the FLASH interface
 152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *
 153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @note   If an erase and a program operations are requested simultaneously,    
 154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *         the erase operation is performed before the program one.
 155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *  
 156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @note   FLASH should be previously erased before new programming (only exception to this 
 157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *         is when 0x0000 is programmed)
 158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *
 159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @param  TypeProgram   Indicate the way to program at a specified address.
 160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *                       This parameter can be a value of @ref FLASH_Type_Program
 161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @param  Address       Specifie the address to be programmed.
 162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @param  Data          Specifie the data to be programmed
 163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * 
 164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @retval HAL_StatusTypeDef HAL Status
 165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
 167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
  36              		.loc 1 167 1
  37              		.cfi_startproc
  38              		@ args = 0, pretend = 0, frame = 24
  39              		@ frame_needed = 1, uses_anonymous_args = 0
  40 0000 F0B5     		push	{r4, r5, r6, r7, lr}
  41              		.cfi_def_cfa_offset 20
  42              		.cfi_offset 4, -20
  43              		.cfi_offset 5, -16
  44              		.cfi_offset 6, -12
  45              		.cfi_offset 7, -8
  46              		.cfi_offset 14, -4
  47 0002 87B0     		sub	sp, sp, #28
  48              		.cfi_def_cfa_offset 48
  49 0004 00AF     		add	r7, sp, #0
  50              		.cfi_def_cfa_register 7
  51 0006 F860     		str	r0, [r7, #12]
  52 0008 B960     		str	r1, [r7, #8]
  53 000a C7E90023 		strd	r2, [r7]
 168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_ERROR;
  54              		.loc 1 168 21
  55 000e 0123     		movs	r3, #1
  56 0010 FB75     		strb	r3, [r7, #23]
 169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   uint8_t index = 0U;
  57              		.loc 1 169 11
  58 0012 0023     		movs	r3, #0
ARM GAS  /tmp/ccv5crZT.s 			page 5


  59 0014 BB75     		strb	r3, [r7, #22]
 170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   uint8_t nbiterations = 0U;
  60              		.loc 1 170 11
  61 0016 0023     		movs	r3, #0
  62 0018 7B75     		strb	r3, [r7, #21]
 171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   
 172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* Process Locked */
 173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   __HAL_LOCK(&pFlash);
  63              		.loc 1 173 3
  64 001a 2F4B     		ldr	r3, .L12
  65 001c 1B7E     		ldrb	r3, [r3, #24]	@ zero_extendqisi2
  66 001e 012B     		cmp	r3, #1
  67 0020 01D1     		bne	.L2
  68              		.loc 1 173 3 is_stmt 0 discriminator 1
  69 0022 0223     		movs	r3, #2
  70              		.loc 1 173 3
  71 0024 54E0     		b	.L3
  72              	.L2:
  73              		.loc 1 173 3 discriminator 2
  74 0026 2C4B     		ldr	r3, .L12
  75 0028 0122     		movs	r2, #1
  76 002a 1A76     		strb	r2, [r3, #24]
 174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* Check the parameters */
 176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram));
 177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   assert_param(IS_FLASH_PROGRAM_ADDRESS(Address));
 178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     /* Wait for last operation to be completed */
 180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
  77              		.loc 1 180 14 is_stmt 1
  78 002c 4CF25030 		movw	r0, #50000
  79 0030 FFF7FEFF 		bl	FLASH_WaitForLastOperation
  80 0034 0346     		mov	r3, r0
  81 0036 FB75     		strb	r3, [r7, #23]
 181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   
 182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   if(status == HAL_OK)
  82              		.loc 1 182 5
  83 0038 FB7D     		ldrb	r3, [r7, #23]	@ zero_extendqisi2
  84 003a 002B     		cmp	r3, #0
  85 003c 44D1     		bne	.L4
 183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   {
 184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     if(TypeProgram == FLASH_TYPEPROGRAM_HALFWORD)
  86              		.loc 1 184 7
  87 003e FB68     		ldr	r3, [r7, #12]
  88 0040 012B     		cmp	r3, #1
  89 0042 02D1     		bne	.L5
 185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     {
 186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       /* Program halfword (16-bit) at a specified address. */
 187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       nbiterations = 1U;
  90              		.loc 1 187 20
  91 0044 0123     		movs	r3, #1
  92 0046 7B75     		strb	r3, [r7, #21]
  93 0048 07E0     		b	.L6
  94              	.L5:
 188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     }
 189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     else if(TypeProgram == FLASH_TYPEPROGRAM_WORD)
  95              		.loc 1 189 12
ARM GAS  /tmp/ccv5crZT.s 			page 6


  96 004a FB68     		ldr	r3, [r7, #12]
  97 004c 022B     		cmp	r3, #2
  98 004e 02D1     		bne	.L7
 190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     {
 191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       /* Program word (32-bit = 2*16-bit) at a specified address. */
 192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       nbiterations = 2U;
  99              		.loc 1 192 20
 100 0050 0223     		movs	r3, #2
 101 0052 7B75     		strb	r3, [r7, #21]
 102 0054 01E0     		b	.L6
 103              	.L7:
 193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     }
 194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     else
 195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     {
 196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       /* Program double word (64-bit = 4*16-bit) at a specified address. */
 197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       nbiterations = 4U;
 104              		.loc 1 197 20
 105 0056 0423     		movs	r3, #4
 106 0058 7B75     		strb	r3, [r7, #21]
 107              	.L6:
 198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     }
 199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     for (index = 0U; index < nbiterations; index++)
 108              		.loc 1 200 16
 109 005a 0023     		movs	r3, #0
 110 005c BB75     		strb	r3, [r7, #22]
 111              		.loc 1 200 5
 112 005e 2DE0     		b	.L8
 113              	.L10:
 201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     {
 202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       FLASH_Program_HalfWord((Address + (2U*index)), (uint16_t)(Data >> (16U*index)));
 114              		.loc 1 202 44
 115 0060 BB7D     		ldrb	r3, [r7, #22]	@ zero_extendqisi2
 116 0062 5A00     		lsls	r2, r3, #1
 117              		.loc 1 202 7
 118 0064 BB68     		ldr	r3, [r7, #8]
 119 0066 02EB030C 		add	ip, r2, r3
 120              		.loc 1 202 77
 121 006a BB7D     		ldrb	r3, [r7, #22]	@ zero_extendqisi2
 122 006c 1901     		lsls	r1, r3, #4
 123              		.loc 1 202 70
 124 006e D7E90023 		ldrd	r2, [r7]
 125 0072 C1F12006 		rsb	r6, r1, #32
 126 0076 A1F12000 		sub	r0, r1, #32
 127 007a 22FA01F4 		lsr	r4, r2, r1
 128 007e 03FA06F6 		lsl	r6, r3, r6
 129 0082 3443     		orrs	r4, r4, r6
 130 0084 23FA00F0 		lsr	r0, r3, r0
 131 0088 0443     		orrs	r4, r4, r0
 132 008a 23FA01F5 		lsr	r5, r3, r1
 133              		.loc 1 202 7
 134 008e A3B2     		uxth	r3, r4
 135 0090 1946     		mov	r1, r3
 136 0092 6046     		mov	r0, ip
 137 0094 FFF7FEFF 		bl	FLASH_Program_HalfWord
 203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         /* Wait for last operation to be completed */
ARM GAS  /tmp/ccv5crZT.s 			page 7


 205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
 138              		.loc 1 205 18
 139 0098 4CF25030 		movw	r0, #50000
 140 009c FFF7FEFF 		bl	FLASH_WaitForLastOperation
 141 00a0 0346     		mov	r3, r0
 142 00a2 FB75     		strb	r3, [r7, #23]
 206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     
 207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         /* If the program operation is completed, disable the PG Bit */
 208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         CLEAR_BIT(FLASH->CR, FLASH_CR_PG);
 143              		.loc 1 208 9
 144 00a4 0D4B     		ldr	r3, .L12+4
 145 00a6 1B69     		ldr	r3, [r3, #16]
 146 00a8 0C4A     		ldr	r2, .L12+4
 147 00aa 23F00103 		bic	r3, r3, #1
 148 00ae 1361     		str	r3, [r2, #16]
 209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       /* In case of error, stop programming procedure */
 210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       if (status != HAL_OK)
 149              		.loc 1 210 10
 150 00b0 FB7D     		ldrb	r3, [r7, #23]	@ zero_extendqisi2
 151 00b2 002B     		cmp	r3, #0
 152 00b4 07D1     		bne	.L11
 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     {
 153              		.loc 1 200 49 discriminator 2
 154 00b6 BB7D     		ldrb	r3, [r7, #22]	@ zero_extendqisi2
 155 00b8 0133     		adds	r3, r3, #1
 156 00ba BB75     		strb	r3, [r7, #22]
 157              	.L8:
 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     {
 158              		.loc 1 200 28 discriminator 1
 159 00bc BA7D     		ldrb	r2, [r7, #22]	@ zero_extendqisi2
 160 00be 7B7D     		ldrb	r3, [r7, #21]	@ zero_extendqisi2
 161 00c0 9A42     		cmp	r2, r3
 162 00c2 CDD3     		bcc	.L10
 163 00c4 00E0     		b	.L4
 164              	.L11:
 211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       {
 212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         break;
 165              		.loc 1 212 9
 166 00c6 00BF     		nop
 167              	.L4:
 213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       }
 214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     }
 215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   }
 216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* Process Unlocked */
 218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   __HAL_UNLOCK(&pFlash);
 168              		.loc 1 218 3
 169 00c8 034B     		ldr	r3, .L12
 170 00ca 0022     		movs	r2, #0
 171 00cc 1A76     		strb	r2, [r3, #24]
 219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   return status;
 172              		.loc 1 220 10
 173 00ce FB7D     		ldrb	r3, [r7, #23]	@ zero_extendqisi2
 174              	.L3:
 221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
 175              		.loc 1 221 1
ARM GAS  /tmp/ccv5crZT.s 			page 8


 176 00d0 1846     		mov	r0, r3
 177 00d2 1C37     		adds	r7, r7, #28
 178              		.cfi_def_cfa_offset 20
 179 00d4 BD46     		mov	sp, r7
 180              		.cfi_def_cfa_register 13
 181              		@ sp needed
 182 00d6 F0BD     		pop	{r4, r5, r6, r7, pc}
 183              	.L13:
 184              		.align	2
 185              	.L12:
 186 00d8 00000000 		.word	pFlash
 187 00dc 00200240 		.word	1073881088
 188              		.cfi_endproc
 189              	.LFE130:
 191              		.section	.text.HAL_FLASH_Program_IT,"ax",%progbits
 192              		.align	1
 193              		.global	HAL_FLASH_Program_IT
 194              		.syntax unified
 195              		.thumb
 196              		.thumb_func
 198              	HAL_FLASH_Program_IT:
 199              	.LFB131:
 222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @brief  Program halfword, word or double word at a specified address  with interrupt enabled.
 225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @note   The function HAL_FLASH_Unlock() should be called before to unlock the FLASH interface
 226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *         The function HAL_FLASH_Lock() should be called after to lock the FLASH interface
 227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *
 228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @note   If an erase and a program operations are requested simultaneously,    
 229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *         the erase operation is performed before the program one.
 230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *
 231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @param  TypeProgram  Indicate the way to program at a specified address.
 232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *                      This parameter can be a value of @ref FLASH_Type_Program
 233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @param  Address      Specifie the address to be programmed.
 234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @param  Data         Specifie the data to be programmed
 235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * 
 236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @retval HAL_StatusTypeDef HAL Status
 237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
 239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
 200              		.loc 1 239 1
 201              		.cfi_startproc
 202              		@ args = 0, pretend = 0, frame = 24
 203              		@ frame_needed = 1, uses_anonymous_args = 0
 204 0000 80B5     		push	{r7, lr}
 205              		.cfi_def_cfa_offset 8
 206              		.cfi_offset 7, -8
 207              		.cfi_offset 14, -4
 208 0002 86B0     		sub	sp, sp, #24
 209              		.cfi_def_cfa_offset 32
 210 0004 00AF     		add	r7, sp, #0
 211              		.cfi_def_cfa_register 7
 212 0006 F860     		str	r0, [r7, #12]
 213 0008 B960     		str	r1, [r7, #8]
 214 000a C7E90023 		strd	r2, [r7]
 240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_OK;
 215              		.loc 1 240 21
ARM GAS  /tmp/ccv5crZT.s 			page 9


 216 000e 0023     		movs	r3, #0
 217 0010 FB75     		strb	r3, [r7, #23]
 241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   
 242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* Process Locked */
 243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   __HAL_LOCK(&pFlash);
 218              		.loc 1 243 3
 219 0012 1D4B     		ldr	r3, .L20
 220 0014 1B7E     		ldrb	r3, [r3, #24]	@ zero_extendqisi2
 221 0016 012B     		cmp	r3, #1
 222 0018 01D1     		bne	.L15
 223              		.loc 1 243 3 is_stmt 0 discriminator 1
 224 001a 0223     		movs	r3, #2
 225              		.loc 1 243 3
 226 001c 30E0     		b	.L16
 227              	.L15:
 228              		.loc 1 243 3 discriminator 2
 229 001e 1A4B     		ldr	r3, .L20
 230 0020 0122     		movs	r2, #1
 231 0022 1A76     		strb	r2, [r3, #24]
 244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* Check the parameters */
 246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram));
 247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   assert_param(IS_FLASH_PROGRAM_ADDRESS(Address));
 248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* Enable End of FLASH Operation and Error source interrupts */
 250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP | FLASH_IT_ERR);
 232              		.loc 1 250 3 is_stmt 1
 233 0024 194B     		ldr	r3, .L20+4
 234 0026 1B69     		ldr	r3, [r3, #16]
 235 0028 184A     		ldr	r2, .L20+4
 236 002a 43F4A053 		orr	r3, r3, #5120
 237 002e 1361     		str	r3, [r2, #16]
 251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   
 252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   pFlash.Address = Address;
 238              		.loc 1 252 18
 239 0030 154A     		ldr	r2, .L20
 240 0032 BB68     		ldr	r3, [r7, #8]
 241 0034 9360     		str	r3, [r2, #8]
 253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   pFlash.Data = Data;
 242              		.loc 1 253 15
 243 0036 1449     		ldr	r1, .L20
 244 0038 D7E90023 		ldrd	r2, [r7]
 245 003c C1E90423 		strd	r2, [r1, #16]
 254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   if(TypeProgram == FLASH_TYPEPROGRAM_HALFWORD)
 246              		.loc 1 255 5
 247 0040 FB68     		ldr	r3, [r7, #12]
 248 0042 012B     		cmp	r3, #1
 249 0044 06D1     		bne	.L17
 256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   {
 257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAMHALFWORD;
 250              		.loc 1 257 29
 251 0046 104B     		ldr	r3, .L20
 252 0048 0322     		movs	r2, #3
 253 004a 1A70     		strb	r2, [r3]
 258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     /* Program halfword (16-bit) at a specified address. */
 259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     pFlash.DataRemaining = 1U;
ARM GAS  /tmp/ccv5crZT.s 			page 10


 254              		.loc 1 259 26
 255 004c 0E4B     		ldr	r3, .L20
 256 004e 0122     		movs	r2, #1
 257 0050 5A60     		str	r2, [r3, #4]
 258 0052 0FE0     		b	.L18
 259              	.L17:
 260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   }
 261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   else if(TypeProgram == FLASH_TYPEPROGRAM_WORD)
 260              		.loc 1 261 10
 261 0054 FB68     		ldr	r3, [r7, #12]
 262 0056 022B     		cmp	r3, #2
 263 0058 06D1     		bne	.L19
 262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   {
 263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAMWORD;
 264              		.loc 1 263 29
 265 005a 0B4B     		ldr	r3, .L20
 266 005c 0422     		movs	r2, #4
 267 005e 1A70     		strb	r2, [r3]
 264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     /* Program word (32-bit : 2*16-bit) at a specified address. */
 265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     pFlash.DataRemaining = 2U;
 268              		.loc 1 265 26
 269 0060 094B     		ldr	r3, .L20
 270 0062 0222     		movs	r2, #2
 271 0064 5A60     		str	r2, [r3, #4]
 272 0066 05E0     		b	.L18
 273              	.L19:
 266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   }
 267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   else
 268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   {
 269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAMDOUBLEWORD;
 274              		.loc 1 269 29
 275 0068 074B     		ldr	r3, .L20
 276 006a 0522     		movs	r2, #5
 277 006c 1A70     		strb	r2, [r3]
 270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     /* Program double word (64-bit : 4*16-bit) at a specified address. */
 271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     pFlash.DataRemaining = 4U;
 278              		.loc 1 271 26
 279 006e 064B     		ldr	r3, .L20
 280 0070 0422     		movs	r2, #4
 281 0072 5A60     		str	r2, [r3, #4]
 282              	.L18:
 272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   }
 273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* Program halfword (16-bit) at a specified address. */
 275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   FLASH_Program_HalfWord(Address, (uint16_t)Data);
 283              		.loc 1 275 3
 284 0074 3B88     		ldrh	r3, [r7]
 285 0076 1946     		mov	r1, r3
 286 0078 B868     		ldr	r0, [r7, #8]
 287 007a FFF7FEFF 		bl	FLASH_Program_HalfWord
 276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   return status;
 288              		.loc 1 277 10
 289 007e FB7D     		ldrb	r3, [r7, #23]	@ zero_extendqisi2
 290              	.L16:
 278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
 291              		.loc 1 278 1
ARM GAS  /tmp/ccv5crZT.s 			page 11


 292 0080 1846     		mov	r0, r3
 293 0082 1837     		adds	r7, r7, #24
 294              		.cfi_def_cfa_offset 8
 295 0084 BD46     		mov	sp, r7
 296              		.cfi_def_cfa_register 13
 297              		@ sp needed
 298 0086 80BD     		pop	{r7, pc}
 299              	.L21:
 300              		.align	2
 301              	.L20:
 302 0088 00000000 		.word	pFlash
 303 008c 00200240 		.word	1073881088
 304              		.cfi_endproc
 305              	.LFE131:
 307              		.section	.text.HAL_FLASH_IRQHandler,"ax",%progbits
 308              		.align	1
 309              		.global	HAL_FLASH_IRQHandler
 310              		.syntax unified
 311              		.thumb
 312              		.thumb_func
 314              	HAL_FLASH_IRQHandler:
 315              	.LFB132:
 279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @brief This function handles FLASH interrupt request.
 282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @retval None
 283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** void HAL_FLASH_IRQHandler(void)
 285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
 316              		.loc 1 285 1
 317              		.cfi_startproc
 318              		@ args = 0, pretend = 0, frame = 8
 319              		@ frame_needed = 1, uses_anonymous_args = 0
 320 0000 80B5     		push	{r7, lr}
 321              		.cfi_def_cfa_offset 8
 322              		.cfi_offset 7, -8
 323              		.cfi_offset 14, -4
 324 0002 82B0     		sub	sp, sp, #8
 325              		.cfi_def_cfa_offset 16
 326 0004 00AF     		add	r7, sp, #0
 327              		.cfi_def_cfa_register 7
 286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   uint32_t addresstmp = 0U;
 328              		.loc 1 286 12
 329 0006 0023     		movs	r3, #0
 330 0008 7B60     		str	r3, [r7, #4]
 287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   
 288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* Check FLASH operation error flags */
 289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) ||__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR))
 331              		.loc 1 289 6
 332 000a 6D4B     		ldr	r3, .L35
 333 000c DB68     		ldr	r3, [r3, #12]
 334 000e 03F01003 		and	r3, r3, #16
 335              		.loc 1 289 5
 336 0012 102B     		cmp	r3, #16
 337 0014 05D0     		beq	.L23
 338              		.loc 1 289 48 discriminator 1
 339 0016 6A4B     		ldr	r3, .L35
ARM GAS  /tmp/ccv5crZT.s 			page 12


 340 0018 DB68     		ldr	r3, [r3, #12]
 341 001a 03F00403 		and	r3, r3, #4
 342              		.loc 1 289 46 discriminator 1
 343 001e 042B     		cmp	r3, #4
 344 0020 0ED1     		bne	.L24
 345              	.L23:
 290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   {
 291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     /* Return the faulty address */
 292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     addresstmp = pFlash.Address;
 346              		.loc 1 292 16
 347 0022 684B     		ldr	r3, .L35+4
 348 0024 9B68     		ldr	r3, [r3, #8]
 349 0026 7B60     		str	r3, [r7, #4]
 293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     /* Reset address */
 294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     pFlash.Address = 0xFFFFFFFFU;
 350              		.loc 1 294 20
 351 0028 664B     		ldr	r3, .L35+4
 352 002a 4FF0FF32 		mov	r2, #-1
 353 002e 9A60     		str	r2, [r3, #8]
 295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   
 296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     /* Save the Error code */
 297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     FLASH_SetErrorCode();
 354              		.loc 1 297 5
 355 0030 FFF7FEFF 		bl	FLASH_SetErrorCode
 298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     
 299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     /* FLASH error interrupt user callback */
 300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     HAL_FLASH_OperationErrorCallback(addresstmp);
 356              		.loc 1 300 5
 357 0034 7868     		ldr	r0, [r7, #4]
 358 0036 FFF7FEFF 		bl	HAL_FLASH_OperationErrorCallback
 301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     /* Stop the procedure ongoing */
 303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
 359              		.loc 1 303 29
 360 003a 624B     		ldr	r3, .L35+4
 361 003c 0022     		movs	r2, #0
 362 003e 1A70     		strb	r2, [r3]
 363              	.L24:
 304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   }
 305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* Check FLASH End of Operation flag  */
 307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP))
 364              		.loc 1 307 6
 365 0040 5F4B     		ldr	r3, .L35
 366 0042 DB68     		ldr	r3, [r3, #12]
 367 0044 03F02003 		and	r3, r3, #32
 368              		.loc 1 307 5
 369 0048 202B     		cmp	r3, #32
 370 004a 40F0A080 		bne	.L25
 308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   {
 309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     /* Clear FLASH End of Operation pending bit */
 310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
 371              		.loc 1 310 5
 372 004e 5C4B     		ldr	r3, .L35
 373 0050 2022     		movs	r2, #32
 374 0052 DA60     		str	r2, [r3, #12]
 311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     
ARM GAS  /tmp/ccv5crZT.s 			page 13


 312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     /* Process can continue only if no error detected */
 313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     if(pFlash.ProcedureOnGoing != FLASH_PROC_NONE)
 375              		.loc 1 313 14
 376 0054 5B4B     		ldr	r3, .L35+4
 377 0056 1B78     		ldrb	r3, [r3]
 378 0058 DBB2     		uxtb	r3, r3
 379              		.loc 1 313 7
 380 005a 002B     		cmp	r3, #0
 381 005c 00F09780 		beq	.L25
 314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     {
 315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       if(pFlash.ProcedureOnGoing == FLASH_PROC_PAGEERASE)
 382              		.loc 1 315 16
 383 0060 584B     		ldr	r3, .L35+4
 384 0062 1B78     		ldrb	r3, [r3]
 385 0064 DBB2     		uxtb	r3, r3
 386              		.loc 1 315 9
 387 0066 012B     		cmp	r3, #1
 388 0068 2DD1     		bne	.L26
 316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       {
 317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         /* Nb of pages to erased can be decreased */
 318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         pFlash.DataRemaining--;
 389              		.loc 1 318 15
 390 006a 564B     		ldr	r3, .L35+4
 391 006c 5B68     		ldr	r3, [r3, #4]
 392              		.loc 1 318 29
 393 006e 013B     		subs	r3, r3, #1
 394 0070 544A     		ldr	r2, .L35+4
 395 0072 5360     		str	r3, [r2, #4]
 319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         /* Check if there are still pages to erase */
 321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         if(pFlash.DataRemaining != 0U)
 396              		.loc 1 321 18
 397 0074 534B     		ldr	r3, .L35+4
 398 0076 5B68     		ldr	r3, [r3, #4]
 399              		.loc 1 321 11
 400 0078 002B     		cmp	r3, #0
 401 007a 17D0     		beq	.L27
 322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         {
 323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           addresstmp = pFlash.Address;
 402              		.loc 1 323 22
 403 007c 514B     		ldr	r3, .L35+4
 404 007e 9B68     		ldr	r3, [r3, #8]
 405 0080 7B60     		str	r3, [r7, #4]
 324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           /*Indicate user which sector has been erased */
 325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           HAL_FLASH_EndOfOperationCallback(addresstmp);
 406              		.loc 1 325 11
 407 0082 7868     		ldr	r0, [r7, #4]
 408 0084 FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           /*Increment sector number*/
 328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           addresstmp = pFlash.Address + FLASH_PAGE_SIZE;
 409              		.loc 1 328 30
 410 0088 4E4B     		ldr	r3, .L35+4
 411 008a 9B68     		ldr	r3, [r3, #8]
 412              		.loc 1 328 22
 413 008c 03F50063 		add	r3, r3, #2048
 414 0090 7B60     		str	r3, [r7, #4]
ARM GAS  /tmp/ccv5crZT.s 			page 14


 329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           pFlash.Address = addresstmp;
 415              		.loc 1 329 26
 416 0092 4C4A     		ldr	r2, .L35+4
 417 0094 7B68     		ldr	r3, [r7, #4]
 418 0096 9360     		str	r3, [r2, #8]
 330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           /* If the erase operation is completed, disable the PER Bit */
 332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           CLEAR_BIT(FLASH->CR, FLASH_CR_PER);
 419              		.loc 1 332 11
 420 0098 494B     		ldr	r3, .L35
 421 009a 1B69     		ldr	r3, [r3, #16]
 422 009c 484A     		ldr	r2, .L35
 423 009e 23F00203 		bic	r3, r3, #2
 424 00a2 1361     		str	r3, [r2, #16]
 333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           FLASH_PageErase(addresstmp);
 425              		.loc 1 334 11
 426 00a4 7868     		ldr	r0, [r7, #4]
 427 00a6 FFF7FEFF 		bl	FLASH_PageErase
 428 00aa 70E0     		b	.L25
 429              	.L27:
 335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         }
 336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         else
 337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         {
 338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           /* No more pages to Erase, user callback can be called. */
 339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           /* Reset Sector and stop Erase pages procedure */
 340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           pFlash.Address = addresstmp = 0xFFFFFFFFU;
 430              		.loc 1 340 39
 431 00ac 4FF0FF33 		mov	r3, #-1
 432 00b0 7B60     		str	r3, [r7, #4]
 433              		.loc 1 340 26
 434 00b2 444A     		ldr	r2, .L35+4
 435 00b4 7B68     		ldr	r3, [r7, #4]
 436 00b6 9360     		str	r3, [r2, #8]
 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
 437              		.loc 1 341 35
 438 00b8 424B     		ldr	r3, .L35+4
 439 00ba 0022     		movs	r2, #0
 440 00bc 1A70     		strb	r2, [r3]
 342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           /* FLASH EOP interrupt user callback */
 343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           HAL_FLASH_EndOfOperationCallback(addresstmp);
 441              		.loc 1 343 11
 442 00be 7868     		ldr	r0, [r7, #4]
 443 00c0 FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 444 00c4 63E0     		b	.L25
 445              	.L26:
 344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         }
 345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       }
 346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       else if(pFlash.ProcedureOnGoing == FLASH_PROC_MASSERASE)
 446              		.loc 1 346 21
 447 00c6 3F4B     		ldr	r3, .L35+4
 448 00c8 1B78     		ldrb	r3, [r3]
 449 00ca DBB2     		uxtb	r3, r3
 450              		.loc 1 346 14
 451 00cc 022B     		cmp	r3, #2
 452 00ce 0CD1     		bne	.L28
 347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       {
ARM GAS  /tmp/ccv5crZT.s 			page 15


 348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         /* Operation is completed, disable the MER Bit */
 349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         CLEAR_BIT(FLASH->CR, FLASH_CR_MER);
 453              		.loc 1 349 9
 454 00d0 3B4B     		ldr	r3, .L35
 455 00d2 1B69     		ldr	r3, [r3, #16]
 456 00d4 3A4A     		ldr	r2, .L35
 457 00d6 23F00403 		bic	r3, r3, #4
 458 00da 1361     		str	r3, [r2, #16]
 350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           /* MassErase ended. Return the selected bank */
 352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           /* FLASH EOP interrupt user callback */
 353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           HAL_FLASH_EndOfOperationCallback(0U);
 459              		.loc 1 353 11
 460 00dc 0020     		movs	r0, #0
 461 00de FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           /* Stop Mass Erase procedure*/
 356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
 462              		.loc 1 356 35
 463 00e2 384B     		ldr	r3, .L35+4
 464 00e4 0022     		movs	r2, #0
 465 00e6 1A70     		strb	r2, [r3]
 466 00e8 51E0     		b	.L25
 467              	.L28:
 357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         }
 358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       else
 359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       {
 360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         /* Nb of 16-bit data to program can be decreased */
 361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         pFlash.DataRemaining--;
 468              		.loc 1 361 15
 469 00ea 364B     		ldr	r3, .L35+4
 470 00ec 5B68     		ldr	r3, [r3, #4]
 471              		.loc 1 361 29
 472 00ee 013B     		subs	r3, r3, #1
 473 00f0 344A     		ldr	r2, .L35+4
 474 00f2 5360     		str	r3, [r2, #4]
 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         
 363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         /* Check if there are still 16-bit data to program */
 364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         if(pFlash.DataRemaining != 0U)
 475              		.loc 1 364 18
 476 00f4 334B     		ldr	r3, .L35+4
 477 00f6 5B68     		ldr	r3, [r3, #4]
 478              		.loc 1 364 11
 479 00f8 002B     		cmp	r3, #0
 480 00fa 24D0     		beq	.L29
 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         {
 366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           /* Increment address to 16-bit */
 367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           pFlash.Address += 2U;
 481              		.loc 1 367 17
 482 00fc 314B     		ldr	r3, .L35+4
 483 00fe 9B68     		ldr	r3, [r3, #8]
 484              		.loc 1 367 26
 485 0100 0233     		adds	r3, r3, #2
 486 0102 304A     		ldr	r2, .L35+4
 487 0104 9360     		str	r3, [r2, #8]
 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           addresstmp = pFlash.Address;
 488              		.loc 1 368 22
ARM GAS  /tmp/ccv5crZT.s 			page 16


 489 0106 2F4B     		ldr	r3, .L35+4
 490 0108 9B68     		ldr	r3, [r3, #8]
 491 010a 7B60     		str	r3, [r7, #4]
 369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           
 370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           /* Shift to have next 16-bit data */
 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           pFlash.Data = (pFlash.Data >> 16U);
 492              		.loc 1 371 32
 493 010c 2D4B     		ldr	r3, .L35+4
 494 010e D3E90401 		ldrd	r0, [r3, #16]
 495              		.loc 1 371 38
 496 0112 4FF00002 		mov	r2, #0
 497 0116 4FF00003 		mov	r3, #0
 498 011a 020C     		lsrs	r2, r0, #16
 499 011c 42EA0142 		orr	r2, r2, r1, lsl #16
 500 0120 0B0C     		lsrs	r3, r1, #16
 501              		.loc 1 371 23
 502 0122 2849     		ldr	r1, .L35+4
 503 0124 C1E90423 		strd	r2, [r1, #16]
 372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           
 373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           /* Operation is completed, disable the PG Bit */
 374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           CLEAR_BIT(FLASH->CR, FLASH_CR_PG);
 504              		.loc 1 374 11
 505 0128 254B     		ldr	r3, .L35
 506 012a 1B69     		ldr	r3, [r3, #16]
 507 012c 244A     		ldr	r2, .L35
 508 012e 23F00103 		bic	r3, r3, #1
 509 0132 1361     		str	r3, [r2, #16]
 375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           /*Program halfword (16-bit) at a specified address.*/
 377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           FLASH_Program_HalfWord(addresstmp, (uint16_t)pFlash.Data);
 510              		.loc 1 377 62
 511 0134 234B     		ldr	r3, .L35+4
 512 0136 D3E90423 		ldrd	r2, [r3, #16]
 513              		.loc 1 377 11
 514 013a 93B2     		uxth	r3, r2
 515 013c 1946     		mov	r1, r3
 516 013e 7868     		ldr	r0, [r7, #4]
 517 0140 FFF7FEFF 		bl	FLASH_Program_HalfWord
 518 0144 23E0     		b	.L25
 519              	.L29:
 378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         }
 379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         else
 380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         {
 381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           /* Program ended. Return the selected address */
 382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           /* FLASH EOP interrupt user callback */
 383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           if (pFlash.ProcedureOnGoing == FLASH_PROC_PROGRAMHALFWORD)
 520              		.loc 1 383 21
 521 0146 1F4B     		ldr	r3, .L35+4
 522 0148 1B78     		ldrb	r3, [r3]
 523 014a DBB2     		uxtb	r3, r3
 524              		.loc 1 383 14
 525 014c 032B     		cmp	r3, #3
 526 014e 05D1     		bne	.L30
 384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           {
 385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****             HAL_FLASH_EndOfOperationCallback(pFlash.Address);
 527              		.loc 1 385 52
 528 0150 1C4B     		ldr	r3, .L35+4
ARM GAS  /tmp/ccv5crZT.s 			page 17


 529 0152 9B68     		ldr	r3, [r3, #8]
 530              		.loc 1 385 13
 531 0154 1846     		mov	r0, r3
 532 0156 FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 533 015a 11E0     		b	.L31
 534              	.L30:
 386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           }
 387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           else if (pFlash.ProcedureOnGoing == FLASH_PROC_PROGRAMWORD)
 535              		.loc 1 387 26
 536 015c 194B     		ldr	r3, .L35+4
 537 015e 1B78     		ldrb	r3, [r3]
 538 0160 DBB2     		uxtb	r3, r3
 539              		.loc 1 387 19
 540 0162 042B     		cmp	r3, #4
 541 0164 06D1     		bne	.L32
 388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           {
 389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****             HAL_FLASH_EndOfOperationCallback(pFlash.Address - 2U);
 542              		.loc 1 389 52
 543 0166 174B     		ldr	r3, .L35+4
 544 0168 9B68     		ldr	r3, [r3, #8]
 545              		.loc 1 389 13
 546 016a 023B     		subs	r3, r3, #2
 547 016c 1846     		mov	r0, r3
 548 016e FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 549 0172 05E0     		b	.L31
 550              	.L32:
 390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           }
 391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           else 
 392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           {
 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****             HAL_FLASH_EndOfOperationCallback(pFlash.Address - 6U);
 551              		.loc 1 393 52
 552 0174 134B     		ldr	r3, .L35+4
 553 0176 9B68     		ldr	r3, [r3, #8]
 554              		.loc 1 393 13
 555 0178 063B     		subs	r3, r3, #6
 556 017a 1846     		mov	r0, r3
 557 017c FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 558              	.L31:
 394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           }
 395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         
 396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           /* Reset Address and stop Program procedure */
 397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           pFlash.Address = 0xFFFFFFFFU;
 559              		.loc 1 397 26
 560 0180 104B     		ldr	r3, .L35+4
 561 0182 4FF0FF32 		mov	r2, #-1
 562 0186 9A60     		str	r2, [r3, #8]
 398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****           pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
 563              		.loc 1 398 35
 564 0188 0E4B     		ldr	r3, .L35+4
 565 018a 0022     		movs	r2, #0
 566 018c 1A70     		strb	r2, [r3]
 567              	.L25:
 399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         }
 400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       }
 401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     }
 402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   }
 403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   
ARM GAS  /tmp/ccv5crZT.s 			page 18


 404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   if(pFlash.ProcedureOnGoing == FLASH_PROC_NONE)
 568              		.loc 1 405 12
 569 018e 0D4B     		ldr	r3, .L35+4
 570 0190 1B78     		ldrb	r3, [r3]
 571 0192 DBB2     		uxtb	r3, r3
 572              		.loc 1 405 5
 573 0194 002B     		cmp	r3, #0
 574 0196 0ED1     		bne	.L34
 406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   {
 407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     /* Operation is completed, disable the PG, PER and MER Bits */
 408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     CLEAR_BIT(FLASH->CR, (FLASH_CR_PG | FLASH_CR_PER | FLASH_CR_MER));
 575              		.loc 1 408 5
 576 0198 094B     		ldr	r3, .L35
 577 019a 1B69     		ldr	r3, [r3, #16]
 578 019c 084A     		ldr	r2, .L35
 579 019e 23F00703 		bic	r3, r3, #7
 580 01a2 1361     		str	r3, [r2, #16]
 409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     /* Disable End of FLASH Operation and Error source interrupts */
 411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     __HAL_FLASH_DISABLE_IT(FLASH_IT_EOP | FLASH_IT_ERR);
 581              		.loc 1 411 5
 582 01a4 064B     		ldr	r3, .L35
 583 01a6 1B69     		ldr	r3, [r3, #16]
 584 01a8 054A     		ldr	r2, .L35
 585 01aa 23F4A053 		bic	r3, r3, #5120
 586 01ae 1361     		str	r3, [r2, #16]
 412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     /* Process Unlocked */
 414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     __HAL_UNLOCK(&pFlash);
 587              		.loc 1 414 5
 588 01b0 044B     		ldr	r3, .L35+4
 589 01b2 0022     		movs	r2, #0
 590 01b4 1A76     		strb	r2, [r3, #24]
 591              	.L34:
 415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   }
 416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
 592              		.loc 1 416 1
 593 01b6 00BF     		nop
 594 01b8 0837     		adds	r7, r7, #8
 595              		.cfi_def_cfa_offset 8
 596 01ba BD46     		mov	sp, r7
 597              		.cfi_def_cfa_register 13
 598              		@ sp needed
 599 01bc 80BD     		pop	{r7, pc}
 600              	.L36:
 601 01be 00BF     		.align	2
 602              	.L35:
 603 01c0 00200240 		.word	1073881088
 604 01c4 00000000 		.word	pFlash
 605              		.cfi_endproc
 606              	.LFE132:
 608              		.section	.text.HAL_FLASH_EndOfOperationCallback,"ax",%progbits
 609              		.align	1
 610              		.weak	HAL_FLASH_EndOfOperationCallback
 611              		.syntax unified
 612              		.thumb
ARM GAS  /tmp/ccv5crZT.s 			page 19


 613              		.thumb_func
 615              	HAL_FLASH_EndOfOperationCallback:
 616              	.LFB133:
 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @brief  FLASH end of operation interrupt callback
 420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @param  ReturnValue The value saved in this parameter depends on the ongoing procedure
 421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *                 - Mass Erase: No return value expected
 422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *                 - Pages Erase: Address of the page which has been erased 
 423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *                    (if 0xFFFFFFFF, it means that all the selected pages have been erased)
 424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *                 - Program: Address which was selected for data program
 425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @retval none
 426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __weak void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue)
 428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
 617              		.loc 1 428 1
 618              		.cfi_startproc
 619              		@ args = 0, pretend = 0, frame = 8
 620              		@ frame_needed = 1, uses_anonymous_args = 0
 621              		@ link register save eliminated.
 622 0000 80B4     		push	{r7}
 623              		.cfi_def_cfa_offset 4
 624              		.cfi_offset 7, -4
 625 0002 83B0     		sub	sp, sp, #12
 626              		.cfi_def_cfa_offset 16
 627 0004 00AF     		add	r7, sp, #0
 628              		.cfi_def_cfa_register 7
 629 0006 7860     		str	r0, [r7, #4]
 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* Prevent unused argument(s) compilation warning */
 430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   UNUSED(ReturnValue);
 431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* NOTE : This function Should not be modified, when the callback is needed,
 433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****             the HAL_FLASH_EndOfOperationCallback could be implemented in the user file
 434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****    */ 
 435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
 630              		.loc 1 435 1
 631 0008 00BF     		nop
 632 000a 0C37     		adds	r7, r7, #12
 633              		.cfi_def_cfa_offset 4
 634 000c BD46     		mov	sp, r7
 635              		.cfi_def_cfa_register 13
 636              		@ sp needed
 637 000e 5DF8047B 		ldr	r7, [sp], #4
 638              		.cfi_restore 7
 639              		.cfi_def_cfa_offset 0
 640 0012 7047     		bx	lr
 641              		.cfi_endproc
 642              	.LFE133:
 644              		.section	.text.HAL_FLASH_OperationErrorCallback,"ax",%progbits
 645              		.align	1
 646              		.weak	HAL_FLASH_OperationErrorCallback
 647              		.syntax unified
 648              		.thumb
 649              		.thumb_func
 651              	HAL_FLASH_OperationErrorCallback:
 652              	.LFB134:
 436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
ARM GAS  /tmp/ccv5crZT.s 			page 20


 437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @brief  FLASH operation error interrupt callback
 439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @param  ReturnValue The value saved in this parameter depends on the ongoing procedure
 440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *                 - Mass Erase: No return value expected
 441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *                 - Pages Erase: Address of the page which returned an error
 442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *                 - Program: Address which was selected for data program
 443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @retval none
 444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** __weak void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue)
 446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
 653              		.loc 1 446 1
 654              		.cfi_startproc
 655              		@ args = 0, pretend = 0, frame = 8
 656              		@ frame_needed = 1, uses_anonymous_args = 0
 657              		@ link register save eliminated.
 658 0000 80B4     		push	{r7}
 659              		.cfi_def_cfa_offset 4
 660              		.cfi_offset 7, -4
 661 0002 83B0     		sub	sp, sp, #12
 662              		.cfi_def_cfa_offset 16
 663 0004 00AF     		add	r7, sp, #0
 664              		.cfi_def_cfa_register 7
 665 0006 7860     		str	r0, [r7, #4]
 447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* Prevent unused argument(s) compilation warning */
 448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   UNUSED(ReturnValue);
 449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* NOTE : This function Should not be modified, when the callback is needed,
 451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****             the HAL_FLASH_OperationErrorCallback could be implemented in the user file
 452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****    */ 
 453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
 666              		.loc 1 453 1
 667 0008 00BF     		nop
 668 000a 0C37     		adds	r7, r7, #12
 669              		.cfi_def_cfa_offset 4
 670 000c BD46     		mov	sp, r7
 671              		.cfi_def_cfa_register 13
 672              		@ sp needed
 673 000e 5DF8047B 		ldr	r7, [sp], #4
 674              		.cfi_restore 7
 675              		.cfi_def_cfa_offset 0
 676 0012 7047     		bx	lr
 677              		.cfi_endproc
 678              	.LFE134:
 680              		.section	.text.HAL_FLASH_Unlock,"ax",%progbits
 681              		.align	1
 682              		.global	HAL_FLASH_Unlock
 683              		.syntax unified
 684              		.thumb
 685              		.thumb_func
 687              	HAL_FLASH_Unlock:
 688              	.LFB135:
 454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @}
 457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group2 Peripheral Control functions 
ARM GAS  /tmp/ccv5crZT.s 			page 21


 460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****  *  @brief   management functions 
 461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****  *
 462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @verbatim   
 463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****  ===============================================================================
 464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****                       ##### Peripheral Control functions #####
 465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****  ===============================================================================  
 466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     [..]
 467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     This subsection provides a set of functions allowing to control the FLASH 
 468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     memory operations.
 469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @endverbatim
 471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @{
 472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @brief  Unlock the FLASH control register access
 476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @retval HAL Status
 477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Unlock(void)
 479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
 689              		.loc 1 479 1
 690              		.cfi_startproc
 691              		@ args = 0, pretend = 0, frame = 8
 692              		@ frame_needed = 1, uses_anonymous_args = 0
 693              		@ link register save eliminated.
 694 0000 80B4     		push	{r7}
 695              		.cfi_def_cfa_offset 4
 696              		.cfi_offset 7, -4
 697 0002 83B0     		sub	sp, sp, #12
 698              		.cfi_def_cfa_offset 16
 699 0004 00AF     		add	r7, sp, #0
 700              		.cfi_def_cfa_register 7
 480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_OK;
 701              		.loc 1 480 21
 702 0006 0023     		movs	r3, #0
 703 0008 FB71     		strb	r3, [r7, #7]
 481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
 704              		.loc 1 482 6
 705 000a 0D4B     		ldr	r3, .L42
 706 000c 1B69     		ldr	r3, [r3, #16]
 707 000e 03F08003 		and	r3, r3, #128
 708              		.loc 1 482 5
 709 0012 002B     		cmp	r3, #0
 710 0014 0DD0     		beq	.L40
 483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   {
 484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     /* Authorize the FLASH Registers access */
 485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     WRITE_REG(FLASH->KEYR, FLASH_KEY1);
 711              		.loc 1 485 5
 712 0016 0A4B     		ldr	r3, .L42
 713 0018 0A4A     		ldr	r2, .L42+4
 714 001a 5A60     		str	r2, [r3, #4]
 486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     WRITE_REG(FLASH->KEYR, FLASH_KEY2);
 715              		.loc 1 486 5
 716 001c 084B     		ldr	r3, .L42
 717 001e 0A4A     		ldr	r2, .L42+8
 718 0020 5A60     		str	r2, [r3, #4]
ARM GAS  /tmp/ccv5crZT.s 			page 22


 487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     /* Verify Flash is unlocked */
 489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
 719              		.loc 1 489 8
 720 0022 074B     		ldr	r3, .L42
 721 0024 1B69     		ldr	r3, [r3, #16]
 722 0026 03F08003 		and	r3, r3, #128
 723              		.loc 1 489 7
 724 002a 002B     		cmp	r3, #0
 725 002c 01D0     		beq	.L40
 490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     {
 491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       status = HAL_ERROR;
 726              		.loc 1 491 14
 727 002e 0123     		movs	r3, #1
 728 0030 FB71     		strb	r3, [r7, #7]
 729              	.L40:
 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     }
 493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   }
 494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   return status;
 730              		.loc 1 495 10
 731 0032 FB79     		ldrb	r3, [r7, #7]	@ zero_extendqisi2
 496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
 732              		.loc 1 496 1
 733 0034 1846     		mov	r0, r3
 734 0036 0C37     		adds	r7, r7, #12
 735              		.cfi_def_cfa_offset 4
 736 0038 BD46     		mov	sp, r7
 737              		.cfi_def_cfa_register 13
 738              		@ sp needed
 739 003a 5DF8047B 		ldr	r7, [sp], #4
 740              		.cfi_restore 7
 741              		.cfi_def_cfa_offset 0
 742 003e 7047     		bx	lr
 743              	.L43:
 744              		.align	2
 745              	.L42:
 746 0040 00200240 		.word	1073881088
 747 0044 23016745 		.word	1164378403
 748 0048 AB89EFCD 		.word	-839939669
 749              		.cfi_endproc
 750              	.LFE135:
 752              		.section	.text.HAL_FLASH_Lock,"ax",%progbits
 753              		.align	1
 754              		.global	HAL_FLASH_Lock
 755              		.syntax unified
 756              		.thumb
 757              		.thumb_func
 759              	HAL_FLASH_Lock:
 760              	.LFB136:
 497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @brief  Locks the FLASH control register access
 500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @retval HAL Status
 501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Lock(void)
 503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
ARM GAS  /tmp/ccv5crZT.s 			page 23


 761              		.loc 1 503 1
 762              		.cfi_startproc
 763              		@ args = 0, pretend = 0, frame = 0
 764              		@ frame_needed = 1, uses_anonymous_args = 0
 765              		@ link register save eliminated.
 766 0000 80B4     		push	{r7}
 767              		.cfi_def_cfa_offset 4
 768              		.cfi_offset 7, -4
 769 0002 00AF     		add	r7, sp, #0
 770              		.cfi_def_cfa_register 7
 504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* Set the LOCK Bit to lock the FLASH Registers access */
 505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   SET_BIT(FLASH->CR, FLASH_CR_LOCK);
 771              		.loc 1 505 3
 772 0004 054B     		ldr	r3, .L46
 773 0006 1B69     		ldr	r3, [r3, #16]
 774 0008 044A     		ldr	r2, .L46
 775 000a 43F08003 		orr	r3, r3, #128
 776 000e 1361     		str	r3, [r2, #16]
 506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   
 507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   return HAL_OK;  
 777              		.loc 1 507 10
 778 0010 0023     		movs	r3, #0
 508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
 779              		.loc 1 508 1
 780 0012 1846     		mov	r0, r3
 781 0014 BD46     		mov	sp, r7
 782              		.cfi_def_cfa_register 13
 783              		@ sp needed
 784 0016 5DF8047B 		ldr	r7, [sp], #4
 785              		.cfi_restore 7
 786              		.cfi_def_cfa_offset 0
 787 001a 7047     		bx	lr
 788              	.L47:
 789              		.align	2
 790              	.L46:
 791 001c 00200240 		.word	1073881088
 792              		.cfi_endproc
 793              	.LFE136:
 795              		.section	.text.HAL_FLASH_OB_Unlock,"ax",%progbits
 796              		.align	1
 797              		.global	HAL_FLASH_OB_Unlock
 798              		.syntax unified
 799              		.thumb
 800              		.thumb_func
 802              	HAL_FLASH_OB_Unlock:
 803              	.LFB137:
 509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @brief  Unlock the FLASH Option Control Registers access.
 512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @retval HAL Status
 513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void)
 515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
 804              		.loc 1 515 1
 805              		.cfi_startproc
 806              		@ args = 0, pretend = 0, frame = 0
 807              		@ frame_needed = 1, uses_anonymous_args = 0
ARM GAS  /tmp/ccv5crZT.s 			page 24


 808              		@ link register save eliminated.
 809 0000 80B4     		push	{r7}
 810              		.cfi_def_cfa_offset 4
 811              		.cfi_offset 7, -4
 812 0002 00AF     		add	r7, sp, #0
 813              		.cfi_def_cfa_register 7
 516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   if (HAL_IS_BIT_CLR(FLASH->CR, FLASH_CR_OPTWRE))
 814              		.loc 1 516 7
 815 0004 094B     		ldr	r3, .L52
 816 0006 1B69     		ldr	r3, [r3, #16]
 817 0008 03F40073 		and	r3, r3, #512
 818              		.loc 1 516 6
 819 000c 002B     		cmp	r3, #0
 820 000e 07D1     		bne	.L49
 517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   {
 518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     /* Authorizes the Option Byte register programming */
 519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY1);
 821              		.loc 1 519 5
 822 0010 064B     		ldr	r3, .L52
 823 0012 074A     		ldr	r2, .L52+4
 824 0014 9A60     		str	r2, [r3, #8]
 520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY2);
 825              		.loc 1 520 5
 826 0016 054B     		ldr	r3, .L52
 827 0018 064A     		ldr	r2, .L52+8
 828 001a 9A60     		str	r2, [r3, #8]
 521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   }
 522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   else
 523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   {
 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     return HAL_ERROR;
 525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   }  
 526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   
 527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   return HAL_OK;  
 829              		.loc 1 527 10
 830 001c 0023     		movs	r3, #0
 831 001e 00E0     		b	.L51
 832              	.L49:
 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   }  
 833              		.loc 1 524 12
 834 0020 0123     		movs	r3, #1
 835              	.L51:
 528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
 836              		.loc 1 528 1
 837 0022 1846     		mov	r0, r3
 838 0024 BD46     		mov	sp, r7
 839              		.cfi_def_cfa_register 13
 840              		@ sp needed
 841 0026 5DF8047B 		ldr	r7, [sp], #4
 842              		.cfi_restore 7
 843              		.cfi_def_cfa_offset 0
 844 002a 7047     		bx	lr
 845              	.L53:
 846              		.align	2
 847              	.L52:
 848 002c 00200240 		.word	1073881088
 849 0030 23016745 		.word	1164378403
 850 0034 AB89EFCD 		.word	-839939669
ARM GAS  /tmp/ccv5crZT.s 			page 25


 851              		.cfi_endproc
 852              	.LFE137:
 854              		.section	.text.HAL_FLASH_OB_Lock,"ax",%progbits
 855              		.align	1
 856              		.global	HAL_FLASH_OB_Lock
 857              		.syntax unified
 858              		.thumb
 859              		.thumb_func
 861              	HAL_FLASH_OB_Lock:
 862              	.LFB138:
 529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @brief  Lock the FLASH Option Control Registers access.
 532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @retval HAL Status 
 533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Lock(void)
 535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
 863              		.loc 1 535 1
 864              		.cfi_startproc
 865              		@ args = 0, pretend = 0, frame = 0
 866              		@ frame_needed = 1, uses_anonymous_args = 0
 867              		@ link register save eliminated.
 868 0000 80B4     		push	{r7}
 869              		.cfi_def_cfa_offset 4
 870              		.cfi_offset 7, -4
 871 0002 00AF     		add	r7, sp, #0
 872              		.cfi_def_cfa_register 7
 536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* Clear the OPTWRE Bit to lock the FLASH Option Byte Registers access */
 537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   CLEAR_BIT(FLASH->CR, FLASH_CR_OPTWRE);
 873              		.loc 1 537 3
 874 0004 054B     		ldr	r3, .L56
 875 0006 1B69     		ldr	r3, [r3, #16]
 876 0008 044A     		ldr	r2, .L56
 877 000a 23F40073 		bic	r3, r3, #512
 878 000e 1361     		str	r3, [r2, #16]
 538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   
 539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   return HAL_OK;  
 879              		.loc 1 539 10
 880 0010 0023     		movs	r3, #0
 540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
 881              		.loc 1 540 1
 882 0012 1846     		mov	r0, r3
 883 0014 BD46     		mov	sp, r7
 884              		.cfi_def_cfa_register 13
 885              		@ sp needed
 886 0016 5DF8047B 		ldr	r7, [sp], #4
 887              		.cfi_restore 7
 888              		.cfi_def_cfa_offset 0
 889 001a 7047     		bx	lr
 890              	.L57:
 891              		.align	2
 892              	.L56:
 893 001c 00200240 		.word	1073881088
 894              		.cfi_endproc
 895              	.LFE138:
 897              		.section	.text.HAL_FLASH_OB_Launch,"ax",%progbits
 898              		.align	1
ARM GAS  /tmp/ccv5crZT.s 			page 26


 899              		.global	HAL_FLASH_OB_Launch
 900              		.syntax unified
 901              		.thumb
 902              		.thumb_func
 904              	HAL_FLASH_OB_Launch:
 905              	.LFB139:
 541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   
 542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @brief  Launch the option byte loading.
 544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @note   This function will reset automatically the MCU.
 545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @retval HAL Status
 546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Launch(void)
 548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
 906              		.loc 1 548 1
 907              		.cfi_startproc
 908              		@ args = 0, pretend = 0, frame = 0
 909              		@ frame_needed = 1, uses_anonymous_args = 0
 910 0000 80B5     		push	{r7, lr}
 911              		.cfi_def_cfa_offset 8
 912              		.cfi_offset 7, -8
 913              		.cfi_offset 14, -4
 914 0002 00AF     		add	r7, sp, #0
 915              		.cfi_def_cfa_register 7
 549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* Set the OBL_Launch bit to launch the option byte loading */
 550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   SET_BIT(FLASH->CR, FLASH_CR_OBL_LAUNCH);
 916              		.loc 1 550 3
 917 0004 064B     		ldr	r3, .L60
 918 0006 1B69     		ldr	r3, [r3, #16]
 919 0008 054A     		ldr	r2, .L60
 920 000a 43F40053 		orr	r3, r3, #8192
 921 000e 1361     		str	r3, [r2, #16]
 551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   
 552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* Wait for last operation to be completed */
 553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   return(FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE));
 922              		.loc 1 553 10
 923 0010 4CF25030 		movw	r0, #50000
 924 0014 FFF7FEFF 		bl	FLASH_WaitForLastOperation
 925 0018 0346     		mov	r3, r0
 554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
 926              		.loc 1 554 1
 927 001a 1846     		mov	r0, r3
 928 001c 80BD     		pop	{r7, pc}
 929              	.L61:
 930 001e 00BF     		.align	2
 931              	.L60:
 932 0020 00200240 		.word	1073881088
 933              		.cfi_endproc
 934              	.LFE139:
 936              		.section	.text.HAL_FLASH_GetError,"ax",%progbits
 937              		.align	1
 938              		.global	HAL_FLASH_GetError
 939              		.syntax unified
 940              		.thumb
 941              		.thumb_func
 943              	HAL_FLASH_GetError:
 944              	.LFB140:
ARM GAS  /tmp/ccv5crZT.s 			page 27


 555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @}
 558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */  
 559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group3 Peripheral errors functions 
 561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****  *  @brief    Peripheral errors functions 
 562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****  *
 563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @verbatim   
 564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****  ===============================================================================
 565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****                       ##### Peripheral Errors functions #####
 566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****  ===============================================================================  
 567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     [..]
 568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     This subsection permit to get in run-time errors of  the FLASH peripheral.
 569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** @endverbatim
 571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @{
 572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @brief  Get the specific FLASH error flag.
 576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @retval FLASH_ErrorCode The returned value can be:
 577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *            @ref FLASH_Error_Codes
 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** uint32_t HAL_FLASH_GetError(void)
 580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
 945              		.loc 1 580 1
 946              		.cfi_startproc
 947              		@ args = 0, pretend = 0, frame = 0
 948              		@ frame_needed = 1, uses_anonymous_args = 0
 949              		@ link register save eliminated.
 950 0000 80B4     		push	{r7}
 951              		.cfi_def_cfa_offset 4
 952              		.cfi_offset 7, -4
 953 0002 00AF     		add	r7, sp, #0
 954              		.cfi_def_cfa_register 7
 581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****    return pFlash.ErrorCode;
 955              		.loc 1 581 17
 956 0004 034B     		ldr	r3, .L64
 957 0006 DB69     		ldr	r3, [r3, #28]
 582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
 958              		.loc 1 582 1
 959 0008 1846     		mov	r0, r3
 960 000a BD46     		mov	sp, r7
 961              		.cfi_def_cfa_register 13
 962              		@ sp needed
 963 000c 5DF8047B 		ldr	r7, [sp], #4
 964              		.cfi_restore 7
 965              		.cfi_def_cfa_offset 0
 966 0010 7047     		bx	lr
 967              	.L65:
 968 0012 00BF     		.align	2
 969              	.L64:
 970 0014 00000000 		.word	pFlash
 971              		.cfi_endproc
 972              	.LFE140:
 974              		.section	.text.FLASH_Program_HalfWord,"ax",%progbits
ARM GAS  /tmp/ccv5crZT.s 			page 28


 975              		.align	1
 976              		.syntax unified
 977              		.thumb
 978              		.thumb_func
 980              	FLASH_Program_HalfWord:
 981              	.LFB141:
 583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @}
 586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @}
 590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /** @addtogroup FLASH_Private_Functions
 593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****  * @{
 594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****  */
 595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @brief  Program a half-word (16-bit) at a specified address.
 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @param  Address specify the address to be programmed.
 599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @param  Data    specify the data to be programmed.
 600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @retval None
 601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data)
 603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
 982              		.loc 1 603 1
 983              		.cfi_startproc
 984              		@ args = 0, pretend = 0, frame = 8
 985              		@ frame_needed = 1, uses_anonymous_args = 0
 986              		@ link register save eliminated.
 987 0000 80B4     		push	{r7}
 988              		.cfi_def_cfa_offset 4
 989              		.cfi_offset 7, -4
 990 0002 83B0     		sub	sp, sp, #12
 991              		.cfi_def_cfa_offset 16
 992 0004 00AF     		add	r7, sp, #0
 993              		.cfi_def_cfa_register 7
 994 0006 7860     		str	r0, [r7, #4]
 995 0008 0B46     		mov	r3, r1
 996 000a 7B80     		strh	r3, [r7, #2]	@ movhi
 604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* Clean the error context */
 605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
 997              		.loc 1 605 20
 998 000c 084B     		ldr	r3, .L67
 999 000e 0022     		movs	r2, #0
 1000 0010 DA61     		str	r2, [r3, #28]
 606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   
 607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     /* Proceed to program the new data */
 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     SET_BIT(FLASH->CR, FLASH_CR_PG);
 1001              		.loc 1 608 5
 1002 0012 084B     		ldr	r3, .L67+4
 1003 0014 1B69     		ldr	r3, [r3, #16]
 1004 0016 074A     		ldr	r2, .L67+4
 1005 0018 43F00103 		orr	r3, r3, #1
 1006 001c 1361     		str	r3, [r2, #16]
ARM GAS  /tmp/ccv5crZT.s 			page 29


 609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* Write data in the address */
 611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   *(__IO uint16_t*)Address = Data;
 1007              		.loc 1 611 4
 1008 001e 7B68     		ldr	r3, [r7, #4]
 1009              		.loc 1 611 28
 1010 0020 7A88     		ldrh	r2, [r7, #2]	@ movhi
 1011 0022 1A80     		strh	r2, [r3]	@ movhi
 612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
 1012              		.loc 1 612 1
 1013 0024 00BF     		nop
 1014 0026 0C37     		adds	r7, r7, #12
 1015              		.cfi_def_cfa_offset 4
 1016 0028 BD46     		mov	sp, r7
 1017              		.cfi_def_cfa_register 13
 1018              		@ sp needed
 1019 002a 5DF8047B 		ldr	r7, [sp], #4
 1020              		.cfi_restore 7
 1021              		.cfi_def_cfa_offset 0
 1022 002e 7047     		bx	lr
 1023              	.L68:
 1024              		.align	2
 1025              	.L67:
 1026 0030 00000000 		.word	pFlash
 1027 0034 00200240 		.word	1073881088
 1028              		.cfi_endproc
 1029              	.LFE141:
 1031              		.section	.text.FLASH_WaitForLastOperation,"ax",%progbits
 1032              		.align	1
 1033              		.global	FLASH_WaitForLastOperation
 1034              		.syntax unified
 1035              		.thumb
 1036              		.thumb_func
 1038              	FLASH_WaitForLastOperation:
 1039              	.LFB142:
 613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @brief  Wait for a FLASH operation to complete.
 616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @param  Timeout  maximum flash operation timeout
 617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @retval HAL Status
 618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout)
 620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
 1040              		.loc 1 620 1
 1041              		.cfi_startproc
 1042              		@ args = 0, pretend = 0, frame = 16
 1043              		@ frame_needed = 1, uses_anonymous_args = 0
 1044 0000 80B5     		push	{r7, lr}
 1045              		.cfi_def_cfa_offset 8
 1046              		.cfi_offset 7, -8
 1047              		.cfi_offset 14, -4
 1048 0002 84B0     		sub	sp, sp, #16
 1049              		.cfi_def_cfa_offset 24
 1050 0004 00AF     		add	r7, sp, #0
 1051              		.cfi_def_cfa_register 7
 1052 0006 7860     		str	r0, [r7, #4]
 621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset.
ARM GAS  /tmp/ccv5crZT.s 			page 30


 622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****      Even if the FLASH operation fails, the BUSY flag will be reset and an error
 623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****      flag will be set */
 624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****      
 625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   uint32_t tickstart = HAL_GetTick();
 1053              		.loc 1 625 24
 1054 0008 FFF7FEFF 		bl	HAL_GetTick
 1055 000c F860     		str	r0, [r7, #12]
 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****      
 627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY)) 
 1056              		.loc 1 627 8
 1057 000e 10E0     		b	.L71
 1058              	.L74:
 628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   { 
 629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     if (Timeout != HAL_MAX_DELAY)
 1059              		.loc 1 629 8
 1060 0010 7B68     		ldr	r3, [r7, #4]
 1061 0012 B3F1FF3F 		cmp	r3, #-1
 1062 0016 0CD0     		beq	.L71
 630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     {
 631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       if((Timeout == 0U) || ((HAL_GetTick()-tickstart) > Timeout))
 1063              		.loc 1 631 9
 1064 0018 7B68     		ldr	r3, [r7, #4]
 1065 001a 002B     		cmp	r3, #0
 1066 001c 07D0     		beq	.L72
 1067              		.loc 1 631 31 discriminator 1
 1068 001e FFF7FEFF 		bl	HAL_GetTick
 1069 0022 0246     		mov	r2, r0
 1070              		.loc 1 631 44 discriminator 1
 1071 0024 FB68     		ldr	r3, [r7, #12]
 1072 0026 D31A     		subs	r3, r2, r3
 1073              		.loc 1 631 26 discriminator 1
 1074 0028 7A68     		ldr	r2, [r7, #4]
 1075 002a 9A42     		cmp	r2, r3
 1076 002c 01D2     		bcs	.L71
 1077              	.L72:
 632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       {
 633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****         return HAL_TIMEOUT;
 1078              		.loc 1 633 16
 1079 002e 0323     		movs	r3, #3
 1080 0030 1FE0     		b	.L73
 1081              	.L71:
 627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   { 
 1082              		.loc 1 627 9
 1083 0032 124B     		ldr	r3, .L78
 1084 0034 DB68     		ldr	r3, [r3, #12]
 1085 0036 03F00103 		and	r3, r3, #1
 1086 003a 012B     		cmp	r3, #1
 1087 003c E8D0     		beq	.L74
 634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****       }
 635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     }
 636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   }
 637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   
 638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* Check FLASH End of Operation flag  */
 639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP))
 1088              		.loc 1 639 7
 1089 003e 0F4B     		ldr	r3, .L78
 1090 0040 DB68     		ldr	r3, [r3, #12]
ARM GAS  /tmp/ccv5crZT.s 			page 31


 1091 0042 03F02003 		and	r3, r3, #32
 1092              		.loc 1 639 6
 1093 0046 202B     		cmp	r3, #32
 1094 0048 02D1     		bne	.L75
 640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   {
 641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     /* Clear FLASH End of Operation pending bit */
 642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
 1095              		.loc 1 642 5
 1096 004a 0C4B     		ldr	r3, .L78
 1097 004c 2022     		movs	r2, #32
 1098 004e DA60     		str	r2, [r3, #12]
 1099              	.L75:
 643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   }
 644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   
 645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR)  || 
 1100              		.loc 1 645 6
 1101 0050 0A4B     		ldr	r3, .L78
 1102 0052 DB68     		ldr	r3, [r3, #12]
 1103 0054 03F01003 		and	r3, r3, #16
 1104              		.loc 1 645 5
 1105 0058 102B     		cmp	r3, #16
 1106 005a 05D0     		beq	.L76
 646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****      __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR))
 1107              		.loc 1 646 6
 1108 005c 074B     		ldr	r3, .L78
 1109 005e DB68     		ldr	r3, [r3, #12]
 1110 0060 03F00403 		and	r3, r3, #4
 645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****      __HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR))
 1111              		.loc 1 645 47 discriminator 1
 1112 0064 042B     		cmp	r3, #4
 1113 0066 03D1     		bne	.L77
 1114              	.L76:
 647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   {
 648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     /*Save the error code*/
 649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     FLASH_SetErrorCode();
 1115              		.loc 1 649 5
 1116 0068 FFF7FEFF 		bl	FLASH_SetErrorCode
 650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     return HAL_ERROR;
 1117              		.loc 1 650 12
 1118 006c 0123     		movs	r3, #1
 1119 006e 00E0     		b	.L73
 1120              	.L77:
 651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   }
 652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* There is no error flag set */
 654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   return HAL_OK;
 1121              		.loc 1 654 10
 1122 0070 0023     		movs	r3, #0
 1123              	.L73:
 655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }
 1124              		.loc 1 655 1
 1125 0072 1846     		mov	r0, r3
 1126 0074 1037     		adds	r7, r7, #16
 1127              		.cfi_def_cfa_offset 8
 1128 0076 BD46     		mov	sp, r7
 1129              		.cfi_def_cfa_register 13
 1130              		@ sp needed
ARM GAS  /tmp/ccv5crZT.s 			page 32


 1131 0078 80BD     		pop	{r7, pc}
 1132              	.L79:
 1133 007a 00BF     		.align	2
 1134              	.L78:
 1135 007c 00200240 		.word	1073881088
 1136              		.cfi_endproc
 1137              	.LFE142:
 1139              		.section	.text.FLASH_SetErrorCode,"ax",%progbits
 1140              		.align	1
 1141              		.syntax unified
 1142              		.thumb
 1143              		.thumb_func
 1145              	FLASH_SetErrorCode:
 1146              	.LFB143:
 656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** 
 658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** /**
 659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @brief  Set the specific FLASH error flag.
 660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   * @retval None
 661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   */
 662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** static void FLASH_SetErrorCode(void)
 663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** {
 1147              		.loc 1 663 1
 1148              		.cfi_startproc
 1149              		@ args = 0, pretend = 0, frame = 8
 1150              		@ frame_needed = 1, uses_anonymous_args = 0
 1151              		@ link register save eliminated.
 1152 0000 80B4     		push	{r7}
 1153              		.cfi_def_cfa_offset 4
 1154              		.cfi_offset 7, -4
 1155 0002 83B0     		sub	sp, sp, #12
 1156              		.cfi_def_cfa_offset 16
 1157 0004 00AF     		add	r7, sp, #0
 1158              		.cfi_def_cfa_register 7
 664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   uint32_t flags = 0U;
 1159              		.loc 1 664 12
 1160 0006 0023     		movs	r3, #0
 1161 0008 7B60     		str	r3, [r7, #4]
 665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   
 666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR))
 1162              		.loc 1 666 6
 1163 000a 144B     		ldr	r3, .L83
 1164 000c DB68     		ldr	r3, [r3, #12]
 1165 000e 03F01003 		and	r3, r3, #16
 1166              		.loc 1 666 5
 1167 0012 102B     		cmp	r3, #16
 1168 0014 09D1     		bne	.L81
 667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   {
 668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP;
 1169              		.loc 1 668 11
 1170 0016 124B     		ldr	r3, .L83+4
 1171 0018 DB69     		ldr	r3, [r3, #28]
 1172              		.loc 1 668 22
 1173 001a 43F00203 		orr	r3, r3, #2
 1174 001e 104A     		ldr	r2, .L83+4
 1175 0020 D361     		str	r3, [r2, #28]
 669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     flags |= FLASH_FLAG_WRPERR;
ARM GAS  /tmp/ccv5crZT.s 			page 33


 1176              		.loc 1 669 11
 1177 0022 7B68     		ldr	r3, [r7, #4]
 1178 0024 43F01003 		orr	r3, r3, #16
 1179 0028 7B60     		str	r3, [r7, #4]
 1180              	.L81:
 670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   }
 671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGERR))
 1181              		.loc 1 671 6
 1182 002a 0C4B     		ldr	r3, .L83
 1183 002c DB68     		ldr	r3, [r3, #12]
 1184 002e 03F00403 		and	r3, r3, #4
 1185              		.loc 1 671 5
 1186 0032 042B     		cmp	r3, #4
 1187 0034 09D1     		bne	.L82
 672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   {
 673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     pFlash.ErrorCode |= HAL_FLASH_ERROR_PROG;
 1188              		.loc 1 673 11
 1189 0036 0A4B     		ldr	r3, .L83+4
 1190 0038 DB69     		ldr	r3, [r3, #28]
 1191              		.loc 1 673 22
 1192 003a 43F00103 		orr	r3, r3, #1
 1193 003e 084A     		ldr	r2, .L83+4
 1194 0040 D361     		str	r3, [r2, #28]
 674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****     flags |= FLASH_FLAG_PGERR;
 1195              		.loc 1 674 11
 1196 0042 7B68     		ldr	r3, [r7, #4]
 1197 0044 43F00403 		orr	r3, r3, #4
 1198 0048 7B60     		str	r3, [r7, #4]
 1199              	.L82:
 675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   }
 676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   /* Clear FLASH error pending bits */
 677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c ****   __HAL_FLASH_CLEAR_FLAG(flags);
 1200              		.loc 1 677 3
 1201 004a 044A     		ldr	r2, .L83
 1202 004c 7B68     		ldr	r3, [r7, #4]
 1203 004e D360     		str	r3, [r2, #12]
 678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_flash.c **** }  
 1204              		.loc 1 678 1
 1205 0050 00BF     		nop
 1206 0052 0C37     		adds	r7, r7, #12
 1207              		.cfi_def_cfa_offset 4
 1208 0054 BD46     		mov	sp, r7
 1209              		.cfi_def_cfa_register 13
 1210              		@ sp needed
 1211 0056 5DF8047B 		ldr	r7, [sp], #4
 1212              		.cfi_restore 7
 1213              		.cfi_def_cfa_offset 0
 1214 005a 7047     		bx	lr
 1215              	.L84:
 1216              		.align	2
 1217              	.L83:
 1218 005c 00200240 		.word	1073881088
 1219 0060 00000000 		.word	pFlash
 1220              		.cfi_endproc
 1221              	.LFE143:
 1223              		.text
 1224              	.Letext0:
ARM GAS  /tmp/ccv5crZT.s 			page 34


 1225              		.file 2 "/nix/store/p8vkamc9b2vlibs9aw76vnasdbifhcbm-gcc-arm-embedded-13.2.rel1/arm-none-eabi/incl
 1226              		.file 3 "/nix/store/p8vkamc9b2vlibs9aw76vnasdbifhcbm-gcc-arm-embedded-13.2.rel1/arm-none-eabi/incl
 1227              		.file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h"
 1228              		.file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h"
 1229              		.file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
 1230              		.file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_flash.h"
 1231              		.file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h"
ARM GAS  /tmp/ccv5crZT.s 			page 35


DEFINED SYMBOLS
                            *ABS*:00000000 stm32f3xx_hal_flash.c
     /tmp/ccv5crZT.s:25     .bss.pFlash:00000000 pFlash
     /tmp/ccv5crZT.s:22     .bss.pFlash:00000000 $d
     /tmp/ccv5crZT.s:28     .text.HAL_FLASH_Program:00000000 $t
     /tmp/ccv5crZT.s:34     .text.HAL_FLASH_Program:00000000 HAL_FLASH_Program
     /tmp/ccv5crZT.s:1038   .text.FLASH_WaitForLastOperation:00000000 FLASH_WaitForLastOperation
     /tmp/ccv5crZT.s:980    .text.FLASH_Program_HalfWord:00000000 FLASH_Program_HalfWord
     /tmp/ccv5crZT.s:186    .text.HAL_FLASH_Program:000000d8 $d
     /tmp/ccv5crZT.s:192    .text.HAL_FLASH_Program_IT:00000000 $t
     /tmp/ccv5crZT.s:198    .text.HAL_FLASH_Program_IT:00000000 HAL_FLASH_Program_IT
     /tmp/ccv5crZT.s:302    .text.HAL_FLASH_Program_IT:00000088 $d
     /tmp/ccv5crZT.s:308    .text.HAL_FLASH_IRQHandler:00000000 $t
     /tmp/ccv5crZT.s:314    .text.HAL_FLASH_IRQHandler:00000000 HAL_FLASH_IRQHandler
     /tmp/ccv5crZT.s:1145   .text.FLASH_SetErrorCode:00000000 FLASH_SetErrorCode
     /tmp/ccv5crZT.s:651    .text.HAL_FLASH_OperationErrorCallback:00000000 HAL_FLASH_OperationErrorCallback
     /tmp/ccv5crZT.s:615    .text.HAL_FLASH_EndOfOperationCallback:00000000 HAL_FLASH_EndOfOperationCallback
     /tmp/ccv5crZT.s:603    .text.HAL_FLASH_IRQHandler:000001c0 $d
     /tmp/ccv5crZT.s:609    .text.HAL_FLASH_EndOfOperationCallback:00000000 $t
     /tmp/ccv5crZT.s:645    .text.HAL_FLASH_OperationErrorCallback:00000000 $t
     /tmp/ccv5crZT.s:681    .text.HAL_FLASH_Unlock:00000000 $t
     /tmp/ccv5crZT.s:687    .text.HAL_FLASH_Unlock:00000000 HAL_FLASH_Unlock
     /tmp/ccv5crZT.s:746    .text.HAL_FLASH_Unlock:00000040 $d
     /tmp/ccv5crZT.s:753    .text.HAL_FLASH_Lock:00000000 $t
     /tmp/ccv5crZT.s:759    .text.HAL_FLASH_Lock:00000000 HAL_FLASH_Lock
     /tmp/ccv5crZT.s:791    .text.HAL_FLASH_Lock:0000001c $d
     /tmp/ccv5crZT.s:796    .text.HAL_FLASH_OB_Unlock:00000000 $t
     /tmp/ccv5crZT.s:802    .text.HAL_FLASH_OB_Unlock:00000000 HAL_FLASH_OB_Unlock
     /tmp/ccv5crZT.s:848    .text.HAL_FLASH_OB_Unlock:0000002c $d
     /tmp/ccv5crZT.s:855    .text.HAL_FLASH_OB_Lock:00000000 $t
     /tmp/ccv5crZT.s:861    .text.HAL_FLASH_OB_Lock:00000000 HAL_FLASH_OB_Lock
     /tmp/ccv5crZT.s:893    .text.HAL_FLASH_OB_Lock:0000001c $d
     /tmp/ccv5crZT.s:898    .text.HAL_FLASH_OB_Launch:00000000 $t
     /tmp/ccv5crZT.s:904    .text.HAL_FLASH_OB_Launch:00000000 HAL_FLASH_OB_Launch
     /tmp/ccv5crZT.s:932    .text.HAL_FLASH_OB_Launch:00000020 $d
     /tmp/ccv5crZT.s:937    .text.HAL_FLASH_GetError:00000000 $t
     /tmp/ccv5crZT.s:943    .text.HAL_FLASH_GetError:00000000 HAL_FLASH_GetError
     /tmp/ccv5crZT.s:970    .text.HAL_FLASH_GetError:00000014 $d
     /tmp/ccv5crZT.s:975    .text.FLASH_Program_HalfWord:00000000 $t
     /tmp/ccv5crZT.s:1026   .text.FLASH_Program_HalfWord:00000030 $d
     /tmp/ccv5crZT.s:1032   .text.FLASH_WaitForLastOperation:00000000 $t
     /tmp/ccv5crZT.s:1135   .text.FLASH_WaitForLastOperation:0000007c $d
     /tmp/ccv5crZT.s:1140   .text.FLASH_SetErrorCode:00000000 $t
     /tmp/ccv5crZT.s:1218   .text.FLASH_SetErrorCode:0000005c $d

UNDEFINED SYMBOLS
FLASH_PageErase
HAL_GetTick