Adam Taylor玩转MicroZed系列第80部分

FPGA/ASIC技术

205人已加入

描述

在Adam Taylor玩转MicroZed系列的前期部分中,我们介绍了IP栈的概念。(见“Adam Taylor玩转MicroZed系列第79部分:Zynq SoC以太网第3部分”)接下来就是在我们的设计中使用该协议栈了。SDK开发环境允许我们创建BSP的时候包含一个轻量级的IP栈(lwIP)。lwIP是个在一系列嵌入式系统中使用到的开源IP栈。原先由瑞典计算机科学学院为了减少创建IP栈的工作而开发。

在Zynq系统中包含lwIP很简单。你可以仅仅在BSP设置概览标签页中检查lwIP选项即可。如果你计划使用Zynq系统来嵌入一个web网页,你还需要检查xilmfs(赛灵思内存文件系统)选择框来利用Zynq系统的DDR内存去建立一个文件系统。

一旦你包含了该库,你可以通过在下面所示的standalone中选择lwIP来配置它:

FPGA

该选项允许你配置所需的lwIP,然而你的实际应用需要定义包含IP地址和子网的参数。使用lwIP的一种途径是嵌入提供系统遥测的web网页。通过使用HTTP命令,你可以使用相同的网页来控制系统。对于以太网连接的嵌入式系统,这些类型的Web界面很有用。

我们还需要一个文件系统来嵌入一个web网页。该文件系统包含在Zynq SoC系统的DDR内存中。启动该文件系统的过程和配置lwIP栈的过程很相似。选上xilmfs选项来定义文件系统保留的内存位置:

FPGA

 

如果有必要,我们在Vivado tcl命令行中使用mfsgen命令来创建一个文件。通过使用该命令,我们还可以把网页和图像引入到文件系统中,并且被lwIP栈通过。

在软件开发过程中,我们将使用SDK核JTAG来下载和运行lwIP应用。SDK下载ELF应用的时候,它也必须把文件系统内存内容下载到恰当的位置中去。这可以通过添加由mfsgen为运行和调试配置而创建的文件系统镜像来实现。接着在应用执行前,该镜像被下载到恰当的内存位置中去,这样确保应用找到需要的文件(比如要服务的网站)。

FPGA

 

如果文件系统和lwIP均已正确安装,我们现在就可集中精力在应用开发上面。下面是两种把我们的应用和lwIP栈接口的主要方法:
 Raw——这是没有操作系统时使用的基本API。它基于事件驱动。使用lwIP的应用在该模式下在触发如接收数据等事件时调用相应的回调函数。
 Sockets——使用在运行操作系统的Zynq SoC上。该方法使用到线程,应用使用其来和lwIP栈通信。

XAPP1026(轻量级IP应用例程)是一个囊括了上述所有概念并且提供Raw和Socket使用范例的例程,它实现了一个简单回显服务器和网页服务器。注意到我们在这些系列中使用的是MicroZed开发板而不是ZC7002开发板,因此我们需要使用zedboard.org网站提供的端口。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分