新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > FPGA程序遠(yuǎn)程在線更新設(shè)計(jì)

FPGA程序遠(yuǎn)程在線更新設(shè)計(jì)

作者: 時(shí)間:2013-02-18 來(lái)源:網(wǎng)絡(luò) 收藏

4 合并文件

Nios II的啟動(dòng)要經(jīng)歷兩個(gè)過(guò)程:

器件本身的配置過(guò)程。如果內(nèi)部邏輯中使用了Nios II,則配置完成的中包含有Nios II軟核CPU。

② Nios II本身的應(yīng)用過(guò)程。一旦配置成功后,Nios II就被邏輯中的復(fù)位電路復(fù)位,從reset地址開(kāi)始執(zhí)行代碼。

Nios II IDE將FPGA的配置文件(.sof文件)和應(yīng)用(.elf文件)轉(zhuǎn)成flash格式文件,轉(zhuǎn)換后的flash格式文件是一種SRecord格式數(shù)據(jù),包含如下區(qū)域:

[6]。各字段的意思分別如下:表示記錄的類型;表示數(shù)據(jù)的長(zhǎng)度;

表示數(shù)據(jù)寫入的起始地址,該字段的長(zhǎng)度取決于的取值;表示存儲(chǔ)的數(shù)據(jù);表示校驗(yàn)位。

配置文件和應(yīng)用可能有多個(gè)段,每個(gè)段前面都插有一個(gè)“程序記錄”。一個(gè)“程序記錄”由2個(gè)32位的數(shù)據(jù)構(gòu)成,一個(gè)是32位的整數(shù),另一個(gè)是32位的地址,分別表示程序段本身的長(zhǎng)度和程序段的運(yùn)行時(shí)地址。其存儲(chǔ)布局如圖3所示。

圖3 Flash文件存儲(chǔ)布局

為了在更新程序時(shí)把FPGA配置文件和Nios II應(yīng)用程序一起更新,把FPGA配置文件和Nios II應(yīng)用程序合并成一個(gè)文件,并且把合并后的Flash格式的文件轉(zhuǎn)換成不需要地址解碼就能直接執(zhí)行的二進(jìn)制BIN文件。具體處理流程如圖4所示。

圖4 合并程序文件流程

在合并程序的過(guò)程中,去掉了flash文件中的長(zhǎng)度、目的地址等用于解析程序的信息,并且把程序映像由字符格式轉(zhuǎn)換為二進(jìn)制格式。合并后的BIN文件包含F(xiàn)PGA配置文件和Nios II應(yīng)用程序,并且Nios II應(yīng)用程序緊挨在FPGA配置文件的后面,其存儲(chǔ)布局如圖5所示。

程序文件第n個(gè)程序段映像

Len1~Len1+L2程序文件第1個(gè)程序段映像

配置文件第n個(gè)程序段映像

0~L1配置文件第1個(gè)程序段映像

圖5 BIN文件存儲(chǔ)布局



關(guān)鍵詞: FPGA 程序 遠(yuǎn)程

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉