在全志R128开发过程中总结一些RTOS系统的usb命令使用方法,以下命令在所有RTOS平台(MELIS/FREERTOS)都可以使用
通过menuconfig打开usb模块功能
RTOS通过usb命令集成了测试用例。通过如下命令即可显示支持的功能:
代码语言:javascript复制//输入如下命令
msh />usb
Usage:
usb hci {-i|-r} [<port>]
usb udc {-i|-r} [<port>]
usb phy_range {-s|-g} {<port>} [<phyrange>]
usb ed_test {<port>} {<type>}
usb debug {<status>}
usb uvc_test
- - - - - - - - - - - - - - - - - - - - -
Meaning:
-i:insmod, -r:rmmod, -s:set, -g:get
port : [0-0],port number
phyrange : [0x0-0x1f],phy range
status : [0-disable,1-enable],hci debug status
type : [test_j_state/test_k_state/test_se0_nak/test_pack]--hci & otg
[test_not_operating/test_force_enable/test_mask]--hci only
==>> More information refer to spec <<==
HCI功能测试
命令形式:usb hci {-i|-r} [<port>]
- 加载hci驱动(以USB1为例)
usb hci -i 1
- 卸载hci驱动(以USB1为例)
usb hci -r 1
UDC功能测试
命令形式:usb udc {-i|-r} [<port>]
- 加载udc驱动(以USB0为例)
usb udc -i 0
- 卸载udc驱动(以USB0为例)
usb udc -r 0
UVC功能测试
命令形式:usb uvc_test
- 启动uvs功能测试
usb uvc_test
phy range参数调整
命令形式:usb phy_range {-s|-g} {<port>} [<phyrange>]
- 读取phy range参数(以USB0为例)
usb phy_range -g 0
…
OTG0 phy range
phy_range = 0xa07, details:
bit[12] = 0x0, mode iref-1 vref-0
bit[11:9] = 0x5, rise time(all usb)
bit[8:6] = 0x0, rise time(current usb)
bit[5:4] = 0x0, pre-emphasis
bit[3:0] = 0x7, resistance
USB0较为特殊,host和device的参数是分开调整的,注意打印,例如上述例子中,“OTG0 phy range”表示目前处于device模式,显示的是device端的phy range。
phy_range就是目前的值,调整参数可以在此基础上进行调整,具体含义参考上面打印中的提示。
- 设置phy range参数(以USB0为例)
usb phy_range -s 0 0xa08
…
OTG0 phy range
phy_range config in vref mode success!
同理,“OTG0 phy range”表示目前处于device模式,设置的是device端的phy range。
ed test测试模式设置
命令形式:usb ed_test {<port>} {<type>}
- 设置ed_test测试模式(以USB1为例)
usb ed_test 1 test_j_state
usb debug功能启停
命令形式:usb debug {<status>}
- 打开debug模式
usb debug 1
- 关闭debug模式
usb debug 0