原創(chuàng)聲明:
本原創(chuàng)教程由芯驛電子科技(上海)有限公司(ALINX)創(chuàng)作,版權(quán)歸本公司所有,如需轉(zhuǎn)載,需授權(quán)并注明出處。
適用于板卡型號(hào):
AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG
vivado工程目錄為“ps_hello/vivado”
在實(shí)際工作中,會(huì)遇到產(chǎn)品升級(jí)問題,如果按照程序燒錄的方式,可能需要打開產(chǎn)品的外殼,這無疑。本章介紹一種通過網(wǎng)絡(luò)遠(yuǎn)程更新FLASH程序的方法,包含UDP和TCP兩種方法。
軟件工程師工作內(nèi)容
以下為軟件工程師負(fù)責(zé)內(nèi)容。
1. Vitis程序開發(fā)
1.1 UDP傳輸方式
1)LWIP部分主要處理BIN文件的接收,程序?yàn)閘wip_app.c
2)在創(chuàng)建工程后,需要使能lwip庫,并進(jìn)行設(shè)置,使能DHCP功能,將pbuf空間盡可能設(shè)置大一些,增大緩存空間,提高效率。
3)udp_receive函數(shù)為設(shè)置的接收回調(diào)函數(shù),主要功能是接收數(shù)據(jù),并將接收到的數(shù)據(jù)緩存到FlashRxBuffer空間,留待更新Flash使用,在發(fā)送數(shù)據(jù)后,再發(fā)送“update”命令,開始更新flash,在函數(shù)中判斷此命令。
4)在while循環(huán)語句中,判斷StartUpdate變量值,更新Flash。
1.2 TCP傳輸方式
1)TCP的LWIP部分同樣也是lwip_app.c文件,控制部分參考lwip echo server例程,建立一個(gè)TCP Server
2)與UDP類似,在recv_callback接收回調(diào)函數(shù)中,緩存接收到的BIN文件,啟動(dòng)更新命令同樣是update,其他部分也與UDP類似。
1.3 QSPI Flash讀寫控制
UDP和TCP兩種方式使用的是同樣的QSPI讀寫文件qspi.c和qspi.h
1)qspi.c文件是根據(jù)xqspipsu_generic_flash_polled_example做的修改
2)主要有以下一些函數(shù),寫使能及關(guān)閉,flash擦除,flash寫,flash讀,讀Flash ID等。
3)主要的函數(shù)為update_qspi,其中TotalLen為要更新的總字節(jié)數(shù),F(xiàn)lashDataToSend為存放更新數(shù)據(jù)的緩存區(qū)域,流程也比較簡(jiǎn)單,首先是擦除,在這里沒選擇擦除整個(gè)Flash,而是根據(jù)TotalLen大小進(jìn)行Sector擦除,因此擦除的空間會(huì)比TotalLen稍微大一點(diǎn);然后是寫Flash,利用FlashWrite函數(shù)進(jìn)行寫入;最后是校驗(yàn),從Flash里讀出數(shù)據(jù),并與寫入的數(shù)據(jù)進(jìn)行對(duì)比。
2. 板上驗(yàn)證
我們可以選擇其他例程的BOOT.bin文件。我們是設(shè)定網(wǎng)絡(luò)環(huán)境理想狀態(tài)下做的實(shí)驗(yàn),在做此實(shí)驗(yàn)時(shí),不要打開其他有關(guān)以太網(wǎng)傳輸?shù)?a target="_blank">上位機(jī)軟件,由于端口號(hào)一樣,可能會(huì)造成沖突。
1)首先連接開發(fā)板,將網(wǎng)線連接到網(wǎng)口
2)如果有DHCP服務(wù)器,會(huì)自動(dòng)分配IP給開發(fā)板;如果沒有DHCP服務(wù)器,默認(rèn)開發(fā)板IP地址為192.168.1.10,需要將PC的IP地址設(shè)為同一網(wǎng)段,如下圖所示。同時(shí)要確保網(wǎng)絡(luò)里沒有192.168.1.10的IP地址,否則會(huì)造成IP沖突,導(dǎo)致無法顯示。可以在板子未上電前在CMD里輸入ping 192.168.1.10查看是否能ping通,如果ping通,說明網(wǎng)絡(luò)中有此IP地址,就無法驗(yàn)證。
沒有問題之后打開串口軟件。
2.1 UDP方式
2)打開工程目錄下的板卡網(wǎng)絡(luò)升級(jí)軟件
3)填入板卡的IP地址和端口號(hào),選擇UDP發(fā)送方式,選擇BOOT.bin文件,點(diǎn)擊發(fā)送
4)發(fā)送完畢后,會(huì)顯示發(fā)送的字節(jié)數(shù)
5)在串口窗口可以看到板卡接收到的字節(jié)數(shù),以及擦除,燒寫,校驗(yàn)過程。
6)斷電通撥碼開關(guān)選擇QSPI啟動(dòng)方式,打開電源啟動(dòng),即可看到程序運(yùn)行起來。
2.2 TCP方式
1)下載程序,可以看到串口信息
2)打開工程目錄下的板卡網(wǎng)絡(luò)升級(jí)軟件
3)填入IP地址和端口號(hào),選擇TCP發(fā)送方式,選擇BOOT.bin文件,點(diǎn)擊發(fā)送
4)與UDP一樣,也能看到發(fā)送的字節(jié)數(shù)
5)在串口窗口可以看到板卡接收到的字節(jié)數(shù),以及擦除,燒寫,校驗(yàn)過程。
6)斷電通過撥碼開關(guān)選擇QSPI啟動(dòng)方式,打開電源啟動(dòng),即可看到程序運(yùn)行起來。
-
FPGA
+關(guān)注
關(guān)注
1625文章
21620瀏覽量
601232 -
FlaSh
+關(guān)注
關(guān)注
10文章
1614瀏覽量
147652 -
Zynq
+關(guān)注
關(guān)注
9文章
607瀏覽量
47101 -
QSPI
+關(guān)注
關(guān)注
0文章
41瀏覽量
12151 -
MPSoC
+關(guān)注
關(guān)注
0文章
196瀏覽量
24230
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論