From 1526766816acd0ce5e3d2c5a3ddaf1b0f61b3f05 Mon Sep 17 00:00:00 2001 From: sakumisu <1203593632@qq.com> Date: Thu, 17 Mar 2022 16:39:41 +0800 Subject: [PATCH] move buffer malloc in init --- class/msc/usbd_msc.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/class/msc/usbd_msc.c b/class/msc/usbd_msc.c index a92747f9..950b90af 100644 --- a/class/msc/usbd_msc.c +++ b/class/msc/usbd_msc.c @@ -73,15 +73,11 @@ static void usbd_msc_reset(void) { uint8_t *buf = NULL; - if (usbd_msc_cfg.block_buffer == NULL) { - usbd_msc_cfg.block_buffer = usb_iomalloc(usbd_msc_cfg.scsi_blk_size * sizeof(uint8_t)); - } - buf = usbd_msc_cfg.block_buffer; memset((uint8_t *)&usbd_msc_cfg, 0, sizeof(struct usbd_msc_cfg_priv)); - usbd_msc_get_cap(0, &usbd_msc_cfg.scsi_blk_nbr, &usbd_msc_cfg.scsi_blk_size); + usbd_msc_get_cap(0, &usbd_msc_cfg.scsi_blk_nbr, &usbd_msc_cfg.scsi_blk_size); usbd_msc_cfg.block_buffer = buf; } @@ -984,4 +980,11 @@ void usbd_msc_class_init(uint8_t out_ep, uint8_t in_ep) usbd_interface_add_endpoint(&msc_intf, &mass_ep_data[0]); usbd_interface_add_endpoint(&msc_intf, &mass_ep_data[1]); + + memset((uint8_t *)&usbd_msc_cfg, 0, sizeof(struct usbd_msc_cfg_priv)); + + usbd_msc_get_cap(0, &usbd_msc_cfg.scsi_blk_nbr, &usbd_msc_cfg.scsi_blk_size); + if (usbd_msc_cfg.block_buffer == NULL) { + usbd_msc_cfg.block_buffer = usb_iomalloc(usbd_msc_cfg.scsi_blk_size * sizeof(uint8_t)); + } }