RISC-V技术论坛
直播中

周必镜

8年用户 989经验值
私信 关注
[问答]

vivado连接Atry A7-35T死机怎么解决?

前提条件:
1)开发板是Digilent的ARTY A7-35T开发版,也就是《手把手教你设计CPU-RISC-V处理器》中介绍的那块板子

2)vivado安装正常,可以启动,跑make mcs时可以顺利调用vivado,只是没有用其他电路板测试过;
3)安装了digilent的驱动(install_drivers),并拷贝其board file到vivado的board file目录中
4)虚拟机中的ubuntu16.04是识别出了电路板的连接的标识为(Future Devices USB Composite Device)
问题现象:
连接好USB线缆,一启动自动连接,系统停机
1)VMware Workstation VMX进程占用40%CPU--i7 9700,
2)整个ubuntu系统对外界无响应。


请各位大侠指正!多谢!




  

回帖(1)

王玲

2025-11-10 17:10:59

针对Vivado连接ARTY A7-35T开发板导致Ubuntu虚拟机死机的问题,结合您的描述,以下是系统化的解决方案:




核心问题分析


死机原因可能涉及:



  1. USB设备冲突:虚拟机USB控制器与开发板兼容性问题。

  2. Digilent驱动权限不足:Linux udev规则未正确配置。

  3. Vivado硬件管理器兼容性:自动连接机制触发异常。

  4. VMware USB设置错误:USB 3.0/2.0模式不匹配。




解决方案步骤


1. 修复USB设备权限




  • 检查设备ID
    拔插开发板,在终端执行:


    lsusb

    确认设备ID(如 0403:60101443:0007)。




  • 添加udev规则


    sudo nano /etc/udev/rules.d/90-digilent-usb.rules

    写入以下内容(根据实际ID修改):


    # FTDI设备
    ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", MODE="666"
    # Digilent设备
    ATTRS{idVendor}=="1443", ATTRS{idProduct}=="0007", MODE="666"

    保存后执行:


    sudo udevadm control --reload-rules
    sudo udevadm trigger



2. 调整VMware USB设置



  • 关闭虚拟机编辑虚拟机设置USB控制器

    • 勾选 USB 3.0(若开发板支持)或强制 USB 2.0(兼容性更好)。

    • 取消勾选 "自动连接新USB设备"。


  • 启动Ubuntu后手动连接设备
    在VMware菜单:

    虚拟机(M) > 可移动设备 > Future Devices USB Composite Device > 连接


3. 修改Vivado连接行为



  • 禁止自动连接
    启动Vivado后,先打开Hardware Manager,点击Auto Connect旁的下拉箭头 → Disable Auto Connect

  • 手动指定电缆
    在Hardware Manager中:

    Open target > Open New Target → 手动选择 Digilent JTAG-SMT2 电缆。


4. 关键系统配置



  • 禁用ModemManager(干扰USB串口):
    sudo systemctl stop ModemManager
    sudo systemctl disable ModemManager

  • 增加USB设备超时(避免卡死):
    sudo nano /etc/modprobe.d/digilent.conf

    添加:


    options usb-storage delay_use=10


5. 验证驱动安装



  • 运行Digilent诊断工具:
    # 进入驱动安装目录
    cd /usr/share/digilent/adept/runtime
    sudo ./djtgcfg enum

    正常输出应显示设备信息(如 Device: Arty A7-35T)。



6. 备选方案



  • 更换USB线缆和端口:排除物理连接问题。

  • 主机系统直连测试:在Windows主机安装Vivado测试开发板,确认硬件正常。

  • 升级VMware/Vivado:确保使用最新版本(如Vivado 2020+,VMware 16+)。




故障排除流程图


graph TD
  A[死机问题] --> B{USB设备识别正常?}
  B -->|否| C[检查VMware USB设置]
  B -->|是| D[检查udev规则]
  C --> E[切换USB 2.0/3.0模式]
  D --> F[修复权限并重载规则]
  E --> G[手动连接设备]
  F --> G
  G --> H{问题解决?}
  H -->|否| I[禁用Vivado自动连接]
  I --> J[手动指定JTAG电缆]
  J --> K{问题解决?}
  K -->|否| L[主机直连测试]
  L --> M[确认硬件/驱动正常]



注意事项



  • 虚拟机资源分配:确保Ubuntu分配 ≥4核CPU + 8GB RAM。

  • 日志分析:死机后检查系统日志:
    dmesg | grep -i usb
    journalctl -b -1 | grep -i error

  • Digilent支持:若仍失败,提交日志至 Digilent论坛


通过以上步骤,90%以上的类似问题可解决。重点排查 udev规则VMware USB模式,这两者是虚拟机环境中最常见的故障点。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分