ZedBoard学习手记(四)为使用Linux系统做准备.doc

ZedBoard学习手记(四)为使用Linux系统做准备.doc

ID:27516025

大小:261.50 KB

页数:8页

时间:2018-12-04

ZedBoard学习手记(四)为使用Linux系统做准备.doc_第1页
ZedBoard学习手记(四)为使用Linux系统做准备.doc_第2页
ZedBoard学习手记(四)为使用Linux系统做准备.doc_第3页
ZedBoard学习手记(四)为使用Linux系统做准备.doc_第4页
ZedBoard学习手记(四)为使用Linux系统做准备.doc_第5页
资源描述:

《ZedBoard学习手记(四)为使用Linux系统做准备.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、ZedBoard学习手记(四)为使用Linux系统做准备  裸机控制外设是非常简单的,与普通的单片机并无二异,但仅仅有裸奔代码还远远无法发挥Cortex-A9硬核的作用,毕竟Zynq芯片集成了一颗最高能跑到1GHz的双核CPU(ZedBoard上的XC7Z020只能到800MHz)。并且ZedBoard上配备了GigabitEthernet、HDMI和USBOTG接口,不运行操作系统岂不浪费。有朋友想要在ZedBoard上做WinCE,但这方面的资料极为稀缺,而WinCE又是体积庞大、版权成本很高的操

2、作系统,于是开源有小巧的嵌入式Linux就成了首选。之前兔子为了做出图形界面,还致力于移植桌面型的LinaroUbuntu系统,不过ADI给出的参考例子未经优化奇卡无比,Xillinux正式版迟迟未现又只支持色彩度很低的简易VGA接口(ZedBoard上的VGA甚至到不了16位色),于是兔子不得不放弃之前的工作,重新启用ZedBoard出厂默认的轻量级Linux上。这个系统没有图形桌面,但已包含了网卡、HDMI驱动和其他基本功能,足够使用了。想要在Linux下控制外设,最重要的一环就是驱动了,但在动手

3、写驱动之前,先要做些准备工作。为了减少工作量,我们就直接修改ZedBoard的出厂Demo,加入之前完成的my_gpio外设,并通过U-Boot实现Bootloader功能。这个Demo的源工程可以在Digilent网站的ZedBoard页面找到:?NavPath=2,400,1028&Prod=ZEDBOARD点击下面的Download,可以下载到ZedBoard_OOB_Design.zip文件,这个压缩包里包含了XPS工程、U-Boot文件、Linux内核配置文件、DeviceTree源文件、r

4、ootfs等。README.txt中有相近的操作说明,建议通读一遍。  ZedBoard上默认的XPS系统工程位于hwxps_proj文件夹下,双击system.xmp打开工程,按照之前所说的方法,将my_gpio外设IP核导入到工程中。传送门:ZedBoard学习手记(二)开发自定义AXI总线外设IP核——以LED和开关为例之后,查看一下XPS是否为我们的外设分配了地址空间,如果没有,就需要手动设置一个地址,这里我们设成0x75C80000,空间大小为AXI设备统一的64K。  按照ZedBoar

5、d学习手记(二)中的方法设置总线连接,结果如下图:  修改xps_projdatasystem.ucf文件,为my_gpio外设分配外部引脚(ucf约束文件中的引脚名称和Ports中的一定要相同,已经有不少网友在这里出过问题了)。  完成后先单击GenerateBitStream生成配置数据,再点击ExportDesign,选Export&LaunchSDK将硬件信息导出到SDK中。    在SDK里,新建一个C工程,不同于裸机的HelloWorld,这次要建立的是Bootloader,因此选择F

6、SBL工程,即FirstStageBootloader,用实现U-Boot之前的初始化和启动工作。其他选项默认即可。  编译一下工程,完成后SDK会生成FSBL的elf文件,另外加上从XPS导出的System.bit,以及我们在第一篇文章中编译生成的u-boot.elf,就可以生成用来实现SD卡启动系统的完整Bootloader文件了。u-boot.elf在ZedBoard_OOB_Design中包含,不过这个兔子没试过,通过XilinxU-Boot编译生成u-boot.elf的方法请见:ZedBoa

7、rd学习手记(一)FirstStep——建立Xilinx交叉编译环境集齐这三个文件之后,点击XilinxTools→CreateBootImage,添加到列表中,选择一个输出路径,就可以创建Bootloader了。    SDK会在输出路劲生成u-boot.bin文件,将其改为BOOT.bin,拷贝到SD卡中,为ZedBoard板配置合适的跳线。这时再打开ZedBoard电源,Bootloader会初始化PS,用BitStream配置PL(包含了我们创建的my_gpio外设),并将操作权移交给U-Bo

8、ot。U-Boot会自动加载DeviceTree、Linux内核镜像和RootFS,最终启动Linux。ZedBoard出场时SD中还带有zImage、devicetree和rootfs文件,这些文件都可以采用原有的,直接用Xilinx交叉编译工具编译写好的C语言驱动就可以在这个系统上运行并控制外设了。当然,如果你想自己编译内核,或者不想采用静态物理地址的方式调用外设,就需要再往下进行一步,注意这一步对于Linux下控制AXI总线自定义外设并非必要。为了

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。