跳到主要内容

USB 与 ADB 测试

YuzukiNeko 的 Type-C 在系统起来后会枚举为 ADB 设备。没有接 USB-TTL 时,日常看打印、敲命令用 ADB。

功能通过判据
枚举adb devices 显示 device
命令行adb shell ls / 能列出目录
传文件adb push / adb pull 成功,内容一致
看到打印输出执行 adb_enter 后,板端 printf 出现在 ADB 里

前提

板子已上电,adb devices 能看到设备。第一次连接和确认的步骤在 启动开发板;设备认不到,看 安装 USB 驱动

本页往后默认你已经能执行 adb shell

打印输出默认在哪里

控制台默认走调试串口:排针 H2-11(PB0/TX)、H2-10(PB1/RX),115200。这两脚同时接到 Type-C 的 SBU,插着数据线时用 USB-TTL 可能有干扰。

没有接串口线时,把控制台切到 ADB:

命令作用
adb_enter把 shell 和 console 切到 ADB,此后打印走 Type-C
adb_exit切回调试串口

adb shell 里看不到自己写的打印时,先执行 adb_enter

adb shell
adb_enter

之后的 printf 就会出现在这个 ADB 会话里。想切回去就执行 adb_exit

验证自己写的 printf 时:烧录 → adb shelladb_enter,再看输出。

传文件

echo 'F101 ADB test' > /tmp/f101-adb.txt
adb push /tmp/f101-adb.txt /data/
adb shell cat /data/f101-adb.txt
adb pull /data/f101-adb.txt /tmp/f101-adb-back.txt

板端打印相同文字,说明 USB 数据通路正常。

掉电保留的验证方法:往 /data 写一个文件后,把板子断电再上电,重新 adb shell cat 同一个文件,内容还在就说明用户分区可读写且掉电保留。

/data 对应 NOR 上的 UDISK 分区(littlefs 文件系统),/res 对应 res 分区(elmfat)。两个分区的布局见 SPI NOR

USB Host

SDK 默认编进了 CherryUSB Host(CONFIG_CHERRYUSB_HOST=y)。一块 Type-C 口不能同时当 Device 和 Host:默认镜像按 USB Device / ADB 使用,插 U 盘能不能枚举取决于供电和口的角色。

Host 相关的命令:

命令作用
lsusb列出已枚举的 USB 设备
usbh_init / usbh_deinit初始化 / 反初始化 USB Host
usbh_serialUSB 串口测试
cherryusbCherryUSB 自带的测试入口
cdc_acm_enter / cdc_acm_exit切到 / 退出 CDC ACM 串口设备

先执行 adb shell help 看当前固件实际注册了哪些(固件裁剪不同,命令会不一样):

adb shell help
adb shell help | grep usb

出问题怎么查

现象可能原因处理
adb devices 为空ADB 驱动没装安装 USB 驱动
显示 unauthorized主机侧连接状态异常换 USB 口/换线,拔插重连,必要时重新上电
adb shell 但看不到打印控制台还在调试串口上执行 adb_enter
adb push 失败目标路径不存在或分区满adb shell df/data 剩余空间
敲的命令提示找不到该命令没编进当前固件adb shell help 查实际命令列表