欧美亚洲综合图区在线|天天射天天干国产成卜|99久久免费国产精精品|国产的欧美一区二区三区|日韩中文字幕无码不卡专区|亚麻成人aV极品一区二区|国产成人AV区一区二区三|成人免费一区二区三区视频网站

當(dāng)前位置:首頁(yè) > 軟件開(kāi)放 > 正文內(nèi)容

flash添加代碼(flash添加代碼跳轉(zhuǎn))

軟件開(kāi)放8個(gè)月前 (05-22)432

本文主要包含MultiBoot的功能簡(jiǎn)介、流程介紹和工程實(shí)現(xiàn)幾個(gè)部分的講解。

我們先從它的功能介紹講起來(lái); MultiBoot功能是大部分Xilinx FPGA可以實(shí)現(xiàn)的固有特性;其主要優(yōu)點(diǎn)如下所示:

1、我們可以把多個(gè)bitstream存儲(chǔ)在配置Flash中,通過(guò)MultiBoot功能來(lái)實(shí)現(xiàn)多個(gè)bitstream之間的動(dòng)態(tài)切換,從而達(dá)到使用FPGA來(lái)實(shí)現(xiàn)多種任務(wù);

2、在一個(gè)工程里面實(shí)現(xiàn)多個(gè)功能模塊,而每個(gè)功能模塊不需要同時(shí)運(yùn)行的情況,可以通過(guò)MultiBoot功能使用相對(duì)小規(guī)模的FPGA來(lái)實(shí)現(xiàn)其功能,從而提高性價(jià)比;

3、MultiBoot和Fallback可以支持實(shí)現(xiàn)FPGA遠(yuǎn)程在線升級(jí),當(dāng)升級(jí)bit有錯(cuò)誤可以觸發(fā)Fallback來(lái)返回到Golden Image去正常運(yùn)行。

Golden Image里面正常會(huì)包含F(xiàn)PGA實(shí)現(xiàn)的基本功能,例如外設(shè)配置和初始化、遠(yuǎn)程升級(jí)等等客戶需要的基本功能;如果Golden Image損壞的情況下,F(xiàn)PGA是無(wú)法工作的,需要返回工廠重新手動(dòng)燒寫(xiě)bit文件到Flash中。

Golden Image設(shè)計(jì)要求主要包含下面幾點(diǎn):

1、IPROG(Internal program) command在Golden Image里面可以通過(guò)設(shè)置bitstream setting里面的next configuration address (BITSTREAM.CONFIG.NEXT_CONFIG_ADDR),或者在HDL代碼使用ICAPE3原語(yǔ)來(lái)設(shè)定加載地址值;通過(guò)設(shè)置BITSTREAM.CONFIG.NEXT_CONFIG_REBOOTDISABLE來(lái)把

IPROG command關(guān)掉,在這種情況下上電后會(huì)直接去加載Golden Image;

2、跳轉(zhuǎn)地址寄存器WBSTAR(warm boot start address)可以在bitstream或者ICAP里面來(lái)設(shè)定;

3、MultiBoot Image必須存儲(chǔ)在WBSTAR設(shè)置的Flash地址位置;

4、Watchdog timer包含configuration monitor和user logic monitor兩種模式;在配置模式下面,Timer times out情況下,配置電路會(huì)去加載fallback bitstream。Watchdog Timer可以在bitstream options里面使能。

Golden Image是從Flash中的0地址開(kāi)始存儲(chǔ);其幀頭會(huì)包括WBSTAR(next_config_addr)寄存器里面指定的upper address space等信息。FPGA器件上電后會(huì)從0地址開(kāi)始加載Golden Image后,會(huì)根據(jù)里面的設(shè)定來(lái)決定加載Golden Image還是直接跳轉(zhuǎn)到MultiBoot Image存儲(chǔ)地址去執(zhí)行MultiBoot Image;當(dāng)MultiBoot Image加載時(shí)候遇到錯(cuò)誤,F(xiàn)allback電路會(huì)觸發(fā)去重新從0地址去加載Golden Image。其流程如圖所示:

展開(kāi)全文

MultiBootImage是從設(shè)定好的upper address space去加載運(yùn)行;如果加載出現(xiàn)問(wèn)題,F(xiàn)allback電路會(huì)去加載Golden Image。我們可以在Golden Image里面去修復(fù)Multiboot Image里面的錯(cuò)誤等等問(wèn)題。所以說(shuō)MultiBoot Image里面運(yùn)行的就是我們要實(shí)現(xiàn)的具體業(yè)務(wù)功能,可以是多個(gè)Multiboot Image。

Golden Image設(shè)計(jì)要求主要包含下面幾點(diǎn):

1、WBSTAR里面的值要指向MultiBoot存儲(chǔ)位置;

2、Watchdog Timer功能要bitstream options里面使能;

3、代碼里面可以通過(guò)IPROG命令去運(yùn)行ICAPE3來(lái)跳轉(zhuǎn)想要運(yùn)行其他的MultiBoot Image。

MultiBoot加載流程如圖所示:

在配置過(guò)程中遇到IDCODE error、CRC error、Watchdog timer timeout error、BPI address wraparound error情況會(huì)觸發(fā)fallback。Fallback功能可以通過(guò)使能bitstream.config.configfallback enable里面的ConfigFallback選項(xiàng)來(lái)實(shí)現(xiàn)。當(dāng)fallback運(yùn)行時(shí),Watchdog Timer\IPROG是disable的;另外當(dāng)fallback重新配置FPGA出錯(cuò)情況下,配置電路會(huì)停止工作同時(shí)會(huì)把INIT_B\Done保持為低電平。

MultiBoot功能可以通過(guò)設(shè)置下面bitstream里面的參數(shù)來(lái)實(shí)現(xiàn)。這些參數(shù)可以通過(guò)Tcl console或者寫(xiě)入到XDC文件里面來(lái)實(shí)現(xiàn)其功能。

在前面介紹其功能作用和含義等等后,下面我們開(kāi)始工程實(shí)現(xiàn)。

本人使用Vivado版本為2020.2;硬件基于米聯(lián)客設(shè)計(jì)的KU040板卡。先建立Golden Image的工程,里面包括HDL文件和XDC約束。

Golden Image的工程里面代碼主要是把led1燈點(diǎn)亮。XDC里面包括IO約束信息等等,其中0x040000是Multiboot Image存放Flash里面的物理地址。

Multiboot Image led2的工程里面代碼主要是把led1燈點(diǎn)亮。XDC里面包括IO約束和配置約束信息等等,可以看到是和Golden Image工程里面約束是有差異的。

在工程建立完成后開(kāi)始合并bit文件并燒入到板卡里面:

1、使用下面tcl去把兩個(gè)bit文件合為一個(gè)mcs文件;

2、通過(guò)Hardware Manager去燒入到板卡的Flash中;

3、燒寫(xiě)完成后選擇Boot from Configuration Memory Devive去加載FPGA。

flash添加代碼(flash添加代碼跳轉(zhuǎn))

4、在FPGA加載后可以看到板卡上面LED2燈點(diǎn)亮。

5、在Hardware Device Properties的BOOT_STATUS里面可以看到INTERNAL_PROG使能;由于加載沒(méi)有錯(cuò)誤,目前運(yùn)行的是Multiboot程序。CONFIG_SATUS里面可以看到DON_PIN拉高。

下面我們嘗試把 multiboot image里面的IDCODE修改掉,人為的造成錯(cuò)誤來(lái)驗(yàn)證板卡是否會(huì)跳轉(zhuǎn)到Golden Image去執(zhí)行。

1、使用UltraEdit把ku_multiboot_spix4.mcs打開(kāi)后,搜索到Update.bit里面的KU040的IDCODE3822093,并把它修改為0;重新生成ku_multiboot_spix4 _id.mcs文件燒入到FPGA.

2、按照前面流程合成bit文件后燒入到Flash中并上電;

3、在FPGA加載后可以看到板卡上面LED1燈點(diǎn)亮;證明Fallback功能生效,當(dāng)Multiboot Image損壞后可以安全加載Golden Image。

4、 在Hardware Device Properties的BOOT_STATUS里面可以看到INTERNAL_PROG使能,ID_ERROR拉高;這時(shí)候Multiboot Image加載遇到ID錯(cuò)誤,F(xiàn)PGA返回到Golden Image去運(yùn)行。

我們可以再嘗試把 multibootimage其他部分破壞掉導(dǎo)致CRC出錯(cuò)來(lái)驗(yàn)證功能。

1、 使用UltraEdit把ku_multiboot_spix4.mcs打開(kāi)后,在Update.bit里面做如下修改來(lái)驗(yàn)證CRC錯(cuò)誤情況。

2、 燒入到板卡上電后;由于multiboot image里面有CRC錯(cuò)誤,所以板卡還是返回到Golden Image去運(yùn)行。

除了前面我們?cè)赽itstream里面去實(shí)現(xiàn)Multiboot功能,我們還可以在代碼里面嵌入IPROG的命令來(lái)實(shí)現(xiàn)Image的跳轉(zhuǎn)功能。

代碼里面使用IPROG功能的流程如下圖所示:

我們可以在點(diǎn)亮LED2的那個(gè)工程來(lái)做相關(guān)修改:

1、 我們?cè)邳c(diǎn)LED2燈的MultiBoot Image LED2工程里面加入ICAPE3代碼;

2、 根據(jù)前面命令流程圖在代碼里面實(shí)現(xiàn)其功能;其中Warm Boot Start Address要跟bit文件在Flash里面位置對(duì)應(yīng)起來(lái),不然跳轉(zhuǎn)后會(huì)找不到對(duì)應(yīng)的image導(dǎo)致失敗。

3、 建立點(diǎn)亮MultiBoot Image LED3工程來(lái)配合前面IPROG命令功能;這樣可以通過(guò)MultiBoot Image LED2 工程里面的IPROG命令在FPGA不斷電的情況下實(shí)時(shí)把切換MultiBoot Image LED3到工程來(lái)點(diǎn)亮LED3。

4、 使用下面tcl去把兩個(gè)bit文件合為一個(gè)mcs文件;

5、 燒寫(xiě)完成后選擇Boot from Configuration Memory Devive去加載FPGA,然后通過(guò)外置按鍵來(lái)執(zhí)行MultiBoot Image LED2 工程里面的IPROG命令去實(shí)現(xiàn)跳轉(zhuǎn)。

前面篇章對(duì)Xilinx的Multiboot進(jìn)行簡(jiǎn)介和工程實(shí)現(xiàn);主要參考文章有 UG574\UG974\XAPP1257等等。

如果您有此類問(wèn)題需要討論或者需要實(shí)際工程驗(yàn)證,請(qǐng)聯(lián)系我們:

simonyang@comtech.com.cn

charlesxu@comtech.com.cn

關(guān)注我們

掃描二維碼推送至手機(jī)訪問(wèn)。

版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。

本文鏈接:http://www.landcheck.net/post/115798.html

標(biāo)簽: flash添加代碼

“flash添加代碼(flash添加代碼跳轉(zhuǎn))” 的相關(guān)文章

常用軟件開(kāi)發(fā)工具(軟件開(kāi)發(fā)工具大全)

常用軟件開(kāi)發(fā)工具(軟件開(kāi)發(fā)工具大全)

今天給各位分享常用軟件開(kāi)發(fā)工具的知識(shí),其中也會(huì)對(duì)軟件開(kāi)發(fā)工具大全進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!本文目錄一覽: 1、軟件開(kāi)發(fā)工具都有哪些? 2、常用的編程軟件有那些 3、軟件開(kāi)發(fā)工具有哪些? 軟件開(kāi)發(fā)工具都有哪些? 軟件開(kāi)發(fā)工具依照工具的功能有以下這些...

創(chuàng)建教務(wù)管理系統(tǒng)數(shù)據(jù)庫(kù)(學(xué)校教務(wù)管理系統(tǒng)數(shù)據(jù)庫(kù))

創(chuàng)建教務(wù)管理系統(tǒng)數(shù)據(jù)庫(kù)(學(xué)校教務(wù)管理系統(tǒng)數(shù)據(jù)庫(kù))

本篇文章給大家談?wù)剟?chuàng)建教務(wù)管理系統(tǒng)數(shù)據(jù)庫(kù),以及學(xué)校教務(wù)管理系統(tǒng)數(shù)據(jù)庫(kù)對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、數(shù)據(jù)庫(kù)原理設(shè)計(jì)教務(wù)管理系統(tǒng)信息要求是什么 2、求幫忙做個(gè)數(shù)據(jù)庫(kù)綜合教務(wù)管理系統(tǒng) 3、如何用SQL建立一個(gè)學(xué)生信息管理系統(tǒng)數(shù)據(jù)庫(kù) 4、簡(jiǎn)述創(chuàng)建一個(gè)...

vscode運(yùn)行python代碼結(jié)果怎么看(vscode如何查找代碼)

vscode運(yùn)行python代碼結(jié)果怎么看(vscode如何查找代碼)

今天給各位分享vscode運(yùn)行python代碼結(jié)果怎么看的知識(shí),其中也會(huì)對(duì)vscode如何查找代碼進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!本文目錄一覽: 1、pycharm中python運(yùn)行結(jié)果哪里查看 2、用vscode編寫(xiě)Python 3、python程序怎...

按鍵精靈源碼怎么用(按鍵精靈手游源碼)

按鍵精靈源碼怎么用(按鍵精靈手游源碼)

今天給各位分享按鍵精靈源碼怎么用的知識(shí),其中也會(huì)對(duì)按鍵精靈手游源碼進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!本文目錄一覽: 1、按鍵精靈如何把源碼弄成腳本 2、按鍵精靈如何使用? 3、按鍵精靈源碼怎么用? 把源碼導(dǎo)入,按啟動(dòng)怎么沒(méi)反映 按鍵精靈如何把源碼弄成腳本...

剪映封面模板保存(剪映封面生成中)

剪映封面模板保存(剪映封面生成中)

今天給各位分享剪映封面模板保存的知識(shí),其中也會(huì)對(duì)剪映封面生成中進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!本文目錄一覽: 1、剪映封面設(shè)置后導(dǎo)出后怎么就變了? 2、為什么在剪映里制作好的視頻保存到手機(jī)就不顯示封面那一頁(yè)? 3、剪映里面設(shè)置了封面為什么視頻保存了還是自...

一富二富是什么直播(富二代主播)

一富二富是什么直播(富二代主播)

今天給各位分享一富二富是什么直播的知識(shí),其中也會(huì)對(duì)富二代主播進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!本文目錄一覽: 1、繁星直播間從1富升到3富需要刷多少顆星星 2、什么直播間等級(jí)是0富 3、抖音的富二代直播是騙子嗎 繁星直播間從1富升到3富需要刷多少顆星星...