diff options
| author | sakumisu <[email protected]> | 2022-02-23 17:48:47 +0800 |
|---|---|---|
| committer | sakumisu <[email protected]> | 2022-02-24 12:28:51 +0800 |
| commit | dddd4e4c3c9523c67110ad2edbb73c3333780186 (patch) | |
| tree | 9853c6316504f877b62cca245f049385318d94fb /class | |
| parent | c053a656bda0872c3e12fbcd6c10d62aac435372 (diff) | |
gdd memory align32 for variable in structure
Diffstat (limited to 'class')
| -rw-r--r-- | class/cdc/usbd_cdc.c | 2 | ||||
| -rw-r--r-- | class/msc/usbd_msc.c | 22 |
2 files changed, 6 insertions, 18 deletions
diff --git a/class/cdc/usbd_cdc.c b/class/cdc/usbd_cdc.c index 707e6ac0..11d709da 100644 --- a/class/cdc/usbd_cdc.c +++ b/class/cdc/usbd_cdc.c @@ -29,7 +29,7 @@ const char *parity_name[] = { "N", "O", "E", "M", "S" }; /* Device data structure */ struct cdc_acm_cfg_priv { /* CDC ACM line coding properties. LE order */ - struct cdc_line_coding line_coding; + USB_MEM_ALIGN32 struct cdc_line_coding line_coding; /* CDC ACM line state bitmap, DTE side */ uint8_t line_state; /* CDC ACM serial state bitmap, DCE side */ diff --git a/class/msc/usbd_msc.c b/class/msc/usbd_msc.c index 57781e4b..0da261d7 100644 --- a/class/msc/usbd_msc.c +++ b/class/msc/usbd_msc.c @@ -50,8 +50,8 @@ enum Stage { struct usbd_msc_cfg_priv { /* state of the bulk-only state machine */ enum Stage stage; - struct CBW cbw; - struct CSW csw; + USB_MEM_ALIGN32 struct CBW cbw; + USB_MEM_ALIGN32 struct CSW csw; uint8_t sKey; /* Sense key */ uint8_t ASC; /* Additional Sense Code */ @@ -71,24 +71,12 @@ static bool memOK; static void usbd_msc_reset(void) { - usbd_msc_cfg.stage = MSC_READ_CBW; - usbd_msc_cfg.scsi_blk_addr = 0U; - usbd_msc_cfg.scsi_blk_len = 0U; - usbd_msc_cfg.max_lun = 0; - usbd_msc_cfg.sKey = 0; - usbd_msc_cfg.ASC = 0; - usbd_msc_cfg.ASQ = 0; - - (void)memset((void *)&usbd_msc_cfg.cbw, 0, sizeof(struct CBW)); - (void)memset((void *)&usbd_msc_cfg.csw, 0, sizeof(struct CSW)); - + 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) { - free(usbd_msc_cfg.block_buffer); + if (usbd_msc_cfg.block_buffer == NULL) { + usbd_msc_cfg.block_buffer = usb_iomalloc(usbd_msc_cfg.scsi_blk_size * sizeof(uint8_t)); } - usbd_msc_cfg.block_buffer = malloc(usbd_msc_cfg.scsi_blk_size * sizeof(uint8_t)); - memset(usbd_msc_cfg.block_buffer, 0, usbd_msc_cfg.scsi_blk_size * sizeof(uint8_t)); } /** |
