转眼间研二上学期就即将过去了,回顾从9月份以来学习zedboard,感觉一直徘徊,有很多东西还没有理清楚,以前的博客也是乱七八糟的,希望自己也整理一下思路,这里对自己已经学习和知道的东西做一个小小的总结,水平的有限才造就了这篇拙劣的总结。
转载请注明:来自http://blog.csdn.net/xzyiverson
平台简介
Zynq可以认为是带处理器的FPGA,xilinx出了7010,7015,7020,7030,7045,7100这些芯片,这些芯片的FPGA的资源是不一样的,也就是PL逻辑资源不一样,因此,应用场合和价格也不一样。
ZedBoard是基于Xilinx Zynq™-7000扩展式处理平台(EPP)的低成本开发板。此板可以运行基于Linux,Android,Windows®或其他OS/ RTOS的设计。此外,可扩展接口使得用户可以方便访问处理系统和可编程逻辑。Zynq-7000 EPP将ARM®处理系统和与Xilinx 7系列可编程逻辑完美地结合在一起,可以创建独特而强大的设计。Zedboard是基于7020的一款开发板,目前还有zybo这款开发板,使用的是7010,价格就更加便宜一些了。
我们在利用zedboard开发的时候,需要嵌入式linux的基本知识,这部分和一般的arm在很大的程度上是相通的,还有就是fpga的设计,这部分和一般的fpga设计是相通的,因此,我们需要掌握的东西还是很多的。
开发平台
1:Ubuntu+交叉编译环境:
2:ISE14.2,本人以前没有用过xilinx的东西,对软件很不熟,这个也确实对我造成了很大的影响,vivado这东西以后有机会再去涉及吧。
电脑安装的软件或者开发工具或驱动
虚拟机8.0+Ubuntu12.04+交叉编译环境+CuteFTP
ISE14.2+SecureCRT(串口终端)
Usb-jtag,用于直接配置zedboard的fpga,直接将bit文件烧写fpga
Usb-uart,usb转串口,监视开发板和输入一些命令
Zynq的启动理解
调试:将启动管脚设为0 0 0,然后我们可以调试。调试的时候肯定是裸机的一些实验,我做过的一些实验如下:
1) 单纯使用ps,见http://blog.csdn.net/xzyiverson/article/details/11738247
说明:这部分没有用到fpga,只要烧写elf到ps,运行就可以了。这个可以把理解成一般的arm的裸机实验就行了。
2) ps+pl 这个和一般的arm的裸机就不一样了,但是也是很好理解的, 参见http://blog.csdn.net/xzyiverson/article/details/11818549 pl可以是自带的ip核,也可以是自己定义的ip核,在ps端其实就是相当于一个外设了,在ps端有地址,我们写一般的应用程序就可以读写这个地址了。
3) pl:这个就更好明白了,就是不用ps,就用fpga的逻辑资源了。
小结:其实很多开发方式是让我们更好的理解这个平台,在实际中应该是有很多是用不上的,但是上面的2)应该是肯定要用的,因为我们写了逻辑,封装成ip核,一般肯定要先写应用程序(逻辑)来测试你在fpga里面的逻辑,或者什么的是不是正确的,如果正确的话,那我们接下来就应该为这个ip核编写在linux下面的驱动了。
Sd卡启动:调试完了终究还是要sd卡来启动的!!
这个时候你必须要清楚的知道sd卡启动的过程,这个非常重要。
在不使用JTAG的情况下,ARM将在片上的BootROM中开始执行代码,即一些初始化,完成以后,运行FSBL,这部分完成ps的初始化,对pl进行配置,引导ssbl(u-boot)或者裸跑程序。
BOOT.BIN文件(fsbl.elf+system.bit+helloworld.elf或者fsbl.elf+system.bit+u-boot.elf)
裸跑:我做过一个helloworld实验,fsbl.elf+system.bit+helloworld.elf
系统:fsbl.elf+system.bit+u-boot.elf
跑过的实验
1) 单独的PL实验(JTAG调试)
2) 裸机的ps端的helloworld实验(JTAG调试)
3) 启动demo系统运行helloworld(和一般arm的应用程序开发没上面区别)
a) U盘的挂载
4)fsbl引导裸奔程序,记得是helloworld(sd卡启动)
a)学习了sdk怎么打开工程
5)Opencv移植到PC机上和zedboard上了,还有测试。
a)学习怎么制作一个镜像文件
6)运行了超群天晴的demo和pc采集usb摄像头图片
7)qt安装pc,zedboard上和测试
a)qt显示一张照片在linux测试程序所用的时间那篇博客里面。
8)软件的开机自动加载,这个是ramdisk的文件系统,必须要这么做。
9)别人的智慧就是强大,可以qt显示视频了。
10)pc机下helloworld驱动
a)了解驱动和系统调用过程
11)运行在demo系统下的helloworld驱动
12)测试pwm的ip核,其实就是简单的ps+pl(jtag调试)
13)搭建嵌入式web服务器 boa
14)嵌入式网络摄像机移植
15)网络摄像机和web服务器联合使用,这个可以通过路由来回传视频到电脑上
16)zedboard的demo默认开启了ftp,telnet,搞定zedboard的ftp
17)NFS挂载到zedboard上
18)嵌入式linux移植到zedboard
总结:博客乱乱的,截止到12月10日,也就做了这些工作,发现自己做的很多工作都是平台的一些搭建过程,没有什么自己很擅长的一些东西,这个我给自己找的借口就是没有具体的项目来锻炼自己,深知要接下来做下去,一定要坚持坚持…..