<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 采用外接Flash存儲器件對SOPC系統(tǒng)開發(fā)的實現(xiàn)

          采用外接Flash存儲器件對SOPC系統(tǒng)開發(fā)的實現(xiàn)

          作者: 時間:2010-08-10 來源:網(wǎng)絡 收藏

           2.2 使用 Programmer工具編程

          目標板編程描述創(chuàng)建后會在 Builder中的Target選項區(qū)的Board下拉列表框中顯示出來。本例中所創(chuàng)建的目標板編程描述為flash_board。目標板編程描述創(chuàng)建后就可以在目標板上進行用戶了,并能將用戶程序編程到中。EPCS配置文件、Flash用戶程序的流程如圖1所示。

          用Flash Programmer工具對Flash編程的步驟如下:

          ①創(chuàng)建項目,構建SOPC硬件。

          ②啟動NiosII,建立SOPC系統(tǒng)的軟件然后進行編譯、鏈接。

          ③在NiosII中選中要進行編程的工程,然后選擇Tools→Flash Programmer,打開Flash Programmer窗口。

          ④在Main選項中,選中Program software project in-to flash memory project,表示要將工程的flash_progra-mer.elf文件寫入Flash。對flash_programer.elf文件的編程,在Flash Programmer窗口中并沒有存儲器和偏移地址的設置。存儲器和偏移地址由SOPC Builder中的Reset Address指向的存儲器和設置的偏移地址決定。如果將Reset Address指向Flash、偏移地址從0x00開始,那么Flash Programmer就會從Flash的“基地址+0x00”開始燒寫數(shù)據(jù)。如果將Reset Address指向EPCS Controller、偏移地址從0x00開始,那么Flash Programmer就會從EPCS的“基地址+配置數(shù)據(jù)空間+0x00”開始燒寫數(shù)據(jù)。

          ⑤選擇Target Connection選項卡,在JTAG cable和JTAG device欄中選中當前所用的下載電纜和JTAG器件。

          ⑥單擊Apply按鈕,然后單擊Program Flash按鈕,開始對指定的Flash存儲器編程。

          當完成Flash編程后,由于當前的EPCS中的配置文件是目標板編程描述的配置文件,所以寫入Flash的用戶程序并不會馬上運行。用戶需要給系統(tǒng)重新上電,使FPGA使用EPCS中的配置文件重新配置FPGA,此時用戶程序就能正常運行。

          結 語

          本文針對SOPC系統(tǒng)所面臨的問題,提出外接Flash存儲器件是最直接、最有效的解決方法。將FPGA的配置文件存入EPCS、用戶程序存人Flash器件,SOPC系統(tǒng)上電后首先進行配置,然后將Flash中的用戶程序載入系統(tǒng)RAM,這樣不僅解決了存儲容量的問題,也解決了Flash存取速度較慢的問題。本文對外接Flash的SOPC系統(tǒng)開發(fā)有一定的參考價值。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();