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 扫描设备
功能。