1GHz的单片机RA8P1跑CherryUSB有多快?

strongerHuang 2026-08-20 12:00

关注+星标公众,不错过精彩内容

来源 | RT-Thread操作系统


CherryUSB 是一款专为嵌入式系统设计的轻量级、高性能开源 USB 主机和设备协议栈‌,支持多种 USB IP 控制器和操作系统,旨在简化嵌入式 USB 开发流程 。

CherryUSB 提供了完整的 USB 协议支持,具备以下核心能力:


‌1、双模式支持‌:同时支持 USB 设备模式(Device)和主机模式(Host),可灵活应用于不同场景 。‌‌‌

2、丰富的类驱动‌:内置多种常用 USB 设备类驱动,包括:

  • 通信设备类(CDC-ACM/ECM/NCM):用于虚拟串口、网络适配 。

  • 人机接口设备(HID):支持键盘、鼠标、游戏手柄 。

  • 大容量存储(MSC):支持 U 盘、SD 卡读写 。

  • 音视频类(UVC/UAC):支持摄像头、麦克风、扬声器 。

  • 其他类:支持 DFU(固件升级)、RNDIS(网络共享)、MIDI 等 。‌‌‌

3、高性能传输‌:采用零拷贝 DMA 技术和硬件自动分包机制,最大化利用 USB 硬件带宽,接近理论传输速度 。‌‌‌

4、跨平台兼容‌:支持 FreeRTOS、RT-Thread、Zephyr 等主流 RTOS,以及裸机环境 。‌‌‌


CherryUSB官方资源地址:
源码仓库:https://github.com/cherry-embedded/CherryUSB官方文档:https://cherryusb.readthedocs.io/zh-cn/latest
1GHz的单片机RA8P1跑CherryUSB有多快?图1

本文基于瑞萨RA8P1单片机(主频1GHz、内核Cortex-M85)测试其速度!

背景


  • CherryUSB 在 commit faf9360 正式支持 Renesas RA 系列

  • 硬件:RT-Thread RA8P1 Titan Board(Cortex-M85,1GHz)

  • 软件:e2studio + GCC(arm-none-eabi-gcc)

  • 之前做过 RZN2L 移植 CherryUSB 和瑞萨 USB IP 性能对比,这次继续相关测试

CherryUSB 文件选择与编译

需要编译的源文件

先用笨办法,将整个 CherryUSB 文件夹加入 e2studio 工程(方便后续直接替换),然后排除不需要的文件。实际需要编译的只有:

分类

文件

说明

Core

core/usbd_core.c

USB 设备

核心栈

Class

class/cdc/usbd_cdc_acm.c  

CDC ACM

 类驱动

Port

port/renesas/device/usb_dc_rensas.c

RA USB DCD 驱动

Port

port/renesas/device/r_usb_device.c

Renesas FSP USB 设备 HAL

对应的包含路径需要添加:


  • CherryUSB

  • CherryUSB/common

  • CherryUSB/core

  • CherryUSB/port/renesas

  • CherryUSB/port/renesas/device

排除方法

e2studio 的多选排除编译功能不太好用(不支持 Shift/Ctrl 多选后批量 Exclude from build)。推荐逐个文件右键 → Resource Configuration → Exclude from build。或者直接在 .cproject 中手动编辑排除规则。

排除类别

说明


全部排除再逐个添加


整个 CherryUSB 文件夹 Exclude,再对上述 4 个 .c 文件取消 Exclude

保留 demo

demo/ 

目录是模板参考,不需要编译


osal


当前只做 Device 模式,osal 文件不需要(CherryUSB 设备栈不依赖 OSAL)

usb_config.h 关键配置

#defineCONFIG_USB_HS/* 高速模式 */#defineCONFIG_USBDEV_ADVANCE_DESC/* 使用高级描述符回调 */#defineCONFIG_USBDEV_REQUEST_BUFFER_LEN512#defineCONFIG_USBDEV_MAX_BUS2#defineCONFIG_USBHOST_MAX_BUS0/* 仅设备模式 */

通过注释/取消注释 CONFIG_USB_HS 切换 Full-Speed / High-Speed。

测试代码

设备端

  • src/examples/cdc_acm_descriptor.c

— USB 描述符(VID 0x0483, PID 0x5720)

  • src/examples/cdc_acm_example.c

— CDC ACM 端点处理与初始化

  • src/hal_entry.c

— 主入口,通过 R_IOPORT_PinWrite(IO_PORT_04_PIN_13) 切换 FS/HS


FS/HS 切换逻辑:

#ifndefCONFIG_USB_HSR_IOPORT_PinWrite(&IOPORT_CFG_CTRL, BSP_IO_PORT_04_PIN_13,0);// FScdc_acm_init(0, R_USB_FS0_BASE);#elseR_IOPORT_PinWrite(&IOPORT_CFG_CTRL, BSP_IO_PORT_04_PIN_13,1);// HScdc_acm_init(1, R_USB_HS0_BASE);#endif

上位机测试脚本

test_cdc_speed.py 增加了命令行参数,不带参数使用默认 COM,带参数使用指定 COM:

test_comx = sys.argv[1]iflen(sys.argv)>1else'COM14'

用法:

python test_cdc_speed.py           # 默认 COM14python test_cdc_speed.py COM10     # 指定 COM10

Titan Board 特殊说明

调试接口

排除类别

说明

调试器

DAPLink(CMSIS-DAP),无法直接在 e2studio 调试和下载


替代方案


移植 RT-Thread Studio 的

pyocd,编写 pyocd_flash.bat,运行bat脚本即下载固件

进阶

也可将 DAPLink 烧录为 

JLinkOB,使用 JLink 调试

pyocd 烧录命令:

pyocd flash --target=R7KA8P1KF --erase=auto --frequency=1000000 ra8p1_cherryusb.elf

UART 调试口

Titan Board 的调试串口连接的是 UART8,与官方开发板不同。

USB FS/HS 引脚切换

RA8P1 的 USB 全速和高速使用不同的引脚,官方板使用 2 个 USB 端口(Type-C 各一)。Titan Board 通过 GPIO 4_13 控制模拟开关切换:

模式

GPIO 4_13

USB 基址

Full-Speed

0

R_USB_FS0

_BASE

High-Speed

1

R_USB_HS0

_BASE

软件中通过宏 CONFIG_USB_HS 配合切换。

性能测试结果

Full-Speed

test cdc out speedcdc out speed 0.813789 MB/stest cdc in speedcdc in speed 0.412159 MB/s

High-Speed

test cdc out speedcdc out speed 6.073870 MB/stest cdc in speedcdc in speed 6.256247 MB/s

结果分析

模式

OUT (Host→Device)

IN (Device→Host)

Full-Speed

0.81 MB/s

0.41 MB/s

High-Speed

6.07 MB/s

6.26 MB/s

 

------------ END ------------



关于科技区角:国内科技展会垂直内容策划服务商,提供从论坛内容全案策划、会展市场化IP打造到精准专业观众一站式邀约服务,以产业内容吸引高质量B端人群,打通展会从议题设计、演讲嘉宾邀约、宣传预热、精准邀观到供需对接全链路。
声明:内容取材于网络,仅代表作者观点,如有内容违规问题,请联系处理。
USB 单片机
more
三星P系列移动SSD亮相科隆展,USB4接口突破带宽瓶颈
威锋电子推出VL610 MST Hub控制器,面向USB-C多屏扩展应用
拆解报告:绿联USB-C 45W屏显氮化镓充电器
【K230 新技能点亮】RTOS 多源输入 Demo 正式发布,支持 USB/RTSP/UVC/MIPI Sensor 灵活切换
劣质USB线,会烧坏手机?
1GHz的单片机RA8P1跑CherryUSB有多快?
自制了一个USB转串口TTL模块,最高波特率能到6Mbps
拆解报告:联想265W USB-C电源适配器
【K230D新技能点亮】K230D RTOS 全面支持USB OTG功能
对话中航光电,如何用Busbar解答“铝代铜”必选题?
Copyright © 2025-成都区角科技有限公司
蜀ICP备2025143415号-1
  
川公网安备51015602001305号