Ubuntu 下Xilinx USB cable的驱动问题

时间:2022-12-17 15:58:56

解决方法来自这里:http://rmdir.de/~michael/xilinx/

问题缘由及解决办法:

When using XILINX JTAG software like Impact, Chipscope and XMD on Linux, the proprietary kernel module windrvr from Jungo is needed to access the parallel- or usb-cable. As this module does not work with current linux kernel versions (> 2.6.18) a library was developed, which emulates the module in userspace and allows the tools to access the JTAG cable without the need for a proprietary kernel module.

是的,就是需要编译这个库,来模仿module的行为,其他问题在上面的主页都好找,我是从git下的最新edition来用的,也不管稳定版还是开发版了:

1.新建个文件夹

2.git init

3.git clone git://git.zerfleddert.de/usb-driver

4.make

A:编译前需要先安装libusb-dev的包,否则报错找不到usb.h:sudo apt-get install libusb-dev

B:Built library is 64 bit. Run `make lib32' to build a 32 bit version,只是提醒,不影响结果

5.找个地方把库给copy过去,然后,在你source settings64.sh之后,打开ise之前,执行如下语句:

export LD_PRELOAD=/yourpath/libusb-driver.so

6.使用包里的脚本把usbcable的配置文件拷过去:sudo ./setup_pcusb /yourpath/12.4/ISE_DS/ISE

7.最后,安装一个不知道干嘛的程序:sudo apt-get install fxload

如果在git上找不到,可以看这里:/Files/pied/usb-driver.zip

我做完上面的动作之后,impact打开不再有找不到module的提示,但是仍然没有发现device,重新启动计算机。重启的时候提示usb加载有问题,是否跳过,按s跳过。。。

重启后启动impact,一切正常。

 

关于Chipscope analyzer

1.analyzer这个可执行文件在目录$ise_install_dir/ISE/bin/lin64/,所以需要把这个路径添加到PATH里:

sudo vi ~/.bashrc

export PATH=$PAHT:$ise_install_dir/ISE/bin/lin64/:

2.没法执行analyzer

原因:ubuntu里面使用bash,他脚本里面用的sh,需要改变它调用的程序:

解决:修改下面两个文件 

$ise_install_dir/ISE/bin/lin64/unwrapped/analyzer

$ise_install_dir/ISE/bin/lin64/unwrapped/cs_common.sh

把第一行的#!/bin/sh替换成#!/bin/bash/

 

此时,没其他问题的话,在terminal中输入analyzer就可以运行chipscope pro analyzer。

 

经测试,此方法添加usb blaster之后,analyzer也可以正确识别usb blaster。

操作方法:JTAG Chain->Xilinx USB Cable...

如果已有给Cable上电,此时,analyzer软件会自动链接cable。你可以尝试在弹出的窗口中点击blink the LED,usb blaster旁边的LED就会闪烁。

选择合适参数,OK,然后你就可以使用chipscope了。

另外,这里的3Mhz,12Mhz什么的,和ILA没什么关系的,它由usb blaster的硬件决定,是ICON和电脑间的通信速率,数据都是存在ICON内后被电脑通过JTAG工具读出来。 

 

使用问题记录:

1)The idcode read from the device does not match the idcode in the bsdl File

Xilinx官方的记录是供电或者是电磁兼容问题。最后通过降低了impact使用JTAG的速率(从6Mhz降为3Mhz),解决了问题。具体参考了文档AR#13529.