ARM GAS  /tmp/cc6LDhZP.s 			page 1


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


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


  90:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /** @addtogroup STM32G0xx_HAL_Driver
  91:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @{
  92:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
  93:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
  94:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /** @defgroup FLASH FLASH
  95:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @brief FLASH HAL module driver
  96:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @{
  97:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
  98:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
  99:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** #ifdef HAL_FLASH_MODULE_ENABLED
 100:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 101:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /* Private typedef -----------------------------------------------------------*/
 102:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /* Private defines -----------------------------------------------------------*/
 103:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /* Private macros ------------------------------------------------------------*/
 104:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /* Private variables ---------------------------------------------------------*/
 105:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /** @defgroup FLASH_Private_Variables FLASH Private Variables
 106:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @{
 107:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 108:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /**
 109:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @brief  Variable used for Program/Erase sectors under interruption
 110:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 111:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** FLASH_ProcessTypeDef pFlash  = {.Lock = HAL_UNLOCKED, \
 112:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****                                 .ErrorCode = HAL_FLASH_ERROR_NONE, \
 113:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****                                 .ProcedureOnGoing = FLASH_TYPENONE, \
 114:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****                                 .Address = 0U, \
 115:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****                                 .Banks = 0U, \
 116:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****                                 .Page = 0U, \
 117:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****                                 .NbPagesToErase = 0U
 118:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****                                };
 119:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /**
 120:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @}
 121:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 122:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 123:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /* Private function prototypes -----------------------------------------------*/
 124:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /** @defgroup FLASH_Private_Functions FLASH Private Functions
 125:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @{
 126:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 127:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** static void          FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data);
 128:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** static void          FLASH_Program_Fast(uint32_t Address, uint32_t DataAddress);
 129:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /**
 130:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @}
 131:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 132:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 133:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /* Exported functions --------------------------------------------------------*/
 134:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions FLASH Exported Functions
 135:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @{
 136:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 137:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 138:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group1 Programming operation functions
 139:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *  @brief   Programming operation functions
 140:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *
 141:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** @verbatim
 142:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****  ===============================================================================
 143:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****                   ##### Programming operation functions #####
 144:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****  ===============================================================================
 145:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     [..]
 146:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     This subsection provides a set of functions allowing to manage the FLASH
ARM GAS  /tmp/cc6LDhZP.s 			page 4


 147:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     program operations.
 148:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 149:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** @endverbatim
 150:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @{
 151:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 152:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 153:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /**
 154:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @brief  Program double word or fast program of a row at a specified address.
 155:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @param  TypeProgram Indicate the way to program at a specified address.
 156:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *                      This parameter can be a value of @ref FLASH_Type_Program
 157:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @param  Address Specifies the address to be programmed.
 158:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @param  Data Specifies the data to be programmed
 159:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *               This parameter is the data for the double word program and the address where
 160:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *               are stored the data for the row fast program depending on the TypeProgram:
 161:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *               TypeProgram = FLASH_TYPEPROGRAM_DOUBLEWORD (64-bit)
 162:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *               TypeProgram = FLASH_TYPEPROGRAM_FAST (32-bit).
 163:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *
 164:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @retval HAL_StatusTypeDef HAL Status
 165:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 166:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
 167:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** {
 168:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   HAL_StatusTypeDef status;
 169:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 170:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Check the parameters */
 171:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram));
 172:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 173:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Process Locked */
 174:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   __HAL_LOCK(&pFlash);
 175:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 176:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Reset error code */
 177:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
 178:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 179:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Wait for last operation to be completed */
 180:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
 181:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 182:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   if (status == HAL_OK)
 183:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 184:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     if (TypeProgram == FLASH_TYPEPROGRAM_DOUBLEWORD)
 185:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 186:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       /* Check the parameters */
 187:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       assert_param(IS_FLASH_PROGRAM_ADDRESS(Address));
 188:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 189:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       /* Program double-word (64-bit) at a specified address */
 190:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       FLASH_Program_DoubleWord(Address, Data);
 191:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 192:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     else
 193:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 194:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       /* Check the parameters */
 195:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       assert_param(IS_FLASH_FAST_PROGRAM_ADDRESS(Address));
 196:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 197:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       /* Fast program a 32 row double-word (64-bit) at a specified address */
 198:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       FLASH_Program_Fast(Address, (uint32_t)Data);
 199:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 200:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 201:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     /* Wait for last operation to be completed */
 202:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
 203:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
ARM GAS  /tmp/cc6LDhZP.s 			page 5


 204:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     /* If the program operation is completed, disable the PG or FSTPG Bit */
 205:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     CLEAR_BIT(FLASH->CR, TypeProgram);
 206:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 207:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 208:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Process Unlocked */
 209:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   __HAL_UNLOCK(&pFlash);
 210:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 211:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* return status */
 212:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   return status;
 213:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
 214:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 215:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /**
 216:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @brief  Program double word or fast program of a row at a specified address with interrupt enab
 217:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @param  TypeProgram Indicate the way to program at a specified address.
 218:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *                      This parameter can be a value of @ref FLASH_Type_Program
 219:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @param  Address Specifies the address to be programmed.
 220:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @param  Data Specifies the data to be programmed
 221:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *               This parameter is the data for the double word program and the address where
 222:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *               are stored the data for the row fast program depending on the TypeProgram:
 223:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *               TypeProgram = FLASH_TYPEPROGRAM_DOUBLEWORD (64-bit)
 224:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *               TypeProgram = FLASH_TYPEPROGRAM_FAST (32-bit).
 225:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *
 226:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @retval HAL Status
 227:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 228:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
 229:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** {
 230:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   HAL_StatusTypeDef status;
 231:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 232:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Check the parameters */
 233:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram));
 234:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 235:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Process Locked */
 236:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   __HAL_LOCK(&pFlash);
 237:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 238:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Reset error code */
 239:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
 240:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 241:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Wait for last operation to be completed */
 242:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
 243:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 244:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   if (status != HAL_OK)
 245:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 246:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     /* Process Unlocked */
 247:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     __HAL_UNLOCK(&pFlash);
 248:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 249:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   else
 250:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 251:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     /* Set internal variables used by the IRQ handler */
 252:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     pFlash.ProcedureOnGoing = TypeProgram;
 253:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     pFlash.Address = Address;
 254:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 255:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     /* Enable End of Operation and Error interrupts */
 256:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     FLASH->CR |= FLASH_CR_EOPIE | FLASH_CR_ERRIE;
 257:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 258:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     if (TypeProgram == FLASH_TYPEPROGRAM_DOUBLEWORD)
 259:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 260:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       /* Check the parameters */
ARM GAS  /tmp/cc6LDhZP.s 			page 6


 261:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       assert_param(IS_FLASH_PROGRAM_ADDRESS(Address));
 262:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 263:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       /* Program double-word (64-bit) at a specified address */
 264:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       FLASH_Program_DoubleWord(Address, Data);
 265:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 266:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     else
 267:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 268:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       /* Check the parameters */
 269:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       assert_param(IS_FLASH_FAST_PROGRAM_ADDRESS(Address));
 270:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 271:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       /* Fast program a 32 row double-word (64-bit) at a specified address */
 272:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       FLASH_Program_Fast(Address, (uint32_t)Data);
 273:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 274:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 275:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 276:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* return status */
 277:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   return status;
 278:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
 279:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 280:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /**
 281:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @brief Handle FLASH interrupt request.
 282:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @retval None
 283:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 284:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** void HAL_FLASH_IRQHandler(void)
 285:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** {
 286:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   uint32_t param;
 287:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   uint32_t error;
 288:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 289:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Save flash errors. */
 290:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   error = (FLASH->SR & FLASH_SR_ERRORS);
 291:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 292:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* A] Set parameter for user or error callbacks */
 293:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* check operation was a program or erase */
 294:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   if ((pFlash.ProcedureOnGoing & FLASH_TYPEERASE_MASS) != 0x00U)
 295:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 296:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     /* return bank number */
 297:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     param = pFlash.Banks;
 298:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 299:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   else
 300:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 301:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     /* Clear operation only for page erase or program */
 302:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     CLEAR_BIT(FLASH->CR, pFlash.ProcedureOnGoing);
 303:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 304:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     if ((pFlash.ProcedureOnGoing & (FLASH_TYPEPROGRAM_DOUBLEWORD | FLASH_TYPEPROGRAM_FAST)) != 0x00
 305:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 306:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       /* return address being programmed */
 307:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       param = pFlash.Address;
 308:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 309:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     else
 310:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 311:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       /* return page number being erased */
 312:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       param = pFlash.Page;
 313:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 314:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 315:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 316:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* B] Check errors */
 317:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   if (error != 0x00U)
ARM GAS  /tmp/cc6LDhZP.s 			page 7


 318:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 319:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     /*Save the error code*/
 320:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     pFlash.ErrorCode |= error;
 321:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 322:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     /* clear error flags */
 323:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     FLASH->SR = FLASH_SR_ERRORS;
 324:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 325:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     /*Stop the procedure ongoing*/
 326:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     pFlash.ProcedureOnGoing = FLASH_TYPENONE;
 327:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 328:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     /* Error callback */
 329:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     HAL_FLASH_OperationErrorCallback(param);
 330:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 331:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 332:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* C] Check FLASH End of Operation flag */
 333:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   if ((FLASH->SR & FLASH_SR_EOP) != 0x00U)
 334:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 335:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     /* Clear FLASH End of Operation pending bit */
 336:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     FLASH->SR = FLASH_SR_EOP;
 337:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 338:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     if (pFlash.ProcedureOnGoing == FLASH_TYPEERASE_PAGES)
 339:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 340:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       /* Nb of pages to erased can be decreased */
 341:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       pFlash.NbPagesToErase--;
 342:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 343:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       /* Check if there are still pages to erase*/
 344:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       if (pFlash.NbPagesToErase != 0x00U)
 345:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       {
 346:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****         /* Increment page number */
 347:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****         pFlash.Page++;
 348:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****         FLASH_PageErase(pFlash.Banks, pFlash.Page);
 349:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       }
 350:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       else
 351:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       {
 352:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****         /* No more pages to erase: stop erase pages procedure */
 353:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****         pFlash.ProcedureOnGoing = FLASH_TYPENONE;
 354:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       }
 355:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 356:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     else
 357:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 358:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       /*Stop the ongoing procedure */
 359:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       pFlash.ProcedureOnGoing = FLASH_TYPENONE;
 360:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 361:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 362:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     /* User callback */
 363:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     HAL_FLASH_EndOfOperationCallback(param);
 364:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 365:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 366:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   if (pFlash.ProcedureOnGoing == FLASH_TYPENONE)
 367:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 368:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     /* Disable End of Operation and Error interrupts */
 369:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     FLASH->CR &= ~(FLASH_CR_EOPIE | FLASH_CR_ERRIE);
 370:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 371:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     /* Process Unlocked */
 372:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     __HAL_UNLOCK(&pFlash);
 373:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 374:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
ARM GAS  /tmp/cc6LDhZP.s 			page 8


 375:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 376:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /**
 377:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @brief  FLASH end of operation interrupt callback.
 378:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @param  ReturnValue The value saved in this parameter depends on the ongoing procedure
 379:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *                  Mass Erase: 0
 380:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *                  Page Erase: Page which has been erased
 381:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *                  Program: Address which was selected for data program
 382:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @retval None
 383:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 384:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** __weak void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue)
 385:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** {
 386:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Prevent unused argument(s) compilation warning */
 387:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   UNUSED(ReturnValue);
 388:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 389:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* NOTE : This function should not be modified, when the callback is needed,
 390:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****             the HAL_FLASH_EndOfOperationCallback could be implemented in the user file
 391:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****    */
 392:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
 393:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 394:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /**
 395:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @brief  FLASH operation error interrupt callback.
 396:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @param  ReturnValue The value saved in this parameter depends on the ongoing procedure
 397:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *                 Mass Erase: 0
 398:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *                 Page Erase: Page number which returned an error
 399:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *                 Program: Address which was selected for data program
 400:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @retval None
 401:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 402:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** __weak void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue)
 403:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** {
 404:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Prevent unused argument(s) compilation warning */
 405:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   UNUSED(ReturnValue);
 406:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 407:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* NOTE : This function should not be modified, when the callback is needed,
 408:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****             the HAL_FLASH_OperationErrorCallback could be implemented in the user file
 409:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****    */
 410:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
 411:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 412:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /**
 413:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @}
 414:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 415:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 416:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group2 Peripheral Control functions
 417:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *  @brief   Management functions
 418:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *
 419:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** @verbatim
 420:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****  ===============================================================================
 421:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****                       ##### Peripheral Control functions #####
 422:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****  ===============================================================================
 423:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     [..]
 424:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     This subsection provides a set of functions allowing to control the FLASH
 425:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     memory operations.
 426:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 427:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** @endverbatim
 428:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @{
 429:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 430:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 431:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /**
ARM GAS  /tmp/cc6LDhZP.s 			page 9


 432:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @brief  Unlock the FLASH control register access.
 433:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @retval HAL Status
 434:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 435:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Unlock(void)
 436:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** {
 437:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_OK;
 438:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 439:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) != 0x00U)
 440:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 441:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     /* Authorize the FLASH Registers access */
 442:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     WRITE_REG(FLASH->KEYR, FLASH_KEY1);
 443:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     WRITE_REG(FLASH->KEYR, FLASH_KEY2);
 444:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 445:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     /* verify Flash is unlock */
 446:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) != 0x00U)
 447:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 448:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       status = HAL_ERROR;
 449:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 450:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 451:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 452:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   return status;
 453:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
 454:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 455:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /**
 456:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @brief  Lock the FLASH control register access.
 457:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @retval HAL Status
 458:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 459:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Lock(void)
 460:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** {
 461:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_ERROR;
 462:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 463:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Set the LOCK Bit to lock the FLASH Registers access */
 464:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   SET_BIT(FLASH->CR, FLASH_CR_LOCK);
 465:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 466:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* verify Flash is locked */
 467:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) != 0x00u)
 468:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 469:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     status = HAL_OK;
 470:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 471:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 472:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   return status;
 473:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
 474:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 475:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /**
 476:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @brief  Unlock the FLASH Option Bytes Registers access.
 477:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @retval HAL Status
 478:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 479:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void)
 480:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** {
 481:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_ERROR;
 482:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 483:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   if (READ_BIT(FLASH->CR, FLASH_CR_OPTLOCK) != 0x00U)
 484:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 485:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     /* Authorizes the Option Byte register programming */
 486:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY1);
 487:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY2);
 488:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
ARM GAS  /tmp/cc6LDhZP.s 			page 10


 489:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     /* verify option bytes are unlocked */
 490:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     if (READ_BIT(FLASH->CR, FLASH_CR_OPTLOCK) == 0x00U)
 491:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 492:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       status = HAL_OK;
 493:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 494:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 495:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 496:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   return status;
 497:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
 498:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 499:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /**
 500:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @brief  Lock the FLASH Option Bytes Registers access.
 501:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @retval HAL Status
 502:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 503:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Lock(void)
 504:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** {
 505:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_ERROR;
 506:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 507:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Set the OPTLOCK Bit to lock the FLASH Option Byte Registers access */
 508:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   SET_BIT(FLASH->CR, FLASH_CR_OPTLOCK);
 509:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 510:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* verify option bytes are locked */
 511:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   if (READ_BIT(FLASH->CR, FLASH_CR_OPTLOCK) != 0x00u)
 512:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 513:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     status = HAL_OK;
 514:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 515:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 516:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   return status;
 517:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
 518:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 519:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /**
 520:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @brief  Launch the option byte loading.
 521:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @retval HAL Status
 522:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 523:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Launch(void)
 524:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** {
 525:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Set the bit to force the option byte reloading */
 526:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   SET_BIT(FLASH->CR, FLASH_CR_OBL_LAUNCH);
 527:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 528:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* We should not reach here : Option byte launch generates Option byte reset
 529:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****      so return error */
 530:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   return HAL_ERROR;
 531:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
 532:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 533:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /**
 534:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @}
 535:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 536:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 537:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group3 Peripheral State and Errors functions
 538:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *  @brief   Peripheral Errors functions
 539:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *
 540:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** @verbatim
 541:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****  ===============================================================================
 542:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****                 ##### Peripheral Errors functions #####
 543:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****  ===============================================================================
 544:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     [..]
 545:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     This subsection permits to get in run-time Errors of the FLASH peripheral.
ARM GAS  /tmp/cc6LDhZP.s 			page 11


 546:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 547:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** @endverbatim
 548:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @{
 549:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 550:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 551:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /**
 552:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @brief  Get the specific FLASH error flag.
 553:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @retval FLASH_ErrorCode The returned value can be
 554:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *            @arg @ref HAL_FLASH_ERROR_NONE No error set
 555:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *            @arg @ref HAL_FLASH_ERROR_OP Operation error
 556:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *            @arg @ref HAL_FLASH_ERROR_PROG Programming error
 557:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *            @arg @ref HAL_FLASH_ERROR_WRP Write protection error
 558:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *            @arg @ref HAL_FLASH_ERROR_PGA Programming alignment error
 559:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *            @arg @ref HAL_FLASH_ERROR_SIZ Size error
 560:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *            @arg @ref HAL_FLASH_ERROR_PGS Programming sequence error
 561:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *            @arg @ref HAL_FLASH_ERROR_MIS Fast programming data miss error
 562:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *            @arg @ref HAL_FLASH_ERROR_FAST Fast programming error
 563:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *            @arg @ref HAL_FLASH_ERROR_RD Read Protection error (PCROP)(*)
 564:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *            @arg @ref HAL_FLASH_ERROR_OPTV Option validity error
 565:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *            @arg @ref HAL_FLASH_ERROR_ECCD two ECC errors have been detected
 566:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @note (*) availability depends on devices
 567:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 568:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** uint32_t HAL_FLASH_GetError(void)
 569:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** {
 570:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   return pFlash.ErrorCode;
 571:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
 572:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 573:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /**
 574:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @}
 575:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 576:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 577:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /**
 578:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @}
 579:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 580:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 581:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /* Private functions ---------------------------------------------------------*/
 582:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 583:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /** @addtogroup FLASH_Private_Functions
 584:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @{
 585:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 586:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 587:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /**
 588:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @brief  Wait for a FLASH operation to complete.
 589:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @param  Timeout maximum flash operation timeout
 590:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @retval HAL_StatusTypeDef HAL Status
 591:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 592:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout)
 593:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** {
 594:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   uint32_t error;
 595:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset.
 596:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****      Even if the FLASH operation fails, the BUSY flag will be reset and an error
 597:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****      flag will be set */
 598:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   uint32_t timeout = HAL_GetTick() + Timeout;
 599:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 600:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Wait if any operation is ongoing */
 601:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** #if defined(FLASH_DBANK_SUPPORT)
 602:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   error = (FLASH_SR_BSY1 | FLASH_SR_BSY2);
ARM GAS  /tmp/cc6LDhZP.s 			page 12


 603:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** #else
 604:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   error = FLASH_SR_BSY1;
 605:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** #endif /* FLASH_DBANK_SUPPORT */
 606:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 607:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   while ((FLASH->SR & error) != 0x00U)
 608:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 609:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     if (HAL_GetTick() >= timeout)
 610:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 611:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       return HAL_TIMEOUT;
 612:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 613:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 614:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 615:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* check flash errors */
 616:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   error = (FLASH->SR & FLASH_SR_ERRORS);
 617:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 618:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Clear SR register */
 619:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   FLASH->SR = FLASH_SR_CLEAR;
 620:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 621:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   if (error != 0x00U)
 622:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 623:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     /*Save the error code*/
 624:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     pFlash.ErrorCode = error;
 625:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     return HAL_ERROR;
 626:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 627:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 628:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Wait for control register to be written */
 629:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   timeout = HAL_GetTick() + Timeout;
 630:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 631:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   while ((FLASH->SR & FLASH_SR_CFGBSY) != 0x00U)
 632:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 633:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     if (HAL_GetTick() >= timeout)
 634:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 635:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       return HAL_TIMEOUT;
 636:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 637:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 638:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 639:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   return HAL_OK;
 640:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
 641:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 642:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /**
 643:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @brief  Program double-word (64-bit) at a specified address.
 644:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @param  Address Specifies the address to be programmed.
 645:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @param  Data Specifies the data to be programmed.
 646:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @retval None
 647:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 648:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** static void FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data)
 649:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** {
  27              		.loc 1 649 1 view -0
  28              		.cfi_startproc
  29              		@ args = 0, pretend = 0, frame = 0
  30              		@ frame_needed = 0, uses_anonymous_args = 0
  31              		.loc 1 649 1 is_stmt 0 view .LVU1
  32 0000 30B5     		push	{r4, r5, lr}
  33              	.LCFI0:
  34              		.cfi_def_cfa_offset 12
  35              		.cfi_offset 4, -12
  36              		.cfi_offset 5, -8
ARM GAS  /tmp/cc6LDhZP.s 			page 13


  37              		.cfi_offset 14, -4
 650:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Set PG bit */
 651:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   SET_BIT(FLASH->CR, FLASH_CR_PG);
  38              		.loc 1 651 3 is_stmt 1 view .LVU2
  39 0002 054C     		ldr	r4, .L2
  40 0004 6169     		ldr	r1, [r4, #20]
  41 0006 0125     		movs	r5, #1
  42 0008 2943     		orrs	r1, r5
  43 000a 6161     		str	r1, [r4, #20]
 652:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 653:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Program first word */
 654:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *(uint32_t *)Address = (uint32_t)Data;
  44              		.loc 1 654 3 view .LVU3
  45              		.loc 1 654 24 is_stmt 0 view .LVU4
  46 000c 0260     		str	r2, [r0]
 655:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 656:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Barrier to ensure programming is performed in 2 steps, in right order
 657:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     (independently of compiler optimization behavior) */
 658:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   __ISB();
  47              		.loc 1 658 3 is_stmt 1 view .LVU5
  48              	.LBB10:
  49              	.LBI10:
  50              		.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 */
ARM GAS  /tmp/cc6LDhZP.s 			page 14


  35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __has_builtin
  36:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __has_builtin(x) (0)
  37:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  38:Drivers/CMSIS/Include/cmsis_gcc.h **** 
  39:Drivers/CMSIS/Include/cmsis_gcc.h **** /* CMSIS compiler specific defines */
  40:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __ASM
  41:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __ASM                                  __asm
  42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __INLINE
  44:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __INLINE                               inline
  45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __STATIC_INLINE
  47:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __STATIC_INLINE                        static inline
  48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __STATIC_FORCEINLINE                 
  50:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __STATIC_FORCEINLINE                   __attribute__((always_inline)) static inline
  51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif                                           
  52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __NO_RETURN
  53:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __NO_RETURN                            __attribute__((__noreturn__))
  54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __USED
  56:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __USED                                 __attribute__((used))
  57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __WEAK
  59:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __WEAK                                 __attribute__((weak))
  60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __PACKED
  62:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __PACKED                               __attribute__((packed, aligned(1)))
  63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __PACKED_STRUCT
  65:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __PACKED_STRUCT                        struct __attribute__((packed, aligned(1)))
  66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __PACKED_UNION
  68:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __PACKED_UNION                         union __attribute__((packed, aligned(1)))
  69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef   __UNALIGNED_UINT32        /* deprecated */
  71:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic push
  72:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic ignored "-Wpacked"
  73:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic ignored "-Wattributes"
  74:Drivers/CMSIS/Include/cmsis_gcc.h ****   struct __attribute__((packed)) T_UINT32 { uint32_t v; };
  75:Drivers/CMSIS/Include/cmsis_gcc.h ****   #pragma GCC diagnostic pop
  76:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __UNALIGNED_UINT32(x)                  (((struct T_UINT32 *)(x))->v)
  77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
  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
ARM GAS  /tmp/cc6LDhZP.s 			page 15


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


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


 206:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 207:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void)
 208:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 209:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("cpsid i" : : : "memory");
 210:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 211:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 212:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 213:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 214:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Control Register
 215:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the content of the Control Register.
 216:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               Control Register value
 217:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 218:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_CONTROL(void)
 219:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 220:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 221:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 222:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, control" : "=r" (result) );
 223:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 224:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 225:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 226:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 227:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 228:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 229:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Control Register (non-secure)
 230:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the content of the non-secure Control Register when in secure mode.
 231:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               non-secure Control Register value
 232:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void)
 234:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 235:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 236:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 237:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, control_ns" : "=r" (result) );
 238:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 239:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 240:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 241:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 242:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 243:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 244:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Set Control Register
 245:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Writes the given value to the Control Register.
 246:Drivers/CMSIS/Include/cmsis_gcc.h ****   \param [in]    control  Control Register value to set
 247:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 248:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control)
 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");
ARM GAS  /tmp/cc6LDhZP.s 			page 18


 263:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 264:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 265:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 266:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 267:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 268:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get IPSR Register
 269:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the content of the IPSR Register.
 270:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               IPSR Register value
 271:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 272:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_IPSR(void)
 273:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 274:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 275:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 276:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, ipsr" : "=r" (result) );
 277:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 278:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 279:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 280:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 281:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 282:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get APSR Register
 283:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the content of the APSR Register.
 284:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               APSR Register value
 285:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 286:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void)
 287:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 288:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 289:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 290:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, apsr" : "=r" (result) );
 291:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 292:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 293:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 294:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 295:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 296:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get xPSR Register
 297:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the content of the xPSR Register.
 298:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               xPSR Register value
 299:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 300:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void)
 301:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 302:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 303:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 304:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, xpsr" : "=r" (result) );
 305:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 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);
ARM GAS  /tmp/cc6LDhZP.s 			page 19


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


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


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


 491:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask)
 492:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 493:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory");
 494:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 495:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 496:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 497:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 498:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__      ) && (__ARM_ARCH_7M__      == 1)) || \
 499:Drivers/CMSIS/Include/cmsis_gcc.h ****      (defined (__ARM_ARCH_7EM__     ) && (__ARM_ARCH_7EM__     == 1)) || \
 500:Drivers/CMSIS/Include/cmsis_gcc.h ****      (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))    )
 501:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 502:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Enable FIQ
 503:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Enables FIQ interrupts by clearing the F-bit in the CPSR.
 504:Drivers/CMSIS/Include/cmsis_gcc.h ****            Can only be executed in Privileged modes.
 505:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 506:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_fault_irq(void)
 507:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 508:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("cpsie f" : : : "memory");
 509:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 510:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 511:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 512:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 513:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Disable FIQ
 514:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Disables FIQ interrupts by setting the F-bit in the CPSR.
 515:Drivers/CMSIS/Include/cmsis_gcc.h ****            Can only be executed in Privileged modes.
 516:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 517:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_fault_irq(void)
 518:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 519:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("cpsid f" : : : "memory");
 520:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 521:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 522:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 523:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 524:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Get Base Priority
 525:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Returns the current value of the Base Priority register.
 526:Drivers/CMSIS/Include/cmsis_gcc.h ****   \return               Base Priority register value
 527:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 528:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void)
 529:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 530:Drivers/CMSIS/Include/cmsis_gcc.h ****   uint32_t result;
 531:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 532:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, basepri" : "=r" (result) );
 533:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 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) );
ARM GAS  /tmp/cc6LDhZP.s 			page 23


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


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


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


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


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


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


 890:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r)
 891:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r)
 892:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r)
 893:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
 894:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r)
 895:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r)
 896:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r)
 897:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
 898:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 899:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 900:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   No Operation
 901:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details No Operation does nothing. This instruction can be used for code alignment purposes.
 902:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 903:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP()                             __ASM volatile ("nop")
 904:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 905:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 906:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Wait For Interrupt
 907:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o
 908:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 909:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI()                             __ASM volatile ("wfi")
 910:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 911:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 912:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 913:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Wait For Event
 914:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Wait For Event is a hint instruction that permits the processor to enter
 915:Drivers/CMSIS/Include/cmsis_gcc.h ****            a low-power state until one of a number of events occurs.
 916:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 917:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE()                             __ASM volatile ("wfe")
 918:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 919:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 920:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 921:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Send Event
 922:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Send Event is a hint instruction. It causes an event to be signaled to the CPU.
 923:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 924:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV()                             __ASM volatile ("sev")
 925:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 926:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 927:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
 928:Drivers/CMSIS/Include/cmsis_gcc.h ****   \brief   Instruction Synchronization Barrier
 929:Drivers/CMSIS/Include/cmsis_gcc.h ****   \details Instruction Synchronization Barrier flushes the pipeline in the processor,
 930:Drivers/CMSIS/Include/cmsis_gcc.h ****            so that all instructions following the ISB are fetched from cache or memory,
 931:Drivers/CMSIS/Include/cmsis_gcc.h ****            after the instruction has been completed.
 932:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 933:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void)
  51              		.loc 2 933 27 view .LVU6
  52              	.LBB11:
 934:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 935:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("isb 0xF":::"memory");
  53              		.loc 2 935 3 view .LVU7
  54              		.syntax divided
  55              	@ 935 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
  56 000e BFF36F8F 		isb 0xF
  57              	@ 0 "" 2
  58              		.thumb
  59              		.syntax unified
  60              	.LBE11:
  61              	.LBE10:
ARM GAS  /tmp/cc6LDhZP.s 			page 30


 659:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 660:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Program second word */
 661:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   *(uint32_t *)(Address + 4U) = (uint32_t)(Data >> 32U);
  62              		.loc 1 661 3 view .LVU8
  63              		.loc 1 661 31 is_stmt 0 view .LVU9
  64 0012 4360     		str	r3, [r0, #4]
 662:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
  65              		.loc 1 662 1 view .LVU10
  66              		@ sp needed
  67 0014 30BD     		pop	{r4, r5, pc}
  68              	.L3:
  69 0016 C046     		.align	2
  70              	.L2:
  71 0018 00200240 		.word	1073881088
  72              		.cfi_endproc
  73              	.LFE309:
  75              		.section	.RamFunc,"ax",%progbits
  76              		.align	1
  77              		.syntax unified
  78              		.code	16
  79              		.thumb_func
  80              		.fpu softvfp
  82              	FLASH_Program_Fast:
  83              	.LVL1:
  84              	.LFB310:
 663:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 664:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** /**
 665:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @brief  Fast program a 32 row double-word (64-bit) at a specified address.
 666:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @param  Address Specifies the address to be programmed.
 667:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @param  DataAddress Specifies the address where the data are stored.
 668:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   * @retval None
 669:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   */
 670:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** static __RAM_FUNC void FLASH_Program_Fast(uint32_t Address, uint32_t DataAddress)
 671:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** {
  85              		.loc 1 671 1 is_stmt 1 view -0
  86              		.cfi_startproc
  87              		@ args = 0, pretend = 0, frame = 0
  88              		@ frame_needed = 0, uses_anonymous_args = 0
  89              		.loc 1 671 1 is_stmt 0 view .LVU12
  90 0000 10B5     		push	{r4, lr}
  91              	.LCFI1:
  92              		.cfi_def_cfa_offset 8
  93              		.cfi_offset 4, -8
  94              		.cfi_offset 14, -4
 672:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   uint8_t index = 0;
  95              		.loc 1 672 3 is_stmt 1 view .LVU13
  96              	.LVL2:
 673:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   uint32_t dest = Address;
  97              		.loc 1 673 3 view .LVU14
 674:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   uint32_t src = DataAddress;
  98              		.loc 1 674 3 view .LVU15
 675:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   uint32_t primask_bit;
  99              		.loc 1 675 3 view .LVU16
 676:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 677:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Set FSTPG bit */
 678:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   SET_BIT(FLASH->CR, FLASH_CR_FSTPG);
 100              		.loc 1 678 3 view .LVU17
ARM GAS  /tmp/cc6LDhZP.s 			page 31


 101 0002 0C4A     		ldr	r2, .L8
 102 0004 5469     		ldr	r4, [r2, #20]
 103 0006 8023     		movs	r3, #128
 104 0008 DB02     		lsls	r3, r3, #11
 105 000a 2343     		orrs	r3, r4
 106 000c 5361     		str	r3, [r2, #20]
 679:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 680:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Enter critical section: row programming should not be longer than 7 ms */
 681:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   primask_bit = __get_PRIMASK();
 107              		.loc 1 681 3 view .LVU18
 108              	.LBB12:
 109              	.LBI12:
 449:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 110              		.loc 2 449 31 view .LVU19
 111              	.LBB13:
 451:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 112              		.loc 2 451 3 view .LVU20
 453:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 113              		.loc 2 453 3 view .LVU21
 114              		.syntax divided
 115              	@ 453 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
 116 000e EFF3108C 		MRS ip, primask
 117              	@ 0 "" 2
 118              	.LVL3:
 454:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 119              		.loc 2 454 3 view .LVU22
 454:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 120              		.loc 2 454 3 is_stmt 0 view .LVU23
 121              		.thumb
 122              		.syntax unified
 123              	.LBE13:
 124              	.LBE12:
 682:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   __disable_irq();
 125              		.loc 1 682 3 is_stmt 1 view .LVU24
 126              	.LBB14:
 127              	.LBI14:
 207:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 128              		.loc 2 207 27 view .LVU25
 129              	.LBB15:
 209:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 130              		.loc 2 209 3 view .LVU26
 131              		.syntax divided
 132              	@ 209 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
 133 0012 72B6     		cpsid i
 134              	@ 0 "" 2
 135              		.thumb
 136              		.syntax unified
 137              	.LBE15:
 138              	.LBE14:
 672:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   uint32_t dest = Address;
 139              		.loc 1 672 11 is_stmt 0 view .LVU27
 140 0014 0023     		movs	r3, #0
 141              	.LBB17:
 142              	.LBB16:
 210:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 143              		.loc 2 210 1 view .LVU28
 144 0016 03E0     		b	.L5
ARM GAS  /tmp/cc6LDhZP.s 			page 32


 145              	.LVL4:
 146              	.L6:
 210:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 147              		.loc 2 210 1 view .LVU29
 148              	.LBE16:
 149              	.LBE17:
 683:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 684:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Fast Program : 64 words */
 685:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   while (index < 64U)
 686:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 687:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     *(uint32_t *)dest = *(uint32_t *)src;
 150              		.loc 1 687 5 is_stmt 1 view .LVU30
 151              		.loc 1 687 25 is_stmt 0 view .LVU31
 152 0018 04C9     		ldmia	r1!, {r2}
 153              	.LVL5:
 154              		.loc 1 687 23 view .LVU32
 155 001a 04C0     		stmia	r0!, {r2}
 156              	.LVL6:
 688:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     src += 4U;
 157              		.loc 1 688 5 is_stmt 1 view .LVU33
 689:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     dest += 4U;
 158              		.loc 1 689 5 view .LVU34
 690:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     index++;
 159              		.loc 1 690 5 view .LVU35
 160              		.loc 1 690 10 is_stmt 0 view .LVU36
 161 001c 0133     		adds	r3, r3, #1
 162              	.LVL7:
 163              		.loc 1 690 10 view .LVU37
 164 001e DBB2     		uxtb	r3, r3
 165              	.LVL8:
 166              	.L5:
 685:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 167              		.loc 1 685 9 is_stmt 1 view .LVU38
 168 0020 3F2B     		cmp	r3, #63
 169 0022 F9D9     		bls	.L6
 170              	.LVL9:
 171              	.L7:
 691:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 692:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 693:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* wait for BSY1 in order to be sure that flash operation is ended befoire
 694:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****      allowing prefetch in flash. Timeout does not return status, as it will
 695:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****      be anyway done later */
 696:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 697:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** #if defined(FLASH_DBANK_SUPPORT)
 698:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   while ((FLASH->SR & (FLASH_SR_BSY1 | FLASH_SR_BSY2)) != 0x00U)
 699:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** #else
 700:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   while ((FLASH->SR & FLASH_SR_BSY1) != 0x00U)
 701:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** #endif /* FLASH_DBANK_SUPPORT */
 702:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 703:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 172              		.loc 1 703 3 discriminator 1 view .LVU39
 700:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** #endif /* FLASH_DBANK_SUPPORT */
 173              		.loc 1 700 9 discriminator 1 view .LVU40
 700:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** #endif /* FLASH_DBANK_SUPPORT */
 174              		.loc 1 700 16 is_stmt 0 discriminator 1 view .LVU41
 175 0024 034B     		ldr	r3, .L8
 176 0026 1B69     		ldr	r3, [r3, #16]
ARM GAS  /tmp/cc6LDhZP.s 			page 33


 700:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** #endif /* FLASH_DBANK_SUPPORT */
 177              		.loc 1 700 9 discriminator 1 view .LVU42
 178 0028 DB03     		lsls	r3, r3, #15
 179 002a FBD4     		bmi	.L7
 704:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 705:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Exit critical section: restore previous priority mask */
 706:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   __set_PRIMASK(primask_bit);
 180              		.loc 1 706 3 is_stmt 1 view .LVU43
 181              	.LVL10:
 182              	.LBB18:
 183              	.LBI18:
 479:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 184              		.loc 2 479 27 view .LVU44
 185              	.LBB19:
 481:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 186              		.loc 2 481 3 view .LVU45
 187              		.syntax divided
 188              	@ 481 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
 189 002c 8CF31088 		MSR primask, ip
 190              	@ 0 "" 2
 191              	.LVL11:
 481:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 192              		.loc 2 481 3 is_stmt 0 view .LVU46
 193              		.thumb
 194              		.syntax unified
 195              	.LBE19:
 196              	.LBE18:
 707:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
 197              		.loc 1 707 1 view .LVU47
 198              		@ sp needed
 199 0030 10BD     		pop	{r4, pc}
 200              	.L9:
 201 0032 C046     		.align	2
 202              	.L8:
 203 0034 00200240 		.word	1073881088
 204              		.cfi_endproc
 205              	.LFE310:
 207              		.section	.text.HAL_FLASH_EndOfOperationCallback,"ax",%progbits
 208              		.align	1
 209              		.weak	HAL_FLASH_EndOfOperationCallback
 210              		.syntax unified
 211              		.code	16
 212              		.thumb_func
 213              		.fpu softvfp
 215              	HAL_FLASH_EndOfOperationCallback:
 216              	.LVL12:
 217              	.LFB300:
 385:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Prevent unused argument(s) compilation warning */
 218              		.loc 1 385 1 is_stmt 1 view -0
 219              		.cfi_startproc
 220              		@ args = 0, pretend = 0, frame = 0
 221              		@ frame_needed = 0, uses_anonymous_args = 0
 222              		@ link register save eliminated.
 387:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 223              		.loc 1 387 3 view .LVU49
 392:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 224              		.loc 1 392 1 is_stmt 0 view .LVU50
ARM GAS  /tmp/cc6LDhZP.s 			page 34


 225              		@ sp needed
 226 0000 7047     		bx	lr
 227              		.cfi_endproc
 228              	.LFE300:
 230              		.section	.text.HAL_FLASH_OperationErrorCallback,"ax",%progbits
 231              		.align	1
 232              		.weak	HAL_FLASH_OperationErrorCallback
 233              		.syntax unified
 234              		.code	16
 235              		.thumb_func
 236              		.fpu softvfp
 238              	HAL_FLASH_OperationErrorCallback:
 239              	.LVL13:
 240              	.LFB301:
 403:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Prevent unused argument(s) compilation warning */
 241              		.loc 1 403 1 is_stmt 1 view -0
 242              		.cfi_startproc
 243              		@ args = 0, pretend = 0, frame = 0
 244              		@ frame_needed = 0, uses_anonymous_args = 0
 245              		@ link register save eliminated.
 405:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 246              		.loc 1 405 3 view .LVU52
 410:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 247              		.loc 1 410 1 is_stmt 0 view .LVU53
 248              		@ sp needed
 249 0000 7047     		bx	lr
 250              		.cfi_endproc
 251              	.LFE301:
 253              		.section	.text.HAL_FLASH_IRQHandler,"ax",%progbits
 254              		.align	1
 255              		.global	HAL_FLASH_IRQHandler
 256              		.syntax unified
 257              		.code	16
 258              		.thumb_func
 259              		.fpu softvfp
 261              	HAL_FLASH_IRQHandler:
 262              	.LFB299:
 285:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   uint32_t param;
 263              		.loc 1 285 1 is_stmt 1 view -0
 264              		.cfi_startproc
 265              		@ args = 0, pretend = 0, frame = 0
 266              		@ frame_needed = 0, uses_anonymous_args = 0
 267 0000 10B5     		push	{r4, lr}
 268              	.LCFI2:
 269              		.cfi_def_cfa_offset 8
 270              		.cfi_offset 4, -8
 271              		.cfi_offset 14, -4
 286:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   uint32_t error;
 272              		.loc 1 286 3 view .LVU55
 287:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 273              		.loc 1 287 3 view .LVU56
 290:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 274              		.loc 1 290 3 view .LVU57
 290:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 275              		.loc 1 290 17 is_stmt 0 view .LVU58
 276 0002 2B4B     		ldr	r3, .L25
 277 0004 1B69     		ldr	r3, [r3, #16]
ARM GAS  /tmp/cc6LDhZP.s 			page 35


 290:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 278              		.loc 1 290 9 view .LVU59
 279 0006 2B4A     		ldr	r2, .L25+4
 280 0008 1340     		ands	r3, r2
 281              	.LVL14:
 294:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 282              		.loc 1 294 3 is_stmt 1 view .LVU60
 294:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 283              		.loc 1 294 14 is_stmt 0 view .LVU61
 284 000a 2B4A     		ldr	r2, .L25+8
 285 000c 9268     		ldr	r2, [r2, #8]
 294:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 286              		.loc 1 294 6 view .LVU62
 287 000e 5107     		lsls	r1, r2, #29
 288 0010 21D5     		bpl	.L13
 297:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 289              		.loc 1 297 5 is_stmt 1 view .LVU63
 297:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 290              		.loc 1 297 11 is_stmt 0 view .LVU64
 291 0012 294A     		ldr	r2, .L25+8
 292 0014 1469     		ldr	r4, [r2, #16]
 293              	.LVL15:
 294              	.L14:
 317:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 295              		.loc 1 317 3 is_stmt 1 view .LVU65
 317:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 296              		.loc 1 317 6 is_stmt 0 view .LVU66
 297 0016 002B     		cmp	r3, #0
 298 0018 2AD1     		bne	.L22
 299              	.LVL16:
 300              	.L16:
 333:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 301              		.loc 1 333 3 is_stmt 1 view .LVU67
 333:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 302              		.loc 1 333 13 is_stmt 0 view .LVU68
 303 001a 254B     		ldr	r3, .L25
 304 001c 1B69     		ldr	r3, [r3, #16]
 333:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 305              		.loc 1 333 6 view .LVU69
 306 001e DB07     		lsls	r3, r3, #31
 307 0020 0CD5     		bpl	.L17
 336:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 308              		.loc 1 336 5 is_stmt 1 view .LVU70
 336:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 309              		.loc 1 336 15 is_stmt 0 view .LVU71
 310 0022 234B     		ldr	r3, .L25
 311 0024 0122     		movs	r2, #1
 312 0026 1A61     		str	r2, [r3, #16]
 338:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 313              		.loc 1 338 5 is_stmt 1 view .LVU72
 338:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 314              		.loc 1 338 15 is_stmt 0 view .LVU73
 315 0028 234B     		ldr	r3, .L25+8
 316 002a 9B68     		ldr	r3, [r3, #8]
 338:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 317              		.loc 1 338 8 view .LVU74
 318 002c 022B     		cmp	r3, #2
ARM GAS  /tmp/cc6LDhZP.s 			page 36


 319 002e 2CD0     		beq	.L23
 359:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 320              		.loc 1 359 7 is_stmt 1 view .LVU75
 359:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 321              		.loc 1 359 31 is_stmt 0 view .LVU76
 322 0030 214B     		ldr	r3, .L25+8
 323 0032 0022     		movs	r2, #0
 324 0034 9A60     		str	r2, [r3, #8]
 325              	.L20:
 363:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 326              		.loc 1 363 5 is_stmt 1 view .LVU77
 327 0036 2000     		movs	r0, r4
 328 0038 FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 329              	.LVL17:
 330              	.L17:
 366:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 331              		.loc 1 366 3 view .LVU78
 366:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 332              		.loc 1 366 13 is_stmt 0 view .LVU79
 333 003c 1E4B     		ldr	r3, .L25+8
 334 003e 9B68     		ldr	r3, [r3, #8]
 366:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 335              		.loc 1 366 6 view .LVU80
 336 0040 002B     		cmp	r3, #0
 337 0042 07D1     		bne	.L12
 369:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 338              		.loc 1 369 5 is_stmt 1 view .LVU81
 369:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 339              		.loc 1 369 15 is_stmt 0 view .LVU82
 340 0044 1A4A     		ldr	r2, .L25
 341 0046 5369     		ldr	r3, [r2, #20]
 342 0048 1C49     		ldr	r1, .L25+12
 343 004a 0B40     		ands	r3, r1
 344 004c 5361     		str	r3, [r2, #20]
 372:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 345              		.loc 1 372 5 is_stmt 1 view .LVU83
 372:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 346              		.loc 1 372 5 view .LVU84
 347 004e 1A4B     		ldr	r3, .L25+8
 348 0050 0022     		movs	r2, #0
 349 0052 1A70     		strb	r2, [r3]
 372:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 350              		.loc 1 372 5 view .LVU85
 351              	.L12:
 374:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 352              		.loc 1 374 1 is_stmt 0 view .LVU86
 353              		@ sp needed
 354              	.LVL18:
 374:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 355              		.loc 1 374 1 view .LVU87
 356 0054 10BD     		pop	{r4, pc}
 357              	.LVL19:
 358              	.L13:
 302:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 359              		.loc 1 302 5 is_stmt 1 view .LVU88
 360 0056 1648     		ldr	r0, .L25
 361 0058 4169     		ldr	r1, [r0, #20]
ARM GAS  /tmp/cc6LDhZP.s 			page 37


 362 005a 9143     		bics	r1, r2
 363 005c 4161     		str	r1, [r0, #20]
 304:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 364              		.loc 1 304 5 view .LVU89
 304:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 365              		.loc 1 304 34 is_stmt 0 view .LVU90
 366 005e 1849     		ldr	r1, .L25+16
 304:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 367              		.loc 1 304 8 view .LVU91
 368 0060 0A42     		tst	r2, r1
 369 0062 02D0     		beq	.L15
 307:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 370              		.loc 1 307 7 is_stmt 1 view .LVU92
 307:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 371              		.loc 1 307 13 is_stmt 0 view .LVU93
 372 0064 144A     		ldr	r2, .L25+8
 373 0066 D468     		ldr	r4, [r2, #12]
 374              	.LVL20:
 307:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 375              		.loc 1 307 13 view .LVU94
 376 0068 D5E7     		b	.L14
 377              	.LVL21:
 378              	.L15:
 312:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 379              		.loc 1 312 7 is_stmt 1 view .LVU95
 312:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 380              		.loc 1 312 13 is_stmt 0 view .LVU96
 381 006a 134A     		ldr	r2, .L25+8
 382 006c 5469     		ldr	r4, [r2, #20]
 383              	.LVL22:
 312:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 384              		.loc 1 312 13 view .LVU97
 385 006e D2E7     		b	.L14
 386              	.L22:
 320:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 387              		.loc 1 320 5 is_stmt 1 view .LVU98
 320:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 388              		.loc 1 320 22 is_stmt 0 view .LVU99
 389 0070 114A     		ldr	r2, .L25+8
 390 0072 5168     		ldr	r1, [r2, #4]
 391 0074 0B43     		orrs	r3, r1
 392              	.LVL23:
 320:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 393              		.loc 1 320 22 view .LVU100
 394 0076 5360     		str	r3, [r2, #4]
 323:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 395              		.loc 1 323 5 is_stmt 1 view .LVU101
 323:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 396              		.loc 1 323 15 is_stmt 0 view .LVU102
 397 0078 0D4B     		ldr	r3, .L25
 398 007a 0E49     		ldr	r1, .L25+4
 399 007c 1961     		str	r1, [r3, #16]
 326:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 400              		.loc 1 326 5 is_stmt 1 view .LVU103
 326:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 401              		.loc 1 326 29 is_stmt 0 view .LVU104
 402 007e 0023     		movs	r3, #0
ARM GAS  /tmp/cc6LDhZP.s 			page 38


 403 0080 9360     		str	r3, [r2, #8]
 329:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 404              		.loc 1 329 5 is_stmt 1 view .LVU105
 405 0082 2000     		movs	r0, r4
 406 0084 FFF7FEFF 		bl	HAL_FLASH_OperationErrorCallback
 407              	.LVL24:
 408 0088 C7E7     		b	.L16
 409              	.L23:
 341:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 410              		.loc 1 341 7 view .LVU106
 341:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 411              		.loc 1 341 13 is_stmt 0 view .LVU107
 412 008a 0B4A     		ldr	r2, .L25+8
 341:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 413              		.loc 1 341 28 view .LVU108
 414 008c 9369     		ldr	r3, [r2, #24]
 415 008e 013B     		subs	r3, r3, #1
 416 0090 9361     		str	r3, [r2, #24]
 344:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       {
 417              		.loc 1 344 7 is_stmt 1 view .LVU109
 344:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       {
 418              		.loc 1 344 10 is_stmt 0 view .LVU110
 419 0092 002B     		cmp	r3, #0
 420 0094 03D1     		bne	.L24
 353:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       }
 421              		.loc 1 353 9 is_stmt 1 view .LVU111
 353:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       }
 422              		.loc 1 353 33 is_stmt 0 view .LVU112
 423 0096 084B     		ldr	r3, .L25+8
 424 0098 0022     		movs	r2, #0
 425 009a 9A60     		str	r2, [r3, #8]
 426 009c CBE7     		b	.L20
 427              	.L24:
 347:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****         FLASH_PageErase(pFlash.Banks, pFlash.Page);
 428              		.loc 1 347 9 is_stmt 1 view .LVU113
 347:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****         FLASH_PageErase(pFlash.Banks, pFlash.Page);
 429              		.loc 1 347 15 is_stmt 0 view .LVU114
 430 009e 1300     		movs	r3, r2
 347:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****         FLASH_PageErase(pFlash.Banks, pFlash.Page);
 431              		.loc 1 347 20 view .LVU115
 432 00a0 5269     		ldr	r2, [r2, #20]
 433 00a2 511C     		adds	r1, r2, #1
 434 00a4 5961     		str	r1, [r3, #20]
 348:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****       }
 435              		.loc 1 348 9 is_stmt 1 view .LVU116
 436 00a6 1869     		ldr	r0, [r3, #16]
 437 00a8 FFF7FEFF 		bl	FLASH_PageErase
 438              	.LVL25:
 439 00ac C3E7     		b	.L20
 440              	.L26:
 441 00ae C046     		.align	2
 442              	.L25:
 443 00b0 00200240 		.word	1073881088
 444 00b4 FAC30000 		.word	50170
 445 00b8 00000000 		.word	.LANCHOR0
 446 00bc FFFFFFFC 		.word	-50331649
 447 00c0 01000400 		.word	262145
ARM GAS  /tmp/cc6LDhZP.s 			page 39


 448              		.cfi_endproc
 449              	.LFE299:
 451              		.section	.text.HAL_FLASH_Unlock,"ax",%progbits
 452              		.align	1
 453              		.global	HAL_FLASH_Unlock
 454              		.syntax unified
 455              		.code	16
 456              		.thumb_func
 457              		.fpu softvfp
 459              	HAL_FLASH_Unlock:
 460              	.LFB302:
 436:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_OK;
 461              		.loc 1 436 1 view -0
 462              		.cfi_startproc
 463              		@ args = 0, pretend = 0, frame = 0
 464              		@ frame_needed = 0, uses_anonymous_args = 0
 465              		@ link register save eliminated.
 437:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 466              		.loc 1 437 3 view .LVU118
 467              	.LVL26:
 439:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 468              		.loc 1 439 3 view .LVU119
 439:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 469              		.loc 1 439 7 is_stmt 0 view .LVU120
 470 0000 084B     		ldr	r3, .L32
 471 0002 5B69     		ldr	r3, [r3, #20]
 439:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 472              		.loc 1 439 6 view .LVU121
 473 0004 002B     		cmp	r3, #0
 474 0006 01DB     		blt	.L31
 437:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 475              		.loc 1 437 21 view .LVU122
 476 0008 0020     		movs	r0, #0
 477              	.L28:
 478              	.LVL27:
 452:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
 479              		.loc 1 452 3 is_stmt 1 view .LVU123
 453:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 480              		.loc 1 453 1 is_stmt 0 view .LVU124
 481              		@ sp needed
 482 000a 7047     		bx	lr
 483              	.LVL28:
 484              	.L31:
 442:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     WRITE_REG(FLASH->KEYR, FLASH_KEY2);
 485              		.loc 1 442 5 is_stmt 1 view .LVU125
 486 000c 054B     		ldr	r3, .L32
 487 000e 064A     		ldr	r2, .L32+4
 488 0010 9A60     		str	r2, [r3, #8]
 443:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 489              		.loc 1 443 5 view .LVU126
 490 0012 064A     		ldr	r2, .L32+8
 491 0014 9A60     		str	r2, [r3, #8]
 446:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 492              		.loc 1 446 5 view .LVU127
 446:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 493              		.loc 1 446 9 is_stmt 0 view .LVU128
 494 0016 5B69     		ldr	r3, [r3, #20]
ARM GAS  /tmp/cc6LDhZP.s 			page 40


 446:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 495              		.loc 1 446 8 view .LVU129
 496 0018 002B     		cmp	r3, #0
 497 001a 01DB     		blt	.L30
 437:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 498              		.loc 1 437 21 view .LVU130
 499 001c 0020     		movs	r0, #0
 500 001e F4E7     		b	.L28
 501              	.L30:
 448:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 502              		.loc 1 448 14 view .LVU131
 503 0020 0120     		movs	r0, #1
 504 0022 F2E7     		b	.L28
 505              	.L33:
 506              		.align	2
 507              	.L32:
 508 0024 00200240 		.word	1073881088
 509 0028 23016745 		.word	1164378403
 510 002c AB89EFCD 		.word	-839939669
 511              		.cfi_endproc
 512              	.LFE302:
 514              		.section	.text.HAL_FLASH_Lock,"ax",%progbits
 515              		.align	1
 516              		.global	HAL_FLASH_Lock
 517              		.syntax unified
 518              		.code	16
 519              		.thumb_func
 520              		.fpu softvfp
 522              	HAL_FLASH_Lock:
 523              	.LFB303:
 460:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_ERROR;
 524              		.loc 1 460 1 is_stmt 1 view -0
 525              		.cfi_startproc
 526              		@ args = 0, pretend = 0, frame = 0
 527              		@ frame_needed = 0, uses_anonymous_args = 0
 528              		@ link register save eliminated.
 461:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 529              		.loc 1 461 3 view .LVU133
 530              	.LVL29:
 464:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 531              		.loc 1 464 3 view .LVU134
 532 0000 064B     		ldr	r3, .L37
 533 0002 5969     		ldr	r1, [r3, #20]
 534 0004 8022     		movs	r2, #128
 535 0006 1206     		lsls	r2, r2, #24
 536 0008 0A43     		orrs	r2, r1
 537 000a 5A61     		str	r2, [r3, #20]
 467:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 538              		.loc 1 467 3 view .LVU135
 467:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 539              		.loc 1 467 7 is_stmt 0 view .LVU136
 540 000c 5B69     		ldr	r3, [r3, #20]
 467:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 541              		.loc 1 467 6 view .LVU137
 542 000e 002B     		cmp	r3, #0
 543 0010 01DB     		blt	.L36
 461:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
ARM GAS  /tmp/cc6LDhZP.s 			page 41


 544              		.loc 1 461 21 view .LVU138
 545 0012 0120     		movs	r0, #1
 546              	.L35:
 547              	.LVL30:
 472:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
 548              		.loc 1 472 3 is_stmt 1 view .LVU139
 473:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 549              		.loc 1 473 1 is_stmt 0 view .LVU140
 550              		@ sp needed
 551 0014 7047     		bx	lr
 552              	.LVL31:
 553              	.L36:
 469:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 554              		.loc 1 469 12 view .LVU141
 555 0016 0020     		movs	r0, #0
 556 0018 FCE7     		b	.L35
 557              	.L38:
 558 001a C046     		.align	2
 559              	.L37:
 560 001c 00200240 		.word	1073881088
 561              		.cfi_endproc
 562              	.LFE303:
 564              		.section	.text.HAL_FLASH_OB_Unlock,"ax",%progbits
 565              		.align	1
 566              		.global	HAL_FLASH_OB_Unlock
 567              		.syntax unified
 568              		.code	16
 569              		.thumb_func
 570              		.fpu softvfp
 572              	HAL_FLASH_OB_Unlock:
 573              	.LFB304:
 480:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_ERROR;
 574              		.loc 1 480 1 is_stmt 1 view -0
 575              		.cfi_startproc
 576              		@ args = 0, pretend = 0, frame = 0
 577              		@ frame_needed = 0, uses_anonymous_args = 0
 578              		@ link register save eliminated.
 481:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 579              		.loc 1 481 3 view .LVU143
 580              	.LVL32:
 483:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 581              		.loc 1 483 3 view .LVU144
 483:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 582              		.loc 1 483 7 is_stmt 0 view .LVU145
 583 0000 084B     		ldr	r3, .L43
 584 0002 5B69     		ldr	r3, [r3, #20]
 483:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 585              		.loc 1 483 6 view .LVU146
 586 0004 5B00     		lsls	r3, r3, #1
 587 0006 09D5     		bpl	.L41
 486:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY2);
 588              		.loc 1 486 5 is_stmt 1 view .LVU147
 589 0008 064B     		ldr	r3, .L43
 590 000a 074A     		ldr	r2, .L43+4
 591 000c DA60     		str	r2, [r3, #12]
 487:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 592              		.loc 1 487 5 view .LVU148
ARM GAS  /tmp/cc6LDhZP.s 			page 42


 593 000e 074A     		ldr	r2, .L43+8
 594 0010 DA60     		str	r2, [r3, #12]
 490:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 595              		.loc 1 490 5 view .LVU149
 490:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 596              		.loc 1 490 9 is_stmt 0 view .LVU150
 597 0012 5B69     		ldr	r3, [r3, #20]
 490:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 598              		.loc 1 490 8 view .LVU151
 599 0014 5B00     		lsls	r3, r3, #1
 600 0016 03D5     		bpl	.L42
 481:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 601              		.loc 1 481 21 view .LVU152
 602 0018 0120     		movs	r0, #1
 603 001a 00E0     		b	.L40
 604              	.L41:
 605 001c 0120     		movs	r0, #1
 606              	.L40:
 607              	.LVL33:
 496:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
 608              		.loc 1 496 3 is_stmt 1 view .LVU153
 497:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 609              		.loc 1 497 1 is_stmt 0 view .LVU154
 610              		@ sp needed
 611 001e 7047     		bx	lr
 612              	.LVL34:
 613              	.L42:
 492:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 614              		.loc 1 492 14 view .LVU155
 615 0020 0020     		movs	r0, #0
 616 0022 FCE7     		b	.L40
 617              	.L44:
 618              		.align	2
 619              	.L43:
 620 0024 00200240 		.word	1073881088
 621 0028 3B2A1908 		.word	135866939
 622 002c 7F6E5D4C 		.word	1281191551
 623              		.cfi_endproc
 624              	.LFE304:
 626              		.section	.text.HAL_FLASH_OB_Lock,"ax",%progbits
 627              		.align	1
 628              		.global	HAL_FLASH_OB_Lock
 629              		.syntax unified
 630              		.code	16
 631              		.thumb_func
 632              		.fpu softvfp
 634              	HAL_FLASH_OB_Lock:
 635              	.LFB305:
 504:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_ERROR;
 636              		.loc 1 504 1 is_stmt 1 view -0
 637              		.cfi_startproc
 638              		@ args = 0, pretend = 0, frame = 0
 639              		@ frame_needed = 0, uses_anonymous_args = 0
 640              		@ link register save eliminated.
 505:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 641              		.loc 1 505 3 view .LVU157
 642              	.LVL35:
ARM GAS  /tmp/cc6LDhZP.s 			page 43


 508:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 643              		.loc 1 508 3 view .LVU158
 644 0000 064B     		ldr	r3, .L48
 645 0002 5A69     		ldr	r2, [r3, #20]
 646 0004 8021     		movs	r1, #128
 647 0006 C905     		lsls	r1, r1, #23
 648 0008 0A43     		orrs	r2, r1
 649 000a 5A61     		str	r2, [r3, #20]
 511:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 650              		.loc 1 511 3 view .LVU159
 511:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 651              		.loc 1 511 7 is_stmt 0 view .LVU160
 652 000c 5B69     		ldr	r3, [r3, #20]
 511:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 653              		.loc 1 511 6 view .LVU161
 654 000e 0B42     		tst	r3, r1
 655 0010 01D1     		bne	.L47
 505:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 656              		.loc 1 505 21 view .LVU162
 657 0012 0120     		movs	r0, #1
 658              	.L46:
 659              	.LVL36:
 516:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
 660              		.loc 1 516 3 is_stmt 1 view .LVU163
 517:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 661              		.loc 1 517 1 is_stmt 0 view .LVU164
 662              		@ sp needed
 663 0014 7047     		bx	lr
 664              	.LVL37:
 665              	.L47:
 513:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 666              		.loc 1 513 12 view .LVU165
 667 0016 0020     		movs	r0, #0
 668 0018 FCE7     		b	.L46
 669              	.L49:
 670 001a C046     		.align	2
 671              	.L48:
 672 001c 00200240 		.word	1073881088
 673              		.cfi_endproc
 674              	.LFE305:
 676              		.section	.text.HAL_FLASH_OB_Launch,"ax",%progbits
 677              		.align	1
 678              		.global	HAL_FLASH_OB_Launch
 679              		.syntax unified
 680              		.code	16
 681              		.thumb_func
 682              		.fpu softvfp
 684              	HAL_FLASH_OB_Launch:
 685              	.LFB306:
 524:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Set the bit to force the option byte reloading */
 686              		.loc 1 524 1 is_stmt 1 view -0
 687              		.cfi_startproc
 688              		@ args = 0, pretend = 0, frame = 0
 689              		@ frame_needed = 0, uses_anonymous_args = 0
 690              		@ link register save eliminated.
 526:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 691              		.loc 1 526 3 view .LVU167
ARM GAS  /tmp/cc6LDhZP.s 			page 44


 692 0000 034A     		ldr	r2, .L51
 693 0002 5169     		ldr	r1, [r2, #20]
 694 0004 8023     		movs	r3, #128
 695 0006 1B05     		lsls	r3, r3, #20
 696 0008 0B43     		orrs	r3, r1
 697 000a 5361     		str	r3, [r2, #20]
 530:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
 698              		.loc 1 530 3 view .LVU168
 531:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 699              		.loc 1 531 1 is_stmt 0 view .LVU169
 700 000c 0120     		movs	r0, #1
 701              		@ sp needed
 702 000e 7047     		bx	lr
 703              	.L52:
 704              		.align	2
 705              	.L51:
 706 0010 00200240 		.word	1073881088
 707              		.cfi_endproc
 708              	.LFE306:
 710              		.section	.text.HAL_FLASH_GetError,"ax",%progbits
 711              		.align	1
 712              		.global	HAL_FLASH_GetError
 713              		.syntax unified
 714              		.code	16
 715              		.thumb_func
 716              		.fpu softvfp
 718              	HAL_FLASH_GetError:
 719              	.LFB307:
 569:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   return pFlash.ErrorCode;
 720              		.loc 1 569 1 is_stmt 1 view -0
 721              		.cfi_startproc
 722              		@ args = 0, pretend = 0, frame = 0
 723              		@ frame_needed = 0, uses_anonymous_args = 0
 724              		@ link register save eliminated.
 570:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
 725              		.loc 1 570 3 view .LVU171
 570:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
 726              		.loc 1 570 16 is_stmt 0 view .LVU172
 727 0000 014B     		ldr	r3, .L54
 728 0002 5868     		ldr	r0, [r3, #4]
 571:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 729              		.loc 1 571 1 view .LVU173
 730              		@ sp needed
 731 0004 7047     		bx	lr
 732              	.L55:
 733 0006 C046     		.align	2
 734              	.L54:
 735 0008 00000000 		.word	.LANCHOR0
 736              		.cfi_endproc
 737              	.LFE307:
 739              		.section	.text.FLASH_WaitForLastOperation,"ax",%progbits
 740              		.align	1
 741              		.global	FLASH_WaitForLastOperation
 742              		.syntax unified
 743              		.code	16
 744              		.thumb_func
 745              		.fpu softvfp
ARM GAS  /tmp/cc6LDhZP.s 			page 45


 747              	FLASH_WaitForLastOperation:
 748              	.LVL38:
 749              	.LFB308:
 593:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   uint32_t error;
 750              		.loc 1 593 1 is_stmt 1 view -0
 751              		.cfi_startproc
 752              		@ args = 0, pretend = 0, frame = 0
 753              		@ frame_needed = 0, uses_anonymous_args = 0
 593:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   uint32_t error;
 754              		.loc 1 593 1 is_stmt 0 view .LVU175
 755 0000 70B5     		push	{r4, r5, r6, lr}
 756              	.LCFI3:
 757              		.cfi_def_cfa_offset 16
 758              		.cfi_offset 4, -16
 759              		.cfi_offset 5, -12
 760              		.cfi_offset 6, -8
 761              		.cfi_offset 14, -4
 762 0002 0500     		movs	r5, r0
 594:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset.
 763              		.loc 1 594 3 is_stmt 1 view .LVU176
 598:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 764              		.loc 1 598 3 view .LVU177
 598:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 765              		.loc 1 598 22 is_stmt 0 view .LVU178
 766 0004 FFF7FEFF 		bl	HAL_GetTick
 767              	.LVL39:
 598:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 768              		.loc 1 598 12 view .LVU179
 769 0008 4419     		adds	r4, r0, r5
 770              	.LVL40:
 604:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** #endif /* FLASH_DBANK_SUPPORT */
 771              		.loc 1 604 3 is_stmt 1 view .LVU180
 607:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 772              		.loc 1 607 3 view .LVU181
 773              	.L57:
 607:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 774              		.loc 1 607 9 view .LVU182
 607:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 775              		.loc 1 607 16 is_stmt 0 view .LVU183
 776 000a 134B     		ldr	r3, .L67
 777 000c 1B69     		ldr	r3, [r3, #16]
 607:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 778              		.loc 1 607 9 view .LVU184
 779 000e DB03     		lsls	r3, r3, #15
 780 0010 05D5     		bpl	.L65
 609:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 781              		.loc 1 609 5 is_stmt 1 view .LVU185
 609:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 782              		.loc 1 609 9 is_stmt 0 view .LVU186
 783 0012 FFF7FEFF 		bl	HAL_GetTick
 784              	.LVL41:
 609:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 785              		.loc 1 609 8 view .LVU187
 786 0016 A042     		cmp	r0, r4
 787 0018 F7D3     		bcc	.L57
 611:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 788              		.loc 1 611 14 view .LVU188
ARM GAS  /tmp/cc6LDhZP.s 			page 46


 789 001a 0320     		movs	r0, #3
 790              	.LVL42:
 791              	.L58:
 640:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 792              		.loc 1 640 1 view .LVU189
 793              		@ sp needed
 794 001c 70BD     		pop	{r4, r5, r6, pc}
 795              	.LVL43:
 796              	.L65:
 616:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 797              		.loc 1 616 3 is_stmt 1 view .LVU190
 616:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 798              		.loc 1 616 17 is_stmt 0 view .LVU191
 799 001e 0E49     		ldr	r1, .L67
 800 0020 0A69     		ldr	r2, [r1, #16]
 616:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 801              		.loc 1 616 9 view .LVU192
 802 0022 0E4B     		ldr	r3, .L67+4
 803 0024 1400     		movs	r4, r2
 804              	.LVL44:
 616:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 805              		.loc 1 616 9 view .LVU193
 806 0026 1C40     		ands	r4, r3
 807              	.LVL45:
 619:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 808              		.loc 1 619 3 is_stmt 1 view .LVU194
 619:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 809              		.loc 1 619 13 is_stmt 0 view .LVU195
 810 0028 0D48     		ldr	r0, .L67+8
 811 002a 0861     		str	r0, [r1, #16]
 621:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 812              		.loc 1 621 3 is_stmt 1 view .LVU196
 621:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 813              		.loc 1 621 6 is_stmt 0 view .LVU197
 814 002c 1A42     		tst	r2, r3
 815 002e 03D0     		beq	.L60
 624:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     return HAL_ERROR;
 816              		.loc 1 624 5 is_stmt 1 view .LVU198
 624:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     return HAL_ERROR;
 817              		.loc 1 624 22 is_stmt 0 view .LVU199
 818 0030 0C4B     		ldr	r3, .L67+12
 819 0032 5C60     		str	r4, [r3, #4]
 625:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 820              		.loc 1 625 5 is_stmt 1 view .LVU200
 625:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 821              		.loc 1 625 12 is_stmt 0 view .LVU201
 822 0034 0120     		movs	r0, #1
 823 0036 F1E7     		b	.L58
 824              	.L60:
 629:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 825              		.loc 1 629 3 is_stmt 1 view .LVU202
 629:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 826              		.loc 1 629 13 is_stmt 0 view .LVU203
 827 0038 FFF7FEFF 		bl	HAL_GetTick
 828              	.LVL46:
 629:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 829              		.loc 1 629 11 view .LVU204
ARM GAS  /tmp/cc6LDhZP.s 			page 47


 830 003c 4519     		adds	r5, r0, r5
 831              	.LVL47:
 631:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 832              		.loc 1 631 3 is_stmt 1 view .LVU205
 833              	.L61:
 631:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 834              		.loc 1 631 9 view .LVU206
 631:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 835              		.loc 1 631 16 is_stmt 0 view .LVU207
 836 003e 064B     		ldr	r3, .L67
 837 0040 1B69     		ldr	r3, [r3, #16]
 631:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 838              		.loc 1 631 9 view .LVU208
 839 0042 5B03     		lsls	r3, r3, #13
 840 0044 05D5     		bpl	.L66
 633:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 841              		.loc 1 633 5 is_stmt 1 view .LVU209
 633:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 842              		.loc 1 633 9 is_stmt 0 view .LVU210
 843 0046 FFF7FEFF 		bl	HAL_GetTick
 844              	.LVL48:
 633:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 845              		.loc 1 633 8 view .LVU211
 846 004a A842     		cmp	r0, r5
 847 004c F7D3     		bcc	.L61
 635:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 848              		.loc 1 635 14 view .LVU212
 849 004e 0320     		movs	r0, #3
 850 0050 E4E7     		b	.L58
 851              	.L66:
 639:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
 852              		.loc 1 639 10 view .LVU213
 853 0052 0020     		movs	r0, #0
 854 0054 E2E7     		b	.L58
 855              	.L68:
 856 0056 C046     		.align	2
 857              	.L67:
 858 0058 00200240 		.word	1073881088
 859 005c FAC30000 		.word	50170
 860 0060 FBC30000 		.word	50171
 861 0064 00000000 		.word	.LANCHOR0
 862              		.cfi_endproc
 863              	.LFE308:
 865              		.section	.text.HAL_FLASH_Program,"ax",%progbits
 866              		.align	1
 867              		.global	HAL_FLASH_Program
 868              		.syntax unified
 869              		.code	16
 870              		.thumb_func
 871              		.fpu softvfp
 873              	HAL_FLASH_Program:
 874              	.LVL49:
 875              	.LFB297:
 167:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   HAL_StatusTypeDef status;
 876              		.loc 1 167 1 is_stmt 1 view -0
 877              		.cfi_startproc
 878              		@ args = 0, pretend = 0, frame = 0
ARM GAS  /tmp/cc6LDhZP.s 			page 48


 879              		@ frame_needed = 0, uses_anonymous_args = 0
 167:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   HAL_StatusTypeDef status;
 880              		.loc 1 167 1 is_stmt 0 view .LVU215
 881 0000 F8B5     		push	{r3, r4, r5, r6, r7, lr}
 882              	.LCFI4:
 883              		.cfi_def_cfa_offset 24
 884              		.cfi_offset 3, -24
 885              		.cfi_offset 4, -20
 886              		.cfi_offset 5, -16
 887              		.cfi_offset 6, -12
 888              		.cfi_offset 7, -8
 889              		.cfi_offset 14, -4
 890 0002 0700     		movs	r7, r0
 891 0004 0C00     		movs	r4, r1
 892 0006 1500     		movs	r5, r2
 893 0008 1E00     		movs	r6, r3
 168:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 894              		.loc 1 168 3 is_stmt 1 view .LVU216
 171:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 895              		.loc 1 171 3 view .LVU217
 174:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 896              		.loc 1 174 3 view .LVU218
 174:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 897              		.loc 1 174 3 view .LVU219
 898 000a 144B     		ldr	r3, .L76
 899 000c 1B78     		ldrb	r3, [r3]
 900 000e 012B     		cmp	r3, #1
 901 0010 22D0     		beq	.L74
 174:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 902              		.loc 1 174 3 discriminator 2 view .LVU220
 903 0012 124B     		ldr	r3, .L76
 904 0014 0122     		movs	r2, #1
 905              	.LVL50:
 174:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 906              		.loc 1 174 3 is_stmt 0 discriminator 2 view .LVU221
 907 0016 1A70     		strb	r2, [r3]
 174:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 908              		.loc 1 174 3 is_stmt 1 discriminator 2 view .LVU222
 177:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 909              		.loc 1 177 3 discriminator 2 view .LVU223
 177:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 910              		.loc 1 177 20 is_stmt 0 discriminator 2 view .LVU224
 911 0018 0022     		movs	r2, #0
 912 001a 5A60     		str	r2, [r3, #4]
 180:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 913              		.loc 1 180 3 is_stmt 1 discriminator 2 view .LVU225
 180:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 914              		.loc 1 180 12 is_stmt 0 discriminator 2 view .LVU226
 915 001c FA20     		movs	r0, #250
 916              	.LVL51:
 180:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 917              		.loc 1 180 12 discriminator 2 view .LVU227
 918 001e 8000     		lsls	r0, r0, #2
 919 0020 FFF7FEFF 		bl	FLASH_WaitForLastOperation
 920              	.LVL52:
 182:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 921              		.loc 1 182 3 is_stmt 1 discriminator 2 view .LVU228
ARM GAS  /tmp/cc6LDhZP.s 			page 49


 182:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 922              		.loc 1 182 6 is_stmt 0 discriminator 2 view .LVU229
 923 0024 0028     		cmp	r0, #0
 924 0026 0DD1     		bne	.L71
 184:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 925              		.loc 1 184 5 is_stmt 1 view .LVU230
 184:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 926              		.loc 1 184 8 is_stmt 0 view .LVU231
 927 0028 012F     		cmp	r7, #1
 928 002a 0FD0     		beq	.L75
 195:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 929              		.loc 1 195 7 is_stmt 1 view .LVU232
 198:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 930              		.loc 1 198 7 view .LVU233
 931 002c 2900     		movs	r1, r5
 932 002e 2000     		movs	r0, r4
 933              	.LVL53:
 198:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 934              		.loc 1 198 7 is_stmt 0 view .LVU234
 935 0030 FFF7FEFF 		bl	FLASH_Program_Fast
 936              	.LVL54:
 937              	.L73:
 202:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 938              		.loc 1 202 5 is_stmt 1 view .LVU235
 202:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 939              		.loc 1 202 14 is_stmt 0 view .LVU236
 940 0034 FA20     		movs	r0, #250
 941 0036 8000     		lsls	r0, r0, #2
 942 0038 FFF7FEFF 		bl	FLASH_WaitForLastOperation
 943              	.LVL55:
 205:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 944              		.loc 1 205 5 is_stmt 1 view .LVU237
 945 003c 084A     		ldr	r2, .L76+4
 946 003e 5369     		ldr	r3, [r2, #20]
 947 0040 BB43     		bics	r3, r7
 948 0042 5361     		str	r3, [r2, #20]
 949              	.LVL56:
 950              	.L71:
 209:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 951              		.loc 1 209 3 view .LVU238
 209:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 952              		.loc 1 209 3 view .LVU239
 953 0044 054B     		ldr	r3, .L76
 954 0046 0022     		movs	r2, #0
 955 0048 1A70     		strb	r2, [r3]
 209:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 956              		.loc 1 209 3 view .LVU240
 212:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** }
 957              		.loc 1 212 3 view .LVU241
 958              	.LVL57:
 959              	.L70:
 213:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 960              		.loc 1 213 1 is_stmt 0 view .LVU242
 961              		@ sp needed
 962              	.LVL58:
 963              	.LVL59:
 213:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
ARM GAS  /tmp/cc6LDhZP.s 			page 50


 964              		.loc 1 213 1 view .LVU243
 965 004a F8BD     		pop	{r3, r4, r5, r6, r7, pc}
 966              	.LVL60:
 967              	.L75:
 187:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 968              		.loc 1 187 7 is_stmt 1 view .LVU244
 190:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 969              		.loc 1 190 7 view .LVU245
 970 004c 2A00     		movs	r2, r5
 971 004e 3300     		movs	r3, r6
 972 0050 2000     		movs	r0, r4
 973              	.LVL61:
 190:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 974              		.loc 1 190 7 is_stmt 0 view .LVU246
 975 0052 FFF7FEFF 		bl	FLASH_Program_DoubleWord
 976              	.LVL62:
 977 0056 EDE7     		b	.L73
 978              	.LVL63:
 979              	.L74:
 174:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 980              		.loc 1 174 3 view .LVU247
 981 0058 0220     		movs	r0, #2
 982              	.LVL64:
 174:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 983              		.loc 1 174 3 view .LVU248
 984 005a F6E7     		b	.L70
 985              	.L77:
 986              		.align	2
 987              	.L76:
 988 005c 00000000 		.word	.LANCHOR0
 989 0060 00200240 		.word	1073881088
 990              		.cfi_endproc
 991              	.LFE297:
 993              		.section	.text.HAL_FLASH_Program_IT,"ax",%progbits
 994              		.align	1
 995              		.global	HAL_FLASH_Program_IT
 996              		.syntax unified
 997              		.code	16
 998              		.thumb_func
 999              		.fpu softvfp
 1001              	HAL_FLASH_Program_IT:
 1002              	.LVL65:
 1003              	.LFB298:
 229:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   HAL_StatusTypeDef status;
 1004              		.loc 1 229 1 is_stmt 1 view -0
 1005              		.cfi_startproc
 1006              		@ args = 0, pretend = 0, frame = 8
 1007              		@ frame_needed = 0, uses_anonymous_args = 0
 229:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   HAL_StatusTypeDef status;
 1008              		.loc 1 229 1 is_stmt 0 view .LVU250
 1009 0000 F0B5     		push	{r4, r5, r6, r7, lr}
 1010              	.LCFI5:
 1011              		.cfi_def_cfa_offset 20
 1012              		.cfi_offset 4, -20
 1013              		.cfi_offset 5, -16
 1014              		.cfi_offset 6, -12
 1015              		.cfi_offset 7, -8
ARM GAS  /tmp/cc6LDhZP.s 			page 51


 1016              		.cfi_offset 14, -4
 1017 0002 83B0     		sub	sp, sp, #12
 1018              	.LCFI6:
 1019              		.cfi_def_cfa_offset 32
 1020 0004 0500     		movs	r5, r0
 1021 0006 0F00     		movs	r7, r1
 1022 0008 1600     		movs	r6, r2
 1023 000a 0193     		str	r3, [sp, #4]
 230:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1024              		.loc 1 230 3 is_stmt 1 view .LVU251
 233:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1025              		.loc 1 233 3 view .LVU252
 236:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1026              		.loc 1 236 3 view .LVU253
 236:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1027              		.loc 1 236 3 view .LVU254
 1028 000c 164B     		ldr	r3, .L84
 1029 000e 1B78     		ldrb	r3, [r3]
 1030 0010 012B     		cmp	r3, #1
 1031 0012 26D0     		beq	.L82
 236:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1032              		.loc 1 236 3 discriminator 2 view .LVU255
 1033 0014 144B     		ldr	r3, .L84
 1034 0016 0122     		movs	r2, #1
 1035              	.LVL66:
 236:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1036              		.loc 1 236 3 is_stmt 0 discriminator 2 view .LVU256
 1037 0018 1A70     		strb	r2, [r3]
 236:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1038              		.loc 1 236 3 is_stmt 1 discriminator 2 view .LVU257
 239:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1039              		.loc 1 239 3 discriminator 2 view .LVU258
 239:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1040              		.loc 1 239 20 is_stmt 0 discriminator 2 view .LVU259
 1041 001a 0022     		movs	r2, #0
 1042 001c 5A60     		str	r2, [r3, #4]
 242:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1043              		.loc 1 242 3 is_stmt 1 discriminator 2 view .LVU260
 242:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1044              		.loc 1 242 12 is_stmt 0 discriminator 2 view .LVU261
 1045 001e FA20     		movs	r0, #250
 1046              	.LVL67:
 242:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1047              		.loc 1 242 12 discriminator 2 view .LVU262
 1048 0020 8000     		lsls	r0, r0, #2
 1049 0022 FFF7FEFF 		bl	FLASH_WaitForLastOperation
 1050              	.LVL68:
 242:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1051              		.loc 1 242 12 discriminator 2 view .LVU263
 1052 0026 041E     		subs	r4, r0, #0
 1053              	.LVL69:
 244:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 1054              		.loc 1 244 3 is_stmt 1 discriminator 2 view .LVU264
 244:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   {
 1055              		.loc 1 244 6 is_stmt 0 discriminator 2 view .LVU265
 1056 0028 05D0     		beq	.L80
 247:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
ARM GAS  /tmp/cc6LDhZP.s 			page 52


 1057              		.loc 1 247 5 is_stmt 1 view .LVU266
 247:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 1058              		.loc 1 247 5 view .LVU267
 1059 002a 0F4B     		ldr	r3, .L84
 1060 002c 0022     		movs	r2, #0
 1061 002e 1A70     		strb	r2, [r3]
 247:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****   }
 1062              		.loc 1 247 5 view .LVU268
 1063              	.LVL70:
 1064              	.L79:
 278:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1065              		.loc 1 278 1 is_stmt 0 view .LVU269
 1066 0030 2000     		movs	r0, r4
 1067 0032 03B0     		add	sp, sp, #12
 1068              		@ sp needed
 1069              	.LVL71:
 1070              	.LVL72:
 278:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1071              		.loc 1 278 1 view .LVU270
 1072 0034 F0BD     		pop	{r4, r5, r6, r7, pc}
 1073              	.LVL73:
 1074              	.L80:
 252:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     pFlash.Address = Address;
 1075              		.loc 1 252 5 is_stmt 1 view .LVU271
 252:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     pFlash.Address = Address;
 1076              		.loc 1 252 29 is_stmt 0 view .LVU272
 1077 0036 0C4B     		ldr	r3, .L84
 1078 0038 9D60     		str	r5, [r3, #8]
 253:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1079              		.loc 1 253 5 is_stmt 1 view .LVU273
 253:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1080              		.loc 1 253 20 is_stmt 0 view .LVU274
 1081 003a DF60     		str	r7, [r3, #12]
 256:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1082              		.loc 1 256 5 is_stmt 1 view .LVU275
 256:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1083              		.loc 1 256 15 is_stmt 0 view .LVU276
 1084 003c 0B4A     		ldr	r2, .L84+4
 1085 003e 5169     		ldr	r1, [r2, #20]
 1086 0040 C023     		movs	r3, #192
 1087 0042 9B04     		lsls	r3, r3, #18
 1088 0044 0B43     		orrs	r3, r1
 1089 0046 5361     		str	r3, [r2, #20]
 258:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 1090              		.loc 1 258 5 is_stmt 1 view .LVU277
 258:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     {
 1091              		.loc 1 258 8 is_stmt 0 view .LVU278
 1092 0048 012D     		cmp	r5, #1
 1093 004a 04D0     		beq	.L83
 269:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1094              		.loc 1 269 7 is_stmt 1 view .LVU279
 272:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 1095              		.loc 1 272 7 view .LVU280
 1096 004c 3100     		movs	r1, r6
 1097 004e 3800     		movs	r0, r7
 1098              	.LVL74:
 272:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
ARM GAS  /tmp/cc6LDhZP.s 			page 53


 1099              		.loc 1 272 7 is_stmt 0 view .LVU281
 1100 0050 FFF7FEFF 		bl	FLASH_Program_Fast
 1101              	.LVL75:
 1102 0054 ECE7     		b	.L79
 1103              	.LVL76:
 1104              	.L83:
 261:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1105              		.loc 1 261 7 is_stmt 1 view .LVU282
 264:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 1106              		.loc 1 264 7 view .LVU283
 1107 0056 3200     		movs	r2, r6
 1108 0058 019B     		ldr	r3, [sp, #4]
 1109 005a 3800     		movs	r0, r7
 1110              	.LVL77:
 264:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c ****     }
 1111              		.loc 1 264 7 is_stmt 0 view .LVU284
 1112 005c FFF7FEFF 		bl	FLASH_Program_DoubleWord
 1113              	.LVL78:
 1114 0060 E6E7     		b	.L79
 1115              	.LVL79:
 1116              	.L82:
 236:Drivers/STM32G0xx_HAL_Driver/Src/stm32g0xx_hal_flash.c **** 
 1117              		.loc 1 236 3 view .LVU285
 1118 0062 0224     		movs	r4, #2
 1119 0064 E4E7     		b	.L79
 1120              	.L85:
 1121 0066 C046     		.align	2
 1122              	.L84:
 1123 0068 00000000 		.word	.LANCHOR0
 1124 006c 00200240 		.word	1073881088
 1125              		.cfi_endproc
 1126              	.LFE298:
 1128              		.global	pFlash
 1129              		.section	.bss.pFlash,"aw",%nobits
 1130              		.align	2
 1131              		.set	.LANCHOR0,. + 0
 1134              	pFlash:
 1135 0000 00000000 		.space	28
 1135      00000000 
 1135      00000000 
 1135      00000000 
 1135      00000000 
 1136              		.text
 1137              	.Letext0:
 1138              		.file 3 "/usr/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h"
 1139              		.file 4 "Drivers/CMSIS/Device/ST/STM32G0xx/Include/stm32g031xx.h"
 1140              		.file 5 "Drivers/STM32G0xx_HAL_Driver/Inc/stm32g0xx_hal_def.h"
 1141              		.file 6 "Drivers/STM32G0xx_HAL_Driver/Inc/stm32g0xx_hal_flash.h"
 1142              		.file 7 "Drivers/STM32G0xx_HAL_Driver/Inc/stm32g0xx_hal.h"
 1143              		.file 8 "Drivers/STM32G0xx_HAL_Driver/Inc/stm32g0xx_hal_flash_ex.h"
 1144              		.file 9 "Drivers/STM32G0xx_HAL_Driver/Inc/stm32g0xx_ll_dma.h"
ARM GAS  /tmp/cc6LDhZP.s 			page 54


DEFINED SYMBOLS
                            *ABS*:0000000000000000 stm32g0xx_hal_flash.c
     /tmp/cc6LDhZP.s:16     .text.FLASH_Program_DoubleWord:0000000000000000 $t
     /tmp/cc6LDhZP.s:23     .text.FLASH_Program_DoubleWord:0000000000000000 FLASH_Program_DoubleWord
     /tmp/cc6LDhZP.s:71     .text.FLASH_Program_DoubleWord:0000000000000018 $d
     /tmp/cc6LDhZP.s:76     .RamFunc:0000000000000000 $t
     /tmp/cc6LDhZP.s:82     .RamFunc:0000000000000000 FLASH_Program_Fast
     /tmp/cc6LDhZP.s:203    .RamFunc:0000000000000034 $d
     /tmp/cc6LDhZP.s:208    .text.HAL_FLASH_EndOfOperationCallback:0000000000000000 $t
     /tmp/cc6LDhZP.s:215    .text.HAL_FLASH_EndOfOperationCallback:0000000000000000 HAL_FLASH_EndOfOperationCallback
     /tmp/cc6LDhZP.s:231    .text.HAL_FLASH_OperationErrorCallback:0000000000000000 $t
     /tmp/cc6LDhZP.s:238    .text.HAL_FLASH_OperationErrorCallback:0000000000000000 HAL_FLASH_OperationErrorCallback
     /tmp/cc6LDhZP.s:254    .text.HAL_FLASH_IRQHandler:0000000000000000 $t
     /tmp/cc6LDhZP.s:261    .text.HAL_FLASH_IRQHandler:0000000000000000 HAL_FLASH_IRQHandler
     /tmp/cc6LDhZP.s:443    .text.HAL_FLASH_IRQHandler:00000000000000b0 $d
     /tmp/cc6LDhZP.s:452    .text.HAL_FLASH_Unlock:0000000000000000 $t
     /tmp/cc6LDhZP.s:459    .text.HAL_FLASH_Unlock:0000000000000000 HAL_FLASH_Unlock
     /tmp/cc6LDhZP.s:508    .text.HAL_FLASH_Unlock:0000000000000024 $d
     /tmp/cc6LDhZP.s:515    .text.HAL_FLASH_Lock:0000000000000000 $t
     /tmp/cc6LDhZP.s:522    .text.HAL_FLASH_Lock:0000000000000000 HAL_FLASH_Lock
     /tmp/cc6LDhZP.s:560    .text.HAL_FLASH_Lock:000000000000001c $d
     /tmp/cc6LDhZP.s:565    .text.HAL_FLASH_OB_Unlock:0000000000000000 $t
     /tmp/cc6LDhZP.s:572    .text.HAL_FLASH_OB_Unlock:0000000000000000 HAL_FLASH_OB_Unlock
     /tmp/cc6LDhZP.s:620    .text.HAL_FLASH_OB_Unlock:0000000000000024 $d
     /tmp/cc6LDhZP.s:627    .text.HAL_FLASH_OB_Lock:0000000000000000 $t
     /tmp/cc6LDhZP.s:634    .text.HAL_FLASH_OB_Lock:0000000000000000 HAL_FLASH_OB_Lock
     /tmp/cc6LDhZP.s:672    .text.HAL_FLASH_OB_Lock:000000000000001c $d
     /tmp/cc6LDhZP.s:677    .text.HAL_FLASH_OB_Launch:0000000000000000 $t
     /tmp/cc6LDhZP.s:684    .text.HAL_FLASH_OB_Launch:0000000000000000 HAL_FLASH_OB_Launch
     /tmp/cc6LDhZP.s:706    .text.HAL_FLASH_OB_Launch:0000000000000010 $d
     /tmp/cc6LDhZP.s:711    .text.HAL_FLASH_GetError:0000000000000000 $t
     /tmp/cc6LDhZP.s:718    .text.HAL_FLASH_GetError:0000000000000000 HAL_FLASH_GetError
     /tmp/cc6LDhZP.s:735    .text.HAL_FLASH_GetError:0000000000000008 $d
     /tmp/cc6LDhZP.s:740    .text.FLASH_WaitForLastOperation:0000000000000000 $t
     /tmp/cc6LDhZP.s:747    .text.FLASH_WaitForLastOperation:0000000000000000 FLASH_WaitForLastOperation
     /tmp/cc6LDhZP.s:858    .text.FLASH_WaitForLastOperation:0000000000000058 $d
     /tmp/cc6LDhZP.s:866    .text.HAL_FLASH_Program:0000000000000000 $t
     /tmp/cc6LDhZP.s:873    .text.HAL_FLASH_Program:0000000000000000 HAL_FLASH_Program
     /tmp/cc6LDhZP.s:988    .text.HAL_FLASH_Program:000000000000005c $d
     /tmp/cc6LDhZP.s:994    .text.HAL_FLASH_Program_IT:0000000000000000 $t
     /tmp/cc6LDhZP.s:1001   .text.HAL_FLASH_Program_IT:0000000000000000 HAL_FLASH_Program_IT
     /tmp/cc6LDhZP.s:1123   .text.HAL_FLASH_Program_IT:0000000000000068 $d
     /tmp/cc6LDhZP.s:1134   .bss.pFlash:0000000000000000 pFlash
     /tmp/cc6LDhZP.s:1130   .bss.pFlash:0000000000000000 $d

UNDEFINED SYMBOLS
FLASH_PageErase
HAL_GetTick
