diff options
| author | sakumisu <[email protected]> | 2022-03-17 16:39:41 +0800 |
|---|---|---|
| committer | sakumisu <[email protected]> | 2022-03-17 16:39:41 +0800 |
| commit | 1526766816acd0ce5e3d2c5a3ddaf1b0f61b3f05 (patch) | |
| tree | a1287f7cda6169d29452dc92fdcafb911236d75e | |
| parent | ce5097f6b9c91e6e911101be29a51824ec2a073e (diff) | |
move buffer malloc in init
| -rw-r--r-- | class/msc/usbd_msc.c | 13 |
1 files 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)); + } } |
