電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>SP701上的lwIP入門

SP701上的lwIP入門

2023-02-09 | zip | 6.59 MB | 次下載 | 免費(fèi)

資料介紹

描述

在我上一篇項(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 都有一個(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ā)明輪子。

作為高級概述,我將使用 lwIP 回顯服務(wù)器項(xiàng)目模板創(chuàng)建一個(gè)新的應(yīng)用程序項(xiàng)目,將 SP701 連接到我的本地網(wǎng)絡(luò),直接連接到我的路由器,然后使用套接字在我的主機(jī) PC 上創(chuàng)建一個(gè)簡單的 Python3 腳本來發(fā)送一些向 SP701 上的服務(wù)器測試數(shù)據(jù)包,看它們是否成功回顯。

啟動(dòng) Vitis

Vitis 可以直接從 Vivado 啟動(dòng),也可以從命令行獨(dú)立啟動(dòng)。

要從 Vivado 啟動(dòng),請選擇Tools > Launch Vitis IDE (這可以在 Vivado 中打開或不打開項(xiàng)目的情況下完成):

poYBAGPjO4eAA6DMAABxGPqjRIU665.png
?

要從命令行啟動(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)目。這只是我保持一切井井有條的方式。

?
?
?
poYBAGPjO5OATgJzAABh3F05NO8320.png
?
1 / 3
?

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

pYYBAGPjO5mAOvTzAADd3Y_zIuM483.png
?

整個(gè)項(xiàng)目流程可以分解為以下步驟:

  • 使用從 Vivado 導(dǎo)出的硬件平臺設(shè)計(jì)為目標(biāo)創(chuàng)建一個(gè)平臺項(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)用程序。
  • 對目標(biāo)設(shè)備的閃存進(jìn)行編程。

我將介紹該項(xiàng)目的前三個(gè)步驟。

平臺項(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)出的硬件平臺所在的位置。

由于這是一個(gè)未使用 LinuxRTOS操作系統(tǒng)的裸機(jī)應(yīng)用程序,因此Operating system設(shè)置為standalone

目標(biāo)處理器是 Vivado 模塊設(shè)計(jì)microblaze_0中 MicroBlaze 處理器的實(shí)例化。

?
?
?
pYYBAGPjO56AUs-EAACFRrxltUk426.png
?
1 / 2
?

單擊 Finish,Vitis 將在空白工作區(qū)中生成平臺項(xiàng)目。

在這個(gè)特定實(shí)例中創(chuàng)建應(yīng)用程序項(xiàng)目之前,需要修改平臺項(xiàng)目中生成的 BSP 以包含 lwIP 庫,因?yàn)樵谛缕脚_項(xiàng)目中默認(rèn)情況下未啟用該特定庫

要修改 BSP 以添加 lwIP 庫,請選擇修改 BSP 設(shè)置...

pYYBAGPjbdCAa9bYAACW_AGWbxc460.png
?

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

poYBAGPjbdaAc5WnAACNcUh1zTQ847.png
?

請注意,平臺項(xiàng)目顯示為已過期。這是因?yàn)榇藭r(shí)尚未構(gòu)建平臺項(xiàng)目,因此不存在輸出文件。運(yùn)行平臺項(xiàng)目的初始構(gòu)建,這樣它就不會(huì)再使用菜單欄中的構(gòu)建圖標(biāo)或按 ctrl+B 顯示為過時(shí)。

?
?
?
pYYBAGPjbdmADfJDAAIhB2fR84k467.png
?
1 / 2
?

應(yīng)用項(xiàng)目

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

poYBAGPjbd-AXxHyAACMqrBrHVE357.png
?

在彈出窗口中,您可以跳過第一張幻燈片(它是我們生成應(yīng)用程序項(xiàng)目的步驟大綱)。選擇上一步中創(chuàng)建的平臺項(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)一條警告消息,告訴您庫丟失。

?
?
?
pYYBAGPjbeSABZZrAABhCAlPNOI403.png
?
1 / 5
?

同樣,Vitis 將為設(shè)計(jì)生成應(yīng)用程序項(xiàng)目和基礎(chǔ)代碼。

poYBAGPjbgCAXCOoAAPxydCALt0275.png
?

默認(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 位置來打開電路板。

pYYBAGPjbhaAWDdJAAU947EylHg333.png
?

通過在資源管理器窗口中右鍵單擊應(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)用程序的主要功能后立即停止。

pYYBAGPjbhyAHtYOAAHpZly6pEk804.png
?

此時(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 、ProblemsDebugger Console 。

切換到Vitis 串行終端選項(xiàng)卡并點(diǎn)擊+按鈕。將有三個(gè)枚舉串口,選擇三個(gè)中的第一個(gè)(例如,如果有 ttyUSB0、ttyUSB1 和 ttyUSB2,則選擇 ttyUSB0)。并以 9600 的波特率和默認(rèn) UART 設(shè)置連接到它。

pYYBAGPjfh-AIst6AAOxdrRI2Dw541.png
?

現(xiàn)在單擊運(yùn)行將啟動(dòng)回顯服務(wù)器偵聽它在端口號 7 上建立的端口,如 UART 接口上的串行輸出所證明的那樣。這將告訴您 SP701 板的本地 IP 和鏈接狀態(tài)。

主機(jī) PC 回顯客戶端

為了測試 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源從未被釋放。

pYYBAGPjfiKABCXTAAIN1a-oV4Y971.png
?

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

poYBAGPjfiaAOwEFAAFU4uQ8ZRc560.png
?

我認(rèn)為這將是啟動(dòng)和運(yùn)行 lwIP 的一個(gè)很好的停止點(diǎn)(我試圖將我的項(xiàng)目帖子保持在易于消耗的長度)。在未來的項(xiàng)目中,我將通過在回顯服務(wù)器中添加自定義函數(shù)來對此進(jìn)行擴(kuò)展,因此請保留此書簽。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)