ARM GAS  /tmp/ccfS03PQ.s 			page 1


   1              		.cpu cortex-m7
   2              		.arch armv7e-m
   3              		.fpu fpv5-d16
   4              		.eabi_attribute 28, 1
   5              		.eabi_attribute 20, 1
   6              		.eabi_attribute 21, 1
   7              		.eabi_attribute 23, 3
   8              		.eabi_attribute 24, 1
   9              		.eabi_attribute 25, 1
  10              		.eabi_attribute 26, 1
  11              		.eabi_attribute 30, 1
  12              		.eabi_attribute 34, 1
  13              		.eabi_attribute 18, 4
  14              		.file	"stm32f7xx_hal_flash.c"
  15              		.text
  16              	.Ltext0:
  17              		.cfi_sections	.debug_frame
  18              		.file 1 "Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c"
  19              		.section	.text.FLASH_Program_DoubleWord,"ax",%progbits
  20              		.align	1
  21              		.syntax unified
  22              		.thumb
  23              		.thumb_func
  25              	FLASH_Program_DoubleWord:
  26              	.LVL0:
  27              	.LFB153:
   1:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
   2:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   ******************************************************************************
   3:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @file    stm32f7xx_hal_flash.c
   4:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @author  MCD Application Team
   5:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @brief   FLASH HAL module driver.
   6:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *          This file provides firmware functions to manage the following 
   7:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *          functionalities of the internal FLASH memory:
   8:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *           + Program operations functions
   9:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *           + Memory Control functions 
  10:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *           + Peripheral Errors functions
  11:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *         
  12:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   @verbatim
  13:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   ==============================================================================
  14:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****                         ##### FLASH peripheral features #####
  15:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   ==============================================================================
  16:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****            
  17:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   [..] The Flash memory interface manages CPU AHB I-Code and D-Code accesses 
  18:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****        to the Flash memory. It implements the erase and program Flash memory operations 
  19:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****        and the read and write protection mechanisms.
  20:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       
  21:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   [..] The Flash memory interface accelerates code execution with a system of instruction
  22:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****        prefetch and cache lines. 
  23:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
  24:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   [..] The FLASH main features are:
  25:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       (+) Flash memory read operations
  26:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       (+) Flash memory program/erase operations
  27:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       (+) Read / write protections
  28:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       (+) Prefetch on I-Code
  29:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       (+) 64 cache lines of 128 bits on I-Code
  30:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       (+) 8 cache lines of 128 bits on D-Code
  31:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       
ARM GAS  /tmp/ccfS03PQ.s 			page 2


  32:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****                      ##### How to use this driver #####
  33:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   ==============================================================================
  34:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     [..]                             
  35:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       This driver provides functions and macros to configure and program the FLASH 
  36:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       memory of all STM32F7xx devices.
  37:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     
  38:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       (#) FLASH Memory IO Programming functions: 
  39:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****            (++) Lock and Unlock the FLASH interface using HAL_FLASH_Unlock() and 
  40:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****                 HAL_FLASH_Lock() functions
  41:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****            (++) Program functions: byte, half word, word and double word
  42:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****            (++) There Two modes of programming :
  43:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****             (+++) Polling mode using HAL_FLASH_Program() function
  44:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****             (+++) Interrupt mode using HAL_FLASH_Program_IT() function
  45:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     
  46:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       (#) Interrupts and flags management functions : 
  47:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****            (++) Handle FLASH interrupts by calling HAL_FLASH_IRQHandler()
  48:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****            (++) Wait for last FLASH operation according to its status
  49:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****            (++) Get error flag status by calling HAL_SetErrorCode()          
  50:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     [..] 
  51:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       In addition to these functions, this driver includes a set of macros allowing
  52:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       to handle the following operations:
  53:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****        (+) Set the latency
  54:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****        (+) Enable/Disable the prefetch buffer
  55:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****        (+) Enable/Disable the Instruction cache and the Data cache
  56:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****        (+) Reset the Instruction cache and the Data cache
  57:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****        (+) Enable/Disable the FLASH interrupts
  58:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****        (+) Monitor the FLASH flags status
  59:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     [..]	   
  60:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 	(@) For any Flash memory program operation (erase or program), the CPU clock frequency
  61:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         (HCLK) must be at least 1MHz. 
  62:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 	(@) The contents of the Flash memory are not guaranteed if a device reset occurs during 
  63:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 	    a Flash memory operation.
  64:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     (@) Any attempt to read the Flash memory while it is being written or erased, causes the 
  65:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 	    bus to stall. Read operations are processed correctly once the program operation has 
  66:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 		completed. This means that code or data fetches cannot be performed while a write/erase 
  67:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 		operation is ongoing.
  68:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           
  69:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   @endverbatim
  70:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   ******************************************************************************
  71:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @attention
  72:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *
  73:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * Copyright (c) 2017 STMicroelectronics.
  74:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * All rights reserved.
  75:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *
  76:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * This software is licensed under terms that can be found in the LICENSE file in
  77:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * the root directory of this software component.
  78:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * If no LICENSE file comes with this software, it is provided AS-IS.
  79:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   ******************************************************************************
  80:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */ 
  81:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
  82:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /* Includes ------------------------------------------------------------------*/
  83:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** #include "stm32f7xx_hal.h"
  84:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
  85:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /** @addtogroup STM32F7xx_HAL_Driver
  86:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @{
  87:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
  88:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
ARM GAS  /tmp/ccfS03PQ.s 			page 3


  89:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /** @defgroup FLASH FLASH
  90:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @brief FLASH HAL module driver
  91:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @{
  92:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
  93:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
  94:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** #ifdef HAL_FLASH_MODULE_ENABLED
  95:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
  96:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /* Private typedef -----------------------------------------------------------*/
  97:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /* Private define ------------------------------------------------------------*/
  98:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /** @addtogroup FLASH_Private_Constants
  99:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @{
 100:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** #define SECTOR_MASK               ((uint32_t)0xFFFFFF07U)
 102:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** #define FLASH_TIMEOUT_VALUE       ((uint32_t)50000U)/* 50 s */
 103:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @}
 105:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */         
 106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /* Private macro -------------------------------------------------------------*/
 107:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /* Private variables ---------------------------------------------------------*/
 108:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /** @addtogroup FLASH_Private_Variables
 109:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @{
 110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 111:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /* Variable used for Erase sectors under interruption */
 112:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** FLASH_ProcessTypeDef pFlash;
 113:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 114:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @}
 115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 117:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /* Private function prototypes -----------------------------------------------*/
 118:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /** @addtogroup FLASH_Private_Functions
 119:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @{
 120:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /* Program operations */
 122:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** static void   FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data);
 123:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** static void   FLASH_Program_Word(uint32_t Address, uint32_t Data);
 124:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** static void   FLASH_Program_HalfWord(uint32_t Address, uint16_t Data);
 125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** static void   FLASH_Program_Byte(uint32_t Address, uint8_t Data);
 126:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** static void   FLASH_SetErrorCode(void);
 127:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout);
 129:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 130:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @}
 131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 132:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /* Exported functions --------------------------------------------------------*/
 134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions FLASH Exported Functions
 135:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @{
 136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 137:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group1 Programming operation functions 
 139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****  *  @brief   Programming operation functions 
 140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****  *
 141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** @verbatim   
 142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****  ===============================================================================
 143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****                   ##### Programming operation functions #####
 144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****  ===============================================================================  
 145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     [..]
ARM GAS  /tmp/ccfS03PQ.s 			page 4


 146:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     This subsection provides a set of functions allowing to manage the FLASH 
 147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     program operations.
 148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 149:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** @endverbatim
 150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @{
 151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 152:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @brief  Program byte, halfword, word or double word at a specified address
 155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @param  TypeProgram  Indicate the way to program at a specified address.
 156:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *                           This parameter can be a value of @ref FLASH_Type_Program
 157:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @param  Address  specifies the address to be programmed.
 158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @param  Data specifies the data to be programmed
 159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * 
 160:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @retval HAL_StatusTypeDef HAL Status
 161:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
 163:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** {
 164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_ERROR;
 165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 166:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Process Locked */
 167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   __HAL_LOCK(&pFlash);
 168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 169:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Check the parameters */
 170:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram));
 171:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 172:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Wait for last operation to be completed */
 173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
 174:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   if(status == HAL_OK)
 176:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 177:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     switch(TypeProgram)
 178:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       case FLASH_TYPEPROGRAM_BYTE :
 180:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       {
 181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         /*Program byte (8-bit) at a specified address.*/
 182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         FLASH_Program_Byte(Address, (uint8_t) Data);
 183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 184:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 185:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       
 186:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       case FLASH_TYPEPROGRAM_HALFWORD :
 187:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       {
 188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         /*Program halfword (16-bit) at a specified address.*/
 189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         FLASH_Program_HalfWord(Address, (uint16_t) Data);
 190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       
 193:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       case FLASH_TYPEPROGRAM_WORD :
 194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       {
 195:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         /*Program word (32-bit) at a specified address.*/
 196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         FLASH_Program_Word(Address, (uint32_t) Data);
 197:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 198:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       
 200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       case FLASH_TYPEPROGRAM_DOUBLEWORD :
 201:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       {
 202:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         /*Program double word (64-bit) at a specified address.*/
ARM GAS  /tmp/ccfS03PQ.s 			page 5


 203:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         FLASH_Program_DoubleWord(Address, Data);
 204:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 205:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 206:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       default :
 207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 208:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     }
 209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     /* Wait for last operation to be completed */
 210:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
 211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     
 212:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     /* If the program operation is completed, disable the PG Bit */
 213:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     FLASH->CR &= (~FLASH_CR_PG);
 214:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 216:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Process Unlocked */
 217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   __HAL_UNLOCK(&pFlash);
 218:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   return status;
 220:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 221:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 223:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @brief   Program byte, halfword, word or double word at a specified address  with interrupt ena
 224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @param  TypeProgram  Indicate the way to program at a specified address.
 225:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *                           This parameter can be a value of @ref FLASH_Type_Program
 226:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @param  Address  specifies the address to be programmed.
 227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @param  Data specifies the data to be programmed
 228:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * 
 229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @retval HAL Status
 230:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 231:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
 232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** {
 233:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_OK;
 234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 235:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Process Locked */
 236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   __HAL_LOCK(&pFlash);
 237:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 238:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Check the parameters */
 239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram));
 240:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Enable End of FLASH Operation interrupt */
 242:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP);
 243:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Enable Error source interrupt */
 245:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   __HAL_FLASH_ENABLE_IT(FLASH_IT_ERR);
 246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 247:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Clear pending flags (if any) */  
 248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP    | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR |\
 249:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****                          FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR| FLASH_FLAG_ERSERR);  
 250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAM;
 252:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   pFlash.Address = Address;
 253:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 254:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   switch(TypeProgram)
 255:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 256:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     case FLASH_TYPEPROGRAM_BYTE :
 257:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       /*Program byte (8-bit) at a specified address.*/
 259:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       FLASH_Program_Byte(Address, (uint8_t) Data);
ARM GAS  /tmp/ccfS03PQ.s 			page 6


 260:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       break;
 261:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     }
 262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     
 263:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     case FLASH_TYPEPROGRAM_HALFWORD :
 264:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       /*Program halfword (16-bit) at a specified address.*/
 266:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       FLASH_Program_HalfWord(Address, (uint16_t) Data);
 267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       break;
 268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     }
 269:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     
 270:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     case FLASH_TYPEPROGRAM_WORD :
 271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 272:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       /*Program word (32-bit) at a specified address.*/
 273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       FLASH_Program_Word(Address, (uint32_t) Data);
 274:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       break;
 275:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     }
 276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     
 277:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     case FLASH_TYPEPROGRAM_DOUBLEWORD :
 278:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       /*Program double word (64-bit) at a specified address.*/
 280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       FLASH_Program_DoubleWord(Address, Data);
 281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       break;
 282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     }
 283:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     default :
 284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       break;
 285:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   return status;
 287:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 288:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @brief This function handles FLASH interrupt request.
 291:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @retval None
 292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** void HAL_FLASH_IRQHandler(void)
 294:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** {
 295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   uint32_t temp = 0;
 296:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* If the program operation is completed, disable the PG Bit */
 298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->CR &= (~FLASH_CR_PG);
 299:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* If the erase operation is completed, disable the SER Bit */
 301:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->CR &= (~FLASH_CR_SER);
 302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->CR &= SECTOR_MASK; 
 303:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 304:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* if the erase operation is completed, disable the MER Bit */
 305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->CR &= (~FLASH_MER_BIT);
 306:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 307:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Check FLASH End of Operation flag  */
 308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP) != RESET)
 309:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 310:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     /* Clear FLASH End of Operation pending bit */
 311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
 312:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     
 313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     switch (pFlash.ProcedureOnGoing)
 314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 315:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       case FLASH_PROC_SECTERASE :
 316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       {
ARM GAS  /tmp/ccfS03PQ.s 			page 7


 317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         /* Nb of sector to erased can be decreased */
 318:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         pFlash.NbSectorsToErase--;
 319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 320:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         /* Check if there are still sectors to erase */
 321:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         if(pFlash.NbSectorsToErase != 0)
 322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         {
 323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           temp = pFlash.Sector;
 324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           /* Indicate user which sector has been erased */
 325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           HAL_FLASH_EndOfOperationCallback(temp);
 326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 327:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           /* Increment sector number */
 328:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           temp = ++pFlash.Sector;
 329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           FLASH_Erase_Sector(temp, pFlash.VoltageForErase);
 330:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         }
 331:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         else
 332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         {
 333:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           /* No more sectors to Erase, user callback can be called.*/
 334:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           /* Reset Sector and stop Erase sectors procedure */
 335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           pFlash.Sector = temp = 0xFFFFFFFFU;
 336:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           /* FLASH EOP interrupt user callback */
 337:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           HAL_FLASH_EndOfOperationCallback(temp);
 338:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           /* Sector Erase procedure is completed */
 339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
 340:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         }
 341:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 342:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 343:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     
 344:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       case FLASH_PROC_MASSERASE :
 345:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       {
 346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         /* MassErase ended. Return the selected bank : in this product we don't have Banks */
 347:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         /* FLASH EOP interrupt user callback */
 348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         HAL_FLASH_EndOfOperationCallback(0);
 349:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         /* MAss Erase procedure is completed */
 350:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
 351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 352:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 353:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       case FLASH_PROC_PROGRAM :
 355:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       {
 356:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         /*Program ended. Return the selected address*/
 357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         /* FLASH EOP interrupt user callback */
 358:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         HAL_FLASH_EndOfOperationCallback(pFlash.Address);
 359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         /* Programming procedure is completed */
 360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
 361:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 362:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       default :
 364:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 365:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     }
 366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 367:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Check FLASH operation error flags */
 369:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_ALL_ERRORS) != RESET)
 370:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     switch (pFlash.ProcedureOnGoing)
 372:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       case FLASH_PROC_SECTERASE :
ARM GAS  /tmp/ccfS03PQ.s 			page 8


 374:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       {
 375:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         /* return the faulty sector */
 376:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         temp = pFlash.Sector;
 377:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         pFlash.Sector = 0xFFFFFFFFU;
 378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 379:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       case FLASH_PROC_MASSERASE :
 381:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       {
 382:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         /* No return in case of Mass Erase */
 383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         temp = 0;
 384:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 385:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 386:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       case FLASH_PROC_PROGRAM :
 387:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       {
 388:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         /*return the faulty address*/
 389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         temp = pFlash.Address;
 390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 391:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     default :
 393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       break;
 394:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     }
 395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     /*Save the Error code*/
 396:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     FLASH_SetErrorCode();
 397:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     /* FLASH error interrupt user callback */
 399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     HAL_FLASH_OperationErrorCallback(temp);
 400:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 401:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     /*Stop the procedure ongoing */
 402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
 403:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   if(pFlash.ProcedureOnGoing == FLASH_PROC_NONE)
 406:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 407:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     /* Disable End of FLASH Operation interrupt */
 408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     __HAL_FLASH_DISABLE_IT(FLASH_IT_EOP);
 409:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     /* Disable Error source interrupt */
 411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     __HAL_FLASH_DISABLE_IT(FLASH_IT_ERR);
 412:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 413:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     /* Process Unlocked */
 414:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     __HAL_UNLOCK(&pFlash);
 415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 416:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 417:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 419:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @brief  FLASH end of operation interrupt callback
 421:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @param  ReturnValue The value saved in this parameter depends on the ongoing procedure
 422:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *                 - Sectors Erase: Sector which has been erased (if 0xFFFFFFFF, it means that 
 423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *                                  all the selected sectors have been erased)
 424:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *                 - Program      : Address which was selected for data program
 425:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *                 - Mass Erase   : No return value expected
 426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @retval None
 427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 428:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** __weak void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue)
 429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** {
 430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Prevent unused argument(s) compilation warning */
ARM GAS  /tmp/ccfS03PQ.s 			page 9


 431:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   UNUSED(ReturnValue);
 432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* NOTE : This function Should not be modified, when the callback is needed,
 433:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   the HAL_FLASH_EndOfOperationCallback could be implemented in the user file
 434:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */ 
 435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 436:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 437:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @brief  FLASH operation error interrupt callback
 439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @param  ReturnValue The value saved in this parameter depends on the ongoing procedure
 440:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *                 - Sectors Erase: Sector which has been erased (if 0xFFFFFFFF, it means that 
 441:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *                                  all the selected sectors have been erased)
 442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *                 - Program      : Address which was selected for data program
 443:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *                 - Mass Erase   : No return value expected
 444:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @retval None
 445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 446:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** __weak void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue)
 447:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** {
 448:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Prevent unused argument(s) compilation warning */
 449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   UNUSED(ReturnValue);
 450:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* NOTE : This function Should not be modified, when the callback is needed,
 451:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   the HAL_FLASH_OperationErrorCallback could be implemented in the user file
 452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****    */ 
 453:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 454:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 456:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @}
 457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 458:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 459:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group2 Peripheral Control functions 
 460:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****  *  @brief   management functions 
 461:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****  *
 462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** @verbatim   
 463:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****  ===============================================================================
 464:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****                       ##### Peripheral Control functions #####
 465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****  ===============================================================================  
 466:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     [..]
 467:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     This subsection provides a set of functions allowing to control the FLASH 
 468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     memory operations.
 469:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 470:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** @endverbatim
 471:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @{
 472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 473:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 475:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @brief  Unlock the FLASH control register access
 476:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @retval HAL Status
 477:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 478:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Unlock(void)
 479:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** {
 480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_OK;
 481:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 482:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
 483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 484:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     /* Authorize the FLASH Registers access */
 485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     WRITE_REG(FLASH->KEYR, FLASH_KEY1);
 486:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     WRITE_REG(FLASH->KEYR, FLASH_KEY2);
 487:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
ARM GAS  /tmp/ccfS03PQ.s 			page 10


 488:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     /* Verify Flash is unlocked */
 489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
 490:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 491:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       status = HAL_ERROR;
 492:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     }
 493:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 494:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 495:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   return status;
 496:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 497:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 499:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @brief  Locks the FLASH control register access
 500:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @retval HAL Status
 501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 502:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Lock(void)
 503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** {
 504:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Set the LOCK Bit to lock the FLASH Registers access */
 505:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->CR |= FLASH_CR_LOCK;
 506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   return HAL_OK;  
 508:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 510:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 511:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @brief  Unlock the FLASH Option Control Registers access.
 512:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @retval HAL Status
 513:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 514:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void)
 515:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** {
 516:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   if((FLASH->OPTCR & FLASH_OPTCR_OPTLOCK) != RESET)
 517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 518:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     /* Authorizes the Option Byte register programming */
 519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     FLASH->OPTKEYR = FLASH_OPT_KEY1;
 520:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     FLASH->OPTKEYR = FLASH_OPT_KEY2;
 521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 522:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   else
 523:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     return HAL_ERROR;
 525:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }  
 526:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   return HAL_OK;  
 528:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 529:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 530:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 531:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @brief  Lock the FLASH Option Control Registers access.
 532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @retval HAL Status 
 533:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 534:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Lock(void)
 535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** {
 536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Set the OPTLOCK Bit to lock the FLASH Option Byte Registers access */
 537:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->OPTCR |= FLASH_OPTCR_OPTLOCK;
 538:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 539:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   return HAL_OK;  
 540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 541:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @brief  Launch the option byte loading.
 544:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @retval HAL Status
ARM GAS  /tmp/ccfS03PQ.s 			page 11


 545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Launch(void)
 547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** {
 548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Set the OPTSTRT bit in OPTCR register */
 549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->OPTCR |= FLASH_OPTCR_OPTSTRT;
 550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Wait for last operation to be completed */
 552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   return(FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE)); 
 553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 554:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 555:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @}
 557:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 558:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group3 Peripheral State and Errors functions 
 560:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****  *  @brief   Peripheral Errors functions 
 561:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****  *
 562:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** @verbatim   
 563:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****  ===============================================================================
 564:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****                 ##### Peripheral Errors functions #####
 565:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****  ===============================================================================  
 566:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     [..]
 567:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     This subsection permits to get in run-time Errors of the FLASH peripheral.
 568:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 569:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** @endverbatim
 570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @{
 571:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 572:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 573:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 574:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @brief  Get the specific FLASH error flag.
 575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @retval FLASH_ErrorCode: The returned value can be:
 576:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *            @arg FLASH_ERROR_ERS: FLASH Erasing Sequence error flag 
 577:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *            @arg FLASH_ERROR_PGP: FLASH Programming Parallelism error flag  
 578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *            @arg FLASH_ERROR_PGA: FLASH Programming Alignment error flag
 579:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *            @arg FLASH_ERROR_WRP: FLASH Write protected error flag
 580:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *            @arg FLASH_ERROR_OPERATION: FLASH operation Error flag 
 581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 582:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** uint32_t HAL_FLASH_GetError(void)
 583:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** { 
 584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****    return pFlash.ErrorCode;
 585:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }  
 586:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 587:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @}
 589:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */    
 590:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 592:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @brief  Wait for a FLASH operation to complete.
 593:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @param  Timeout maximum flash operationtimeout
 594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @retval HAL Status
 595:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout)
 597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** { 
 598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   uint32_t tickstart = 0;
 599:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Clear Error Code */
 601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
ARM GAS  /tmp/ccfS03PQ.s 			page 12


 602:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 603:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset.
 604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****      Even if the FLASH operation fails, the BUSY flag will be reset and an error
 605:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****      flag will be set */
 606:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Get tick */
 607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   tickstart = HAL_GetTick();
 608:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY) != RESET) 
 610:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   { 
 611:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     if(Timeout != HAL_MAX_DELAY)
 612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       if((Timeout == 0)||((HAL_GetTick() - tickstart ) > Timeout))
 614:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       {
 615:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         return HAL_TIMEOUT;
 616:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 617:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     } 
 618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 619:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 620:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_ALL_ERRORS) != RESET)
 621:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     /*Save the error code*/
 623:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     FLASH_SetErrorCode();
 624:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     return HAL_ERROR;
 625:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 627:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Check FLASH End of Operation flag  */
 628:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP) != RESET)
 629:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 630:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     /* Clear FLASH End of Operation pending bit */
 631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
 632:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 634:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* If there is an error flag set */
 635:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   return HAL_OK;
 636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 637:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }  
 638:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @brief  Program a double word (64-bit) at a specified address.
 641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @note   This function must be used when the device voltage range is from
 642:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *         2.7V to 3.6V and an External Vpp is present.
 643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *
 644:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @note   If an erase and a program operations are requested simultaneously,    
 645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *         the erase operation is performed before the program one.
 646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *  
 647:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @param  Address specifies the address to be programmed.
 648:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @param  Data specifies the data to be programmed.
 649:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @retval None
 650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 651:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** static void FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data)
 652:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** {
  28              		.loc 1 652 1 view -0
  29              		.cfi_startproc
  30              		@ args = 0, pretend = 0, frame = 0
  31              		@ frame_needed = 0, uses_anonymous_args = 0
  32              		@ link register save eliminated.
  33              		.loc 1 652 1 is_stmt 0 view .LVU1
ARM GAS  /tmp/ccfS03PQ.s 			page 13


  34 0000 10B4     		push	{r4}
  35              	.LCFI0:
  36              		.cfi_def_cfa_offset 4
  37              		.cfi_offset 4, -4
 653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Check the parameters */
 654:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   assert_param(IS_FLASH_ADDRESS(Address));
  38              		.loc 1 654 3 is_stmt 1 view .LVU2
 655:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 656:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* If the previous operation is completed, proceed to program the new data */
 657:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->CR &= CR_PSIZE_MASK;
  39              		.loc 1 657 3 view .LVU3
  40              		.loc 1 657 8 is_stmt 0 view .LVU4
  41 0002 0B49     		ldr	r1, .L3
  42 0004 0C69     		ldr	r4, [r1, #16]
  43              		.loc 1 657 13 view .LVU5
  44 0006 24F44074 		bic	r4, r4, #768
  45 000a 0C61     		str	r4, [r1, #16]
 658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->CR |= FLASH_PSIZE_DOUBLE_WORD;
  46              		.loc 1 658 3 is_stmt 1 view .LVU6
  47              		.loc 1 658 8 is_stmt 0 view .LVU7
  48 000c 0C69     		ldr	r4, [r1, #16]
  49              		.loc 1 658 13 view .LVU8
  50 000e 44F44074 		orr	r4, r4, #768
  51 0012 0C61     		str	r4, [r1, #16]
 659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->CR |= FLASH_CR_PG;
  52              		.loc 1 659 3 is_stmt 1 view .LVU9
  53              		.loc 1 659 8 is_stmt 0 view .LVU10
  54 0014 0C69     		ldr	r4, [r1, #16]
  55              		.loc 1 659 13 view .LVU11
  56 0016 44F00104 		orr	r4, r4, #1
  57 001a 0C61     		str	r4, [r1, #16]
 660:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 661:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Program first word */
 662:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *(__IO uint32_t*)Address = (uint32_t)Data;
  58              		.loc 1 662 3 is_stmt 1 view .LVU12
  59              		.loc 1 662 28 is_stmt 0 view .LVU13
  60 001c 0260     		str	r2, [r0]
 663:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Barrier to ensure programming is performed in 2 steps, in right order
 664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     (independently of compiler optimization behavior) */
 665:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   __ISB();
  61              		.loc 1 665 3 is_stmt 1 view .LVU14
  62              	.LBB12:
  63              	.LBI12:
  64              		.file 2 "Drivers/CMSIS/Include/cmsis_gcc.h"
   1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//**
   2:Drivers/CMSIS/Include/cmsis_gcc.h ****  * @file     cmsis_gcc.h
   3:Drivers/CMSIS/Include/cmsis_gcc.h ****  * @brief    CMSIS compiler GCC header file
   4:Drivers/CMSIS/Include/cmsis_gcc.h ****  * @version  V5.0.4
   5:Drivers/CMSIS/Include/cmsis_gcc.h ****  * @date     09. April 2018
   6:Drivers/CMSIS/Include/cmsis_gcc.h ****  ******************************************************************************/
   7:Drivers/CMSIS/Include/cmsis_gcc.h **** /*
   8:Drivers/CMSIS/Include/cmsis_gcc.h ****  * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
   9:Drivers/CMSIS/Include/cmsis_gcc.h ****  *
  10:Drivers/CMSIS/Include/cmsis_gcc.h ****  * SPDX-License-Identifier: Apache-2.0
  11:Drivers/CMSIS/Include/cmsis_gcc.h ****  *
  12:Drivers/CMSIS/Include/cmsis_gcc.h ****  * Licensed under the Apache License, Version 2.0 (the License); you may
  13:Drivers/CMSIS/Include/cmsis_gcc.h ****  * not use this file except in compliance with the License.
ARM GAS  /tmp/ccfS03PQ.s 			page 14


  14:Drivers/CMSIS/Include/cmsis_gcc.h ****  * You may obtain a copy of the License at
  15:Drivers/CMSIS/Include/cmsis_gcc.h ****  *
  16:Drivers/CMSIS/Include/cmsis_gcc.h ****  * www.apache.org/licenses/LICENSE-2.0
  17:Drivers/CMSIS/Include/cmsis_gcc.h ****  *
  18:Drivers/CMSIS/Include/cmsis_gcc.h ****  * Unless required by applicable law or agreed to in writing, software
  19:Drivers/CMSIS/Include/cmsis_gcc.h ****  * distributed under the License is distributed on an AS IS BASIS, WITHOUT
  20:Drivers/CMSIS/Include/cmsis_gcc.h ****  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  21:Drivers/CMSIS/Include/cmsis_gcc.h ****  * See the License for the specific language governing permissions and
  22:Drivers/CMSIS/Include/cmsis_gcc.h ****  * limitations under the License.
  23:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
  24:Drivers/CMSIS/Include/cmsis_gcc.h **** 
  25:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H
  26:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H
  27:Drivers/CMSIS/Include/cmsis_gcc.h **** 
  28:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */
  29:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  30:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion"
  31:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion"
  32:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter"
  33:Drivers/CMSIS/Include/cmsis_gcc.h **** 
  34:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Fallback for __has_builtin */
  35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __has_builtin
  36:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __has_builtin(x) (0)
  37:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  38:Drivers/CMSIS/Include/cmsis_gcc.h **** 
  39:Drivers/CMSIS/Include/cmsis_gcc.h **** /* CMSIS compiler specific defines */
  40:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __ASM
  41:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __ASM                                  __asm
  42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __INLINE
  44:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __INLINE                               inline
  45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __STATIC_INLINE
  47:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __STATIC_INLINE                        static inline
  48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __STATIC_FORCEINLINE                 
  50:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __STATIC_FORCEINLINE                   __attribute__((always_inline)) static inline
  51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif                                           
  52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __NO_RETURN
  53:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __NO_RETURN                            __attribute__((__noreturn__))
  54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __USED
  56:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __USED                                 __attribute__((used))
  57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __WEAK
  59:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __WEAK                                 __attribute__((weak))
  60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __PACKED
  62:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __PACKED                               __attribute__((packed, aligned(1)))
  63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __PACKED_STRUCT
  65:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __PACKED_STRUCT                        struct __attribute__((packed, aligned(1)))
  66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __PACKED_UNION
  68:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __PACKED_UNION                         union __attribute__((packed, aligned(1)))
  69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __UNALIGNED_UINT32        /* deprecated */
ARM GAS  /tmp/ccfS03PQ.s 			page 15


  71:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic push
  72:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic ignored "-Wpacked"
  73:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic ignored "-Wattributes"
  74:Drivers/CMSIS/Include/cmsis_gcc.h ****   struct __attribute__((packed)) T_UINT32 { uint32_t v; };
  75:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic pop
  76:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __UNALIGNED_UINT32(x)                  (((struct T_UINT32 *)(x))->v)
  77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __UNALIGNED_UINT16_WRITE
  79:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic push
  80:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic ignored "-Wpacked"
  81:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic ignored "-Wattributes"
  82:Drivers/CMSIS/Include/cmsis_gcc.h ****   __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
  83:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic pop
  84:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __UNALIGNED_UINT16_WRITE(addr, val)    (void)((((struct T_UINT16_WRITE *)(void *)(addr))-
  85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __UNALIGNED_UINT16_READ
  87:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic push
  88:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic ignored "-Wpacked"
  89:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic ignored "-Wattributes"
  90:Drivers/CMSIS/Include/cmsis_gcc.h ****   __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
  91:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic pop
  92:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __UNALIGNED_UINT16_READ(addr)          (((const struct T_UINT16_READ *)(const void *)(add
  93:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  94:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __UNALIGNED_UINT32_WRITE
  95:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic push
  96:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic ignored "-Wpacked"
  97:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic ignored "-Wattributes"
  98:Drivers/CMSIS/Include/cmsis_gcc.h ****   __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
  99:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic pop
 100:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __UNALIGNED_UINT32_WRITE(addr, val)    (void)((((struct T_UINT32_WRITE *)(void *)(addr))-
 101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __UNALIGNED_UINT32_READ
 103:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic push
 104:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic ignored "-Wpacked"
 105:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic ignored "-Wattributes"
 106:Drivers/CMSIS/Include/cmsis_gcc.h ****   __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
 107:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic pop
 108:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __UNALIGNED_UINT32_READ(addr)          (((const struct T_UINT32_READ *)(const void *)(add
 109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __ALIGNED
 111:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __ALIGNED(x)                           __attribute__((aligned(x)))
 112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __RESTRICT
 114:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __RESTRICT                             __restrict
 115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 116:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 117:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 118:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ###########################  Core Function Access  ########################### */
 119:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup  CMSIS_Core_FunctionInterface
 120:Drivers/CMSIS/Include/cmsis_gcc.h ****     \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions
 121:Drivers/CMSIS/Include/cmsis_gcc.h ****   @{
 122:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 123:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 124:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 125:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Enable IRQ Interrupts
 126:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Enables IRQ interrupts by clearing the I-bit in the CPSR.
 127:Drivers/CMSIS/Include/cmsis_gcc.h ****            Can only be executed in Privileged modes.
ARM GAS  /tmp/ccfS03PQ.s 			page 16


 128:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 129:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void)
 130:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 131:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("cpsie i" : : : "memory");
 132:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 133:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 134:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 135:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 136:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Disable IRQ Interrupts
 137:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Disables IRQ interrupts by setting the I-bit in the CPSR.
 138:Drivers/CMSIS/Include/cmsis_gcc.h ****            Can only be executed in Privileged modes.
 139:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 140:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void)
 141:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 142:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("cpsid i" : : : "memory");
 143:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 144:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 145:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 146:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 147:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Control Register
 148:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the content of the Control Register.
 149:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               Control Register value
 150:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 151:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_CONTROL(void)
 152:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 153:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 154:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 155:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, control" : "=r" (result) );
 156:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 157:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 158:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 159:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 160:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 161:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 162:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Control Register (non-secure)
 163:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the content of the non-secure Control Register when in secure mode.
 164:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               non-secure Control Register value
 165:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 166:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void)
 167:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 168:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 169:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 170:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, control_ns" : "=r" (result) );
 171:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 172:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 173:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 174:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 175:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 176:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 177:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Control Register
 178:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Writes the given value to the Control Register.
 179:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    control  Control Register value to set
 180:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 181:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control)
 182:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 183:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR control, %0" : : "r" (control) : "memory");
 184:Drivers/CMSIS/Include/cmsis_gcc.h **** }
ARM GAS  /tmp/ccfS03PQ.s 			page 17


 185:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 186:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 187:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 188:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 189:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Control Register (non-secure)
 190:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Writes the given value to the non-secure Control Register when in secure state.
 191:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    control  Control Register value to set
 192:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 193:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control)
 194:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 195:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory");
 196:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 197:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 198:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 199:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 200:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 201:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get IPSR Register
 202:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the content of the IPSR Register.
 203:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               IPSR Register value
 204:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 205:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_IPSR(void)
 206:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 207:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 208:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 209:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, ipsr" : "=r" (result) );
 210:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 211:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 212:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 213:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 214:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 215:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get APSR Register
 216:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the content of the APSR Register.
 217:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               APSR Register value
 218:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 219:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void)
 220:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 221:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 222:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 223:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, apsr" : "=r" (result) );
 224:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 225:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 226:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 227:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 228:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 229:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get xPSR Register
 230:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the content of the xPSR Register.
 231:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               xPSR Register value
 232:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void)
 234:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 235:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 236:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 237:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, xpsr" : "=r" (result) );
 238:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 239:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 240:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 241:Drivers/CMSIS/Include/cmsis_gcc.h **** 
ARM GAS  /tmp/ccfS03PQ.s 			page 18


 242:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 243:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Process Stack Pointer
 244:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the Process Stack Pointer (PSP).
 245:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               PSP Register value
 246:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 247:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSP(void)
 248:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 249:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 250:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 251:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, psp"  : "=r" (result) );
 252:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 253:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 254:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 255:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 256:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 257:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 258:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Process Stack Pointer (non-secure)
 259:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure s
 260:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               PSP Register value
 261:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 262:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void)
 263:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 264:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 265:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 266:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, psp_ns"  : "=r" (result) );
 267:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 268:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 269:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 270:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 271:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 272:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 273:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Process Stack Pointer
 274:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the Process Stack Pointer (PSP).
 275:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    topOfProcStack  Process Stack Pointer value to set
 276:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 277:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack)
 278:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 279:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : );
 280:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 281:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 282:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 283:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 284:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 285:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Process Stack Pointer (non-secure)
 286:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure sta
 287:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    topOfProcStack  Process Stack Pointer value to set
 288:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 289:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack)
 290:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 291:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : );
 292:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 293:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 294:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 295:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 296:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 297:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Main Stack Pointer
 298:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the Main Stack Pointer (MSP).
ARM GAS  /tmp/ccfS03PQ.s 			page 19


 299:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               MSP Register value
 300:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 301:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSP(void)
 302:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 303:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 304:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 305:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, msp" : "=r" (result) );
 306:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 307:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 308:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 309:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 310:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 311:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 312:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Main Stack Pointer (non-secure)
 313:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure stat
 314:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               MSP Register value
 315:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 316:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void)
 317:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 318:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 319:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 320:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, msp_ns" : "=r" (result) );
 321:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 322:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 323:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 324:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 325:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 326:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 327:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Main Stack Pointer
 328:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the Main Stack Pointer (MSP).
 329:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    topOfMainStack  Main Stack Pointer value to set
 330:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 331:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack)
 332:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 333:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : );
 334:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 335:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 336:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 337:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 338:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 339:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Main Stack Pointer (non-secure)
 340:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state.
 341:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    topOfMainStack  Main Stack Pointer value to set
 342:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 343:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack)
 344:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 345:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : );
 346:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 347:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 348:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 349:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 350:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 351:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 352:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Stack Pointer (non-secure)
 353:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state.
 354:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               SP Register value
 355:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
ARM GAS  /tmp/ccfS03PQ.s 			page 20


 356:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void)
 357:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 358:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 359:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 360:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, sp_ns" : "=r" (result) );
 361:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 362:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 363:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 364:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 365:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 366:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Stack Pointer (non-secure)
 367:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state.
 368:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    topOfStack  Stack Pointer value to set
 369:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 370:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack)
 371:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 372:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : );
 373:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 374:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 375:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 376:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 377:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 378:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Priority Mask
 379:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current state of the priority mask bit from the Priority Mask Register.
 380:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               Priority Mask value
 381:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 382:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void)
 383:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 384:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 385:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 386:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
 387:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 388:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 389:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 390:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 391:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 392:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 393:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Priority Mask (non-secure)
 394:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current state of the non-secure priority mask bit from the Priority Mask Reg
 395:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               Priority Mask value
 396:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 397:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void)
 398:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 399:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 400:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 401:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory");
 402:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 403:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 404:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 405:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 406:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 407:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 408:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Priority Mask
 409:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the Priority Mask Register.
 410:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    priMask  Priority Mask
 411:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 412:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask)
ARM GAS  /tmp/ccfS03PQ.s 			page 21


 413:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 414:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
 415:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 416:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 417:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 418:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 419:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 420:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Priority Mask (non-secure)
 421:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the non-secure Priority Mask Register when in secure state.
 422:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    priMask  Priority Mask
 423:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 424:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask)
 425:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 426:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory");
 427:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 428:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 429:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 430:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 431:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__      ) && (__ARM_ARCH_7M__      == 1)) || \
 432:Drivers/CMSIS/Include/cmsis_gcc.h ****      (defined (__ARM_ARCH_7EM__     ) && (__ARM_ARCH_7EM__     == 1)) || \
 433:Drivers/CMSIS/Include/cmsis_gcc.h ****      (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))    )
 434:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 435:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Enable FIQ
 436:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Enables FIQ interrupts by clearing the F-bit in the CPSR.
 437:Drivers/CMSIS/Include/cmsis_gcc.h ****            Can only be executed in Privileged modes.
 438:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 439:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_fault_irq(void)
 440:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 441:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("cpsie f" : : : "memory");
 442:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 443:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 444:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 445:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 446:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Disable FIQ
 447:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Disables FIQ interrupts by setting the F-bit in the CPSR.
 448:Drivers/CMSIS/Include/cmsis_gcc.h ****            Can only be executed in Privileged modes.
 449:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 450:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_fault_irq(void)
 451:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 452:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("cpsid f" : : : "memory");
 453:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 454:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 455:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 456:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 457:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Base Priority
 458:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the Base Priority register.
 459:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               Base Priority register value
 460:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 461:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void)
 462:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 463:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 464:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 465:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, basepri" : "=r" (result) );
 466:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 467:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 468:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 469:Drivers/CMSIS/Include/cmsis_gcc.h **** 
ARM GAS  /tmp/ccfS03PQ.s 			page 22


 470:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 471:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 472:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Base Priority (non-secure)
 473:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the non-secure Base Priority register when in secure state.
 474:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               Base Priority register value
 475:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 476:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void)
 477:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 478:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 479:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 480:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) );
 481:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 482:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 483:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 484:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 485:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 486:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 487:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Base Priority
 488:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the Base Priority register.
 489:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    basePri  Base Priority value to set
 490:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 491:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri)
 492:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 493:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory");
 494:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 495:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 496:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 497:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 498:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 499:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Base Priority (non-secure)
 500:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the non-secure Base Priority register when in secure state.
 501:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    basePri  Base Priority value to set
 502:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 503:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri)
 504:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 505:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory");
 506:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 507:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 508:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 509:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 510:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 511:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Base Priority with condition
 512:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the Base Priority register only if BASEPRI masking is disable
 513:Drivers/CMSIS/Include/cmsis_gcc.h ****            or the new value increases the BASEPRI priority level.
 514:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    basePri  Base Priority value to set
 515:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 516:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri)
 517:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 518:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory");
 519:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 520:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 521:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 522:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 523:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Fault Mask
 524:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the Fault Mask register.
 525:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               Fault Mask register value
 526:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
ARM GAS  /tmp/ccfS03PQ.s 			page 23


 527:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void)
 528:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 529:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 530:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 531:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, faultmask" : "=r" (result) );
 532:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 533:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 534:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 535:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 536:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 537:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 538:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Fault Mask (non-secure)
 539:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the non-secure Fault Mask register when in secure state.
 540:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               Fault Mask register value
 541:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 542:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void)
 543:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 544:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 545:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 546:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) );
 547:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 548:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 549:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 550:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 551:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 552:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 553:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Fault Mask
 554:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the Fault Mask register.
 555:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    faultMask  Fault Mask value to set
 556:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 557:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask)
 558:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 559:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory");
 560:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 561:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 562:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 563:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 564:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 565:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Fault Mask (non-secure)
 566:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the non-secure Fault Mask register when in secure state.
 567:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    faultMask  Fault Mask value to set
 568:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 569:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask)
 570:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 571:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory");
 572:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 573:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 574:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 575:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_7M__      ) && (__ARM_ARCH_7M__      == 1)) || \
 576:Drivers/CMSIS/Include/cmsis_gcc.h ****            (defined (__ARM_ARCH_7EM__     ) && (__ARM_ARCH_7EM__     == 1)) || \
 577:Drivers/CMSIS/Include/cmsis_gcc.h ****            (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))    ) */
 578:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 579:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 580:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
 581:Drivers/CMSIS/Include/cmsis_gcc.h ****      (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1))    )
 582:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 583:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
ARM GAS  /tmp/ccfS03PQ.s 			page 24


 584:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Process Stack Pointer Limit
 585:Drivers/CMSIS/Include/cmsis_gcc.h ****   Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
 586:Drivers/CMSIS/Include/cmsis_gcc.h ****   Stack Pointer Limit register hence zero is returned always in non-secure
 587:Drivers/CMSIS/Include/cmsis_gcc.h ****   mode.
 588:Drivers/CMSIS/Include/cmsis_gcc.h ****   
 589:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the Process Stack Pointer Limit (PSPLIM).
 590:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               PSPLIM Register value
 591:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 592:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSPLIM(void)
 593:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 594:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
 595:Drivers/CMSIS/Include/cmsis_gcc.h ****     (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
 596:Drivers/CMSIS/Include/cmsis_gcc.h ****     // without main extensions, the non-secure PSPLIM is RAZ/WI
 597:Drivers/CMSIS/Include/cmsis_gcc.h ****   return 0U;
 598:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 599:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 600:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, psplim"  : "=r" (result) );
 601:Drivers/CMSIS/Include/cmsis_gcc.h ****   return result;
 602:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 603:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 604:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 605:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3))
 606:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 607:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Process Stack Pointer Limit (non-secure)
 608:Drivers/CMSIS/Include/cmsis_gcc.h ****   Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
 609:Drivers/CMSIS/Include/cmsis_gcc.h ****   Stack Pointer Limit register hence zero is returned always.
 610:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 611:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in
 612:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               PSPLIM Register value
 613:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 614:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void)
 615:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 616:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
 617:Drivers/CMSIS/Include/cmsis_gcc.h ****   // without main extensions, the non-secure PSPLIM is RAZ/WI
 618:Drivers/CMSIS/Include/cmsis_gcc.h ****   return 0U;
 619:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 620:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 621:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, psplim_ns"  : "=r" (result) );
 622:Drivers/CMSIS/Include/cmsis_gcc.h ****   return result;
 623:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 624:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 625:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 626:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 627:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 628:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 629:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Process Stack Pointer Limit
 630:Drivers/CMSIS/Include/cmsis_gcc.h ****   Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
 631:Drivers/CMSIS/Include/cmsis_gcc.h ****   Stack Pointer Limit register hence the write is silently ignored in non-secure
 632:Drivers/CMSIS/Include/cmsis_gcc.h ****   mode.
 633:Drivers/CMSIS/Include/cmsis_gcc.h ****   
 634:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM).
 635:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    ProcStackPtrLimit  Process Stack Pointer Limit value to set
 636:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 637:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit)
 638:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 639:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
 640:Drivers/CMSIS/Include/cmsis_gcc.h ****     (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
ARM GAS  /tmp/ccfS03PQ.s 			page 25


 641:Drivers/CMSIS/Include/cmsis_gcc.h ****   // without main extensions, the non-secure PSPLIM is RAZ/WI
 642:Drivers/CMSIS/Include/cmsis_gcc.h ****   (void)ProcStackPtrLimit;
 643:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 644:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit));
 645:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 646:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 647:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 648:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 649:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE  ) && (__ARM_FEATURE_CMSE   == 3))
 650:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 651:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Process Stack Pointer (non-secure)
 652:Drivers/CMSIS/Include/cmsis_gcc.h ****   Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
 653:Drivers/CMSIS/Include/cmsis_gcc.h ****   Stack Pointer Limit register hence the write is silently ignored.
 654:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 655:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in s
 656:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    ProcStackPtrLimit  Process Stack Pointer Limit value to set
 657:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 658:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit)
 659:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 660:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
 661:Drivers/CMSIS/Include/cmsis_gcc.h ****   // without main extensions, the non-secure PSPLIM is RAZ/WI
 662:Drivers/CMSIS/Include/cmsis_gcc.h ****   (void)ProcStackPtrLimit;
 663:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 664:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit));
 665:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 666:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 667:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 668:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 669:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 670:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 671:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Main Stack Pointer Limit
 672:Drivers/CMSIS/Include/cmsis_gcc.h ****   Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
 673:Drivers/CMSIS/Include/cmsis_gcc.h ****   Stack Pointer Limit register hence zero is returned always in non-secure
 674:Drivers/CMSIS/Include/cmsis_gcc.h ****   mode.
 675:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 676:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the Main Stack Pointer Limit (MSPLIM).
 677:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               MSPLIM Register value
 678:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 679:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void)
 680:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 681:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
 682:Drivers/CMSIS/Include/cmsis_gcc.h ****     (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
 683:Drivers/CMSIS/Include/cmsis_gcc.h ****   // without main extensions, the non-secure MSPLIM is RAZ/WI
 684:Drivers/CMSIS/Include/cmsis_gcc.h ****   return 0U;
 685:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 686:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 687:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, msplim" : "=r" (result) );
 688:Drivers/CMSIS/Include/cmsis_gcc.h ****   return result;
 689:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 690:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 691:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 692:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 693:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE  ) && (__ARM_FEATURE_CMSE   == 3))
 694:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 695:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Main Stack Pointer Limit (non-secure)
 696:Drivers/CMSIS/Include/cmsis_gcc.h ****   Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
 697:Drivers/CMSIS/Include/cmsis_gcc.h ****   Stack Pointer Limit register hence zero is returned always.
ARM GAS  /tmp/ccfS03PQ.s 			page 26


 698:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 699:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in sec
 700:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               MSPLIM Register value
 701:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 702:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void)
 703:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 704:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
 705:Drivers/CMSIS/Include/cmsis_gcc.h ****   // without main extensions, the non-secure MSPLIM is RAZ/WI
 706:Drivers/CMSIS/Include/cmsis_gcc.h ****   return 0U;
 707:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 708:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 709:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) );
 710:Drivers/CMSIS/Include/cmsis_gcc.h ****   return result;
 711:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 712:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 713:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 714:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 715:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 716:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 717:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Main Stack Pointer Limit
 718:Drivers/CMSIS/Include/cmsis_gcc.h ****   Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
 719:Drivers/CMSIS/Include/cmsis_gcc.h ****   Stack Pointer Limit register hence the write is silently ignored in non-secure
 720:Drivers/CMSIS/Include/cmsis_gcc.h ****   mode.
 721:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 722:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM).
 723:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    MainStackPtrLimit  Main Stack Pointer Limit value to set
 724:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 725:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit)
 726:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 727:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
 728:Drivers/CMSIS/Include/cmsis_gcc.h ****     (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
 729:Drivers/CMSIS/Include/cmsis_gcc.h ****   // without main extensions, the non-secure MSPLIM is RAZ/WI
 730:Drivers/CMSIS/Include/cmsis_gcc.h ****   (void)MainStackPtrLimit;
 731:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 732:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit));
 733:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 734:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 735:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 736:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 737:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE  ) && (__ARM_FEATURE_CMSE   == 3))
 738:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 739:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Main Stack Pointer Limit (non-secure)
 740:Drivers/CMSIS/Include/cmsis_gcc.h ****   Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
 741:Drivers/CMSIS/Include/cmsis_gcc.h ****   Stack Pointer Limit register hence the write is silently ignored.
 742:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 743:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secu
 744:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    MainStackPtrLimit  Main Stack Pointer value to set
 745:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 746:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit)
 747:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 748:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
 749:Drivers/CMSIS/Include/cmsis_gcc.h ****   // without main extensions, the non-secure MSPLIM is RAZ/WI
 750:Drivers/CMSIS/Include/cmsis_gcc.h ****   (void)MainStackPtrLimit;
 751:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 752:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit));
 753:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 754:Drivers/CMSIS/Include/cmsis_gcc.h **** }
ARM GAS  /tmp/ccfS03PQ.s 			page 27


 755:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 756:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 757:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
 758:Drivers/CMSIS/Include/cmsis_gcc.h ****            (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1))    ) */
 759:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 760:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 761:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 762:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get FPSCR
 763:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the Floating Point Status/Control register.
 764:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               Floating Point Status/Control register value
 765:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 766:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FPSCR(void)
 767:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 768:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \
 769:Drivers/CMSIS/Include/cmsis_gcc.h ****      (defined (__FPU_USED   ) && (__FPU_USED    == 1U))     )
 770:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_get_fpscr) 
 771:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed
 772:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
 773:Drivers/CMSIS/Include/cmsis_gcc.h ****   /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
 774:Drivers/CMSIS/Include/cmsis_gcc.h ****   return __builtin_arm_get_fpscr();
 775:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 776:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 777:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 778:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("VMRS %0, fpscr" : "=r" (result) );
 779:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 780:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 781:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 782:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(0U);
 783:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 784:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 785:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 786:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 787:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 788:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set FPSCR
 789:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the Floating Point Status/Control register.
 790:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    fpscr  Floating Point Status/Control value to set
 791:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 792:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr)
 793:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 794:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \
 795:Drivers/CMSIS/Include/cmsis_gcc.h ****      (defined (__FPU_USED   ) && (__FPU_USED    == 1U))     )
 796:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_set_fpscr)
 797:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed
 798:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
 799:Drivers/CMSIS/Include/cmsis_gcc.h ****   /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
 800:Drivers/CMSIS/Include/cmsis_gcc.h ****   __builtin_arm_set_fpscr(fpscr);
 801:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 802:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory");
 803:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 804:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 805:Drivers/CMSIS/Include/cmsis_gcc.h ****   (void)fpscr;
 806:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 807:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 808:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 809:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 810:Drivers/CMSIS/Include/cmsis_gcc.h **** /*@} end of CMSIS_Core_RegAccFunctions */
 811:Drivers/CMSIS/Include/cmsis_gcc.h **** 
ARM GAS  /tmp/ccfS03PQ.s 			page 28


 812:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 813:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ##########################  Core Instruction Access  ######################### */
 814:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface
 815:Drivers/CMSIS/Include/cmsis_gcc.h ****   Access to dedicated instructions
 816:Drivers/CMSIS/Include/cmsis_gcc.h ****   @{
 817:Drivers/CMSIS/Include/cmsis_gcc.h **** */
 818:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 819:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2.
 820:Drivers/CMSIS/Include/cmsis_gcc.h ****  * For thumb1, use low register (r0-r7), specified by constraint "l"
 821:Drivers/CMSIS/Include/cmsis_gcc.h ****  * Otherwise, use general registers, specified by constraint "r" */
 822:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__)
 823:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r)
 824:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r)
 825:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r)
 826:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 827:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r)
 828:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r)
 829:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r)
 830:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 831:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 832:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 833:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   No Operation
 834:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details No Operation does nothing. This instruction can be used for code alignment purposes.
 835:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 836:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP()                             __ASM volatile ("nop")
 837:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 838:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 839:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Wait For Interrupt
 840:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o
 841:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 842:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI()                             __ASM volatile ("wfi")
 843:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 844:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 845:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 846:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Wait For Event
 847:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Wait For Event is a hint instruction that permits the processor to enter
 848:Drivers/CMSIS/Include/cmsis_gcc.h ****            a low-power state until one of a number of events occurs.
 849:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 850:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE()                             __ASM volatile ("wfe")
 851:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 852:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 853:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 854:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Send Event
 855:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Send Event is a hint instruction. It causes an event to be signaled to the CPU.
 856:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 857:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV()                             __ASM volatile ("sev")
 858:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 859:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 860:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 861:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Instruction Synchronization Barrier
 862:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Instruction Synchronization Barrier flushes the pipeline in the processor,
 863:Drivers/CMSIS/Include/cmsis_gcc.h ****            so that all instructions following the ISB are fetched from cache or memory,
 864:Drivers/CMSIS/Include/cmsis_gcc.h ****            after the instruction has been completed.
 865:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 866:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void)
  65              		.loc 2 866 27 view .LVU15
  66              	.LBB13:
ARM GAS  /tmp/ccfS03PQ.s 			page 29


 867:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 868:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("isb 0xF":::"memory");
  67              		.loc 2 868 3 view .LVU16
  68              		.syntax unified
  69              	@ 868 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
  70 001e BFF36F8F 		isb 0xF
  71              	@ 0 "" 2
  72              		.thumb
  73              		.syntax unified
  74              	.LBE13:
  75              	.LBE12:
 666:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Program second word */
 668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *(__IO uint32_t*)(Address+4) = (uint32_t)(Data >> 32);
  76              		.loc 1 668 3 view .LVU17
  77              		.loc 1 668 32 is_stmt 0 view .LVU18
  78 0022 4360     		str	r3, [r0, #4]
 669:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 670:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Data synchronous Barrier (DSB) Just after the write operation
 671:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****      This will force the CPU to respect the sequence of instruction (no optimization).*/
 672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   __DSB();
  79              		.loc 1 672 3 is_stmt 1 view .LVU19
  80              	.LBB14:
  81              	.LBI14:
 869:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 870:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 871:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 872:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 873:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Data Synchronization Barrier
 874:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Acts as a special kind of Data Memory Barrier.
 875:Drivers/CMSIS/Include/cmsis_gcc.h ****            It completes when all explicit memory accesses before this instruction complete.
 876:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 877:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DSB(void)
  82              		.loc 2 877 27 view .LVU20
  83              	.LBB15:
 878:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 879:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("dsb 0xF":::"memory");
  84              		.loc 2 879 3 view .LVU21
  85              		.syntax unified
  86              	@ 879 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
  87 0024 BFF34F8F 		dsb 0xF
  88              	@ 0 "" 2
  89              		.thumb
  90              		.syntax unified
  91              	.LBE15:
  92              	.LBE14:
 673:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
  93              		.loc 1 673 1 is_stmt 0 view .LVU22
  94 0028 5DF8044B 		ldr	r4, [sp], #4
  95              	.LCFI1:
  96              		.cfi_restore 4
  97              		.cfi_def_cfa_offset 0
  98 002c 7047     		bx	lr
  99              	.L4:
 100 002e 00BF     		.align	2
 101              	.L3:
 102 0030 003C0240 		.word	1073888256
ARM GAS  /tmp/ccfS03PQ.s 			page 30


 103              		.cfi_endproc
 104              	.LFE153:
 106              		.section	.text.FLASH_Program_Word,"ax",%progbits
 107              		.align	1
 108              		.syntax unified
 109              		.thumb
 110              		.thumb_func
 112              	FLASH_Program_Word:
 113              	.LVL1:
 114              	.LFB154:
 674:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 675:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 676:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @brief  Program word (32-bit) at a specified address.
 678:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @note   This function must be used when the device voltage range is from
 679:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *         2.7V to 3.3V.
 680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *
 681:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @note   If an erase and a program operations are requested simultaneously,    
 682:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *         the erase operation is performed before the program one.
 683:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *  
 684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @param  Address specifies the address to be programmed.
 685:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @param  Data specifies the data to be programmed.
 686:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @retval None
 687:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** static void FLASH_Program_Word(uint32_t Address, uint32_t Data)
 689:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** {
 115              		.loc 1 689 1 is_stmt 1 view -0
 116              		.cfi_startproc
 117              		@ args = 0, pretend = 0, frame = 0
 118              		@ frame_needed = 0, uses_anonymous_args = 0
 119              		@ link register save eliminated.
 690:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Check the parameters */
 691:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   assert_param(IS_FLASH_ADDRESS(Address));
 120              		.loc 1 691 3 view .LVU24
 692:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 693:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* If the previous operation is completed, proceed to program the new data */
 694:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->CR &= CR_PSIZE_MASK;
 121              		.loc 1 694 3 view .LVU25
 122              		.loc 1 694 8 is_stmt 0 view .LVU26
 123 0000 084B     		ldr	r3, .L6
 124 0002 1A69     		ldr	r2, [r3, #16]
 125              		.loc 1 694 13 view .LVU27
 126 0004 22F44072 		bic	r2, r2, #768
 127 0008 1A61     		str	r2, [r3, #16]
 695:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->CR |= FLASH_PSIZE_WORD;
 128              		.loc 1 695 3 is_stmt 1 view .LVU28
 129              		.loc 1 695 8 is_stmt 0 view .LVU29
 130 000a 1A69     		ldr	r2, [r3, #16]
 131              		.loc 1 695 13 view .LVU30
 132 000c 42F40072 		orr	r2, r2, #512
 133 0010 1A61     		str	r2, [r3, #16]
 696:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->CR |= FLASH_CR_PG;
 134              		.loc 1 696 3 is_stmt 1 view .LVU31
 135              		.loc 1 696 8 is_stmt 0 view .LVU32
 136 0012 1A69     		ldr	r2, [r3, #16]
 137              		.loc 1 696 13 view .LVU33
 138 0014 42F00102 		orr	r2, r2, #1
ARM GAS  /tmp/ccfS03PQ.s 			page 31


 139 0018 1A61     		str	r2, [r3, #16]
 697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 698:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *(__IO uint32_t*)Address = Data;
 140              		.loc 1 698 3 is_stmt 1 view .LVU34
 141              		.loc 1 698 28 is_stmt 0 view .LVU35
 142 001a 0160     		str	r1, [r0]
 699:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Data synchronous Barrier (DSB) Just after the write operation
 701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****      This will force the CPU to respect the sequence of instruction (no optimization).*/
 702:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   __DSB();
 143              		.loc 1 702 3 is_stmt 1 view .LVU36
 144              	.LBB16:
 145              	.LBI16:
 877:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 146              		.loc 2 877 27 view .LVU37
 147              	.LBB17:
 148              		.loc 2 879 3 view .LVU38
 149              		.syntax unified
 150              	@ 879 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
 151 001c BFF34F8F 		dsb 0xF
 152              	@ 0 "" 2
 153              		.thumb
 154              		.syntax unified
 155              	.LBE17:
 156              	.LBE16:
 703:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 157              		.loc 1 703 1 is_stmt 0 view .LVU39
 158 0020 7047     		bx	lr
 159              	.L7:
 160 0022 00BF     		.align	2
 161              	.L6:
 162 0024 003C0240 		.word	1073888256
 163              		.cfi_endproc
 164              	.LFE154:
 166              		.section	.text.FLASH_Program_HalfWord,"ax",%progbits
 167              		.align	1
 168              		.syntax unified
 169              		.thumb
 170              		.thumb_func
 172              	FLASH_Program_HalfWord:
 173              	.LVL2:
 174              	.LFB155:
 704:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 705:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 706:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @brief  Program a half-word (16-bit) at a specified address.
 707:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @note   This function must be used when the device voltage range is from
 708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *         2.1V to 3.6V.
 709:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *
 710:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @note   If an erase and a program operations are requested simultaneously,    
 711:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *         the erase operation is performed before the program one.
 712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *  
 713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @param  Address specifies the address to be programmed.
 714:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @param  Data specifies the data to be programmed.
 715:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @retval None
 716:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data)
 718:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** {
ARM GAS  /tmp/ccfS03PQ.s 			page 32


 175              		.loc 1 718 1 is_stmt 1 view -0
 176              		.cfi_startproc
 177              		@ args = 0, pretend = 0, frame = 0
 178              		@ frame_needed = 0, uses_anonymous_args = 0
 179              		@ link register save eliminated.
 719:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Check the parameters */
 720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   assert_param(IS_FLASH_ADDRESS(Address));
 180              		.loc 1 720 3 view .LVU41
 721:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* If the previous operation is completed, proceed to program the new data */
 723:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->CR &= CR_PSIZE_MASK;
 181              		.loc 1 723 3 view .LVU42
 182              		.loc 1 723 8 is_stmt 0 view .LVU43
 183 0000 084B     		ldr	r3, .L9
 184 0002 1A69     		ldr	r2, [r3, #16]
 185              		.loc 1 723 13 view .LVU44
 186 0004 22F44072 		bic	r2, r2, #768
 187 0008 1A61     		str	r2, [r3, #16]
 724:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->CR |= FLASH_PSIZE_HALF_WORD;
 188              		.loc 1 724 3 is_stmt 1 view .LVU45
 189              		.loc 1 724 8 is_stmt 0 view .LVU46
 190 000a 1A69     		ldr	r2, [r3, #16]
 191              		.loc 1 724 13 view .LVU47
 192 000c 42F48072 		orr	r2, r2, #256
 193 0010 1A61     		str	r2, [r3, #16]
 725:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->CR |= FLASH_CR_PG;
 194              		.loc 1 725 3 is_stmt 1 view .LVU48
 195              		.loc 1 725 8 is_stmt 0 view .LVU49
 196 0012 1A69     		ldr	r2, [r3, #16]
 197              		.loc 1 725 13 view .LVU50
 198 0014 42F00102 		orr	r2, r2, #1
 199 0018 1A61     		str	r2, [r3, #16]
 726:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 727:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *(__IO uint16_t*)Address = Data;
 200              		.loc 1 727 3 is_stmt 1 view .LVU51
 201              		.loc 1 727 28 is_stmt 0 view .LVU52
 202 001a 0180     		strh	r1, [r0]	@ movhi
 728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 729:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Data synchronous Barrier (DSB) Just after the write operation
 730:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****      This will force the CPU to respect the sequence of instruction (no optimization).*/
 731:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   __DSB();
 203              		.loc 1 731 3 is_stmt 1 view .LVU53
 204              	.LBB18:
 205              	.LBI18:
 877:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 206              		.loc 2 877 27 view .LVU54
 207              	.LBB19:
 208              		.loc 2 879 3 view .LVU55
 209              		.syntax unified
 210              	@ 879 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
 211 001c BFF34F8F 		dsb 0xF
 212              	@ 0 "" 2
 213              		.thumb
 214              		.syntax unified
 215              	.LBE19:
 216              	.LBE18:
 732:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
ARM GAS  /tmp/ccfS03PQ.s 			page 33


 733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 217              		.loc 1 733 1 is_stmt 0 view .LVU56
 218 0020 7047     		bx	lr
 219              	.L10:
 220 0022 00BF     		.align	2
 221              	.L9:
 222 0024 003C0240 		.word	1073888256
 223              		.cfi_endproc
 224              	.LFE155:
 226              		.section	.text.FLASH_Program_Byte,"ax",%progbits
 227              		.align	1
 228              		.syntax unified
 229              		.thumb
 230              		.thumb_func
 232              	FLASH_Program_Byte:
 233              	.LVL3:
 234              	.LFB156:
 734:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 735:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 736:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @brief  Program byte (8-bit) at a specified address.
 737:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @note   This function must be used when the device voltage range is from
 738:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *         1.7V to 3.6V.
 739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *
 740:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @note   If an erase and a program operations are requested simultaneously,    
 741:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *         the erase operation is performed before the program one.
 742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *  
 743:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @param  Address specifies the address to be programmed.
 744:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @param  Data specifies the data to be programmed.
 745:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @retval None
 746:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 747:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** static void FLASH_Program_Byte(uint32_t Address, uint8_t Data)
 748:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** {
 235              		.loc 1 748 1 is_stmt 1 view -0
 236              		.cfi_startproc
 237              		@ args = 0, pretend = 0, frame = 0
 238              		@ frame_needed = 0, uses_anonymous_args = 0
 239              		@ link register save eliminated.
 749:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Check the parameters */
 750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   assert_param(IS_FLASH_ADDRESS(Address));
 240              		.loc 1 750 3 view .LVU58
 751:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 752:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* If the previous operation is completed, proceed to program the new data */
 753:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->CR &= CR_PSIZE_MASK;
 241              		.loc 1 753 3 view .LVU59
 242              		.loc 1 753 8 is_stmt 0 view .LVU60
 243 0000 074B     		ldr	r3, .L12
 244 0002 1A69     		ldr	r2, [r3, #16]
 245              		.loc 1 753 13 view .LVU61
 246 0004 22F44072 		bic	r2, r2, #768
 247 0008 1A61     		str	r2, [r3, #16]
 754:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->CR |= FLASH_PSIZE_BYTE;
 248              		.loc 1 754 3 is_stmt 1 view .LVU62
 249              		.loc 1 754 8 is_stmt 0 view .LVU63
 250 000a 1A69     		ldr	r2, [r3, #16]
 251              		.loc 1 754 13 view .LVU64
 252 000c 1A61     		str	r2, [r3, #16]
 755:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->CR |= FLASH_CR_PG;
ARM GAS  /tmp/ccfS03PQ.s 			page 34


 253              		.loc 1 755 3 is_stmt 1 view .LVU65
 254              		.loc 1 755 8 is_stmt 0 view .LVU66
 255 000e 1A69     		ldr	r2, [r3, #16]
 256              		.loc 1 755 13 view .LVU67
 257 0010 42F00102 		orr	r2, r2, #1
 258 0014 1A61     		str	r2, [r3, #16]
 756:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 757:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   *(__IO uint8_t*)Address = Data;
 259              		.loc 1 757 3 is_stmt 1 view .LVU68
 260              		.loc 1 757 27 is_stmt 0 view .LVU69
 261 0016 0170     		strb	r1, [r0]
 758:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 759:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Data synchronous Barrier (DSB) Just after the write operation
 760:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****      This will force the CPU to respect the sequence of instruction (no optimization).*/
 761:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   __DSB();
 262              		.loc 1 761 3 is_stmt 1 view .LVU70
 263              	.LBB20:
 264              	.LBI20:
 877:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 265              		.loc 2 877 27 view .LVU71
 266              	.LBB21:
 267              		.loc 2 879 3 view .LVU72
 268              		.syntax unified
 269              	@ 879 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
 270 0018 BFF34F8F 		dsb 0xF
 271              	@ 0 "" 2
 272              		.thumb
 273              		.syntax unified
 274              	.LBE21:
 275              	.LBE20:
 762:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 276              		.loc 1 762 1 is_stmt 0 view .LVU73
 277 001c 7047     		bx	lr
 278              	.L13:
 279 001e 00BF     		.align	2
 280              	.L12:
 281 0020 003C0240 		.word	1073888256
 282              		.cfi_endproc
 283              	.LFE156:
 285              		.section	.text.FLASH_SetErrorCode,"ax",%progbits
 286              		.align	1
 287              		.syntax unified
 288              		.thumb
 289              		.thumb_func
 291              	FLASH_SetErrorCode:
 292              	.LFB157:
 763:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 764:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** /**
 765:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @brief  Set the specific FLASH error flag.
 766:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   * @retval None
 767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   */
 768:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** static void FLASH_SetErrorCode(void)
 769:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** {
 293              		.loc 1 769 1 is_stmt 1 view -0
 294              		.cfi_startproc
 295              		@ args = 0, pretend = 0, frame = 0
 296              		@ frame_needed = 0, uses_anonymous_args = 0
ARM GAS  /tmp/ccfS03PQ.s 			page 35


 297              		@ link register save eliminated.
 770:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_OPERR) != RESET)
 298              		.loc 1 770 3 view .LVU75
 299              		.loc 1 770 6 is_stmt 0 view .LVU76
 300 0000 1A4B     		ldr	r3, .L20
 301 0002 DB68     		ldr	r3, [r3, #12]
 302              		.loc 1 770 5 view .LVU77
 303 0004 13F0020F 		tst	r3, #2
 304 0008 04D0     		beq	.L15
 771:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 772:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     pFlash.ErrorCode |= HAL_FLASH_ERROR_OPERATION;
 305              		.loc 1 772 5 is_stmt 1 view .LVU78
 306              		.loc 1 772 11 is_stmt 0 view .LVU79
 307 000a 194A     		ldr	r2, .L20+4
 308 000c 9369     		ldr	r3, [r2, #24]
 309              		.loc 1 772 22 view .LVU80
 310 000e 43F02003 		orr	r3, r3, #32
 311 0012 9361     		str	r3, [r2, #24]
 312              	.L15:
 773:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 774:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 775:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) != RESET)
 313              		.loc 1 775 3 is_stmt 1 view .LVU81
 314              		.loc 1 775 6 is_stmt 0 view .LVU82
 315 0014 154B     		ldr	r3, .L20
 316 0016 DB68     		ldr	r3, [r3, #12]
 317              		.loc 1 775 5 view .LVU83
 318 0018 13F0100F 		tst	r3, #16
 319 001c 04D0     		beq	.L16
 776:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 777:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****    pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP;
 320              		.loc 1 777 4 is_stmt 1 view .LVU84
 321              		.loc 1 777 10 is_stmt 0 view .LVU85
 322 001e 144A     		ldr	r2, .L20+4
 323 0020 9369     		ldr	r3, [r2, #24]
 324              		.loc 1 777 21 view .LVU86
 325 0022 43F01003 		orr	r3, r3, #16
 326 0026 9361     		str	r3, [r2, #24]
 327              	.L16:
 778:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 779:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 780:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGAERR) != RESET)
 328              		.loc 1 780 3 is_stmt 1 view .LVU87
 329              		.loc 1 780 6 is_stmt 0 view .LVU88
 330 0028 104B     		ldr	r3, .L20
 331 002a DB68     		ldr	r3, [r3, #12]
 332              		.loc 1 780 5 view .LVU89
 333 002c 13F0200F 		tst	r3, #32
 334 0030 04D0     		beq	.L17
 781:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 782:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****    pFlash.ErrorCode |= HAL_FLASH_ERROR_PGA;
 335              		.loc 1 782 4 is_stmt 1 view .LVU90
 336              		.loc 1 782 10 is_stmt 0 view .LVU91
 337 0032 0F4A     		ldr	r2, .L20+4
 338 0034 9369     		ldr	r3, [r2, #24]
 339              		.loc 1 782 21 view .LVU92
 340 0036 43F00803 		orr	r3, r3, #8
ARM GAS  /tmp/ccfS03PQ.s 			page 36


 341 003a 9361     		str	r3, [r2, #24]
 342              	.L17:
 783:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 784:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 785:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGPERR) != RESET)
 343              		.loc 1 785 3 is_stmt 1 view .LVU93
 344              		.loc 1 785 6 is_stmt 0 view .LVU94
 345 003c 0B4B     		ldr	r3, .L20
 346 003e DB68     		ldr	r3, [r3, #12]
 347              		.loc 1 785 5 view .LVU95
 348 0040 13F0400F 		tst	r3, #64
 349 0044 04D0     		beq	.L18
 786:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 787:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     pFlash.ErrorCode |= HAL_FLASH_ERROR_PGP;
 350              		.loc 1 787 5 is_stmt 1 view .LVU96
 351              		.loc 1 787 11 is_stmt 0 view .LVU97
 352 0046 0A4A     		ldr	r2, .L20+4
 353 0048 9369     		ldr	r3, [r2, #24]
 354              		.loc 1 787 22 view .LVU98
 355 004a 43F00403 		orr	r3, r3, #4
 356 004e 9361     		str	r3, [r2, #24]
 357              	.L18:
 788:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 789:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 790:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_ERSERR) != RESET)
 358              		.loc 1 790 3 is_stmt 1 view .LVU99
 359              		.loc 1 790 6 is_stmt 0 view .LVU100
 360 0050 064B     		ldr	r3, .L20
 361 0052 DB68     		ldr	r3, [r3, #12]
 362              		.loc 1 790 5 view .LVU101
 363 0054 13F0800F 		tst	r3, #128
 364 0058 04D0     		beq	.L19
 791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 792:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     pFlash.ErrorCode |= HAL_FLASH_ERROR_ERS;
 365              		.loc 1 792 5 is_stmt 1 view .LVU102
 366              		.loc 1 792 11 is_stmt 0 view .LVU103
 367 005a 054A     		ldr	r2, .L20+4
 368 005c 9369     		ldr	r3, [r2, #24]
 369              		.loc 1 792 22 view .LVU104
 370 005e 43F00203 		orr	r3, r3, #2
 371 0062 9361     		str	r3, [r2, #24]
 372              	.L19:
 793:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 794:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 795:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** #if defined (FLASH_OPTCR2_PCROP)
 796:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_RDERR) != RESET)
 797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   { 
 798:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****    pFlash.ErrorCode |= HAL_FLASH_ERROR_RD;
 799:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }  
 800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** #endif /* FLASH_OPTCR2_PCROP */
 801:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 802:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Clear error programming flags */
 803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_ALL_ERRORS);
 373              		.loc 1 803 3 is_stmt 1 view .LVU105
 374 0064 014B     		ldr	r3, .L20
 375 0066 F222     		movs	r2, #242
 376 0068 DA60     		str	r2, [r3, #12]
ARM GAS  /tmp/ccfS03PQ.s 			page 37


 804:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 377              		.loc 1 804 1 is_stmt 0 view .LVU106
 378 006a 7047     		bx	lr
 379              	.L21:
 380              		.align	2
 381              	.L20:
 382 006c 003C0240 		.word	1073888256
 383 0070 00000000 		.word	pFlash
 384              		.cfi_endproc
 385              	.LFE157:
 387              		.section	.text.HAL_FLASH_Program_IT,"ax",%progbits
 388              		.align	1
 389              		.global	HAL_FLASH_Program_IT
 390              		.syntax unified
 391              		.thumb
 392              		.thumb_func
 394              	HAL_FLASH_Program_IT:
 395              	.LVL4:
 396              	.LFB142:
 232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_OK;
 397              		.loc 1 232 1 is_stmt 1 view -0
 398              		.cfi_startproc
 399              		@ args = 0, pretend = 0, frame = 0
 400              		@ frame_needed = 0, uses_anonymous_args = 0
 232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_OK;
 401              		.loc 1 232 1 is_stmt 0 view .LVU108
 402 0000 70B5     		push	{r4, r5, r6, lr}
 403              	.LCFI2:
 404              		.cfi_def_cfa_offset 16
 405              		.cfi_offset 4, -16
 406              		.cfi_offset 5, -12
 407              		.cfi_offset 6, -8
 408              		.cfi_offset 14, -4
 233:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 409              		.loc 1 233 3 is_stmt 1 view .LVU109
 410              	.LVL5:
 236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 411              		.loc 1 236 3 view .LVU110
 236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 412              		.loc 1 236 3 view .LVU111
 413 0002 1A4C     		ldr	r4, .L32
 414 0004 247D     		ldrb	r4, [r4, #20]	@ zero_extendqisi2
 415 0006 012C     		cmp	r4, #1
 416 0008 2CD0     		beq	.L29
 417 000a 8446     		mov	ip, r0
 418 000c 0846     		mov	r0, r1
 419              	.LVL6:
 236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 420              		.loc 1 236 3 discriminator 2 view .LVU112
 421 000e 174D     		ldr	r5, .L32
 422 0010 0121     		movs	r1, #1
 423              	.LVL7:
 236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 424              		.loc 1 236 3 is_stmt 0 discriminator 2 view .LVU113
 425 0012 2975     		strb	r1, [r5, #20]
 236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 426              		.loc 1 236 3 is_stmt 1 discriminator 2 view .LVU114
ARM GAS  /tmp/ccfS03PQ.s 			page 38


 239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 427              		.loc 1 239 3 view .LVU115
 242:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 428              		.loc 1 242 3 view .LVU116
 429 0014 164C     		ldr	r4, .L32+4
 430 0016 2669     		ldr	r6, [r4, #16]
 431 0018 46F08076 		orr	r6, r6, #16777216
 432 001c 2661     		str	r6, [r4, #16]
 245:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 433              		.loc 1 245 3 view .LVU117
 434 001e 2669     		ldr	r6, [r4, #16]
 435 0020 46F00076 		orr	r6, r6, #33554432
 436 0024 2661     		str	r6, [r4, #16]
 248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****                          FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR| FLASH_FLAG_ERSERR);  
 437              		.loc 1 248 3 view .LVU118
 438 0026 F321     		movs	r1, #243
 439 0028 E160     		str	r1, [r4, #12]
 251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   pFlash.Address = Address;
 440              		.loc 1 251 3 view .LVU119
 251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   pFlash.Address = Address;
 441              		.loc 1 251 27 is_stmt 0 view .LVU120
 442 002a 0321     		movs	r1, #3
 443 002c 2970     		strb	r1, [r5]
 252:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 444              		.loc 1 252 3 is_stmt 1 view .LVU121
 252:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 445              		.loc 1 252 18 is_stmt 0 view .LVU122
 446 002e 2861     		str	r0, [r5, #16]
 254:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 447              		.loc 1 254 3 is_stmt 1 view .LVU123
 448 0030 BCF1030F 		cmp	ip, #3
 449 0034 18D8     		bhi	.L30
 450 0036 DFE80CF0 		tbb	[pc, ip]
 451              	.L25:
 452 003a 02       		.byte	(.L28-.L25)/2
 453 003b 07       		.byte	(.L27-.L25)/2
 454 003c 0C       		.byte	(.L26-.L25)/2
 455 003d 11       		.byte	(.L24-.L25)/2
 456              		.p2align 1
 457              	.L28:
 259:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       break;
 458              		.loc 1 259 7 view .LVU124
 459 003e D1B2     		uxtb	r1, r2
 460 0040 FFF7FEFF 		bl	FLASH_Program_Byte
 461              	.LVL8:
 260:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     }
 462              		.loc 1 260 7 view .LVU125
 286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 463              		.loc 1 286 10 is_stmt 0 view .LVU126
 464 0044 0020     		movs	r0, #0
 465              	.L23:
 287:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 466              		.loc 1 287 1 view .LVU127
 467 0046 70BD     		pop	{r4, r5, r6, pc}
 468              	.LVL9:
 469              	.L27:
 266:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       break;
ARM GAS  /tmp/ccfS03PQ.s 			page 39


 470              		.loc 1 266 7 is_stmt 1 view .LVU128
 471 0048 91B2     		uxth	r1, r2
 472 004a FFF7FEFF 		bl	FLASH_Program_HalfWord
 473              	.LVL10:
 267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     }
 474              		.loc 1 267 7 view .LVU129
 286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 475              		.loc 1 286 10 is_stmt 0 view .LVU130
 476 004e 0020     		movs	r0, #0
 267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     }
 477              		.loc 1 267 7 view .LVU131
 478 0050 F9E7     		b	.L23
 479              	.LVL11:
 480              	.L26:
 273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       break;
 481              		.loc 1 273 7 is_stmt 1 view .LVU132
 482 0052 1146     		mov	r1, r2
 483 0054 FFF7FEFF 		bl	FLASH_Program_Word
 484              	.LVL12:
 274:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     }
 485              		.loc 1 274 7 view .LVU133
 286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 486              		.loc 1 286 10 is_stmt 0 view .LVU134
 487 0058 0020     		movs	r0, #0
 274:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     }
 488              		.loc 1 274 7 view .LVU135
 489 005a F4E7     		b	.L23
 490              	.LVL13:
 491              	.L24:
 280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       break;
 492              		.loc 1 280 7 is_stmt 1 view .LVU136
 493 005c FFF7FEFF 		bl	FLASH_Program_DoubleWord
 494              	.LVL14:
 281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     }
 495              		.loc 1 281 7 view .LVU137
 286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 496              		.loc 1 286 10 is_stmt 0 view .LVU138
 497 0060 0020     		movs	r0, #0
 281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     }
 498              		.loc 1 281 7 view .LVU139
 499 0062 F0E7     		b	.L23
 500              	.LVL15:
 501              	.L29:
 236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 502              		.loc 1 236 3 discriminator 1 view .LVU140
 503 0064 0220     		movs	r0, #2
 504              	.LVL16:
 236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 505              		.loc 1 236 3 discriminator 1 view .LVU141
 506 0066 EEE7     		b	.L23
 507              	.LVL17:
 508              	.L30:
 254:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 509              		.loc 1 254 3 view .LVU142
 510 0068 0020     		movs	r0, #0
 511              	.LVL18:
 254:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
ARM GAS  /tmp/ccfS03PQ.s 			page 40


 512              		.loc 1 254 3 view .LVU143
 513 006a ECE7     		b	.L23
 514              	.L33:
 515              		.align	2
 516              	.L32:
 517 006c 00000000 		.word	pFlash
 518 0070 003C0240 		.word	1073888256
 519              		.cfi_endproc
 520              	.LFE142:
 522              		.section	.text.HAL_FLASH_EndOfOperationCallback,"ax",%progbits
 523              		.align	1
 524              		.weak	HAL_FLASH_EndOfOperationCallback
 525              		.syntax unified
 526              		.thumb
 527              		.thumb_func
 529              	HAL_FLASH_EndOfOperationCallback:
 530              	.LVL19:
 531              	.LFB144:
 429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Prevent unused argument(s) compilation warning */
 532              		.loc 1 429 1 is_stmt 1 view -0
 533              		.cfi_startproc
 534              		@ args = 0, pretend = 0, frame = 0
 535              		@ frame_needed = 0, uses_anonymous_args = 0
 536              		@ link register save eliminated.
 431:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* NOTE : This function Should not be modified, when the callback is needed,
 537              		.loc 1 431 3 view .LVU145
 435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 538              		.loc 1 435 1 is_stmt 0 view .LVU146
 539 0000 7047     		bx	lr
 540              		.cfi_endproc
 541              	.LFE144:
 543              		.section	.text.HAL_FLASH_OperationErrorCallback,"ax",%progbits
 544              		.align	1
 545              		.weak	HAL_FLASH_OperationErrorCallback
 546              		.syntax unified
 547              		.thumb
 548              		.thumb_func
 550              	HAL_FLASH_OperationErrorCallback:
 551              	.LVL20:
 552              	.LFB145:
 447:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Prevent unused argument(s) compilation warning */
 553              		.loc 1 447 1 is_stmt 1 view -0
 554              		.cfi_startproc
 555              		@ args = 0, pretend = 0, frame = 0
 556              		@ frame_needed = 0, uses_anonymous_args = 0
 557              		@ link register save eliminated.
 449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* NOTE : This function Should not be modified, when the callback is needed,
 558              		.loc 1 449 3 view .LVU148
 453:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 559              		.loc 1 453 1 is_stmt 0 view .LVU149
 560 0000 7047     		bx	lr
 561              		.cfi_endproc
 562              	.LFE145:
 564              		.section	.text.HAL_FLASH_IRQHandler,"ax",%progbits
 565              		.align	1
 566              		.global	HAL_FLASH_IRQHandler
 567              		.syntax unified
ARM GAS  /tmp/ccfS03PQ.s 			page 41


 568              		.thumb
 569              		.thumb_func
 571              	HAL_FLASH_IRQHandler:
 572              	.LFB143:
 294:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   uint32_t temp = 0;
 573              		.loc 1 294 1 is_stmt 1 view -0
 574              		.cfi_startproc
 575              		@ args = 0, pretend = 0, frame = 0
 576              		@ frame_needed = 0, uses_anonymous_args = 0
 577 0000 38B5     		push	{r3, r4, r5, lr}
 578              	.LCFI3:
 579              		.cfi_def_cfa_offset 16
 580              		.cfi_offset 3, -16
 581              		.cfi_offset 4, -12
 582              		.cfi_offset 5, -8
 583              		.cfi_offset 14, -4
 295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 584              		.loc 1 295 3 view .LVU151
 585              	.LVL21:
 298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 586              		.loc 1 298 3 view .LVU152
 298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 587              		.loc 1 298 8 is_stmt 0 view .LVU153
 588 0002 3E4B     		ldr	r3, .L48
 589 0004 1A69     		ldr	r2, [r3, #16]
 298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 590              		.loc 1 298 13 view .LVU154
 591 0006 22F00102 		bic	r2, r2, #1
 592 000a 1A61     		str	r2, [r3, #16]
 301:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->CR &= SECTOR_MASK; 
 593              		.loc 1 301 3 is_stmt 1 view .LVU155
 301:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->CR &= SECTOR_MASK; 
 594              		.loc 1 301 8 is_stmt 0 view .LVU156
 595 000c 1A69     		ldr	r2, [r3, #16]
 301:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   FLASH->CR &= SECTOR_MASK; 
 596              		.loc 1 301 13 view .LVU157
 597 000e 22F00202 		bic	r2, r2, #2
 598 0012 1A61     		str	r2, [r3, #16]
 302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 599              		.loc 1 302 3 is_stmt 1 view .LVU158
 302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 600              		.loc 1 302 8 is_stmt 0 view .LVU159
 601 0014 1A69     		ldr	r2, [r3, #16]
 302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 602              		.loc 1 302 13 view .LVU160
 603 0016 22F0F802 		bic	r2, r2, #248
 604 001a 1A61     		str	r2, [r3, #16]
 305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 605              		.loc 1 305 3 is_stmt 1 view .LVU161
 305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 606              		.loc 1 305 8 is_stmt 0 view .LVU162
 607 001c 1969     		ldr	r1, [r3, #16]
 305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 608              		.loc 1 305 13 view .LVU163
 609 001e 384A     		ldr	r2, .L48+4
 610 0020 0A40     		ands	r2, r2, r1
 611 0022 1A61     		str	r2, [r3, #16]
ARM GAS  /tmp/ccfS03PQ.s 			page 42


 308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 612              		.loc 1 308 3 is_stmt 1 view .LVU164
 308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 613              		.loc 1 308 6 is_stmt 0 view .LVU165
 614 0024 DC68     		ldr	r4, [r3, #12]
 308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 615              		.loc 1 308 5 view .LVU166
 616 0026 14F00104 		ands	r4, r4, #1
 617 002a 2DD0     		beq	.L37
 311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     
 618              		.loc 1 311 5 is_stmt 1 view .LVU167
 619 002c 0122     		movs	r2, #1
 620 002e DA60     		str	r2, [r3, #12]
 313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 621              		.loc 1 313 5 view .LVU168
 313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 622              		.loc 1 313 19 is_stmt 0 view .LVU169
 623 0030 344B     		ldr	r3, .L48+8
 624 0032 1B78     		ldrb	r3, [r3]	@ zero_extendqisi2
 625 0034 DBB2     		uxtb	r3, r3
 313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 626              		.loc 1 313 5 view .LVU170
 627 0036 022B     		cmp	r3, #2
 628 0038 1FD0     		beq	.L38
 629 003a 032B     		cmp	r3, #3
 630 003c 4FD0     		beq	.L39
 631 003e 9342     		cmp	r3, r2
 632 0040 55D1     		bne	.L45
 318:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 633              		.loc 1 318 9 is_stmt 1 view .LVU171
 318:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 634              		.loc 1 318 15 is_stmt 0 view .LVU172
 635 0042 304B     		ldr	r3, .L48+8
 636 0044 5A68     		ldr	r2, [r3, #4]
 318:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 637              		.loc 1 318 32 view .LVU173
 638 0046 013A     		subs	r2, r2, #1
 639 0048 5A60     		str	r2, [r3, #4]
 321:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         {
 640              		.loc 1 321 9 is_stmt 1 view .LVU174
 321:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         {
 641              		.loc 1 321 18 is_stmt 0 view .LVU175
 642 004a 5B68     		ldr	r3, [r3, #4]
 321:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         {
 643              		.loc 1 321 11 view .LVU176
 644 004c 5BB1     		cbz	r3, .L40
 323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           /* Indicate user which sector has been erased */
 645              		.loc 1 323 11 is_stmt 1 view .LVU177
 323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           /* Indicate user which sector has been erased */
 646              		.loc 1 323 16 is_stmt 0 view .LVU178
 647 004e 2D4D     		ldr	r5, .L48+8
 648 0050 E868     		ldr	r0, [r5, #12]
 649              	.LVL22:
 325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 650              		.loc 1 325 11 is_stmt 1 view .LVU179
 651 0052 FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 652              	.LVL23:
ARM GAS  /tmp/ccfS03PQ.s 			page 43


 328:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           FLASH_Erase_Sector(temp, pFlash.VoltageForErase);
 653              		.loc 1 328 11 view .LVU180
 328:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           FLASH_Erase_Sector(temp, pFlash.VoltageForErase);
 654              		.loc 1 328 26 is_stmt 0 view .LVU181
 655 0056 EC68     		ldr	r4, [r5, #12]
 328:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           FLASH_Erase_Sector(temp, pFlash.VoltageForErase);
 656              		.loc 1 328 18 view .LVU182
 657 0058 0134     		adds	r4, r4, #1
 328:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           FLASH_Erase_Sector(temp, pFlash.VoltageForErase);
 658              		.loc 1 328 16 view .LVU183
 659 005a EC60     		str	r4, [r5, #12]
 660              	.LVL24:
 329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         }
 661              		.loc 1 329 11 is_stmt 1 view .LVU184
 329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         }
 662              		.loc 1 329 42 is_stmt 0 view .LVU185
 663 005c 297A     		ldrb	r1, [r5, #8]	@ zero_extendqisi2
 329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         }
 664              		.loc 1 329 11 view .LVU186
 665 005e 2046     		mov	r0, r4
 666 0060 FFF7FEFF 		bl	FLASH_Erase_Sector
 667              	.LVL25:
 668 0064 10E0     		b	.L37
 669              	.LVL26:
 670              	.L40:
 335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           /* FLASH EOP interrupt user callback */
 671              		.loc 1 335 11 is_stmt 1 view .LVU187
 335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           /* FLASH EOP interrupt user callback */
 672              		.loc 1 335 25 is_stmt 0 view .LVU188
 673 0066 274D     		ldr	r5, .L48+8
 674 0068 4FF0FF34 		mov	r4, #-1
 675 006c EC60     		str	r4, [r5, #12]
 337:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****           /* Sector Erase procedure is completed */
 676              		.loc 1 337 11 is_stmt 1 view .LVU189
 677 006e 2046     		mov	r0, r4
 678 0070 FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 679              	.LVL27:
 339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         }
 680              		.loc 1 339 11 view .LVU190
 339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         }
 681              		.loc 1 339 35 is_stmt 0 view .LVU191
 682 0074 0023     		movs	r3, #0
 683 0076 2B70     		strb	r3, [r5]
 684 0078 06E0     		b	.L37
 685              	.LVL28:
 686              	.L38:
 348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         /* MAss Erase procedure is completed */
 687              		.loc 1 348 9 is_stmt 1 view .LVU192
 688 007a 0020     		movs	r0, #0
 689 007c FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 690              	.LVL29:
 350:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 691              		.loc 1 350 9 view .LVU193
 350:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 692              		.loc 1 350 33 is_stmt 0 view .LVU194
 693 0080 0020     		movs	r0, #0
 694 0082 204B     		ldr	r3, .L48+8
ARM GAS  /tmp/ccfS03PQ.s 			page 44


 695 0084 1870     		strb	r0, [r3]
 351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 696              		.loc 1 351 9 is_stmt 1 view .LVU195
 295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 697              		.loc 1 295 12 is_stmt 0 view .LVU196
 698 0086 0446     		mov	r4, r0
 699              	.LVL30:
 700              	.L37:
 369:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 701              		.loc 1 369 3 is_stmt 1 view .LVU197
 369:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 702              		.loc 1 369 6 is_stmt 0 view .LVU198
 703 0088 1C4B     		ldr	r3, .L48
 704 008a DB68     		ldr	r3, [r3, #12]
 369:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 705              		.loc 1 369 5 view .LVU199
 706 008c 13F0F20F 		tst	r3, #242
 707 0090 15D0     		beq	.L41
 371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 708              		.loc 1 371 5 is_stmt 1 view .LVU200
 371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 709              		.loc 1 371 19 is_stmt 0 view .LVU201
 710 0092 1C4B     		ldr	r3, .L48+8
 711 0094 1B78     		ldrb	r3, [r3]	@ zero_extendqisi2
 712 0096 DBB2     		uxtb	r3, r3
 371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 713              		.loc 1 371 5 view .LVU202
 714 0098 022B     		cmp	r3, #2
 715 009a 2DD0     		beq	.L46
 716 009c 032B     		cmp	r3, #3
 717 009e 28D0     		beq	.L43
 718 00a0 012B     		cmp	r3, #1
 719 00a2 04D1     		bne	.L42
 376:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         pFlash.Sector = 0xFFFFFFFFU;
 720              		.loc 1 376 9 is_stmt 1 view .LVU203
 376:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         pFlash.Sector = 0xFFFFFFFFU;
 721              		.loc 1 376 14 is_stmt 0 view .LVU204
 722 00a4 174B     		ldr	r3, .L48+8
 723 00a6 DC68     		ldr	r4, [r3, #12]
 724              	.LVL31:
 377:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 725              		.loc 1 377 9 is_stmt 1 view .LVU205
 377:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 726              		.loc 1 377 23 is_stmt 0 view .LVU206
 727 00a8 4FF0FF32 		mov	r2, #-1
 728 00ac DA60     		str	r2, [r3, #12]
 378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 729              		.loc 1 378 9 is_stmt 1 view .LVU207
 730              	.LVL32:
 731              	.L42:
 396:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 732              		.loc 1 396 5 view .LVU208
 733 00ae FFF7FEFF 		bl	FLASH_SetErrorCode
 734              	.LVL33:
 399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 735              		.loc 1 399 5 view .LVU209
 736 00b2 2046     		mov	r0, r4
ARM GAS  /tmp/ccfS03PQ.s 			page 45


 737 00b4 FFF7FEFF 		bl	HAL_FLASH_OperationErrorCallback
 738              	.LVL34:
 402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 739              		.loc 1 402 5 view .LVU210
 402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 740              		.loc 1 402 29 is_stmt 0 view .LVU211
 741 00b8 124B     		ldr	r3, .L48+8
 742 00ba 0022     		movs	r2, #0
 743 00bc 1A70     		strb	r2, [r3]
 744              	.L41:
 405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 745              		.loc 1 405 3 is_stmt 1 view .LVU212
 405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 746              		.loc 1 405 12 is_stmt 0 view .LVU213
 747 00be 114B     		ldr	r3, .L48+8
 748 00c0 1B78     		ldrb	r3, [r3]	@ zero_extendqisi2
 405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 749              		.loc 1 405 5 view .LVU214
 750 00c2 5BB9     		cbnz	r3, .L36
 408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 751              		.loc 1 408 5 is_stmt 1 view .LVU215
 752 00c4 0D4B     		ldr	r3, .L48
 753 00c6 1A69     		ldr	r2, [r3, #16]
 754 00c8 22F08072 		bic	r2, r2, #16777216
 755 00cc 1A61     		str	r2, [r3, #16]
 411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 756              		.loc 1 411 5 view .LVU216
 757 00ce 1A69     		ldr	r2, [r3, #16]
 758 00d0 22F00072 		bic	r2, r2, #33554432
 759 00d4 1A61     		str	r2, [r3, #16]
 414:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 760              		.loc 1 414 5 view .LVU217
 414:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 761              		.loc 1 414 5 view .LVU218
 762 00d6 0B4B     		ldr	r3, .L48+8
 763 00d8 0022     		movs	r2, #0
 764 00da 1A75     		strb	r2, [r3, #20]
 414:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 765              		.loc 1 414 5 discriminator 1 view .LVU219
 766              	.L36:
 417:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 767              		.loc 1 417 1 is_stmt 0 view .LVU220
 768 00dc 38BD     		pop	{r3, r4, r5, pc}
 769              	.LVL35:
 770              	.L39:
 358:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         /* Programming procedure is completed */
 771              		.loc 1 358 9 is_stmt 1 view .LVU221
 358:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         /* Programming procedure is completed */
 772              		.loc 1 358 48 is_stmt 0 view .LVU222
 773 00de 094C     		ldr	r4, .L48+8
 774 00e0 2069     		ldr	r0, [r4, #16]
 358:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         /* Programming procedure is completed */
 775              		.loc 1 358 9 view .LVU223
 776 00e2 FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 777              	.LVL36:
 360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 778              		.loc 1 360 9 is_stmt 1 view .LVU224
ARM GAS  /tmp/ccfS03PQ.s 			page 46


 360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 779              		.loc 1 360 33 is_stmt 0 view .LVU225
 780 00e6 0020     		movs	r0, #0
 781 00e8 2070     		strb	r0, [r4]
 361:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 782              		.loc 1 361 9 is_stmt 1 view .LVU226
 295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 783              		.loc 1 295 12 is_stmt 0 view .LVU227
 784 00ea 0446     		mov	r4, r0
 361:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 785              		.loc 1 361 9 view .LVU228
 786 00ec CCE7     		b	.L37
 787              	.L45:
 313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 788              		.loc 1 313 5 view .LVU229
 789 00ee 0024     		movs	r4, #0
 790 00f0 CAE7     		b	.L37
 791              	.LVL37:
 792              	.L43:
 389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 793              		.loc 1 389 9 is_stmt 1 view .LVU230
 389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 794              		.loc 1 389 14 is_stmt 0 view .LVU231
 795 00f2 044B     		ldr	r3, .L48+8
 796 00f4 1C69     		ldr	r4, [r3, #16]
 797              	.LVL38:
 390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 798              		.loc 1 390 9 is_stmt 1 view .LVU232
 799 00f6 DAE7     		b	.L42
 800              	.L46:
 383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 801              		.loc 1 383 14 is_stmt 0 view .LVU233
 802 00f8 0024     		movs	r4, #0
 803              	.LVL39:
 383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 804              		.loc 1 383 14 view .LVU234
 805 00fa D8E7     		b	.L42
 806              	.L49:
 807              		.align	2
 808              	.L48:
 809 00fc 003C0240 		.word	1073888256
 810 0100 FB7FFFFF 		.word	-32773
 811 0104 00000000 		.word	pFlash
 812              		.cfi_endproc
 813              	.LFE143:
 815              		.section	.text.HAL_FLASH_Unlock,"ax",%progbits
 816              		.align	1
 817              		.global	HAL_FLASH_Unlock
 818              		.syntax unified
 819              		.thumb
 820              		.thumb_func
 822              	HAL_FLASH_Unlock:
 823              	.LFB146:
 479:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_OK;
 824              		.loc 1 479 1 is_stmt 1 view -0
 825              		.cfi_startproc
 826              		@ args = 0, pretend = 0, frame = 0
ARM GAS  /tmp/ccfS03PQ.s 			page 47


 827              		@ frame_needed = 0, uses_anonymous_args = 0
 828              		@ link register save eliminated.
 480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 829              		.loc 1 480 3 view .LVU236
 830              	.LVL40:
 482:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 831              		.loc 1 482 3 view .LVU237
 482:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 832              		.loc 1 482 6 is_stmt 0 view .LVU238
 833 0000 094B     		ldr	r3, .L55
 834 0002 1B69     		ldr	r3, [r3, #16]
 482:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 835              		.loc 1 482 5 view .LVU239
 836 0004 002B     		cmp	r3, #0
 837 0006 01DB     		blt	.L54
 480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 838              		.loc 1 480 21 view .LVU240
 839 0008 0020     		movs	r0, #0
 840 000a 7047     		bx	lr
 841              	.L54:
 485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     WRITE_REG(FLASH->KEYR, FLASH_KEY2);
 842              		.loc 1 485 5 is_stmt 1 view .LVU241
 843 000c 064B     		ldr	r3, .L55
 844 000e 074A     		ldr	r2, .L55+4
 845 0010 5A60     		str	r2, [r3, #4]
 486:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 846              		.loc 1 486 5 view .LVU242
 847 0012 02F18832 		add	r2, r2, #-2004318072
 848 0016 5A60     		str	r2, [r3, #4]
 489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 849              		.loc 1 489 5 view .LVU243
 489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 850              		.loc 1 489 8 is_stmt 0 view .LVU244
 851 0018 1B69     		ldr	r3, [r3, #16]
 489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 852              		.loc 1 489 7 view .LVU245
 853 001a 002B     		cmp	r3, #0
 854 001c 01DB     		blt	.L53
 480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 855              		.loc 1 480 21 view .LVU246
 856 001e 0020     		movs	r0, #0
 857 0020 7047     		bx	lr
 858              	.L53:
 491:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     }
 859              		.loc 1 491 14 view .LVU247
 860 0022 0120     		movs	r0, #1
 861              	.LVL41:
 495:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 862              		.loc 1 495 3 is_stmt 1 view .LVU248
 496:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 863              		.loc 1 496 1 is_stmt 0 view .LVU249
 864 0024 7047     		bx	lr
 865              	.L56:
 866 0026 00BF     		.align	2
 867              	.L55:
 868 0028 003C0240 		.word	1073888256
 869 002c 23016745 		.word	1164378403
ARM GAS  /tmp/ccfS03PQ.s 			page 48


 870              		.cfi_endproc
 871              	.LFE146:
 873              		.section	.text.HAL_FLASH_Lock,"ax",%progbits
 874              		.align	1
 875              		.global	HAL_FLASH_Lock
 876              		.syntax unified
 877              		.thumb
 878              		.thumb_func
 880              	HAL_FLASH_Lock:
 881              	.LFB147:
 503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Set the LOCK Bit to lock the FLASH Registers access */
 882              		.loc 1 503 1 is_stmt 1 view -0
 883              		.cfi_startproc
 884              		@ args = 0, pretend = 0, frame = 0
 885              		@ frame_needed = 0, uses_anonymous_args = 0
 886              		@ link register save eliminated.
 505:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 887              		.loc 1 505 3 view .LVU251
 505:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 888              		.loc 1 505 8 is_stmt 0 view .LVU252
 889 0000 034A     		ldr	r2, .L58
 890 0002 1369     		ldr	r3, [r2, #16]
 505:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 891              		.loc 1 505 13 view .LVU253
 892 0004 43F00043 		orr	r3, r3, #-2147483648
 893 0008 1361     		str	r3, [r2, #16]
 507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 894              		.loc 1 507 3 is_stmt 1 view .LVU254
 508:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 895              		.loc 1 508 1 is_stmt 0 view .LVU255
 896 000a 0020     		movs	r0, #0
 897 000c 7047     		bx	lr
 898              	.L59:
 899 000e 00BF     		.align	2
 900              	.L58:
 901 0010 003C0240 		.word	1073888256
 902              		.cfi_endproc
 903              	.LFE147:
 905              		.section	.text.HAL_FLASH_OB_Unlock,"ax",%progbits
 906              		.align	1
 907              		.global	HAL_FLASH_OB_Unlock
 908              		.syntax unified
 909              		.thumb
 910              		.thumb_func
 912              	HAL_FLASH_OB_Unlock:
 913              	.LFB148:
 515:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   if((FLASH->OPTCR & FLASH_OPTCR_OPTLOCK) != RESET)
 914              		.loc 1 515 1 is_stmt 1 view -0
 915              		.cfi_startproc
 916              		@ args = 0, pretend = 0, frame = 0
 917              		@ frame_needed = 0, uses_anonymous_args = 0
 918              		@ link register save eliminated.
 516:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 919              		.loc 1 516 3 view .LVU257
 516:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 920              		.loc 1 516 12 is_stmt 0 view .LVU258
 921 0000 074B     		ldr	r3, .L63
ARM GAS  /tmp/ccfS03PQ.s 			page 49


 922 0002 5B69     		ldr	r3, [r3, #20]
 516:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 923              		.loc 1 516 5 view .LVU259
 924 0004 13F0010F 		tst	r3, #1
 925 0008 07D0     		beq	.L62
 519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     FLASH->OPTKEYR = FLASH_OPT_KEY2;
 926              		.loc 1 519 5 is_stmt 1 view .LVU260
 519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     FLASH->OPTKEYR = FLASH_OPT_KEY2;
 927              		.loc 1 519 20 is_stmt 0 view .LVU261
 928 000a 054B     		ldr	r3, .L63
 929 000c 054A     		ldr	r2, .L63+4
 930 000e 9A60     		str	r2, [r3, #8]
 520:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 931              		.loc 1 520 5 is_stmt 1 view .LVU262
 520:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 932              		.loc 1 520 20 is_stmt 0 view .LVU263
 933 0010 02F14432 		add	r2, r2, #1145324612
 934 0014 9A60     		str	r2, [r3, #8]
 527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 935              		.loc 1 527 3 is_stmt 1 view .LVU264
 527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 936              		.loc 1 527 10 is_stmt 0 view .LVU265
 937 0016 0020     		movs	r0, #0
 938 0018 7047     		bx	lr
 939              	.L62:
 524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }  
 940              		.loc 1 524 12 view .LVU266
 941 001a 0120     		movs	r0, #1
 528:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 942              		.loc 1 528 1 view .LVU267
 943 001c 7047     		bx	lr
 944              	.L64:
 945 001e 00BF     		.align	2
 946              	.L63:
 947 0020 003C0240 		.word	1073888256
 948 0024 3B2A1908 		.word	135866939
 949              		.cfi_endproc
 950              	.LFE148:
 952              		.section	.text.HAL_FLASH_OB_Lock,"ax",%progbits
 953              		.align	1
 954              		.global	HAL_FLASH_OB_Lock
 955              		.syntax unified
 956              		.thumb
 957              		.thumb_func
 959              	HAL_FLASH_OB_Lock:
 960              	.LFB149:
 535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Set the OPTLOCK Bit to lock the FLASH Option Byte Registers access */
 961              		.loc 1 535 1 is_stmt 1 view -0
 962              		.cfi_startproc
 963              		@ args = 0, pretend = 0, frame = 0
 964              		@ frame_needed = 0, uses_anonymous_args = 0
 965              		@ link register save eliminated.
 537:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 966              		.loc 1 537 3 view .LVU269
 537:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 967              		.loc 1 537 8 is_stmt 0 view .LVU270
 968 0000 034A     		ldr	r2, .L66
ARM GAS  /tmp/ccfS03PQ.s 			page 50


 969 0002 5369     		ldr	r3, [r2, #20]
 537:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 970              		.loc 1 537 16 view .LVU271
 971 0004 43F00103 		orr	r3, r3, #1
 972 0008 5361     		str	r3, [r2, #20]
 539:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 973              		.loc 1 539 3 is_stmt 1 view .LVU272
 540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 974              		.loc 1 540 1 is_stmt 0 view .LVU273
 975 000a 0020     		movs	r0, #0
 976 000c 7047     		bx	lr
 977              	.L67:
 978 000e 00BF     		.align	2
 979              	.L66:
 980 0010 003C0240 		.word	1073888256
 981              		.cfi_endproc
 982              	.LFE149:
 984              		.section	.text.HAL_FLASH_GetError,"ax",%progbits
 985              		.align	1
 986              		.global	HAL_FLASH_GetError
 987              		.syntax unified
 988              		.thumb
 989              		.thumb_func
 991              	HAL_FLASH_GetError:
 992              	.LFB151:
 583:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****    return pFlash.ErrorCode;
 993              		.loc 1 583 1 is_stmt 1 view -0
 994              		.cfi_startproc
 995              		@ args = 0, pretend = 0, frame = 0
 996              		@ frame_needed = 0, uses_anonymous_args = 0
 997              		@ link register save eliminated.
 584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }  
 998              		.loc 1 584 4 view .LVU275
 584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }  
 999              		.loc 1 584 17 is_stmt 0 view .LVU276
 1000 0000 014B     		ldr	r3, .L69
 1001 0002 9869     		ldr	r0, [r3, #24]
 585:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 1002              		.loc 1 585 1 view .LVU277
 1003 0004 7047     		bx	lr
 1004              	.L70:
 1005 0006 00BF     		.align	2
 1006              	.L69:
 1007 0008 00000000 		.word	pFlash
 1008              		.cfi_endproc
 1009              	.LFE151:
 1011              		.section	.text.FLASH_WaitForLastOperation,"ax",%progbits
 1012              		.align	1
 1013              		.global	FLASH_WaitForLastOperation
 1014              		.syntax unified
 1015              		.thumb
 1016              		.thumb_func
 1018              	FLASH_WaitForLastOperation:
 1019              	.LVL42:
 1020              	.LFB152:
 597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   uint32_t tickstart = 0;
 1021              		.loc 1 597 1 is_stmt 1 view -0
ARM GAS  /tmp/ccfS03PQ.s 			page 51


 1022              		.cfi_startproc
 1023              		@ args = 0, pretend = 0, frame = 0
 1024              		@ frame_needed = 0, uses_anonymous_args = 0
 597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   uint32_t tickstart = 0;
 1025              		.loc 1 597 1 is_stmt 0 view .LVU279
 1026 0000 38B5     		push	{r3, r4, r5, lr}
 1027              	.LCFI4:
 1028              		.cfi_def_cfa_offset 16
 1029              		.cfi_offset 3, -16
 1030              		.cfi_offset 4, -12
 1031              		.cfi_offset 5, -8
 1032              		.cfi_offset 14, -4
 1033 0002 0446     		mov	r4, r0
 598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 1034              		.loc 1 598 3 is_stmt 1 view .LVU280
 1035              	.LVL43:
 601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 1036              		.loc 1 601 3 view .LVU281
 601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 1037              		.loc 1 601 20 is_stmt 0 view .LVU282
 1038 0004 154B     		ldr	r3, .L82
 1039 0006 0022     		movs	r2, #0
 1040 0008 9A61     		str	r2, [r3, #24]
 607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 1041              		.loc 1 607 3 is_stmt 1 view .LVU283
 607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 1042              		.loc 1 607 15 is_stmt 0 view .LVU284
 1043 000a FFF7FEFF 		bl	HAL_GetTick
 1044              	.LVL44:
 607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 1045              		.loc 1 607 15 view .LVU285
 1046 000e 0546     		mov	r5, r0
 1047              	.LVL45:
 609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   { 
 1048              		.loc 1 609 3 is_stmt 1 view .LVU286
 1049              	.L73:
 609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   { 
 1050              		.loc 1 609 46 view .LVU287
 609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   { 
 1051              		.loc 1 609 9 is_stmt 0 view .LVU288
 1052 0010 134B     		ldr	r3, .L82+4
 1053 0012 DB68     		ldr	r3, [r3, #12]
 609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   { 
 1054              		.loc 1 609 46 view .LVU289
 1055 0014 13F4803F 		tst	r3, #65536
 1056 0018 0AD0     		beq	.L80
 611:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 1057              		.loc 1 611 5 is_stmt 1 view .LVU290
 611:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 1058              		.loc 1 611 7 is_stmt 0 view .LVU291
 1059 001a B4F1FF3F 		cmp	r4, #-1
 1060 001e F7D0     		beq	.L73
 613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       {
 1061              		.loc 1 613 7 is_stmt 1 view .LVU292
 613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       {
 1062              		.loc 1 613 9 is_stmt 0 view .LVU293
 1063 0020 24B1     		cbz	r4, .L74
ARM GAS  /tmp/ccfS03PQ.s 			page 52


 613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       {
 1064              		.loc 1 613 28 discriminator 1 view .LVU294
 1065 0022 FFF7FEFF 		bl	HAL_GetTick
 1066              	.LVL46:
 613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       {
 1067              		.loc 1 613 42 discriminator 1 view .LVU295
 1068 0026 401B     		subs	r0, r0, r5
 613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       {
 1069              		.loc 1 613 24 discriminator 1 view .LVU296
 1070 0028 A042     		cmp	r0, r4
 1071 002a F1D9     		bls	.L73
 1072              	.L74:
 615:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 1073              		.loc 1 615 9 is_stmt 1 view .LVU297
 615:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 1074              		.loc 1 615 16 is_stmt 0 view .LVU298
 1075 002c 0320     		movs	r0, #3
 1076 002e 0DE0     		b	.L75
 1077              	.L80:
 620:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 1078              		.loc 1 620 3 is_stmt 1 view .LVU299
 620:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 1079              		.loc 1 620 6 is_stmt 0 view .LVU300
 1080 0030 0B4B     		ldr	r3, .L82+4
 1081 0032 DB68     		ldr	r3, [r3, #12]
 620:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 1082              		.loc 1 620 5 view .LVU301
 1083 0034 13F0F20F 		tst	r3, #242
 1084 0038 09D1     		bne	.L81
 628:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 1085              		.loc 1 628 3 is_stmt 1 view .LVU302
 628:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 1086              		.loc 1 628 7 is_stmt 0 view .LVU303
 1087 003a 094B     		ldr	r3, .L82+4
 1088 003c DB68     		ldr	r3, [r3, #12]
 628:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 1089              		.loc 1 628 6 view .LVU304
 1090 003e 13F0010F 		tst	r3, #1
 1091 0042 08D0     		beq	.L78
 631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 1092              		.loc 1 631 5 is_stmt 1 view .LVU305
 1093 0044 064B     		ldr	r3, .L82+4
 1094 0046 0122     		movs	r2, #1
 1095 0048 DA60     		str	r2, [r3, #12]
 635:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 1096              		.loc 1 635 10 is_stmt 0 view .LVU306
 1097 004a 0020     		movs	r0, #0
 1098              	.L75:
 637:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 1099              		.loc 1 637 1 view .LVU307
 1100 004c 38BD     		pop	{r3, r4, r5, pc}
 1101              	.LVL47:
 1102              	.L81:
 623:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     return HAL_ERROR;
 1103              		.loc 1 623 5 is_stmt 1 view .LVU308
 1104 004e FFF7FEFF 		bl	FLASH_SetErrorCode
 1105              	.LVL48:
ARM GAS  /tmp/ccfS03PQ.s 			page 53


 624:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 1106              		.loc 1 624 5 view .LVU309
 624:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 1107              		.loc 1 624 12 is_stmt 0 view .LVU310
 1108 0052 0120     		movs	r0, #1
 1109 0054 FAE7     		b	.L75
 1110              	.L78:
 635:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 1111              		.loc 1 635 10 view .LVU311
 1112 0056 0020     		movs	r0, #0
 1113 0058 F8E7     		b	.L75
 1114              	.L83:
 1115 005a 00BF     		.align	2
 1116              	.L82:
 1117 005c 00000000 		.word	pFlash
 1118 0060 003C0240 		.word	1073888256
 1119              		.cfi_endproc
 1120              	.LFE152:
 1122              		.section	.text.HAL_FLASH_Program,"ax",%progbits
 1123              		.align	1
 1124              		.global	HAL_FLASH_Program
 1125              		.syntax unified
 1126              		.thumb
 1127              		.thumb_func
 1129              	HAL_FLASH_Program:
 1130              	.LVL49:
 1131              	.LFB141:
 163:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_ERROR;
 1132              		.loc 1 163 1 is_stmt 1 view -0
 1133              		.cfi_startproc
 1134              		@ args = 0, pretend = 0, frame = 0
 1135              		@ frame_needed = 0, uses_anonymous_args = 0
 163:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_ERROR;
 1136              		.loc 1 163 1 is_stmt 0 view .LVU313
 1137 0000 F8B5     		push	{r3, r4, r5, r6, r7, lr}
 1138              	.LCFI5:
 1139              		.cfi_def_cfa_offset 24
 1140              		.cfi_offset 3, -24
 1141              		.cfi_offset 4, -20
 1142              		.cfi_offset 5, -16
 1143              		.cfi_offset 6, -12
 1144              		.cfi_offset 7, -8
 1145              		.cfi_offset 14, -4
 1146 0002 1646     		mov	r6, r2
 164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 1147              		.loc 1 164 3 is_stmt 1 view .LVU314
 1148              	.LVL50:
 167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 1149              		.loc 1 167 3 view .LVU315
 167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 1150              		.loc 1 167 3 view .LVU316
 1151 0004 1B4A     		ldr	r2, .L96
 1152              	.LVL51:
 167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 1153              		.loc 1 167 3 is_stmt 0 view .LVU317
 1154 0006 127D     		ldrb	r2, [r2, #20]	@ zero_extendqisi2
 1155 0008 012A     		cmp	r2, #1
ARM GAS  /tmp/ccfS03PQ.s 			page 54


 1156 000a 31D0     		beq	.L93
 1157 000c 0446     		mov	r4, r0
 1158 000e 0D46     		mov	r5, r1
 1159 0010 1F46     		mov	r7, r3
 167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 1160              		.loc 1 167 3 is_stmt 1 discriminator 2 view .LVU318
 1161 0012 184B     		ldr	r3, .L96
 1162 0014 0122     		movs	r2, #1
 1163 0016 1A75     		strb	r2, [r3, #20]
 167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 1164              		.loc 1 167 3 discriminator 2 view .LVU319
 170:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 1165              		.loc 1 170 3 view .LVU320
 173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 1166              		.loc 1 173 3 view .LVU321
 173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 1167              		.loc 1 173 12 is_stmt 0 view .LVU322
 1168 0018 4CF25030 		movw	r0, #50000
 1169              	.LVL52:
 173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   
 1170              		.loc 1 173 12 view .LVU323
 1171 001c FFF7FEFF 		bl	FLASH_WaitForLastOperation
 1172              	.LVL53:
 175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 1173              		.loc 1 175 3 is_stmt 1 view .LVU324
 175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   {
 1174              		.loc 1 175 5 is_stmt 0 view .LVU325
 1175 0020 90B9     		cbnz	r0, .L86
 177:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     {
 1176              		.loc 1 177 5 is_stmt 1 view .LVU326
 1177 0022 032C     		cmp	r4, #3
 1178 0024 07D8     		bhi	.L87
 1179 0026 DFE804F0 		tbb	[pc, r4]
 1180              	.L89:
 1181 002a 02       		.byte	(.L92-.L89)/2
 1182 002b 13       		.byte	(.L91-.L89)/2
 1183 002c 18       		.byte	(.L90-.L89)/2
 1184 002d 1D       		.byte	(.L88-.L89)/2
 1185              		.p2align 1
 1186              	.L92:
 182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 1187              		.loc 1 182 9 view .LVU327
 1188 002e F1B2     		uxtb	r1, r6
 1189 0030 2846     		mov	r0, r5
 1190              	.LVL54:
 182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 1191              		.loc 1 182 9 is_stmt 0 view .LVU328
 1192 0032 FFF7FEFF 		bl	FLASH_Program_Byte
 1193              	.LVL55:
 183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 1194              		.loc 1 183 9 is_stmt 1 view .LVU329
 1195              	.L87:
 210:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     
 1196              		.loc 1 210 5 view .LVU330
 210:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****     
 1197              		.loc 1 210 14 is_stmt 0 view .LVU331
 1198 0036 4CF25030 		movw	r0, #50000
ARM GAS  /tmp/ccfS03PQ.s 			page 55


 1199 003a FFF7FEFF 		bl	FLASH_WaitForLastOperation
 1200              	.LVL56:
 213:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 1201              		.loc 1 213 5 is_stmt 1 view .LVU332
 213:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 1202              		.loc 1 213 10 is_stmt 0 view .LVU333
 1203 003e 0E4A     		ldr	r2, .L96+4
 1204 0040 1369     		ldr	r3, [r2, #16]
 213:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   }
 1205              		.loc 1 213 15 view .LVU334
 1206 0042 23F00103 		bic	r3, r3, #1
 1207 0046 1361     		str	r3, [r2, #16]
 1208              	.L86:
 217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 1209              		.loc 1 217 3 is_stmt 1 view .LVU335
 217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 1210              		.loc 1 217 3 view .LVU336
 1211 0048 0A4B     		ldr	r3, .L96
 1212 004a 0022     		movs	r2, #0
 1213 004c 1A75     		strb	r2, [r3, #20]
 217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 1214              		.loc 1 217 3 view .LVU337
 219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 1215              		.loc 1 219 3 view .LVU338
 1216              	.LVL57:
 1217              	.L85:
 220:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 1218              		.loc 1 220 1 is_stmt 0 view .LVU339
 1219 004e F8BD     		pop	{r3, r4, r5, r6, r7, pc}
 1220              	.LVL58:
 1221              	.L91:
 189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 1222              		.loc 1 189 9 is_stmt 1 view .LVU340
 1223 0050 B1B2     		uxth	r1, r6
 1224 0052 2846     		mov	r0, r5
 1225              	.LVL59:
 189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 1226              		.loc 1 189 9 is_stmt 0 view .LVU341
 1227 0054 FFF7FEFF 		bl	FLASH_Program_HalfWord
 1228              	.LVL60:
 190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 1229              		.loc 1 190 9 is_stmt 1 view .LVU342
 1230 0058 EDE7     		b	.L87
 1231              	.LVL61:
 1232              	.L90:
 196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 1233              		.loc 1 196 9 view .LVU343
 1234 005a 3146     		mov	r1, r6
 1235 005c 2846     		mov	r0, r5
 1236              	.LVL62:
 196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 1237              		.loc 1 196 9 is_stmt 0 view .LVU344
 1238 005e FFF7FEFF 		bl	FLASH_Program_Word
 1239              	.LVL63:
 197:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 1240              		.loc 1 197 9 is_stmt 1 view .LVU345
 1241 0062 E8E7     		b	.L87
ARM GAS  /tmp/ccfS03PQ.s 			page 56


 1242              	.LVL64:
 1243              	.L88:
 203:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 1244              		.loc 1 203 9 view .LVU346
 1245 0064 3246     		mov	r2, r6
 1246 0066 3B46     		mov	r3, r7
 1247 0068 2846     		mov	r0, r5
 1248              	.LVL65:
 203:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****         break;
 1249              		.loc 1 203 9 is_stmt 0 view .LVU347
 1250 006a FFF7FEFF 		bl	FLASH_Program_DoubleWord
 1251              	.LVL66:
 204:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****       }
 1252              		.loc 1 204 9 is_stmt 1 view .LVU348
 1253 006e E2E7     		b	.L87
 1254              	.LVL67:
 1255              	.L93:
 167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 1256              		.loc 1 167 3 is_stmt 0 discriminator 1 view .LVU349
 1257 0070 0220     		movs	r0, #2
 1258              	.LVL68:
 167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 1259              		.loc 1 167 3 discriminator 1 view .LVU350
 1260 0072 ECE7     		b	.L85
 1261              	.L97:
 1262              		.align	2
 1263              	.L96:
 1264 0074 00000000 		.word	pFlash
 1265 0078 003C0240 		.word	1073888256
 1266              		.cfi_endproc
 1267              	.LFE141:
 1269              		.section	.text.HAL_FLASH_OB_Launch,"ax",%progbits
 1270              		.align	1
 1271              		.global	HAL_FLASH_OB_Launch
 1272              		.syntax unified
 1273              		.thumb
 1274              		.thumb_func
 1276              	HAL_FLASH_OB_Launch:
 1277              	.LFB150:
 547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c ****   /* Set the OPTSTRT bit in OPTCR register */
 1278              		.loc 1 547 1 is_stmt 1 view -0
 1279              		.cfi_startproc
 1280              		@ args = 0, pretend = 0, frame = 0
 1281              		@ frame_needed = 0, uses_anonymous_args = 0
 1282 0000 08B5     		push	{r3, lr}
 1283              	.LCFI6:
 1284              		.cfi_def_cfa_offset 8
 1285              		.cfi_offset 3, -8
 1286              		.cfi_offset 14, -4
 549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 1287              		.loc 1 549 3 view .LVU352
 549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 1288              		.loc 1 549 8 is_stmt 0 view .LVU353
 1289 0002 054A     		ldr	r2, .L100
 1290 0004 5369     		ldr	r3, [r2, #20]
 549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 1291              		.loc 1 549 16 view .LVU354
ARM GAS  /tmp/ccfS03PQ.s 			page 57


 1292 0006 43F00203 		orr	r3, r3, #2
 1293 000a 5361     		str	r3, [r2, #20]
 552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 1294              		.loc 1 552 3 is_stmt 1 view .LVU355
 552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** }
 1295              		.loc 1 552 10 is_stmt 0 view .LVU356
 1296 000c 4CF25030 		movw	r0, #50000
 1297 0010 FFF7FEFF 		bl	FLASH_WaitForLastOperation
 1298              	.LVL69:
 553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c **** 
 1299              		.loc 1 553 1 view .LVU357
 1300 0014 08BD     		pop	{r3, pc}
 1301              	.L101:
 1302 0016 00BF     		.align	2
 1303              	.L100:
 1304 0018 003C0240 		.word	1073888256
 1305              		.cfi_endproc
 1306              	.LFE150:
 1308              		.global	pFlash
 1309              		.section	.bss.pFlash,"aw",%nobits
 1310              		.align	2
 1313              	pFlash:
 1314 0000 00000000 		.space	28
 1314      00000000 
 1314      00000000 
 1314      00000000 
 1314      00000000 
 1315              		.text
 1316              	.Letext0:
 1317              		.file 3 "/usr/lib/gcc/arm-none-eabi/13.2.1/include/stdint.h"
 1318              		.file 4 "Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f767xx.h"
 1319              		.file 5 "Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f7xx.h"
 1320              		.file 6 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_def.h"
 1321              		.file 7 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_flash.h"
 1322              		.file 8 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal.h"
 1323              		.file 9 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_flash_ex.h"
ARM GAS  /tmp/ccfS03PQ.s 			page 58


DEFINED SYMBOLS
                            *ABS*:00000000 stm32f7xx_hal_flash.c
     /tmp/ccfS03PQ.s:20     .text.FLASH_Program_DoubleWord:00000000 $t
     /tmp/ccfS03PQ.s:25     .text.FLASH_Program_DoubleWord:00000000 FLASH_Program_DoubleWord
     /tmp/ccfS03PQ.s:102    .text.FLASH_Program_DoubleWord:00000030 $d
     /tmp/ccfS03PQ.s:107    .text.FLASH_Program_Word:00000000 $t
     /tmp/ccfS03PQ.s:112    .text.FLASH_Program_Word:00000000 FLASH_Program_Word
     /tmp/ccfS03PQ.s:162    .text.FLASH_Program_Word:00000024 $d
     /tmp/ccfS03PQ.s:167    .text.FLASH_Program_HalfWord:00000000 $t
     /tmp/ccfS03PQ.s:172    .text.FLASH_Program_HalfWord:00000000 FLASH_Program_HalfWord
     /tmp/ccfS03PQ.s:222    .text.FLASH_Program_HalfWord:00000024 $d
     /tmp/ccfS03PQ.s:227    .text.FLASH_Program_Byte:00000000 $t
     /tmp/ccfS03PQ.s:232    .text.FLASH_Program_Byte:00000000 FLASH_Program_Byte
     /tmp/ccfS03PQ.s:281    .text.FLASH_Program_Byte:00000020 $d
     /tmp/ccfS03PQ.s:286    .text.FLASH_SetErrorCode:00000000 $t
     /tmp/ccfS03PQ.s:291    .text.FLASH_SetErrorCode:00000000 FLASH_SetErrorCode
     /tmp/ccfS03PQ.s:382    .text.FLASH_SetErrorCode:0000006c $d
     /tmp/ccfS03PQ.s:1313   .bss.pFlash:00000000 pFlash
     /tmp/ccfS03PQ.s:388    .text.HAL_FLASH_Program_IT:00000000 $t
     /tmp/ccfS03PQ.s:394    .text.HAL_FLASH_Program_IT:00000000 HAL_FLASH_Program_IT
     /tmp/ccfS03PQ.s:452    .text.HAL_FLASH_Program_IT:0000003a $d
     /tmp/ccfS03PQ.s:456    .text.HAL_FLASH_Program_IT:0000003e $t
     /tmp/ccfS03PQ.s:517    .text.HAL_FLASH_Program_IT:0000006c $d
     /tmp/ccfS03PQ.s:523    .text.HAL_FLASH_EndOfOperationCallback:00000000 $t
     /tmp/ccfS03PQ.s:529    .text.HAL_FLASH_EndOfOperationCallback:00000000 HAL_FLASH_EndOfOperationCallback
     /tmp/ccfS03PQ.s:544    .text.HAL_FLASH_OperationErrorCallback:00000000 $t
     /tmp/ccfS03PQ.s:550    .text.HAL_FLASH_OperationErrorCallback:00000000 HAL_FLASH_OperationErrorCallback
     /tmp/ccfS03PQ.s:565    .text.HAL_FLASH_IRQHandler:00000000 $t
     /tmp/ccfS03PQ.s:571    .text.HAL_FLASH_IRQHandler:00000000 HAL_FLASH_IRQHandler
     /tmp/ccfS03PQ.s:809    .text.HAL_FLASH_IRQHandler:000000fc $d
     /tmp/ccfS03PQ.s:816    .text.HAL_FLASH_Unlock:00000000 $t
     /tmp/ccfS03PQ.s:822    .text.HAL_FLASH_Unlock:00000000 HAL_FLASH_Unlock
     /tmp/ccfS03PQ.s:868    .text.HAL_FLASH_Unlock:00000028 $d
     /tmp/ccfS03PQ.s:874    .text.HAL_FLASH_Lock:00000000 $t
     /tmp/ccfS03PQ.s:880    .text.HAL_FLASH_Lock:00000000 HAL_FLASH_Lock
     /tmp/ccfS03PQ.s:901    .text.HAL_FLASH_Lock:00000010 $d
     /tmp/ccfS03PQ.s:906    .text.HAL_FLASH_OB_Unlock:00000000 $t
     /tmp/ccfS03PQ.s:912    .text.HAL_FLASH_OB_Unlock:00000000 HAL_FLASH_OB_Unlock
     /tmp/ccfS03PQ.s:947    .text.HAL_FLASH_OB_Unlock:00000020 $d
     /tmp/ccfS03PQ.s:953    .text.HAL_FLASH_OB_Lock:00000000 $t
     /tmp/ccfS03PQ.s:959    .text.HAL_FLASH_OB_Lock:00000000 HAL_FLASH_OB_Lock
     /tmp/ccfS03PQ.s:980    .text.HAL_FLASH_OB_Lock:00000010 $d
     /tmp/ccfS03PQ.s:985    .text.HAL_FLASH_GetError:00000000 $t
     /tmp/ccfS03PQ.s:991    .text.HAL_FLASH_GetError:00000000 HAL_FLASH_GetError
     /tmp/ccfS03PQ.s:1007   .text.HAL_FLASH_GetError:00000008 $d
     /tmp/ccfS03PQ.s:1012   .text.FLASH_WaitForLastOperation:00000000 $t
     /tmp/ccfS03PQ.s:1018   .text.FLASH_WaitForLastOperation:00000000 FLASH_WaitForLastOperation
     /tmp/ccfS03PQ.s:1117   .text.FLASH_WaitForLastOperation:0000005c $d
     /tmp/ccfS03PQ.s:1123   .text.HAL_FLASH_Program:00000000 $t
     /tmp/ccfS03PQ.s:1129   .text.HAL_FLASH_Program:00000000 HAL_FLASH_Program
     /tmp/ccfS03PQ.s:1181   .text.HAL_FLASH_Program:0000002a $d
     /tmp/ccfS03PQ.s:1185   .text.HAL_FLASH_Program:0000002e $t
     /tmp/ccfS03PQ.s:1264   .text.HAL_FLASH_Program:00000074 $d
     /tmp/ccfS03PQ.s:1270   .text.HAL_FLASH_OB_Launch:00000000 $t
     /tmp/ccfS03PQ.s:1276   .text.HAL_FLASH_OB_Launch:00000000 HAL_FLASH_OB_Launch
     /tmp/ccfS03PQ.s:1304   .text.HAL_FLASH_OB_Launch:00000018 $d
     /tmp/ccfS03PQ.s:1310   .bss.pFlash:00000000 $d
ARM GAS  /tmp/ccfS03PQ.s 			page 59



UNDEFINED SYMBOLS
FLASH_Erase_Sector
HAL_GetTick
