zoukankan      html  css  js  c++  java
  • 嵌入式开发之zynqMp ---Zynq UltraScale+ MPSoC 图像编码板zcu102

    1.1 xilinx zynqMp 架构

    1.1.1 16nm 级别工艺

      Zynq UltraScale+  MPSoC架构

        Xilinx新一代Zynq针对控制、图像和网络应用推出了差异化的产品系,这在Xilinx早期的宣传和现在已经发布的文档里已经说得很清楚了。她的产品系如图2所示。

     

    图2 产品表

            从图2看到,这个系列的Zynq算是8核(或9核)异构产品:四核的ARM-CortexA53 CPU、双核的Cortex-R5 RPU、Mali-400 GPU(一个Geometry核,两个像素核)、PL逻辑以及视频编解码器Codec核。

            在表2中,ZU2E、ZU3E为针对控制类应用,逻辑和Block RAM资源较少,没有Video Codec和高速收发器。ZU4E、ZU2E和ZU7E针对视频类应用,有内部的UltraRAM资源、Video Codec和GTH高速收发器。其他型号针对网络应用,除了Video Code没有外,其它高大上的东西都有,比如更高速的收发器GTY,还有150G Interlaken和100G Ethernet  MAC/PCS/RS-FEC等。

             熊猫君是做图像的,下面的描述都是针对图像版的Zynq UltraScale+而言的。

             因为PS部分的资源是固定的,大家都一样,在后面一起说就行。PL部分因为有这三个东西,将使设计如虎添翼:

            a)大量的Block RAM和Ultra RAM资源,小20Mb的内部RAM资源,对分块处理图像,那应该会带来不少的便捷;

            b)Video Code:这个东西是集成在PL侧的硬核,有了它,图像压缩和解压缩都不用愁了;

            c)GTH:PL端集成的GTH收发器,对SDI、DP等图像接口接入那是十分的方便,当然也可以做PCIe咯。

    不多说了,熊猫君从Xilinx官方文档UG1085上截一个图来表示这个高大上通用SoC的系统级架构,也就是下面的图3啦。

    图3  Zynq UltraScale+ MPSoC系统架构图

     

    http://blog.csdn.net/haoxingheng/article/details/50098777

    时隔三年,Xilinx推出了其全新的异构SoC,大名叫ZynqUltraScale+。相比它的前辈Zynq-7000,这款SoC功能显得更加强劲:最显著的变化是新加入了GPU和视频编解码器,而且编解码器在PL端,PS端的高速接口更加丰富。按照Xilinx官方的说法,Zynq UltraScale+主要针对控制、图像和网络这三大块,比如说汽车辅助驾驶、8K图像、100G网、物联网等等领域(兵马未动,粮草先行啦,Xilinx早早的就针对这些差异化应用推出了SDx集成开发环境)。

                             图4  系统简图

    从图4可以看到,这是一个带SDI接口的IP相机。大致分为两大块:

        a)PL负责原始数据采集、Bayer域处理、ISP和图像编码;

        b)PS负责对PL的管理、控制和协处理、RTSP服务器、千兆网和SD卡数据存储。

    http://blog.csdn.net/haoxingheng/article/details/50076591

     

    1.2 xilinux zynqMp 开发环境搭建

    1.2.1 移植petaLinux之安装petalinux

      • start.安装虚拟机,在虚拟机里安装linux系统(ubuntu16)

        • 虚拟机里磁盘尽量留大点,建议60G,我的是80G
        • sudo passwd命令,设置超级用户su时的密码
        • 建议安装VMware Tools
        • 开发工具:vivado2017.1(Windows下) + petalinux 2017.1(Linux下)
      • a.更新apt-get(可选,加速用,同传统方式移植那篇文章的第二节)

      • b.安装petalinux的依赖环境 
        安装petalinux的必要依赖环境,直接复制粘贴下面的命令行到shell中,系统自动下载安装下面的工具:

        sudo apt-get install build-essential vim tofrodos  
        iproute2 gawk gcc git make net-tools zlib1g-dev  
        libssl-dev flex bison libselinux1 libncurses5-dev  
        tftpd lib32z1 lib32ncurses5 libbz2-1.0:i386  
        lib32stdc++6 xvfb chrpath socat autoconf libtool

      • c.修改/bin/sh 
        shell中输入:dpkg-reconfigure dash,在出现的界面中选择‘否’

      • d.下载petalinux 
        去官网下载petalinux-v2017.1-final-installer.run(文件8个G,上传不了)

      • e.安装petalinux

        • 在一个用户目录下(我的是:home/hlf/mnt),用鼠标右键,新建一个文件夹petalinux
        • 在普通用户下(非root模式下,即命令行是:hlf@hlf-virtual-machine:~/mnt$这样的),shell中输入命令:./petalinux-v2017.1-final-installer.run ./petalinux
        • 经过漫长的等待,安装到一半的时候,提醒查看许可,按回车查看,按q退出,退出后输入y,回车,如此重复三次,才开始正式安装(这个步骤要很小心,如果没有输入y,就回车,就要重新了)
        • 安装的时候提示,提示有几个库没装,不过没关系,等petalinux安装完之后,再补也不迟,静候一直到安装完毕 
          这里写图片描述
      • f.补一些库的安装

        • 懒人直接只看这一点即可(可以跳过下面两点),把下面命令粘贴到shell中回车即可: 

          apt-get install texinfo gcc-multilib libsdl1.2-dev libglib2.0-dev zlib1g:i386 libncurses5 libncurses5-dev libc6:i386 libstdc++6:i386 zlib1g:i386 libssl-dev tftpd tftp openbsd-inetd

        • 先安装刚刚安装时,提示缺少的库:

          apt-get install texinfo gcc-multilib libsdl1.2-dev libglib2.0-dev zlib1g:i386

        • 安装一些之后需要的库,全都安装了避免麻烦:

          • 在运行petalinux-config -c kernel会出现错误,需安装: 
            apt-get install libncurses5 libncurses5-dev
          • 编译时可能会出现错误arm-xilinx-linux-gnueabi-gcc: Command not found,需安装: 
            apt-get install libc6:i386 libstdc++6:i386 zlib1g:i386
          • 提示缺少zlib和openssl,需安装: 
            apt-get install libssl-dev
          • 出现警告(警告而已,强迫症可以处理一下),提示No tftp server found - please refer to “PetaLinux SDK Installation Guide” for its impact and solution,需安装: 
            apt-get install tftpd tftp openbsd-inetd,安装完成后,编辑一下/etc/inetd.conf里的东西: 
            直接shell中输入gedit /etc/inetd.conf,打开了文件,并在文件最后一行增加: 
            tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftproot 然后保存并退出 ,之后再进行一些简单操作: 
            mkdir /tftproot 
            chmod 777 /tftproot 
            /etc/init.d/openbsd-inetd restart 
            输入netstat -an | more | grep udp命令,以确定成功(打印出udp 0 0 0.0.0.0:69 0.0.0.0:*
      • g.验证是否安装成功 
        source /home/hlf/mnt/petalinux/settings.sh 
        成功定位不报错的话,基本是成功了的 
        echo $PETALINUX 
        命令行会打印出安装路径/home/hlf/mnt/petalinux

    1.2.2 搭建硬件环境

    新建工程,选择对应的芯片型号,并新建一个 BD 原理图文件(命名为system),然后添加一个ZYNQ Processing system的IP核,并设置好与硬件相符合的PS和PL时钟以及DDR型号

    然后右键单击 Block 文件,文件选择 Generate the Output Products,然后右键单击 Block 文件,选择 Create a HDL wrapper,根据 Block 文件内容产生一个 HDL 的顶层文件,并选择让 vivado 自动完成

    经Vivado综合,实现后,在Vivado中导出硬件,输出PetaLinux所需要的硬件描述文件 
    输出的文件就在“/(工程文件夹)/(工程名).sdk”这个文件夹下,这个文件夹下的system_wrapper.hdf待用

     

    1.2.3 搭建petalinux bsp工程

      • a.定位目录 
        先在shell中找一个准备存放工程的地方,(我的是home/hlf/PRO),命令行cd home/hlf/PRO

      • b.定位编译链 
        根据安装petalinux的路径: 
        source /home/hlf/mnt/petalinux/settings.sh

      • c.创建petalinux工程 
        将在PRO目录下面,创建一个工程: 
        petalinux-create --type project --template zynq --name h1_petalinux_test 
        h1_petalinux_test是工程名,该命令会自动在PRO文件夹里创建h1_petalinux_test文件夹

      • d.引用刚才输出的硬件描述文件 
        把之前导出的硬件描述文件system_wrapper.hdf拷贝到虚拟机中的h1_petalinux_test工程文件夹下,然后: 
        petalinux-config --get-hw-description=/home/hlf/PRO/h1_petalinux_test 
        会进入一个配置界面,在里面我们可以配置一些系统参数,主要的配置包括:启动方式,启动存储器分区表,启动文件名称等等,本文暂不对其修改(默认是从SD卡中启动),然后等待其配置(时间较长)

      • 上图可以进行基本项配置,

      • e.获取文件夹权限 
        在上一步完成后,输入命令sudo chmod -R 777 /home/hlf获取文件夹权限(工程文件夹和petalinux的安装文件夹),否则编译的时候,会发生错误

      • 目前为止,在shell中的命令既可以以超级用户su的身份运行也可以以普通用户的方式运行(建议全部都用普通用户的方式,免得切换),但是等下编译u-boot和kernel以及rootfs的时候,必须以普通用户的身份运行命令行,否则会报错的

      • f.编译u-boot 
        注意:到此处的时候,不能再用超级用户了,要切换到普通用户下,之后的所有操作都在普通用户下 
        普通用户的shell中输入petalinux-config -c u-boot(依然要事先输入source /home/hlf/mnt/petalinux/settings.sh命令),然后等待GUI出来,这里暂时不改动啥,直接save(save为u-boot.config,名字随便取但不要留空),然后继续等(新建工程要等的时间还是比较长的,后来就会好的) 
        这里写图片描述

      • g.编译kernel 
        命令petalinux-config -c kernel,操作同上(save为kernel.config

      • h.编译rootfs 
        命令petalinux-config -c rootfs,操作同上(save为默认即可)

      • i.设备树配置 
        若要修改,直接在工程文件夹下,Ctr+F搜索.dts就可以找到相关文件,做出相应修改” 
        暂时默认吧,不修改,按照它自动生成的设备树

      • j.编译工程 
        配置完成后可以生成适配该硬件的fsbl,u-boot,kernel,rootfs等文件, 输入命令petalinux-build,等待即可,最后生成的文件在 image/linux下

      • k.生成BOOT.BIN 
        把shell定位到image/linux目录下,执行命令 
        petalinux-package --boot --format BIN --fsbl zynq_fsbl.elf --fpga system_wrapper.bit --u-boot,在文件夹下就可以发现,多了一个BOOT.BIN

      • l.将如下文件拷入SD卡 
        这里写图片描述

      • m.开机 
        将SD卡,插回,开机,串口打印信息为:

           ....

         n。生成完启动文件后可以进行模拟适配

          如果不想连接开发板可以先用模拟题运行u-boot,kernel,看看是不是正确

          petalinux-boot –qemu –u-boot

        petalinux-boot –qemu –kernel  

    密码:root

    如果模拟器运行没问题就可以用jtag下载到zynq板子上进行后续调试了,命令参看ug1157-petalinux-tools-command-line-guide

    http://blog.csdn.net/zhaoxinfan/article/details/57530627

    http://blog.csdn.net/long_fly/article/details/78727813

    1.3.Xilinx zynqMP开发基本步骤

    a)使用Vivado 工具生成 .hdf文件,比如ZU9_cpu.hdf

    b)使用SDK工具生成FSBL。FSBL的作用主要是初始化PLL,DDR,MIO管脚分配,烧写FPGA,运行uboot等。核心代码代码位于psu_init.c中。

    c)生成uboot

    d)使用bootgen工具生成BOOT.BIN文件,bootgen需要使用.bif文件做输入。bif指导那个文件用作输入,targets等

    //arch = zynqmp; split = false; format = BIN
    the_ROM_image:
    {
     [fsbl_config]a53_x64
     [bootloader]C:cpu_testcpu_testcpu_test.sdkfsblDebugfsbl.elf
     [destination_device = pl]C:cpu_testcpu_testcpu_test.sdkcpu_test_wrapper_hw_platform_0cpu_test_wrapper.bit
     [destination_cpu = a53-0]C:cpu_testcpu_testcpu_test.sdkuboot.elf
    }

    e)把BOOT.BIN,system.dtb和Image文件copy到SD卡第一分区,把rootfs解压到SD卡ext4分区。

    http://blog.csdn.net/ambercctv/article/details/69945902

    1.3.1 zynq MP的启动

    (1)启动过程

      下图时xilinx手册上摘录的图,描述了zynqMP 上的linux的整个boot过程 
    这里写图片描述
      系统复位后,首先PMU(Platform Management Unit)会执行PMU ROM中固化代码,执行完后会启动CSU处理核,CSU会负责从启动存储介质中加载FSBL(First Stage Boot Loader)至on-chip ram中,FSBL可以由RPU负责执行也可由APU负责执行,须在制作FSBL时确定。继而,CSU激励RPU或APU执行FSBL。FSBL会加载PMU Frameware交付PMU执行。继而FSBL执行完成后切换至ATF(Arm Trusted Frame),ATF于APU上执行。然后ATF启动u-boot,u-boot为linux配置好运行环境将执行权交付给Linux内核。 

      

      可以看出和Zynq-7000类似,ZynqUltraScale+ MPSoC也是三级启动方式,只是Xilinx又给它们起了一个新名字,启动分为以下三级:

            a) Pre-configuration:复位后执行PMU ROM代码,讲外部FSBL代码搬到内部的OCM。相当于Zynq 的Boot ROM执行。

            b) Configuration:在内部的OCM代码,系统根据BOOTHeader的内容选择在CPU(Cortex-A53)还是RPU(Cortex-R5)上执行。负责初始化必要的时钟、内存和外设,加载Bit文件和用户代码等。

             c) Post-configuration:执行用户代码。

    http://blog.csdn.net/haoxingheng/article/details/50099373

    (2)启动文件详解

    对于ZYNQ MPSoC有以下几个文件,

    a.FSBL 

    这个FSBL跟zynq-7000的fsbl是一样的,用户可以选择用cortex-a53制作启动的fsbl文件,也可以选择用cortex-r5来制作启动的fsbl文件。

    b.PMUFW (pmufw.elf)

    PMU的配置文件,但这个不是必须的,用户是可选的,MPSOC有LPD.FPD.PL三路电源轨,PMU是为了更好的管理电源和控制功耗,一般情况下,大部分客户不需要修改这个elf文件,这个文件不是制作BOOT.bin必须要的。

    c.ARM Trusted Firmware(bl31.elf)

    ARM Trusted Firmware文件,是一个arm加密固件,用户根据需要来定制,这个文件不是制作BOOT.bin必须要的。

    d.PL bitstream(design_1_wrapper.bit)

    这是FPGA端的bit配置文件,用户根据自己的需要来配置bit文件,这个文件不是制作BOOT.bin必须要的。

    e.uboot(u-boot.elf)

    uboot文件,目前我使用的是version是2016.7,制作BOOT.bin需要这个文件。

    f.image.ub

    这个文件是由petalinux-package --image 打包kernel rootfs device-tree这个三个文件合成的image.ub文件,也就是说,当你启动mpsoc的时候,你最终只需要两个文件BOOT.bin image.ub。

    http://blog.csdn.net/luhao806/article/details/58591497

    1.3.2 uboot 的生成

    MPSOC系列基于ZCU102 uboot的编译生成

      查看board/xilinx/zynqmp/zynqmp.c 中board_late_init

      这里需要检查了zynqMP的启动方式,并设置了环境参数 modeboot ,此次测试使用sd卡boot,故modeboot 会被设置为sdboot,故u-boot会执行run sdboot命令,其中sdboot 环境参数设置在include/configs/xilinx_zynqmp.h中定义,

      此处还实现了TFTP形式的boot以及nfs文件系统,这里就不解释TFTP Boot及nfs(xilinx默认配置是从sd卡第一分区(FAT格式)读取devicetree以及Image实现boot,并以sd卡第二分区(ext4格式)作为系统的跟文件系统)。

      uboot 生成:

    cd $u-boot-xlnx-dir

    export ARCH=arm64

    export CROSS_COMPILE=aarch64-linux-gnu-

    make distclean

    make xilinx_zynqmp_zcu102_rev1_0_defconfig

    make -j4 #-jn 为你要运行的核数

    http://blog.csdn.net/baidu_23935667/article/details/79099803

    or:

          从git.xilinx.com上下载uboot源码
              $ git clone https://github.com/Xilinx/u-boot-xlnx
              2. 设置本地环境变量
              $ source petalinux2017.2/settings.sh
              3.配置uboot
              $ make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- xilinx_zynqmp_zcu102_config
              4.编译uboot
              $ make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu-
               
     
              编译完成之后会看到文件名u-boot.elf的二进制文件,在合成BOOT.BIN的时候我们会用到这个文件。
    http://blog.csdn.net/luhao806/article/details/77896547
     

    1)windows vivado sdk create uboot.bin

    打开vivado工程并生成bit stream
    导入到 sdk
    打开sdk
    创建预置的fsbl工程
    Xilinx Tools>Creat Boot Image
    选择BIF file path
    选择Output path
    在Boot image partitions中
    add>fsbl.elf
    add>XXX.bit
    add>u-boot.elf
    Creat Image

    其中bif为路径配置文件:

      bif文件如下所示:

    //arch = zynqmp; split = false; format = BIN
    the_ROM_image:
    {
        [fsbl_config]a53_x64
        [bootloader]PROJECT_DIR/project_1.sdk/fsbl/Debug/fsbl.elf
        [pmufw_image]PROJECT_DIR/project_1.sdk/pmu/Debug/pmu.elf
        [destination_device = pl]PROJECT_DIR/project_1.sdk/design_1_wrapper_hw_platform_0/design_1_wrapper.bit
        [destination_cpu = a53-0, exception_level = el-3]PROJECT_DIR/project_1.sdk/bl31.elf
        [destination_cpu = a53-0, exception_level = el-2]PROJECT_DIR/project_1.sdk/u-boot.elf
    }

      其中PMU、FSBL由SDK中生成 

    http://blog.csdn.net/aostas/article/details/78149300

    2)petalinux 合成 boot.bin

     

    $ petalinux-package --boot --fsbl images/linux/zynqmp_fsbl.elf --u-boot=images/linux/u-boot.elf --pmufw no --atf --force 
    下面是输入命令之后的打印信息:
    INFO: File in BOOT BIN: "/home/luhao/xilinx/peta_project/xilinx-zcu102-2016.4/images/linux/zynqmp_fsbl.elf"
    INFO: File in BOOT BIN: "/home/luhao/xilinx/peta_project/xilinx-zcu102-2016.4/images/linux/bl31.elf"
    INFO: File in BOOT BIN: "/home/luhao/xilinx/peta_project/xilinx-zcu102-2016.4/images/linux/u-boot.elf"
    INFO: Generating zynq binary package BOOT.BIN...
    INFO: Binary is ready.
    petalinux-package --boot 用来生成一个BOOT.bin目标文件;
    --fsbl images/linux/zynqmp_fsbl.elf 代表着fsbl的路径;
    --u-boot=images/linux/u-boot.elf 代表着u-boot.elf的路径;
    --pmufw no 表示禁用pmufw,如果不加no,默认路径就是image/linux/pmufw.elf;
    --force是覆盖之前生成的BOOT.bin文件;
    bl31.elf是atf文件,arm加密固件;
     
    如果需要加入bit文件,请加入如下选项
    --fpga images/linux/design_1_wrapper.bit 
    http://blog.csdn.net/luhao806/article/details/58594632

    1.3.3 MPSOC系列基于ZCU102的linux的kernel的编译

    cd linux-xlnx

    export ARCH=arm64

    export CROSS_COMPILE=aarch64-linux-gnu-

    make xilinx_zynqmp_defconfig

    make menuconfig make -j4 #-jn n为你要运行的核数

    http://blog.csdn.net/baidu_23935667/article/details/79099803

    or:

           a.从git.xilinx.com上下载kernel源码
              $ git clone https://github.com/Xilinx/linux-xlnx
              b. 设置本地环境变量
              $ source petalinux2017.2/settings.sh
              c.配置kernel
              $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- xilinx_zynqmp_defconfig
              c.编译kernel
              $ make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- -j4
              e.进入Image所在目录
              $ cd arch/arm64/boot
              我们可以看到Image文件,此为linux内核文件
              f.进入dts目录
              $ cd arch/arm64/boot/dts/xilinx
              我们可以看到zynqmp-zcu102-revB.dtb文件,在SD启动的时候可能需要改名为devicetree.dtb或者system.dtb。
    http://blog.csdn.net/luhao806/article/details/77896761
     
    1.4  Zynq UltraScale+ MPSoC新鲜出炉
    1.4.1 区别zynq mp和zynq
    时隔三年,Xilinx推出了其全新的异构SoC,大名叫ZynqUltraScale+。相比它的前辈Zynq-7000,这款SoC功能显得更加强劲:最显著的变化是新加入了GPU和视频编解码器,PS端的高速接口更加丰富。按照Xilinx官方的说法,Zynq UltraScale+主要针对控制、图像和网络这三大块,比如说汽车辅助驾驶、8K图像、100G网、物联网等等领域(兵马未动,粮草先行啦,Xilinx早早的就针对这些差异化应用推出了SDx集成开发环境)。

    手头必备的TRM UG1085(http://www.xilinx.com/support/documentation/user_guides/ug1085-zynq-ultrascale-trm.pdf

    寄存器手册(http://www.xilinx.com/support/documentation/registers/ug1087/ug1087-zynq-ultrascale-registers.html

    http://blog.csdn.net/kkk584520/article/details/50042757

    https://wiki.trenz-electronic.de/pages/viewpage.action?pageId=14746264

    1.4.2
     选择PetaLinux的原因
     在详细介绍具体做法之前,有必要花点时间来探讨针对基于FPGA的嵌入式系统提供的操作系统选项。PetaLinux是FPGA上最常用的操作系统,另外还有μClinux 和Xilkernel。μClinux为Linux发行版,是一款包含小型Linux内核的移植型Linux操作系统,适用于无存储器管理单元(MMU)的处理器[1]。μClinux配备有各种库、应用和工具链。Xilkernel就其本身而言,是一款小型、高稳健性、模块化内核,能够提供高于μClinux 的定制性能,有助于用户通过定制内核来优化其设计尺寸与功能[2]。同时,PetaLinux也是一款完整的Linux发行版及开发环境,适用于基于FPGA的片上系统(SoC)设计。PetaLinux包含预配置二进制可引导映像、面向赛灵思器件的完全可定制Linux 以及配套提供的PetaLinux软件开发套件(SDK)[3]。其中SDK包括用于自动完成配置、构建和部署过程中各种复杂工作的工具和实用程序。赛灵思提供可免费下载的PetaLinux开发包,其中包括针对各种赛灵思FGPA开发套件而设计的硬件参考项目。同时包含在内的还有适用于赛灵思FPGA的内核配置实用程序、交叉编译器等软件工具、硬件设计创建工具以及大量其它设计辅助功能。据报道,Xilkernel 的性能优于μClinux[4],而PetaLinux的性能又优于Xilkernel [5]。由于这个原因,特别是由于已针对我们赛灵思目标板提供的软件包原因,我们为我们的项目选择了PetaLinux。移植PetaLinux的另一大优势是用户可以轻松实现远程编程。这就意味着用户可使用远程接入方式,通过远程登录,采用新的配置文件(或比特流文件)加载FPGA目标板。有两种方法可以创建用于构建PetaLinux系统的软件平台:在Linux终端上使用PetaLinux命令或通过下拉菜单使用GUI。
    http://www.elecfans.com/emb/fpga/20171117581662_a.html

    附录:

    1. zcu102 Linux 完整打印信息log

    http://blog.csdn.net/luhao806/article/details/58602337

    2. http://www.wiki.xilinx.com/        
    (提供 了几乎所有的学习资料,包括:创建FSBL,配置编译内核,配置编译u-boot,编译生成dtb,制作根文件系统,linux 设备驱动程序,设计例程等等)

    3.zc702 学习总结

    http://blog.csdn.net/Klaus_Wei/article/details/38063349

    4. zcu102 pcie视频传输方案

    http://blog.csdn.net/vacajk/article/details/78970368

    5.zcu102 

    ZCU102 HDMI Demo测试:

    http://blog.csdn.net/vacajk/article/details/78970533

    6. zcu102 xen 开源视频监视

    http://blog.csdn.net/telantan/article/details/78872451

    7.

    闲话Zynq UltraScale+ MPSoC(连载4)——IO资源

    http://blog.csdn.net/haoxingheng/article/details/50100573

    闲话Zynq UltraScale+ MPSoC (连载3)——启动加载

    http://blog.csdn.net/haoxingheng/article/details/50099373

    闲话Zynq UltraScale+ MPSoC (连载2)——架构和电源要求

    http://blog.csdn.net/haoxingheng/article/details/50098777

    Zynq UltraScale+ MPSoC新鲜出炉

    http://blog.csdn.net/kkk584520/article/details/50042757

    8. zynq petalinux编译用户自定义系统

    http://blog.csdn.net/shichaog/article/details/51544173

    9.ZYNQ跑系统 系列(二) petalinux方式移植linux

    http://blog.csdn.net/long_fly/article/details/78727813

    10 ZCU102开发 (1) 运行基于ubuntu文件系统的Linux

    http://blog.csdn.net/telantan/article/details/73928695

    【Zynq学习笔记3】petaLinux使用

    http://blog.csdn.net/wt881010/article/details/71597478

    zynq之petalinux安装和编译

    http://blog.csdn.net/shichaog/article/details/51074980

    将PetaLinux移植到FPGA上的原因和步骤详解 - 全文

    http://www.elecfans.com/emb/fpga/20171117581662_a.html

    11. xlinux官网资料

    http://china.xilinx.com/products/boards-and-kits/ek-u1-zcu102-g.html#documentation

    https://china.xilinx.com/search/support-keyword-search.html?searchKeywords=PetaLinux%20Tools%20Documentation

    https://china.xilinx.com/support/documentation/sw_manuals/xilinx2017_4/ug1156-petalinux-tools-workflow-tutorial.pdf

    http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/embedded-design-tools.html

    https://china.xilinx.com/support/documentation/sw_manuals/xilinx2017_4/ug1144-petalinux-tools-reference-guide.pdf

     
     

     

  • 相关阅读:
    Winfrom 减少控件重绘闪烁的方法
    Blazor client-side Preview 预览版 如何调试 Debug
    实用,Windows后台守护进程iNeuDaemon发布。Linux操作系统下使用使用supervisor
    RabbitMQ消息队列之Windows下安装和部署(一)
    Angularjs接收服务端的布尔值
    python基础教程:浅谈python for循环的巧妙运用(迭代、列表生成式)
    Excel合并数据查找函数VLOOKUP()一直显示最后一行数据或者一直报错的解决方法
    RHCE(一)NFS服务详解——搭建与配置
    [WPF 自定义控件]在MenuItem上使用RadioButton
    EF CORE中复杂类型的映射
  • 原文地址:https://www.cnblogs.com/pengkunfan/p/8569986.html
Copyright © 2011-2022 走看看