⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usbgenericrequest.lst

📁 ATmel的AT91sam7SE芯片 USB固件开发源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
   \   00000000   B200D0E1           LDRH     R0,[R0, #+2]
   \   00000004   1EFF2FE1           BX       LR               ;; return
     96          }
     97          
     98          /*
     99              Function: USBGenericRequest_GetIndex
    100                  Returns the wIndex field of the given request.
    101          
    102              Parameters:
    103                  request - Pointer to a USBGenericRequest instance.
    104          
    105              Returns:
    106                  Request index;
    107          */

   \                                 In section .text, align 4, keep-with-next
    108          unsigned short USBGenericRequest_GetIndex(const USBGenericRequest *request)
    109          {
    110              return request->wIndex;
   \                     USBGenericRequest_GetIndex:
   \   00000000   B400D0E1           LDRH     R0,[R0, #+4]
   \   00000004   1EFF2FE1           BX       LR               ;; return
    111          }
    112          
    113          /*
    114              Function: USBGenericRequest_GetLength
    115                  Returns the expected length of the data phase following a request.
    116          
    117              Parameters:
    118                  request - Pointer to a USBGenericRequest instance.
    119          
    120              Returns:
    121                  Length of data phase.
    122          */

   \                                 In section .text, align 4, keep-with-next
    123          unsigned short USBGenericRequest_GetLength(const USBGenericRequest *request)
    124          {
    125              return request->wLength;
   \                     USBGenericRequest_GetLength:
   \   00000000   B600D0E1           LDRH     R0,[R0, #+6]
   \   00000004   1EFF2FE1           BX       LR               ;; return
    126          }
    127          
    128          /*
    129              Function: USBGenericRequest_GetEndpointNumber
    130                  Returns the endpoint number targetted by a given request.
    131          
    132              Parameters:
    133                  request - Pointer to a USBGenericRequest instance.
    134          
    135              Returns:
    136                  Endpoint number.
    137          */

   \                                 In section .text, align 4, keep-with-next
    138          unsigned char USBGenericRequest_GetEndpointNumber(const USBGenericRequest *request)
    139          {
   \                     USBGenericRequest_GetEndpointNumber:
   \   00000000   10402DE9           PUSH     {R4,LR}
   \   00000004   0040B0E1           MOVS     R4,R0
    140              return USBGenericRequest_GetIndex(request) & 0xF;
   \   00000008   0400B0E1           MOVS     R0,R4
   \   0000000C   ........           BL       USBGenericRequest_GetIndex
   \   00000010   0F0010E2           ANDS     R0,R0,#0xF
   \   00000014   1040BDE8           POP      {R4,LR}
   \   00000018   1EFF2FE1           BX       LR               ;; return
    141          }
    142          
    143          /*
    144              Function: USBGenericRequest_GetRecipient
    145                  Returns the intended recipient of a given request.
    146          
    147              Parameters:
    148                  request - Pointer to a USBGenericRequest instance.
    149          
    150              Returns:
    151                  Request recipient.
    152          */

   \                                 In section .text, align 4, keep-with-next
    153          unsigned char USBGenericRequest_GetRecipient(const USBGenericRequest *request)
    154          {
    155              // Recipient is in bits [0..4] of the bmRequestType field
    156              return request->bmRequestType & 0xF;
   \                     USBGenericRequest_GetRecipient:
   \   00000000   0000D0E5           LDRB     R0,[R0, #+0]
   \   00000004   0F0010E2           ANDS     R0,R0,#0xF
   \   00000008   1EFF2FE1           BX       LR               ;; return
    157          }
    158          
    159          /*
    160              Function: USBGenericRequest_GetDirection
    161                  Returns the direction of the data transfer following the given request.
    162          
    163              Parameters:
    164                  request - Pointer to a USBGenericRequest instance.
    165          
    166              Returns:
    167                  Transfer direction.
    168          */

   \                                 In section .text, align 4, keep-with-next
    169          unsigned char USBGenericRequest_GetDirection(const USBGenericRequest *request)
    170          {
   \                     USBGenericRequest_GetDirection:
   \   00000000   0010B0E1           MOVS     R1,R0
    171              // Transfer direction is located in bit D7 of the bmRequestType field
    172              if ((request->bmRequestType & 0x80) != 0) {
   \   00000004   0000D1E5           LDRB     R0,[R1, #+0]
   \   00000008   800010E3           TST      R0,#0x80
   \   0000000C   0100000A           BEQ      ??USBGenericRequest_GetDirection_0
    173          
    174                  return USBGenericRequest_IN;
   \   00000010   0100A0E3           MOV      R0,#+1
   \   00000014   000000EA           B        ??USBGenericRequest_GetDirection_1
    175              }
    176              else {
    177          
    178                  return USBGenericRequest_OUT;
   \                     ??USBGenericRequest_GetDirection_0:
   \   00000018   0000A0E3           MOV      R0,#+0
   \                     ??USBGenericRequest_GetDirection_1:
   \   0000001C   1EFF2FE1           BX       LR               ;; return
    179              }
    180          }
    181          

   Maximum stack usage in bytes:

     Function                       .cstack
     --------                       -------
     USBGenericRequest_GetDirection      0
     USBGenericRequest_GetEndpointNumber
                                         8
     USBGenericRequest_GetIndex          0
     USBGenericRequest_GetLength         0
     USBGenericRequest_GetRecipient      0
     USBGenericRequest_GetRequest        0
     USBGenericRequest_GetType           0
     USBGenericRequest_GetValue          0


   Section sizes:

     Function/Label                 Bytes
     --------------                 -----
     USBGenericRequest_GetType        20
     USBGenericRequest_GetRequest      8
     USBGenericRequest_GetValue        8
     USBGenericRequest_GetIndex        8
     USBGenericRequest_GetLength       8
     USBGenericRequest_GetEndpointNumber
                                      28
     USBGenericRequest_GetRecipient   12
     USBGenericRequest_GetDirection   32

 
 124 bytes in section .text
 
 124 bytes of CODE memory

Errors: none
Warnings: none

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -