Xilinx ZYNQ 7000学习笔记三(小结)

这篇具有很好参考价值的文章主要介绍了Xilinx ZYNQ 7000学习笔记三(小结)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 启动模式:

ZYNQ 7000的启动模式由外部引脚决定的,5个模式引脚MIO[6:2]用于配置NAND flash、并行NOR flash、Serial NOR (Quad-SPI)、SD flash以及JTAG 一共5种启动模式。具体而言就是复位时,zynq-7000 SOC对下述引脚进行连续3个时钟周期采样。复位采样MIO[6:2]并将采样的模式值保存到系统级控制寄存器SLCR内的BOOT_MODE寄存器内。(我们查看fsbl代码中确认当前的启动模式就是通过读取BOOT_MODE寄存器来确定不同的启动分支的)

2 关于nor flash 32M大小限制的说明:

zynq 7000的flash控制器可以配置为IO模式和线性模式,需要注意的是IO模式下才可以对flash进行读写擦操作。而线性模式下,flash相当于一个只读存储器,不能写和擦除。在IO模式下,软件负责对所有flash操作的管理;在线性模式下,控制器负责对所有必要的读数据管理。换句个人理解,系统默认的是线性模式,但是我们作为flash使用者,如果要擦写flash必须配置为IO模式,由我们自己写的驱动操作实际的flash。
注意:只有在线性模式下才有最大32M地址空间的限制,也就是说zynq 7000最大加载的fabl+bit+应用得到的boot.bin最大不能超过32M,地址映射空间就是32M。
而我们自己如果使用flash,由于使用的IO模式,实际的操作是由我们自己写的驱动管理的,和系统的内存映射没有什么关系,当然不受32M大小的限制。比如控制器可以直接连接一个128M或者两片的 norflash芯片,我们通过驱动操作flash任意地址空间(两片可以通过cs片选区分),毕竟实际操作的flash地址是我们驱动在控制和映射没关系。无非就是系统上电加载时(此时是线性模式,两片到底加载的使用的哪片flash有待研究)只能加载最大32M的底层软件而已。

3 启动流程

上电后在从0地址运行之前,bootRom会从nor flash(假设是nor flash启动模式)拷贝boot.bin的前n kB(小于等于192K)数据拷贝到OCM中,然后跳转到0地址OCM中开始运行。(OCM地址0000_0000 to 0003_FFFF)。随后专门写个分析boot.bin文件的内容,分析下boot.bin的数据格式

4 关于JTAG模式的说明

我们知道,ZYNQ7000支持5种启动设备,包括NAND flash、并行NOR flash、Serial NOR (Quad-SPI)、SD flash以及JTAG。我们需要知道在JTAG模式下,JTAG都是无法直接访问CPU的外设的,而是通过CPU让CPU访问外设,那么JTAG怎么知道CPU访问外设的指令呢,这是由SDK告诉的(不同芯片访问CPU的指令不同)。整个示意图如下:
SDK <-> JTAG<-> CPU <->外设

基于上面的理解,我们在回头看我们为什么需要在通过JLINK仿真器烧写boot.bin到flash时需要将FSBL代码中的读取BOOT_MODE_REG寄存器模式后改为JTAG_MODE模式,实际上我们看fsbl代码中的JTAG_MODE分支会发现并没有什么对flash的操作,那么我们烧写的操作是怎么完成的呢,正式jink通过jtag接口通知CPU访问的,并且这个时候我们也没有进行仿真模式,那么JTAG怎么知道具体什么指令呢,正是通读取SDK提供的指令表实现的。
Xilinx ZYNQ 7000学习笔记三(小结),学习,笔记
首先执行FSBl的elf文件执行结束后进入wfe模式,然后由JTAG接管来实现对flash的更新。我们会注意到,实际上代码的作用主要就是实现JTAG模式,让后控制权交给PC机而非CPU。如果我们能更改启动模式引脚的电平,那么实际上FSBL不用更改,只需要pin改为JTAG模式即可,fsbl 文件都不需要

5 FSBL代码可以用仿真器调试吗

fsbl代码正常是运行在OCM中的,我们看FSBL代码配置的ld文件也是OCM地址空间,所以仿真器会将elf直接加载到OCM空间,OCM和DDR都是我们应用可以访问的有效地址,当然可以直接仿真调试。文章来源地址https://www.toymoban.com/news/detail-697314.html

到了这里,关于Xilinx ZYNQ 7000学习笔记三(小结)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Xilinx Zynq-7000系列FPGA多路视频处理:图像缩放+视频拼接显示,提供工程源码和技术支持

    Xilinx Zynq-7000系列FPGA多路视频处理:图像缩放+视频拼接显示,提供工程源码和技术支持 没玩过图像缩放和视频拼接都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。本文使用Xilinx Zynq7000系列FPGA Zynq7020实现HLS图像缩放+视频拼接,输入视频源采用

    2024年02月04日
    浏览(66)
  • FPGA解码MIPI视频:Xilinx Zynq7000中端FPGA,基于MIPI CSI-2 RX Subsystem架构实现,提供工程源码和技术支持

    FPGA解码MIPI视频:Xilinx Zynq7000高端FPGA,基于MIPI CSI-2 RX Subsystem架构实现,提供工程源码和技术支持 FPGA图像采集领域目前协议最复杂、技术难度最高的应该就是MIPI协议了,MIPI解码难度之高,令无数英雄竞折腰,以至于Xilinx官方不得不推出专用的IP核供开发者使用,不然太高端

    2024年02月22日
    浏览(39)
  • Xilinx Zynq-7000系列XC7Z035/XC7Z045高性能SoC处理器评估板PS端ETH RJ45接口

    (数据手册见Datasheet目录) ZYNQ7035 PS端ETH RJ45接口 评估板XQ6657Z35-EVM ,ZYNQ XC7Z035/45的PS端 引出了1路千兆网口,其引脚定义如下图:

    2024年02月12日
    浏览(39)
  • zynq7000学习(1)——vivado环境下PL配置

    一、新建工程:       现开发板型号为xc7z100ffg900-2  选择芯片 (选择芯片7100的话,就输入xc7z100  后面的-1和-2是速度等级), 更改项目名为system 。 Create Block Design (创建模块化的设计)——设置设计名称为system。     这时会出现design窗口和source窗口、画布窗口,source中出

    2024年02月13日
    浏览(56)
  • zynq7000系列芯片介绍

    ZYNQ从架构上可以划分为两大模块,一个是PS(处理器系统),另一个是PL(可编程逻辑) PS由APU、内存接口、IO外设、互连线4大模块组成。 1、APU(Application Processor Unit)应用处理单元 即PS【可编程逻辑里面最最核心的东西】,它由两个双核心的Cortex-ARM A9、一些缓存和存储组成

    2024年02月06日
    浏览(54)
  • ZYNQ7000 SPI LCD与Petalinux

    ZYNQ内部集成两个ARM Cortex A9核心,Xilinx也推出了Petalinux工具,与Vidado搭配可以方便地完成Linux的uboot、kernel、rootfs部署。 开发板上集成了HDMI,但是需要在FPGA中实现逻辑,但是实现之后占用了7010快一半的资源,多少有点离谱,而且HDMI还是不方便,所以就用linux内核中的fbtft驱动

    2024年02月10日
    浏览(35)
  • ZYNQ7000 PL与PS交互(一): PL到PS中断的使用与实现

    翻译以xilinx用户手册ug585,知道ZYNQ7000有几类中断即可。 PS基于ARM架构,使用了两个Cortex-A9处理器和GIC PL390中断控制器。中断结构与CPU密切相关,并接收来自IO外设和可编程单元PL的中断请求。 本章主要信息: 私有、共享和软件中断。 GIC功能介绍 中断优先级和处理 1.1.1 Zynq 中

    2024年04月15日
    浏览(51)
  • Zynq-7000系列FPGA使用 Video Processing Subsystem 实现图像缩放,提供工程源码和技术支持

    Zynq-7000系列FPGA使用 Video Processing Subsystem 实现图像缩放,提供工程源码和技术支持 没玩过图像缩放都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。 目前市面上主流的FPGA图像缩放方案如下: 1:Xilinx的HLS方案,该方案简单,易于实现,但只能用

    2024年02月05日
    浏览(45)
  • xilinx zynq7系列加载器无法连接的原因&测试xilinx Zynq7开发板的加载器和芯片是否正常的快速方法

    1.硬件部分 首先将加载器与PC机和开发板的连接好 pc端直接插在usb接口上即可 1.1开发板侧,连接如下图 1.2连接Jtag 绿色写的是JTAG的标识,连接线有凹槽的方向朝内,红色圈出部分 这些加载线在买开发板的时候都是有附带的,如果没有的话,去某宝上买也很方便。 2.软件测试

    2024年02月12日
    浏览(40)
  • ZYNQ之路--搞清楚Xilinx开发软件之间的关系

            各位大佬晚上好,最近刚刚开始学习ZYNQ-7000系列的开发,很快就遇到了第一个困难:Xlinx的开发软件,实在是,太,多,了!我很疑惑什么 Vivado,VivadoHLS,Vitis,Vits AI,Vitis HLS,SDK,Petalinux等各种繁杂的软件之间的关系到底是如何的,以及我究竟该下那些软件呢?

    2024年02月13日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包