zynq学习之启动与配置

一、Zynq的启动过程简介

1、zynq有两种启动模式:

从BootROM主动启动,从JTAG被动启动

(1)从JTAG被动启动:通过 JTAG 先下载 bit 流文件,再下载 elf 文件,之后点击Run As 来运行的程序。JTAG 的方法是通过 TCL 脚本来初始化 PS,然后用 JTAG 收发信息,可用于在线调试。但是这样只要一断电,程序就丢失了。还得全部重新来过。

(2)从BootROM主动启动:通过制作镜像文件,将镜像文件拷贝到 SD 卡,然后将拨码开关拨到 SD 启动,那么每次断电之后程序都会自动从 SD 启动,程序就别固化,而不会掉电丢失了。

固化的流程


2、从sd卡启动的过程

和大多数 arm 启动过程一样,这个启动过程也分为 3 个阶段,这三个阶段分别称之为阶段 0、阶段 1 和阶段 2。
(1)阶段 0:即传统的 BootROM 过程,zynq 芯片里有个 rom 里面固化了一段不可修改的程序,只有 zynq 一上电,这段程序就会执行,它将对 zynq 的 NAND、NOR、SD 等基本外设控制器进行初始化。把 SD 卡这类易失的存储器件初始化好了之后,就会把其中的程序拷贝到 zynq 的 OCM(On-chip memory),那么这个被拷贝到片上 RAM 执行的程序就是我们要制作的文件——BOOT.bin。
(2)阶段 1:BOOT.bin 加载到 OCM 上就开始执行了,之前说过 BOOT.bin 其实就是由FSBL.elf+该工程.bit+该工程.elf 构成。而阶段 1 要做的就是:首先配置 PS 部分,PS完成初始化后,会去配置 PL 部分,最后还可以去加载阶段 2 的代码。
(3)阶段 2:这一阶段是可选的,主要是为了完成 Linux 系统启动过程。如果是裸奔,就不需要。 当CPU上电时,操作系统并不在内存中,需要一个叫bootloader的程序初始化CPU,也就是Zynq平台的SSBL(第二阶段引导程序)。对于运行在zynq平台的linux系统而言,U-Boot就是SSBL。

3、BOOT.bin制作过程

先制作FSBL.elf文件

(1)新建一个工程,打开SDK软件

(2)新建一个应用工程

File-Applicatioan Project

(3)填写工程名-next

(4)new project 中工程类型选择Zynq FSBL-Finish

(5)按下ctrl B编译工程,得到FSBL.elf(在工程目录的Debug文件夹下)

(6)将FSBL.elf和工程.elf和工程.bit文件考到一个文件下备用

制作BOOT.bin文件

(7)单击 SDK 的工具栏处的 Xilinx Tool->Creat Zynq Boot Image

(8)依次添加 FBLS.elf,工程.bit,以及 工程.elf,请务必按顺序添加。

(9)三个文件添加完毕之后,点击 Creat Image 生成 BOOT.bin,BOOT.bin是zynq的启动程序。

二、linux启动过程

1、从软件层面共有4个部分:

(1)引导程序:引导程序就是U-Boot,FSBL把U-Boot引导到内存中。U-Boot将为linux内核初始化内存和必要的外设,设置好启动参数。由于zynq平台采用设备树来传递驱动部分的参数,所以U-Boot还将拷贝设备树到内存当中。而后U-Boot将控制权交给linux内核。

U-Boot是XILINX厂家已经为zedboard用户移植好,用户可直接从官网下载。

下载后U-Boot压缩文件在Ubuntu下解压,执行配置和编译两条指令后,可生成u-boot文件,将其改名为u-boot.elf

(2)linux内核

内核是一个操作系统的核心,他负责管理系统的任务调度、内存分配、进度管理、设备驱动程序、文件系统和网络系统等,决定系统的性能和稳定性。

内核拥有控制权之后,将进行初始化,建立起内核的运行环境,内核在完成虚拟地址到物理地址的映射后,再驱动设备的初始化与挂载。

(3)文件系统

文件系统对一个存储设备上的数据和元数据进行组织的机制,文件系统包括文件中的数据还有文件系统的结构。

(4)应用程序

应用程序存放在文件系统中。

  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
文档共60页。主要向初学者提供了Zynq开发的技术方向,针对不同应用给出了基本的参考文档;同时对Zynq双核AMP加载方式做了详细描述,对Zynq的fsbl启动流程做了简单介绍。章节如下: Zynq User Guide 1 介绍 4 2 快速上手指南 4 3 多核开发教程 4 3.1 AMP开发说明 6 3.1.1 快速生成amp工程 6 3.1.2 Generating Boot File 8 3.1.3 烧写程序 9 3.1.4 启动 10 3.1.5 调试 10 3.1.6 总结 11 3.2 SMP开发说明 11 4 ZC706启动代码分析 11 4.1 启动代码 12 4.2 FSBL流程(FOR AMP) 13 4.3 CPU0启动CPU1流程 14 5 程序在线烧写方案及流程 14 5.1 程序烧写需求 14 5.2 提出该需求的原因 14 5.3 程序烧写方案 14 5.3.1 BOOT.BIN组成 14 5.3.2 BOOT.BIN生成方法 15 5.4 FSBL.BIN和APP.BIN等的生成 15 5.5 制作*BIN及烧写的具体步骤 15 5.5.1 制作*bin流程 15 5.5.2 BOOT.bin制作过程 15 5.5.3 FSBL.bin和APP.bin等的生成过程 22 5.6 烧写BOOT.BIN步骤 26 5.6.1 通过SDK工具烧写步骤 26 5.6.2 通过上位机烧写软件的烧写步骤 29 5.6.3 通过串口调试助手烧写步骤 29 6 Zynq Qspi控制器 30 6.1 基本特性 30 6.2 I/O接口 31 6.3 QSPI控制器模式 33 6.3.1 I/O模式 33 6.3.2 线性地址(linear address)模式 33 6.3.3 传统(legacy)SPI模式 34 6.4 QSPI 例程 34 6.5 QSPI控制器支持访问32MB方法 35 6.5.1 Bank地址寄存器(Bank address register) 35 6.5.2 扩展地址模式(Extended address mode) 35 6.5.3 使用新写命令(New commands) 35 6.6 QSPI FLASH选择 35 6.7 作为BOOT器件考虑 35 7 µC/OS系统启动指南 36 7.1 INTRODUCTION 36 7.1.1 Software Requirements 36 7.1.2 Hardware Requirements 36 7.2 HARDWARE DESIGN 37 7.2.1 Step 1. Invoke the Vivado IDE and Create a project 37 7.2.2 Step 2. Create an IP Integrator Design 39 7.2.3 Step 3. Add and setup the Zynq processor system IP block 39 7.2.4 Step 4. Customize the Zynq block for our design 41 7.2.5 Step 5. Add the soft peripherals 45 7.2.6 Step 6. Generate HDL Design Files 47 7.2.7 Step 7. Synthesis, Implement and Generate Bitstream 48 7.3 SOFTWARE DESIGN 49 7.3.1 Step 1. Installation of the µC/OS Repository 49 7.3.2 Step 2. Generate the µC/OS BSP 50 7.3.3 Step 3. Build and Debug the Demonstration Project 54 7.3.4 Step 4. Program the AXI Timer 0 with the ucos_axitimer Driver 55 7.3.5 Step 5. Program the AXI Timer 1 with the Xilinx tmrctr Driver 58 7.4 CONCLUSION 59 8 Linux系统启动指南 59

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值