技术标签: U96 VIVADO fpga PETALINUX
1、本教程涉及到linux版本下安装vivado(vitis)、qt和petalinux的安装。
2、版本对应详见手册UG1144。
Ubuntu Linux Workstaton/Server 18.04.02 (64-bit)
Xilinx_Vitis_2019.2_1106_2127.tar.gz(需从官网下载,某盘的可能不好用)
qt-opensource-linux-x64-5.12.0.run
petalinux-v2019.2-final-installer.run
3、虚拟机中安装Ubuntu,处理器最好1个,在后期petalinux的某些进程编译中,如果核心较多,容易导致特定操作内存溢出,编译失败,内存8G或以上,硬盘最好200G以上。安装完成后,取消系统的自动检测更新。
4、安装一些支持库
(1)sudo passwd
123456
123456
(2)首先安装网络,使linux系统能在win下进行操作控制
sudo apt-get update
sudo apt-get install -y vim gedit net-tools openssh-server ssh
service sshd start
(3)sudo apt-get install -y tftpd tftp openbsd-inetd
在虚拟机中
sudo gedit /etc/inetd.conf
增加
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
保存退出 在ect文件夹中新建tftpboot文件夹
sudo mkdir /tftpboot
sudo chmod 777 /tftpboot
/ect/init.d/openbsd-inetd restart
(4)在将dash修改为bash
sudo dpkg-reconfigure dash
(5)安装ug1144中的依赖库
sudo apt-get install -y tofrodos iproute2 gawk make libncurses5-dev tftpd zlib1g:i386 libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential screen pax gzip python
(6)安装一些其他的库(可装可不装,以后的工程可能会用到)
sudo apt-get install -y git xvfb bc gperf texi2html help2man device-tree-compiler qemu-user-static binfmt-support multistrap lib32z1 lib32ncurses5 libbz2-1.0 lib32stdc++6 kpartx zerofree u-boot-tools rpm2cpio
5、查看linux ip地址,外部xftp(传安装包和文件)和xshell(通信)。
将三个安装包全部放到linux home下的一个bag文件夹下(放在哪随意),由于vivado的解压和安装消耗硬盘的空间很大,可以先对vivado进行安装。
6、安装vivado2019.2
(1)修改权限
sudo chmod +x Xilinx_Vitis_2019.2_1106_2127.tar.gz
(2)解压
sudo tar xvzf Xilinx_Vitis_2019.2_1106_2127.tar.gz
(3)安装
./xsetup
(4)选择路径,推荐都安装在用户文件夹下,比如我的lcl下,新建vivado201902,和win一样等待安装完成即可。
(5)lic文件和win下的一样load即可。
(6)制作vivado启动环境
gedit vivado201902.sh
文本中编辑,这样每次source vivado201902.sh即可启动gui
cd /home/lcl/Vivado201902/Vivado/2019.2/
source settings64.sh
vivado
(7)制作vitis启动环境
gedit vitis201902.sh
文本中编辑,这样每次source vitis201902.sh即可启动gui
cd /home/lcl/Vivado201902/Vitis/2019.2/
source settings64.sh
vitis
当运行vitis时,会长生bug,
(Vitis IDE:32161): GLib-CRITICAL **: 22:50:31.277: g_base64_encode_step: assertion ‘in != NULL’ failed
解决方法:
sudo apt install gnome-tweak-tool
在左下角全部软件中,找到Tweaks,打开后,将application设置为default。
(8)linux版vivado安装完成。
7、安装petalinux
(1)修改权限
sudo chmod +x petalinux-v2019.2-final-installer.run
(2)安装
./petalinux-v2019.2-final-installer.run …/Petalinux201902/
(3)三次qy后,进行安装,等待安装完成。
(4)制作启动环境
gedit petalinux201902.sh
文本中编辑,这样每次source petalinux201902.sh即可激活环境
cd /home/lcl/Petalinux201902/
source settings.sh
8、安装qt(vivado里面qt库版本是5.11.3不清楚会不会有问题)
(1)修改权限
sudo chmod +x qt-opensource-linux-x64-5.12.1.run
(2)安装
./qt-opensource-linux-x64-5.12.0.run
(3)登陆账号,工具全部选上(也可以按需选择)
(4)制作启动环境
gedit qt512.sh
文本中编辑,这样每次source qt512.sh即可打开gui
cd /home/lcl/Qt512/Tools/QtCreator/bin/
./qtcreator
9、所有安装后的文件界面
10、首先window下创建u96工程(也可以在linux下,因为是虚拟机核心较少,在外面会比较快),我的板卡是ultra96 v1
例子很简单 一个dma回环的例程
11、生成bit后,导出xsa文件。
12、在linux创建工程文件夹,将xsa和bit文件复制到xsa文件夹下。
13、运行petalinux环境
14、新建工程u96_dma
petalinux-create --type project --template zynqMP --name u96_dma
15、进入到工程文件夹
petalinux-config --get-hw-description=…/xsa/
将串口由编号0更改到编号1(硬件问题)保存退出
16、配置一些文件系统
petalinux-config -c rootfs
(1)qt
(2)qt_extended
(3)x11
17、编译工程(只有一个核,大概编译了一个晚上)
petalinux-build
(如果有条件的话,最好翻墙,这个时候要下载大量的安装包,可能会快,否则有的时候会特别特别慢)。
18、打包文件
petalinux-package --boot --fsbl zynqmp_fsbl.elf --u-boot u-boot.elf --pmufw pmufw.elf --fpga system.bit
19、制作sdk(只有一个核,大概编译了另一个晚上)
petalinux-build --sdk
20、制作系统文件
petalinux-package --sysroot
21、将sd卡格式化两个分区,一个主分区4G FAT32格式命名BOOT 另一个文件系统分区exFAT格式 命名rootfs
将BOOT.BIN和image.ub复制到BOOT分区中,将rootfs.cpio.gz复制到rootfs分区,并解压。
开发板上电登录
用户名:root
密码:root
22、QT编译例程,打开qt
同时安装库,一会编译要用
sudo apt-get install libgl1-mesa-dev
新建一个空工程
在ui中 加入push button和lable
编辑使点击按钮后输出hello。
修改完成后点击保存并编译运行。
功能正常
23、制作开发板能运行的程序
(1)在qt开发工具UI中,点击tools->options
在kits中 clone原来那个
(2)修改工具名U96 64bit
(3)修改device type 为generic linux device
(4)sysroot 选择编译后的sysrotfs
(5)qt version qt5.11.3(这是petalinux含qt的系统版本)
(6)点击compilers
(7)在manual c中
修改name 为 aarch64-linux-GCC
compiler path:
/home/lcl/prj/u96_dma/u96_dma/images/linux/sdk/sysroots/x86_64-petalinux-linux/usr/bin/aarch64-xilinx-linux
(8)
(9)在manual c中
修改name 为 aarch64-linux-G++
compiler path:
/home/lcl/prj/u96_dma/u96_dma/images/linux/sdk/sysroots/x86_64-petalinux-linux/usr/bin/aarch64-xilinx-linux
(10)在qt versions中
manual中选择(下图仅仅是列出完整路径)
(11)点击ok,如果前面没有报错的情况下,所有的文件都是能找到的。
(10)在project中选择U96
(11)点击编译,编译的项目无法在linux系统中运行,需要到开发板中使用。
24、将文件复制到u盘
25、mkdir /mnt/usb
26、mount /dev/sda1 /mnt/usb
27、cd /mnt/usb
28、关闭所有图像界面
killall Xorg
export DISPLAY=:0.0
Xorg -depth 16&
./ui_test
参见UG1209
29、实验结果
30、图像显示界面成功,耗时3天。
31,configure accelerate compile petalinux
xilinx download
(1)download
(2)aarch64 sstate-cache(zynqMP)
(3)arm sstate-cache(zynq)
(4)mbfull sstate-cache(mb-fulle)
(5)mblite sstate-cache(mb-lite)
32,unzip download and aarch64 sstate-cache to petalinux installation path
tar xzf downloads_2019.2.tar.gz -C …/Petalinux2019
tar xzf sstate_aarch64_2019.2.tar.gz -C …/Petalinux2019
tar xzf sstate_arm_2019.2.tar.gz -C …/Petalinux2019
after this,can see
drwxr-xr-x 5 lcl lcl 4096 10月 25 2019 components
drwxr-xr-x 2 lcl lcl 4096 10月 25 2019 doc
drwxr-xr-x 6 lcl lcl 40960 10月 26 2019 downloads
drwxr-xr-x 8 lcl lcl 4096 10月 25 2019 etc
-rw-r–r-- 1 lcl lcl 2519 10月 25 2019 settings.csh
-rw-r–r-- 1 lcl lcl 2763 10月 25 2019 settings.sh
drwxr-xr-x 3 lcl lcl 4096 10月 26 2019 sstate_aarch64_2019.2
drwxr-xr-x 5 lcl lcl 4096 11月 3 09:58 tools
33,
when petalinux-config --get-hw-description=…/xsa
in this path
-Yocto Settings —>
Add pre-mirror url —>
downloads full path
eg:
file:///home/lcl/Soft/Petalinux201902/downloads
Local sstate feeds settings —>
aarch64 full path
eg:
/home/lcl/Soft/Petalinux201902/sstate_aarch64_2019.2/aarch64
34,
until petalinux-build
the progaram will not execute downloads,so we can do this without internet.
35,
petalinux-build --sdk
if petalinux-config -c rootfs contain qt5 and so on ,it will download something from yocto and qt,some errors occur without internet.
36,end
标题:图书排列将编号为1~10的10本书排放在书架上,要求编号相邻的书不能放在相邻的位置。请计算一共有多少种不同的排列方案。注意,需要提交的是一个整数,不要填写任何多余的内容。9 910 99 99 99 107 79 7package 第三次模拟;public class Demo3图书排列 { static int res=0; ...
使用create_singlethread_workqueue创建工作队列即使对于多CPU系统,内核也只负责在一个cpu上创建一个worker_thread内核线程;而使用create_workqueue创建工作队列对于多CPU系统,内核将会在每个CPU上创建一个worker_thread内核线程,使得线程处理的事务能够并行化
如何解决苹果电脑 Launchpad 图标过大或者过小的问题?因为 Mac 的高分辨率,当你进入 Launchpad 界面,应用图标的大小可能会让你怀疑:这是苹果的设计吗?有点儿丑,又大,而且偌大的屏幕就显示几个肥肥的图标,非常不利于查找和快速打开应用啊。于是我就想,有没有可能手动调整图标的大小和数量,让它更好看,也更实用呢?虽然找遍了所有的设置菜单,无果。但最终还是找到了解决方法。主要是通过终端代码简单调节每一行显示图标的数量以及行数。需要用到的代码如下:defaults write com.ap
这里写自定义目录标题Win10或者Win7忘记开机密码前置条件准备PE/U盘MacOS的U盘启动配置如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入Win10或者Win7忘记开机密码苹果笔记本电脑 Macbook Air,预装了双系统Mac OS 和 Windows,但
无意间闲逛看别人的,觉得说的挺有道理的,所以男孩子们应该好好的反省一下十一岁以前,就不说了,无非是爸妈的好乖女儿,好好学习,好好听话。 十三、四岁的时候,开始对男生有好感,但是那时候她离男孩远远的,和他们说话都脸红 十五岁的时候,听到大人们说某某女人为了钱嫁给一个可以做她父亲的老男人。她真想不明白那个女人 为什么会为了钱嫁一老头。自己将来一定要嫁给自己最爱的那个人,哪怕他是穷光蛋。 十六岁的时候,
目录List里面常用的属性和方法:SetMapforEach,map, where,any,everyextends抽象类 和 implementsFlutter环境搭建入口文件、入口方法第一个 Demo Center 组件的 使用把内容单独抽离成一个组件给 Text 组件增加一些装饰用MaterialApp 和 Scaffold两个组件装饰 AppText 组件Container 组件图片组件引入本地图片裁剪布局之 ClipRect、ClipRRect、ClipOval、ClipPath、CustomCl
ORMORM介绍ORM概念:对象关系映射,是为了解决面向对象与关系数据库存在互不匹配现象的技术,简单的说ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动转化到关系数据库中,ORM在业务逻辑层和数据层之间充当了桥梁的作用ORM的由来"O"表达的是对象(Object)的意思,"R"则是关系(Relational)。按照之前的方法来进行开发就会出现程序员...
注释:<!-- --!>一、<head>里面的应用元素:1.显示在网页标题栏上的文字:<title></title>2.<meta name=" " content=" "> content里面写的是内容keyname 具体关键字description 对...
wxml中不能使用函数方法,在需要使用全局变量的js文件,data里面定义个变量比如test,然后赋值this.setData({test:getApp().globalData}),在wxml中使用test就行了
在本地编译ffmpeg的时候编译没有ffplay,是因为缺少sdl库只需要安装对应的库就行了两个库之间差别还是很大的,至于怎样选择就看个人需要了,最好是两个都安装让编译的时候脚本自动判断选择吧sudo apt-get install libsdl1.2-devsudo apt-get install libsdl2-dev另外执行configure的时候可能会提示缺少yasm用下面的语句安装下yasmsudo apt-get install yasm...
1.字符串日期相减如:2016-4-1,必须先将此字符串转成Date对象,并且,格式必须为:yyyy—MM—dd HH:mm:ss。如果不转就直接计算(2016-4-1)两个这样的日期,则误差超大,不准确。有空补贴代码转载于:https://www.cnblogs.com/vincentExclusiveBlog/p/5343653.html...
1) 将图 G 中的结点按度数递减的次序进行排列(相同度数的结点的排列随意)。 2) 用第一种颜色,对第一点着色,并按排列次序对与前面结点不相邻的每一点着同样的颜色。 3) 用第二种颜色对尚未着色的点重复第2 步, 直到所有的点都着上颜色为止。 例 试用韦尔奇×鲍威尔法对图进行着色:解:•按度数递减次序排列各点...