summaryrefslogtreecommitdiff
path: root/docs/source/quick_start
diff options
context:
space:
mode:
Diffstat (limited to 'docs/source/quick_start')
-rw-r--r--docs/source/quick_start/index.rst10
-rw-r--r--docs/source/quick_start/other_chip.rst11
-rw-r--r--docs/source/quick_start/rt-thread/img/config_file.pngbin33065 -> 0 bytes
-rw-r--r--docs/source/quick_start/rt-thread/img/env0.pngbin44794 -> 17041 bytes
-rw-r--r--docs/source/quick_start/rt-thread/img/env1.pngbin8709 -> 42859 bytes
-rw-r--r--docs/source/quick_start/rt-thread/img/env2.pngbin16250 -> 66915 bytes
-rw-r--r--docs/source/quick_start/rt-thread/img/env3.pngbin11482 -> 0 bytes
-rw-r--r--docs/source/quick_start/rt-thread/img/env4.pngbin14165 -> 0 bytes
-rw-r--r--docs/source/quick_start/rt-thread/img/env5.pngbin12754 -> 0 bytes
-rw-r--r--docs/source/quick_start/rt-thread/img/env6.pngbin3551 -> 0 bytes
-rw-r--r--docs/source/quick_start/rt-thread/img/env7.pngbin17562 -> 0 bytes
-rw-r--r--docs/source/quick_start/rt-thread/img/env8.pngbin18580 -> 0 bytes
-rw-r--r--docs/source/quick_start/rt-thread/rtthread.rst51
13 files changed, 40 insertions, 32 deletions
diff --git a/docs/source/quick_start/index.rst b/docs/source/quick_start/index.rst
index 181bfa66..392315aa 100644
--- a/docs/source/quick_start/index.rst
+++ b/docs/source/quick_start/index.rst
@@ -11,7 +11,7 @@
- BL702 是一个 USB2.0 全速芯片,共 8 个端点(包含端点0)。仅支持从机。
- BL616/BL808 是一个 USB2.0 并且内置高速 PHY 芯片,共 5个端点(包含端点0)。支持主从机。
-- USB 的相关应用位于 `examples/usbdev` 和 `examples/usbhost` 目录下,根据官方环境搭建完成后,即可编译使用。
+- USB 的相关应用位于 `examples/usbdev` 和 `examples/usbhost` 目录下,根据官方环境搭建完成后,即可编译使用。
基于 ST 系列芯片
@@ -22,8 +22,8 @@
默认提供以下 demo 工程:
- F103 使用 fsdev ip
-- F429 主从使用 USB_OTG_HS, 引脚 pb14/pb15, 并且都使用 dma 模式
-- H7 设备使用 USB_OTG_FS, 引脚 pa11/pa12,主机使用 USB_OTG_HS ,引脚 pb14/pb15,并且需要做 nocache 处理
+- F429 主从使用 USB1, 引脚 pb14/pb15, 并且都使用 dma 模式
+- H7 设备使用 USB0, 引脚 pa11/pa12,主机使用 USB_OTG_HS ,引脚 pb14/pb15,并且需要做 nocache 处理
默认删除 Drivers ,所以需要使用 stm32cubemx 生成一下 Drivers 目录下的文件,demo 底下提供了 **stm32xxx.ioc** 文件,双击打开,点击 **Generate Code** 即可。
@@ -32,7 +32,7 @@
涵盖 F1/F4/H7,其余芯片基本类似,不再赘述,具体区别有:
- usb ip 区别:F1使用 fsdev,F4/H7使用 dwc2
-- dwc2 ip 区别: USB_OTG_FS (引脚是 PA11/PA12) 和 USB_OTG_HS (引脚是 PB14/PB15), 其中 USB_OTG_HS 默认全速,可以接外部PHY 形成高速主机,并且带 dma 功能
+- dwc2 ip 区别: USB0 (引脚是 PA11/PA12) 和 USB1 (引脚是 PB14/PB15), 其中 USB1 默认全速,可以接外部PHY 形成高速主机,并且带 dma 功能
- F4 无cache,H7 有 cache
如果是 STM32F7/STM32H7 这种带 cache 功能,需要将 usb 使用到的 ram 定位到 no cache ram 区域。举例如下
@@ -179,4 +179,4 @@ USB Host 移植要点
仓库参考:https://github.com/CherryUSB/cherryusb_hpmicro
- HPM 系列芯片均 USB 2.0 并且内置高速 PHY,支持主从机
-- USB 的相关应用位于 `samples/cherryusb` ,根据官方环境搭建完成后,即可编译使用。
+- USB 的相关应用位于 `samples/cherryusb` ,根据官方环境搭建完成后,即可编译使用。
diff --git a/docs/source/quick_start/other_chip.rst b/docs/source/quick_start/other_chip.rst
index 7716e8a3..cb0832c7 100644
--- a/docs/source/quick_start/other_chip.rst
+++ b/docs/source/quick_start/other_chip.rst
@@ -22,16 +22,19 @@ USB Host 移植要点
- 实现 `usb_hc_low_level_init` 函数(该函数主要负责 USB 时钟、引脚、中断的初始化)。该函数可以放在你想要放的任何参与编译的 c 文件中。如何进行 USB 的时钟、引脚、中断等初始化,请自行根据你使用的芯片原厂提供的源码中进行添加。
- 调用 `usbh_initialize` 并填入 `busid` 和 USB IP 的 `reg base`, `busid` 从 0 开始,不能超过 `CONFIG_USBHOST_MAX_BUS`
- 在中断函数中调用 `USBH_IRQHandler`,并传入 `busid`, 如果你的 SDK 中中断入口已经存在 `USBH_IRQHandler` ,请更改 USB 协议栈中的名称
-- 如果使用的是 GCC ,需要在链接脚本(ld)中添加如下代码(需要放在 flash 位置):
+- 如果使用的是 GCC ,需要在链接脚本中添加如下代码(需要放在 flash 位置):
.. code-block:: C
+
// 在 ld 文件中添加如下代码
. = ALIGN(4);
__usbh_class_info_start__ = .;
KEEP(*(.usbh_class_info))
__usbh_class_info_end__ = .;
- // 举例如下
+GCC 举例如下:
+
+.. code-block:: C
/* The program code and other data into "FLASH" Rom type memory */
.text :
@@ -51,9 +54,9 @@ USB Host 移植要点
__usbh_class_info_end__ = .;
. = ALIGN(4);
_etext = .; /* define a global symbols at end of code */
- } >FLASH
+ } > FLASH
-- 如果使用的是 Segger Embedded Studio ,需要在链接脚本(icf)中添加如下代码:
+- Segger Embedded Studio 举例如下:
.. code-block:: C
diff --git a/docs/source/quick_start/rt-thread/img/config_file.png b/docs/source/quick_start/rt-thread/img/config_file.png
deleted file mode 100644
index fd369f37..00000000
--- a/docs/source/quick_start/rt-thread/img/config_file.png
+++ /dev/null
Binary files differ
diff --git a/docs/source/quick_start/rt-thread/img/env0.png b/docs/source/quick_start/rt-thread/img/env0.png
index bb9e8e19..c0a8b03f 100644
--- a/docs/source/quick_start/rt-thread/img/env0.png
+++ b/docs/source/quick_start/rt-thread/img/env0.png
Binary files differ
diff --git a/docs/source/quick_start/rt-thread/img/env1.png b/docs/source/quick_start/rt-thread/img/env1.png
index d232a408..2a68e052 100644
--- a/docs/source/quick_start/rt-thread/img/env1.png
+++ b/docs/source/quick_start/rt-thread/img/env1.png
Binary files differ
diff --git a/docs/source/quick_start/rt-thread/img/env2.png b/docs/source/quick_start/rt-thread/img/env2.png
index 48657413..ee37101a 100644
--- a/docs/source/quick_start/rt-thread/img/env2.png
+++ b/docs/source/quick_start/rt-thread/img/env2.png
Binary files differ
diff --git a/docs/source/quick_start/rt-thread/img/env3.png b/docs/source/quick_start/rt-thread/img/env3.png
deleted file mode 100644
index ed55056b..00000000
--- a/docs/source/quick_start/rt-thread/img/env3.png
+++ /dev/null
Binary files differ
diff --git a/docs/source/quick_start/rt-thread/img/env4.png b/docs/source/quick_start/rt-thread/img/env4.png
deleted file mode 100644
index 36c4e53c..00000000
--- a/docs/source/quick_start/rt-thread/img/env4.png
+++ /dev/null
Binary files differ
diff --git a/docs/source/quick_start/rt-thread/img/env5.png b/docs/source/quick_start/rt-thread/img/env5.png
deleted file mode 100644
index 85de879a..00000000
--- a/docs/source/quick_start/rt-thread/img/env5.png
+++ /dev/null
Binary files differ
diff --git a/docs/source/quick_start/rt-thread/img/env6.png b/docs/source/quick_start/rt-thread/img/env6.png
deleted file mode 100644
index 20a57d07..00000000
--- a/docs/source/quick_start/rt-thread/img/env6.png
+++ /dev/null
Binary files differ
diff --git a/docs/source/quick_start/rt-thread/img/env7.png b/docs/source/quick_start/rt-thread/img/env7.png
deleted file mode 100644
index dc63bebd..00000000
--- a/docs/source/quick_start/rt-thread/img/env7.png
+++ /dev/null
Binary files differ
diff --git a/docs/source/quick_start/rt-thread/img/env8.png b/docs/source/quick_start/rt-thread/img/env8.png
deleted file mode 100644
index c2e31f9a..00000000
--- a/docs/source/quick_start/rt-thread/img/env8.png
+++ /dev/null
Binary files differ
diff --git a/docs/source/quick_start/rt-thread/rtthread.rst b/docs/source/quick_start/rt-thread/rtthread.rst
index 69db0db4..b69b95fe 100644
--- a/docs/source/quick_start/rt-thread/rtthread.rst
+++ b/docs/source/quick_start/rt-thread/rtthread.rst
@@ -9,31 +9,28 @@
--------------------------
* 选择 Enable usb device mode 并敲回车进入。
-
-.. figure:: img/env1.png
-.. figure:: img/env2.png
-
-* 首先第一个配置是配置 USB 的速度,分为 **FS、HS**,表示使用全速还是高速功能。
-
-.. figure:: img/env3.png
-
+* 首先第一个配置是配置 USB 的速度,分为 **FS、HS**,表示使用全速还是高速功能。高速功能要求内置高速 PHY 或者外接 PHY
* 其次第二个配置则是选择 USB device ip,不清楚自己芯片是哪个 ip 的可以参考 **port** 目录下对应的 readme。
+* 选择你想使用的 class
+* 选择是否使用 demo 模板
-.. figure:: img/env4.png
+.. figure:: img/env1.png
-* 选择好 USB device ip 以后,还需要选择是哪款芯片,第三个配置则是用来选择芯片,选择以后会配置相应的 ip 的一些信息和 glue 文件
+* 最后退出保存即可。
+* 拷贝 `cherryusb_config_template.h` 文件到自己工程目录下,命名为 `usb_config.h`,并添加相应的目录头文件路径,并修改以下内容:
-.. figure:: img/env5.png
+.. code-block:: C
-* 接下来是 class 的选择,用哪个 class 勾选哪个就可以了,使能 class 以后,双击进入可以选择一个 demo 的模板参与编译,当然也可以不选,自己写。
+ #include "rtthread.h"
-.. figure:: img/env6.png
+ #define CONFIG_USB_PRINTF(...) rt_kprintf(__VA_ARGS__)
-* 最后退出保存即可。
-* 拷贝 `cherryusb_config_template.h` 文件到自己工程目录下,命名为 `usb_config.h`,并添加相应的目录头文件路径,并实现以下内容:
+ #define usb_malloc(size) rt_malloc(size)
+ #define usb_free(ptr) rt_free(ptr)
-.. figure:: img/config_file.png
+ #define memcpy rt_memcpy
+* USB IP 相关的 config 需要用户自己根据芯片实际情况修改
* 退出以后不急着编译,需要在代码中实现 `usb_dc_low_level_init` 函数。
* 调用 `usbd_initialize` 并填入 `busid` 和 USB IP 的 `reg base`, `busid` 从 0 开始,不能超过 `CONFIG_USBDEV_MAX_BUS`
* 以上内容我们推荐放在 **board.c** 中,如下代码:
@@ -60,19 +57,27 @@
--------------------------
* 选择 Enable usb host mode 并敲回车进入。
+* 选择 USB host ip,不清楚自己芯片是哪个 ip 的可以参考 **port** 目录下对应的 readme。
+* 根据需要勾选 class 驱动
+* 选择是否开启模板 demo,请注意, msc 禁止使能,因为默认对接到 dfs。
-.. figure:: img/env7.png
-
-* 选择 USB host ip,不清楚自己芯片是哪个 ip 的可以参考 **port** 目录下对应的 readme。选择好 USB host ip 以后,还需要选择是哪款芯片,第二个箭头则是用来选择芯片,选择以后会帮忙配置相对应的 ip 的一些信息,比如 `USB_BASE` 、 `USBH_Handler` 以及特殊的一些配置等等,如果没找到自己的芯片,可以手动在 `usb_hc_xxx.c` 中修改。
-
-.. figure:: img/env8.png
+.. figure:: img/env2.png
-* 根据需要勾选 class 驱动
* 最后退出保存即可。
* 拷贝 `cherryusb_config_template.h` 文件到自己工程目录下,命名为 `usb_config.h`,并添加相应的目录头文件路径,并实现以下内容:
-.. figure:: img/config_file.png
+.. code-block:: C
+
+ #include "rtthread.h"
+
+ #define CONFIG_USB_PRINTF(...) rt_kprintf(__VA_ARGS__)
+
+ #define usb_malloc(size) rt_malloc(size)
+ #define usb_free(ptr) rt_free(ptr)
+
+ #define memcpy rt_memcpy
+* USB IP 相关的 config 需要用户自己根据芯片实际情况修改
* 在代码中实现 `usb_hc_low_level_init` 函数
* 调用 `usbh_initialize` 并填入 `busid` 和 USB IP 的 `reg base`, `busid` 从 0 开始,不能超过 `CONFIG_USBHOST_MAX_BUS`
* 以上内容我们推荐放在 **board.c** 中,如下代码: