• CH05 FPGA设计Verilog基础笔记(五)


     

    FPGA程序的固化和下载

    1、  概述

    在上一例点亮流水灯的基础上,进行改动并将此程序固化到FLASH或SD卡中,实现上电就可启动流水灯程序。

    2、  固化

    上一例通过JTAG先下载bit流文件,在下载elf文件,最后点击Run As来运行程序。JTAG的方法是通过TCL脚本来初始化PS,然后用JTAG 收发信息,用于在线调试。但是这样一断电,程序就会消失,掉电不保存。

    如果需要板卡中程序掉电不丢失,则需要对程序进行固化。ZYNQ7000 SOC 芯片可以从FLASH启动,也可以从SD卡中启动。

    SD固化:将镜像文件拷贝到SD卡中,设置拨码开关,使系统从SD模式启动。那么每次断电后,系统都会从SD启动。

    QSPI FLASH固化:设置拨码开关,将镜像文件烧录到FLASH中,使系统从QSPI-FLASH模式启动,那么每次断电重启后,系统都会从FLASH启动。

    3、  固化的流程

    Step1:Create a Vivado Project ---> Step 2:Create the Hardware System using IP Integrator

    ---> Step 3:Export the Design to the SDK ---> Step 4:Create the Boot Images and Test

        ---> Step 5:Prepare for the Multi-Applications Boot ---> Step 6:Create the SD Card Image and Test

    ---> Step 7:Create the QSPI Application and Image ---> Step 8:Test the QSPI Multi-Applications

    4、  固化需要的文件

    1) FSBL.elf

    2) .bit

    3) .elf 

    以上三个文件最终可以得到BOOT.bin

    5、  ZYNQ从SD卡的启动过程

    zynq和大多数arm启动过程一样,启动过程也分为3个阶段,这三个阶段分别称之为阶段0、阶段1、阶段2。

    阶段0:即传统的BootROM过程。ZYNQ芯片ROM里面固化了一段不可修改的程序,只要ZYNQ一上电,这段程序就会执行。它将对ZYNQ的NAND、NOR、SD等基本外设控制器进行初始化。把SD卡这类易失性存储器初始化后,就会把其中的程序拷贝到ZYNQ的OCM(on-chip memory)。这个被拷贝到片上RAM执行的程序就是我们今天要制作的---BOOT.bin。

    阶段1:BOOT.bin加载到OCM上开始执行。BOOT.bin由fsbl.elf+该工程.bit+该工程.elf构成。阶段1要做的就是:首先配置PS部分,PS完成初始化后,回去配置PL部分,最后去执行加载阶段2的代码。

    阶段2:这一阶段是可选的,主要是为了完成Linux系统启动过程。

    6、  BOOT.bin制作过程

    首先创建IP核并进行配置。

     

    配置以下几个部分:

     

    1)MIO QSPI FLASH这里选择默认,MIO1-6与原理图相对应

    2)IO=》SD0->CD MIO47(原理图对应)

       UART1 MIO48-49(原理图对应)

    bank0 选择3.3V,bank1选择1.8v(由由图可知,bank0->QSPI 、QMOD;

     bank1->UART、Ethernet、USB_OTG、SD_CARD、Push Buttons)

    3)QSPI Clock 设置为125Mhz

       DDR memory part 我的板子是ZYNQ 7010A所以我这选择 MT41K256M 16 RE-125       

       最后点击OK就配置完成IP核了。

    1)  点击配置好的IP核,将其生成顶层文件

    将顶层文件中的模块接口和接口代码复制到run_led.v文件中。然后生成bit文件。

    将bit文件导入SDK中,运行SDK文件。在SDK中创建zynq.fsbl文件。

    然后Create Boot Image产生Boot.bin文件。

  • 相关阅读:
    运行jar包中的main方法
    (转)如何判断VPS是基于哪种虚拟技术?Xen、OpenVZ、Xen HVM、KVM还是VMware
    centos安装redis
    Jmeter性能测试
    Jmeter脚本录制
    【Tomcat】Tomcat安装及Eclipse配置教程
    【接口测试】【SOAP】简单的接口测试学习
    JMeter性能测试,完整入门篇
    monkey命令详解
    APP专项测试
  • 原文地址:https://www.cnblogs.com/TheFly/p/11984826.html
Copyright © 2020-2023  润新知