aboutsummaryrefslogtreecommitdiff
path: root/embassy-usb-synopsys-otg/src
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2024-11-23 00:13:15 +0100
committerDario Nieuwenhuis <[email protected]>2024-11-24 00:32:26 +0100
commit4f459bb91846ed9d72a26c0b751e56cfb0098d21 (patch)
tree0a05b91dffcf51e2958dea7388ebf0cbb4c07f0f /embassy-usb-synopsys-otg/src
parent1ca53e286b4e65f8b7ecceaee16bc553011f4b49 (diff)
otg: improve trace logging, print bytes as hex.
Diffstat (limited to 'embassy-usb-synopsys-otg/src')
-rw-r--r--embassy-usb-synopsys-otg/src/lib.rs12
1 files changed, 8 insertions, 4 deletions
diff --git a/embassy-usb-synopsys-otg/src/lib.rs b/embassy-usb-synopsys-otg/src/lib.rs
index f90403936..bd0ef04b0 100644
--- a/embassy-usb-synopsys-otg/src/lib.rs
+++ b/embassy-usb-synopsys-otg/src/lib.rs
@@ -18,6 +18,8 @@ use embassy_usb_driver::{
18 EndpointType, Event, Unsupported, 18 EndpointType, Event, Unsupported,
19}; 19};
20 20
21use crate::fmt::Bytes;
22
21pub mod otg_v1; 23pub mod otg_v1;
22 24
23use otg_v1::{regs, vals, Otg}; 25use otg_v1::{regs, vals, Otg};
@@ -29,6 +31,8 @@ pub unsafe fn on_interrupt<const MAX_EP_COUNT: usize>(
29 ep_count: usize, 31 ep_count: usize,
30 quirk_setup_late_cnak: bool, 32 quirk_setup_late_cnak: bool,
31) { 33) {
34 trace!("irq");
35
32 let ints = r.gintsts().read(); 36 let ints = r.gintsts().read();
33 if ints.wkupint() || ints.usbsusp() || ints.usbrst() || ints.enumdne() || ints.otgint() || ints.srqint() { 37 if ints.wkupint() || ints.usbsusp() || ints.usbrst() || ints.enumdne() || ints.otgint() || ints.srqint() {
34 // Mask interrupts and notify `Bus` to process them 38 // Mask interrupts and notify `Bus` to process them
@@ -1126,7 +1130,7 @@ impl<'d> embassy_usb_driver::EndpointOut for Endpoint<'d, Out> {
1126 1130
1127impl<'d> embassy_usb_driver::EndpointIn for Endpoint<'d, In> { 1131impl<'d> embassy_usb_driver::EndpointIn for Endpoint<'d, In> {
1128 async fn write(&mut self, buf: &[u8]) -> Result<(), EndpointError> { 1132 async fn write(&mut self, buf: &[u8]) -> Result<(), EndpointError> {
1129 trace!("write ep={:?} data={:?}", self.info.addr, buf); 1133 trace!("write ep={:?} data={:?}", self.info.addr, Bytes(buf));
1130 1134
1131 if buf.len() > self.info.max_packet_size as usize { 1135 if buf.len() > self.info.max_packet_size as usize {
1132 return Err(EndpointError::BufferOverflow); 1136 return Err(EndpointError::BufferOverflow);
@@ -1267,7 +1271,7 @@ impl<'d> embassy_usb_driver::ControlPipe for ControlPipe<'d> {
1267 .modify(|w| w.set_cnak(true)); 1271 .modify(|w| w.set_cnak(true));
1268 } 1272 }
1269 1273
1270 trace!("SETUP received: {:?}", data); 1274 trace!("SETUP received: {:?}", Bytes(&data));
1271 Poll::Ready(data) 1275 Poll::Ready(data)
1272 } else { 1276 } else {
1273 trace!("SETUP waiting"); 1277 trace!("SETUP waiting");
@@ -1280,12 +1284,12 @@ impl<'d> embassy_usb_driver::ControlPipe for ControlPipe<'d> {
1280 async fn data_out(&mut self, buf: &mut [u8], _first: bool, _last: bool) -> Result<usize, EndpointError> { 1284 async fn data_out(&mut self, buf: &mut [u8], _first: bool, _last: bool) -> Result<usize, EndpointError> {
1281 trace!("control: data_out"); 1285 trace!("control: data_out");
1282 let len = self.ep_out.read(buf).await?; 1286 let len = self.ep_out.read(buf).await?;
1283 trace!("control: data_out read: {:?}", &buf[..len]); 1287 trace!("control: data_out read: {:?}", Bytes(&buf[..len]));
1284 Ok(len) 1288 Ok(len)
1285 } 1289 }
1286 1290
1287 async fn data_in(&mut self, data: &[u8], _first: bool, last: bool) -> Result<(), EndpointError> { 1291 async fn data_in(&mut self, data: &[u8], _first: bool, last: bool) -> Result<(), EndpointError> {
1288 trace!("control: data_in write: {:?}", data); 1292 trace!("control: data_in write: {:?}", Bytes(data));
1289 self.ep_in.write(data).await?; 1293 self.ep_in.write(data).await?;
1290 1294
1291 // wait for status response from host after sending the last packet 1295 // wait for status response from host after sending the last packet