在做在線遠(yuǎn)程升級的時(shí)候,一般需要兩步:1、將數(shù)據(jù)寫到外掛的flash中。2重新啟動FPGA配置。 不過要做到遠(yuǎn)程升級,一般需要在原始程序中就考慮到加入遠(yuǎn)程升級模塊,remote updata IP, 在升級的時(shí)候才可以啟動遠(yuǎn)程升級功能。
遠(yuǎn)程升級之后程序加載的過程:在進(jìn)行遠(yuǎn)程升級成功以后,flash中應(yīng)該會至少存儲兩個程序,出廠程序和升級程序。兩個程序在不同的地址空間中(出廠程序從0X0000開始存儲)。在FPGA上電之后,F(xiàn)PGA會加載出廠程序,出廠程序在運(yùn)行之后,檢測到remote updata IP中的一些參數(shù)(如配置鏡像參數(shù)等,remote updata IP部分會介紹到)后,將讀取flash中升級程序內(nèi)容的開始地址指向讀取地址,然后觸發(fā)重新配置(如reconfig信號有效),開始加載重新配置程序。直到無錯誤的加載完成。也就是整個過程會加載兩次程序。
一、如何將程序?qū)懙絝lash中。
在程序運(yùn)行過程中,可以通過控制一些IP來將程序?qū)懙絝lash中,這里有兩個IP可以使用:EPCS controller, ASMI 。
1、EPCS Controller:
該IP在Qsy系統(tǒng)中,一般需要配合NIOS II來使用,需要使用者對ARM的編程有一定的基礎(chǔ)。不過Altera 也提供了一些有關(guān)epcs操作的API,如讀寫,擦除等。不過在操作前會讀取一下FLASH的ID來確定是EPCS還是EPCQ,或者EPCQL,還有容量是多大的。確定好Flash的類型之后就可以調(diào)用API函數(shù)對Flash操作了。網(wǎng)上也有例程,如鋯石科技的參考例程。不過如果使用的是第三方的flash,而讀取的ID不在官方flash的ID列表之后,則就會認(rèn)為沒有flash,也就無法讀寫操作了(不敢百分百確定的,但是肯定要改程序)。所以需要操作者對ARM的操作有一定的知識。
EPCS Controller IP在cyclone IV上使用的時(shí)候是需要手動綁定那四個pin的,在cyclone V上是不需要綁定的。
2、ASMI IP
該IP在IP庫中,Qsys中也有,可以直接用verilog進(jìn)行編程控制,網(wǎng)上也有中文文檔:ug_altasmi_parallel_CH.pdf 。該文檔會介紹如何擦除,讀寫flash等,只要時(shí)序控制好,EPCS/EPCQ/EPCQL的空間地址控制號就可以了。網(wǎng)上或官方都有參考例程,可以參考一下。
二、如何打開下載程序文件
遠(yuǎn)程燒錄,需要PC等通過串口或網(wǎng)絡(luò)將程序傳給FPGA,程序文件一般是jic/sof/rbf等格式的文件,那么一般軟件不能打開也看不到里面的內(nèi)容,可以使用UltraEdit軟件來打開這些文件,而且里面還會有一部分提示。
但是這個文件會很大,比如16MB,并不是所有的都是有效的信息,我現(xiàn)在也不知道該寫哪一些數(shù)據(jù)到flash中,以后知道了再補(bǔ)充吧。 三、remote updata IP 該IP在IP庫和Qsys中都有,可以用verilog來控制,建議使用前也要先看下他的說明書,ug_altremote.pdf,里面對寄存器有詳細(xì)的說明。
在使用過程其實(shí)是讀取寄存器或者寫寄存器的過程,最后一步reconfig信號就可以了。 網(wǎng)友給出了一個思路:read 3‘b000 (讀取reconfig的條件) --》 write 3’b101(Anf配置模式選擇:出廠or鏡像) --》 read Anf 3‘b101(確定一下) --》write 3’b011 (寫看門狗使能) --》write 3‘b010(寫看門狗溢出值) --》 write 3’b100 (寫看門狗溢出值) --》 reconfig 使能。然后就操作完成了,等待重新啟動。
責(zé)任編輯人:CC
-
遠(yuǎn)程升級
+關(guān)注
關(guān)注
0文章
21瀏覽量
8255 -
程序遠(yuǎn)程升級
+關(guān)注
關(guān)注
1文章
2瀏覽量
1204
原文標(biāo)題:?Altera FPGA 遠(yuǎn)程升級有關(guān)的幾個IP的使用
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
EE-240: ADSP-BF533 Blackfin加載過程
![EE-240: ADSP-BF533 Blackfin<b class='flag-5'>加載</b><b class='flag-5'>過程</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
Stellaris引導(dǎo)加載程序用戶指南
![Stellaris引導(dǎo)<b class='flag-5'>加載</b><b class='flag-5'>程序</b>用戶指南](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
MSP430?閃存器件引導(dǎo)加載程序(BSL)
![MSP430?閃存器件引導(dǎo)<b class='flag-5'>加載</b><b class='flag-5'>程序</b>(BSL)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
MSP430? FRAM器件引導(dǎo)加載程序(BSL)
![MSP430? FRAM器件引導(dǎo)<b class='flag-5'>加載</b><b class='flag-5'>程序</b>(BSL)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用TMS320C642x引導(dǎo)加載程序
![使用TMS320C642x引導(dǎo)<b class='flag-5'>加載</b><b class='flag-5'>程序</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用TMS320DM643x引導(dǎo)加載程序
![使用TMS320DM643x引導(dǎo)<b class='flag-5'>加載</b><b class='flag-5'>程序</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用AM17xx引導(dǎo)加載程序
![使用AM17xx引導(dǎo)<b class='flag-5'>加載</b><b class='flag-5'>程序</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
在Keystone II器件上使用Arm ROM引導(dǎo)加載程序
![在Keystone II器件上使用Arm ROM引導(dǎo)<b class='flag-5'>加載</b><b class='flag-5'>程序</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用AM18xx引導(dǎo)加載程序
![使用AM18xx引導(dǎo)<b class='flag-5'>加載</b><b class='flag-5'>程序</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AWR294x主引導(dǎo)加載程序和輔助引導(dǎo)加載程序
![AWR294x主引導(dǎo)<b class='flag-5'>加載</b><b class='flag-5'>程序</b>和輔助引導(dǎo)<b class='flag-5'>加載</b><b class='flag-5'>程序</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
linux驅(qū)動程序如何加載進(jìn)內(nèi)核
在增強(qiáng)模式下引導(dǎo)加載程序時(shí),OTA升級失敗了,為什么?
通過物通博聯(lián)PLC遠(yuǎn)程調(diào)試網(wǎng)關(guān)實(shí)現(xiàn)PLC遠(yuǎn)程升級程序
![通過物通博聯(lián)PLC<b class='flag-5'>遠(yuǎn)程</b>調(diào)試網(wǎng)關(guān)實(shí)現(xiàn)PLC<b class='flag-5'>遠(yuǎn)程</b><b class='flag-5'>升級</b><b class='flag-5'>程序</b>](https://file.elecfans.com/web2/M00/52/70/pYYBAGLLyhqAVmYRAAbXfP1kjRI408.png)
評論