英飞凌
直播中

张杰

7年用户 1276经验值
私信 关注

使用Linux CLI应用程序进行批量传输,无法执行写入/读取操作怎么解决?

FPGA 通过 GPIF 接口与 FX3 连接。 主机应用程序将使用 FPGA 上的大容量端点 0x1 和 0x81 执行寄存器写入/读取操作。
1) 应用程序使用 Xferdata() 进行批量传输。
2) 测试 VID/PID 已添加到 .inf 中。
3) 使用 FX3-sdk(windows)构建固件。

现在我要进行 Linux 设置
1) 应用程序使用 cyusb_bulk_transfer() api 进行批量传输。
2) 在 cyusb.config 中添加测试 VID/PID,并用新 VID 成功检测到设备。
3)固件没有任何变化(在 window SDK 上构建并使用 Control-center 闪存)

错误:  但无法执行写入/读取操作。
             使用 0x1 端点写入无法正常工作。
             使用 0x81 端点读取大部分时间都能正常工作。
唯一不同的是操作系统。


回帖(1)

陈游斗

2024-5-29 16:08:48
根据您提供的信息,您正在尝试在 Linux 上使用批量传输进行 FPGA 与 FX3 的通信,但遇到了写入/读取操作的问题。以下是一些建议来解决这个问题:

1. 确保驱动程序正确安装:首先,确保您的 Linux 系统已安装了适用于 FX3 的正确驱动程序。您可以检查 `/dev/bus/usb` 目录下是否有相应的设备文件。

2. 检查权限:确保您的应用程序具有访问 USB 设备的权限。您可以尝试使用 `sudo` 运行应用程序,或者将您的用户添加到 `plugdev` 组。

3. 检查 USB 连接:确保 FX3 设备与计算机之间的 USB 连接正常。尝试使用其他 USB 端口或电缆,以排除硬件问题。

4. 检查固件版本:确保您使用的固件版本与您的应用程序兼容。如果您在 Windows SDK 上构建了固件,请确保它也适用于 Linux。

5. 检查端点地址:确保您的应用程序使用的端点地址(0x1 和 0x81)与固件中定义的端点地址相匹配。

6. 检查批量传输参数:确保您的应用程序在调用 `cyusb_bulk_transfer()` API 时,正确设置了传输参数,如传输方向、端点地址、数据长度等。

7. 调试应用程序:尝试在应用程序中添加调试信息,以便更好地了解问题所在。您可以使用 `printf()` 或其他调试工具来输出关键信息。

8. 查看日志:检查 Linux 系统的日志文件(如 `/var/log/syslog` 或 `dmesg`),以获取有关 USB 设备和驱动程序的更多信息。

9. 尝试其他示例代码:如果您仍然无法解决问题,可以尝试查找其他示例代码或教程,以了解如何在 Linux 上使用 FX3 和 FPGA 进行批量传输。


举报

更多回帖

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