zoukankan      html  css  js  c++  java
  • ZYNQ程序固化

    3.1 固化简介

    如果需要板卡中程序掉电不丢失,则需要对程序进行固化,ZYNQ7000 SOC芯片可以从Flash启动,也可以从SD卡启动,上电后,ZYNQ根据模式管脚的设定,选用boot的方式。

    核心模式开关:

    启动模式:

    固化ZYNQ程序需要为这个程序做一个镜像文件,该镜像文件需要PL侧的bit文件,PS侧的elf文件,还需要一段代码将bit文件和elf文件配置,这段代码就是FSBL.elf。

    因此制作一个镜像文件需要三个文件:

    (1)、.bit

    (2)、.elf

    (3)、FSBL.elf        

    3.2 SD卡启动

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

    ZYNQ的启动过程与大多数arm类似,启动过程分为三个阶段,阶段0、阶段1、阶段2:

    阶段0

    传统的bootROM过程,ZYNQ的ROM中固化了一段不可修改的程序,只要ZYNQ一上电,这段程序就会执行,它将对ZYNQ的NAND、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启动过程。

    制作BOOT.bin文件:

    对应于原理图上的:

    3.3 QSPI Flash固化

    设置拨码开关,将镜像文件烧写进FLASH,使系统从QSPI-FLASH模式启动,那么每次断电后,系统都会从FLASH启动。

    制作BOOT.bin文件:

    对应于原理图上的:

    3.4 生成BOOT.bin文件

    新建vivado工程,生成bitstream,导出到SDK,程序设计,然后!创建一个FSBL工程,在要固化的工程上右击,选择create boot Image,然后可以看到

           然后选择Create Image,即可在当前工程下bootimage目录下看到boot.bin文件,将该BOOT.bin文件复制到SD卡,断电情况下设置拨码开关,之后上电,开机后系统从SD卡启动,掉电后程序也不会消失。(放到SD卡的bin文件,文件名必须是BOOT.bin,否则不识别)

  • 相关阅读:
    C++11 指针成员与拷贝构造(浅拷贝与深拷贝)
    C++11 委派构造函数
    C++11 继承构造函数
    C++11 局部和匿名类型作模板实参
    C++11 外部模板
    C++11 函数模板的默认模板参数
    2D游戏新手引导点光源和类迷雾实现
    UVA 12293
    【算法】8 图文搭配诠释三种链表及其哨兵
    小米面试
  • 原文地址:https://www.cnblogs.com/luxinshuo/p/13546384.html
Copyright © 2011-2022 走看看