查看: 1985|回复: 0

[评测分享] 【米尔FZ3深度学习计算卡】FZ3嵌入式入门开发初探

[复制链接]
  • TA的每日心情
    奋斗
    2020-12-8 22:09
  • 签到天数: 9 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2020-11-22 16:50:25 | 显示全部楼层 |阅读模式
    分享到:
        拿到板子,当然上手就要试一试“HelloWorld”呀。在开始“Hello World”之前,让我们了解一下ZYNQ Ultrascale+ MPSoC芯片系列的开发流程。
        ZYNQ Ultrascale+MPSoC系列芯片集成了ARM四核Cortex-A53,双核Cortex-R5,Mali-400 MP2图形处理单元和Kintex Ultrascale+FGPA。也就是说一块芯片上既有四个A53核心,两个R5核心,Mali-400 MP2图形计算与FPGA。但是它仍然是一块FPGA,因为这上面的所有功能都需要vivado软件进行配置才能使用。对PS部分,4个A53、2个R5与Mali-400 MP2图形处理器,我们可以根据我们项目的需求进行使用,比如项目中既需要实时性,又需要处理多媒体的情况下,就可以这6个核心一起使用。4核心A53跑linux,负责显示,网络,人机交互,Mali-400 MP2负责跑图形加速计算、图像处理等任务;R5跑实时嵌入式操作系统用于工业设备的控制,如驱动电机,读取传感器数值等。对于PL部分,FPGA用于跑接口与加速计算,例如PCIe接口、图形计算加速、MIPI-CSI摄像头、扩展通信接口等。
        大致了解了ZYNQ Ultrascale+MPSoC 平台,实在是太强了,基本塞下了MCU,MPU,GPU与FPGA,将可编程电子电路系统全都塞进这个23mmX23mmX3.12mm的小芯片中,真的很惊艳。对于一个这么复杂的编程系统,我们应该如何下手呢。别着急,其实我们只要把它看成是ARM芯片与FPGA芯片结合就好。ARM部分开发ARM部分的软件程序、调试;FPGA部分做FPGA硬件电路的逻辑实现、综合、约束。那我们就赶紧动手,开始第一个工程实验吧。
    实验目的
    1.熟悉vivado 2019.1软件的操作。
    2.熟悉ZYNQ Ultrascale+ MPSoC 平台芯片的开发流程。
    3.使用FZ3开发板实现串口打印“Hello World!”
    实验要求:
    使用FZ3板卡实现串口打印“Hello World”。
    实验过程
    1.使用vivado软件新建工程。

    首先打开vivado2019.1,进入软件。
    vivado欢迎界面.png
    Vivado设计得十分简洁,上方的导航栏只有File,Flow,Tools,Window,Help五个菜单。主窗体有三块。
    快速开始,可以用于创建工程、打开工程、打开样例工程。
    任务,可以用于管理IP,烧录FPGA程序,查看Tcl脚本商店。
    学习中心,用于打开官方文档与教程

    (1)点击create project或File的下拉菜单中Project->NEW.
    new project.png
    输入工程名称,我这里使用Hello_World,并指定工程路径(不要有中文)
    project_name.png
    选择RTL工程,先不要添加指定源文件。
    project-type.png
    选择芯片型号,我们使用的芯片是xczu3eg-sfvc784-1-e,属于ZYNQ UltraScale+ MPSoC系列。
    chip-select.png
    summary.png
       (2)下面我们来了解一下开发环境。
    vivado主界面介绍.png
    2.添加Cortex-A53核心到IP设计图中,并进行配置。

    我们的任务是通过PS部分串口打印“hello world”,因此只使用了PS部分,通过添加PS部分并配置即可。首先点击Create Block Design。
    创建块设计.png
    指定块设计名称,我这里默认名称
    块设计名称.png
    在代码编辑区窗口添加Zynq UltraScale MPSoC的IP。
    添加ZYNQ-IP.png
    双击生成的ZYNQ ip并进行配置。
    ZYNQ.png
    config-ip.png
    点击preset按钮->applyconfigration,使用文件对IP核进行配置。这里我们使用米尔官方资料中提供的配置文件(myir.tcl)。
    file-config.png
    使用该文件后,我们还要对配置进行一些裁剪。
    config-1.png
    config-2.png
    config-3.png
    将上面的IP进行修改,其原因是我们这个工程中没有使用到这些功能,参与配置可能会出现意想不到的错误。

    然后生成output products。
    生成product.png
    generate.png
    随后,我们再生成顶层文件
    生成HDL.png
    create HDL.png
    3.生成bitstream,并导入SDK中。
    生成bitstream.png
    经过2分钟时间的等待,终于成功生成bitstreram。
    bitstream-complete.png
    关闭上方窗口,输出hardware。
    export-hardware.png
    export.png
    4.创建SDK软件工程,使用Hello World工程样例。
    首先点击File->launchSDK。

    注意:这里使用的vivado版本为2019.1,如果使用了更高版本的vivado,请在Tools菜单栏下选择launch SDK。
    launch-SDK.png
    出现SDK启动图案。
    SDK-start.png
    进入Xilinx SDK软件界面,下面是xilinx SDK软件界面介绍。
    xilinx-SDK介绍.png

    我们要创建一个样例工程。

    点击File->New->Application Project
    New SDK project.png
    输入工程名称,并配置BSP。
    hello-world.png
    使用hello-world工程样例,点击finish。

    5.编译工程,将生成的文件导入板卡中。

    工程会自动进行编译。
    compile-complete.png
    编译后,为了可以烧录到FZ3板卡上,这里有两种方法。一种是通过SD卡启动板卡,第二种是使用xilinx下载器烧录到QSPI Flash中启动。由于手头没有xilinx下载器,所以这里选择第一种方法运行我们编译的程序。
    这里,我们还需要新建一个FSBL工程。FSBL,全称是First Stage Bootloader,是Zynq Ultrascale+ MPSoC系列芯片的启动配置FPGA的bootloader,它用于配置FPGA,加载操作系统镜像,它支持多个分区,每个分区可以有自己的代码镜像与bit流。它用作引导U-Boot。使用SD卡跑我们SDK工程的程序,就需要把这个FSBL工程编译,并插入到当前Hello-World工程中,才可以顺利运行Hello-World。

    和刚才创建Hello-World工程一样,创建FSBL工程。
    create fsbl.png
    填写工程名:fsbl,并配置工程。
    fsbl.png
    选择Zynq MP FSBL样例工程,finish。

    工程会自动编译。
    编译结果.png
    编译完成后,我们要进行最后的操作,创建BOOT.bin启动文件。
    创建启动文件.png
    右键单击hello-world工程,点击Create Boot Image。
    add.png
    点击添加按钮。
    add pmu.png
    分区类型选择pmu,并选择pmufw.elf文件,文件由米尔官方工程提供。
    UP.png
    把刚才的分区调整到第二位置,并点击Create Image。
    bootimage.png
    在Hello_World工程下bootimage文件夹中生成BOOT.bin启动文件。将这个启动文件复制到FAT32分区的SD卡中即可。
    6.观察现象。

      设置串口波特率115200,开发板上电。
    上电图.jpg
    上电.png


    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-10-18 16:51 , Processed in 0.126910 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.