📄 usbprinter.lst
字号:
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 + -