Răsfoiți Sursa

adding speed detect on bus reset

hathach 6 ani în urmă
părinte
comite
e92118635c
2 a modificat fișierele cu 6 adăugiri și 3 ștergeri
  1. 1 1
      hw/bsp/stm32h743eval/board.mk
  2. 5 2
      src/device/usbd.c

+ 1 - 1
hw/bsp/stm32h743eval/board.mk

@@ -48,7 +48,7 @@ FREERTOS_PORT = ARM_CM7/r0p1
 
 
 # For flash-jlink target
 # For flash-jlink target
 JLINK_DEVICE = stm32h743xi
 JLINK_DEVICE = stm32h743xi
-JLINK_IF = jtag
+JLINK_IF = swd
 
 
 # flash target using on-board stlink
 # flash target using on-board stlink
 flash: flash-stlink
 flash: flash-stlink

+ 5 - 2
src/device/usbd.c

@@ -40,7 +40,8 @@
 //--------------------------------------------------------------------+
 //--------------------------------------------------------------------+
 // Device Data
 // Device Data
 //--------------------------------------------------------------------+
 //--------------------------------------------------------------------+
-typedef struct {
+typedef struct
+{
   struct TU_ATTR_PACKED
   struct TU_ATTR_PACKED
   {
   {
     volatile uint8_t connected    : 1;
     volatile uint8_t connected    : 1;
@@ -53,6 +54,8 @@ typedef struct {
     uint8_t self_powered          : 1; // configuration descriptor's attribute
     uint8_t self_powered          : 1; // configuration descriptor's attribute
   };
   };
 
 
+  uint8_t speed;
+
   uint8_t itf2drv[16];     // map interface number to driver (0xff is invalid)
   uint8_t itf2drv[16];     // map interface number to driver (0xff is invalid)
   uint8_t ep2drv[8][2];    // map endpoint to driver ( 0xff is invalid )
   uint8_t ep2drv[8][2];    // map endpoint to driver ( 0xff is invalid )
 
 
@@ -384,7 +387,7 @@ void tud_task (void)
     {
     {
       case DCD_EVENT_BUS_RESET:
       case DCD_EVENT_BUS_RESET:
         usbd_reset(event.rhport);
         usbd_reset(event.rhport);
-        // TODO DCD should report operational speed (LS/FS/HS)
+        _usbd_dev.speed = event.bus_reset.speed;
       break;
       break;
 
 
       case DCD_EVENT_UNPLUGGED:
       case DCD_EVENT_UNPLUGGED: