ARM GAS  /tmp/ccsIWRCI.s 			page 1


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


  31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       (+) 8 cache lines of 4*64 or 2*128 bits on D-Code
  32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       (+) Error code correction (ECC) : Data in flash are 72-bits word
  33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****           (8 bits added per double word)
  34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
  35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
  36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                         ##### How to use this driver #####
  37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   ==============================================================================
  38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     [..]
  39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       This driver provides functions and macros to configure and program the FLASH
  40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       memory of all STM32G4xx devices.
  41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
  42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       (#) Flash Memory IO Programming functions:
  43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****            (++) Lock and Unlock the FLASH interface using HAL_FLASH_Unlock() and
  44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                 HAL_FLASH_Lock() functions
  45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****            (++) Program functions: double word and fast program (full row programming)
  46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****            (++) There are two modes of programming :
  47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****             (+++) Polling mode using HAL_FLASH_Program() function
  48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****             (+++) Interrupt mode using HAL_FLASH_Program_IT() function
  49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
  50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       (#) Interrupts and flags management functions:
  51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****            (++) Handle FLASH interrupts by calling HAL_FLASH_IRQHandler()
  52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****            (++) Callback functions are called when the flash operations are finished :
  53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                 HAL_FLASH_EndOfOperationCallback() when everything is ok, otherwise
  54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                 HAL_FLASH_OperationErrorCallback()
  55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****            (++) Get error flag status by calling HAL_GetError()
  56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
  57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       (#) Option bytes management functions:
  58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****            (++) Lock and Unlock the option bytes using HAL_FLASH_OB_Unlock() and
  59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                 HAL_FLASH_OB_Lock() functions
  60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****            (++) Launch the reload of the option bytes using HAL_FLASH_Launch() function.
  61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                 In this case, a reset is generated
  62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
  63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     [..]
  64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       In addition to these functions, this driver includes a set of macros allowing
  65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       to handle the following operations:
  66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****        (+) Set the latency
  67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****        (+) Enable/Disable the prefetch buffer
  68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****        (+) Enable/Disable the Instruction cache and the Data cache
  69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****        (+) Reset the Instruction cache and the Data cache
  70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****        (+) Enable/Disable the Flash power-down during low-power run and sleep modes
  71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****        (+) Enable/Disable the Flash interrupts
  72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****        (+) Monitor the Flash flags status
  73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
  74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   @endverbatim
  75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   ******************************************************************************
  76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @attention
  77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *
  78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * Copyright (c) 2019 STMicroelectronics.
  79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * All rights reserved.
  80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *
  81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * This software is licensed under terms that can be found in the LICENSE file in
  82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * the root directory of this software component.
  83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * If no LICENSE file comes with this software, it is provided AS-IS.
  84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   ******************************************************************************
  85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
  86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
  87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Includes ------------------------------------------------------------------*/
ARM GAS  /tmp/ccsIWRCI.s 			page 3


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


 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group1 Programming operation functions
 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *  @brief   Programming operation functions
 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *
 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** @verbatim
 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****  ===============================================================================
 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                   ##### Programming operation functions #####
 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****  ===============================================================================
 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     [..]
 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     This subsection provides a set of functions allowing to manage the FLASH
 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     program operations.
 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** @endverbatim
 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @{
 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Program double word or fast program of a row at a specified address.
 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  TypeProgram Indicate the way to program at a specified address.
 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *         This parameter can be a value of @ref FLASH_Type_Program.
 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  Address specifies the address to be programmed.
 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  Data specifies the data to be programmed.
 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *         This parameter is the data for the double word program and the address where
 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *         are stored the data for the row fast program.
 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *
 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval HAL_Status
 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status;
 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t prog_bit = 0;
 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Check the parameters */
 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram));
 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Process Locked */
 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   __HAL_LOCK(&pFlash);
 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Wait for last operation to be completed */
 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (status == HAL_OK)
 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if (TypeProgram == FLASH_TYPEPROGRAM_DOUBLEWORD)
 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* Program double-word (64-bit) at a specified address */
 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       FLASH_Program_DoubleWord(Address, Data);
 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       prog_bit = FLASH_CR_PG;
 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     else if ((TypeProgram == FLASH_TYPEPROGRAM_FAST) || (TypeProgram == FLASH_TYPEPROGRAM_FAST_AND_
 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* Fast program a 32 row double-word (64-bit) at a specified address */
 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       FLASH_Program_Fast(Address, (uint32_t)Data);
 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
ARM GAS  /tmp/ccsIWRCI.s 			page 5


 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* If it is the last row, the bit will be cleared at the end of the operation */
 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       if (TypeProgram == FLASH_TYPEPROGRAM_FAST_AND_LAST)
 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         prog_bit = FLASH_CR_FSTPG;
 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     else
 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* Nothing to do */
 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Wait for last operation to be completed */
 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* If the program operation is completed, disable the PG or FSTPG Bit */
 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if (prog_bit != 0U)
 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       CLEAR_BIT(FLASH->CR, prog_bit);
 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Process Unlocked */
 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   __HAL_UNLOCK(&pFlash);
 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* return status */
 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   return status;
 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Program double word or fast program of a row at a specified address with interrupt enab
 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  TypeProgram Indicate the way to program at a specified address.
 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *         This parameter can be a value of @ref FLASH_Type_Program.
 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  Address specifies the address to be programmed.
 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  Data specifies the data to be programmed.
 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *         This parameter is the data for the double word program and the address where
 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *         are stored the data for the row fast program.
 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *
 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval HAL_Status
 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status;
 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Check the parameters */
 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram));
 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Process Locked */
 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   __HAL_LOCK(&pFlash);
 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Reset error code */
 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Wait for last operation to be completed */
 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   status = FLASH_WaitForLastOperation(FLASH_TIMEOUT_VALUE);
 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (status != HAL_OK)
 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
ARM GAS  /tmp/ccsIWRCI.s 			page 6


 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Process Unlocked */
 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     __HAL_UNLOCK(&pFlash);
 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   else
 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Set internal variables used by the IRQ handler */
 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if (TypeProgram == FLASH_TYPEPROGRAM_FAST_AND_LAST)
 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAM_LAST;
 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     else
 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       pFlash.ProcedureOnGoing = FLASH_PROC_PROGRAM;
 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     pFlash.Address = Address;
 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Enable End of Operation and Error interrupts */
 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP | FLASH_IT_OPERR);
 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if (TypeProgram == FLASH_TYPEPROGRAM_DOUBLEWORD)
 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* Program double-word (64-bit) at a specified address */
 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       FLASH_Program_DoubleWord(Address, Data);
 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     else if ((TypeProgram == FLASH_TYPEPROGRAM_FAST) || (TypeProgram == FLASH_TYPEPROGRAM_FAST_AND_
 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* Fast program a 32 row double-word (64-bit) at a specified address */
 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       FLASH_Program_Fast(Address, (uint32_t)Data);
 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     else
 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* Nothing to do */
 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   return status;
 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Handle FLASH interrupt request.
 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval None
 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** void HAL_FLASH_IRQHandler(void)
 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t tmp_page;
 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t error;
 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   FLASH_ProcedureTypeDef procedure;
 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* If the operation is completed, disable the PG, PNB, MER1, MER2 and PER Bit */
 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   CLEAR_BIT(FLASH->CR, (FLASH_CR_PG | FLASH_CR_MER1 | FLASH_CR_PER | FLASH_CR_PNB));
 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** #if defined (FLASH_OPTR_DBANK)
 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   CLEAR_BIT(FLASH->CR, FLASH_CR_MER2);
 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** #endif
 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Disable the FSTPG Bit only if it is the last row programmed */
 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (pFlash.ProcedureOnGoing == FLASH_PROC_PROGRAM_LAST)
 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
ARM GAS  /tmp/ccsIWRCI.s 			page 7


 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     CLEAR_BIT(FLASH->CR, FLASH_CR_FSTPG);
 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Check FLASH operation error flags */
 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   error = (FLASH->SR & FLASH_FLAG_SR_ERRORS);
 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (error != 0U)
 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Save the error code */
 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     pFlash.ErrorCode |= error;
 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Clear error programming flags */
 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     __HAL_FLASH_CLEAR_FLAG(error);
 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Flush the caches to be sure of the data consistency */
 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     FLASH_FlushCaches() ;
 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* FLASH error interrupt user callback */
 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     procedure = pFlash.ProcedureOnGoing;
 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if (procedure == FLASH_PROC_PAGE_ERASE)
 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       HAL_FLASH_OperationErrorCallback(pFlash.Page);
 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     else if (procedure == FLASH_PROC_MASS_ERASE)
 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       HAL_FLASH_OperationErrorCallback(pFlash.Bank);
 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     else if ((procedure == FLASH_PROC_PROGRAM) ||
 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****              (procedure == FLASH_PROC_PROGRAM_LAST))
 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       HAL_FLASH_OperationErrorCallback(pFlash.Address);
 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     else
 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* Nothing to do */
 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /*Stop the procedure ongoing*/
 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Check FLASH End of Operation flag  */
 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP))
 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Clear FLASH End of Operation pending bit */
 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if (pFlash.ProcedureOnGoing == FLASH_PROC_PAGE_ERASE)
 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* Nb of pages to erased can be decreased */
 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       pFlash.NbPagesToErase--;
 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* Check if there are still pages to erase*/
 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       if (pFlash.NbPagesToErase != 0U)
 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* Indicate user which page has been erased*/
 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         HAL_FLASH_EndOfOperationCallback(pFlash.Page);
ARM GAS  /tmp/ccsIWRCI.s 			page 8


 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* Increment page number */
 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         pFlash.Page++;
 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         tmp_page = pFlash.Page;
 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         FLASH_PageErase(tmp_page, pFlash.Bank);
 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       else
 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* No more pages to Erase */
 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* Reset Address and stop Erase pages procedure */
 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         pFlash.Page = 0xFFFFFFFFU;
 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* Flush the caches to be sure of the data consistency */
 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         FLASH_FlushCaches() ;
 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* FLASH EOP interrupt user callback */
 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         HAL_FLASH_EndOfOperationCallback(pFlash.Page);
 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     else
 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /* Flush the caches to be sure of the data consistency */
 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       FLASH_FlushCaches() ;
 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       procedure = pFlash.ProcedureOnGoing;
 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       if (procedure == FLASH_PROC_MASS_ERASE)
 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* MassErase ended. Return the selected bank */
 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* FLASH EOP interrupt user callback */
 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         HAL_FLASH_EndOfOperationCallback(pFlash.Bank);
 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       else if ((procedure == FLASH_PROC_PROGRAM) ||
 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                (procedure == FLASH_PROC_PROGRAM_LAST))
 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* Program ended. Return the selected address */
 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* FLASH EOP interrupt user callback */
 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         HAL_FLASH_EndOfOperationCallback(pFlash.Address);
 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       else
 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         /* Nothing to do */
 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       /*Clear the procedure ongoing*/
 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (pFlash.ProcedureOnGoing == FLASH_PROC_NONE)
 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Disable End of Operation and Error interrupts */
 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     __HAL_FLASH_DISABLE_IT(FLASH_IT_EOP | FLASH_IT_OPERR);
 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Process Unlocked */
 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     __HAL_UNLOCK(&pFlash);
 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
ARM GAS  /tmp/ccsIWRCI.s 			page 9


 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  FLASH end of operation interrupt callback.
 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  ReturnValue The value saved in this parameter depends on the ongoing procedure:
 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *           @arg Mass Erase: Bank number which has been requested to erase
 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *           @arg Page Erase: Page which has been erased
 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *                            (if 0xFFFFFFFF, it means that all the selected pages have been erase
 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *           @arg Program: Address which was selected for data program
 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval None
 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** __weak void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue)
 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Prevent unused argument(s) compilation warning */
 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   UNUSED(ReturnValue);
 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* NOTE : This function should not be modified, when the callback is needed,
 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****             the HAL_FLASH_EndOfOperationCallback could be implemented in the user file
 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****    */
 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  FLASH operation error interrupt callback.
 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  ReturnValue The value saved in this parameter depends on the ongoing procedure:
 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *           @arg Mass Erase: Bank number which has been requested to erase
 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *           @arg Page Erase: Page number which returned an error
 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *           @arg Program: Address which was selected for data program
 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval None
 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** __weak void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue)
 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Prevent unused argument(s) compilation warning */
 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   UNUSED(ReturnValue);
 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* NOTE : This function should not be modified, when the callback is needed,
 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****             the HAL_FLASH_OperationErrorCallback could be implemented in the user file
 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****    */
 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @}
 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group2 Peripheral Control functions
 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief   Management functions
 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *
 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** @verbatim
 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****  ===============================================================================
 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                       ##### Peripheral Control functions #####
 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****  ===============================================================================
 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     [..]
 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     This subsection provides a set of functions allowing to control the FLASH
 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     memory operations.
 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** @endverbatim
 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @{
 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
ARM GAS  /tmp/ccsIWRCI.s 			page 10


 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Unlock the FLASH control register access.
 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval HAL_Status
 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Unlock(void)
 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_OK;
 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) != 0U)
 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Authorize the FLASH Registers access */
 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     WRITE_REG(FLASH->KEYR, FLASH_KEY1);
 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     WRITE_REG(FLASH->KEYR, FLASH_KEY2);
 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* verify Flash is unlocked */
 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) != 0U)
 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       status = HAL_ERROR;
 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   return status;
 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Lock the FLASH control register access.
 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval HAL_Status
 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_Lock(void)
 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_ERROR;
 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Set the LOCK Bit to lock the FLASH Registers access */
 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   SET_BIT(FLASH->CR, FLASH_CR_LOCK);
 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* verify Flash is locked */
 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (READ_BIT(FLASH->CR, FLASH_CR_LOCK) != 0U)
 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     status = HAL_OK;
 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   return status;
 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Unlock the FLASH Option Bytes Registers access.
 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval HAL_Status
 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void)
 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_OK;
 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (READ_BIT(FLASH->CR, FLASH_CR_OPTLOCK) != 0U)
 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Authorizes the Option Byte register programming */
 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY1);
ARM GAS  /tmp/ccsIWRCI.s 			page 11


 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY2);
 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* verify option bytes are unlocked */
 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if (READ_BIT(FLASH->CR, FLASH_CR_OPTLOCK) != 0U)
 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       status = HAL_ERROR;
 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   return status;
 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Lock the FLASH Option Bytes Registers access.
 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval HAL_Status
 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Lock(void)
 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_ERROR;
 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Set the OPTLOCK Bit to lock the FLASH Option Byte Registers access */
 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   SET_BIT(FLASH->CR, FLASH_CR_OPTLOCK);
 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Verify option bytes are locked */
 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (READ_BIT(FLASH->CR, FLASH_CR_OPTLOCK) != 0U)
 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     status = HAL_OK;
 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   return status;
 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Launch the option byte loading.
 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval HAL_Status
 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef HAL_FLASH_OB_Launch(void)
 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Set the bit to force the option byte reloading */
 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   SET_BIT(FLASH->CR, FLASH_CR_OBL_LAUNCH);
 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Wait for last operation to be completed */
 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   return (FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE));
 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @}
 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @defgroup FLASH_Exported_Functions_Group3 Peripheral State and Errors functions
 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief   Peripheral Errors functions
 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *
 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** @verbatim
 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****  ===============================================================================
 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                 ##### Peripheral Errors functions #####
 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****  ===============================================================================
 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     [..]
ARM GAS  /tmp/ccsIWRCI.s 			page 12


 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     This subsection permits to get in run-time Errors of the FLASH peripheral.
 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** @endverbatim
 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @{
 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Get the specific FLASH error flag.
 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval FLASH_ErrorCode. The returned value can be:
 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_RD: FLASH Read Protection error flag (PCROP)
 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_PGS: FLASH Programming Sequence error flag
 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_PGP: FLASH Programming Parallelism error flag
 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_PGA: FLASH Programming Alignment error flag
 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_WRP: FLASH Write protected error flag
 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_OPERATION: FLASH operation Error flag
 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_NONE: No error set
 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_OP: FLASH Operation error
 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_PROG: FLASH Programming error
 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_WRP: FLASH Write protection error
 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_PGA: FLASH Programming alignment error
 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_SIZ: FLASH Size error
 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_PGS: FLASH Programming sequence error
 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_MIS: FLASH Fast programming data miss error
 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_FAST: FLASH Fast programming error
 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_RD: FLASH PCROP read error
 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *            @arg HAL_FLASH_ERROR_OPTV: FLASH Option validity error
 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** uint32_t HAL_FLASH_GetError(void)
 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   return pFlash.ErrorCode;
 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @}
 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @}
 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /* Private functions ---------------------------------------------------------*/
 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /** @addtogroup FLASH_Private_Functions
 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @{
 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Wait for a FLASH operation to complete.
 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  Timeout maximum flash operation timeout.
 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval HAL_Status
 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout)
 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset.
 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****      Even if the FLASH operation fails, the BUSY flag will be reset and an error
 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****      flag will be set */
 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
ARM GAS  /tmp/ccsIWRCI.s 			page 13


 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t tickstart = HAL_GetTick();
 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t error;
 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   while (__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY))
 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if ((HAL_GetTick() - tickstart) > Timeout)
 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       return HAL_TIMEOUT;
 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Check FLASH operation error flags */
 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   error = (FLASH->SR & FLASH_FLAG_SR_ERRORS);
 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (error != 0u)
 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Save the error code */
 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     pFlash.ErrorCode |= error;
 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Clear error programming flags */
 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     __HAL_FLASH_CLEAR_FLAG(error);
 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     return HAL_ERROR;
 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Check FLASH End of Operation flag  */
 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP))
 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     /* Clear FLASH End of Operation pending bit */
 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* If there is an error flag set */
 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   return HAL_OK;
 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Program double-word (64-bit) at a specified address.
 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  Address specifies the address to be programmed.
 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  Data specifies the data to be programmed.
 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval None
 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** static void FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data)
 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
  29              		.loc 1 700 1 view -0
  30              		.cfi_startproc
  31              		@ args = 0, pretend = 0, frame = 0
  32              		@ frame_needed = 0, uses_anonymous_args = 0
  33              		@ link register save eliminated.
  34              		.loc 1 700 1 is_stmt 0 view .LVU1
  35 0000 10B4     		push	{r4}
  36              	.LCFI0:
  37              		.cfi_def_cfa_offset 4
  38              		.cfi_offset 4, -4
 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Check the parameters */
 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   assert_param(IS_FLASH_PROGRAM_ADDRESS(Address));
  39              		.loc 1 702 3 is_stmt 1 view .LVU2
 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
ARM GAS  /tmp/ccsIWRCI.s 			page 14


 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Set PG bit */
 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   SET_BIT(FLASH->CR, FLASH_CR_PG);
  40              		.loc 1 705 3 view .LVU3
  41 0002 064C     		ldr	r4, .L3
  42 0004 6169     		ldr	r1, [r4, #20]
  43 0006 41F00101 		orr	r1, r1, #1
  44 000a 6161     		str	r1, [r4, #20]
 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Program first word */
 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *(uint32_t *)Address = (uint32_t)Data;
  45              		.loc 1 708 3 view .LVU4
  46              		.loc 1 708 24 is_stmt 0 view .LVU5
  47 000c 0260     		str	r2, [r0]
 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Barrier to ensure programming is performed in 2 steps, in right order
 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     (independently of compiler optimization behavior) */
 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   __ISB();
  48              		.loc 1 712 3 is_stmt 1 view .LVU6
  49              	.LBB10:
  50              	.LBI10:
  51              		.file 2 "Drivers/CMSIS/Include/cmsis_gcc.h"
   1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//**
   2:Drivers/CMSIS/Include/cmsis_gcc.h ****  * @file     cmsis_gcc.h
   3:Drivers/CMSIS/Include/cmsis_gcc.h ****  * @brief    CMSIS compiler GCC header file
   4:Drivers/CMSIS/Include/cmsis_gcc.h ****  * @version  V5.2.0
   5:Drivers/CMSIS/Include/cmsis_gcc.h ****  * @date     08. May 2019
   6:Drivers/CMSIS/Include/cmsis_gcc.h ****  ******************************************************************************/
   7:Drivers/CMSIS/Include/cmsis_gcc.h **** /*
   8:Drivers/CMSIS/Include/cmsis_gcc.h ****  * Copyright (c) 2009-2019 Arm Limited. All rights reserved.
   9:Drivers/CMSIS/Include/cmsis_gcc.h ****  *
  10:Drivers/CMSIS/Include/cmsis_gcc.h ****  * SPDX-License-Identifier: Apache-2.0
  11:Drivers/CMSIS/Include/cmsis_gcc.h ****  *
  12:Drivers/CMSIS/Include/cmsis_gcc.h ****  * Licensed under the Apache License, Version 2.0 (the License); you may
  13:Drivers/CMSIS/Include/cmsis_gcc.h ****  * not use this file except in compliance with the License.
  14:Drivers/CMSIS/Include/cmsis_gcc.h ****  * You may obtain a copy of the License at
  15:Drivers/CMSIS/Include/cmsis_gcc.h ****  *
  16:Drivers/CMSIS/Include/cmsis_gcc.h ****  * www.apache.org/licenses/LICENSE-2.0
  17:Drivers/CMSIS/Include/cmsis_gcc.h ****  *
  18:Drivers/CMSIS/Include/cmsis_gcc.h ****  * Unless required by applicable law or agreed to in writing, software
  19:Drivers/CMSIS/Include/cmsis_gcc.h ****  * distributed under the License is distributed on an AS IS BASIS, WITHOUT
  20:Drivers/CMSIS/Include/cmsis_gcc.h ****  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  21:Drivers/CMSIS/Include/cmsis_gcc.h ****  * See the License for the specific language governing permissions and
  22:Drivers/CMSIS/Include/cmsis_gcc.h ****  * limitations under the License.
  23:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
  24:Drivers/CMSIS/Include/cmsis_gcc.h **** 
  25:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H
  26:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H
  27:Drivers/CMSIS/Include/cmsis_gcc.h **** 
  28:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */
  29:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
  30:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion"
  31:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion"
  32:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter"
  33:Drivers/CMSIS/Include/cmsis_gcc.h **** 
  34:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Fallback for __has_builtin */
  35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __has_builtin
  36:Drivers/CMSIS/Include/cmsis_gcc.h ****   #define __has_builtin(x) (0)
ARM GAS  /tmp/ccsIWRCI.s 			page 15


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


  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__;
 149:Drivers/CMSIS/Include/cmsis_gcc.h ****   extern const __zero_table_t __zero_table_end__;
 150:Drivers/CMSIS/Include/cmsis_gcc.h **** 
ARM GAS  /tmp/ccsIWRCI.s 			page 17


 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.
 206:Drivers/CMSIS/Include/cmsis_gcc.h ****  */
 207:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void)
ARM GAS  /tmp/ccsIWRCI.s 			page 18


 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");
 263:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 264:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
ARM GAS  /tmp/ccsIWRCI.s 			page 19


 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);
 320:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 321:Drivers/CMSIS/Include/cmsis_gcc.h **** 
ARM GAS  /tmp/ccsIWRCI.s 			page 20


 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 **** 
 377:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
 378:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
ARM GAS  /tmp/ccsIWRCI.s 			page 21


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


 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 ****  */
 491:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask)
 492:Drivers/CMSIS/Include/cmsis_gcc.h **** {
ARM GAS  /tmp/ccsIWRCI.s 			page 23


 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) );
 548:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 549:Drivers/CMSIS/Include/cmsis_gcc.h **** }
ARM GAS  /tmp/ccsIWRCI.s 			page 24


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


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


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


 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;
 776:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) );
 777:Drivers/CMSIS/Include/cmsis_gcc.h ****   return result;
ARM GAS  /tmp/ccsIWRCI.s 			page 28


 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 ****  */
 833:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FPSCR(void)
 834:Drivers/CMSIS/Include/cmsis_gcc.h **** {
ARM GAS  /tmp/ccsIWRCI.s 			page 29


 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__)
 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)
ARM GAS  /tmp/ccsIWRCI.s 			page 30


 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)
  52              		.loc 2 933 27 view .LVU7
  53              	.LBB11:
 934:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 935:Drivers/CMSIS/Include/cmsis_gcc.h ****   __ASM volatile ("isb 0xF":::"memory");
  54              		.loc 2 935 3 view .LVU8
  55              		.syntax unified
  56              	@ 935 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
  57 000e BFF36F8F 		isb 0xF
  58              	@ 0 "" 2
  59              		.thumb
  60              		.syntax unified
  61              	.LBE11:
  62              	.LBE10:
 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Program second word */
ARM GAS  /tmp/ccsIWRCI.s 			page 31


 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   *(uint32_t *)(Address + 4U) = (uint32_t)(Data >> 32U);
  63              		.loc 1 715 3 view .LVU9
  64              		.loc 1 715 31 is_stmt 0 view .LVU10
  65 0012 4360     		str	r3, [r0, #4]
 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
  66              		.loc 1 716 1 view .LVU11
  67 0014 5DF8044B 		ldr	r4, [sp], #4
  68              	.LCFI1:
  69              		.cfi_restore 4
  70              		.cfi_def_cfa_offset 0
  71 0018 7047     		bx	lr
  72              	.L4:
  73 001a 00BF     		.align	2
  74              	.L3:
  75 001c 00200240 		.word	1073881088
  76              		.cfi_endproc
  77              	.LFE341:
  79              		.section	.text.FLASH_Program_Fast,"ax",%progbits
  80              		.align	1
  81              		.syntax unified
  82              		.thumb
  83              		.thumb_func
  85              	FLASH_Program_Fast:
  86              	.LVL1:
  87              	.LFB342:
 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** /**
 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @brief  Fast program a row double-word (64-bit) at a specified address.
 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  Address specifies the address to be programmed.
 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @param  DataAddress specifies the address where the data are stored.
 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   * @retval None
 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   */
 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** static void FLASH_Program_Fast(uint32_t Address, uint32_t DataAddress)
 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** {
  88              		.loc 1 725 1 is_stmt 1 view -0
  89              		.cfi_startproc
  90              		@ args = 0, pretend = 0, frame = 0
  91              		@ frame_needed = 0, uses_anonymous_args = 0
  92              		@ link register save eliminated.
 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint8_t row_index = (2 * FLASH_NB_DOUBLE_WORDS_IN_ROW);
  93              		.loc 1 726 3 view .LVU13
 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t *dest_addr = (uint32_t *)Address;
  94              		.loc 1 727 3 view .LVU14
 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t *src_addr = (uint32_t *)DataAddress;
  95              		.loc 1 728 3 view .LVU15
 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t primask_bit;
  96              		.loc 1 729 3 view .LVU16
 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Check the parameters */
 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   assert_param(IS_FLASH_MAIN_MEM_ADDRESS(Address));
  97              		.loc 1 732 3 view .LVU17
 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Set FSTPG bit */
 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   SET_BIT(FLASH->CR, FLASH_CR_FSTPG);
  98              		.loc 1 735 3 view .LVU18
  99 0000 094A     		ldr	r2, .L7
 100 0002 5369     		ldr	r3, [r2, #20]
ARM GAS  /tmp/ccsIWRCI.s 			page 32


 101 0004 43F48023 		orr	r3, r3, #262144
 102 0008 5361     		str	r3, [r2, #20]
 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Enter critical section: Disable interrupts to avoid any interruption during the loop */
 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   primask_bit = __get_PRIMASK();
 103              		.loc 1 738 3 view .LVU19
 104              	.LBB12:
 105              	.LBI12:
 449:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 106              		.loc 2 449 31 view .LVU20
 107              	.LBB13:
 451:Drivers/CMSIS/Include/cmsis_gcc.h **** 
 108              		.loc 2 451 3 view .LVU21
 453:Drivers/CMSIS/Include/cmsis_gcc.h ****   return(result);
 109              		.loc 2 453 3 view .LVU22
 110              		.syntax unified
 111              	@ 453 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
 112 000a EFF3108C 		MRS ip, primask
 113              	@ 0 "" 2
 114              	.LVL2:
 454:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 115              		.loc 2 454 3 view .LVU23
 454:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 116              		.loc 2 454 3 is_stmt 0 view .LVU24
 117              		.thumb
 118              		.syntax unified
 119              	.LBE13:
 120              	.LBE12:
 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   __disable_irq();
 121              		.loc 1 739 3 is_stmt 1 view .LVU25
 122              	.LBB14:
 123              	.LBI14:
 207:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 124              		.loc 2 207 27 view .LVU26
 125              	.LBB15:
 209:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 126              		.loc 2 209 3 view .LVU27
 127              		.syntax unified
 128              	@ 209 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
 129 000e 72B6     		cpsid i
 130              	@ 0 "" 2
 131              		.thumb
 132              		.syntax unified
 133              	.LBE15:
 134              	.LBE14:
 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t *dest_addr = (uint32_t *)Address;
 135              		.loc 1 726 11 is_stmt 0 view .LVU28
 136 0010 4023     		movs	r3, #64
 137              	.LVL3:
 138              	.L6:
 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Program the double words of the row */
 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   do
 139              		.loc 1 742 3 is_stmt 1 discriminator 1 view .LVU29
 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     *dest_addr = *src_addr;
 140              		.loc 1 744 5 discriminator 1 view .LVU30
ARM GAS  /tmp/ccsIWRCI.s 			page 33


 141              		.loc 1 744 18 is_stmt 0 discriminator 1 view .LVU31
 142 0012 51F8042B 		ldr	r2, [r1], #4
 143              	.LVL4:
 144              		.loc 1 744 16 discriminator 1 view .LVU32
 145 0016 40F8042B 		str	r2, [r0], #4
 146              	.LVL5:
 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     dest_addr++;
 147              		.loc 1 745 5 is_stmt 1 discriminator 1 view .LVU33
 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     src_addr++;
 148              		.loc 1 746 5 discriminator 1 view .LVU34
 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     row_index--;
 149              		.loc 1 747 5 discriminator 1 view .LVU35
 150              		.loc 1 747 14 is_stmt 0 discriminator 1 view .LVU36
 151 001a 013B     		subs	r3, r3, #1
 152              	.LVL6:
 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   while (row_index != 0U);
 153              		.loc 1 749 20 is_stmt 1 discriminator 1 view .LVU37
 154 001c 13F0FF03 		ands	r3, r3, #255
 155              	.LVL7:
 156              		.loc 1 749 20 is_stmt 0 discriminator 1 view .LVU38
 157 0020 F7D1     		bne	.L6
 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Exit critical section: restore previous priority mask */
 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   __set_PRIMASK(primask_bit);
 158              		.loc 1 752 3 is_stmt 1 view .LVU39
 159              	.LBB16:
 160              	.LBI16:
 479:Drivers/CMSIS/Include/cmsis_gcc.h **** {
 161              		.loc 2 479 27 view .LVU40
 162              	.LBB17:
 481:Drivers/CMSIS/Include/cmsis_gcc.h **** }
 163              		.loc 2 481 3 view .LVU41
 164              		.syntax unified
 165              	@ 481 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
 166 0022 8CF31088 		MSR primask, ip
 167              	@ 0 "" 2
 168              		.thumb
 169              		.syntax unified
 170              	.LBE17:
 171              	.LBE16:
 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 172              		.loc 1 753 1 is_stmt 0 view .LVU42
 173 0026 7047     		bx	lr
 174              	.L8:
 175              		.align	2
 176              	.L7:
 177 0028 00200240 		.word	1073881088
 178              		.cfi_endproc
 179              	.LFE342:
 181              		.section	.text.HAL_FLASH_EndOfOperationCallback,"ax",%progbits
 182              		.align	1
 183              		.weak	HAL_FLASH_EndOfOperationCallback
 184              		.syntax unified
 185              		.thumb
 186              		.thumb_func
 188              	HAL_FLASH_EndOfOperationCallback:
ARM GAS  /tmp/ccsIWRCI.s 			page 34


 189              	.LVL8:
 190              	.LFB332:
 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Prevent unused argument(s) compilation warning */
 191              		.loc 1 442 1 is_stmt 1 view -0
 192              		.cfi_startproc
 193              		@ args = 0, pretend = 0, frame = 0
 194              		@ frame_needed = 0, uses_anonymous_args = 0
 195              		@ link register save eliminated.
 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 196              		.loc 1 444 3 view .LVU44
 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 197              		.loc 1 449 1 is_stmt 0 view .LVU45
 198 0000 7047     		bx	lr
 199              		.cfi_endproc
 200              	.LFE332:
 202              		.section	.text.HAL_FLASH_OperationErrorCallback,"ax",%progbits
 203              		.align	1
 204              		.weak	HAL_FLASH_OperationErrorCallback
 205              		.syntax unified
 206              		.thumb
 207              		.thumb_func
 209              	HAL_FLASH_OperationErrorCallback:
 210              	.LVL9:
 211              	.LFB333:
 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Prevent unused argument(s) compilation warning */
 212              		.loc 1 460 1 is_stmt 1 view -0
 213              		.cfi_startproc
 214              		@ args = 0, pretend = 0, frame = 0
 215              		@ frame_needed = 0, uses_anonymous_args = 0
 216              		@ link register save eliminated.
 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 217              		.loc 1 462 3 view .LVU47
 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 218              		.loc 1 467 1 is_stmt 0 view .LVU48
 219 0000 7047     		bx	lr
 220              		.cfi_endproc
 221              	.LFE333:
 223              		.section	.text.HAL_FLASH_IRQHandler,"ax",%progbits
 224              		.align	1
 225              		.global	HAL_FLASH_IRQHandler
 226              		.syntax unified
 227              		.thumb
 228              		.thumb_func
 230              	HAL_FLASH_IRQHandler:
 231              	.LFB331:
 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t tmp_page;
 232              		.loc 1 302 1 is_stmt 1 view -0
 233              		.cfi_startproc
 234              		@ args = 0, pretend = 0, frame = 0
 235              		@ frame_needed = 0, uses_anonymous_args = 0
 236 0000 10B5     		push	{r4, lr}
 237              	.LCFI2:
 238              		.cfi_def_cfa_offset 8
 239              		.cfi_offset 4, -8
 240              		.cfi_offset 14, -4
 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t error;
 241              		.loc 1 303 3 view .LVU50
ARM GAS  /tmp/ccsIWRCI.s 			page 35


 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   FLASH_ProcedureTypeDef procedure;
 242              		.loc 1 304 3 view .LVU51
 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 243              		.loc 1 305 3 view .LVU52
 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** #if defined (FLASH_OPTR_DBANK)
 244              		.loc 1 308 3 view .LVU53
 245 0002 454A     		ldr	r2, .L31
 246 0004 5369     		ldr	r3, [r2, #20]
 247 0006 23F4FF73 		bic	r3, r3, #510
 248 000a 23F00103 		bic	r3, r3, #1
 249 000e 5361     		str	r3, [r2, #20]
 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 250              		.loc 1 314 3 view .LVU54
 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 251              		.loc 1 314 13 is_stmt 0 view .LVU55
 252 0010 424B     		ldr	r3, .L31+4
 253 0012 1B7A     		ldrb	r3, [r3, #8]	@ zero_extendqisi2
 254 0014 DBB2     		uxtb	r3, r3
 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 255              		.loc 1 314 6 view .LVU56
 256 0016 042B     		cmp	r3, #4
 257 0018 3AD0     		beq	.L25
 258              	.L12:
 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 259              		.loc 1 320 3 is_stmt 1 view .LVU57
 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 260              		.loc 1 320 17 is_stmt 0 view .LVU58
 261 001a 3F4B     		ldr	r3, .L31
 262 001c 1B69     		ldr	r3, [r3, #16]
 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 263              		.loc 1 320 9 view .LVU59
 264 001e 4CF2FA32 		movw	r2, #50170
 265              	.LVL10:
 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 266              		.loc 1 322 3 is_stmt 1 view .LVU60
 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 267              		.loc 1 322 6 is_stmt 0 view .LVU61
 268 0022 1340     		ands	r3, r3, r2
 269              	.LVL11:
 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 270              		.loc 1 322 6 view .LVU62
 271 0024 15D0     		beq	.L13
 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 272              		.loc 1 325 5 is_stmt 1 view .LVU63
 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 273              		.loc 1 325 11 is_stmt 0 view .LVU64
 274 0026 3D49     		ldr	r1, .L31+4
 275 0028 4A68     		ldr	r2, [r1, #4]
 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 276              		.loc 1 325 22 view .LVU65
 277 002a 1A43     		orrs	r2, r2, r3
 278 002c 4A60     		str	r2, [r1, #4]
 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 279              		.loc 1 328 5 is_stmt 1 view .LVU66
 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 280              		.loc 1 328 5 view .LVU67
 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
ARM GAS  /tmp/ccsIWRCI.s 			page 36


 281              		.loc 1 328 5 view .LVU68
 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 282              		.loc 1 328 5 view .LVU69
 283 002e 3A4A     		ldr	r2, .L31
 284 0030 1361     		str	r3, [r2, #16]
 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 285              		.loc 1 328 5 view .LVU70
 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 286              		.loc 1 331 5 view .LVU71
 287 0032 FFF7FEFF 		bl	FLASH_FlushCaches
 288              	.LVL12:
 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if (procedure == FLASH_PROC_PAGE_ERASE)
 289              		.loc 1 334 5 view .LVU72
 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     if (procedure == FLASH_PROC_PAGE_ERASE)
 290              		.loc 1 334 15 is_stmt 0 view .LVU73
 291 0036 394B     		ldr	r3, .L31+4
 292 0038 1B7A     		ldrb	r3, [r3, #8]	@ zero_extendqisi2
 293 003a DBB2     		uxtb	r3, r3
 294              	.LVL13:
 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 295              		.loc 1 335 5 is_stmt 1 view .LVU74
 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 296              		.loc 1 335 8 is_stmt 0 view .LVU75
 297 003c 012B     		cmp	r3, #1
 298 003e 2CD0     		beq	.L26
 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 299              		.loc 1 339 10 is_stmt 1 view .LVU76
 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 300              		.loc 1 339 13 is_stmt 0 view .LVU77
 301 0040 022B     		cmp	r3, #2
 302 0042 2FD0     		beq	.L27
 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****              (procedure == FLASH_PROC_PROGRAM_LAST))
 303              		.loc 1 343 10 is_stmt 1 view .LVU78
 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****              (procedure == FLASH_PROC_PROGRAM_LAST))
 304              		.loc 1 343 48 is_stmt 0 view .LVU79
 305 0044 033B     		subs	r3, r3, #3
 306              	.LVL14:
 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****              (procedure == FLASH_PROC_PROGRAM_LAST))
 307              		.loc 1 343 48 view .LVU80
 308 0046 DBB2     		uxtb	r3, r3
 309              	.LVL15:
 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****              (procedure == FLASH_PROC_PROGRAM_LAST))
 310              		.loc 1 343 13 view .LVU81
 311 0048 012B     		cmp	r3, #1
 312 004a 30D9     		bls	.L28
 313              	.LVL16:
 314              	.L16:
 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 315              		.loc 1 351 5 is_stmt 1 view .LVU82
 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 316              		.loc 1 354 5 view .LVU83
 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 317              		.loc 1 354 29 is_stmt 0 view .LVU84
 318 004c 334B     		ldr	r3, .L31+4
 319 004e 0022     		movs	r2, #0
 320 0050 1A72     		strb	r2, [r3, #8]
 321              	.LVL17:
ARM GAS  /tmp/ccsIWRCI.s 			page 37


 322              	.L13:
 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 323              		.loc 1 358 3 is_stmt 1 view .LVU85
 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 324              		.loc 1 358 7 is_stmt 0 view .LVU86
 325 0052 314B     		ldr	r3, .L31
 326 0054 1B69     		ldr	r3, [r3, #16]
 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 327              		.loc 1 358 6 view .LVU87
 328 0056 13F0010F 		tst	r3, #1
 329 005a 47D0     		beq	.L18
 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 330              		.loc 1 361 5 is_stmt 1 discriminator 4 view .LVU88
 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 331              		.loc 1 361 5 discriminator 4 view .LVU89
 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 332              		.loc 1 361 5 discriminator 4 view .LVU90
 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 333              		.loc 1 361 5 discriminator 4 view .LVU91
 334 005c 2E4B     		ldr	r3, .L31
 335 005e 0122     		movs	r2, #1
 336 0060 1A61     		str	r2, [r3, #16]
 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 337              		.loc 1 361 5 discriminator 4 view .LVU92
 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 338              		.loc 1 363 5 discriminator 4 view .LVU93
 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 339              		.loc 1 363 15 is_stmt 0 discriminator 4 view .LVU94
 340 0062 2E4B     		ldr	r3, .L31+4
 341 0064 1B7A     		ldrb	r3, [r3, #8]	@ zero_extendqisi2
 342 0066 DBB2     		uxtb	r3, r3
 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 343              		.loc 1 363 8 discriminator 4 view .LVU95
 344 0068 9342     		cmp	r3, r2
 345 006a 31D1     		bne	.L19
 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 346              		.loc 1 366 7 is_stmt 1 view .LVU96
 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 347              		.loc 1 366 13 is_stmt 0 view .LVU97
 348 006c 2B4B     		ldr	r3, .L31+4
 349 006e 9A69     		ldr	r2, [r3, #24]
 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 350              		.loc 1 366 28 view .LVU98
 351 0070 013A     		subs	r2, r2, #1
 352 0072 9A61     		str	r2, [r3, #24]
 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 353              		.loc 1 369 7 is_stmt 1 view .LVU99
 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 354              		.loc 1 369 17 is_stmt 0 view .LVU100
 355 0074 9B69     		ldr	r3, [r3, #24]
 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 356              		.loc 1 369 10 view .LVU101
 357 0076 FBB1     		cbz	r3, .L20
 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 358              		.loc 1 372 9 is_stmt 1 view .LVU102
 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 359              		.loc 1 372 48 is_stmt 0 view .LVU103
ARM GAS  /tmp/ccsIWRCI.s 			page 38


 360 0078 284C     		ldr	r4, .L31+4
 361 007a 6069     		ldr	r0, [r4, #20]
 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 362              		.loc 1 372 9 view .LVU104
 363 007c FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 364              	.LVL18:
 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         tmp_page = pFlash.Page;
 365              		.loc 1 375 9 is_stmt 1 view .LVU105
 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         tmp_page = pFlash.Page;
 366              		.loc 1 375 15 is_stmt 0 view .LVU106
 367 0080 6369     		ldr	r3, [r4, #20]
 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         tmp_page = pFlash.Page;
 368              		.loc 1 375 20 view .LVU107
 369 0082 0133     		adds	r3, r3, #1
 370 0084 6361     		str	r3, [r4, #20]
 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         FLASH_PageErase(tmp_page, pFlash.Bank);
 371              		.loc 1 376 9 is_stmt 1 view .LVU108
 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         FLASH_PageErase(tmp_page, pFlash.Bank);
 372              		.loc 1 376 18 is_stmt 0 view .LVU109
 373 0086 6069     		ldr	r0, [r4, #20]
 374              	.LVL19:
 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 375              		.loc 1 377 9 is_stmt 1 view .LVU110
 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 376              		.loc 1 377 41 is_stmt 0 view .LVU111
 377 0088 2169     		ldr	r1, [r4, #16]
 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 378              		.loc 1 377 9 view .LVU112
 379 008a FFF7FEFF 		bl	FLASH_PageErase
 380              	.LVL20:
 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 381              		.loc 1 377 9 view .LVU113
 382 008e 2DE0     		b	.L18
 383              	.LVL21:
 384              	.L25:
 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 385              		.loc 1 316 5 is_stmt 1 view .LVU114
 386 0090 5369     		ldr	r3, [r2, #20]
 387 0092 23F48023 		bic	r3, r3, #262144
 388 0096 5361     		str	r3, [r2, #20]
 389 0098 BFE7     		b	.L12
 390              	.LVL22:
 391              	.L26:
 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 392              		.loc 1 337 7 view .LVU115
 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 393              		.loc 1 337 46 is_stmt 0 view .LVU116
 394 009a 204B     		ldr	r3, .L31+4
 395              	.LVL23:
 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 396              		.loc 1 337 46 view .LVU117
 397 009c 5869     		ldr	r0, [r3, #20]
 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 398              		.loc 1 337 7 view .LVU118
 399 009e FFF7FEFF 		bl	HAL_FLASH_OperationErrorCallback
 400              	.LVL24:
 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
ARM GAS  /tmp/ccsIWRCI.s 			page 39


 401              		.loc 1 337 7 view .LVU119
 402 00a2 D3E7     		b	.L16
 403              	.LVL25:
 404              	.L27:
 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 405              		.loc 1 341 7 is_stmt 1 view .LVU120
 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 406              		.loc 1 341 46 is_stmt 0 view .LVU121
 407 00a4 1D4B     		ldr	r3, .L31+4
 408              	.LVL26:
 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 409              		.loc 1 341 46 view .LVU122
 410 00a6 1869     		ldr	r0, [r3, #16]
 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 411              		.loc 1 341 7 view .LVU123
 412 00a8 FFF7FEFF 		bl	HAL_FLASH_OperationErrorCallback
 413              	.LVL27:
 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 414              		.loc 1 341 7 view .LVU124
 415 00ac CEE7     		b	.L16
 416              	.LVL28:
 417              	.L28:
 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 418              		.loc 1 346 7 is_stmt 1 view .LVU125
 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 419              		.loc 1 346 46 is_stmt 0 view .LVU126
 420 00ae 1B4B     		ldr	r3, .L31+4
 421 00b0 D868     		ldr	r0, [r3, #12]
 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 422              		.loc 1 346 7 view .LVU127
 423 00b2 FFF7FEFF 		bl	HAL_FLASH_OperationErrorCallback
 424              	.LVL29:
 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 425              		.loc 1 346 7 view .LVU128
 426 00b6 C9E7     		b	.L16
 427              	.LVL30:
 428              	.L20:
 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
 429              		.loc 1 383 9 is_stmt 1 view .LVU129
 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****         pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
 430              		.loc 1 383 21 is_stmt 0 view .LVU130
 431 00b8 184C     		ldr	r4, .L31+4
 432 00ba 4FF0FF33 		mov	r3, #-1
 433 00be 6361     		str	r3, [r4, #20]
 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 434              		.loc 1 384 9 is_stmt 1 view .LVU131
 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 435              		.loc 1 384 33 is_stmt 0 view .LVU132
 436 00c0 0023     		movs	r3, #0
 437 00c2 2372     		strb	r3, [r4, #8]
 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 438              		.loc 1 387 9 is_stmt 1 view .LVU133
 439 00c4 FFF7FEFF 		bl	FLASH_FlushCaches
 440              	.LVL31:
 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 441              		.loc 1 390 9 view .LVU134
 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
ARM GAS  /tmp/ccsIWRCI.s 			page 40


 442              		.loc 1 390 48 is_stmt 0 view .LVU135
 443 00c8 6069     		ldr	r0, [r4, #20]
 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 444              		.loc 1 390 9 view .LVU136
 445 00ca FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 446              	.LVL32:
 447 00ce 0DE0     		b	.L18
 448              	.L19:
 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 449              		.loc 1 396 7 is_stmt 1 view .LVU137
 450 00d0 FFF7FEFF 		bl	FLASH_FlushCaches
 451              	.LVL33:
 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       if (procedure == FLASH_PROC_MASS_ERASE)
 452              		.loc 1 398 7 view .LVU138
 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       if (procedure == FLASH_PROC_MASS_ERASE)
 453              		.loc 1 398 17 is_stmt 0 view .LVU139
 454 00d4 114B     		ldr	r3, .L31+4
 455 00d6 1B7A     		ldrb	r3, [r3, #8]	@ zero_extendqisi2
 456 00d8 DBB2     		uxtb	r3, r3
 457              	.LVL34:
 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 458              		.loc 1 399 7 is_stmt 1 view .LVU140
 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 459              		.loc 1 399 10 is_stmt 0 view .LVU141
 460 00da 022B     		cmp	r3, #2
 461 00dc 12D0     		beq	.L29
 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                (procedure == FLASH_PROC_PROGRAM_LAST))
 462              		.loc 1 405 12 is_stmt 1 view .LVU142
 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                (procedure == FLASH_PROC_PROGRAM_LAST))
 463              		.loc 1 405 50 is_stmt 0 view .LVU143
 464 00de 033B     		subs	r3, r3, #3
 465              	.LVL35:
 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                (procedure == FLASH_PROC_PROGRAM_LAST))
 466              		.loc 1 405 50 view .LVU144
 467 00e0 DBB2     		uxtb	r3, r3
 468              	.LVL36:
 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****                (procedure == FLASH_PROC_PROGRAM_LAST))
 469              		.loc 1 405 15 view .LVU145
 470 00e2 012B     		cmp	r3, #1
 471 00e4 13D9     		bls	.L30
 472              	.LVL37:
 473              	.L22:
 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 474              		.loc 1 415 7 is_stmt 1 view .LVU146
 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 475              		.loc 1 418 7 view .LVU147
 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 476              		.loc 1 418 31 is_stmt 0 view .LVU148
 477 00e6 0D4B     		ldr	r3, .L31+4
 478 00e8 0022     		movs	r2, #0
 479 00ea 1A72     		strb	r2, [r3, #8]
 480              	.LVL38:
 481              	.L18:
 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 482              		.loc 1 422 3 is_stmt 1 view .LVU149
 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 483              		.loc 1 422 13 is_stmt 0 view .LVU150
ARM GAS  /tmp/ccsIWRCI.s 			page 41


 484 00ec 0B4B     		ldr	r3, .L31+4
 485 00ee 1B7A     		ldrb	r3, [r3, #8]	@ zero_extendqisi2
 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 486              		.loc 1 422 6 view .LVU151
 487 00f0 3BB9     		cbnz	r3, .L11
 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 488              		.loc 1 425 5 is_stmt 1 discriminator 4 view .LVU152
 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 489              		.loc 1 425 5 discriminator 4 view .LVU153
 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 490              		.loc 1 425 5 discriminator 4 view .LVU154
 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 491              		.loc 1 425 5 discriminator 4 view .LVU155
 492 00f2 094A     		ldr	r2, .L31
 493 00f4 5369     		ldr	r3, [r2, #20]
 494 00f6 23F04073 		bic	r3, r3, #50331648
 495 00fa 5361     		str	r3, [r2, #20]
 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 496              		.loc 1 425 5 discriminator 4 view .LVU156
 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 497              		.loc 1 428 5 discriminator 4 view .LVU157
 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 498              		.loc 1 428 5 discriminator 4 view .LVU158
 499 00fc 074B     		ldr	r3, .L31+4
 500 00fe 0022     		movs	r2, #0
 501 0100 1A70     		strb	r2, [r3]
 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 502              		.loc 1 428 5 discriminator 4 view .LVU159
 503              	.L11:
 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 504              		.loc 1 430 1 is_stmt 0 view .LVU160
 505 0102 10BD     		pop	{r4, pc}
 506              	.LVL39:
 507              	.L29:
 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 508              		.loc 1 403 9 is_stmt 1 view .LVU161
 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 509              		.loc 1 403 48 is_stmt 0 view .LVU162
 510 0104 054B     		ldr	r3, .L31+4
 511              	.LVL40:
 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 512              		.loc 1 403 48 view .LVU163
 513 0106 1869     		ldr	r0, [r3, #16]
 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 514              		.loc 1 403 9 view .LVU164
 515 0108 FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 516              	.LVL41:
 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 517              		.loc 1 403 9 view .LVU165
 518 010c EBE7     		b	.L22
 519              	.LVL42:
 520              	.L30:
 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 521              		.loc 1 410 9 is_stmt 1 view .LVU166
 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 522              		.loc 1 410 48 is_stmt 0 view .LVU167
 523 010e 034B     		ldr	r3, .L31+4
ARM GAS  /tmp/ccsIWRCI.s 			page 42


 524 0110 D868     		ldr	r0, [r3, #12]
 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 525              		.loc 1 410 9 view .LVU168
 526 0112 FFF7FEFF 		bl	HAL_FLASH_EndOfOperationCallback
 527              	.LVL43:
 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 528              		.loc 1 410 9 view .LVU169
 529 0116 E6E7     		b	.L22
 530              	.L32:
 531              		.align	2
 532              	.L31:
 533 0118 00200240 		.word	1073881088
 534 011c 00000000 		.word	pFlash
 535              		.cfi_endproc
 536              	.LFE331:
 538              		.section	.text.HAL_FLASH_Unlock,"ax",%progbits
 539              		.align	1
 540              		.global	HAL_FLASH_Unlock
 541              		.syntax unified
 542              		.thumb
 543              		.thumb_func
 545              	HAL_FLASH_Unlock:
 546              	.LFB334:
 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_OK;
 547              		.loc 1 493 1 is_stmt 1 view -0
 548              		.cfi_startproc
 549              		@ args = 0, pretend = 0, frame = 0
 550              		@ frame_needed = 0, uses_anonymous_args = 0
 551              		@ link register save eliminated.
 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 552              		.loc 1 494 3 view .LVU171
 553              	.LVL44:
 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 554              		.loc 1 496 3 view .LVU172
 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 555              		.loc 1 496 7 is_stmt 0 view .LVU173
 556 0000 094B     		ldr	r3, .L38
 557 0002 5B69     		ldr	r3, [r3, #20]
 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 558              		.loc 1 496 6 view .LVU174
 559 0004 002B     		cmp	r3, #0
 560 0006 01DB     		blt	.L37
 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 561              		.loc 1 494 21 view .LVU175
 562 0008 0020     		movs	r0, #0
 563 000a 7047     		bx	lr
 564              	.L37:
 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     WRITE_REG(FLASH->KEYR, FLASH_KEY2);
 565              		.loc 1 499 5 is_stmt 1 view .LVU176
 566 000c 064B     		ldr	r3, .L38
 567 000e 074A     		ldr	r2, .L38+4
 568 0010 9A60     		str	r2, [r3, #8]
 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 569              		.loc 1 500 5 view .LVU177
 570 0012 02F18832 		add	r2, r2, #-2004318072
 571 0016 9A60     		str	r2, [r3, #8]
 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
ARM GAS  /tmp/ccsIWRCI.s 			page 43


 572              		.loc 1 503 5 view .LVU178
 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 573              		.loc 1 503 9 is_stmt 0 view .LVU179
 574 0018 5B69     		ldr	r3, [r3, #20]
 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 575              		.loc 1 503 8 view .LVU180
 576 001a 002B     		cmp	r3, #0
 577 001c 01DB     		blt	.L36
 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 578              		.loc 1 494 21 view .LVU181
 579 001e 0020     		movs	r0, #0
 580 0020 7047     		bx	lr
 581              	.L36:
 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 582              		.loc 1 505 14 view .LVU182
 583 0022 0120     		movs	r0, #1
 584              	.LVL45:
 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 585              		.loc 1 509 3 is_stmt 1 view .LVU183
 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 586              		.loc 1 510 1 is_stmt 0 view .LVU184
 587 0024 7047     		bx	lr
 588              	.L39:
 589 0026 00BF     		.align	2
 590              	.L38:
 591 0028 00200240 		.word	1073881088
 592 002c 23016745 		.word	1164378403
 593              		.cfi_endproc
 594              	.LFE334:
 596              		.section	.text.HAL_FLASH_Lock,"ax",%progbits
 597              		.align	1
 598              		.global	HAL_FLASH_Lock
 599              		.syntax unified
 600              		.thumb
 601              		.thumb_func
 603              	HAL_FLASH_Lock:
 604              	.LFB335:
 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_ERROR;
 605              		.loc 1 517 1 is_stmt 1 view -0
 606              		.cfi_startproc
 607              		@ args = 0, pretend = 0, frame = 0
 608              		@ frame_needed = 0, uses_anonymous_args = 0
 609              		@ link register save eliminated.
 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 610              		.loc 1 518 3 view .LVU186
 611              	.LVL46:
 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 612              		.loc 1 521 3 view .LVU187
 613 0000 054B     		ldr	r3, .L43
 614 0002 5A69     		ldr	r2, [r3, #20]
 615 0004 42F00042 		orr	r2, r2, #-2147483648
 616 0008 5A61     		str	r2, [r3, #20]
 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 617              		.loc 1 524 3 view .LVU188
 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 618              		.loc 1 524 7 is_stmt 0 view .LVU189
 619 000a 5B69     		ldr	r3, [r3, #20]
ARM GAS  /tmp/ccsIWRCI.s 			page 44


 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 620              		.loc 1 524 6 view .LVU190
 621 000c 002B     		cmp	r3, #0
 622 000e 01DB     		blt	.L42
 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 623              		.loc 1 518 21 view .LVU191
 624 0010 0120     		movs	r0, #1
 625 0012 7047     		bx	lr
 626              	.L42:
 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 627              		.loc 1 526 12 view .LVU192
 628 0014 0020     		movs	r0, #0
 629              	.LVL47:
 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 630              		.loc 1 529 3 is_stmt 1 view .LVU193
 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 631              		.loc 1 530 1 is_stmt 0 view .LVU194
 632 0016 7047     		bx	lr
 633              	.L44:
 634              		.align	2
 635              	.L43:
 636 0018 00200240 		.word	1073881088
 637              		.cfi_endproc
 638              	.LFE335:
 640              		.section	.text.HAL_FLASH_OB_Unlock,"ax",%progbits
 641              		.align	1
 642              		.global	HAL_FLASH_OB_Unlock
 643              		.syntax unified
 644              		.thumb
 645              		.thumb_func
 647              	HAL_FLASH_OB_Unlock:
 648              	.LFB336:
 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_OK;
 649              		.loc 1 537 1 is_stmt 1 view -0
 650              		.cfi_startproc
 651              		@ args = 0, pretend = 0, frame = 0
 652              		@ frame_needed = 0, uses_anonymous_args = 0
 653              		@ link register save eliminated.
 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 654              		.loc 1 538 3 view .LVU196
 655              	.LVL48:
 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 656              		.loc 1 540 3 view .LVU197
 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 657              		.loc 1 540 7 is_stmt 0 view .LVU198
 658 0000 0A4B     		ldr	r3, .L49
 659 0002 5B69     		ldr	r3, [r3, #20]
 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 660              		.loc 1 540 6 view .LVU199
 661 0004 13F0804F 		tst	r3, #1073741824
 662 0008 0BD0     		beq	.L47
 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     WRITE_REG(FLASH->OPTKEYR, FLASH_OPTKEY2);
 663              		.loc 1 543 5 is_stmt 1 view .LVU200
 664 000a 084B     		ldr	r3, .L49
 665 000c 084A     		ldr	r2, .L49+4
 666 000e DA60     		str	r2, [r3, #12]
 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
ARM GAS  /tmp/ccsIWRCI.s 			page 45


 667              		.loc 1 544 5 view .LVU201
 668 0010 02F14432 		add	r2, r2, #1145324612
 669 0014 DA60     		str	r2, [r3, #12]
 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 670              		.loc 1 547 5 view .LVU202
 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 671              		.loc 1 547 9 is_stmt 0 view .LVU203
 672 0016 5B69     		ldr	r3, [r3, #20]
 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 673              		.loc 1 547 8 view .LVU204
 674 0018 13F0804F 		tst	r3, #1073741824
 675 001c 03D1     		bne	.L48
 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 676              		.loc 1 538 21 view .LVU205
 677 001e 0020     		movs	r0, #0
 678 0020 7047     		bx	lr
 679              	.L47:
 680 0022 0020     		movs	r0, #0
 681 0024 7047     		bx	lr
 682              	.L48:
 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 683              		.loc 1 549 14 view .LVU206
 684 0026 0120     		movs	r0, #1
 685              	.LVL49:
 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 686              		.loc 1 553 3 is_stmt 1 view .LVU207
 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 687              		.loc 1 554 1 is_stmt 0 view .LVU208
 688 0028 7047     		bx	lr
 689              	.L50:
 690 002a 00BF     		.align	2
 691              	.L49:
 692 002c 00200240 		.word	1073881088
 693 0030 3B2A1908 		.word	135866939
 694              		.cfi_endproc
 695              	.LFE336:
 697              		.section	.text.HAL_FLASH_OB_Lock,"ax",%progbits
 698              		.align	1
 699              		.global	HAL_FLASH_OB_Lock
 700              		.syntax unified
 701              		.thumb
 702              		.thumb_func
 704              	HAL_FLASH_OB_Lock:
 705              	.LFB337:
 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status = HAL_ERROR;
 706              		.loc 1 561 1 is_stmt 1 view -0
 707              		.cfi_startproc
 708              		@ args = 0, pretend = 0, frame = 0
 709              		@ frame_needed = 0, uses_anonymous_args = 0
 710              		@ link register save eliminated.
 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 711              		.loc 1 562 3 view .LVU210
 712              	.LVL50:
 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 713              		.loc 1 565 3 view .LVU211
 714 0000 064B     		ldr	r3, .L54
 715 0002 5A69     		ldr	r2, [r3, #20]
ARM GAS  /tmp/ccsIWRCI.s 			page 46


 716 0004 42F08042 		orr	r2, r2, #1073741824
 717 0008 5A61     		str	r2, [r3, #20]
 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 718              		.loc 1 568 3 view .LVU212
 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 719              		.loc 1 568 7 is_stmt 0 view .LVU213
 720 000a 5B69     		ldr	r3, [r3, #20]
 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 721              		.loc 1 568 6 view .LVU214
 722 000c 13F0804F 		tst	r3, #1073741824
 723 0010 01D1     		bne	.L53
 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 724              		.loc 1 562 21 view .LVU215
 725 0012 0120     		movs	r0, #1
 726 0014 7047     		bx	lr
 727              	.L53:
 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 728              		.loc 1 570 12 view .LVU216
 729 0016 0020     		movs	r0, #0
 730              	.LVL51:
 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 731              		.loc 1 573 3 is_stmt 1 view .LVU217
 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 732              		.loc 1 574 1 is_stmt 0 view .LVU218
 733 0018 7047     		bx	lr
 734              	.L55:
 735 001a 00BF     		.align	2
 736              	.L54:
 737 001c 00200240 		.word	1073881088
 738              		.cfi_endproc
 739              	.LFE337:
 741              		.section	.text.HAL_FLASH_GetError,"ax",%progbits
 742              		.align	1
 743              		.global	HAL_FLASH_GetError
 744              		.syntax unified
 745              		.thumb
 746              		.thumb_func
 748              	HAL_FLASH_GetError:
 749              	.LFB339:
 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   return pFlash.ErrorCode;
 750              		.loc 1 629 1 is_stmt 1 view -0
 751              		.cfi_startproc
 752              		@ args = 0, pretend = 0, frame = 0
 753              		@ frame_needed = 0, uses_anonymous_args = 0
 754              		@ link register save eliminated.
 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 755              		.loc 1 630 3 view .LVU220
 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 756              		.loc 1 630 16 is_stmt 0 view .LVU221
 757 0000 014B     		ldr	r3, .L57
 758 0002 5868     		ldr	r0, [r3, #4]
 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 759              		.loc 1 631 1 view .LVU222
 760 0004 7047     		bx	lr
 761              	.L58:
 762 0006 00BF     		.align	2
 763              	.L57:
ARM GAS  /tmp/ccsIWRCI.s 			page 47


 764 0008 00000000 		.word	pFlash
 765              		.cfi_endproc
 766              	.LFE339:
 768              		.section	.text.FLASH_WaitForLastOperation,"ax",%progbits
 769              		.align	1
 770              		.global	FLASH_WaitForLastOperation
 771              		.syntax unified
 772              		.thumb
 773              		.thumb_func
 775              	FLASH_WaitForLastOperation:
 776              	.LVL52:
 777              	.LFB340:
 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset.
 778              		.loc 1 653 1 is_stmt 1 view -0
 779              		.cfi_startproc
 780              		@ args = 0, pretend = 0, frame = 0
 781              		@ frame_needed = 0, uses_anonymous_args = 0
 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Wait for the FLASH operation to complete by polling on BUSY flag to be reset.
 782              		.loc 1 653 1 is_stmt 0 view .LVU224
 783 0000 38B5     		push	{r3, r4, r5, lr}
 784              	.LCFI3:
 785              		.cfi_def_cfa_offset 16
 786              		.cfi_offset 3, -16
 787              		.cfi_offset 4, -12
 788              		.cfi_offset 5, -8
 789              		.cfi_offset 14, -4
 790 0002 0546     		mov	r5, r0
 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t error;
 791              		.loc 1 658 3 is_stmt 1 view .LVU225
 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t error;
 792              		.loc 1 658 24 is_stmt 0 view .LVU226
 793 0004 FFF7FEFF 		bl	HAL_GetTick
 794              	.LVL53:
 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t error;
 795              		.loc 1 658 24 view .LVU227
 796 0008 0446     		mov	r4, r0
 797              	.LVL54:
 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 798              		.loc 1 659 3 is_stmt 1 view .LVU228
 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 799              		.loc 1 661 3 view .LVU229
 800              	.L60:
 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 801              		.loc 1 661 10 view .LVU230
 802 000a 134B     		ldr	r3, .L70
 803 000c 1B69     		ldr	r3, [r3, #16]
 804 000e 13F4803F 		tst	r3, #65536
 805 0012 06D0     		beq	.L68
 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 806              		.loc 1 663 5 view .LVU231
 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 807              		.loc 1 663 10 is_stmt 0 view .LVU232
 808 0014 FFF7FEFF 		bl	HAL_GetTick
 809              	.LVL55:
 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 810              		.loc 1 663 24 view .LVU233
 811 0018 001B     		subs	r0, r0, r4
ARM GAS  /tmp/ccsIWRCI.s 			page 48


 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 812              		.loc 1 663 8 view .LVU234
 813 001a A842     		cmp	r0, r5
 814 001c F5D9     		bls	.L60
 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 815              		.loc 1 665 14 view .LVU235
 816 001e 0320     		movs	r0, #3
 817              	.L61:
 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 818              		.loc 1 691 1 view .LVU236
 819 0020 38BD     		pop	{r3, r4, r5, pc}
 820              	.LVL56:
 821              	.L68:
 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (error != 0u)
 822              		.loc 1 670 3 is_stmt 1 view .LVU237
 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (error != 0u)
 823              		.loc 1 670 17 is_stmt 0 view .LVU238
 824 0022 0D4B     		ldr	r3, .L70
 825 0024 1B69     		ldr	r3, [r3, #16]
 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   if (error != 0u)
 826              		.loc 1 670 9 view .LVU239
 827 0026 4CF2FA32 		movw	r2, #50170
 828              	.LVL57:
 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 829              		.loc 1 671 3 is_stmt 1 view .LVU240
 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 830              		.loc 1 671 6 is_stmt 0 view .LVU241
 831 002a 1340     		ands	r3, r3, r2
 832              	.LVL58:
 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 833              		.loc 1 671 6 view .LVU242
 834 002c 09D1     		bne	.L69
 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 835              		.loc 1 683 3 is_stmt 1 view .LVU243
 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 836              		.loc 1 683 7 is_stmt 0 view .LVU244
 837 002e 0A4B     		ldr	r3, .L70
 838              	.LVL59:
 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 839              		.loc 1 683 7 view .LVU245
 840 0030 1B69     		ldr	r3, [r3, #16]
 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 841              		.loc 1 683 6 view .LVU246
 842 0032 13F0010F 		tst	r3, #1
 843 0036 0CD0     		beq	.L66
 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 844              		.loc 1 686 5 is_stmt 1 discriminator 4 view .LVU247
 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 845              		.loc 1 686 5 discriminator 4 view .LVU248
 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 846              		.loc 1 686 5 discriminator 4 view .LVU249
 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 847              		.loc 1 686 5 discriminator 4 view .LVU250
 848 0038 074B     		ldr	r3, .L70
 849 003a 0122     		movs	r2, #1
 850 003c 1A61     		str	r2, [r3, #16]
 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
ARM GAS  /tmp/ccsIWRCI.s 			page 49


 851              		.loc 1 690 10 is_stmt 0 discriminator 4 view .LVU251
 852 003e 0020     		movs	r0, #0
 853 0040 EEE7     		b	.L61
 854              	.LVL60:
 855              	.L69:
 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 856              		.loc 1 674 5 is_stmt 1 view .LVU252
 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 857              		.loc 1 674 11 is_stmt 0 view .LVU253
 858 0042 0649     		ldr	r1, .L70+4
 859 0044 4A68     		ldr	r2, [r1, #4]
 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 860              		.loc 1 674 22 view .LVU254
 861 0046 1A43     		orrs	r2, r2, r3
 862 0048 4A60     		str	r2, [r1, #4]
 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 863              		.loc 1 677 5 is_stmt 1 view .LVU255
 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 864              		.loc 1 677 5 view .LVU256
 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 865              		.loc 1 677 5 view .LVU257
 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 866              		.loc 1 677 5 view .LVU258
 867 004a 034A     		ldr	r2, .L70
 868 004c 1361     		str	r3, [r2, #16]
 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 869              		.loc 1 677 5 view .LVU259
 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 870              		.loc 1 679 5 view .LVU260
 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 871              		.loc 1 679 12 is_stmt 0 view .LVU261
 872 004e 0120     		movs	r0, #1
 873 0050 E6E7     		b	.L61
 874              	.LVL61:
 875              	.L66:
 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 876              		.loc 1 690 10 view .LVU262
 877 0052 0020     		movs	r0, #0
 878 0054 E4E7     		b	.L61
 879              	.L71:
 880 0056 00BF     		.align	2
 881              	.L70:
 882 0058 00200240 		.word	1073881088
 883 005c 00000000 		.word	pFlash
 884              		.cfi_endproc
 885              	.LFE340:
 887              		.section	.text.HAL_FLASH_Program,"ax",%progbits
 888              		.align	1
 889              		.global	HAL_FLASH_Program
 890              		.syntax unified
 891              		.thumb
 892              		.thumb_func
 894              	HAL_FLASH_Program:
 895              	.LVL62:
 896              	.LFB329:
 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status;
 897              		.loc 1 174 1 is_stmt 1 view -0
ARM GAS  /tmp/ccsIWRCI.s 			page 50


 898              		.cfi_startproc
 899              		@ args = 0, pretend = 0, frame = 0
 900              		@ frame_needed = 0, uses_anonymous_args = 0
 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status;
 901              		.loc 1 174 1 is_stmt 0 view .LVU264
 902 0000 F8B5     		push	{r3, r4, r5, r6, r7, lr}
 903              	.LCFI4:
 904              		.cfi_def_cfa_offset 24
 905              		.cfi_offset 3, -24
 906              		.cfi_offset 4, -20
 907              		.cfi_offset 5, -16
 908              		.cfi_offset 6, -12
 909              		.cfi_offset 7, -8
 910              		.cfi_offset 14, -4
 911 0002 1646     		mov	r6, r2
 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   uint32_t prog_bit = 0;
 912              		.loc 1 175 3 is_stmt 1 view .LVU265
 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 913              		.loc 1 176 3 view .LVU266
 914              	.LVL63:
 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 915              		.loc 1 179 3 view .LVU267
 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 916              		.loc 1 182 3 view .LVU268
 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 917              		.loc 1 182 3 view .LVU269
 918 0004 1B4A     		ldr	r2, .L83
 919              	.LVL64:
 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 920              		.loc 1 182 3 is_stmt 0 view .LVU270
 921 0006 1278     		ldrb	r2, [r2]	@ zero_extendqisi2
 922 0008 012A     		cmp	r2, #1
 923 000a 31D0     		beq	.L77
 924 000c 0446     		mov	r4, r0
 925 000e 0D46     		mov	r5, r1
 926 0010 1F46     		mov	r7, r3
 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 927              		.loc 1 182 3 is_stmt 1 discriminator 2 view .LVU271
 928 0012 184B     		ldr	r3, .L83
 929 0014 0122     		movs	r2, #1
 930 0016 1A70     		strb	r2, [r3]
 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 931              		.loc 1 182 3 discriminator 2 view .LVU272
 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 932              		.loc 1 185 3 discriminator 2 view .LVU273
 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 933              		.loc 1 185 12 is_stmt 0 discriminator 2 view .LVU274
 934 0018 4FF47A70 		mov	r0, #1000
 935              	.LVL65:
 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 936              		.loc 1 185 12 discriminator 2 view .LVU275
 937 001c FFF7FEFF 		bl	FLASH_WaitForLastOperation
 938              	.LVL66:
 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 939              		.loc 1 187 3 is_stmt 1 discriminator 2 view .LVU276
 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 940              		.loc 1 187 6 is_stmt 0 discriminator 2 view .LVU277
ARM GAS  /tmp/ccsIWRCI.s 			page 51


 941 0020 80B9     		cbnz	r0, .L74
 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 942              		.loc 1 189 5 is_stmt 1 view .LVU278
 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 943              		.loc 1 189 22 is_stmt 0 view .LVU279
 944 0022 144B     		ldr	r3, .L83
 945 0024 5860     		str	r0, [r3, #4]
 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 946              		.loc 1 191 5 is_stmt 1 view .LVU280
 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 947              		.loc 1 191 8 is_stmt 0 view .LVU281
 948 0026 8CB1     		cbz	r4, .L81
 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 949              		.loc 1 197 10 is_stmt 1 view .LVU282
 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 950              		.loc 1 197 54 is_stmt 0 view .LVU283
 951 0028 631E     		subs	r3, r4, #1
 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 952              		.loc 1 197 13 view .LVU284
 953 002a 012B     		cmp	r3, #1
 954 002c 15D9     		bls	.L82
 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 955              		.loc 1 176 12 view .LVU285
 956 002e 0024     		movs	r4, #0
 957              	.LVL67:
 958              	.L76:
 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 959              		.loc 1 211 5 is_stmt 1 view .LVU286
 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 960              		.loc 1 214 5 view .LVU287
 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 961              		.loc 1 214 14 is_stmt 0 view .LVU288
 962 0030 4FF47A70 		mov	r0, #1000
 963 0034 FFF7FEFF 		bl	FLASH_WaitForLastOperation
 964              	.LVL68:
 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 965              		.loc 1 217 5 is_stmt 1 view .LVU289
 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 966              		.loc 1 217 8 is_stmt 0 view .LVU290
 967 0038 24B1     		cbz	r4, .L74
 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 968              		.loc 1 219 7 is_stmt 1 view .LVU291
 969 003a 0F4A     		ldr	r2, .L83+4
 970 003c 5369     		ldr	r3, [r2, #20]
 971 003e 23EA0403 		bic	r3, r3, r4
 972 0042 5361     		str	r3, [r2, #20]
 973              	.LVL69:
 974              	.L74:
 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 975              		.loc 1 224 3 view .LVU292
 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 976              		.loc 1 224 3 view .LVU293
 977 0044 0B4B     		ldr	r3, .L83
 978 0046 0022     		movs	r2, #0
 979 0048 1A70     		strb	r2, [r3]
 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 980              		.loc 1 224 3 view .LVU294
ARM GAS  /tmp/ccsIWRCI.s 			page 52


 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 981              		.loc 1 227 3 view .LVU295
 982              	.LVL70:
 983              	.L73:
 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 984              		.loc 1 228 1 is_stmt 0 view .LVU296
 985 004a F8BD     		pop	{r3, r4, r5, r6, r7, pc}
 986              	.LVL71:
 987              	.L81:
 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       prog_bit = FLASH_CR_PG;
 988              		.loc 1 194 7 is_stmt 1 view .LVU297
 989 004c 3246     		mov	r2, r6
 990 004e 3B46     		mov	r3, r7
 991 0050 2846     		mov	r0, r5
 992              	.LVL72:
 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       prog_bit = FLASH_CR_PG;
 993              		.loc 1 194 7 is_stmt 0 view .LVU298
 994 0052 FFF7FEFF 		bl	FLASH_Program_DoubleWord
 995              	.LVL73:
 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 996              		.loc 1 195 7 is_stmt 1 view .LVU299
 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 997              		.loc 1 195 16 is_stmt 0 view .LVU300
 998 0056 0124     		movs	r4, #1
 999              	.LVL74:
 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 1000              		.loc 1 195 16 view .LVU301
 1001 0058 EAE7     		b	.L76
 1002              	.LVL75:
 1003              	.L82:
 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1004              		.loc 1 200 7 is_stmt 1 view .LVU302
 1005 005a 3146     		mov	r1, r6
 1006 005c 2846     		mov	r0, r5
 1007              	.LVL76:
 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1008              		.loc 1 200 7 is_stmt 0 view .LVU303
 1009 005e FFF7FEFF 		bl	FLASH_Program_Fast
 1010              	.LVL77:
 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 1011              		.loc 1 203 7 is_stmt 1 view .LVU304
 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       {
 1012              		.loc 1 203 10 is_stmt 0 view .LVU305
 1013 0062 022C     		cmp	r4, #2
 1014 0064 01D0     		beq	.L79
 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1015              		.loc 1 176 12 view .LVU306
 1016 0066 0024     		movs	r4, #0
 1017              	.LVL78:
 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1018              		.loc 1 176 12 view .LVU307
 1019 0068 E2E7     		b	.L76
 1020              	.LVL79:
 1021              	.L79:
 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 1022              		.loc 1 205 18 view .LVU308
 1023 006a 4FF48024 		mov	r4, #262144
ARM GAS  /tmp/ccsIWRCI.s 			page 53


 1024              	.LVL80:
 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****       }
 1025              		.loc 1 205 18 view .LVU309
 1026 006e DFE7     		b	.L76
 1027              	.LVL81:
 1028              	.L77:
 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1029              		.loc 1 182 3 view .LVU310
 1030 0070 0220     		movs	r0, #2
 1031              	.LVL82:
 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1032              		.loc 1 182 3 view .LVU311
 1033 0072 EAE7     		b	.L73
 1034              	.L84:
 1035              		.align	2
 1036              	.L83:
 1037 0074 00000000 		.word	pFlash
 1038 0078 00200240 		.word	1073881088
 1039              		.cfi_endproc
 1040              	.LFE329:
 1042              		.section	.text.HAL_FLASH_Program_IT,"ax",%progbits
 1043              		.align	1
 1044              		.global	HAL_FLASH_Program_IT
 1045              		.syntax unified
 1046              		.thumb
 1047              		.thumb_func
 1049              	HAL_FLASH_Program_IT:
 1050              	.LVL83:
 1051              	.LFB330:
 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status;
 1052              		.loc 1 242 1 is_stmt 1 view -0
 1053              		.cfi_startproc
 1054              		@ args = 0, pretend = 0, frame = 0
 1055              		@ frame_needed = 0, uses_anonymous_args = 0
 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   HAL_StatusTypeDef status;
 1056              		.loc 1 242 1 is_stmt 0 view .LVU313
 1057 0000 2DE9F041 		push	{r4, r5, r6, r7, r8, lr}
 1058              	.LCFI5:
 1059              		.cfi_def_cfa_offset 24
 1060              		.cfi_offset 4, -24
 1061              		.cfi_offset 5, -20
 1062              		.cfi_offset 6, -16
 1063              		.cfi_offset 7, -12
 1064              		.cfi_offset 8, -8
 1065              		.cfi_offset 14, -4
 1066 0004 1646     		mov	r6, r2
 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1067              		.loc 1 243 3 is_stmt 1 view .LVU314
 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1068              		.loc 1 246 3 view .LVU315
 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1069              		.loc 1 249 3 view .LVU316
 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1070              		.loc 1 249 3 view .LVU317
 1071 0006 1D4A     		ldr	r2, .L95
 1072              	.LVL84:
 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
ARM GAS  /tmp/ccsIWRCI.s 			page 54


 1073              		.loc 1 249 3 is_stmt 0 view .LVU318
 1074 0008 1278     		ldrb	r2, [r2]	@ zero_extendqisi2
 1075 000a 012A     		cmp	r2, #1
 1076 000c 32D0     		beq	.L91
 1077 000e 0446     		mov	r4, r0
 1078 0010 0D46     		mov	r5, r1
 1079 0012 1F46     		mov	r7, r3
 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1080              		.loc 1 249 3 is_stmt 1 discriminator 2 view .LVU319
 1081 0014 194A     		ldr	r2, .L95
 1082 0016 0123     		movs	r3, #1
 1083 0018 1370     		strb	r3, [r2]
 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1084              		.loc 1 249 3 discriminator 2 view .LVU320
 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1085              		.loc 1 252 3 discriminator 2 view .LVU321
 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1086              		.loc 1 252 20 is_stmt 0 discriminator 2 view .LVU322
 1087 001a 0023     		movs	r3, #0
 1088 001c 5360     		str	r3, [r2, #4]
 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1089              		.loc 1 255 3 is_stmt 1 discriminator 2 view .LVU323
 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1090              		.loc 1 255 12 is_stmt 0 discriminator 2 view .LVU324
 1091 001e 4FF47A70 		mov	r0, #1000
 1092              	.LVL85:
 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1093              		.loc 1 255 12 discriminator 2 view .LVU325
 1094 0022 FFF7FEFF 		bl	FLASH_WaitForLastOperation
 1095              	.LVL86:
 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 1096              		.loc 1 257 3 is_stmt 1 discriminator 2 view .LVU326
 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   {
 1097              		.loc 1 257 6 is_stmt 0 discriminator 2 view .LVU327
 1098 0026 8046     		mov	r8, r0
 1099 0028 28B1     		cbz	r0, .L87
 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 1100              		.loc 1 260 5 is_stmt 1 view .LVU328
 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 1101              		.loc 1 260 5 view .LVU329
 1102 002a 144B     		ldr	r3, .L95
 1103 002c 0022     		movs	r2, #0
 1104 002e 1A70     		strb	r2, [r3]
 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   }
 1105              		.loc 1 260 5 view .LVU330
 1106              	.LVL87:
 1107              	.L86:
 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1108              		.loc 1 295 1 is_stmt 0 view .LVU331
 1109 0030 4046     		mov	r0, r8
 1110 0032 BDE8F081 		pop	{r4, r5, r6, r7, r8, pc}
 1111              	.LVL88:
 1112              	.L87:
 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 1113              		.loc 1 265 5 is_stmt 1 view .LVU332
 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 1114              		.loc 1 265 8 is_stmt 0 view .LVU333
ARM GAS  /tmp/ccsIWRCI.s 			page 55


 1115 0036 022C     		cmp	r4, #2
 1116 0038 12D0     		beq	.L93
 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 1117              		.loc 1 271 7 is_stmt 1 view .LVU334
 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 1118              		.loc 1 271 31 is_stmt 0 view .LVU335
 1119 003a 104B     		ldr	r3, .L95
 1120 003c 0322     		movs	r2, #3
 1121 003e 1A72     		strb	r2, [r3, #8]
 1122              	.L89:
 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1123              		.loc 1 273 5 is_stmt 1 view .LVU336
 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1124              		.loc 1 273 20 is_stmt 0 view .LVU337
 1125 0040 0E4B     		ldr	r3, .L95
 1126 0042 DD60     		str	r5, [r3, #12]
 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1127              		.loc 1 276 5 is_stmt 1 view .LVU338
 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1128              		.loc 1 276 5 view .LVU339
 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1129              		.loc 1 276 5 view .LVU340
 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1130              		.loc 1 276 5 view .LVU341
 1131 0044 0E4A     		ldr	r2, .L95+4
 1132 0046 5369     		ldr	r3, [r2, #20]
 1133 0048 43F04073 		orr	r3, r3, #50331648
 1134 004c 5361     		str	r3, [r2, #20]
 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1135              		.loc 1 276 5 view .LVU342
 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 1136              		.loc 1 278 5 view .LVU343
 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 1137              		.loc 1 278 8 is_stmt 0 view .LVU344
 1138 004e 5CB1     		cbz	r4, .L94
 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 1139              		.loc 1 283 10 is_stmt 1 view .LVU345
 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 1140              		.loc 1 283 54 is_stmt 0 view .LVU346
 1141 0050 013C     		subs	r4, r4, #1
 1142              	.LVL89:
 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     {
 1143              		.loc 1 283 13 view .LVU347
 1144 0052 012C     		cmp	r4, #1
 1145 0054 ECD8     		bhi	.L86
 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 1146              		.loc 1 286 7 is_stmt 1 view .LVU348
 1147 0056 3146     		mov	r1, r6
 1148 0058 2846     		mov	r0, r5
 1149              	.LVL90:
 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 1150              		.loc 1 286 7 is_stmt 0 view .LVU349
 1151 005a FFF7FEFF 		bl	FLASH_Program_Fast
 1152              	.LVL91:
 1153 005e E7E7     		b	.L86
 1154              	.LVL92:
 1155              	.L93:
ARM GAS  /tmp/ccsIWRCI.s 			page 56


 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 1156              		.loc 1 267 7 is_stmt 1 view .LVU350
 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 1157              		.loc 1 267 31 is_stmt 0 view .LVU351
 1158 0060 064B     		ldr	r3, .L95
 1159 0062 0422     		movs	r2, #4
 1160 0064 1A72     		strb	r2, [r3, #8]
 1161 0066 EBE7     		b	.L89
 1162              	.L94:
 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 1163              		.loc 1 281 7 is_stmt 1 view .LVU352
 1164 0068 3246     		mov	r2, r6
 1165 006a 3B46     		mov	r3, r7
 1166 006c 2846     		mov	r0, r5
 1167              	.LVL93:
 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****     }
 1168              		.loc 1 281 7 is_stmt 0 view .LVU353
 1169 006e FFF7FEFF 		bl	FLASH_Program_DoubleWord
 1170              	.LVL94:
 1171 0072 DDE7     		b	.L86
 1172              	.LVL95:
 1173              	.L91:
 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1174              		.loc 1 249 3 view .LVU354
 1175 0074 4FF00208 		mov	r8, #2
 1176 0078 DAE7     		b	.L86
 1177              	.L96:
 1178 007a 00BF     		.align	2
 1179              	.L95:
 1180 007c 00000000 		.word	pFlash
 1181 0080 00200240 		.word	1073881088
 1182              		.cfi_endproc
 1183              	.LFE330:
 1185              		.section	.text.HAL_FLASH_OB_Launch,"ax",%progbits
 1186              		.align	1
 1187              		.global	HAL_FLASH_OB_Launch
 1188              		.syntax unified
 1189              		.thumb
 1190              		.thumb_func
 1192              	HAL_FLASH_OB_Launch:
 1193              	.LFB338:
 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c ****   /* Set the bit to force the option byte reloading */
 1194              		.loc 1 581 1 is_stmt 1 view -0
 1195              		.cfi_startproc
 1196              		@ args = 0, pretend = 0, frame = 0
 1197              		@ frame_needed = 0, uses_anonymous_args = 0
 1198 0000 08B5     		push	{r3, lr}
 1199              	.LCFI6:
 1200              		.cfi_def_cfa_offset 8
 1201              		.cfi_offset 3, -8
 1202              		.cfi_offset 14, -4
 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1203              		.loc 1 583 3 view .LVU356
 1204 0002 054A     		ldr	r2, .L99
 1205 0004 5369     		ldr	r3, [r2, #20]
 1206 0006 43F00063 		orr	r3, r3, #134217728
 1207 000a 5361     		str	r3, [r2, #20]
ARM GAS  /tmp/ccsIWRCI.s 			page 57


 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 1208              		.loc 1 586 3 view .LVU357
 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** }
 1209              		.loc 1 586 11 is_stmt 0 view .LVU358
 1210 000c 4FF47A70 		mov	r0, #1000
 1211 0010 FFF7FEFF 		bl	FLASH_WaitForLastOperation
 1212              	.LVL96:
 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_flash.c **** 
 1213              		.loc 1 587 1 view .LVU359
 1214 0014 08BD     		pop	{r3, pc}
 1215              	.L100:
 1216 0016 00BF     		.align	2
 1217              	.L99:
 1218 0018 00200240 		.word	1073881088
 1219              		.cfi_endproc
 1220              	.LFE338:
 1222              		.global	pFlash
 1223              		.section	.data.pFlash,"aw"
 1224              		.align	2
 1227              	pFlash:
 1228 0000 00       		.byte	0
 1229 0001 000000   		.space	3
 1230 0004 00000000 		.word	0
 1231 0008 00       		.byte	0
 1232 0009 000000   		.space	3
 1233 000c 00000000 		.word	0
 1234 0010 01000000 		.word	1
 1235 0014 00000000 		.word	0
 1236 0018 00000000 		.word	0
 1237 001c 00       		.byte	0
 1238 001d 000000   		.space	3
 1239              		.text
 1240              	.Letext0:
 1241              		.file 3 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h"
 1242              		.file 4 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h"
 1243              		.file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h"
 1244              		.file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h"
 1245              		.file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h"
 1246              		.file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h"
ARM GAS  /tmp/ccsIWRCI.s 			page 58


DEFINED SYMBOLS
                            *ABS*:00000000 stm32g4xx_hal_flash.c
     /tmp/ccsIWRCI.s:21     .text.FLASH_Program_DoubleWord:00000000 $t
     /tmp/ccsIWRCI.s:26     .text.FLASH_Program_DoubleWord:00000000 FLASH_Program_DoubleWord
     /tmp/ccsIWRCI.s:75     .text.FLASH_Program_DoubleWord:0000001c $d
     /tmp/ccsIWRCI.s:80     .text.FLASH_Program_Fast:00000000 $t
     /tmp/ccsIWRCI.s:85     .text.FLASH_Program_Fast:00000000 FLASH_Program_Fast
     /tmp/ccsIWRCI.s:177    .text.FLASH_Program_Fast:00000028 $d
     /tmp/ccsIWRCI.s:182    .text.HAL_FLASH_EndOfOperationCallback:00000000 $t
     /tmp/ccsIWRCI.s:188    .text.HAL_FLASH_EndOfOperationCallback:00000000 HAL_FLASH_EndOfOperationCallback
     /tmp/ccsIWRCI.s:203    .text.HAL_FLASH_OperationErrorCallback:00000000 $t
     /tmp/ccsIWRCI.s:209    .text.HAL_FLASH_OperationErrorCallback:00000000 HAL_FLASH_OperationErrorCallback
     /tmp/ccsIWRCI.s:224    .text.HAL_FLASH_IRQHandler:00000000 $t
     /tmp/ccsIWRCI.s:230    .text.HAL_FLASH_IRQHandler:00000000 HAL_FLASH_IRQHandler
     /tmp/ccsIWRCI.s:533    .text.HAL_FLASH_IRQHandler:00000118 $d
     /tmp/ccsIWRCI.s:1227   .data.pFlash:00000000 pFlash
     /tmp/ccsIWRCI.s:539    .text.HAL_FLASH_Unlock:00000000 $t
     /tmp/ccsIWRCI.s:545    .text.HAL_FLASH_Unlock:00000000 HAL_FLASH_Unlock
     /tmp/ccsIWRCI.s:591    .text.HAL_FLASH_Unlock:00000028 $d
     /tmp/ccsIWRCI.s:597    .text.HAL_FLASH_Lock:00000000 $t
     /tmp/ccsIWRCI.s:603    .text.HAL_FLASH_Lock:00000000 HAL_FLASH_Lock
     /tmp/ccsIWRCI.s:636    .text.HAL_FLASH_Lock:00000018 $d
     /tmp/ccsIWRCI.s:641    .text.HAL_FLASH_OB_Unlock:00000000 $t
     /tmp/ccsIWRCI.s:647    .text.HAL_FLASH_OB_Unlock:00000000 HAL_FLASH_OB_Unlock
     /tmp/ccsIWRCI.s:692    .text.HAL_FLASH_OB_Unlock:0000002c $d
     /tmp/ccsIWRCI.s:698    .text.HAL_FLASH_OB_Lock:00000000 $t
     /tmp/ccsIWRCI.s:704    .text.HAL_FLASH_OB_Lock:00000000 HAL_FLASH_OB_Lock
     /tmp/ccsIWRCI.s:737    .text.HAL_FLASH_OB_Lock:0000001c $d
     /tmp/ccsIWRCI.s:742    .text.HAL_FLASH_GetError:00000000 $t
     /tmp/ccsIWRCI.s:748    .text.HAL_FLASH_GetError:00000000 HAL_FLASH_GetError
     /tmp/ccsIWRCI.s:764    .text.HAL_FLASH_GetError:00000008 $d
     /tmp/ccsIWRCI.s:769    .text.FLASH_WaitForLastOperation:00000000 $t
     /tmp/ccsIWRCI.s:775    .text.FLASH_WaitForLastOperation:00000000 FLASH_WaitForLastOperation
     /tmp/ccsIWRCI.s:882    .text.FLASH_WaitForLastOperation:00000058 $d
     /tmp/ccsIWRCI.s:888    .text.HAL_FLASH_Program:00000000 $t
     /tmp/ccsIWRCI.s:894    .text.HAL_FLASH_Program:00000000 HAL_FLASH_Program
     /tmp/ccsIWRCI.s:1037   .text.HAL_FLASH_Program:00000074 $d
     /tmp/ccsIWRCI.s:1043   .text.HAL_FLASH_Program_IT:00000000 $t
     /tmp/ccsIWRCI.s:1049   .text.HAL_FLASH_Program_IT:00000000 HAL_FLASH_Program_IT
     /tmp/ccsIWRCI.s:1180   .text.HAL_FLASH_Program_IT:0000007c $d
     /tmp/ccsIWRCI.s:1186   .text.HAL_FLASH_OB_Launch:00000000 $t
     /tmp/ccsIWRCI.s:1192   .text.HAL_FLASH_OB_Launch:00000000 HAL_FLASH_OB_Launch
     /tmp/ccsIWRCI.s:1218   .text.HAL_FLASH_OB_Launch:00000018 $d
     /tmp/ccsIWRCI.s:1224   .data.pFlash:00000000 $d

UNDEFINED SYMBOLS
FLASH_FlushCaches
FLASH_PageErase
HAL_GetTick
