diff options
| -rw-r--r-- | embassy-stm32/src/usb/otg.rs | 1 | ||||
| -rw-r--r-- | embassy-usb-synopsys-otg/src/lib.rs | 12 |
2 files changed, 8 insertions, 5 deletions
diff --git a/embassy-stm32/src/usb/otg.rs b/embassy-stm32/src/usb/otg.rs index 00cafe6e4..153542fbd 100644 --- a/embassy-stm32/src/usb/otg.rs +++ b/embassy-stm32/src/usb/otg.rs | |||
| @@ -24,7 +24,6 @@ pub struct InterruptHandler<T: Instance> { | |||
| 24 | 24 | ||
| 25 | impl<T: Instance> interrupt::typelevel::Handler<T::Interrupt> for InterruptHandler<T> { | 25 | impl<T: Instance> interrupt::typelevel::Handler<T::Interrupt> for InterruptHandler<T> { |
| 26 | unsafe fn on_interrupt() { | 26 | unsafe fn on_interrupt() { |
| 27 | trace!("irq"); | ||
| 28 | let r = T::regs(); | 27 | let r = T::regs(); |
| 29 | let state = T::state(); | 28 | let state = T::state(); |
| 30 | 29 | ||
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 | ||
| 21 | use crate::fmt::Bytes; | ||
| 22 | |||
| 21 | pub mod otg_v1; | 23 | pub mod otg_v1; |
| 22 | 24 | ||
| 23 | use otg_v1::{regs, vals, Otg}; | 25 | use 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 | ||
| 1127 | impl<'d> embassy_usb_driver::EndpointIn for Endpoint<'d, In> { | 1131 | impl<'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 |
