近期,我們收到許多粉絲朋友的技術(shù)問題反饋,為便于大家的學(xué)習(xí),小編整理了一系列常見問題的技術(shù)指南,將陸續(xù)分期發(fā)布,請(qǐng)大家敬請(qǐng)關(guān)注“小眼睛FPGA”微信公眾號(hào),在FPGA的世界里,我們努力把復(fù)雜的技術(shù)變得簡單有趣,記得給我點(diǎn)贊留言,讓我知道你也在這趟奇妙的旅程里哦。
遠(yuǎn)程升級(jí)簡
遠(yuǎn)程升級(jí)的實(shí)質(zhì)是通過遠(yuǎn)程且不影響當(dāng)前芯片工作狀態(tài)的方式實(shí)現(xiàn)芯片的代碼版本升級(jí)或回退。本例程采用基于SPI Master和BPI Master接口的遠(yuǎn)程升級(jí)方案,在遠(yuǎn)程升級(jí)的過程中,用戶通過通信協(xié)議(如TCP/IP,PCI,UDP,UART等,本例程使用UART)或?qū)S媒涌趶倪h(yuǎn)端接收位流,通過用戶SPI接口將位流編程到外部Flash,實(shí)現(xiàn)代碼的遠(yuǎn)程升級(jí)。
實(shí)驗(yàn)環(huán)境
操作步
第一步:代碼準(zhǔn)備在遠(yuǎn)程升級(jí)位流中,用戶通過將合并位流(開關(guān)程序+跳轉(zhuǎn)程序+黃金位流+應(yīng)用位流)寫入到外部Flash芯片,利用遠(yuǎn)程升級(jí)程序更新應(yīng)用位流。因此固化在外部Flash中的程序,無論是黃金位流還是應(yīng)用位流都需要包含升級(jí)程序。黃金位流可以理解為一個(gè)保底程序,當(dāng)更新應(yīng)用位流出現(xiàn)問題時(shí),F(xiàn)PGA可回退到黃金位流版本,重新進(jìn)行應(yīng)用位流的代碼升級(jí)。應(yīng)用位流在包含升級(jí)程序的同時(shí),添加上用戶自己設(shè)定的功能代碼。Logos2系列的FPGA器件支持1~3個(gè)應(yīng)用位流,本例程以一個(gè)應(yīng)用位流為例進(jìn)行演示,應(yīng)用位流中的用戶程序?yàn)榱魉疅魧?shí)驗(yàn)。
*圖1:代碼準(zhǔn)備
以盤古100Pro開發(fā)板demo為例,demo中提供了兩個(gè)工程,分別為黃金位流對(duì)應(yīng)的工程和應(yīng)用位流對(duì)應(yīng)的工程。用戶后續(xù)只需對(duì)remote_update_applied工程中的用戶程序進(jìn)行修改即可。
*圖2:提供代碼
第二步:sbit格式轉(zhuǎn)換分別將黃金位流對(duì)應(yīng)工程的sbit文件和應(yīng)用位流對(duì)應(yīng)工程的sbit文件進(jìn)行轉(zhuǎn)換,轉(zhuǎn)為Flash的.sfc文件。
*圖3:黃金位流工程sbit格式轉(zhuǎn)換
*圖4:應(yīng)用位流工程sbit格式轉(zhuǎn)換
第三步:合并位流將黃金位流文件和應(yīng)用位流文件合并為一個(gè)合并位流文件。在Convert File Dialog界面中選擇Generate Multi Revision File功能,正確選擇器件類型(盤古50K為PGL50H,盤古100Pro為PGL100H)和位流類型(SPI Upgrade Data Stream),并勾選Enable Set Start Address選項(xiàng)。需要注意,應(yīng)用位流的Start Address需要與兩個(gè)工程中頂層文件設(shè)定的USER_BITSTREAM_ADDRESS一致。
*圖5:盤古50K合并應(yīng)用位流
*圖6:盤古100Pro+合并應(yīng)用位流
第四步:代碼固化將生成的合并位流文件固化到外部Flash中。注意自己合并位流文件存放的位置,合并位流文件包含“_mul”后綴。
*圖7:合并位流固化
第五步:位流文件更新代碼固化后,F(xiàn)PGA會(huì)自動(dòng)加載應(yīng)用位流程序(需要幾十秒時(shí)間),顯示流水燈。由于應(yīng)用位流文件帶升級(jí)程序,可以通過串口發(fā)送對(duì)應(yīng)命令,實(shí)現(xiàn)應(yīng)用位流文件更新操作。與升級(jí)程序相關(guān)的操作命令及返回值如下圖所示。
*圖8:操作命令及返回值
應(yīng)用位流文件的升級(jí)步驟如下(注意發(fā)送和接收均需勾選十六進(jìn)制表示):
1.上位機(jī)下發(fā)寫位流使能命令,等待FPGA擦除開關(guān)程序和應(yīng)用位流。本例程只定義了位流1的起始地址,因此發(fā)送寫位流1使能(e7 e7 e7 e7 11),擦除完成FPGA發(fā)送給上位機(jī)完成命令(55 05 01)。
2. 上位機(jī)收到擦除完成標(biāo)志后,發(fā)送新的應(yīng)用位流文件(注意,此處是經(jīng)過sbit格式轉(zhuǎn)換得到的.sfc文件)和位流結(jié)束標(biāo)志(7e 7e 7e 7e)。當(dāng)上位機(jī)收到(55 05 10)則表示寫應(yīng)用位流完成,可進(jìn)行下一步操作。可以讀位流進(jìn)行校驗(yàn),也可以重復(fù)前兩步操作,再次寫位流文件。
3. 上位機(jī)下發(fā)讀位流使能,讀位流進(jìn)行校驗(yàn)。這里發(fā)送讀位流1使能(e7 e7 e7 e7 51),當(dāng)校驗(yàn)完成后FPGA上報(bào)校驗(yàn)結(jié)果。(55 03 01)表示校驗(yàn)結(jié)果為正確,(55 03 00)表示校驗(yàn)結(jié)果錯(cuò)誤。
4. 上位機(jī)發(fā)送打開開關(guān)使能命令,這里發(fā)送打開開關(guān)1使能(e7 e7 e7 e7 0e 41)。打開完成后,F(xiàn)PGA發(fā)送給上位機(jī)完成標(biāo)志(55 05 04)。
5. 上位機(jī)下發(fā)熱啟動(dòng)使能(e7 e7 e7 e7 04 01),加載新的應(yīng)用位流。若上步的校驗(yàn)結(jié)果為錯(cuò)誤,則加載黃金位流。
6. 若只是切換應(yīng)用位流,不更新應(yīng)用位流,其操作如下。
7.上位機(jī)下發(fā)單獨(dú)擦除開關(guān)使能命令,擦除所有開關(guān)程序。擦除完成FPGA發(fā)送給上位機(jī)完成標(biāo)志( 55 05 02)。
8. 上位機(jī)發(fā)送打開開關(guān)使能命令。打開完成后,F(xiàn)PGA發(fā)送給上位機(jī)完成標(biāo)志(55 05 04)。
9.上位機(jī)下發(fā)熱啟動(dòng)使能,加載新的應(yīng)用位流。為了簡化切換位流啟動(dòng)的流程,可關(guān)閉校驗(yàn)使能。
注:以上操作僅對(duì)深圳市紫光同創(chuàng)電子有限公司提供的《Logos2系列FPGA遠(yuǎn)程升級(jí)應(yīng)用指南》文檔的實(shí)際操作步驟進(jìn)行補(bǔ)充說明。更多詳細(xì)信息請(qǐng)查看紫光同創(chuàng)提供的應(yīng)用指南及用戶手冊(cè)。
原文標(biāo)題:【干貨】基于串口的FPGA遠(yuǎn)程升級(jí)
文章出處:【微信公眾號(hào):小眼睛科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
FOTA遠(yuǎn)程升級(jí)的10個(gè)關(guān)鍵點(diǎn)!技術(shù)小白必須收藏

怎樣選擇合適的串口服務(wù)器?
STM32/GD32開發(fā)板基本串口RS232\\RS485通信及CAN接口 usbhid升級(jí) U盤升級(jí) sd卡升級(jí)升級(jí)學(xué)習(xí)方案開發(fā)板
新品發(fā)布:大彩高性能醫(yī)用級(jí)串口屏DH系列12.1寸新品首發(fā)!

PLC網(wǎng)關(guān),plc遠(yuǎn)程通信 ——?跨越距離遠(yuǎn)程控制運(yùn)維升級(jí)

AT開發(fā)FOTA遠(yuǎn)程升級(jí):Air780EP低功耗4G模組

串口PLC怎么通過云網(wǎng)關(guān)遠(yuǎn)程監(jiān)控上下載程序

低功耗4G模組Air780E快速入門:固件的遠(yuǎn)程升級(jí)

低功耗4G模組Air780E的固件的遠(yuǎn)程升級(jí)操作方法

Air780EP低功耗4G模組—AT開發(fā)FOTA遠(yuǎn)程升級(jí)

魏德米勒u-remote遠(yuǎn)程I/O系統(tǒng)全新升級(jí)
F28M35x串口在線升級(jí)設(shè)計(jì)

快速實(shí)現(xiàn)C2000串口程序升級(jí)

Air780EP模塊AT開發(fā)FOTA遠(yuǎn)程升級(jí)指南

評(píng)論