📄 usbprinterdriver.lst
字号:
\ In section .text, align 4, keep-with-next
108 void USBPrinterDriver_RequestHandler(const USBGenericRequest *request)
109 {
\ USBPrinterDriver_RequestHandler:
\ 00000000 10402DE9 PUSH {R4,LR}
\ 00000004 0040A0E1 MOV R4,R0
110 TRACE_INFO_WP("NewReq ");
\ 00000008 28009FE5 LDR R0,??USBPrinterDriver_RequestHandler_0 ;; `?<Constant "NewReq ">`
\ 0000000C ........ BL printf
111
112 // Handle the request
113 switch (USBGenericRequest_GetRequest(request)) {
\ 00000010 0400A0E1 MOV R0,R4
\ 00000014 ........ BL USBGenericRequest_GetRequest
\ 00000018 190050E3 CMP R0,#+25
\ 0000001C 0100001A BNE ??USBPrinterDriver_RequestHandler_1
114
115 case USBPrinterGenericRequest_UadataReday:
116 USBPrinter_HandleUpdataReday();
\ 00000020 1040BDE8 POP {R4,LR}
\ 00000024 ........ B USBPrinter_HandleUpdataReday ;; tailcall
117 break;
118 default:
119 USBDDriver_RequestHandler(&(usbPrinterDriver.usbdDriver), request);
\ ??USBPrinterDriver_RequestHandler_1:
\ 00000028 0410A0E1 MOV R1,R4
\ 0000002C ........ LDR R0,??DataTable1 ;; usbPrinterDriver
120 break;
121 }
122 }
\ 00000030 1040BDE8 POP {R4,LR}
\ 00000034 ........ B USBDDriver_RequestHandler ;; tailcall
\ ??USBPrinterDriver_RequestHandler_0:
\ 00000038 ........ DC32 `?<Constant "NewReq ">`
123
124 //------------------------------------------------------------------------------
125 /// Receives data from the host through the virtual COM port created by
126 /// the CDC device serial driver. This function behaves like USBD_Read.
127 /// \param data Pointer to the data buffer to put received data.
128 /// \param size Size of the data buffer in bytes.
129 /// \param callback Optional callback function to invoke when the transfer
130 /// finishes.
131 /// \param argument Optional argument to the callback function.
132 /// \return USBD_STATUS_SUCCESS if the read operation has been started normally;
133 /// otherwise, the corresponding error code.
134 //------------------------------------------------------------------------------
\ In section .text, align 4, keep-with-next
135 unsigned char USBPrinterDriver_Read(void *data,
136 unsigned int size,
137 TransferCallback callback,
138 void *argument)
139 {
\ USBPrinterDriver_Read:
\ 00000000 01402DE9 PUSH {R0,LR}
140 return USBD_Read(USBPrinterDriverDescriptors_DATAOUT,
141 data,
142 size,
143 callback,
144 argument);
\ 00000004 08D04DE2 SUB SP,SP,#+8
\ 00000008 00308DE5 STR R3,[SP, #+0]
\ 0000000C 0230A0E1 MOV R3,R2
\ 00000010 0120A0E1 MOV R2,R1
\ 00000014 0010A0E1 MOV R1,R0
\ 00000018 0100A0E3 MOV R0,#+1
\ 0000001C ........ BL USBD_Read
\ 00000020 ........ B ?Subroutine0
145 }
\ In section .text, align 4, keep-with-next
\ ?Subroutine0:
\ 00000000 08D08DE2 ADD SP,SP,#+8 ;; stack cleaning
\ 00000004 0050BDE8 POP {R12,LR}
\ 00000008 1EFF2FE1 BX LR ;; return
146
147 //------------------------------------------------------------------------------
148 /// Sends a data buffer through the virtual COM port created by the CDC
149 /// device serial driver. This function behaves exactly like USBD_Write.
150 /// \param data Pointer to the data buffer to send.
151 /// \param size Size of the data buffer in bytes.
152 /// \param callback Optional callback function to invoke when the transfer
153 /// finishes.
154 /// \param argument Optional argument to the callback function.
155 /// \return USBD_STATUS_SUCCESS if the read operation has been started normally;
156 /// otherwise, the corresponding error code.
157 //------------------------------------------------------------------------------
\ In section .text, align 4, keep-with-next
158 unsigned char USBPrinterDriver_Write(void *data,
159 unsigned int size,
160 TransferCallback callback,
161 void *argument)
162 {
\ USBPrinterDriver_Write:
\ 00000000 01402DE9 PUSH {R0,LR}
163 return USBD_Write(USBPrinterDriverDescriptors_DATAIN,
164 data,
165 size,
166 callback,
167 argument);
\ 00000004 08D04DE2 SUB SP,SP,#+8
\ 00000008 00308DE5 STR R3,[SP, #+0]
\ 0000000C 0230A0E1 MOV R3,R2
\ 00000010 0120A0E1 MOV R2,R1
\ 00000014 0010A0E1 MOV R1,R0
\ 00000018 0200A0E3 MOV R0,#+2
\ 0000001C ........ BL USBD_Write
\ 00000020 REQUIRE ?Subroutine0
\ 00000020 ;; // Fall through to label ?Subroutine0
168 }
\ In section .text, align 4, keep-with-next
\ ??DataTable1:
\ 00000000 ........ DC32 usbPrinterDriver
\ In section .rodata, align 4
\ `?<Constant "-I- USBPrinterDriver_...">`:
\ 00000000 2D492D205553 DC8 "-I- USBPrinterDriver_Initialize\012\015"
\ 425072696E74
\ 657244726976
\ 65725F496E69
\ 7469616C697A
\ 650A0D00
\ 00000022 0000 DC8 0, 0
\ In section .rodata, align 4
\ `?<Constant "NewReq ">`:
\ 00000000 4E6577526571 DC8 "NewReq "
\ 2000
169
Maximum stack usage in bytes:
Function .cstack
-------- -------
USBDCallbacks_RequestReceived 8
USBPrinterDriver_Initialize 8
USBPrinterDriver_Read 16
USBPrinterDriver_RequestHandler
8
USBPrinterDriver_Write 16
Section sizes:
Function/Label Bytes
-------------- -----
usbPrinterDriver 12
USBDCallbacks_RequestReceived 12
USBPrinterDriver_Initialize 44
USBPrinterDriver_RequestHandler
60
USBPrinterDriver_Read 36
?Subroutine0 12
USBPrinterDriver_Write 32
??DataTable1 4
?<Constant "-I- USBPrinterDriver_...">
36
?<Constant "NewReq "> 8
12 bytes in section .bss
44 bytes in section .rodata
200 bytes in section .text
200 bytes of CODE memory
44 bytes of CONST memory
12 bytes of DATA memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -