热度 7| ||
a) 制作启动盘镜像
b) 安装Ubuntu 系统:注意安装前先清理出一块磁盘,大小要自己衡量,要考虑到留一些空间作为 swap,SDSoC 安装完的大小在 35G 左右,一个工程编译后需要的空间大概在 500M。
a) 若新装 Ubuntu,要在安装时保证“实际运存+swap>10GB”,建议两者之和为 12GB 以上(当然,也可以等安装完Ubuntu 后再扩容 swap,而且个人更喜欢这种方法, 因为可以简化Ubuntu 系统的安装流程,教程见下面)。
b) 若已安装Ubuntu,可以用下面链接中的教程增加 swap 空间的大小:
如何在Ubuntu 16.04 上增加 Swap 分区
c) 若电脑内存是8G以下,建议安装双系统,这样可以最大化利用实际运存,加快编译速度。
SDSoC 2018.2 下载地址:戳这里 。我下载的是离线安装文件(支持Windows和Linux双版本)。
更详细的安装信息请查看文档《UG1294》。
{vivado_install_dir}/data/xicom/cable_drivers/lin64/install_script/install_drivers /install_drivers
(1)source 命令用于将 sdx 命令添加到系统的 PATH(注意,SDSoC 安装完后的那个 文件夹里面有一个子文件夹 SDx,SDX_INSTALL_DIR 就是 SDx 的路径,用它把下面的 <SDX_INSTALL_DIR>替换掉):source <SDX_INSTALL_DIR>/settings64.sh(2)export 一个环境变量 SYSROOT,这个命令是将你刚才解压得到的 reVISION 平台的路径导出到 Linux 环境变量:export SYSROOT=/具体的存放路径/zcu102-rv-ss-2018-2/petalinux/sdk/sysroots/aarch64-xilinx-linux
(1)进入以下目录:cd /etc/profile.d(2)在该目录下新建一个文件:gedit SDSoC_souceNsysroot.sh(3)在这个文件中添加那两条配置指令,并保存。这样,你每次打开终端都会自动在后台执行上面的两个配置指令。配置完启动命令后,就可以在终端中输入 sdx ,回车后就可以打开 SDSoC。
确定后,列表中出现自定义平台:
选中该自定义平台(reVISION),点击 next。
在弹出的 properties settings 窗口中,根据图片找到 tool settings 标签页,这里可以对 编译器(SDSCC/SDS++)和链接器进行设置。需要进行以下设置:
(1)分别在 SDSCC Compiler 和 SDS++ Compiler 下,点击 Directories,在右侧的 include paths 中添加下面的路径:${SYSROOT}/usr/include留意到,这其中的 SYSROOT 就是之前打开 SDSoC 时在终端配置的环境变量(直接原样粘贴上面的路径就行,不必替换掉 SYSROOT)。
(2)分别在 SDSCC Compiler 和 SDS++ Compiler 下,点击 Miscellaneous,在右侧的 other flags 中加入一个设置:
-hls-target 1
(3)在 SDS++ Linker(注意不是 SDS++ Compiler)下,点击 Miscellaneous,在右侧的 Linker Flags 中加入一个设置:
--sysroot=${SYSROOT} -Wl,-rpath-link=${SYSROOT}/lib,-rpath-link=${SYSROOT}/usr/lib
(4)按 ok 保存并结束配置。
一般来说,Ubuntu 的 USB 转 uart 端口是/dev/ttyUSB*,且一般是/dev/ttyUSB0,下面 就以/dev/ttyUSB0 为例。
最后注意一点,对于用 reVISION平台编译出来的板载 Linux 系统,下板启动后,SD 卡 里的东西被挂载在 /media/card 目录下。
三、 FPGA 电路优化
在电路优化方面,Xilinx 官方给的入门教程写得十分完美,信息冗余很少,把整个 SDSoC 开发流程特别是很多细节问题都用例子讲清楚了,建议先仔细看官方教程,下面是链接:
SDSoC Environment Tutorials
上面这个教程分为了三个部分,其中重点在第一部分。第二部分讲的是创建平台,由于我们可以直接用 reVISION 平台,所以可以跳过。第三部分讲的是 Xilinx 对于 OpenCV 库定 制的一个可以在 FPGA 中跑的 xfOpenCV 库,有兴趣也可以了解,毕竟OpenCV 还是很常用的。
当然,关于 FPGA 电路优化的更详细的东西还是在文档中介绍了,请参考文档《UG1235》。
而文档《UG1235》中蜻蜓点水般地提到了很多pragma,要想知道各种pragma的详细信息,就要查看文档《UG1253》。
由于把 C/C++编译成 FPGA IP 核的工作是在 HLS 中完成的,所以在文档《UG902》中也能找到很多如何编写C/C++代码使其能顺利综合出FPGA电路的提示,包括有哪些C/C++ 语句是不能综合出 FPGA电路的。
最后,回到SDSoC这个工具的使用上,更多信息可以查阅文档《UG1027》和文档《UG1146》。关于使用SDSoC的debug工具的详细信息请查阅文档《UG1282》。
Happy hacking.