ARM GAS  /tmp/ccUpFCH8.s 			page 1


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


  33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****           (8 bits added per double word)
  34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
  35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
  36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                         ##### How to use this driver #####
  37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   ==============================================================================
  38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     [..]
  39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       This driver provides functions and macros to configure and program the FLASH
  40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       memory of all STM32G4xx devices.
  41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
  42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       (#) Flash Memory IO Programming functions:
  43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****            (++) Lock and Unlock the FLASH interface using HAL_FLASH_Unlock() and
  44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                 HAL_FLASH_Lock() functions
  45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****            (++) Program functions: double word and fast program (full row programming)
  46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****            (++) There are two modes of programming :
  47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****             (+++) Polling mode using HAL_FLASH_Program() function
  48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****             (+++) Interrupt mode using HAL_FLASH_Program_IT() function
  49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
  50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       (#) Interrupts and flags management functions:
  51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****            (++) Handle FLASH interrupts by calling HAL_FLASH_IRQHandler()
  52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****            (++) Callback functions are called when the flash operations are finished :
  53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                 HAL_FLASH_EndOfOperationCallback() when everything is ok, otherwise
  54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                 HAL_FLASH_OperationErrorCallback()
  55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****            (++) Get error flag status by calling HAL_GetError()
  56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
  57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       (#) Option bytes management functions:
  58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****            (++) Lock and Unlock the option bytes using HAL_FLASH_OB_Unlock() and
  59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                 HAL_FLASH_OB_Lock() functions
  60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****            (++) Launch the reload of the option bytes using HAL_FLASH_Launch() function.
  61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                 In this case, a reset is generated
  62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
  63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     [..]
  64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       In addition to these functions, this driver includes a set of macros allowing
  65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       to handle the following operations:
  66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****        (+) Set the latency
  67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****        (+) Enable/Disable the prefetch buffer
  68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****        (+) Enable/Disable the Instruction cache and the Data cache
  69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****        (+) Reset the Instruction cache and the Data cache
  70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****        (+) Enable/Disable the Flash power-down during low-power run and sleep modes
  71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****        (+) Enable/Disable the Flash interrupts
  72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****        (+) Monitor the Flash flags status
  73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
  74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   @endverbatim
  75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   ******************************************************************************
  76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @attention
  77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *
  78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * <h2><center>&copy; COPYRIGHT(c) 2019 STMicroelectronics</center></h2>
  79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *
  80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * This software component is licensed by ST under BSD 3-Clause license,
  81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * the "License"; You may not use this file except in compliance with the
  82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * License. You may obtain a copy of the License at:
  83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *                       opensource.org/licenses/BSD-3-Clause
  84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *
  85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   ******************************************************************************
  86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
  87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
  88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Includes ------------------------------------------------------------------*/
  89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** #include "stm32g4xx_hal.h"
ARM GAS  /tmp/ccUpFCH8.s 			page 3


  90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
  91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @addtogroup STM32G4xx_HAL_Driver
  92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @{
  93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
  94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
  95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @defgroup FLASH FLASH
  96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief FLASH HAL module driver
  97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @{
  98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
  99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** #ifdef HAL_FLASH_MODULE_ENABLED
 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Private typedef -----------------------------------------------------------*/
 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Private defines -----------------------------------------------------------*/
 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @defgroup FLASH_Private_Constants FLASH Private Constants
 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @{
 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** #define FLASH_NB_DOUBLE_WORDS_IN_ROW  32
 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @}
 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Private macros ------------------------------------------------------------*/
 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Private variables ---------------------------------------------------------*/
 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @defgroup FLASH_Private_Variables FLASH Private Variables
 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @{
 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Variable used for Program/Erase sectors under interruption
 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** FLASH_ProcessTypeDef pFlash  = {.Lock = HAL_UNLOCKED,
 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                                 .ErrorCode = HAL_FLASH_ERROR_NONE,
 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                                 .ProcedureOnGoing = FLASH_PROC_NONE,
 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                                 .Address = 0U,
 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                                 .Bank = FLASH_BANK_1,
 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                                 .Page = 0U,
 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                                 .NbPagesToErase = 0U,
 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                                 .CacheToReactivate = FLASH_CACHE_DISABLED};
 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @}
 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Private function prototypes -----------------------------------------------*/
 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @defgroup FLASH_Private_Functions FLASH Private Functions
 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @{
 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** static void          FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data);
 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** static void          FLASH_Program_Fast(uint32_t Address, uint32_t DataAddress);
 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @}
 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Exported functions --------------------------------------------------------*/
 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions FLASH Exported Functions
 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @{
 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
ARM GAS  /tmp/ccUpFCH8.s 			page 4


 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group1 Programming operation functions
 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *  @brief   Programming operation functions
 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *
 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** @verbatim
 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****  ===============================================================================
 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                   ##### Programming operation functions #####
 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****  ===============================================================================
 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     [..]
 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     This subsection provides a set of functions allowing to manage the FLASH
 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     program operations.
 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** @endverbatim
 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @{
 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Program double word or fast program of a row at a specified address.
 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  TypeProgram Indicate the way to program at a specified address.
 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *         This parameter can be a value of @ref FLASH_Type_Program.
 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  Address specifies the address to be programmed.
 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  Data specifies the data to be programmed.
 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *         This parameter is the data for the double word program and the address where
 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *         are stored the data for the row fast program.
 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *
 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval HAL_Status
 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
  27              		.loc 1 175 0
  28              		.cfi_startproc
  29              		@ args = 0, pretend = 0, frame = 0
  30              		@ frame_needed = 0, uses_anonymous_args = 0
  31              	.LVL0:
  32 0000 2DE9F047 		push	{r4, r5, r6, r7, r8, r9, r10, lr}
  33              	.LCFI0:
  34              		.cfi_def_cfa_offset 32
  35              		.cfi_offset 4, -32
  36              		.cfi_offset 5, -28
  37              		.cfi_offset 6, -24
  38              		.cfi_offset 7, -20
  39              		.cfi_offset 8, -16
  40              		.cfi_offset 9, -12
  41              		.cfi_offset 10, -8
  42              		.cfi_offset 14, -4
 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status;
 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t prog_bit = 0;
 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Check the parameters */
 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram));
 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Process Locked */
 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   __HAL_LOCK(&pFlash);
  43              		.loc 1 183 0
  44 0004 DFF82081 		ldr	r8, .L32+4
  45 0008 98F80060 		ldrb	r6, [r8]	@ zero_extendqisi2
  46              	.LVL1:
ARM GAS  /tmp/ccUpFCH8.s 			page 5


  47 000c 012E     		cmp	r6, #1
  48 000e 56D0     		beq	.L17
  49 0010 9A46     		mov	r10, r3
  50              		.loc 1 183 0 is_stmt 0 discriminator 2
  51 0012 0123     		movs	r3, #1
  52 0014 1446     		mov	r4, r2
  53 0016 0D46     		mov	r5, r1
  54 0018 8146     		mov	r9, r0
  55 001a 88F80030 		strb	r3, [r8]
  56              	.LVL2:
  57              	.LBB54:
  58              	.LBB55:
 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Wait for last operation to be completed */
 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (status == HAL_OK)
 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if (TypeProgram == FLASH_TYPEPROGRAM_DOUBLEWORD)
 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* Program double-word (64-bit) at a specified address */
 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       FLASH_Program_DoubleWord(Address, Data);
 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       prog_bit = FLASH_CR_PG;
 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     else if ((TypeProgram == FLASH_TYPEPROGRAM_FAST) || (TypeProgram == FLASH_TYPEPROGRAM_FAST_AND_
 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* Fast program a 32 row double-word (64-bit) at a specified address */
 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       FLASH_Program_Fast(Address, (uint32_t)Data);
 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* If it is the last row, the bit will be cleared at the end of the operation */
 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       if (TypeProgram == FLASH_TYPEPROGRAM_FAST_AND_LAST)
 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         prog_bit = FLASH_CR_FSTPG;
 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     else
 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* Nothing to do */
 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Wait for last operation to be completed */
 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* If the program operation is completed, disable the PG or FSTPG Bit */
 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if (prog_bit != 0U)
 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       CLEAR_BIT(FLASH->CR, prog_bit);
 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Process Unlocked */
 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   __HAL_UNLOCK(&pFlash);
 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* return status */
 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   return status;
ARM GAS  /tmp/ccUpFCH8.s 			page 6


 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Program double word or fast program of a row at a specified address with interrupt enab
 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  TypeProgram Indicate the way to program at a specified address.
 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *         This parameter can be a value of @ref FLASH_Type_Program.
 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  Address specifies the address to be programmed.
 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  Data specifies the data to be programmed.
 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *         This parameter is the data for the double word program and the address where
 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *         are stored the data for the row fast program.
 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *
 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval HAL_Status
 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status;
 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Check the parameters */
 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram));
 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Process Locked */
 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   __HAL_LOCK(&pFlash);
 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Reset error code */
 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Wait for last operation to be completed */
 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (status != HAL_OK)
 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Process Unlocked */
 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     __HAL_UNLOCK(&pFlash);
 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   else
 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Set internal variables used by the IRQ handler */
 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if (TypeProgram == FLASH_TYPEPROGRAM_FAST_AND_LAST)
 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAM_LAST;
 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     else
 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAM;
 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     pFlash.Address = Address;
 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Enable End of Operation and Error interrupts */
 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP | FLASH_IT_OPERR);
 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if (TypeProgram == FLASH_TYPEPROGRAM_DOUBLEWORD)
 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* Program double-word (64-bit) at a specified address */
 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       FLASH_Program_DoubleWord(Address, Data);
 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     else if ((TypeProgram == FLASH_TYPEPROGRAM_FAST) || (TypeProgram == FLASH_TYPEPROGRAM_FAST_AND_
 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
ARM GAS  /tmp/ccUpFCH8.s 			page 7


 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* Fast program a 32 row double-word (64-bit) at a specified address */
 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       FLASH_Program_Fast(Address, (uint32_t)Data);
 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     else
 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* Nothing to do */
 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   return status;
 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Handle FLASH interrupt request.
 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval None
 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** void HAL_FLASH_IRQHandler(void)
 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t tmp_page;
 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t error;
 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   FLASH_ProcedureTypeDef procedure;
 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* If the operation is completed, disable the PG, PNB, MER1, MER2 and PER Bit */
 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   CLEAR_BIT(FLASH->CR, (FLASH_CR_PG | FLASH_CR_MER1 | FLASH_CR_PER | FLASH_CR_PNB));
 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** #if defined (FLASH_OPTR_DBANK)
 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   CLEAR_BIT(FLASH->CR, FLASH_CR_MER2);
 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** #endif
 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Disable the FSTPG Bit only if it is the last row programmed */
 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (pFlash.ProcedureOnGoing == FLASH_PROC_PROGRAM_LAST)
 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     CLEAR_BIT(FLASH->CR, FLASH_CR_FSTPG);
 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Check FLASH operation error flags */
 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   error = (FLASH->SR & FLASH_FLAG_SR_ERRORS);
 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (error != 0U)
 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Save the error code */
 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     pFlash.ErrorCode |= error;
 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Clear error programming flags */
 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     __HAL_FLASH_CLEAR_FLAG(error);
 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Flush the caches to be sure of the data consistency */
 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     FLASH_FlushCaches() ;
 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* FLASH error interrupt user callback */
 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     procedure = pFlash.ProcedureOnGoing;
 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if (procedure == FLASH_PROC_PAGE_ERASE)
 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       HAL_FLASH_OperationErrorCallback(pFlash.Page);
 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     else if (procedure == FLASH_PROC_MASS_ERASE)
 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       HAL_FLASH_OperationErrorCallback(pFlash.Bank);
ARM GAS  /tmp/ccUpFCH8.s 			page 8


 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     else if ((procedure == FLASH_PROC_PROGRAM) ||
 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****              (procedure == FLASH_PROC_PROGRAM_LAST))
 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       HAL_FLASH_OperationErrorCallback(pFlash.Address);
 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     else
 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* Nothing to do */
 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /*Stop the procedure ongoing*/
 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Check FLASH End of Operation flag  */
 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP))
 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Clear FLASH End of Operation pending bit */
 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if (pFlash.ProcedureOnGoing == FLASH_PROC_PAGE_ERASE)
 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* Nb of pages to erased can be decreased */
 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       pFlash.NbPagesToErase--;
 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* Check if there are still pages to erase*/
 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       if (pFlash.NbPagesToErase != 0U)
 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* Indicate user which page has been erased*/
 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         HAL_FLASH_EndOfOperationCallback(pFlash.Page);
 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* Increment page number */
 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         pFlash.Page++;
 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         tmp_page = pFlash.Page;
 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         FLASH_PageErase(tmp_page, pFlash.Bank);
 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       else
 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* No more pages to Erase */
 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* Reset Address and stop Erase pages procedure */
 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         pFlash.Page = 0xFFFFFFFFU;
 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* Flush the caches to be sure of the data consistency */
 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         FLASH_FlushCaches() ;
 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* FLASH EOP interrupt user callback */
 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         HAL_FLASH_EndOfOperationCallback(pFlash.Page);
 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     else
 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* Flush the caches to be sure of the data consistency */
 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       FLASH_FlushCaches() ;
 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       procedure = pFlash.ProcedureOnGoing;
ARM GAS  /tmp/ccUpFCH8.s 			page 9


 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       if (procedure == FLASH_PROC_MASS_ERASE)
 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* MassErase ended. Return the selected bank */
 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* FLASH EOP interrupt user callback */
 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         HAL_FLASH_EndOfOperationCallback(pFlash.Bank);
 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       else if ((procedure == FLASH_PROC_PROGRAM) ||
 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                (procedure == FLASH_PROC_PROGRAM_LAST))
 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* Program ended. Return the selected address */
 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* FLASH EOP interrupt user callback */
 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         HAL_FLASH_EndOfOperationCallback(pFlash.Address);
 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       else
 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* Nothing to do */
 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /*Clear the procedure ongoing*/
 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (pFlash.ProcedureOnGoing == FLASH_PROC_NONE)
 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Disable End of Operation and Error interrupts */
 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     __HAL_FLASH_DISABLE_IT(FLASH_IT_EOP | FLASH_IT_OPERR);
 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Process Unlocked */
 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     __HAL_UNLOCK(&pFlash);
 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  FLASH end of operation interrupt callback.
 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  ReturnValue The value saved in this parameter depends on the ongoing procedure:
 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *           @arg Mass Erase: Bank number which has been requested to erase
 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *           @arg Page Erase: Page which has been erased
 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *                            (if 0xFFFFFFFF, it means that all the selected pages have been erase
 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *           @arg Program: Address which was selected for data program
 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval None
 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** __weak void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue)
 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Prevent unused argument(s) compilation warning */
 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   UNUSED(ReturnValue);
 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* NOTE : This function should not be modified, when the callback is needed,
 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****             the HAL_FLASH_EndOfOperationCallback could be implemented in the user file
 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****    */
 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  FLASH operation error interrupt callback.
 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  ReturnValue The value saved in this parameter depends on the ongoing procedure:
 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *           @arg Mass Erase: Bank number which has been requested to erase
 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *           @arg Page Erase: Page number which returned an error
ARM GAS  /tmp/ccUpFCH8.s 			page 10


 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *           @arg Program: Address which was selected for data program
 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval None
 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** __weak void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue)
 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Prevent unused argument(s) compilation warning */
 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   UNUSED(ReturnValue);
 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* NOTE : This function should not be modified, when the callback is needed,
 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****             the HAL_FLASH_OperationErrorCallback could be implemented in the user file
 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****    */
 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @}
 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group2 Peripheral Control functions
 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief   Management functions
 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *
 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** @verbatim
 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****  ===============================================================================
 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                       ##### Peripheral Control functions #####
 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****  ===============================================================================
 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     [..]
 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     This subsection provides a set of functions allowing to control the FLASH
 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     memory operations.
 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** @endverbatim
 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @{
 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Unlock the FLASH control register access.
 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval HAL_Status
 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Unlock(void)
 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_OK;
 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) != 0U)
 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Authorize the FLASH Registers access */
 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     WRITE_REG(FLASH->KEYR, FLASH_KEY1);
 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     WRITE_REG(FLASH->KEYR, FLASH_KEY2);
 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* verify Flash is unlocked */
 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) != 0U)
 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       status = HAL_ERROR;
 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   return status;
 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
ARM GAS  /tmp/ccUpFCH8.s 			page 11


 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Lock the FLASH control register access.
 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval HAL_Status
 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Lock(void)
 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_ERROR;
 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Set the LOCK Bit to lock the FLASH Registers access */
 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   SET_BIT(FLASH->CR, FLASH_CR_LOCK);
 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* verify Flash is locked */
 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) != 0U)
 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     status = HAL_OK;
 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   return status;
 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Unlock the FLASH Option Bytes Registers access.
 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval HAL_Status
 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void)
 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_OK;
 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (READ_BIT(FLASH->CR, FLASH_CR_OPTLOCK) != 0U)
 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Authorizes the Option Byte register programming */
 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY1);
 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY2);
 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* verify option bytes are unlocked */
 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if (READ_BIT(FLASH->CR, FLASH_CR_OPTLOCK) != 0U)
 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       status = HAL_ERROR;
 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   return status;
 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Lock the FLASH Option Bytes Registers access.
 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval HAL_Status
 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Lock(void)
 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_ERROR;
 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Set the OPTLOCK Bit to lock the FLASH Option Byte Registers access */
 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   SET_BIT(FLASH->CR, FLASH_CR_OPTLOCK);
 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Verify option bytes are locked */
 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (READ_BIT(FLASH->CR, FLASH_CR_OPTLOCK) != 0U)
 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
ARM GAS  /tmp/ccUpFCH8.s 			page 12


 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     status = HAL_OK;
 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   return status;
 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Launch the option byte loading.
 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval HAL_Status
 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Launch(void)
 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Set the bit to force the option byte reloading */
 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   SET_BIT(FLASH->CR, FLASH_CR_OBL_LAUNCH);
 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Wait for last operation to be completed */
 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   return (FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE));
 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @}
 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group3 Peripheral State and Errors functions
 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief   Peripheral Errors functions
 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *
 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** @verbatim
 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****  ===============================================================================
 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                 ##### Peripheral Errors functions #####
 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****  ===============================================================================
 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     [..]
 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     This subsection permits to get in run-time Errors of the FLASH peripheral.
 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** @endverbatim
 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @{
 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Get the specific FLASH error flag.
 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval FLASH_ErrorCode. The returned value can be:
 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_RD: FLASH Read Protection error flag (PCROP)
 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_PGS: FLASH Programming Sequence error flag
 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_PGP: FLASH Programming Parallelism error flag
 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_PGA: FLASH Programming Alignment error flag
 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_WRP: FLASH Write protected error flag
 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_OPERATION: FLASH operation Error flag
 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_NONE: No error set
 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_OP: FLASH Operation error
 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_PROG: FLASH Programming error
 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_WRP: FLASH Write protection error
 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_PGA: FLASH Programming alignment error
 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_SIZ: FLASH Size error
 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_PGS: FLASH Programming sequence error
 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_MIS: FLASH Fast programming data miss error
 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_FAST: FLASH Fast programming error
 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_RD: FLASH PCROP read error
 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_OPTV: FLASH Option validity error
ARM GAS  /tmp/ccUpFCH8.s 			page 13


 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** uint32_t HAL_FLASH_GetError(void)
 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   return pFlash.ErrorCode;
 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @}
 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @}
 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Private functions ---------------------------------------------------------*/
 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @addtogroup FLASH_Private_Functions
 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @{
 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Wait for a FLASH operation to complete.
 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  Timeout maximum flash operation timeout.
 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval HAL_Status
 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout)
 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset.
 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****      Even if the FLASH operation fails, the BUSY flag will be reset and an error
 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****      flag will be set */
 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t tickstart = HAL_GetTick();
  59              		.loc 1 659 0 is_stmt 1 discriminator 2
  60 001e FFF7FEFF 		bl	HAL_GetTick
  61              	.LVL3:
 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t error;
 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   while (__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY))
  62              		.loc 1 662 0 discriminator 2
  63 0022 404E     		ldr	r6, .L32
 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t error;
  64              		.loc 1 659 0 discriminator 2
  65 0024 0746     		mov	r7, r0
  66              	.LVL4:
  67 0026 05E0     		b	.L3
  68              	.LVL5:
  69              	.L5:
 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if ((HAL_GetTick() - tickstart) > Timeout)
  70              		.loc 1 664 0
  71 0028 FFF7FEFF 		bl	HAL_GetTick
  72              	.LVL6:
  73 002c C01B     		subs	r0, r0, r7
  74 002e B0F57A7F 		cmp	r0, #1000
  75 0032 3ED8     		bhi	.L18
  76              	.L3:
 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
ARM GAS  /tmp/ccUpFCH8.s 			page 14


  77              		.loc 1 662 0
  78 0034 3269     		ldr	r2, [r6, #16]
  79 0036 D103     		lsls	r1, r2, #15
  80 0038 F6D4     		bmi	.L5
 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       return HAL_TIMEOUT;
 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Check FLASH operation error flags */
 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   error = (FLASH->SR & FLASH_FLAG_SR_ERRORS);
  81              		.loc 1 671 0
  82 003a 3769     		ldr	r7, [r6, #16]
  83              	.LVL7:
  84 003c 4CF2FA33 		movw	r3, #50170
  85              	.LVL8:
 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (error != 0u)
  86              		.loc 1 672 0
  87 0040 1F40     		ands	r7, r7, r3
  88              	.LVL9:
  89 0042 3FD1     		bne	.L30
  90              	.LVL10:
  91              	.LBB56:
  92              	.LBB57:
 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Save the error code */
 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     pFlash.ErrorCode |= error;
 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Clear error programming flags */
 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     __HAL_FLASH_CLEAR_FLAG(error);
 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     return HAL_ERROR;
 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Check FLASH End of Operation flag  */
 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP))
  93              		.loc 1 684 0
  94 0044 3369     		ldr	r3, [r6, #16]
  95 0046 DA07     		lsls	r2, r3, #31
 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Clear FLASH End of Operation pending bit */
 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
  96              		.loc 1 687 0
  97 0048 44BF     		itt	mi
  98 004a 0123     		movmi	r3, #1
  99 004c 3361     		strmi	r3, [r6, #16]
 100              	.LVL11:
 101              	.LBE57:
 102              	.LBE56:
 103              	.LBE55:
 104              	.LBE54:
 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 105              		.loc 1 190 0
 106 004e 0023     		movs	r3, #0
 107 0050 C8F80430 		str	r3, [r8, #4]
 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 108              		.loc 1 192 0
ARM GAS  /tmp/ccUpFCH8.s 			page 15


 109 0054 B9F1000F 		cmp	r9, #0
 110 0058 3CD1     		bne	.L8
 111              	.LVL12:
 112              	.LBB60:
 113              	.LBB61:
 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* If there is an error flag set */
 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   return HAL_OK;
 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Program double-word (64-bit) at a specified address.
 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  Address specifies the address to be programmed.
 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  Data specifies the data to be programmed.
 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval None
 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** static void FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data)
 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Check the parameters */
 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   assert_param(IS_FLASH_PROGRAM_ADDRESS(Address));
 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Set PG bit */
 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   SET_BIT(FLASH->CR, FLASH_CR_PG);
 114              		.loc 1 706 0
 115 005a 324A     		ldr	r2, .L32
 116 005c 5369     		ldr	r3, [r2, #20]
 117 005e 43F00103 		orr	r3, r3, #1
 118 0062 5361     		str	r3, [r2, #20]
 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Program first word */
 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *(uint32_t *)Address = (uint32_t)Data;
 119              		.loc 1 709 0
 120 0064 2C60     		str	r4, [r5]
 121              	.LBB62:
 122              	.LBB63:
 123              		.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.2.0
   5:Drivers/CMSIS/Include/cmsis_gcc.h ****  * @date     08. May 2019
   6:Drivers/CMSIS/Include/cmsis_gcc.h ****  ******************************************************************************/
   7:Drivers/CMSIS/Include/cmsis_gcc.h **** /*
   8:Drivers/CMSIS/Include/cmsis_gcc.h ****  * Copyright (c) 2009-2019 Arm Limited. All rights reserved.
   9:Drivers/CMSIS/Include/cmsis_gcc.h ****  *
  10:Drivers/CMSIS/Include/cmsis_gcc.h ****  * SPDX-License-Identifier: Apache-2.0
  11:Drivers/CMSIS/Include/cmsis_gcc.h ****  *
  12:Drivers/CMSIS/Include/cmsis_gcc.h ****  * Licensed under the Apache License, Version 2.0 (the License); you may
  13:Drivers/CMSIS/Include/cmsis_gcc.h ****  * not use this file except in compliance with the License.
  14:Drivers/CMSIS/Include/cmsis_gcc.h ****  * You may obtain a copy of the License at
  15:Drivers/CMSIS/Include/cmsis_gcc.h ****  *
  16:Drivers/CMSIS/Include/cmsis_gcc.h ****  * www.apache.org/licenses/LICENSE-2.0
  17:Drivers/CMSIS/Include/cmsis_gcc.h ****  *
  18:Drivers/CMSIS/Include/cmsis_gcc.h ****  * Unless required by applicable law or agreed to in writing, software
  19:Drivers/CMSIS/Include/cmsis_gcc.h ****  * distributed under the License is distributed on an AS IS BASIS, WITHOUT
  20:Drivers/CMSIS/Include/cmsis_gcc.h ****  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ARM GAS  /tmp/ccUpFCH8.s 			page 16


  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 */
  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
ARM GAS  /tmp/ccUpFCH8.s 			page 17


  78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __UNALIGNED_UINT16_WRITE
  79:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic push
  80:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic ignored "-Wpacked"
  81:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic ignored "-Wattributes"
  82:Drivers/CMSIS/Include/cmsis_gcc.h ****   __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
  83:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic pop
  84:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __UNALIGNED_UINT16_WRITE(addr, val)    (void)((((struct T_UINT16_WRITE *)(void *)(addr))-
  85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __UNALIGNED_UINT16_READ
  87:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic push
  88:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic ignored "-Wpacked"
  89:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic ignored "-Wattributes"
  90:Drivers/CMSIS/Include/cmsis_gcc.h ****   __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
  91:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic pop
  92:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __UNALIGNED_UINT16_READ(addr)          (((const struct T_UINT16_READ *)(const void *)(add
  93:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  94:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __UNALIGNED_UINT32_WRITE
  95:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic push
  96:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic ignored "-Wpacked"
  97:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic ignored "-Wattributes"
  98:Drivers/CMSIS/Include/cmsis_gcc.h ****   __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
  99:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic pop
 100:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __UNALIGNED_UINT32_WRITE(addr, val)    (void)((((struct T_UINT32_WRITE *)(void *)(addr))-
 101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __UNALIGNED_UINT32_READ
 103:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic push
 104:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic ignored "-Wpacked"
 105:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic ignored "-Wattributes"
 106:Drivers/CMSIS/Include/cmsis_gcc.h ****   __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
 107:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic pop
 108:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __UNALIGNED_UINT32_READ(addr)          (((const struct T_UINT32_READ *)(const void *)(add
 109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __ALIGNED
 111:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __ALIGNED(x)                           __attribute__((aligned(x)))
 112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __RESTRICT
 114:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __RESTRICT                             __restrict
 115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 116:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __COMPILER_BARRIER
 117:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __COMPILER_BARRIER()                   __ASM volatile("":::"memory")
 118:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 119:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 120:Drivers/CMSIS/Include/cmsis_gcc.h **** /* #########################  Startup and Lowlevel Init  ######################## */
 121:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 122:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PROGRAM_START
 123:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 124:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 125:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Initializes data and bss sections
 126:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details This default implementations initialized all data and additional bss
 127:Drivers/CMSIS/Include/cmsis_gcc.h ****            sections relying on .copy.table and .zero.table specified properly
 128:Drivers/CMSIS/Include/cmsis_gcc.h ****            in the used linker script.
 129:Drivers/CMSIS/Include/cmsis_gcc.h ****   
 130:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 131:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE __NO_RETURN void __cmsis_start(void)
 132:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 133:Drivers/CMSIS/Include/cmsis_gcc.h ****   extern void _start(void) __NO_RETURN;
 134:Drivers/CMSIS/Include/cmsis_gcc.h ****   
ARM GAS  /tmp/ccUpFCH8.s 			page 18


 135:Drivers/CMSIS/Include/cmsis_gcc.h ****   typedef struct {
 136:Drivers/CMSIS/Include/cmsis_gcc.h ****     uint32_t const* src;
 137:Drivers/CMSIS/Include/cmsis_gcc.h ****     uint32_t* dest;
 138:Drivers/CMSIS/Include/cmsis_gcc.h ****     uint32_t  wlen;
 139:Drivers/CMSIS/Include/cmsis_gcc.h ****   } __copy_table_t;
 140:Drivers/CMSIS/Include/cmsis_gcc.h ****   
 141:Drivers/CMSIS/Include/cmsis_gcc.h ****   typedef struct {
 142:Drivers/CMSIS/Include/cmsis_gcc.h ****     uint32_t* dest;
 143:Drivers/CMSIS/Include/cmsis_gcc.h ****     uint32_t  wlen;
 144:Drivers/CMSIS/Include/cmsis_gcc.h ****   } __zero_table_t;
 145:Drivers/CMSIS/Include/cmsis_gcc.h ****   
 146:Drivers/CMSIS/Include/cmsis_gcc.h ****   extern const __copy_table_t __copy_table_start__;
 147:Drivers/CMSIS/Include/cmsis_gcc.h ****   extern const __copy_table_t __copy_table_end__;
 148:Drivers/CMSIS/Include/cmsis_gcc.h ****   extern const __zero_table_t __zero_table_start__;
 149:Drivers/CMSIS/Include/cmsis_gcc.h ****   extern const __zero_table_t __zero_table_end__;
 150:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 151:Drivers/CMSIS/Include/cmsis_gcc.h ****   for (__copy_table_t const* pTable = &__copy_table_start__; pTable < &__copy_table_end__; ++pTable
 152:Drivers/CMSIS/Include/cmsis_gcc.h ****     for(uint32_t i=0u; i<pTable->wlen; ++i) {
 153:Drivers/CMSIS/Include/cmsis_gcc.h ****       pTable->dest[i] = pTable->src[i];
 154:Drivers/CMSIS/Include/cmsis_gcc.h ****     }
 155:Drivers/CMSIS/Include/cmsis_gcc.h ****   }
 156:Drivers/CMSIS/Include/cmsis_gcc.h ****  
 157:Drivers/CMSIS/Include/cmsis_gcc.h ****   for (__zero_table_t const* pTable = &__zero_table_start__; pTable < &__zero_table_end__; ++pTable
 158:Drivers/CMSIS/Include/cmsis_gcc.h ****     for(uint32_t i=0u; i<pTable->wlen; ++i) {
 159:Drivers/CMSIS/Include/cmsis_gcc.h ****       pTable->dest[i] = 0u;
 160:Drivers/CMSIS/Include/cmsis_gcc.h ****     }
 161:Drivers/CMSIS/Include/cmsis_gcc.h ****   }
 162:Drivers/CMSIS/Include/cmsis_gcc.h ****  
 163:Drivers/CMSIS/Include/cmsis_gcc.h ****   _start();
 164:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 165:Drivers/CMSIS/Include/cmsis_gcc.h ****   
 166:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PROGRAM_START           __cmsis_start
 167:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 168:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 169:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INITIAL_SP
 170:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INITIAL_SP              __StackTop
 171:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 172:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 173:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STACK_LIMIT
 174:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STACK_LIMIT             __StackLimit
 175:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 176:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 177:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE
 178:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE            __Vectors
 179:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 180:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 181:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE_ATTRIBUTE
 182:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE_ATTRIBUTE  __attribute((used, section(".vectors")))
 183:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 184:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 185:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ###########################  Core Function Access  ########################### */
 186:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup  CMSIS_Core_FunctionInterface
 187:Drivers/CMSIS/Include/cmsis_gcc.h ****     \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions
 188:Drivers/CMSIS/Include/cmsis_gcc.h ****   @{
 189:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 190:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 191:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
ARM GAS  /tmp/ccUpFCH8.s 			page 19


 192:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Enable IRQ Interrupts
 193:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Enables IRQ interrupts by clearing the I-bit in the CPSR.
 194:Drivers/CMSIS/Include/cmsis_gcc.h ****            Can only be executed in Privileged modes.
 195:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 196:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void)
 197:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 198:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("cpsie i" : : : "memory");
 199:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 200:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 201:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 202:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 203:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Disable IRQ Interrupts
 204:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Disables IRQ interrupts by setting the I-bit in the CPSR.
 205:Drivers/CMSIS/Include/cmsis_gcc.h ****            Can only be executed in Privileged modes.
 206:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 207:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void)
 208:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 209:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("cpsid i" : : : "memory");
 210:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 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 ****   \brief   Get Control Register
 215:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the content of the Control Register.
 216:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               Control Register value
 217:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 218:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_CONTROL(void)
 219:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 220:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 221:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 222:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, control" : "=r" (result) );
 223:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 224:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 225:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 226:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 227:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 228:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 229:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Control Register (non-secure)
 230:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the content of the non-secure Control Register when in secure mode.
 231:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               non-secure Control Register value
 232:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(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, control_ns" : "=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 **** #endif
 241:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 242:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 243:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 244:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Control Register
 245:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Writes the given value to the Control Register.
 246:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    control  Control Register value to set
 247:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 248:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control)
ARM GAS  /tmp/ccUpFCH8.s 			page 20


 249:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 250:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR control, %0" : : "r" (control) : "memory");
 251:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 252:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 253:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 254:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 255:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 256:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Control Register (non-secure)
 257:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Writes the given value to the non-secure Control Register when in secure state.
 258:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    control  Control Register value to set
 259:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 260:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control)
 261:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 262:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory");
 263:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 264:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 265:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 266:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 267:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 268:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get IPSR Register
 269:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the content of the IPSR Register.
 270:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               IPSR Register value
 271:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 272:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_IPSR(void)
 273:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 274:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 275:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 276:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, ipsr" : "=r" (result) );
 277:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 278:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 279:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 280:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 281:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 282:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get APSR Register
 283:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the content of the APSR Register.
 284:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               APSR Register value
 285:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 286:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void)
 287:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 288:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 289:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 290:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, apsr" : "=r" (result) );
 291:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 292:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 293:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 294:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 295:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 296:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get xPSR Register
 297:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the content of the xPSR Register.
 298:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               xPSR Register value
 299:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 300:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void)
 301:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 302:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 303:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 304:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, xpsr" : "=r" (result) );
 305:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
ARM GAS  /tmp/ccUpFCH8.s 			page 21


 306:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 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 ****   \brief   Get Process Stack Pointer
 311:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the Process Stack Pointer (PSP).
 312:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               PSP Register value
 313:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 314:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSP(void)
 315:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 316:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 317:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 318:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, psp"  : "=r" (result) );
 319:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 320:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 321:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 322:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 323:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 324:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 325:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Process Stack Pointer (non-secure)
 326:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure s
 327:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               PSP Register value
 328:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 329:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void)
 330:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 331:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 332:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 333:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, psp_ns"  : "=r" (result) );
 334:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 335:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 336:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 337:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 338:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 339:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 340:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Process Stack Pointer
 341:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the Process Stack Pointer (PSP).
 342:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    topOfProcStack  Process Stack Pointer value to set
 343:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 344:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack)
 345:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 346:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : );
 347:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 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   Set Process Stack Pointer (non-secure)
 353:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure sta
 354:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    topOfProcStack  Process Stack Pointer value to set
 355:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 356:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack)
 357:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 358:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : );
 359:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 360:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 361:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 362:Drivers/CMSIS/Include/cmsis_gcc.h **** 
ARM GAS  /tmp/ccUpFCH8.s 			page 22


 363:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 364:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Main Stack Pointer
 365:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the Main Stack Pointer (MSP).
 366:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               MSP Register value
 367:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 368:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSP(void)
 369:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 370:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 371:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 372:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, msp" : "=r" (result) );
 373:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 374:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 375:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 376:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 377:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 378:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 379:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Main Stack Pointer (non-secure)
 380:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure stat
 381:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               MSP Register value
 382:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 383:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void)
 384:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 385:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 386:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 387:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, msp_ns" : "=r" (result) );
 388:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 389:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 390:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 391:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 392:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 393:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 394:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Main Stack Pointer
 395:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the Main Stack Pointer (MSP).
 396:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    topOfMainStack  Main Stack Pointer value to set
 397:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 398:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack)
 399:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 400:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : );
 401:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 402:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 403:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 404:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 405:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 406:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Main Stack Pointer (non-secure)
 407:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state.
 408:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    topOfMainStack  Main Stack Pointer value to set
 409:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 410:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack)
 411:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 412:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : );
 413:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 414:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 415:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 416:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 417:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 418:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 419:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Stack Pointer (non-secure)
ARM GAS  /tmp/ccUpFCH8.s 			page 23


 420:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state.
 421:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               SP Register value
 422:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 423:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void)
 424:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 425:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 426:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 427:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, sp_ns" : "=r" (result) );
 428:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 429:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 430:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 431:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 432:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 433:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Stack Pointer (non-secure)
 434:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state.
 435:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    topOfStack  Stack Pointer value to set
 436:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 437:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack)
 438:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 439:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : );
 440:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 441:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 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 ****   \brief   Get Priority Mask
 446:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current state of the priority mask bit from the Priority Mask Register.
 447:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               Priority Mask value
 448:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 449:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void)
 450:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 451:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 452:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 453:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
 454:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 455:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 456:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 457:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 458:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 459:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 460:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Priority Mask (non-secure)
 461:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current state of the non-secure priority mask bit from the Priority Mask Reg
 462:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               Priority Mask value
 463:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 464:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void)
 465:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 466:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 467:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 468:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory");
 469:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 470:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 471:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 472:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 473:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 474:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 475:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Priority Mask
 476:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the Priority Mask Register.
ARM GAS  /tmp/ccUpFCH8.s 			page 24


 477:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    priMask  Priority Mask
 478:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 479:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask)
 480:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 481:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
 482:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 483:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 484:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 485:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 486:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 487:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Priority Mask (non-secure)
 488:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the non-secure Priority Mask Register when in secure state.
 489:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    priMask  Priority Mask
 490:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 491:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask)
 492:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 493:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory");
 494:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 495:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 496:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 497:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 498:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__      ) && (__ARM_ARCH_7M__      == 1)) || \
 499:Drivers/CMSIS/Include/cmsis_gcc.h ****      (defined (__ARM_ARCH_7EM__     ) && (__ARM_ARCH_7EM__     == 1)) || \
 500:Drivers/CMSIS/Include/cmsis_gcc.h ****      (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))    )
 501:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 502:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Enable FIQ
 503:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Enables FIQ interrupts by clearing the F-bit in the CPSR.
 504:Drivers/CMSIS/Include/cmsis_gcc.h ****            Can only be executed in Privileged modes.
 505:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 506:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_fault_irq(void)
 507:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 508:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("cpsie f" : : : "memory");
 509:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 510:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 511:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 512:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 513:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Disable FIQ
 514:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Disables FIQ interrupts by setting the F-bit in the CPSR.
 515:Drivers/CMSIS/Include/cmsis_gcc.h ****            Can only be executed in Privileged modes.
 516:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 517:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_fault_irq(void)
 518:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 519:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("cpsid f" : : : "memory");
 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 **** /**
 524:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Base Priority
 525:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the Base Priority register.
 526:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               Base Priority register value
 527:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 528:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void)
 529:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 530:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 531:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 532:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, basepri" : "=r" (result) );
 533:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
ARM GAS  /tmp/ccUpFCH8.s 			page 25


 534:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 535:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 536:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 537:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 538:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 539:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Base Priority (non-secure)
 540:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the non-secure Base Priority register when in secure state.
 541:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               Base Priority register value
 542:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 543:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void)
 544:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 545:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 546:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 547:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) );
 548:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 549:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 550:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 551:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 552:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 553:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 554:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Base Priority
 555:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the Base Priority register.
 556:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    basePri  Base Priority value to set
 557:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 558:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri)
 559:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 560:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory");
 561:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 562:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 563:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 564:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 565:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 566:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Base Priority (non-secure)
 567:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the non-secure Base Priority register when in secure state.
 568:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    basePri  Base Priority value to set
 569:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 570:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri)
 571:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 572:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory");
 573:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 574:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 575:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 576:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 577:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 578:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Base Priority with condition
 579:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the Base Priority register only if BASEPRI masking is disable
 580:Drivers/CMSIS/Include/cmsis_gcc.h ****            or the new value increases the BASEPRI priority level.
 581:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    basePri  Base Priority value to set
 582:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 583:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri)
 584:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 585:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory");
 586:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 587:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 588:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 589:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 590:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Fault Mask
ARM GAS  /tmp/ccUpFCH8.s 			page 26


 591:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the Fault Mask register.
 592:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               Fault Mask register value
 593:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 594:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void)
 595:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 596:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 597:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 598:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, faultmask" : "=r" (result) );
 599:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 600:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 601:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 602:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 603:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 604:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 605:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Fault Mask (non-secure)
 606:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the non-secure Fault Mask register when in secure state.
 607:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               Fault Mask register value
 608:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 609:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void)
 610:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 611:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 612:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 613:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) );
 614:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 615:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 616:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 617:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 618:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 619:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 620:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Fault Mask
 621:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the Fault Mask register.
 622:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    faultMask  Fault Mask value to set
 623:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 624:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask)
 625:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 626:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory");
 627:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 628:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 629:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 630:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 631:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 632:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Fault Mask (non-secure)
 633:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the non-secure Fault Mask register when in secure state.
 634:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    faultMask  Fault Mask value to set
 635:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 636:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask)
 637:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 638:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory");
 639:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 640:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 641:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 642:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_7M__      ) && (__ARM_ARCH_7M__      == 1)) || \
 643:Drivers/CMSIS/Include/cmsis_gcc.h ****            (defined (__ARM_ARCH_7EM__     ) && (__ARM_ARCH_7EM__     == 1)) || \
 644:Drivers/CMSIS/Include/cmsis_gcc.h ****            (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))    ) */
 645:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 646:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 647:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
ARM GAS  /tmp/ccUpFCH8.s 			page 27


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


 705:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 706:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
 707:Drivers/CMSIS/Include/cmsis_gcc.h ****     (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
 708:Drivers/CMSIS/Include/cmsis_gcc.h ****   // without main extensions, the non-secure PSPLIM is RAZ/WI
 709:Drivers/CMSIS/Include/cmsis_gcc.h ****   (void)ProcStackPtrLimit;
 710:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 711:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit));
 712:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 713:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 714:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 715:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 716:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE  ) && (__ARM_FEATURE_CMSE   == 3))
 717:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 718:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Process Stack Pointer (non-secure)
 719:Drivers/CMSIS/Include/cmsis_gcc.h ****   Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
 720:Drivers/CMSIS/Include/cmsis_gcc.h ****   Stack Pointer Limit register hence the write is silently ignored.
 721:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 722:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in s
 723:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    ProcStackPtrLimit  Process Stack Pointer Limit value to set
 724:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 725:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit)
 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 ****   // without main extensions, the non-secure PSPLIM is RAZ/WI
 729:Drivers/CMSIS/Include/cmsis_gcc.h ****   (void)ProcStackPtrLimit;
 730:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 731:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit));
 732:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 733:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 734:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 735:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 736:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 737:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 738:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Main Stack Pointer Limit
 739:Drivers/CMSIS/Include/cmsis_gcc.h ****   Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
 740:Drivers/CMSIS/Include/cmsis_gcc.h ****   Stack Pointer Limit register hence zero is returned always in non-secure
 741:Drivers/CMSIS/Include/cmsis_gcc.h ****   mode.
 742:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 743:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the Main Stack Pointer Limit (MSPLIM).
 744:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               MSPLIM Register value
 745:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 746:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void)
 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 ****     (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
 750:Drivers/CMSIS/Include/cmsis_gcc.h ****   // without main extensions, the non-secure MSPLIM is RAZ/WI
 751:Drivers/CMSIS/Include/cmsis_gcc.h ****   return 0U;
 752:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 753:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 754:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, msplim" : "=r" (result) );
 755:Drivers/CMSIS/Include/cmsis_gcc.h ****   return result;
 756:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 757:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 758:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 759:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 760:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE  ) && (__ARM_FEATURE_CMSE   == 3))
 761:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
ARM GAS  /tmp/ccUpFCH8.s 			page 29


 762:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Main Stack Pointer Limit (non-secure)
 763:Drivers/CMSIS/Include/cmsis_gcc.h ****   Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
 764:Drivers/CMSIS/Include/cmsis_gcc.h ****   Stack Pointer Limit register hence zero is returned always.
 765:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 766:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in sec
 767:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               MSPLIM Register value
 768:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 769:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void)
 770:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 771:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
 772:Drivers/CMSIS/Include/cmsis_gcc.h ****   // without main extensions, the non-secure MSPLIM is RAZ/WI
 773:Drivers/CMSIS/Include/cmsis_gcc.h ****   return 0U;
 774:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 775:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 776:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) );
 777:Drivers/CMSIS/Include/cmsis_gcc.h ****   return result;
 778:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 779:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 780:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 781:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 782:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 783:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 784:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Main Stack Pointer Limit
 785:Drivers/CMSIS/Include/cmsis_gcc.h ****   Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
 786:Drivers/CMSIS/Include/cmsis_gcc.h ****   Stack Pointer Limit register hence the write is silently ignored in non-secure
 787:Drivers/CMSIS/Include/cmsis_gcc.h ****   mode.
 788:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 789:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM).
 790:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    MainStackPtrLimit  Main Stack Pointer Limit value to set
 791:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 792:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit)
 793:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 794:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
 795:Drivers/CMSIS/Include/cmsis_gcc.h ****     (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
 796:Drivers/CMSIS/Include/cmsis_gcc.h ****   // without main extensions, the non-secure MSPLIM is RAZ/WI
 797:Drivers/CMSIS/Include/cmsis_gcc.h ****   (void)MainStackPtrLimit;
 798:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 799:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit));
 800:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 801:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 802:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 803:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 804:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE  ) && (__ARM_FEATURE_CMSE   == 3))
 805:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 806:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Main Stack Pointer Limit (non-secure)
 807:Drivers/CMSIS/Include/cmsis_gcc.h ****   Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
 808:Drivers/CMSIS/Include/cmsis_gcc.h ****   Stack Pointer Limit register hence the write is silently ignored.
 809:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 810:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secu
 811:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    MainStackPtrLimit  Main Stack Pointer value to set
 812:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 813:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit)
 814:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 815:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
 816:Drivers/CMSIS/Include/cmsis_gcc.h ****   // without main extensions, the non-secure MSPLIM is RAZ/WI
 817:Drivers/CMSIS/Include/cmsis_gcc.h ****   (void)MainStackPtrLimit;
 818:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
ARM GAS  /tmp/ccUpFCH8.s 			page 30


 819:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit));
 820:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 821:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 822:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 823:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 824:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
 825:Drivers/CMSIS/Include/cmsis_gcc.h ****            (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1))    ) */
 826:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 827:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 828:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 829:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get FPSCR
 830:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the Floating Point Status/Control register.
 831:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               Floating Point Status/Control register value
 832:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 833:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FPSCR(void)
 834:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 835:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \
 836:Drivers/CMSIS/Include/cmsis_gcc.h ****      (defined (__FPU_USED   ) && (__FPU_USED    == 1U))     )
 837:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_get_fpscr) 
 838:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed
 839:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
 840:Drivers/CMSIS/Include/cmsis_gcc.h ****   /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
 841:Drivers/CMSIS/Include/cmsis_gcc.h ****   return __builtin_arm_get_fpscr();
 842:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 843:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 844:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 845:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("VMRS %0, fpscr" : "=r" (result) );
 846:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 847:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 848:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 849:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(0U);
 850:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 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 **** /**
 855:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set FPSCR
 856:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Assigns the given value to the Floating Point Status/Control register.
 857:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    fpscr  Floating Point Status/Control value to set
 858:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 859:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr)
 860:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 861:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \
 862:Drivers/CMSIS/Include/cmsis_gcc.h ****      (defined (__FPU_USED   ) && (__FPU_USED    == 1U))     )
 863:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_set_fpscr)
 864:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed
 865:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
 866:Drivers/CMSIS/Include/cmsis_gcc.h ****   /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
 867:Drivers/CMSIS/Include/cmsis_gcc.h ****   __builtin_arm_set_fpscr(fpscr);
 868:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 869:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory");
 870:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 871:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 872:Drivers/CMSIS/Include/cmsis_gcc.h ****   (void)fpscr;
 873:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 874:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 875:Drivers/CMSIS/Include/cmsis_gcc.h **** 
ARM GAS  /tmp/ccUpFCH8.s 			page 31


 876:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 877:Drivers/CMSIS/Include/cmsis_gcc.h **** /*@} end of CMSIS_Core_RegAccFunctions */
 878:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 879:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 880:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ##########################  Core Instruction Access  ######################### */
 881:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface
 882:Drivers/CMSIS/Include/cmsis_gcc.h ****   Access to dedicated instructions
 883:Drivers/CMSIS/Include/cmsis_gcc.h ****   @{
 884:Drivers/CMSIS/Include/cmsis_gcc.h **** */
 885:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 886:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2.
 887:Drivers/CMSIS/Include/cmsis_gcc.h ****  * For thumb1, use low register (r0-r7), specified by constraint "l"
 888:Drivers/CMSIS/Include/cmsis_gcc.h ****  * Otherwise, use general registers, specified by constraint "r" */
 889:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__)
 890:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r)
 891:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r)
 892:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r)
 893:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 894:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r)
 895:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r)
 896:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r)
 897:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 898:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 899:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 900:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   No Operation
 901:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details No Operation does nothing. This instruction can be used for code alignment purposes.
 902:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 903:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP()                             __ASM volatile ("nop")
 904:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 905:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 906:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Wait For Interrupt
 907:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o
 908:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 909:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI()                             __ASM volatile ("wfi")
 910:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 911:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 912:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 913:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Wait For Event
 914:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Wait For Event is a hint instruction that permits the processor to enter
 915:Drivers/CMSIS/Include/cmsis_gcc.h ****            a low-power state until one of a number of events occurs.
 916:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 917:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE()                             __ASM volatile ("wfe")
 918:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 919:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 920:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 921:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Send Event
 922:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Send Event is a hint instruction. It causes an event to be signaled to the CPU.
 923:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 924:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV()                             __ASM volatile ("sev")
 925:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 926:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 927:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 928:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Instruction Synchronization Barrier
 929:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Instruction Synchronization Barrier flushes the pipeline in the processor,
 930:Drivers/CMSIS/Include/cmsis_gcc.h ****            so that all instructions following the ISB are fetched from cache or memory,
 931:Drivers/CMSIS/Include/cmsis_gcc.h ****            after the instruction has been completed.
 932:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
ARM GAS  /tmp/ccUpFCH8.s 			page 32


 933:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void)
 934:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 935:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("isb 0xF":::"memory");
 124              		.loc 2 935 0
 125              		.syntax unified
 126              	@ 935 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
 127 0066 BFF36F8F 		isb 0xF
 128              	@ 0 "" 2
 129              		.thumb
 130              		.syntax unified
 131              	.LBE63:
 132              	.LBE62:
 133              	.LBE61:
 134              	.LBE60:
 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 135              		.loc 1 196 0
 136 006a 0127     		movs	r7, #1
 137              	.LBB65:
 138              	.LBB64:
 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Barrier to ensure programming is performed in 2 steps, in right order
 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     (independently of compiler optimization behavior) */
 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   __ISB();
 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Program second word */
 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *(uint32_t *)(Address + 4U) = (uint32_t)(Data >> 32U);
 139              		.loc 1 716 0
 140 006c C5F804A0 		str	r10, [r5, #4]
 141              	.LVL13:
 142              	.L9:
 143              	.LBE64:
 144              	.LBE65:
 145              	.LBB66:
 146              	.LBB67:
 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t error;
 147              		.loc 1 659 0
 148 0070 FFF7FEFF 		bl	HAL_GetTick
 149              	.LVL14:
 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 150              		.loc 1 662 0
 151 0074 2B4C     		ldr	r4, .L32
 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t error;
 152              		.loc 1 659 0
 153 0076 0546     		mov	r5, r0
 154              	.LVL15:
 155 0078 05E0     		b	.L13
 156              	.LVL16:
 157              	.L15:
 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 158              		.loc 1 664 0
 159 007a FFF7FEFF 		bl	HAL_GetTick
 160              	.LVL17:
 161 007e 401B     		subs	r0, r0, r5
 162 0080 B0F57A7F 		cmp	r0, #1000
 163 0084 43D8     		bhi	.L19
 164              	.L13:
 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
ARM GAS  /tmp/ccUpFCH8.s 			page 33


 165              		.loc 1 662 0
 166 0086 2369     		ldr	r3, [r4, #16]
 167 0088 DB03     		lsls	r3, r3, #15
 168 008a F6D4     		bmi	.L15
 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (error != 0u)
 169              		.loc 1 671 0
 170 008c 2369     		ldr	r3, [r4, #16]
 171 008e 4CF2FA32 		movw	r2, #50170
 172              	.LVL18:
 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 173              		.loc 1 672 0
 174 0092 1340     		ands	r3, r3, r2
 175              	.LVL19:
 176 0094 3DD1     		bne	.L31
 177              	.LVL20:
 178              	.LBB68:
 179              	.LBB69:
 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 180              		.loc 1 684 0
 181 0096 2069     		ldr	r0, [r4, #16]
 182 0098 10F00100 		ands	r0, r0, #1
 183 009c 02D0     		beq	.L14
 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 184              		.loc 1 687 0
 185 009e 0122     		movs	r2, #1
 186 00a0 1846     		mov	r0, r3
 187 00a2 2261     		str	r2, [r4, #16]
 188              	.LVL21:
 189              	.L14:
 190              	.LBE69:
 191              	.LBE68:
 192              	.LBE67:
 193              	.LBE66:
 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 194              		.loc 1 218 0
 195 00a4 37B1     		cbz	r7, .L4
 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 196              		.loc 1 220 0
 197 00a6 1F4A     		ldr	r2, .L32
 198 00a8 5369     		ldr	r3, [r2, #20]
 199 00aa 23EA0707 		bic	r7, r3, r7
 200              	.LVL22:
 201 00ae 5761     		str	r7, [r2, #20]
 202 00b0 00E0     		b	.L4
 203              	.LVL23:
 204              	.L18:
 205              	.LBB71:
 206              	.LBB58:
 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 207              		.loc 1 664 0
 208 00b2 0320     		movs	r0, #3
 209              	.LVL24:
 210              	.L4:
 211              	.LBE58:
 212              	.LBE71:
 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 213              		.loc 1 225 0
ARM GAS  /tmp/ccUpFCH8.s 			page 34


 214 00b4 0023     		movs	r3, #0
 215 00b6 88F80030 		strb	r3, [r8]
 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 216              		.loc 1 229 0
 217 00ba BDE8F087 		pop	{r4, r5, r6, r7, r8, r9, r10, pc}
 218              	.LVL25:
 219              	.L17:
 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 220              		.loc 1 183 0
 221 00be 0220     		movs	r0, #2
 222              	.LVL26:
 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 223              		.loc 1 229 0
 224 00c0 BDE8F087 		pop	{r4, r5, r6, r7, r8, r9, r10, pc}
 225              	.LVL27:
 226              	.L30:
 227              	.LBB72:
 228              	.LBB59:
 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 229              		.loc 1 675 0
 230 00c4 D8F80430 		ldr	r3, [r8, #4]
 231 00c8 3B43     		orrs	r3, r3, r7
 232 00ca C8F80430 		str	r3, [r8, #4]
 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 233              		.loc 1 680 0
 234 00ce 0120     		movs	r0, #1
 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 235              		.loc 1 678 0
 236 00d0 3761     		str	r7, [r6, #16]
 237              	.LVL28:
 238 00d2 EFE7     		b	.L4
 239              	.LVL29:
 240              	.L8:
 241              	.LBE59:
 242              	.LBE72:
 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 243              		.loc 1 198 0
 244 00d4 09F1FF33 		add	r3, r9, #-1
 245 00d8 012B     		cmp	r3, #1
 246 00da C9D8     		bhi	.L9
 247              	.LVL30:
 248              	.LBB73:
 249              	.LBB74:
 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Fast program a row double-word (64-bit) at a specified address.
 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  Address specifies the address to be programmed.
 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  DataAddress specifies the address where the data are stored.
 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval None
 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** static void FLASH_Program_Fast(uint32_t Address, uint32_t DataAddress)
 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint8_t row_index = (2 * FLASH_NB_DOUBLE_WORDS_IN_ROW);
 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t *dest_addr = (uint32_t *)Address;
 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t *src_addr = (uint32_t *)DataAddress;
 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t primask_bit;
ARM GAS  /tmp/ccUpFCH8.s 			page 35


 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Check the parameters */
 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   assert_param(IS_FLASH_MAIN_MEM_ADDRESS(Address));
 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Set FSTPG bit */
 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   SET_BIT(FLASH->CR, FLASH_CR_FSTPG);
 250              		.loc 1 736 0
 251 00dc 1149     		ldr	r1, .L32
 252 00de 4B69     		ldr	r3, [r1, #20]
 253 00e0 43F48023 		orr	r3, r3, #262144
 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t primask_bit;
 254              		.loc 1 729 0
 255 00e4 2246     		mov	r2, r4
 256              	.LVL31:
 257              		.loc 1 736 0
 258 00e6 4B61     		str	r3, [r1, #20]
 259              	.LBB75:
 260              	.LBB76:
 453:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 261              		.loc 2 453 0
 262              		.syntax unified
 263              	@ 453 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
 264 00e8 EFF31080 		MRS r0, primask
 265              	@ 0 "" 2
 266              		.thumb
 267              		.syntax unified
 268              	.LBE76:
 269              	.LBE75:
 270              	.LBB77:
 271              	.LBB78:
 209:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 272              		.loc 2 209 0
 273              		.syntax unified
 274              	@ 209 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
 275 00ec 72B6     		cpsid i
 276              	@ 0 "" 2
 277              		.thumb
 278              		.syntax unified
 279 00ee 2D1B     		subs	r5, r5, r4
 280              	.LVL32:
 281 00f0 04F58071 		add	r1, r4, #256
 282              	.LVL33:
 283              	.L11:
 284              	.LBE78:
 285              	.LBE77:
 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Enter critical section: Disable interrupts to avoid any interruption during the loop */
 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   primask_bit = __get_PRIMASK();
 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   __disable_irq();
 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Program the double words of the row */
 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   do
 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     *dest_addr = *src_addr;
 286              		.loc 1 745 0
 287 00f4 1368     		ldr	r3, [r2]
 288 00f6 5351     		str	r3, [r2, r5]
ARM GAS  /tmp/ccUpFCH8.s 			page 36


 289              	.LVL34:
 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     dest_addr++;
 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     src_addr++;
 290              		.loc 1 747 0
 291 00f8 0432     		adds	r2, r2, #4
 292              	.LVL35:
 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     row_index--;
 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   while (row_index != 0U);
 293              		.loc 1 750 0
 294 00fa 8A42     		cmp	r2, r1
 295 00fc FAD1     		bne	.L11
 296              	.LVL36:
 297              	.LBB79:
 298              	.LBB80:
 481:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 299              		.loc 2 481 0
 300              		.syntax unified
 301              	@ 481 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
 302 00fe 80F31088 		MSR primask, r0
 303              	@ 0 "" 2
 304              	.LVL37:
 305              		.thumb
 306              		.syntax unified
 307              	.LBE80:
 308              	.LBE79:
 309              	.LBE74:
 310              	.LBE73:
 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 311              		.loc 1 206 0
 312 0102 B9F1020F 		cmp	r9, #2
 313 0106 08BF     		it	eq
 314 0108 4FF48027 		moveq	r7, #262144
 315 010c B0E7     		b	.L9
 316              	.LVL38:
 317              	.L19:
 318              	.LBB81:
 319              	.LBB70:
 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 320              		.loc 1 666 0
 321 010e 0320     		movs	r0, #3
 322 0110 C8E7     		b	.L14
 323              	.LVL39:
 324              	.L31:
 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 325              		.loc 1 675 0
 326 0112 D8F80420 		ldr	r2, [r8, #4]
 327 0116 1A43     		orrs	r2, r2, r3
 328 0118 C8F80420 		str	r2, [r8, #4]
 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 329              		.loc 1 680 0
 330 011c 0120     		movs	r0, #1
 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 331              		.loc 1 678 0
 332 011e 2361     		str	r3, [r4, #16]
 333 0120 C0E7     		b	.L14
 334              	.L33:
ARM GAS  /tmp/ccUpFCH8.s 			page 37


 335 0122 00BF     		.align	2
 336              	.L32:
 337 0124 00200240 		.word	1073881088
 338 0128 00000000 		.word	.LANCHOR0
 339              	.LBE70:
 340              	.LBE81:
 341              		.cfi_endproc
 342              	.LFE329:
 344              		.section	.text.HAL_FLASH_Program_IT,"ax",%progbits
 345              		.align	1
 346              		.p2align 2,,3
 347              		.global	HAL_FLASH_Program_IT
 348              		.syntax unified
 349              		.thumb
 350              		.thumb_func
 351              		.fpu fpv4-sp-d16
 353              	HAL_FLASH_Program_IT:
 354              	.LFB330:
 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status;
 355              		.loc 1 243 0
 356              		.cfi_startproc
 357              		@ args = 0, pretend = 0, frame = 0
 358              		@ frame_needed = 0, uses_anonymous_args = 0
 359              	.LVL40:
 360 0000 2DE9F047 		push	{r4, r5, r6, r7, r8, r9, r10, lr}
 361              	.LCFI1:
 362              		.cfi_def_cfa_offset 32
 363              		.cfi_offset 4, -32
 364              		.cfi_offset 5, -28
 365              		.cfi_offset 6, -24
 366              		.cfi_offset 7, -20
 367              		.cfi_offset 8, -16
 368              		.cfi_offset 9, -12
 369              		.cfi_offset 10, -8
 370              		.cfi_offset 14, -4
 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 371              		.loc 1 250 0
 372 0004 DFF8F490 		ldr	r9, .L55+4
 373 0008 99F80060 		ldrb	r6, [r9]	@ zero_extendqisi2
 374 000c 012E     		cmp	r6, #1
 375 000e 42D0     		beq	.L45
 376 0010 9A46     		mov	r10, r3
 377 0012 1446     		mov	r4, r2
 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 378              		.loc 1 253 0 discriminator 2
 379 0014 0023     		movs	r3, #0
 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 380              		.loc 1 250 0 discriminator 2
 381 0016 0122     		movs	r2, #1
 382              	.LVL41:
 383 0018 0D46     		mov	r5, r1
 384 001a 0746     		mov	r7, r0
 385 001c 89F80020 		strb	r2, [r9]
 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 386              		.loc 1 253 0 discriminator 2
 387 0020 C9F80430 		str	r3, [r9, #4]
 388              	.LVL42:
ARM GAS  /tmp/ccUpFCH8.s 			page 38


 389              	.LBB98:
 390              	.LBB99:
 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t error;
 391              		.loc 1 659 0 discriminator 2
 392 0024 FFF7FEFF 		bl	HAL_GetTick
 393              	.LVL43:
 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 394              		.loc 1 662 0 discriminator 2
 395 0028 334E     		ldr	r6, .L55
 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t error;
 396              		.loc 1 659 0 discriminator 2
 397 002a 8046     		mov	r8, r0
 398              	.LVL44:
 399 002c 06E0     		b	.L36
 400              	.LVL45:
 401              	.L38:
 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 402              		.loc 1 664 0
 403 002e FFF7FEFF 		bl	HAL_GetTick
 404              	.LVL46:
 405 0032 A0EB0800 		sub	r0, r0, r8
 406 0036 B0F57A7F 		cmp	r0, #1000
 407 003a 26D8     		bhi	.L46
 408              	.L36:
 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 409              		.loc 1 662 0
 410 003c 3269     		ldr	r2, [r6, #16]
 411 003e D203     		lsls	r2, r2, #15
 412 0040 F5D4     		bmi	.L38
 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (error != 0u)
 413              		.loc 1 671 0
 414 0042 3369     		ldr	r3, [r6, #16]
 415 0044 4CF2FA32 		movw	r2, #50170
 416              	.LVL47:
 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 417              		.loc 1 672 0
 418 0048 1340     		ands	r3, r3, r2
 419              	.LVL48:
 420 004a 27D1     		bne	.L53
 421              	.LVL49:
 422              	.LBB100:
 423              	.LBB101:
 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 424              		.loc 1 684 0
 425 004c 3369     		ldr	r3, [r6, #16]
 426              	.LVL50:
 427 004e DB07     		lsls	r3, r3, #31
 428 0050 01D5     		bpl	.L40
 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 429              		.loc 1 687 0
 430 0052 0123     		movs	r3, #1
 431 0054 3361     		str	r3, [r6, #16]
 432              	.LVL51:
 433              	.L40:
 434              	.LBE101:
 435              	.LBE100:
 436              	.LBE99:
ARM GAS  /tmp/ccUpFCH8.s 			page 39


 437              	.LBE98:
 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 438              		.loc 1 266 0
 439 0056 022F     		cmp	r7, #2
 440 0058 28D0     		beq	.L54
 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 441              		.loc 1 272 0
 442 005a 0322     		movs	r2, #3
 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 443              		.loc 1 277 0
 444 005c 264B     		ldr	r3, .L55
 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 445              		.loc 1 272 0
 446 005e 89F80820 		strb	r2, [r9, #8]
 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 447              		.loc 1 274 0
 448 0062 C9F80C50 		str	r5, [r9, #12]
 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 449              		.loc 1 277 0
 450 0066 5A69     		ldr	r2, [r3, #20]
 451 0068 42F04072 		orr	r2, r2, #50331648
 452 006c 5A61     		str	r2, [r3, #20]
 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 453              		.loc 1 279 0
 454 006e 002F     		cmp	r7, #0
 455 0070 3BD1     		bne	.L43
 456              	.LVL52:
 457              	.LBB104:
 458              	.LBB105:
 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 459              		.loc 1 706 0
 460 0072 5A69     		ldr	r2, [r3, #20]
 461 0074 42F00102 		orr	r2, r2, #1
 462 0078 5A61     		str	r2, [r3, #20]
 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 463              		.loc 1 709 0
 464 007a 2C60     		str	r4, [r5]
 465              	.LBB106:
 466              	.LBB107:
 467              		.loc 2 935 0
 468              		.syntax unified
 469              	@ 935 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
 470 007c BFF36F8F 		isb 0xF
 471              	@ 0 "" 2
 472              		.thumb
 473              		.syntax unified
 474              	.LBE107:
 475              	.LBE106:
 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 476              		.loc 1 716 0
 477 0080 C5F804A0 		str	r10, [r5, #4]
 478 0084 3846     		mov	r0, r7
 479              	.LBE105:
 480              	.LBE104:
 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 481              		.loc 1 296 0
 482 0086 BDE8F087 		pop	{r4, r5, r6, r7, r8, r9, r10, pc}
ARM GAS  /tmp/ccUpFCH8.s 			page 40


 483              	.LVL53:
 484              	.L46:
 485              	.LBB108:
 486              	.LBB102:
 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 487              		.loc 1 664 0
 488 008a 0320     		movs	r0, #3
 489              	.LVL54:
 490              	.L37:
 491              	.LBE102:
 492              	.LBE108:
 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 493              		.loc 1 261 0
 494 008c 0023     		movs	r3, #0
 495 008e 89F80030 		strb	r3, [r9]
 496              	.LVL55:
 497              	.L35:
 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 498              		.loc 1 296 0
 499 0092 BDE8F087 		pop	{r4, r5, r6, r7, r8, r9, r10, pc}
 500              	.LVL56:
 501              	.L45:
 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 502              		.loc 1 250 0
 503 0096 0220     		movs	r0, #2
 504              	.LVL57:
 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 505              		.loc 1 296 0
 506 0098 BDE8F087 		pop	{r4, r5, r6, r7, r8, r9, r10, pc}
 507              	.LVL58:
 508              	.L53:
 509              	.LBB109:
 510              	.LBB103:
 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 511              		.loc 1 675 0
 512 009c D9F80420 		ldr	r2, [r9, #4]
 513 00a0 1A43     		orrs	r2, r2, r3
 514 00a2 C9F80420 		str	r2, [r9, #4]
 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 515              		.loc 1 680 0
 516 00a6 0120     		movs	r0, #1
 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 517              		.loc 1 678 0
 518 00a8 3361     		str	r3, [r6, #16]
 519              	.LVL59:
 520 00aa EFE7     		b	.L37
 521              	.LVL60:
 522              	.L54:
 523              	.LBE103:
 524              	.LBE109:
 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 525              		.loc 1 268 0
 526 00ac 0423     		movs	r3, #4
 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 527              		.loc 1 277 0
 528 00ae 124A     		ldr	r2, .L55
 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
ARM GAS  /tmp/ccUpFCH8.s 			page 41


 529              		.loc 1 268 0
 530 00b0 89F80830 		strb	r3, [r9, #8]
 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 531              		.loc 1 274 0
 532 00b4 C9F80C50 		str	r5, [r9, #12]
 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 533              		.loc 1 277 0
 534 00b8 5369     		ldr	r3, [r2, #20]
 535 00ba 43F04073 		orr	r3, r3, #50331648
 536 00be 5361     		str	r3, [r2, #20]
 537              	.LVL61:
 538              	.L42:
 539              	.LBB110:
 540              	.LBB111:
 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 541              		.loc 1 736 0
 542 00c0 0D49     		ldr	r1, .L55
 543 00c2 4B69     		ldr	r3, [r1, #20]
 544 00c4 43F48023 		orr	r3, r3, #262144
 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t primask_bit;
 545              		.loc 1 729 0
 546 00c8 2246     		mov	r2, r4
 547              	.LVL62:
 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 548              		.loc 1 736 0
 549 00ca 4B61     		str	r3, [r1, #20]
 550              	.LBB112:
 551              	.LBB113:
 453:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 552              		.loc 2 453 0
 553              		.syntax unified
 554              	@ 453 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
 555 00cc EFF31080 		MRS r0, primask
 556              	@ 0 "" 2
 557              		.thumb
 558              		.syntax unified
 559              	.LBE113:
 560              	.LBE112:
 561              	.LBB114:
 562              	.LBB115:
 209:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 563              		.loc 2 209 0
 564              		.syntax unified
 565              	@ 209 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
 566 00d0 72B6     		cpsid i
 567              	@ 0 "" 2
 568              		.thumb
 569              		.syntax unified
 570 00d2 2D1B     		subs	r5, r5, r4
 571              	.LVL63:
 572 00d4 04F58071 		add	r1, r4, #256
 573              	.LVL64:
 574              	.L44:
 575              	.LBE115:
 576              	.LBE114:
 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     dest_addr++;
 577              		.loc 1 745 0
ARM GAS  /tmp/ccUpFCH8.s 			page 42


 578 00d8 1368     		ldr	r3, [r2]
 579 00da 5351     		str	r3, [r2, r5]
 580              	.LVL65:
 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     row_index--;
 581              		.loc 1 747 0
 582 00dc 0432     		adds	r2, r2, #4
 583              	.LVL66:
 584              		.loc 1 750 0
 585 00de 8A42     		cmp	r2, r1
 586 00e0 FAD1     		bne	.L44
 587              	.LVL67:
 588              	.LBB116:
 589              	.LBB117:
 481:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 590              		.loc 2 481 0
 591              		.syntax unified
 592              	@ 481 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
 593 00e2 80F31088 		MSR primask, r0
 594              	@ 0 "" 2
 595              	.LVL68:
 596              		.thumb
 597              		.syntax unified
 598 00e6 0020     		movs	r0, #0
 599 00e8 D3E7     		b	.L35
 600              	.LVL69:
 601              	.L43:
 602              	.LBE117:
 603              	.LBE116:
 604              	.LBE111:
 605              	.LBE110:
 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 606              		.loc 1 284 0
 607 00ea 013F     		subs	r7, r7, #1
 608              	.LVL70:
 609 00ec 012F     		cmp	r7, #1
 610 00ee 88BF     		it	hi
 611 00f0 0020     		movhi	r0, #0
 612 00f2 CED8     		bhi	.L35
 613 00f4 E4E7     		b	.L42
 614              	.L56:
 615 00f6 00BF     		.align	2
 616              	.L55:
 617 00f8 00200240 		.word	1073881088
 618 00fc 00000000 		.word	.LANCHOR0
 619              		.cfi_endproc
 620              	.LFE330:
 622              		.section	.text.HAL_FLASH_EndOfOperationCallback,"ax",%progbits
 623              		.align	1
 624              		.p2align 2,,3
 625              		.weak	HAL_FLASH_EndOfOperationCallback
 626              		.syntax unified
 627              		.thumb
 628              		.thumb_func
 629              		.fpu fpv4-sp-d16
 631              	HAL_FLASH_EndOfOperationCallback:
 632              	.LFB332:
 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Prevent unused argument(s) compilation warning */
ARM GAS  /tmp/ccUpFCH8.s 			page 43


 633              		.loc 1 443 0
 634              		.cfi_startproc
 635              		@ args = 0, pretend = 0, frame = 0
 636              		@ frame_needed = 0, uses_anonymous_args = 0
 637              		@ link register save eliminated.
 638              	.LVL71:
 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 639              		.loc 1 450 0
 640 0000 7047     		bx	lr
 641              		.cfi_endproc
 642              	.LFE332:
 644 0002 00BF     		.section	.text.HAL_FLASH_OperationErrorCallback,"ax",%progbits
 645              		.align	1
 646              		.p2align 2,,3
 647              		.weak	HAL_FLASH_OperationErrorCallback
 648              		.syntax unified
 649              		.thumb
 650              		.thumb_func
 651              		.fpu fpv4-sp-d16
 653              	HAL_FLASH_OperationErrorCallback:
 654              	.LFB345:
 655              		.cfi_startproc
 656              		@ args = 0, pretend = 0, frame = 0
 657              		@ frame_needed = 0, uses_anonymous_args = 0
 658              		@ link register save eliminated.
 659 0000 7047     		bx	lr
 660              		.cfi_endproc
 661              	.LFE345:
 663 0002 00BF     		.section	.text.HAL_FLASH_IRQHandler,"ax",%progbits
 664              		.align	1
 665              		.p2align 2,,3
 666              		.global	HAL_FLASH_IRQHandler
 667              		.syntax unified
 668              		.thumb
 669              		.thumb_func
 670              		.fpu fpv4-sp-d16
 672              	HAL_FLASH_IRQHandler:
 673              	.LFB331:
 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t tmp_page;
 674              		.loc 1 303 0
 675              		.cfi_startproc
 676              		@ args = 0, pretend = 0, frame = 0
 677              		@ frame_needed = 0, uses_anonymous_args = 0
 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** #if defined (FLASH_OPTR_DBANK)
 678              		.loc 1 309 0
 679 0000 3A4A     		ldr	r2, .L84
 680 0002 5369     		ldr	r3, [r2, #20]
 681 0004 23F4FF73 		bic	r3, r3, #510
 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t tmp_page;
 682              		.loc 1 303 0
 683 0008 10B5     		push	{r4, lr}
 684              	.LCFI2:
 685              		.cfi_def_cfa_offset 8
 686              		.cfi_offset 4, -8
 687              		.cfi_offset 14, -4
 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** #if defined (FLASH_OPTR_DBANK)
 688              		.loc 1 309 0
ARM GAS  /tmp/ccUpFCH8.s 			page 44


 689 000a 23F00103 		bic	r3, r3, #1
 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 690              		.loc 1 315 0
 691 000e 384C     		ldr	r4, .L84+4
 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** #if defined (FLASH_OPTR_DBANK)
 692              		.loc 1 309 0
 693 0010 5361     		str	r3, [r2, #20]
 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 694              		.loc 1 315 0
 695 0012 237A     		ldrb	r3, [r4, #8]	@ zero_extendqisi2
 696 0014 042B     		cmp	r3, #4
 697 0016 03D1     		bne	.L60
 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 698              		.loc 1 317 0
 699 0018 5369     		ldr	r3, [r2, #20]
 700 001a 23F48023 		bic	r3, r3, #262144
 701 001e 5361     		str	r3, [r2, #20]
 702              	.L60:
 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 703              		.loc 1 321 0
 704 0020 3249     		ldr	r1, .L84
 705 0022 0B69     		ldr	r3, [r1, #16]
 706 0024 4CF2FA32 		movw	r2, #50170
 707              	.LVL72:
 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 708              		.loc 1 323 0
 709 0028 1340     		ands	r3, r3, r2
 710              	.LVL73:
 711 002a 2FD1     		bne	.L78
 712              	.LVL74:
 713              	.L61:
 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 714              		.loc 1 359 0
 715 002c 2F4B     		ldr	r3, .L84
 716 002e 1A69     		ldr	r2, [r3, #16]
 717 0030 D207     		lsls	r2, r2, #31
 718 0032 14D5     		bpl	.L65
 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 719              		.loc 1 362 0 discriminator 4
 720 0034 0122     		movs	r2, #1
 721 0036 1A61     		str	r2, [r3, #16]
 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 722              		.loc 1 364 0 discriminator 4
 723 0038 237A     		ldrb	r3, [r4, #8]	@ zero_extendqisi2
 724 003a 9342     		cmp	r3, r2
 725 003c 1AD1     		bne	.L66
 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 726              		.loc 1 367 0
 727 003e A369     		ldr	r3, [r4, #24]
 728 0040 013B     		subs	r3, r3, #1
 729 0042 A361     		str	r3, [r4, #24]
 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 730              		.loc 1 370 0
 731 0044 A369     		ldr	r3, [r4, #24]
 732 0046 002B     		cmp	r3, #0
 733 0048 32D0     		beq	.L67
 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
ARM GAS  /tmp/ccUpFCH8.s 			page 45


 734              		.loc 1 373 0
 735 004a 6069     		ldr	r0, [r4, #20]
 736 004c FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 737              	.LVL75:
 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         tmp_page = pFlash.Page;
 738              		.loc 1 376 0
 739 0050 6369     		ldr	r3, [r4, #20]
 740 0052 0133     		adds	r3, r3, #1
 741 0054 6361     		str	r3, [r4, #20]
 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         FLASH_PageErase(tmp_page, pFlash.Bank);
 742              		.loc 1 377 0
 743 0056 6069     		ldr	r0, [r4, #20]
 744              	.LVL76:
 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 745              		.loc 1 378 0
 746 0058 2169     		ldr	r1, [r4, #16]
 747 005a FFF7FEFF 		bl	FLASH_PageErase
 748              	.LVL77:
 749              	.L65:
 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 750              		.loc 1 423 0
 751 005e 237A     		ldrb	r3, [r4, #8]	@ zero_extendqisi2
 752 0060 03F0FF01 		and	r1, r3, #255
 753 0064 2BB9     		cbnz	r3, .L59
 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 754              		.loc 1 426 0 discriminator 4
 755 0066 214A     		ldr	r2, .L84
 756 0068 5369     		ldr	r3, [r2, #20]
 757 006a 23F04073 		bic	r3, r3, #50331648
 758 006e 5361     		str	r3, [r2, #20]
 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 759              		.loc 1 429 0 discriminator 4
 760 0070 2170     		strb	r1, [r4]
 761              	.L59:
 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 762              		.loc 1 431 0
 763 0072 10BD     		pop	{r4, pc}
 764              	.L66:
 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 765              		.loc 1 397 0
 766 0074 FFF7FEFF 		bl	FLASH_FlushCaches
 767              	.LVL78:
 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       if (procedure == FLASH_PROC_MASS_ERASE)
 768              		.loc 1 399 0
 769 0078 237A     		ldrb	r3, [r4, #8]	@ zero_extendqisi2
 770 007a DBB2     		uxtb	r3, r3
 771              	.LVL79:
 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 772              		.loc 1 400 0
 773 007c 022B     		cmp	r3, #2
 774 007e 29D0     		beq	.L79
 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                (procedure == FLASH_PROC_PROGRAM_LAST))
 775              		.loc 1 406 0
 776 0080 033B     		subs	r3, r3, #3
 777              	.LVL80:
 778 0082 012B     		cmp	r3, #1
 779 0084 2ED9     		bls	.L80
ARM GAS  /tmp/ccUpFCH8.s 			page 46


 780              	.LVL81:
 781              	.L69:
 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 782              		.loc 1 419 0
 783 0086 0023     		movs	r3, #0
 784 0088 2372     		strb	r3, [r4, #8]
 785 008a E8E7     		b	.L65
 786              	.LVL82:
 787              	.L78:
 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 788              		.loc 1 326 0
 789 008c 6268     		ldr	r2, [r4, #4]
 790 008e 1A43     		orrs	r2, r2, r3
 791 0090 6260     		str	r2, [r4, #4]
 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 792              		.loc 1 329 0
 793 0092 0B61     		str	r3, [r1, #16]
 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 794              		.loc 1 332 0
 795 0094 FFF7FEFF 		bl	FLASH_FlushCaches
 796              	.LVL83:
 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if (procedure == FLASH_PROC_PAGE_ERASE)
 797              		.loc 1 335 0
 798 0098 237A     		ldrb	r3, [r4, #8]	@ zero_extendqisi2
 799 009a DBB2     		uxtb	r3, r3
 800              	.LVL84:
 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 801              		.loc 1 336 0
 802 009c 012B     		cmp	r3, #1
 803 009e 11D0     		beq	.L81
 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 804              		.loc 1 340 0
 805 00a0 022B     		cmp	r3, #2
 806 00a2 13D0     		beq	.L82
 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****              (procedure == FLASH_PROC_PROGRAM_LAST))
 807              		.loc 1 344 0
 808 00a4 033B     		subs	r3, r3, #3
 809              	.LVL85:
 810 00a6 012B     		cmp	r3, #1
 811 00a8 18D9     		bls	.L83
 812              	.LVL86:
 813              	.L63:
 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 814              		.loc 1 355 0
 815 00aa 0023     		movs	r3, #0
 816 00ac 2372     		strb	r3, [r4, #8]
 817 00ae BDE7     		b	.L61
 818              	.L67:
 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
 819              		.loc 1 384 0
 820 00b0 4FF0FF32 		mov	r2, #-1
 821 00b4 6261     		str	r2, [r4, #20]
 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 822              		.loc 1 385 0
 823 00b6 2372     		strb	r3, [r4, #8]
 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 824              		.loc 1 388 0
ARM GAS  /tmp/ccUpFCH8.s 			page 47


 825 00b8 FFF7FEFF 		bl	FLASH_FlushCaches
 826              	.LVL87:
 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 827              		.loc 1 391 0
 828 00bc 6069     		ldr	r0, [r4, #20]
 829 00be FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 830              	.LVL88:
 831 00c2 CCE7     		b	.L65
 832              	.LVL89:
 833              	.L81:
 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 834              		.loc 1 338 0
 835 00c4 6069     		ldr	r0, [r4, #20]
 836 00c6 FFF7FEFF 		bl	HAL_FLASH_OperationErrorCallback
 837              	.LVL90:
 838 00ca EEE7     		b	.L63
 839              	.LVL91:
 840              	.L82:
 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 841              		.loc 1 342 0
 842 00cc 2069     		ldr	r0, [r4, #16]
 843 00ce FFF7FEFF 		bl	HAL_FLASH_OperationErrorCallback
 844              	.LVL92:
 845 00d2 EAE7     		b	.L63
 846              	.LVL93:
 847              	.L79:
 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 848              		.loc 1 404 0
 849 00d4 2069     		ldr	r0, [r4, #16]
 850 00d6 FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 851              	.LVL94:
 852 00da D4E7     		b	.L69
 853              	.LVL95:
 854              	.L83:
 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 855              		.loc 1 347 0
 856 00dc E068     		ldr	r0, [r4, #12]
 857 00de FFF7FEFF 		bl	HAL_FLASH_OperationErrorCallback
 858              	.LVL96:
 859 00e2 E2E7     		b	.L63
 860              	.LVL97:
 861              	.L80:
 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 862              		.loc 1 411 0
 863 00e4 E068     		ldr	r0, [r4, #12]
 864 00e6 FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 865              	.LVL98:
 866 00ea CCE7     		b	.L69
 867              	.L85:
 868              		.align	2
 869              	.L84:
 870 00ec 00200240 		.word	1073881088
 871 00f0 00000000 		.word	.LANCHOR0
 872              		.cfi_endproc
 873              	.LFE331:
 875              		.section	.text.HAL_FLASH_Unlock,"ax",%progbits
 876              		.align	1
ARM GAS  /tmp/ccUpFCH8.s 			page 48


 877              		.p2align 2,,3
 878              		.global	HAL_FLASH_Unlock
 879              		.syntax unified
 880              		.thumb
 881              		.thumb_func
 882              		.fpu fpv4-sp-d16
 884              	HAL_FLASH_Unlock:
 885              	.LFB334:
 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_OK;
 886              		.loc 1 494 0
 887              		.cfi_startproc
 888              		@ args = 0, pretend = 0, frame = 0
 889              		@ frame_needed = 0, uses_anonymous_args = 0
 890              		@ link register save eliminated.
 891              	.LVL99:
 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 892              		.loc 1 497 0
 893 0000 064B     		ldr	r3, .L90
 894 0002 5A69     		ldr	r2, [r3, #20]
 895 0004 002A     		cmp	r2, #0
 896 0006 01DB     		blt	.L89
 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 897              		.loc 1 495 0
 898 0008 0020     		movs	r0, #0
 899              	.LVL100:
 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 900              		.loc 1 511 0
 901 000a 7047     		bx	lr
 902              	.LVL101:
 903              	.L89:
 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     WRITE_REG(FLASH->KEYR, FLASH_KEY2);
 904              		.loc 1 500 0
 905 000c 0449     		ldr	r1, .L90+4
 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 906              		.loc 1 501 0
 907 000e 054A     		ldr	r2, .L90+8
 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     WRITE_REG(FLASH->KEYR, FLASH_KEY2);
 908              		.loc 1 500 0
 909 0010 9960     		str	r1, [r3, #8]
 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 910              		.loc 1 501 0
 911 0012 9A60     		str	r2, [r3, #8]
 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 912              		.loc 1 504 0
 913 0014 5869     		ldr	r0, [r3, #20]
 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 914              		.loc 1 495 0
 915 0016 C00F     		lsrs	r0, r0, #31
 916 0018 7047     		bx	lr
 917              	.L91:
 918 001a 00BF     		.align	2
 919              	.L90:
 920 001c 00200240 		.word	1073881088
 921 0020 23016745 		.word	1164378403
 922 0024 AB89EFCD 		.word	-839939669
 923              		.cfi_endproc
 924              	.LFE334:
ARM GAS  /tmp/ccUpFCH8.s 			page 49


 926              		.section	.text.HAL_FLASH_Lock,"ax",%progbits
 927              		.align	1
 928              		.p2align 2,,3
 929              		.global	HAL_FLASH_Lock
 930              		.syntax unified
 931              		.thumb
 932              		.thumb_func
 933              		.fpu fpv4-sp-d16
 935              	HAL_FLASH_Lock:
 936              	.LFB335:
 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_ERROR;
 937              		.loc 1 518 0
 938              		.cfi_startproc
 939              		@ args = 0, pretend = 0, frame = 0
 940              		@ frame_needed = 0, uses_anonymous_args = 0
 941              		@ link register save eliminated.
 942              	.LVL102:
 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 943              		.loc 1 522 0
 944 0000 044B     		ldr	r3, .L93
 945 0002 5A69     		ldr	r2, [r3, #20]
 946 0004 42F00042 		orr	r2, r2, #-2147483648
 947 0008 5A61     		str	r2, [r3, #20]
 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 948              		.loc 1 525 0
 949 000a 5869     		ldr	r0, [r3, #20]
 950              	.LVL103:
 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 951              		.loc 1 531 0
 952 000c C043     		mvns	r0, r0
 953              	.LVL104:
 954 000e C00F     		lsrs	r0, r0, #31
 955              	.LVL105:
 956 0010 7047     		bx	lr
 957              	.L94:
 958 0012 00BF     		.align	2
 959              	.L93:
 960 0014 00200240 		.word	1073881088
 961              		.cfi_endproc
 962              	.LFE335:
 964              		.section	.text.HAL_FLASH_OB_Unlock,"ax",%progbits
 965              		.align	1
 966              		.p2align 2,,3
 967              		.global	HAL_FLASH_OB_Unlock
 968              		.syntax unified
 969              		.thumb
 970              		.thumb_func
 971              		.fpu fpv4-sp-d16
 973              	HAL_FLASH_OB_Unlock:
 974              	.LFB336:
 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_OK;
 975              		.loc 1 538 0
 976              		.cfi_startproc
 977              		@ args = 0, pretend = 0, frame = 0
 978              		@ frame_needed = 0, uses_anonymous_args = 0
 979              		@ link register save eliminated.
 980              	.LVL106:
ARM GAS  /tmp/ccUpFCH8.s 			page 50


 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 981              		.loc 1 541 0
 982 0000 064B     		ldr	r3, .L98
 983 0002 5869     		ldr	r0, [r3, #20]
 984 0004 10F08040 		ands	r0, r0, #1073741824
 985 0008 06D0     		beq	.L96
 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY2);
 986              		.loc 1 544 0
 987 000a 0549     		ldr	r1, .L98+4
 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 988              		.loc 1 545 0
 989 000c 054A     		ldr	r2, .L98+8
 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY2);
 990              		.loc 1 544 0
 991 000e D960     		str	r1, [r3, #12]
 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 992              		.loc 1 545 0
 993 0010 DA60     		str	r2, [r3, #12]
 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 994              		.loc 1 548 0
 995 0012 5869     		ldr	r0, [r3, #20]
 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 996              		.loc 1 539 0
 997 0014 C0F38070 		ubfx	r0, r0, #30, #1
 998              	.L96:
 999              	.LVL107:
 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1000              		.loc 1 555 0
 1001 0018 7047     		bx	lr
 1002              	.L99:
 1003 001a 00BF     		.align	2
 1004              	.L98:
 1005 001c 00200240 		.word	1073881088
 1006 0020 3B2A1908 		.word	135866939
 1007 0024 7F6E5D4C 		.word	1281191551
 1008              		.cfi_endproc
 1009              	.LFE336:
 1011              		.section	.text.HAL_FLASH_OB_Lock,"ax",%progbits
 1012              		.align	1
 1013              		.p2align 2,,3
 1014              		.global	HAL_FLASH_OB_Lock
 1015              		.syntax unified
 1016              		.thumb
 1017              		.thumb_func
 1018              		.fpu fpv4-sp-d16
 1020              	HAL_FLASH_OB_Lock:
 1021              	.LFB337:
 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_ERROR;
 1022              		.loc 1 562 0
 1023              		.cfi_startproc
 1024              		@ args = 0, pretend = 0, frame = 0
 1025              		@ frame_needed = 0, uses_anonymous_args = 0
 1026              		@ link register save eliminated.
 1027              	.LVL108:
 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1028              		.loc 1 566 0
 1029 0000 054B     		ldr	r3, .L101
ARM GAS  /tmp/ccUpFCH8.s 			page 51


 1030 0002 5A69     		ldr	r2, [r3, #20]
 1031 0004 42F08042 		orr	r2, r2, #1073741824
 1032 0008 5A61     		str	r2, [r3, #20]
 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 1033              		.loc 1 569 0
 1034 000a 5869     		ldr	r0, [r3, #20]
 1035              	.LVL109:
 1036 000c 80F08040 		eor	r0, r0, #1073741824
 1037              	.LVL110:
 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1038              		.loc 1 575 0
 1039 0010 C0F38070 		ubfx	r0, r0, #30, #1
 1040              	.LVL111:
 1041 0014 7047     		bx	lr
 1042              	.L102:
 1043 0016 00BF     		.align	2
 1044              	.L101:
 1045 0018 00200240 		.word	1073881088
 1046              		.cfi_endproc
 1047              	.LFE337:
 1049              		.section	.text.HAL_FLASH_OB_Launch,"ax",%progbits
 1050              		.align	1
 1051              		.p2align 2,,3
 1052              		.global	HAL_FLASH_OB_Launch
 1053              		.syntax unified
 1054              		.thumb
 1055              		.thumb_func
 1056              		.fpu fpv4-sp-d16
 1058              	HAL_FLASH_OB_Launch:
 1059              	.LFB338:
 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Set the bit to force the option byte reloading */
 1060              		.loc 1 582 0
 1061              		.cfi_startproc
 1062              		@ args = 0, pretend = 0, frame = 0
 1063              		@ frame_needed = 0, uses_anonymous_args = 0
 1064 0000 38B5     		push	{r3, r4, r5, lr}
 1065              	.LCFI3:
 1066              		.cfi_def_cfa_offset 16
 1067              		.cfi_offset 3, -16
 1068              		.cfi_offset 4, -12
 1069              		.cfi_offset 5, -8
 1070              		.cfi_offset 14, -4
 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1071              		.loc 1 584 0
 1072 0002 144C     		ldr	r4, .L112
 1073 0004 6369     		ldr	r3, [r4, #20]
 1074 0006 43F00063 		orr	r3, r3, #134217728
 1075 000a 6361     		str	r3, [r4, #20]
 1076              	.LVL112:
 1077              	.LBB122:
 1078              	.LBB123:
 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t error;
 1079              		.loc 1 659 0
 1080 000c FFF7FEFF 		bl	HAL_GetTick
 1081              	.LVL113:
 1082 0010 0546     		mov	r5, r0
 1083              	.LVL114:
ARM GAS  /tmp/ccUpFCH8.s 			page 52


 1084 0012 05E0     		b	.L104
 1085              	.LVL115:
 1086              	.L106:
 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 1087              		.loc 1 664 0
 1088 0014 FFF7FEFF 		bl	HAL_GetTick
 1089              	.LVL116:
 1090 0018 401B     		subs	r0, r0, r5
 1091 001a B0F57A7F 		cmp	r0, #1000
 1092 001e 16D8     		bhi	.L108
 1093              	.L104:
 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 1094              		.loc 1 662 0
 1095 0020 2369     		ldr	r3, [r4, #16]
 1096 0022 DB03     		lsls	r3, r3, #15
 1097 0024 F6D4     		bmi	.L106
 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (error != 0u)
 1098              		.loc 1 671 0
 1099 0026 2369     		ldr	r3, [r4, #16]
 1100 0028 4CF2FA32 		movw	r2, #50170
 1101              	.LVL117:
 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 1102              		.loc 1 672 0
 1103 002c 1340     		ands	r3, r3, r2
 1104              	.LVL118:
 1105 002e 07D1     		bne	.L111
 1106              	.LVL119:
 1107              	.LBB124:
 1108              	.LBB125:
 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 1109              		.loc 1 684 0
 1110 0030 2069     		ldr	r0, [r4, #16]
 1111 0032 10F00100 		ands	r0, r0, #1
 1112 0036 02D0     		beq	.L105
 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 1113              		.loc 1 687 0
 1114 0038 0122     		movs	r2, #1
 1115 003a 1846     		mov	r0, r3
 1116 003c 2261     		str	r2, [r4, #16]
 1117              	.L105:
 1118              	.LVL120:
 1119              	.LBE125:
 1120              	.LBE124:
 1121              	.LBE123:
 1122              	.LBE122:
 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1123              		.loc 1 588 0
 1124 003e 38BD     		pop	{r3, r4, r5, pc}
 1125              	.LVL121:
 1126              	.L111:
 1127              	.LBB128:
 1128              	.LBB126:
 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1129              		.loc 1 675 0
 1130 0040 0549     		ldr	r1, .L112+4
 1131 0042 4A68     		ldr	r2, [r1, #4]
 1132 0044 1A43     		orrs	r2, r2, r3
ARM GAS  /tmp/ccUpFCH8.s 			page 53


 1133 0046 4A60     		str	r2, [r1, #4]
 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 1134              		.loc 1 680 0
 1135 0048 0120     		movs	r0, #1
 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1136              		.loc 1 678 0
 1137 004a 2361     		str	r3, [r4, #16]
 1138              	.LVL122:
 1139              	.LBE126:
 1140              	.LBE128:
 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1141              		.loc 1 588 0
 1142 004c 38BD     		pop	{r3, r4, r5, pc}
 1143              	.LVL123:
 1144              	.L108:
 1145              	.LBB129:
 1146              	.LBB127:
 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 1147              		.loc 1 666 0
 1148 004e 0320     		movs	r0, #3
 1149              	.LVL124:
 1150              	.LBE127:
 1151              	.LBE129:
 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1152              		.loc 1 588 0
 1153 0050 38BD     		pop	{r3, r4, r5, pc}
 1154              	.L113:
 1155 0052 00BF     		.align	2
 1156              	.L112:
 1157 0054 00200240 		.word	1073881088
 1158 0058 00000000 		.word	.LANCHOR0
 1159              		.cfi_endproc
 1160              	.LFE338:
 1162              		.section	.text.HAL_FLASH_GetError,"ax",%progbits
 1163              		.align	1
 1164              		.p2align 2,,3
 1165              		.global	HAL_FLASH_GetError
 1166              		.syntax unified
 1167              		.thumb
 1168              		.thumb_func
 1169              		.fpu fpv4-sp-d16
 1171              	HAL_FLASH_GetError:
 1172              	.LFB339:
 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   return pFlash.ErrorCode;
 1173              		.loc 1 630 0
 1174              		.cfi_startproc
 1175              		@ args = 0, pretend = 0, frame = 0
 1176              		@ frame_needed = 0, uses_anonymous_args = 0
 1177              		@ link register save eliminated.
 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 1178              		.loc 1 631 0
 1179 0000 014B     		ldr	r3, .L115
 1180 0002 5868     		ldr	r0, [r3, #4]
 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1181              		.loc 1 632 0
 1182 0004 7047     		bx	lr
 1183              	.L116:
ARM GAS  /tmp/ccUpFCH8.s 			page 54


 1184 0006 00BF     		.align	2
 1185              	.L115:
 1186 0008 00000000 		.word	.LANCHOR0
 1187              		.cfi_endproc
 1188              	.LFE339:
 1190              		.section	.text.FLASH_WaitForLastOperation,"ax",%progbits
 1191              		.align	1
 1192              		.p2align 2,,3
 1193              		.global	FLASH_WaitForLastOperation
 1194              		.syntax unified
 1195              		.thumb
 1196              		.thumb_func
 1197              		.fpu fpv4-sp-d16
 1199              	FLASH_WaitForLastOperation:
 1200              	.LFB340:
 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset.
 1201              		.loc 1 654 0
 1202              		.cfi_startproc
 1203              		@ args = 0, pretend = 0, frame = 0
 1204              		@ frame_needed = 0, uses_anonymous_args = 0
 1205              	.LVL125:
 1206 0000 70B5     		push	{r4, r5, r6, lr}
 1207              	.LCFI4:
 1208              		.cfi_def_cfa_offset 16
 1209              		.cfi_offset 4, -16
 1210              		.cfi_offset 5, -12
 1211              		.cfi_offset 6, -8
 1212              		.cfi_offset 14, -4
 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset.
 1213              		.loc 1 654 0
 1214 0002 0646     		mov	r6, r0
 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t error;
 1215              		.loc 1 659 0
 1216 0004 FFF7FEFF 		bl	HAL_GetTick
 1217              	.LVL126:
 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 1218              		.loc 1 662 0
 1219 0008 104C     		ldr	r4, .L126
 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t error;
 1220              		.loc 1 659 0
 1221 000a 0546     		mov	r5, r0
 1222              	.LVL127:
 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 1223              		.loc 1 662 0
 1224 000c 04E0     		b	.L118
 1225              	.LVL128:
 1226              	.L120:
 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 1227              		.loc 1 664 0
 1228 000e FFF7FEFF 		bl	HAL_GetTick
 1229              	.LVL129:
 1230 0012 401B     		subs	r0, r0, r5
 1231 0014 B042     		cmp	r0, r6
 1232 0016 16D8     		bhi	.L122
 1233              	.L118:
 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 1234              		.loc 1 662 0
ARM GAS  /tmp/ccUpFCH8.s 			page 55


 1235 0018 2369     		ldr	r3, [r4, #16]
 1236 001a DB03     		lsls	r3, r3, #15
 1237 001c F7D4     		bmi	.L120
 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (error != 0u)
 1238              		.loc 1 671 0
 1239 001e 2369     		ldr	r3, [r4, #16]
 1240 0020 4CF2FA32 		movw	r2, #50170
 1241              	.LVL130:
 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 1242              		.loc 1 672 0
 1243 0024 1340     		ands	r3, r3, r2
 1244              	.LVL131:
 1245 0026 07D1     		bne	.L125
 1246              	.LVL132:
 1247              	.LBB132:
 1248              	.LBB133:
 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 1249              		.loc 1 684 0
 1250 0028 2069     		ldr	r0, [r4, #16]
 1251 002a 10F00100 		ands	r0, r0, #1
 1252 002e 02D0     		beq	.L119
 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 1253              		.loc 1 687 0
 1254 0030 0122     		movs	r2, #1
 1255 0032 1846     		mov	r0, r3
 1256 0034 2261     		str	r2, [r4, #16]
 1257              	.L119:
 1258              	.LBE133:
 1259              	.LBE132:
 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1260              		.loc 1 692 0
 1261 0036 70BD     		pop	{r4, r5, r6, pc}
 1262              	.LVL133:
 1263              	.L125:
 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1264              		.loc 1 675 0
 1265 0038 0549     		ldr	r1, .L126+4
 1266 003a 4A68     		ldr	r2, [r1, #4]
 1267 003c 1A43     		orrs	r2, r2, r3
 1268 003e 4A60     		str	r2, [r1, #4]
 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 1269              		.loc 1 680 0
 1270 0040 0120     		movs	r0, #1
 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1271              		.loc 1 678 0
 1272 0042 2361     		str	r3, [r4, #16]
 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1273              		.loc 1 692 0
 1274 0044 70BD     		pop	{r4, r5, r6, pc}
 1275              	.LVL134:
 1276              	.L122:
 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 1277              		.loc 1 666 0
 1278 0046 0320     		movs	r0, #3
 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1279              		.loc 1 692 0
 1280 0048 70BD     		pop	{r4, r5, r6, pc}
ARM GAS  /tmp/ccUpFCH8.s 			page 56


 1281              	.LVL135:
 1282              	.L127:
 1283 004a 00BF     		.align	2
 1284              	.L126:
 1285 004c 00200240 		.word	1073881088
 1286 0050 00000000 		.word	.LANCHOR0
 1287              		.cfi_endproc
 1288              	.LFE340:
 1290              		.global	pFlash
 1291              		.section	.data.pFlash,"aw",%progbits
 1292              		.align	2
 1293              		.set	.LANCHOR0,. + 0
 1296              	pFlash:
 1297 0000 00       		.byte	0
 1298 0001 000000   		.space	3
 1299 0004 00000000 		.word	0
 1300 0008 00       		.byte	0
 1301 0009 000000   		.space	3
 1302 000c 00000000 		.word	0
 1303 0010 01000000 		.word	1
 1304 0014 00000000 		.word	0
 1305 0018 00000000 		.word	0
 1306 001c 00       		.byte	0
 1307 001d 000000   		.space	3
 1308              		.text
 1309              	.Letext0:
 1310              		.file 3 "/usr/include/newlib/machine/_default_types.h"
 1311              		.file 4 "/usr/include/newlib/sys/_stdint.h"
 1312              		.file 5 "Drivers/CMSIS/Include/core_cm4.h"
 1313              		.file 6 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h"
 1314              		.file 7 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h"
 1315              		.file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h"
 1316              		.file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h"
 1317              		.file 10 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h"
 1318              		.file 11 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h"
 1319              		.file 12 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h"
ARM GAS  /tmp/ccUpFCH8.s 			page 57


DEFINED SYMBOLS
                            *ABS*:0000000000000000 stm32g4xx_hal_flash.c
     /tmp/ccUpFCH8.s:16     .text.HAL_FLASH_Program:0000000000000000 $t
     /tmp/ccUpFCH8.s:24     .text.HAL_FLASH_Program:0000000000000000 HAL_FLASH_Program
     /tmp/ccUpFCH8.s:337    .text.HAL_FLASH_Program:0000000000000124 $d
     /tmp/ccUpFCH8.s:345    .text.HAL_FLASH_Program_IT:0000000000000000 $t
     /tmp/ccUpFCH8.s:353    .text.HAL_FLASH_Program_IT:0000000000000000 HAL_FLASH_Program_IT
     /tmp/ccUpFCH8.s:617    .text.HAL_FLASH_Program_IT:00000000000000f8 $d
     /tmp/ccUpFCH8.s:623    .text.HAL_FLASH_EndOfOperationCallback:0000000000000000 $t
     /tmp/ccUpFCH8.s:631    .text.HAL_FLASH_EndOfOperationCallback:0000000000000000 HAL_FLASH_EndOfOperationCallback
     /tmp/ccUpFCH8.s:645    .text.HAL_FLASH_OperationErrorCallback:0000000000000000 $t
     /tmp/ccUpFCH8.s:653    .text.HAL_FLASH_OperationErrorCallback:0000000000000000 HAL_FLASH_OperationErrorCallback
     /tmp/ccUpFCH8.s:664    .text.HAL_FLASH_IRQHandler:0000000000000000 $t
     /tmp/ccUpFCH8.s:672    .text.HAL_FLASH_IRQHandler:0000000000000000 HAL_FLASH_IRQHandler
     /tmp/ccUpFCH8.s:870    .text.HAL_FLASH_IRQHandler:00000000000000ec $d
     /tmp/ccUpFCH8.s:876    .text.HAL_FLASH_Unlock:0000000000000000 $t
     /tmp/ccUpFCH8.s:884    .text.HAL_FLASH_Unlock:0000000000000000 HAL_FLASH_Unlock
     /tmp/ccUpFCH8.s:920    .text.HAL_FLASH_Unlock:000000000000001c $d
     /tmp/ccUpFCH8.s:927    .text.HAL_FLASH_Lock:0000000000000000 $t
     /tmp/ccUpFCH8.s:935    .text.HAL_FLASH_Lock:0000000000000000 HAL_FLASH_Lock
     /tmp/ccUpFCH8.s:960    .text.HAL_FLASH_Lock:0000000000000014 $d
     /tmp/ccUpFCH8.s:965    .text.HAL_FLASH_OB_Unlock:0000000000000000 $t
     /tmp/ccUpFCH8.s:973    .text.HAL_FLASH_OB_Unlock:0000000000000000 HAL_FLASH_OB_Unlock
     /tmp/ccUpFCH8.s:1005   .text.HAL_FLASH_OB_Unlock:000000000000001c $d
     /tmp/ccUpFCH8.s:1012   .text.HAL_FLASH_OB_Lock:0000000000000000 $t
     /tmp/ccUpFCH8.s:1020   .text.HAL_FLASH_OB_Lock:0000000000000000 HAL_FLASH_OB_Lock
     /tmp/ccUpFCH8.s:1045   .text.HAL_FLASH_OB_Lock:0000000000000018 $d
     /tmp/ccUpFCH8.s:1050   .text.HAL_FLASH_OB_Launch:0000000000000000 $t
     /tmp/ccUpFCH8.s:1058   .text.HAL_FLASH_OB_Launch:0000000000000000 HAL_FLASH_OB_Launch
     /tmp/ccUpFCH8.s:1157   .text.HAL_FLASH_OB_Launch:0000000000000054 $d
     /tmp/ccUpFCH8.s:1163   .text.HAL_FLASH_GetError:0000000000000000 $t
     /tmp/ccUpFCH8.s:1171   .text.HAL_FLASH_GetError:0000000000000000 HAL_FLASH_GetError
     /tmp/ccUpFCH8.s:1186   .text.HAL_FLASH_GetError:0000000000000008 $d
     /tmp/ccUpFCH8.s:1191   .text.FLASH_WaitForLastOperation:0000000000000000 $t
     /tmp/ccUpFCH8.s:1199   .text.FLASH_WaitForLastOperation:0000000000000000 FLASH_WaitForLastOperation
     /tmp/ccUpFCH8.s:1285   .text.FLASH_WaitForLastOperation:000000000000004c $d
     /tmp/ccUpFCH8.s:1296   .data.pFlash:0000000000000000 pFlash
     /tmp/ccUpFCH8.s:1292   .data.pFlash:0000000000000000 $d

UNDEFINED SYMBOLS
HAL_GetTick
FLASH_PageErase
FLASH_FlushCaches
