采用外接Flash存儲(chǔ)器件對(duì)SOPC系統(tǒng)開發(fā)的實(shí)現(xiàn)
2.2 使用Flash Programmer工具編程Flash
目標(biāo)板編程描述創(chuàng)建后會(huì)在SOPC Builder中的Target選項(xiàng)區(qū)的Board下拉列表框中顯示出來。本例中所創(chuàng)建的目標(biāo)板編程描述為flash_board。目標(biāo)板編程描述創(chuàng)建后就可以在目標(biāo)板上進(jìn)行用戶SOPC系統(tǒng)的開發(fā)了,并能將用戶程序編程到Flash存儲(chǔ)器件中。采用EPCS器件存儲(chǔ)配置文件、Flash器件存儲(chǔ)用戶程序的SOPC系統(tǒng)的開發(fā)流程如圖1所示。
用Flash Programmer工具對(duì)Flash編程的步驟如下:
①創(chuàng)建項(xiàng)目,構(gòu)建SOPC硬件系統(tǒng)。
②啟動(dòng)NiosII,建立SOPC系統(tǒng)的軟件然后進(jìn)行編譯、鏈接。
③在NiosII中選中要進(jìn)行編程的工程,然后選擇Tools→Flash Programmer,打開Flash Programmer窗口。
④在Main選項(xiàng)中,選中Program software project in-to flash memory project,表示要將工程的flash_progra-mer.elf文件寫入Flash。對(duì)flash_programer.elf文件的編程,在Flash Programmer窗口中并沒有存儲(chǔ)器和偏移地址的設(shè)置。存儲(chǔ)器和偏移地址由SOPC Builder中的Reset Address指向的存儲(chǔ)器和設(shè)置的偏移地址決定。如果將Reset Address指向Flash、偏移地址從0x00開始,那么Flash Programmer就會(huì)從Flash的“基地址+0x00”開始燒寫數(shù)據(jù)。如果將Reset Address指向EPCS Controller、偏移地址從0x00開始,那么Flash Programmer就會(huì)從EPCS的“基地址+配置數(shù)據(jù)空間+0x00”開始燒寫數(shù)據(jù)。
⑤選擇Target Connection選項(xiàng)卡,在JTAG cable和JTAG device欄中選中當(dāng)前所用的下載電纜和JTAG器件。
⑥單擊Apply按鈕,然后單擊Program Flash按鈕,開始對(duì)指定的Flash存儲(chǔ)器編程。
當(dāng)完成Flash編程后,由于當(dāng)前的EPCS中的配置文件是目標(biāo)板編程描述的配置文件,所以寫入Flash的用戶程序并不會(huì)馬上運(yùn)行。用戶需要給系統(tǒng)重新上電,使FPGA使用EPCS中的配置文件重新配置FPGA,此時(shí)用戶程序就能正常運(yùn)行。
結(jié) 語(yǔ)
本文針對(duì)SOPC系統(tǒng)開發(fā)所面臨的問題,提出采用外接Flash存儲(chǔ)器件是最直接、最有效的解決方法。將FPGA的配置文件存入EPCS、用戶程序存人Flash器件,SOPC系統(tǒng)上電后首先進(jìn)行配置,然后將Flash中的用戶程序載入系統(tǒng)RAM,這樣不僅解決了存儲(chǔ)容量的問題,也解決了Flash存取速度較慢的問題。本文對(duì)外接Flash的SOPC系統(tǒng)開發(fā)有一定的參考價(jià)值。
評(píng)論