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

车底盘:阿克曼转向和四轮差速

特性四轮差速四轮转向阿克曼转向转向方式控制左右轮组速度差控制四个轮子的角度控制前轮角度(后轮固定)运动原理滑移摩擦(搓着走)纯滚动(滚着走)近乎纯滚动(低速时)能耗高低(实现纯滚动时)中轮胎磨损非常严重小中灵活性高(可原地旋转)极高(可全向移动)低(转弯半径大)控制精度较低(受地面摩擦影响大)极高高机械复杂度低(通常只需2个驱动电机)极高(需4个转向+4个驱动执行器)中(需1个转向+2个驱动执行器)典型应用坦克、履带车辆、简单AGV、扫地机器人豪华轿车、高性能全向AGV。

bing_feilong的博客 1925

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

果蔬及菜品识别系统

果蔬及菜品识别系统

我的博客 2117

手把手教你用LangChain4j打造一个“会追问”的AI客服:以航空货运下单为例

本文详细介绍了如何使用LangChain4j构建一个能够主动追问的航空货运AI客服系统。通过对话状态管理、信息缺口识别和渐进式引导等核心技术,实现高效的多轮对话交互。文章包含从交互设计到代码实现的完整指南,特别强调了提示词(Prompt)在优化AI行为中的关键作用,帮助开发者打造更智能的客服解决方案。

weixin_28731223的博客 154

ZYNQ-ZedBoard 上运行桌面 LINUX

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

Vuko_Coding Zone 1953

DNA图谱分析:自动分析DNA图谱中的变异YOLOv5、YOLOv8、YOLOv10

YOLO(You Only Look Once)是一种基于卷积神经网络(CNN)的目标检测模型,因其高效的检测速度和优异的精度而广泛应用于计算机视觉任务。一次性检测:与传统的目标检测方法不同,YOLO通过回归方法同时预测多个边界框和类别信息,从而实现高效的目标检测。高精度与高速度:YOLO在检测精度和速度之间找到了平衡,适用于实时目标检测任务。

YOLO 730

赛灵思运行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

RT-DETR改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进

1️⃣本专栏已更新260多种不同的改进方法,所使用并改进的每一个模块均包含详细的模块分析、原理讲解、个人总结、多种改进方式以及完整的修改流程,所有改进100%可直接运行。2️⃣所有改进点均为近三年顶会,顶刊提出的先进算法,将其融入到中,紧跟学术热点,适应不同的任务场景。3️⃣团队内发表数篇SCI论文,熟悉完整的发表流程,订阅专栏即可进群享受模型训练、模型改进、论文写作、投稿选刊,从入门到论文的各种答疑内容。4️⃣专栏内容会持续更新,最近更新时间:2024-12-4。项目介绍在大家购买专栏后,加入学习

Limiiiing的博客 2万+

把 SAP Query 用到极致:ABAP Query 的核心概念、配置流程、权限与运输治理全解析

摘要:SAP Query 是一款面向业务用户的自助报表工具,可解决标准报表无法满足业务需求的问题。其核心由四大组件构成:Queries(报表定义)、InfoSets(数据视图)、User Groups(权限分组)和Translation(多语言支持)。通过SQ03、SQ02、SQ01事务码分步创建用户组、数据视图和查询,业务用户无需ABAP知识即可生成Basic List(明细)、Statistics(统计)和Ranked List(排名)三种报表形式。典型案例展示了如何为采购部门设计包含明细追溯和Top1

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 179

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

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

星光熠熠 4817

AutoCAD中圆弧折线化方法与实现

在AutoCAD中,圆弧折线化是将圆弧曲线转换为由一系列线段组成的折线曲线的过程。本文将介绍如何使用LISP编写代码来实现圆弧折线化,并提供相应的源代码。上述示例代码将生成一个以坐标原点为圆心、起点为(5.0, 0.0, 0.0)、终点为(0.0, 5.0, 0.0)、半径为5.0、角度为90度的圆弧的折线表示。通过使用上述的LISP代码,你可以在AutoCAD中实现将圆弧转换为折线的功能。你可以根据需要修改代码中的参数来适应不同的圆弧转换需求。函数,并传入圆弧的起点、终点、圆心、半径和角度参数。

VcuOcaml的博客 1417
上一篇: 编译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、付费专栏及课程。

余额充值