From 6516a470c8440b7a8010e6293520386ce99a8c03 Mon Sep 17 00:00:00 2001 From: sakumisu <1203593632@qq.com> Date: Wed, 7 May 2025 22:07:22 +0800 Subject: [PATCH] update(port/ch32): update irqhandler name Signed-off-by: sakumisu <1203593632@qq.com> --- port/ch32/ch585_usbhs_dc.c | 15 ++++++++------- port/ch32/usb_ch58x_dc_usbfs.c | 15 ++++++++------- port/ch32/usb_dc_usbfs.c | 15 ++++++++------- port/ch32/usb_dc_usbhs.c | 15 ++++++++------- 4 files changed, 32 insertions(+), 28 deletions(-) diff --git a/port/ch32/ch585_usbhs_dc.c b/port/ch32/ch585_usbhs_dc.c index 1ccdfe3..e066ffb 100644 --- a/port/ch32/ch585_usbhs_dc.c +++ b/port/ch32/ch585_usbhs_dc.c @@ -7,10 +7,6 @@ #define USB_BASE 0x40009000u #define CH585_USBHS_DEV ((USBHSD_TypeDef *)USB_BASE) -#ifndef USBD_IRQHandler -#define USBD_IRQHandler USB2_DEVICE_IRQHandler //use actual usb irq name instead -#endif - #define R16_PIN_CONFIG (*((PUINT16V)0x4000101A)) #define R32_PIN_CONFIG (*((PUINT32V)0x40001018)) // RW, I/O pin configuration #define RB_PIN_USB2_EN 0x20 @@ -493,9 +489,7 @@ static inline void usb_trans_end_process(void) * @param[in] None * @retval None */ -__attribute__((interrupt("WCH-Interrupt-fast"))) -__attribute__((section(".highcode"))) void -USBD_IRQHandler(void) +void USBD_IRQHandler(uint8_t busid) { volatile uint8_t intflag = 0; intflag = CH585_USBHS_DEV->INT_FG; @@ -522,4 +516,11 @@ USBD_IRQHandler(void) } else { CH585_USBHS_DEV->INT_FG = intflag; } +} + +void USB2_DEVICE_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast"))) __attribute__((section(".highcode"))); +void USB2_DEVICE_IRQHandler(void) +{ + extern void USBD_IRQHandler(uint8_t busid); + USBD_IRQHandler(0); } \ No newline at end of file diff --git a/port/ch32/usb_ch58x_dc_usbfs.c b/port/ch32/usb_ch58x_dc_usbfs.c index 5771efb..c7efb84 100644 --- a/port/ch32/usb_ch58x_dc_usbfs.c +++ b/port/ch32/usb_ch58x_dc_usbfs.c @@ -17,10 +17,6 @@ #endif #define CH58x_USBFS_DEV ((USB_FS_TypeDef *)USBD) -#ifndef USBD_IRQHandler -#define USBD_IRQHandler USB_IRQHandler //use actual usb irq name instead -#endif - /*!< 8-bit value of endpoint control register */ #define EPn_CTRL(epid) \ *(volatile uint8_t *)(&(CH58x_USBFS_DEV->UEP0_CTRL) + epid * 4 + (epid / 5) * 48) @@ -456,9 +452,7 @@ int usbd_ep_start_read(uint8_t busid, const uint8_t ep, uint8_t *data, uint32_t * @param[in] None * @retval None */ -__attribute__((interrupt("WCH-Interrupt-fast"))) -__attribute__((section(".highcode"))) void -USBD_IRQHandler(void) +void USBD_IRQHandler(uint8_t busid) { volatile uint8_t intflag = 0; intflag = CH58x_USBFS_DEV->USB_INT_FG; @@ -637,3 +631,10 @@ USBD_IRQHandler(void) CH58x_USBFS_DEV->USB_INT_FG = intflag; } } + +void USB_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast"))) __attribute__((section(".highcode"))); +void USB_IRQHandler(void) +{ + extern void USBD_IRQHandler(uint8_t busid); + USBD_IRQHandler(0); +} \ No newline at end of file diff --git a/port/ch32/usb_dc_usbfs.c b/port/ch32/usb_dc_usbfs.c index 7aabd41..1340766 100644 --- a/port/ch32/usb_dc_usbfs.c +++ b/port/ch32/usb_dc_usbfs.c @@ -10,10 +10,6 @@ #error "usb fs do not support hs" #endif -#ifndef USBD_IRQHandler -#define USBD_IRQHandler OTG_FS_IRQHandler //use actual usb irq name instead -#endif - #ifndef USB_NUM_BIDIR_ENDPOINTS #define USB_NUM_BIDIR_ENDPOINTS 8 #endif @@ -49,8 +45,6 @@ struct ch32_usbfs_udc { volatile bool ep0_rx_data_toggle; volatile bool ep0_tx_data_toggle; -void USBD_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast"))); - __WEAK void usb_dc_low_level_init(void) { } @@ -262,7 +256,7 @@ int usbd_ep_start_read(uint8_t busid, const uint8_t ep, uint8_t *data, uint32_t return 0; } -void USBD_IRQHandler(void) +void USBD_IRQHandler(uint8_t busid) { uint32_t ep_idx = 0, token, write_count, read_count; uint8_t intflag = 0; @@ -407,3 +401,10 @@ void USBD_IRQHandler(void) USBFS_DEVICE->INT_FG = intflag; } } + +void OTG_FS_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast"))); +void OTG_FS_IRQHandler(void) +{ + extern void USBD_IRQHandler(uint8_t busid); + USBD_IRQHandler(0); +} \ No newline at end of file diff --git a/port/ch32/usb_dc_usbhs.c b/port/ch32/usb_dc_usbhs.c index a8d3036..0b8bff5 100644 --- a/port/ch32/usb_dc_usbhs.c +++ b/port/ch32/usb_dc_usbhs.c @@ -6,10 +6,6 @@ #include "usbd_core.h" #include "usb_ch32_usbhs_reg.h" -#ifndef USBD_IRQHandler -#define USBD_IRQHandler USBHS_IRQHandler //use actual usb irq name instead -#endif - #ifndef USB_NUM_BIDIR_ENDPOINTS #define USB_NUM_BIDIR_ENDPOINTS 16 #endif @@ -43,8 +39,6 @@ struct ch32_usbhs_udc { struct ch32_usbhs_ep_state out_ep[USB_NUM_BIDIR_ENDPOINTS]; /*!< OUT endpoint parameters */ } g_ch32_usbhs_udc; -void USBHS_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast"))); - volatile uint8_t mps_over_flag = 0; volatile bool ep0_rx_data_toggle; volatile bool ep0_tx_data_toggle; @@ -255,7 +249,7 @@ int usbd_ep_start_read(uint8_t busid, const uint8_t ep, uint8_t *data, uint32_t return 0; } -void USBD_IRQHandler(void) +void USBD_IRQHandler(uint8_t busid) { uint32_t ep_idx, token, write_count, read_count; uint8_t intflag = 0; @@ -385,3 +379,10 @@ void USBD_IRQHandler(void) USBHS_DEVICE->INT_FG = USBHS_DETECT_FLAG; } } + +void USBHS_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast"))); +void USBHS_IRQHandler(void) +{ + extern void USBD_IRQHandler(uint8_t busid); + USBD_IRQHandler(0); +} \ No newline at end of file