zynq 程序固化和启动

我们前面的例程都是在 SDK 开发环境中用 JTAG 直接下载程序运行,如果开发板断电,程序就会丢失,如何让程序能够在开发板断电后再上电能重新启动,这就需要用到应用程序的固化。 ZYNQ7000 SOC 芯片可以从 FLASH 启动,也可以从 SD 卡里启动, 本文给大家介绍程序的 FLASH 和/或者 SD 卡启动的方法。

前面我们也介绍过, Zynq7000 SOC 芯片上电后,运行的是 ARM 系统(PS)。然后再通过 ARM 系统软件部分加载 FPGA 的比特流文件.bit 至 FPGA(PL),启动 FPGA 的逻辑功能。 下面给大家介绍一下 ZYNQ 系统的启动流程:

开发板启动流程

开发板的启动分两个阶段,第一阶段是 BOOT ROM,第二阶段是 FSBL (First Stage Bootloader)。经过两个阶段,应用程序开始运行。

 第一阶段 (BOOT ROM)

1). AX7010/AX7020 开发板上电后,Zynq7000 SOC 会首先执行片内 Boot ROM 代码, Boot ROM 代码读取 Boot mode 寄存器会决定是哪一种启动方式(SD card/QSPI Flash/JTAG)。

2). 确定好哪种启动方式后, Boot ROM 从相应的启动设备(SD Card/QSPI Flash)加载 First
Stage Bootloader (FSBL) 到 On Chip Memory(OCM) RAM,开始将执行权交付给 FSBL。

 第二阶段 FSBL (First Stage Bootloader)

FSBL 开始执行, 后面我们会介绍了如何利用 SDK 工具一步步生成 FSBL 代码和可执行文
件,结合代码可知 FSBL 主要做了如下工作:

1).初始化 CPU,初始化串口;

2). Processor System (PS) 一些控刢器的初始化,如 MIO, PLL, CLK and DDR;

3). 禁止 L1 Data Cache;

4). 注册 ARM 中断向量;

5). 通过 Boot mode 寄存器,判断是哪种启动方式
a). QSPI Flash 启动方式:
 初始化 QSPI Flash 控制器;
 从 Flash 拷贝 system.bit 到 FPGA (如果 Flash 中存有 system.bit);
 从 QSPI Flash 拷贝应用程序的代码到 DDR3;
 调转到应用程序执行;
b). SD Card 启动方式:
初始化 SD 控刢器;
从 SD Card 拷贝 system.bit 到 FPGA (如果 BOOT.BIN 中存有

  • 7
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值