1.安装vivado 2019.1,安装petalinux 2019.1。其他版本同理,去DocNav下看UG1144,找到对应版本支持的linux系统。
Ubuntu Linux Workstation/Server 16.04.5, 16.04.6, 18.04.1,18.04.02 (64-bit)
2.vmware安装ubuntu 16.04虚拟机,安装VM ware tools,以便开启共享文件夹。如果按钮是灰色,加载linux.iso,解压VMwareTools-10.3.10-13959562.tar.gz到home文件夹,./vmware-install.pl 运行安装程序,遇到y就y,遇到目录就回车,要重装就在安装包的bin目录下执行./vmware-uninstall-tools.pl
https://blog.csdn.net/Homewm/article/details/92562342
3.在vmware设置中修改了虚拟机可用大小后,还要在ubuntu系统里扩展磁盘空间。https://blog.csdn.net/daemon_2017/article/details/80660372
4.安装petalinux 2019.1时,从共享目录拷贝petalinux.run到home下,一般我们安装都安装在opt目录下。安装这个petalinux经常会遇到权限的问题,我也搞不懂出错的原因。我的操作如下:
①ubuntu换源,安装petalinux依赖库。ug1144里有说明。
②修改安装目录权限。手册说用非root账户安装,但要保证安装目录的有权限写入。
mkdir /opt/petalinux/2019.1
sudo chmod 777 /opt/petalinux/2019.1
./petalinux-v2019.1-final-installer.run /opt/petalinux/2019.1
5.vivado生成hdf文件。ddr参数设置不对时,linux系统也起不来,可以先在sdk里run个裸机的helloworld看看有没有打印。根据ddr手册去填写ddr控制器参数。
6.petalinux设置和编译。我们需要为linux系统编译kernel,设备树,根文件系统。
sudo dpkg-reconfigure dash
source /opt/petalinux/2019.1/settings.sh
petalinux-create --type project --template zynq --name myled
petalinux-config --get-hw-description=.
petalinux-build
petalinux-package --boot --fsbl zynq_fsbl.elf --u-boot --fpga system.bit
7.config后,在component下会有设备树,build之后,如果选择的ramdisk,在images/linux下会生成fsbl.elf uboot.elf,如果有bit文件,还会有system.bit,用petalinux-package命令或者在sdk中生成BOOT.BIN,用boot.bin和image.ub放到sd卡里,或者烧写到flash中,选择相应的启动方式即可;如果是sd类型,会有rootfs.tar.gz,解压到sd卡的ext4分区,BOOT.BIN和image.ub放到sd的fat32分区,选择sd启动。
8.PS加载PL,生成bin文件。在ug1144 10章节FPGA manager描述了怎么生成bin文件,在config中开启FPGA manager。vivado修改pl部分后重新编译生成test_led.bit文件,放到image/linux目录下,新建一个bitstream.bif文件,然后用bootgen命令,生成test_led.bit.bin文件,拷贝到sd上,待用。
all:
{
test_led.bit
}
wei@ubuntu:~/myled/images/linux$ bootgen -image bitstream.bif -arch zynq -process_bitstream bin
9.bin文件加载。BOOT.BIN有bit文件的话,可以在firmware下找到,用fpgautil加载。
root@myled:~/a# fpgautil -b /lib/firmware/base/test_led.bit.bin
同理,可以加载重新生成的bin文件。
root@myled:~/a# fpgautil -b test_led_new.bit.bin