0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅谈ZYNQ的三种启动方式-JTAG、SD card、Flash

454398 来源:CSDN 博主 作者:ChuanjieZhu 2020-12-26 10:08 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言:

前面我们都是使用JTAG方式下载比特流文件,然后下载elf文件,最后点击Run as或者Debug as来运行程序。JTAG方式是通过tcl脚本来初始化PS,然后用JTAG收发信息,优点是可以在线调试,缺点是断电后程序就丢失了。为了解决程序丢失的问题,可以制作镜像文件烧写到sd卡或者flash中,上电即可加载程序。

ZYNQ有两大类启动模式:从BootROM主动启动,从JTAG被动启动。

在没有外部JTAG的情况下,处理系统(PS)与可编程逻辑(PL)都必须依靠PS来完成芯片的初始化配置。即借助CPU来完成配置,这也是ZYNQ系列的不同之处。

板子依然使用的是zc702.

启动模式设置:

zynq 具有多种启动方式: NOR, NAND, Quad-SPI, SD Card以及 JTAG 。 zynq 如何判断从哪里启动呢? 上电后, zynq 会根据模式管脚的设定选用 boot 的方式。 而这个管脚的设定是通过核心板上的拨码开关实现的。zc702的拨码开关是sw16。

The ZC702 board supports these configurationoptions:
• PS Configuration: Quad SPI flash memory
• PS Configuration: Processor System Boot from SD Card (J64)
• PL Configuration: USB JTAG configuration port (Digilent module)
• PL Configuration: Platform cable header J2 and flying lead header J58 JTAG configurationports

pIYBAF9uIJKAMUHiAACB-5EaHqQ956.png

JTAG启动:

配置界面如下:

pIYBAF9uIJmAcBQBAAddXDZKP4w848.png

o4YBAF9uIJ-ADM5TAAWYK6q4K50941.png

o4YBAF9uIKSASccTAAVhnXCjb7o327.png

设置完之后点击Apply-->Debug即可开始调试,Run as类似。

通过制作镜像文件在外设控制器中启动,也称之为固化。固化需要三个文件:FSBL.elf、该工程的bit文件、该工程的elf文件,由此三个文件制作一个BOOT.bin文件。

那么通过外设启动的过程是怎样的呢?

分为三个阶段,大多数的ARM都是这个启动过程。

阶段0:即传统的 BootROM 过程, zynq 芯片里有个 rom 里面固化了一段不可修改的程序, 只有 zynq 一上电, 这段程序就会执行, 它将初始化CPU和 NAND、 NOR、 SD卡等基本外设。初始化好,BootROM读取存储器中的程序代码,并将FSBL拷贝到OCM(On-chip memory)里 , 这个被拷贝到片上 RAM 执行的程序就来自于我们要制作的文件——BOOT.bin。
阶段1:第一阶段引导程序(First Stage Boot Loader,FSBL)启动,BOOT.bin开始执行:首先继续配置PS,PS初始化好后,再配置PL,最后还可以加载阶段2的代码。

阶段2:开始执行PS端代码,也可以是第二阶段引导程序(Second Stage Boot Loader,SSBL)。完全在用户的控制之下,是可选的。

啰嗦第二遍:

BootROM负责:

1.上电复位以后,PS端即开始进行配置。在不使用JTAG的情况下,ARM将在片上的BootROM中开始执行代码。BootROM中的代码对NAND、NOR、Quad-SPI、SD与PCAP的基本外设控制器进行初始化,使得ARM核可以访问、使用这些外设。(而DDR等其他外设将在阶段1或者之后进行初始化。)

2.BootROM读取MIO[2..8]的引脚设置来确定启动设备,将选定设备的头192Kbyte内容,也就是FSBL,复制到OCM中,并将控制权交给FSBL。

FSBL启动时可以使用整块256Kb的OCM,当FSBL开始运行后,器件就正式由由用户控制了。

FSBL负责:
1.根据Vivado中的配置,完成PS端的初始化。
2.使用比特流文件对PL进行配置
3.加载第二阶段引导程序(SSBL)或者裸跑程序(直接在ARM上运行无操作系统程序)到内存空间。
4.跳转执行SSBL或者裸跑程序。

关于PS配置:

Ps7_init.c和ps7_init.h,用于初始化CLK,DDR和MIO。Ps7_init.tcl完成的初始化和ps7_init.c代码完成的初始化是相同的。

由于不是通过JTAG运行,所以没有运行p7_init.tcl,直接在裸机程序开始处调用ps7_init()。

Xilinx为我们写好了一个FSBL程序,没有特殊要求可以直接使用。

制作BOOT.bin文件:

1.Vivado那边完成之后,打开sdk,新建应用工程

pIYBAF9uIKaAdx1wAADGozyY4Qs211.png

工程名设为FSBL

o4YBAF9uIKiADENnAADMsFPgnt8903.png

点击next选择自带的FSBL程序,右边是FSBL功能介绍

o4YBAF9uIKmAe8ySAADZu2iCmgE127.png

点击Finish会自动编译,在Debug目录下可以找到FSBL.elf文件

pIYBAF9uIKyADZ1hAAE2SYyjFIw788.png

2.点击Xilinx Tools ->Create zynq Boot Image

o4YBAF9uIK2AB7jAAAD929w1Vh8238.png

一般 该添加的文件它都会帮你添加好。

需要添加的文件如下:

pIYBAF9uIK-ALq2VAAE498FnVHE962.png

在FSBL文件夹下新建一个bootImage文件,点击Browse,将输出指向这里

o4YBAF9uILGAIqkdAACkrNxbqxI526.png

点击add,先添加FSBL.elf文件,作为bootloader

pIYBAF9uILOAUOPYAAE2SYyjFIw383.png

再添加hw_platform下的.bit文件,这是PL部分的

pIYBAF9uILWAVEYHAADiWN5Gin0371.png

最后添加裸机程序.elf文件

o4YBAF9uILaAIcW8AAC-_6gMLDg413.png

都添加完如下图:

pIYBAF9uILmANneYAAFQv_mGmUg870.png

以上三个文件的添加顺序不可变,点击Create Image,就可以生成BOOT.bin文件了,默认的输出路径在bootImage下。

o4YBAF9uILqAd32IAABt6Pu_IKo047.png

SD卡启动

1.将生成的BOOT.bin文件拷贝到SD卡中,2.启动模式设置为SD卡启动,上电,程序就可以运行了。

我这里的现象led闪烁,断电再上电,程序依然在,从SD卡加载的。

Flash启动

1.启动模式设置为QSPI启动,

2.开发板上电,

3.点击Xilinx tool-->Program Flash

pIYBAF9uILyABdnEAACaT7xwpkA434.png

4.点击Program

下载好后程序就固化了,断电后重启,程序从QSPI Flash加载。

如果你使用已经存在的bsp文件时出现这种情况:

o4YBAF9uIL2AD6WGAAD8g5ANhoQ884.png

右键那个bsp工程,点击Board Support Pacage Setting,勾选这两个库

pIYBAF9uIMCALPHPAAFdJ9zPHH0108.png

总结:

主流的下载方式就这三种,基本可以满足你的一切需要了。

编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FlaSh
    +关注

    关注

    10

    文章

    1715

    浏览量

    154704
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11216

    浏览量

    222933
  • JTAG
    +关注

    关注

    6

    文章

    411

    浏览量

    74610
  • Zynq
    +关注

    关注

    10

    文章

    625

    浏览量

    49239
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    伺服电机的三种制动方式有什么区别?

    伺服电机作为自动化控制系统中执行元件的核心部件,其制动性能直接影响设备的定位精度和安全可靠性。目前主流的伺服电机制动方式包括动态制动、再生制动和电磁机械制动三种,它们在制动原理、应用场景及技术特点上
    的头像 发表于 09-19 18:26 1133次阅读
    伺服电机的<b class='flag-5'>三种</b>制动<b class='flag-5'>方式</b>有什么区别?

    PZSDR 软件无线电 开发板系列板卡之P201Pro P203Pro 硬件说明—AD9361 AD9363

    /TypeC/DC-007B)、1GB DDR3L内存、256Mb QSPI Flash,集成千兆以太网、USB2.0、SD卡等接口,支持JTAG/QSPI/SD
    的头像 发表于 08-27 10:18 921次阅读
    PZSDR 软件无线电 开发板系列板卡之P201Pro P203Pro 硬件说明—AD9361 AD9363

    CS创世SD NAND在北京君正平台和瑞芯微RK平台的应用

    介绍、对SD NAND进行读写操作的方式SD的驱动框架介绍以及SD NAND启动,前
    发表于 08-22 17:01

    ZYNQ UltraScalePlus RFSOC QSPI Flash固化常见问题说明

    璞致 ZYNQ UltraScalePlus RFSOC QSPI Flash 固化常见问题说明
    发表于 08-08 15:49 0次下载

    SD卡—雷龙 SD NAND

    一、SD卡介绍 1.基本介绍 本质:nand flash + 控制芯片 1.SD卡 ,Secure Digital Card,称为安全数字卡(安全数码卡)。
    的头像 发表于 07-21 17:59 3234次阅读
    <b class='flag-5'>SD</b>卡—雷龙 <b class='flag-5'>SD</b> NAND

    MEMS中的三种测温方式

    在集成MEMS芯片的环境温度测量领域,热阻、热电堆和PN结原理是三种主流技术。热阻是利用热敏电阻,如金属铂或注入硅的温度电阻系数恒定,即电阻随温度线性变化的特性测温,电阻变化直接对应绝对温度,需恒流源供电。
    的头像 发表于 07-16 13:58 1303次阅读
    MEMS中的<b class='flag-5'>三种</b>测温<b class='flag-5'>方式</b>

    1553B总线常见三种组网方式

    1553B总线作为航空电子系统中的关键通信协议,其组网方式直接影响系统的可靠性和实时性。本文将深入解析1553B总线的三种典型组网结构:单总线结构、双冗余总线和多总线分层架构,并结合实际应用场景分析
    的头像 发表于 06-21 17:39 1314次阅读
    1553B总线常见<b class='flag-5'>三种</b>组网<b class='flag-5'>方式</b>

    开关电源三种控制模式:PWM/PFM/PSM

    摘要 本文详细介绍了开关电源的三种主要调制方式:PWM(脉冲宽度调制)、PFM(脉冲频率调制)和PSM(脉冲跨周期调制)。PWM通过调整脉冲宽度保持恒定频率,适用于重负载,但轻负载效率低。PFM则在
    发表于 06-09 16:11

    信号隔离器三种供电方式的区别

    信号隔离器是一重要的信号隔离装置,其供电方式主要有独立供电、回路供电和输出回路供电三种。以下是这三种供电方式的详细区别: 一、独立供电 1
    的头像 发表于 04-17 16:23 1074次阅读
    信号隔离器<b class='flag-5'>三种</b>供电<b class='flag-5'>方式</b>的区别

    redis三种集群方案详解

    在Redis中提供的集群方案总共有三种(一般一个redis节点不超过10G内存)。
    的头像 发表于 03-31 10:46 1272次阅读
    redis<b class='flag-5'>三种</b>集群方案详解

    从零开始驯服Linux(一):ZYNQ-Linux启动文件构建全解析

    启动卡,SD启动卡的制作方法,可以参考《领航者ZYNQ之嵌入式Linux开发指南》第六章Petalinux设计流程实战中的制作SD
    发表于 03-20 16:48

    FOC中的三种电流采样方式,你真的会选择吗?(可下载)

    的基础,用一句话来形容就是“基础不对,努力白费”,由此可见电流采样在整 个 FOC 算法中的作用电流采样的方式一般分为电阻、双电阻、单电阻,这三种采样方式都有其
    发表于 03-12 15:04 3次下载

    三种太赫兹波的产生方式

    本文简单介绍了三种太赫兹波的产生方式。 太赫兹波(THz)是一电磁波,在电磁波谱上位于红外与微波之间。太赫兹光子能量在1-10 meV范围之间,在光谱分析、医疗成像、移动通信方面都有非常广阔
    的头像 发表于 02-17 09:09 3497次阅读
    <b class='flag-5'>三种</b>太赫兹波的产生<b class='flag-5'>方式</b>

    示波器的三种触发模式

    示波器的触发方式不仅影响波形捕捉的时机,还决定了显示的波形是否稳定。 常见的触发模式有三种: 单次触发 (Single)、 正常触发 (Normal)和 自动触发 (Auto)。下面将对这三种触发
    的头像 发表于 01-07 11:04 1.3w次阅读
    示波器的<b class='flag-5'>三种</b>触发模式

    飞凌嵌入式-ELFBOARD-硬件知识分享ELF 2启动方式

    1.4.1 复位及其他按键 RESET_L为核心板复位信号输入,为方便调试,连接到按键上。 图1.7 复位按键原理图 1.4.2 Boot配置 RK3588支持多种启动引导方式,在芯片复位结束后
    发表于 12-30 15:54