你的位置:EETOP 赛灵思(Xilinx) 社区 >> >> 全部 >> 详细内容

Adam Taylor玩转MicroZed系列第80部分:LWIP栈配置

发布者:jackzhang 时间:2015-06-14 17:45:17

作者:Adam Taylor

在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来配置它:

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

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

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

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

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

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

接下来,我想研究一些Zynq领域中非常新奇有趣的开发。稍后我将会回到Zynq SoC的IP使用主题。

现在,你可以方便地获取第一年的Adam Taylor MicroZed开发板编年史Kindle电子书版本了,很实惠仅需7.5美元。点击这里

原文链接:
http://forums.xilinx.com/t5/Xcell-Daily-Blog/Adam-Taylor-s-MicroZed-Chro...

© Copyright 2014 Xilinx Inc
如需转载,请注明出处

最新课程

  • 深入浅出玩儿转FPGA

    本视频基于Xilinx公司的Artix-7FPGA器件以及各种丰富的入门和进阶外设,提供了一些典型的工程实例,帮助读者从FPGA基础知识、逻辑设计概念

  • 从零开始大战FPGA基础篇

    本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“

  • Verilog基础及典型数字

    课程中首先会给大家讲解在企业中一般数字电路从算法到流片这整个过程中会涉及到哪些流程,都分别使用什么工具,以及其中每个流程都分别做了