diff --git a/README.md b/README.md index 467f7e94..013ce688 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# USB Stack +# CherryUSB [中文版](./README_zh.md) -USB Stack is a tiny, beautiful and portable USB host and device stack for embedded system. +CherryUSB is a tiny, beautiful and portable USB host and device stack for embedded system. -## USB Stack Directoy Structure +## CherryUSB Directoy Structure ``` . @@ -51,13 +51,13 @@ USB Stack is a tiny, beautiful and portable USB host and device stack for embedd |packet capture | packet capture file | |port | usb dcd and hcd porting | -## USB Device Stack Overview +## CherryUSB Device Stack Overview -USB Device Stack provides a unified framework of functions for standard device requests, CLASS requests, VENDOR requests and custom special requests. The object-oriented and chained approach allows the user to quickly get started with composite devices without having to worry about the underlying logic. At the same time, a standard dcd porting interface has been standardised for adapting different USB IPs to achieve ip-oriented programming. +CherryUSB Device Stack provides a unified framework of functions for standard device requests, CLASS requests, VENDOR requests and custom special requests. The object-oriented and chained approach allows the user to quickly get started with composite devices without having to worry about the underlying logic. At the same time, a standard dcd porting interface has been standardised for adapting different USB IPs to achieve ip-oriented programming. -How USB Device Stack is implemented, this video will tell you: . +How CherryUSB Device Stack is implemented, this video will tell you: . -USB Device Stack has the following functions: +CherryUSB Device Stack has the following functions: - Support USB2.0 full and high speed - Support endpoint irq callback register by users, let users do whatever they wants in endpoint irq callback. @@ -74,7 +74,7 @@ USB Device Stack has the following functions: - Support Vendor class - Support WINUSB1.0、WINUSB2.0 -USB Device Stack resource usage: +CherryUSB Device Stack resource usage: | file | FLASH (Byte) | RAM (Byte) | |:-----------:|:--------------:|:------------:| @@ -85,13 +85,13 @@ USB Device Stack resource usage: |usbd_audio.c | 438 | 14 | |usbd_video.c | 402 | 4 | -## USB Host Stack Overview +## CherryUSB Host Stack Overview -The USB Host Stack has a standard enumeration implementation for devices mounted on roothubs and external hubs, and a standard interface for the different Class to indicate what the Class driver needs to do after enumeration and after disconnection. A standard hcd porting interface has also been standardised for adapting different USB IPs for IP-oriented programming. Finally, the protocol stack is managed using os, and provides osal to make a adaptation to different os. +The CherryUSB Host Stack has a standard enumeration implementation for devices mounted on roothubs and external hubs, and a standard interface for the different Class to indicate what the Class driver needs to do after enumeration and after disconnection. A standard hcd porting interface has also been standardised for adapting different USB IPs for IP-oriented programming. Finally, the protocol stack is managed using os, and provides osal to make a adaptation to different os. -How USB Host Stack is implemented, the video will be provided in future. +How CherryUSB Host Stack is implemented, the video will be provided in future. -USB Host Stack has the following functions: +CherryUSB Host Stack has the following functions: - Automatic loading of supported Class drivers - Support blocking transfers and asynchronous transfers @@ -103,18 +103,18 @@ USB Host Stack has the following functions: - Support Vendor class - Support Andriod AOA Communication -The USB Host stack also provides the lsusb function, which allows you to view information about all mounted devices, including those on external hubs, with the help of a shell plugin. +The CherryUSB Host stack also provides the lsusb function, which allows you to view information about all mounted devices, including those on external hubs, with the help of a shell plugin. ![lsusb](docs/img/lsusb.png) -## USB Device API +## CherryUSB Device API -More of USB Device API reference, please visit : [USB Device API](docs/usb_device.md) +More of USB Device API reference, please visit : [CherryUSB Device API](docs/usb_device.md) -## USB Host API +## CherryUSB Host API -More of USB Host API reference, please visit: [USB Host API](docs/usb_host.md) +More of USB Host API reference, please visit: [CherryUSB Host API](docs/usb_host.md) ## How To Use In RT-Thread package -How to use in RT-Thread package, please visit:[RT-Thread package Userguide with usb stack](docs/rt-thread.md) +How to use in RT-Thread package, please visit:[RT-Thread package Userguide with CherryUSB](docs/rt-thread.md) diff --git a/README_zh.md b/README_zh.md index 5508e1e9..82d2f489 100644 --- a/README_zh.md +++ b/README_zh.md @@ -1,10 +1,10 @@ -# USB Stack +# CherryUSB [English](./README.md) -USB Stack 是一个小而美的、可移植性高的、用于嵌入式系统的 USB 主从协议栈。 +CherryUSB 是一个小而美的、可移植性高的、用于嵌入式系统的 USB 主从协议栈。 -## USB Stack 目录结构 +## CherryUSB 目录结构 ``` . @@ -51,13 +51,13 @@ USB Stack 是一个小而美的、可移植性高的、用于嵌入式系统的 |packet capture | 抓包文件(需要使用力科软件打开)| |port | usb 主从需要实现的 porting 接口 | -## USB Device 协议栈简介 +## CherryUSB Device 协议栈简介 -USB Device 协议栈对标准设备请求、CLASS 请求、VENDOR 请求以及 custom 特殊请求规范了一套统一的函数框架,采用面向对象和链表的方式,能够使得用户快速上手复合设备,不用管底层的逻辑。同时,规范了一套标准的 dcd porting 接口,用于适配不同的 USB IP,达到面向 ip 编程。 +CherryUSB Device 协议栈对标准设备请求、CLASS 请求、VENDOR 请求以及 custom 特殊请求规范了一套统一的函数框架,采用面向对象和链表的方式,能够使得用户快速上手复合设备,不用管底层的逻辑。同时,规范了一套标准的 dcd porting 接口,用于适配不同的 USB IP,达到面向 ip 编程。 -USB Device 协议栈的代码实现过程参考 。 +CherryUSB Device 协议栈的代码实现过程参考 。 -USB Device 协议栈当前实现以下功能: +CherryUSB Device 协议栈当前实现以下功能: - 支持 USB2.0 全速和高速设备 - 支持端点中断注册功能,porting 给用户自己处理中断里的数据 @@ -74,7 +74,7 @@ USB Device 协议栈当前实现以下功能: - 支持 Vendor 类 class - 支持 WINUSB1.0、WINUSB2.0 -USB Device 协议栈资源占用说明: +CherryUSB Device 协议栈资源占用说明: | file | FLASH (Byte) | RAM (Byte) | |:-----------:|:--------------:|:------------:| @@ -85,13 +85,13 @@ USB Device 协议栈资源占用说明: |usbd_audio.c | 438 | 14 | |usbd_video.c | 402 | 4 | -## USB Host 协议栈简介 +## CherryUSB Host 协议栈简介 -USB Host 协议栈对挂载在 roothub、外部 hub 上的设备规范了一套标准的枚举实现,对不同的 Class 类也规范了一套标准接口,用来指示在枚举后和断开连接后该 Class 驱动需要做的事情。同时,规范了一套标准的 hcd porting 接口,用于适配不同的 USB IP,达到面向 IP 编程。最后,协议栈使用 OS 管理,并提供了 osal 用来适配不同的 os。 +CherryUSB Host 协议栈对挂载在 roothub、外部 hub 上的设备规范了一套标准的枚举实现,对不同的 Class 类也规范了一套标准接口,用来指示在枚举后和断开连接后该 Class 驱动需要做的事情。同时,规范了一套标准的 hcd porting 接口,用于适配不同的 USB IP,达到面向 IP 编程。最后,协议栈使用 OS 管理,并提供了 osal 用来适配不同的 os。 -USB Host 协议栈的代码实现过程参考:视频后续发布。 +CherryUSB Host 协议栈的代码实现过程参考:视频后续发布。 -USB Host 协议栈当前实现以下功能: +CherryUSB Host 协议栈当前实现以下功能: - 自动加载支持的Class 驱动 - 支持阻塞式传输和异步传输 @@ -102,18 +102,18 @@ USB Host 协议栈当前实现以下功能: - 支持 Mass Storage Class (MSC) - 支持安卓 AOA Communication -同时,USB Host 协议栈还提供了 lsusb 的功能,借助 shell 插件可以查看所有挂载设备的信息,包括外部 hub 上的设备的信息。 +同时,CherryUSB Host 协议栈还提供了 lsusb 的功能,借助 shell 插件可以查看所有挂载设备的信息,包括外部 hub 上的设备的信息。 ![lsusb](docs/img/lsusb.png) -## USB Device API +## CherryUSB Device API -更详细的设备协议栈 API 请参考: [USB Device API](docs/usb_device.md) +更详细的设备协议栈 API 请参考: [CherryUSB Device API](docs/usb_device.md) -## USB Host API +## CherryUSB Host API -更详细的主机协议栈 API 请参考: [USB Host API](docs/usb_host.md) +更详细的主机协议栈 API 请参考: [CherryUSB Host API](docs/usb_host.md) ## RT-Thread 软件包使用 -如何在 RT-Thread OS 中使用软件包,请参考:[USB Stack 在 RT-Thread package 中的使用](docs/rt-thread_zh.md) +如何在 RT-Thread OS 中使用软件包,请参考:[CherryUSB 在 RT-Thread package 中的使用](docs/rt-thread_zh.md) diff --git a/SConscript b/SConscript index 28188599..7dca1787 100644 --- a/SConscript +++ b/SConscript @@ -5,32 +5,32 @@ path = [cwd + '/common'] path += [cwd + '/core'] src = Glob('core/usbd_core.c') CPPDEFINES = [] -if GetDepend(['PKG_USB_STACK_USING_HS']): +if GetDepend(['PKG_CherryUSB_USING_HS']): CPPDEFINES+=['CONFIG_USB_HS'] -elif GetDepend(['PKG_USB_STACK_USING_HS_IN_FULL']): +elif GetDepend(['PKG_CherryUSB_USING_HS_IN_FULL']): CPPDEFINES += ['CONFIG_USB_HS_IN_FULL'] # USB DEVICE -if GetDepend(['PKG_USB_STACK_USING_DEVICE']): - if GetDepend(['PKG_USB_STACK_USING_CDC']): +if GetDepend(['PKG_CherryUSB_USING_DEVICE']): + if GetDepend(['PKG_CherryUSB_USING_CDC']): path += [cwd + '/class/cdc'] src += Glob('class/cdc/usbd_cdc.c') - if GetDepend(['PKG_USB_STACK_USING_HID']): + if GetDepend(['PKG_CherryUSB_USING_HID']): path += [cwd + '/class/hid'] src += Glob('class/cdc/usbd_hid.c') - if GetDepend(['PKG_USB_STACK_USING_DFU']): + if GetDepend(['PKG_CherryUSB_USING_DFU']): path += [cwd + '/class/dfu'] src += Glob('class/cdc/usbd_dfu.c') - if GetDepend(['PKG_USB_STACK_USING_HUB']): + if GetDepend(['PKG_CherryUSB_USING_HUB']): path += [cwd + '/class/hub'] src += Glob('class/cdc/usbd_hub.c') - if GetDepend(['PKG_USB_STACK_USING_AUDIO']): + if GetDepend(['PKG_CherryUSB_USING_AUDIO']): path += [cwd + '/class/audio'] src += Glob('class/cdc/usbd_audio.c') - if GetDepend(['PKG_USB_STACK_USING_VIDEO']): + if GetDepend(['PKG_CherryUSB_USING_VIDEO']): path += [cwd + '/class/video'] src += Glob('class/cdc/usbd_video.c') - if GetDepend(['PKG_USB_STACK_USING_MSC']): + if GetDepend(['PKG_CherryUSB_USING_MSC']): path += [cwd + '/class/msc'] src += Glob('class/cdc/usbd_msc.c') if GetDepend(['SOC_FAMILY_STM32']): @@ -42,10 +42,10 @@ if GetDepend(['PKG_USB_STACK_USING_DEVICE']): CPPDEFINES += ['STM32H7'] # USB HOST -if GetDepend(['PKG_USB_STACK_USING_HOST']): +if GetDepend(['PKG_CherryUSB_USING_HOST']): pass; -group = DefineGroup('usb_stack', src, depend = ['PKG_USING_USB_STACK'], CPPPATH = path, CPPDEFINES = CPPDEFINES) +group = DefineGroup('CherryUSB', src, depend = ['PKG_USING_CherryUSB'], CPPPATH = path, CPPDEFINES = CPPDEFINES) Return('group') diff --git a/docs/rt-thread.md b/docs/rt-thread.md index 6689e047..d509ba30 100644 --- a/docs/rt-thread.md +++ b/docs/rt-thread.md @@ -1,15 +1,15 @@ -# RT-Thread package Userguide with usb stack +# RT-Thread package Userguide with CherryUSB [中文版](rt-thread_zh.md) -To use usb stack package, you need to select it in the RT-Thread package manager. The specific path is as follows: +To use CherryUSB package, you need to select it in the RT-Thread package manager. The specific path is as follows: ``` -> RT-Thread online packages -> system packages - --- USB Stack: tiny and portable USB stack for embedded system with USB IP + --- CherryUSB: tiny and portable USB stack for embedded system with USB IP - USB STACK Options ----> + CherryUSB Options ----> USB Speed (FS) ---> [*] Enable usb device mode [*] Enable usb cdc acm device diff --git a/docs/rt-thread_zh.md b/docs/rt-thread_zh.md index 612a4ab4..43c785d9 100644 --- a/docs/rt-thread_zh.md +++ b/docs/rt-thread_zh.md @@ -1,15 +1,15 @@ -# USB Stack 在 RT-Thread package 中的使用 +# CherryUSB 在 RT-Thread package 中的使用 [English Version](rt-thread.md) -使用 USB Stack package 需要在 RT-Thread 的包管理器中选择它,具体路径如下: +使用 CherryUSB package 需要在 RT-Thread 的包管理器中选择它,具体路径如下: ``` -> RT-Thread online packages -> system packages - --- USB Stack: tiny and portable USB stack for embedded system with USB IP + --- CherryUSB: tiny and portable USB stack for embedded system with USB IP - USB STACK Options ----> + CherryUSB Options ----> USB Speed (FS) ---> [*] Enable usb device mode [*] Enable usb cdc acm device diff --git a/docs/usb_device.md b/docs/usb_device.md index 865f8936..c02891d4 100644 --- a/docs/usb_device.md +++ b/docs/usb_device.md @@ -1,6 +1,6 @@ -# USB STACK API For device +# CherryUSB Device API -## USB Device Controller Porting 接口 +## CherryUSB Device Controller Porting 接口 USB Device controller porting 接口在 `usb_stack/common/usb_dc.h` 文件中声明,用户根据自己的 MCU 实现以下接口: @@ -13,13 +13,13 @@ USB Device controller porting 接口在 `usb_stack/common/usb_dc.h` 文件中声 - `usbd_ep_write` - `usbd_ep_read` -## USB Device Controller 其他接口 +## CherryUSB Device Controller 其他接口 用户需要实现 usb device controller 相关寄存器初始化的函数(可以命名为 `usb_dc_init` ),以及在 USB 中断函数中根据不同的中断标志调用 `usbd_event_notify_handler`。 -## USB Device 应用层接口 +## CherryUSB Device 应用层接口 -### USB Device 通用接口 +### CherryUSB Device 通用接口 #### **usbd_desc_register** diff --git a/docs/usb_host.md b/docs/usb_host.md index 2d245c7f..f435a8c2 100644 --- a/docs/usb_host.md +++ b/docs/usb_host.md @@ -1 +1 @@ -# USB STACK API For host \ No newline at end of file +# CherryUSB Host API \ No newline at end of file