【ZYNQ】zynq启动模式及程序固化

一、前言

由于zynq含有arm cpu ,其启动模式由ps主导,与纯逻辑的fpga不相同,此处做一个记录。

二、zynq启动模式

关于zynq的启动模式详细内容可以参考官方文档:ug585-Zynq 7000 SoC Technical Reference Manual,第六章。

2.1 启动方式配置引脚

一般纯逻辑的fpga主要由bank0的mode0/1/2三个引脚来确定启动方式,zynq则由MIO2-8来确定,具体情况如下表:

2.2 zynq启动流程

  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 系统启动过程。

整个启动过程如下:

三、程序固化

程序固化的关键就是制作boot.bin文件,简单而言就是: BOOT.bin = FSBL.elf + 该工程.bit(vivado_pl) + 该工程.elf(sdk_ps)。在工程硬件和软件编译后,会产生该工程的 bit 文件和 elf 文件。 FSBL.elf可以用xilinx 的示例工程Zynq FSBL直接生成。凑齐三个文件后,则可以直接创建boot.bin文件。然后将bin文件放到sd卡或者下载到QSPI flash中,并将启动模式选择为对应的方式便可以将其固化。

详细的步骤中文资料可以参考正点原子的sdk开发文档的第7章程序固化内容,其有详细的指导。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zynq是一种基于Xilinx的可编程SoC(片上系统),它结合了一个双核ARM处理器和可编程逻辑(FPGA)的能力。固化程序到flash是指将FPGA程序(比特流文件)保存在外部闪存中,以便在系统上电时可以自动加载并执行。 Zynq芯片通常带有内置的非易失性存储器(如flash存储器),用于存储引导程序和其他重要的配置信息。在将程序固化到flash之前,首先需要生成比特流文件,该文件包含了FPGA逻辑的配置信息。可以使用Xilinx提供的开发套件(如Vivado)来生成比特流文件,该套件可以对FPGA逻辑进行综合、布局和路由,最终生成比特流文件。 一旦生成了比特流文件,就可以将其写入到Zynq芯片的flash存储器中。这通常需要使用专用的硬件工具,如JTAG调试器或外部编程器。通过这些工具,可以将比特流文件加载到Zynq芯片的闪存中,并设置相应的配置选项,以确保在系统上电时FPGA能够正确地加载和配置。 固化程序到flash的好处是可以在系统开机时自动加载FPGA程序,而无需通过外部设备进行手动配置。这提供了更加灵活和方便的方式来实现硬件功能定制和重配置。此外,固化程序到flash还可以节省时间,因为无需每次开机时都手动加载FPGA程序。 总的来说,将Zynq固化程序到flash存储器中是一种常用的做法,它提供了一种方便的方式来保存和自动加载FPGA程序,以满足不同应用需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值