上一个实验用PL端的资源开发Custom IPcore的,并且在裸跑的程序中调用了这个IPcore,现在我们需要为这个Ipcore开发Linux系统上的设备驱动。该实验为pwm_ip嵌入式Linux驱动开发。记录下自己做这个实验的心路历程。
转载注明出处:来自xzyfeixiang的专栏,网址:
实验尝试:
尝试一:这里想偷个懒:启动linux系统后(demo迷你系统),重新配置FPGA,再想加载光盘中给的驱动,结果证明这个是不行的,因为迷你系统也用到了fpga,重新配置系统崩溃了。图1
尝试二:还是回归生成BOOT.BIN的方法,之前有一个实验zedboard--拷贝到SD卡启动的fsbl引导裸跑程序实验(九)
即用fsbl工程来替代那个helloworld.c工程,同时拷贝一个u-boot.elf文件加上之前的fpga的bit文件,一起来生成这个BOOT.BIN文件。
光盘中的u-boot.elf,新建fsbl工程生成的fsbl.elf,以及前面fpga的bit文件,xilinx tools->Create bootimage 图2,用来替换原来sd卡中的BOOT.BIN文件(记得一定要将sd卡中的BOOT.BIN文件备份),系统无法启动,出现下面的东西 图3
评注:出现图3的错误是很正常的,错误有两处:一是原demo系统是用到了fpga的,这样单独把上个实验的bit文件拷过来是不正确的,应该是在原来的xps工程里加入ip核,重新产生bit文件,在Create boot image。二是Create boot image的时候顺序是不能错的。
于是,上网找资料,在懒兔子那里找到了方向,首先要有这个文件ZedBoard_OOB_Design.zip,链接http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,1028&Prod=ZEDBOARD
解压这个文件zedBoard上默认的XPS系统工程位于hw\xps_proj文件夹下,启动xps打开工程system.xmp,然后和上个实验一样,添加自定义ip核,你可以看到这个工程里面本身就有很多ip核。
评注:很多次尝试还是不成功,后面看到这个文件ZedBoard_OOB_Design.zip是14.1的,我的版本是14.2,果断下载了ZedBoard_Linux_Design_14_2.zip这个文件。下面记录下成功的步骤。
实验步骤:
版本14.2 ,demo文件ZedBoard_Linux_Design_14_2.zip,解压该文件。我换成了project1_12的名字 图4
启动xps 图5打开工程,在hw\xps_proj文件夹下
Hardware- Createor Import Periphera 来到欢迎界面 图6