从SD卡启动ZYNQ(裸机)

分类: ZYNQ |
从SD卡中启动ZYNQ7020中的linux系统(裸机)
看了一整的文档,就为了从SD卡中启动ZYNQ中的系统,网上的资料大同小异,主要还是生成BOOT.bin文件(现在先是进行裸机的运行)。
这个文档打算从以下几个方面进行说明:
一、现在将网上的生成的BOOT.bin文件的流程做一个总结(或者说是copy过来)
首先讲一下BOOT.bin文件的构成:BOOT.bin文件=PL部分.bit+FSBL.elf+PS部分.elf文件。(design.bit文件就是生成的比特流文件;FSBL.elf文件是在Vivado的SDK中生成的,下面有这部分的介绍;工程的.elf文件就是在SDK中运行程序时建立的文件)
由于上面用到了FSBL.elf文件,所以这里要讲解一下如何生成FSBL.elf文件。
打开SDK软件,在菜单栏中依次选择“File——New——Application Project”,出现下面的界面:,并写入FSBL,在Hardware Platform中选择如何圈中的选项(很重要)!
http://s14/bmiddle/006F6HhWzy7eVSA1VDv2d&690
再在点击Next,出现如下界面,选择zynq FSBL,点击finish,等待编译(自动编译)完成即可。
至此,FSBL.elf文件就已经生成完毕了。
将三个文件拷贝到一个独立的文件下面,为制作BOOT.bin做准备工作。
现在制作BOOT.bin所需的文件都已经准备完毕了,接下来就来讲解如何利用SDK软件来生成BOOT.bin文件。步骤如下:依次执行xilinx tools---creat biit image,之后出现如下界面:
在output BIF file path中选择生成文件的目录(这个目录可以任意)。
第二步,点击add将三个文件添加进来。点击add之后出现如下界面,需要注意两点:第一点是:三个文件的添加顺序必须是FSBL.elf、PL部分.bit、PS部分.elf。第二点是:在添加三个文件时FSBL.elf文件在下图中的Partition type选择bootloader,其余两个文件选择datafile。
在三个文件依次添加完毕之后,点击Create image
到此,BOOT.bin文件就生成完毕了。
二、 这部分是自己的经验之谈了,上面的过程在网上一搜一大堆。这部分主要谈谈自己在制作过程中遇到的问题以及解决方法。
(1) 当制作完BOOT.bin之后我们应该怎么验证自己制作的对不对呢?具体的操作是怎么样的?网上之说拷贝到SD卡中重新给板子上电就行了。但是软件部分怎么做?(就是电脑端如何操作?)我试试了在SDK中似乎是看不到什么的,这或许是我不会操作。我找了一个串口助手(putty,应该任意都可以,我用的是putty),配置好com口和对应的比特率就可以了,不用开启vivado的任何软件。
总结一下具体的操作步骤:电脑端打开串口助手,设置com口和比特率;板子上插上拷贝BOOT.bin文件的SD卡,连接上USB串口线(JATG线连不连均可),重新上电即可。(好多版本都说要设置SD卡启动模式的开关,但是我的板子不用)。
(2) 我的板子以前似乎从来都没有试过SD卡启动,所以刚开始的时候试了几十次,在串口助手上也出现不了信息,后来无意中从官网上下载了一个“模板”,这个“模板”中除了BOOT.bin文件还有一个image.ub文件。将这两个文件拷到SD卡中,并重新上电,串口上居然有东西了。从此之后我再试试我以前做的BOOT.bin文件就都可以运行了(不用加image.ub)。这个问题我也没有搞清楚是怎么回事!
(3) 有时候在配置好SD卡,重新给板子上电之后,再打开串口助手,助手上没有显示东西。这时可以在保持串口助手打开的同时,按一下板子上的复位键或者保持重新给板子上电。这个原因我认为是在打开助手之后,板子上的程序已经运行完毕。(在板子断电时,putty这个软件的串口助手打不开,所以不能先打开助手,后给板子上电)