Chinaunix首页 | 论坛 | 博客
  • 博客访问: 108586
  • 博文数量: 45
  • 博客积分: 1810
  • 博客等级: 上尉
  • 技术积分: 345
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-03 21:57
文章分类
文章存档

2010年(26)

2009年(19)

我的朋友

分类: LINUX

2010-11-15 12:49:29

 在Ubuntu 9.10 上安装及使用 Xilinx ISE DS 10.1 sp3 的要点

(本人已经在Ubuntu上试过,稍作修改就ok了)

Keys about installing and using Xilinx ISE DS 10.1 sp3 at Linux platform

    Xilinx的XUPV2P是一块集成了PPC405硬核的FPGA开发板,可以做一些嵌入式方面的应用,在进行相应的开发时,需要用EDK完成硬件的设计和综合,一般情况下EDK是安装在windows下,而嵌入式Linux系统的配置,软件的开发则是采用交叉编译的方式,在使用Linux的host机上完成软件系统的开发,在系统开发的初始阶段,需要在windows和Linux系统进行反复切换,不太方便,故在Linux下安装ISE DS 10.1.03,统一硬件软件的开发平台。所使用的Linux的发行版本为Ubuntu 9.10,安装在虚拟机上,虚拟机版本为VMware 6.5.3。

    将安装以下文件:1、ISE DS 10.1。2、ISE、EDK、ChipScope和IP的sp3包。所有文件都可以从Xilinx的官方网站下载得到。

 

  1. Xilinx_ISE_DS.iso
  2. 10_1_03_lin.zip
  3. 10.1_03_edk_lin.zip
  4. ChipScope_Pro_10_1_03_lin.zip
  5. ise_101_ip_update3_install.zip

  一、安装

         将Xilinx_ISE_DS.iso挂载到系统中,在/media/cdrom中双击setup(不是setup.exe),只安装ISE、EDK、ChipScope如图1。

图1

一路next,同意所有协议,安装路径为/opt/Xilinx/10.1,唯一要注意的是不更新、不安装下载器驱动,不启用WebTalk,如图2。

图2

安装完成后依次安装10_1_03_lin.zip、10.1_03_edk_lin.zip、ChipScope_Pro_10_1_03_lin.zip和ise_101_ip_update3_install.zip,需要注意的是ise_101_ip_update3_install.zip中包含了windows和linux的升级包,在linux环境下运行的是setup而非setup.exe。

 

二、安装运行ISE DS需要用到的软件

   使用root完成以下安装和配置

   1、重新设置shbash

        # dpkg-reconfigure dash,提示是否要dash时,选no

   2、安装libdb

         # apt-get install libdb-dev

         ISE要求的是4.1版本,做个连接#ln -sf libdb-4.2.so /usr/lib/libdb-4.1.so

   3、安装libXm

        # apt-get install libmotif3

   4、安装 libstdc++5

         Ubuntu9.10自带的是libstdc++6apt-get上没有libstdc++6,从网上下一个,放在/usr/lib下,再做个软连接

         ln -sf /usr/lib/libstdc++.so.5.0.7 /usr/lib/libstdc++.so.5

   5、安装fxload

        fxload用来更新下载器的hex,# apt-get install fxload

 

   6、安装wrap编辑器

        # apt-get install rlwrap

   7、伪装gmake

        # ln -sf make /usr/bin/gmake

 

三、安装下载器驱动

    # cd /opt/Xilinx/10.1/common/bin/lin

    # ./setup_pcusb

    安装的过程中检查/etc/hotplug/usb下是否已有相关的文件,若无则会把下载器有关的hex文件复制到/etc/hotplug/usb下。

    为下载器新建一个udev设备,在/etc/udev/rules.d下新建udev文件xusbdfw.rules,其内容如下

 

SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0008", MODE="666"

BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0007", RUN+="/sbin/fxload -v -t fx2 -I /etc/hotplug/usb/xusbdfwu.fw/xusbdfwu.hex -D $tempnode"

BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0009", RUN+="/sbin/fxload -v -t fx2 -I /etc/hotplug/usb/xusbdfwu.fw/xusb_xup.hex -D $tempnode"

BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="000d", RUN+="/sbin/fxload -v -t fx2 -I /etc/hotplug/usb/xusbdfwu.fw/xusb_emb.hex -D $tempnode"

BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="000f", RUN+="/sbin/fxload -v -t fx2 -I /etc/hotplug/usb/xusbdfwu.fw/xusb_xlp.hex -D $tempnode"

BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0013", RUN+="/sbin/fxload -v -t fx2 -I /etc/hotplug/usb/xusbdfwu.fw/xusb_xp2.hex -D $tempnode"

BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0015", RUN+="/sbin/fxload -v -t fx2 -I /etc/hotplug/usb/xusbdfwu.fw/xusb_xse.hex -D $tempnode"

 

SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0009", MODE="666"

BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0007", RUN+="/sbin/fxload -v -t fx2 -I /etc/hotplug/usb/xusbdfwu.fw/xusbdfwu.hex -D $tempnode"

BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0009", RUN+="/sbin/fxload -v -t fx2 -I /etc/hotplug/usb/xusbdfwu.fw/xusb_xup.hex -D $tempnode"

BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="000d", RUN+="/sbin/fxload -v -t fx2 -I /etc/hotplug/usb/xusbdfwu.fw/xusb_emb.hex -D $tempnode"

BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="000f", RUN+="/sbin/fxload -v -t fx2 -I /etc/hotplug/usb/xusbdfwu.fw/xusb_xlp.hex -D $tempnode"

BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0013", RUN+="/sbin/fxload -v -t fx2 -I /etc/hotplug/usb/xusbdfwu.fw/xusb_xp2.hex -D $tempnode"

BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0015", RUN+="/sbin/fxload -v -t fx2 -I /etc/hotplug/usb/xusbdfwu.fw/xusb_xse.hex -D $tempnode"

之所以要把PID0008和0009都添加进去,是因为使用完下载器后,其PID可能会为0008或0009,而在初始化JTAG链时,程序是检测PID0008而不检测PID0009。重启udev,# /etc/init.d/udev restart

 

四、添加环境变量

    在/opt/Xilinx/10.1下新建set_env.sh,内容为

 

source /opt/Xilinx/10.1/ISE/settings32.sh

source /opt/Xilinx/10.1/EDK/settings32.sh

source /opt/Xilinx/10.1/ChipScope/settings32.sh

export LD_LIBRARY_PATH="/usr/local/bin:$LD_LIBRARY_PATH"

export XIL_IMPACT_USE_LIBUSB=1

export DISPLAY=:0

前三项是启动ISE各组件的环境变量,LD_LIBRARY_PATH和XIL_IMPACT_USE_LIBUSB是usb下载器的环境变量,DISPLAY则是显示相关的环境变量。

    在启动ISE或EDK前要# source /opt/Xilinx/10.1/set_env.sh,之后就可直接在控制台中使用ISE和EDK的相关指令了。

 

五、制作ACE文件中的start address问题

    在生成ace文件时可能会遇到"Executable does not contain start address."的问题,是由于使用了非英语的语言设置造成的,当Ubuntu的语言为中文时,用powerpc-eabi-objdump -x $elffile得到的start address会被翻译成中文“起始地址”,程序报错。解决方法有二:一是将ubuntu的语言改为英语,二是在相应的.opt文件中加上“-start_address <地址值>”。

 

六、参考了以下文章

 

http:///articles/linux-xilinx-tutorial/edk101-ubuntu810.html

http:///Kevin/blog/09-12/182442_78a0f.html

 

七、英文(for international guest)

 

 

 

 

    Keys about installing and using Xilinx ISE DS 10.1 at Linux platform, my linux distro is Ubuntu 9.10, which is installed in a virtual machine. my host system is windows 7, using VMWare 6.5.3.

    Prepare those install package: 1. ISE Design Suite 10.1 DVD, 2. the service pack 3 of ISE, EDK, ChipScope, IP Cores. You can download them from Xilinx's website. Here are their names: 

  1. Xilinx_ISE_DS.iso
  2. 10_1_03_lin.zip
  3. 10.1_03_edk_lin.zip
  4. ChipScope_Pro_10_1_03_lin.zip
  5. ise_101_ip_update3_install.zip
以上是作者的原文,我在装的时候有一些小问题,自己在网上搜索了以下答案:

还需要装一下这个包:sudo apt-get install portmap

同时本人还参考了:

阅读(1684) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~