@@ -12,7 +12,7 @@
|
|||||||
<a href="./README.md">English</a>
|
<a href="./README.md">English</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
CherryUSB is a tiny, beautiful and portable USB host and device stack for embedded system with USB IP.
|
CherryUSB is a tiny and beautiful, high performance and portable USB host and device stack for embedded system with USB IP.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<a href="./README.md">English</a>
|
<a href="./README.md">English</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
CherryUSB 是一个小而美的、可移植性高的、用于嵌入式系统(带 USB IP)的 USB 主从协议栈。
|
CherryUSB 是一个小而美的、可移植性高的、用于嵌入式系统(带 USB IP)的高性能 USB 主从协议栈。
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|||||||
2
VERSION
2
VERSION
@@ -1,5 +1,5 @@
|
|||||||
VERSION_MAJOR = 1
|
VERSION_MAJOR = 1
|
||||||
VERSION_MINOR = 4
|
VERSION_MINOR = 4
|
||||||
PATCHLEVEL = 2
|
PATCHLEVEL = 3
|
||||||
VERSION_TWEAK = 0
|
VERSION_TWEAK = 0
|
||||||
EXTRAVERSION = 0
|
EXTRAVERSION = 0
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
#undef CHERRYUSB_VERSION_STR
|
#undef CHERRYUSB_VERSION_STR
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define CHERRYUSB_VERSION 0x010402
|
#define CHERRYUSB_VERSION 0x010403
|
||||||
#define CHERRYUSB_VERSION_STR "v1.4.2"
|
#define CHERRYUSB_VERSION_STR "v1.4.3"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -6,8 +6,8 @@ project = 'CherryUSB'
|
|||||||
copyright = '2022 ~ 2024, sakumisu'
|
copyright = '2022 ~ 2024, sakumisu'
|
||||||
author = 'sakumisu'
|
author = 'sakumisu'
|
||||||
|
|
||||||
release = '1.4.2'
|
release = '1.4.3'
|
||||||
version = '1.4.2'
|
version = '1.4.3'
|
||||||
|
|
||||||
# -- General configuration
|
# -- General configuration
|
||||||
|
|
||||||
|
|||||||
@@ -91,7 +91,7 @@
|
|||||||
INIT_APP_EXPORT(usbh_init);
|
INIT_APP_EXPORT(usbh_init);
|
||||||
|
|
||||||
* 使用 `scons --target=mdk5` 或者 `scons` 进行编译,如果是mdk,需要使用 AC6 编译器
|
* 使用 `scons --target=mdk5` 或者 `scons` 进行编译,如果是mdk,需要使用 AC6 编译器
|
||||||
* 如果使用的是 GCC ,需要在链接脚本(ld)中添加如下代码:
|
* 如果使用的是 GCC ,需要在链接脚本(需要放在 flash 位置)中添加如下代码:
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|
||||||
@@ -102,6 +102,30 @@
|
|||||||
__usbh_class_info_end__ = .;
|
__usbh_class_info_end__ = .;
|
||||||
|
|
||||||
|
|
||||||
|
举例如下:
|
||||||
|
|
||||||
|
.. code-block:: C
|
||||||
|
|
||||||
|
/* The program code and other data into "FLASH" Rom type memory */
|
||||||
|
.text :
|
||||||
|
{
|
||||||
|
. = ALIGN(4);
|
||||||
|
*(.text) /* .text sections (code) */
|
||||||
|
*(.text*) /* .text* sections (code) */
|
||||||
|
*(.glue_7) /* glue arm to thumb code */
|
||||||
|
*(.glue_7t) /* glue thumb to arm code */
|
||||||
|
*(.eh_frame)
|
||||||
|
|
||||||
|
KEEP (*(.init))
|
||||||
|
KEEP (*(.fini))
|
||||||
|
. = ALIGN(4);
|
||||||
|
__usbh_class_info_start__ = .;
|
||||||
|
KEEP(*(.usbh_class_info))
|
||||||
|
__usbh_class_info_end__ = .;
|
||||||
|
. = ALIGN(4);
|
||||||
|
_etext = .; /* define a global symbols at end of code */
|
||||||
|
} > FLASH
|
||||||
|
|
||||||
借助 STM32CubeMX 生成 USB 初始化
|
借助 STM32CubeMX 生成 USB 初始化
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -76,6 +76,8 @@ GCC 举例如下:
|
|||||||
协议栈以及 port 中不会对 cache 区域的 ram 进行 clean 或者 invalid,所以需要使用一块非 cache 区域的 ram 来维护。 `USB_NOCACHE_RAM_SECTION` 宏表示将变量指定到非 cache ram上,
|
协议栈以及 port 中不会对 cache 区域的 ram 进行 clean 或者 invalid,所以需要使用一块非 cache 区域的 ram 来维护。 `USB_NOCACHE_RAM_SECTION` 宏表示将变量指定到非 cache ram上,
|
||||||
因此,用户需要在对应的链接脚本中添加 no cache ram 的 section。默认 `USB_NOCACHE_RAM_SECTION` 定义为 `__attribute__((section(".noncacheable")))`。
|
因此,用户需要在对应的链接脚本中添加 no cache ram 的 section。默认 `USB_NOCACHE_RAM_SECTION` 定义为 `__attribute__((section(".noncacheable")))`。
|
||||||
|
|
||||||
|
.. note:: 需要注意,光指定 section 是不够的,还需要配置该 section 中的 ram 是真的 nocache,一般需要配置 mpu 属性(arm 的参考 stm32h7 demo)。
|
||||||
|
|
||||||
GCC:
|
GCC:
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|||||||
@@ -87,3 +87,16 @@ v1.4.2
|
|||||||
- 兼容 C++ 相关修改
|
- 兼容 C++ 相关修改
|
||||||
- fsdev 不支持 ISO 和 DWC2 高速 hub 不支持全速低速检查
|
- fsdev 不支持 ISO 和 DWC2 高速 hub 不支持全速低速检查
|
||||||
- 通用 OHCI 代码更新
|
- 通用 OHCI 代码更新
|
||||||
|
|
||||||
|
v1.4.3
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
- device ep0 处理增加线程模式
|
||||||
|
- device audio feedback 宏和demo
|
||||||
|
- device rndis 增加透传功能(无LWIP)
|
||||||
|
- host msc 将 scsi 初始化从枚举线程中移出,在mount阶段调用,并增加了testunity 多次尝试,兼容一部分 U 盘
|
||||||
|
- rp2040 主从支持
|
||||||
|
- nuttx fs,serial,net 组件支持
|
||||||
|
- dwc2、ehci、ohci 主机 dcache功能支持
|
||||||
|
- t113、MCXA156、CH585 、stm32h7r 支持
|
||||||
|
- 修复 v1.4.1 中 altsetting 为0时应该关闭所有端点的问题
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
version: "1.4.2"
|
version: "1.4.3"
|
||||||
description: CherryUSB is a tiny and portable USB Stack (device & host) for embedded system with USB IP
|
description: CherryUSB is a tiny and portable USB Stack (device & host) for embedded system with USB IP
|
||||||
tags:
|
tags:
|
||||||
- usb
|
- usb
|
||||||
|
|||||||
Reference in New Issue
Block a user