Zedboard--zynq开发和启动

Zedboard--zynq开发和启动

懒兔子博客: http://blog.csdn.net/nightseas


Zynq开发,zynq的开发有四种方式,纯PL开发,纯PS开发(helloworld),PS+PL(无操作系统,跑裸跑程序),PS+PL(跑操作系统)。
1.纯PL开发,这个和一般的xilinx的FPGA没有很大的区别。
2.纯PS开发,典型的就是helloworld工程,这个看到了网友的有两种方式。注:这两个方式后面都有相应的实验。
一种是传统的arm的方式,这个可以参考懒兔子博客。
还一种就是xilinx方法,这个是生成一个elf文件,这个elf文件包括了硬件配置信息(xmp),和裸跑程序(c文件)。
3.PS+PL(不跑操作系统)开发,这个可以参考懒兔子博客二,三笔记,生成的elf文件包括了硬件配置信息(xmp),还有裸跑程序(c文件),另外还有一个.bit文件可以看出和纯PS开发的区别了。
4.PS+PL(跑操作系统)开发,这个就需要BOOT.BIN,设备树,linux内核镜像,文件系统了。
其中BOOT.BIN是由3部分组成的(boot.elf,.bit,.fsbl.elf),boot.elf这个是由交叉编译环境产生的,相当于ssbl吧,.bit文件是PL使用产生,fsbl.elf这个就是fsbl吧。



Zynq启动过程简介


1.在器件上电运行后,处理器自动开始Stage-0 Boot,也就是执行片内BootROM中的代码

2.BootROM会初始化CPU和一些外设,以便读取下一个启动阶段所需的程序代码,FSBL(First Stage Bootloader)。

不过这又有一个问题了----之前说到,Zynq支持多种启动设备,BootROM怎么知道从哪个启动设备里去加载FSBL?这就得靠几个特殊的MIO引脚来选择了:
BootROM会去读取MIO[2..8],从而确定启动设备,将选定设备的头192Kbyte内容,也就是FSBL,复制到OCM(On Chip Memory)中,并将控制器交给FSBL。
3.FSBL启动时可以使用整块256Kb的片内内存,当FSBL开始运行后,器件就正式由咱自己控制了。Xilinx提供了一份FSBL代码,如果没什么特殊要求,可以直接使用。


按照手册说明,FSBL应该完成以下几件事。
1). 使用XPS提供的代码,继续初始化PS

2). 将bitstream写入PL(配置FPGA),不过这一步也可以以后再做

3). 将接下来启动用的Second Stage Bootloader(SSBL,一般就是U-Boot一类的东西),或者裸奔程序,复制到内存中
4). 跳到SSBL运行去

4.接下来的步骤就没啥特别了,Uboot开始运行,初始化好Linux启动环境,然后开始运行Linux系统。 

注明:由于自己zedboard还没有开始玩,现在的理解和以后的理解可能又不一样。很多理解粗浅而鄙陋,恳请大家指正,希望大家一起学习进步。



 
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a746742897

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值