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

📄 usbgenericrequest.lst

📁 本代bootloader通过usb下载代码首先存放在sdram中
💻 LST
📖 第 1 页 / 共 2 页
字号:
     76          
     77          //------------------------------------------------------------------------------
     78          /// Returns the wIndex field of the given request.
     79          /// \param request Pointer to a USBGenericRequest instance.
     80          /// \return Request index;
     81          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
     82          unsigned short USBGenericRequest_GetIndex(const USBGenericRequest *request)
     83          {
     84              return request->wIndex;
   \                     USBGenericRequest_GetIndex:
   \   00000000   B400D0E1           LDRH     R0,[R0, #+4]
   \   00000004   1EFF2FE1           BX       LR               ;; return
     85          }
     86          
     87          //------------------------------------------------------------------------------
     88          /// Returns the expected length of the data phase following a request.
     89          /// \param request Pointer to a USBGenericRequest instance.
     90          /// \return Length of data phase.
     91          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
     92          unsigned short USBGenericRequest_GetLength(const USBGenericRequest *request)
     93          {
     94              return request->wLength;
   \                     USBGenericRequest_GetLength:
   \   00000000   B600D0E1           LDRH     R0,[R0, #+6]
   \   00000004   1EFF2FE1           BX       LR               ;; return
     95          }
     96          
     97          //------------------------------------------------------------------------------
     98          /// Returns the endpoint number targetted by a given request.
     99          /// \param request Pointer to a USBGenericRequest instance.
    100          /// \return Endpoint number.
    101          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
    102          unsigned char USBGenericRequest_GetEndpointNumber(
    103              const USBGenericRequest *request)
    104          {
   \                     USBGenericRequest_GetEndpointNumber:
   \   00000000   01402DE9           PUSH     {R0,LR}
    105              return USBGenericRequest_GetIndex(request) & 0xF;
   \   00000004   ........           BL       USBGenericRequest_GetIndex
   \   00000008   0F0000E2           AND      R0,R0,#0xF
   \   0000000C   0050BDE8           POP      {R12,LR}
   \   00000010   1EFF2FE1           BX       LR               ;; return
    106          }
    107          
    108          //------------------------------------------------------------------------------
    109          /// Returns the intended recipient of a given request.
    110          /// \param request Pointer to a USBGenericRequest instance.
    111          /// \return Request recipient.
    112          /// \sa "USB Request Recipients"
    113          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
    114          unsigned char USBGenericRequest_GetRecipient(const USBGenericRequest *request)
    115          {
    116              // Recipient is in bits [0..4] of the bmRequestType field
    117              return request->bmRequestType & 0xF;
   \                     USBGenericRequest_GetRecipient:
   \   00000000   0000D0E5           LDRB     R0,[R0, #+0]
   \   00000004   0F0000E2           AND      R0,R0,#0xF
   \   00000008   1EFF2FE1           BX       LR               ;; return
    118          }
    119          
    120          //------------------------------------------------------------------------------
    121          /// Returns the direction of the data transfer following the given request.
    122          /// \param request Pointer to a USBGenericRequest instance.
    123          /// \return Transfer direction.
    124          /// \sa "USB Request Directions"
    125          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
    126          unsigned char USBGenericRequest_GetDirection(const USBGenericRequest *request)
    127          {
    128              // Transfer direction is located in bit D7 of the bmRequestType field
    129              if ((request->bmRequestType & 0x80) != 0) {
   \                     USBGenericRequest_GetDirection:
   \   00000000   0000D0E5           LDRB     R0,[R0, #+0]
   \   00000004   800010E3           TST      R0,#0x80
   \   00000008   0000A003           MOVEQ    R0,#+0
    130          
    131                  return USBGenericRequest_IN;
   \   0000000C   0100A013           MOVNE    R0,#+1
   \   00000010   1EFF2FE1           BX       LR
    132              }
    133              else {
    134          
    135                  return USBGenericRequest_OUT;
    136              }
    137          }
    138          

   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        16
     USBGenericRequest_GetRequest      8
     USBGenericRequest_GetValue        8
     USBGenericRequest_GetIndex        8
     USBGenericRequest_GetLength       8
     USBGenericRequest_GetEndpointNumber
                                      20
     USBGenericRequest_GetRecipient   12
     USBGenericRequest_GetDirection   20

 
 100 bytes in section .text
 
 100 bytes of CODE memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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