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

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

3天內(nèi)不再提示

如何將程序?qū)懙絝lash中?

FPGA之家 ? 來源:FPGA之家 ? 2023-07-30 17:07 ? 次閱讀

Altera FPGA 遠程升級有關(guān)的幾個IP的使用

在做在線遠程升級的時候,一般需要兩步:

1、將數(shù)據(jù)寫到外掛的flash中。

2重新啟動FPGA配置。不過要做到遠程升級,一般需要在原始程序中就考慮到加入遠程升級模塊,remote updata IP, 在升級的時候才可以啟動遠程升級功能。

遠程升級之后程序加載的過程:在進行遠程升級成功以后,flash中應該會至少存儲兩個程序,出廠程序和升級程序。兩個程序在不同的地址空間中(出廠程序從0X0000開始存儲)。

在FPGA上電之后,F(xiàn)PGA會加載出廠程序,出廠程序在運行之后,檢測到remote updata IP中的一些參數(shù)(如配置鏡像參數(shù)等,remote updata IP部分會介紹到)后,將讀取flash中升級程序內(nèi)容的開始地址指向讀取地址,然后觸發(fā)重新配置(如reconfig信號有效),開始加載重新配置程序。直到無錯誤的加載完成。也就是整個過程會加載兩次程序。

一、如何將程序?qū)懙絝lash中。

在程序運行過程中,可以通過控制一些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列表之后,則就會認為沒有flash,也就無法讀寫操作了(不敢百分百確定的,但是肯定要改程序)。所以需要操作者對ARM的操作有一定的知識。

EPCS Controller IP在cyclone IV上使用的時候是需要手動綁定那四個pin的,在cyclone V上是不需要綁定的。

2、ASMI IP

該IP在IP庫中,Qsys中也有,可以直接用verilog進行編程控制,網(wǎng)上也有中文文檔:ug_altasmi_parallel_CH.pdf 。

該文檔會介紹如何擦除,讀寫flash等,只要時序控制好,EPCS/EPCQ/EPCQL的空間地址控制號就可以了。網(wǎng)上或官方都有參考例程,可以參考一下。

二、如何打開下載程序文件

遠程燒錄,需要PC等通過串口或網(wǎng)絡(luò)將程序傳給FPGA,程序文件一般是jic/sof/rbf等格式的文件,那么一般軟件不能打開也看不到里面的內(nèi)容,可以使用UltraEdit軟件來打開這些文件,而且里面還會有一部分提示。

c5099644-2e79-11ee-815d-dac502259ad0.png ? ?

但是這個文件會很大,比如16MB,并不是所有的都是有效的信息,我現(xiàn)在也不知道該寫哪一些數(shù)據(jù)到flash中,以后知道了再補充吧。

三、remote updata IP

該IP在IP庫和Qsys中都有,可以用verilog來控制,建議使用前也要先看下他的說明書,ug_altremote.pdf,里面對寄存器有詳細的說明。

c5ccd398-2e79-11ee-815d-dac502259ad0.png       c60978b6-2e79-11ee-815d-dac502259ad0.png ?   

在使用過程其實是讀取寄存器或者寫寄存器的過程,最后一步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 使能。然后就操作完成了,等待重新啟動。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598875
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5250

    瀏覽量

    119193
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1598

    瀏覽量

    147332
  • ARM處理器
    +關(guān)注

    關(guān)注

    6

    文章

    360

    瀏覽量

    41513

原文標題:?Altera FPGA 遠程升級有關(guān)的幾個IP的使用

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    請問如何將鏡像燒寫到emmc上?

    如何將鏡像燒寫到emmc上?
    發(fā)表于 01-10 07:47

    FCX3如何將USBFlashProg寫到內(nèi)存,及時生效?

    當前使用CX3平臺,如何將USBFlashProg寫到內(nèi)存,及時生效?
    發(fā)表于 02-28 06:45

    使用CCS6和TM4C LaunchPad燒寫程序如何配置CCS程序寫到FLASH呢?

    自己用TM4C123GH6PM搭建了一個最小系統(tǒng)。使用CCS6和TM4C LaunchPad可以正常debug自己的最小系統(tǒng),程序可以正常跑,但是程序是不是只是燒寫到了RAM里面?一掉電之后重新上電,自己的最小系統(tǒng)又沒法運行了,
    發(fā)表于 08-14 06:13

    請問DSP28335用SCI程序的HEX碼寫到FLASH然后運行下載到flash的代碼怎樣做?

    我想實現(xiàn)用SCI程序的HEX碼寫到FLASH,然后運行下載到flash的代碼怎樣實現(xiàn)?望大神
    發(fā)表于 08-23 12:50

    請問程序如何燒寫到指定的FLASH?

    concerto f28m35請教:程序如何燒寫到指定的FLASH?用仿真器可以直接下載嗎?我對程序燒寫沒有清晰的概念,求賜教!
    發(fā)表于 10-30 10:14

    CCS5.2下如何將.out文件燒寫到28335的FLASH

    在CCS3.3有,ON Chip Flash Programmer,可以直接.out文件直接燒寫到DSP的FLASH
    發(fā)表于 05-19 14:06

    如何stm32程序寫到外擴nor flash?

    有FSMC的初始化匯編代碼。但是用U-LINK仿真時,總是說Flash Timeout,就是不能燒寫進去,甚是苦惱!想問問,這個stm32程序寫到外擴nor
    發(fā)表于 05-20 04:35

    28035程序程序寫到Flash,請問Ramfuns段里都包含什么函數(shù)呢?

    28035程序,程序寫到Flash,其中使用的語句MemCopy(&RamfuncsLoa
    發(fā)表于 05-29 10:21

    請問F28027怎么把程序寫到Flash?

    F28027怎么把程序寫到Flash,軟件是CCSV5.3在軟件仿真程序可以運行外部供電時
    發(fā)表于 06-08 15:43

    如何將float數(shù)據(jù)存到flash

    項目場景:在靈動MCU平臺基于逐飛科技開源的RTT庫,一個float類型的數(shù)據(jù)變量保存到flash;問題描述:寫和讀flash數(shù)據(jù)的接口是uint32類型的變量,
    發(fā)表于 12-13 06:54

    如何將rk3568_loader.bin燒寫到eMMC

    如何將rk3568_loader.bin燒寫到eMMC呢?有哪些燒寫步驟?
    發(fā)表于 03-02 09:44

    如何將現(xiàn)有的bin文件燒寫到外部的flash

    如何將現(xiàn)有的bin文件燒寫到外部的flash?
    發(fā)表于 06-25 08:37

    如何將程序寫到flash中去

    數(shù)據(jù)寫到外掛的flash。2重新啟動FPGA配置。 不過要做到遠程升級,一般需要在原始程序中就考慮到加入遠程升級模塊,remote up
    的頭像 發(fā)表于 10-12 14:16 ?3002次閱讀
    <b class='flag-5'>如何將</b><b class='flag-5'>程序</b><b class='flag-5'>寫到</b><b class='flag-5'>flash</b>中去

    如何將壓縮機參數(shù)的bin文件燒寫到Data Flash

    文件以及如何用“Renesas Flash Programmer”(以下簡稱RFP)將該bin文件燒寫到Data Flash的步驟。 一、生成壓縮機參數(shù)的bin文件 1 瑞薩可以為用
    的頭像 發(fā)表于 01-05 05:25 ?2518次閱讀

    嵌入式開發(fā)如何將Flash程序轉(zhuǎn)移到RAM運行?

    嵌入式開發(fā)如何將Flash程序轉(zhuǎn)移到RAM運行?
    的頭像 發(fā)表于 10-29 16:23 ?2868次閱讀