summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2025-05-30 19:01:16 +0800
committersakumisu <[email protected]>2025-06-03 22:43:35 +0800
commit0251e3a145dc9f8592962210b954435958f8860f (patch)
treeed64d0e450e543c2598fea6d45bd9799331c53ab
parentf7c354b4eb747c7b5bd052245361e576c2bf879b (diff)
update(port/dwc2): implement usbd_dwc2_delay_ms with nop delay
Signed-off-by: sakumisu <[email protected]>
-rw-r--r--port/dwc2/usb_glue_at.c9
-rw-r--r--port/dwc2/usb_glue_gd.c9
-rw-r--r--port/dwc2/usb_glue_hc.c9
-rw-r--r--port/dwc2/usb_glue_nation.c8
-rw-r--r--port/dwc2/usb_glue_st.c7
5 files changed, 34 insertions, 8 deletions
diff --git a/port/dwc2/usb_glue_at.c b/port/dwc2/usb_glue_at.c
index 8d45f651..636ce12c 100644
--- a/port/dwc2/usb_glue_at.c
+++ b/port/dwc2/usb_glue_at.c
@@ -56,7 +56,12 @@ uint32_t usbh_get_dwc2_gccfg_conf(uint32_t reg_base)
#endif
}
+extern uint32_t SystemCoreClock;
+
void usbd_dwc2_delay_ms(uint8_t ms)
{
- /* implement later */
-} \ No newline at end of file
+ uint32_t count = SystemCoreClock / 1000 * ms;
+ while (count--) {
+ __asm volatile("nop");
+ }
+}
diff --git a/port/dwc2/usb_glue_gd.c b/port/dwc2/usb_glue_gd.c
index f3fa4d92..cd6e4c09 100644
--- a/port/dwc2/usb_glue_gd.c
+++ b/port/dwc2/usb_glue_gd.c
@@ -35,7 +35,12 @@ uint32_t usbh_get_dwc2_gccfg_conf(uint32_t reg_base)
#endif
}
+extern uint32_t SystemCoreClock;
+
void usbd_dwc2_delay_ms(uint8_t ms)
{
- /* implement later */
-} \ No newline at end of file
+ uint32_t count = SystemCoreClock / 1000 * ms;
+ while (count--) {
+ __asm volatile("nop");
+ }
+}
diff --git a/port/dwc2/usb_glue_hc.c b/port/dwc2/usb_glue_hc.c
index 431b5db5..15ba5d69 100644
--- a/port/dwc2/usb_glue_hc.c
+++ b/port/dwc2/usb_glue_hc.c
@@ -25,7 +25,12 @@ uint32_t usbh_get_dwc2_gccfg_conf(uint32_t reg_base)
return 0;
}
+extern uint32_t SystemCoreClock;
+
void usbd_dwc2_delay_ms(uint8_t ms)
{
- /* implement later */
-} \ No newline at end of file
+ uint32_t count = SystemCoreClock / 1000 * ms;
+ while (count--) {
+ __asm volatile("nop");
+ }
+}
diff --git a/port/dwc2/usb_glue_nation.c b/port/dwc2/usb_glue_nation.c
index f899e738..3e96b22f 100644
--- a/port/dwc2/usb_glue_nation.c
+++ b/port/dwc2/usb_glue_nation.c
@@ -180,8 +180,14 @@ void USB_HS_IRQHandler(void)
g_usb_dwc2_irq(g_usb_dwc2_busid);
}
+extern uint32_t SystemCoreClock;
+
void usbd_dwc2_delay_ms(uint8_t ms)
{
-
+ uint32_t count = SystemCoreClock / 1000 * ms;
+ while (count--) {
+ __asm volatile("nop");
+ }
}
+
#endif
diff --git a/port/dwc2/usb_glue_st.c b/port/dwc2/usb_glue_st.c
index f29d8915..cabf57d0 100644
--- a/port/dwc2/usb_glue_st.c
+++ b/port/dwc2/usb_glue_st.c
@@ -217,9 +217,14 @@ uint32_t usbh_get_dwc2_gccfg_conf(uint32_t reg_base)
#endif
}
+extern uint32_t SystemCoreClock;
+
void usbd_dwc2_delay_ms(uint8_t ms)
{
- HAL_Delay(ms);
+ uint32_t count = SystemCoreClock / 1000 * ms;
+ while (count--) {
+ __asm volatile("nop");
+ }
}
void OTG_FS_IRQHandler(void)