前言

Zynq启动流程和ARM处理器类似,PS部分是启动和配置过程的主设备,芯片引导必须由处理器驱动,系统上电复位后会读取设备模式引脚来决定从什么设备启动芯片。如下表Boot Devices条目所示,其中黄色代表该条目下的默认设置,比如Boot Devices默认设置是SD Card,默认从SD卡启动芯片

下图中的JP7-JP11的5个条线帽就是用于设置设备模式引脚电平的

启动步骤

PS确定好从什么设备启动后,接着的启动过程分为以下三个阶段

  1. Stage-0 执行BootROM代码,不可修改
  2. Stage-1 执行FSBL(first boot loader)代码,用户可修改。 如果是裸机程序也可以不需要这个阶段直接跳到下一阶段。
  3. Stage-2 执行用户裸机程序或者操作系统的启动引导程序SSBL(second boot loader)

关于BootROM:位于Zynq片内,功能是初始化L1 cache和基本的总线系统,以及从指定的外部存储器加载Stage-1的FSBL代码到片内存储器(OCM)。但是要使Stage-0之后的代码被Stage-0的BootROM识别,还需要为Stage-0之后的代码(可能是Stage-1的FSBL,也可能是Stage-2的裸机程序,因为没有调用BSP函数的裸机程序是可以不需要FSBL的)添加一个头部,制作成引导镜像。可以使用SDK的BootGen工具为裸机程序elf文件创建引导镜像Boot.bin,将其复制到SD卡中,并且设置板子从SD卡启动就可以执行程序。

使用SDK工具创建SD卡启动镜像

BOOT.BIN= f(FSBL.elf+PL.bit+PS.elf)

PL.bit和PS.elf

采用vivado 创建PS工程中生成的PL.bit和PS.elf。

制作FSBL.elf

新建Zynq FSBL工程


等待工程建立完毕,FSBL.elf就在工程文件夹的Debug文件夹下

制作BOOT.BIN

使用SDK的Create Boot Image

选择好output路径放置生成的BOOT.BIN和output.bif。依次添加FSBL.elf、PL.bit、PS.elf,FSBL.elf文件的Partition type选择bootloader,其余两个文件选择datafile。最后Create image

启动

将BOOT.BIN复制到SD卡,设备模式引脚设为SD卡启动,板子上电之后就可以观察到程序运行
下图没有接usb线,只接了电源线,这是从SD卡启动了

Zynq启动流程的更多相关文章

  1. ZYNQ 启动问题 :FSBL

    0.ZYNQ外部启动条件 1. 电源要求: 在阶段0 BootROM时,安全模式下PS与PL都是必须上电的:非安全模式PS需要上电,如图: 在阶段1 FSBL时,PS与PL都是必须上电的,因为PL将在 ...

  2. MyCat源码分析系列之——配置信息和启动流程

    更多MyCat源码分析,请戳MyCat源码分析系列 MyCat配置信息 除了一些默认的配置参数,大多数的MyCat配置信息是通过读取若干.xml/.properties文件获取的,主要包括: 1)se ...

  3. Android进阶系列之源码分析Activity的启动流程

    美女镇楼,辟邪! 源码,是一个程序猿前进路上一个大的而又不得不去翻越障碍,我讨厌源码,看着一大堆.5000多行,要看完得啥时候去了啊.不过做安卓的总有这一天,自从踏上这条不归路,我就认命了.好吧,我慢 ...

  4. Spring Boot启动流程详解(一)

    环境 本文基于Spring Boot版本1.3.3, 使用了spring-boot-starter-web. 配置完成后,编写了代码如下: @SpringBootApplication public ...

  5. linux启动流程及自定义gurb

    linux 启动流程 POST BIOS(boot sequence) 所选择的启动设备次序的MBR中是否有引导程序, ----> MBR(bootloader) 提供内核列表 -------& ...

  6. linux启动流程

    看了深入理解linux内核一书的最后对linux启动流程的介绍,下面就把我能理解的写一下吧: bios(硬件加电自检POST,寻找第一个启动设备) the boot loader(可以从硬盘启动也可以 ...

  7. webapp启动流程

    webapp启动流程 看了这个教程,其实所有的webapp大致都是这个流程了.

  8. Tomcat源码分析之—具体启动流程分析

    从Tomcat启动调用栈可知,Bootstrap类的main方法为整个Tomcat的入口,在init初始化Bootstrap类的时候为设置Catalina的工作路径也就是Catalina_HOME信息 ...

  9. 嵌入式Linux驱动学习之路(五)u-boot启动流程分析

    这里说的u-boot启动流程,值得是从上电开机执行u-boot,到u-boot,到u-boot加载操作系统的过程.这一过程可以分为两个过程,各个阶段的功能如下. 第一阶段的功能: 硬件设备初始化. 加 ...

随机推荐

  1. centos7开启80和8080端口

    开启8080端口 firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload 重定向80端口到8080端口firewall-c ...

  2. 如何让外网访问自己的本地Web服务

    目前很多网站开发者安装了IIS或者Apache等Web服务器,可以把自己电脑配置成一以路由为中心的内网服务器. 本地服务器在内网测试是绰绰有余的,但是有些项目需要演示给异地的客户验收,而又赶不及把自己 ...

  3. war 包tomcat部署和maven的tomcat插件部署的不同

    不用插件 1在linux服务器上下载号tomcat 或者上传tomcat 2上传war包,最好创建一个目录房war包,和tomcat 3解压war包,jar -xvf war   或者unzip wa ...

  4. win7下编译Microsoft版的caffe包的MATLAB接口(CPU模式)

    本博客是基于http://www.cnblogs.com/njust-ycc/p/5776286.html这篇博客修改的,做出了更正与补充. 本人机器的环境:Win7+MATLAB2014b+VS20 ...

  5. 5.6版本GTID复制异常处理一例(转)

    http://imysql.com/2014/07/31/mysql-faq-exception-replication-with-gtid.shtml 昨天处理了一个MySQL 5.6版本下开启GT ...

  6. 007-chrome插件系列

    1.Axure RP Extension for Chrome 2.Charset 3.CLEAN crxMouse Gestures 4.Google 翻译 5.JSONView 6.restlet

  7. 2种方式解决vue路由跳转未匹配相应路由避免出现空白页面或者指定404页面

    https://www.cnblogs.com/goloving/p/9254084.html https://www.cnblogs.com/goloving/p/9254084.html 1.路由 ...

  8. python数组相关知识

    1.np中的reshape函数,可以把矩阵重新划分成m行n列. arange(n)可以把 [0,n-1]装入数组中,一定要注意的是img.reshape()并不会改变原来的数组,所以需要另外新建一个数 ...

  9. 用matlab画两个曲面的图

    求助!!用matlab画两个曲面的图 这是我写的程序,但是运行不出来,麻烦帮我修改一下,谢谢!!clearallcloseall[x,y]=meshgrid(0:.1:60);z1=(25*y-25* ...

  10. css 快捷修改 checkbox 及 radio的背景图

    在CSS内选择要修改的input input[type=checkbox]:disabled{ //input类型等于复选框并且是disabled状态的所有(根据情况自由指定) -webkit-app ...