本节任务
- 安装Linux操作系统(本文采用
Ubuntu Desktop x86_64 20.04
) - 安装设计软件:
Xilinx ISE 14.7
、Xilinx Vivado 2020.2
- 安装MIPS开发工具:
Codescape MIPS SDK
、QtSpim
- 安装开发板调试工具:
Digilent Adept System
- 调通shell调试环境
一、安装Linux操作系统
1. 选择Linux进行课程学习的原因
- 目前的主流Windows系统(Windows10、Windows11)越来越无法兼容之前的软件和开发板,反倒Linux主流发行版仍对这些软件和设备保持了较好的兼容性。
- 以
Xilinx ISE 14.7
为例,在Windows 10上需要手动修改才能运行大部分功能(PlanAhead等部分功能似乎无法运行),在Windows 11上ISE则根本无法启动,报错Microsoft Visual C++ Redistributable 2008未安装
(实际已安装)(3月8日更新: 有方法称可以将程序启动时运行的settings64改为settings32解决)。 - 本文会简单给出Windows下的环境部署思路。
- 以
- 使用Linux将为之后Linux相关开发带来方便,使用Linux也可能更好发挥系统性能(但没有明确事实依据,且此处仅指直接安装)
2. 安装
- WSL/WSL2: 请勿使用(截至本文撰写时WSL2不支持访问串口设备,而WSL1无官方图形界面支持)
- 虚拟机安装: https://zhuanlan.zhihu.com/p/355314438
- 直接安装: https://zhuanlan.zhihu.com/p/86867395
3. 安装注意事项
- 所需空间大小: 尽可能保证不小于200GB
- 分区方案: 建议选择自动分区或只建立一个根目录挂载点
/
,如果要建立多个挂载点,可以参考这篇文章。本课程软件多安装在/opt
目录下,未单独建立挂载点时,该目录归属于/
,故请适当调大/
的容量。如果单独建立/opt
挂载点,也请适当调大该挂载点容量 - 烧录U盘时,尽量选择质量好速度快的U盘,否则会增加系统出错几率。
4. Linux常用软件
二、安装设计软件
(一) Xilinx ISE 14.7
下载:Xilinx官网(需注册账号)
安装:
Windows安装
- 可尝试安装Windows10专版:https://zhuanlan.zhihu.com/p/158194094
- 普通版:https://zhuanlan.zhihu.com/p/158194094
Linux 安装: https://blog.csdn.net/ixunmo/article/details/82194896
注:
若Ubuntu下安装程序报错无法运行,一般是因为缺少相关运行库。笔者安装时缺少
libncurses5
,sudo apt-get install libncurses5
然后重新启动即可解决如果你使用其它Linux发行版出现
Segmentation Faults
错误,请尝试如下解决方案(若无效,建议查找日志人工排错或直接换发行版(Ubuntu 20.04实测可以安装)):- ‘unset KDE_SESSION_VERSION’ Run this command in the same terminal you are starting ISE. Surpisingly, it can solve a whole lot of problems with weird segfaults – be it installer, simulator or project manager.
- LD_PRELOAD With this command you can force linker to use selected library version instead of version bundled with ISE. Especially useful when replacing libstdc++.so.6 or Qt libraries. Below is small scripts that takes care of it:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
#!/bin/bash ISE_DS_DIR=/opt/Xilinx/13.4/ISE_DS #prevent segmentation faults unset KDE_SESSION_VERSION cd "$ISE_DS_DIR" source "$ISE_DS_DIR"/settings64.sh # reset locale to English to fix decimal/comma seperation export LANG='' # fix missing symbol problems (linker bugs?) at cost of longer startup of each process # can help if e.g. Core Generator isn't starting when modyfying generated core # otherwise, leave it commented #export LD_BIND_NOW=true # forcing particular lib version is particularly useful when trying to run ISim, # or using external editor instead of Xilinx's NOTEPAD # but sometimes (depending on moon phase and weather) may break something LD_PRELOAD=/usr/lib64/libstdc\+\+.so.6 "$ISE_DS_DIR"/ISE/bin/lin64/ise #"$ISE_DS_DIR"/ISE/bin/lin64/ise #TASKS: # -check sysgen/settings(32/64).sh file for correct library paths (missing lin/lin64 part)
(二) Vivado 2020.2
- 注:安装之前,请先搜索你要安装的Vivado版本是否支持你的开发板(Vivado 2020.2是支持Basys3的最后版本)
- 下载:Xilinx官网
- 安装: 在安装文件解压目录终端下输入
sudo ./xsetup
即可开始安装,理论上应该不会遇到任何问题
三、安装MIPS开发工具
(一)Codescape MIPS SDK
下载: MIPS官网,推荐下载离线安装程序。
sudo运行安装程序即可,安装时请勾选
Bare Metal Toolchain
下的全部内容,如果要进行Linux嵌入式开发,那GNU Linux Toolchain
下的内容也要勾上。参考下面内容创建环境变量设置脚本
#!/bin/bash MIPS_TOOLCHAIN_DIR=/opt/imgtec/Toolchains MIPS_TOOLCHAIN_VER=2017.10.05 MIPS_ARCHITECTURE=mti # Available MIPS Architecture: mti, img # MIPS-MTI supports MIPS32R2 and MIPS64R2 through to MIPS32R5 and MIPS64R5 as well as the MicroMIPS ASE for each of those architectures. # MIPS-IMG supports New for MIPS32R6 and MIPS64R6 as well as the MicroMIPS ASE for each of these architectures. # MIPS_TOOLCHAIN_VER2=2020.06.01 export MIPS_ELF_ROOT="$MIPS_TOOLCHAIN_DIR"/"mips-$MIPS_ARCHITECTURE-elf"/"$MIPS_TOOLCHAIN_VER"/ export MIPS_LINUX_GNU_ROOT="$MIPS_TOOLCHAIN_DIR"/"mips-$MIPS_ARCHITECTURE-linux-gnu"/"$MIPS_TOOLCHAIN_VER"/ ## Optional: Add mips-gcc to PATH # export PATH=$PATH:"$MIPS_TOOLCHAIN_DIR"/"mips-$MIPS_ARCHITECTURE-elf"/"$MIPS_TOOLCHAIN_VER"/bin
MIPS Toolchain
mti
和img
的区别可以看这里
(二)QtSpim
- 下载: Sourceforge
四、安装开发板调试工具(以Adept System为例)
- 下载: 到Digilent官网下载Adept Runtime、Adept Utilities和Adept SDK。Windows可通过这个链接下载
- 安装:
sudo dpkg -i
/sudo yum install
/sudo dnf install
安装Adept Runtime和Adept Utilities,解压Adept SDK后sudo ./install.sh
安装Adept SDK。
五、调通Shell开发环境
(一)烧写bit文件
- 启动开发板,将其连接到你的计算机
- shell中输入
djtgcfg enum
检测可用设备 - 查找JTAG:
djtgcfg init -d <DeviceName>
- 烧写bit文件:
djtgcfg prog -d <DeviceName> -i <index> -f <FileName>
- 对只有一个JTAG的设备来说,
<index>
的值为0
,代表执行djtgcfg init
时列出的第1个JTAG - bit文件可从你的课程老师/开发板官网例程/GitHub等处获得
- 对只有一个JTAG的设备来说,
(二) 通过UART串口上载.rec程序到开发板
- 编译:
cd
到例程目录,make clean
后执行make
- 如果提示找不到MIPS Toolchain/环境变量未设置,请参考上方
3.1.3 设置Codescape MIPS SDK环境变量
- 如果make时报错说
../usr/bin/ld: cannot find -lxxx
,说明缺少相应的库- 可尝试使用
apt install libxxx
(其中xxx为报错时给出的参数)解决 - 也可找到/手动下载相应的库然后放到/链接到
<你的MIPS_Toolchain目录>/……/usr/lib
- 笔者编译时遇到报错
../usr/bin/ld: cannot find -lfdc
,检查发现使用的makefile是针对WIndows平台的,对应的Windows MIPS SDK中自带了libfdc
库,而Linux安装时没发现这个库,如果你也遇到了这个问题,可以点此下载libfdc源代码,解压后将addon
文件夹移动到你的MIPS Toolchain目录/mips-mti-elf/Toolchain版本号/share/mips/
即可解决
- 可尝试使用
- 如果提示找不到MIPS Toolchain/环境变量未设置,请参考上方
- 通过串口连接设备并上载程序
- Windows可参考这两个bat文件
- Linux:
- (1)检测设备: https://blog.csdn.net/Uncle_GUO/article/details/80867169
- (2) 连接设备:
stty -F /dev/ttyUSB1 raw speed 115200 -ignpar cs8 -cstopb -echo
(此处假设对应的设备文件是/dev/ttyUSB1
,相关参数请参考你开发板的规格和stty帮助文档) - (3) 通过串口向设备输入程序代码:
cat program.rec > /dev/ttyS0