Преглед изворни кода

fix pointer in 64bit cpu, use uintptr_t instead

sakimisu пре 2 година
родитељ
комит
dc4887aef1
6 измењених фајлова са 22 додато и 22 уклоњено
  1. 3 3
      class/hub/usbh_hub.c
  2. 5 5
      common/usb_log.h
  3. 4 4
      core/usbd_core.c
  4. 2 2
      osal/usb_osal.h
  5. 3 3
      osal/usb_osal_freertos.c
  6. 5 5
      osal/usb_osal_rtthread.c

+ 3 - 3
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)

+ 5 - 5
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 */
+#endif /* USB_LOG_H */

+ 4 - 4
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;
         }

+ 2 - 2
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);

+ 3 - 3
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;
 }

+ 5 - 5
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) {