diff options
| author | Dario Nieuwenhuis <[email protected]> | 2022-03-07 00:24:13 +0100 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2022-03-07 00:32:31 +0100 |
| commit | 88d9599a63a89a1ba2c107671945e034e16a3f30 (patch) | |
| tree | 3b88926f318570f770816bacfe1d4e36365c1018 /embassy-hal-common | |
| parent | 24b6478a7ced1e98165e4776894c439e86507763 (diff) | |
common/usb/serial: add some trace logging.
Diffstat (limited to 'embassy-hal-common')
| -rw-r--r-- | embassy-hal-common/src/usb/usb_serial.rs | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/embassy-hal-common/src/usb/usb_serial.rs b/embassy-hal-common/src/usb/usb_serial.rs index 2592d05a6..20a1840b2 100644 --- a/embassy-hal-common/src/usb/usb_serial.rs +++ b/embassy-hal-common/src/usb/usb_serial.rs | |||
| @@ -167,6 +167,7 @@ impl<'bus, 'a, B: UsbBus> AsyncWrite for UsbSerial<'bus, 'a, B> { | |||
| 167 | 167 | ||
| 168 | let write_buf = this.write_buf.push_buf(); | 168 | let write_buf = this.write_buf.push_buf(); |
| 169 | if write_buf.is_empty() { | 169 | if write_buf.is_empty() { |
| 170 | trace!("buf full, registering waker"); | ||
| 170 | this.write_waker.register(cx.waker()); | 171 | this.write_waker.register(cx.waker()); |
| 171 | return Poll::Pending; | 172 | return Poll::Pending; |
| 172 | } | 173 | } |
| @@ -244,10 +245,18 @@ impl<'bus, 'a, B: UsbBus> UsbSerial<'bus, 'a, B> { | |||
| 244 | }; | 245 | }; |
| 245 | 246 | ||
| 246 | if !buf.is_empty() { | 247 | if !buf.is_empty() { |
| 248 | trace!("writing packet len {}", buf.len()); | ||
| 247 | let count = match self.inner.write_packet(buf) { | 249 | let count = match self.inner.write_packet(buf) { |
| 248 | Ok(c) => c, | 250 | Ok(c) => { |
| 249 | Err(UsbError::WouldBlock) => 0, | 251 | trace!("write packet: OK {}", c); |
| 252 | c | ||
| 253 | } | ||
| 254 | Err(UsbError::WouldBlock) => { | ||
| 255 | trace!("write packet: WouldBlock"); | ||
| 256 | 0 | ||
| 257 | } | ||
| 250 | Err(_) => { | 258 | Err(_) => { |
| 259 | trace!("write packet: error"); | ||
| 251 | self.write_error = true; | 260 | self.write_error = true; |
| 252 | return; | 261 | return; |
| 253 | } | 262 | } |
| @@ -260,11 +269,20 @@ impl<'bus, 'a, B: UsbBus> UsbSerial<'bus, 'a, B> { | |||
| 260 | } | 269 | } |
| 261 | self.write_buf.pop(count); | 270 | self.write_buf.pop(count); |
| 262 | } else if full_size_packets > 0 { | 271 | } else if full_size_packets > 0 { |
| 263 | if let Err(e) = self.inner.write_packet(&[]) { | 272 | trace!("writing empty packet"); |
| 264 | if !matches!(e, UsbError::WouldBlock) { | 273 | match self.inner.write_packet(&[]) { |
| 274 | Ok(_) => { | ||
| 275 | trace!("write empty packet: OK"); | ||
| 276 | } | ||
| 277 | Err(UsbError::WouldBlock) => { | ||
| 278 | trace!("write empty packet: WouldBlock"); | ||
| 279 | return; | ||
| 280 | } | ||
| 281 | Err(_) => { | ||
| 282 | trace!("write empty packet: Error"); | ||
| 265 | self.write_error = true; | 283 | self.write_error = true; |
| 284 | return; | ||
| 266 | } | 285 | } |
| 267 | return; | ||
| 268 | } | 286 | } |
| 269 | self.write_state = WriteState::Idle; | 287 | self.write_state = WriteState::Idle; |
| 270 | } | 288 | } |
| @@ -287,7 +305,9 @@ where | |||
| 287 | } | 305 | } |
| 288 | 306 | ||
| 289 | fn endpoint_in_complete(&mut self, addr: EndpointAddress) { | 307 | fn endpoint_in_complete(&mut self, addr: EndpointAddress) { |
| 308 | trace!("DONE endpoint_in_complete"); | ||
| 290 | if addr == self.inner.write_ep_address() { | 309 | if addr == self.inner.write_ep_address() { |
| 310 | trace!("DONE writing packet, waking"); | ||
| 291 | self.write_waker.wake(); | 311 | self.write_waker.wake(); |
| 292 | 312 | ||
| 293 | self.flush_write(); | 313 | self.flush_write(); |
