diff --git a/cherryusb_config_template.h b/cherryusb_config_template.h index 493f8a4e..05fcc79b 100644 --- a/cherryusb_config_template.h +++ b/cherryusb_config_template.h @@ -13,9 +13,6 @@ #define CONFIG_USB_PRINTF(...) printf(__VA_ARGS__) -#define usb_malloc(size) malloc(size) -#define usb_free(ptr) free(ptr) - #ifndef CONFIG_USB_DBG_LEVEL #define CONFIG_USB_DBG_LEVEL USB_DBG_INFO #endif diff --git a/common/usb_osal.h b/common/usb_osal.h index f487c485..a3380d13 100644 --- a/common/usb_osal.h +++ b/common/usb_osal.h @@ -58,4 +58,7 @@ void usb_osal_leave_critical_section(size_t flag); void usb_osal_msleep(uint32_t delay); +void *usb_osal_malloc(size_t size); +void usb_osal_free(void *ptr); + #endif /* USB_OSAL_H */ diff --git a/core/usbh_core.c b/core/usbh_core.c index 24964137..29869782 100644 --- a/core/usbh_core.c +++ b/core/usbh_core.c @@ -486,7 +486,7 @@ int usbh_enumerate(struct usbh_hubport *hport) goto errout; } USB_LOG_INFO("The device has %d interfaces\r\n", ((struct usb_configuration_descriptor *)ep0_request_buffer[hport->bus->busid])->bNumInterfaces); - hport->raw_config_desc = usb_malloc(wTotalLength); + hport->raw_config_desc = usb_osal_malloc(wTotalLength); if (hport->raw_config_desc == NULL) { ret = -USB_ERR_NOMEM; USB_LOG_ERR("No memory to alloc for raw_config_desc\r\n"); @@ -576,7 +576,7 @@ int usbh_enumerate(struct usbh_hubport *hport) errout: if (hport->raw_config_desc) { - usb_free(hport->raw_config_desc); + usb_osal_free(hport->raw_config_desc); hport->raw_config_desc = NULL; } return ret; diff --git a/osal/usb_osal_freertos.c b/osal/usb_osal_freertos.c index db0e238d..7f1aafad 100644 --- a/osal/usb_osal_freertos.c +++ b/osal/usb_osal_freertos.c @@ -198,3 +198,13 @@ void usb_osal_msleep(uint32_t delay) { vTaskDelay(pdMS_TO_TICKS(delay)); } + +void *usb_osal_malloc(size_t size) +{ + return pvPortMalloc(size); +} + +void usb_osal_free(void *ptr) +{ + vPortFree(ptr); +} \ No newline at end of file diff --git a/osal/usb_osal_nuttx.c b/osal/usb_osal_nuttx.c index 1e318344..51018cd5 100644 --- a/osal/usb_osal_nuttx.c +++ b/osal/usb_osal_nuttx.c @@ -366,4 +366,14 @@ void usb_osal_msleep(uint32_t delay) useconds_t usec = delay * 1000; nxsig_usleep(usec); +} + +void *usb_osal_malloc(size_t size) +{ + return kmm_malloc(size); +} + +void usb_osal_free(void *ptr) +{ + kmm_free(ptr); } \ No newline at end of file diff --git a/osal/usb_osal_rtthread.c b/osal/usb_osal_rtthread.c index 18b66a49..5b06fbf2 100644 --- a/osal/usb_osal_rtthread.c +++ b/osal/usb_osal_rtthread.c @@ -167,3 +167,13 @@ void usb_osal_msleep(uint32_t delay) { rt_thread_mdelay(delay); } + +void *usb_osal_malloc(size_t size) +{ + return rt_malloc(size); +} + +void usb_osal_free(void *ptr) +{ + rt_free(ptr); +} \ No newline at end of file diff --git a/osal/usb_osal_yoc.c b/osal/usb_osal_yoc.c index 7189a3b2..ddcb8728 100644 --- a/osal/usb_osal_yoc.c +++ b/osal/usb_osal_yoc.c @@ -53,7 +53,7 @@ int usb_osal_sem_give(usb_osal_sem_t sem) void usb_osal_sem_reset(usb_osal_sem_t sem) { - + } usb_osal_mutex_t usb_osal_mutex_create(void) @@ -123,3 +123,13 @@ void usb_osal_msleep(uint32_t delay) { aos_msleep(delay); } + +void *usb_osal_malloc(size_t size) +{ + return aos_malloc(size); +} + +void usb_osal_free(void *ptr) +{ + aos_free(ptr); +} \ No newline at end of file