ZedBoard的启动流程(以运行linux操作系统为例)

Zedboard的启动流程 前言 Zedboard开发模式 启动流程前言最近由于项目需要,接触了比较多Zedboard,也查阅了许多相关资料,准备记录下来。欢迎大家一起提问讨论。Zedboard开发模式1.纯PL:同一般传统的Xilinx FPGA开发流程一致。 2.纯PS:同传统的ARM开发一样。 3.PS + PL(裸跑):在ARM核上裸跑程序(包括ARM对于FPGA的访问)。 4.PS + PL(操作系统):配置操 阅读详情

 ZedBoard启动需要的文件:

1、BOOT.bin (由fsbl.elf、system.bit、u-boot.elf 组成)

2、devicetree.dtb

3、uImage

4、uramdisk.image.gz 

ZedBoard的启动流程通常可以分为三个步骤:

阶段0:在器件上电运行后,处理器会自动执行片内BootROM中的代码,BootROM中的代码是固化的,不可修改。BootROM中的代码将对zynq的NAND、NOR、SD等基本外设控制器进行初始化,使ARM核可以访问使用这些外设。而DDR等其他外设将在阶段1之后进行初始化。同时BootROM的代码还负责将阶段1的启动镜像(fsbl镜像)加载到OCM(zynq片上一个256K的RAM,但在fsbl运行前只能使用其中的192K,所以fsbl要小于192K),然后运行fsbl。

        至于从哪个外部存储器中加载fsbl镜像,要看ZedBoard上MIO[5:3]引脚选择哪种启动方式。一般是选择从SD卡启动(这就是为什么BootROM要先对SD卡等基本外设控制器进行初始化的原因)。

阶段1:该阶段运行的是fsbl代码。完成的主要工作是

  1. 根据XPS中的配置,完成PS端的初始化(这一部分应该包括对DDR外设控制器的初始化)
  2. 使用比特流文件(Bitstream)对PL进行配置(如果不使用PL,就不需要这一步)
  3. 加载阶段2的代码(ssbl)到内存空间(DDR上),并运行ssbl代码

注:fsbl的代码可以直接使用xilinx的SDK软件自动生成(也可根据需要进行修改),步骤很简单。

阶段2:该阶段运行的是ssbl(u-boot.elf),ssbl会完成Linux内核启动之前所必需的硬件初始化,例如串口、USB设备等。并设置好启动参数,然后将Linux内核、设备树镜像从SD卡加载到内存中。之后将控制权交给内核。

        当Linux内核拥有系统的控制权后,就会先进行初始化,建立内核的运行环境,如进行虚拟地址到物理地址的映射。还有一个主要的工作是通过设备树传递的信息,来初始化和挂载驱动设备。Linux内核将根据ssbl传递过来的参数信息,选择挂载文件系统的格式和挂载点。然后Linux内核运行init()函数,这是内核引导的终点,也是系统所有进程的起点。

 

Zedboard资料 Getting Started with Embedded Linux – ZedBoard 下载地址 https://reference.digilentinc.com/_media/zedboard_gswel_guide.pdf Overview 介绍如何在Zedboard上从SD卡启动linux 四个要素: 文件系统 linux内核镜像 BOOT.BIN文件 编译后的设备树 Forma... 阅读详情

相关推荐

Zedboard开发板的linux搭建

zedboard开发板的linux环境搭建

tangjing_1的博客 1627

zedboard linux 系统所需的文件

(1) uImage、zImage 为U-BOOT的镜像的文件,就是linux 的内核      uImage是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核 的版本、加载位置、生成时间、大小等信息;其 0x40 之后与zImage没区别。   (2)  devicetree.dtb 为设备树,是一个描述硬件的数据结构,描述了板级的cpu

yanhe156的博客 639

【零 zedboard】从SD卡中启动

测试zedboard记录 文章目录一、准备工作二、使用步骤## 1.引入库2.读入数据总结 一、准备工作 连接好电源、串口线、插入sd卡。开始时的接线。在电脑中查看对应的串口号,我的时com8 ![请添加图片描述](https://img-blog.csdnimg.cn/da947c44b6d049f6b131560924b80d85.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAeHpzNTI

xzs520xzs的博客 1782

ZedBoard教程PS篇(2):debug调试和qspi下载以及启动

开发板环境:vivado2017.4开发板:Zedboard 芯片型号:xc7z020clg484-1本章节主要使用上个hello_world工程,在SDK中演示debug在线调试和qspi下载以及启动打开SDK 开发板打到jtag启动模式,并且连接USB-JTAG和串口UART,这里演示debug在线调试 右击hello_world-->Debug As -->Debug Configurations 双击GDB双击GDB后会自动添加hello_world Debug 在下拉对话框中选择Reset Ent

weiwei_fpga的博客 1567

zedboard-嵌入式Linux系统移植

1.在构建好嵌入式开发环境的基础上进行下一步开发移植工作。2.编译U-Boot 首先在线获取U-Boot源码,在源码include/configs/zynq_zed.h中,修改IP地址(CONFIG_IPADDR)、网关地址(CONFIG_SERVERIP)、MAC地址(CONFIG_EXTRA_ENV_SETTINGS-ethaddr)等宏定义参数,避免设备间通信冲突。修改完成后,使用交叉编译工

Allforyouz的博客 1516

Zedboard学习笔记之(一)demo演示

本文部分内容和图片参考了如下链接: http://blog.youkuaiyun.com/xiaoyangger/article/details/7970142 如若侵权,立刻删除一.usb转UART驱动安装Zedboard上板载有一个USB转UART串口,采用了Cypress公司的USB-UART控制器CY7C64225驱动程序以及文档下载:http://pan.baidu.com/s/1c0Ap7wO安

Zeus的专栏 5668

zedboard启动设置

硬件设置:J20连接12V电源线,J14是USB-UART接口,JP7-JP11(MIO2-MIO6)为板卡启动模式设置,zedboard可以分别设置成从NOR,NAND,Quad-SPI,SD Card,JTAG启动,具体设置如下图所示:

OpenFPGA的博客 2939

zedboard上可运行的linux

zedboard上自己编译生成的BOOT.bin uImage devicetree 以及下载的文件系统,可以直接放在分好区的SD卡上使用

ZYNQ-ZedBoard设置Quad-SPI启动和SD驱动

Zedboard是第一款面向开源社区的Zynq-7000系列开发板,而Zynq-7000系列FPGA,也称为完全可编程(All Programable)SoC,是Xilinx一个有重大意义的产品系列。 在FPGA里集成高性能的处理器内核一直是众多FPGA厂商以及客户的需求,Zynq-7000的面世标志着Xilinx在SoC集成度上的一个突破,实现了双核Cortex-A9 MPcore和最新的...

Vuko_Coding Zone 1824

zedboard程序从QSPI Flash启动

之前程序一直工作在JTAG调试模式,裸机程序没有下载到SD卡或QSPI FLASH,今天花时间稍微研究下如何下载,并从SD卡以及QSPI启动。

Zynq启动、AMP加载、uCos、Linux等基本介绍

文档共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

zedboard运行linux,Zedboard使用II——在Zedboard上运行Linux

8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?Xillinux是一个支持在Zedboard、ZyBo、SocKit板子上运行的包括软件和FPGA代码的图形化桌面Linux发行版。Xillinux也支持没有图形化界面的MicroZed板子。官网为 http://www.xillybus.com/xillinux 。使用的教程来自http://www.xillybus....

weixin_39573535的博客 202

Java 多线程(1)---- 初识线程

前言 多线程想必大家都不会陌生。因为在日常使用和开发中,多线程的使用实在是太常见了。我们都知道,发明多线程的目的是为了更好的利用计算机的 CPU 资源。比如在一个进程中如果只有一个线程(也叫主线程),那么如果当这个线程因为某种原因阻塞(等待用户输入数据等情况)的时候,那么相对应的这个进程也让出了 CPU 资源并暂停执行了。试想一下,如果我们在一个进程中添加多个线程,那么当这个进程中某个线程阻塞的...

指点 1544

ZedBoard Linux开发 --- TFTP&NFS启动

这部分的内容针对大部分运行Linux的嵌入式系统来说都是通用的。关于在PC端设置TFTP和NFS服务器的内容,请参考下面这篇博客: http://blog.163.com/thinki_cao/blog/static/83944875201411610467306 TFTP启动:         ZedBoard上首先从SD卡加载BOOT.bin之后即完成FSBL初始化,然后跳转

pugu12的专栏 1069

【100%通过率】2023华为od机试C卷【电脑病毒感染】Java&Go 实现

一个局域网内有很多台电脑,分别标注为 0 ~ N-1 的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用t 表示。其中网络内一台电脑被病毒感染,求其感染网络内所有的电脑最少需要多长时间。如果最后有电脑不会感染,则返回-1.

MISAYAONE的博客 2861

基于Gossip算法的柔性互联自治微网群分布式协调控制策略:复现代码与详细解释

摘要(149字): 本文基于Gossip算法实现了柔性互联微网群(MMG)的分布式协调控制策略仿真。研究构建了包含3个微网、10个分布式电源(DG)的MATLAB/Simulink模型,采用双层控制架构:上层通过柔性交流开关(FAS)实现微网间功率协调,下层利用Gossip算法完成DG间的边际成本一致性控制。重点开发了异步通信的Gossip算法核心函数,实现了分布式电源的自主边际成本估计与功率分配。仿真验证了系统在负荷变化和DG故障等工况下的协调控制能力,结果表明该策略能有效维持微网群的经济运行与功率平衡。

huanghm88的专栏 281

ZYNQ-ZedBoard 上运行桌面 LINUX

摘自李工出的zedboard教程 学习内容 本课程通过格式化 SD 盘分 2 个区,1 个区是 FAT32 保存 uboot 和 linux 的内核镜像,另一个 ext3 分区保存的是 linux 桌面文件系统。 实现步骤 Step1 格式化 SD 盘并分区 1. 使用 DiskGenius 将 SD 盘分为两个 FAT32 区 右击 sd 盘,选择快速格式化,如图所示:...

Vuko_Coding Zone 1953

成功解决安装cuda的时候,下载的文件自动消失,并且出现An unknown error has occurred

成功解决安装cuda的时候,下载的文件自动消失,并且出现An unknown error has occurred. 目录 解决问题 解决思路 解决方法 解决问题 安装cuda的时候,下载的文件自动消失,并且出现An unknown error has occurred. 解决思路 发生未知错误。 解决方法 很可能是因为当前电脑下载的cuda版本不适合当前电脑GPU支持的cuda版本! 推荐文章:CV:Win1..

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 7524

赛灵思运行linux,玩转赛灵思Zedboard开发板(6):如何在Zedboard上运行linux下的应用程序?...

描述电子发烧友网讯:ZedBoard开发板上的Zynq是一个ARM PS(processing system, 双核A9 + 存储管理 + 外设)+ PL(programable Logic) 结构,如果不使用PL,zynq的开发和普通的ARM 开发一样。不同的是ARM PS是可配置,因而硬件信息是不固定的。这也是zynq灵活性的一个表现。电子发烧友网编辑现为读者整合《玩转赛灵思Zedboard开...

weixin_34792272的博客 1089

HTML蓝色动态爱心(完整代码)

HTML语言实现蓝色动态爱心的完整代码。

AIGC 8万+

UWB芯片DW3000之PDOA测向实现源码

本文详细介绍如何基于UWB芯片DW3000之PDOA测向的源码实现。

DT程序员的博客 2615

zedboard系列-2、原装SD卡程序测试

接通Zedboard电源,程序启动,因为是一个非常简单程序,所以启动配置过程非常快,蓝色LED(LD12)变亮说明Zynq芯片配置完成,程序执行后按照(10101010)逻辑点亮用户LED。 上图看到跳线J6必须短接,MODE跳线选择SD启动。 用putty来监视串口,串口参数设为波特率115200、数据位8、停止位1、校验无。 准备好以后,可以接通电源,从SD卡

星光熠熠 4817

打造AI智能体员工,我用扣子复刻了华与华、奥美和金枪大叔

这事说穿了,就是你用多个AI智能体,分别扮演专业角色,构成一支能力互补、各司其职的“数字团队”。每个智能体,都有明确的角色设定、任务边界和接口形式。它不再是一个泛泛的ChatGPT,而是你手下的“品牌顾问”、“策略专家”、“文案大神”、“短视频导演”、“运营总监”。简单来说,你不再是雇一个人,而是养一群机器人打工——24小时不摸鱼,不请假,不离职。如果你是个人创业者、内容创作者、培训机构、中小企业主,其实都可以尝试构建属于你自己的“AI虚拟员工矩阵”。

互联网架构师笔记 1498
上一篇: 编译ZedBoard的u-boot.elf(ssbl)
下一篇: 编译ZedBoard的linux镜像(uImage)
EmSoftEn
博客等级 码龄12年 40粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值