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