ZYNQ启动流程详解:FPGA与ARM结合的引导机制
需积分: 50 112 浏览量
更新于2024-09-09
2
收藏 736KB PDF 举报
本文档深入解析了Xilinx Zynq 7000平台的启动过程,特别是针对嵌入式项目的实际应用。Zynq 7000是一个结合了FPGA和A9双核处理器的可扩展处理平台,其独特的启动流程不同于传统的FPGA,而是借鉴了ARM处理器的模式。
在Zynq 7000上电后,首先执行的是内置的BootROM,它负责进行Stage 0 Boot,即执行片内的固件。BootROM的主要任务是初始化处理器和一些关键外设,以便后续加载First Stage Bootloader (FSBL)。选择启动设备是通过特定的MIO引脚实现的,不同设备对应不同的地址范围,BootROM会根据这些引脚的状态确定从哪个设备加载FSBL。
FSBL作为启动流程的关键环节,拥有更大的内存访问权限,它可以利用OCM的256KB空间。Xilinx提供了标准的FSBL代码,通常情况下可以直接使用,但开发者可以根据需求对其进行定制。FSBL的主要职责包括:
1. 继续使用Xilinx Platform Services (XPS)的代码,对片上系统(PS)进行更全面的初始化,包括设置DDR控制器、PLL、时钟和MIO等。
2. 将设计的位流(bitstream)写入片内FPGA,这是配置FPGA的过程,可以稍后进行,但一般在启动早期完成。
3. 将后续的启动引导程序,如Second Stage Bootloader (SSBL,如U-Boot) 或者裸机程序,复制到内存中,确保系统进入下一阶段的准备。
4. 最后,FSBL会将控制权转交给SSBL,让其接管系统的进一步运行。
FSBL文件本身是专为Zynq 7000设计的一种低级引导程序,它负责基础硬件配置和必要的软件加载,为后续的系统启动奠定了坚实的基础。对于开发人员来说,理解和掌握这个启动过程至关重要,因为它直接影响到系统的可靠性和性能。
2018-08-27 上传
2019-07-16 上传
175 浏览量
2022-09-24 上传
2024-06-01 上传
2018-11-26 上传
2019-12-01 上传
2019-11-24 上传
jiaqian2756
- 粉丝: 12
- 资源: 11
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析