s100能通过pcie接口来下载程序或者配置模型吗

s100能通过pcie接口来下载程序或者配置模型吗

关于 S100 是否支持通过 PCIe 接口下载程序或配置模型,目前社区暂无明确案例或官方文档支持此用法。以下是关键结论和建议:


:magnifying_glass_tilted_left: 核心结论

  1. PCIe 接口定位
    S100 的 PCIe 接口主要用于高速外设扩展(如摄像头、网卡、存储设备),而非系统级程序下载或模型配置通道。
  2. 官方推荐方式
    程序部署和模型配置通常通过以下途径:
    • 网络传输(SSH/SCP)
    • Type-C 接口(ADB/闪连模式)
    • SD 卡/eMMC 烧录
    • USB 存储设备

:pushpin: 排查与替代方案

:white_check_mark: 推荐操作步骤

  1. 程序下载
    # 通过 SCP 传输文件(需网络连通)
    scp your_program.bin user@s100_ip:/home/user/
    
    # 或通过 Type-C 闪连模式(参考官方教程)
    # 启用闪连后,PC 可直接访问 S100 文件系统
    
  2. 模型配置
    • 使用 OpenExplorer 工具链 在 PC 转换模型为 .hbm 格式
    • 通过上述网络/Type-C 方式传输至 S100
    • 参考教程:RDK S100 模型量化及部署

:warning: PCIe 可行性分析

  • 硬件限制:S100 的 PCIe 控制器默认配置为 Root Complex 模式(主机模式),需外接设备作为 Endpoint,无法直接作为下载通道
  • 驱动支持:当前 SDK 未提供 PCIe 设备模式(Device Mode)的驱动,无法模拟为存储或调试设备。
  • 社区反馈:类似需求可参考 Type-C 不支持 USB Gadget HID 的讨论,PCIe 可能存在类似限制。

:light_bulb: 建议行动

  1. 优先使用官方推荐方式(网络/Type-C),稳定性更高。
  2. 若必须尝试 PCIe
    • 检查设备树配置是否支持 PCIe Endpoint 模式
    • 联系地平线技术支持确认硬件能力(可能需要定制固件)
  3. 反馈到社区
    将此需求补充到原帖 s100 能通过 pcie 接口来下载程序或者配置模型吗,推动官方回应。

:books: 相关资源

如需进一步协助,请提供具体使用场景(如传输速度需求、外设类型),可针对性优化方案。

typec是otg吗?是主还是从

S100 Type-C 接口工作模式说明

结论:支持 OTG,但软件层面默认固定为 Device(从)模式,功能受限。


:magnifying_glass_tilted_left: 硬件与默认配置

特性 说明
硬件能力 支持 OTG(理论上可切换 Host/Device)
默认模式 Device(从)模式
默认功能 复合设备:双路串口 (CPU/MCU) + ADB 调试
可配置功能 仅支持切换为 RNDIS(虚拟网卡/闪连)
不支持功能 USB 存储 (Mass Storage)、HID、Audio 等其他 Gadget

:gear: 模式切换说明

S100 的 Type-C 接口在软件上通过 usb-gadget 框架管理,官方仅开放了两种稳定配置:

  1. 默认模式 (ADB + 串口)

    • 即插即用,PC 识别为串口设备和 ADB 调试设备。
    • 用于日志查看、命令行调试。
  2. 闪连模式 (RNDIS 虚拟网卡)

    • 需手动配置:运行脚本将 ADB 禁用,启用 RNDIS 功能。
    • 效果:PC 识别为网卡,S100 获得固定 IP(如 192.168.1.110),可通过 SSH/SCP 高速传输文件和调试。
    • 代价:启用后 ADB 功能将失效
    • 配置教程RDK S100 闪连配置方法

:warning: 关于"主/从"与文件传输的误区

  • 问:能像 U 盘一样插电脑上直接读写文件吗?
    • 答:不能。 虽然硬件是 Device 模式,但固件未开启 Mass Storage Gadget 驱动。官方回复明确指出:“手册没描述的就是不可配置,强行修改可能影响系统稳定”(参考 Type-C HID 支持讨论)。
  • 问:能切换成 Host 模式去读 U 盘吗?
    • 答:不能。 该物理接口在设备树中固定为 Device 控制器。如需连接 U 盘/鼠标,请使用板载 PCIe 扩展出的 USB 3.0 接口(那些是 Host 模式)。

:light_bulb: 推荐工作流

既然无法直接模拟成存储设备,建议采用以下高效方案替代:

  1. 首选:配置闪连 (RNDIS)

    • 一根 Type-C 线,同时实现 供电 + 双串口调试 + 网络文件传输 (SCP/SFTP)
    • 这是官方推荐的"单线开发"模式。
  2. 备选:网络传输

    • 通过网线或 WiFi 连接,使用 scprsync 传输程序/模型。
  3. 烧录系统

    • 如需底层烧录镜像,需通过 DFU 模式(配合拨码开关),此时 Type-C 作为 DFU 设备被 PC 识别,但这属于维护模式,非日常开发用途。

总结:Type-C 口是 从设备 (Device),但只能用作 调试串口虚拟网卡,无法直接作为 U 盘HID 设备 使用。

我看这个文档说的是typec说的是镜像烧录,我想配置模型,传输程序那些文件是不是不能用type c,只有用网口吗?

Type-C 可以传输文件,但需要配置「闪连模式」

你理解得对,文档里说的 Type-C 烧录镜像是指 DFU 模式(底层系统烧录),但日常开发中 Type-C 还有另一种用法——闪连模式,可以用来传输程序和模型文件。


:pushpin: Type-C 的三种工作模式

模式 用途 文件传输 配置方式
默认模式 串口调试 + ADB :cross_mark: 不支持 即插即用
闪连模式 虚拟网卡 (RNDIS) :white_check_mark: 支持 SCP/SFTP 需运行脚本配置
DFU 模式 系统镜像烧录 :cross_mark: 仅烧录用 拨码开关 + 重启

:white_check_mark: 用 Type-C 传输文件的正确方式

配置闪连后,Type-C = 虚拟网卡,PC 和 S100 之间建立网络连接,然后就可以:

# 1. 配置 PC 端 IP(与 S100 同一网段)
# 假设 S100 闪连 IP 是 192.168.1.110
# PC 端设置为 192.168.1.100,子网掩码 255.255.255.0

# 2. 测试连通性
ping 192.168.1.110

# 3. 传输文件(SCP)
scp your_model.hbm root@192.168.1.110:/home/root/
scp your_program root@192.168.1.110:/home/root/

# 4. 或者用 SFTP 图形化工具(WinSCP/FileZilla)

:wrench: 配置闪连模式(一次配置,永久生效)

通过串口登录 S100 后执行:

# 创建闪连启动脚本
cat > /etc/init.d/quick_link_start.sh << 'EOF'
#!/bin/bash
usb-gadget.sh stop adb
usb-gadget.sh start rndis
ifconfig usb0 192.168.1.110
EOF

chmod +x /etc/init.d/quick_link_start.sh
update-rc.d quick_link_start.sh defaults
reboot

详细教程:【S100 闪连】一根 Type-C 解决开发需求


:bar_chart: 传输方式对比

方式 速度 便利性 推荐场景
Type-C 闪连 ~30MB/s :star::star::star::star::star: 单线搞定 日常开发、调试
网口直连 ~100MB/s :star::star::star::star: 需网线 大文件传输
WiFi SSH ~10MB/s :star::star::star: 无线自由 远程调试
U 盘拷贝 ~40MB/s :star::star: 需拔插 离线环境

:light_bulb: 总结

  • Type-C 能传文件,但必须先配置成闪连模式(虚拟网卡)
  • 不能像 U 盘一样直接插上就读写(不支持 Mass Storage Gadget)
  • 网口不是唯一选择,闪连模式下单根 Type-C 就能搞定供电 + 调试 + 文件传输

如果还没配置闪连,建议按上面教程花 5 分钟配一下,后续开发会方便很多。

这个是指的USB 2.0 Type-C对吧,4 x USB 3.0 Type-A 接口支持otg功能吗

:cross_mark: USB 3.0 Type-A 接口不支持 OTG

结论:S100 的 4 个 USB 3.0 Type-A 接口仅支持 Host(主)模式,不支持 OTG/Device 模式。


:pushpin: 接口模式对比

接口类型 数量 模式 用途
Type-C 1 个 Device(从) 调试串口 + 闪连(虚拟网卡)+ DFU 烧录
USB 3.0 Type-A 4 个 Host(主) 接 U 盘/摄像头/键鼠等外设

:magnifying_glass_tilted_left: 原因说明

  1. 硬件架构限制
    S100 的 4 个 USB 3.0 接口是通过 PCIe 扩展的 USB 控制器 实现的,该控制器在设备树中固定配置为 Host 模式,无法切换为 Device 模式。

  2. 官方确认
    社区已有明确回复:

    “PCIe 扩展出来的四路 USB 3.0 不支持 Device”
    来源:S100 Type-C 不支持 USB Gadget HID 设备吗

  3. 与 Type-C 的区别

    • Type-C 接口连接的是 SoC 原生的 USB 控制器,支持 Device 模式(可配置为串口/网卡)
    • USB 3.0 Type-A 是 PCIe 扩展的,仅作为 Host 使用

:light_bulb: 实际影响

需求 是否可行 替代方案
接 U 盘/鼠标/键盘 :white_check_mark: 支持 直接插 USB 3.0 口
接 USB 摄像头 :white_check_mark: 支持 直接插 USB 3.0 口
让 S100 模拟成 U 盘插电脑 :cross_mark: 不支持 用 Type-C 闪连 + SCP 传输
让 S100 通过 USB 3.0 连电脑传文件 :cross_mark: 不支持 用 Type-C 闪连或网口
切换 USB 3.0 为 Device 模式 :cross_mark: 不支持

:white_check_mark: 推荐文件传输方案

既然 USB 3.0 不能做 Device,传文件还是用以下方式:

# 方案 1:Type-C 闪连(推荐,单线搞定)
scp model.hbm root@192.168.1.110:/home/root/

# 方案 2:网口直连(速度最快)
scp model.hbm root@192.168.1.100:/home/root/

# 方案 3:U 盘中转(离线场景)
# 在 PC 拷贝文件到 U 盘 → 插到 S100 USB 3.0 口 → 板端拷贝

总结:Type-C 是唯一的 Device 接口(用于调试/闪连),USB 3.0 Type-A 只能当 Host 用,不能切换模式。

USB C 为调试串口,一般不支持切换