資料介紹
描述
在我上一篇項目博文中,我介紹了如何在 Vivado 2021.2 中為基于 SP701 Spartan-7 的開發(fā) FPGA 板創(chuàng)建基礎硬件設計。該項目是涵蓋如何使用 Xilinx 的嵌入式軟件 IDE Vitis 在嵌入式 C 語言中創(chuàng)建輕量級 IP (lwIP) 回顯服務器以在 SP701 上運行的項目的延續(xù)。
如果您還不熟悉,Vitis 及其前身 Xilinx SDK 都有一個模板 lwIP 回顯服務器項目,可以用作起點并根據(jù)用戶的特定應用需求進行定制。我發(fā)現(xiàn)它作為為我的 FPGA 設計建立網(wǎng)絡通信的基準非常方便,并且節(jié)省了大量時間,所以我不會在每次需要通過以太網(wǎng)連接控制我的 FPGA 時重新發(fā)明輪子。
作為高級概述,我將使用 lwIP 回顯服務器項目模板創(chuàng)建一個新的應用程序項目,將 SP701 連接到我的本地網(wǎng)絡,直接連接到我的路由器,然后使用套接字在我的主機 PC 上創(chuàng)建一個簡單的 Python3 腳本來發(fā)送一些向 SP701 上的服務器測試數(shù)據(jù)包,看它們是否成功回顯。
啟動 Vitis
Vitis 可以直接從 Vivado 啟動,也可以從命令行獨立啟動。
要從 Vivado 啟動,請選擇Tools > Launch Vitis IDE (這可以在 Vivado 中打開或不打開項目的情況下完成):

要從命令行啟動,首先獲取環(huán)境然后運行 ??Vitis:
~$ source /tools/Xilinx/Vitis/2021.2/settings64.sh
~$ vitis
為這個 Vitis 實例的工作區(qū)選擇一個目錄,我個人喜歡在 Vivado 項目的頂層創(chuàng)建一個文件夾,我在 Vitis 工作區(qū)中創(chuàng)建軟件中的硬件將基于該項目。這只是我保持一切井井有條的方式。

Vitis 最初將啟動到一個完全空白的工作區(qū)。與它的前身 Xilinx SDK 不同,它會自動從 Vivado 中提取導出的硬件平臺。

整個項目流程可以分解為以下步驟:
- 使用從 Vivado 導出的硬件平臺設計為目標創(chuàng)建一個平臺項目。
- 創(chuàng)建一個應用程序項目,其中包含要在目標硬件的處理系統(tǒng)上運行的實際 C 代碼。
- 使用硬件上的系統(tǒng)調(diào)試器等調(diào)試器調(diào)試應用程序。
- 對目標設備的閃存進行編程。
我將介紹該項目的前三個步驟。
平臺項目
通過從空白工作區(qū)窗口中選擇創(chuàng)建平臺項目,基于從 Vivado 導出的硬件平臺(帶比特流)創(chuàng)建新的平臺項目。
彈出窗口將指導您完成用于命名平臺項目的參數(shù)選擇,并指向為目標板(.xsa 文件)導出的硬件平臺所在的位置。
由于這是一個未使用 Linux 或 RTOS 等操作系統(tǒng)的裸機應用程序,因此Operating system設置為standalone 。
目標處理器是 Vivado 模塊設計microblaze_0中 MicroBlaze 處理器的實例化。

單擊 Finish,Vitis 將在空白工作區(qū)中生成平臺項目。
在這個特定實例中創(chuàng)建應用程序項目之前,需要修改平臺項目中生成的 BSP 以包含 lwIP 庫,因為在新平臺項目中默認情況下未啟用該特定庫
要修改 BSP 以添加 lwIP 庫,請選擇修改 BSP 設置...

然后在彈出窗口中,選中啟用lwip211的復選框并單擊OK 。

請注意,平臺項目顯示為已過期。這是因為此時尚未構建平臺項目,因此不存在輸出文件。運行平臺項目的初始構建,這樣它就不會再使用菜單欄中的構建圖標或按 ctrl+B 顯示為過時。

應用項目
配置和構建平臺項目后,基于它創(chuàng)建一個新的應用程序項目。選擇新建>應用程序項目...

在彈出窗口中,您可以跳過第一張幻燈片(它是我們生成應用程序項目的步驟大綱)。選擇上一步中創(chuàng)建的平臺項目作為應用程序的基礎,然后單擊Next 。
根據(jù)需要命名應用項目,Vitis 將自動為其生成系統(tǒng)項目并將其與 MicroBlaze 軟處理器相關聯(lián)(假定它是唯一可運行的目標)。單擊下一步。
同樣,由于沒有操作系統(tǒng),域?qū)⑹?/font>standalone 。在 Vitis 中創(chuàng)建新應用項目的最后一步是選擇一個項目模板,以完成初始啟動中的一些基礎工作。正如我之前提到的,這個項目正在使用 lwIP 回顯服務器應用程序模板。選擇它并單擊完成。
注意:如果您忘記修改 BSP 以啟用 lwip211 庫,F(xiàn)inish 按鈕將變灰,并且窗口頂部會出現(xiàn)一條警告消息,告訴您庫丟失。

同樣,Vitis 將為設計生成應用程序項目和基礎代碼。

默認代碼有很好的注釋,所以請隨意打開/src/main.c閱讀它并添加任何所需的自定義代碼。
為應用程序項目運行構建。
應用調(diào)試
通過使用以太網(wǎng)電纜將 SP701 開發(fā)板連接到您的路由器來設置 SP701 開發(fā)板,將 USB 連接到 UART 端口 J5 到您的主機 PC,然后插入墻上適配器為 SP701 板供電。通過將 SW11 設置為 ON 位置來打開電路板。

通過在資源管理器窗口中右鍵單擊應用程序名稱,然后選擇Debug As > Launch Hardware (Single Application Debug) ,在 Vitis 中啟動 lwIP 服務器應用程序的調(diào)試運行。
然后,Vitis 將從開發(fā)視圖切換到調(diào)試視圖,將比特流編程到 FPGA 上,啟動 MicroBlaze,然后設置斷點,使其在進入 lwIP 應用程序的主要功能后立即停止。

此時,您可以像在任何其他調(diào)試器中一樣選擇逐步執(zhí)行/結束/退出,或者您可以單擊運行/恢復/F8 (所有這些都位于菜單欄中)讓應用程序正常運行隨時暫停和單步執(zhí)行的選項。
您還需要連接到 SP701 的 UART 串??行輸出。您可以使用您選擇的任何串行終端應用程序執(zhí)行此操作,或使用 Vitis 中的內(nèi)置終端應用程序。調(diào)試視圖底部有一組選項卡,包括Console 、Vitis Serial Terminal 、Executables 、Debug Shell 、Vitis Log 、Problems和Debugger Console 。
切換到Vitis 串行終端選項卡并點擊+按鈕。將有三個枚舉串口,選擇三個中的第一個(例如,如果有 ttyUSB0、ttyUSB1 和 ttyUSB2,則選擇 ttyUSB0)。并以 9600 的波特率和默認 UART 設置連接到它。

現(xiàn)在單擊運行將啟動回顯服務器偵聽它在端口號 7 上建立的端口,如 UART 接口上的串行輸出所證明的那樣。這將告訴您 SP701 板的本地 IP 和鏈接狀態(tài)。
主機 PC 回顯客戶端
為了測試 SP701 上的 lwIP 回顯服務器,我在 Python3 中拼湊了一個簡單的回顯客戶端腳本,我從與 SP701 位于同一本地網(wǎng)絡的 PC 上運行該腳本。
該腳本在 SP701 的本地 IP(默認為 192.168.1.10)的端口 7 上作為客戶端打開一個套接字,然后將一個字節(jié)數(shù)據(jù)包發(fā)送到回顯服務器。
發(fā)送數(shù)據(jù)包后,回顯服務器會等待,直到收到與發(fā)送出去的字節(jié)數(shù)相同的返回字節(jié),然后打印出接收到的數(shù)據(jù)包。一旦接收到預期的字節(jié)數(shù),echo 客戶端就會關閉套接字。關閉套接字很重要,因為如果您不這樣做并嘗試再次運行腳本,它將掛起,因為套接字資源從未被釋放。

作為對連接的進一步測試,您還可以從 PC 的命令行 ping SP701:

我認為這將是啟動和運行 lwIP 的一個很好的停止點(我試圖將我的項目帖子保持在易于消耗的長度)。在未來的項目中,我將通過在回顯服務器中添加自定義函數(shù)來對此進行擴展,因此請保留此書簽。
- 使用LwIP TCP/IP棧,在STM32Cube上開發(fā)應用
- SP701評估套件快速入門指南
- SP701評估板用戶指南
- 基于Spartan 7的FPGA開發(fā)板SP701入門
- 基于FreeRTOS+LwIP的SNMP實現(xiàn)方案V0
- p701功率序列及電路圖 11次下載
- 高精度原邊反饋開關電源芯片SP5719數(shù)據(jù)手冊 22次下載
- 高性能低功耗開關電源控制芯片SP6621HP 16次下載
- LWIP協(xié)議棧中Raw TCP中使用 17次下載
- LwIP編程指南 47次下載
- LwIP協(xié)議詳解 49次下載
- NXPl788上lwip的無操作系統(tǒng)移植,基于Embest開發(fā)板 85次下載
- lwip協(xié)議中文版 0次下載
- Lwip協(xié)議棧的設計方案 33次下載
- 宏基AC701彩顯圖紙
- 利用LWIP 2.2實現(xiàn)以太網(wǎng)的DHCP功能 1112次閱讀
- 如何在i.MX RT微控制器上初始化LWIP協(xié)議棧 412次閱讀
- 基于MM32F5270的Ethernet實現(xiàn)LwIP協(xié)議棧移植 1282次閱讀
- lwip協(xié)議棧代碼分析 2068次閱讀
- 一款CMOS,低壓,單通道,導通電阻為2Ω的單刀單擲開關CBMG701/702 1051次閱讀
- LwIP中的ARP實現(xiàn)是什么 1402次閱讀
- 基于LwIP的UDP服務器設計 1840次閱讀
- 基于LwIP的TCP客戶端設計 2321次閱讀
- 如何更好的理解LWIP協(xié)議 4259次閱讀
- Zynq在sdk中選擇lwip模板的參數(shù)優(yōu)化 6239次閱讀
- LWIP內(nèi)存管理知識匯總 6953次閱讀
- sp3485推薦電路(幾款收發(fā)芯片sp3485電路) 25.7w次閱讀
- lwip獲取ip地址說明 1.2w次閱讀
- lwip協(xié)議棧源碼詳解說明 3.7w次閱讀
- STM32F407-DP83848-Lwip移植方法 3.5w次閱讀
下載排行
本周
- 1涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 2錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 29次下載 | 1 積分
- 3錦銳CA51F005 SDK開發(fā)包
- 19.47 MB | 3次下載 | 1 積分
- 4蘋果iphone 11電路原理圖
- 4.98 MB | 3次下載 | 2 積分
- 5基礎模擬電子電路
- 3.80 MB | 3次下載 | 1 積分
- 6RA-Eco-RA6M4-100PIN-V1.0開發(fā)板資料
- 34.89 MB | 1次下載 | 免費
- 7STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊
- 3.32 MB | 1次下載 | 免費
- 8聯(lián)想A820t手機維修圖紙包括主板原理圖 尾板原理圖 點位圖
- 0.62 MB | 次下載 | 5 積分
本月
- 1AI智能眼鏡產(chǎn)業(yè)鏈分析
- 4.43 MB | 383次下載 | 免費
- 2蘇泊爾電磁爐線路的電路原理圖資料合集
- 2.02 MB | 296次下載 | 5 積分
- 3貼片三極管上的印字與真實名稱的對照表詳細說明
- 0.50 MB | 94次下載 | 1 積分
- 4長虹液晶電視R-HS310B-5HF01的電源板電路原理圖
- 0.46 MB | 91次下載 | 5 積分
- 5涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 6錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 29次下載 | 1 積分
- 7AO4803A雙P通道增強型場效應晶體管的數(shù)據(jù)手冊
- 0.11 MB | 28次下載 | 2 積分
- 8長虹液晶彩電LS29機芯的技術資料說明
- 3.42 MB | 16次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191388次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論