ZedBoard--(4)嵌入式Linux下的LED实验(PS + PL)

作为ZedBoard新手,在网上找了很多资料,感觉大神们的博客教程啥啥的,有些地方写的不是特别详细。

在下菜鸟一枚,希望写一些菜鸟式的东西,方便感兴趣的同学快速入门。

言归正传,既然第2篇文章中Linux已移植好,是时候做点简单的小实验了。


参考资料:http://www.eefocus.com/binbincool/blog/12-11/288982_736af.html


(1)新建ZYNQ工程

Vivado中新建一个工程,如图1所示:

【图1】 新建ZYNQ工程

点“Next”,选择RTL Project,勾上Do not specify sources at this time,如图2所示:

【图2】 选择RTL工程

继续点“Next”,然后就是选择板子了,如图3所示:

【图3】 选择ZedBoard

再点“Next”,可以看到工程的概况,直接点“Finish”。


(2)设计硬件

点击左边IP Generator下面的Create Block Design,如图4所示:

【图4】 Create Block Design

然后,点击Add IP,输入zynq,选择第一个,然后双击添加Process Sytem的IP。如图5所示:

【图5】 添加PS

然后,类似地,添加GPIO的IP核,如图6所示:

【图6】 添加GPIO的IP

然后点击“Run Block Automation”,选择PS,如图7所示:

【图7】 Run Block Automation

接着弹出一个图8所示的对话框,直接点“OK”即可。

【图8】

然后,点击“Run Connection Automation”,选择第一个,如图9所示:

【图9】 自动连接PS

弹出对话框,同样直接点“OK”。接着,类似地,依次点击“Run Connection Automation”->"/axi_gpio_0"/GPIO,

在弹出的对话框中,选择leds_8bits,如图10所示:

【图10】 选择leds_8bits

然后点“OK”自动连接。完了点击左边的“Sources”,在Design Sources下的.bd文件右击,选择“Create HDL Wrapper”,如图11所示:

【图11】 生成HDL文件

接着弹出一个对话框,选择“Let Vivado manage wrapper and auto-update”,点“OK”。等生成HDL文件后,Ctrl+S保存工程。

接下来就是生成比特流了,如图12所示:

【图12】 生成比特流

弹出一个图13所示的对话框,点“OK”。

【图13】 实现

生成比特流的过程比较漫长,耐心等待其完成。完成后弹出对话框询问是否要打开Hardware Manager,点击“Canel”。


(3)导出硬件

点击File->Export->Export Hardware,如图14所示:

【图14】 准备导出硬件

在弹出对话框中确保“Include bitstream”前面已勾上,如图15所示:

【图15】 导出硬件设计

到这里,Vivado的工作已经完成了。启动SDK之前,需要记下GPIO作为CPU外设的地址。

点击“Diagram”旁边的“Address Editior”,记录这个地址,如图16所示:

【图16】 记录外设地址

可以看到,Vivado自动分配的地址是0x41200000.


(4)启动SDK

Vivado菜单中,依次点击File->Launch SDK,弹出的对话框直接OK。创建一个Application Project,如图17所示:

【图17】 创建Application Project

填写工程名,点击“Next”,选择FSBL,点击“Finish”,如图18所示:

【图18】 选择FSBL

然后再创建的Application Project上右键选择Build Project,或者直接Ctrl+B也可以。


(5)生成BOOT.BIN

Build完毕后,点击Xilinx Tools->Create Zynq Boot Image,如图19所示:

【图19】准备生成BOOT.BIN

点击下面的Add按钮,添加编译U-BOOT生成的u-boot.elf和上面生成的比特流文件,点击Create Image即可。如图20所示:

注意:LED.elf、比特流文件和u-boot.elf的顺序,不能错。ZedBoard启动时,先由LED.elf利用比特流文件初始化PL,然后再由u-boot.elf启动Linux。

【图20】 生成BOOT.BIN


(6)启动Linux

将生成的BOOT.BIN连同uImage、devicetree.dtb、uramdisk.image.gz拷贝到SD卡,插到ZedBoard的SD卡槽,上电,连接串口调试工具。

可以看见上电后,过了一会,蓝色LED亮起,说明PL部分已经成功配置好。接着串口工具才收到ZedBoard发来的Linux的启动信息。如图21所示:

【图21】 启动ZedBoard的过程


(7)测试效果

登陆Linux后,在串口工具输入devmem 0x41200000 8 63,可以看到LED对应的二进制编码确实是63(左边是高位)。如图22和图23所示:

【图22】8表示数据的宽度(LED有8位,所以此参数是8);地址为上面Vivado分配的地址

【图23】 LED


评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值