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

📄 usbprinter.lst

📁 本程序是以前程序的升级
💻 LST
📖 第 1 页 / 共 2 页
字号:
    100          

   \                                 In section .text, align 4, keep-with-next
    101          static void USBPortRead()
    102          {
   \                     USBPortRead:
   \   00000000   01402DE9           PUSH     {R0,LR}
    103              if (USBD_GetState() < USBD_STATE_CONFIGURED) 
   \   00000004   ........           BL       USBD_GetState
   \   00000008   050050E3           CMP      R0,#+5
   \   0000000C   0800002A           BCS      ??USBPortRead_0
    104              {
    105                  USBD_Connect();
   \   00000010   ........           BL       USBD_Connect
    106                  while (USBD_GetState() < USBD_STATE_CONFIGURED);         
   \                     ??USBPortRead_1:
   \   00000014   ........           BL       USBD_GetState
   \   00000018   050050E3           CMP      R0,#+5
   \   0000001C   FCFFFF3A           BCC      ??USBPortRead_1
    107                  USBPrinterDriver_Read(usbBuffer,DATABUFFERSIZE,(TransferCallback) UsbDataReceived,0);
   \   00000020   0030A0E3           MOV      R3,#+0
   \   00000024   ........           LDR      R2,??DataTable15  ;; UsbDataReceived
   \   00000028   4010A0E3           MOV      R1,#+64
   \   0000002C   ........           LDR      R0,??DataTable16  ;; usbBuffer
   \   00000030   ........           BL       USBPrinterDriver_Read
    108              }
    109          }
   \                     ??USBPortRead_0:
   \   00000034   0050BDE8           POP      {R12,LR}
   \   00000038   1EFF2FE1           BX       LR               ;; return
    110          

   \                                 In section .text, align 4, keep-with-next
    111          void USBPortDisconect()
    112          {
   \                     USBPortDisconect:
   \   00000000   01402DE9           PUSH     {R0,LR}
    113            USBD_Disconnect();
    114          }
   \   00000004   0050BDE8           POP      {R12,LR}
   \   00000008   ........           B        USBD_Disconnect  ;; tailcall
    115          
    116          

   \                                 In section .text, align 4, keep-with-next
    117          void USBPrinter_HandleUpdataReday()
    118          {
   \                     USBPrinter_HandleUpdataReday:
   \   00000000   01402DE9           PUSH     {R0,LR}
    119            Flag_USBUpdataReday = 1;
   \   00000004   ........           LDR      R0,??DataTable26  ;; Flag_USBUpdataReday
   \   00000008   0110A0E3           MOV      R1,#+1
   \   0000000C   0010C0E5           STRB     R1,[R0, #+0]
    120            USBD_Stall(0); 
   \   00000010   ........           B        ?Subroutine0
    121          }

   \                                 In section .text, align 4, keep-with-next
   \                     ?Subroutine0:
   \   00000000   0000A0E3           MOV      R0,#+0
   \   00000004   0050BDE8           POP      {R12,LR}
   \   00000008   ........           B        USBD_Stall       ;; tailcall
    122          

   \                                 In section .text, align 4, keep-with-next
    123          void USBPrinter_HandleUpdataStart()
    124          {
   \                     USBPrinter_HandleUpdataStart:
   \   00000000   01402DE9           PUSH     {R0,LR}
    125            
    126            temp = AppBuf;
   \   00000004   ........           LDR      R0,??DataTable25  ;; temp
   \   00000008   ........           LDR      R1,??DataTable22  ;; AppBuf
   \   0000000C   001091E5           LDR      R1,[R1, #+0]
   \   00000010   001080E5           STR      R1,[R0, #+0]
    127            USBD_Stall(0);
   \   00000014                      REQUIRE ?Subroutine0
   \   00000014                      ;; // Fall through to label ?Subroutine0
    128            
    129          }
    130          

   \                                 In section .text, align 4, keep-with-next
    131          INTERFACE* IsUSBReday()
    132          {
   \                     IsUSBReday:
   \   00000000   01402DE9           PUSH     {R0,LR}
    133            
    134            USBPortRead();
   \   00000004   ........           BL       USBPortRead
    135            if(Flag_USBUpdataReday == 1)
   \   00000008   ........           LDR      R0,??DataTable26  ;; Flag_USBUpdataReday
   \   0000000C   0000D0E5           LDRB     R0,[R0, #+0]
   \   00000010   010050E3           CMP      R0,#+1
   \   00000014   1800001A           BNE      ??IsUSBReday_0
    136            {
    137             temp = AppBuf;
   \   00000018   ........           LDR      R0,??DataTable25  ;; temp
   \   0000001C   ........           LDR      R1,??DataTable22  ;; AppBuf
   \   00000020   001091E5           LDR      R1,[R1, #+0]
   \   00000024   001080E5           STR      R1,[R0, #+0]
    138              Inter.address = (unsigned int *)(temp+64);
   \   00000028   400081E2           ADD      R0,R1,#+64
   \   0000002C   54109FE5           LDR      R1,??IsUSBReday_1  ;; Inter
   \   00000030   000081E5           STR      R0,[R1, #+0]
    139              Inter.DFAddr = *(unsigned int *)(temp+4);
   \   00000034   50009FE5           LDR      R0,??IsUSBReday_1+0x4  ;; Inter + 4
   \   00000038   ........           LDR      R1,??DataTable25  ;; temp
   \   0000003C   001091E5           LDR      R1,[R1, #+0]
   \   00000040   041091E5           LDR      R1,[R1, #+4]
   \   00000044   001080E5           STR      R1,[R0, #+0]
    140              Inter.CSize =  *(unsigned int *)(temp+8); 
   \   00000048   40009FE5           LDR      R0,??IsUSBReday_1+0x8  ;; Inter + 8
   \   0000004C   ........           LDR      R1,??DataTable25  ;; temp
   \   00000050   001091E5           LDR      R1,[R1, #+0]
   \   00000054   081091E5           LDR      R1,[R1, #+8]
   \   00000058   001080E5           STR      R1,[R0, #+0]
    141              Inter.CRC = *(unsigned int*)(temp+12);
   \   0000005C   30009FE5           LDR      R0,??IsUSBReday_1+0xC  ;; Inter + 12
   \   00000060   ........           LDR      R1,??DataTable25  ;; temp
   \   00000064   001091E5           LDR      R1,[R1, #+0]
   \   00000068   0C1091E5           LDR      R1,[R1, #+12]
   \   0000006C   001080E5           STR      R1,[R0, #+0]
    142              ResetUpdataFlag();
   \   00000070   ........           BL       ResetUpdataFlag
    143              return &Inter;
   \   00000074   0C009FE5           LDR      R0,??IsUSBReday_1  ;; Inter
   \   00000078   000000EA           B        ??IsUSBReday_2
    144            }
    145            return NULL;
   \                     ??IsUSBReday_0:
   \   0000007C   0000A0E3           MOV      R0,#+0
   \                     ??IsUSBReday_2:
   \   00000080   0050BDE8           POP      {R12,LR}
   \   00000084   1EFF2FE1           BX       LR               ;; return
   \                     ??IsUSBReday_1:
   \   00000088   ........           DC32     Inter
   \   0000008C   ........           DC32     Inter + 4
   \   00000090   ........           DC32     Inter + 8
   \   00000094   ........           DC32     Inter + 12
    146          }
    147          
    148          

   \                                 In section .text, align 4, keep-with-next
    149          void ResetUpdataFlag()
    150          {
    151            Flag_USBUpdataReday = 0;
   \                     ResetUpdataFlag:
   \   00000000   ........           LDR      R0,??DataTable26  ;; Flag_USBUpdataReday
   \   00000004   0010A0E3           MOV      R1,#+0
   \   00000008   0010C0E5           STRB     R1,[R0, #+0]
    152          }
   \   0000000C   1EFF2FE1           BX       LR               ;; return

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable4:
   \   00000000   ........           DC32     pinVbus

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable14:
   \   00000000   ........           DC32     size

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable15:
   \   00000000   ........           DC32     UsbDataReceived

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable16:
   \   00000000   ........           DC32     usbBuffer

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable22:
   \   00000000   ........           DC32     AppBuf

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable25:
   \   00000000   ........           DC32     temp

   \                                 In section .text, align 4, keep-with-next
   \                     ??DataTable26:
   \   00000000   ........           DC32     Flag_USBUpdataReday

   \                                 In section .rodata, align 4
   \                     `?<Constant "-I- VBus_Configure ">`:
   \   00000000   2D492D205642       DC8 "-I- VBus_Configure "
   \              75735F436F6E
   \              666967757265
   \              2000        

   \                                 In section .rodata, align 4
   \                     `?<Constant "-I- UsbDataReceived: ...">`:
   \   00000000   2D492D205573       DC8 "-I- UsbDataReceived: %x bytes\012\015"
   \              624461746152
   \              656365697665
   \              643A20257820
   \              62797465730A
   \              0D00        

   \                                 In section .rodata, align 4
   \                     `?<Constant "-I- UsbDataReceived:%...">`:
   \   00000000   2D492D205573       DC8 "-I- UsbDataReceived:%x byte\012\015"
   \              624461746152
   \              656365697665
   \              643A25782062
   \              7974650A0D00
   \   0000001E   0000               DC8 0, 0

   Maximum stack usage in bytes:

     Function                     .cstack
     --------                     -------
     ISR_Vbus                          8
     IsUSBReday                        8
     ReceiveData                       0
     ResetUpdataFlag                   0
     USBPortDisconect                  8
     USBPortInit                       8
     USBPortRead                       8
     USBPrinter_HandleUpdataReday      8
     USBPrinter_HandleUpdataStart      8
     UsbDataReceived                  16
     VBus_Configure                    8


   Section sizes:

     Function/Label                 Bytes
     --------------                 -----
     Flag_USBUpdataReday               1
     usbBuffer                        64
     pinVbus                          12
     Inter                            64
     AppBuf                            4
     temp                              4
     ISR_Vbus                         36
     VBus_Configure                   84
     ReceiveData                      68
     UsbDataReceived                 100
     USBPortInit                      64
     USBPortRead                      60
     USBPortDisconect                 12
     USBPrinter_HandleUpdataReday     20
     ?Subroutine0                     12
     USBPrinter_HandleUpdataStart     20
     IsUSBReday                      152
     ResetUpdataFlag                  16
     ??DataTable4                      4
     ??DataTable14                     4
     ??DataTable15                     4
     ??DataTable16                     4
     ??DataTable22                     4
     ??DataTable25                     4
     ??DataTable26                     4
     ?<Constant "-I- VBus_Configure ">
                                      20
     ?<Constant "-I- UsbDataReceived: ...">
                                      32
     ?<Constant "-I- UsbDataReceived:%...">
                                      32

 
 137 bytes in section .bss
  96 bytes in section .rodata
 672 bytes in section .text
 
 672 bytes of CODE  memory
  96 bytes of CONST memory
 137 bytes of DATA  memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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