从最初不起眼的胶合逻辑开始,FPGA已经历了漫长的发展道路。当前FPGA的逻辑容量和灵活性已将其带入了嵌入式设计的中心位置。目前,在单个可编程芯片上可实现一个完整系统,这种架构有助于软硬件的协同设计,并能将软硬件应用进行集成。
这些基于FPGA的嵌入式设计种类需要稳健的 *** 掘空作系统。PetaLinux应运而生,已成为众多嵌入式设计人员青睐的对象。它以开源免费的方式提供,支持包括赛灵思MicroBlaze®
CPU和ARM®处理器在内的多种处理器架构。要将PetaLinux移植到特定的FPGA上,必须针对目标平台定制、配置和构建内核源代码、引导载入程序、器件树和根文件系统。
对于PES大学和C-DOT的一个设计项目而言,我判漏瞎们的研发团队准备移植PetaLinux并在采用Kintex®-7 XC7K325T FPGA的赛灵思KC705评估板上运行多个PetaLinux用户应用。结果证明整个过程相当便捷。
选择PetaLinux的原因
在详细介绍具体做法之前,有必要花点时间来探讨针对基于FPGA的嵌入式系统提供的 *** 作系统选项。PetaLinux是FPGA上最常用的 *** 作系统,另外还有μClinux
和Xilkernel。μClinux为Linux发行版,是一款包含小型Linux内核的移植型Linux *** 作系统,适用于无存储器管理单元(MMU)的处理器[1]。μClinux配备有各种库、应用和工具链。Xilkernel就其本身而言,是一款小型、高稳健性、模块化内核,能够提供高于μClinux
的定制性能,有助于用户通过定制内核来优化其设计尺寸与功能[2]。
同时,PetaLinux也是一款完整的Linux发行版及开发环境,适用于基于FPGA的片上系统(SoC)设计。PetaLinux包含预配置二进制可引导映像、面向赛灵思器件的完全可定制Linux
以及配套提供的PetaLinux软件开发套件(SDK)[3]。其中SDK包括用于自动完成配置、构建和部署过程中各种复杂工作的工具和实用程序。赛灵思提供可免费下载的PetaLinux开发包,其中包括针对各种赛灵思FGPA开发套件而设计的硬件参考项目。同时包含在内的还有适用于赛灵思FPGA的内核配置实用程序、交叉编译器等软件工具、硬件设计创建工具以及大量其它设计辅助功能。
据报道,Xilkernel 的性能优于μClinux[4],而PetaLinux的性能又优于Xilkernel
[5]。由于这个原因,特别是由于已针对我们赛灵思目标板提供的软件包原因,我们为我们的项目选择了PetaLinux。移植PetaLinux的另一大优势是用户可以轻松实现远程编程。这就意味着用户可使用远程接入方式,通过远程登录,采用新的配置文件(或比特流文件)加载FPGA目标板。
有两种方法可以创建用于构建PetaLinux系统的软件平台:在Linux终端上使用PetaLinux命令或通过下拉菜单使用GUI。
开始安装
下面详细介绍我们项目团队安装PetaLinux的方法。第一步,我们下载了PetaLinux软件包12.12版以及用于Kintex-7目标板的电路板支持包(BSP)。然后运行了PetaLinux
SDK安装程序,并在控制台上使用下列命令把SDK安装到了/opt/Petalinux-v12.12-final目录下:
@ cd /opt
@ cd /opt/PetaLinux -v12.12-final-full.tar.gz
@ tar zxf PetaLinux-v12.12-final-full.tar.gz
随后,我们把从赛灵思网搜早站获得的PetaLinux SDK许可证复制并拷贝到.xilinx和.Petalogix文件夹中。接下来,我们使用下列命令获取适当设置,设置了SDK的工作环境:
@ cd /opt/PetaLinux-v12.12-final
@ source settings.sh
为验证工作环境是否设置正确,我们使用了以下命令:
@ echo $PETALINUX
如果环境设置正确,将显示PetaLinux的安装路径。在本案例中,PetaLinux的安装路径是 /opt/PetaLinux-v12.12-final。
kc705gtx时钟通过FPGA内有3个全差分的时钟输入端口提供,可支持1~2MHz的时钟信号,其中1个端口支持100MHz的时钟信号(仅虚斗可用于以太网接口)。其中,一个时钟输入端口用差陆磨于悉明主时钟CLK0,另外两个时钟输入端口分别用于外部时钟CLK1和备用时钟CLK2。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)