ARM GAS  /tmp/ccXnw0bT.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_pcd_ex.c"
  16              		.text
  17              	.Ltext0:
  18              		.cfi_sections	.debug_frame
  19              		.file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c"
  20              		.section	.text.HAL_PCDEx_PMAConfig,"ax",%progbits
  21              		.align	1
  22              		.global	HAL_PCDEx_PMAConfig
  23              		.syntax unified
  24              		.thumb
  25              		.thumb_func
  27              	HAL_PCDEx_PMAConfig:
  28              	.LVL0:
  29              	.LFB329:
   1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /**
   2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   ******************************************************************************
   3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @file    stm32g4xx_hal_pcd_ex.c
   4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @author  MCD Application Team
   5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @brief   PCD Extended HAL module driver.
   6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   *          This file provides firmware functions to manage the following
   7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   *          functionalities of the USB Peripheral Controller:
   8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   *           + Extended features functions
   9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   *
  10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   ******************************************************************************
  11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @attention
  12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   *
  13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * Copyright (c) 2019 STMicroelectronics.
  14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * All rights reserved.
  15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   *
  16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * This software is licensed under terms that can be found in the LICENSE file
  17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * in the root directory of this software component.
  18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * If no LICENSE file comes with this software, it is provided AS-IS.
  19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   *
  20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   ******************************************************************************
  21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   */
  22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
  23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Includes ------------------------------------------------------------------*/
  24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #include "stm32g4xx_hal.h"
  25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
  26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /** @addtogroup STM32G4xx_HAL_Driver
  27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @{
  28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   */
  29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
ARM GAS  /tmp/ccXnw0bT.s 			page 2


  30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /** @defgroup PCDEx PCDEx
  31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @brief PCD Extended HAL module driver
  32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @{
  33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   */
  34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
  35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #ifdef HAL_PCD_MODULE_ENABLED
  36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
  37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #if defined (USB)
  38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Private types -------------------------------------------------------------*/
  39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Private variables ---------------------------------------------------------*/
  40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Private constants ---------------------------------------------------------*/
  41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Private macros ------------------------------------------------------------*/
  42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Private functions ---------------------------------------------------------*/
  43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /* Exported functions --------------------------------------------------------*/
  44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
  45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /** @defgroup PCDEx_Exported_Functions PCDEx Exported Functions
  46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @{
  47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   */
  48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
  49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /** @defgroup PCDEx_Exported_Functions_Group1 Peripheral Control functions
  50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @brief    PCDEx control functions
  51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   *
  52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** @verbatim
  53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****  ===============================================================================
  54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****                  ##### Extended features functions #####
  55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****  ===============================================================================
  56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     [..]  This section provides functions allowing to:
  57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****       (+) Update FIFO configuration
  58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
  59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** @endverbatim
  60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @{
  61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   */
  62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
  63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /**
  64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @brief  Configure PMA for EP
  65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @param  hpcd  Device instance
  66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @param  ep_addr endpoint address
  67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @param  ep_kind endpoint Kind
  68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   *                  USB_SNG_BUF: Single Buffer used
  69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   *                  USB_DBL_BUF: Double Buffer used
  70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @param  pmaadress: EP address in The PMA: In case of single buffer endpoint
  71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   *                   this parameter is 16-bit value providing the address
  72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   *                   in PMA allocated to endpoint.
  73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   *                   In case of double buffer endpoint this parameter
  74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   *                   is a 32-bit value providing the endpoint buffer 0 address
  75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   *                   in the LSB part of 32-bit value and endpoint buffer 1 address
  76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   *                   in the MSB part of 32-bit value.
  77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @retval HAL status
  78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   */
  79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
  80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_StatusTypeDef  HAL_PCDEx_PMAConfig(PCD_HandleTypeDef *hpcd, uint16_t ep_addr,
  81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****                                        uint16_t ep_kind, uint32_t pmaadress)
  82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** {
  30              		.loc 1 82 1 view -0
  31              		.cfi_startproc
  32              		@ args = 0, pretend = 0, frame = 0
  33              		@ frame_needed = 0, uses_anonymous_args = 0
ARM GAS  /tmp/ccXnw0bT.s 			page 3


  34              		@ link register save eliminated.
  83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   PCD_EPTypeDef *ep;
  35              		.loc 1 83 3 view .LVU1
  84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
  85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   /* initialize ep structure*/
  86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   if ((0x80U & ep_addr) == 0x80U)
  36              		.loc 1 86 3 view .LVU2
  37              		.loc 1 86 6 is_stmt 0 view .LVU3
  38 0000 11F0800F 		tst	r1, #128
  39 0004 0BD0     		beq	.L2
  87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   {
  88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK];
  40              		.loc 1 88 5 is_stmt 1 view .LVU4
  41              		.loc 1 88 31 is_stmt 0 view .LVU5
  42 0006 01F00701 		and	r1, r1, #7
  43              	.LVL1:
  44              		.loc 1 88 8 view .LVU6
  45 000a 0131     		adds	r1, r1, #1
  46 000c 01EB8101 		add	r1, r1, r1, lsl #2
  47 0010 00EBC100 		add	r0, r0, r1, lsl #3
  48              	.LVL2:
  49              	.L3:
  89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   }
  90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   else
  91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   {
  92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     ep = &hpcd->OUT_ep[ep_addr];
  93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   }
  94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
  95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   /* Here we check if the endpoint is single or double Buffer*/
  96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   if (ep_kind == PCD_SNG_BUF)
  50              		.loc 1 96 3 is_stmt 1 view .LVU7
  51              		.loc 1 96 6 is_stmt 0 view .LVU8
  52 0014 52B9     		cbnz	r2, .L4
  97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   {
  98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     /* Single Buffer */
  99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     ep->doublebuffer = 0U;
  53              		.loc 1 99 5 is_stmt 1 view .LVU9
  54              		.loc 1 99 22 is_stmt 0 view .LVU10
  55 0016 0273     		strb	r2, [r0, #12]
 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     /* Configure the PMA */
 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     ep->pmaadress = (uint16_t)pmaadress;
  56              		.loc 1 101 5 is_stmt 1 view .LVU11
  57              		.loc 1 101 19 is_stmt 0 view .LVU12
  58 0018 C380     		strh	r3, [r0, #6]	@ movhi
  59              	.LVL3:
  60              	.L5:
 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   }
 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #if (USE_USB_DOUBLE_BUFFER == 1U)
 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   else /* USB_DBL_BUF */
 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   {
 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     /* Double Buffer Endpoint */
 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     ep->doublebuffer = 1U;
 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     /* Configure the PMA */
 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     ep->pmaaddr0 = (uint16_t)(pmaadress & 0xFFFFU);
 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     ep->pmaaddr1 = (uint16_t)((pmaadress & 0xFFFF0000U) >> 16);
 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   }
 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* (USE_USB_DOUBLE_BUFFER == 1U) */
ARM GAS  /tmp/ccXnw0bT.s 			page 4


 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   return HAL_OK;
  61              		.loc 1 114 3 is_stmt 1 view .LVU13
 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** }
  62              		.loc 1 115 1 is_stmt 0 view .LVU14
  63 001a 0020     		movs	r0, #0
  64              	.LVL4:
  65              		.loc 1 115 1 view .LVU15
  66 001c 7047     		bx	lr
  67              	.LVL5:
  68              	.L2:
  92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   }
  69              		.loc 1 92 5 is_stmt 1 view .LVU16
  92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   }
  70              		.loc 1 92 8 is_stmt 0 view .LVU17
  71 001e 01EB8101 		add	r1, r1, r1, lsl #2
  72              	.LVL6:
  92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   }
  73              		.loc 1 92 8 view .LVU18
  74 0022 C900     		lsls	r1, r1, #3
  75 0024 01F5B471 		add	r1, r1, #360
  76 0028 0844     		add	r0, r0, r1
  77              	.LVL7:
  92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   }
  78              		.loc 1 92 8 view .LVU19
  79 002a F3E7     		b	.L3
  80              	.L4:
 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     /* Configure the PMA */
  81              		.loc 1 107 5 is_stmt 1 view .LVU20
 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     /* Configure the PMA */
  82              		.loc 1 107 22 is_stmt 0 view .LVU21
  83 002c 0122     		movs	r2, #1
  84              	.LVL8:
 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     /* Configure the PMA */
  85              		.loc 1 107 22 view .LVU22
  86 002e 0273     		strb	r2, [r0, #12]
 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     ep->pmaaddr1 = (uint16_t)((pmaadress & 0xFFFF0000U) >> 16);
  87              		.loc 1 109 5 is_stmt 1 view .LVU23
 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     ep->pmaaddr1 = (uint16_t)((pmaadress & 0xFFFF0000U) >> 16);
  88              		.loc 1 109 18 is_stmt 0 view .LVU24
  89 0030 0381     		strh	r3, [r0, #8]	@ movhi
 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   }
  90              		.loc 1 110 5 is_stmt 1 view .LVU25
 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   }
  91              		.loc 1 110 20 is_stmt 0 view .LVU26
  92 0032 1B0C     		lsrs	r3, r3, #16
  93              	.LVL9:
 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   }
  94              		.loc 1 110 18 view .LVU27
  95 0034 4381     		strh	r3, [r0, #10]	@ movhi
  96 0036 F0E7     		b	.L5
  97              		.cfi_endproc
  98              	.LFE329:
 100              		.section	.text.HAL_PCDEx_ActivateBCD,"ax",%progbits
 101              		.align	1
 102              		.global	HAL_PCDEx_ActivateBCD
 103              		.syntax unified
ARM GAS  /tmp/ccXnw0bT.s 			page 5


 104              		.thumb
 105              		.thumb_func
 107              	HAL_PCDEx_ActivateBCD:
 108              	.LVL10:
 109              	.LFB330:
 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /**
 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @brief  Activate BatteryCharging feature.
 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @param  hpcd PCD handle
 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @retval HAL status
 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   */
 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_StatusTypeDef HAL_PCDEx_ActivateBCD(PCD_HandleTypeDef *hpcd)
 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** {
 110              		.loc 1 123 1 is_stmt 1 view -0
 111              		.cfi_startproc
 112              		@ args = 0, pretend = 0, frame = 0
 113              		@ frame_needed = 0, uses_anonymous_args = 0
 114              		@ link register save eliminated.
 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   USB_TypeDef *USBx = hpcd->Instance;
 115              		.loc 1 124 3 view .LVU29
 116              		.loc 1 124 16 is_stmt 0 view .LVU30
 117 0000 0368     		ldr	r3, [r0]
 118              	.LVL11:
 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   hpcd->battery_charging_active = 1U;
 119              		.loc 1 125 3 is_stmt 1 view .LVU31
 120              		.loc 1 125 33 is_stmt 0 view .LVU32
 121 0002 0122     		movs	r2, #1
 122 0004 C0F8EC22 		str	r2, [r0, #748]
 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   /* Enable BCD feature */
 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   USBx->BCDR |= USB_BCDR_BCDEN;
 123              		.loc 1 128 3 is_stmt 1 view .LVU33
 124              		.loc 1 128 7 is_stmt 0 view .LVU34
 125 0008 B3F85820 		ldrh	r2, [r3, #88]
 126 000c 92B2     		uxth	r2, r2
 127              		.loc 1 128 14 view .LVU35
 128 000e 42F00102 		orr	r2, r2, #1
 129 0012 A3F85820 		strh	r2, [r3, #88]	@ movhi
 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   /* Enable DCD : Data Contact Detect */
 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   USBx->BCDR &= ~(USB_BCDR_PDEN);
 130              		.loc 1 131 3 is_stmt 1 view .LVU36
 131              		.loc 1 131 7 is_stmt 0 view .LVU37
 132 0016 B3F85820 		ldrh	r2, [r3, #88]
 133 001a 92B2     		uxth	r2, r2
 134              		.loc 1 131 14 view .LVU38
 135 001c 22F00402 		bic	r2, r2, #4
 136 0020 92B2     		uxth	r2, r2
 137 0022 A3F85820 		strh	r2, [r3, #88]	@ movhi
 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   USBx->BCDR &= ~(USB_BCDR_SDEN);
 138              		.loc 1 132 3 is_stmt 1 view .LVU39
 139              		.loc 1 132 7 is_stmt 0 view .LVU40
 140 0026 B3F85820 		ldrh	r2, [r3, #88]
 141 002a 92B2     		uxth	r2, r2
 142              		.loc 1 132 14 view .LVU41
 143 002c 22F00802 		bic	r2, r2, #8
 144 0030 92B2     		uxth	r2, r2
ARM GAS  /tmp/ccXnw0bT.s 			page 6


 145 0032 A3F85820 		strh	r2, [r3, #88]	@ movhi
 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   USBx->BCDR |= USB_BCDR_DCDEN;
 146              		.loc 1 133 3 is_stmt 1 view .LVU42
 147              		.loc 1 133 7 is_stmt 0 view .LVU43
 148 0036 B3F85820 		ldrh	r2, [r3, #88]
 149 003a 92B2     		uxth	r2, r2
 150              		.loc 1 133 14 view .LVU44
 151 003c 42F00202 		orr	r2, r2, #2
 152 0040 A3F85820 		strh	r2, [r3, #88]	@ movhi
 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   return HAL_OK;
 153              		.loc 1 135 3 is_stmt 1 view .LVU45
 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** }
 154              		.loc 1 136 1 is_stmt 0 view .LVU46
 155 0044 0020     		movs	r0, #0
 156              	.LVL12:
 157              		.loc 1 136 1 view .LVU47
 158 0046 7047     		bx	lr
 159              		.cfi_endproc
 160              	.LFE330:
 162              		.section	.text.HAL_PCDEx_DeActivateBCD,"ax",%progbits
 163              		.align	1
 164              		.global	HAL_PCDEx_DeActivateBCD
 165              		.syntax unified
 166              		.thumb
 167              		.thumb_func
 169              	HAL_PCDEx_DeActivateBCD:
 170              	.LVL13:
 171              	.LFB331:
 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /**
 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @brief  Deactivate BatteryCharging feature.
 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @param  hpcd PCD handle
 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @retval HAL status
 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   */
 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_StatusTypeDef HAL_PCDEx_DeActivateBCD(PCD_HandleTypeDef *hpcd)
 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** {
 172              		.loc 1 144 1 is_stmt 1 view -0
 173              		.cfi_startproc
 174              		@ args = 0, pretend = 0, frame = 0
 175              		@ frame_needed = 0, uses_anonymous_args = 0
 176              		@ link register save eliminated.
 177              		.loc 1 144 1 is_stmt 0 view .LVU49
 178 0000 0346     		mov	r3, r0
 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   USB_TypeDef *USBx = hpcd->Instance;
 179              		.loc 1 145 3 is_stmt 1 view .LVU50
 180              		.loc 1 145 16 is_stmt 0 view .LVU51
 181 0002 0268     		ldr	r2, [r0]
 182              	.LVL14:
 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   hpcd->battery_charging_active = 0U;
 183              		.loc 1 146 3 is_stmt 1 view .LVU52
 184              		.loc 1 146 33 is_stmt 0 view .LVU53
 185 0004 0020     		movs	r0, #0
 186              	.LVL15:
 187              		.loc 1 146 33 view .LVU54
 188 0006 C3F8EC02 		str	r0, [r3, #748]
 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
ARM GAS  /tmp/ccXnw0bT.s 			page 7


 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   /* Disable BCD feature */
 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   USBx->BCDR &= ~(USB_BCDR_BCDEN);
 189              		.loc 1 149 3 is_stmt 1 view .LVU55
 190              		.loc 1 149 7 is_stmt 0 view .LVU56
 191 000a B2F85830 		ldrh	r3, [r2, #88]
 192              	.LVL16:
 193              		.loc 1 149 7 view .LVU57
 194 000e 9BB2     		uxth	r3, r3
 195              		.loc 1 149 14 view .LVU58
 196 0010 23F00103 		bic	r3, r3, #1
 197 0014 9BB2     		uxth	r3, r3
 198 0016 A2F85830 		strh	r3, [r2, #88]	@ movhi
 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   return HAL_OK;
 199              		.loc 1 151 3 is_stmt 1 view .LVU59
 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** }
 200              		.loc 1 152 1 is_stmt 0 view .LVU60
 201 001a 7047     		bx	lr
 202              		.cfi_endproc
 203              	.LFE331:
 205              		.section	.text.HAL_PCDEx_ActivateLPM,"ax",%progbits
 206              		.align	1
 207              		.global	HAL_PCDEx_ActivateLPM
 208              		.syntax unified
 209              		.thumb
 210              		.thumb_func
 212              	HAL_PCDEx_ActivateLPM:
 213              	.LVL17:
 214              	.LFB333:
 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /**
 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @brief  Handle BatteryCharging Process.
 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @param  hpcd PCD handle
 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @retval HAL status
 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   */
 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** void HAL_PCDEx_BCD_VBUSDetect(PCD_HandleTypeDef *hpcd)
 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** {
 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   USB_TypeDef *USBx = hpcd->Instance;
 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   uint32_t tickstart = HAL_GetTick();
 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   /* Wait Detect flag or a timeout is happen */
 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   while ((USBx->BCDR & USB_BCDR_DCDET) == 0U)
 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   {
 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     /* Check for the Timeout */
 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     if ((HAL_GetTick() - tickstart) > 1000U)
 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     {
 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****       hpcd->BCDCallback(hpcd, PCD_BCD_ERROR);
 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #else
 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****       HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_ERROR);
 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****       return;
 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     }
 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   }
 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   HAL_Delay(200U);
ARM GAS  /tmp/ccXnw0bT.s 			page 8


 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   /* Data Pin Contact ? Check Detect flag */
 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   if ((USBx->BCDR & USB_BCDR_DCDET) == USB_BCDR_DCDET)
 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   {
 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     hpcd->BCDCallback(hpcd, PCD_BCD_CONTACT_DETECTION);
 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #else
 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_CONTACT_DETECTION);
 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   }
 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   /* Primary detection: checks if connected to Standard Downstream Port
 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   (without charging capability) */
 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   USBx->BCDR &= ~(USB_BCDR_DCDEN);
 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   HAL_Delay(50U);
 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   USBx->BCDR |= (USB_BCDR_PDEN);
 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   HAL_Delay(50U);
 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   /* If Charger detect ? */
 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   if ((USBx->BCDR & USB_BCDR_PDET) == USB_BCDR_PDET)
 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   {
 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     /* Start secondary detection to check connection to Charging Downstream
 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     Port or Dedicated Charging Port */
 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     USBx->BCDR &= ~(USB_BCDR_PDEN);
 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     HAL_Delay(50U);
 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     USBx->BCDR |= (USB_BCDR_SDEN);
 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     HAL_Delay(50U);
 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     /* If CDP ? */
 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     if ((USBx->BCDR & USB_BCDR_SDET) == USB_BCDR_SDET)
 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     {
 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****       /* Dedicated Downstream Port DCP */
 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****       hpcd->BCDCallback(hpcd, PCD_BCD_DEDICATED_CHARGING_PORT);
 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #else
 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****       HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_DEDICATED_CHARGING_PORT);
 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     }
 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     else
 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     {
 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****       /* Charging Downstream Port CDP */
 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****       hpcd->BCDCallback(hpcd, PCD_BCD_CHARGING_DOWNSTREAM_PORT);
 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #else
 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****       HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_CHARGING_DOWNSTREAM_PORT);
 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     }
 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   }
 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   else /* NO */
 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   {
 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     /* Standard Downstream Port */
 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     hpcd->BCDCallback(hpcd, PCD_BCD_STD_DOWNSTREAM_PORT);
 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #else
 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_STD_DOWNSTREAM_PORT);
 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   }
 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
ARM GAS  /tmp/ccXnw0bT.s 			page 9


 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   /* Battery Charging capability discovery finished Start Enumeration */
 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   (void)HAL_PCDEx_DeActivateBCD(hpcd);
 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   hpcd->BCDCallback(hpcd, PCD_BCD_DISCOVERY_COMPLETED);
 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #else
 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   HAL_PCDEx_BCD_Callback(hpcd, PCD_BCD_DISCOVERY_COMPLETED);
 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** }
 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /**
 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @brief  Activate LPM feature.
 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @param  hpcd PCD handle
 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @retval HAL status
 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   */
 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_StatusTypeDef HAL_PCDEx_ActivateLPM(PCD_HandleTypeDef *hpcd)
 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** {
 215              		.loc 1 254 1 is_stmt 1 view -0
 216              		.cfi_startproc
 217              		@ args = 0, pretend = 0, frame = 0
 218              		@ frame_needed = 0, uses_anonymous_args = 0
 219              		@ link register save eliminated.
 220              		.loc 1 254 1 is_stmt 0 view .LVU62
 221 0000 0346     		mov	r3, r0
 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   USB_TypeDef *USBx = hpcd->Instance;
 222              		.loc 1 256 3 is_stmt 1 view .LVU63
 223              		.loc 1 256 16 is_stmt 0 view .LVU64
 224 0002 0268     		ldr	r2, [r0]
 225              	.LVL18:
 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   hpcd->lpm_active = 1U;
 226              		.loc 1 257 3 is_stmt 1 view .LVU65
 227              		.loc 1 257 20 is_stmt 0 view .LVU66
 228 0004 0121     		movs	r1, #1
 229 0006 C0F8E812 		str	r1, [r0, #744]
 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   hpcd->LPM_State = LPM_L0;
 230              		.loc 1 258 3 is_stmt 1 view .LVU67
 231              		.loc 1 258 19 is_stmt 0 view .LVU68
 232 000a 0020     		movs	r0, #0
 233              	.LVL19:
 234              		.loc 1 258 19 view .LVU69
 235 000c 83F8E002 		strb	r0, [r3, #736]
 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   USBx->LPMCSR |= USB_LPMCSR_LMPEN;
 236              		.loc 1 260 3 is_stmt 1 view .LVU70
 237              		.loc 1 260 7 is_stmt 0 view .LVU71
 238 0010 B2F85430 		ldrh	r3, [r2, #84]
 239              	.LVL20:
 240              		.loc 1 260 7 view .LVU72
 241 0014 9BB2     		uxth	r3, r3
 242              		.loc 1 260 16 view .LVU73
 243 0016 0B43     		orrs	r3, r3, r1
 244 0018 A2F85430 		strh	r3, [r2, #84]	@ movhi
 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   USBx->LPMCSR |= USB_LPMCSR_LPMACK;
 245              		.loc 1 261 3 is_stmt 1 view .LVU74
 246              		.loc 1 261 7 is_stmt 0 view .LVU75
 247 001c B2F85430 		ldrh	r3, [r2, #84]
ARM GAS  /tmp/ccXnw0bT.s 			page 10


 248 0020 9BB2     		uxth	r3, r3
 249              		.loc 1 261 16 view .LVU76
 250 0022 43F00203 		orr	r3, r3, #2
 251 0026 A2F85430 		strh	r3, [r2, #84]	@ movhi
 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   return HAL_OK;
 252              		.loc 1 263 3 is_stmt 1 view .LVU77
 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** }
 253              		.loc 1 264 1 is_stmt 0 view .LVU78
 254 002a 7047     		bx	lr
 255              		.cfi_endproc
 256              	.LFE333:
 258              		.section	.text.HAL_PCDEx_DeActivateLPM,"ax",%progbits
 259              		.align	1
 260              		.global	HAL_PCDEx_DeActivateLPM
 261              		.syntax unified
 262              		.thumb
 263              		.thumb_func
 265              	HAL_PCDEx_DeActivateLPM:
 266              	.LVL21:
 267              	.LFB334:
 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /**
 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @brief  Deactivate LPM feature.
 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @param  hpcd PCD handle
 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @retval HAL status
 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   */
 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** HAL_StatusTypeDef HAL_PCDEx_DeActivateLPM(PCD_HandleTypeDef *hpcd)
 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** {
 268              		.loc 1 272 1 is_stmt 1 view -0
 269              		.cfi_startproc
 270              		@ args = 0, pretend = 0, frame = 0
 271              		@ frame_needed = 0, uses_anonymous_args = 0
 272              		@ link register save eliminated.
 273              		.loc 1 272 1 is_stmt 0 view .LVU80
 274 0000 0346     		mov	r3, r0
 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   USB_TypeDef *USBx = hpcd->Instance;
 275              		.loc 1 273 3 is_stmt 1 view .LVU81
 276              		.loc 1 273 16 is_stmt 0 view .LVU82
 277 0002 0268     		ldr	r2, [r0]
 278              	.LVL22:
 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   hpcd->lpm_active = 0U;
 279              		.loc 1 275 3 is_stmt 1 view .LVU83
 280              		.loc 1 275 20 is_stmt 0 view .LVU84
 281 0004 0020     		movs	r0, #0
 282              	.LVL23:
 283              		.loc 1 275 20 view .LVU85
 284 0006 C3F8E802 		str	r0, [r3, #744]
 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   USBx->LPMCSR &= ~(USB_LPMCSR_LMPEN);
 285              		.loc 1 277 3 is_stmt 1 view .LVU86
 286              		.loc 1 277 7 is_stmt 0 view .LVU87
 287 000a B2F85430 		ldrh	r3, [r2, #84]
 288              	.LVL24:
 289              		.loc 1 277 7 view .LVU88
 290 000e 9BB2     		uxth	r3, r3
ARM GAS  /tmp/ccXnw0bT.s 			page 11


 291              		.loc 1 277 16 view .LVU89
 292 0010 23F00103 		bic	r3, r3, #1
 293 0014 9BB2     		uxth	r3, r3
 294 0016 A2F85430 		strh	r3, [r2, #84]	@ movhi
 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   USBx->LPMCSR &= ~(USB_LPMCSR_LPMACK);
 295              		.loc 1 278 3 is_stmt 1 view .LVU90
 296              		.loc 1 278 7 is_stmt 0 view .LVU91
 297 001a B2F85430 		ldrh	r3, [r2, #84]
 298 001e 9BB2     		uxth	r3, r3
 299              		.loc 1 278 16 view .LVU92
 300 0020 23F00203 		bic	r3, r3, #2
 301 0024 9BB2     		uxth	r3, r3
 302 0026 A2F85430 		strh	r3, [r2, #84]	@ movhi
 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   return HAL_OK;
 303              		.loc 1 280 3 is_stmt 1 view .LVU93
 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** }
 304              		.loc 1 281 1 is_stmt 0 view .LVU94
 305 002a 7047     		bx	lr
 306              		.cfi_endproc
 307              	.LFE334:
 309              		.section	.text.HAL_PCDEx_LPM_Callback,"ax",%progbits
 310              		.align	1
 311              		.weak	HAL_PCDEx_LPM_Callback
 312              		.syntax unified
 313              		.thumb
 314              		.thumb_func
 316              	HAL_PCDEx_LPM_Callback:
 317              	.LVL25:
 318              	.LFB335:
 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /**
 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @brief  Send LPM message to user layer callback.
 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @param  hpcd PCD handle
 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @param  msg LPM message
 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @retval HAL status
 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   */
 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** __weak void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg)
 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** {
 319              		.loc 1 292 1 is_stmt 1 view -0
 320              		.cfi_startproc
 321              		@ args = 0, pretend = 0, frame = 0
 322              		@ frame_needed = 0, uses_anonymous_args = 0
 323              		@ link register save eliminated.
 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   /* Prevent unused argument(s) compilation warning */
 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   UNUSED(hpcd);
 324              		.loc 1 294 3 view .LVU96
 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   UNUSED(msg);
 325              		.loc 1 295 3 view .LVU97
 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   /* NOTE : This function should not be modified, when the callback is needed,
 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****             the HAL_PCDEx_LPM_Callback could be implemented in the user file
 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****    */
 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** }
 326              		.loc 1 300 1 is_stmt 0 view .LVU98
ARM GAS  /tmp/ccXnw0bT.s 			page 12


 327 0000 7047     		bx	lr
 328              		.cfi_endproc
 329              	.LFE335:
 331              		.section	.text.HAL_PCDEx_BCD_Callback,"ax",%progbits
 332              		.align	1
 333              		.weak	HAL_PCDEx_BCD_Callback
 334              		.syntax unified
 335              		.thumb
 336              		.thumb_func
 338              	HAL_PCDEx_BCD_Callback:
 339              	.LVL26:
 340              	.LFB336:
 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** /**
 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @brief  Send BatteryCharging message to user layer callback.
 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @param  hpcd PCD handle
 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @param  msg LPM message
 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   * @retval HAL status
 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   */
 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** __weak void HAL_PCDEx_BCD_Callback(PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg)
 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** {
 341              		.loc 1 309 1 is_stmt 1 view -0
 342              		.cfi_startproc
 343              		@ args = 0, pretend = 0, frame = 0
 344              		@ frame_needed = 0, uses_anonymous_args = 0
 345              		@ link register save eliminated.
 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   /* Prevent unused argument(s) compilation warning */
 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   UNUSED(hpcd);
 346              		.loc 1 311 3 view .LVU100
 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   UNUSED(msg);
 347              		.loc 1 312 3 view .LVU101
 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   /* NOTE : This function should not be modified, when the callback is needed,
 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****             the HAL_PCDEx_BCD_Callback could be implemented in the user file
 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****    */
 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** }
 348              		.loc 1 317 1 is_stmt 0 view .LVU102
 349 0000 7047     		bx	lr
 350              		.cfi_endproc
 351              	.LFE336:
 353              		.section	.text.HAL_PCDEx_BCD_VBUSDetect,"ax",%progbits
 354              		.align	1
 355              		.global	HAL_PCDEx_BCD_VBUSDetect
 356              		.syntax unified
 357              		.thumb
 358              		.thumb_func
 360              	HAL_PCDEx_BCD_VBUSDetect:
 361              	.LVL27:
 362              	.LFB332:
 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   USB_TypeDef *USBx = hpcd->Instance;
 363              		.loc 1 160 1 is_stmt 1 view -0
 364              		.cfi_startproc
 365              		@ args = 0, pretend = 0, frame = 0
 366              		@ frame_needed = 0, uses_anonymous_args = 0
 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   USB_TypeDef *USBx = hpcd->Instance;
 367              		.loc 1 160 1 is_stmt 0 view .LVU104
 368 0000 70B5     		push	{r4, r5, r6, lr}
ARM GAS  /tmp/ccXnw0bT.s 			page 13


 369              	.LCFI0:
 370              		.cfi_def_cfa_offset 16
 371              		.cfi_offset 4, -16
 372              		.cfi_offset 5, -12
 373              		.cfi_offset 6, -8
 374              		.cfi_offset 14, -4
 375 0002 0646     		mov	r6, r0
 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   uint32_t tickstart = HAL_GetTick();
 376              		.loc 1 161 3 is_stmt 1 view .LVU105
 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   uint32_t tickstart = HAL_GetTick();
 377              		.loc 1 161 16 is_stmt 0 view .LVU106
 378 0004 0468     		ldr	r4, [r0]
 379              	.LVL28:
 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 380              		.loc 1 162 3 is_stmt 1 view .LVU107
 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 381              		.loc 1 162 24 is_stmt 0 view .LVU108
 382 0006 FFF7FEFF 		bl	HAL_GetTick
 383              	.LVL29:
 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 384              		.loc 1 162 24 view .LVU109
 385 000a 0546     		mov	r5, r0
 386              	.LVL30:
 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   {
 387              		.loc 1 165 3 is_stmt 1 view .LVU110
 388              	.L13:
 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   {
 389              		.loc 1 165 40 view .LVU111
 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   {
 390              		.loc 1 165 15 is_stmt 0 view .LVU112
 391 000c B4F85830 		ldrh	r3, [r4, #88]
 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   {
 392              		.loc 1 165 40 view .LVU113
 393 0010 13F0100F 		tst	r3, #16
 394 0014 0AD1     		bne	.L21
 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     {
 395              		.loc 1 168 5 is_stmt 1 view .LVU114
 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     {
 396              		.loc 1 168 10 is_stmt 0 view .LVU115
 397 0016 FFF7FEFF 		bl	HAL_GetTick
 398              	.LVL31:
 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     {
 399              		.loc 1 168 24 view .LVU116
 400 001a 401B     		subs	r0, r0, r5
 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     {
 401              		.loc 1 168 8 view .LVU117
 402 001c B0F57A7F 		cmp	r0, #1000
 403 0020 F4D9     		bls	.L13
 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
 404              		.loc 1 173 7 is_stmt 1 view .LVU118
 405 0022 FF21     		movs	r1, #255
 406 0024 3046     		mov	r0, r6
 407 0026 FFF7FEFF 		bl	HAL_PCDEx_BCD_Callback
 408              	.LVL32:
 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     }
 409              		.loc 1 176 7 view .LVU119
 410 002a 55E0     		b	.L12
ARM GAS  /tmp/ccXnw0bT.s 			page 14


 411              	.L21:
 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 412              		.loc 1 180 3 view .LVU120
 413 002c C820     		movs	r0, #200
 414 002e FFF7FEFF 		bl	HAL_Delay
 415              	.LVL33:
 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   {
 416              		.loc 1 183 3 view .LVU121
 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   {
 417              		.loc 1 183 12 is_stmt 0 view .LVU122
 418 0032 B4F85830 		ldrh	r3, [r4, #88]
 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   {
 419              		.loc 1 183 6 view .LVU123
 420 0036 13F0100F 		tst	r3, #16
 421 003a 38D1     		bne	.L22
 422              	.L16:
 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   HAL_Delay(50U);
 423              		.loc 1 193 3 is_stmt 1 view .LVU124
 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   HAL_Delay(50U);
 424              		.loc 1 193 7 is_stmt 0 view .LVU125
 425 003c B4F85830 		ldrh	r3, [r4, #88]
 426 0040 9BB2     		uxth	r3, r3
 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   HAL_Delay(50U);
 427              		.loc 1 193 14 view .LVU126
 428 0042 23F00203 		bic	r3, r3, #2
 429 0046 9BB2     		uxth	r3, r3
 430 0048 A4F85830 		strh	r3, [r4, #88]	@ movhi
 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   USBx->BCDR |= (USB_BCDR_PDEN);
 431              		.loc 1 194 3 is_stmt 1 view .LVU127
 432 004c 3220     		movs	r0, #50
 433 004e FFF7FEFF 		bl	HAL_Delay
 434              	.LVL34:
 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   HAL_Delay(50U);
 435              		.loc 1 195 3 view .LVU128
 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   HAL_Delay(50U);
 436              		.loc 1 195 7 is_stmt 0 view .LVU129
 437 0052 B4F85830 		ldrh	r3, [r4, #88]
 438 0056 9BB2     		uxth	r3, r3
 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   HAL_Delay(50U);
 439              		.loc 1 195 14 view .LVU130
 440 0058 43F00403 		orr	r3, r3, #4
 441 005c A4F85830 		strh	r3, [r4, #88]	@ movhi
 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 442              		.loc 1 196 3 is_stmt 1 view .LVU131
 443 0060 3220     		movs	r0, #50
 444 0062 FFF7FEFF 		bl	HAL_Delay
 445              	.LVL35:
 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   {
 446              		.loc 1 199 3 view .LVU132
 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   {
 447              		.loc 1 199 12 is_stmt 0 view .LVU133
 448 0066 B4F85830 		ldrh	r3, [r4, #88]
 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****   {
 449              		.loc 1 199 6 view .LVU134
 450 006a 13F0200F 		tst	r3, #32
 451 006e 28D0     		beq	.L17
 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     HAL_Delay(50U);
ARM GAS  /tmp/ccXnw0bT.s 			page 15


 452              		.loc 1 203 5 is_stmt 1 view .LVU135
 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     HAL_Delay(50U);
 453              		.loc 1 203 9 is_stmt 0 view .LVU136
 454 0070 B4F85830 		ldrh	r3, [r4, #88]
 455 0074 9BB2     		uxth	r3, r3
 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     HAL_Delay(50U);
 456              		.loc 1 203 16 view .LVU137
 457 0076 23F00403 		bic	r3, r3, #4
 458 007a 9BB2     		uxth	r3, r3
 459 007c A4F85830 		strh	r3, [r4, #88]	@ movhi
 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     USBx->BCDR |= (USB_BCDR_SDEN);
 460              		.loc 1 204 5 is_stmt 1 view .LVU138
 461 0080 3220     		movs	r0, #50
 462 0082 FFF7FEFF 		bl	HAL_Delay
 463              	.LVL36:
 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     HAL_Delay(50U);
 464              		.loc 1 205 5 view .LVU139
 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     HAL_Delay(50U);
 465              		.loc 1 205 9 is_stmt 0 view .LVU140
 466 0086 B4F85830 		ldrh	r3, [r4, #88]
 467 008a 9BB2     		uxth	r3, r3
 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     HAL_Delay(50U);
 468              		.loc 1 205 16 view .LVU141
 469 008c 43F00803 		orr	r3, r3, #8
 470 0090 A4F85830 		strh	r3, [r4, #88]	@ movhi
 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 471              		.loc 1 206 5 is_stmt 1 view .LVU142
 472 0094 3220     		movs	r0, #50
 473 0096 FFF7FEFF 		bl	HAL_Delay
 474              	.LVL37:
 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     {
 475              		.loc 1 209 5 view .LVU143
 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     {
 476              		.loc 1 209 14 is_stmt 0 view .LVU144
 477 009a B4F85830 		ldrh	r3, [r4, #88]
 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c ****     {
 478              		.loc 1 209 8 view .LVU145
 479 009e 13F0400F 		tst	r3, #64
 480 00a2 09D0     		beq	.L18
 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
 481              		.loc 1 215 7 is_stmt 1 view .LVU146
 482 00a4 FB21     		movs	r1, #251
 483 00a6 3046     		mov	r0, r6
 484 00a8 FFF7FEFF 		bl	HAL_PCDEx_BCD_Callback
 485              	.LVL38:
 486 00ac 0DE0     		b	.L19
 487              	.L22:
 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
 488              		.loc 1 188 5 view .LVU147
 489 00ae FE21     		movs	r1, #254
 490 00b0 3046     		mov	r0, r6
 491 00b2 FFF7FEFF 		bl	HAL_PCDEx_BCD_Callback
 492              	.LVL39:
 493 00b6 C1E7     		b	.L16
 494              	.L18:
 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
 495              		.loc 1 224 7 view .LVU148
ARM GAS  /tmp/ccXnw0bT.s 			page 16


 496 00b8 FC21     		movs	r1, #252
 497 00ba 3046     		mov	r0, r6
 498 00bc FFF7FEFF 		bl	HAL_PCDEx_BCD_Callback
 499              	.LVL40:
 500 00c0 03E0     		b	.L19
 501              	.L17:
 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
 502              		.loc 1 234 5 view .LVU149
 503 00c2 FD21     		movs	r1, #253
 504 00c4 3046     		mov	r0, r6
 505 00c6 FFF7FEFF 		bl	HAL_PCDEx_BCD_Callback
 506              	.LVL41:
 507              	.L19:
 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
 508              		.loc 1 239 3 view .LVU150
 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
 509              		.loc 1 239 9 is_stmt 0 view .LVU151
 510 00ca 3046     		mov	r0, r6
 511 00cc FFF7FEFF 		bl	HAL_PCDEx_DeActivateBCD
 512              	.LVL42:
 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** #endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
 513              		.loc 1 243 3 is_stmt 1 view .LVU152
 514 00d0 0021     		movs	r1, #0
 515 00d2 3046     		mov	r0, r6
 516 00d4 FFF7FEFF 		bl	HAL_PCDEx_BCD_Callback
 517              	.LVL43:
 518              	.L12:
 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 519              		.loc 1 245 1 is_stmt 0 view .LVU153
 520 00d8 70BD     		pop	{r4, r5, r6, pc}
 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_pcd_ex.c **** 
 521              		.loc 1 245 1 view .LVU154
 522              		.cfi_endproc
 523              	.LFE332:
 525              		.text
 526              	.Letext0:
 527              		.file 2 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stdint.h"
 528              		.file 3 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h"
 529              		.file 4 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h"
 530              		.file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_usb.h"
 531              		.file 6 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pcd.h"
 532              		.file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h"
ARM GAS  /tmp/ccXnw0bT.s 			page 17


DEFINED SYMBOLS
                            *ABS*:00000000 stm32g4xx_hal_pcd_ex.c
     /tmp/ccXnw0bT.s:21     .text.HAL_PCDEx_PMAConfig:00000000 $t
     /tmp/ccXnw0bT.s:27     .text.HAL_PCDEx_PMAConfig:00000000 HAL_PCDEx_PMAConfig
     /tmp/ccXnw0bT.s:101    .text.HAL_PCDEx_ActivateBCD:00000000 $t
     /tmp/ccXnw0bT.s:107    .text.HAL_PCDEx_ActivateBCD:00000000 HAL_PCDEx_ActivateBCD
     /tmp/ccXnw0bT.s:163    .text.HAL_PCDEx_DeActivateBCD:00000000 $t
     /tmp/ccXnw0bT.s:169    .text.HAL_PCDEx_DeActivateBCD:00000000 HAL_PCDEx_DeActivateBCD
     /tmp/ccXnw0bT.s:206    .text.HAL_PCDEx_ActivateLPM:00000000 $t
     /tmp/ccXnw0bT.s:212    .text.HAL_PCDEx_ActivateLPM:00000000 HAL_PCDEx_ActivateLPM
     /tmp/ccXnw0bT.s:259    .text.HAL_PCDEx_DeActivateLPM:00000000 $t
     /tmp/ccXnw0bT.s:265    .text.HAL_PCDEx_DeActivateLPM:00000000 HAL_PCDEx_DeActivateLPM
     /tmp/ccXnw0bT.s:310    .text.HAL_PCDEx_LPM_Callback:00000000 $t
     /tmp/ccXnw0bT.s:316    .text.HAL_PCDEx_LPM_Callback:00000000 HAL_PCDEx_LPM_Callback
     /tmp/ccXnw0bT.s:332    .text.HAL_PCDEx_BCD_Callback:00000000 $t
     /tmp/ccXnw0bT.s:338    .text.HAL_PCDEx_BCD_Callback:00000000 HAL_PCDEx_BCD_Callback
     /tmp/ccXnw0bT.s:354    .text.HAL_PCDEx_BCD_VBUSDetect:00000000 $t
     /tmp/ccXnw0bT.s:360    .text.HAL_PCDEx_BCD_VBUSDetect:00000000 HAL_PCDEx_BCD_VBUSDetect

UNDEFINED SYMBOLS
HAL_GetTick
HAL_Delay
