From 39e8d95245bb60f13147c15389ec4472f115f575 Mon Sep 17 00:00:00 2001 From: JanHenrik Date: Wed, 1 Apr 2020 02:37:51 +0200 Subject: hid docu --- hid-dials/build/usbd_hid.lst | 1578 ------------------------------------------ 1 file changed, 1578 deletions(-) delete mode 100644 hid-dials/build/usbd_hid.lst (limited to 'hid-dials/build/usbd_hid.lst') diff --git a/hid-dials/build/usbd_hid.lst b/hid-dials/build/usbd_hid.lst deleted file mode 100644 index fe51ad7..0000000 --- a/hid-dials/build/usbd_hid.lst +++ /dev/null @@ -1,1578 +0,0 @@ -ARM GAS /tmp/ccE5JjBw.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 "usbd_hid.c" - 12 .text - 13 .Ltext0: - 14 .cfi_sections .debug_frame - 15 .section .text.USBD_HID_GetCfgDesc,"ax",%progbits - 16 .align 1 - 17 .syntax unified - 18 .code 16 - 19 .thumb_func - 20 .fpu softvfp - 22 USBD_HID_GetCfgDesc: - 23 .LFB48: - 24 .file 1 "Src/usbd_hid.c" - 1:Src/usbd_hid.c **** /** - 2:Src/usbd_hid.c **** ****************************************************************************** - 3:Src/usbd_hid.c **** * @file usbd_hid.c - 4:Src/usbd_hid.c **** * @author MCD Application Team - 5:Src/usbd_hid.c **** * @version V2.4.2 - 6:Src/usbd_hid.c **** * @date 11-December-2015 - 7:Src/usbd_hid.c **** * @brief This file provides the HID core functions. - 8:Src/usbd_hid.c **** * - 9:Src/usbd_hid.c **** * @verbatim - 10:Src/usbd_hid.c **** * - 11:Src/usbd_hid.c **** * =================================================================== - 12:Src/usbd_hid.c **** * HID Class Description - 13:Src/usbd_hid.c **** * =================================================================== - 14:Src/usbd_hid.c **** * This module manages the HID class V1.11 following the "Device Class Definition - 15:Src/usbd_hid.c **** * for Human Interface Devices (HID) Version 1.11 Jun 27, 2001". - 16:Src/usbd_hid.c **** * This driver implements the following aspects of the specification: - 17:Src/usbd_hid.c **** * - The Boot Interface Subclass - 18:Src/usbd_hid.c **** * - The Mouse protocol - 19:Src/usbd_hid.c **** * - Usage Page : Generic Desktop - 20:Src/usbd_hid.c **** * - Usage : Joystick - 21:Src/usbd_hid.c **** * - Collection : Application - 22:Src/usbd_hid.c **** * - 23:Src/usbd_hid.c **** * @note In HS mode and when the DMA is used, all variables and data structures - 24:Src/usbd_hid.c **** * dealing with the DMA during the transaction process should be 32-bit aligned. - 25:Src/usbd_hid.c **** * - 26:Src/usbd_hid.c **** * - 27:Src/usbd_hid.c **** * @endverbatim - 28:Src/usbd_hid.c **** * - 29:Src/usbd_hid.c **** ****************************************************************************** - 30:Src/usbd_hid.c **** * @attention - 31:Src/usbd_hid.c **** * - 32:Src/usbd_hid.c **** *

© COPYRIGHT 2015 STMicroelectronics

- 33:Src/usbd_hid.c **** * - 34:Src/usbd_hid.c **** * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); - ARM GAS /tmp/ccE5JjBw.s page 2 - - - 35:Src/usbd_hid.c **** * You may not use this file except in compliance with the License. - 36:Src/usbd_hid.c **** * You may obtain a copy of the License at: - 37:Src/usbd_hid.c **** * - 38:Src/usbd_hid.c **** * http://www.st.com/software_license_agreement_liberty_v2 - 39:Src/usbd_hid.c **** * - 40:Src/usbd_hid.c **** * Unless required by applicable law or agreed to in writing, software - 41:Src/usbd_hid.c **** * distributed under the License is distributed on an "AS IS" BASIS, - 42:Src/usbd_hid.c **** * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - 43:Src/usbd_hid.c **** * See the License for the specific language governing permissions and - 44:Src/usbd_hid.c **** * limitations under the License. - 45:Src/usbd_hid.c **** * - 46:Src/usbd_hid.c **** ****************************************************************************** - 47:Src/usbd_hid.c **** */ - 48:Src/usbd_hid.c **** - 49:Src/usbd_hid.c **** /* Includes ------------------------------------------------------------------*/ - 50:Src/usbd_hid.c **** #include "usbd_hid.h" - 51:Src/usbd_hid.c **** #include "usbd_desc.h" - 52:Src/usbd_hid.c **** #include "usbd_ctlreq.h" - 53:Src/usbd_hid.c **** - 54:Src/usbd_hid.c **** - 55:Src/usbd_hid.c **** /** @addtogroup STM32_USB_DEVICE_LIBRARY - 56:Src/usbd_hid.c **** * @{ - 57:Src/usbd_hid.c **** */ - 58:Src/usbd_hid.c **** - 59:Src/usbd_hid.c **** - 60:Src/usbd_hid.c **** /** @defgroup USBD_HID - 61:Src/usbd_hid.c **** * @brief usbd core module - 62:Src/usbd_hid.c **** * @{ - 63:Src/usbd_hid.c **** */ - 64:Src/usbd_hid.c **** - 65:Src/usbd_hid.c **** /** @defgroup USBD_HID_Private_TypesDefinitions - 66:Src/usbd_hid.c **** * @{ - 67:Src/usbd_hid.c **** */ - 68:Src/usbd_hid.c **** /** - 69:Src/usbd_hid.c **** * @} - 70:Src/usbd_hid.c **** */ - 71:Src/usbd_hid.c **** - 72:Src/usbd_hid.c **** - 73:Src/usbd_hid.c **** /** @defgroup USBD_HID_Private_Defines - 74:Src/usbd_hid.c **** * @{ - 75:Src/usbd_hid.c **** */ - 76:Src/usbd_hid.c **** - 77:Src/usbd_hid.c **** /** - 78:Src/usbd_hid.c **** * @} - 79:Src/usbd_hid.c **** */ - 80:Src/usbd_hid.c **** - 81:Src/usbd_hid.c **** - 82:Src/usbd_hid.c **** /** @defgroup USBD_HID_Private_Macros - 83:Src/usbd_hid.c **** * @{ - 84:Src/usbd_hid.c **** */ - 85:Src/usbd_hid.c **** /** - 86:Src/usbd_hid.c **** * @} - 87:Src/usbd_hid.c **** */ - 88:Src/usbd_hid.c **** - 89:Src/usbd_hid.c **** - 90:Src/usbd_hid.c **** - 91:Src/usbd_hid.c **** - ARM GAS /tmp/ccE5JjBw.s page 3 - - - 92:Src/usbd_hid.c **** /** @defgroup USBD_HID_Private_FunctionPrototypes - 93:Src/usbd_hid.c **** * @{ - 94:Src/usbd_hid.c **** */ - 95:Src/usbd_hid.c **** - 96:Src/usbd_hid.c **** - 97:Src/usbd_hid.c **** static uint8_t USBD_HID_Init (USBD_HandleTypeDef *pdev, - 98:Src/usbd_hid.c **** uint8_t cfgidx); - 99:Src/usbd_hid.c **** - 100:Src/usbd_hid.c **** static uint8_t USBD_HID_DeInit (USBD_HandleTypeDef *pdev, - 101:Src/usbd_hid.c **** uint8_t cfgidx); - 102:Src/usbd_hid.c **** - 103:Src/usbd_hid.c **** static uint8_t USBD_HID_Setup (USBD_HandleTypeDef *pdev, - 104:Src/usbd_hid.c **** USBD_SetupReqTypedef *req); - 105:Src/usbd_hid.c **** - 106:Src/usbd_hid.c **** static uint8_t *USBD_HID_GetCfgDesc (uint16_t *length); - 107:Src/usbd_hid.c **** - 108:Src/usbd_hid.c **** static uint8_t *USBD_HID_GetDeviceQualifierDesc (uint16_t *length); - 109:Src/usbd_hid.c **** - 110:Src/usbd_hid.c **** static uint8_t USBD_HID_DataIn (USBD_HandleTypeDef *pdev, uint8_t epnum); - 111:Src/usbd_hid.c **** - 112:Src/usbd_hid.c **** - 113:Src/usbd_hid.c **** static uint8_t USBD_HID_DataOut (USBD_HandleTypeDef *pdev, uint8_t epnum); - 114:Src/usbd_hid.c **** /** - 115:Src/usbd_hid.c **** * @} - 116:Src/usbd_hid.c **** */ - 117:Src/usbd_hid.c **** - 118:Src/usbd_hid.c **** /** @defgroup USBD_HID_Private_Variables - 119:Src/usbd_hid.c **** * @{ - 120:Src/usbd_hid.c **** */ - 121:Src/usbd_hid.c **** - 122:Src/usbd_hid.c **** USBD_ClassTypeDef USBD_HID = - 123:Src/usbd_hid.c **** { - 124:Src/usbd_hid.c **** USBD_HID_Init, - 125:Src/usbd_hid.c **** USBD_HID_DeInit, - 126:Src/usbd_hid.c **** USBD_HID_Setup, - 127:Src/usbd_hid.c **** NULL, /*EP0_TxSent*/ - 128:Src/usbd_hid.c **** NULL, /*EP0_RxReady*/ - 129:Src/usbd_hid.c **** USBD_HID_DataIn, /*DataIn*/ - 130:Src/usbd_hid.c **** USBD_HID_DataOut, /*DataOut*/ - 131:Src/usbd_hid.c **** NULL, /*SOF */ - 132:Src/usbd_hid.c **** NULL, - 133:Src/usbd_hid.c **** NULL, - 134:Src/usbd_hid.c **** USBD_HID_GetCfgDesc, - 135:Src/usbd_hid.c **** USBD_HID_GetCfgDesc, - 136:Src/usbd_hid.c **** USBD_HID_GetCfgDesc, - 137:Src/usbd_hid.c **** USBD_HID_GetDeviceQualifierDesc, - 138:Src/usbd_hid.c **** }; - 139:Src/usbd_hid.c **** - 140:Src/usbd_hid.c **** /* USB HID device Configuration Descriptor */ - 141:Src/usbd_hid.c **** __ALIGN_BEGIN static uint8_t USBD_HID_CfgDesc[USB_HID_CONFIG_DESC_SIZ] __ALIGN_END = - 142:Src/usbd_hid.c **** { - 143:Src/usbd_hid.c **** 0x09, /* bLength: Configuration Descriptor size */ - 144:Src/usbd_hid.c **** USB_DESC_TYPE_CONFIGURATION, /* bDescriptorType: Configuration */ - 145:Src/usbd_hid.c **** USB_HID_CONFIG_DESC_SIZ, - 146:Src/usbd_hid.c **** /* wTotalLength: Bytes returned */ - 147:Src/usbd_hid.c **** 0x00, - 148:Src/usbd_hid.c **** 0x01, /*bNumInterfaces: 1 interface*/ - ARM GAS /tmp/ccE5JjBw.s page 4 - - - 149:Src/usbd_hid.c **** 0x01, /*bConfigurationValue: Configuration value*/ - 150:Src/usbd_hid.c **** 0x00, /*iConfiguration: Index of string descriptor describing - 151:Src/usbd_hid.c **** the configuration*/ - 152:Src/usbd_hid.c **** 0xE0, /*bmAttributes: bus powered and Support Remote Wake-up */ - 153:Src/usbd_hid.c **** 0x32, /*MaxPower 100 mA: this current is used for detecting Vbus*/ - 154:Src/usbd_hid.c **** - 155:Src/usbd_hid.c **** /************** Descriptor of Joystick Mouse interface ****************/ - 156:Src/usbd_hid.c **** /* 09 */ - 157:Src/usbd_hid.c **** 0x09, /*bLength: Interface Descriptor size*/ - 158:Src/usbd_hid.c **** USB_DESC_TYPE_INTERFACE,/*bDescriptorType: Interface descriptor type*/ - 159:Src/usbd_hid.c **** 0x00, /*bInterfaceNumber: Number of Interface*/ - 160:Src/usbd_hid.c **** 0x00, /*bAlternateSetting: Alternate setting*/ - 161:Src/usbd_hid.c **** HID_NUM_EP, - 162:Src/usbd_hid.c **** - 163:Src/usbd_hid.c **** 0x03, /*bInterfaceClass: HID*/ - 164:Src/usbd_hid.c **** - 165:Src/usbd_hid.c **** 0x01, /*bInterfaceSubClass : 1=BOOT, 0=no boot*/ - 166:Src/usbd_hid.c **** 0x01, /*nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse*/ - 167:Src/usbd_hid.c **** 0, /*iInterface: Index of string descriptor*/ - 168:Src/usbd_hid.c **** /******************** Descriptor of Joystick Mouse HID ********************/ - 169:Src/usbd_hid.c **** /* 18 */ - 170:Src/usbd_hid.c **** 0x09, /*bLength: HID Descriptor size*/ - 171:Src/usbd_hid.c **** HID_DESCRIPTOR_TYPE, /*bDescriptorType: HID*/ - 172:Src/usbd_hid.c **** 0x11, /*bcdHID: HID Class Spec release number*/ - 173:Src/usbd_hid.c **** 0x01, - 174:Src/usbd_hid.c **** 0x00, /*bCountryCode: Hardware target country*/ - 175:Src/usbd_hid.c **** 0x01, /*bNumDescriptors: Number of HID class descriptors to follow*/ - 176:Src/usbd_hid.c **** 0x22, /*bDescriptorType*/ - 177:Src/usbd_hid.c **** HID_REPORT_DESC_SIZE,/*wItemLength: Total length of Report descriptor*/ - 178:Src/usbd_hid.c **** 0x00, - 179:Src/usbd_hid.c **** /******************** Descriptor of Mouse endpoint ********************/ - 180:Src/usbd_hid.c **** /* 27 */ - 181:Src/usbd_hid.c **** 0x07, /*bLength: Endpoint Descriptor size*/ - 182:Src/usbd_hid.c **** USB_DESC_TYPE_ENDPOINT, /*bDescriptorType:*/ - 183:Src/usbd_hid.c **** - 184:Src/usbd_hid.c **** HID_EPIN_ADDR, /*bEndpointAddress: Endpoint Address (IN)*/ - 185:Src/usbd_hid.c **** 0x03, /*bmAttributes: Interrupt endpoint*/ - 186:Src/usbd_hid.c **** HID_EPIN_SIZE, /*wMaxPacketSize: 4 Byte max */ - 187:Src/usbd_hid.c **** 0x00, - 188:Src/usbd_hid.c **** HID_FS_BINTERVAL, /*bInterval: Polling Interval (10 ms)*/ - 189:Src/usbd_hid.c **** /* 34 */ - 190:Src/usbd_hid.c **** #if HID_LED_SUPPORT - 191:Src/usbd_hid.c **** 0x07, /*bLength: Endpoint Descriptor size*/ - 192:Src/usbd_hid.c **** USB_DESC_TYPE_ENDPOINT, /*bDescriptorType:*/ - 193:Src/usbd_hid.c **** - 194:Src/usbd_hid.c **** HID_EPOUT_ADDR, /*bEndpointAddress: Endpoint Address (IN)*/ - 195:Src/usbd_hid.c **** 0x03, /*bmAttributes: Interrupt endpoint*/ - 196:Src/usbd_hid.c **** HID_EPOUT_SIZE, /*wMaxPacketSize: 4 Byte max */ - 197:Src/usbd_hid.c **** 0x00, - 198:Src/usbd_hid.c **** HID_FS_BINTERVAL, /*bInterval: Polling Interval (10 ms)*/ - 199:Src/usbd_hid.c **** #endif - 200:Src/usbd_hid.c **** /* 41 */ - 201:Src/usbd_hid.c **** - 202:Src/usbd_hid.c **** } ; - 203:Src/usbd_hid.c **** - 204:Src/usbd_hid.c **** /* USB HID device Configuration Descriptor */ - 205:Src/usbd_hid.c **** __ALIGN_BEGIN static uint8_t USBD_HID_Desc[USB_HID_DESC_SIZ] __ALIGN_END = - ARM GAS /tmp/ccE5JjBw.s page 5 - - - 206:Src/usbd_hid.c **** { - 207:Src/usbd_hid.c **** /* 18 */ - 208:Src/usbd_hid.c **** 0x09, /*bLength: HID Descriptor size*/ - 209:Src/usbd_hid.c **** HID_DESCRIPTOR_TYPE, /*bDescriptorType: HID*/ - 210:Src/usbd_hid.c **** 0x11, /*bcdHID: HID Class Spec release number*/ - 211:Src/usbd_hid.c **** 0x01, - 212:Src/usbd_hid.c **** 0x00, /*bCountryCode: Hardware target country*/ - 213:Src/usbd_hid.c **** 0x01, /*bNumDescriptors: Number of HID class descriptors to follow*/ - 214:Src/usbd_hid.c **** 0x22, /*bDescriptorType*/ - 215:Src/usbd_hid.c **** HID_REPORT_DESC_SIZE,/*wItemLength: Total length of Report descriptor*/ - 216:Src/usbd_hid.c **** 0x00, - 217:Src/usbd_hid.c **** }; - 218:Src/usbd_hid.c **** - 219:Src/usbd_hid.c **** /* USB Standard Device Descriptor */ - 220:Src/usbd_hid.c **** __ALIGN_BEGIN static uint8_t USBD_HID_DeviceQualifierDesc[USB_LEN_DEV_QUALIFIER_DESC] __ALIGN_END - 221:Src/usbd_hid.c **** { - 222:Src/usbd_hid.c **** USB_LEN_DEV_QUALIFIER_DESC, - 223:Src/usbd_hid.c **** USB_DESC_TYPE_DEVICE_QUALIFIER, - 224:Src/usbd_hid.c **** 0x00, - 225:Src/usbd_hid.c **** 0x02, - 226:Src/usbd_hid.c **** 0x00, - 227:Src/usbd_hid.c **** 0x00, - 228:Src/usbd_hid.c **** 0x00, - 229:Src/usbd_hid.c **** 0x40, - 230:Src/usbd_hid.c **** 0x01, - 231:Src/usbd_hid.c **** 0x00, - 232:Src/usbd_hid.c **** }; - 233:Src/usbd_hid.c **** - 234:Src/usbd_hid.c **** __ALIGN_BEGIN static uint8_t HID_ReportDesc[HID_REPORT_DESC_SIZE] __ALIGN_END = - 235:Src/usbd_hid.c **** { - 236:Src/usbd_hid.c **** //copy from arduino code https://github.com/arduino-libraries/Keyboard/blob/master/src/Keyb - 237:Src/usbd_hid.c **** - 238:Src/usbd_hid.c **** 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) - 239:Src/usbd_hid.c **** 0x09, 0x06, // Usage (Keyboard) - 240:Src/usbd_hid.c **** 0xA1, 0x01, // Collection (Application) - 241:Src/usbd_hid.c **** - 242:Src/usbd_hid.c **** 0x85, 0x01, // Report ID (1) - 243:Src/usbd_hid.c **** - 244:Src/usbd_hid.c **** 0x05, 0x07, // Usage Page (Kbrd/Keypad) - 245:Src/usbd_hid.c **** 0x19, 0xE0, // Usage Minimum (0xE0) - 246:Src/usbd_hid.c **** 0x29, 0xE7, // Usage Maximum (0xE7) - 247:Src/usbd_hid.c **** - 248:Src/usbd_hid.c **** // it seam we missed the shit ctrl etc .. here - 249:Src/usbd_hid.c **** 0x15, 0x00, // Logical Minimum (0) - 250:Src/usbd_hid.c **** 0x25, 0x01, // Logical Maximum (1) - 251:Src/usbd_hid.c **** 0x75, 0x01, // Report Size (1) - 252:Src/usbd_hid.c **** 0x95, 0x08, // Report Count (8) - 253:Src/usbd_hid.c **** 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position - 254:Src/usbd_hid.c **** 0x95, 0x01, // Report Count (1) - 255:Src/usbd_hid.c **** 0x75, 0x08, // Report Size (8) - 256:Src/usbd_hid.c **** 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Positio - 257:Src/usbd_hid.c **** #if HID_LED_SUPPORT - 258:Src/usbd_hid.c **** // --------------------- output report for LED - 259:Src/usbd_hid.c **** 0x95, 0x05, // REPORT_COUNT (5) - 260:Src/usbd_hid.c **** 0x75, 0x01, // REPORT_SIZE (1) - 261:Src/usbd_hid.c **** 0x05, 0x08, // USAGE_PAGE (LEDs) - 262:Src/usbd_hid.c **** 0x19, 0x01, // USAGE_MINIMUM (Num Lock) - ARM GAS /tmp/ccE5JjBw.s page 6 - - - 263:Src/usbd_hid.c **** 0x29, 0x05, // USAGE_MAXIMUM (Kana) - 264:Src/usbd_hid.c **** 0x91, 0x02, // OUTPUT (Data,Var,Abs) - 265:Src/usbd_hid.c **** 0x95, 0x01, // REPORT_COUNT (1) - 266:Src/usbd_hid.c **** 0x75, 0x03, // REPORT_SIZE (3) - 267:Src/usbd_hid.c **** 0x91, 0x03, // OUTPUT (Cnst,Var,Abs) - 268:Src/usbd_hid.c **** #endif - 269:Src/usbd_hid.c **** 0x95, 0x06, // Report Count (6) - 270:Src/usbd_hid.c **** 0x75, 0x08, // Report Size (8) - 271:Src/usbd_hid.c **** 0x15, 0x00, // Logical Minimum (0) - 272:Src/usbd_hid.c **** 0x25, 0x65, // Logical Maximum (101) - 273:Src/usbd_hid.c **** 0x05, 0x07, // Usage Page (Kbrd/Keypad) - 274:Src/usbd_hid.c **** 0x19, 0x00, // Usage Minimum (0x00) - 275:Src/usbd_hid.c **** 0x29, 0x65, // Usage Maximum (0x65) - 276:Src/usbd_hid.c **** 0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Positi - 277:Src/usbd_hid.c **** 0xC0, // End Collection - 278:Src/usbd_hid.c **** - 279:Src/usbd_hid.c **** // 47 bytes - 280:Src/usbd_hid.c **** #if HID_MEDIA_REPORT - 281:Src/usbd_hid.c **** //help from http://www.microchip.com/forums/m618147.aspx - 282:Src/usbd_hid.c **** // this way of describing and sending media control is convenient - 283:Src/usbd_hid.c **** // short descriptor that permit all kidn meda by sending "usage" code - 284:Src/usbd_hid.c **** // see usb hid spec for full list - 285:Src/usbd_hid.c **** // it is possible to define one media key per bit it requires more space - 286:Src/usbd_hid.c **** // for descripotor and report ending is tighlyu couple to decriptor - 287:Src/usbd_hid.c **** // so it is not as convenient - 288:Src/usbd_hid.c **** // one such working code can be find here https://github.com/markwj/hidmedia/blob/master/hi - 289:Src/usbd_hid.c **** // - 290:Src/usbd_hid.c **** - 291:Src/usbd_hid.c **** 0x05, 0x0C, // Usage Page (Consumer) - 292:Src/usbd_hid.c **** 0x09, 0x01, // Usage (Consumer Control) - 293:Src/usbd_hid.c **** 0xA1, 0x01, // Collection (Application) - 294:Src/usbd_hid.c **** 0x85, HID_MEDIA_REPORT, // Report ID (VOLUME_REPORT ) - 295:Src/usbd_hid.c **** 0x19, 0x00, // Usage Minimum (Unassigned) - 296:Src/usbd_hid.c **** 0x2A, 0x3C, 0x02, // Usage Maximum (AC Format) - 297:Src/usbd_hid.c **** 0x15, 0x00, // Logical Minimum (0) - 298:Src/usbd_hid.c **** 0x26, 0x3C, 0x02, // Logical Maximum (572) - 299:Src/usbd_hid.c **** 0x95, 0x01, // Report Count (1) - 300:Src/usbd_hid.c **** 0x75, 0x10, // Report Size (16) - 301:Src/usbd_hid.c **** 0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Positi - 302:Src/usbd_hid.c **** 0xC0, // End Collection - 303:Src/usbd_hid.c **** - 304:Src/usbd_hid.c **** // how to format the 3 byte report - 305:Src/usbd_hid.c **** // byte 0 report ID = 0x02 (VOLUME_REPORT) - 306:Src/usbd_hid.c **** // byte 1 media code for ex VOL_UP 0xE9 , VOL_DONW 0xEA ... etc - 307:Src/usbd_hid.c **** // byte 2 0x00 - 308:Src/usbd_hid.c **** // a second report with 0 code shal be send to avoid "key repaeat" - 309:Src/usbd_hid.c **** - 310:Src/usbd_hid.c **** // 25 bytes - 311:Src/usbd_hid.c **** #endif - 312:Src/usbd_hid.c **** }; - 313:Src/usbd_hid.c **** - 314:Src/usbd_hid.c **** uint32_t nOutData; - 315:Src/usbd_hid.c **** uint8_t OutDataBuffer[HID_EPOUT_SIZE]; // local copy for user (usb fly at same time) - 316:Src/usbd_hid.c **** uint8_t OutData[HID_EPOUT_SIZE]; // live usb buffer - 317:Src/usbd_hid.c **** - 318:Src/usbd_hid.c **** #ifdef DEBUG - 319:Src/usbd_hid.c **** - ARM GAS /tmp/ccE5JjBw.s page 7 - - - 320:Src/usbd_hid.c **** uint8_t OutDataLog[8*HID_EPOUT_SIZE]; - 321:Src/usbd_hid.c **** #endif - 322:Src/usbd_hid.c **** /** - 323:Src/usbd_hid.c **** * @} - 324:Src/usbd_hid.c **** */ - 325:Src/usbd_hid.c **** - 326:Src/usbd_hid.c **** /** @defgroup USBD_HID_Private_Functions - 327:Src/usbd_hid.c **** * @{ - 328:Src/usbd_hid.c **** */ - 329:Src/usbd_hid.c **** - 330:Src/usbd_hid.c **** /** - 331:Src/usbd_hid.c **** * @brief USBD_HID_Init - 332:Src/usbd_hid.c **** * Initialize the HID interface - 333:Src/usbd_hid.c **** * @param pdev: device instance - 334:Src/usbd_hid.c **** * @param cfgidx: Configuration index - 335:Src/usbd_hid.c **** * @retval status - 336:Src/usbd_hid.c **** */ - 337:Src/usbd_hid.c **** static uint8_t USBD_HID_Init (USBD_HandleTypeDef *pdev, - 338:Src/usbd_hid.c **** uint8_t cfgidx) - 339:Src/usbd_hid.c **** { - 340:Src/usbd_hid.c **** uint8_t ret = 0; - 341:Src/usbd_hid.c **** - 342:Src/usbd_hid.c **** /* Open EP IN */ - 343:Src/usbd_hid.c **** USBD_LL_OpenEP(pdev, - 344:Src/usbd_hid.c **** HID_EPIN_ADDR, - 345:Src/usbd_hid.c **** USBD_EP_TYPE_INTR, - 346:Src/usbd_hid.c **** HID_EPIN_SIZE); - 347:Src/usbd_hid.c **** #if HID_LED_SUPPORT - 348:Src/usbd_hid.c **** USBD_LL_OpenEP(pdev, - 349:Src/usbd_hid.c **** HID_EPOUT_ADDR, - 350:Src/usbd_hid.c **** USBD_EP_TYPE_INTR, - 351:Src/usbd_hid.c **** HID_EPOUT_SIZE); - 352:Src/usbd_hid.c **** #endif - 353:Src/usbd_hid.c **** - 354:Src/usbd_hid.c **** pdev->pClassData = USBD_malloc(sizeof (USBD_HID_HandleTypeDef)); - 355:Src/usbd_hid.c **** - 356:Src/usbd_hid.c **** if(pdev->pClassData == NULL) - 357:Src/usbd_hid.c **** { - 358:Src/usbd_hid.c **** ret = 1; - 359:Src/usbd_hid.c **** } - 360:Src/usbd_hid.c **** else - 361:Src/usbd_hid.c **** { - 362:Src/usbd_hid.c **** #if HID_LED_SUPPORT - 363:Src/usbd_hid.c **** USBD_LL_PrepareReceive(pdev, HID_EPOUT_ADDR, OutData, HID_EPOUT_SIZE); - 364:Src/usbd_hid.c **** #endif - 365:Src/usbd_hid.c **** ((USBD_HID_HandleTypeDef *)pdev->pClassData)->state = HID_IDLE; - 366:Src/usbd_hid.c **** - 367:Src/usbd_hid.c **** } - 368:Src/usbd_hid.c **** return ret; - 369:Src/usbd_hid.c **** } - 370:Src/usbd_hid.c **** - 371:Src/usbd_hid.c **** /** - 372:Src/usbd_hid.c **** * @brief USBD_HID_Init - 373:Src/usbd_hid.c **** * DeInitialize the HID layer - 374:Src/usbd_hid.c **** * @param pdev: device instance - 375:Src/usbd_hid.c **** * @param cfgidx: Configuration index - 376:Src/usbd_hid.c **** * @retval status - ARM GAS /tmp/ccE5JjBw.s page 8 - - - 377:Src/usbd_hid.c **** */ - 378:Src/usbd_hid.c **** static uint8_t USBD_HID_DeInit (USBD_HandleTypeDef *pdev, - 379:Src/usbd_hid.c **** uint8_t cfgidx) - 380:Src/usbd_hid.c **** { - 381:Src/usbd_hid.c **** /* Close HID EPs */ - 382:Src/usbd_hid.c **** USBD_LL_CloseEP(pdev, - 383:Src/usbd_hid.c **** HID_EPIN_ADDR); - 384:Src/usbd_hid.c **** - 385:Src/usbd_hid.c **** USBD_LL_CloseEP(pdev, - 386:Src/usbd_hid.c **** HID_EPOUT_ADDR); - 387:Src/usbd_hid.c **** - 388:Src/usbd_hid.c **** /* FRee allocated memory */ - 389:Src/usbd_hid.c **** if(pdev->pClassData != NULL) - 390:Src/usbd_hid.c **** { - 391:Src/usbd_hid.c **** USBD_free(pdev->pClassData); - 392:Src/usbd_hid.c **** pdev->pClassData = NULL; - 393:Src/usbd_hid.c **** } - 394:Src/usbd_hid.c **** - 395:Src/usbd_hid.c **** return USBD_OK; - 396:Src/usbd_hid.c **** } - 397:Src/usbd_hid.c **** - 398:Src/usbd_hid.c **** /** - 399:Src/usbd_hid.c **** * @brief USBD_HID_Setup - 400:Src/usbd_hid.c **** * Handle the HID specific requests - 401:Src/usbd_hid.c **** * @param pdev: instance - 402:Src/usbd_hid.c **** * @param req: usb requests - 403:Src/usbd_hid.c **** * @retval status - 404:Src/usbd_hid.c **** */ - 405:Src/usbd_hid.c **** static uint8_t USBD_HID_Setup (USBD_HandleTypeDef *pdev, - 406:Src/usbd_hid.c **** USBD_SetupReqTypedef *req) - 407:Src/usbd_hid.c **** { - 408:Src/usbd_hid.c **** uint16_t len = 0; - 409:Src/usbd_hid.c **** uint8_t *pbuf = NULL; - 410:Src/usbd_hid.c **** USBD_HID_HandleTypeDef *hhid = (USBD_HID_HandleTypeDef*) pdev->pClassData; - 411:Src/usbd_hid.c **** - 412:Src/usbd_hid.c **** switch (req->bmRequest & USB_REQ_TYPE_MASK) - 413:Src/usbd_hid.c **** { - 414:Src/usbd_hid.c **** case USB_REQ_TYPE_CLASS : - 415:Src/usbd_hid.c **** switch (req->bRequest) - 416:Src/usbd_hid.c **** { - 417:Src/usbd_hid.c **** - 418:Src/usbd_hid.c **** - 419:Src/usbd_hid.c **** case HID_REQ_SET_PROTOCOL: - 420:Src/usbd_hid.c **** hhid->Protocol = (uint8_t)(req->wValue); - 421:Src/usbd_hid.c **** break; - 422:Src/usbd_hid.c **** - 423:Src/usbd_hid.c **** case HID_REQ_GET_PROTOCOL: - 424:Src/usbd_hid.c **** USBD_CtlSendData (pdev, - 425:Src/usbd_hid.c **** (uint8_t *)&hhid->Protocol, - 426:Src/usbd_hid.c **** 1); - 427:Src/usbd_hid.c **** break; - 428:Src/usbd_hid.c **** - 429:Src/usbd_hid.c **** case HID_REQ_SET_IDLE: - 430:Src/usbd_hid.c **** hhid->IdleState = (uint8_t)(req->wValue >> 8); - 431:Src/usbd_hid.c **** break; - 432:Src/usbd_hid.c **** - 433:Src/usbd_hid.c **** case HID_REQ_GET_IDLE: - ARM GAS /tmp/ccE5JjBw.s page 9 - - - 434:Src/usbd_hid.c **** USBD_CtlSendData (pdev, - 435:Src/usbd_hid.c **** (uint8_t *)&hhid->IdleState, - 436:Src/usbd_hid.c **** 1); - 437:Src/usbd_hid.c **** break; - 438:Src/usbd_hid.c **** - 439:Src/usbd_hid.c **** default: - 440:Src/usbd_hid.c **** USBD_CtlError (pdev, req); - 441:Src/usbd_hid.c **** return USBD_FAIL; - 442:Src/usbd_hid.c **** } - 443:Src/usbd_hid.c **** break; - 444:Src/usbd_hid.c **** - 445:Src/usbd_hid.c **** case USB_REQ_TYPE_STANDARD: - 446:Src/usbd_hid.c **** switch (req->bRequest) - 447:Src/usbd_hid.c **** { - 448:Src/usbd_hid.c **** case USB_REQ_GET_DESCRIPTOR: - 449:Src/usbd_hid.c **** if( req->wValue >> 8 == HID_REPORT_DESC) - 450:Src/usbd_hid.c **** { - 451:Src/usbd_hid.c **** len = MIN(HID_REPORT_DESC_SIZE , req->wLength); - 452:Src/usbd_hid.c **** pbuf = HID_ReportDesc; - 453:Src/usbd_hid.c **** } - 454:Src/usbd_hid.c **** else if( req->wValue >> 8 == HID_DESCRIPTOR_TYPE) - 455:Src/usbd_hid.c **** { - 456:Src/usbd_hid.c **** pbuf = USBD_HID_Desc; - 457:Src/usbd_hid.c **** len = MIN(USB_HID_DESC_SIZ , req->wLength); - 458:Src/usbd_hid.c **** } - 459:Src/usbd_hid.c **** - 460:Src/usbd_hid.c **** USBD_CtlSendData (pdev, - 461:Src/usbd_hid.c **** pbuf, - 462:Src/usbd_hid.c **** len); - 463:Src/usbd_hid.c **** - 464:Src/usbd_hid.c **** break; - 465:Src/usbd_hid.c **** - 466:Src/usbd_hid.c **** case USB_REQ_GET_INTERFACE : - 467:Src/usbd_hid.c **** USBD_CtlSendData (pdev, - 468:Src/usbd_hid.c **** (uint8_t *)&hhid->AltSetting, - 469:Src/usbd_hid.c **** 1); - 470:Src/usbd_hid.c **** break; - 471:Src/usbd_hid.c **** - 472:Src/usbd_hid.c **** case USB_REQ_SET_INTERFACE : - 473:Src/usbd_hid.c **** hhid->AltSetting = (uint8_t)(req->wValue); - 474:Src/usbd_hid.c **** break; - 475:Src/usbd_hid.c **** } - 476:Src/usbd_hid.c **** } - 477:Src/usbd_hid.c **** return USBD_OK; - 478:Src/usbd_hid.c **** } - 479:Src/usbd_hid.c **** - 480:Src/usbd_hid.c **** /** - 481:Src/usbd_hid.c **** * @brief USBD_HID_SendReport - 482:Src/usbd_hid.c **** * Send HID Report - 483:Src/usbd_hid.c **** * @param pdev: device instance - 484:Src/usbd_hid.c **** * @param buff: pointer to report - 485:Src/usbd_hid.c **** * @retval status - 486:Src/usbd_hid.c **** */ - 487:Src/usbd_hid.c **** uint8_t USBD_HID_SendReport (USBD_HandleTypeDef *pdev, - 488:Src/usbd_hid.c **** uint8_t *report, - 489:Src/usbd_hid.c **** uint16_t len) - 490:Src/usbd_hid.c **** { - ARM GAS /tmp/ccE5JjBw.s page 10 - - - 491:Src/usbd_hid.c **** USBD_HID_HandleTypeDef *hhid = (USBD_HID_HandleTypeDef*)pdev->pClassData; - 492:Src/usbd_hid.c **** - 493:Src/usbd_hid.c **** if (pdev->dev_state == USBD_STATE_CONFIGURED ) - 494:Src/usbd_hid.c **** { - 495:Src/usbd_hid.c **** if(hhid->state == HID_IDLE) - 496:Src/usbd_hid.c **** { - 497:Src/usbd_hid.c **** hhid->state = HID_BUSY; - 498:Src/usbd_hid.c **** USBD_LL_Transmit (pdev, - 499:Src/usbd_hid.c **** HID_EPIN_ADDR, - 500:Src/usbd_hid.c **** report, - 501:Src/usbd_hid.c **** len); - 502:Src/usbd_hid.c **** } - 503:Src/usbd_hid.c **** } - 504:Src/usbd_hid.c **** return USBD_OK; - 505:Src/usbd_hid.c **** } - 506:Src/usbd_hid.c **** - 507:Src/usbd_hid.c **** /** - 508:Src/usbd_hid.c **** * @brief USBD_HID_GetPollingInterval - 509:Src/usbd_hid.c **** * return polling interval from endpoint descriptor - 510:Src/usbd_hid.c **** * @param pdev: device instance - 511:Src/usbd_hid.c **** * @retval polling interval - 512:Src/usbd_hid.c **** */ - 513:Src/usbd_hid.c **** uint32_t USBD_HID_GetPollingInterval (USBD_HandleTypeDef *pdev) - 514:Src/usbd_hid.c **** { - 515:Src/usbd_hid.c **** uint32_t polling_interval = 0; - 516:Src/usbd_hid.c **** - 517:Src/usbd_hid.c **** /* HIGH-speed endpoints */ - 518:Src/usbd_hid.c **** if(pdev->dev_speed == USBD_SPEED_HIGH) - 519:Src/usbd_hid.c **** { - 520:Src/usbd_hid.c **** /* Sets the data transfer polling interval for high speed transfers. - 521:Src/usbd_hid.c **** Values between 1..16 are allowed. Values correspond to interval - 522:Src/usbd_hid.c **** of 2 ^ (bInterval-1). This option (8 ms, corresponds to HID_HS_BINTERVAL */ - 523:Src/usbd_hid.c **** polling_interval = (((1 <<(HID_HS_BINTERVAL - 1)))/8); - 524:Src/usbd_hid.c **** } - 525:Src/usbd_hid.c **** else /* LOW and FULL-speed endpoints */ - 526:Src/usbd_hid.c **** { - 527:Src/usbd_hid.c **** /* Sets the data transfer polling interval for low and full - 528:Src/usbd_hid.c **** speed transfers */ - 529:Src/usbd_hid.c **** polling_interval = HID_FS_BINTERVAL; - 530:Src/usbd_hid.c **** } - 531:Src/usbd_hid.c **** - 532:Src/usbd_hid.c **** return ((uint32_t)(polling_interval)); - 533:Src/usbd_hid.c **** } - 534:Src/usbd_hid.c **** - 535:Src/usbd_hid.c **** /** - 536:Src/usbd_hid.c **** * @brief USBD_HID_GetCfgDesc - 537:Src/usbd_hid.c **** * return configuration descriptor - 538:Src/usbd_hid.c **** * @param speed : current device speed - 539:Src/usbd_hid.c **** * @param length : pointer data length - 540:Src/usbd_hid.c **** * @retval pointer to descriptor buffer - 541:Src/usbd_hid.c **** */ - 542:Src/usbd_hid.c **** static uint8_t *USBD_HID_GetCfgDesc (uint16_t *length) - 543:Src/usbd_hid.c **** { - 25 .loc 1 543 0 - 26 .cfi_startproc - 27 @ args = 0, pretend = 0, frame = 0 - 28 @ frame_needed = 0, uses_anonymous_args = 0 - ARM GAS /tmp/ccE5JjBw.s page 11 - - - 29 @ link register save eliminated. - 30 .LVL0: - 544:Src/usbd_hid.c **** *length = sizeof (USBD_HID_CfgDesc); - 31 .loc 1 544 0 - 32 0000 2223 movs r3, #34 - 33 0002 0380 strh r3, [r0] - 545:Src/usbd_hid.c **** return USBD_HID_CfgDesc; - 546:Src/usbd_hid.c **** } - 34 .loc 1 546 0 - 35 0004 0048 ldr r0, .L2 - 36 .LVL1: - 37 @ sp needed - 38 0006 7047 bx lr - 39 .L3: - 40 .align 2 - 41 .L2: - 42 0008 00000000 .word .LANCHOR0 - 43 .cfi_endproc - 44 .LFE48: - 46 .section .text.USBD_HID_DataIn,"ax",%progbits - 47 .align 1 - 48 .syntax unified - 49 .code 16 - 50 .thumb_func - 51 .fpu softvfp - 53 USBD_HID_DataIn: - 54 .LFB49: - 547:Src/usbd_hid.c **** - 548:Src/usbd_hid.c **** - 549:Src/usbd_hid.c **** /** - 550:Src/usbd_hid.c **** * @brief USBD_HID_DataIn - 551:Src/usbd_hid.c **** * handle data IN Stage - 552:Src/usbd_hid.c **** * @param pdev: device instance - 553:Src/usbd_hid.c **** * @param epnum: endpoint index - 554:Src/usbd_hid.c **** * @retval status - 555:Src/usbd_hid.c **** */ - 556:Src/usbd_hid.c **** static uint8_t USBD_HID_DataIn (USBD_HandleTypeDef *pdev, - 557:Src/usbd_hid.c **** uint8_t epnum) - 558:Src/usbd_hid.c **** { - 55 .loc 1 558 0 - 56 .cfi_startproc - 57 @ args = 0, pretend = 0, frame = 0 - 58 @ frame_needed = 0, uses_anonymous_args = 0 - 59 @ link register save eliminated. - 60 .LVL2: - 559:Src/usbd_hid.c **** - 560:Src/usbd_hid.c **** /* Ensure that the FIFO is empty before a new transfer, this condition could - 561:Src/usbd_hid.c **** be caused by a new transfer before the end of the previous transfer */ - 562:Src/usbd_hid.c **** ((USBD_HID_HandleTypeDef *)pdev->pClassData)->state = HID_IDLE; - 61 .loc 1 562 0 - 62 0000 8623 movs r3, #134 - 63 0002 9B00 lsls r3, r3, #2 - 64 0004 C358 ldr r3, [r0, r3] - 65 0006 0022 movs r2, #0 - 66 0008 1A73 strb r2, [r3, #12] - 563:Src/usbd_hid.c **** return USBD_OK; - 564:Src/usbd_hid.c **** } - ARM GAS /tmp/ccE5JjBw.s page 12 - - - 67 .loc 1 564 0 - 68 000a 0020 movs r0, #0 - 69 .LVL3: - 70 @ sp needed - 71 000c 7047 bx lr - 72 .cfi_endproc - 73 .LFE49: - 75 .section .text.USBD_HID_GetDeviceQualifierDesc,"ax",%progbits - 76 .align 1 - 77 .syntax unified - 78 .code 16 - 79 .thumb_func - 80 .fpu softvfp - 82 USBD_HID_GetDeviceQualifierDesc: - 83 .LFB52: - 565:Src/usbd_hid.c **** - 566:Src/usbd_hid.c **** - 567:Src/usbd_hid.c **** __weak void USBD_HID_GetReport(uint8_t * OutData, int len){ - 568:Src/usbd_hid.c **** /** default do ntohing */ - 569:Src/usbd_hid.c **** } - 570:Src/usbd_hid.c **** - 571:Src/usbd_hid.c **** static uint8_t USBD_HID_DataOut (USBD_HandleTypeDef *pdev, - 572:Src/usbd_hid.c **** uint8_t epnum) - 573:Src/usbd_hid.c **** { - 574:Src/usbd_hid.c **** int len; - 575:Src/usbd_hid.c **** - 576:Src/usbd_hid.c **** #ifdef DEBUG - 577:Src/usbd_hid.c **** memcpy(OutDataLog+((nOutData)%8)*8,OutData,8); - 578:Src/usbd_hid.c **** #endif - 579:Src/usbd_hid.c **** nOutData++; - 580:Src/usbd_hid.c **** // data cpy so we can be ready for next usb out and used received data safely - 581:Src/usbd_hid.c **** len = USBD_LL_GetRxDataSize (pdev, epnum); - 582:Src/usbd_hid.c **** memcpy(OutDataBuffer,OutData, len); - 583:Src/usbd_hid.c **** USBD_LL_PrepareReceive(pdev, HID_EPOUT_ADDR, OutData, HID_EPOUT_SIZE); - 584:Src/usbd_hid.c **** USBD_HID_GetReport(OutDataBuffer, len); - 585:Src/usbd_hid.c **** return USBD_OK; - 586:Src/usbd_hid.c **** } - 587:Src/usbd_hid.c **** - 588:Src/usbd_hid.c **** - 589:Src/usbd_hid.c **** /** - 590:Src/usbd_hid.c **** * @brief DeviceQualifierDescriptor - 591:Src/usbd_hid.c **** * return Device Qualifier descriptor - 592:Src/usbd_hid.c **** * @param length : pointer data length - 593:Src/usbd_hid.c **** * @retval pointer to descriptor buffer - 594:Src/usbd_hid.c **** */ - 595:Src/usbd_hid.c **** static uint8_t *USBD_HID_GetDeviceQualifierDesc (uint16_t *length) - 596:Src/usbd_hid.c **** { - 84 .loc 1 596 0 - 85 .cfi_startproc - 86 @ args = 0, pretend = 0, frame = 0 - 87 @ frame_needed = 0, uses_anonymous_args = 0 - 88 @ link register save eliminated. - 89 .LVL4: - 597:Src/usbd_hid.c **** *length = sizeof (USBD_HID_DeviceQualifierDesc); - 90 .loc 1 597 0 - 91 0000 0A23 movs r3, #10 - 92 0002 0380 strh r3, [r0] - ARM GAS /tmp/ccE5JjBw.s page 13 - - - 598:Src/usbd_hid.c **** return USBD_HID_DeviceQualifierDesc; - 599:Src/usbd_hid.c **** } - 93 .loc 1 599 0 - 94 0004 0048 ldr r0, .L6 - 95 .LVL5: - 96 @ sp needed - 97 0006 7047 bx lr - 98 .L7: - 99 .align 2 - 100 .L6: - 101 0008 00000000 .word .LANCHOR1 - 102 .cfi_endproc - 103 .LFE52: - 105 .section .text.USBD_HID_Setup,"ax",%progbits - 106 .align 1 - 107 .syntax unified - 108 .code 16 - 109 .thumb_func - 110 .fpu softvfp - 112 USBD_HID_Setup: - 113 .LFB45: - 407:Src/usbd_hid.c **** uint16_t len = 0; - 114 .loc 1 407 0 - 115 .cfi_startproc - 116 @ args = 0, pretend = 0, frame = 0 - 117 @ frame_needed = 0, uses_anonymous_args = 0 - 118 .LVL6: - 119 0000 10B5 push {r4, lr} - 120 .LCFI0: - 121 .cfi_def_cfa_offset 8 - 122 .cfi_offset 4, -8 - 123 .cfi_offset 14, -4 - 124 .LVL7: - 410:Src/usbd_hid.c **** - 125 .loc 1 410 0 - 126 0002 8623 movs r3, #134 - 127 0004 9B00 lsls r3, r3, #2 - 128 0006 C458 ldr r4, [r0, r3] - 129 .LVL8: - 412:Src/usbd_hid.c **** { - 130 .loc 1 412 0 - 131 0008 0A78 ldrb r2, [r1] - 132 000a B93B subs r3, r3, #185 - 133 000c FF3B subs r3, r3, #255 - 134 000e 1340 ands r3, r2 - 135 0010 24D0 beq .L10 - 136 0012 202B cmp r3, #32 - 137 0014 52D1 bne .L28 - 415:Src/usbd_hid.c **** { - 138 .loc 1 415 0 - 139 0016 4B78 ldrb r3, [r1, #1] - 140 0018 032B cmp r3, #3 - 141 001a 10D0 beq .L13 - 142 001c 07D9 bls .L30 - 143 001e 0A2B cmp r3, #10 - 144 0020 13D0 beq .L16 - 145 0022 0B2B cmp r3, #11 - ARM GAS /tmp/ccE5JjBw.s page 14 - - - 146 0024 16D1 bne .L12 - 420:Src/usbd_hid.c **** break; - 147 .loc 1 420 0 - 148 0026 8B78 ldrb r3, [r1, #2] - 149 0028 2360 str r3, [r4] - 477:Src/usbd_hid.c **** } - 150 .loc 1 477 0 - 151 002a 0020 movs r0, #0 - 152 .LVL9: - 421:Src/usbd_hid.c **** - 153 .loc 1 421 0 - 154 002c 47E0 b .L9 - 155 .LVL10: - 156 .L30: - 415:Src/usbd_hid.c **** { - 157 .loc 1 415 0 - 158 002e 022B cmp r3, #2 - 159 0030 10D1 bne .L12 - 435:Src/usbd_hid.c **** 1); - 160 .loc 1 435 0 - 161 0032 211D adds r1, r4, #4 - 162 .LVL11: - 434:Src/usbd_hid.c **** (uint8_t *)&hhid->IdleState, - 163 .loc 1 434 0 - 164 0034 0122 movs r2, #1 - 165 0036 FFF7FEFF bl USBD_CtlSendData - 166 .LVL12: - 477:Src/usbd_hid.c **** } - 167 .loc 1 477 0 - 168 003a 0020 movs r0, #0 - 437:Src/usbd_hid.c **** - 169 .loc 1 437 0 - 170 003c 3FE0 b .L9 - 171 .LVL13: - 172 .L13: - 424:Src/usbd_hid.c **** (uint8_t *)&hhid->Protocol, - 173 .loc 1 424 0 - 174 003e 0122 movs r2, #1 - 175 0040 2100 movs r1, r4 - 176 .LVL14: - 177 0042 FFF7FEFF bl USBD_CtlSendData - 178 .LVL15: - 477:Src/usbd_hid.c **** } - 179 .loc 1 477 0 - 180 0046 0020 movs r0, #0 - 427:Src/usbd_hid.c **** - 181 .loc 1 427 0 - 182 0048 39E0 b .L9 - 183 .LVL16: - 184 .L16: - 430:Src/usbd_hid.c **** break; - 185 .loc 1 430 0 - 186 004a 4B88 ldrh r3, [r1, #2] - 187 004c 1B0A lsrs r3, r3, #8 - 188 004e 6360 str r3, [r4, #4] - 477:Src/usbd_hid.c **** } - 189 .loc 1 477 0 - ARM GAS /tmp/ccE5JjBw.s page 15 - - - 190 0050 0020 movs r0, #0 - 191 .LVL17: - 431:Src/usbd_hid.c **** - 192 .loc 1 431 0 - 193 0052 34E0 b .L9 - 194 .LVL18: - 195 .L12: - 440:Src/usbd_hid.c **** return USBD_FAIL; - 196 .loc 1 440 0 - 197 0054 FFF7FEFF bl USBD_CtlError - 198 .LVL19: - 441:Src/usbd_hid.c **** } - 199 .loc 1 441 0 - 200 0058 0220 movs r0, #2 - 201 005a 30E0 b .L9 - 202 .LVL20: - 203 .L10: - 446:Src/usbd_hid.c **** { - 204 .loc 1 446 0 - 205 005c 4B78 ldrb r3, [r1, #1] - 206 005e 0A2B cmp r3, #10 - 207 0060 21D0 beq .L18 - 208 0062 0B2B cmp r3, #11 - 209 0064 26D0 beq .L19 - 210 0066 062B cmp r3, #6 - 211 0068 01D0 beq .L31 - 477:Src/usbd_hid.c **** } - 212 .loc 1 477 0 - 213 006a 0020 movs r0, #0 - 214 .LVL21: - 215 006c 27E0 b .L9 - 216 .LVL22: - 217 .L31: - 449:Src/usbd_hid.c **** { - 218 .loc 1 449 0 - 219 006e 4B88 ldrh r3, [r1, #2] - 220 0070 1B0A lsrs r3, r3, #8 - 221 0072 222B cmp r3, #34 - 222 0074 07D0 beq .L32 - 454:Src/usbd_hid.c **** { - 223 .loc 1 454 0 - 224 0076 212B cmp r3, #33 - 225 0078 0DD0 beq .L33 - 409:Src/usbd_hid.c **** USBD_HID_HandleTypeDef *hhid = (USBD_HID_HandleTypeDef*) pdev->pClassData; - 226 .loc 1 409 0 - 227 007a 0021 movs r1, #0 - 228 .LVL23: - 408:Src/usbd_hid.c **** uint8_t *pbuf = NULL; - 229 .loc 1 408 0 - 230 007c 0022 movs r2, #0 - 231 .LVL24: - 232 .L23: - 460:Src/usbd_hid.c **** pbuf, - 233 .loc 1 460 0 - 234 007e FFF7FEFF bl USBD_CtlSendData - 235 .LVL25: - 477:Src/usbd_hid.c **** } - ARM GAS /tmp/ccE5JjBw.s page 16 - - - 236 .loc 1 477 0 - 237 0082 0020 movs r0, #0 - 464:Src/usbd_hid.c **** - 238 .loc 1 464 0 - 239 0084 1BE0 b .L9 - 240 .LVL26: - 241 .L32: - 451:Src/usbd_hid.c **** pbuf = HID_ReportDesc; - 242 .loc 1 451 0 - 243 0086 CB88 ldrh r3, [r1, #6] - 244 0088 1A1C adds r2, r3, #0 - 245 008a 482B cmp r3, #72 - 246 008c 00D9 bls .L22 - 247 008e 4822 movs r2, #72 - 248 .L22: - 249 0090 92B2 uxth r2, r2 - 250 .LVL27: - 452:Src/usbd_hid.c **** } - 251 .loc 1 452 0 - 252 0092 0B49 ldr r1, .L34 - 253 .LVL28: - 254 0094 F3E7 b .L23 - 255 .LVL29: - 256 .L33: - 457:Src/usbd_hid.c **** } - 257 .loc 1 457 0 - 258 0096 CB88 ldrh r3, [r1, #6] - 259 0098 1A1C adds r2, r3, #0 - 260 009a 092B cmp r3, #9 - 261 009c 00D9 bls .L24 - 262 009e 0922 movs r2, #9 - 263 .L24: - 264 00a0 92B2 uxth r2, r2 - 265 .LVL30: - 456:Src/usbd_hid.c **** len = MIN(USB_HID_DESC_SIZ , req->wLength); - 266 .loc 1 456 0 - 267 00a2 0849 ldr r1, .L34+4 - 268 .LVL31: - 269 00a4 EBE7 b .L23 - 270 .LVL32: - 271 .L18: - 468:Src/usbd_hid.c **** 1); - 272 .loc 1 468 0 - 273 00a6 2100 movs r1, r4 - 274 .LVL33: - 275 00a8 0831 adds r1, r1, #8 - 467:Src/usbd_hid.c **** (uint8_t *)&hhid->AltSetting, - 276 .loc 1 467 0 - 277 00aa 0122 movs r2, #1 - 278 00ac FFF7FEFF bl USBD_CtlSendData - 279 .LVL34: - 477:Src/usbd_hid.c **** } - 280 .loc 1 477 0 - 281 00b0 0020 movs r0, #0 - 470:Src/usbd_hid.c **** - 282 .loc 1 470 0 - 283 00b2 04E0 b .L9 - ARM GAS /tmp/ccE5JjBw.s page 17 - - - 284 .LVL35: - 285 .L19: - 473:Src/usbd_hid.c **** break; - 286 .loc 1 473 0 - 287 00b4 8B78 ldrb r3, [r1, #2] - 288 00b6 A360 str r3, [r4, #8] - 477:Src/usbd_hid.c **** } - 289 .loc 1 477 0 - 290 00b8 0020 movs r0, #0 - 291 .LVL36: - 474:Src/usbd_hid.c **** } - 292 .loc 1 474 0 - 293 00ba 00E0 b .L9 - 294 .LVL37: - 295 .L28: - 477:Src/usbd_hid.c **** } - 296 .loc 1 477 0 - 297 00bc 0020 movs r0, #0 - 298 .LVL38: - 299 .L9: - 478:Src/usbd_hid.c **** - 300 .loc 1 478 0 - 301 @ sp needed - 302 .LVL39: - 303 00be 10BD pop {r4, pc} - 304 .L35: - 305 .align 2 - 306 .L34: - 307 00c0 00000000 .word .LANCHOR2 - 308 00c4 00000000 .word .LANCHOR3 - 309 .cfi_endproc - 310 .LFE45: - 312 .section .text.USBD_HID_DeInit,"ax",%progbits - 313 .align 1 - 314 .syntax unified - 315 .code 16 - 316 .thumb_func - 317 .fpu softvfp - 319 USBD_HID_DeInit: - 320 .LFB44: - 380:Src/usbd_hid.c **** /* Close HID EPs */ - 321 .loc 1 380 0 - 322 .cfi_startproc - 323 @ args = 0, pretend = 0, frame = 0 - 324 @ frame_needed = 0, uses_anonymous_args = 0 - 325 .LVL40: - 326 0000 10B5 push {r4, lr} - 327 .LCFI1: - 328 .cfi_def_cfa_offset 8 - 329 .cfi_offset 4, -8 - 330 .cfi_offset 14, -4 - 331 0002 0400 movs r4, r0 - 382:Src/usbd_hid.c **** HID_EPIN_ADDR); - 332 .loc 1 382 0 - 333 0004 8121 movs r1, #129 - 334 .LVL41: - 335 0006 FFF7FEFF bl USBD_LL_CloseEP - ARM GAS /tmp/ccE5JjBw.s page 18 - - - 336 .LVL42: - 385:Src/usbd_hid.c **** HID_EPOUT_ADDR); - 337 .loc 1 385 0 - 338 000a 0121 movs r1, #1 - 339 000c 2000 movs r0, r4 - 340 000e FFF7FEFF bl USBD_LL_CloseEP - 341 .LVL43: - 389:Src/usbd_hid.c **** { - 342 .loc 1 389 0 - 343 0012 8623 movs r3, #134 - 344 0014 9B00 lsls r3, r3, #2 - 345 0016 E058 ldr r0, [r4, r3] - 346 0018 0028 cmp r0, #0 - 347 001a 05D0 beq .L37 - 391:Src/usbd_hid.c **** pdev->pClassData = NULL; - 348 .loc 1 391 0 - 349 001c FFF7FEFF bl free - 350 .LVL44: - 392:Src/usbd_hid.c **** } - 351 .loc 1 392 0 - 352 0020 8623 movs r3, #134 - 353 0022 9B00 lsls r3, r3, #2 - 354 0024 0022 movs r2, #0 - 355 0026 E250 str r2, [r4, r3] - 356 .L37: - 396:Src/usbd_hid.c **** - 357 .loc 1 396 0 - 358 0028 0020 movs r0, #0 - 359 @ sp needed - 360 .LVL45: - 361 002a 10BD pop {r4, pc} - 362 .cfi_endproc - 363 .LFE44: - 365 .section .text.USBD_HID_Init,"ax",%progbits - 366 .align 1 - 367 .syntax unified - 368 .code 16 - 369 .thumb_func - 370 .fpu softvfp - 372 USBD_HID_Init: - 373 .LFB43: - 339:Src/usbd_hid.c **** uint8_t ret = 0; - 374 .loc 1 339 0 - 375 .cfi_startproc - 376 @ args = 0, pretend = 0, frame = 0 - 377 @ frame_needed = 0, uses_anonymous_args = 0 - 378 .LVL46: - 379 0000 10B5 push {r4, lr} - 380 .LCFI2: - 381 .cfi_def_cfa_offset 8 - 382 .cfi_offset 4, -8 - 383 .cfi_offset 14, -4 - 384 0002 0400 movs r4, r0 - 385 .LVL47: - 343:Src/usbd_hid.c **** HID_EPIN_ADDR, - 386 .loc 1 343 0 - 387 0004 1023 movs r3, #16 - ARM GAS /tmp/ccE5JjBw.s page 19 - - - 388 0006 0322 movs r2, #3 - 389 0008 8121 movs r1, #129 - 390 .LVL48: - 391 000a FFF7FEFF bl USBD_LL_OpenEP - 392 .LVL49: - 354:Src/usbd_hid.c **** - 393 .loc 1 354 0 - 394 000e 1020 movs r0, #16 - 395 0010 FFF7FEFF bl malloc - 396 .LVL50: - 397 0014 8623 movs r3, #134 - 398 0016 9B00 lsls r3, r3, #2 - 399 0018 E050 str r0, [r4, r3] - 356:Src/usbd_hid.c **** { - 400 .loc 1 356 0 - 401 001a 0028 cmp r0, #0 - 402 001c 03D0 beq .L40 - 365:Src/usbd_hid.c **** - 403 .loc 1 365 0 - 404 001e 0023 movs r3, #0 - 405 0020 0373 strb r3, [r0, #12] - 340:Src/usbd_hid.c **** - 406 .loc 1 340 0 - 407 0022 0020 movs r0, #0 - 408 .L39: - 409 .LVL51: - 369:Src/usbd_hid.c **** - 410 .loc 1 369 0 - 411 @ sp needed - 412 .LVL52: - 413 0024 10BD pop {r4, pc} - 414 .LVL53: - 415 .L40: - 358:Src/usbd_hid.c **** } - 416 .loc 1 358 0 - 417 0026 0120 movs r0, #1 - 418 0028 FCE7 b .L39 - 419 .cfi_endproc - 420 .LFE43: - 422 .section .text.USBD_HID_SendReport,"ax",%progbits - 423 .align 1 - 424 .global USBD_HID_SendReport - 425 .syntax unified - 426 .code 16 - 427 .thumb_func - 428 .fpu softvfp - 430 USBD_HID_SendReport: - 431 .LFB46: - 490:Src/usbd_hid.c **** USBD_HID_HandleTypeDef *hhid = (USBD_HID_HandleTypeDef*)pdev->pClassData; - 432 .loc 1 490 0 - 433 .cfi_startproc - 434 @ args = 0, pretend = 0, frame = 0 - 435 @ frame_needed = 0, uses_anonymous_args = 0 - 436 .LVL54: - 437 0000 70B5 push {r4, r5, r6, lr} - 438 .LCFI3: - 439 .cfi_def_cfa_offset 16 - ARM GAS /tmp/ccE5JjBw.s page 20 - - - 440 .cfi_offset 4, -16 - 441 .cfi_offset 5, -12 - 442 .cfi_offset 6, -8 - 443 .cfi_offset 14, -4 - 491:Src/usbd_hid.c **** - 444 .loc 1 491 0 - 445 0002 8624 movs r4, #134 - 446 0004 A400 lsls r4, r4, #2 - 447 0006 0559 ldr r5, [r0, r4] - 448 .LVL55: - 493:Src/usbd_hid.c **** { - 449 .loc 1 493 0 - 450 0008 1C3C subs r4, r4, #28 - 451 000a 045D ldrb r4, [r0, r4] - 452 000c 032C cmp r4, #3 - 453 000e 01D0 beq .L43 - 454 .LVL56: - 455 .L42: - 505:Src/usbd_hid.c **** - 456 .loc 1 505 0 - 457 0010 0020 movs r0, #0 - 458 @ sp needed - 459 .LVL57: - 460 0012 70BD pop {r4, r5, r6, pc} - 461 .LVL58: - 462 .L43: - 495:Src/usbd_hid.c **** { - 463 .loc 1 495 0 - 464 0014 2B7B ldrb r3, [r5, #12] - 465 0016 002B cmp r3, #0 - 466 0018 FAD1 bne .L42 - 497:Src/usbd_hid.c **** USBD_LL_Transmit (pdev, - 467 .loc 1 497 0 - 468 001a 0133 adds r3, r3, #1 - 469 001c 2B73 strb r3, [r5, #12] - 498:Src/usbd_hid.c **** HID_EPIN_ADDR, - 470 .loc 1 498 0 - 471 001e 1300 movs r3, r2 - 472 0020 0A00 movs r2, r1 - 473 .LVL59: - 474 0022 8121 movs r1, #129 - 475 .LVL60: - 476 0024 FFF7FEFF bl USBD_LL_Transmit - 477 .LVL61: - 478 0028 F2E7 b .L42 - 479 .cfi_endproc - 480 .LFE46: - 482 .section .text.USBD_HID_GetPollingInterval,"ax",%progbits - 483 .align 1 - 484 .global USBD_HID_GetPollingInterval - 485 .syntax unified - 486 .code 16 - 487 .thumb_func - 488 .fpu softvfp - 490 USBD_HID_GetPollingInterval: - 491 .LFB47: - 514:Src/usbd_hid.c **** uint32_t polling_interval = 0; - ARM GAS /tmp/ccE5JjBw.s page 21 - - - 492 .loc 1 514 0 - 493 .cfi_startproc - 494 @ args = 0, pretend = 0, frame = 0 - 495 @ frame_needed = 0, uses_anonymous_args = 0 - 496 @ link register save eliminated. - 497 .LVL62: - 518:Src/usbd_hid.c **** { - 498 .loc 1 518 0 - 499 0000 037C ldrb r3, [r0, #16] - 500 0002 002B cmp r3, #0 - 501 0004 01D0 beq .L47 - 529:Src/usbd_hid.c **** } - 502 .loc 1 529 0 - 503 0006 0A20 movs r0, #10 - 504 .LVL63: - 505 .L44: - 533:Src/usbd_hid.c **** - 506 .loc 1 533 0 - 507 @ sp needed - 508 0008 7047 bx lr - 509 .LVL64: - 510 .L47: - 523:Src/usbd_hid.c **** } - 511 .loc 1 523 0 - 512 000a 0820 movs r0, #8 - 513 .LVL65: - 514 000c FCE7 b .L44 - 515 .cfi_endproc - 516 .LFE47: - 518 .section .text.USBD_HID_GetReport,"ax",%progbits - 519 .align 1 - 520 .weak USBD_HID_GetReport - 521 .syntax unified - 522 .code 16 - 523 .thumb_func - 524 .fpu softvfp - 526 USBD_HID_GetReport: - 527 .LFB50: - 567:Src/usbd_hid.c **** /** default do ntohing */ - 528 .loc 1 567 0 - 529 .cfi_startproc - 530 @ args = 0, pretend = 0, frame = 0 - 531 @ frame_needed = 0, uses_anonymous_args = 0 - 532 @ link register save eliminated. - 533 .LVL66: - 569:Src/usbd_hid.c **** - 534 .loc 1 569 0 - 535 @ sp needed - 536 0000 7047 bx lr - 537 .cfi_endproc - 538 .LFE50: - 540 .section .text.USBD_HID_DataOut,"ax",%progbits - 541 .align 1 - 542 .syntax unified - 543 .code 16 - 544 .thumb_func - 545 .fpu softvfp - ARM GAS /tmp/ccE5JjBw.s page 22 - - - 547 USBD_HID_DataOut: - 548 .LFB51: - 573:Src/usbd_hid.c **** int len; - 549 .loc 1 573 0 - 550 .cfi_startproc - 551 @ args = 0, pretend = 0, frame = 0 - 552 @ frame_needed = 0, uses_anonymous_args = 0 - 553 .LVL67: - 554 0000 F8B5 push {r3, r4, r5, r6, r7, lr} - 555 .LCFI4: - 556 .cfi_def_cfa_offset 24 - 557 .cfi_offset 3, -24 - 558 .cfi_offset 4, -20 - 559 .cfi_offset 5, -16 - 560 .cfi_offset 6, -12 - 561 .cfi_offset 7, -8 - 562 .cfi_offset 14, -4 - 563 0002 0600 movs r6, r0 - 579:Src/usbd_hid.c **** // data cpy so we can be ready for next usb out and used received data safely - 564 .loc 1 579 0 - 565 0004 0C4A ldr r2, .L50 - 566 0006 1368 ldr r3, [r2] - 567 0008 0133 adds r3, r3, #1 - 568 000a 1360 str r3, [r2] - 581:Src/usbd_hid.c **** memcpy(OutDataBuffer,OutData, len); - 569 .loc 1 581 0 - 570 000c FFF7FEFF bl USBD_LL_GetRxDataSize - 571 .LVL68: - 572 0010 0500 movs r5, r0 - 573 .LVL69: - 582:Src/usbd_hid.c **** USBD_LL_PrepareReceive(pdev, HID_EPOUT_ADDR, OutData, HID_EPOUT_SIZE); - 574 .loc 1 582 0 - 575 0012 0A4C ldr r4, .L50+4 - 576 0014 0A4F ldr r7, .L50+8 - 577 0016 0200 movs r2, r0 - 578 0018 3900 movs r1, r7 - 579 001a 2000 movs r0, r4 - 580 .LVL70: - 581 001c FFF7FEFF bl memcpy - 582 .LVL71: - 583:Src/usbd_hid.c **** USBD_HID_GetReport(OutDataBuffer, len); - 583 .loc 1 583 0 - 584 0020 0823 movs r3, #8 - 585 0022 3A00 movs r2, r7 - 586 0024 0121 movs r1, #1 - 587 0026 3000 movs r0, r6 - 588 0028 FFF7FEFF bl USBD_LL_PrepareReceive - 589 .LVL72: - 584:Src/usbd_hid.c **** return USBD_OK; - 590 .loc 1 584 0 - 591 002c 2900 movs r1, r5 - 592 002e 2000 movs r0, r4 - 593 0030 FFF7FEFF bl USBD_HID_GetReport - 594 .LVL73: - 586:Src/usbd_hid.c **** - 595 .loc 1 586 0 - 596 0034 0020 movs r0, #0 - ARM GAS /tmp/ccE5JjBw.s page 23 - - - 597 @ sp needed - 598 .LVL74: - 599 .LVL75: - 600 0036 F8BD pop {r3, r4, r5, r6, r7, pc} - 601 .L51: - 602 .align 2 - 603 .L50: - 604 0038 00000000 .word nOutData - 605 003c 00000000 .word OutDataBuffer - 606 0040 00000000 .word OutData - 607 .cfi_endproc - 608 .LFE51: - 610 .comm OutData,8,4 - 611 .comm OutDataBuffer,8,4 - 612 .comm nOutData,4,4 - 613 .global USBD_HID - 614 .section .data.HID_ReportDesc,"aw",%progbits - 615 .align 2 - 616 .set .LANCHOR2,. + 0 - 619 HID_ReportDesc: - 620 0000 05 .byte 5 - 621 0001 01 .byte 1 - 622 0002 09 .byte 9 - 623 0003 06 .byte 6 - 624 0004 A1 .byte -95 - 625 0005 01 .byte 1 - 626 0006 85 .byte -123 - 627 0007 01 .byte 1 - 628 0008 05 .byte 5 - 629 0009 07 .byte 7 - 630 000a 19 .byte 25 - 631 000b E0 .byte -32 - 632 000c 29 .byte 41 - 633 000d E7 .byte -25 - 634 000e 15 .byte 21 - 635 000f 00 .byte 0 - 636 0010 25 .byte 37 - 637 0011 01 .byte 1 - 638 0012 75 .byte 117 - 639 0013 01 .byte 1 - 640 0014 95 .byte -107 - 641 0015 08 .byte 8 - 642 0016 81 .byte -127 - 643 0017 02 .byte 2 - 644 0018 95 .byte -107 - 645 0019 01 .byte 1 - 646 001a 75 .byte 117 - 647 001b 08 .byte 8 - 648 001c 81 .byte -127 - 649 001d 03 .byte 3 - 650 001e 95 .byte -107 - 651 001f 06 .byte 6 - 652 0020 75 .byte 117 - 653 0021 08 .byte 8 - 654 0022 15 .byte 21 - 655 0023 00 .byte 0 - 656 0024 25 .byte 37 - ARM GAS /tmp/ccE5JjBw.s page 24 - - - 657 0025 65 .byte 101 - 658 0026 05 .byte 5 - 659 0027 07 .byte 7 - 660 0028 19 .byte 25 - 661 0029 00 .byte 0 - 662 002a 29 .byte 41 - 663 002b 65 .byte 101 - 664 002c 81 .byte -127 - 665 002d 00 .byte 0 - 666 002e C0 .byte -64 - 667 002f 05 .byte 5 - 668 0030 0C .byte 12 - 669 0031 09 .byte 9 - 670 0032 01 .byte 1 - 671 0033 A1 .byte -95 - 672 0034 01 .byte 1 - 673 0035 85 .byte -123 - 674 0036 02 .byte 2 - 675 0037 19 .byte 25 - 676 0038 00 .byte 0 - 677 0039 2A .byte 42 - 678 003a 3C .byte 60 - 679 003b 02 .byte 2 - 680 003c 15 .byte 21 - 681 003d 00 .byte 0 - 682 003e 26 .byte 38 - 683 003f 3C .byte 60 - 684 0040 02 .byte 2 - 685 0041 95 .byte -107 - 686 0042 01 .byte 1 - 687 0043 75 .byte 117 - 688 0044 10 .byte 16 - 689 0045 81 .byte -127 - 690 0046 00 .byte 0 - 691 0047 C0 .byte -64 - 692 .section .data.USBD_HID,"aw",%progbits - 693 .align 2 - 696 USBD_HID: - 697 0000 00000000 .word USBD_HID_Init - 698 0004 00000000 .word USBD_HID_DeInit - 699 0008 00000000 .word USBD_HID_Setup - 700 000c 00000000 .word 0 - 701 0010 00000000 .word 0 - 702 0014 00000000 .word USBD_HID_DataIn - 703 0018 00000000 .word USBD_HID_DataOut - 704 001c 00000000 .word 0 - 705 0020 00000000 .word 0 - 706 0024 00000000 .word 0 - 707 0028 00000000 .word USBD_HID_GetCfgDesc - 708 002c 00000000 .word USBD_HID_GetCfgDesc - 709 0030 00000000 .word USBD_HID_GetCfgDesc - 710 0034 00000000 .word USBD_HID_GetDeviceQualifierDesc - 711 .section .data.USBD_HID_CfgDesc,"aw",%progbits - 712 .align 2 - 713 .set .LANCHOR0,. + 0 - 716 USBD_HID_CfgDesc: - 717 0000 09 .byte 9 - ARM GAS /tmp/ccE5JjBw.s page 25 - - - 718 0001 02 .byte 2 - 719 0002 22 .byte 34 - 720 0003 00 .byte 0 - 721 0004 01 .byte 1 - 722 0005 01 .byte 1 - 723 0006 00 .byte 0 - 724 0007 E0 .byte -32 - 725 0008 32 .byte 50 - 726 0009 09 .byte 9 - 727 000a 04 .byte 4 - 728 000b 00 .byte 0 - 729 000c 00 .byte 0 - 730 000d 01 .byte 1 - 731 000e 03 .byte 3 - 732 000f 01 .byte 1 - 733 0010 01 .byte 1 - 734 0011 00 .byte 0 - 735 0012 09 .byte 9 - 736 0013 21 .byte 33 - 737 0014 11 .byte 17 - 738 0015 01 .byte 1 - 739 0016 00 .byte 0 - 740 0017 01 .byte 1 - 741 0018 22 .byte 34 - 742 0019 48 .byte 72 - 743 001a 00 .byte 0 - 744 001b 07 .byte 7 - 745 001c 05 .byte 5 - 746 001d 81 .byte -127 - 747 001e 03 .byte 3 - 748 001f 10 .byte 16 - 749 0020 00 .byte 0 - 750 0021 0A .byte 10 - 751 .section .data.USBD_HID_Desc,"aw",%progbits - 752 .align 2 - 753 .set .LANCHOR3,. + 0 - 756 USBD_HID_Desc: - 757 0000 09 .byte 9 - 758 0001 21 .byte 33 - 759 0002 11 .byte 17 - 760 0003 01 .byte 1 - 761 0004 00 .byte 0 - 762 0005 01 .byte 1 - 763 0006 22 .byte 34 - 764 0007 48 .byte 72 - 765 0008 00 .byte 0 - 766 .section .data.USBD_HID_DeviceQualifierDesc,"aw",%progbits - 767 .align 2 - 768 .set .LANCHOR1,. + 0 - 771 USBD_HID_DeviceQualifierDesc: - 772 0000 0A .byte 10 - 773 0001 06 .byte 6 - 774 0002 00 .byte 0 - 775 0003 02 .byte 2 - 776 0004 00 .byte 0 - 777 0005 00 .byte 0 - 778 0006 00 .byte 0 - ARM GAS /tmp/ccE5JjBw.s page 26 - - - 779 0007 40 .byte 64 - 780 0008 01 .byte 1 - 781 0009 00 .byte 0 - 782 .text - 783 .Letext0: - 784 .file 2 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/machin - 785 .file 3 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/sys/lo - 786 .file 4 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/sys/_t - 787 .file 5 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/lib/gcc/arm-none-eabi/7.3.1/ - 788 .file 6 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/sys/re - 789 .file 7 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/sys/_s - 790 .file 8 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/stdlib - 791 .file 9 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h" - 792 .file 10 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h" - 793 .file 11 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h" - 794 .file 12 "Inc/usbd_hid.h" - 795 .file 13 "Inc/usbd_desc.h" - 796 .file 14 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h" - 797 .file 15 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h" - 798 .file 16 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h" - 799 .file 17 "" - ARM GAS /tmp/ccE5JjBw.s page 27 - - -DEFINED SYMBOLS - *ABS*:0000000000000000 usbd_hid.c - /tmp/ccE5JjBw.s:16 .text.USBD_HID_GetCfgDesc:0000000000000000 $t - /tmp/ccE5JjBw.s:22 .text.USBD_HID_GetCfgDesc:0000000000000000 USBD_HID_GetCfgDesc - /tmp/ccE5JjBw.s:42 .text.USBD_HID_GetCfgDesc:0000000000000008 $d - /tmp/ccE5JjBw.s:47 .text.USBD_HID_DataIn:0000000000000000 $t - /tmp/ccE5JjBw.s:53 .text.USBD_HID_DataIn:0000000000000000 USBD_HID_DataIn - /tmp/ccE5JjBw.s:76 .text.USBD_HID_GetDeviceQualifierDesc:0000000000000000 $t - /tmp/ccE5JjBw.s:82 .text.USBD_HID_GetDeviceQualifierDesc:0000000000000000 USBD_HID_GetDeviceQualifierDesc - /tmp/ccE5JjBw.s:101 .text.USBD_HID_GetDeviceQualifierDesc:0000000000000008 $d - /tmp/ccE5JjBw.s:106 .text.USBD_HID_Setup:0000000000000000 $t - /tmp/ccE5JjBw.s:112 .text.USBD_HID_Setup:0000000000000000 USBD_HID_Setup - /tmp/ccE5JjBw.s:307 .text.USBD_HID_Setup:00000000000000c0 $d - /tmp/ccE5JjBw.s:313 .text.USBD_HID_DeInit:0000000000000000 $t - /tmp/ccE5JjBw.s:319 .text.USBD_HID_DeInit:0000000000000000 USBD_HID_DeInit - /tmp/ccE5JjBw.s:366 .text.USBD_HID_Init:0000000000000000 $t - /tmp/ccE5JjBw.s:372 .text.USBD_HID_Init:0000000000000000 USBD_HID_Init - /tmp/ccE5JjBw.s:423 .text.USBD_HID_SendReport:0000000000000000 $t - /tmp/ccE5JjBw.s:430 .text.USBD_HID_SendReport:0000000000000000 USBD_HID_SendReport - /tmp/ccE5JjBw.s:483 .text.USBD_HID_GetPollingInterval:0000000000000000 $t - /tmp/ccE5JjBw.s:490 .text.USBD_HID_GetPollingInterval:0000000000000000 USBD_HID_GetPollingInterval - /tmp/ccE5JjBw.s:519 .text.USBD_HID_GetReport:0000000000000000 $t - /tmp/ccE5JjBw.s:526 .text.USBD_HID_GetReport:0000000000000000 USBD_HID_GetReport - /tmp/ccE5JjBw.s:541 .text.USBD_HID_DataOut:0000000000000000 $t - /tmp/ccE5JjBw.s:547 .text.USBD_HID_DataOut:0000000000000000 USBD_HID_DataOut - /tmp/ccE5JjBw.s:604 .text.USBD_HID_DataOut:0000000000000038 $d - *COM*:0000000000000004 nOutData - *COM*:0000000000000008 OutDataBuffer - *COM*:0000000000000008 OutData - /tmp/ccE5JjBw.s:696 .data.USBD_HID:0000000000000000 USBD_HID - /tmp/ccE5JjBw.s:615 .data.HID_ReportDesc:0000000000000000 $d - /tmp/ccE5JjBw.s:619 .data.HID_ReportDesc:0000000000000000 HID_ReportDesc - /tmp/ccE5JjBw.s:693 .data.USBD_HID:0000000000000000 $d - /tmp/ccE5JjBw.s:712 .data.USBD_HID_CfgDesc:0000000000000000 $d - /tmp/ccE5JjBw.s:716 .data.USBD_HID_CfgDesc:0000000000000000 USBD_HID_CfgDesc - /tmp/ccE5JjBw.s:752 .data.USBD_HID_Desc:0000000000000000 $d - /tmp/ccE5JjBw.s:756 .data.USBD_HID_Desc:0000000000000000 USBD_HID_Desc - /tmp/ccE5JjBw.s:767 .data.USBD_HID_DeviceQualifierDesc:0000000000000000 $d - /tmp/ccE5JjBw.s:771 .data.USBD_HID_DeviceQualifierDesc:0000000000000000 USBD_HID_DeviceQualifierDesc - -UNDEFINED SYMBOLS -USBD_CtlSendData -USBD_CtlError -USBD_LL_CloseEP -free -USBD_LL_OpenEP -malloc -USBD_LL_Transmit -USBD_LL_GetRxDataSize -memcpy -USBD_LL_PrepareReceive -- cgit