7.13.3. 配置指南¶
7.13.3.1. USB Host 配置¶
7.13.3.1.1. USB Host Controller 配置¶
首先需要配置好 USB Host Contoller ,ArtinChip 在 1 个 USB Host 端口中提供了 2 类 Host Contoller:
- 针对 USB 2.0 (High Speed) 的 EHCI 控制器 
- 针对 USB 1.0/1.1 (Low/Full Speed) 的 OHCI 控制器 
在软件上需要需要分开配置。
7.13.3.1.1.1. EHCI 配置¶
- 在 Menuconfig 中配置设备。使能 USB 端口,并且配置当前 USB 端口为 Host 模式: 
> Board options
   [*] Using Usb0
       Select Usb0 mode (Host)  --->
- 在 Menuconfig 中配置 CherryUSB 驱动。使能 CherryUSB 驱动,并且使能 Host 模式: 
> Local packages options
   > Third-party packages options
       [*] CherryUSB: tiny and portable USB host/device stack for embedded system with USB IP  --->
           [*]   Enable usb host mode  --->
7.13.3.1.2. USB Interface 驱动配置¶
在配置好 USB Host Controller 以后,就能够正确识别插入 USB 总线的 Device 设备了。
但是 USB Device 有很多不同类型 (例如:U 盘、键盘鼠标、无线网卡 …) ,这些功能都是在 USB Device 中以 Interface 为单位提供的。所以要使用 USB Device 的具体功能,还需要配置不同类型 USB Interface 的驱动。
7.13.3.1.2.1. U 盘 配置¶
- 在 Menuconfig 中使能 CherryUSB 中 msc 类型的 Host Class 驱动,并且使能对应实例模板: 
> Local packages options
   > Third-party packages options
       [*] CherryUSB: tiny and portable USB host/device stack for embedded system with USB IP  --->
           [*]   Enable usb host mode  --->
               [*]   Enable usb msc driver  --->
                   [*]   Use msc template
- 插入 U 盘,会自动挂载到 - /disk目录:
[I/USB] New high-speed device on Hub 1, Port 1 connected
[I/USB] New device found,idVendor:30de,idProduct:6544,bcdDevice:0100
[I/USB] The device has 1 interfaces
[I/USB] Enumeration success, start loading class driver
[I/USB] Loading msc class driver
[I/USB] Get max LUN:1
[I/USB] Ep=81 Attr=02 Mps=512 Interval=255 Mult=00
[I/USB] Ep=02 Attr=02 Mps=512 Interval=255 Mult=00
[I/USB] Capacity info:
[I/USB] Block num:30274560,block size:512
[I/USB] Register MSC Class:/dev/sda
found part[0], begin: 32256, size: 14.446GB
[I] udisk_init()122 Found partition 0: type = 11, offet=0x3f, size=0x1cdf2a1
01-01 08:00:06 I/NO_TAG: try to mount file system!
7.13.3.2. USB Device 配置¶
首先要配置好 USB Device Controller。
7.13.3.2.1. USB Device Controller 配置¶
- 在 Menuconfig 中配置设备。使能 USB 端口,并且配置当前 USB 端口为 Device 模式: 
> Board options
   [*] Using Usb0
       Select Usb0 mode (Device)  --->
- 在 Menuconfig 中配置 CherryUSB 驱动。使能 CherryUSB 驱动,并且使能 Device 模式: 
> Local packages options
   > Third-party packages options
       [*] CherryUSB: tiny and portable USB host/device stack for embedded system with USB IP  --->
           [*]   Enable usb device mode  --->
7.13.3.2.2. USB Interface 配置¶
USB Device 可以模拟成各种功能的 USB 外设,例如:USB 串口、USB 网口、U 盘。。。
7.13.3.2.2.1. U 盘 配置¶
- 在 Menuconfig 中使能 CherryUSB 中 msc 类型的 Device Class 驱动,并且使能对应实例模板: 
> Local packages options
   > Third-party packages options
       [*] CherryUSB: tiny and portable USB host/device stack for embedded system with USB IP  --->
           [*]   Enable usb device mode  --->
               [*]   Enable usb msc device  --->
                   [*]   Use msc ram template
- 用户使用: - 将单板的 USB Device 端口和 Windows PC 的 USB Host 端口连接,在 Windows PC 上会看到一个新增的 U 盘,可以正常读写。 
 
7.13.3.2.2.2. ADBD 配置¶
- 在 Menuconfig 中使能 CherryUSB 中 msc 类型的 Device Class 驱动,并且使能对应实例模板: 
> Local packages options
   > Third-party packages options
       [*] CherryUSB: tiny and portable USB host/device stack for embedded system with USB IP  --->
       [*] ADBD: Android Debug Bridge daemon implementation in RT-Thread  --->
           [*]   Enable Shell service
           [*]   Enable File service
- 用户使用: - 将单板的 USB Device 端口和 PC 的 USB Host 端口连接,在 PC 端运行 - adb shell命令即可进行 adb 操作。 进入 adb shell 以后,可以通过- exitas命令退出:
 - C:\Users\xxx>adb shell aic /> ls Directory /: ram <DIR> data <DIR> rodata <DIR> sdcard <DIR> udisk <DIR> aic /> aic /> exit exitas aic /> exitas C:\Users\xxx> 
重要
AiBurn 烧录软件默认会不停的使用 ADB 命令来扫描单板是否启动完成,在使用 ADB 命令时为了避免冲突建议关闭 AiBurn 软件,或者在 AiBurn 中关闭 ADB 扫描设备 功能。