資料介紹
描述
在我上一篇項目博文中,我介紹了如何在 Vivado 2021.2 中為基于 SP701 Spartan-7 的開發(fā) FPGA 板創(chuàng)建基礎(chǔ)硬件設(shè)計。該項目是涵蓋如何使用 Xilinx 的嵌入式軟件 IDE Vitis 在嵌入式 C 語言中創(chuàng)建輕量級 IP (lwIP) 回顯服務(wù)器以在 SP701 上運行的項目的延續(xù)。
如果您還不熟悉,Vitis 及其前身 Xilinx SDK 都有一個模板 lwIP 回顯服務(wù)器項目,可以用作起點并根據(jù)用戶的特定應(yīng)用需求進行定制。我發(fā)現(xiàn)它作為為我的 FPGA 設(shè)計建立網(wǎng)絡(luò)通信的基準非常方便,并且節(jié)省了大量時間,所以我不會在每次需要通過以太網(wǎng)連接控制我的 FPGA 時重新發(fā)明輪子。
作為高級概述,我將使用 lwIP 回顯服務(wù)器項目模板創(chuàng)建一個新的應(yīng)用程序項目,將 SP701 連接到我的本地網(wǎng)絡(luò),直接連接到我的路由器,然后使用套接字在我的主機 PC 上創(chuàng)建一個簡單的 Python3 腳本來發(fā)送一些向 SP701 上的服務(wù)器測試數(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 中提取導(dǎo)出的硬件平臺。
整個項目流程可以分解為以下步驟:
- 使用從 Vivado 導(dǎo)出的硬件平臺設(shè)計為目標創(chuàng)建一個平臺項目。
- 創(chuàng)建一個應(yīng)用程序項目,其中包含要在目標硬件的處理系統(tǒng)上運行的實際 C 代碼。
- 使用硬件上的系統(tǒng)調(diào)試器等調(diào)試器調(diào)試應(yīng)用程序。
- 對目標設(shè)備的閃存進行編程。
我將介紹該項目的前三個步驟。
平臺項目
通過從空白工作區(qū)窗口中選擇創(chuàng)建平臺項目,基于從 Vivado 導(dǎo)出的硬件平臺(帶比特流)創(chuàng)建新的平臺項目。
彈出窗口將指導(dǎo)您完成用于命名平臺項目的參數(shù)選擇,并指向為目標板(.xsa 文件)導(dǎo)出的硬件平臺所在的位置。
由于這是一個未使用 Linux 或 RTOS 等操作系統(tǒng)的裸機應(yīng)用程序,因此Operating system設(shè)置為standalone 。
目標處理器是 Vivado 模塊設(shè)計microblaze_0中 MicroBlaze 處理器的實例化。
單擊 Finish,Vitis 將在空白工作區(qū)中生成平臺項目。
在這個特定實例中創(chuàng)建應(yīng)用程序項目之前,需要修改平臺項目中生成的 BSP 以包含 lwIP 庫,因為在新平臺項目中默認情況下未啟用該特定庫
要修改 BSP 以添加 lwIP 庫,請選擇修改 BSP 設(shè)置...
然后在彈出窗口中,選中啟用lwip211的復(fù)選框并單擊OK 。
請注意,平臺項目顯示為已過期。這是因為此時尚未構(gòu)建平臺項目,因此不存在輸出文件。運行平臺項目的初始構(gòu)建,這樣它就不會再使用菜單欄中的構(gòu)建圖標或按 ctrl+B 顯示為過時。
應(yīng)用項目
配置和構(gòu)建平臺項目后,基于它創(chuàng)建一個新的應(yīng)用程序項目。選擇新建>應(yīng)用程序項目...
在彈出窗口中,您可以跳過第一張幻燈片(它是我們生成應(yīng)用程序項目的步驟大綱)。選擇上一步中創(chuàng)建的平臺項目作為應(yīng)用程序的基礎(chǔ),然后單擊Next 。
根據(jù)需要命名應(yīng)用項目,Vitis 將自動為其生成系統(tǒng)項目并將其與 MicroBlaze 軟處理器相關(guān)聯(lián)(假定它是唯一可運行的目標)。單擊下一步。
同樣,由于沒有操作系統(tǒng),域?qū)⑹?/font>standalone 。在 Vitis 中創(chuàng)建新應(yīng)用項目的最后一步是選擇一個項目模板,以完成初始啟動中的一些基礎(chǔ)工作。正如我之前提到的,這個項目正在使用 lwIP 回顯服務(wù)器應(yīng)用程序模板。選擇它并單擊完成。
注意:如果您忘記修改 BSP 以啟用 lwip211 庫,F(xiàn)inish 按鈕將變灰,并且窗口頂部會出現(xiàn)一條警告消息,告訴您庫丟失。
同樣,Vitis 將為設(shè)計生成應(yīng)用程序項目和基礎(chǔ)代碼。
默認代碼有很好的注釋,所以請隨意打開/src/main.c閱讀它并添加任何所需的自定義代碼。
為應(yīng)用程序項目運行構(gòu)建。
應(yīng)用調(diào)試
通過使用以太網(wǎng)電纜將 SP701 開發(fā)板連接到您的路由器來設(shè)置 SP701 開發(fā)板,將 USB 連接到 UART 端口 J5 到您的主機 PC,然后插入墻上適配器為 SP701 板供電。通過將 SW11 設(shè)置為 ON 位置來打開電路板。
通過在資源管理器窗口中右鍵單擊應(yīng)用程序名稱,然后選擇Debug As > Launch Hardware (Single Application Debug) ,在 Vitis 中啟動 lwIP 服務(wù)器應(yīng)用程序的調(diào)試運行。
然后,Vitis 將從開發(fā)視圖切換到調(diào)試視圖,將比特流編程到 FPGA 上,啟動 MicroBlaze,然后設(shè)置斷點,使其在進入 lwIP 應(yīng)用程序的主要功能后立即停止。
此時,您可以像在任何其他調(diào)試器中一樣選擇逐步執(zhí)行/結(jié)束/退出,或者您可以單擊運行/恢復(fù)/F8 (所有這些都位于菜單欄中)讓應(yīng)用程序正常運行隨時暫停和單步執(zhí)行的選項。
您還需要連接到 SP701 的 UART 串??行輸出。您可以使用您選擇的任何串行終端應(yīng)用程序執(zhí)行此操作,或使用 Vitis 中的內(nèi)置終端應(yīng)用程序。調(diào)試視圖底部有一組選項卡,包括Console 、Vitis Serial Terminal 、Executables 、Debug Shell 、Vitis Log 、Problems和Debugger Console 。
切換到Vitis 串行終端選項卡并點擊+按鈕。將有三個枚舉串口,選擇三個中的第一個(例如,如果有 ttyUSB0、ttyUSB1 和 ttyUSB2,則選擇 ttyUSB0)。并以 9600 的波特率和默認 UART 設(shè)置連接到它。
現(xiàn)在單擊運行將啟動回顯服務(wù)器偵聽它在端口號 7 上建立的端口,如 UART 接口上的串行輸出所證明的那樣。這將告訴您 SP701 板的本地 IP 和鏈接狀態(tài)。
主機 PC 回顯客戶端
為了測試 SP701 上的 lwIP 回顯服務(wù)器,我在 Python3 中拼湊了一個簡單的回顯客戶端腳本,我從與 SP701 位于同一本地網(wǎng)絡(luò)的 PC 上運行該腳本。
該腳本在 SP701 的本地 IP(默認為 192.168.1.10)的端口 7 上作為客戶端打開一個套接字,然后將一個字節(jié)數(shù)據(jù)包發(fā)送到回顯服務(wù)器。
發(fā)送數(shù)據(jù)包后,回顯服務(wù)器會等待,直到收到與發(fā)送出去的字節(jié)數(shù)相同的返回字節(jié),然后打印出接收到的數(shù)據(jù)包。一旦接收到預(yù)期的字節(jié)數(shù),echo 客戶端就會關(guān)閉套接字。關(guān)閉套接字很重要,因為如果您不這樣做并嘗試再次運行腳本,它將掛起,因為套接字資源從未被釋放。
作為對連接的進一步測試,您還可以從 PC 的命令行 ping SP701:
我認為這將是啟動和運行 lwIP 的一個很好的停止點(我試圖將我的項目帖子保持在易于消耗的長度)。在未來的項目中,我將通過在回顯服務(wù)器中添加自定義函數(shù)來對此進行擴展,因此請保留此書簽。
- 使用LwIP TCP/IP棧,在STM32Cube上開發(fā)應(yīng)用
- SP701評估套件快速入門指南
- SP701評估板用戶指南
- 基于Spartan 7的FPGA開發(fā)板SP701入門
- 基于FreeRTOS+LwIP的SNMP實現(xiàn)方案V0
- p701功率序列及電路圖 11次下載
- 高精度原邊反饋開關(guān)電源芯片SP5719數(shù)據(jù)手冊 22次下載
- 高性能低功耗開關(guān)電源控制芯片SP6621HP 16次下載
- LWIP協(xié)議棧中Raw TCP中使用 17次下載
- LwIP編程指南 47次下載
- LwIP協(xié)議詳解 49次下載
- NXPl788上lwip的無操作系統(tǒng)移植,基于Embest開發(fā)板 85次下載
- lwip協(xié)議中文版 0次下載
- Lwip協(xié)議棧的設(shè)計方案 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,低壓,單通道,導(dǎo)通電阻為2Ω的單刀單擲開關(guān)CBMG701/702 1051次閱讀
- LwIP中的ARP實現(xiàn)是什么 1402次閱讀
- 基于LwIP的UDP服務(wù)器設(shè)計 1840次閱讀
- 基于LwIP的TCP客戶端設(shè)計 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山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 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開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 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十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多