From dc4887aef1b7de2529f8831ea9d5a38d9bccca04 Mon Sep 17 00:00:00 2001 From: sakimisu <1203593632@qq.com> Date: Fri, 21 Apr 2023 23:24:13 +0800 Subject: [PATCH] fix pointer in 64bit cpu, use uintptr_t instead --- class/hub/usbh_hub.c | 6 +++--- common/usb_log.h | 10 +++++----- core/usbd_core.c | 8 ++++---- osal/usb_osal.h | 4 ++-- osal/usb_osal_freertos.c | 6 +++--- osal/usb_osal_rtthread.c | 10 +++++----- 6 files changed, 22 insertions(+), 22 deletions(-) diff --git a/class/hub/usbh_hub.c b/class/hub/usbh_hub.c index aaaf3176..931deea6 100644 --- a/class/hub/usbh_hub.c +++ b/class/hub/usbh_hub.c @@ -515,7 +515,7 @@ static void usbh_hub_events(struct usbh_hub *hub) child->connected = true; child->port = port + 1; child->speed = speed; - + USB_LOG_INFO("New %s device on Hub %u, Port %u connected\r\n", speed_table[speed], hub->index, port + 1); /* Configure EP0 with the default maximum packet size */ @@ -557,7 +557,7 @@ static void usbh_hub_thread(void *argument) usb_hc_init(); while (1) { - ret = usb_osal_mq_recv(hub_mq, (uint32_t *)&hub, 0xffffffff); + ret = usb_osal_mq_recv(hub_mq, (uintptr_t *)&hub, 0xffffffff); if (ret < 0) { continue; } @@ -580,7 +580,7 @@ static void usbh_roothub_register(void) static void usbh_hub_thread_wakeup(struct usbh_hub *hub) { - usb_osal_mq_send(hub_mq, (uint32_t)hub); + usb_osal_mq_send(hub_mq, (uintptr_t)hub); } void usbh_roothub_thread_wakeup(uint8_t port) diff --git a/common/usb_log.h b/common/usb_log.h index 4d1eff84..923e8006 100644 --- a/common/usb_log.h +++ b/common/usb_log.h @@ -52,25 +52,25 @@ #if (CONFIG_USB_DBG_LEVEL >= USB_DBG_LOG) #define USB_LOG_DBG(fmt, ...) usb_dbg_log_line("D", 0, fmt, ##__VA_ARGS__) #else -#define USB_LOG_DBG(...) +#define USB_LOG_DBG(...) {} #endif #if (CONFIG_USB_DBG_LEVEL >= USB_DBG_INFO) #define USB_LOG_INFO(fmt, ...) usb_dbg_log_line("I", 32, fmt, ##__VA_ARGS__) #else -#define USB_LOG_INFO(...) +#define USB_LOG_INFO(...) {} #endif #if (CONFIG_USB_DBG_LEVEL >= USB_DBG_WARNING) #define USB_LOG_WRN(fmt, ...) usb_dbg_log_line("W", 33, fmt, ##__VA_ARGS__) #else -#define USB_LOG_WRN(...) +#define USB_LOG_WRN(...) {} #endif #if (CONFIG_USB_DBG_LEVEL >= USB_DBG_ERROR) #define USB_LOG_ERR(fmt, ...) usb_dbg_log_line("E", 31, fmt, ##__VA_ARGS__) #else -#define USB_LOG_ERR(...) +#define USB_LOG_ERR(...) {} #endif #define USB_LOG_RAW(...) CONFIG_USB_PRINTF(__VA_ARGS__) @@ -82,4 +82,4 @@ void usb_assert(const char *filename, int linenum); usb_assert(__FILE__, __LINE__); \ } while (0) -#endif /* USB_LOG_H */ \ No newline at end of file +#endif /* USB_LOG_H */ diff --git a/core/usbd_core.c b/core/usbd_core.c index 308d0d49..1afd52a6 100644 --- a/core/usbd_core.c +++ b/core/usbd_core.c @@ -1123,7 +1123,7 @@ void usbd_event_ep_in_complete_handler(uint8_t ep, uint32_t nbytes) } #else tx_msg[ep & 0x7f].nbytes = nbytes; - usb_osal_mq_send(usbd_tx_mq, (uint32_t)&tx_msg[ep & 0x7f]); + usb_osal_mq_send(usbd_tx_mq, (uintptr_t)&tx_msg[ep & 0x7f]); #endif } @@ -1135,7 +1135,7 @@ void usbd_event_ep_out_complete_handler(uint8_t ep, uint32_t nbytes) } #else rx_msg[ep & 0x7f].nbytes = nbytes; - usb_osal_mq_send(usbd_rx_mq, (uint32_t)&rx_msg[ep & 0x7f]); + usb_osal_mq_send(usbd_rx_mq, (uintptr_t)&rx_msg[ep & 0x7f]); #endif } @@ -1146,7 +1146,7 @@ static void usbdev_tx_thread(void *argument) int ret; while (1) { - ret = usb_osal_mq_recv(usbd_tx_mq, (uint32_t *)&msg, 0xffffffff); + ret = usb_osal_mq_recv(usbd_tx_mq, (uintptr_t *)&msg, 0xffffffff); if (ret < 0) { continue; } @@ -1165,7 +1165,7 @@ static void usbdev_rx_thread(void *argument) int ret; while (1) { - ret = usb_osal_mq_recv(usbd_rx_mq, (uint32_t *)&msg, 0xffffffff); + ret = usb_osal_mq_recv(usbd_rx_mq, (uintptr_t *)&msg, 0xffffffff); if (ret < 0) { continue; } diff --git a/osal/usb_osal.h b/osal/usb_osal.h index d730b74e..7f723559 100644 --- a/osal/usb_osal.h +++ b/osal/usb_osal.h @@ -28,8 +28,8 @@ int usb_osal_mutex_take(usb_osal_mutex_t mutex); int usb_osal_mutex_give(usb_osal_mutex_t mutex); usb_osal_mq_t usb_osal_mq_create(uint32_t max_msgs); -int usb_osal_mq_send(usb_osal_mq_t mq, uint32_t addr); -int usb_osal_mq_recv(usb_osal_mq_t mq, uint32_t *addr, uint32_t timeout); +int usb_osal_mq_send(usb_osal_mq_t mq, uintptr_t addr); +int usb_osal_mq_recv(usb_osal_mq_t mq, uintptr_t *addr, uint32_t timeout); size_t usb_osal_enter_critical_section(void); void usb_osal_leave_critical_section(size_t flag); diff --git a/osal/usb_osal_freertos.c b/osal/usb_osal_freertos.c index 65d9f1c3..8547a4c0 100644 --- a/osal/usb_osal_freertos.c +++ b/osal/usb_osal_freertos.c @@ -68,10 +68,10 @@ int usb_osal_mutex_give(usb_osal_mutex_t mutex) usb_osal_mq_t usb_osal_mq_create(uint32_t max_msgs) { - return (usb_osal_mq_t)xQueueCreate(max_msgs, 4); + return (usb_osal_mq_t)xQueueCreate(max_msgs, sizeof(uintptr_t)); } -int usb_osal_mq_send(usb_osal_mq_t mq, uint32_t addr) +int usb_osal_mq_send(usb_osal_mq_t mq, uintptr_t addr) { BaseType_t xHigherPriorityTaskWoken = pdFALSE; int ret; @@ -84,7 +84,7 @@ int usb_osal_mq_send(usb_osal_mq_t mq, uint32_t addr) return (ret == pdPASS) ? 0 : -ETIMEDOUT; } -int usb_osal_mq_recv(usb_osal_mq_t mq, uint32_t *addr, uint32_t timeout) +int usb_osal_mq_recv(usb_osal_mq_t mq, uintptr_t *addr, uint32_t timeout) { return (xQueueReceive((usb_osal_mq_t)mq, addr, timeout) == pdPASS) ? 0 : -ETIMEDOUT; } diff --git a/osal/usb_osal_rtthread.c b/osal/usb_osal_rtthread.c index f2f830e7..e1c90499 100644 --- a/osal/usb_osal_rtthread.c +++ b/osal/usb_osal_rtthread.c @@ -70,20 +70,20 @@ int usb_osal_mutex_give(usb_osal_mutex_t mutex) usb_osal_mq_t usb_osal_mq_create(uint32_t max_msgs) { - return (usb_osal_mq_t)rt_mq_create("usbh_mq", 4, max_msgs, RT_IPC_FLAG_FIFO); + return (usb_osal_mq_t)rt_mq_create("usbh_mq", sizeof(uintptr_t), max_msgs, RT_IPC_FLAG_FIFO); } -int usb_osal_mq_send(usb_osal_mq_t mq, uint32_t addr) +int usb_osal_mq_send(usb_osal_mq_t mq, uintptr_t addr) { - return rt_mq_send((rt_mq_t)mq, &addr, 4); + return rt_mq_send((rt_mq_t)mq, &addr, sizeof(uintptr_t)); } -int usb_osal_mq_recv(usb_osal_mq_t mq, uint32_t *addr, uint32_t timeout) +int usb_osal_mq_recv(usb_osal_mq_t mq, uintptr_t *addr, uint32_t timeout) { int ret = 0; rt_err_t result = RT_EOK; - result = rt_mq_recv((rt_mq_t)mq, addr, 4, rt_tick_from_millisecond(timeout)); + result = rt_mq_recv((rt_mq_t)mq, addr, sizeof(uintptr_t), rt_tick_from_millisecond(timeout)); if (result == -RT_ETIMEOUT) { ret = -ETIMEDOUT; } else if (result == -RT_ERROR) {