资料介绍
描述
在我上一篇项目博文中,我介绍了如何在 Vivado 2021.2 中为基于 SP701 Spartan-7 的开发 FPGA 板创建基础硬件设计。该项目是涵盖如何使用 Xilinx 的嵌入式软件 IDE Vitis 在嵌入式 C 语言中创建轻量级 IP (lwIP) 回显服务器以在 SP701 上运行的项目的延续。
如果您还不熟悉,Vitis 及其前身 Xilinx SDK 都有一个模板 lwIP 回显服务器项目,可以用作起点并根据用户的特定应用需求进行定制。我发现它作为为我的 FPGA 设计建立网络通信的基准非常方便,并且节省了大量时间,所以我不会在每次需要通过以太网连接控制我的 FPGA 时重新发明轮子。
作为高级概述,我将使用 lwIP 回显服务器项目模板创建一个新的应用程序项目,将 SP701 连接到我的本地网络,直接连接到我的路由器,然后使用套接字在我的主机 PC 上创建一个简单的 Python3 脚本来发送一些向 SP701 上的服务器测试数据包,看它们是否成功回显。
启动 Vitis
Vitis 可以直接从 Vivado 启动,也可以从命令行独立启动。
要从 Vivado 启动,请选择Tools > Launch Vitis IDE (这可以在 Vivado 中打开或不打开项目的情况下完成):
要从命令行启动,首先获取环境然后运行 Vitis:
~$ source /tools/Xilinx/Vitis/2021.2/settings64.sh
~$ vitis
为这个 Vitis 实例的工作区选择一个目录,我个人喜欢在 Vivado 项目的顶层创建一个文件夹,我在 Vitis 工作区中创建软件中的硬件将基于该项目。这只是我保持一切井井有条的方式。
Vitis 最初将启动到一个完全空白的工作区。与它的前身 Xilinx SDK 不同,它会自动从 Vivado 中提取导出的硬件平台。
整个项目流程可以分解为以下步骤:
- 使用从 Vivado 导出的硬件平台设计为目标创建一个平台项目。
- 创建一个应用程序项目,其中包含要在目标硬件的处理系统上运行的实际 C 代码。
- 使用硬件上的系统调试器等调试器调试应用程序。
- 对目标设备的闪存进行编程。
我将介绍该项目的前三个步骤。
平台项目
通过从空白工作区窗口中选择创建平台项目,基于从 Vivado 导出的硬件平台(带比特流)创建新的平台项目。
弹出窗口将指导您完成用于命名平台项目的参数选择,并指向为目标板(.xsa 文件)导出的硬件平台所在的位置。
由于这是一个未使用 Linux 或 RTOS 等操作系统的裸机应用程序,因此Operating system设置为standalone 。
目标处理器是 Vivado 模块设计microblaze_0中 MicroBlaze 处理器的实例化。
单击 Finish,Vitis 将在空白工作区中生成平台项目。
在这个特定实例中创建应用程序项目之前,需要修改平台项目中生成的 BSP 以包含 lwIP 库,因为在新平台项目中默认情况下未启用该特定库
要修改 BSP 以添加 lwIP 库,请选择修改 BSP 设置...
然后在弹出窗口中,选中启用lwip211的复选框并单击OK 。
请注意,平台项目显示为已过期。这是因为此时尚未构建平台项目,因此不存在输出文件。运行平台项目的初始构建,这样它就不会再使用菜单栏中的构建图标或按 ctrl+B 显示为过时。
应用项目
配置和构建平台项目后,基于它创建一个新的应用程序项目。选择新建>应用程序项目...
在弹出窗口中,您可以跳过第一张幻灯片(它是我们生成应用程序项目的步骤大纲)。选择上一步中创建的平台项目作为应用程序的基础,然后单击Next 。
根据需要命名应用项目,Vitis 将自动为其生成系统项目并将其与 MicroBlaze 软处理器相关联(假定它是唯一可运行的目标)。单击下一步。
同样,由于没有操作系统,域将是standalone 。在 Vitis 中创建新应用项目的最后一步是选择一个项目模板,以完成初始启动中的一些基础工作。正如我之前提到的,这个项目正在使用 lwIP 回显服务器应用程序模板。选择它并单击完成。
注意:如果您忘记修改 BSP 以启用 lwip211 库,Finish 按钮将变灰,并且窗口顶部会出现一条警告消息,告诉您库丢失。
同样,Vitis 将为设计生成应用程序项目和基础代码。
默认代码有很好的注释,所以请随意打开/src/main.c阅读它并添加任何所需的自定义代码。
为应用程序项目运行构建。
应用调试
通过使用以太网电缆将 SP701 开发板连接到您的路由器来设置 SP701 开发板,将 USB 连接到 UART 端口 J5 到您的主机 PC,然后插入墙上适配器为 SP701 板供电。通过将 SW11 设置为 ON 位置来打开电路板。
通过在资源管理器窗口中右键单击应用程序名称,然后选择Debug As > Launch Hardware (Single Application Debug) ,在 Vitis 中启动 lwIP 服务器应用程序的调试运行。
然后,Vitis 将从开发视图切换到调试视图,将比特流编程到 FPGA 上,启动 MicroBlaze,然后设置断点,使其在进入 lwIP 应用程序的主要功能后立即停止。
此时,您可以像在任何其他调试器中一样选择逐步执行/结束/退出,或者您可以单击运行/恢复/F8 (所有这些都位于菜单栏中)让应用程序正常运行随时暂停和单步执行的选项。
您还需要连接到 SP701 的 UART 串行输出。您可以使用您选择的任何串行终端应用程序执行此操作,或使用 Vitis 中的内置终端应用程序。调试视图底部有一组选项卡,包括Console 、Vitis Serial Terminal 、Executables 、Debug Shell 、Vitis Log 、Problems和Debugger Console 。
切换到Vitis 串行终端选项卡并点击+按钮。将有三个枚举串口,选择三个中的第一个(例如,如果有 ttyUSB0、ttyUSB1 和 ttyUSB2,则选择 ttyUSB0)。并以 9600 的波特率和默认 UART 设置连接到它。
现在单击运行将启动回显服务器侦听它在端口号 7 上建立的端口,如 UART 接口上的串行输出所证明的那样。这将告诉您 SP701 板的本地 IP 和链接状态。
主机 PC 回显客户端
为了测试 SP701 上的 lwIP 回显服务器,我在 Python3 中拼凑了一个简单的回显客户端脚本,我从与 SP701 位于同一本地网络的 PC 上运行该脚本。
该脚本在 SP701 的本地 IP(默认为 192.168.1.10)的端口 7 上作为客户端打开一个套接字,然后将一个字节数据包发送到回显服务器。
发送数据包后,回显服务器会等待,直到收到与发送出去的字节数相同的返回字节,然后打印出接收到的数据包。一旦接收到预期的字节数,echo 客户端就会关闭套接字。关闭套接字很重要,因为如果您不这样做并尝试再次运行脚本,它将挂起,因为套接字资源从未被释放。
作为对连接的进一步测试,您还可以从 PC 的命令行 ping SP701:
我认为这将是启动和运行 lwIP 的一个很好的停止点(我试图将我的项目帖子保持在易于消耗的长度)。在未来的项目中,我将通过在回显服务器中添加自定义函数来对此进行扩展,因此请保留此书签。
- 使用LwIP TCP/IP栈,在STM32Cube上开发应用
- SP701评估套件快速入门指南
- SP701评估板用户指南
- 基于Spartan 7的FPGA开发板SP701入门
- 基于FreeRTOS+LwIP的SNMP实现方案V0
- p701功率序列及电路图 4次下载
- 高精度原边反馈开关电源芯片SP5719数据手册 22次下载
- 高性能低功耗开关电源控制芯片SP6621HP 15次下载
- LWIP协议栈中Raw TCP中使用 17次下载
- LwIP编程指南 46次下载
- LwIP协议详解 49次下载
- NXPl788上lwip的无操作系统移植,基于Embest开发板 85次下载
- lwip协议中文版 0次下载
- Lwip协议栈的设计方案 33次下载
- 宏基AC701彩显图纸
- 基于MM32F5270的Ethernet实现LwIP协议栈移植 858次阅读
- lwip协议栈代码分析 1584次阅读
- 一款CMOS,低压,单通道,导通电阻为2Ω的单刀单掷开关CBMG701/702 840次阅读
- LwIP中的ARP实现是什么 1138次阅读
- 基于LwIP的UDP服务器设计 1607次阅读
- 基于LwIP的TCP客户端设计 2111次阅读
- 如何更好的理解LWIP协议 3989次阅读
- Zynq在sdk中选择lwip模板的参数优化 6091次阅读
- LWIP内存管理知识汇总 6774次阅读
- sp3485功能及作用 6.8w次阅读
- sp3485推荐电路(几款收发芯片sp3485电路) 25.5w次阅读
- STM32调试SP3485技术总结 1.7w次阅读
- lwip获取ip地址说明 1.1w次阅读
- lwip协议栈源码详解说明 3.6w次阅读
- STM32F407-DP83848-Lwip移植方法 3.4w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多