本程序基于BX71开发,实现HDMI与LCD显示Linux的启动信息,同时也支持以太网通信、键盘输入命令。
下图为整体框架:
HDMI显示:
注意:
1、由于7010无LCD接口,所以该开发板只可HDMI显示;7020可以同时连接HDMI屏幕和LCD。
2、如果你没有Linux相关知识,以及未搭建过开发环境,那么首先阅读《基于Linux的嵌入式系统开发和应用教程文档》(该文档属于ACZ702开发板,但是前3章知识是通用的),完成环境搭建后可继续操作!
百度网盘下载链接:https://pan.baidu.com/s/1o3hTLKucRWvXVxd2TUIfag?pwd=p6uk
(路径:盘A_ACZ702开发板标准配套资料/01_教材文档/04_【Linux教程】基于Linux的嵌入式系统开发和应用教程V2.16.pdf)
一、硬件连接
请先连接好硬件,方便后续的开机测试
1、开发板硬件连接
将BX71_7020开发板按照下图连接(BX71_7010无LCD接口)
注意:
1、将SD卡插入开发板后,见上图,拨码开关全部下拨(sd卡旁)!
2、将红色的拨码开关下拨(开启USB功能),然后连接有线键盘,后续可以在此输入linux命令!
3、使用软排线将 LCD 屏与开发板相连,注意要先将黑色压槽往上拨开。连接时将带有蓝色胶条的部分朝上,银白线条接口部分朝下,软排线与卡槽接口对应好后,按下压槽即完成了。
2、以太网配置
本工程已经设置了开发板静态IP为192.168.0.10,所以用网线将开发板和电脑连接后,需要配置电脑IP、以及关闭公共防火墙。
1、设置电脑的ip地址
2、关闭电脑的公共防火墙
二、开机测试
在文件中已提供.img镜像文件,将其写入到SD卡即可体验本工程。
(1)工程代码下载:
https://pan.baidu.com/s/1zSiVDcZt-YsozpEhzkXcSA?pwd=rncr
(2)烧录img镜像文件教程
http://www.corecourse.cn/forum.php?mod=viewthread&tid=29667
(3)功能测试
①、首先按照上文连接好开发板硬件,并且上电;
②、等待LCD/HDMI屏幕出现“root@BX71_Factory:~#”字符后,在键盘(连接到开发板)上输入命令并回车:ping 192.168.0.3
如果HDMI屏幕/LCD上出现显示,说明HDMI/LCD屏幕正常
如果屏幕显示出输入的“ping 192.168.0.3”,说明USB正常;
如果屏幕显示出“64 bytes from 192.168.0.3: seq=0 ttl=128 time=0.461 ms”类似信息,说明以太网通信正常;
(如果出现其他问题,可以技术群询问,或者在此贴下回复)
三、工程搭建
简易讲解如何使用提供的Vivado工程、内核源码、petalinux工程文件,生成boot镜像和根文件。
1、生成HDF文件
将BX71_7020_HDMI_LCD_Vivado.zip解压到没有中文字符的路径,里面包含本次vivado工程;该工程已经生成.hdf文件,位于Vivado工程目录下sdk文件夹内。
2、Petalinux工程
(1)新建文件夹
由于后续项目过多,为了保持工程“干净整洁”,在虚拟机Ubuntu中使用下面命令创建文件夹:
[C] 纯文本查看 复制代码 mkdir /home/$USER/FPGA_Linux/BX71
(2)移入HDMI工程
将提供的BX71_HDMI_Factory_Linux.tar.gz工程,从Windows移动到该BX71文件夹内。
(3)解压工程
使用下面命令,将压缩包解压
[C] 纯文本查看 复制代码 tar -vxzf BX71_HDMI_Factory_Linux.tar.gz
(4)移入system_wrapper.hdf文件
如果你是7020的开发板,进入7020文件夹;
如果你是7010的开发板,进入7010文件夹;
接下来以7020开发板举例,将Windows上的system_wrapper.hdf拖入到hdf文件夹。
再进入BX71_HDMI_Linux_Source文件夹中(这是提前创建好的Petalinux工程目录)
(5)配置Petalinux工程
首先输入下列命令,将从指定的硬件描述文件(HDF)目录中获取硬件描述信息,以便配置PetaLinux项目。(注意要进入工程目录后输入命令)
[C] 纯文本查看 复制代码 splnx
petalinux-config --get-hw-description ../hdf/
此时,会弹出配置窗口,进入→ Linux Components Selection
将内核路径修改为本地,如下图所示,继续进入该配置
在弹出的选项中,选择ext-local-src后,然后按下2次esc,返回到上一页。
此时,新出现“External linux-kernel local source settings”选项,选择它,按下Enter即可。
此时,需要填写本地的内核路径,在BX71_HDMI_Factory_Linux中的kernel就是本次需要的内核;先进入kernel文件夹后,用pwd命令即可获取地址。
将该地址复制到“EXternal linux-kernel local source path”选项中
连续按下esc,直到提示“Do you wish to save your new configuration?”,按下回车即可。
3、配置内核
提供的工程Linux内核都是配置好的,这里主要为了让大家了解配置方法,使用下面命令打开内核配置:
[C] 纯文本查看 复制代码 petalinux-config -c kernel
在弹出的界面中,进入→ Device Drivers → Graphics support,勾选Digilent VGA/HDMI DRM Encoder Driver选项,该驱动主要用来驱动HDMI显示。
然后进入到→ Device Drivers → Common Clock Framework,勾选Digilent axi_dynclk Driver;该驱动程序主要用于输出不同大小的像素时钟。
持续按下esc,退出内核配置。
4、修改设备树
对于设备树,同样在工程中已提供,可以使用下面命令打开7020设备树文件。
[C] 纯文本查看 复制代码 gedit /home/$USER/FPGA_Linux/BX71/BX71_HDMI_Factory_Linux/7020/BX71_HDMI_Linux_Source/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi
对于7010设备树文件,可以通过下面命令打开:
[C] 纯文本查看 复制代码 gedit /home/$USER/FPGA_Linux/BX71/BX71_HDMI_Factory_Linux/7010/BX71_HDMI_Linux_Source/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi
这里详细讲解下如何切换不同的的HDMI分辨率:
[C] 纯文本查看 复制代码
//hdmi分辨率切换,在根节点下resolution-settings,复制标签到此处
resolution-settings = <&res_800x480p>;
默认情况是800x480的分辨率,工程提供4种分辨率选择,如果需要切换HDMI的分辨率,可以将res_800x480p替换为res_1280x1024p、res_1280x720p、res_1024x600p;
5、编译工程
接下来编译整个工程,在终端输入如下命令:
[C] 纯文本查看 复制代码
petalinux-build
再输入下面命令,生成BOOT文件:
[C] 纯文本查看 复制代码
petalinux-package --boot --fsbl --fpga --u-boot --force
6、制作 SD 启动卡
将sd卡插入电脑端,等待Ubuntu识别后,再将提供的format_sdcard.sh脚本移入到Ubuntu的BX71_HDMI_Factory_Linux文件夹中。
在当前目录中,打开终端输入下面命令:
[C] 纯文本查看 复制代码
./format_sdcard.sh
7、将文件拷贝到 SD 卡
先依次在桌面左侧点击U盘图标,等待2个文件夹打开。
对于7020开发板,在终端中可以使用下列命令,进入到image目录,主要存放镜像和根文件。
[C] 纯文本查看 复制代码
cd /home/$USER/FPGA_Linux/BX71/BX71_HDMI_Factory_Linux/7020/BX71_HDMI_Linux_Source/images/linux
对于7010开发板,那么就输入下面命令:
[C] 纯文本查看 复制代码
cd /home/$USER/FPGA_Linux/BX71/BX71_HDMI_Factory_Linux/7010/BX71_HDMI_Linux_Source/images/linux
后续7010和7020操作一样,继续使用下列命令,将image.ub、BOOT.BIN文件移动到SD卡boot分区
[C] 纯文本查看 复制代码
sudo cp image.ub BOOT.BIN /media/$USER/boot/
使用下列命令,将根文件解压到U盘rootfs目录中,等待解压完毕,最后输入“sync”命令,等待系统将缓存的数据写入 SD卡。
[C] 纯文本查看 复制代码
sudo tar -zxvf rootfs.tar.gz -C /media/$USER/rootfs/
sync
再按照下图弹出SD卡
最后,将sd卡插入到开发板,连接好硬件,上电后,会自动加载系统。(按照开机测试操作)
|