ARM GAS  /tmp/ccbaTwav.s 			page 1


   1              		.cpu cortex-m4
   2              		.eabi_attribute 27, 1
   3              		.eabi_attribute 28, 1
   4              		.eabi_attribute 20, 1
   5              		.eabi_attribute 21, 1
   6              		.eabi_attribute 23, 3
   7              		.eabi_attribute 24, 1
   8              		.eabi_attribute 25, 1
   9              		.eabi_attribute 26, 1
  10              		.eabi_attribute 30, 1
  11              		.eabi_attribute 34, 1
  12              		.eabi_attribute 18, 4
  13              		.file	"stm32g4xx_hal_flash.c"
  14              		.text
  15              	.Ltext0:
  16              		.cfi_sections	.debug_frame
  17              		.section	.text.FLASH_Program_DoubleWord,"ax",%progbits
  18              		.align	1
  19              		.syntax unified
  20              		.thumb
  21              		.thumb_func
  22              		.fpu fpv4-sp-d16
  24              	FLASH_Program_DoubleWord:
  25              	.LFB144:
  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/ccbaTwav.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/ccbaTwav.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/ccbaTwav.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 **** {
 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);
 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 */
ARM GAS  /tmp/ccbaTwav.s 			page 5


 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;
 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 */
ARM GAS  /tmp/ccbaTwav.s 			page 6


 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 ****     {
 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);
ARM GAS  /tmp/ccbaTwav.s 			page 7


 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);
 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 **** 
ARM GAS  /tmp/ccbaTwav.s 			page 8


 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;
 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 **** }
ARM GAS  /tmp/ccbaTwav.s 			page 9


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


 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 **** /**
 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);
ARM GAS  /tmp/ccbaTwav.s 			page 11


 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 ****   {
 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.
ARM GAS  /tmp/ccbaTwav.s 			page 12


 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
 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();
ARM GAS  /tmp/ccbaTwav.s 			page 13


 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))
 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)
 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);
 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (error != 0u)
 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))
 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);
 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 **** {
  27              		.loc 1 701 0
  28              		.cfi_startproc
  29              		@ args = 0, pretend = 0, frame = 0
  30              		@ frame_needed = 0, uses_anonymous_args = 0
  31              		@ link register save eliminated.
  32              	.LVL0:
  33 0000 10B4     		push	{r4}
  34              	.LCFI0:
  35              		.cfi_def_cfa_offset 4
  36              		.cfi_offset 4, -4
 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);
ARM GAS  /tmp/ccbaTwav.s 			page 14


  37              		.loc 1 706 0
  38 0002 064C     		ldr	r4, .L3
  39 0004 6169     		ldr	r1, [r4, #20]
  40 0006 41F00101 		orr	r1, r1, #1
  41 000a 6161     		str	r1, [r4, #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;
  42              		.loc 1 709 0
  43 000c 0260     		str	r2, [r0]
  44              	.LBB10:
  45              	.LBB11:
  46              		.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.
  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
ARM GAS  /tmp/ccbaTwav.s 			page 15


  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
  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
ARM GAS  /tmp/ccbaTwav.s 			page 16


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


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


 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)
 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)
ARM GAS  /tmp/ccbaTwav.s 			page 19


 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);
 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)
ARM GAS  /tmp/ccbaTwav.s 			page 20


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


 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)
 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 **** 
ARM GAS  /tmp/ccbaTwav.s 			page 22


 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.
 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))    )
ARM GAS  /tmp/ccbaTwav.s 			page 23


 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);
 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 ****  */
ARM GAS  /tmp/ccbaTwav.s 			page 24


 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
 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);
ARM GAS  /tmp/ccbaTwav.s 			page 25


 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)) || \
 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 **** 
ARM GAS  /tmp/ccbaTwav.s 			page 26


 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)
 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
ARM GAS  /tmp/ccbaTwav.s 			page 27


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


 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
 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
ARM GAS  /tmp/ccbaTwav.s 			page 29


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


 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 ****  */
 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");
  47              		.loc 2 935 0
  48              		.syntax unified
  49              	@ 935 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
  50 000e BFF36F8F 		isb 0xF
  51              	@ 0 "" 2
  52              		.thumb
  53              		.syntax unified
  54              	.LBE11:
  55              	.LBE10:
 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);
  56              		.loc 1 716 0
  57 0012 4360     		str	r3, [r0, #4]
 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
  58              		.loc 1 717 0
  59 0014 5DF8044B 		ldr	r4, [sp], #4
ARM GAS  /tmp/ccbaTwav.s 			page 31


  60              	.LCFI1:
  61              		.cfi_restore 4
  62              		.cfi_def_cfa_offset 0
  63 0018 7047     		bx	lr
  64              	.L4:
  65 001a 00BF     		.align	2
  66              	.L3:
  67 001c 00200240 		.word	1073881088
  68              		.cfi_endproc
  69              	.LFE144:
  71              		.section	.text.FLASH_Program_Fast,"ax",%progbits
  72              		.align	1
  73              		.syntax unified
  74              		.thumb
  75              		.thumb_func
  76              		.fpu fpv4-sp-d16
  78              	FLASH_Program_Fast:
  79              	.LFB145:
 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 **** {
  80              		.loc 1 726 0
  81              		.cfi_startproc
  82              		@ args = 0, pretend = 0, frame = 0
  83              		@ frame_needed = 0, uses_anonymous_args = 0
  84              		@ link register save eliminated.
  85              	.LVL1:
  86 0000 10B4     		push	{r4}
  87              	.LCFI2:
  88              		.cfi_def_cfa_offset 4
  89              		.cfi_offset 4, -4
  90              	.LVL2:
 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;
 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);
  91              		.loc 1 736 0
  92 0002 0B4A     		ldr	r2, .L8
  93 0004 5369     		ldr	r3, [r2, #20]
  94 0006 43F48023 		orr	r3, r3, #262144
  95 000a 5361     		str	r3, [r2, #20]
  96              	.LBB12:
  97              	.LBB13:
 453:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
  98              		.loc 2 453 0
ARM GAS  /tmp/ccbaTwav.s 			page 32


  99              		.syntax unified
 100              	@ 453 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
 101 000c EFF31084 		MRS r4, primask
 102              	@ 0 "" 2
 103              		.thumb
 104              		.syntax unified
 105              	.LBE13:
 106              	.LBE12:
 107              	.LBB14:
 108              	.LBB15:
 209:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 109              		.loc 2 209 0
 110              		.syntax unified
 111              	@ 209 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
 112 0010 72B6     		cpsid i
 113              	@ 0 "" 2
 114              		.thumb
 115              		.syntax unified
 116              	.LBE15:
 117              	.LBE14:
 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint8_t row_index = (2 * FLASH_NB_DOUBLE_WORDS_IN_ROW);
 118              		.loc 1 727 0
 119 0012 4023     		movs	r3, #64
 120              	.LVL3:
 121              	.L6:
 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;
 122              		.loc 1 745 0 discriminator 1
 123 0014 51F8042B 		ldr	r2, [r1], #4
 124              	.LVL4:
 125 0018 40F8042B 		str	r2, [r0], #4
 126              	.LVL5:
 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     dest_addr++;
 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     src_addr++;
 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     row_index--;
 127              		.loc 1 748 0 discriminator 1
 128 001c 013B     		subs	r3, r3, #1
 129              	.LVL6:
 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   while (row_index != 0U);
 130              		.loc 1 750 0 discriminator 1
 131 001e 13F0FF03 		ands	r3, r3, #255
 132              	.LVL7:
 133 0022 F7D1     		bne	.L6
 134              	.LVL8:
 135              	.LBB16:
 136              	.LBB17:
 481:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 137              		.loc 2 481 0
 138              		.syntax unified
ARM GAS  /tmp/ccbaTwav.s 			page 33


 139              	@ 481 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
 140 0024 84F31088 		MSR primask, r4
 141              	@ 0 "" 2
 142              	.LVL9:
 143              		.thumb
 144              		.syntax unified
 145              	.LBE17:
 146              	.LBE16:
 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Exit critical section: restore previous priority mask */
 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   __set_PRIMASK(primask_bit);
 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 147              		.loc 1 754 0
 148 0028 5DF8044B 		ldr	r4, [sp], #4
 149              	.LCFI3:
 150              		.cfi_restore 4
 151              		.cfi_def_cfa_offset 0
 152 002c 7047     		bx	lr
 153              	.L9:
 154 002e 00BF     		.align	2
 155              	.L8:
 156 0030 00200240 		.word	1073881088
 157              		.cfi_endproc
 158              	.LFE145:
 160              		.section	.text.HAL_FLASH_EndOfOperationCallback,"ax",%progbits
 161              		.align	1
 162              		.weak	HAL_FLASH_EndOfOperationCallback
 163              		.syntax unified
 164              		.thumb
 165              		.thumb_func
 166              		.fpu fpv4-sp-d16
 168              	HAL_FLASH_EndOfOperationCallback:
 169              	.LFB135:
 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Prevent unused argument(s) compilation warning */
 170              		.loc 1 443 0
 171              		.cfi_startproc
 172              		@ args = 0, pretend = 0, frame = 0
 173              		@ frame_needed = 0, uses_anonymous_args = 0
 174              		@ link register save eliminated.
 175              	.LVL10:
 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 176              		.loc 1 450 0
 177 0000 7047     		bx	lr
 178              		.cfi_endproc
 179              	.LFE135:
 181              		.section	.text.HAL_FLASH_OperationErrorCallback,"ax",%progbits
 182              		.align	1
 183              		.weak	HAL_FLASH_OperationErrorCallback
 184              		.syntax unified
 185              		.thumb
 186              		.thumb_func
 187              		.fpu fpv4-sp-d16
 189              	HAL_FLASH_OperationErrorCallback:
 190              	.LFB136:
 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Prevent unused argument(s) compilation warning */
 191              		.loc 1 461 0
 192              		.cfi_startproc
ARM GAS  /tmp/ccbaTwav.s 			page 34


 193              		@ args = 0, pretend = 0, frame = 0
 194              		@ frame_needed = 0, uses_anonymous_args = 0
 195              		@ link register save eliminated.
 196              	.LVL11:
 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 197              		.loc 1 468 0
 198 0000 7047     		bx	lr
 199              		.cfi_endproc
 200              	.LFE136:
 202              		.section	.text.HAL_FLASH_IRQHandler,"ax",%progbits
 203              		.align	1
 204              		.global	HAL_FLASH_IRQHandler
 205              		.syntax unified
 206              		.thumb
 207              		.thumb_func
 208              		.fpu fpv4-sp-d16
 210              	HAL_FLASH_IRQHandler:
 211              	.LFB134:
 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t tmp_page;
 212              		.loc 1 303 0
 213              		.cfi_startproc
 214              		@ args = 0, pretend = 0, frame = 0
 215              		@ frame_needed = 0, uses_anonymous_args = 0
 216 0000 10B5     		push	{r4, lr}
 217              	.LCFI4:
 218              		.cfi_def_cfa_offset 8
 219              		.cfi_offset 4, -8
 220              		.cfi_offset 14, -4
 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** #if defined (FLASH_OPTR_DBANK)
 221              		.loc 1 309 0
 222 0002 454A     		ldr	r2, .L32
 223 0004 5369     		ldr	r3, [r2, #20]
 224 0006 23F4FF73 		bic	r3, r3, #510
 225 000a 23F00103 		bic	r3, r3, #1
 226 000e 5361     		str	r3, [r2, #20]
 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 227              		.loc 1 315 0
 228 0010 424B     		ldr	r3, .L32+4
 229 0012 1B7A     		ldrb	r3, [r3, #8]	@ zero_extendqisi2
 230 0014 DBB2     		uxtb	r3, r3
 231 0016 042B     		cmp	r3, #4
 232 0018 25D0     		beq	.L25
 233              	.L13:
 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 234              		.loc 1 321 0
 235 001a 3F4B     		ldr	r3, .L32
 236 001c 1B69     		ldr	r3, [r3, #16]
 237 001e 4CF2FA32 		movw	r2, #50170
 238              	.LVL12:
 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 239              		.loc 1 323 0
 240 0022 1340     		ands	r3, r3, r2
 241              	.LVL13:
 242 0024 24D1     		bne	.L26
 243              	.LVL14:
 244              	.L14:
 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
ARM GAS  /tmp/ccbaTwav.s 			page 35


 245              		.loc 1 359 0
 246 0026 3C4B     		ldr	r3, .L32
 247 0028 1B69     		ldr	r3, [r3, #16]
 248 002a 13F0010F 		tst	r3, #1
 249 002e 5DD0     		beq	.L18
 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 250              		.loc 1 362 0 discriminator 4
 251 0030 394B     		ldr	r3, .L32
 252 0032 0122     		movs	r2, #1
 253 0034 1A61     		str	r2, [r3, #16]
 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 254              		.loc 1 364 0 discriminator 4
 255 0036 394B     		ldr	r3, .L32+4
 256 0038 1B7A     		ldrb	r3, [r3, #8]	@ zero_extendqisi2
 257 003a DBB2     		uxtb	r3, r3
 258 003c 9342     		cmp	r3, r2
 259 003e 47D1     		bne	.L19
 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 260              		.loc 1 367 0
 261 0040 364B     		ldr	r3, .L32+4
 262 0042 9A69     		ldr	r2, [r3, #24]
 263 0044 013A     		subs	r2, r2, #1
 264 0046 9A61     		str	r2, [r3, #24]
 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 265              		.loc 1 370 0
 266 0048 9B69     		ldr	r3, [r3, #24]
 267 004a 002B     		cmp	r3, #0
 268 004c 34D0     		beq	.L20
 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 269              		.loc 1 373 0
 270 004e 334C     		ldr	r4, .L32+4
 271 0050 6069     		ldr	r0, [r4, #20]
 272 0052 FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 273              	.LVL15:
 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         tmp_page = pFlash.Page;
 274              		.loc 1 376 0
 275 0056 6369     		ldr	r3, [r4, #20]
 276 0058 0133     		adds	r3, r3, #1
 277 005a 6361     		str	r3, [r4, #20]
 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         FLASH_PageErase(tmp_page, pFlash.Bank);
 278              		.loc 1 377 0
 279 005c 6069     		ldr	r0, [r4, #20]
 280              	.LVL16:
 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 281              		.loc 1 378 0
 282 005e 2169     		ldr	r1, [r4, #16]
 283 0060 FFF7FEFF 		bl	FLASH_PageErase
 284              	.LVL17:
 285 0064 42E0     		b	.L18
 286              	.L25:
 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 287              		.loc 1 317 0
 288 0066 5369     		ldr	r3, [r2, #20]
 289 0068 23F48023 		bic	r3, r3, #262144
 290 006c 5361     		str	r3, [r2, #20]
 291 006e D4E7     		b	.L13
 292              	.LVL18:
ARM GAS  /tmp/ccbaTwav.s 			page 36


 293              	.L26:
 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 294              		.loc 1 326 0
 295 0070 2A4C     		ldr	r4, .L32+4
 296 0072 6268     		ldr	r2, [r4, #4]
 297 0074 1A43     		orrs	r2, r2, r3
 298 0076 6260     		str	r2, [r4, #4]
 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 299              		.loc 1 329 0
 300 0078 274A     		ldr	r2, .L32
 301 007a 1361     		str	r3, [r2, #16]
 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 302              		.loc 1 332 0
 303 007c FFF7FEFF 		bl	FLASH_FlushCaches
 304              	.LVL19:
 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if (procedure == FLASH_PROC_PAGE_ERASE)
 305              		.loc 1 335 0
 306 0080 237A     		ldrb	r3, [r4, #8]	@ zero_extendqisi2
 307 0082 DBB2     		uxtb	r3, r3
 308              	.LVL20:
 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 309              		.loc 1 336 0
 310 0084 012B     		cmp	r3, #1
 311 0086 09D0     		beq	.L27
 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 312              		.loc 1 340 0
 313 0088 022B     		cmp	r3, #2
 314 008a 0BD0     		beq	.L28
 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****              (procedure == FLASH_PROC_PROGRAM_LAST))
 315              		.loc 1 344 0
 316 008c 033B     		subs	r3, r3, #3
 317              	.LVL21:
 318 008e DBB2     		uxtb	r3, r3
 319              	.LVL22:
 320 0090 012B     		cmp	r3, #1
 321 0092 0CD9     		bls	.L29
 322              	.LVL23:
 323              	.L16:
 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 324              		.loc 1 355 0
 325 0094 214B     		ldr	r3, .L32+4
 326 0096 0022     		movs	r2, #0
 327 0098 1A72     		strb	r2, [r3, #8]
 328 009a C4E7     		b	.L14
 329              	.LVL24:
 330              	.L27:
 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 331              		.loc 1 338 0
 332 009c 6069     		ldr	r0, [r4, #20]
 333 009e FFF7FEFF 		bl	HAL_FLASH_OperationErrorCallback
 334              	.LVL25:
 335 00a2 F7E7     		b	.L16
 336              	.LVL26:
 337              	.L28:
 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 338              		.loc 1 342 0
 339 00a4 1D4B     		ldr	r3, .L32+4
ARM GAS  /tmp/ccbaTwav.s 			page 37


 340              	.LVL27:
 341 00a6 1869     		ldr	r0, [r3, #16]
 342 00a8 FFF7FEFF 		bl	HAL_FLASH_OperationErrorCallback
 343              	.LVL28:
 344 00ac F2E7     		b	.L16
 345              	.LVL29:
 346              	.L29:
 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 347              		.loc 1 347 0
 348 00ae 1B4B     		ldr	r3, .L32+4
 349 00b0 D868     		ldr	r0, [r3, #12]
 350 00b2 FFF7FEFF 		bl	HAL_FLASH_OperationErrorCallback
 351              	.LVL30:
 352 00b6 EDE7     		b	.L16
 353              	.L20:
 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
 354              		.loc 1 384 0
 355 00b8 184C     		ldr	r4, .L32+4
 356 00ba 4FF0FF33 		mov	r3, #-1
 357 00be 6361     		str	r3, [r4, #20]
 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 358              		.loc 1 385 0
 359 00c0 0023     		movs	r3, #0
 360 00c2 2372     		strb	r3, [r4, #8]
 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 361              		.loc 1 388 0
 362 00c4 FFF7FEFF 		bl	FLASH_FlushCaches
 363              	.LVL31:
 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 364              		.loc 1 391 0
 365 00c8 6069     		ldr	r0, [r4, #20]
 366 00ca FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 367              	.LVL32:
 368 00ce 0DE0     		b	.L18
 369              	.L19:
 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 370              		.loc 1 397 0
 371 00d0 FFF7FEFF 		bl	FLASH_FlushCaches
 372              	.LVL33:
 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       if (procedure == FLASH_PROC_MASS_ERASE)
 373              		.loc 1 399 0
 374 00d4 114B     		ldr	r3, .L32+4
 375 00d6 1B7A     		ldrb	r3, [r3, #8]	@ zero_extendqisi2
 376 00d8 DBB2     		uxtb	r3, r3
 377              	.LVL34:
 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 378              		.loc 1 400 0
 379 00da 022B     		cmp	r3, #2
 380 00dc 12D0     		beq	.L30
 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                (procedure == FLASH_PROC_PROGRAM_LAST))
 381              		.loc 1 406 0
 382 00de 033B     		subs	r3, r3, #3
 383              	.LVL35:
 384 00e0 DBB2     		uxtb	r3, r3
 385              	.LVL36:
 386 00e2 012B     		cmp	r3, #1
 387 00e4 13D9     		bls	.L31
ARM GAS  /tmp/ccbaTwav.s 			page 38


 388              	.LVL37:
 389              	.L22:
 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 390              		.loc 1 419 0
 391 00e6 0D4B     		ldr	r3, .L32+4
 392 00e8 0022     		movs	r2, #0
 393 00ea 1A72     		strb	r2, [r3, #8]
 394              	.L18:
 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 395              		.loc 1 423 0
 396 00ec 0B4B     		ldr	r3, .L32+4
 397 00ee 1B7A     		ldrb	r3, [r3, #8]	@ zero_extendqisi2
 398 00f0 3BB9     		cbnz	r3, .L12
 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 399              		.loc 1 426 0 discriminator 4
 400 00f2 094A     		ldr	r2, .L32
 401 00f4 5369     		ldr	r3, [r2, #20]
 402 00f6 23F04073 		bic	r3, r3, #50331648
 403 00fa 5361     		str	r3, [r2, #20]
 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 404              		.loc 1 429 0 discriminator 4
 405 00fc 074B     		ldr	r3, .L32+4
 406 00fe 0022     		movs	r2, #0
 407 0100 1A70     		strb	r2, [r3]
 408              	.L12:
 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 409              		.loc 1 431 0
 410 0102 10BD     		pop	{r4, pc}
 411              	.LVL38:
 412              	.L30:
 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 413              		.loc 1 404 0
 414 0104 054B     		ldr	r3, .L32+4
 415              	.LVL39:
 416 0106 1869     		ldr	r0, [r3, #16]
 417 0108 FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 418              	.LVL40:
 419 010c EBE7     		b	.L22
 420              	.LVL41:
 421              	.L31:
 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 422              		.loc 1 411 0
 423 010e 034B     		ldr	r3, .L32+4
 424 0110 D868     		ldr	r0, [r3, #12]
 425 0112 FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 426              	.LVL42:
 427 0116 E6E7     		b	.L22
 428              	.L33:
 429              		.align	2
 430              	.L32:
 431 0118 00200240 		.word	1073881088
 432 011c 00000000 		.word	.LANCHOR0
 433              		.cfi_endproc
 434              	.LFE134:
 436              		.section	.text.HAL_FLASH_Unlock,"ax",%progbits
 437              		.align	1
 438              		.global	HAL_FLASH_Unlock
ARM GAS  /tmp/ccbaTwav.s 			page 39


 439              		.syntax unified
 440              		.thumb
 441              		.thumb_func
 442              		.fpu fpv4-sp-d16
 444              	HAL_FLASH_Unlock:
 445              	.LFB137:
 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_OK;
 446              		.loc 1 494 0
 447              		.cfi_startproc
 448              		@ args = 0, pretend = 0, frame = 0
 449              		@ frame_needed = 0, uses_anonymous_args = 0
 450              		@ link register save eliminated.
 451              	.LVL43:
 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 452              		.loc 1 497 0
 453 0000 094B     		ldr	r3, .L39
 454 0002 5B69     		ldr	r3, [r3, #20]
 455 0004 002B     		cmp	r3, #0
 456 0006 01DB     		blt	.L38
 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 457              		.loc 1 495 0
 458 0008 0020     		movs	r0, #0
 459 000a 7047     		bx	lr
 460              	.L38:
 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     WRITE_REG(FLASH->KEYR, FLASH_KEY2);
 461              		.loc 1 500 0
 462 000c 064B     		ldr	r3, .L39
 463 000e 074A     		ldr	r2, .L39+4
 464 0010 9A60     		str	r2, [r3, #8]
 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 465              		.loc 1 501 0
 466 0012 02F18832 		add	r2, r2, #-2004318072
 467 0016 9A60     		str	r2, [r3, #8]
 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 468              		.loc 1 504 0
 469 0018 5B69     		ldr	r3, [r3, #20]
 470 001a 002B     		cmp	r3, #0
 471 001c 01DB     		blt	.L37
 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 472              		.loc 1 495 0
 473 001e 0020     		movs	r0, #0
 474 0020 7047     		bx	lr
 475              	.L37:
 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 476              		.loc 1 506 0
 477 0022 0120     		movs	r0, #1
 478              	.LVL44:
 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 479              		.loc 1 511 0
 480 0024 7047     		bx	lr
 481              	.L40:
 482 0026 00BF     		.align	2
 483              	.L39:
 484 0028 00200240 		.word	1073881088
 485 002c 23016745 		.word	1164378403
 486              		.cfi_endproc
 487              	.LFE137:
ARM GAS  /tmp/ccbaTwav.s 			page 40


 489              		.section	.text.HAL_FLASH_Lock,"ax",%progbits
 490              		.align	1
 491              		.global	HAL_FLASH_Lock
 492              		.syntax unified
 493              		.thumb
 494              		.thumb_func
 495              		.fpu fpv4-sp-d16
 497              	HAL_FLASH_Lock:
 498              	.LFB138:
 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_ERROR;
 499              		.loc 1 518 0
 500              		.cfi_startproc
 501              		@ args = 0, pretend = 0, frame = 0
 502              		@ frame_needed = 0, uses_anonymous_args = 0
 503              		@ link register save eliminated.
 504              	.LVL45:
 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 505              		.loc 1 522 0
 506 0000 054B     		ldr	r3, .L44
 507 0002 5A69     		ldr	r2, [r3, #20]
 508 0004 42F00042 		orr	r2, r2, #-2147483648
 509 0008 5A61     		str	r2, [r3, #20]
 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 510              		.loc 1 525 0
 511 000a 5B69     		ldr	r3, [r3, #20]
 512 000c 002B     		cmp	r3, #0
 513 000e 01DB     		blt	.L43
 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 514              		.loc 1 519 0
 515 0010 0120     		movs	r0, #1
 516 0012 7047     		bx	lr
 517              	.L43:
 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 518              		.loc 1 527 0
 519 0014 0020     		movs	r0, #0
 520              	.LVL46:
 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 521              		.loc 1 531 0
 522 0016 7047     		bx	lr
 523              	.L45:
 524              		.align	2
 525              	.L44:
 526 0018 00200240 		.word	1073881088
 527              		.cfi_endproc
 528              	.LFE138:
 530              		.section	.text.HAL_FLASH_OB_Unlock,"ax",%progbits
 531              		.align	1
 532              		.global	HAL_FLASH_OB_Unlock
 533              		.syntax unified
 534              		.thumb
 535              		.thumb_func
 536              		.fpu fpv4-sp-d16
 538              	HAL_FLASH_OB_Unlock:
 539              	.LFB139:
 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_OK;
 540              		.loc 1 538 0
 541              		.cfi_startproc
ARM GAS  /tmp/ccbaTwav.s 			page 41


 542              		@ args = 0, pretend = 0, frame = 0
 543              		@ frame_needed = 0, uses_anonymous_args = 0
 544              		@ link register save eliminated.
 545              	.LVL47:
 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 546              		.loc 1 541 0
 547 0000 0A4B     		ldr	r3, .L51
 548 0002 5B69     		ldr	r3, [r3, #20]
 549 0004 13F0804F 		tst	r3, #1073741824
 550 0008 0DD0     		beq	.L48
 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY2);
 551              		.loc 1 544 0
 552 000a 084B     		ldr	r3, .L51
 553 000c 084A     		ldr	r2, .L51+4
 554 000e DA60     		str	r2, [r3, #12]
 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 555              		.loc 1 545 0
 556 0010 02F14432 		add	r2, r2, #1145324612
 557 0014 DA60     		str	r2, [r3, #12]
 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 558              		.loc 1 548 0
 559 0016 5B69     		ldr	r3, [r3, #20]
 560 0018 13F0804F 		tst	r3, #1073741824
 561 001c 01D0     		beq	.L50
 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 562              		.loc 1 550 0
 563 001e 0120     		movs	r0, #1
 564              	.LVL48:
 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 565              		.loc 1 555 0
 566 0020 7047     		bx	lr
 567              	.LVL49:
 568              	.L50:
 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 569              		.loc 1 539 0
 570 0022 0020     		movs	r0, #0
 571 0024 7047     		bx	lr
 572              	.L48:
 573 0026 0020     		movs	r0, #0
 574 0028 7047     		bx	lr
 575              	.L52:
 576 002a 00BF     		.align	2
 577              	.L51:
 578 002c 00200240 		.word	1073881088
 579 0030 3B2A1908 		.word	135866939
 580              		.cfi_endproc
 581              	.LFE139:
 583              		.section	.text.HAL_FLASH_OB_Lock,"ax",%progbits
 584              		.align	1
 585              		.global	HAL_FLASH_OB_Lock
 586              		.syntax unified
 587              		.thumb
 588              		.thumb_func
 589              		.fpu fpv4-sp-d16
 591              	HAL_FLASH_OB_Lock:
 592              	.LFB140:
 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_ERROR;
ARM GAS  /tmp/ccbaTwav.s 			page 42


 593              		.loc 1 562 0
 594              		.cfi_startproc
 595              		@ args = 0, pretend = 0, frame = 0
 596              		@ frame_needed = 0, uses_anonymous_args = 0
 597              		@ link register save eliminated.
 598              	.LVL50:
 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 599              		.loc 1 566 0
 600 0000 064B     		ldr	r3, .L57
 601 0002 5A69     		ldr	r2, [r3, #20]
 602 0004 42F08042 		orr	r2, r2, #1073741824
 603 0008 5A61     		str	r2, [r3, #20]
 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 604              		.loc 1 569 0
 605 000a 5B69     		ldr	r3, [r3, #20]
 606 000c 13F0804F 		tst	r3, #1073741824
 607 0010 01D0     		beq	.L56
 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 608              		.loc 1 571 0
 609 0012 0020     		movs	r0, #0
 610              	.LVL51:
 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 611              		.loc 1 575 0
 612 0014 7047     		bx	lr
 613              	.LVL52:
 614              	.L56:
 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 615              		.loc 1 563 0
 616 0016 0120     		movs	r0, #1
 617 0018 7047     		bx	lr
 618              	.L58:
 619 001a 00BF     		.align	2
 620              	.L57:
 621 001c 00200240 		.word	1073881088
 622              		.cfi_endproc
 623              	.LFE140:
 625              		.section	.text.HAL_FLASH_GetError,"ax",%progbits
 626              		.align	1
 627              		.global	HAL_FLASH_GetError
 628              		.syntax unified
 629              		.thumb
 630              		.thumb_func
 631              		.fpu fpv4-sp-d16
 633              	HAL_FLASH_GetError:
 634              	.LFB142:
 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   return pFlash.ErrorCode;
 635              		.loc 1 630 0
 636              		.cfi_startproc
 637              		@ args = 0, pretend = 0, frame = 0
 638              		@ frame_needed = 0, uses_anonymous_args = 0
 639              		@ link register save eliminated.
 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 640              		.loc 1 631 0
 641 0000 014B     		ldr	r3, .L60
 642 0002 5868     		ldr	r0, [r3, #4]
 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 643              		.loc 1 632 0
ARM GAS  /tmp/ccbaTwav.s 			page 43


 644 0004 7047     		bx	lr
 645              	.L61:
 646 0006 00BF     		.align	2
 647              	.L60:
 648 0008 00000000 		.word	.LANCHOR0
 649              		.cfi_endproc
 650              	.LFE142:
 652              		.section	.text.FLASH_WaitForLastOperation,"ax",%progbits
 653              		.align	1
 654              		.global	FLASH_WaitForLastOperation
 655              		.syntax unified
 656              		.thumb
 657              		.thumb_func
 658              		.fpu fpv4-sp-d16
 660              	FLASH_WaitForLastOperation:
 661              	.LFB143:
 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.
 662              		.loc 1 654 0
 663              		.cfi_startproc
 664              		@ args = 0, pretend = 0, frame = 0
 665              		@ frame_needed = 0, uses_anonymous_args = 0
 666              	.LVL53:
 667 0000 38B5     		push	{r3, r4, r5, lr}
 668              	.LCFI5:
 669              		.cfi_def_cfa_offset 16
 670              		.cfi_offset 3, -16
 671              		.cfi_offset 4, -12
 672              		.cfi_offset 5, -8
 673              		.cfi_offset 14, -4
 674 0002 0546     		mov	r5, r0
 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t error;
 675              		.loc 1 659 0
 676 0004 FFF7FEFF 		bl	HAL_GetTick
 677              	.LVL54:
 678 0008 0446     		mov	r4, r0
 679              	.LVL55:
 680              	.L63:
 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 681              		.loc 1 662 0
 682 000a 134B     		ldr	r3, .L72
 683 000c 1B69     		ldr	r3, [r3, #16]
 684 000e 13F4803F 		tst	r3, #65536
 685 0012 06D0     		beq	.L70
 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 686              		.loc 1 664 0
 687 0014 FFF7FEFF 		bl	HAL_GetTick
 688              	.LVL56:
 689 0018 001B     		subs	r0, r0, r4
 690 001a A842     		cmp	r0, r5
 691 001c F5D9     		bls	.L63
 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 692              		.loc 1 666 0
 693 001e 0320     		movs	r0, #3
 694              	.L64:
 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 695              		.loc 1 692 0
 696 0020 38BD     		pop	{r3, r4, r5, pc}
ARM GAS  /tmp/ccbaTwav.s 			page 44


 697              	.LVL57:
 698              	.L70:
 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (error != 0u)
 699              		.loc 1 671 0
 700 0022 0D4B     		ldr	r3, .L72
 701 0024 1B69     		ldr	r3, [r3, #16]
 702 0026 4CF2FA32 		movw	r2, #50170
 703              	.LVL58:
 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 704              		.loc 1 672 0
 705 002a 1340     		ands	r3, r3, r2
 706              	.LVL59:
 707 002c 09D1     		bne	.L71
 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 708              		.loc 1 684 0
 709 002e 0A4B     		ldr	r3, .L72
 710              	.LVL60:
 711 0030 1B69     		ldr	r3, [r3, #16]
 712 0032 13F0010F 		tst	r3, #1
 713 0036 0CD0     		beq	.L68
 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 714              		.loc 1 687 0 discriminator 4
 715 0038 074B     		ldr	r3, .L72
 716 003a 0122     		movs	r2, #1
 717 003c 1A61     		str	r2, [r3, #16]
 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 718              		.loc 1 691 0 discriminator 4
 719 003e 0020     		movs	r0, #0
 720 0040 EEE7     		b	.L64
 721              	.LVL61:
 722              	.L71:
 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 723              		.loc 1 675 0
 724 0042 0649     		ldr	r1, .L72+4
 725 0044 4A68     		ldr	r2, [r1, #4]
 726 0046 1A43     		orrs	r2, r2, r3
 727 0048 4A60     		str	r2, [r1, #4]
 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 728              		.loc 1 678 0
 729 004a 034A     		ldr	r2, .L72
 730 004c 1361     		str	r3, [r2, #16]
 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 731              		.loc 1 680 0
 732 004e 0120     		movs	r0, #1
 733 0050 E6E7     		b	.L64
 734              	.LVL62:
 735              	.L68:
 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 736              		.loc 1 691 0
 737 0052 0020     		movs	r0, #0
 738 0054 E4E7     		b	.L64
 739              	.L73:
 740 0056 00BF     		.align	2
 741              	.L72:
 742 0058 00200240 		.word	1073881088
 743 005c 00000000 		.word	.LANCHOR0
 744              		.cfi_endproc
ARM GAS  /tmp/ccbaTwav.s 			page 45


 745              	.LFE143:
 747              		.section	.text.HAL_FLASH_Program,"ax",%progbits
 748              		.align	1
 749              		.global	HAL_FLASH_Program
 750              		.syntax unified
 751              		.thumb
 752              		.thumb_func
 753              		.fpu fpv4-sp-d16
 755              	HAL_FLASH_Program:
 756              	.LFB132:
 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status;
 757              		.loc 1 175 0
 758              		.cfi_startproc
 759              		@ args = 0, pretend = 0, frame = 0
 760              		@ frame_needed = 0, uses_anonymous_args = 0
 761              	.LVL63:
 762 0000 2DE9F041 		push	{r4, r5, r6, r7, r8, lr}
 763              	.LCFI6:
 764              		.cfi_def_cfa_offset 24
 765              		.cfi_offset 4, -24
 766              		.cfi_offset 5, -20
 767              		.cfi_offset 6, -16
 768              		.cfi_offset 7, -12
 769              		.cfi_offset 8, -8
 770              		.cfi_offset 14, -4
 771              	.LVL64:
 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 772              		.loc 1 183 0
 773 0004 1E4C     		ldr	r4, .L85
 774 0006 2478     		ldrb	r4, [r4]	@ zero_extendqisi2
 775 0008 012C     		cmp	r4, #1
 776 000a 37D0     		beq	.L79
 777 000c 9846     		mov	r8, r3
 778 000e 1746     		mov	r7, r2
 779 0010 0E46     		mov	r6, r1
 780 0012 0546     		mov	r5, r0
 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 781              		.loc 1 183 0 is_stmt 0 discriminator 2
 782 0014 1A4B     		ldr	r3, .L85
 783 0016 0122     		movs	r2, #1
 784              	.LVL65:
 785 0018 1A70     		strb	r2, [r3]
 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 786              		.loc 1 186 0 is_stmt 1 discriminator 2
 787 001a 4FF47A70 		mov	r0, #1000
 788              	.LVL66:
 789 001e FFF7FEFF 		bl	FLASH_WaitForLastOperation
 790              	.LVL67:
 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 791              		.loc 1 188 0 discriminator 2
 792 0022 0446     		mov	r4, r0
 793 0024 90B9     		cbnz	r0, .L76
 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 794              		.loc 1 190 0
 795 0026 164B     		ldr	r3, .L85
 796 0028 0022     		movs	r2, #0
 797 002a 5A60     		str	r2, [r3, #4]
ARM GAS  /tmp/ccbaTwav.s 			page 46


 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 798              		.loc 1 192 0
 799 002c A5B1     		cbz	r5, .L83
 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 800              		.loc 1 198 0
 801 002e 6B1E     		subs	r3, r5, #1
 802 0030 012B     		cmp	r3, #1
 803 0032 18D9     		bls	.L84
 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 804              		.loc 1 177 0
 805 0034 0025     		movs	r5, #0
 806              	.LVL68:
 807              	.L78:
 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 808              		.loc 1 215 0
 809 0036 4FF47A70 		mov	r0, #1000
 810 003a FFF7FEFF 		bl	FLASH_WaitForLastOperation
 811              	.LVL69:
 812 003e 0446     		mov	r4, r0
 813              	.LVL70:
 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 814              		.loc 1 218 0
 815 0040 25B1     		cbz	r5, .L76
 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 816              		.loc 1 220 0
 817 0042 104A     		ldr	r2, .L85+4
 818 0044 5369     		ldr	r3, [r2, #20]
 819 0046 23EA0505 		bic	r5, r3, r5
 820              	.LVL71:
 821 004a 5561     		str	r5, [r2, #20]
 822              	.LVL72:
 823              	.L76:
 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 824              		.loc 1 225 0
 825 004c 0C4B     		ldr	r3, .L85
 826 004e 0022     		movs	r2, #0
 827 0050 1A70     		strb	r2, [r3]
 828              	.LVL73:
 829              	.L75:
 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 830              		.loc 1 229 0
 831 0052 2046     		mov	r0, r4
 832 0054 BDE8F081 		pop	{r4, r5, r6, r7, r8, pc}
 833              	.LVL74:
 834              	.L83:
 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       prog_bit = FLASH_CR_PG;
 835              		.loc 1 195 0
 836 0058 3A46     		mov	r2, r7
 837 005a 4346     		mov	r3, r8
 838 005c 3046     		mov	r0, r6
 839              	.LVL75:
 840 005e FFF7FEFF 		bl	FLASH_Program_DoubleWord
 841              	.LVL76:
 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 842              		.loc 1 196 0
 843 0062 0125     		movs	r5, #1
 844              	.LVL77:
ARM GAS  /tmp/ccbaTwav.s 			page 47


 845 0064 E7E7     		b	.L78
 846              	.LVL78:
 847              	.L84:
 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 848              		.loc 1 201 0
 849 0066 3946     		mov	r1, r7
 850 0068 3046     		mov	r0, r6
 851              	.LVL79:
 852 006a FFF7FEFF 		bl	FLASH_Program_Fast
 853              	.LVL80:
 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 854              		.loc 1 204 0
 855 006e 022D     		cmp	r5, #2
 856 0070 01D0     		beq	.L81
 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 857              		.loc 1 177 0
 858 0072 0025     		movs	r5, #0
 859              	.LVL81:
 860 0074 DFE7     		b	.L78
 861              	.LVL82:
 862              	.L81:
 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 863              		.loc 1 206 0
 864 0076 4FF48025 		mov	r5, #262144
 865              	.LVL83:
 866 007a DCE7     		b	.L78
 867              	.LVL84:
 868              	.L79:
 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 869              		.loc 1 183 0
 870 007c 0224     		movs	r4, #2
 871 007e E8E7     		b	.L75
 872              	.L86:
 873              		.align	2
 874              	.L85:
 875 0080 00000000 		.word	.LANCHOR0
 876 0084 00200240 		.word	1073881088
 877              		.cfi_endproc
 878              	.LFE132:
 880              		.section	.text.HAL_FLASH_Program_IT,"ax",%progbits
 881              		.align	1
 882              		.global	HAL_FLASH_Program_IT
 883              		.syntax unified
 884              		.thumb
 885              		.thumb_func
 886              		.fpu fpv4-sp-d16
 888              	HAL_FLASH_Program_IT:
 889              	.LFB133:
 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status;
 890              		.loc 1 243 0
 891              		.cfi_startproc
 892              		@ args = 0, pretend = 0, frame = 0
 893              		@ frame_needed = 0, uses_anonymous_args = 0
 894              	.LVL85:
 895 0000 2DE9F041 		push	{r4, r5, r6, r7, r8, lr}
 896              	.LCFI7:
 897              		.cfi_def_cfa_offset 24
ARM GAS  /tmp/ccbaTwav.s 			page 48


 898              		.cfi_offset 4, -24
 899              		.cfi_offset 5, -20
 900              		.cfi_offset 6, -16
 901              		.cfi_offset 7, -12
 902              		.cfi_offset 8, -8
 903              		.cfi_offset 14, -4
 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 904              		.loc 1 250 0
 905 0004 1C4C     		ldr	r4, .L98
 906 0006 2478     		ldrb	r4, [r4]	@ zero_extendqisi2
 907 0008 012C     		cmp	r4, #1
 908 000a 31D0     		beq	.L93
 909 000c 9846     		mov	r8, r3
 910 000e 1746     		mov	r7, r2
 911 0010 0E46     		mov	r6, r1
 912 0012 0546     		mov	r5, r0
 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 913              		.loc 1 250 0 is_stmt 0 discriminator 2
 914 0014 184C     		ldr	r4, .L98
 915 0016 0123     		movs	r3, #1
 916 0018 2370     		strb	r3, [r4]
 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 917              		.loc 1 253 0 is_stmt 1 discriminator 2
 918 001a 0023     		movs	r3, #0
 919 001c 6360     		str	r3, [r4, #4]
 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 920              		.loc 1 256 0 discriminator 2
 921 001e 4FF47A70 		mov	r0, #1000
 922              	.LVL86:
 923 0022 FFF7FEFF 		bl	FLASH_WaitForLastOperation
 924              	.LVL87:
 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 925              		.loc 1 258 0 discriminator 2
 926 0026 0446     		mov	r4, r0
 927 0028 A0B9     		cbnz	r0, .L95
 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 928              		.loc 1 266 0
 929 002a 022D     		cmp	r5, #2
 930 002c 16D0     		beq	.L96
 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 931              		.loc 1 272 0
 932 002e 124B     		ldr	r3, .L98
 933 0030 0322     		movs	r2, #3
 934 0032 1A72     		strb	r2, [r3, #8]
 935              	.L91:
 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 936              		.loc 1 274 0
 937 0034 104B     		ldr	r3, .L98
 938 0036 DE60     		str	r6, [r3, #12]
 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 939              		.loc 1 277 0
 940 0038 104A     		ldr	r2, .L98+4
 941 003a 5369     		ldr	r3, [r2, #20]
 942 003c 43F04073 		orr	r3, r3, #50331648
 943 0040 5361     		str	r3, [r2, #20]
 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 944              		.loc 1 279 0
ARM GAS  /tmp/ccbaTwav.s 			page 49


 945 0042 7DB1     		cbz	r5, .L97
 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 946              		.loc 1 284 0
 947 0044 681E     		subs	r0, r5, #1
 948              	.LVL88:
 949 0046 0128     		cmp	r0, #1
 950 0048 13D8     		bhi	.L88
 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 951              		.loc 1 287 0
 952 004a 3946     		mov	r1, r7
 953 004c 3046     		mov	r0, r6
 954 004e FFF7FEFF 		bl	FLASH_Program_Fast
 955              	.LVL89:
 956 0052 0EE0     		b	.L88
 957              	.LVL90:
 958              	.L95:
 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 959              		.loc 1 261 0
 960 0054 084B     		ldr	r3, .L98
 961 0056 0022     		movs	r2, #0
 962 0058 1A70     		strb	r2, [r3]
 963 005a 0AE0     		b	.L88
 964              	.L96:
 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 965              		.loc 1 268 0
 966 005c 064B     		ldr	r3, .L98
 967 005e 0422     		movs	r2, #4
 968 0060 1A72     		strb	r2, [r3, #8]
 969 0062 E7E7     		b	.L91
 970              	.L97:
 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 971              		.loc 1 282 0
 972 0064 3A46     		mov	r2, r7
 973 0066 4346     		mov	r3, r8
 974 0068 3046     		mov	r0, r6
 975              	.LVL91:
 976 006a FFF7FEFF 		bl	FLASH_Program_DoubleWord
 977              	.LVL92:
 978 006e 00E0     		b	.L88
 979              	.LVL93:
 980              	.L93:
 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 981              		.loc 1 250 0
 982 0070 0224     		movs	r4, #2
 983              	.LVL94:
 984              	.L88:
 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 985              		.loc 1 296 0
 986 0072 2046     		mov	r0, r4
 987 0074 BDE8F081 		pop	{r4, r5, r6, r7, r8, pc}
 988              	.L99:
 989              		.align	2
 990              	.L98:
 991 0078 00000000 		.word	.LANCHOR0
 992 007c 00200240 		.word	1073881088
 993              		.cfi_endproc
 994              	.LFE133:
ARM GAS  /tmp/ccbaTwav.s 			page 50


 996              		.section	.text.HAL_FLASH_OB_Launch,"ax",%progbits
 997              		.align	1
 998              		.global	HAL_FLASH_OB_Launch
 999              		.syntax unified
 1000              		.thumb
 1001              		.thumb_func
 1002              		.fpu fpv4-sp-d16
 1004              	HAL_FLASH_OB_Launch:
 1005              	.LFB141:
 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Set the bit to force the option byte reloading */
 1006              		.loc 1 582 0
 1007              		.cfi_startproc
 1008              		@ args = 0, pretend = 0, frame = 0
 1009              		@ frame_needed = 0, uses_anonymous_args = 0
 1010 0000 08B5     		push	{r3, lr}
 1011              	.LCFI8:
 1012              		.cfi_def_cfa_offset 8
 1013              		.cfi_offset 3, -8
 1014              		.cfi_offset 14, -4
 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1015              		.loc 1 584 0
 1016 0002 054A     		ldr	r2, .L102
 1017 0004 5369     		ldr	r3, [r2, #20]
 1018 0006 43F00063 		orr	r3, r3, #134217728
 1019 000a 5361     		str	r3, [r2, #20]
 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 1020              		.loc 1 587 0
 1021 000c 4FF47A70 		mov	r0, #1000
 1022 0010 FFF7FEFF 		bl	FLASH_WaitForLastOperation
 1023              	.LVL95:
 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1024              		.loc 1 588 0
 1025 0014 08BD     		pop	{r3, pc}
 1026              	.L103:
 1027 0016 00BF     		.align	2
 1028              	.L102:
 1029 0018 00200240 		.word	1073881088
 1030              		.cfi_endproc
 1031              	.LFE141:
 1033              		.global	pFlash
 1034              		.section	.data.pFlash,"aw",%progbits
 1035              		.align	2
 1036              		.set	.LANCHOR0,. + 0
 1039              	pFlash:
 1040 0000 00       		.byte	0
 1041 0001 000000   		.space	3
 1042 0004 00000000 		.word	0
 1043 0008 00       		.byte	0
 1044 0009 000000   		.space	3
 1045 000c 00000000 		.word	0
 1046 0010 01000000 		.word	1
 1047 0014 00000000 		.word	0
 1048 0018 00000000 		.word	0
 1049 001c 00       		.byte	0
 1050 001d 000000   		.space	3
 1051              		.text
 1052              	.Letext0:
ARM GAS  /tmp/ccbaTwav.s 			page 51


 1053              		.file 3 "/usr/include/newlib/machine/_default_types.h"
 1054              		.file 4 "/usr/include/newlib/sys/_stdint.h"
 1055              		.file 5 "Drivers/CMSIS/Include/core_cm4.h"
 1056              		.file 6 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h"
 1057              		.file 7 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h"
 1058              		.file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h"
 1059              		.file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h"
 1060              		.file 10 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h"
 1061              		.file 11 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h"
 1062              		.file 12 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h"
ARM GAS  /tmp/ccbaTwav.s 			page 52


DEFINED SYMBOLS
                            *ABS*:0000000000000000 stm32g4xx_hal_flash.c
     /tmp/ccbaTwav.s:18     .text.FLASH_Program_DoubleWord:0000000000000000 $t
     /tmp/ccbaTwav.s:24     .text.FLASH_Program_DoubleWord:0000000000000000 FLASH_Program_DoubleWord
     /tmp/ccbaTwav.s:67     .text.FLASH_Program_DoubleWord:000000000000001c $d
     /tmp/ccbaTwav.s:72     .text.FLASH_Program_Fast:0000000000000000 $t
     /tmp/ccbaTwav.s:78     .text.FLASH_Program_Fast:0000000000000000 FLASH_Program_Fast
     /tmp/ccbaTwav.s:156    .text.FLASH_Program_Fast:0000000000000030 $d
     /tmp/ccbaTwav.s:161    .text.HAL_FLASH_EndOfOperationCallback:0000000000000000 $t
     /tmp/ccbaTwav.s:168    .text.HAL_FLASH_EndOfOperationCallback:0000000000000000 HAL_FLASH_EndOfOperationCallback
     /tmp/ccbaTwav.s:182    .text.HAL_FLASH_OperationErrorCallback:0000000000000000 $t
     /tmp/ccbaTwav.s:189    .text.HAL_FLASH_OperationErrorCallback:0000000000000000 HAL_FLASH_OperationErrorCallback
     /tmp/ccbaTwav.s:203    .text.HAL_FLASH_IRQHandler:0000000000000000 $t
     /tmp/ccbaTwav.s:210    .text.HAL_FLASH_IRQHandler:0000000000000000 HAL_FLASH_IRQHandler
     /tmp/ccbaTwav.s:431    .text.HAL_FLASH_IRQHandler:0000000000000118 $d
     /tmp/ccbaTwav.s:437    .text.HAL_FLASH_Unlock:0000000000000000 $t
     /tmp/ccbaTwav.s:444    .text.HAL_FLASH_Unlock:0000000000000000 HAL_FLASH_Unlock
     /tmp/ccbaTwav.s:484    .text.HAL_FLASH_Unlock:0000000000000028 $d
     /tmp/ccbaTwav.s:490    .text.HAL_FLASH_Lock:0000000000000000 $t
     /tmp/ccbaTwav.s:497    .text.HAL_FLASH_Lock:0000000000000000 HAL_FLASH_Lock
     /tmp/ccbaTwav.s:526    .text.HAL_FLASH_Lock:0000000000000018 $d
     /tmp/ccbaTwav.s:531    .text.HAL_FLASH_OB_Unlock:0000000000000000 $t
     /tmp/ccbaTwav.s:538    .text.HAL_FLASH_OB_Unlock:0000000000000000 HAL_FLASH_OB_Unlock
     /tmp/ccbaTwav.s:578    .text.HAL_FLASH_OB_Unlock:000000000000002c $d
     /tmp/ccbaTwav.s:584    .text.HAL_FLASH_OB_Lock:0000000000000000 $t
     /tmp/ccbaTwav.s:591    .text.HAL_FLASH_OB_Lock:0000000000000000 HAL_FLASH_OB_Lock
     /tmp/ccbaTwav.s:621    .text.HAL_FLASH_OB_Lock:000000000000001c $d
     /tmp/ccbaTwav.s:626    .text.HAL_FLASH_GetError:0000000000000000 $t
     /tmp/ccbaTwav.s:633    .text.HAL_FLASH_GetError:0000000000000000 HAL_FLASH_GetError
     /tmp/ccbaTwav.s:648    .text.HAL_FLASH_GetError:0000000000000008 $d
     /tmp/ccbaTwav.s:653    .text.FLASH_WaitForLastOperation:0000000000000000 $t
     /tmp/ccbaTwav.s:660    .text.FLASH_WaitForLastOperation:0000000000000000 FLASH_WaitForLastOperation
     /tmp/ccbaTwav.s:742    .text.FLASH_WaitForLastOperation:0000000000000058 $d
     /tmp/ccbaTwav.s:748    .text.HAL_FLASH_Program:0000000000000000 $t
     /tmp/ccbaTwav.s:755    .text.HAL_FLASH_Program:0000000000000000 HAL_FLASH_Program
     /tmp/ccbaTwav.s:875    .text.HAL_FLASH_Program:0000000000000080 $d
     /tmp/ccbaTwav.s:881    .text.HAL_FLASH_Program_IT:0000000000000000 $t
     /tmp/ccbaTwav.s:888    .text.HAL_FLASH_Program_IT:0000000000000000 HAL_FLASH_Program_IT
     /tmp/ccbaTwav.s:991    .text.HAL_FLASH_Program_IT:0000000000000078 $d
     /tmp/ccbaTwav.s:997    .text.HAL_FLASH_OB_Launch:0000000000000000 $t
     /tmp/ccbaTwav.s:1004   .text.HAL_FLASH_OB_Launch:0000000000000000 HAL_FLASH_OB_Launch
     /tmp/ccbaTwav.s:1029   .text.HAL_FLASH_OB_Launch:0000000000000018 $d
     /tmp/ccbaTwav.s:1039   .data.pFlash:0000000000000000 pFlash
     /tmp/ccbaTwav.s:1035   .data.pFlash:0000000000000000 $d

UNDEFINED SYMBOLS
FLASH_PageErase
FLASH_FlushCaches
HAL_GetTick
