ARM GAS /tmp/cct0aKih.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 "usbd_core.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .file 1 "Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c" 20 .section .text.USBD_Init,"ax",%progbits 21 .align 1 22 .global USBD_Init 23 .syntax unified 24 .thumb 25 .thumb_func 27 USBD_Init: 28 .LVL0: 29 .LFB243: 1:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 2:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ****************************************************************************** 3:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @file usbd_core.c 4:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @author MCD Application Team 5:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief This file provides all the USBD core functions. 6:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ****************************************************************************** 7:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @attention 8:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * 9:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Copyright (c) 2015 STMicroelectronics. 10:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * All rights reserved. 11:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * 12:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * This software is licensed under terms that can be found in the LICENSE file 13:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * in the root directory of this software component. 14:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 15:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * 16:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ****************************************************************************** 17:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 18:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 19:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Includes ------------------------------------------------------------------*/ 20:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #include "usbd_core.h" 21:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 22:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #ifdef USE_USBD_COMPOSITE 23:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #include "usbd_composite_builder.h" 24:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* USE_USBD_COMPOSITE */ 25:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 26:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** @addtogroup STM32_USBD_DEVICE_LIBRARY 27:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @{ 28:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 29:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ARM GAS /tmp/cct0aKih.s page 2 30:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 31:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** @defgroup USBD_CORE 32:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief usbd core module 33:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @{ 34:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 35:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 36:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** @defgroup USBD_CORE_Private_TypesDefinitions 37:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @{ 38:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 39:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 40:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 41:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @} 42:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 43:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 44:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 45:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** @defgroup USBD_CORE_Private_Defines 46:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @{ 47:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 48:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 49:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 50:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @} 51:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 52:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 53:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 54:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** @defgroup USBD_CORE_Private_Macros 55:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @{ 56:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 57:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 58:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 59:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @} 60:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 61:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 62:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 63:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** @defgroup USBD_CORE_Private_FunctionPrototypes 64:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @{ 65:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 66:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 67:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 68:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @} 69:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 70:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 71:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** @defgroup USBD_CORE_Private_Variables 72:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @{ 73:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 74:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 75:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 76:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @} 77:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 78:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 79:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 80:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** @defgroup USBD_CORE_Private_Functions 81:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @{ 82:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 83:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 84:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 85:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_Init 86:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Initialize the device stack and load the class driver ARM GAS /tmp/cct0aKih.s page 3 87:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance 88:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdesc: Descriptor structure address 89:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param id: Low level core index 90:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status: USBD Status 91:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 92:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_Init(USBD_HandleTypeDef *pdev, 93:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_DescriptorsTypeDef *pdesc, uint8_t id) 94:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 30 .loc 1 94 1 view -0 31 .cfi_startproc 32 @ args = 0, pretend = 0, frame = 0 33 @ frame_needed = 0, uses_anonymous_args = 0 95:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret; 34 .loc 1 95 3 view .LVU1 96:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 97:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Check whether the USB Host handle is valid */ 98:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev == NULL) 35 .loc 1 98 3 view .LVU2 36 .loc 1 98 6 is_stmt 0 view .LVU3 37 0000 98B1 cbz r0, .L4 94:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret; 38 .loc 1 94 1 view .LVU4 39 0002 08B5 push {r3, lr} 40 .LCFI0: 41 .cfi_def_cfa_offset 8 42 .cfi_offset 3, -8 43 .cfi_offset 14, -4 44 0004 0346 mov r3, r0 99:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 100:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #if (USBD_DEBUG_LEVEL > 1U) 101:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_ErrLog("Invalid Device handle"); 102:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* (USBD_DEBUG_LEVEL > 1U) */ 103:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_FAIL; 104:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 105:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 106:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #ifdef USE_USBD_COMPOSITE 107:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Parse the table of classes in use */ 108:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** for (uint32_t i = 0; i < USBD_MAX_SUPPORTED_CLASS; i++) 109:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 110:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Unlink previous class*/ 111:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pClass[i] = NULL; 112:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pUserData[i] = NULL; 113:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 114:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Set class as inactive */ 115:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->tclasslist[i].Active = 0; 116:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->NumClasses = 0; 117:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->classId = 0; 118:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 119:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #else 120:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Unlink previous class*/ 121:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pClass[0] = NULL; 45 .loc 1 121 3 is_stmt 1 view .LVU5 46 .loc 1 121 19 is_stmt 0 view .LVU6 47 0006 0020 movs r0, #0 48 .LVL1: 49 .loc 1 121 19 view .LVU7 50 0008 C3F8B802 str r0, [r3, #696] ARM GAS /tmp/cct0aKih.s page 4 122:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pUserData[0] = NULL; 51 .loc 1 122 3 is_stmt 1 view .LVU8 52 .loc 1 122 22 is_stmt 0 view .LVU9 53 000c C3F8C402 str r0, [r3, #708] 123:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* USE_USBD_COMPOSITE */ 124:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 125:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pConfDesc = NULL; 54 .loc 1 125 3 is_stmt 1 view .LVU10 55 .loc 1 125 19 is_stmt 0 view .LVU11 56 0010 C3F8D002 str r0, [r3, #720] 126:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 127:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Assign USBD Descriptors */ 128:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdesc != NULL) 57 .loc 1 128 3 is_stmt 1 view .LVU12 58 .loc 1 128 6 is_stmt 0 view .LVU13 59 0014 09B1 cbz r1, .L3 129:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 130:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pDesc = pdesc; 60 .loc 1 130 5 is_stmt 1 view .LVU14 61 .loc 1 130 17 is_stmt 0 view .LVU15 62 0016 C3F8B412 str r1, [r3, #692] 63 .L3: 131:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 132:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 133:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Set Device initial State */ 134:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_state = USBD_STATE_DEFAULT; 64 .loc 1 134 3 is_stmt 1 view .LVU16 65 .loc 1 134 19 is_stmt 0 view .LVU17 66 001a 0121 movs r1, #1 67 .LVL2: 68 .loc 1 134 19 view .LVU18 69 001c 83F89C12 strb r1, [r3, #668] 135:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->id = id; 70 .loc 1 135 3 is_stmt 1 view .LVU19 71 .loc 1 135 12 is_stmt 0 view .LVU20 72 0020 1A70 strb r2, [r3] 136:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 137:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Initialize low level driver */ 138:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_LL_Init(pdev); 73 .loc 1 138 3 is_stmt 1 view .LVU21 74 .loc 1 138 9 is_stmt 0 view .LVU22 75 0022 1846 mov r0, r3 76 0024 FFF7FEFF bl USBD_LL_Init 77 .LVL3: 139:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 140:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return ret; 78 .loc 1 140 3 is_stmt 1 view .LVU23 141:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 79 .loc 1 141 1 is_stmt 0 view .LVU24 80 0028 08BD pop {r3, pc} 81 .LVL4: 82 .L4: 83 .LCFI1: 84 .cfi_def_cfa_offset 0 85 .cfi_restore 3 86 .cfi_restore 14 103:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } ARM GAS /tmp/cct0aKih.s page 5 87 .loc 1 103 12 view .LVU25 88 002a 0320 movs r0, #3 89 .LVL5: 90 .loc 1 141 1 view .LVU26 91 002c 7047 bx lr 92 .cfi_endproc 93 .LFE243: 95 .section .text.USBD_DeInit,"ax",%progbits 96 .align 1 97 .global USBD_DeInit 98 .syntax unified 99 .thumb 100 .thumb_func 102 USBD_DeInit: 103 .LVL6: 104 .LFB244: 142:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 143:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 144:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_DeInit 145:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * De-Initialize the device library 146:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance 147:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status: USBD Status 148:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 149:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_DeInit(USBD_HandleTypeDef *pdev) 150:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 105 .loc 1 150 1 is_stmt 1 view -0 106 .cfi_startproc 107 @ args = 0, pretend = 0, frame = 0 108 @ frame_needed = 0, uses_anonymous_args = 0 109 .loc 1 150 1 is_stmt 0 view .LVU28 110 0000 10B5 push {r4, lr} 111 .LCFI2: 112 .cfi_def_cfa_offset 8 113 .cfi_offset 4, -8 114 .cfi_offset 14, -4 115 0002 0446 mov r4, r0 151:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret; 116 .loc 1 151 3 is_stmt 1 view .LVU29 152:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 153:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Disconnect the USB Device */ 154:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_LL_Stop(pdev); 117 .loc 1 154 3 view .LVU30 118 .loc 1 154 9 is_stmt 0 view .LVU31 119 0004 FFF7FEFF bl USBD_LL_Stop 120 .LVL7: 155:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 156:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Set Default State */ 157:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_state = USBD_STATE_DEFAULT; 121 .loc 1 157 3 is_stmt 1 view .LVU32 122 .loc 1 157 19 is_stmt 0 view .LVU33 123 0008 0123 movs r3, #1 124 000a 84F89C32 strb r3, [r4, #668] 158:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 159:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #ifdef USE_USBD_COMPOSITE 160:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Parse the table of classes in use */ 161:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** for (uint32_t i = 0; i < USBD_MAX_SUPPORTED_CLASS; i++) 162:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { ARM GAS /tmp/cct0aKih.s page 6 163:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Check if current class is in use */ 164:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if ((pdev->tclasslist[i].Active) == 1U) 165:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 166:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[i] != NULL) 167:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 168:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->classId = i; 169:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Free Class Resources */ 170:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pClass[i]->DeInit(pdev, (uint8_t)pdev->dev_config); 171:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 172:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 173:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 174:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #else 175:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Free Class Resources */ 176:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[0] != NULL) 125 .loc 1 176 3 is_stmt 1 view .LVU34 126 .loc 1 176 19 is_stmt 0 view .LVU35 127 000e D4F8B832 ldr r3, [r4, #696] 128 .loc 1 176 6 view .LVU36 129 0012 1BB1 cbz r3, .L10 177:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 178:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pClass[0]->DeInit(pdev, (uint8_t)pdev->dev_config); 130 .loc 1 178 5 is_stmt 1 view .LVU37 131 .loc 1 178 20 is_stmt 0 view .LVU38 132 0014 5B68 ldr r3, [r3, #4] 133 .loc 1 178 5 view .LVU39 134 0016 2179 ldrb r1, [r4, #4] @ zero_extendqisi2 135 0018 2046 mov r0, r4 136 001a 9847 blx r3 137 .LVL8: 138 .L10: 179:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 180:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 181:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pUserData[0] = NULL; 139 .loc 1 181 3 is_stmt 1 view .LVU40 140 .loc 1 181 22 is_stmt 0 view .LVU41 141 001c 0023 movs r3, #0 142 001e C4F8C432 str r3, [r4, #708] 182:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 183:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* USE_USBD_COMPOSITE */ 184:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 185:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Free Device descriptors resources */ 186:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pDesc = NULL; 143 .loc 1 186 3 is_stmt 1 view .LVU42 144 .loc 1 186 15 is_stmt 0 view .LVU43 145 0022 C4F8B432 str r3, [r4, #692] 187:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pConfDesc = NULL; 146 .loc 1 187 3 is_stmt 1 view .LVU44 147 .loc 1 187 19 is_stmt 0 view .LVU45 148 0026 C4F8D032 str r3, [r4, #720] 188:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 189:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* DeInitialize low level driver */ 190:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_LL_DeInit(pdev); 149 .loc 1 190 3 is_stmt 1 view .LVU46 150 .loc 1 190 9 is_stmt 0 view .LVU47 151 002a 2046 mov r0, r4 152 002c FFF7FEFF bl USBD_LL_DeInit 153 .LVL9: ARM GAS /tmp/cct0aKih.s page 7 191:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 192:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return ret; 154 .loc 1 192 3 is_stmt 1 view .LVU48 193:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 155 .loc 1 193 1 is_stmt 0 view .LVU49 156 0030 10BD pop {r4, pc} 157 .loc 1 193 1 view .LVU50 158 .cfi_endproc 159 .LFE244: 161 .section .text.USBD_RegisterClass,"ax",%progbits 162 .align 1 163 .global USBD_RegisterClass 164 .syntax unified 165 .thumb 166 .thumb_func 168 USBD_RegisterClass: 169 .LVL10: 170 .LFB245: 194:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 195:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 196:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_RegisterClass 197:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Link class driver to Device Core. 198:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: Device Handle 199:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pclass: Class handle 200:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval USBD Status 201:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 202:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_RegisterClass(USBD_HandleTypeDef *pdev, USBD_ClassTypeDef *pclass) 203:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 171 .loc 1 203 1 is_stmt 1 view -0 172 .cfi_startproc 173 @ args = 0, pretend = 0, frame = 8 174 @ frame_needed = 0, uses_anonymous_args = 0 175 .loc 1 203 1 is_stmt 0 view .LVU52 176 0000 10B5 push {r4, lr} 177 .LCFI3: 178 .cfi_def_cfa_offset 8 179 .cfi_offset 4, -8 180 .cfi_offset 14, -4 181 0002 82B0 sub sp, sp, #8 182 .LCFI4: 183 .cfi_def_cfa_offset 16 204:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint16_t len = 0U; 184 .loc 1 204 3 is_stmt 1 view .LVU53 185 .loc 1 204 12 is_stmt 0 view .LVU54 186 0004 0023 movs r3, #0 187 0006 ADF80630 strh r3, [sp, #6] @ movhi 205:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 206:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pclass == NULL) 188 .loc 1 206 3 is_stmt 1 view .LVU55 189 .loc 1 206 6 is_stmt 0 view .LVU56 190 000a 89B1 cbz r1, .L15 191 000c 0446 mov r4, r0 207:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 208:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #if (USBD_DEBUG_LEVEL > 1U) 209:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_ErrLog("Invalid Class handle"); 210:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* (USBD_DEBUG_LEVEL > 1U) */ 211:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_FAIL; ARM GAS /tmp/cct0aKih.s page 8 212:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 213:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 214:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* link the class to the USB Device handle */ 215:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pClass[0] = pclass; 192 .loc 1 215 3 is_stmt 1 view .LVU57 193 .loc 1 215 19 is_stmt 0 view .LVU58 194 000e C0F8B812 str r1, [r0, #696] 216:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 217:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Get Device Configuration Descriptor */ 218:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #ifdef USE_USB_HS 219:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[pdev->classId]->GetHSConfigDescriptor != NULL) 220:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 221:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pConfDesc = (void *)pdev->pClass[pdev->classId]->GetHSConfigDescriptor(&len); 222:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 223:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #else /* Default USE_USB_FS */ 224:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[pdev->classId]->GetFSConfigDescriptor != NULL) 195 .loc 1 224 3 is_stmt 1 view .LVU59 196 .loc 1 224 34 is_stmt 0 view .LVU60 197 0012 CB6A ldr r3, [r1, #44] 198 .loc 1 224 6 view .LVU61 199 0014 23B1 cbz r3, .L14 225:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 226:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pConfDesc = (void *)pdev->pClass[pdev->classId]->GetFSConfigDescriptor(&len); 200 .loc 1 226 5 is_stmt 1 view .LVU62 201 .loc 1 226 31 is_stmt 0 view .LVU63 202 0016 0DF10600 add r0, sp, #6 203 .LVL11: 204 .loc 1 226 31 view .LVU64 205 001a 9847 blx r3 206 .LVL12: 207 .loc 1 226 21 discriminator 1 view .LVU65 208 001c C4F8D002 str r0, [r4, #720] 209 .L14: 227:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 228:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* USE_USB_FS */ 229:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 230:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Increment the NumClasses */ 231:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->NumClasses++; 210 .loc 1 231 3 is_stmt 1 view .LVU66 211 .loc 1 231 7 is_stmt 0 view .LVU67 212 0020 D4F8D832 ldr r3, [r4, #728] 213 .loc 1 231 19 view .LVU68 214 0024 0133 adds r3, r3, #1 215 0026 C4F8D832 str r3, [r4, #728] 232:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 233:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; 216 .loc 1 233 3 is_stmt 1 view .LVU69 217 .loc 1 233 10 is_stmt 0 view .LVU70 218 002a 0020 movs r0, #0 219 .LVL13: 220 .L13: 234:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 221 .loc 1 234 1 view .LVU71 222 002c 02B0 add sp, sp, #8 223 .LCFI5: 224 .cfi_remember_state 225 .cfi_def_cfa_offset 8 ARM GAS /tmp/cct0aKih.s page 9 226 @ sp needed 227 002e 10BD pop {r4, pc} 228 .LVL14: 229 .L15: 230 .LCFI6: 231 .cfi_restore_state 211:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 232 .loc 1 211 12 view .LVU72 233 0030 0320 movs r0, #3 234 .LVL15: 211:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 235 .loc 1 211 12 view .LVU73 236 0032 FBE7 b .L13 237 .cfi_endproc 238 .LFE245: 240 .section .text.USBD_Start,"ax",%progbits 241 .align 1 242 .global USBD_Start 243 .syntax unified 244 .thumb 245 .thumb_func 247 USBD_Start: 248 .LVL16: 249 .LFB246: 235:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 236:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #ifdef USE_USBD_COMPOSITE 237:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 238:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_RegisterClassComposite 239:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Link class driver to Device Core. 240:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev : Device Handle 241:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pclass: Class handle 242:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param classtype: Class type 243:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param EpAddr: Endpoint Address handle 244:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval USBD Status 245:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 246:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_RegisterClassComposite(USBD_HandleTypeDef *pdev, USBD_ClassTypeDef *pclass, 247:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_CompositeClassTypeDef classtype, uint8_t *EpAdd 248:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 249:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret = USBD_OK; 250:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint16_t len = 0U; 251:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 252:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if ((pdev->classId < USBD_MAX_SUPPORTED_CLASS) && (pdev->NumClasses < USBD_MAX_SUPPORTED_CLASS)) 253:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 254:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if ((uint32_t)pclass != 0U) 255:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 256:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Link the class to the USB Device handle */ 257:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pClass[pdev->classId] = pclass; 258:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_OK; 259:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 260:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->tclasslist[pdev->classId].EpAdd = EpAddr; 261:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 262:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Call the composite class builder */ 263:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_CMPSIT_AddClass(pdev, pclass, classtype, 0); 264:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 265:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Increment the ClassId for the next occurrence */ 266:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->classId ++; 267:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->NumClasses ++; ARM GAS /tmp/cct0aKih.s page 10 268:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 269:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** else 270:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 271:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #if (USBD_DEBUG_LEVEL > 1U) 272:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_ErrLog("Invalid Class handle"); 273:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* (USBD_DEBUG_LEVEL > 1U) */ 274:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_FAIL; 275:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 276:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 277:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 278:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (ret == USBD_OK) 279:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 280:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Get Device Configuration Descriptor */ 281:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #ifdef USE_USB_HS 282:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pConfDesc = USBD_CMPSIT.GetHSConfigDescriptor(&len); 283:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #else /* Default USE_USB_FS */ 284:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pConfDesc = USBD_CMPSIT.GetFSConfigDescriptor(&len); 285:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* USE_USB_FS */ 286:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 287:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 288:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return ret; 289:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 290:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 291:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 292:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_UnRegisterClassComposite 293:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * UnLink all composite class drivers from Device Core. 294:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: Device Handle 295:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval USBD Status 296:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 297:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_UnRegisterClassComposite(USBD_HandleTypeDef *pdev) 298:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 299:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret = USBD_OK; 300:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint8_t idx1; 301:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint8_t idx2; 302:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 303:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Unroll all activated classes */ 304:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** for (idx1 = 0; idx1 < pdev->NumClasses; idx1++) 305:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 306:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Check if the class correspond to the requested type and if it is active */ 307:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->tclasslist[idx1].Active == 1U) 308:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 309:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Set the new class ID */ 310:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->classId = idx1; 311:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 312:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Free resources used by the selected class */ 313:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[pdev->classId] != NULL) 314:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 315:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Free Class Resources */ 316:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[pdev->classId]->DeInit(pdev, (uint8_t)pdev->dev_config) != 0U) 317:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 318:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #if (USBD_DEBUG_LEVEL > 1U) 319:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_ErrLog("Class DeInit didn't succeed!, can't unregister selected class"); 320:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* (USBD_DEBUG_LEVEL > 1U) */ 321:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 322:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_FAIL; 323:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 324:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } ARM GAS /tmp/cct0aKih.s page 11 325:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 326:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Free the class pointer */ 327:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pClass[pdev->classId] = NULL; 328:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 329:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Free the class location in classes table and reset its parameters to zero */ 330:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->tclasslist[pdev->classId].ClassType = CLASS_TYPE_NONE; 331:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->tclasslist[pdev->classId].ClassId = 0U; 332:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->tclasslist[pdev->classId].Active = 0U; 333:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->tclasslist[pdev->classId].NumEps = 0U; 334:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->tclasslist[pdev->classId].NumIf = 0U; 335:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->tclasslist[pdev->classId].CurrPcktSze = 0U; 336:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 337:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** for (idx2 = 0U; idx2 < USBD_MAX_CLASS_ENDPOINTS; idx2++) 338:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 339:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->tclasslist[pdev->classId].Eps[idx2].add = 0U; 340:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->tclasslist[pdev->classId].Eps[idx2].type = 0U; 341:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->tclasslist[pdev->classId].Eps[idx2].size = 0U; 342:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->tclasslist[pdev->classId].Eps[idx2].is_used = 0U; 343:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 344:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 345:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** for (idx2 = 0U; idx2 < USBD_MAX_CLASS_INTERFACES; idx2++) 346:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 347:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->tclasslist[pdev->classId].Ifs[idx2] = 0U; 348:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 349:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 350:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 351:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 352:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Reset the configuration descriptor */ 353:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_CMPST_ClearConfDesc(pdev); 354:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 355:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Reset the class ID and number of classes */ 356:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->classId = 0U; 357:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->NumClasses = 0U; 358:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 359:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return ret; 360:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 361:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* USE_USBD_COMPOSITE */ 362:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 363:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #if (USBD_USER_REGISTER_CALLBACK == 1U) 364:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 365:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_RegisterDevStateCallback 366:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev : Device Handle 367:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pUserCallback: User Callback 368:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval USBD Status 369:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 370:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_RegisterDevStateCallback(USBD_HandleTypeDef *pdev, USBD_DevStateCallbackTyp 371:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 372:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->DevStateCallback = pUserCallback; 373:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 374:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; 375:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 376:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* USBD_USER_REGISTER_CALLBACK */ 377:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 378:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 379:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_Start 380:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Start the USB Device Core. 381:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: Device Handle ARM GAS /tmp/cct0aKih.s page 12 382:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval USBD Status 383:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 384:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_Start(USBD_HandleTypeDef *pdev) 385:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 250 .loc 1 385 1 is_stmt 1 view -0 251 .cfi_startproc 252 @ args = 0, pretend = 0, frame = 0 253 @ frame_needed = 0, uses_anonymous_args = 0 254 .loc 1 385 1 is_stmt 0 view .LVU75 255 0000 08B5 push {r3, lr} 256 .LCFI7: 257 .cfi_def_cfa_offset 8 258 .cfi_offset 3, -8 259 .cfi_offset 14, -4 386:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #ifdef USE_USBD_COMPOSITE 387:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->classId = 0U; 388:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* USE_USBD_COMPOSITE */ 389:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 390:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Start the low level driver */ 391:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_LL_Start(pdev); 260 .loc 1 391 3 is_stmt 1 view .LVU76 261 .loc 1 391 10 is_stmt 0 view .LVU77 262 0002 FFF7FEFF bl USBD_LL_Start 263 .LVL17: 392:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 264 .loc 1 392 1 view .LVU78 265 0006 08BD pop {r3, pc} 266 .cfi_endproc 267 .LFE246: 269 .section .text.USBD_Stop,"ax",%progbits 270 .align 1 271 .global USBD_Stop 272 .syntax unified 273 .thumb 274 .thumb_func 276 USBD_Stop: 277 .LVL18: 278 .LFB247: 393:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 394:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 395:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_Stop 396:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Stop the USB Device Core. 397:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: Device Handle 398:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval USBD Status 399:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 400:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_Stop(USBD_HandleTypeDef *pdev) 401:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 279 .loc 1 401 1 is_stmt 1 view -0 280 .cfi_startproc 281 @ args = 0, pretend = 0, frame = 0 282 @ frame_needed = 0, uses_anonymous_args = 0 283 .loc 1 401 1 is_stmt 0 view .LVU80 284 0000 10B5 push {r4, lr} 285 .LCFI8: 286 .cfi_def_cfa_offset 8 287 .cfi_offset 4, -8 288 .cfi_offset 14, -4 ARM GAS /tmp/cct0aKih.s page 13 289 0002 0446 mov r4, r0 402:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Disconnect USB Device */ 403:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_LL_Stop(pdev); 290 .loc 1 403 3 is_stmt 1 view .LVU81 291 .loc 1 403 9 is_stmt 0 view .LVU82 292 0004 FFF7FEFF bl USBD_LL_Stop 293 .LVL19: 404:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 405:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Free Class Resources */ 406:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #ifdef USE_USBD_COMPOSITE 407:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Parse the table of classes in use */ 408:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** for (uint32_t i = 0U; i < USBD_MAX_SUPPORTED_CLASS; i++) 409:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 410:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Check if current class is in use */ 411:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if ((pdev->tclasslist[i].Active) == 1U) 412:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 413:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[i] != NULL) 414:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 415:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->classId = i; 416:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Free Class Resources */ 417:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)pdev->pClass[i]->DeInit(pdev, (uint8_t)pdev->dev_config); 418:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 419:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 420:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 421:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 422:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Reset the class ID */ 423:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->classId = 0U; 424:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #else 425:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[0] != NULL) 294 .loc 1 425 3 is_stmt 1 view .LVU83 295 .loc 1 425 19 is_stmt 0 view .LVU84 296 0008 D4F8B832 ldr r3, [r4, #696] 297 .loc 1 425 6 view .LVU85 298 000c 1BB1 cbz r3, .L20 426:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 427:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)pdev->pClass[0]->DeInit(pdev, (uint8_t)pdev->dev_config); 299 .loc 1 427 5 is_stmt 1 view .LVU86 300 .loc 1 427 26 is_stmt 0 view .LVU87 301 000e 5B68 ldr r3, [r3, #4] 302 .loc 1 427 11 view .LVU88 303 0010 2179 ldrb r1, [r4, #4] @ zero_extendqisi2 304 0012 2046 mov r0, r4 305 0014 9847 blx r3 306 .LVL20: 307 .L20: 428:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 429:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* USE_USBD_COMPOSITE */ 430:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 431:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; 308 .loc 1 431 3 is_stmt 1 view .LVU89 432:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 309 .loc 1 432 1 is_stmt 0 view .LVU90 310 0016 0020 movs r0, #0 311 0018 10BD pop {r4, pc} 312 .loc 1 432 1 view .LVU91 313 .cfi_endproc 314 .LFE247: ARM GAS /tmp/cct0aKih.s page 14 316 .section .text.USBD_RunTestMode,"ax",%progbits 317 .align 1 318 .global USBD_RunTestMode 319 .syntax unified 320 .thumb 321 .thumb_func 323 USBD_RunTestMode: 324 .LVL21: 325 .LFB248: 433:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 434:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 435:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_RunTestMode 436:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Launch test mode process 437:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance 438:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status 439:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 440:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_RunTestMode(USBD_HandleTypeDef *pdev) 441:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 326 .loc 1 441 1 is_stmt 1 view -0 327 .cfi_startproc 328 @ args = 0, pretend = 0, frame = 0 329 @ frame_needed = 0, uses_anonymous_args = 0 330 @ link register save eliminated. 442:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #ifdef USBD_HS_TESTMODE_ENABLE 443:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret; 444:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 445:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Run USB HS test mode */ 446:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_LL_SetTestMode(pdev, pdev->dev_test_mode); 447:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 448:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return ret; 449:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #else 450:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Prevent unused argument compilation warning */ 451:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** UNUSED(pdev); 331 .loc 1 451 3 view .LVU93 452:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 453:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; 332 .loc 1 453 3 view .LVU94 454:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* USBD_HS_TESTMODE_ENABLE */ 455:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 333 .loc 1 455 1 is_stmt 0 view .LVU95 334 0000 0020 movs r0, #0 335 .LVL22: 336 .loc 1 455 1 view .LVU96 337 0002 7047 bx lr 338 .cfi_endproc 339 .LFE248: 341 .section .text.USBD_SetClassConfig,"ax",%progbits 342 .align 1 343 .global USBD_SetClassConfig 344 .syntax unified 345 .thumb 346 .thumb_func 348 USBD_SetClassConfig: 349 .LVL23: 350 .LFB249: 456:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 457:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** ARM GAS /tmp/cct0aKih.s page 15 458:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_SetClassConfig 459:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Configure device and start the interface 460:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance 461:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param cfgidx: configuration index 462:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status 463:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 464:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 465:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_SetClassConfig(USBD_HandleTypeDef *pdev, uint8_t cfgidx) 466:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 351 .loc 1 466 1 is_stmt 1 view -0 352 .cfi_startproc 353 @ args = 0, pretend = 0, frame = 0 354 @ frame_needed = 0, uses_anonymous_args = 0 355 .loc 1 466 1 is_stmt 0 view .LVU98 356 0000 08B5 push {r3, lr} 357 .LCFI9: 358 .cfi_def_cfa_offset 8 359 .cfi_offset 3, -8 360 .cfi_offset 14, -4 467:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret = USBD_OK; 361 .loc 1 467 3 is_stmt 1 view .LVU99 362 .LVL24: 468:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 469:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #ifdef USE_USBD_COMPOSITE 470:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Parse the table of classes in use */ 471:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** for (uint32_t i = 0U; i < USBD_MAX_SUPPORTED_CLASS; i++) 472:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 473:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Check if current class is in use */ 474:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if ((pdev->tclasslist[i].Active) == 1U) 475:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 476:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[i] != NULL) 477:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 478:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->classId = i; 479:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Set configuration and Start the Class*/ 480:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[i]->Init(pdev, cfgidx) != 0U) 481:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 482:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_FAIL; 483:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 484:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 485:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 486:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 487:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #else 488:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[0] != NULL) 363 .loc 1 488 3 view .LVU100 364 .loc 1 488 19 is_stmt 0 view .LVU101 365 0002 D0F8B832 ldr r3, [r0, #696] 366 .loc 1 488 6 view .LVU102 367 0006 13B1 cbz r3, .L25 489:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 490:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Set configuration and Start the Class */ 491:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = (USBD_StatusTypeDef)pdev->pClass[0]->Init(pdev, cfgidx); 368 .loc 1 491 5 is_stmt 1 view .LVU103 369 .loc 1 491 46 is_stmt 0 view .LVU104 370 0008 1B68 ldr r3, [r3] 371 .loc 1 491 31 view .LVU105 372 000a 9847 blx r3 373 .LVL25: ARM GAS /tmp/cct0aKih.s page 16 374 .L24: 492:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 493:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* USE_USBD_COMPOSITE */ 494:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 495:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return ret; 375 .loc 1 495 3 is_stmt 1 view .LVU106 496:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 376 .loc 1 496 1 is_stmt 0 view .LVU107 377 000c 08BD pop {r3, pc} 378 .LVL26: 379 .L25: 467:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 380 .loc 1 467 22 view .LVU108 381 000e 0020 movs r0, #0 382 .LVL27: 467:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 383 .loc 1 467 22 view .LVU109 384 0010 FCE7 b .L24 385 .cfi_endproc 386 .LFE249: 388 .section .text.USBD_ClrClassConfig,"ax",%progbits 389 .align 1 390 .global USBD_ClrClassConfig 391 .syntax unified 392 .thumb 393 .thumb_func 395 USBD_ClrClassConfig: 396 .LVL28: 397 .LFB250: 497:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 498:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 499:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_ClrClassConfig 500:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Clear current configuration 501:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance 502:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param cfgidx: configuration index 503:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status 504:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 505:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_ClrClassConfig(USBD_HandleTypeDef *pdev, uint8_t cfgidx) 506:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 398 .loc 1 506 1 is_stmt 1 view -0 399 .cfi_startproc 400 @ args = 0, pretend = 0, frame = 0 401 @ frame_needed = 0, uses_anonymous_args = 0 402 .loc 1 506 1 is_stmt 0 view .LVU111 403 0000 08B5 push {r3, lr} 404 .LCFI10: 405 .cfi_def_cfa_offset 8 406 .cfi_offset 3, -8 407 .cfi_offset 14, -4 507:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret = USBD_OK; 408 .loc 1 507 3 is_stmt 1 view .LVU112 409 .LVL29: 508:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 509:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #ifdef USE_USBD_COMPOSITE 510:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Parse the table of classes in use */ 511:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** for (uint32_t i = 0U; i < USBD_MAX_SUPPORTED_CLASS; i++) 512:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { ARM GAS /tmp/cct0aKih.s page 17 513:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Check if current class is in use */ 514:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if ((pdev->tclasslist[i].Active) == 1U) 515:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 516:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[i] != NULL) 517:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 518:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->classId = i; 519:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Clear configuration and De-initialize the Class process */ 520:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[i]->DeInit(pdev, cfgidx) != 0U) 521:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 522:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_FAIL; 523:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 524:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 525:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 526:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 527:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #else 528:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Clear configuration and De-initialize the Class process */ 529:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[0]->DeInit(pdev, cfgidx) != 0U) 410 .loc 1 529 3 view .LVU113 411 .loc 1 529 19 is_stmt 0 view .LVU114 412 0002 D0F8B832 ldr r3, [r0, #696] 413 .loc 1 529 22 view .LVU115 414 0006 5B68 ldr r3, [r3, #4] 415 .loc 1 529 7 view .LVU116 416 0008 9847 blx r3 417 .LVL30: 418 .loc 1 529 6 discriminator 1 view .LVU117 419 000a 00B9 cbnz r0, .L31 420 .L28: 421 .LVL31: 530:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 531:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_FAIL; 532:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 533:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* USE_USBD_COMPOSITE */ 534:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 535:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return ret; 422 .loc 1 535 3 is_stmt 1 view .LVU118 536:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 423 .loc 1 536 1 is_stmt 0 view .LVU119 424 000c 08BD pop {r3, pc} 425 .LVL32: 426 .L31: 531:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 427 .loc 1 531 9 view .LVU120 428 000e 0320 movs r0, #3 429 0010 FCE7 b .L28 430 .cfi_endproc 431 .LFE250: 433 .section .text.USBD_LL_SetupStage,"ax",%progbits 434 .align 1 435 .global USBD_LL_SetupStage 436 .syntax unified 437 .thumb 438 .thumb_func 440 USBD_LL_SetupStage: 441 .LVL33: 442 .LFB251: 537:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ARM GAS /tmp/cct0aKih.s page 18 538:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 539:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 540:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_SetupStage 541:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle the setup stage 542:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance 543:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param psetup: setup packet buffer pointer 544:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status 545:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 546:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_SetupStage(USBD_HandleTypeDef *pdev, uint8_t *psetup) 547:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 443 .loc 1 547 1 is_stmt 1 view -0 444 .cfi_startproc 445 @ args = 0, pretend = 0, frame = 0 446 @ frame_needed = 0, uses_anonymous_args = 0 447 .loc 1 547 1 is_stmt 0 view .LVU122 448 0000 38B5 push {r3, r4, r5, lr} 449 .LCFI11: 450 .cfi_def_cfa_offset 16 451 .cfi_offset 3, -16 452 .cfi_offset 4, -12 453 .cfi_offset 5, -8 454 .cfi_offset 14, -4 455 0002 0446 mov r4, r0 548:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret; 456 .loc 1 548 3 is_stmt 1 view .LVU123 549:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 550:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_ParseSetupRequest(&pdev->request, psetup); 457 .loc 1 550 3 view .LVU124 458 0004 00F2AA25 addw r5, r0, #682 459 0008 2846 mov r0, r5 460 .LVL34: 461 .loc 1 550 3 is_stmt 0 view .LVU125 462 000a FFF7FEFF bl USBD_ParseSetupRequest 463 .LVL35: 551:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 552:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep0_state = USBD_EP0_SETUP; 464 .loc 1 552 3 is_stmt 1 view .LVU126 465 .loc 1 552 19 is_stmt 0 view .LVU127 466 000e 0123 movs r3, #1 467 0010 C4F89432 str r3, [r4, #660] 553:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 554:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep0_data_len = pdev->request.wLength; 468 .loc 1 554 3 is_stmt 1 view .LVU128 469 .loc 1 554 37 is_stmt 0 view .LVU129 470 0014 B4F8B032 ldrh r3, [r4, #688] 471 .loc 1 554 22 view .LVU130 472 0018 C4F89832 str r3, [r4, #664] 555:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 556:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** switch (pdev->request.bmRequest & 0x1FU) 473 .loc 1 556 3 is_stmt 1 view .LVU131 474 .loc 1 556 24 is_stmt 0 view .LVU132 475 001c 94F8AA12 ldrb r1, [r4, #682] @ zero_extendqisi2 476 0020 01F01F03 and r3, r1, #31 477 .loc 1 556 3 view .LVU133 478 0024 012B cmp r3, #1 479 0026 07D0 beq .L33 480 0028 022B cmp r3, #2 ARM GAS /tmp/cct0aKih.s page 19 481 002a 0AD0 beq .L34 482 002c 73B9 cbnz r3, .L35 557:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 558:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** case USB_REQ_RECIPIENT_DEVICE: 559:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_StdDevReq(pdev, &pdev->request); 483 .loc 1 559 7 is_stmt 1 view .LVU134 484 .loc 1 559 13 is_stmt 0 view .LVU135 485 002e 2946 mov r1, r5 486 0030 2046 mov r0, r4 487 0032 FFF7FEFF bl USBD_StdDevReq 488 .LVL36: 560:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; 489 .loc 1 560 7 is_stmt 1 view .LVU136 490 .L36: 561:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 562:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** case USB_REQ_RECIPIENT_INTERFACE: 563:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_StdItfReq(pdev, &pdev->request); 564:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; 565:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 566:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** case USB_REQ_RECIPIENT_ENDPOINT: 567:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_StdEPReq(pdev, &pdev->request); 568:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; 569:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 570:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** default: 571:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_LL_StallEP(pdev, (pdev->request.bmRequest & 0x80U)); 572:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; 573:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 574:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 575:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return ret; 491 .loc 1 575 3 view .LVU137 576:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 492 .loc 1 576 1 is_stmt 0 view .LVU138 493 0036 38BD pop {r3, r4, r5, pc} 494 .LVL37: 495 .L33: 563:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; 496 .loc 1 563 7 is_stmt 1 view .LVU139 563:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; 497 .loc 1 563 13 is_stmt 0 view .LVU140 498 0038 2946 mov r1, r5 499 003a 2046 mov r0, r4 500 003c FFF7FEFF bl USBD_StdItfReq 501 .LVL38: 564:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 502 .loc 1 564 7 is_stmt 1 view .LVU141 503 0040 F9E7 b .L36 504 .LVL39: 505 .L34: 567:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; 506 .loc 1 567 7 view .LVU142 567:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; 507 .loc 1 567 13 is_stmt 0 view .LVU143 508 0042 2946 mov r1, r5 509 0044 2046 mov r0, r4 510 0046 FFF7FEFF bl USBD_StdEPReq 511 .LVL40: 568:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ARM GAS /tmp/cct0aKih.s page 20 512 .loc 1 568 7 is_stmt 1 view .LVU144 513 004a F4E7 b .L36 514 .LVL41: 515 .L35: 571:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; 516 .loc 1 571 7 view .LVU145 571:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; 517 .loc 1 571 13 is_stmt 0 view .LVU146 518 004c 01F08001 and r1, r1, #128 519 0050 2046 mov r0, r4 520 0052 FFF7FEFF bl USBD_LL_StallEP 521 .LVL42: 572:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 522 .loc 1 572 7 is_stmt 1 view .LVU147 523 0056 EEE7 b .L36 524 .cfi_endproc 525 .LFE251: 527 .section .text.USBD_LL_Reset,"ax",%progbits 528 .align 1 529 .global USBD_LL_Reset 530 .syntax unified 531 .thumb 532 .thumb_func 534 USBD_LL_Reset: 535 .LVL43: 536 .LFB254: 577:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 578:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 579:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_DataOutStage 580:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle data OUT stage 581:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance 582:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param epnum: endpoint index 583:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdata: data pointer 584:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status 585:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 586:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_DataOutStage(USBD_HandleTypeDef *pdev, 587:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint8_t epnum, uint8_t *pdata) 588:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 589:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_EndpointTypeDef *pep; 590:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret = USBD_OK; 591:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint8_t idx; 592:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 593:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** UNUSED(pdata); 594:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 595:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (epnum == 0U) 596:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 597:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pep = &pdev->ep_out[0]; 598:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 599:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->ep0_state == USBD_EP0_DATA_OUT) 600:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 601:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pep->rem_length > pep->maxpacket) 602:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 603:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pep->rem_length -= pep->maxpacket; 604:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pep->pbuffer += pep->maxpacket; 605:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 606:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_CtlContinueRx(pdev, pep->pbuffer, MAX(pep->rem_length, pep->maxpacket)); 607:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } ARM GAS /tmp/cct0aKih.s page 21 608:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** else 609:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 610:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Find the class ID relative to the current request */ 611:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** switch (pdev->request.bmRequest & 0x1FU) 612:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 613:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** case USB_REQ_RECIPIENT_DEVICE: 614:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Device requests must be managed by the first instantiated class 615:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (or duplicated by all classes for simplicity) */ 616:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** idx = 0U; 617:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; 618:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 619:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** case USB_REQ_RECIPIENT_INTERFACE: 620:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** idx = USBD_CoreFindIF(pdev, LOBYTE(pdev->request.wIndex)); 621:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; 622:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 623:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** case USB_REQ_RECIPIENT_ENDPOINT: 624:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** idx = USBD_CoreFindEP(pdev, LOBYTE(pdev->request.wIndex)); 625:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; 626:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 627:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** default: 628:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Back to the first class in case of doubt */ 629:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** idx = 0U; 630:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; 631:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 632:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 633:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (idx < USBD_MAX_SUPPORTED_CLASS) 634:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 635:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Setup the class ID and route the request to the relative class function */ 636:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->dev_state == USBD_STATE_CONFIGURED) 637:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 638:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[idx]->EP0_RxReady != NULL) 639:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 640:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->classId = idx; 641:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pClass[idx]->EP0_RxReady(pdev); 642:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 643:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 644:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 645:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 646:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_CtlSendStatus(pdev); 647:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 648:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 649:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 650:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** else 651:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 652:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Get the class index relative to this interface */ 653:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** idx = USBD_CoreFindEP(pdev, (epnum & 0x7FU)); 654:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 655:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (((uint16_t)idx != 0xFFU) && (idx < USBD_MAX_SUPPORTED_CLASS)) 656:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 657:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Call the class data out function to manage the request */ 658:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->dev_state == USBD_STATE_CONFIGURED) 659:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 660:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[idx]->DataOut != NULL) 661:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 662:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->classId = idx; 663:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = (USBD_StatusTypeDef)pdev->pClass[idx]->DataOut(pdev, epnum); 664:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } ARM GAS /tmp/cct0aKih.s page 22 665:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 666:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (ret != USBD_OK) 667:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 668:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return ret; 669:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 670:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 671:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 672:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 673:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; 674:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 675:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 676:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 677:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_DataInStage 678:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle data in stage 679:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance 680:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param epnum: endpoint index 681:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdata: data pointer 682:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status 683:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 684:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_DataInStage(USBD_HandleTypeDef *pdev, 685:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint8_t epnum, uint8_t *pdata) 686:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 687:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_EndpointTypeDef *pep; 688:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret; 689:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint8_t idx; 690:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 691:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** UNUSED(pdata); 692:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 693:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (epnum == 0U) 694:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 695:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pep = &pdev->ep_in[0]; 696:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 697:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->ep0_state == USBD_EP0_DATA_IN) 698:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 699:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pep->rem_length > pep->maxpacket) 700:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 701:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pep->rem_length -= pep->maxpacket; 702:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pep->pbuffer += pep->maxpacket; 703:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 704:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_CtlContinueSendData(pdev, pep->pbuffer, pep->rem_length); 705:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 706:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Prepare endpoint for premature end of transfer */ 707:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_LL_PrepareReceive(pdev, 0U, NULL, 0U); 708:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 709:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** else 710:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 711:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* last packet is MPS multiple, so send ZLP packet */ 712:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if ((pep->maxpacket == pep->rem_length) && 713:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (pep->total_length >= pep->maxpacket) && 714:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (pep->total_length < pdev->ep0_data_len)) 715:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 716:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_CtlContinueSendData(pdev, NULL, 0U); 717:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep0_data_len = 0U; 718:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 719:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Prepare endpoint for premature end of transfer */ 720:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_LL_PrepareReceive(pdev, 0U, NULL, 0U); 721:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } ARM GAS /tmp/cct0aKih.s page 23 722:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** else 723:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 724:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->dev_state == USBD_STATE_CONFIGURED) 725:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 726:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[0]->EP0_TxSent != NULL) 727:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 728:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->classId = 0U; 729:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pClass[0]->EP0_TxSent(pdev); 730:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 731:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 732:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_LL_StallEP(pdev, 0x80U); 733:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_CtlReceiveStatus(pdev); 734:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 735:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 736:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 737:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 738:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->dev_test_mode != 0U) 739:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 740:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_RunTestMode(pdev); 741:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_test_mode = 0U; 742:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 743:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 744:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** else 745:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 746:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Get the class index relative to this interface */ 747:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** idx = USBD_CoreFindEP(pdev, ((uint8_t)epnum | 0x80U)); 748:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 749:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (((uint16_t)idx != 0xFFU) && (idx < USBD_MAX_SUPPORTED_CLASS)) 750:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 751:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Call the class data out function to manage the request */ 752:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->dev_state == USBD_STATE_CONFIGURED) 753:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 754:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[idx]->DataIn != NULL) 755:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 756:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->classId = idx; 757:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = (USBD_StatusTypeDef)pdev->pClass[idx]->DataIn(pdev, epnum); 758:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 759:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (ret != USBD_OK) 760:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 761:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return ret; 762:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 763:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 764:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 765:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 766:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 767:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 768:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; 769:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 770:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 771:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 772:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_Reset 773:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle Reset event 774:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance 775:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status 776:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 777:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_Reset(USBD_HandleTypeDef *pdev) 778:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { ARM GAS /tmp/cct0aKih.s page 24 537 .loc 1 778 1 view -0 538 .cfi_startproc 539 @ args = 0, pretend = 0, frame = 0 540 @ frame_needed = 0, uses_anonymous_args = 0 541 .loc 1 778 1 is_stmt 0 view .LVU149 542 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 543 .LCFI12: 544 .cfi_def_cfa_offset 24 545 .cfi_offset 3, -24 546 .cfi_offset 4, -20 547 .cfi_offset 5, -16 548 .cfi_offset 6, -12 549 .cfi_offset 7, -8 550 .cfi_offset 14, -4 551 0002 0446 mov r4, r0 779:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret = USBD_OK; 552 .loc 1 779 3 is_stmt 1 view .LVU150 553 .LVL44: 780:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 781:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Upon Reset call user call back */ 782:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_state = USBD_STATE_DEFAULT; 554 .loc 1 782 3 view .LVU151 555 .loc 1 782 19 is_stmt 0 view .LVU152 556 0004 0123 movs r3, #1 557 0006 80F89C32 strb r3, [r0, #668] 783:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep0_state = USBD_EP0_IDLE; 558 .loc 1 783 3 is_stmt 1 view .LVU153 559 .loc 1 783 19 is_stmt 0 view .LVU154 560 000a 0023 movs r3, #0 561 000c C0F89432 str r3, [r0, #660] 784:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_config = 0U; 562 .loc 1 784 3 is_stmt 1 view .LVU155 563 .loc 1 784 20 is_stmt 0 view .LVU156 564 0010 4360 str r3, [r0, #4] 785:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_remote_wakeup = 0U; 565 .loc 1 785 3 is_stmt 1 view .LVU157 566 .loc 1 785 27 is_stmt 0 view .LVU158 567 0012 C0F8A432 str r3, [r0, #676] 786:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_test_mode = 0U; 568 .loc 1 786 3 is_stmt 1 view .LVU159 569 .loc 1 786 23 is_stmt 0 view .LVU160 570 0016 80F8A032 strb r3, [r0, #672] 787:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 788:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #ifdef USE_USBD_COMPOSITE 789:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Parse the table of classes in use */ 790:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** for (uint32_t i = 0U; i < USBD_MAX_SUPPORTED_CLASS; i++) 791:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 792:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Check if current class is in use */ 793:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if ((pdev->tclasslist[i].Active) == 1U) 794:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 795:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[i] != NULL) 796:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 797:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->classId = i; 798:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Clear configuration and De-initialize the Class process*/ 799:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 800:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[i]->DeInit != NULL) 801:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { ARM GAS /tmp/cct0aKih.s page 25 802:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[i]->DeInit(pdev, (uint8_t)pdev->dev_config) != USBD_OK) 803:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 804:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_FAIL; 805:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 806:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 807:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 808:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 809:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 810:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #else 811:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 812:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[0] != NULL) 571 .loc 1 812 3 is_stmt 1 view .LVU161 572 .loc 1 812 19 is_stmt 0 view .LVU162 573 001a D0F8B832 ldr r3, [r0, #696] 574 .loc 1 812 6 view .LVU163 575 001e E3B1 cbz r3, .L40 813:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 814:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[0]->DeInit != NULL) 576 .loc 1 814 5 is_stmt 1 view .LVU164 577 .loc 1 814 24 is_stmt 0 view .LVU165 578 0020 5B68 ldr r3, [r3, #4] 579 .loc 1 814 8 view .LVU166 580 0022 E3B1 cbz r3, .L41 815:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 816:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[0]->DeInit(pdev, (uint8_t)pdev->dev_config) != USBD_OK) 581 .loc 1 816 7 is_stmt 1 view .LVU167 582 .loc 1 816 11 is_stmt 0 view .LVU168 583 0024 0021 movs r1, #0 584 0026 9847 blx r3 585 .LVL45: 586 .loc 1 816 10 discriminator 1 view .LVU169 587 0028 0746 mov r7, r0 588 002a D0B9 cbnz r0, .L44 589 .L39: 590 .LVL46: 817:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 818:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_FAIL; 819:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 820:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 821:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 822:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* USE_USBD_COMPOSITE */ 823:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 824:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Open EP0 OUT */ 825:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_LL_OpenEP(pdev, 0x00U, USBD_EP_TYPE_CTRL, USB_MAX_EP0_SIZE); 591 .loc 1 825 3 is_stmt 1 view .LVU170 592 .loc 1 825 9 is_stmt 0 view .LVU171 593 002c 4023 movs r3, #64 594 002e 0022 movs r2, #0 595 0030 1146 mov r1, r2 596 0032 2046 mov r0, r4 597 0034 FFF7FEFF bl USBD_LL_OpenEP 598 .LVL47: 826:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep_out[0x00U & 0xFU].is_used = 1U; 599 .loc 1 826 3 is_stmt 1 view .LVU172 600 .loc 1 826 38 is_stmt 0 view .LVU173 601 0038 0126 movs r6, #1 602 003a 84F86361 strb r6, [r4, #355] ARM GAS /tmp/cct0aKih.s page 26 827:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 828:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep_out[0].maxpacket = USB_MAX_EP0_SIZE; 603 .loc 1 828 3 is_stmt 1 view .LVU174 604 .loc 1 828 29 is_stmt 0 view .LVU175 605 003e 4025 movs r5, #64 606 0040 A4F86051 strh r5, [r4, #352] @ movhi 829:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 830:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Open EP0 IN */ 831:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_LL_OpenEP(pdev, 0x80U, USBD_EP_TYPE_CTRL, USB_MAX_EP0_SIZE); 607 .loc 1 831 3 is_stmt 1 view .LVU176 608 .loc 1 831 9 is_stmt 0 view .LVU177 609 0044 2B46 mov r3, r5 610 0046 0022 movs r2, #0 611 0048 8021 movs r1, #128 612 004a 2046 mov r0, r4 613 004c FFF7FEFF bl USBD_LL_OpenEP 614 .LVL48: 832:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep_in[0x80U & 0xFU].is_used = 1U; 615 .loc 1 832 3 is_stmt 1 view .LVU178 616 .loc 1 832 37 is_stmt 0 view .LVU179 617 0050 84F82360 strb r6, [r4, #35] 833:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 834:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep_in[0].maxpacket = USB_MAX_EP0_SIZE; 618 .loc 1 834 3 is_stmt 1 view .LVU180 619 .loc 1 834 28 is_stmt 0 view .LVU181 620 0054 2584 strh r5, [r4, #32] @ movhi 835:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 836:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return ret; 621 .loc 1 836 3 is_stmt 1 view .LVU182 837:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 622 .loc 1 837 1 is_stmt 0 view .LVU183 623 0056 3846 mov r0, r7 624 0058 F8BD pop {r3, r4, r5, r6, r7, pc} 625 .LVL49: 626 .L40: 779:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 627 .loc 1 779 22 view .LVU184 628 005a 0027 movs r7, #0 629 005c E6E7 b .L39 630 .L41: 631 005e 0027 movs r7, #0 632 0060 E4E7 b .L39 633 .LVL50: 634 .L44: 818:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 635 .loc 1 818 13 view .LVU185 636 0062 0327 movs r7, #3 637 0064 E2E7 b .L39 638 .cfi_endproc 639 .LFE254: 641 .section .text.USBD_LL_SetSpeed,"ax",%progbits 642 .align 1 643 .global USBD_LL_SetSpeed 644 .syntax unified 645 .thumb 646 .thumb_func 648 USBD_LL_SetSpeed: ARM GAS /tmp/cct0aKih.s page 27 649 .LVL51: 650 .LFB255: 838:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 839:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 840:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_SetSpeed 841:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle Reset event 842:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance 843:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status 844:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 845:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_SetSpeed(USBD_HandleTypeDef *pdev, 846:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_SpeedTypeDef speed) 847:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 651 .loc 1 847 1 is_stmt 1 view -0 652 .cfi_startproc 653 @ args = 0, pretend = 0, frame = 0 654 @ frame_needed = 0, uses_anonymous_args = 0 655 @ link register save eliminated. 848:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_speed = speed; 656 .loc 1 848 3 view .LVU187 657 .loc 1 848 19 is_stmt 0 view .LVU188 658 0000 0174 strb r1, [r0, #16] 849:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 850:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; 659 .loc 1 850 3 is_stmt 1 view .LVU189 851:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 660 .loc 1 851 1 is_stmt 0 view .LVU190 661 0002 0020 movs r0, #0 662 .LVL52: 663 .loc 1 851 1 view .LVU191 664 0004 7047 bx lr 665 .cfi_endproc 666 .LFE255: 668 .section .text.USBD_LL_Suspend,"ax",%progbits 669 .align 1 670 .global USBD_LL_Suspend 671 .syntax unified 672 .thumb 673 .thumb_func 675 USBD_LL_Suspend: 676 .LVL53: 677 .LFB256: 852:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 853:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 854:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_Suspend 855:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle Suspend event 856:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance 857:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status 858:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 859:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_Suspend(USBD_HandleTypeDef *pdev) 860:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 678 .loc 1 860 1 is_stmt 1 view -0 679 .cfi_startproc 680 @ args = 0, pretend = 0, frame = 0 681 @ frame_needed = 0, uses_anonymous_args = 0 682 @ link register save eliminated. 861:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->dev_state != USBD_STATE_SUSPENDED) 683 .loc 1 861 3 view .LVU193 ARM GAS /tmp/cct0aKih.s page 28 684 .loc 1 861 11 is_stmt 0 view .LVU194 685 0000 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 686 0004 DBB2 uxtb r3, r3 687 .loc 1 861 6 view .LVU195 688 0006 042B cmp r3, #4 689 0008 04D0 beq .L47 862:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 863:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_old_state = pdev->dev_state; 690 .loc 1 863 5 is_stmt 1 view .LVU196 691 .loc 1 863 31 is_stmt 0 view .LVU197 692 000a 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 693 000e DBB2 uxtb r3, r3 694 .loc 1 863 25 view .LVU198 695 0010 80F89D32 strb r3, [r0, #669] 696 .L47: 864:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 865:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 866:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_state = USBD_STATE_SUSPENDED; 697 .loc 1 866 3 is_stmt 1 view .LVU199 698 .loc 1 866 19 is_stmt 0 view .LVU200 699 0014 0423 movs r3, #4 700 0016 80F89C32 strb r3, [r0, #668] 867:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 868:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; 701 .loc 1 868 3 is_stmt 1 view .LVU201 869:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 702 .loc 1 869 1 is_stmt 0 view .LVU202 703 001a 0020 movs r0, #0 704 .LVL54: 705 .loc 1 869 1 view .LVU203 706 001c 7047 bx lr 707 .cfi_endproc 708 .LFE256: 710 .section .text.USBD_LL_Resume,"ax",%progbits 711 .align 1 712 .global USBD_LL_Resume 713 .syntax unified 714 .thumb 715 .thumb_func 717 USBD_LL_Resume: 718 .LVL55: 719 .LFB257: 870:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 871:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 872:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_Resume 873:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle Resume event 874:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance 875:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status 876:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 877:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_Resume(USBD_HandleTypeDef *pdev) 878:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 720 .loc 1 878 1 is_stmt 1 view -0 721 .cfi_startproc 722 @ args = 0, pretend = 0, frame = 0 723 @ frame_needed = 0, uses_anonymous_args = 0 724 @ link register save eliminated. 879:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->dev_state == USBD_STATE_SUSPENDED) ARM GAS /tmp/cct0aKih.s page 29 725 .loc 1 879 3 view .LVU205 726 .loc 1 879 11 is_stmt 0 view .LVU206 727 0000 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 728 0004 DBB2 uxtb r3, r3 729 .loc 1 879 6 view .LVU207 730 0006 042B cmp r3, #4 731 0008 01D0 beq .L50 732 .L49: 880:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 881:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_state = pdev->dev_old_state; 882:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 883:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 884:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; 733 .loc 1 884 3 is_stmt 1 view .LVU208 885:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 734 .loc 1 885 1 is_stmt 0 view .LVU209 735 000a 0020 movs r0, #0 736 .LVL56: 737 .loc 1 885 1 view .LVU210 738 000c 7047 bx lr 739 .LVL57: 740 .L50: 881:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 741 .loc 1 881 5 is_stmt 1 view .LVU211 881:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 742 .loc 1 881 27 is_stmt 0 view .LVU212 743 000e 90F89D32 ldrb r3, [r0, #669] @ zero_extendqisi2 744 0012 DBB2 uxtb r3, r3 881:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 745 .loc 1 881 21 view .LVU213 746 0014 80F89C32 strb r3, [r0, #668] 747 0018 F7E7 b .L49 748 .cfi_endproc 749 .LFE257: 751 .section .text.USBD_LL_SOF,"ax",%progbits 752 .align 1 753 .global USBD_LL_SOF 754 .syntax unified 755 .thumb 756 .thumb_func 758 USBD_LL_SOF: 759 .LVL58: 760 .LFB258: 886:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 887:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 888:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_SOF 889:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle SOF event 890:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance 891:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status 892:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 893:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_SOF(USBD_HandleTypeDef *pdev) 894:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 761 .loc 1 894 1 is_stmt 1 view -0 762 .cfi_startproc 763 @ args = 0, pretend = 0, frame = 0 764 @ frame_needed = 0, uses_anonymous_args = 0 765 .loc 1 894 1 is_stmt 0 view .LVU215 ARM GAS /tmp/cct0aKih.s page 30 766 0000 08B5 push {r3, lr} 767 .LCFI13: 768 .cfi_def_cfa_offset 8 769 .cfi_offset 3, -8 770 .cfi_offset 14, -4 895:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* The SOF event can be distributed for all classes that support it */ 896:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->dev_state == USBD_STATE_CONFIGURED) 771 .loc 1 896 3 is_stmt 1 view .LVU216 772 .loc 1 896 11 is_stmt 0 view .LVU217 773 0002 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 774 0006 DBB2 uxtb r3, r3 775 .loc 1 896 6 view .LVU218 776 0008 032B cmp r3, #3 777 000a 01D0 beq .L54 778 .LVL59: 779 .L52: 897:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 898:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #ifdef USE_USBD_COMPOSITE 899:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Parse the table of classes in use */ 900:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** for (uint32_t i = 0; i < USBD_MAX_SUPPORTED_CLASS; i++) 901:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 902:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Check if current class is in use */ 903:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if ((pdev->tclasslist[i].Active) == 1U) 904:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 905:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[i] != NULL) 906:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 907:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[i]->SOF != NULL) 908:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 909:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->classId = i; 910:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)pdev->pClass[i]->SOF(pdev); 911:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 912:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 913:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 914:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 915:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #else 916:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[0] != NULL) 917:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 918:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[0]->SOF != NULL) 919:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 920:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)pdev->pClass[0]->SOF(pdev); 921:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 922:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 923:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* USE_USBD_COMPOSITE */ 924:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 925:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 926:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; 780 .loc 1 926 3 is_stmt 1 view .LVU219 927:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 781 .loc 1 927 1 is_stmt 0 view .LVU220 782 000c 0020 movs r0, #0 783 000e 08BD pop {r3, pc} 784 .LVL60: 785 .L54: 916:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 786 .loc 1 916 5 is_stmt 1 view .LVU221 916:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 787 .loc 1 916 21 is_stmt 0 view .LVU222 ARM GAS /tmp/cct0aKih.s page 31 788 0010 D0F8B832 ldr r3, [r0, #696] 916:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 789 .loc 1 916 8 view .LVU223 790 0014 002B cmp r3, #0 791 0016 F9D0 beq .L52 918:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 792 .loc 1 918 7 is_stmt 1 view .LVU224 918:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 793 .loc 1 918 26 is_stmt 0 view .LVU225 794 0018 DB69 ldr r3, [r3, #28] 918:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 795 .loc 1 918 10 view .LVU226 796 001a 002B cmp r3, #0 797 001c F6D0 beq .L52 920:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 798 .loc 1 920 9 is_stmt 1 view .LVU227 920:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 799 .loc 1 920 15 is_stmt 0 view .LVU228 800 001e 9847 blx r3 801 .LVL61: 920:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 802 .loc 1 920 15 view .LVU229 803 0020 F4E7 b .L52 804 .cfi_endproc 805 .LFE258: 807 .section .text.USBD_LL_IsoINIncomplete,"ax",%progbits 808 .align 1 809 .global USBD_LL_IsoINIncomplete 810 .syntax unified 811 .thumb 812 .thumb_func 814 USBD_LL_IsoINIncomplete: 815 .LVL62: 816 .LFB259: 928:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 929:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 930:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_IsoINIncomplete 931:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle iso in incomplete event 932:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance 933:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param epnum: Endpoint number 934:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status 935:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 936:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_IsoINIncomplete(USBD_HandleTypeDef *pdev, 937:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint8_t epnum) 938:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 817 .loc 1 938 1 is_stmt 1 view -0 818 .cfi_startproc 819 @ args = 0, pretend = 0, frame = 0 820 @ frame_needed = 0, uses_anonymous_args = 0 821 .loc 1 938 1 is_stmt 0 view .LVU231 822 0000 08B5 push {r3, lr} 823 .LCFI14: 824 .cfi_def_cfa_offset 8 825 .cfi_offset 3, -8 826 .cfi_offset 14, -4 939:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[pdev->classId] == NULL) 827 .loc 1 939 3 is_stmt 1 view .LVU232 ARM GAS /tmp/cct0aKih.s page 32 828 .loc 1 939 24 is_stmt 0 view .LVU233 829 0002 D0F8D432 ldr r3, [r0, #724] 830 .loc 1 939 19 view .LVU234 831 0006 AE33 adds r3, r3, #174 832 0008 50F82320 ldr r2, [r0, r3, lsl #2] 833 .loc 1 939 6 view .LVU235 834 000c 5AB1 cbz r2, .L57 940:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 941:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_FAIL; 942:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 943:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 944:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->dev_state == USBD_STATE_CONFIGURED) 835 .loc 1 944 3 is_stmt 1 view .LVU236 836 .loc 1 944 11 is_stmt 0 view .LVU237 837 000e 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 838 0012 DBB2 uxtb r3, r3 839 .loc 1 944 6 view .LVU238 840 0014 032B cmp r3, #3 841 0016 01D0 beq .L61 945:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 946:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[pdev->classId]->IsoINIncomplete != NULL) 947:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 948:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)pdev->pClass[pdev->classId]->IsoINIncomplete(pdev, epnum); 949:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 950:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 951:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 952:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; 842 .loc 1 952 10 view .LVU239 843 0018 0020 movs r0, #0 844 .LVL63: 845 .L56: 953:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 846 .loc 1 953 1 view .LVU240 847 001a 08BD pop {r3, pc} 848 .LVL64: 849 .L61: 946:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 850 .loc 1 946 5 is_stmt 1 view .LVU241 946:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 851 .loc 1 946 36 is_stmt 0 view .LVU242 852 001c 136A ldr r3, [r2, #32] 946:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 853 .loc 1 946 8 view .LVU243 854 001e 23B1 cbz r3, .L59 948:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 855 .loc 1 948 7 is_stmt 1 view .LVU244 948:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 856 .loc 1 948 13 is_stmt 0 view .LVU245 857 0020 9847 blx r3 858 .LVL65: 952:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 859 .loc 1 952 10 view .LVU246 860 0022 0020 movs r0, #0 861 0024 F9E7 b .L56 862 .LVL66: 863 .L57: 941:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } ARM GAS /tmp/cct0aKih.s page 33 864 .loc 1 941 12 view .LVU247 865 0026 0320 movs r0, #3 866 .LVL67: 941:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 867 .loc 1 941 12 view .LVU248 868 0028 F7E7 b .L56 869 .LVL68: 870 .L59: 952:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 871 .loc 1 952 10 view .LVU249 872 002a 0020 movs r0, #0 873 .LVL69: 952:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 874 .loc 1 952 10 view .LVU250 875 002c F5E7 b .L56 876 .cfi_endproc 877 .LFE259: 879 .section .text.USBD_LL_IsoOUTIncomplete,"ax",%progbits 880 .align 1 881 .global USBD_LL_IsoOUTIncomplete 882 .syntax unified 883 .thumb 884 .thumb_func 886 USBD_LL_IsoOUTIncomplete: 887 .LVL70: 888 .LFB260: 954:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 955:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 956:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_IsoOUTIncomplete 957:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle iso out incomplete event 958:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance 959:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param epnum: Endpoint number 960:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status 961:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 962:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_IsoOUTIncomplete(USBD_HandleTypeDef *pdev, 963:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint8_t epnum) 964:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 889 .loc 1 964 1 is_stmt 1 view -0 890 .cfi_startproc 891 @ args = 0, pretend = 0, frame = 0 892 @ frame_needed = 0, uses_anonymous_args = 0 893 .loc 1 964 1 is_stmt 0 view .LVU252 894 0000 08B5 push {r3, lr} 895 .LCFI15: 896 .cfi_def_cfa_offset 8 897 .cfi_offset 3, -8 898 .cfi_offset 14, -4 965:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[pdev->classId] == NULL) 899 .loc 1 965 3 is_stmt 1 view .LVU253 900 .loc 1 965 24 is_stmt 0 view .LVU254 901 0002 D0F8D432 ldr r3, [r0, #724] 902 .loc 1 965 19 view .LVU255 903 0006 AE33 adds r3, r3, #174 904 0008 50F82320 ldr r2, [r0, r3, lsl #2] 905 .loc 1 965 6 view .LVU256 906 000c 5AB1 cbz r2, .L64 966:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { ARM GAS /tmp/cct0aKih.s page 34 967:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_FAIL; 968:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 969:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 970:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->dev_state == USBD_STATE_CONFIGURED) 907 .loc 1 970 3 is_stmt 1 view .LVU257 908 .loc 1 970 11 is_stmt 0 view .LVU258 909 000e 90F89C32 ldrb r3, [r0, #668] @ zero_extendqisi2 910 0012 DBB2 uxtb r3, r3 911 .loc 1 970 6 view .LVU259 912 0014 032B cmp r3, #3 913 0016 01D0 beq .L68 971:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 972:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[pdev->classId]->IsoOUTIncomplete != NULL) 973:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 974:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)pdev->pClass[pdev->classId]->IsoOUTIncomplete(pdev, epnum); 975:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 976:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 977:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 978:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; 914 .loc 1 978 10 view .LVU260 915 0018 0020 movs r0, #0 916 .LVL71: 917 .L63: 979:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 918 .loc 1 979 1 view .LVU261 919 001a 08BD pop {r3, pc} 920 .LVL72: 921 .L68: 972:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 922 .loc 1 972 5 is_stmt 1 view .LVU262 972:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 923 .loc 1 972 36 is_stmt 0 view .LVU263 924 001c 536A ldr r3, [r2, #36] 972:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 925 .loc 1 972 8 view .LVU264 926 001e 23B1 cbz r3, .L66 974:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 927 .loc 1 974 7 is_stmt 1 view .LVU265 974:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 928 .loc 1 974 13 is_stmt 0 view .LVU266 929 0020 9847 blx r3 930 .LVL73: 978:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 931 .loc 1 978 10 view .LVU267 932 0022 0020 movs r0, #0 933 0024 F9E7 b .L63 934 .LVL74: 935 .L64: 967:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 936 .loc 1 967 12 view .LVU268 937 0026 0320 movs r0, #3 938 .LVL75: 967:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 939 .loc 1 967 12 view .LVU269 940 0028 F7E7 b .L63 941 .LVL76: 942 .L66: ARM GAS /tmp/cct0aKih.s page 35 978:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 943 .loc 1 978 10 view .LVU270 944 002a 0020 movs r0, #0 945 .LVL77: 978:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 946 .loc 1 978 10 view .LVU271 947 002c F5E7 b .L63 948 .cfi_endproc 949 .LFE260: 951 .section .text.USBD_LL_DevConnected,"ax",%progbits 952 .align 1 953 .global USBD_LL_DevConnected 954 .syntax unified 955 .thumb 956 .thumb_func 958 USBD_LL_DevConnected: 959 .LVL78: 960 .LFB261: 980:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 981:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 982:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_DevConnected 983:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle device connection event 984:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance 985:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status 986:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 987:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_DevConnected(USBD_HandleTypeDef *pdev) 988:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 961 .loc 1 988 1 is_stmt 1 view -0 962 .cfi_startproc 963 @ args = 0, pretend = 0, frame = 0 964 @ frame_needed = 0, uses_anonymous_args = 0 965 @ link register save eliminated. 989:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Prevent unused argument compilation warning */ 990:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** UNUSED(pdev); 966 .loc 1 990 3 view .LVU273 991:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 992:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return USBD_OK; 967 .loc 1 992 3 view .LVU274 993:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 968 .loc 1 993 1 is_stmt 0 view .LVU275 969 0000 0020 movs r0, #0 970 .LVL79: 971 .loc 1 993 1 view .LVU276 972 0002 7047 bx lr 973 .cfi_endproc 974 .LFE261: 976 .section .text.USBD_LL_DevDisconnected,"ax",%progbits 977 .align 1 978 .global USBD_LL_DevDisconnected 979 .syntax unified 980 .thumb 981 .thumb_func 983 USBD_LL_DevDisconnected: 984 .LVL80: 985 .LFB262: 994:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 995:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** ARM GAS /tmp/cct0aKih.s page 36 996:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_LL_DevDisconnected 997:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Handle device disconnection event 998:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance 999:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval status 1000:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 1001:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef USBD_LL_DevDisconnected(USBD_HandleTypeDef *pdev) 1002:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 986 .loc 1 1002 1 is_stmt 1 view -0 987 .cfi_startproc 988 @ args = 0, pretend = 0, frame = 0 989 @ frame_needed = 0, uses_anonymous_args = 0 990 .loc 1 1002 1 is_stmt 0 view .LVU278 991 0000 08B5 push {r3, lr} 992 .LCFI16: 993 .cfi_def_cfa_offset 8 994 .cfi_offset 3, -8 995 .cfi_offset 14, -4 1003:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret = USBD_OK; 996 .loc 1 1003 3 is_stmt 1 view .LVU279 997 .LVL81: 1004:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1005:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Free Class Resources */ 1006:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_state = USBD_STATE_DEFAULT; 998 .loc 1 1006 3 view .LVU280 999 .loc 1 1006 19 is_stmt 0 view .LVU281 1000 0002 0123 movs r3, #1 1001 0004 80F89C32 strb r3, [r0, #668] 1007:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1008:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #ifdef USE_USBD_COMPOSITE 1009:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Parse the table of classes in use */ 1010:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** for (uint32_t i = 0; i < USBD_MAX_SUPPORTED_CLASS; i++) 1011:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1012:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Check if current class is in use */ 1013:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if ((pdev->tclasslist[i].Active) == 1U) 1014:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1015:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[i] != NULL) 1016:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1017:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->classId = i; 1018:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Clear configuration and De-initialize the Class process*/ 1019:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[i]->DeInit(pdev, (uint8_t)pdev->dev_config) != 0U) 1020:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1021:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_FAIL; 1022:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1023:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1024:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1025:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1026:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #else 1027:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[0] != NULL) 1002 .loc 1 1027 3 is_stmt 1 view .LVU282 1003 .loc 1 1027 19 is_stmt 0 view .LVU283 1004 0008 D0F8B832 ldr r3, [r0, #696] 1005 .loc 1 1027 6 view .LVU284 1006 000c 23B1 cbz r3, .L72 1028:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1029:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[0]->DeInit(pdev, (uint8_t)pdev->dev_config) != 0U) 1007 .loc 1 1029 5 is_stmt 1 view .LVU285 1008 .loc 1 1029 24 is_stmt 0 view .LVU286 ARM GAS /tmp/cct0aKih.s page 37 1009 000e 5B68 ldr r3, [r3, #4] 1010 .loc 1 1029 9 view .LVU287 1011 0010 0179 ldrb r1, [r0, #4] @ zero_extendqisi2 1012 0012 9847 blx r3 1013 .LVL82: 1014 .loc 1 1029 8 discriminator 1 view .LVU288 1015 0014 10B9 cbnz r0, .L75 1016 .L71: 1017 .LVL83: 1030:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1031:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = USBD_FAIL; 1032:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1033:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1034:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* USE_USBD_COMPOSITE */ 1035:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1036:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return ret; 1018 .loc 1 1036 3 is_stmt 1 view .LVU289 1037:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1019 .loc 1 1037 1 is_stmt 0 view .LVU290 1020 0016 08BD pop {r3, pc} 1021 .LVL84: 1022 .L72: 1003:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1023 .loc 1 1003 24 view .LVU291 1024 0018 0020 movs r0, #0 1025 .LVL85: 1003:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1026 .loc 1 1003 24 view .LVU292 1027 001a FCE7 b .L71 1028 .L75: 1031:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1029 .loc 1 1031 11 view .LVU293 1030 001c 0320 movs r0, #3 1031 001e FAE7 b .L71 1032 .cfi_endproc 1033 .LFE262: 1035 .section .text.USBD_CoreFindIF,"ax",%progbits 1036 .align 1 1037 .global USBD_CoreFindIF 1038 .syntax unified 1039 .thumb 1040 .thumb_func 1042 USBD_CoreFindIF: 1043 .LVL86: 1044 .LFB263: 1038:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1039:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 1040:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_CoreFindIF 1041:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * return the class index relative to the selected interface 1042:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance 1043:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param index : selected interface number 1044:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval index of the class using the selected interface number. OxFF if no class found. 1045:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 1046:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint8_t USBD_CoreFindIF(USBD_HandleTypeDef *pdev, uint8_t index) 1047:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1045 .loc 1 1047 1 is_stmt 1 view -0 1046 .cfi_startproc ARM GAS /tmp/cct0aKih.s page 38 1047 @ args = 0, pretend = 0, frame = 0 1048 @ frame_needed = 0, uses_anonymous_args = 0 1049 @ link register save eliminated. 1048:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #ifdef USE_USBD_COMPOSITE 1049:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Parse the table of classes in use */ 1050:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** for (uint32_t i = 0U; i < USBD_MAX_SUPPORTED_CLASS; i++) 1051:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1052:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Check if current class is in use */ 1053:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if ((pdev->tclasslist[i].Active) == 1U) 1054:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1055:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Parse all interfaces listed in the current class */ 1056:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** for (uint32_t j = 0U; j < pdev->tclasslist[i].NumIf; j++) 1057:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1058:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Check if requested Interface matches the current class interface */ 1059:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->tclasslist[i].Ifs[j] == index) 1060:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1061:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[i]->Setup != NULL) 1062:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1063:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return (uint8_t)i; 1064:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1065:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1066:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1067:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1068:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1069:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1070:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return 0xFFU; 1071:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #else 1072:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** UNUSED(pdev); 1050 .loc 1 1072 3 view .LVU295 1073:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** UNUSED(index); 1051 .loc 1 1073 3 view .LVU296 1074:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1075:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return 0x00U; 1052 .loc 1 1075 3 view .LVU297 1076:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* USE_USBD_COMPOSITE */ 1077:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1053 .loc 1 1077 1 is_stmt 0 view .LVU298 1054 0000 0020 movs r0, #0 1055 .LVL87: 1056 .loc 1 1077 1 view .LVU299 1057 0002 7047 bx lr 1058 .cfi_endproc 1059 .LFE263: 1061 .section .text.USBD_CoreFindEP,"ax",%progbits 1062 .align 1 1063 .global USBD_CoreFindEP 1064 .syntax unified 1065 .thumb 1066 .thumb_func 1068 USBD_CoreFindEP: 1069 .LVL88: 1070 .LFB264: 1078:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1079:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 1080:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_CoreFindEP 1081:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * return the class index relative to the selected endpoint 1082:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance ARM GAS /tmp/cct0aKih.s page 39 1083:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param index : selected endpoint number 1084:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval index of the class using the selected endpoint number. 0xFF if no class found. 1085:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 1086:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint8_t USBD_CoreFindEP(USBD_HandleTypeDef *pdev, uint8_t index) 1087:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1071 .loc 1 1087 1 is_stmt 1 view -0 1072 .cfi_startproc 1073 @ args = 0, pretend = 0, frame = 0 1074 @ frame_needed = 0, uses_anonymous_args = 0 1075 @ link register save eliminated. 1088:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #ifdef USE_USBD_COMPOSITE 1089:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Parse the table of classes in use */ 1090:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** for (uint32_t i = 0U; i < USBD_MAX_SUPPORTED_CLASS; i++) 1091:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1092:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Check if current class is in use */ 1093:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if ((pdev->tclasslist[i].Active) == 1U) 1094:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1095:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Parse all endpoints listed in the current class */ 1096:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** for (uint32_t j = 0U; j < pdev->tclasslist[i].NumEps; j++) 1097:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1098:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Check if requested endpoint matches the current class endpoint */ 1099:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->tclasslist[i].Eps[j].add == index) 1100:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1101:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdev->pClass[i]->Setup != NULL) 1102:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1103:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return (uint8_t)i; 1104:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1105:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1106:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1107:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1108:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1109:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1110:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return 0xFFU; 1111:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #else 1112:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** UNUSED(pdev); 1076 .loc 1 1112 3 view .LVU301 1113:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** UNUSED(index); 1077 .loc 1 1113 3 view .LVU302 1114:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1115:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return 0x00U; 1078 .loc 1 1115 3 view .LVU303 1116:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* USE_USBD_COMPOSITE */ 1117:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1079 .loc 1 1117 1 is_stmt 0 view .LVU304 1080 0000 0020 movs r0, #0 1081 .LVL89: 1082 .loc 1 1117 1 view .LVU305 1083 0002 7047 bx lr 1084 .cfi_endproc 1085 .LFE264: 1087 .section .text.USBD_LL_DataOutStage,"ax",%progbits 1088 .align 1 1089 .global USBD_LL_DataOutStage 1090 .syntax unified 1091 .thumb 1092 .thumb_func 1094 USBD_LL_DataOutStage: ARM GAS /tmp/cct0aKih.s page 40 1095 .LVL90: 1096 .LFB252: 588:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_EndpointTypeDef *pep; 1097 .loc 1 588 1 is_stmt 1 view -0 1098 .cfi_startproc 1099 @ args = 0, pretend = 0, frame = 0 1100 @ frame_needed = 0, uses_anonymous_args = 0 588:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_EndpointTypeDef *pep; 1101 .loc 1 588 1 is_stmt 0 view .LVU307 1102 0000 38B5 push {r3, r4, r5, lr} 1103 .LCFI17: 1104 .cfi_def_cfa_offset 16 1105 .cfi_offset 3, -16 1106 .cfi_offset 4, -12 1107 .cfi_offset 5, -8 1108 .cfi_offset 14, -4 1109 0002 0446 mov r4, r0 589:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret = USBD_OK; 1110 .loc 1 589 3 is_stmt 1 view .LVU308 590:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint8_t idx; 1111 .loc 1 590 3 view .LVU309 1112 .LVL91: 591:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1113 .loc 1 591 3 view .LVU310 593:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1114 .loc 1 593 3 view .LVU311 595:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1115 .loc 1 595 3 view .LVU312 595:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1116 .loc 1 595 6 is_stmt 0 view .LVU313 1117 0004 0D46 mov r5, r1 1118 0006 0029 cmp r1, #0 1119 0008 45D1 bne .L79 597:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1120 .loc 1 597 5 is_stmt 1 view .LVU314 1121 .LVL92: 599:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1122 .loc 1 599 5 view .LVU315 599:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1123 .loc 1 599 13 is_stmt 0 view .LVU316 1124 000a D0F89432 ldr r3, [r0, #660] 599:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1125 .loc 1 599 8 view .LVU317 1126 000e 032B cmp r3, #3 1127 0010 01D0 beq .L90 673:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1128 .loc 1 673 10 view .LVU318 1129 0012 0846 mov r0, r1 1130 .LVL93: 1131 .L80: 674:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1132 .loc 1 674 1 view .LVU319 1133 0014 38BD pop {r3, r4, r5, pc} 1134 .LVL94: 1135 .L90: 601:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1136 .loc 1 601 7 is_stmt 1 view .LVU320 ARM GAS /tmp/cct0aKih.s page 41 601:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1137 .loc 1 601 14 is_stmt 0 view .LVU321 1138 0016 D0F85831 ldr r3, [r0, #344] 601:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1139 .loc 1 601 32 view .LVU322 1140 001a B0F86021 ldrh r2, [r0, #352] 1141 .LVL95: 601:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1142 .loc 1 601 10 view .LVU323 1143 001e 9342 cmp r3, r2 1144 0020 09D8 bhi .L91 611:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1145 .loc 1 611 9 is_stmt 1 view .LVU324 611:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1146 .loc 1 611 30 is_stmt 0 view .LVU325 1147 0022 90F8AA32 ldrb r3, [r0, #682] @ zero_extendqisi2 1148 0026 03F01F03 and r3, r3, #31 611:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1149 .loc 1 611 9 view .LVU326 1150 002a 012B cmp r3, #1 1151 002c 12D0 beq .L82 1152 002e 022B cmp r3, #2 1153 0030 1FD0 beq .L83 1154 0032 0846 mov r0, r1 1155 .LVL96: 611:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1156 .loc 1 611 9 view .LVU327 1157 0034 13E0 b .L84 1158 .LVL97: 1159 .L91: 603:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pep->pbuffer += pep->maxpacket; 1160 .loc 1 603 9 is_stmt 1 view .LVU328 603:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pep->pbuffer += pep->maxpacket; 1161 .loc 1 603 25 is_stmt 0 view .LVU329 1162 0036 9B1A subs r3, r3, r2 1163 0038 C0F85831 str r3, [r0, #344] 604:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1164 .loc 1 604 9 is_stmt 1 view .LVU330 604:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1165 .loc 1 604 12 is_stmt 0 view .LVU331 1166 003c D0F86411 ldr r1, [r0, #356] 1167 .LVL98: 604:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1168 .loc 1 604 22 view .LVU332 1169 0040 1144 add r1, r1, r2 1170 0042 C0F86411 str r1, [r0, #356] 606:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1171 .loc 1 606 9 is_stmt 1 view .LVU333 606:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1172 .loc 1 606 15 is_stmt 0 view .LVU334 1173 0046 9A42 cmp r2, r3 1174 0048 38BF it cc 1175 004a 1A46 movcc r2, r3 1176 004c FFF7FEFF bl USBD_CtlContinueRx 1177 .LVL99: 673:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1178 .loc 1 673 10 view .LVU335 ARM GAS /tmp/cct0aKih.s page 42 1179 0050 2846 mov r0, r5 1180 0052 DFE7 b .L80 1181 .LVL100: 1182 .L82: 620:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; 1183 .loc 1 620 13 is_stmt 1 view .LVU336 620:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; 1184 .loc 1 620 19 is_stmt 0 view .LVU337 1185 0054 90F8AE12 ldrb r1, [r0, #686] @ zero_extendqisi2 1186 .LVL101: 620:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; 1187 .loc 1 620 19 view .LVU338 1188 0058 FFF7FEFF bl USBD_CoreFindIF 1189 .LVL102: 621:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1190 .loc 1 621 13 is_stmt 1 view .LVU339 1191 .L85: 633:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1192 .loc 1 633 9 view .LVU340 633:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1193 .loc 1 633 12 is_stmt 0 view .LVU341 1194 005c 20B9 cbnz r0, .L86 1195 .LVL103: 1196 .L84: 636:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1197 .loc 1 636 11 is_stmt 1 view .LVU342 636:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1198 .loc 1 636 19 is_stmt 0 view .LVU343 1199 005e 94F89C32 ldrb r3, [r4, #668] @ zero_extendqisi2 1200 0062 DBB2 uxtb r3, r3 636:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1201 .loc 1 636 14 view .LVU344 1202 0064 032B cmp r3, #3 1203 0066 09D0 beq .L92 1204 .L86: 646:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1205 .loc 1 646 9 is_stmt 1 view .LVU345 646:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1206 .loc 1 646 15 is_stmt 0 view .LVU346 1207 0068 2046 mov r0, r4 1208 006a FFF7FEFF bl USBD_CtlSendStatus 1209 .LVL104: 673:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1210 .loc 1 673 10 view .LVU347 1211 006e 2846 mov r0, r5 1212 0070 D0E7 b .L80 1213 .LVL105: 1214 .L83: 624:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; 1215 .loc 1 624 13 is_stmt 1 view .LVU348 624:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; 1216 .loc 1 624 19 is_stmt 0 view .LVU349 1217 0072 90F8AE12 ldrb r1, [r0, #686] @ zero_extendqisi2 1218 .LVL106: 624:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; 1219 .loc 1 624 19 view .LVU350 1220 0076 FFF7FEFF bl USBD_CoreFindEP ARM GAS /tmp/cct0aKih.s page 43 1221 .LVL107: 625:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1222 .loc 1 625 13 is_stmt 1 view .LVU351 1223 007a EFE7 b .L85 1224 .LVL108: 1225 .L92: 638:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1226 .loc 1 638 13 view .LVU352 638:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1227 .loc 1 638 29 is_stmt 0 view .LVU353 1228 007c 00F1AE03 add r3, r0, #174 1229 0080 54F82330 ldr r3, [r4, r3, lsl #2] 638:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1230 .loc 1 638 34 view .LVU354 1231 0084 1A69 ldr r2, [r3, #16] 638:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1232 .loc 1 638 16 view .LVU355 1233 0086 002A cmp r2, #0 1234 0088 EED0 beq .L86 640:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pClass[idx]->EP0_RxReady(pdev); 1235 .loc 1 640 15 is_stmt 1 view .LVU356 640:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pClass[idx]->EP0_RxReady(pdev); 1236 .loc 1 640 29 is_stmt 0 view .LVU357 1237 008a C4F8D402 str r0, [r4, #724] 641:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1238 .loc 1 641 15 is_stmt 1 view .LVU358 641:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1239 .loc 1 641 32 is_stmt 0 view .LVU359 1240 008e 1B69 ldr r3, [r3, #16] 641:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1241 .loc 1 641 15 view .LVU360 1242 0090 2046 mov r0, r4 1243 0092 9847 blx r3 1244 .LVL109: 1245 0094 E8E7 b .L86 1246 .LVL110: 1247 .L79: 653:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1248 .loc 1 653 5 is_stmt 1 view .LVU361 653:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1249 .loc 1 653 11 is_stmt 0 view .LVU362 1250 0096 01F07F01 and r1, r1, #127 1251 .LVL111: 653:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1252 .loc 1 653 11 view .LVU363 1253 009a FFF7FEFF bl USBD_CoreFindEP 1254 .LVL112: 655:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1255 .loc 1 655 5 is_stmt 1 view .LVU364 655:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1256 .loc 1 655 8 is_stmt 0 view .LVU365 1257 009e 90B9 cbnz r0, .L88 658:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1258 .loc 1 658 7 is_stmt 1 view .LVU366 658:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1259 .loc 1 658 15 is_stmt 0 view .LVU367 1260 00a0 94F89C32 ldrb r3, [r4, #668] @ zero_extendqisi2 ARM GAS /tmp/cct0aKih.s page 44 1261 00a4 DBB2 uxtb r3, r3 658:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1262 .loc 1 658 10 view .LVU368 1263 00a6 032B cmp r3, #3 1264 00a8 B4D1 bne .L80 660:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1265 .loc 1 660 9 is_stmt 1 view .LVU369 660:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1266 .loc 1 660 25 is_stmt 0 view .LVU370 1267 00aa 00F1AE03 add r3, r0, #174 1268 00ae 54F82330 ldr r3, [r4, r3, lsl #2] 660:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1269 .loc 1 660 30 view .LVU371 1270 00b2 9A69 ldr r2, [r3, #24] 660:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1271 .loc 1 660 12 view .LVU372 1272 00b4 002A cmp r2, #0 1273 00b6 ADD0 beq .L80 662:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = (USBD_StatusTypeDef)pdev->pClass[idx]->DataOut(pdev, epnum); 1274 .loc 1 662 11 is_stmt 1 view .LVU373 662:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = (USBD_StatusTypeDef)pdev->pClass[idx]->DataOut(pdev, epnum); 1275 .loc 1 662 25 is_stmt 0 view .LVU374 1276 00b8 C4F8D402 str r0, [r4, #724] 663:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1277 .loc 1 663 11 is_stmt 1 view .LVU375 663:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1278 .loc 1 663 54 is_stmt 0 view .LVU376 1279 00bc 9B69 ldr r3, [r3, #24] 663:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1280 .loc 1 663 37 view .LVU377 1281 00be 2946 mov r1, r5 1282 00c0 2046 mov r0, r4 1283 .LVL113: 663:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1284 .loc 1 663 37 view .LVU378 1285 00c2 9847 blx r3 1286 .LVL114: 666:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1287 .loc 1 666 7 is_stmt 1 view .LVU379 1288 00c4 A6E7 b .L80 1289 .LVL115: 1290 .L88: 673:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1291 .loc 1 673 10 is_stmt 0 view .LVU380 1292 00c6 0020 movs r0, #0 1293 .LVL116: 673:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1294 .loc 1 673 10 view .LVU381 1295 00c8 A4E7 b .L80 1296 .cfi_endproc 1297 .LFE252: 1299 .section .text.USBD_LL_DataInStage,"ax",%progbits 1300 .align 1 1301 .global USBD_LL_DataInStage 1302 .syntax unified 1303 .thumb 1304 .thumb_func ARM GAS /tmp/cct0aKih.s page 45 1306 USBD_LL_DataInStage: 1307 .LVL117: 1308 .LFB253: 686:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_EndpointTypeDef *pep; 1309 .loc 1 686 1 is_stmt 1 view -0 1310 .cfi_startproc 1311 @ args = 0, pretend = 0, frame = 0 1312 @ frame_needed = 0, uses_anonymous_args = 0 686:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_EndpointTypeDef *pep; 1313 .loc 1 686 1 is_stmt 0 view .LVU383 1314 0000 38B5 push {r3, r4, r5, lr} 1315 .LCFI18: 1316 .cfi_def_cfa_offset 16 1317 .cfi_offset 3, -16 1318 .cfi_offset 4, -12 1319 .cfi_offset 5, -8 1320 .cfi_offset 14, -4 1321 0002 0446 mov r4, r0 687:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_StatusTypeDef ret; 1322 .loc 1 687 3 is_stmt 1 view .LVU384 688:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint8_t idx; 1323 .loc 1 688 3 view .LVU385 689:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1324 .loc 1 689 3 view .LVU386 691:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1325 .loc 1 691 3 view .LVU387 693:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1326 .loc 1 693 3 view .LVU388 693:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1327 .loc 1 693 6 is_stmt 0 view .LVU389 1328 0004 0D46 mov r5, r1 1329 0006 0029 cmp r1, #0 1330 0008 4CD1 bne .L94 695:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1331 .loc 1 695 5 is_stmt 1 view .LVU390 1332 .LVL118: 697:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1333 .loc 1 697 5 view .LVU391 697:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1334 .loc 1 697 13 is_stmt 0 view .LVU392 1335 000a D0F89432 ldr r3, [r0, #660] 697:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1336 .loc 1 697 8 view .LVU393 1337 000e 022B cmp r3, #2 1338 0010 07D0 beq .L102 1339 .LVL119: 1340 .L95: 738:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1341 .loc 1 738 5 is_stmt 1 view .LVU394 738:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1342 .loc 1 738 13 is_stmt 0 view .LVU395 1343 0012 94F8A002 ldrb r0, [r4, #672] @ zero_extendqisi2 738:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1344 .loc 1 738 8 view .LVU396 1345 0016 18B1 cbz r0, .L99 740:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->dev_test_mode = 0U; 1346 .loc 1 740 7 is_stmt 1 view .LVU397 ARM GAS /tmp/cct0aKih.s page 46 741:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1347 .loc 1 741 7 view .LVU398 741:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1348 .loc 1 741 27 is_stmt 0 view .LVU399 1349 0018 0023 movs r3, #0 1350 001a 84F8A032 strb r3, [r4, #672] 768:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1351 .loc 1 768 10 view .LVU400 1352 001e 2846 mov r0, r5 1353 .LVL120: 1354 .L99: 769:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1355 .loc 1 769 1 view .LVU401 1356 0020 38BD pop {r3, r4, r5, pc} 1357 .LVL121: 1358 .L102: 699:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1359 .loc 1 699 7 is_stmt 1 view .LVU402 699:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1360 .loc 1 699 14 is_stmt 0 view .LVU403 1361 0022 8269 ldr r2, [r0, #24] 1362 .LVL122: 699:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1363 .loc 1 699 32 view .LVU404 1364 0024 038C ldrh r3, [r0, #32] 699:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1365 .loc 1 699 10 view .LVU405 1366 0026 9A42 cmp r2, r3 1367 0028 0ED8 bhi .L103 712:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (pep->total_length >= pep->maxpacket) && 1368 .loc 1 712 9 is_stmt 1 view .LVU406 712:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (pep->total_length >= pep->maxpacket) && 1369 .loc 1 712 12 is_stmt 0 view .LVU407 1370 002a 9A42 cmp r2, r3 1371 002c 1AD0 beq .L104 1372 .L97: 724:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1373 .loc 1 724 11 is_stmt 1 view .LVU408 724:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1374 .loc 1 724 19 is_stmt 0 view .LVU409 1375 002e 94F89C32 ldrb r3, [r4, #668] @ zero_extendqisi2 1376 0032 DBB2 uxtb r3, r3 724:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1377 .loc 1 724 14 view .LVU410 1378 0034 032B cmp r3, #3 1379 0036 29D0 beq .L105 1380 .LVL123: 1381 .L98: 732:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_CtlReceiveStatus(pdev); 1382 .loc 1 732 11 is_stmt 1 view .LVU411 732:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (void)USBD_CtlReceiveStatus(pdev); 1383 .loc 1 732 17 is_stmt 0 view .LVU412 1384 0038 8021 movs r1, #128 1385 003a 2046 mov r0, r4 1386 003c FFF7FEFF bl USBD_LL_StallEP 1387 .LVL124: 733:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } ARM GAS /tmp/cct0aKih.s page 47 1388 .loc 1 733 11 is_stmt 1 view .LVU413 733:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1389 .loc 1 733 17 is_stmt 0 view .LVU414 1390 0040 2046 mov r0, r4 1391 0042 FFF7FEFF bl USBD_CtlReceiveStatus 1392 .LVL125: 1393 0046 E4E7 b .L95 1394 .LVL126: 1395 .L103: 701:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pep->pbuffer += pep->maxpacket; 1396 .loc 1 701 9 is_stmt 1 view .LVU415 701:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pep->pbuffer += pep->maxpacket; 1397 .loc 1 701 25 is_stmt 0 view .LVU416 1398 0048 D21A subs r2, r2, r3 1399 004a 8261 str r2, [r0, #24] 702:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1400 .loc 1 702 9 is_stmt 1 view .LVU417 702:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1401 .loc 1 702 12 is_stmt 0 view .LVU418 1402 004c 416A ldr r1, [r0, #36] 1403 .LVL127: 702:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1404 .loc 1 702 22 view .LVU419 1405 004e 1944 add r1, r1, r3 1406 0050 4162 str r1, [r0, #36] 704:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1407 .loc 1 704 9 is_stmt 1 view .LVU420 704:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1408 .loc 1 704 15 is_stmt 0 view .LVU421 1409 0052 FFF7FEFF bl USBD_CtlContinueSendData 1410 .LVL128: 707:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1411 .loc 1 707 9 is_stmt 1 view .LVU422 707:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1412 .loc 1 707 15 is_stmt 0 view .LVU423 1413 0056 0023 movs r3, #0 1414 0058 1A46 mov r2, r3 1415 005a 1946 mov r1, r3 1416 005c 2046 mov r0, r4 1417 005e FFF7FEFF bl USBD_LL_PrepareReceive 1418 .LVL129: 1419 0062 D6E7 b .L95 1420 .LVL130: 1421 .L104: 713:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (pep->total_length < pdev->ep0_data_len)) 1422 .loc 1 713 17 view .LVU424 1423 0064 4269 ldr r2, [r0, #20] 712:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (pep->total_length >= pep->maxpacket) && 1424 .loc 1 712 49 discriminator 1 view .LVU425 1425 0066 9342 cmp r3, r2 1426 0068 E1D8 bhi .L97 714:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1427 .loc 1 714 38 view .LVU426 1428 006a D0F89832 ldr r3, [r0, #664] 713:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (pep->total_length < pdev->ep0_data_len)) 1429 .loc 1 713 51 view .LVU427 1430 006e 9A42 cmp r2, r3 ARM GAS /tmp/cct0aKih.s page 48 1431 0070 DDD2 bcs .L97 716:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep0_data_len = 0U; 1432 .loc 1 716 11 is_stmt 1 view .LVU428 716:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep0_data_len = 0U; 1433 .loc 1 716 17 is_stmt 0 view .LVU429 1434 0072 0022 movs r2, #0 1435 0074 1146 mov r1, r2 1436 .LVL131: 716:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->ep0_data_len = 0U; 1437 .loc 1 716 17 view .LVU430 1438 0076 FFF7FEFF bl USBD_CtlContinueSendData 1439 .LVL132: 717:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1440 .loc 1 717 11 is_stmt 1 view .LVU431 717:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1441 .loc 1 717 30 is_stmt 0 view .LVU432 1442 007a 0021 movs r1, #0 1443 007c C4F89812 str r1, [r4, #664] 720:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1444 .loc 1 720 11 is_stmt 1 view .LVU433 720:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1445 .loc 1 720 17 is_stmt 0 view .LVU434 1446 0080 0B46 mov r3, r1 1447 0082 0A46 mov r2, r1 1448 0084 2046 mov r0, r4 1449 0086 FFF7FEFF bl USBD_LL_PrepareReceive 1450 .LVL133: 720:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1451 .loc 1 720 11 view .LVU435 1452 008a C2E7 b .L95 1453 .LVL134: 1454 .L105: 726:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1455 .loc 1 726 13 is_stmt 1 view .LVU436 726:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1456 .loc 1 726 29 is_stmt 0 view .LVU437 1457 008c D4F8B832 ldr r3, [r4, #696] 726:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1458 .loc 1 726 32 view .LVU438 1459 0090 DA68 ldr r2, [r3, #12] 726:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1460 .loc 1 726 16 view .LVU439 1461 0092 002A cmp r2, #0 1462 0094 D0D0 beq .L98 728:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pClass[0]->EP0_TxSent(pdev); 1463 .loc 1 728 15 is_stmt 1 view .LVU440 728:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdev->pClass[0]->EP0_TxSent(pdev); 1464 .loc 1 728 29 is_stmt 0 view .LVU441 1465 0096 0022 movs r2, #0 1466 0098 C4F8D422 str r2, [r4, #724] 729:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1467 .loc 1 729 15 is_stmt 1 view .LVU442 729:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1468 .loc 1 729 30 is_stmt 0 view .LVU443 1469 009c DB68 ldr r3, [r3, #12] 729:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1470 .loc 1 729 15 view .LVU444 ARM GAS /tmp/cct0aKih.s page 49 1471 009e 2046 mov r0, r4 1472 .LVL135: 729:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1473 .loc 1 729 15 view .LVU445 1474 00a0 9847 blx r3 1475 .LVL136: 729:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1476 .loc 1 729 15 view .LVU446 1477 00a2 C9E7 b .L98 1478 .LVL137: 1479 .L94: 747:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1480 .loc 1 747 5 is_stmt 1 view .LVU447 747:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1481 .loc 1 747 11 is_stmt 0 view .LVU448 1482 00a4 41F08001 orr r1, r1, #128 1483 .LVL138: 747:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1484 .loc 1 747 11 view .LVU449 1485 00a8 FFF7FEFF bl USBD_CoreFindEP 1486 .LVL139: 749:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1487 .loc 1 749 5 is_stmt 1 view .LVU450 749:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1488 .loc 1 749 8 is_stmt 0 view .LVU451 1489 00ac 90B9 cbnz r0, .L100 752:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1490 .loc 1 752 7 is_stmt 1 view .LVU452 752:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1491 .loc 1 752 15 is_stmt 0 view .LVU453 1492 00ae 94F89C32 ldrb r3, [r4, #668] @ zero_extendqisi2 1493 00b2 DBB2 uxtb r3, r3 752:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1494 .loc 1 752 10 view .LVU454 1495 00b4 032B cmp r3, #3 1496 00b6 B3D1 bne .L99 754:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1497 .loc 1 754 9 is_stmt 1 view .LVU455 754:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1498 .loc 1 754 25 is_stmt 0 view .LVU456 1499 00b8 00F1AE03 add r3, r0, #174 1500 00bc 54F82330 ldr r3, [r4, r3, lsl #2] 754:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1501 .loc 1 754 30 view .LVU457 1502 00c0 5A69 ldr r2, [r3, #20] 754:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1503 .loc 1 754 12 view .LVU458 1504 00c2 002A cmp r2, #0 1505 00c4 ACD0 beq .L99 756:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = (USBD_StatusTypeDef)pdev->pClass[idx]->DataIn(pdev, epnum); 1506 .loc 1 756 11 is_stmt 1 view .LVU459 756:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ret = (USBD_StatusTypeDef)pdev->pClass[idx]->DataIn(pdev, epnum); 1507 .loc 1 756 25 is_stmt 0 view .LVU460 1508 00c6 C4F8D402 str r0, [r4, #724] 757:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1509 .loc 1 757 11 is_stmt 1 view .LVU461 757:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ARM GAS /tmp/cct0aKih.s page 50 1510 .loc 1 757 54 is_stmt 0 view .LVU462 1511 00ca 5B69 ldr r3, [r3, #20] 757:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1512 .loc 1 757 37 view .LVU463 1513 00cc 2946 mov r1, r5 1514 00ce 2046 mov r0, r4 1515 .LVL140: 757:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1516 .loc 1 757 37 view .LVU464 1517 00d0 9847 blx r3 1518 .LVL141: 759:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1519 .loc 1 759 11 is_stmt 1 view .LVU465 1520 00d2 A5E7 b .L99 1521 .LVL142: 1522 .L100: 768:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1523 .loc 1 768 10 is_stmt 0 view .LVU466 1524 00d4 0020 movs r0, #0 1525 .LVL143: 768:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1526 .loc 1 768 10 view .LVU467 1527 00d6 A3E7 b .L99 1528 .cfi_endproc 1529 .LFE253: 1531 .section .text.USBD_GetNextDesc,"ax",%progbits 1532 .align 1 1533 .global USBD_GetNextDesc 1534 .syntax unified 1535 .thumb 1536 .thumb_func 1538 USBD_GetNextDesc: 1539 .LVL144: 1540 .LFB266: 1118:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1119:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #ifdef USE_USBD_COMPOSITE 1120:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 1121:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_CoreGetEPAdd 1122:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * Get the endpoint address relative to a selected class 1123:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance 1124:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param ep_dir: USBD_EP_IN or USBD_EP_OUT 1125:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param ep_type: USBD_EP_TYPE_CTRL, USBD_EP_TYPE_ISOC, USBD_EP_TYPE_BULK or USBD_EP_TYPE_INTR 1126:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param ClassId: The Class ID 1127:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval Address of the selected endpoint or 0xFFU if no endpoint found. 1128:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 1129:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint8_t USBD_CoreGetEPAdd(USBD_HandleTypeDef *pdev, uint8_t ep_dir, uint8_t ep_type, uint8_t ClassI 1130:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1131:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint8_t idx; 1132:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1133:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* Find the EP address in the selected class table */ 1134:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** for (idx = 0; idx < pdev->tclasslist[ClassId].NumEps; idx++) 1135:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1136:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (((pdev->tclasslist[ClassId].Eps[idx].add & USBD_EP_IN) == ep_dir) && \ 1137:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (pdev->tclasslist[ClassId].Eps[idx].type == ep_type) && \ 1138:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** (pdev->tclasslist[ClassId].Eps[idx].is_used != 0U)) 1139:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1140:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return (pdev->tclasslist[ClassId].Eps[idx].add); ARM GAS /tmp/cct0aKih.s page 51 1141:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1142:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1143:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1144:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /* If reaching this point, then no endpoint was found */ 1145:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return 0xFFU; 1146:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1147:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** #endif /* USE_USBD_COMPOSITE */ 1148:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1149:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 1150:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_GetEpDesc 1151:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * This function return the Endpoint descriptor 1152:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pdev: device instance 1153:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param pConfDesc: pointer to Bos descriptor 1154:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param EpAddr: endpoint address 1155:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval pointer to video endpoint descriptor 1156:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ 1157:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** void *USBD_GetEpDesc(uint8_t *pConfDesc, uint8_t EpAddr) 1158:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1159:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_DescHeaderTypeDef *pdesc = (USBD_DescHeaderTypeDef *)(void *)pConfDesc; 1160:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_ConfigDescTypeDef *desc = (USBD_ConfigDescTypeDef *)(void *)pConfDesc; 1161:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_EpDescTypeDef *pEpDesc = NULL; 1162:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint16_t ptr; 1163:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1164:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (desc->wTotalLength > desc->bLength) 1165:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1166:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** ptr = desc->bLength; 1167:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1168:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** while (ptr < desc->wTotalLength) 1169:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1170:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pdesc = USBD_GetNextDesc((uint8_t *)pdesc, &ptr); 1171:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1172:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pdesc->bDescriptorType == USB_DESC_TYPE_ENDPOINT) 1173:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1174:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pEpDesc = (USBD_EpDescTypeDef *)(void *)pdesc; 1175:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1176:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** if (pEpDesc->bEndpointAddress == EpAddr) 1177:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1178:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** break; 1179:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1180:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** else 1181:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1182:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pEpDesc = NULL; 1183:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1184:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1185:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1186:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1187:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1188:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return (void *)pEpDesc; 1189:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1190:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1191:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** /** 1192:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @brief USBD_GetNextDesc 1193:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * This function return the next descriptor header 1194:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param buf: Buffer where the descriptor is available 1195:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @param ptr: data pointer inside the descriptor 1196:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** * @retval next header 1197:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** */ ARM GAS /tmp/cct0aKih.s page 52 1198:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_DescHeaderTypeDef *USBD_GetNextDesc(uint8_t *pbuf, uint16_t *ptr) 1199:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1541 .loc 1 1199 1 is_stmt 1 view -0 1542 .cfi_startproc 1543 @ args = 0, pretend = 0, frame = 0 1544 @ frame_needed = 0, uses_anonymous_args = 0 1545 @ link register save eliminated. 1200:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_DescHeaderTypeDef *pnext = (USBD_DescHeaderTypeDef *)(void *)pbuf; 1546 .loc 1 1200 3 view .LVU469 1201:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1202:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** *ptr += pnext->bLength; 1547 .loc 1 1202 3 view .LVU470 1548 0000 0B88 ldrh r3, [r1] 1549 .loc 1 1202 16 is_stmt 0 view .LVU471 1550 0002 0278 ldrb r2, [r0] @ zero_extendqisi2 1551 .loc 1 1202 8 view .LVU472 1552 0004 1344 add r3, r3, r2 1553 0006 0B80 strh r3, [r1] @ movhi 1203:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** pnext = (USBD_DescHeaderTypeDef *)(void *)(pbuf + pnext->bLength); 1554 .loc 1 1203 3 is_stmt 1 view .LVU473 1555 .loc 1 1203 58 is_stmt 0 view .LVU474 1556 0008 0378 ldrb r3, [r0] @ zero_extendqisi2 1557 .LVL145: 1204:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1205:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** return (pnext); 1558 .loc 1 1205 3 is_stmt 1 view .LVU475 1206:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1559 .loc 1 1206 1 is_stmt 0 view .LVU476 1560 000a 1844 add r0, r0, r3 1561 .LVL146: 1562 .loc 1 1206 1 view .LVU477 1563 000c 7047 bx lr 1564 .cfi_endproc 1565 .LFE266: 1567 .section .text.USBD_GetEpDesc,"ax",%progbits 1568 .align 1 1569 .global USBD_GetEpDesc 1570 .syntax unified 1571 .thumb 1572 .thumb_func 1574 USBD_GetEpDesc: 1575 .LVL147: 1576 .LFB265: 1158:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_DescHeaderTypeDef *pdesc = (USBD_DescHeaderTypeDef *)(void *)pConfDesc; 1577 .loc 1 1158 1 is_stmt 1 view -0 1578 .cfi_startproc 1579 @ args = 0, pretend = 0, frame = 8 1580 @ frame_needed = 0, uses_anonymous_args = 0 1159:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_ConfigDescTypeDef *desc = (USBD_ConfigDescTypeDef *)(void *)pConfDesc; 1581 .loc 1 1159 3 view .LVU479 1160:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_EpDescTypeDef *pEpDesc = NULL; 1582 .loc 1 1160 3 view .LVU480 1161:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint16_t ptr; 1583 .loc 1 1161 3 view .LVU481 1162:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1584 .loc 1 1162 3 view .LVU482 1164:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { ARM GAS /tmp/cct0aKih.s page 53 1585 .loc 1 1164 3 view .LVU483 1164:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1586 .loc 1 1164 11 is_stmt 0 view .LVU484 1587 0000 4288 ldrh r2, [r0, #2] @ unaligned 1164:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1588 .loc 1 1164 32 view .LVU485 1589 0002 0378 ldrb r3, [r0] @ zero_extendqisi2 1164:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1590 .loc 1 1164 6 view .LVU486 1591 0004 9A42 cmp r2, r3 1592 0006 18D9 bls .L111 1158:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** USBD_DescHeaderTypeDef *pdesc = (USBD_DescHeaderTypeDef *)(void *)pConfDesc; 1593 .loc 1 1158 1 view .LVU487 1594 0008 30B5 push {r4, r5, lr} 1595 .LCFI19: 1596 .cfi_def_cfa_offset 12 1597 .cfi_offset 4, -12 1598 .cfi_offset 5, -8 1599 .cfi_offset 14, -4 1600 000a 83B0 sub sp, sp, #12 1601 .LCFI20: 1602 .cfi_def_cfa_offset 24 1603 000c 0446 mov r4, r0 1604 000e 0D46 mov r5, r1 1166:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1605 .loc 1 1166 5 is_stmt 1 view .LVU488 1166:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1606 .loc 1 1166 9 is_stmt 0 view .LVU489 1607 0010 ADF80630 strh r3, [sp, #6] @ movhi 1168:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1608 .loc 1 1168 5 is_stmt 1 view .LVU490 1609 .LVL148: 1610 .L109: 1168:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1611 .loc 1 1168 16 view .LVU491 1168:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1612 .loc 1 1168 22 is_stmt 0 view .LVU492 1613 0014 6388 ldrh r3, [r4, #2] @ unaligned 1168:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1614 .loc 1 1168 16 view .LVU493 1615 0016 BDF80620 ldrh r2, [sp, #6] 1616 001a 9A42 cmp r2, r3 1617 001c 0AD2 bcs .L116 1170:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1618 .loc 1 1170 7 is_stmt 1 view .LVU494 1170:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1619 .loc 1 1170 15 is_stmt 0 view .LVU495 1620 001e 0DF10601 add r1, sp, #6 1621 0022 FFF7FEFF bl USBD_GetNextDesc 1622 .LVL149: 1172:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1623 .loc 1 1172 7 is_stmt 1 view .LVU496 1172:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1624 .loc 1 1172 16 is_stmt 0 view .LVU497 1625 0026 4378 ldrb r3, [r0, #1] @ zero_extendqisi2 1172:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1626 .loc 1 1172 10 view .LVU498 ARM GAS /tmp/cct0aKih.s page 54 1627 0028 052B cmp r3, #5 1628 002a F3D1 bne .L109 1174:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1629 .loc 1 1174 9 is_stmt 1 view .LVU499 1630 .LVL150: 1176:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1631 .loc 1 1176 9 view .LVU500 1176:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1632 .loc 1 1176 20 is_stmt 0 view .LVU501 1633 002c 8378 ldrb r3, [r0, #2] @ zero_extendqisi2 1176:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1634 .loc 1 1176 12 view .LVU502 1635 002e AB42 cmp r3, r5 1636 0030 F0D1 bne .L109 1637 0032 00E0 b .L107 1638 .LVL151: 1639 .L116: 1176:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** { 1640 .loc 1 1176 12 view .LVU503 1641 0034 0020 movs r0, #0 1642 .LVL152: 1643 .L107: 1189:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1644 .loc 1 1189 1 view .LVU504 1645 0036 03B0 add sp, sp, #12 1646 .LCFI21: 1647 .cfi_def_cfa_offset 12 1648 @ sp needed 1649 0038 30BD pop {r4, r5, pc} 1650 .LVL153: 1651 .L111: 1652 .LCFI22: 1653 .cfi_def_cfa_offset 0 1654 .cfi_restore 4 1655 .cfi_restore 5 1656 .cfi_restore 14 1161:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** uint16_t ptr; 1657 .loc 1 1161 23 view .LVU505 1658 003a 0020 movs r0, #0 1659 .LVL154: 1188:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** } 1660 .loc 1 1188 3 is_stmt 1 view .LVU506 1189:Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c **** 1661 .loc 1 1189 1 is_stmt 0 view .LVU507 1662 003c 7047 bx lr 1663 .cfi_endproc 1664 .LFE265: 1666 .text 1667 .Letext0: 1668 .file 2 "/usr/lib/gcc/arm-none-eabi/13.2.1/include/stdint.h" 1669 .file 3 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h" 1670 .file 4 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h" 1671 .file 5 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h" 1672 .file 6 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h" ARM GAS /tmp/cct0aKih.s page 55 DEFINED SYMBOLS *ABS*:00000000 usbd_core.c /tmp/cct0aKih.s:21 .text.USBD_Init:00000000 $t /tmp/cct0aKih.s:27 .text.USBD_Init:00000000 USBD_Init /tmp/cct0aKih.s:96 .text.USBD_DeInit:00000000 $t /tmp/cct0aKih.s:102 .text.USBD_DeInit:00000000 USBD_DeInit /tmp/cct0aKih.s:162 .text.USBD_RegisterClass:00000000 $t /tmp/cct0aKih.s:168 .text.USBD_RegisterClass:00000000 USBD_RegisterClass /tmp/cct0aKih.s:241 .text.USBD_Start:00000000 $t /tmp/cct0aKih.s:247 .text.USBD_Start:00000000 USBD_Start /tmp/cct0aKih.s:270 .text.USBD_Stop:00000000 $t /tmp/cct0aKih.s:276 .text.USBD_Stop:00000000 USBD_Stop /tmp/cct0aKih.s:317 .text.USBD_RunTestMode:00000000 $t /tmp/cct0aKih.s:323 .text.USBD_RunTestMode:00000000 USBD_RunTestMode /tmp/cct0aKih.s:342 .text.USBD_SetClassConfig:00000000 $t /tmp/cct0aKih.s:348 .text.USBD_SetClassConfig:00000000 USBD_SetClassConfig /tmp/cct0aKih.s:389 .text.USBD_ClrClassConfig:00000000 $t /tmp/cct0aKih.s:395 .text.USBD_ClrClassConfig:00000000 USBD_ClrClassConfig /tmp/cct0aKih.s:434 .text.USBD_LL_SetupStage:00000000 $t /tmp/cct0aKih.s:440 .text.USBD_LL_SetupStage:00000000 USBD_LL_SetupStage /tmp/cct0aKih.s:528 .text.USBD_LL_Reset:00000000 $t /tmp/cct0aKih.s:534 .text.USBD_LL_Reset:00000000 USBD_LL_Reset /tmp/cct0aKih.s:642 .text.USBD_LL_SetSpeed:00000000 $t /tmp/cct0aKih.s:648 .text.USBD_LL_SetSpeed:00000000 USBD_LL_SetSpeed /tmp/cct0aKih.s:669 .text.USBD_LL_Suspend:00000000 $t /tmp/cct0aKih.s:675 .text.USBD_LL_Suspend:00000000 USBD_LL_Suspend /tmp/cct0aKih.s:711 .text.USBD_LL_Resume:00000000 $t /tmp/cct0aKih.s:717 .text.USBD_LL_Resume:00000000 USBD_LL_Resume /tmp/cct0aKih.s:752 .text.USBD_LL_SOF:00000000 $t /tmp/cct0aKih.s:758 .text.USBD_LL_SOF:00000000 USBD_LL_SOF /tmp/cct0aKih.s:808 .text.USBD_LL_IsoINIncomplete:00000000 $t /tmp/cct0aKih.s:814 .text.USBD_LL_IsoINIncomplete:00000000 USBD_LL_IsoINIncomplete /tmp/cct0aKih.s:880 .text.USBD_LL_IsoOUTIncomplete:00000000 $t /tmp/cct0aKih.s:886 .text.USBD_LL_IsoOUTIncomplete:00000000 USBD_LL_IsoOUTIncomplete /tmp/cct0aKih.s:952 .text.USBD_LL_DevConnected:00000000 $t /tmp/cct0aKih.s:958 .text.USBD_LL_DevConnected:00000000 USBD_LL_DevConnected /tmp/cct0aKih.s:977 .text.USBD_LL_DevDisconnected:00000000 $t /tmp/cct0aKih.s:983 .text.USBD_LL_DevDisconnected:00000000 USBD_LL_DevDisconnected /tmp/cct0aKih.s:1036 .text.USBD_CoreFindIF:00000000 $t /tmp/cct0aKih.s:1042 .text.USBD_CoreFindIF:00000000 USBD_CoreFindIF /tmp/cct0aKih.s:1062 .text.USBD_CoreFindEP:00000000 $t /tmp/cct0aKih.s:1068 .text.USBD_CoreFindEP:00000000 USBD_CoreFindEP /tmp/cct0aKih.s:1088 .text.USBD_LL_DataOutStage:00000000 $t /tmp/cct0aKih.s:1094 .text.USBD_LL_DataOutStage:00000000 USBD_LL_DataOutStage /tmp/cct0aKih.s:1300 .text.USBD_LL_DataInStage:00000000 $t /tmp/cct0aKih.s:1306 .text.USBD_LL_DataInStage:00000000 USBD_LL_DataInStage /tmp/cct0aKih.s:1532 .text.USBD_GetNextDesc:00000000 $t /tmp/cct0aKih.s:1538 .text.USBD_GetNextDesc:00000000 USBD_GetNextDesc /tmp/cct0aKih.s:1568 .text.USBD_GetEpDesc:00000000 $t /tmp/cct0aKih.s:1574 .text.USBD_GetEpDesc:00000000 USBD_GetEpDesc UNDEFINED SYMBOLS USBD_LL_Init USBD_LL_Stop USBD_LL_DeInit USBD_LL_Start USBD_ParseSetupRequest ARM GAS /tmp/cct0aKih.s page 56 USBD_StdDevReq USBD_StdItfReq USBD_StdEPReq USBD_LL_StallEP USBD_LL_OpenEP USBD_CtlContinueRx USBD_CtlSendStatus USBD_CtlReceiveStatus USBD_CtlContinueSendData USBD_LL_PrepareReceive