📄 usbprinter.lst
字号:
97 static void USBPortRead()
98 {
\ USBPortRead:
\ 00000000 01402DE9 PUSH {R0,LR}
99 if (USBD_GetState() < USBD_STATE_CONFIGURED)
\ 00000004 ........ BL USBD_GetState
\ 00000008 050050E3 CMP R0,#+5
\ 0000000C 0800002A BCS ??USBPortRead_0
100 {
101 USBD_Connect();
\ 00000010 ........ BL USBD_Connect
102 while (USBD_GetState() < USBD_STATE_CONFIGURED);
\ ??USBPortRead_1:
\ 00000014 ........ BL USBD_GetState
\ 00000018 050050E3 CMP R0,#+5
\ 0000001C FCFFFF3A BCC ??USBPortRead_1
103 USBPrinterDriver_Read(usbBuffer,DATABUFFERSIZE,(TransferCallback) UsbDataReceived,0);
\ 00000020 0030A0E3 MOV R3,#+0
\ 00000024 ........ LDR R2,??DataTable12 ;; UsbDataReceived
\ 00000028 4010A0E3 MOV R1,#+64
\ 0000002C ........ LDR R0,??DataTable13 ;; usbBuffer
\ 00000030 ........ BL USBPrinterDriver_Read
104 }
105 }
\ ??USBPortRead_0:
\ 00000034 0050BDE8 POP {R12,LR}
\ 00000038 1EFF2FE1 BX LR ;; return
106
\ In section .text, align 4, keep-with-next
107 void USBPortDisconect()
108 {
\ USBPortDisconect:
\ 00000000 01402DE9 PUSH {R0,LR}
109 USBD_Disconnect();
110 }
\ 00000004 0050BDE8 POP {R12,LR}
\ 00000008 ........ B USBD_Disconnect ;; tailcall
111
112
\ In section .text, align 4, keep-with-next
113 void USBPrinter_HandleUpdataReday()
114 {
\ USBPrinter_HandleUpdataReday:
\ 00000000 01402DE9 PUSH {R0,LR}
115 Flag_USBUpdataReday = 1;
\ 00000004 ........ LDR R0,??DataTable23 ;; Flag_USBUpdataReday
\ 00000008 0110A0E3 MOV R1,#+1
\ 0000000C 0010C0E5 STRB R1,[R0, #+0]
116 USBD_Stall(0);
\ 00000010 ........ B ?Subroutine0
117 }
\ In section .text, align 4, keep-with-next
\ ?Subroutine0:
\ 00000000 0000A0E3 MOV R0,#+0
\ 00000004 0050BDE8 POP {R12,LR}
\ 00000008 ........ B USBD_Stall ;; tailcall
118
\ In section .text, align 4, keep-with-next
119 void USBPrinter_HandleUpdataStart()
120 {
\ USBPrinter_HandleUpdataStart:
\ 00000000 01402DE9 PUSH {R0,LR}
121
122 temp = AppBuf;
\ 00000004 ........ LDR R0,??DataTable22 ;; temp
\ 00000008 ........ LDR R1,??DataTable19 ;; AppBuf
\ 0000000C 001091E5 LDR R1,[R1, #+0]
\ 00000010 001080E5 STR R1,[R0, #+0]
123 USBD_Stall(0);
\ 00000014 REQUIRE ?Subroutine0
\ 00000014 ;; // Fall through to label ?Subroutine0
124
125 }
126
\ In section .text, align 4, keep-with-next
127 INTERFACE* IsUSBReday()
128 {
\ IsUSBReday:
\ 00000000 01402DE9 PUSH {R0,LR}
129
130 USBPortRead();
\ 00000004 ........ BL USBPortRead
131 if(Flag_USBUpdataReday == 1)
\ 00000008 ........ LDR R0,??DataTable23 ;; Flag_USBUpdataReday
\ 0000000C 0000D0E5 LDRB R0,[R0, #+0]
\ 00000010 010050E3 CMP R0,#+1
\ 00000014 1800001A BNE ??IsUSBReday_0
132 {
133 temp = AppBuf;
\ 00000018 ........ LDR R0,??DataTable22 ;; temp
\ 0000001C ........ LDR R1,??DataTable19 ;; AppBuf
\ 00000020 001091E5 LDR R1,[R1, #+0]
\ 00000024 001080E5 STR R1,[R0, #+0]
134 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]
135 Inter.DFAddr = *(unsigned int *)(temp+4);
\ 00000034 50009FE5 LDR R0,??IsUSBReday_1+0x4 ;; Inter + 4
\ 00000038 ........ LDR R1,??DataTable22 ;; temp
\ 0000003C 001091E5 LDR R1,[R1, #+0]
\ 00000040 041091E5 LDR R1,[R1, #+4]
\ 00000044 001080E5 STR R1,[R0, #+0]
136 Inter.CSize = *(unsigned int *)(temp+8);
\ 00000048 40009FE5 LDR R0,??IsUSBReday_1+0x8 ;; Inter + 8
\ 0000004C ........ LDR R1,??DataTable22 ;; temp
\ 00000050 001091E5 LDR R1,[R1, #+0]
\ 00000054 081091E5 LDR R1,[R1, #+8]
\ 00000058 001080E5 STR R1,[R0, #+0]
137 Inter.CRC = *(unsigned int*)(temp+12);
\ 0000005C 30009FE5 LDR R0,??IsUSBReday_1+0xC ;; Inter + 12
\ 00000060 ........ LDR R1,??DataTable22 ;; temp
\ 00000064 001091E5 LDR R1,[R1, #+0]
\ 00000068 0C1091E5 LDR R1,[R1, #+12]
\ 0000006C 001080E5 STR R1,[R0, #+0]
138 ResetUpdataFlag();
\ 00000070 ........ BL ResetUpdataFlag
139 return &Inter;
\ 00000074 0C009FE5 LDR R0,??IsUSBReday_1 ;; Inter
\ 00000078 000000EA B ??IsUSBReday_2
140 }
141 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
142 }
143
144
\ In section .text, align 4, keep-with-next
145 void ResetUpdataFlag()
146 {
147 Flag_USBUpdataReday = 0;
\ ResetUpdataFlag:
\ 00000000 ........ LDR R0,??DataTable23 ;; Flag_USBUpdataReday
\ 00000004 0010A0E3 MOV R1,#+0
\ 00000008 0010C0E5 STRB R1,[R0, #+0]
148 }
\ 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
\ ??DataTable12:
\ 00000000 ........ DC32 UsbDataReceived
\ In section .text, align 4, keep-with-next
\ ??DataTable13:
\ 00000000 ........ DC32 usbBuffer
\ In section .text, align 4, keep-with-next
\ ??DataTable19:
\ 00000000 ........ DC32 AppBuf
\ In section .text, align 4, keep-with-next
\ ??DataTable22:
\ 00000000 ........ DC32 temp
\ In section .text, align 4, keep-with-next
\ ??DataTable23:
\ 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 48
UsbDataReceived 100
USBPortInit 52
USBPortRead 60
USBPortDisconect 12
USBPrinter_HandleUpdataReday 20
?Subroutine0 12
USBPrinter_HandleUpdataStart 20
IsUSBReday 152
ResetUpdataFlag 16
??DataTable4 4
??DataTable12 4
??DataTable13 4
??DataTable19 4
??DataTable22 4
??DataTable23 4
?<Constant "-I- VBus_Configure ">
20
?<Constant "-I- UsbDataReceived: ...">
32
?<Constant "-I- UsbDataReceived:%...">
32
137 bytes in section .bss
96 bytes in section .rodata
636 bytes in section .text
636 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 + -