Altera FPGA 遠(yuǎn)程升級(jí)有關(guān)的幾個(gè)IP的使用
在做在線(xiàn)遠(yuǎn)程升級(jí)的時(shí)候,一般需要兩步:1、將數(shù)據(jù)寫(xiě)到外掛的flash中。2重新啟動(dòng)FPGA配置。 不過(guò)要做到遠(yuǎn)程升級(jí),一般需要在原始程序中就考慮到加入遠(yuǎn)程升級(jí)模塊,remote updata IP, 在升級(jí)的時(shí)候才可以啟動(dòng)遠(yuǎn)程升級(jí)功能。
遠(yuǎn)程升級(jí)之后程序加載的過(guò)程:在進(jìn)行遠(yuǎn)程升級(jí)成功以后,flash中應(yīng)該會(huì)至少存儲(chǔ)兩個(gè)程序,出廠(chǎng)程序和升級(jí)程序。兩個(gè)程序在不同的地址空間中(出廠(chǎng)程序從0X0000開(kāi)始存儲(chǔ))。在FPGA上電之后,F(xiàn)PGA會(huì)加載出廠(chǎng)程序,出廠(chǎng)程序在運(yùn)行之后,檢測(cè)到remote updata IP中的一些參數(shù)(如配置鏡像參數(shù)等,remote updata IP部分會(huì)介紹到)后,將讀取flash中升級(jí)程序內(nèi)容的開(kāi)始地址指向讀取地址,然后觸發(fā)重新配置(如reconfig信號(hào)有效),開(kāi)始加載重新配置程序。直到無(wú)錯(cuò)誤的加載完成。也就是整個(gè)過(guò)程會(huì)加載兩次程序。
一、如何將程序?qū)懙絝lash中。
在程序運(yùn)行過(guò)程中,可以通過(guò)控制一些IP來(lái)將程序?qū)懙絝lash中,這里有兩個(gè)IP可以使用:EPCS controller, ASMI 。
1、EPCS Controller:
該IP在Qsy系統(tǒng)中,一般需要配合NIOS II來(lái)使用,需要使用者對(duì)ARM的編程有一定的基礎(chǔ)。不過(guò)Altera 也提供了一些有關(guān)epcs操作的API,如讀寫(xiě),擦除等。不過(guò)在操作前會(huì)讀取一下FLASH的ID來(lái)確定是EPCS還是EPCQ,或者EPCQL,還有容量是多大的。確定好Flash的類(lèi)型之后就可以調(diào)用API函數(shù)對(duì)Flash操作了。網(wǎng)上也有例程,如鋯石科技的參考例程。不過(guò)如果使用的是第三方的flash,而讀取的ID不在官方flash的ID列表之后,則就會(huì)認(rèn)為沒(méi)有flash,也就無(wú)法讀寫(xiě)操作了(不敢百分百確定的,但是肯定要改程序)。所以需要操作者對(duì)ARM的操作有一定的知識(shí)。
EPCS Controller IP在cyclone IV上使用的時(shí)候是需要手動(dòng)綁定那四個(gè)pin的,在cyclone V上是不需要綁定的。
2、ASMI IP
該IP在IP庫(kù)中,Qsys中也有,可以直接用verilog進(jìn)行編程控制,網(wǎng)上也有中文文檔:ug_altasmi_parallel_CH.pdf 。該文檔會(huì)介紹如何擦除,讀寫(xiě)flash等,只要時(shí)序控制好,EPCS/EPCQ/EPCQL的空間地址控制號(hào)就可以了。網(wǎng)上或官方都有參考例程,可以參考一下。 二、如何打開(kāi)下載程序文件 遠(yuǎn)程燒錄,需要PC等通過(guò)串口或網(wǎng)絡(luò)將程序傳給FPGA,程序文件一般是jic/sof/rbf等格式的文件,那么一般軟件不能打開(kāi)也看不到里面的內(nèi)容,可以使用UltraEdit軟件來(lái)打開(kāi)這些文件,而且里面還會(huì)有一部分提示。
但是這個(gè)文件會(huì)很大,比如16MB,并不是所有的都是有效的信息,我現(xiàn)在也不知道該寫(xiě)哪一些數(shù)據(jù)到flash中,以后知道了再補(bǔ)充吧。 三、remote updata IP 該IP在IP庫(kù)和Qsys中都有,可以用verilog來(lái)控制,建議使用前也要先看下他的說(shuō)明書(shū),ug_altremote.pdf,里面對(duì)寄存器有詳細(xì)的說(shuō)明。
在使用過(guò)程其實(shí)是讀取寄存器或者寫(xiě)寄存器的過(guò)程,最后一步reconfig信號(hào)就可以了。 網(wǎng)友給出了一個(gè)思路:read 3‘b000 (讀取reconfig的條件) --》 write 3’b101(Anf配置模式選擇:出廠(chǎng)or鏡像) --》 read Anf 3‘b101(確定一下) --》write 3’b011 (寫(xiě)看門(mén)狗使能) --》 write 3‘b010(寫(xiě)看門(mén)狗溢出值) --》 write 3’b100 (寫(xiě)看門(mén)狗溢出值) --》 reconfig 使能。然后就操作完成了,等待重新啟動(dòng)。 文章轉(zhuǎn)自:https://blog.csdn.net/weixin_30519071/article/details/95424192?utm_source=app
責(zé)任編輯人:CC
-
FlaSh
+關(guān)注
關(guān)注
10文章
1678瀏覽量
151763 -
程序
+關(guān)注
關(guān)注
117文章
3826瀏覽量
82961
原文標(biāo)題:?Altera FPGA 遠(yuǎn)程升級(jí)有關(guān)的幾個(gè)IP的使用
文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
如何將Flash刷寫(xiě)程序放到SRAM中運(yùn)行?
MCU片上Flash
如何將項(xiàng)目從IAR遷移到Embedded Studio

如何將python文件導(dǎo)入到ROS系統(tǒng)中

用TMS2812控制ADS1298進(jìn)行肌電采集,將相同的程序燒寫(xiě)到flash中后再進(jìn)行采集時(shí)效果不理想,為什么?
怎么將PPS中已經(jīng)編譯好的圖形才程序,燒寫(xiě)到TLV320AIC3254EVM-K的E2PROM?
如何將LVDS/OLDI橋接到HDMI/DVI

瑞薩電子EZ-CUBE3操作指南
瑞薩e2studio----使用EZ-CUBE3燒錄

評(píng)論