ARM GAS /tmp/ccalJhl3.s page 1
1 .cpu cortex-m0
2 .eabi_attribute 20, 1
3 .eabi_attribute 21, 1
4 .eabi_attribute 23, 3
5 .eabi_attribute 24, 1
6 .eabi_attribute 25, 1
7 .eabi_attribute 26, 1
8 .eabi_attribute 30, 1
9 .eabi_attribute 34, 0
10 .eabi_attribute 18, 4
11 .file "stm32f0xx_ll_usb.c"
12 .text
13 .Ltext0:
14 .cfi_sections .debug_frame
15 .section .text.USB_CoreInit,"ax",%progbits
16 .align 1
17 .global USB_CoreInit
18 .syntax unified
19 .code 16
20 .thumb_func
21 .fpu softvfp
23 USB_CoreInit:
24 .LFB40:
25 .file 1 "Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c"
1:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
2:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** ******************************************************************************
3:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @file stm32f0xx_ll_usb.c
4:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @author MCD Application Team
5:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB Low Layer HAL module driver.
6:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** *
7:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * This file provides firmware functions to manage the following
8:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * functionalities of the USB Peripheral Controller:
9:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * + Initialization/de-initialization functions
10:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * + I/O operation functions
11:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * + Peripheral Control functions
12:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * + Peripheral State functions
13:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** *
14:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** @verbatim
15:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** ==============================================================================
16:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** ##### How to use this driver #####
17:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** ==============================================================================
18:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** [..]
19:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** (#) Fill parameters of Init structure in USB_OTG_CfgTypeDef structure.
20:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
21:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** (#) Call USB_CoreInit() API to initialize the USB Core peripheral.
22:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
23:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** (#) The upper HAL HCD/PCD driver will call the right routines for its internal processes.
24:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
25:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** @endverbatim
26:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** ******************************************************************************
27:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @attention
28:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** *
29:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** *
© Copyright (c) 2016 STMicroelectronics.
30:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * All rights reserved.
31:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** *
32:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * This software component is licensed by ST under BSD 3-Clause license,
33:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * the "License"; You may not use this file except in compliance with the
ARM GAS /tmp/ccalJhl3.s page 2
34:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * License. You may obtain a copy of the License at:
35:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * opensource.org/licenses/BSD-3-Clause
36:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** *
37:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** ******************************************************************************
38:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
39:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
40:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Includes ------------------------------------------------------------------*/
41:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** #include "stm32f0xx_hal.h"
42:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
43:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /** @addtogroup STM32F0xx_LL_USB_DRIVER
44:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @{
45:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
46:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
47:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** #if defined (HAL_PCD_MODULE_ENABLED) || defined (HAL_HCD_MODULE_ENABLED)
48:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** #if defined (USB)
49:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Private typedef -----------------------------------------------------------*/
50:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Private define ------------------------------------------------------------*/
51:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Private macro -------------------------------------------------------------*/
52:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Private variables ---------------------------------------------------------*/
53:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Private function prototypes -----------------------------------------------*/
54:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Private functions ---------------------------------------------------------*/
55:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
56:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
57:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
58:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief Initializes the USB Core
59:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx: USB Instance
60:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param cfg : pointer to a USB_CfgTypeDef structure that contains
61:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * the configuration information for the specified USBx peripheral.
62:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
63:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
64:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef USB_CoreInit(USB_TypeDef *USBx, USB_CfgTypeDef cfg)
65:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
26 .loc 1 65 0
27 .cfi_startproc
28 @ args = 36, pretend = 16, frame = 0
29 @ frame_needed = 0, uses_anonymous_args = 0
30 @ link register save eliminated.
31 .LVL0:
32 0000 84B0 sub sp, sp, #16
33 .LCFI0:
34 .cfi_def_cfa_offset 16
35 0002 0191 str r1, [sp, #4]
36 0004 0292 str r2, [sp, #8]
37 0006 0393 str r3, [sp, #12]
66:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Prevent unused argument(s) compilation warning */
67:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(USBx);
68:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(cfg);
69:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
70:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* NOTE : - This function is not required by USB Device FS peripheral, it is used
71:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** only by USB OTG FS peripheral.
72:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** - This function is added to ensure compatibility across platforms.
73:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
74:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
75:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return HAL_OK;
76:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
38 .loc 1 76 0
39 0008 0020 movs r0, #0
ARM GAS /tmp/ccalJhl3.s page 3
40 .LVL1:
41 @ sp needed
42 000a 04B0 add sp, sp, #16
43 000c 7047 bx lr
44 .cfi_endproc
45 .LFE40:
47 .section .text.USB_EnableGlobalInt,"ax",%progbits
48 .align 1
49 .global USB_EnableGlobalInt
50 .syntax unified
51 .code 16
52 .thumb_func
53 .fpu softvfp
55 USB_EnableGlobalInt:
56 .LFB41:
77:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
78:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
79:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_EnableGlobalInt
80:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * Enables the controller's Global Int in the AHB Config reg
81:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
82:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
83:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
84:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef USB_EnableGlobalInt(USB_TypeDef *USBx)
85:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
57 .loc 1 85 0
58 .cfi_startproc
59 @ args = 0, pretend = 0, frame = 0
60 @ frame_needed = 0, uses_anonymous_args = 0
61 @ link register save eliminated.
62 .LVL2:
86:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint16_t winterruptmask;
87:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
88:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Set winterruptmask variable */
89:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** winterruptmask = USB_CNTR_CTRM | USB_CNTR_WKUPM |
90:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USB_CNTR_SUSPM | USB_CNTR_ERRM |
91:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USB_CNTR_SOFM | USB_CNTR_ESOFM |
92:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USB_CNTR_RESETM | USB_CNTR_L1REQM;
93:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
94:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Set interrupt mask */
95:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USBx->CNTR |= winterruptmask;
63 .loc 1 95 0
64 0000 4022 movs r2, #64
65 0002 835A ldrh r3, [r0, r2]
66 0004 0249 ldr r1, .L3
67 0006 0B43 orrs r3, r1
68 0008 9BB2 uxth r3, r3
69 000a 8352 strh r3, [r0, r2]
96:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
97:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return HAL_OK;
98:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
70 .loc 1 98 0
71 000c 0020 movs r0, #0
72 .LVL3:
73 @ sp needed
74 000e 7047 bx lr
75 .L4:
76 .align 2
ARM GAS /tmp/ccalJhl3.s page 4
77 .L3:
78 0010 80BFFFFF .word -16512
79 .cfi_endproc
80 .LFE41:
82 .section .text.USB_DisableGlobalInt,"ax",%progbits
83 .align 1
84 .global USB_DisableGlobalInt
85 .syntax unified
86 .code 16
87 .thumb_func
88 .fpu softvfp
90 USB_DisableGlobalInt:
91 .LFB42:
99:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_DisableGlobalInt
102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * Disable the controller's Global Int in the AHB Config reg
103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef USB_DisableGlobalInt(USB_TypeDef *USBx)
107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
92 .loc 1 107 0
93 .cfi_startproc
94 @ args = 0, pretend = 0, frame = 0
95 @ frame_needed = 0, uses_anonymous_args = 0
96 @ link register save eliminated.
97 .LVL4:
108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint16_t winterruptmask;
109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Set winterruptmask variable */
111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** winterruptmask = USB_CNTR_CTRM | USB_CNTR_WKUPM |
112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USB_CNTR_SUSPM | USB_CNTR_ERRM |
113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USB_CNTR_SOFM | USB_CNTR_ESOFM |
114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USB_CNTR_RESETM | USB_CNTR_L1REQM;
115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Clear interrupt mask */
117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USBx->CNTR &= ~winterruptmask;
98 .loc 1 117 0
99 0000 4022 movs r2, #64
100 0002 835A ldrh r3, [r0, r2]
101 0004 0249 ldr r1, .L6
102 0006 0B40 ands r3, r1
103 0008 8352 strh r3, [r0, r2]
118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return HAL_OK;
120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
104 .loc 1 120 0
105 000a 0020 movs r0, #0
106 .LVL5:
107 @ sp needed
108 000c 7047 bx lr
109 .L7:
110 000e C046 .align 2
111 .L6:
112 0010 7F400000 .word 16511
113 .cfi_endproc
ARM GAS /tmp/ccalJhl3.s page 5
114 .LFE42:
116 .section .text.USB_SetCurrentMode,"ax",%progbits
117 .align 1
118 .global USB_SetCurrentMode
119 .syntax unified
120 .code 16
121 .thumb_func
122 .fpu softvfp
124 USB_SetCurrentMode:
125 .LFB43:
121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_SetCurrentMode : Set functional mode
124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param mode : current core mode
126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * This parameter can be one of the these values:
127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @arg USB_DEVICE_MODE: Peripheral mode mode
128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef USB_SetCurrentMode(USB_TypeDef *USBx, USB_ModeTypeDef mode)
131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
126 .loc 1 131 0
127 .cfi_startproc
128 @ args = 0, pretend = 0, frame = 0
129 @ frame_needed = 0, uses_anonymous_args = 0
130 @ link register save eliminated.
131 .LVL6:
132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Prevent unused argument(s) compilation warning */
133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(USBx);
134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(mode);
135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* NOTE : - This function is not required by USB Device FS peripheral, it is used
137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** only by USB OTG FS peripheral.
138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** - This function is added to ensure compatibility across platforms.
139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return HAL_OK;
141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
132 .loc 1 141 0
133 0000 0020 movs r0, #0
134 .LVL7:
135 @ sp needed
136 0002 7047 bx lr
137 .cfi_endproc
138 .LFE43:
140 .section .text.USB_DevInit,"ax",%progbits
141 .align 1
142 .global USB_DevInit
143 .syntax unified
144 .code 16
145 .thumb_func
146 .fpu softvfp
148 USB_DevInit:
149 .LFB44:
142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_DevInit : Initializes the USB controller registers
145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * for device mode
ARM GAS /tmp/ccalJhl3.s page 6
146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param cfg : pointer to a USB_CfgTypeDef structure that contains
148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * the configuration information for the specified USBx peripheral.
149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef USB_DevInit(USB_TypeDef *USBx, USB_CfgTypeDef cfg)
152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
150 .loc 1 152 0
151 .cfi_startproc
152 @ args = 36, pretend = 16, frame = 0
153 @ frame_needed = 0, uses_anonymous_args = 0
154 .LVL8:
155 0000 84B0 sub sp, sp, #16
156 .LCFI1:
157 .cfi_def_cfa_offset 16
158 0002 10B5 push {r4, lr}
159 .LCFI2:
160 .cfi_def_cfa_offset 24
161 .cfi_offset 4, -24
162 .cfi_offset 14, -20
163 0004 0391 str r1, [sp, #12]
164 0006 0492 str r2, [sp, #16]
165 0008 0593 str r3, [sp, #20]
153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Prevent unused argument(s) compilation warning */
154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(cfg);
155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Init Device */
157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /*CNTR_FRES = 1*/
158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USBx->CNTR = USB_CNTR_FRES;
166 .loc 1 158 0
167 000a 4022 movs r2, #64
168 000c 0123 movs r3, #1
169 000e 8352 strh r3, [r0, r2]
159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /*CNTR_FRES = 0*/
161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USBx->CNTR = 0;
170 .loc 1 161 0
171 0010 0023 movs r3, #0
172 0012 8352 strh r3, [r0, r2]
162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /*Clear pending interrupts*/
164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USBx->ISTR = 0;
173 .loc 1 164 0
174 0014 0432 adds r2, r2, #4
175 0016 8352 strh r3, [r0, r2]
165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /*Set Btable Address*/
167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USBx->BTABLE = BTABLE_ADDRESS;
176 .loc 1 167 0
177 0018 0C32 adds r2, r2, #12
178 001a 8352 strh r3, [r0, r2]
168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Enable USB Device Interrupt mask */
170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** (void)USB_EnableGlobalInt(USBx);
179 .loc 1 170 0
180 001c FFF7FEFF bl USB_EnableGlobalInt
181 .LVL9:
ARM GAS /tmp/ccalJhl3.s page 7
171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return HAL_OK;
173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
182 .loc 1 173 0
183 0020 0020 movs r0, #0
184 @ sp needed
185 0022 10BC pop {r4}
186 0024 08BC pop {r3}
187 0026 04B0 add sp, sp, #16
188 0028 1847 bx r3
189 .cfi_endproc
190 .LFE44:
192 .section .text.USB_SetDevSpeed,"ax",%progbits
193 .align 1
194 .global USB_SetDevSpeed
195 .syntax unified
196 .code 16
197 .thumb_func
198 .fpu softvfp
200 USB_SetDevSpeed:
201 .LFB45:
174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_SetDevSpeed :Initializes the device speed
177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * depending on the PHY type and the enumeration speed of the device.
178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx Selected device
179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param speed device speed
180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval Hal status
181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef USB_SetDevSpeed(USB_TypeDef *USBx, uint8_t speed)
183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
202 .loc 1 183 0
203 .cfi_startproc
204 @ args = 0, pretend = 0, frame = 0
205 @ frame_needed = 0, uses_anonymous_args = 0
206 @ link register save eliminated.
207 .LVL10:
184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Prevent unused argument(s) compilation warning */
185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(USBx);
186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(speed);
187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* NOTE : - This function is not required by USB Device FS peripheral, it is used
189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** only by USB OTG FS peripheral.
190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** - This function is added to ensure compatibility across platforms.
191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return HAL_OK;
194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
208 .loc 1 194 0
209 0000 0020 movs r0, #0
210 .LVL11:
211 @ sp needed
212 0002 7047 bx lr
213 .cfi_endproc
214 .LFE45:
216 .section .text.USB_FlushTxFifo,"ax",%progbits
217 .align 1
ARM GAS /tmp/ccalJhl3.s page 8
218 .global USB_FlushTxFifo
219 .syntax unified
220 .code 16
221 .thumb_func
222 .fpu softvfp
224 USB_FlushTxFifo:
225 .LFB46:
195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_FlushTxFifo : Flush a Tx FIFO
198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param num : FIFO number
200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * This parameter can be a value from 1 to 15
201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** 15 means Flush all Tx FIFOs
202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef USB_FlushTxFifo(USB_TypeDef *USBx, uint32_t num)
205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
226 .loc 1 205 0
227 .cfi_startproc
228 @ args = 0, pretend = 0, frame = 0
229 @ frame_needed = 0, uses_anonymous_args = 0
230 @ link register save eliminated.
231 .LVL12:
206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Prevent unused argument(s) compilation warning */
207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(USBx);
208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(num);
209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* NOTE : - This function is not required by USB Device FS peripheral, it is used
211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** only by USB OTG FS peripheral.
212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** - This function is added to ensure compatibility across platforms.
213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return HAL_OK;
216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
232 .loc 1 216 0
233 0000 0020 movs r0, #0
234 .LVL13:
235 @ sp needed
236 0002 7047 bx lr
237 .cfi_endproc
238 .LFE46:
240 .section .text.USB_FlushRxFifo,"ax",%progbits
241 .align 1
242 .global USB_FlushRxFifo
243 .syntax unified
244 .code 16
245 .thumb_func
246 .fpu softvfp
248 USB_FlushRxFifo:
249 .LFB47:
217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_FlushRxFifo : Flush Rx FIFO
220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
ARM GAS /tmp/ccalJhl3.s page 9
223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef USB_FlushRxFifo(USB_TypeDef *USBx)
224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
250 .loc 1 224 0
251 .cfi_startproc
252 @ args = 0, pretend = 0, frame = 0
253 @ frame_needed = 0, uses_anonymous_args = 0
254 @ link register save eliminated.
255 .LVL14:
225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Prevent unused argument(s) compilation warning */
226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(USBx);
227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* NOTE : - This function is not required by USB Device FS peripheral, it is used
229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** only by USB OTG FS peripheral.
230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** - This function is added to ensure compatibility across platforms.
231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return HAL_OK;
234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
256 .loc 1 234 0
257 0000 0020 movs r0, #0
258 .LVL15:
259 @ sp needed
260 0002 7047 bx lr
261 .cfi_endproc
262 .LFE47:
264 .section .text.USB_ActivateEndpoint,"ax",%progbits
265 .align 1
266 .global USB_ActivateEndpoint
267 .syntax unified
268 .code 16
269 .thumb_func
270 .fpu softvfp
272 USB_ActivateEndpoint:
273 .LFB48:
235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief Activate and configure an endpoint
238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param ep: pointer to endpoint structure
240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef USB_ActivateEndpoint(USB_TypeDef *USBx, USB_EPTypeDef *ep)
243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
274 .loc 1 243 0
275 .cfi_startproc
276 @ args = 0, pretend = 0, frame = 0
277 @ frame_needed = 0, uses_anonymous_args = 0
278 .LVL16:
279 0000 F0B5 push {r4, r5, r6, r7, lr}
280 .LCFI3:
281 .cfi_def_cfa_offset 20
282 .cfi_offset 4, -20
283 .cfi_offset 5, -16
284 .cfi_offset 6, -12
285 .cfi_offset 7, -8
286 .cfi_offset 14, -4
287 .LVL17:
ARM GAS /tmp/ccalJhl3.s page 10
244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef ret = HAL_OK;
245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint16_t wEpRegVal;
246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** wEpRegVal = PCD_GET_ENDPOINT(USBx, ep->num) & USB_EP_T_MASK;
288 .loc 1 247 0
289 0002 0D78 ldrb r5, [r1]
290 0004 AD00 lsls r5, r5, #2
291 0006 4519 adds r5, r0, r5
292 0008 2B88 ldrh r3, [r5]
293 000a B14A ldr r2, .L39
294 000c 1340 ands r3, r2
295 .LVL18:
248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* initialize Endpoint */
250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** switch (ep->type)
296 .loc 1 250 0
297 000e CA78 ldrb r2, [r1, #3]
298 0010 012A cmp r2, #1
299 0012 54D0 beq .L15
300 0014 002A cmp r2, #0
301 0016 48D0 beq .L16
302 0018 022A cmp r2, #2
303 001a 03D0 beq .L17
304 001c 032A cmp r2, #3
305 001e 49D0 beq .L18
251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** case EP_TYPE_CTRL:
253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** wEpRegVal |= USB_EP_CONTROL;
254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** break;
255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** case EP_TYPE_BULK:
257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** wEpRegVal |= USB_EP_BULK;
258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** break;
259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** case EP_TYPE_INTR:
261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** wEpRegVal |= USB_EP_INTERRUPT;
262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** break;
263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** case EP_TYPE_ISOC:
265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** wEpRegVal |= USB_EP_ISOCHRONOUS;
266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** break;
267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** default:
269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** ret = HAL_ERROR;
306 .loc 1 269 0
307 0020 0124 movs r4, #1
308 0022 00E0 b .L14
309 .L17:
244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint16_t wEpRegVal;
310 .loc 1 244 0
311 0024 0024 movs r4, #0
312 .L14:
313 .LVL19:
270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** break;
271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_ENDPOINT(USBx, ep->num, wEpRegVal | USB_EP_CTR_RX | USB_EP_CTR_TX);
ARM GAS /tmp/ccalJhl3.s page 11
314 .loc 1 273 0
315 0026 AB4A ldr r2, .L39+4
316 0028 1343 orrs r3, r2
317 .LVL20:
318 002a 9BB2 uxth r3, r3
319 002c 2B80 strh r3, [r5]
320 .LBB2:
274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_ADDRESS(USBx, ep->num, ep->num);
321 .loc 1 275 0
322 002e 0B78 ldrb r3, [r1]
323 0030 9E00 lsls r6, r3, #2
324 0032 8619 adds r6, r0, r6
325 0034 3588 ldrh r5, [r6]
326 0036 2DB2 sxth r5, r5
327 0038 A74F ldr r7, .L39+8
328 003a 3D40 ands r5, r7
329 003c 2B43 orrs r3, r5
330 003e 9BB2 uxth r3, r3
331 .LVL21:
332 0040 1A43 orrs r2, r3
333 0042 92B2 uxth r2, r2
334 0044 3280 strh r2, [r6]
335 .LBE2:
276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** if (ep->doublebuffer == 0U)
336 .loc 1 277 0
337 0046 0B7B ldrb r3, [r1, #12]
338 .LVL22:
339 0048 002B cmp r3, #0
340 004a 00D0 beq .LCB243
341 004c 94E0 b .L19 @long jump
342 .LCB243:
278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** if (ep->is_in != 0U)
343 .loc 1 279 0
344 004e 4B78 ldrb r3, [r1, #1]
345 0050 002B cmp r3, #0
346 0052 44D0 beq .L20
347 .LVL23:
348 .LBB3:
280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /*Set the endpoint Transmit buffer address */
282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_TX_ADDRESS(USBx, ep->num, ep->pmaadress);
349 .loc 1 282 0
350 0054 5023 movs r3, #80
351 0056 C25A ldrh r2, [r0, r3]
352 0058 8218 adds r2, r0, r2
353 .LVL24:
354 005a 0B78 ldrb r3, [r1]
355 005c DB00 lsls r3, r3, #3
356 005e 9B18 adds r3, r3, r2
357 0060 8022 movs r2, #128
358 .LVL25:
359 0062 D200 lsls r2, r2, #3
360 0064 9446 mov ip, r2
361 0066 6344 add r3, r3, ip
ARM GAS /tmp/ccalJhl3.s page 12
362 .LVL26:
363 0068 CA88 ldrh r2, [r1, #6]
364 006a 5208 lsrs r2, r2, #1
365 006c 5200 lsls r2, r2, #1
366 006e 1A80 strh r2, [r3]
367 .LBE3:
368 .LBB4:
283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num);
369 .loc 1 283 0
370 0070 0B78 ldrb r3, [r1]
371 .LVL27:
372 0072 9B00 lsls r3, r3, #2
373 0074 C318 adds r3, r0, r3
374 0076 1A88 ldrh r2, [r3]
375 .LVL28:
376 0078 5206 lsls r2, r2, #25
377 007a 06D5 bpl .L21
378 .LVL29:
379 .LBB5:
380 .loc 1 283 0 is_stmt 0 discriminator 1
381 007c 1A88 ldrh r2, [r3]
382 007e 3D00 movs r5, r7
383 0080 1540 ands r5, r2
384 .LVL30:
385 0082 964A ldr r2, .L39+12
386 0084 2A43 orrs r2, r5
387 0086 92B2 uxth r2, r2
388 0088 1A80 strh r2, [r3]
389 .LVL31:
390 .L21:
391 .LBE5:
392 .LBE4:
284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** if (ep->type != EP_TYPE_ISOC)
393 .loc 1 285 0 is_stmt 1
394 008a CB78 ldrb r3, [r1, #3]
395 008c 012B cmp r3, #1
396 008e 1BD0 beq .L22
397 .LBB6:
286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Configure NAK status for the Endpoint */
288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_NAK);
398 .loc 1 288 0
399 0090 0B78 ldrb r3, [r1]
400 0092 9B00 lsls r3, r3, #2
401 0094 C018 adds r0, r0, r3
402 .LVL32:
403 0096 0388 ldrh r3, [r0]
404 0098 914A ldr r2, .L39+16
405 009a 1340 ands r3, r2
406 .LVL33:
407 009c 2022 movs r2, #32
408 009e 5A40 eors r2, r3
409 .LVL34:
410 00a0 8C4B ldr r3, .L39+4
411 00a2 1343 orrs r3, r2
412 00a4 9BB2 uxth r3, r3
ARM GAS /tmp/ccalJhl3.s page 13
413 00a6 0380 strh r3, [r0]
414 .LBE6:
415 00a8 51E0 b .L23
416 .LVL35:
417 .L16:
253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** break;
418 .loc 1 253 0
419 00aa 8022 movs r2, #128
420 00ac 9200 lsls r2, r2, #2
421 00ae 1343 orrs r3, r2
422 .LVL36:
244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint16_t wEpRegVal;
423 .loc 1 244 0
424 00b0 0024 movs r4, #0
254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
425 .loc 1 254 0
426 00b2 B8E7 b .L14
427 .L18:
261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** break;
428 .loc 1 261 0
429 00b4 C022 movs r2, #192
430 00b6 D200 lsls r2, r2, #3
431 00b8 1343 orrs r3, r2
432 .LVL37:
244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint16_t wEpRegVal;
433 .loc 1 244 0
434 00ba 0024 movs r4, #0
262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
435 .loc 1 262 0
436 00bc B3E7 b .L14
437 .L15:
265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** break;
438 .loc 1 265 0
439 00be 8022 movs r2, #128
440 00c0 D200 lsls r2, r2, #3
441 00c2 1343 orrs r3, r2
442 .LVL38:
244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint16_t wEpRegVal;
443 .loc 1 244 0
444 00c4 0024 movs r4, #0
266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
445 .loc 1 266 0
446 00c6 AEE7 b .L14
447 .LVL39:
448 .L22:
449 .LBB7:
289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** else
291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Configure TX Endpoint to disabled state */
293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS);
450 .loc 1 293 0
451 00c8 0B78 ldrb r3, [r1]
452 00ca 9B00 lsls r3, r3, #2
453 00cc C018 adds r0, r0, r3
454 .LVL40:
455 00ce 0388 ldrh r3, [r0]
ARM GAS /tmp/ccalJhl3.s page 14
456 00d0 834A ldr r2, .L39+16
457 00d2 1A40 ands r2, r3
458 .LVL41:
459 00d4 7F4B ldr r3, .L39+4
460 00d6 1343 orrs r3, r2
461 00d8 9BB2 uxth r3, r3
462 00da 0380 strh r3, [r0]
463 00dc 37E0 b .L23
464 .LVL42:
465 .L20:
466 .LBE7:
467 .LBB8:
294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** else
297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /*Set the endpoint Receive buffer address */
299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_RX_ADDRESS(USBx, ep->num, ep->pmaadress);
468 .loc 1 299 0
469 00de 5025 movs r5, #80
470 00e0 425B ldrh r2, [r0, r5]
471 00e2 8218 adds r2, r0, r2
472 .LVL43:
473 00e4 0B78 ldrb r3, [r1]
474 00e6 DB00 lsls r3, r3, #3
475 00e8 9B18 adds r3, r3, r2
476 00ea 7E4A ldr r2, .L39+20
477 .LVL44:
478 00ec 9446 mov ip, r2
479 00ee 6344 add r3, r3, ip
480 .LVL45:
481 00f0 CA88 ldrh r2, [r1, #6]
482 00f2 5208 lsrs r2, r2, #1
483 00f4 5200 lsls r2, r2, #1
484 00f6 1A80 strh r2, [r3]
485 .LVL46:
486 .LBE8:
487 .LBB9:
300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /*Set the endpoint Receive buffer counter*/
301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_RX_CNT(USBx, ep->num, ep->maxpacket);
488 .loc 1 301 0
489 00f8 425B ldrh r2, [r0, r5]
490 00fa 8218 adds r2, r0, r2
491 .LVL47:
492 00fc 0B78 ldrb r3, [r1]
493 .LVL48:
494 00fe DB00 lsls r3, r3, #3
495 0100 9B18 adds r3, r3, r2
496 0102 794A ldr r2, .L39+24
497 .LVL49:
498 0104 9446 mov ip, r2
499 0106 6344 add r3, r3, ip
500 .LVL50:
501 .LBB10:
502 0108 0A69 ldr r2, [r1, #16]
503 010a 002A cmp r2, #0
504 010c 21D1 bne .L24
ARM GAS /tmp/ccalJhl3.s page 15
505 .loc 1 301 0 is_stmt 0 discriminator 1
506 010e 1A88 ldrh r2, [r3]
507 0110 764D ldr r5, .L39+28
508 0112 1540 ands r5, r2
509 0114 764A ldr r2, .L39+32
510 0116 2A43 orrs r2, r5
511 0118 1A80 strh r2, [r3]
512 .L25:
513 .LBE10:
514 .LBE9:
515 .LBB12:
302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num);
516 .loc 1 302 0 is_stmt 1
517 011a 0B78 ldrb r3, [r1]
518 .LVL51:
519 011c 9B00 lsls r3, r3, #2
520 011e C318 adds r3, r0, r3
521 0120 1A88 ldrh r2, [r3]
522 .LVL52:
523 0122 5204 lsls r2, r2, #17
524 0124 06D5 bpl .L29
525 .LVL53:
526 .LBB13:
527 .loc 1 302 0 is_stmt 0 discriminator 1
528 0126 1A88 ldrh r2, [r3]
529 0128 6B4D ldr r5, .L39+8
530 012a 1540 ands r5, r2
531 .LVL54:
532 012c 714A ldr r2, .L39+36
533 012e 2A43 orrs r2, r5
534 0130 92B2 uxth r2, r2
535 0132 1A80 strh r2, [r3]
536 .LVL55:
537 .L29:
538 .LBE13:
539 .LBE12:
540 .LBB14:
303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Configure VALID status for the Endpoint*/
304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_VALID);
541 .loc 1 304 0 is_stmt 1
542 0134 0B78 ldrb r3, [r1]
543 0136 9B00 lsls r3, r3, #2
544 0138 C018 adds r0, r0, r3
545 .LVL56:
546 013a 0288 ldrh r2, [r0]
547 013c 6E4B ldr r3, .L39+40
548 013e 1A40 ands r2, r3
549 .LVL57:
550 0140 C023 movs r3, #192
551 0142 9B01 lsls r3, r3, #6
552 0144 5A40 eors r2, r3
553 .LVL58:
554 0146 634B ldr r3, .L39+4
555 0148 1343 orrs r3, r2
556 014a 9BB2 uxth r3, r3
557 014c 0380 strh r3, [r0]
558 .LVL59:
ARM GAS /tmp/ccalJhl3.s page 16
559 .L23:
560 .LBE14:
305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /*Double Buffer*/
308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** else
309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Set the endpoint as double buffered */
311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_DBUF(USBx, ep->num);
312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Set buffer address for double buffered mode */
313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_DBUF_ADDR(USBx, ep->num, ep->pmaaddr0, ep->pmaaddr1);
314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** if (ep->is_in == 0U)
316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Clear the data toggle bits for the endpoint IN/OUT */
318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num);
319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num);
320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Reset value of the data toggle bits for the endpoint out */
322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_TX_DTOG(USBx, ep->num);
323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_VALID);
325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS);
326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** else
328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Clear the data toggle bits for the endpoint IN/OUT */
330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num);
331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num);
332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_RX_DTOG(USBx, ep->num);
333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** if (ep->type != EP_TYPE_ISOC)
335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Configure NAK status for the Endpoint */
337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_NAK);
338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** else
340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Configure TX Endpoint to disabled state */
342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS);
343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_DIS);
346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return ret;
350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
561 .loc 1 350 0
562 014e 2000 movs r0, r4
563 @ sp needed
564 .LVL60:
565 0150 F0BD pop {r4, r5, r6, r7, pc}
566 .LVL61:
567 .L24:
568 .LBB15:
569 .LBB11:
ARM GAS /tmp/ccalJhl3.s page 17
301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num);
570 .loc 1 301 0 discriminator 2
571 0152 3E2A cmp r2, #62
572 0154 06D8 bhi .L26
301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num);
573 .loc 1 301 0 is_stmt 0 discriminator 3
574 0156 5508 lsrs r5, r2, #1
575 .LVL62:
576 0158 D207 lsls r2, r2, #31
577 015a 00D5 bpl .L27
301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num);
578 .loc 1 301 0 discriminator 5
579 015c 0135 adds r5, r5, #1
580 .LVL63:
581 .L27:
301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num);
582 .loc 1 301 0 discriminator 7
583 015e AD02 lsls r5, r5, #10
584 .LVL64:
585 0160 1D80 strh r5, [r3]
586 0162 DAE7 b .L25
587 .L26:
301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num);
588 .loc 1 301 0 discriminator 4
589 0164 5509 lsrs r5, r2, #5
590 .LVL65:
591 0166 D206 lsls r2, r2, #27
592 0168 00D1 bne .L28
301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num);
593 .loc 1 301 0 discriminator 8
594 016a 013D subs r5, r5, #1
595 .LVL66:
596 .L28:
301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num);
597 .loc 1 301 0 discriminator 10
598 016c AD02 lsls r5, r5, #10
599 .LVL67:
600 016e ADB2 uxth r5, r5
601 0170 5F4A ldr r2, .L39+32
602 0172 1543 orrs r5, r2
603 0174 1D80 strh r5, [r3]
604 0176 D0E7 b .L25
605 .LVL68:
606 .L19:
607 .LBE11:
608 .LBE15:
609 .LBB16:
311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Set buffer address for double buffered mode */
610 .loc 1 311 0 is_stmt 1
611 0178 0B78 ldrb r3, [r1]
612 017a 9B00 lsls r3, r3, #2
613 017c C318 adds r3, r0, r3
614 017e 1A88 ldrh r2, [r3]
615 0180 554D ldr r5, .L39+8
616 0182 1540 ands r5, r2
617 .LVL69:
618 0184 5D4A ldr r2, .L39+44
ARM GAS /tmp/ccalJhl3.s page 18
619 0186 2A43 orrs r2, r5
620 0188 92B2 uxth r2, r2
621 018a 1A80 strh r2, [r3]
622 .LVL70:
623 .LBE16:
624 .LBB17:
313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
625 .loc 1 313 0
626 018c 5025 movs r5, #80
627 .LVL71:
628 018e 425B ldrh r2, [r0, r5]
629 0190 8218 adds r2, r0, r2
630 .LVL72:
631 0192 0B78 ldrb r3, [r1]
632 0194 DB00 lsls r3, r3, #3
633 0196 9B18 adds r3, r3, r2
634 0198 8022 movs r2, #128
635 .LVL73:
636 019a D200 lsls r2, r2, #3
637 019c 9446 mov ip, r2
638 019e 6344 add r3, r3, ip
639 .LVL74:
640 01a0 0A89 ldrh r2, [r1, #8]
641 01a2 5208 lsrs r2, r2, #1
642 01a4 5200 lsls r2, r2, #1
643 01a6 1A80 strh r2, [r3]
644 .LVL75:
645 .LBE17:
646 .LBB18:
647 01a8 425B ldrh r2, [r0, r5]
648 01aa 8218 adds r2, r0, r2
649 .LVL76:
650 01ac 0B78 ldrb r3, [r1]
651 .LVL77:
652 01ae DB00 lsls r3, r3, #3
653 01b0 9B18 adds r3, r3, r2
654 01b2 4C4A ldr r2, .L39+20
655 .LVL78:
656 01b4 9446 mov ip, r2
657 01b6 6344 add r3, r3, ip
658 .LVL79:
659 01b8 4A89 ldrh r2, [r1, #10]
660 01ba 5208 lsrs r2, r2, #1
661 01bc 5200 lsls r2, r2, #1
662 01be 1A80 strh r2, [r3]
663 .LBE18:
315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
664 .loc 1 315 0
665 01c0 4B78 ldrb r3, [r1, #1]
666 .LVL80:
667 01c2 002B cmp r3, #0
668 01c4 3AD1 bne .L30
669 .LBB19:
318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num);
670 .loc 1 318 0
671 01c6 0B78 ldrb r3, [r1]
672 01c8 9B00 lsls r3, r3, #2
ARM GAS /tmp/ccalJhl3.s page 19
673 01ca C318 adds r3, r0, r3
674 01cc 1A88 ldrh r2, [r3]
675 .LVL81:
676 01ce 5204 lsls r2, r2, #17
677 01d0 06D5 bpl .L31
678 .LVL82:
679 .LBB20:
318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num);
680 .loc 1 318 0 is_stmt 0 discriminator 1
681 01d2 1A88 ldrh r2, [r3]
682 01d4 404D ldr r5, .L39+8
683 01d6 1540 ands r5, r2
684 .LVL83:
685 01d8 464A ldr r2, .L39+36
686 01da 2A43 orrs r2, r5
687 01dc 92B2 uxth r2, r2
688 01de 1A80 strh r2, [r3]
689 .LVL84:
690 .L31:
691 .LBE20:
692 .LBE19:
693 .LBB21:
319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
694 .loc 1 319 0 is_stmt 1
695 01e0 0B78 ldrb r3, [r1]
696 01e2 9B00 lsls r3, r3, #2
697 01e4 C318 adds r3, r0, r3
698 01e6 1A88 ldrh r2, [r3]
699 .LVL85:
700 01e8 5206 lsls r2, r2, #25
701 01ea 06D5 bpl .L32
702 .LVL86:
703 .LBB22:
319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
704 .loc 1 319 0 is_stmt 0 discriminator 1
705 01ec 1A88 ldrh r2, [r3]
706 01ee 3A4D ldr r5, .L39+8
707 01f0 1540 ands r5, r2
708 .LVL87:
709 01f2 3A4A ldr r2, .L39+12
710 01f4 2A43 orrs r2, r5
711 01f6 92B2 uxth r2, r2
712 01f8 1A80 strh r2, [r3]
713 .LVL88:
714 .L32:
715 .LBE22:
716 .LBE21:
717 .LBB23:
322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
718 .loc 1 322 0 is_stmt 1
719 01fa 0B78 ldrb r3, [r1]
720 01fc 9B00 lsls r3, r3, #2
721 01fe C318 adds r3, r0, r3
722 0200 1A88 ldrh r2, [r3]
723 0202 354D ldr r5, .L39+8
724 0204 1540 ands r5, r2
725 .LVL89:
ARM GAS /tmp/ccalJhl3.s page 20
726 0206 354A ldr r2, .L39+12
727 0208 2A43 orrs r2, r5
728 020a 92B2 uxth r2, r2
729 020c 1A80 strh r2, [r3]
730 .LBE23:
731 .LBB24:
324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS);
732 .loc 1 324 0
733 020e 0A78 ldrb r2, [r1]
734 0210 9200 lsls r2, r2, #2
735 0212 8218 adds r2, r0, r2
736 0214 1388 ldrh r3, [r2]
737 0216 384D ldr r5, .L39+40
738 .LVL90:
739 0218 1D40 ands r5, r3
740 .LVL91:
741 021a C023 movs r3, #192
742 021c 9B01 lsls r3, r3, #6
743 021e 6B40 eors r3, r5
744 .LVL92:
745 0220 2C4D ldr r5, .L39+4
746 0222 2B43 orrs r3, r5
747 .LVL93:
748 0224 9BB2 uxth r3, r3
749 0226 1380 strh r3, [r2]
750 .LBE24:
751 .LBB25:
325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
752 .loc 1 325 0
753 0228 0B78 ldrb r3, [r1]
754 022a 9B00 lsls r3, r3, #2
755 022c C018 adds r0, r0, r3
756 .LVL94:
757 022e 0388 ldrh r3, [r0]
758 0230 2B4A ldr r2, .L39+16
759 0232 1340 ands r3, r2
760 .LVL95:
761 0234 2B43 orrs r3, r5
762 .LVL96:
763 0236 9BB2 uxth r3, r3
764 0238 0380 strh r3, [r0]
765 .LBE25:
766 023a 88E7 b .L23
767 .LVL97:
768 .L30:
769 .LBB26:
330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num);
770 .loc 1 330 0
771 023c 0B78 ldrb r3, [r1]
772 023e 9B00 lsls r3, r3, #2
773 0240 C318 adds r3, r0, r3
774 0242 1A88 ldrh r2, [r3]
775 .LVL98:
776 0244 5204 lsls r2, r2, #17
777 0246 06D5 bpl .L33
778 .LVL99:
779 .LBB27:
ARM GAS /tmp/ccalJhl3.s page 21
330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num);
780 .loc 1 330 0 is_stmt 0 discriminator 1
781 0248 1A88 ldrh r2, [r3]
782 024a 234D ldr r5, .L39+8
783 024c 1540 ands r5, r2
784 .LVL100:
785 024e 294A ldr r2, .L39+36
786 0250 2A43 orrs r2, r5
787 0252 92B2 uxth r2, r2
788 0254 1A80 strh r2, [r3]
789 .LVL101:
790 .L33:
791 .LBE27:
792 .LBE26:
793 .LBB28:
331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_RX_DTOG(USBx, ep->num);
794 .loc 1 331 0 is_stmt 1
795 0256 0B78 ldrb r3, [r1]
796 0258 9B00 lsls r3, r3, #2
797 025a C318 adds r3, r0, r3
798 025c 1A88 ldrh r2, [r3]
799 .LVL102:
800 025e 5206 lsls r2, r2, #25
801 0260 06D5 bpl .L34
802 .LVL103:
803 .LBB29:
331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_RX_DTOG(USBx, ep->num);
804 .loc 1 331 0 is_stmt 0 discriminator 1
805 0262 1A88 ldrh r2, [r3]
806 0264 1C4D ldr r5, .L39+8
807 0266 1540 ands r5, r2
808 .LVL104:
809 0268 1C4A ldr r2, .L39+12
810 026a 2A43 orrs r2, r5
811 026c 92B2 uxth r2, r2
812 026e 1A80 strh r2, [r3]
813 .LVL105:
814 .L34:
815 .LBE29:
816 .LBE28:
817 .LBB30:
332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
818 .loc 1 332 0 is_stmt 1
819 0270 0B78 ldrb r3, [r1]
820 0272 9B00 lsls r3, r3, #2
821 0274 C318 adds r3, r0, r3
822 0276 1A88 ldrh r2, [r3]
823 0278 174D ldr r5, .L39+8
824 027a 1540 ands r5, r2
825 .LVL106:
826 027c 1D4A ldr r2, .L39+36
827 027e 2A43 orrs r2, r5
828 0280 92B2 uxth r2, r2
829 0282 1A80 strh r2, [r3]
830 .LBE30:
334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
831 .loc 1 334 0
ARM GAS /tmp/ccalJhl3.s page 22
832 0284 CB78 ldrb r3, [r1, #3]
833 0286 012B cmp r3, #1
834 0288 16D0 beq .L35
835 .LBB31:
337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
836 .loc 1 337 0
837 028a 0B78 ldrb r3, [r1]
838 028c 9B00 lsls r3, r3, #2
839 028e C318 adds r3, r0, r3
840 0290 1A88 ldrh r2, [r3]
841 0292 134D ldr r5, .L39+16
842 .LVL107:
843 0294 2A40 ands r2, r5
844 .LVL108:
845 0296 2025 movs r5, #32
846 0298 5540 eors r5, r2
847 .LVL109:
848 029a 0E4A ldr r2, .L39+4
849 029c 2A43 orrs r2, r5
850 029e 92B2 uxth r2, r2
851 02a0 1A80 strh r2, [r3]
852 .LVL110:
853 .L36:
854 .LBE31:
855 .LBB32:
345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
856 .loc 1 345 0
857 02a2 0B78 ldrb r3, [r1]
858 02a4 9B00 lsls r3, r3, #2
859 02a6 C318 adds r3, r0, r3
860 02a8 1A88 ldrh r2, [r3]
861 02aa 1349 ldr r1, .L39+40
862 .LVL111:
863 02ac 1140 ands r1, r2
864 .LVL112:
865 02ae 094A ldr r2, .L39+4
866 02b0 0A43 orrs r2, r1
867 02b2 92B2 uxth r2, r2
868 02b4 1A80 strh r2, [r3]
869 02b6 4AE7 b .L23
870 .LVL113:
871 .L35:
872 .LBE32:
873 .LBB33:
342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
874 .loc 1 342 0
875 02b8 0B78 ldrb r3, [r1]
876 02ba 9B00 lsls r3, r3, #2
877 02bc C318 adds r3, r0, r3
878 02be 1A88 ldrh r2, [r3]
879 02c0 074D ldr r5, .L39+16
880 .LVL114:
881 02c2 1540 ands r5, r2
882 .LVL115:
883 02c4 034A ldr r2, .L39+4
884 02c6 2A43 orrs r2, r5
885 02c8 92B2 uxth r2, r2
ARM GAS /tmp/ccalJhl3.s page 23
886 02ca 1A80 strh r2, [r3]
887 02cc E9E7 b .L36
888 .L40:
889 02ce C046 .align 2
890 .L39:
891 02d0 8F89FFFF .word -30321
892 02d4 8080FFFF .word -32640
893 02d8 8F8FFFFF .word -28785
894 02dc C080FFFF .word -32576
895 02e0 BF8FFFFF .word -28737
896 02e4 04040000 .word 1028
897 02e8 06040000 .word 1030
898 02ec FF83FFFF .word -31745
899 02f0 0080FFFF .word -32768
900 02f4 80C0FFFF .word -16256
901 02f8 8FBFFFFF .word -16497
902 02fc 8081FFFF .word -32384
903 .LBE33:
904 .cfi_endproc
905 .LFE48:
907 .section .text.USB_DeactivateEndpoint,"ax",%progbits
908 .align 1
909 .global USB_DeactivateEndpoint
910 .syntax unified
911 .code 16
912 .thumb_func
913 .fpu softvfp
915 USB_DeactivateEndpoint:
916 .LFB49:
351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief De-activate and de-initialize an endpoint
354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param ep: pointer to endpoint structure
356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef USB_DeactivateEndpoint(USB_TypeDef *USBx, USB_EPTypeDef *ep)
359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
917 .loc 1 359 0
918 .cfi_startproc
919 @ args = 0, pretend = 0, frame = 0
920 @ frame_needed = 0, uses_anonymous_args = 0
921 .LVL116:
922 0000 10B5 push {r4, lr}
923 .LCFI4:
924 .cfi_def_cfa_offset 8
925 .cfi_offset 4, -8
926 .cfi_offset 14, -4
360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** if (ep->doublebuffer == 0U)
927 .loc 1 360 0
928 0002 0B7B ldrb r3, [r1, #12]
929 0004 002B cmp r3, #0
930 0006 33D1 bne .L42
361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** if (ep->is_in != 0U)
931 .loc 1 362 0
932 0008 4B78 ldrb r3, [r1, #1]
ARM GAS /tmp/ccalJhl3.s page 24
933 000a 002B cmp r3, #0
934 000c 18D0 beq .L43
935 .LBB34:
363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num);
936 .loc 1 364 0
937 000e 0B78 ldrb r3, [r1]
938 0010 9B00 lsls r3, r3, #2
939 0012 C318 adds r3, r0, r3
940 0014 1A88 ldrh r2, [r3]
941 .LVL117:
942 0016 5206 lsls r2, r2, #25
943 0018 06D5 bpl .L44
944 .LVL118:
945 .LBB35:
946 .loc 1 364 0 is_stmt 0 discriminator 1
947 001a 1A88 ldrh r2, [r3]
948 001c 4E4C ldr r4, .L52
949 001e 1440 ands r4, r2
950 .LVL119:
951 0020 4E4A ldr r2, .L52+4
952 0022 2243 orrs r2, r4
953 0024 92B2 uxth r2, r2
954 0026 1A80 strh r2, [r3]
955 .LVL120:
956 .L44:
957 .LBE35:
958 .LBE34:
959 .LBB36:
365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Configure DISABLE status for the Endpoint*/
366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS);
960 .loc 1 366 0 is_stmt 1
961 0028 0B78 ldrb r3, [r1]
962 002a 9B00 lsls r3, r3, #2
963 002c C018 adds r0, r0, r3
964 .LVL121:
965 002e 0388 ldrh r3, [r0]
966 0030 4B4A ldr r2, .L52+8
967 0032 1A40 ands r2, r3
968 .LVL122:
969 0034 4B4B ldr r3, .L52+12
970 0036 1343 orrs r3, r2
971 0038 9BB2 uxth r3, r3
972 003a 0380 strh r3, [r0]
973 .LVL123:
974 .L45:
975 .LBE36:
367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** else
369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num);
371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Configure DISABLE status for the Endpoint*/
372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_DIS);
373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /*Double Buffer*/
376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** else
ARM GAS /tmp/ccalJhl3.s page 25
377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** if (ep->is_in == 0U)
379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Clear the data toggle bits for the endpoint IN/OUT*/
381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num);
382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num);
383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Reset value of the data toggle bits for the endpoint out*/
385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_TX_DTOG(USBx, ep->num);
386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_DIS);
388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS);
389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** else
391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Clear the data toggle bits for the endpoint IN/OUT*/
393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num);
394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num);
395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_RX_DTOG(USBx, ep->num);
396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Configure DISABLE status for the Endpoint*/
397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS);
398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_DIS);
399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return HAL_OK;
403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
976 .loc 1 403 0
977 003c 0020 movs r0, #0
978 @ sp needed
979 003e 10BD pop {r4, pc}
980 .LVL124:
981 .L43:
982 .LBB37:
370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Configure DISABLE status for the Endpoint*/
983 .loc 1 370 0
984 0040 0B78 ldrb r3, [r1]
985 0042 9B00 lsls r3, r3, #2
986 0044 C318 adds r3, r0, r3
987 0046 1A88 ldrh r2, [r3]
988 .LVL125:
989 0048 5204 lsls r2, r2, #17
990 004a 06D5 bpl .L46
991 .LVL126:
992 .LBB38:
370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Configure DISABLE status for the Endpoint*/
993 .loc 1 370 0 is_stmt 0 discriminator 1
994 004c 1A88 ldrh r2, [r3]
995 004e 424C ldr r4, .L52
996 0050 1440 ands r4, r2
997 .LVL127:
998 0052 454A ldr r2, .L52+16
999 0054 2243 orrs r2, r4
1000 0056 92B2 uxth r2, r2
1001 0058 1A80 strh r2, [r3]
1002 .LVL128:
1003 .L46:
ARM GAS /tmp/ccalJhl3.s page 26
1004 .LBE38:
1005 .LBE37:
1006 .LBB39:
372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1007 .loc 1 372 0 is_stmt 1
1008 005a 0B78 ldrb r3, [r1]
1009 005c 9B00 lsls r3, r3, #2
1010 005e C018 adds r0, r0, r3
1011 .LVL129:
1012 0060 0388 ldrh r3, [r0]
1013 0062 424A ldr r2, .L52+20
1014 0064 1A40 ands r2, r3
1015 .LVL130:
1016 0066 3F4B ldr r3, .L52+12
1017 0068 1343 orrs r3, r2
1018 006a 9BB2 uxth r3, r3
1019 006c 0380 strh r3, [r0]
1020 006e E5E7 b .L45
1021 .LVL131:
1022 .L42:
1023 .LBE39:
378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1024 .loc 1 378 0
1025 0070 4B78 ldrb r3, [r1, #1]
1026 0072 002B cmp r3, #0
1027 0074 37D1 bne .L47
1028 .LBB40:
381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num);
1029 .loc 1 381 0
1030 0076 0B78 ldrb r3, [r1]
1031 0078 9B00 lsls r3, r3, #2
1032 007a C318 adds r3, r0, r3
1033 007c 1A88 ldrh r2, [r3]
1034 .LVL132:
1035 007e 5204 lsls r2, r2, #17
1036 0080 06D5 bpl .L48
1037 .LVL133:
1038 .LBB41:
381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num);
1039 .loc 1 381 0 is_stmt 0 discriminator 1
1040 0082 1A88 ldrh r2, [r3]
1041 0084 344C ldr r4, .L52
1042 0086 1440 ands r4, r2
1043 .LVL134:
1044 0088 374A ldr r2, .L52+16
1045 008a 2243 orrs r2, r4
1046 008c 92B2 uxth r2, r2
1047 008e 1A80 strh r2, [r3]
1048 .LVL135:
1049 .L48:
1050 .LBE41:
1051 .LBE40:
1052 .LBB42:
382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
1053 .loc 1 382 0 is_stmt 1
1054 0090 0B78 ldrb r3, [r1]
1055 0092 9B00 lsls r3, r3, #2
ARM GAS /tmp/ccalJhl3.s page 27
1056 0094 C318 adds r3, r0, r3
1057 0096 1A88 ldrh r2, [r3]
1058 .LVL136:
1059 0098 5206 lsls r2, r2, #25
1060 009a 06D5 bpl .L49
1061 .LVL137:
1062 .LBB43:
382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
1063 .loc 1 382 0 is_stmt 0 discriminator 1
1064 009c 1A88 ldrh r2, [r3]
1065 009e 2E4C ldr r4, .L52
1066 00a0 1440 ands r4, r2
1067 .LVL138:
1068 00a2 2E4A ldr r2, .L52+4
1069 00a4 2243 orrs r2, r4
1070 00a6 92B2 uxth r2, r2
1071 00a8 1A80 strh r2, [r3]
1072 .LVL139:
1073 .L49:
1074 .LBE43:
1075 .LBE42:
1076 .LBB44:
385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
1077 .loc 1 385 0 is_stmt 1
1078 00aa 0B78 ldrb r3, [r1]
1079 00ac 9B00 lsls r3, r3, #2
1080 00ae C318 adds r3, r0, r3
1081 00b0 1A88 ldrh r2, [r3]
1082 00b2 294C ldr r4, .L52
1083 00b4 1440 ands r4, r2
1084 .LVL140:
1085 00b6 294A ldr r2, .L52+4
1086 00b8 2243 orrs r2, r4
1087 00ba 92B2 uxth r2, r2
1088 00bc 1A80 strh r2, [r3]
1089 .LBE44:
1090 .LBB45:
387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_DIS);
1091 .loc 1 387 0
1092 00be 0C78 ldrb r4, [r1]
1093 .LVL141:
1094 00c0 A400 lsls r4, r4, #2
1095 00c2 0419 adds r4, r0, r4
1096 00c4 2388 ldrh r3, [r4]
1097 00c6 294A ldr r2, .L52+20
1098 00c8 1340 ands r3, r2
1099 .LVL142:
1100 00ca 264A ldr r2, .L52+12
1101 00cc 1343 orrs r3, r2
1102 .LVL143:
1103 00ce 9BB2 uxth r3, r3
1104 00d0 2380 strh r3, [r4]
1105 .LBE45:
1106 .LBB46:
388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1107 .loc 1 388 0
1108 00d2 0B78 ldrb r3, [r1]
ARM GAS /tmp/ccalJhl3.s page 28
1109 00d4 9B00 lsls r3, r3, #2
1110 00d6 C018 adds r0, r0, r3
1111 .LVL144:
1112 00d8 0388 ldrh r3, [r0]
1113 00da 2149 ldr r1, .L52+8
1114 .LVL145:
1115 00dc 0B40 ands r3, r1
1116 .LVL146:
1117 00de 1A43 orrs r2, r3
1118 00e0 92B2 uxth r2, r2
1119 00e2 0280 strh r2, [r0]
1120 .LBE46:
1121 00e4 AAE7 b .L45
1122 .LVL147:
1123 .L47:
1124 .LBB47:
393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num);
1125 .loc 1 393 0
1126 00e6 0B78 ldrb r3, [r1]
1127 00e8 9B00 lsls r3, r3, #2
1128 00ea C318 adds r3, r0, r3
1129 00ec 1A88 ldrh r2, [r3]
1130 .LVL148:
1131 00ee 5204 lsls r2, r2, #17
1132 00f0 06D5 bpl .L50
1133 .LVL149:
1134 .LBB48:
393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num);
1135 .loc 1 393 0 is_stmt 0 discriminator 1
1136 00f2 1A88 ldrh r2, [r3]
1137 00f4 184C ldr r4, .L52
1138 00f6 1440 ands r4, r2
1139 .LVL150:
1140 00f8 1B4A ldr r2, .L52+16
1141 00fa 2243 orrs r2, r4
1142 00fc 92B2 uxth r2, r2
1143 00fe 1A80 strh r2, [r3]
1144 .LVL151:
1145 .L50:
1146 .LBE48:
1147 .LBE47:
1148 .LBB49:
394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_RX_DTOG(USBx, ep->num);
1149 .loc 1 394 0 is_stmt 1
1150 0100 0B78 ldrb r3, [r1]
1151 0102 9B00 lsls r3, r3, #2
1152 0104 C318 adds r3, r0, r3
1153 0106 1A88 ldrh r2, [r3]
1154 .LVL152:
1155 0108 5206 lsls r2, r2, #25
1156 010a 06D5 bpl .L51
1157 .LVL153:
1158 .LBB50:
394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_RX_DTOG(USBx, ep->num);
1159 .loc 1 394 0 is_stmt 0 discriminator 1
1160 010c 1A88 ldrh r2, [r3]
1161 010e 124C ldr r4, .L52
ARM GAS /tmp/ccalJhl3.s page 29
1162 0110 1440 ands r4, r2
1163 .LVL154:
1164 0112 124A ldr r2, .L52+4
1165 0114 2243 orrs r2, r4
1166 0116 92B2 uxth r2, r2
1167 0118 1A80 strh r2, [r3]
1168 .LVL155:
1169 .L51:
1170 .LBE50:
1171 .LBE49:
1172 .LBB51:
395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Configure DISABLE status for the Endpoint*/
1173 .loc 1 395 0 is_stmt 1
1174 011a 0B78 ldrb r3, [r1]
1175 011c 9B00 lsls r3, r3, #2
1176 011e C318 adds r3, r0, r3
1177 0120 1A88 ldrh r2, [r3]
1178 0122 0D4C ldr r4, .L52
1179 0124 1440 ands r4, r2
1180 .LVL156:
1181 0126 104A ldr r2, .L52+16
1182 0128 2243 orrs r2, r4
1183 012a 92B2 uxth r2, r2
1184 012c 1A80 strh r2, [r3]
1185 .LBE51:
1186 .LBB52:
397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_DIS);
1187 .loc 1 397 0
1188 012e 0C78 ldrb r4, [r1]
1189 .LVL157:
1190 0130 A400 lsls r4, r4, #2
1191 0132 0419 adds r4, r0, r4
1192 0134 2388 ldrh r3, [r4]
1193 0136 0A4A ldr r2, .L52+8
1194 0138 1340 ands r3, r2
1195 .LVL158:
1196 013a 0A4A ldr r2, .L52+12
1197 013c 1343 orrs r3, r2
1198 .LVL159:
1199 013e 9BB2 uxth r3, r3
1200 0140 2380 strh r3, [r4]
1201 .LBE52:
1202 .LBB53:
398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1203 .loc 1 398 0
1204 0142 0B78 ldrb r3, [r1]
1205 0144 9B00 lsls r3, r3, #2
1206 0146 C018 adds r0, r0, r3
1207 .LVL160:
1208 0148 0388 ldrh r3, [r0]
1209 014a 0849 ldr r1, .L52+20
1210 .LVL161:
1211 014c 0B40 ands r3, r1
1212 .LVL162:
1213 014e 1A43 orrs r2, r3
1214 0150 92B2 uxth r2, r2
1215 0152 0280 strh r2, [r0]
ARM GAS /tmp/ccalJhl3.s page 30
1216 0154 72E7 b .L45
1217 .L53:
1218 0156 C046 .align 2
1219 .L52:
1220 0158 8F8FFFFF .word -28785
1221 015c C080FFFF .word -32576
1222 0160 BF8FFFFF .word -28737
1223 0164 8080FFFF .word -32640
1224 0168 80C0FFFF .word -16256
1225 016c 8FBFFFFF .word -16497
1226 .LBE53:
1227 .cfi_endproc
1228 .LFE49:
1230 .section .text.USB_WritePacket,"ax",%progbits
1231 .align 1
1232 .global USB_WritePacket
1233 .syntax unified
1234 .code 16
1235 .thumb_func
1236 .fpu softvfp
1238 USB_WritePacket:
1239 .LFB51:
404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_EPStartXfer : setup and starts a transfer over an EP
407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param ep: pointer to endpoint structure
409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef USB_EPStartXfer(USB_TypeDef *USBx, USB_EPTypeDef *ep)
412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint16_t pmabuffer;
414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint32_t len;
415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* IN endpoint */
417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** if (ep->is_in == 1U)
418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /*Multi packet transfer*/
420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** if (ep->xfer_len > ep->maxpacket)
421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** len = ep->maxpacket;
423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** ep->xfer_len -= len;
424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** else
426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** len = ep->xfer_len;
428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** ep->xfer_len = 0U;
429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* configure and validate Tx endpoint */
432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** if (ep->doublebuffer == 0U)
433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USB_WritePMA(USBx, ep->xfer_buff, ep->pmaadress, (uint16_t)len);
435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_TX_CNT(USBx, ep->num, len);
436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** else
438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
ARM GAS /tmp/ccalJhl3.s page 31
439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Write the data to the USB endpoint */
440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** if ((PCD_GET_ENDPOINT(USBx, ep->num) & USB_EP_DTOG_TX) != 0U)
441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Set the Double buffer counter for pmabuffer1 */
443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_DBUF1_CNT(USBx, ep->num, ep->is_in, len);
444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr1;
445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** else
447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Set the Double buffer counter for pmabuffer0 */
449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_DBUF0_CNT(USBx, ep->num, ep->is_in, len);
450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr0;
451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USB_WritePMA(USBx, ep->xfer_buff, pmabuffer, (uint16_t)len);
453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_FreeUserBuffer(USBx, ep->num, ep->is_in);
454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_VALID);
457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** else /* OUT endpoint */
459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Multi packet transfer*/
461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** if (ep->xfer_len > ep->maxpacket)
462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** len = ep->maxpacket;
464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** ep->xfer_len -= len;
465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** else
467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** len = ep->xfer_len;
469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** ep->xfer_len = 0U;
470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* configure and validate Rx endpoint */
473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** if (ep->doublebuffer == 0U)
474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /*Set RX buffer count*/
476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_RX_CNT(USBx, ep->num, len);
477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** else
479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /*Set the Double buffer counter*/
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_DBUF_CNT(USBx, ep->num, ep->is_in, len);
482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_VALID);
485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return HAL_OK;
488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_WritePacket : Writes a packet into the Tx FIFO associated
492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * with the EP/channel
493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param src : pointer to source buffer
495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param ch_ep_num : endpoint or host channel number
ARM GAS /tmp/ccalJhl3.s page 32
496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param len : Number of bytes to write
497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef USB_WritePacket(USB_TypeDef *USBx, uint8_t *src, uint8_t ch_ep_num, uint16_t len)
500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1240 .loc 1 500 0
1241 .cfi_startproc
1242 @ args = 0, pretend = 0, frame = 0
1243 @ frame_needed = 0, uses_anonymous_args = 0
1244 @ link register save eliminated.
1245 .LVL163:
501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Prevent unused argument(s) compilation warning */
502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(USBx);
503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(src);
504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(ch_ep_num);
505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(len);
506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* NOTE : - This function is not required by USB Device FS peripheral, it is used
507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** only by USB OTG FS peripheral.
508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** - This function is added to ensure compatibility across platforms.
509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return HAL_OK;
511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1246 .loc 1 511 0
1247 0000 0020 movs r0, #0
1248 .LVL164:
1249 @ sp needed
1250 0002 7047 bx lr
1251 .cfi_endproc
1252 .LFE51:
1254 .section .text.USB_ReadPacket,"ax",%progbits
1255 .align 1
1256 .global USB_ReadPacket
1257 .syntax unified
1258 .code 16
1259 .thumb_func
1260 .fpu softvfp
1262 USB_ReadPacket:
1263 .LFB52:
512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_ReadPacket : read a packet from the Tx FIFO associated
515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * with the EP/channel
516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param dest : destination pointer
518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param len : Number of bytes to read
519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval pointer to destination buffer
520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** void *USB_ReadPacket(USB_TypeDef *USBx, uint8_t *dest, uint16_t len)
522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1264 .loc 1 522 0
1265 .cfi_startproc
1266 @ args = 0, pretend = 0, frame = 0
1267 @ frame_needed = 0, uses_anonymous_args = 0
1268 @ link register save eliminated.
1269 .LVL165:
523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Prevent unused argument(s) compilation warning */
524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(USBx);
ARM GAS /tmp/ccalJhl3.s page 33
525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(dest);
526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(len);
527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* NOTE : - This function is not required by USB Device FS peripheral, it is used
528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** only by USB OTG FS peripheral.
529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** - This function is added to ensure compatibility across platforms.
530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return ((void *)NULL);
532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1270 .loc 1 532 0
1271 0000 0020 movs r0, #0
1272 .LVL166:
1273 @ sp needed
1274 0002 7047 bx lr
1275 .cfi_endproc
1276 .LFE52:
1278 .section .text.USB_EPSetStall,"ax",%progbits
1279 .align 1
1280 .global USB_EPSetStall
1281 .syntax unified
1282 .code 16
1283 .thumb_func
1284 .fpu softvfp
1286 USB_EPSetStall:
1287 .LFB53:
533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_EPSetStall : set a stall condition over an EP
536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param ep: pointer to endpoint structure
538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef USB_EPSetStall(USB_TypeDef *USBx, USB_EPTypeDef *ep)
541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1288 .loc 1 541 0
1289 .cfi_startproc
1290 @ args = 0, pretend = 0, frame = 0
1291 @ frame_needed = 0, uses_anonymous_args = 0
1292 @ link register save eliminated.
1293 .LVL167:
542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** if (ep->is_in != 0U)
1294 .loc 1 542 0
1295 0000 4B78 ldrb r3, [r1, #1]
1296 0002 002B cmp r3, #0
1297 0004 0ED1 bne .L59
1298 .LBB54:
543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_STALL);
545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** else
547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_STALL);
1299 .loc 1 548 0
1300 0006 0B78 ldrb r3, [r1]
1301 0008 9B00 lsls r3, r3, #2
1302 000a C018 adds r0, r0, r3
1303 .LVL168:
1304 000c 0288 ldrh r2, [r0]
ARM GAS /tmp/ccalJhl3.s page 34
1305 000e 0C4B ldr r3, .L60
1306 0010 1A40 ands r2, r3
1307 .LVL169:
1308 0012 8023 movs r3, #128
1309 0014 5B01 lsls r3, r3, #5
1310 0016 5A40 eors r2, r3
1311 .LVL170:
1312 0018 0A4B ldr r3, .L60+4
1313 001a 1343 orrs r3, r2
1314 001c 9BB2 uxth r3, r3
1315 001e 0380 strh r3, [r0]
1316 .LVL171:
1317 .L58:
1318 .LBE54:
549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return HAL_OK;
552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1319 .loc 1 552 0
1320 0020 0020 movs r0, #0
1321 @ sp needed
1322 0022 7047 bx lr
1323 .LVL172:
1324 .L59:
1325 .LBB55:
544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1326 .loc 1 544 0
1327 0024 0B78 ldrb r3, [r1]
1328 0026 9B00 lsls r3, r3, #2
1329 0028 C018 adds r0, r0, r3
1330 .LVL173:
1331 002a 0388 ldrh r3, [r0]
1332 002c 064A ldr r2, .L60+8
1333 002e 1340 ands r3, r2
1334 .LVL174:
1335 0030 1022 movs r2, #16
1336 0032 5A40 eors r2, r3
1337 .LVL175:
1338 0034 034B ldr r3, .L60+4
1339 0036 1343 orrs r3, r2
1340 0038 9BB2 uxth r3, r3
1341 003a 0380 strh r3, [r0]
1342 .LBE55:
1343 003c F0E7 b .L58
1344 .L61:
1345 003e C046 .align 2
1346 .L60:
1347 0040 8FBFFFFF .word -16497
1348 0044 8080FFFF .word -32640
1349 0048 BF8FFFFF .word -28737
1350 .cfi_endproc
1351 .LFE53:
1353 .section .text.USB_EPClearStall,"ax",%progbits
1354 .align 1
1355 .global USB_EPClearStall
1356 .syntax unified
1357 .code 16
ARM GAS /tmp/ccalJhl3.s page 35
1358 .thumb_func
1359 .fpu softvfp
1361 USB_EPClearStall:
1362 .LFB54:
553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_EPClearStall : Clear a stall condition over an EP
556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param ep: pointer to endpoint structure
558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef USB_EPClearStall(USB_TypeDef *USBx, USB_EPTypeDef *ep)
561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1363 .loc 1 561 0
1364 .cfi_startproc
1365 @ args = 0, pretend = 0, frame = 0
1366 @ frame_needed = 0, uses_anonymous_args = 0
1367 .LVL176:
1368 0000 10B5 push {r4, lr}
1369 .LCFI5:
1370 .cfi_def_cfa_offset 8
1371 .cfi_offset 4, -8
1372 .cfi_offset 14, -4
562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** if (ep->doublebuffer == 0U)
1373 .loc 1 562 0
1374 0002 0B7B ldrb r3, [r1, #12]
1375 0004 002B cmp r3, #0
1376 0006 39D1 bne .L63
563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** if (ep->is_in != 0U)
1377 .loc 1 564 0
1378 0008 4B78 ldrb r3, [r1, #1]
1379 000a 002B cmp r3, #0
1380 000c 1CD0 beq .L64
1381 .LBB56:
565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_TX_DTOG(USBx, ep->num);
1382 .loc 1 566 0
1383 000e 0B78 ldrb r3, [r1]
1384 0010 9B00 lsls r3, r3, #2
1385 0012 C318 adds r3, r0, r3
1386 0014 1A88 ldrh r2, [r3]
1387 .LVL177:
1388 0016 5206 lsls r2, r2, #25
1389 0018 06D5 bpl .L65
1390 .LVL178:
1391 .LBB57:
1392 .loc 1 566 0 is_stmt 0 discriminator 1
1393 001a 1A88 ldrh r2, [r3]
1394 001c 184C ldr r4, .L67
1395 001e 1440 ands r4, r2
1396 .LVL179:
1397 0020 184A ldr r2, .L67+4
1398 0022 2243 orrs r2, r4
1399 0024 92B2 uxth r2, r2
1400 0026 1A80 strh r2, [r3]
1401 .LVL180:
ARM GAS /tmp/ccalJhl3.s page 36
1402 .L65:
1403 .LBE57:
1404 .LBE56:
567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** if (ep->type != EP_TYPE_ISOC)
1405 .loc 1 568 0 is_stmt 1
1406 0028 CB78 ldrb r3, [r1, #3]
1407 002a 012B cmp r3, #1
1408 002c 26D0 beq .L63
1409 .LBB58:
569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Configure NAK status for the Endpoint */
571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_NAK);
1410 .loc 1 571 0
1411 002e 0B78 ldrb r3, [r1]
1412 0030 9B00 lsls r3, r3, #2
1413 0032 C018 adds r0, r0, r3
1414 .LVL181:
1415 0034 0388 ldrh r3, [r0]
1416 0036 144A ldr r2, .L67+8
1417 0038 1340 ands r3, r2
1418 .LVL182:
1419 003a 2022 movs r2, #32
1420 003c 5A40 eors r2, r3
1421 .LVL183:
1422 003e 134B ldr r3, .L67+12
1423 0040 1343 orrs r3, r2
1424 0042 9BB2 uxth r3, r3
1425 0044 0380 strh r3, [r0]
1426 0046 19E0 b .L63
1427 .LVL184:
1428 .L64:
1429 .LBE58:
1430 .LBB59:
572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** else
575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_CLEAR_RX_DTOG(USBx, ep->num);
1431 .loc 1 576 0
1432 0048 0B78 ldrb r3, [r1]
1433 004a 9B00 lsls r3, r3, #2
1434 004c C318 adds r3, r0, r3
1435 004e 1A88 ldrh r2, [r3]
1436 .LVL185:
1437 0050 5204 lsls r2, r2, #17
1438 0052 06D5 bpl .L66
1439 .LVL186:
1440 .LBB60:
1441 .loc 1 576 0 is_stmt 0 discriminator 1
1442 0054 1A88 ldrh r2, [r3]
1443 0056 0A4C ldr r4, .L67
1444 0058 1440 ands r4, r2
1445 .LVL187:
1446 005a 0D4A ldr r2, .L67+16
1447 005c 2243 orrs r2, r4
1448 005e 92B2 uxth r2, r2
ARM GAS /tmp/ccalJhl3.s page 37
1449 0060 1A80 strh r2, [r3]
1450 .LVL188:
1451 .L66:
1452 .LBE60:
1453 .LBE59:
1454 .LBB61:
577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Configure VALID status for the Endpoint*/
579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_RX_STATUS(USBx, ep->num, USB_EP_RX_VALID);
1455 .loc 1 579 0 is_stmt 1
1456 0062 0B78 ldrb r3, [r1]
1457 0064 9B00 lsls r3, r3, #2
1458 0066 C018 adds r0, r0, r3
1459 .LVL189:
1460 0068 0288 ldrh r2, [r0]
1461 006a 0A4B ldr r3, .L67+20
1462 006c 1A40 ands r2, r3
1463 .LVL190:
1464 006e C023 movs r3, #192
1465 0070 9B01 lsls r3, r3, #6
1466 0072 5A40 eors r2, r3
1467 .LVL191:
1468 0074 054B ldr r3, .L67+12
1469 0076 1343 orrs r3, r2
1470 0078 9BB2 uxth r3, r3
1471 007a 0380 strh r3, [r0]
1472 .LVL192:
1473 .L63:
1474 .LBE61:
580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return HAL_OK;
584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1475 .loc 1 584 0
1476 007c 0020 movs r0, #0
1477 @ sp needed
1478 007e 10BD pop {r4, pc}
1479 .L68:
1480 .align 2
1481 .L67:
1482 0080 8F8FFFFF .word -28785
1483 0084 C080FFFF .word -32576
1484 0088 BF8FFFFF .word -28737
1485 008c 8080FFFF .word -32640
1486 0090 80C0FFFF .word -16256
1487 0094 8FBFFFFF .word -16497
1488 .cfi_endproc
1489 .LFE54:
1491 .section .text.USB_StopDevice,"ax",%progbits
1492 .align 1
1493 .global USB_StopDevice
1494 .syntax unified
1495 .code 16
1496 .thumb_func
1497 .fpu softvfp
1499 USB_StopDevice:
ARM GAS /tmp/ccalJhl3.s page 38
1500 .LFB55:
585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_StopDevice : Stop the usb device mode
588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef USB_StopDevice(USB_TypeDef *USBx)
592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1501 .loc 1 592 0
1502 .cfi_startproc
1503 @ args = 0, pretend = 0, frame = 0
1504 @ frame_needed = 0, uses_anonymous_args = 0
1505 @ link register save eliminated.
1506 .LVL193:
593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* disable all interrupts and force USB reset */
594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USBx->CNTR = USB_CNTR_FRES;
1507 .loc 1 594 0
1508 0000 4023 movs r3, #64
1509 0002 0122 movs r2, #1
1510 0004 C252 strh r2, [r0, r3]
595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* clear interrupt status register */
597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USBx->ISTR = 0;
1511 .loc 1 597 0
1512 0006 4332 adds r2, r2, #67
1513 0008 0021 movs r1, #0
1514 000a 8152 strh r1, [r0, r2]
598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* switch-off device */
600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USBx->CNTR = (USB_CNTR_FRES | USB_CNTR_PDWN);
1515 .loc 1 600 0
1516 000c 413A subs r2, r2, #65
1517 000e C252 strh r2, [r0, r3]
601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return HAL_OK;
603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1518 .loc 1 603 0
1519 0010 0020 movs r0, #0
1520 .LVL194:
1521 @ sp needed
1522 0012 7047 bx lr
1523 .cfi_endproc
1524 .LFE55:
1526 .section .text.USB_SetDevAddress,"ax",%progbits
1527 .align 1
1528 .global USB_SetDevAddress
1529 .syntax unified
1530 .code 16
1531 .thumb_func
1532 .fpu softvfp
1534 USB_SetDevAddress:
1535 .LFB56:
604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_SetDevAddress : Stop the usb device mode
607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
ARM GAS /tmp/ccalJhl3.s page 39
608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param address : new device address to be assigned
609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * This parameter can be a value from 0 to 255
610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef USB_SetDevAddress(USB_TypeDef *USBx, uint8_t address)
613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1536 .loc 1 613 0
1537 .cfi_startproc
1538 @ args = 0, pretend = 0, frame = 0
1539 @ frame_needed = 0, uses_anonymous_args = 0
1540 @ link register save eliminated.
1541 .LVL195:
614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** if (address == 0U)
1542 .loc 1 614 0
1543 0000 0029 cmp r1, #0
1544 0002 02D1 bne .L71
615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* set device address and enable function */
617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USBx->DADDR = USB_DADDR_EF;
1545 .loc 1 617 0
1546 0004 4C23 movs r3, #76
1547 0006 8022 movs r2, #128
1548 0008 C252 strh r2, [r0, r3]
1549 .L71:
618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return HAL_OK;
621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1550 .loc 1 621 0
1551 000a 0020 movs r0, #0
1552 .LVL196:
1553 @ sp needed
1554 000c 7047 bx lr
1555 .cfi_endproc
1556 .LFE56:
1558 .section .text.USB_DevConnect,"ax",%progbits
1559 .align 1
1560 .global USB_DevConnect
1561 .syntax unified
1562 .code 16
1563 .thumb_func
1564 .fpu softvfp
1566 USB_DevConnect:
1567 .LFB57:
622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_DevConnect : Connect the USB device by enabling the pull-up/pull-down
625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef USB_DevConnect(USB_TypeDef *USBx)
629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1568 .loc 1 629 0
1569 .cfi_startproc
1570 @ args = 0, pretend = 0, frame = 0
1571 @ frame_needed = 0, uses_anonymous_args = 0
1572 @ link register save eliminated.
ARM GAS /tmp/ccalJhl3.s page 40
1573 .LVL197:
630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Enabling DP Pull-UP bit to Connect internal PU resistor on USB DP line */
631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USBx->BCDR |= USB_BCDR_DPPU;
1574 .loc 1 631 0
1575 0000 5822 movs r2, #88
1576 0002 835A ldrh r3, [r0, r2]
1577 0004 0249 ldr r1, .L73
1578 0006 0B43 orrs r3, r1
1579 0008 9BB2 uxth r3, r3
1580 000a 8352 strh r3, [r0, r2]
632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return HAL_OK;
634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1581 .loc 1 634 0
1582 000c 0020 movs r0, #0
1583 .LVL198:
1584 @ sp needed
1585 000e 7047 bx lr
1586 .L74:
1587 .align 2
1588 .L73:
1589 0010 0080FFFF .word -32768
1590 .cfi_endproc
1591 .LFE57:
1593 .section .text.USB_DevDisconnect,"ax",%progbits
1594 .align 1
1595 .global USB_DevDisconnect
1596 .syntax unified
1597 .code 16
1598 .thumb_func
1599 .fpu softvfp
1601 USB_DevDisconnect:
1602 .LFB58:
635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_DevDisconnect : Disconnect the USB device by disabling the pull-up/pull-down
638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef USB_DevDisconnect(USB_TypeDef *USBx)
642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1603 .loc 1 642 0
1604 .cfi_startproc
1605 @ args = 0, pretend = 0, frame = 0
1606 @ frame_needed = 0, uses_anonymous_args = 0
1607 @ link register save eliminated.
1608 .LVL199:
643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Disable DP Pull-Up bit to disconnect the Internal PU resistor on USB DP line */
644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USBx->BCDR &= (uint16_t)(~(USB_BCDR_DPPU));
1609 .loc 1 644 0
1610 0000 5822 movs r2, #88
1611 0002 835A ldrh r3, [r0, r2]
1612 0004 5B04 lsls r3, r3, #17
1613 0006 5B0C lsrs r3, r3, #17
1614 0008 8352 strh r3, [r0, r2]
645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return HAL_OK;
ARM GAS /tmp/ccalJhl3.s page 41
647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1615 .loc 1 647 0
1616 000a 0020 movs r0, #0
1617 .LVL200:
1618 @ sp needed
1619 000c 7047 bx lr
1620 .cfi_endproc
1621 .LFE58:
1623 .section .text.USB_ReadInterrupts,"ax",%progbits
1624 .align 1
1625 .global USB_ReadInterrupts
1626 .syntax unified
1627 .code 16
1628 .thumb_func
1629 .fpu softvfp
1631 USB_ReadInterrupts:
1632 .LFB59:
648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_ReadInterrupts: return the global USB interrupt status
651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint32_t USB_ReadInterrupts(USB_TypeDef *USBx)
655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1633 .loc 1 655 0
1634 .cfi_startproc
1635 @ args = 0, pretend = 0, frame = 0
1636 @ frame_needed = 0, uses_anonymous_args = 0
1637 @ link register save eliminated.
1638 .LVL201:
656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint32_t tmpreg;
657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** tmpreg = USBx->ISTR;
1639 .loc 1 658 0
1640 0000 4423 movs r3, #68
1641 0002 C05A ldrh r0, [r0, r3]
1642 .LVL202:
1643 0004 80B2 uxth r0, r0
1644 .LVL203:
659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return tmpreg;
660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1645 .loc 1 660 0
1646 @ sp needed
1647 0006 7047 bx lr
1648 .cfi_endproc
1649 .LFE59:
1651 .section .text.USB_ReadDevAllOutEpInterrupt,"ax",%progbits
1652 .align 1
1653 .global USB_ReadDevAllOutEpInterrupt
1654 .syntax unified
1655 .code 16
1656 .thumb_func
1657 .fpu softvfp
1659 USB_ReadDevAllOutEpInterrupt:
1660 .LFB60:
661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
ARM GAS /tmp/ccalJhl3.s page 42
662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_ReadDevAllOutEpInterrupt: return the USB device OUT endpoints interrupt status
664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint32_t USB_ReadDevAllOutEpInterrupt(USB_TypeDef *USBx)
668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1661 .loc 1 668 0
1662 .cfi_startproc
1663 @ args = 0, pretend = 0, frame = 0
1664 @ frame_needed = 0, uses_anonymous_args = 0
1665 @ link register save eliminated.
1666 .LVL204:
669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Prevent unused argument(s) compilation warning */
670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(USBx);
671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* NOTE : - This function is not required by USB Device FS peripheral, it is used
672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** only by USB OTG FS peripheral.
673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** - This function is added to ensure compatibility across platforms.
674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return (0);
676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1667 .loc 1 676 0
1668 0000 0020 movs r0, #0
1669 .LVL205:
1670 @ sp needed
1671 0002 7047 bx lr
1672 .cfi_endproc
1673 .LFE60:
1675 .section .text.USB_ReadDevAllInEpInterrupt,"ax",%progbits
1676 .align 1
1677 .global USB_ReadDevAllInEpInterrupt
1678 .syntax unified
1679 .code 16
1680 .thumb_func
1681 .fpu softvfp
1683 USB_ReadDevAllInEpInterrupt:
1684 .LFB61:
677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_ReadDevAllInEpInterrupt: return the USB device IN endpoints interrupt status
680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint32_t USB_ReadDevAllInEpInterrupt(USB_TypeDef *USBx)
684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1685 .loc 1 684 0
1686 .cfi_startproc
1687 @ args = 0, pretend = 0, frame = 0
1688 @ frame_needed = 0, uses_anonymous_args = 0
1689 @ link register save eliminated.
1690 .LVL206:
685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Prevent unused argument(s) compilation warning */
686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(USBx);
687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* NOTE : - This function is not required by USB Device FS peripheral, it is used
688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** only by USB OTG FS peripheral.
689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** - This function is added to ensure compatibility across platforms.
690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
ARM GAS /tmp/ccalJhl3.s page 43
691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return (0);
692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1691 .loc 1 692 0
1692 0000 0020 movs r0, #0
1693 .LVL207:
1694 @ sp needed
1695 0002 7047 bx lr
1696 .cfi_endproc
1697 .LFE61:
1699 .section .text.USB_ReadDevOutEPInterrupt,"ax",%progbits
1700 .align 1
1701 .global USB_ReadDevOutEPInterrupt
1702 .syntax unified
1703 .code 16
1704 .thumb_func
1705 .fpu softvfp
1707 USB_ReadDevOutEPInterrupt:
1708 .LFB62:
693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief Returns Device OUT EP Interrupt register
696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param epnum : endpoint number
698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * This parameter can be a value from 0 to 15
699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval Device OUT EP Interrupt register
700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint32_t USB_ReadDevOutEPInterrupt(USB_TypeDef *USBx, uint8_t epnum)
702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1709 .loc 1 702 0
1710 .cfi_startproc
1711 @ args = 0, pretend = 0, frame = 0
1712 @ frame_needed = 0, uses_anonymous_args = 0
1713 @ link register save eliminated.
1714 .LVL208:
703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Prevent unused argument(s) compilation warning */
704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(USBx);
705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(epnum);
706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* NOTE : - This function is not required by USB Device FS peripheral, it is used
707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** only by USB OTG FS peripheral.
708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** - This function is added to ensure compatibility across platforms.
709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return (0);
711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1715 .loc 1 711 0
1716 0000 0020 movs r0, #0
1717 .LVL209:
1718 @ sp needed
1719 0002 7047 bx lr
1720 .cfi_endproc
1721 .LFE62:
1723 .section .text.USB_ReadDevInEPInterrupt,"ax",%progbits
1724 .align 1
1725 .global USB_ReadDevInEPInterrupt
1726 .syntax unified
1727 .code 16
1728 .thumb_func
1729 .fpu softvfp
ARM GAS /tmp/ccalJhl3.s page 44
1731 USB_ReadDevInEPInterrupt:
1732 .LFB63:
712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief Returns Device IN EP Interrupt register
715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx : Selected device
716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param epnum : endpoint number
717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * This parameter can be a value from 0 to 15
718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval Device IN EP Interrupt register
719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint32_t USB_ReadDevInEPInterrupt(USB_TypeDef *USBx, uint8_t epnum)
721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1733 .loc 1 721 0
1734 .cfi_startproc
1735 @ args = 0, pretend = 0, frame = 0
1736 @ frame_needed = 0, uses_anonymous_args = 0
1737 @ link register save eliminated.
1738 .LVL210:
722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Prevent unused argument(s) compilation warning */
723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(USBx);
724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(epnum);
725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* NOTE : - This function is not required by USB Device FS peripheral, it is used
726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** only by USB OTG FS peripheral.
727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** - This function is added to ensure compatibility across platforms.
728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return (0);
730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1739 .loc 1 730 0
1740 0000 0020 movs r0, #0
1741 .LVL211:
1742 @ sp needed
1743 0002 7047 bx lr
1744 .cfi_endproc
1745 .LFE63:
1747 .section .text.USB_ClearInterrupts,"ax",%progbits
1748 .align 1
1749 .global USB_ClearInterrupts
1750 .syntax unified
1751 .code 16
1752 .thumb_func
1753 .fpu softvfp
1755 USB_ClearInterrupts:
1756 .LFB64:
731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_ClearInterrupts: clear a USB interrupt
734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx Selected device
735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param interrupt interrupt flag
736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval None
737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** void USB_ClearInterrupts(USB_TypeDef *USBx, uint32_t interrupt)
739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1757 .loc 1 739 0
1758 .cfi_startproc
1759 @ args = 0, pretend = 0, frame = 0
1760 @ frame_needed = 0, uses_anonymous_args = 0
1761 @ link register save eliminated.
ARM GAS /tmp/ccalJhl3.s page 45
1762 .LVL212:
740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Prevent unused argument(s) compilation warning */
741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(USBx);
742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(interrupt);
743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* NOTE : - This function is not required by USB Device FS peripheral, it is used
744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** only by USB OTG FS peripheral.
745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** - This function is added to ensure compatibility across platforms.
746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1763 .loc 1 747 0
1764 @ sp needed
1765 0000 7047 bx lr
1766 .cfi_endproc
1767 .LFE64:
1769 .section .text.USB_EP0_OutStart,"ax",%progbits
1770 .align 1
1771 .global USB_EP0_OutStart
1772 .syntax unified
1773 .code 16
1774 .thumb_func
1775 .fpu softvfp
1777 USB_EP0_OutStart:
1778 .LFB65:
748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief Prepare the EP0 to start the first control setup
751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx Selected device
752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param psetup pointer to setup packet
753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef USB_EP0_OutStart(USB_TypeDef *USBx, uint8_t *psetup)
756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1779 .loc 1 756 0
1780 .cfi_startproc
1781 @ args = 0, pretend = 0, frame = 0
1782 @ frame_needed = 0, uses_anonymous_args = 0
1783 @ link register save eliminated.
1784 .LVL213:
757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* Prevent unused argument(s) compilation warning */
758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(USBx);
759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** UNUSED(psetup);
760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /* NOTE : - This function is not required by USB Device FS peripheral, it is used
761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** only by USB OTG FS peripheral.
762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** - This function is added to ensure compatibility across platforms.
763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return HAL_OK;
765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1785 .loc 1 765 0
1786 0000 0020 movs r0, #0
1787 .LVL214:
1788 @ sp needed
1789 0002 7047 bx lr
1790 .cfi_endproc
1791 .LFE65:
1793 .section .text.USB_ActivateRemoteWakeup,"ax",%progbits
1794 .align 1
1795 .global USB_ActivateRemoteWakeup
ARM GAS /tmp/ccalJhl3.s page 46
1796 .syntax unified
1797 .code 16
1798 .thumb_func
1799 .fpu softvfp
1801 USB_ActivateRemoteWakeup:
1802 .LFB66:
766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_ActivateRemoteWakeup : active remote wakeup signalling
769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx Selected device
770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef USB_ActivateRemoteWakeup(USB_TypeDef *USBx)
773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1803 .loc 1 773 0
1804 .cfi_startproc
1805 @ args = 0, pretend = 0, frame = 0
1806 @ frame_needed = 0, uses_anonymous_args = 0
1807 @ link register save eliminated.
1808 .LVL215:
774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USBx->CNTR |= USB_CNTR_RESUME;
1809 .loc 1 774 0
1810 0000 4022 movs r2, #64
1811 0002 835A ldrh r3, [r0, r2]
1812 0004 1021 movs r1, #16
1813 0006 0B43 orrs r3, r1
1814 0008 8352 strh r3, [r0, r2]
775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return HAL_OK;
777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1815 .loc 1 777 0
1816 000a 0020 movs r0, #0
1817 .LVL216:
1818 @ sp needed
1819 000c 7047 bx lr
1820 .cfi_endproc
1821 .LFE66:
1823 .section .text.USB_DeActivateRemoteWakeup,"ax",%progbits
1824 .align 1
1825 .global USB_DeActivateRemoteWakeup
1826 .syntax unified
1827 .code 16
1828 .thumb_func
1829 .fpu softvfp
1831 USB_DeActivateRemoteWakeup:
1832 .LFB67:
778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief USB_DeActivateRemoteWakeup : de-active remote wakeup signalling
781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx Selected device
782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval HAL status
783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** HAL_StatusTypeDef USB_DeActivateRemoteWakeup(USB_TypeDef *USBx)
785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1833 .loc 1 785 0
1834 .cfi_startproc
1835 @ args = 0, pretend = 0, frame = 0
ARM GAS /tmp/ccalJhl3.s page 47
1836 @ frame_needed = 0, uses_anonymous_args = 0
1837 @ link register save eliminated.
1838 .LVL217:
786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** USBx->CNTR &= ~(USB_CNTR_RESUME);
1839 .loc 1 786 0
1840 0000 4022 movs r2, #64
1841 0002 835A ldrh r3, [r0, r2]
1842 0004 1021 movs r1, #16
1843 0006 8B43 bics r3, r1
1844 0008 8352 strh r3, [r0, r2]
787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** return HAL_OK;
788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1845 .loc 1 788 0
1846 000a 0020 movs r0, #0
1847 .LVL218:
1848 @ sp needed
1849 000c 7047 bx lr
1850 .cfi_endproc
1851 .LFE67:
1853 .section .text.USB_WritePMA,"ax",%progbits
1854 .align 1
1855 .global USB_WritePMA
1856 .syntax unified
1857 .code 16
1858 .thumb_func
1859 .fpu softvfp
1861 USB_WritePMA:
1862 .LFB68:
789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief Copy a buffer from user memory area to packet memory area (PMA)
792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx USB peripheral instance register address.
793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param pbUsrBuf pointer to user memory area.
794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param wPMABufAddr address into PMA.
795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param wNBytes: no. of bytes to be copied.
796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval None
797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** void USB_WritePMA(USB_TypeDef *USBx, uint8_t *pbUsrBuf, uint16_t wPMABufAddr, uint16_t wNBytes)
799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1863 .loc 1 799 0
1864 .cfi_startproc
1865 @ args = 0, pretend = 0, frame = 0
1866 @ frame_needed = 0, uses_anonymous_args = 0
1867 .LVL219:
1868 0000 10B5 push {r4, lr}
1869 .LCFI6:
1870 .cfi_def_cfa_offset 8
1871 .cfi_offset 4, -8
1872 .cfi_offset 14, -4
800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint32_t n = ((uint32_t)wNBytes + 1U) >> 1;
1873 .loc 1 800 0
1874 0002 0133 adds r3, r3, #1
1875 .LVL220:
1876 0004 5B08 lsrs r3, r3, #1
1877 .LVL221:
801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint32_t BaseAddr = (uint32_t)USBx;
802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint32_t i, temp1, temp2;
ARM GAS /tmp/ccalJhl3.s page 48
803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** __IO uint16_t *pdwVal;
804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint8_t *pBuf = pbUsrBuf;
805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pdwVal = (__IO uint16_t *)(BaseAddr + 0x400U + ((uint32_t)wPMABufAddr * PMA_ACCESS));
1878 .loc 1 806 0
1879 0006 1218 adds r2, r2, r0
1880 .LVL222:
1881 0008 8020 movs r0, #128
1882 .LVL223:
1883 000a C000 lsls r0, r0, #3
1884 000c 8446 mov ip, r0
1885 000e 6244 add r2, r2, ip
1886 .LVL224:
807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** for (i = n; i != 0U; i--)
1887 .loc 1 808 0
1888 0010 07E0 b .L86
1889 .LVL225:
1890 .L87:
809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** temp1 = *pBuf;
1891 .loc 1 810 0 discriminator 3
1892 0012 0878 ldrb r0, [r1]
1893 .LVL226:
811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pBuf++;
812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** temp2 = temp1 | ((uint16_t)((uint16_t) *pBuf << 8));
1894 .loc 1 812 0 discriminator 3
1895 0014 4C78 ldrb r4, [r1, #1]
1896 0016 2402 lsls r4, r4, #8
1897 .LVL227:
813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** *pdwVal = (uint16_t)temp2;
1898 .loc 1 813 0 discriminator 3
1899 0018 0443 orrs r4, r0
1900 .LVL228:
1901 001a 1480 strh r4, [r2]
814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pdwVal++;
1902 .loc 1 814 0 discriminator 3
1903 001c 0232 adds r2, r2, #2
1904 .LVL229:
815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** #if PMA_ACCESS > 1U
817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pdwVal++;
818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** #endif
819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pBuf++;
1905 .loc 1 820 0 discriminator 3
1906 001e 0231 adds r1, r1, #2
1907 .LVL230:
808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1908 .loc 1 808 0 discriminator 3
1909 0020 013B subs r3, r3, #1
1910 .LVL231:
1911 .L86:
808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1912 .loc 1 808 0 is_stmt 0 discriminator 1
1913 0022 002B cmp r3, #0
1914 0024 F5D1 bne .L87
ARM GAS /tmp/ccalJhl3.s page 49
821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1915 .loc 1 822 0 is_stmt 1
1916 @ sp needed
1917 0026 10BD pop {r4, pc}
1918 .cfi_endproc
1919 .LFE68:
1921 .section .text.USB_EPStartXfer,"ax",%progbits
1922 .align 1
1923 .global USB_EPStartXfer
1924 .syntax unified
1925 .code 16
1926 .thumb_func
1927 .fpu softvfp
1929 USB_EPStartXfer:
1930 .LFB50:
412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint16_t pmabuffer;
1931 .loc 1 412 0
1932 .cfi_startproc
1933 @ args = 0, pretend = 0, frame = 0
1934 @ frame_needed = 0, uses_anonymous_args = 0
1935 .LVL232:
1936 0000 70B5 push {r4, r5, r6, lr}
1937 .LCFI7:
1938 .cfi_def_cfa_offset 16
1939 .cfi_offset 4, -16
1940 .cfi_offset 5, -12
1941 .cfi_offset 6, -8
1942 .cfi_offset 14, -4
1943 0002 0500 movs r5, r0
1944 0004 0C00 movs r4, r1
417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1945 .loc 1 417 0
1946 0006 4978 ldrb r1, [r1, #1]
1947 .LVL233:
1948 0008 0129 cmp r1, #1
1949 000a 2BD0 beq .L128
461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1950 .loc 1 461 0
1951 000c A269 ldr r2, [r4, #24]
1952 000e 2369 ldr r3, [r4, #16]
1953 0010 9A42 cmp r2, r3
1954 0012 00D8 bhi .LCB1926
1955 0014 D8E0 b .L110 @long jump
1956 .LCB1926:
1957 .LVL234:
464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1958 .loc 1 464 0
1959 0016 D21A subs r2, r2, r3
1960 0018 A261 str r2, [r4, #24]
1961 .L111:
473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
1962 .loc 1 473 0
1963 001a 227B ldrb r2, [r4, #12]
1964 001c 002A cmp r2, #0
1965 001e 00D0 beq .LCB1936
1966 0020 E9E0 b .L112 @long jump
ARM GAS /tmp/ccalJhl3.s page 50
1967 .LCB1936:
1968 .LVL235:
1969 .LBB62:
476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1970 .loc 1 476 0
1971 0022 5032 adds r2, r2, #80
1972 0024 A95A ldrh r1, [r5, r2]
1973 0026 6918 adds r1, r5, r1
1974 .LVL236:
1975 0028 2278 ldrb r2, [r4]
1976 002a D200 lsls r2, r2, #3
1977 002c 5218 adds r2, r2, r1
1978 002e A049 ldr r1, .L130
1979 .LVL237:
1980 0030 8C46 mov ip, r1
1981 0032 6244 add r2, r2, ip
1982 .LVL238:
1983 .LBB63:
1984 0034 002B cmp r3, #0
1985 0036 00D0 beq .LCB1955
1986 0038 CAE0 b .L113 @long jump
1987 .LCB1955:
476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
1988 .loc 1 476 0 is_stmt 0 discriminator 1
1989 003a 1388 ldrh r3, [r2]
1990 .LVL239:
1991 003c 9D49 ldr r1, .L130+4
1992 003e 1940 ands r1, r3
1993 0040 9D4B ldr r3, .L130+8
1994 0042 0B43 orrs r3, r1
1995 0044 1380 strh r3, [r2]
1996 .LVL240:
1997 .L114:
1998 .LBE63:
1999 .LBE62:
2000 .LBB65:
484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2001 .loc 1 484 0 is_stmt 1
2002 0046 2378 ldrb r3, [r4]
2003 0048 9B00 lsls r3, r3, #2
2004 004a ED18 adds r5, r5, r3
2005 .LVL241:
2006 004c 2A88 ldrh r2, [r5]
2007 004e 9B4B ldr r3, .L130+12
2008 0050 1A40 ands r2, r3
2009 .LVL242:
2010 0052 C023 movs r3, #192
2011 0054 9B01 lsls r3, r3, #6
2012 0056 5A40 eors r2, r3
2013 .LVL243:
2014 0058 994B ldr r3, .L130+16
2015 005a 1343 orrs r3, r2
2016 005c 9BB2 uxth r3, r3
2017 005e 2B80 strh r3, [r5]
2018 .LVL244:
2019 .L109:
2020 .LBE65:
ARM GAS /tmp/ccalJhl3.s page 51
488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
2021 .loc 1 488 0
2022 0060 0020 movs r0, #0
2023 @ sp needed
2024 .LVL245:
2025 0062 70BD pop {r4, r5, r6, pc}
2026 .LVL246:
2027 .L128:
420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
2028 .loc 1 420 0
2029 0064 A269 ldr r2, [r4, #24]
2030 0066 2369 ldr r3, [r4, #16]
2031 0068 9A42 cmp r2, r3
2032 006a 1DD9 bls .L90
2033 .LVL247:
423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2034 .loc 1 423 0
2035 006c D21A subs r2, r2, r3
2036 006e A261 str r2, [r4, #24]
2037 .L91:
432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
2038 .loc 1 432 0
2039 0070 227B ldrb r2, [r4, #12]
2040 0072 002A cmp r2, #0
2041 0074 1CD0 beq .L129
440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
2042 .loc 1 440 0
2043 0076 2278 ldrb r2, [r4]
2044 0078 9000 lsls r0, r2, #2
2045 .LVL248:
2046 007a 2818 adds r0, r5, r0
2047 007c 0088 ldrh r0, [r0]
2048 007e 4006 lsls r0, r0, #25
2049 0080 64D5 bpl .L94
2050 .LVL249:
2051 .LBB66:
443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr1;
2052 .loc 1 443 0
2053 0082 0029 cmp r1, #0
2054 0084 39D1 bne .L95
2055 .LVL250:
2056 .LBB67:
443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr1;
2057 .loc 1 443 0 is_stmt 0 discriminator 1
2058 0086 5031 adds r1, r1, #80
2059 0088 695A ldrh r1, [r5, r1]
2060 008a 6918 adds r1, r5, r1
2061 .LVL251:
2062 008c D200 lsls r2, r2, #3
2063 008e 5218 adds r2, r2, r1
2064 0090 8749 ldr r1, .L130
2065 .LVL252:
2066 0092 8C46 mov ip, r1
2067 0094 6244 add r2, r2, ip
2068 .LVL253:
2069 .LBB68:
2070 0096 002B cmp r3, #0
ARM GAS /tmp/ccalJhl3.s page 52
2071 0098 1CD1 bne .L96
443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr1;
2072 .loc 1 443 0 discriminator 3
2073 009a 1188 ldrh r1, [r2]
2074 009c 8548 ldr r0, .L130+4
2075 009e 0840 ands r0, r1
2076 00a0 8549 ldr r1, .L130+8
2077 00a2 0143 orrs r1, r0
2078 00a4 1180 strh r1, [r2]
2079 00a6 31E0 b .L97
2080 .LVL254:
2081 .L90:
2082 .LBE68:
2083 .LBE67:
2084 .LBE66:
428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2085 .loc 1 428 0 is_stmt 1
2086 00a8 0023 movs r3, #0
2087 00aa A361 str r3, [r4, #24]
427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** ep->xfer_len = 0U;
2088 .loc 1 427 0
2089 00ac 1300 movs r3, r2
2090 00ae DFE7 b .L91
2091 .LVL255:
2092 .L129:
434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_SET_EP_TX_CNT(USBx, ep->num, len);
2093 .loc 1 434 0
2094 00b0 9EB2 uxth r6, r3
2095 00b2 E288 ldrh r2, [r4, #6]
2096 00b4 3300 movs r3, r6
2097 .LVL256:
2098 00b6 6169 ldr r1, [r4, #20]
2099 00b8 2800 movs r0, r5
2100 .LVL257:
2101 00ba FFF7FEFF bl USB_WritePMA
2102 .LVL258:
2103 .LBB71:
435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2104 .loc 1 435 0
2105 00be 5023 movs r3, #80
2106 00c0 EA5A ldrh r2, [r5, r3]
2107 00c2 AA18 adds r2, r5, r2
2108 .LVL259:
2109 00c4 2378 ldrb r3, [r4]
2110 00c6 DB00 lsls r3, r3, #3
2111 00c8 9B18 adds r3, r3, r2
2112 00ca 7E4A ldr r2, .L130+20
2113 .LVL260:
2114 00cc 9446 mov ip, r2
2115 00ce 6344 add r3, r3, ip
2116 .LVL261:
2117 00d0 1E80 strh r6, [r3]
2118 .LBE71:
2119 00d2 2EE0 b .L93
2120 .LVL262:
2121 .L96:
2122 .LBB72:
ARM GAS /tmp/ccalJhl3.s page 53
2123 .LBB70:
2124 .LBB69:
443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr1;
2125 .loc 1 443 0 discriminator 4
2126 00d4 3E2B cmp r3, #62
2127 00d6 06D8 bhi .L98
443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr1;
2128 .loc 1 443 0 is_stmt 0 discriminator 5
2129 00d8 5908 lsrs r1, r3, #1
2130 .LVL263:
2131 00da D807 lsls r0, r3, #31
2132 00dc 00D5 bpl .L99
443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr1;
2133 .loc 1 443 0 discriminator 7
2134 00de 0131 adds r1, r1, #1
2135 .LVL264:
2136 .L99:
443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr1;
2137 .loc 1 443 0 discriminator 9
2138 00e0 8902 lsls r1, r1, #10
2139 .LVL265:
2140 00e2 1180 strh r1, [r2]
2141 00e4 12E0 b .L97
2142 .L98:
443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr1;
2143 .loc 1 443 0 discriminator 6
2144 00e6 5909 lsrs r1, r3, #5
2145 .LVL266:
2146 00e8 D806 lsls r0, r3, #27
2147 00ea 00D1 bne .L100
443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr1;
2148 .loc 1 443 0 discriminator 10
2149 00ec 0139 subs r1, r1, #1
2150 .LVL267:
2151 .L100:
443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr1;
2152 .loc 1 443 0 discriminator 12
2153 00ee 8902 lsls r1, r1, #10
2154 .LVL268:
2155 00f0 89B2 uxth r1, r1
2156 00f2 7148 ldr r0, .L130+8
2157 00f4 0143 orrs r1, r0
2158 00f6 1180 strh r1, [r2]
2159 00f8 08E0 b .L97
2160 .LVL269:
2161 .L95:
2162 .LBE69:
2163 .LBE70:
443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr1;
2164 .loc 1 443 0 discriminator 13
2165 00fa 5021 movs r1, #80
2166 00fc 695A ldrh r1, [r5, r1]
2167 00fe 6918 adds r1, r5, r1
2168 .LVL270:
2169 0100 D200 lsls r2, r2, #3
2170 0102 5218 adds r2, r2, r1
2171 0104 6A49 ldr r1, .L130
ARM GAS /tmp/ccalJhl3.s page 54
2172 .LVL271:
2173 0106 8C46 mov ip, r1
2174 0108 6244 add r2, r2, ip
2175 .LVL272:
2176 010a 1380 strh r3, [r2]
2177 .LVL273:
2178 .L97:
2179 .LBE72:
444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2180 .loc 1 444 0 is_stmt 1
2181 010c 6289 ldrh r2, [r4, #10]
2182 .LVL274:
2183 .L101:
452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** PCD_FreeUserBuffer(USBx, ep->num, ep->is_in);
2184 .loc 1 452 0
2185 010e 9BB2 uxth r3, r3
2186 .LVL275:
2187 0110 6169 ldr r1, [r4, #20]
2188 0112 2800 movs r0, r5
2189 0114 FFF7FEFF bl USB_WritePMA
2190 .LVL276:
453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2191 .loc 1 453 0
2192 0118 6378 ldrb r3, [r4, #1]
2193 011a 002B cmp r3, #0
2194 011c 47D1 bne .L108
2195 .LBB73:
453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2196 .loc 1 453 0 is_stmt 0 discriminator 1
2197 011e 2378 ldrb r3, [r4]
2198 0120 9B00 lsls r3, r3, #2
2199 0122 EB18 adds r3, r5, r3
2200 0124 1A88 ldrh r2, [r3]
2201 0126 6849 ldr r1, .L130+24
2202 0128 1140 ands r1, r2
2203 .LVL277:
2204 012a 684A ldr r2, .L130+28
2205 012c 0A43 orrs r2, r1
2206 012e 92B2 uxth r2, r2
2207 0130 1A80 strh r2, [r3]
2208 .LVL278:
2209 .L93:
2210 .LBE73:
2211 .LBB74:
456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2212 .loc 1 456 0 is_stmt 1
2213 0132 2378 ldrb r3, [r4]
2214 0134 9B00 lsls r3, r3, #2
2215 0136 ED18 adds r5, r5, r3
2216 .LVL279:
2217 0138 2B88 ldrh r3, [r5]
2218 013a 654A ldr r2, .L130+32
2219 013c 1340 ands r3, r2
2220 .LVL280:
2221 013e 3022 movs r2, #48
2222 0140 5A40 eors r2, r3
2223 .LVL281:
ARM GAS /tmp/ccalJhl3.s page 55
2224 0142 5F4B ldr r3, .L130+16
2225 0144 1343 orrs r3, r2
2226 0146 9BB2 uxth r3, r3
2227 0148 2B80 strh r3, [r5]
2228 .LBE74:
2229 014a 89E7 b .L109
2230 .LVL282:
2231 .L94:
449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr0;
2232 .loc 1 449 0
2233 014c 0029 cmp r1, #0
2234 014e 23D1 bne .L102
2235 .LVL283:
2236 .LBB75:
449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr0;
2237 .loc 1 449 0 is_stmt 0 discriminator 1
2238 0150 5031 adds r1, r1, #80
2239 0152 695A ldrh r1, [r5, r1]
2240 0154 6918 adds r1, r5, r1
2241 .LVL284:
2242 0156 D200 lsls r2, r2, #3
2243 0158 5218 adds r2, r2, r1
2244 015a 5A49 ldr r1, .L130+20
2245 .LVL285:
2246 015c 8C46 mov ip, r1
2247 015e 6244 add r2, r2, ip
2248 .LVL286:
2249 .LBB76:
2250 0160 002B cmp r3, #0
2251 0162 06D1 bne .L103
449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr0;
2252 .loc 1 449 0 discriminator 3
2253 0164 1188 ldrh r1, [r2]
2254 0166 5348 ldr r0, .L130+4
2255 0168 0840 ands r0, r1
2256 016a 5349 ldr r1, .L130+8
2257 016c 0143 orrs r1, r0
2258 016e 1180 strh r1, [r2]
2259 0170 1BE0 b .L104
2260 .L103:
449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr0;
2261 .loc 1 449 0 discriminator 4
2262 0172 3E2B cmp r3, #62
2263 0174 06D8 bhi .L105
449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr0;
2264 .loc 1 449 0 discriminator 5
2265 0176 5908 lsrs r1, r3, #1
2266 .LVL287:
2267 0178 D807 lsls r0, r3, #31
2268 017a 00D5 bpl .L106
449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr0;
2269 .loc 1 449 0 discriminator 7
2270 017c 0131 adds r1, r1, #1
2271 .LVL288:
2272 .L106:
449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr0;
2273 .loc 1 449 0 discriminator 9
ARM GAS /tmp/ccalJhl3.s page 56
2274 017e 8902 lsls r1, r1, #10
2275 .LVL289:
2276 0180 1180 strh r1, [r2]
2277 0182 12E0 b .L104
2278 .L105:
449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr0;
2279 .loc 1 449 0 discriminator 6
2280 0184 5909 lsrs r1, r3, #5
2281 .LVL290:
2282 0186 D806 lsls r0, r3, #27
2283 0188 00D1 bne .L107
449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr0;
2284 .loc 1 449 0 discriminator 10
2285 018a 0139 subs r1, r1, #1
2286 .LVL291:
2287 .L107:
449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr0;
2288 .loc 1 449 0 discriminator 12
2289 018c 8902 lsls r1, r1, #10
2290 .LVL292:
2291 018e 89B2 uxth r1, r1
2292 0190 4948 ldr r0, .L130+8
2293 0192 0143 orrs r1, r0
2294 0194 1180 strh r1, [r2]
2295 0196 08E0 b .L104
2296 .LVL293:
2297 .L102:
2298 .LBE76:
2299 .LBE75:
2300 .LBB77:
449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pmabuffer = ep->pmaaddr0;
2301 .loc 1 449 0 discriminator 13
2302 0198 5021 movs r1, #80
2303 019a 695A ldrh r1, [r5, r1]
2304 019c 6918 adds r1, r5, r1
2305 .LVL294:
2306 019e D200 lsls r2, r2, #3
2307 01a0 5218 adds r2, r2, r1
2308 01a2 4849 ldr r1, .L130+20
2309 .LVL295:
2310 01a4 8C46 mov ip, r1
2311 01a6 6244 add r2, r2, ip
2312 .LVL296:
2313 01a8 1380 strh r3, [r2]
2314 .LVL297:
2315 .L104:
2316 .LBE77:
450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2317 .loc 1 450 0 is_stmt 1
2318 01aa 2289 ldrh r2, [r4, #8]
2319 .LVL298:
2320 01ac AFE7 b .L101
2321 .LVL299:
2322 .L108:
453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2323 .loc 1 453 0 discriminator 2
2324 01ae 012B cmp r3, #1
ARM GAS /tmp/ccalJhl3.s page 57
2325 01b0 BFD1 bne .L93
2326 .LBB78:
453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2327 .loc 1 453 0 is_stmt 0 discriminator 3
2328 01b2 2378 ldrb r3, [r4]
2329 01b4 9B00 lsls r3, r3, #2
2330 01b6 EB18 adds r3, r5, r3
2331 01b8 1A88 ldrh r2, [r3]
2332 01ba 4349 ldr r1, .L130+24
2333 01bc 1140 ands r1, r2
2334 .LVL300:
2335 01be 454A ldr r2, .L130+36
2336 01c0 0A43 orrs r2, r1
2337 01c2 92B2 uxth r2, r2
2338 01c4 1A80 strh r2, [r3]
2339 01c6 B4E7 b .L93
2340 .LVL301:
2341 .L110:
2342 .LBE78:
469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2343 .loc 1 469 0 is_stmt 1
2344 01c8 0023 movs r3, #0
2345 01ca A361 str r3, [r4, #24]
468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** ep->xfer_len = 0U;
2346 .loc 1 468 0
2347 01cc 1300 movs r3, r2
2348 01ce 24E7 b .L111
2349 .LVL302:
2350 .L113:
2351 .LBB79:
2352 .LBB64:
476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2353 .loc 1 476 0 discriminator 2
2354 01d0 3E2B cmp r3, #62
2355 01d2 06D8 bhi .L115
476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2356 .loc 1 476 0 is_stmt 0 discriminator 3
2357 01d4 5908 lsrs r1, r3, #1
2358 .LVL303:
2359 01d6 DB07 lsls r3, r3, #31
2360 01d8 00D5 bpl .L116
2361 .LVL304:
476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2362 .loc 1 476 0 discriminator 5
2363 01da 0131 adds r1, r1, #1
2364 .LVL305:
2365 .L116:
476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2366 .loc 1 476 0 discriminator 7
2367 01dc 8902 lsls r1, r1, #10
2368 .LVL306:
2369 01de 1180 strh r1, [r2]
2370 01e0 31E7 b .L114
2371 .LVL307:
2372 .L115:
476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2373 .loc 1 476 0 discriminator 4
ARM GAS /tmp/ccalJhl3.s page 58
2374 01e2 5909 lsrs r1, r3, #5
2375 .LVL308:
2376 01e4 DB06 lsls r3, r3, #27
2377 01e6 00D1 bne .L117
2378 .LVL309:
476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2379 .loc 1 476 0 discriminator 8
2380 01e8 0139 subs r1, r1, #1
2381 .LVL310:
2382 .L117:
476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2383 .loc 1 476 0 discriminator 10
2384 01ea 8902 lsls r1, r1, #10
2385 .LVL311:
2386 01ec 89B2 uxth r1, r1
2387 01ee 324B ldr r3, .L130+8
2388 01f0 1943 orrs r1, r3
2389 01f2 1180 strh r1, [r2]
2390 01f4 27E7 b .L114
2391 .LVL312:
2392 .L112:
2393 .LBE64:
2394 .LBE79:
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2395 .loc 1 481 0 is_stmt 1
2396 01f6 0029 cmp r1, #0
2397 01f8 10D1 bne .L118
2398 .LVL313:
2399 .LBB80:
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2400 .loc 1 481 0 is_stmt 0 discriminator 1
2401 01fa 5022 movs r2, #80
2402 01fc A95A ldrh r1, [r5, r2]
2403 01fe 6918 adds r1, r5, r1
2404 .LVL314:
2405 0200 2278 ldrb r2, [r4]
2406 0202 D200 lsls r2, r2, #3
2407 0204 5218 adds r2, r2, r1
2408 0206 2F49 ldr r1, .L130+20
2409 .LVL315:
2410 0208 8C46 mov ip, r1
2411 020a 6244 add r2, r2, ip
2412 .LVL316:
2413 .LBB81:
2414 020c 002B cmp r3, #0
2415 020e 1AD1 bne .L119
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2416 .loc 1 481 0 discriminator 3
2417 0210 1188 ldrh r1, [r2]
2418 0212 2848 ldr r0, .L130+4
2419 .LVL317:
2420 0214 0840 ands r0, r1
2421 0216 2849 ldr r1, .L130+8
2422 0218 0143 orrs r1, r0
2423 021a 1180 strh r1, [r2]
2424 .LVL318:
2425 .L118:
ARM GAS /tmp/ccalJhl3.s page 59
2426 .LBE81:
2427 .LBE80:
2428 .LBB83:
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2429 .loc 1 481 0 discriminator 15
2430 021c 6278 ldrb r2, [r4, #1]
2431 021e 002A cmp r2, #0
2432 0220 37D1 bne .L123
2433 .LVL319:
2434 .LBB84:
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2435 .loc 1 481 0 discriminator 16
2436 0222 5032 adds r2, r2, #80
2437 0224 A95A ldrh r1, [r5, r2]
2438 0226 6918 adds r1, r5, r1
2439 .LVL320:
2440 0228 2278 ldrb r2, [r4]
2441 022a D200 lsls r2, r2, #3
2442 022c 5218 adds r2, r2, r1
2443 022e 2049 ldr r1, .L130
2444 .LVL321:
2445 0230 8C46 mov ip, r1
2446 0232 6244 add r2, r2, ip
2447 .LVL322:
2448 .LBB85:
2449 0234 002B cmp r3, #0
2450 0236 19D1 bne .L124
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2451 .loc 1 481 0 discriminator 18
2452 0238 1388 ldrh r3, [r2]
2453 .LVL323:
2454 023a 1E49 ldr r1, .L130+4
2455 023c 1940 ands r1, r3
2456 023e 1E4B ldr r3, .L130+8
2457 0240 0B43 orrs r3, r1
2458 0242 1380 strh r3, [r2]
2459 0244 FFE6 b .L114
2460 .LVL324:
2461 .L119:
2462 .LBE85:
2463 .LBE84:
2464 .LBE83:
2465 .LBB88:
2466 .LBB82:
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2467 .loc 1 481 0 discriminator 4
2468 0246 3E2B cmp r3, #62
2469 0248 06D8 bhi .L120
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2470 .loc 1 481 0 discriminator 5
2471 024a 5908 lsrs r1, r3, #1
2472 .LVL325:
2473 024c D807 lsls r0, r3, #31
2474 024e 00D5 bpl .L121
2475 .LVL326:
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2476 .loc 1 481 0 discriminator 7
ARM GAS /tmp/ccalJhl3.s page 60
2477 0250 0131 adds r1, r1, #1
2478 .LVL327:
2479 .L121:
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2480 .loc 1 481 0 discriminator 9
2481 0252 8902 lsls r1, r1, #10
2482 .LVL328:
2483 0254 1180 strh r1, [r2]
2484 0256 E1E7 b .L118
2485 .LVL329:
2486 .L120:
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2487 .loc 1 481 0 discriminator 6
2488 0258 5909 lsrs r1, r3, #5
2489 .LVL330:
2490 025a D806 lsls r0, r3, #27
2491 025c 00D1 bne .L122
2492 .LVL331:
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2493 .loc 1 481 0 discriminator 10
2494 025e 0139 subs r1, r1, #1
2495 .LVL332:
2496 .L122:
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2497 .loc 1 481 0 discriminator 12
2498 0260 8902 lsls r1, r1, #10
2499 .LVL333:
2500 0262 89B2 uxth r1, r1
2501 0264 1448 ldr r0, .L130+8
2502 0266 0143 orrs r1, r0
2503 0268 1180 strh r1, [r2]
2504 026a D7E7 b .L118
2505 .LVL334:
2506 .L124:
2507 .LBE82:
2508 .LBE88:
2509 .LBB89:
2510 .LBB87:
2511 .LBB86:
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2512 .loc 1 481 0 discriminator 19
2513 026c 3E2B cmp r3, #62
2514 026e 06D8 bhi .L125
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2515 .loc 1 481 0 discriminator 20
2516 0270 5908 lsrs r1, r3, #1
2517 .LVL335:
2518 0272 DB07 lsls r3, r3, #31
2519 0274 00D5 bpl .L126
2520 .LVL336:
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2521 .loc 1 481 0 discriminator 22
2522 0276 0131 adds r1, r1, #1
2523 .LVL337:
2524 .L126:
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2525 .loc 1 481 0 discriminator 24
ARM GAS /tmp/ccalJhl3.s page 61
2526 0278 8902 lsls r1, r1, #10
2527 .LVL338:
2528 027a 1180 strh r1, [r2]
2529 027c E3E6 b .L114
2530 .LVL339:
2531 .L125:
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2532 .loc 1 481 0 discriminator 21
2533 027e 5909 lsrs r1, r3, #5
2534 .LVL340:
2535 0280 DB06 lsls r3, r3, #27
2536 0282 00D1 bne .L127
2537 .LVL341:
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2538 .loc 1 481 0 discriminator 25
2539 0284 0139 subs r1, r1, #1
2540 .LVL342:
2541 .L127:
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2542 .loc 1 481 0 discriminator 27
2543 0286 8902 lsls r1, r1, #10
2544 .LVL343:
2545 0288 89B2 uxth r1, r1
2546 028a 0B4B ldr r3, .L130+8
2547 028c 1943 orrs r1, r3
2548 028e 1180 strh r1, [r2]
2549 0290 D9E6 b .L114
2550 .LVL344:
2551 .L123:
2552 .LBE86:
2553 .LBE87:
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2554 .loc 1 481 0 discriminator 17
2555 0292 012A cmp r2, #1
2556 0294 00D0 beq .LCB2716
2557 0296 D6E6 b .L114 @long jump
2558 .LCB2716:
481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2559 .loc 1 481 0 discriminator 28
2560 0298 4F32 adds r2, r2, #79
2561 029a A95A ldrh r1, [r5, r2]
2562 029c 6918 adds r1, r5, r1
2563 .LVL345:
2564 029e 2278 ldrb r2, [r4]
2565 02a0 D200 lsls r2, r2, #3
2566 02a2 5218 adds r2, r2, r1
2567 02a4 0249 ldr r1, .L130
2568 .LVL346:
2569 02a6 8C46 mov ip, r1
2570 02a8 6244 add r2, r2, ip
2571 .LVL347:
2572 02aa 1380 strh r3, [r2]
2573 02ac CBE6 b .L114
2574 .L131:
2575 02ae C046 .align 2
2576 .L130:
2577 02b0 06040000 .word 1030
ARM GAS /tmp/ccalJhl3.s page 62
2578 02b4 FF83FFFF .word -31745
2579 02b8 0080FFFF .word -32768
2580 02bc 8FBFFFFF .word -16497
2581 02c0 8080FFFF .word -32640
2582 02c4 02040000 .word 1026
2583 02c8 8F8FFFFF .word -28785
2584 02cc C080FFFF .word -32576
2585 02d0 BF8FFFFF .word -28737
2586 02d4 80C0FFFF .word -16256
2587 .LBE89:
2588 .cfi_endproc
2589 .LFE50:
2591 .section .text.USB_ReadPMA,"ax",%progbits
2592 .align 1
2593 .global USB_ReadPMA
2594 .syntax unified
2595 .code 16
2596 .thumb_func
2597 .fpu softvfp
2599 USB_ReadPMA:
2600 .LFB69:
823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** /**
825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @brief Copy a buffer from user memory area to packet memory area (PMA)
826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param USBx: USB peripheral instance register address.
827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param pbUsrBuf pointer to user memory area.
828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param wPMABufAddr address into PMA.
829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @param wNBytes: no. of bytes to be copied.
830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** * @retval None
831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** */
832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** void USB_ReadPMA(USB_TypeDef *USBx, uint8_t *pbUsrBuf, uint16_t wPMABufAddr, uint16_t wNBytes)
833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
2601 .loc 1 833 0 is_stmt 1
2602 .cfi_startproc
2603 @ args = 0, pretend = 0, frame = 0
2604 @ frame_needed = 0, uses_anonymous_args = 0
2605 .LVL348:
2606 0000 30B5 push {r4, r5, lr}
2607 .LCFI8:
2608 .cfi_def_cfa_offset 12
2609 .cfi_offset 4, -12
2610 .cfi_offset 5, -8
2611 .cfi_offset 14, -4
834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint32_t n = (uint32_t)wNBytes >> 1;
2612 .loc 1 834 0
2613 0002 5D08 lsrs r5, r3, #1
2614 .LVL349:
835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint32_t BaseAddr = (uint32_t)USBx;
836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint32_t i, temp;
837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** __IO uint16_t *pdwVal;
838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** uint8_t *pBuf = pbUsrBuf;
839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pdwVal = (__IO uint16_t *)(BaseAddr + 0x400U + ((uint32_t)wPMABufAddr * PMA_ACCESS));
2615 .loc 1 840 0
2616 0004 1218 adds r2, r2, r0
2617 .LVL350:
2618 0006 8020 movs r0, #128
ARM GAS /tmp/ccalJhl3.s page 63
2619 .LVL351:
2620 0008 C000 lsls r0, r0, #3
2621 000a 8446 mov ip, r0
2622 000c 6244 add r2, r2, ip
2623 .LVL352:
841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** for (i = n; i != 0U; i--)
2624 .loc 1 842 0
2625 000e 07E0 b .L133
2626 .LVL353:
2627 .L134:
843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** temp = *(__IO uint16_t *)pdwVal;
2628 .loc 1 844 0 discriminator 3
2629 0010 1488 ldrh r4, [r2]
2630 0012 A4B2 uxth r4, r4
2631 .LVL354:
845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pdwVal++;
2632 .loc 1 845 0 discriminator 3
2633 0014 0232 adds r2, r2, #2
2634 .LVL355:
846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** *pBuf = (uint8_t)((temp >> 0) & 0xFFU);
2635 .loc 1 846 0 discriminator 3
2636 0016 0C70 strb r4, [r1]
2637 .LVL356:
847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pBuf++;
848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** *pBuf = (uint8_t)((temp >> 8) & 0xFFU);
2638 .loc 1 848 0 discriminator 3
2639 0018 240A lsrs r4, r4, #8
2640 .LVL357:
2641 001a 4C70 strb r4, [r1, #1]
849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pBuf++;
2642 .loc 1 849 0 discriminator 3
2643 001c 0231 adds r1, r1, #2
2644 .LVL358:
842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
2645 .loc 1 842 0 discriminator 3
2646 001e 013D subs r5, r5, #1
2647 .LVL359:
2648 .L133:
842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
2649 .loc 1 842 0 is_stmt 0 discriminator 1
2650 0020 002D cmp r5, #0
2651 0022 F5D1 bne .L134
850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** #if PMA_ACCESS > 1U
852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** pdwVal++;
853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** #endif
854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c ****
856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** if ((wNBytes % 2U) != 0U)
2652 .loc 1 856 0 is_stmt 1
2653 0024 DB07 lsls r3, r3, #31
2654 0026 01D5 bpl .L132
2655 .LVL360:
857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** {
858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** temp = *pdwVal;
ARM GAS /tmp/ccalJhl3.s page 64
2656 .loc 1 858 0
2657 0028 1388 ldrh r3, [r2]
2658 .LVL361:
859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** *pBuf = (uint8_t)((temp >> 0) & 0xFFU);
2659 .loc 1 859 0
2660 002a 0B70 strb r3, [r1]
2661 .LVL362:
2662 .L132:
860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_ll_usb.c **** }
2663 .loc 1 861 0
2664 @ sp needed
2665 .LVL363:
2666 002c 30BD pop {r4, r5, pc}
2667 .cfi_endproc
2668 .LFE69:
2670 .text
2671 .Letext0:
2672 .file 2 "/usr/include/newlib/machine/_default_types.h"
2673 .file 3 "/usr/include/newlib/sys/_stdint.h"
2674 .file 4 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h"
2675 .file 5 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f072xb.h"
2676 .file 6 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h"
2677 .file 7 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_usb.h"
2678 .file 8 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h"
ARM GAS /tmp/ccalJhl3.s page 65
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32f0xx_ll_usb.c
/tmp/ccalJhl3.s:16 .text.USB_CoreInit:0000000000000000 $t
/tmp/ccalJhl3.s:23 .text.USB_CoreInit:0000000000000000 USB_CoreInit
/tmp/ccalJhl3.s:48 .text.USB_EnableGlobalInt:0000000000000000 $t
/tmp/ccalJhl3.s:55 .text.USB_EnableGlobalInt:0000000000000000 USB_EnableGlobalInt
/tmp/ccalJhl3.s:78 .text.USB_EnableGlobalInt:0000000000000010 $d
/tmp/ccalJhl3.s:83 .text.USB_DisableGlobalInt:0000000000000000 $t
/tmp/ccalJhl3.s:90 .text.USB_DisableGlobalInt:0000000000000000 USB_DisableGlobalInt
/tmp/ccalJhl3.s:112 .text.USB_DisableGlobalInt:0000000000000010 $d
/tmp/ccalJhl3.s:117 .text.USB_SetCurrentMode:0000000000000000 $t
/tmp/ccalJhl3.s:124 .text.USB_SetCurrentMode:0000000000000000 USB_SetCurrentMode
/tmp/ccalJhl3.s:141 .text.USB_DevInit:0000000000000000 $t
/tmp/ccalJhl3.s:148 .text.USB_DevInit:0000000000000000 USB_DevInit
/tmp/ccalJhl3.s:193 .text.USB_SetDevSpeed:0000000000000000 $t
/tmp/ccalJhl3.s:200 .text.USB_SetDevSpeed:0000000000000000 USB_SetDevSpeed
/tmp/ccalJhl3.s:217 .text.USB_FlushTxFifo:0000000000000000 $t
/tmp/ccalJhl3.s:224 .text.USB_FlushTxFifo:0000000000000000 USB_FlushTxFifo
/tmp/ccalJhl3.s:241 .text.USB_FlushRxFifo:0000000000000000 $t
/tmp/ccalJhl3.s:248 .text.USB_FlushRxFifo:0000000000000000 USB_FlushRxFifo
/tmp/ccalJhl3.s:265 .text.USB_ActivateEndpoint:0000000000000000 $t
/tmp/ccalJhl3.s:272 .text.USB_ActivateEndpoint:0000000000000000 USB_ActivateEndpoint
/tmp/ccalJhl3.s:891 .text.USB_ActivateEndpoint:00000000000002d0 $d
/tmp/ccalJhl3.s:908 .text.USB_DeactivateEndpoint:0000000000000000 $t
/tmp/ccalJhl3.s:915 .text.USB_DeactivateEndpoint:0000000000000000 USB_DeactivateEndpoint
/tmp/ccalJhl3.s:1220 .text.USB_DeactivateEndpoint:0000000000000158 $d
/tmp/ccalJhl3.s:1231 .text.USB_WritePacket:0000000000000000 $t
/tmp/ccalJhl3.s:1238 .text.USB_WritePacket:0000000000000000 USB_WritePacket
/tmp/ccalJhl3.s:1255 .text.USB_ReadPacket:0000000000000000 $t
/tmp/ccalJhl3.s:1262 .text.USB_ReadPacket:0000000000000000 USB_ReadPacket
/tmp/ccalJhl3.s:1279 .text.USB_EPSetStall:0000000000000000 $t
/tmp/ccalJhl3.s:1286 .text.USB_EPSetStall:0000000000000000 USB_EPSetStall
/tmp/ccalJhl3.s:1347 .text.USB_EPSetStall:0000000000000040 $d
/tmp/ccalJhl3.s:1354 .text.USB_EPClearStall:0000000000000000 $t
/tmp/ccalJhl3.s:1361 .text.USB_EPClearStall:0000000000000000 USB_EPClearStall
/tmp/ccalJhl3.s:1482 .text.USB_EPClearStall:0000000000000080 $d
/tmp/ccalJhl3.s:1492 .text.USB_StopDevice:0000000000000000 $t
/tmp/ccalJhl3.s:1499 .text.USB_StopDevice:0000000000000000 USB_StopDevice
/tmp/ccalJhl3.s:1527 .text.USB_SetDevAddress:0000000000000000 $t
/tmp/ccalJhl3.s:1534 .text.USB_SetDevAddress:0000000000000000 USB_SetDevAddress
/tmp/ccalJhl3.s:1559 .text.USB_DevConnect:0000000000000000 $t
/tmp/ccalJhl3.s:1566 .text.USB_DevConnect:0000000000000000 USB_DevConnect
/tmp/ccalJhl3.s:1589 .text.USB_DevConnect:0000000000000010 $d
/tmp/ccalJhl3.s:1594 .text.USB_DevDisconnect:0000000000000000 $t
/tmp/ccalJhl3.s:1601 .text.USB_DevDisconnect:0000000000000000 USB_DevDisconnect
/tmp/ccalJhl3.s:1624 .text.USB_ReadInterrupts:0000000000000000 $t
/tmp/ccalJhl3.s:1631 .text.USB_ReadInterrupts:0000000000000000 USB_ReadInterrupts
/tmp/ccalJhl3.s:1652 .text.USB_ReadDevAllOutEpInterrupt:0000000000000000 $t
/tmp/ccalJhl3.s:1659 .text.USB_ReadDevAllOutEpInterrupt:0000000000000000 USB_ReadDevAllOutEpInterrupt
/tmp/ccalJhl3.s:1676 .text.USB_ReadDevAllInEpInterrupt:0000000000000000 $t
/tmp/ccalJhl3.s:1683 .text.USB_ReadDevAllInEpInterrupt:0000000000000000 USB_ReadDevAllInEpInterrupt
/tmp/ccalJhl3.s:1700 .text.USB_ReadDevOutEPInterrupt:0000000000000000 $t
/tmp/ccalJhl3.s:1707 .text.USB_ReadDevOutEPInterrupt:0000000000000000 USB_ReadDevOutEPInterrupt
/tmp/ccalJhl3.s:1724 .text.USB_ReadDevInEPInterrupt:0000000000000000 $t
/tmp/ccalJhl3.s:1731 .text.USB_ReadDevInEPInterrupt:0000000000000000 USB_ReadDevInEPInterrupt
/tmp/ccalJhl3.s:1748 .text.USB_ClearInterrupts:0000000000000000 $t
/tmp/ccalJhl3.s:1755 .text.USB_ClearInterrupts:0000000000000000 USB_ClearInterrupts
ARM GAS /tmp/ccalJhl3.s page 66
/tmp/ccalJhl3.s:1770 .text.USB_EP0_OutStart:0000000000000000 $t
/tmp/ccalJhl3.s:1777 .text.USB_EP0_OutStart:0000000000000000 USB_EP0_OutStart
/tmp/ccalJhl3.s:1794 .text.USB_ActivateRemoteWakeup:0000000000000000 $t
/tmp/ccalJhl3.s:1801 .text.USB_ActivateRemoteWakeup:0000000000000000 USB_ActivateRemoteWakeup
/tmp/ccalJhl3.s:1824 .text.USB_DeActivateRemoteWakeup:0000000000000000 $t
/tmp/ccalJhl3.s:1831 .text.USB_DeActivateRemoteWakeup:0000000000000000 USB_DeActivateRemoteWakeup
/tmp/ccalJhl3.s:1854 .text.USB_WritePMA:0000000000000000 $t
/tmp/ccalJhl3.s:1861 .text.USB_WritePMA:0000000000000000 USB_WritePMA
/tmp/ccalJhl3.s:1922 .text.USB_EPStartXfer:0000000000000000 $t
/tmp/ccalJhl3.s:1929 .text.USB_EPStartXfer:0000000000000000 USB_EPStartXfer
/tmp/ccalJhl3.s:2577 .text.USB_EPStartXfer:00000000000002b0 $d
/tmp/ccalJhl3.s:2592 .text.USB_ReadPMA:0000000000000000 $t
/tmp/ccalJhl3.s:2599 .text.USB_ReadPMA:0000000000000000 USB_ReadPMA
NO UNDEFINED SYMBOLS