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

          新聞中心

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

          一種遠(yuǎn)程在線更新FPGA程序的方法

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

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

          本文引用地址:http://www.ex-cimer.com/article/190734.htm

          e.jpg



          5 Nios II更新程序模塊處理
          Nios II程序中的更新程序模塊主要負(fù)責(zé)從上位機(jī)接收合并后的可執(zhí)行BIN文件,并把該BIN文件寫(xiě)入EPCSFlash,處理流程如圖6所示。

          f.jpg


          5.1 程序文件的傳輸
          Nios II應(yīng)用程序中的更新程序模塊和上位機(jī)系統(tǒng)采用X-modem協(xié)議傳輸程序文件,X-modem協(xié)議是一種網(wǎng)口和串口通信中廣泛用到的異步傳輸協(xié)議。
          如果在程序傳輸過(guò)程中出現(xiàn)錯(cuò)誤,更新程序模塊能夠通過(guò)設(shè)置超時(shí)來(lái)退出更新程序的狀態(tài)。
          5.2 對(duì)EPCS Flash的讀寫(xiě)
          由于EPCS Flash的串行配置器件定義了特殊的讀寫(xiě)協(xié)議,所以Nios II程序只能通過(guò)Altera提供的HAL API(Application Program Inter face,應(yīng)用程序接口)來(lái)完成讀寫(xiě)Flash。打開(kāi)、關(guān)閉Flash設(shè)備的API為:alt flash open_dev()和alt_flash_close_dev()。操作Flash讀寫(xiě)
          的API為:alt_read_flash()和alt_write_flash_block()。清除Flash的API為alt_erase_falsh_block()。

          結(jié)語(yǔ)
          本文以提高更新程序的方便性為目標(biāo),提出了一種基于EPCS Flash的在線更新FPGA程序的,從而在應(yīng)用中能夠使基于FPGA的產(chǎn)品更加方便地維護(hù)升級(jí)。

          fpga相關(guān)文章:fpga是什么



          上一頁(yè) 1 2 3 下一頁(yè)

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

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁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); })();