diff options
| author | chenzhihong007 <[email protected]> | 2025-04-23 09:43:52 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-04-23 09:43:52 +0800 |
| commit | 4897d6d62291d499221a2462c35a04caea3d93f8 (patch) | |
| tree | bec384c38830892c82437074a5d0416cbdd53afa | |
| parent | e0fedaa9566224a9c8dda8165c22e7a9356c7c7e (diff) | |
port: hpmicro: update isr processing (#304)
- update isr processing
Signed-off-by: Zhihong Chen <[email protected]>
| -rw-r--r-- | port/hpm/usb_dc_hpm.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/port/hpm/usb_dc_hpm.c b/port/hpm/usb_dc_hpm.c index b663fd9a..3eb2511b 100644 --- a/port/hpm/usb_dc_hpm.c +++ b/port/hpm/usb_dc_hpm.c @@ -307,17 +307,10 @@ void USBD_IRQHandler(uint8_t busid) if (int_status & intr_usb) { uint32_t const edpt_complete = usb_device_get_edpt_complete_status(handle); - usb_device_clear_edpt_complete_status(handle, edpt_complete); - uint32_t edpt_setup_status = usb_device_get_setup_status(handle); - - if (edpt_setup_status) { - /*------------- Set up Received -------------*/ - usb_device_clear_setup_status(handle, edpt_setup_status); - dcd_qhd_t *qhd0 = usb_device_qhd_get(handle, 0); - usbd_event_ep0_setup_complete_handler(busid, (uint8_t *)&qhd0->setup_request); - } + uint32_t const edpt_setup_status = usb_device_get_setup_status(handle); if (edpt_complete) { + usb_device_clear_edpt_complete_status(handle, edpt_complete); for (uint8_t ep_idx = 0; ep_idx < USB_SOS_DCD_MAX_QHD_COUNT; ep_idx++) { if (edpt_complete & (1 << ep_idx2bit(ep_idx))) { transfer_len = 0; @@ -355,6 +348,13 @@ void USBD_IRQHandler(uint8_t busid) } } } + + if (edpt_setup_status) { + /*------------- Set up Received -------------*/ + usb_device_clear_setup_status(handle, edpt_setup_status); + dcd_qhd_t *qhd0 = usb_device_qhd_get(handle, 0); + usbd_event_ep0_setup_complete_handler(busid, (uint8_t *)&qhd0->setup_request); + } } } |
