999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

多個NIOS程序在EPCS中的存儲及切換運行*

2017-06-27 08:08:46羅明華
單片機與嵌入式系統應用 2017年6期
關鍵詞:嵌入式程序設置

羅明華

(中煤科工集團重慶研究院有限公司,重慶 400039)

多個NIOS程序在EPCS中的存儲及切換運行*

羅明華

(中煤科工集團重慶研究院有限公司,重慶 400039)

針對Altera FPGA,提出了一種在EPCS Flash中存入多個NIOS II嵌入式程序(不同的配置文件和NIOS II應用文件)并實現程序間相互切換運行的方法。通過搭建平臺并以兩個嵌入式程序為例,分別分析了它們的配置及引導流程,闡述了程序存儲及切換運行的具體方法,實驗結果證明了該方法的可行性。該方法使得帶NIOS II軟核的FPGA嵌入式系統在調試以及應用上更加方便靈活,尤其針對系統程序的遠程更新,在不破壞原有程序的基礎上即可完成,大大提升了系統的安全性。

FPGA;NIOS II;EPCS;程序存儲;重配置;程序引導

引 言

FPGA(Field Programmable Gate Array,現場可編程門陣列)使用了預建的邏輯塊和可重新編程布線資源使其具備自定義硬件功能,當用戶在重新編譯不同的電路配置時,能夠當即呈現全新的特性[1]。尤其是它的嵌入式系統SOPC(System On a Programmable Chip)能夠通過選擇合適的CPU、外設和存儲接口,以及定制硬件加速器等達到每一個新設計周期的獨特目標[2]。

隨著FPGA嵌入式系統的大規模應用,對程序的變更與維護在所難免,靠編程電纜進行現場的調試與更新十分不便。在具備通信接口的系統中進行程序的遠程更新是很好的辦法,基本流程是通過通信接口將程序以數據流的形式發送到FPGA中,FPGA使用IAP(In Application Programming,在應用編程)的方法將程序燒寫到Flash中,再通過控制RSU(Remore System Update,遠程系統更新IP核)進行FPGA的重配置[3]。而由于EPCS自帶的引導程序只能識別緊隨其后的應用程序,所以IAP燒寫程序的同時也將原有基地址上的程序覆蓋掉,而在覆蓋過程中出現任何異常都極易造成原有程序及系統的崩潰[4]。為此,本文擬將第二個嵌入式程序存入到EPCS中未重疊的任何塊上,并自行編寫引導程序,以初始化文件的方式存入到由SOPC建立的ROM中,將CPU的reset地址指向此ROM,通過RSU重配置后CPU即可自動運行引導程序,實現第二個嵌入式程序的引導與運行。

1 系統結構

選用Altera公司EP3C16系列的FPGA以及EPCS64串行存儲芯片,搭建如圖1所示的SOPC系統。其中LED1和LED2為硬件直接控制的LED;CPU為32位RISC嵌入式軟核NIOS II處理器;BOOT ROM是SOPC中建立的On-Chip Memory,專門用于引導代碼的存儲;JTAG UART是FPGA與PC間的一個橋梁,用于通信與調試;KEY與LED為PIO,用于嵌入式系統對外部按鍵和LED3、LED4的輸入輸出控制;EPCS Controller用來控制FPGA和EPCS的數據傳輸;SDRAM Controller用于控制外部SDRAM芯片;RSU Controller是Altera提供的遠程更新模塊,起重配置的作用。本系統將在EPCS中存入兩個嵌入式程序,即程序1和程序2,兩個程序間實現互相切換運行,以下將分別以兩個程序為例進行討論。

圖1 系統框圖

2 程序1

2.1 程序1的設置與燒寫

系統中第一個程序,即上電啟動程序,包含配置數據1和應用數據1。為了實現上電啟動,在SOPC中將CPU的reset地址設置為EPCS,將exception地址設置為SDRAM,完成代碼編寫后生成配置文件和NIOS II應用文件。

第一個程序在燒寫時,應用文件必須緊隨配置文件,使用NIOS II command shell合并文件并燒寫到EPCS,流程如圖2所示。

圖2 程序1燒寫流程圖

2.2 程序1的引導過程

上電后,FPGA首先進入配置過程,配置完成后NIOS II被邏輯中的復位電路復位,從reset地址開始執行代碼[5]。其中EPCS控制器基地址處有一段ROM存儲區,存放有NIOS II的引導程序,所以NIOS II開始執行ROM中的引導程序[6]。引導程序通過讀取EPCS中配置數據的頭部信息獲得配置數據的總長度,然后跳過配置數據直接找到應用數據,這也是應用文件必須緊隨配置文件燒寫的原因。隨后引導程序將應用數據搬移到SDRAM中,搬移完成后指針跳轉到SDRAM中執行剛才搬運過來的NIOS II嵌入式應用程序。

3 程序2

3.1 系統的重配置及引導過程

從第一個程序跳轉到第二個程序,需要借助RSU Controller來進行重配置,其中RSU控制的配置邏輯如圖3所示。

圖3 RSU控制示意圖

通過設置RSU的寄存器,可以使FPGA跳轉到EPCS中任意塊位置處,并根據此位置的配置數據進行系統的重配置,因此配置數據2可以存儲在EPCS中的任意位置處。配置完成后,進入第二個程序應用數據的引導過程,這個過程無法使用EPCS控制器ROM中自帶的引導程序,而需要自行編寫。引導程序需要完成的任務是將應用數據2搬移到SDRAM并跳轉指針到SDRAM執行相應的程序[7]。

圖4 應用數據存儲示意圖

自行編寫引導程序必須了解數據在EPCS中的存儲方式。圖4為本系統中應用數據2在EPCS中的存儲示意圖,數據被分為多個段,每個數據段由一個段記錄和段數據構成,其中數據段記錄由8個字節組成,前4字節表示本段數據的長度,后4字節表示本段數據所要搬運到的目的地址。緊隨段記錄之后的就是本段的有效數據。最后的段記錄為跳轉記錄,前4字節均為0x00,表示數據的結尾,后4字節表示指針所要跳轉到的目的地址[8]。按照應用數據在EPCS的存儲方法,通過相應的NIOS II接口函數即可將應用數據從EPCS搬移到目的地址并運行。

引導程序屬于應用程序編寫,是在程序2的配置基礎上進行的。要在配置完成后進入引導過程,reset地址需要指向引導程序存儲的位置,由于EPCS中已經存儲了程序1的數據,所以reset地址不能再選擇EPCS,需要選擇另外一個掉電不丟失的存儲單元,即BOOT ROM。它本身是由IP核On-Chip-Memory構成的,讓它掉電不丟失的辦法是將編寫的引導程序生成為BOOT ROM的上電初始化.hex文件(其中.text需要映射到BOOT ROM上),然后將初始化文件加載到Quartus中與硬件配置一同編譯,最后生成的.sof配置文件中將自帶BOOT ROM的初始化信息。將帶有初始化信息的配置文件燒寫到EPCS中,當FPGA通過RSU選擇它并進行配置跳轉時,BOOT ROM將被初始化而存儲引導程序,FPGA在配置完成后即開始運行引導程序。

引導程序有兩個地址需要關注:一個是應用數據2在EPCS中的存儲地址,另一個是之前所提到的應用數據中段記錄地址。第一個地址決定待搬移數據在EPCS中的源地址,它可以自行任意設置,所以應用數據2可以存儲在EPCS中任意未重疊的位置處。第二個地址決定待搬移數據的目的地址,它是由CPU的reset地址所決定的,因此在編譯應用程序2時,應該將CPU的reset地址由ROOT ROM改為SDRAM。

3.2 程序2的燒寫

如上所述,程序2的配置文件和應用文件均可燒寫到EPCS中任意位置,其中應用文件也不需要緊隨配置文件燒寫,但由于EPCS中程序的擦除及燒寫都是以塊為單位進行的,所以燒寫的目的地址應該為各塊的開始地址。

如圖1中EPCS所示,本系統將配置文件2存放到EPCS偏移量為0x28 0000位置處,由于存在偏移量,所以并不能直接將sof文件轉換為flash格式燒寫,具體的燒寫流程如圖5所示。

圖5 配置文件2燒寫流程圖

本系統將應用文件2存放到EPCS偏移量為0x50 0000位置處,燒寫流程同上,需要先將elf文件轉換為bin格式,再通過在bin2flash命令中加入位置信息- -location=0x50 0000以及使用燒寫命令來實現對EPCS的帶偏移量燒寫。

4 實驗結果

按上述方法搭建好如圖1所示的SOPC系統,程序1和程序2的相關設置及功能如表1所列,其中reset表示SOPC中CPU的reset地址,如上方法所述,生成相關文件并燒寫到EPCS中。

表1 程序1和程序2的相關設置及功能

燒寫完畢后,系統重新上電,LED1、LED3將點亮,說明配置1和應用1正在運行;按下按鍵,LED1、LED3熄滅,LED2、LED4點亮,說明RSU已經控制在0x28 0000位置處進行重配置并通過引導程序啟動了存儲在0x50 0000中的應用;再次按下按鍵,重新回到程序1的狀態。多次按動按鍵,現象來回跳轉,說明程序1和程序2已經同時存儲在EPCS中,并可完成程序間的切換。通過同樣的方法,可以實現更多程序在EPCS中的存儲和切換運行。

結 語

[1] 楊海鋼,孫嘉斌,王慰.FPGA器件設計技術發展綜述[J].電子與信息學報,2010,32(3):714-719.

Method of Storage and Switching Running for Multiple NIOS Programs in EPCS

Luo Minghua

(China Coal Technology Engineering Group Chongqing Research Institute,Chongqing 400039,China)

In the paper,a method for Altera FPGA to store multiple NIOS II embedded programs into EPCS Flash and let them swtich to each other for running is proposed.Taking two embedded programs as the example,the program boot process,the specific method of the two program's storage and switch running are introduced.The experiment results show that the method is feasible.This method makes the FPGA with NIOS II soft core more convinient in program debugging and practical application.Especially for program remote update,it can be completed without destroying the original program,and therefore the security of the system is enhanced greatly.

FPGA;NIOS II;EPCS;program storage;reconfiguration;program boot

省部級-“礦用膠帶機撕裂檢測控制系統研究”;重慶市社會事業與民生保障專項項目(cstc2015shmszx90007)。

TN791

A

猜你喜歡
嵌入式程序設置
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
搭建基于Qt的嵌入式開發平臺
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
Altera加入嵌入式視覺聯盟
主站蜘蛛池模板: 成人无码一区二区三区视频在线观看| 国产成人做受免费视频| 亚洲无码A视频在线| 欧美、日韩、国产综合一区| 免费在线看黄网址| 青青操视频免费观看| 久久国产精品夜色| 亚洲AV无码一区二区三区牲色| 国产无人区一区二区三区| 欧美一级99在线观看国产| 日本AⅤ精品一区二区三区日| 中文国产成人久久精品小说| 91久久大香线蕉| 国产三级毛片| 亚洲综合专区| 欧美19综合中文字幕| 欲色天天综合网| 99久久国产自偷自偷免费一区| 国产美女精品人人做人人爽| 色精品视频| 久久综合亚洲色一区二区三区| 欧美日韩国产成人高清视频| 免费无码AV片在线观看中文| 黄色网站在线观看无码| 波多野结衣的av一区二区三区| 少妇被粗大的猛烈进出免费视频| 试看120秒男女啪啪免费| 波多野结衣爽到高潮漏水大喷| 久久人妻xunleige无码| 欧美精品成人| 亚洲第一天堂无码专区| 91系列在线观看| 高清视频一区| 毛片卡一卡二| av大片在线无码免费| 中文字幕在线观看日本| 国产成人h在线观看网站站| 欧美亚洲第一页| 免费观看男人免费桶女人视频| a级毛片网| 成人日韩精品| 久久国产精品嫖妓| 九九热视频在线免费观看| 91精品国产自产91精品资源| 国产理论精品| 免费A级毛片无码无遮挡| 九色国产在线| 国产精品精品视频| 99热这里只有精品2| 久久不卡精品| 亚洲中文字幕国产av| av手机版在线播放| 欧美a在线| 99热线精品大全在线观看| 一本大道东京热无码av| 毛片网站观看| 四虎国产成人免费观看| 欧美日韩中文字幕二区三区| 国产一区二区三区在线精品专区| 九九热这里只有国产精品| 色婷婷综合激情视频免费看| 久久精品只有这里有| 亚洲首页在线观看| 国产黄色爱视频| 97se亚洲综合在线天天 | 久久婷婷六月| 亚洲免费毛片| 欧美中出一区二区| 国产精品亚洲片在线va| a级毛片网| 国产成人精品亚洲日本对白优播| 色综合色国产热无码一| 1769国产精品免费视频| 多人乱p欧美在线观看| 97超爽成人免费视频在线播放| a亚洲视频| 99在线视频免费| 天堂久久久久久中文字幕| 国产精品内射视频| 先锋资源久久| 国产精品爆乳99久久| 澳门av无码|