From ebeffc536882a9c4885bd5124aab6bc0ff2ff5e6 Mon Sep 17 00:00:00 2001 From: sakumisu <1203593632@qq.com> Date: Sun, 25 Sep 2022 19:36:07 +0800 Subject: [PATCH] fix msc process in os --- class/msc/usbd_msc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/class/msc/usbd_msc.c b/class/msc/usbd_msc.c index 9b8175a4..bbd2d7c9 100644 --- a/class/msc/usbd_msc.c +++ b/class/msc/usbd_msc.c @@ -56,7 +56,7 @@ USB_NOCACHE_RAM_SECTION struct usbd_msc_cfg_priv { static volatile uint8_t thread_op; static usb_osal_sem_t msc_sem; static usb_osal_thread_t msc_thread; -static uint32_t current_byte_read; +static volatile uint32_t current_byte_read; #endif static void usbd_msc_reset(void) @@ -669,7 +669,7 @@ static void usbd_msc_thread_memory_read_done(void) transfer_len = MIN(usbd_msc_cfg.nsectors * usbd_msc_cfg.scsi_blk_size, CONFIG_USBDEV_MSC_BLOCK_SIZE); usbd_ep_start_write(mass_ep_data[MSD_IN_EP_IDX].ep_addr, - &usbd_msc_cfg.block_buffer[usbd_msc_cfg.scsi_blk_addr % usbd_msc_cfg.scsi_blk_size], transfer_len); + usbd_msc_cfg.block_buffer, transfer_len); usbd_msc_cfg.start_sector += (transfer_len / usbd_msc_cfg.scsi_blk_size); usbd_msc_cfg.nsectors -= (transfer_len / usbd_msc_cfg.scsi_blk_size); @@ -730,7 +730,7 @@ static void usbd_msc_thread_memory_write_done() usbd_msc_send_csw(CSW_STATUS_CMD_PASSED); } else { data_len = MIN(usbd_msc_cfg.nsectors * usbd_msc_cfg.scsi_blk_size, CONFIG_USBDEV_MSC_BLOCK_SIZE); - usbd_ep_start_read(mass_ep_data[MSD_OUT_EP_IDX].ep_addr, &usbd_msc_cfg.block_buffer[usbd_msc_cfg.scsi_blk_addr % usbd_msc_cfg.scsi_blk_size], data_len); + usbd_ep_start_read(mass_ep_data[MSD_OUT_EP_IDX].ep_addr, usbd_msc_cfg.block_buffer, data_len); } usb_osal_leave_critical_section(flags); @@ -945,7 +945,7 @@ struct usbd_interface *usbd_msc_alloc_intf(const uint8_t out_ep, const uint8_t i msc_thread = usb_osal_thread_create("usbd_msc", CONFIG_USBDEV_MSC_STACKSIZE, CONFIG_USBDEV_MSC_PRIO, usbd_msc_thread, NULL); if (msc_thread == NULL) { USB_LOG_ERR("no enough memory to alloc msc thread\r\n"); - return; + return NULL; } #endif