diff options
| author | sakumisu <[email protected]> | 2026-04-27 21:25:43 +0800 |
|---|---|---|
| committer | sakumisu <[email protected]> | 2026-04-28 16:32:28 +0800 |
| commit | c9625ffa773ad10b8824d1b5361bca2ccc1f3d1e (patch) | |
| tree | 6a9e0183c1364f7852eeba104b1c6916b901435b | |
| parent | 1a885c76b85d7d40955bc8e88a522a3dd0eb3183 (diff) | |
docs: release v1.6.1v1.6.1release/v1.6
Signed-off-by: sakumisu <[email protected]>
| -rw-r--r-- | CMakeLists.txt | 2 | ||||
| -rw-r--r-- | Kconfig.rttpkg | 5 | ||||
| -rw-r--r-- | README.md | 46 | ||||
| -rw-r--r-- | README_zh.md | 42 | ||||
| -rw-r--r-- | VERSION | 2 | ||||
| -rw-r--r-- | class/serial/usbh_serial.c | 2 | ||||
| -rw-r--r-- | common/usb_version.h | 4 | ||||
| -rw-r--r-- | docs/assets/usbdevice_usage.png | bin | 0 -> 52297 bytes | |||
| -rw-r--r-- | docs/assets/usbhost_usage.png | bin | 0 -> 95150 bytes | |||
| -rwxr-xr-x | docs/en/conf.py | 4 | ||||
| -rw-r--r-- | docs/zh/conf.py | 4 | ||||
| -rw-r--r-- | docs/zh/quick_start/demo.rst | 56 | ||||
| -rw-r--r-- | docs/zh/version.rst | 12 | ||||
| -rw-r--r-- | idf_component.yml | 2 | ||||
| -rw-r--r-- | tests/bouffalolab/CMakeLists.txt | 1 |
15 files changed, 106 insertions, 76 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 39d1a273..be652aa8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,7 @@ if(BL_SDK_BASE) set(CONFIG_CHERRYUSB_DEVICE_MSC 1) set(CONFIG_CHERRYUSB_DEVICE_AUDIO 1) set(CONFIG_CHERRYUSB_DEVICE_VIDEO 1) + set(CONFIG_CHERRYUSB_DEVICE_DFU 1) set(CONFIG_CHERRYUSB_DEVICE_GAMEPAD 1) set(CONFIG_CHERRYUSB_HOST_CDC_ACM 1) @@ -183,6 +184,7 @@ elseif(HPM_SDK_BASE) set(CONFIG_CHERRYUSB_DEVICE_MSC 1) set(CONFIG_CHERRYUSB_DEVICE_AUDIO 1) set(CONFIG_CHERRYUSB_DEVICE_VIDEO 1) + set(CONFIG_CHERRYUSB_DEVICE_DFU 1) set(CONFIG_CHERRYUSB_DEVICE_GAMEPAD 1) set(CONFIG_CHERRYUSB_HOST_CDC_ACM 1) diff --git a/Kconfig.rttpkg b/Kconfig.rttpkg index 4fa34158..12e3f2e0 100644 --- a/Kconfig.rttpkg +++ b/Kconfig.rttpkg @@ -516,12 +516,14 @@ if PKG_USING_CHERRYUSB choice prompt "Version" - default PKG_USING_CHERRYUSB_V010503 + default PKG_USING_CHERRYUSB_V010601 help Select the package version config PKG_USING_CHERRYUSB_LATEST_VERSION bool "latest" + config PKG_USING_CHERRYUSB_V010601 + bool "v1.6.1" config PKG_USING_CHERRYUSB_V010600 bool "v1.6.0" config PKG_USING_CHERRYUSB_V010503 @@ -543,6 +545,7 @@ if PKG_USING_CHERRYUSB config PKG_CHERRYUSB_VER string default "latest" if PKG_USING_CHERRYUSB_LATEST_VERSION + default "v1.6.1" if PKG_USING_CHERRYUSB_V010601 default "v1.6.0" if PKG_USING_CHERRYUSB_V010600 default "v1.5.3.99" if PKG_USING_CHERRYUSB_V010503 default "v1.5.2" if PKG_USING_CHERRYUSB_V010502 @@ -86,16 +86,18 @@ CherryUSB Device Stack resource usage (GCC 10.2 with -O2, disable log): | file | FLASH (Byte) | No Cache RAM (Byte) | RAM (Byte) | Heap (Byte) | |:-------------:|:--------------:|:-------------------------:|:-------------:|:----------------:| -|usbd_core.c | ~4500 | (512(default) + 320) * bus | 0 | 0 | -|usbd_cdc_acm.c | ~900 | 0 | 0 | 0 | -|usbd_msc.c | ~5000 | (128 + 512(default)) * bus | 16 * bus | 0 | -|usbd_hid.c | ~300 | 0 | 0 | 0 | -|usbd_audio.c | ~4000 | 0 | 0 | 0 | -|usbd_video.c | ~7000 | 0 | 132 * bus | 0 | -|usbd_rndis.c | ~2500 | 2 * 1580(default)+156+8 | 80 | 0 | -|usbd_cdc_ecm.c | ~900 | 2 * 1514(default)+16 | 42 | 0 | +|usbd_core.c | ~4000 | (512(default) + 320) * bus | 8 | 0 | +|usbd_cdc_acm.c | ~400 | 0 | 0 | 0 | +|usbd_msc.c | ~3200 | (128 + 512(default)) * bus | 16 * bus | 0 | +|usbd_hid.c | ~200 | 0 | 0 | 0 | +|usbd_audio.c | ~1300 | 0 | 8 * bus | 0 | +|usbd_video.c | ~2500 | 0 | 124 * bus | 0 | +|usbd_rndis.c | ~2000 | 2 * 1580(default)+156+8 | 76 | 0 | +|usbd_cdc_ecm.c | ~1500 | 2 * 1514(default)+16 | 42 | 0 | |usbd_mtp.c | ~9000 | 2048(default)+128 | sizeof(struct mtp_object) * n| 0 | -|usbd_dfu.c | ~2200 | 0 | 45 | 0 | +|usbd_dfu.c | ~800 | 0 | 1 | 0 | + + ## Host Stack Overview @@ -128,19 +130,27 @@ CherryUSB Host Stack resource usage (GCC 10.2 with -O2, disable log): | file | FLASH (Byte) | No Cache RAM (Byte) | RAM (Byte) | Heap (Byte) | |:-------------:|:--------------:|:-------------------------------:|:---------------------------:|:------------:| -|usbh_core.c | ~4500 | (512(default) + 8 * (1+x) *n) * bus | sizeof(struct usbh_hub) * bus | raw_config_desc | -|usbh_hub.c | ~3500 | (32 + 4 * (1+x)) * bus | 12 + sizeof(struct usbh_hub) * x | 0 | -|usbh_cdc_acm.c | ~600 | 7 * x | 4 + sizeof(struct usbh_cdc_acm) * x | 0 | -|usbh_msc.c | ~2000 | 128 * x | 4 + sizeof(struct usbh_msc) * x | 0 | -|usbh_hid.c | ~800 | 64 * x | 4 + sizeof(struct usbh_hid) * x | 0 | -|usbh_video.c | ~5000 | 128 * x | 4 + sizeof(struct usbh_video) * x | 0 | -|usbh_audio.c | ~4000 | 128 * x | 4 + sizeof(struct usbh_audio) * x | 0 | +|usbh_core.c | ~4000 | (512(default) + 8 * (1+x) *n) * bus | sizeof(struct usbh_hub) * bus | raw_config_desc | +|usbh_hub.c | ~3000 | (32 + 4 * (1+x)) * bus | 12 + sizeof(struct usbh_hub) * x | 0 | +|usbh_msc.c | ~1500 | 128 * x | 4 + sizeof(struct usbh_msc) * x | 0 | +|usbh_hid.c | ~2000 | 64 * x | 4 + sizeof(struct usbh_hid) * x | 0 | +|usbh_video.c | ~2500 | 128 * x | 4 + sizeof(struct usbh_video) * x | 0 | +|usbh_audio.c | ~3000 | 128 * x | 4 + sizeof(struct usbh_audio) * x | 0 | |usbh_rndis.c | ~3000 | 512 + 2 * 2048(default)| sizeof(struct usbh_rndis) * 1 | 0 | |usbh_cdc_ecm.c | ~1500 | 2 * 1514 + 16 | sizeof(struct usbh_cdc_ecm) * 1 | 0 | |usbh_cdc_ncm.c | ~2000 | 2 * 2048(default) + 16 + 32 | sizeof(struct usbh_cdc_ncm) * 1| 0 | |usbh_bluetooth.c | ~1000 | 2 * 2048(default) | sizeof(struct usbh_bluetooth) * 1 | 0 | -|usbh_asix.c | ~7000 | 2 * 2048(default) + 16 + 32 | sizeof(struct usbh_asix) * 1 | 0 | -|usbh_rtl8152.c | ~9000 | 16K+ 2K(default) + 2 + 32 | sizeof(struct usbh_rtl8152) * 1 | 0 | +|usbh_asix.c | ~3500 | 2 * 2048(default) + 16 + 32 | sizeof(struct usbh_asix) * 1 | 0 | +|usbh_rtl8152.c | ~5500 | 16K+ 2K(default) + 2 + 32 | sizeof(struct usbh_rtl8152) * 1 | 0 | +|usbh_serial.c | ~3000 | (512 * 2 + 32 * 2) * x | sizeof(struct usbh_serial) * x (2048 default) | 0 | +|usbh_cdc_acm.c | ~1000 | 0 | 0 | 0 | +|usbh_ch340.c | ~1200 | 0 | 0 | 0 | +|usbh_ftdi.c | ~1200 | 0 | 0 | 0 | +|usbh_cp2102.c | ~2200 | 0 | 0 | 0 | +|usbh_pl2303.c | ~2500 | 0 | 0 | 0 | +|usbh_gsm.c | ~300 | 0 | 0 | 0 | + + Among them, `sizeof(struct usbh_hub)` and `sizeof(struct usbh_hubport)` are affected by the following macros: diff --git a/README_zh.md b/README_zh.md index df2276ee..59d11a06 100644 --- a/README_zh.md +++ b/README_zh.md @@ -86,16 +86,16 @@ CherryUSB Device 协议栈资源占用说明(GCC 10.2 with -O2): | file | FLASH (Byte) | No Cache RAM (Byte) | RAM (Byte) | Heap (Byte) | |:-------------:|:--------------:|:-------------------------:|:-------------:|:----------------:| -|usbd_core.c | ~4500 | (512(default) + 320) * bus | 0 | 0 | -|usbd_cdc_acm.c | ~900 | 0 | 0 | 0 | -|usbd_msc.c | ~5000 | (128 + 512(default)) * bus | 16 * bus | 0 | -|usbd_hid.c | ~300 | 0 | 0 | 0 | -|usbd_audio.c | ~4000 | 0 | 0 | 0 | -|usbd_video.c | ~7000 | 0 | 132 * bus | 0 | -|usbd_rndis.c | ~2500 | 2 * 1580(default)+156+8 | 80 | 0 | -|usbd_cdc_ecm.c | ~900 | 2 * 1514(default)+16 | 42 | 0 | +|usbd_core.c | ~4000 | (512(default) + 320) * bus | 8 | 0 | +|usbd_cdc_acm.c | ~400 | 0 | 0 | 0 | +|usbd_msc.c | ~3200 | (128 + 512(default)) * bus | 16 * bus | 0 | +|usbd_hid.c | ~200 | 0 | 0 | 0 | +|usbd_audio.c | ~1300 | 0 | 8 * bus | 0 | +|usbd_video.c | ~2500 | 0 | 124 * bus | 0 | +|usbd_rndis.c | ~2000 | 2 * 1580(default)+156+8 | 76 | 0 | +|usbd_cdc_ecm.c | ~1500 | 2 * 1514(default)+16 | 42 | 0 | |usbd_mtp.c | ~9000 | 2048(default)+128 | sizeof(struct mtp_object) * n| 0 | -|usbd_dfu.c | ~2200 | 0 | 45 | 0 | +|usbd_dfu.c | ~800 | 0 | 1 | 0 | ## Host 协议栈简介 @@ -128,19 +128,25 @@ CherryUSB Host 协议栈资源占用说明(GCC 10.2 with -O2,关闭 log)� | file | FLASH (Byte) | No Cache RAM (Byte) | RAM (Byte) | Heap (Byte) | |:-------------:|:--------------:|:-------------------------------:|:---------------------------:|:------------:| -|usbh_core.c | ~4500 | (512(default) + 8 * (1+x) *n) * bus | sizeof(struct usbh_hub) * bus | raw_config_desc | -|usbh_hub.c | ~3500 | (32 + 4 * (1+x)) * bus | 12 + sizeof(struct usbh_hub) * x | 0 | -|usbh_cdc_acm.c | ~600 | 7 * x | 4 + sizeof(struct usbh_cdc_acm) * x | 0 | -|usbh_msc.c | ~2000 | 128 * x | 4 + sizeof(struct usbh_msc) * x | 0 | -|usbh_hid.c | ~800 | 64 * x | 4 + sizeof(struct usbh_hid) * x | 0 | -|usbh_video.c | ~5000 | 128 * x | 4 + sizeof(struct usbh_video) * x | 0 | -|usbh_audio.c | ~4000 | 128 * x | 4 + sizeof(struct usbh_audio) * x | 0 | +|usbh_core.c | ~4000 | (512(default) + 8 * (1+x) *n) * bus | sizeof(struct usbh_hub) * bus | raw_config_desc | +|usbh_hub.c | ~3000 | (32 + 4 * (1+x)) * bus | 12 + sizeof(struct usbh_hub) * x | 0 | +|usbh_msc.c | ~1500 | 128 * x | 4 + sizeof(struct usbh_msc) * x | 0 | +|usbh_hid.c | ~2000 | 64 * x | 4 + sizeof(struct usbh_hid) * x | 0 | +|usbh_video.c | ~2500 | 128 * x | 4 + sizeof(struct usbh_video) * x | 0 | +|usbh_audio.c | ~3000 | 128 * x | 4 + sizeof(struct usbh_audio) * x | 0 | |usbh_rndis.c | ~3000 | 512 + 2 * 2048(default)| sizeof(struct usbh_rndis) * 1 | 0 | |usbh_cdc_ecm.c | ~1500 | 2 * 1514 + 16 | sizeof(struct usbh_cdc_ecm) * 1 | 0 | |usbh_cdc_ncm.c | ~2000 | 2 * 2048(default) + 16 + 32 | sizeof(struct usbh_cdc_ncm) * 1| 0 | |usbh_bluetooth.c | ~1000 | 2 * 2048(default) | sizeof(struct usbh_bluetooth) * 1 | 0 | -|usbh_asix.c | ~7000 | 2 * 2048(default) + 16 + 32 | sizeof(struct usbh_asix) * 1 | 0 | -|usbh_rtl8152.c | ~9000 | 16K+ 2K(default) + 2 + 32 | sizeof(struct usbh_rtl8152) * 1 | 0 | +|usbh_asix.c | ~3500 | 2 * 2048(default) + 16 + 32 | sizeof(struct usbh_asix) * 1 | 0 | +|usbh_rtl8152.c | ~5500 | 16K+ 2K(default) + 2 + 32 | sizeof(struct usbh_rtl8152) * 1 | 0 | +|usbh_serial.c | ~3000 | (512 * 2 + 32 * 2) * x | sizeof(struct usbh_serial) * x (2048 default) | 0 | +|usbh_cdc_acm.c | ~1000 | 0 | 0 | 0 | +|usbh_ch340.c | ~1200 | 0 | 0 | 0 | +|usbh_ftdi.c | ~1200 | 0 | 0 | 0 | +|usbh_cp2102.c | ~2200 | 0 | 0 | 0 | +|usbh_pl2303.c | ~2500 | 0 | 0 | 0 | +|usbh_gsm.c | ~300 | 0 | 0 | 0 | 其中,`sizeof(struct usbh_hub)` 和 `sizeof(struct usbh_hubport)` 受以下宏影响: @@ -1,5 +1,5 @@ VERSION_MAJOR = 1 VERSION_MINOR = 6 -PATCHLEVEL = 0 +PATCHLEVEL = 1 VERSION_TWEAK = 0 EXTRAVERSION = 0 diff --git a/class/serial/usbh_serial.c b/class/serial/usbh_serial.c index b0bedc3c..3e17b12f 100644 --- a/class/serial/usbh_serial.c +++ b/class/serial/usbh_serial.c @@ -14,8 +14,6 @@ #define DEV_FORMAT_VENDOR "/dev/ttyUSB%d" #define DEV_FORMAT_CDC_ACM "/dev/ttyACM%d" -#define CONFIG_USBHOST_MAX_SERIAL_CLASS 4 - static struct usbh_serial g_serial_class[CONFIG_USBHOST_MAX_SERIAL_CLASS]; static uint32_t g_devinuse = 0; diff --git a/common/usb_version.h b/common/usb_version.h index 3e4c2aa3..5c59978f 100644 --- a/common/usb_version.h +++ b/common/usb_version.h @@ -15,7 +15,7 @@ #undef CHERRYUSB_VERSION_STR #endif -#define CHERRYUSB_VERSION 0x010600 -#define CHERRYUSB_VERSION_STR "v1.6.0" +#define CHERRYUSB_VERSION 0x010601 +#define CHERRYUSB_VERSION_STR "v1.6.1" #endif
\ No newline at end of file diff --git a/docs/assets/usbdevice_usage.png b/docs/assets/usbdevice_usage.png Binary files differnew file mode 100644 index 00000000..30f7c992 --- /dev/null +++ b/docs/assets/usbdevice_usage.png diff --git a/docs/assets/usbhost_usage.png b/docs/assets/usbhost_usage.png Binary files differnew file mode 100644 index 00000000..cb86a116 --- /dev/null +++ b/docs/assets/usbhost_usage.png diff --git a/docs/en/conf.py b/docs/en/conf.py index 22427158..096076b0 100755 --- a/docs/en/conf.py +++ b/docs/en/conf.py @@ -6,8 +6,8 @@ project = 'CherryUSB' copyright = '2022 ~ 2026, sakumisu' author = 'sakumisu' -release = '1.6.0' -version = '1.6.0' +release = '1.6.1' +version = '1.6.1' # -- General configuration diff --git a/docs/zh/conf.py b/docs/zh/conf.py index 22427158..096076b0 100644 --- a/docs/zh/conf.py +++ b/docs/zh/conf.py @@ -6,8 +6,8 @@ project = 'CherryUSB' copyright = '2022 ~ 2026, sakumisu' author = 'sakumisu' -release = '1.6.0' -version = '1.6.0' +release = '1.6.1' +version = '1.6.1' # -- General configuration diff --git a/docs/zh/quick_start/demo.rst b/docs/zh/quick_start/demo.rst index efa12f3f..d56839fb 100644 --- a/docs/zh/quick_start/demo.rst +++ b/docs/zh/quick_start/demo.rst @@ -119,8 +119,8 @@ ESP-Registry 可以参考官方文档,推荐使用 vscode + esp-idf 的开发� - DWC2 - less than latest -基于 NXP MCX 系列芯片 ---------------------------- +基于 SiFli 系列芯片(官方 SDK 支持) +-------------------------------------------- .. list-table:: :widths: 10 10 10 @@ -129,12 +129,12 @@ ESP-Registry 可以参考官方文档,推荐使用 vscode + esp-idf 的开发� * - Repo url - USB IP - Version - * - https://github.com/CherryUSB/cherryusb_mcx https://github.com/RT-Thread/rt-thread/tree/master/bsp/nxp/mcx - - CHIPIDEA/kinetis + * - https://github.com/OpenSiFli/SiFli-SDK + - MUSB - less than latest -基于 SiFli 系列芯片(官方 SDK 支持) --------------------------------------------- +基于 NXP MCX 系列芯片 +--------------------------- .. list-table:: :widths: 10 10 10 @@ -143,8 +143,8 @@ ESP-Registry 可以参考官方文档,推荐使用 vscode + esp-idf 的开发� * - Repo url - USB IP - Version - * - https://github.com/OpenSiFli/SiFli-SDK - - MUSB + * - https://github.com/CherryUSB/cherryusb_mcx https://github.com/RT-Thread/rt-thread/tree/master/bsp/nxp/mcx + - CHIPIDEA/kinetis - less than latest 基于 RP2040/RP2035 芯片(官方 SDK 即将支持) @@ -161,20 +161,6 @@ ESP-Registry 可以参考官方文档,推荐使用 vscode + esp-idf 的开发� - RP2040 - less than latest -基于 Bekencorp 系列芯片(官方 SDK 支持) ------------------------------------------------------- - -.. list-table:: - :widths: 10 10 10 - :header-rows: 1 - - * - Repo url - - USB IP - - Version - * - https://github.com/bekencorp/armino - - MUSB - - equal to v0.7.0 - 基于 ST 系列芯片 --------------------------- @@ -322,6 +308,16 @@ USB Host 移植要点 .. figure:: img/stm32_18.png +基于 Actionstech 系列芯片(官方 SDK 支持) +------------------------------------------------------ + +Not opensource, 请联系 Actionstech 官方 + +基于新塘系列芯片(官方 SDK 支持) +------------------------------------------------------ + +Not opensource, 请联系 新塘 官方 + 基于 Sophgo 系列芯片(官方 SDK 支持) ------------------------------------------------------ @@ -336,12 +332,16 @@ USB Host 移植要点 - DWC2 - equal to v0.7.0 -基于 Actionstech 系列芯片(官方 SDK 支持) +基于 Bekencorp 系列芯片(官方 SDK 支持) ------------------------------------------------------ -Not opensource, 请联系 Actionstech 官方 - -基于新塘系列芯片(官方 SDK 支持) ------------------------------------------------------- +.. list-table:: + :widths: 10 10 10 + :header-rows: 1 -Not opensource, 请联系 新塘 官方 + * - Repo url + - USB IP + - Version + * - https://github.com/bekencorp/armino + - MUSB + - equal to v0.7.0 diff --git a/docs/zh/version.rst b/docs/zh/version.rst index 5c6e23e7..9e008f2f 100644 --- a/docs/zh/version.rst +++ b/docs/zh/version.rst @@ -179,4 +179,14 @@ v1.6.0 - 支持 gamepad device - 增加 ti xmc,infineon edge e8x port 支持 - dwc2 增加 usbd_dwc2_get_system_clock 替换 SystemCoreClock;删除 __UNALIGNED_UINT32_READ 和 __UNALIGNED_UINT32_WRITE 宏;读取 setup 个数设置为 1个;第一次读取 setup 移动到 USB_OTG_GINTSTS_ENUMDNE 中断中 -- dwc2/ehci 增加 roothub 速度设置
\ No newline at end of file +- dwc2/ehci 增加 roothub 速度设置 + +v1.6.1 +---------------------- + +- 新增 USB 副屏驱动 +- 重构 DFU device 驱动 +- 重构主机报告描述符解析驱动 +- cherryrb 和 cherrymp 组件内置 +- 主机 hub 线程释放改成使用 mq 替代互斥锁 +- 部分 bugfix 和安全性代码检查
\ No newline at end of file diff --git a/idf_component.yml b/idf_component.yml index bcae2d65..976656cc 100644 --- a/idf_component.yml +++ b/idf_component.yml @@ -1,4 +1,4 @@ -version: "1.6.0" +version: "1.6.1" description: CherryUSB is a tiny and portable USB Stack (device & host) for embedded system with USB IP tags: - usb diff --git a/tests/bouffalolab/CMakeLists.txt b/tests/bouffalolab/CMakeLists.txt index 1a35d9b3..31bb9142 100644 --- a/tests/bouffalolab/CMakeLists.txt +++ b/tests/bouffalolab/CMakeLists.txt @@ -29,6 +29,7 @@ add_subdirectory(../.. cherryusb) # sdk_add_link_options(-uusbd_audio_init_intf) # sdk_add_link_options(-uusbd_cdc_ecm_init_intf) # sdk_add_link_options(-uusbd_rndis_init_intf) +# sdk_add_link_options(-uusbd_dfu_init_intf) # sdk_add_link_options(-uusbd_initialize) # sdk_add_link_options(-uusbd_desc_register) # sdk_add_link_options(-uusbd_add_interface) |
