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

📄 usbendpointdescriptor.lst

📁 本代bootloader通过usb下载代码首先存放在sdram中
💻 LST
字号:
###############################################################################
#                                                                             #
#                                                       24/Apr/2009  16:18:18 #
# IAR ARM ANSI C/C++ Compiler V5.11.0.20622/W32 EVALUATION                    #
# Copyright 1999-2007 IAR Systems. All rights reserved.                       #
#                                                                             #
#    Cpu mode     =  arm                                                      #
#    Endian       =  little                                                   #
#    Source file  =  D:\basic-dataflash-project-at91sam7se-ek\at91lib\usb\com #
#                    mon\core\USBEndpointDescriptor.c                         #
#    Command line =  D:\basic-dataflash-project-at91sam7se-ek\at91lib\usb\com #
#                    mon\core\USBEndpointDescriptor.c -D at91sam7se512 -D     #
#                    sram -D TRACE_LEVEL=4 -lC D:\basic-dataflash-project-at9 #
#                    1sam7se-ek\at91sam7se-ek\basic-dataflash-project\ewp\at9 #
#                    1sam7se512_sram\List\ --remarks --diag_suppress          #
#                    Pe826,Pe1375 -o D:\basic-dataflash-project-at91sam7se-ek #
#                    \at91sam7se-ek\basic-dataflash-project\ewp\at91sam7se512 #
#                    _sram\Obj\ --no_cse --no_unroll --no_inline              #
#                    --no_code_motion --no_tbaa --no_clustering               #
#                    --no_scheduling --debug --endian little --cpu ARM7TDMI   #
#                    -e --fpu None --dlib_config "D:\Program                  #
#                    Files\arm\ARM\INC\DLib_Config_Full.h" -I                 #
#                    D:\basic-dataflash-project-at91sam7se-ek\at91sam7se-ek\b #
#                    asic-dataflash-project\ewp\..\..\..\at91lib/peripherals\ #
#                     -I D:\basic-dataflash-project-at91sam7se-ek\at91sam7se- #
#                    ek\basic-dataflash-project\ewp\..\..\..\at91lib\ -I      #
#                    D:\basic-dataflash-project-at91sam7se-ek\at91sam7se-ek\b #
#                    asic-dataflash-project\ewp\..\..\..\at91lib/memories\    #
#                    -I D:\basic-dataflash-project-at91sam7se-ek\at91sam7se-e #
#                    k\basic-dataflash-project\ewp\..\..\..\at91lib/boards/at #
#                    91sam7se-ek\ -I "D:\Program Files\arm\ARM\INC\"          #
#                    --interwork --cpu_mode arm -Oh                           #
#    List file    =  D:\basic-dataflash-project-at91sam7se-ek\at91sam7se-ek\b #
#                    asic-dataflash-project\ewp\at91sam7se512_sram\List\USBEn #
#                    dpointDescriptor.lst                                     #
#    Object file  =  D:\basic-dataflash-project-at91sam7se-ek\at91sam7se-ek\b #
#                    asic-dataflash-project\ewp\at91sam7se512_sram\Obj\USBEnd #
#                    pointDescriptor.o                                        #
#                                                                             #
#                                                                             #
###############################################################################

D:\basic-dataflash-project-at91sam7se-ek\at91lib\usb\common\core\USBEndpointDescriptor.c
      1          /* ----------------------------------------------------------------------------
      2           *         ATMEL Microcontroller Software Support 
      3           * ----------------------------------------------------------------------------
      4           * Copyright (c) 2008, Atmel Corporation
      5           *
      6           * All rights reserved.
      7           *
      8           * Redistribution and use in source and binary forms, with or without
      9           * modification, are permitted provided that the following conditions are met:
     10           *
     11           * - Redistributions of source code must retain the above copyright notice,
     12           * this list of conditions and the disclaimer below.
     13           *
     14           * Atmel's name may not be used to endorse or promote products derived from
     15           * this software without specific prior written permission.
     16           *
     17           * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
     18           * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
     19           * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
     20           * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
     21           * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     22           * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
     23           * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
     24           * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
     25           * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     26           * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27           * ----------------------------------------------------------------------------
     28           */
     29          
     30          /*
     31              Title: USBEndpointDescriptor implementation
     32          
     33              About: Purpose
     34                  Implementation of the USBEndpointDescriptor class.
     35          */
     36          
     37          //------------------------------------------------------------------------------
     38          //         Headers
     39          //------------------------------------------------------------------------------
     40          
     41          #include "USBEndpointDescriptor.h"
     42          
     43          //------------------------------------------------------------------------------
     44          //         Exported functions
     45          //------------------------------------------------------------------------------
     46          
     47          //------------------------------------------------------------------------------
     48          /// Returns the number of an endpoint given its descriptor.
     49          /// \param endpoint Pointer to a USBEndpointDescriptor instance.
     50          /// \return Endpoint number.
     51          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
     52          unsigned char USBEndpointDescriptor_GetNumber(
     53              const USBEndpointDescriptor *endpoint)
     54          {
     55              return endpoint->bEndpointAddress & 0xF;
   \                     USBEndpointDescriptor_GetNumber:
   \   00000000   0200D0E5           LDRB     R0,[R0, #+2]
   \   00000004   0F0000E2           AND      R0,R0,#0xF
   \   00000008   1EFF2FE1           BX       LR               ;; return
     56          }
     57          
     58          //------------------------------------------------------------------------------
     59          /// Returns the direction of an endpoint given its descriptor.
     60          /// \param endpoint Pointer to a USBEndpointDescriptor instance.
     61          /// \return Endpoint direction (see <Endpoint directions>).
     62          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
     63          unsigned char USBEndpointDescriptor_GetDirection(
     64              const USBEndpointDescriptor *endpoint)
     65          {
     66              if ((endpoint->bEndpointAddress & 0x80) != 0) {
   \                     USBEndpointDescriptor_GetDirection:
   \   00000000   0200D0E5           LDRB     R0,[R0, #+2]
   \   00000004   800010E3           TST      R0,#0x80
   \   00000008   0000A003           MOVEQ    R0,#+0
     67          
     68                  return USBEndpointDescriptor_IN;
   \   0000000C   0100A013           MOVNE    R0,#+1
   \   00000010   1EFF2FE1           BX       LR
     69              }
     70              else {
     71          
     72                  return USBEndpointDescriptor_OUT;
     73              }
     74          }
     75          
     76          //------------------------------------------------------------------------------
     77          /// Returns the type of an endpoint given its descriptor.
     78          /// \param endpoint Pointer to a USBEndpointDescriptor instance.
     79          /// \return Endpoint type (see <Endpoint types>).
     80          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
     81          unsigned char USBEndpointDescriptor_GetType(
     82              const USBEndpointDescriptor *endpoint)
     83          {
     84              return endpoint->bmAttributes & 0x3;
   \                     USBEndpointDescriptor_GetType:
   \   00000000   0300D0E5           LDRB     R0,[R0, #+3]
   \   00000004   030000E2           AND      R0,R0,#0x3
   \   00000008   1EFF2FE1           BX       LR               ;; return
     85          }
     86          
     87          //------------------------------------------------------------------------------
     88          /// Returns the maximum size of a packet (in bytes) on an endpoint given
     89          /// its descriptor.
     90          /// \param endpoint - Pointer to a USBEndpointDescriptor instance.
     91          /// \return Maximum packet size of endpoint.
     92          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
     93          unsigned short USBEndpointDescriptor_GetMaxPacketSize(
     94              const USBEndpointDescriptor *endpoint)
     95          {
     96              return endpoint->wMaxPacketSize;
   \                     USBEndpointDescriptor_GetMaxPacketSize:
   \   00000000   0510D0E5           LDRB     R1,[R0, #+5]
   \   00000004   0420D0E5           LDRB     R2,[R0, #+4]
   \   00000008   010482E1           ORR      R0,R2,R1, LSL #+8
   \   0000000C   1EFF2FE1           BX       LR               ;; return
     97          }
     98          

   Maximum stack usage in bytes:

     Function                       .cstack
     --------                       -------
     USBEndpointDescriptor_GetDirection
                                         0
     USBEndpointDescriptor_GetMaxPacketSize
                                         0
     USBEndpointDescriptor_GetNumber
                                         0
     USBEndpointDescriptor_GetType       0


   Section sizes:

     Function/Label                 Bytes
     --------------                 -----
     USBEndpointDescriptor_GetNumber
                                      12
     USBEndpointDescriptor_GetDirection
                                      20
     USBEndpointDescriptor_GetType    12
     USBEndpointDescriptor_GetMaxPacketSize
                                      16

 
 60 bytes in section .text
 
 60 bytes of CODE memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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