資料介紹
描述
在我上一篇項(xiàng)目博文中,我介紹了如何在 Vivado 2021.2 中為基于 SP701 Spartan-7 的開發(fā) FPGA 板創(chuàng)建基礎(chǔ)硬件設(shè)計(jì)。該項(xiàng)目是涵蓋如何使用 Xilinx 的嵌入式軟件 IDE Vitis 在嵌入式 C 語言中創(chuàng)建輕量級(jí) IP (lwIP) 回顯服務(wù)器以在 SP701 上運(yùn)行的項(xiàng)目的延續(xù)。
如果您還不熟悉,Vitis 及其前身 Xilinx SDK 都有一個(gè)模板 lwIP 回顯服務(wù)器項(xiàng)目,可以用作起點(diǎn)并根據(jù)用戶的特定應(yīng)用需求進(jìn)行定制。我發(fā)現(xiàn)它作為為我的 FPGA 設(shè)計(jì)建立網(wǎng)絡(luò)通信的基準(zhǔn)非常方便,并且節(jié)省了大量時(shí)間,所以我不會(huì)在每次需要通過以太網(wǎng)連接控制我的 FPGA 時(shí)重新發(fā)明輪子。
作為高級(jí)概述,我將使用 lwIP 回顯服務(wù)器項(xiàng)目模板創(chuàng)建一個(gè)新的應(yīng)用程序項(xiàng)目,將 SP701 連接到我的本地網(wǎng)絡(luò),直接連接到我的路由器,然后使用套接字在我的主機(jī) PC 上創(chuàng)建一個(gè)簡單的 Python3 腳本來發(fā)送一些向 SP701 上的服務(wù)器測(cè)試數(shù)據(jù)包,看它們是否成功回顯。
啟動(dòng) Vitis
Vitis 可以直接從 Vivado 啟動(dòng),也可以從命令行獨(dú)立啟動(dòng)。
要從 Vivado 啟動(dòng),請(qǐng)選擇Tools > Launch Vitis IDE (這可以在 Vivado 中打開或不打開項(xiàng)目的情況下完成):
要從命令行啟動(dòng),首先獲取環(huán)境然后運(yùn)行 ??Vitis:
~$ source /tools/Xilinx/Vitis/2021.2/settings64.sh
~$ vitis
為這個(gè) Vitis 實(shí)例的工作區(qū)選擇一個(gè)目錄,我個(gè)人喜歡在 Vivado 項(xiàng)目的頂層創(chuàng)建一個(gè)文件夾,我在 Vitis 工作區(qū)中創(chuàng)建軟件中的硬件將基于該項(xiàng)目。這只是我保持一切井井有條的方式。
Vitis 最初將啟動(dòng)到一個(gè)完全空白的工作區(qū)。與它的前身 Xilinx SDK 不同,它會(huì)自動(dòng)從 Vivado 中提取導(dǎo)出的硬件平臺(tái)。
整個(gè)項(xiàng)目流程可以分解為以下步驟:
- 使用從 Vivado 導(dǎo)出的硬件平臺(tái)設(shè)計(jì)為目標(biāo)創(chuàng)建一個(gè)平臺(tái)項(xiàng)目。
- 創(chuàng)建一個(gè)應(yīng)用程序項(xiàng)目,其中包含要在目標(biāo)硬件的處理系統(tǒng)上運(yùn)行的實(shí)際 C 代碼。
- 使用硬件上的系統(tǒng)調(diào)試器等調(diào)試器調(diào)試應(yīng)用程序。
- 對(duì)目標(biāo)設(shè)備的閃存進(jìn)行編程。
我將介紹該項(xiàng)目的前三個(gè)步驟。
平臺(tái)項(xiàng)目
通過從空白工作區(qū)窗口中選擇創(chuàng)建平臺(tái)項(xiàng)目,基于從 Vivado 導(dǎo)出的硬件平臺(tái)(帶比特流)創(chuàng)建新的平臺(tái)項(xiàng)目。
彈出窗口將指導(dǎo)您完成用于命名平臺(tái)項(xiàng)目的參數(shù)選擇,并指向?yàn)槟繕?biāo)板(.xsa 文件)導(dǎo)出的硬件平臺(tái)所在的位置。
由于這是一個(gè)未使用 Linux 或 RTOS 等操作系統(tǒng)的裸機(jī)應(yīng)用程序,因此Operating system設(shè)置為standalone 。
目標(biāo)處理器是 Vivado 模塊設(shè)計(jì)microblaze_0中 MicroBlaze 處理器的實(shí)例化。
單擊 Finish,Vitis 將在空白工作區(qū)中生成平臺(tái)項(xiàng)目。
在這個(gè)特定實(shí)例中創(chuàng)建應(yīng)用程序項(xiàng)目之前,需要修改平臺(tái)項(xiàng)目中生成的 BSP 以包含 lwIP 庫,因?yàn)樵谛缕脚_(tái)項(xiàng)目中默認(rèn)情況下未啟用該特定庫
要修改 BSP 以添加 lwIP 庫,請(qǐng)選擇修改 BSP 設(shè)置...
然后在彈出窗口中,選中啟用lwip211的復(fù)選框并單擊OK 。
請(qǐng)注意,平臺(tái)項(xiàng)目顯示為已過期。這是因?yàn)榇藭r(shí)尚未構(gòu)建平臺(tái)項(xiàng)目,因此不存在輸出文件。運(yùn)行平臺(tái)項(xiàng)目的初始構(gòu)建,這樣它就不會(huì)再使用菜單欄中的構(gòu)建圖標(biāo)或按 ctrl+B 顯示為過時(shí)。
應(yīng)用項(xiàng)目
配置和構(gòu)建平臺(tái)項(xiàng)目后,基于它創(chuàng)建一個(gè)新的應(yīng)用程序項(xiàng)目。選擇新建>應(yīng)用程序項(xiàng)目...
在彈出窗口中,您可以跳過第一張幻燈片(它是我們生成應(yīng)用程序項(xiàng)目的步驟大綱)。選擇上一步中創(chuàng)建的平臺(tái)項(xiàng)目作為應(yīng)用程序的基礎(chǔ),然后單擊Next 。
根據(jù)需要命名應(yīng)用項(xiàng)目,Vitis 將自動(dòng)為其生成系統(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)目的最后一步是選擇一個(gè)項(xiàng)目模板,以完成初始啟動(dòng)中的一些基礎(chǔ)工作。正如我之前提到的,這個(gè)項(xiàng)目正在使用 lwIP 回顯服務(wù)器應(yīng)用程序模板。選擇它并單擊完成。
注意:如果您忘記修改 BSP 以啟用 lwip211 庫,F(xiàn)inish 按鈕將變灰,并且窗口頂部會(huì)出現(xiàn)一條警告消息,告訴您庫丟失。
同樣,Vitis 將為設(shè)計(jì)生成應(yīng)用程序項(xiàng)目和基礎(chǔ)代碼。
默認(rèn)代碼有很好的注釋,所以請(qǐng)隨意打開/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 中啟動(dòng) lwIP 服務(wù)器應(yīng)用程序的調(diào)試運(yùn)行。
然后,Vitis 將從開發(fā)視圖切換到調(diào)試視圖,將比特流編程到 FPGA 上,啟動(dòng) MicroBlaze,然后設(shè)置斷點(diǎn),使其在進(jìn)入 lwIP 應(yīng)用程序的主要功能后立即停止。
此時(shí),您可以像在任何其他調(diào)試器中一樣選擇逐步執(zhí)行/結(jié)束/退出,或者您可以單擊運(yùn)行/恢復(fù)/F8 (所有這些都位于菜單欄中)讓應(yīng)用程序正常運(yùn)行隨時(shí)暫停和單步執(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)擊+按鈕。將有三個(gè)枚舉串口,選擇三個(gè)中的第一個(gè)(例如,如果有 ttyUSB0、ttyUSB1 和 ttyUSB2,則選擇 ttyUSB0)。并以 9600 的波特率和默認(rèn) UART 設(shè)置連接到它。
現(xiàn)在單擊運(yùn)行將啟動(dòng)回顯服務(wù)器偵聽它在端口號(hào) 7 上建立的端口,如 UART 接口上的串行輸出所證明的那樣。這將告訴您 SP701 板的本地 IP 和鏈接狀態(tài)。
主機(jī) PC 回顯客戶端
為了測(cè)試 SP701 上的 lwIP 回顯服務(wù)器,我在 Python3 中拼湊了一個(gè)簡單的回顯客戶端腳本,我從與 SP701 位于同一本地網(wǎng)絡(luò)的 PC 上運(yùn)行該腳本。
該腳本在 SP701 的本地 IP(默認(rèn)為 192.168.1.10)的端口 7 上作為客戶端打開一個(gè)套接字,然后將一個(gè)字節(jié)數(shù)據(jù)包發(fā)送到回顯服務(wù)器。
發(fā)送數(shù)據(jù)包后,回顯服務(wù)器會(huì)等待,直到收到與發(fā)送出去的字節(jié)數(shù)相同的返回字節(jié),然后打印出接收到的數(shù)據(jù)包。一旦接收到預(yù)期的字節(jié)數(shù),echo 客戶端就會(huì)關(guān)閉套接字。關(guān)閉套接字很重要,因?yàn)槿绻贿@樣做并嘗試再次運(yùn)行腳本,它將掛起,因?yàn)樘捉幼仲Y源從未被釋放。
作為對(duì)連接的進(jìn)一步測(cè)試,您還可以從 PC 的命令行 ping SP701:
我認(rèn)為這將是啟動(dòng)和運(yùn)行 lwIP 的一個(gè)很好的停止點(diǎn)(我試圖將我的項(xiàng)目帖子保持在易于消耗的長度)。在未來的項(xiàng)目中,我將通過在回顯服務(wù)器中添加自定義函數(shù)來對(duì)此進(jìn)行擴(kuò)展,因此請(qǐng)保留此書簽。
- 使用LwIP TCP/IP棧,在STM32Cube上開發(fā)應(yīng)用
- SP701評(píng)估套件快速入門指南
- SP701評(píng)估板用戶指南
- 基于Spartan 7的FPGA開發(fā)板SP701入門
- 基于FreeRTOS+LwIP的SNMP實(shí)現(xiàn)方案V0
- p701功率序列及電路圖 4次下載
- 高精度原邊反饋開關(guān)電源芯片SP5719數(shù)據(jù)手冊(cè) 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)存管理知識(shí)匯總 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ù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 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)用手冊(cè)
- 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電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(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é)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多