summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2024-01-05 22:12:30 +0800
committersakumisu <[email protected]>2024-01-06 01:07:39 +0800
commit249e650c372181b9e933c4d86d01828e999e8e43 (patch)
tree462bcfbcfe4d6e1cdd01a1e83041a709865f39a9
parentcbfac7ec0cc53062dac633bf1c8f6c7363d4fbbd (diff)
rename CONFIG_USBDEV_MSC_BLOCK_SIZE to CONFIG_USBDEV_MSC_MAX_BUFSIZE
-rw-r--r--cherryusb_config_template.h4
-rw-r--r--class/msc/usbd_msc.c12
-rw-r--r--docs/source/api/api_config.rst7
-rw-r--r--docs/source/demo/msc_ram.rst2
4 files changed, 12 insertions, 13 deletions
diff --git a/cherryusb_config_template.h b/cherryusb_config_template.h
index 327bebe1..95c199dc 100644
--- a/cherryusb_config_template.h
+++ b/cherryusb_config_template.h
@@ -45,8 +45,8 @@
/* Enable test mode */
// #define CONFIG_USBDEV_TEST_MODE
-#ifndef CONFIG_USBDEV_MSC_BLOCK_SIZE
-#define CONFIG_USBDEV_MSC_BLOCK_SIZE 512
+#ifndef CONFIG_USBDEV_MSC_MAX_BUFSIZE
+#define CONFIG_USBDEV_MSC_MAX_BUFSIZE 512
#endif
#ifndef CONFIG_USBDEV_MSC_MANUFACTURER_STRING
diff --git a/class/msc/usbd_msc.c b/class/msc/usbd_msc.c
index f30c6fba..26ca70bf 100644
--- a/class/msc/usbd_msc.c
+++ b/class/msc/usbd_msc.c
@@ -43,7 +43,7 @@ USB_NOCACHE_RAM_SECTION struct usbd_msc_priv {
uint16_t scsi_blk_size;
uint32_t scsi_blk_nbr;
- USB_MEM_ALIGNX uint8_t block_buffer[CONFIG_USBDEV_MSC_BLOCK_SIZE];
+ USB_MEM_ALIGNX uint8_t block_buffer[CONFIG_USBDEV_MSC_MAX_BUFSIZE];
#if defined(CONFIG_USBDEV_MSC_THREAD)
usb_osal_mq_t usbd_msc_mq;
@@ -554,7 +554,7 @@ static bool SCSI_write10(uint8_t **data, uint32_t *len)
return false;
}
g_usbd_msc.stage = MSC_DATA_OUT;
- data_len = MIN(data_len, CONFIG_USBDEV_MSC_BLOCK_SIZE);
+ data_len = MIN(data_len, CONFIG_USBDEV_MSC_MAX_BUFSIZE);
usbd_ep_start_read(mass_ep_data[MSD_OUT_EP_IDX].ep_addr, g_usbd_msc.block_buffer, data_len);
return true;
}
@@ -583,7 +583,7 @@ static bool SCSI_write12(uint8_t **data, uint32_t *len)
return false;
}
g_usbd_msc.stage = MSC_DATA_OUT;
- data_len = MIN(data_len, CONFIG_USBDEV_MSC_BLOCK_SIZE);
+ data_len = MIN(data_len, CONFIG_USBDEV_MSC_MAX_BUFSIZE);
usbd_ep_start_read(mass_ep_data[MSD_OUT_EP_IDX].ep_addr, g_usbd_msc.block_buffer, data_len);
return true;
}
@@ -640,7 +640,7 @@ static bool SCSI_processRead(void)
USB_LOG_DBG("read lba:%d\r\n", g_usbd_msc.start_sector);
- transfer_len = MIN(g_usbd_msc.nsectors * g_usbd_msc.scsi_blk_size, CONFIG_USBDEV_MSC_BLOCK_SIZE);
+ transfer_len = MIN(g_usbd_msc.nsectors * g_usbd_msc.scsi_blk_size, CONFIG_USBDEV_MSC_MAX_BUFSIZE);
if (usbd_msc_sector_read(g_usbd_msc.start_sector, g_usbd_msc.block_buffer, transfer_len) != 0) {
SCSI_SetSenseData(SCSI_KCQHE_UREINRESERVEDAREA);
@@ -677,7 +677,7 @@ static bool SCSI_processWrite(uint32_t nbytes)
if (g_usbd_msc.nsectors == 0) {
usbd_msc_send_csw(CSW_STATUS_CMD_PASSED);
} else {
- data_len = MIN(g_usbd_msc.nsectors * g_usbd_msc.scsi_blk_size, CONFIG_USBDEV_MSC_BLOCK_SIZE);
+ data_len = MIN(g_usbd_msc.nsectors * g_usbd_msc.scsi_blk_size, CONFIG_USBDEV_MSC_MAX_BUFSIZE);
usbd_ep_start_read(mass_ep_data[MSD_OUT_EP_IDX].ep_addr, g_usbd_msc.block_buffer, data_len);
}
@@ -883,7 +883,7 @@ struct usbd_interface *usbd_msc_init_intf(struct usbd_interface *intf, const uin
usbd_msc_get_cap(0, &g_usbd_msc.scsi_blk_nbr, &g_usbd_msc.scsi_blk_size);
- if (g_usbd_msc.scsi_blk_size > CONFIG_USBDEV_MSC_BLOCK_SIZE) {
+ if (g_usbd_msc.scsi_blk_size > CONFIG_USBDEV_MSC_MAX_BUFSIZE) {
USB_LOG_ERR("msc block buffer overflow\r\n");
return NULL;
}
diff --git a/docs/source/api/api_config.rst b/docs/source/api/api_config.rst
index a167acaa..7a9cb35d 100644
--- a/docs/source/api/api_config.rst
+++ b/docs/source/api/api_config.rst
@@ -51,12 +51,11 @@ CONFIG_USBDEV_TEST_MODE
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
使能或者关闭 usb test mode
-CONFIG_USBDEV_MSC_BLOCK_SIZE
+CONFIG_USBDEV_MSC_MAX_BUFSIZE
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-msc 临时缓存的大小,缓存越大,msc 的速度越高,默认等于 1个内存介质的扇区大小(例如 sd卡 512,flash 4K),更改时需要是内存介质扇区的倍数。
-
-虽然名字叫 block size,但是跟内存介质的 block size不是一个意思。
+msc 缓存的最大长度,缓存越大,USB 的速度越高,因为介质一般多个 block 读写速度比单个 block 高很多,比如 sd 卡。
+默认 512 ,如果是 flash 需要改成 4K, 缓存的大小需要是 介质的一个 block size 的整数倍。
CONFIG_USBDEV_MSC_MANUFACTURER_STRING
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/docs/source/demo/msc_ram.rst b/docs/source/demo/msc_ram.rst
index 3a97238d..7e67e19e 100644
--- a/docs/source/demo/msc_ram.rst
+++ b/docs/source/demo/msc_ram.rst
@@ -35,7 +35,7 @@ USB 模拟 U 盘
}
- 实现三个接口即可使用 msc,读写操作如果没有 os 则是在中断中
-- `CONFIG_USBDEV_MSC_BLOCK_SIZE` 可以为 512 的整数倍,更改此项,可以增加 msc 的读写速度,当然,也会消耗更多的 ram
+- `CONFIG_USBDEV_MSC_MAX_BUFSIZE` 可以为 512 的整数倍,更改此项,可以增加 msc 的读写速度,当然,也会消耗更多的 ram
.. note:: MSC 一般配合 rtos 使用,因为读写操作是阻塞的,放中断是不合适的, `CONFIG_USBDEV_MSC_THREAD` 则是使能 os 管理