雙Nios II軟核在嵌入式系統(tǒng)中的應(yīng)用
2 程序下載
本文引用地址:http://www.ex-cimer.com/article/82696.htm2.1 方案確定
下面是對2個CPU的寫入探討。
方案一
指導(dǎo)思想:將硬件配置信息和cpu2寫入EPCS中,將CPU的程序?qū)懭隖lash中。具體步驟:
①CFI_FLASH的3個時間改為50、160、50;
?、赾pul——reset Address CFI_FLASH
Exception Address sdram-3/sl;
?、踓pu2——reset Address onchip_memory-0
Exception Address onchip_memory-0;
④將整個硬件編譯成功;
?、輰emery-test編譯,進(jìn)行Flash測試,測試成功轉(zhuǎn)下一步;
?、薹謩e編譯newniosl和newnios2的工程;
?、邔⒄麄€硬件進(jìn)行二次編譯,此時pof文件中已經(jīng)包含了newnios2的程序;
?、鄬of文件下載到EPCS中去;
⑨將硬件工程換成只有一個CPU的,將newniosl的程序下載到CFI_FLASH中去;
?、庵匦律想妴?。
方案二
指導(dǎo)思想:將2個CPU的程序均下載到Flash中,硬件配置在EPCS中。
?、貱FI_FLASH的3個時間改為50、160、50;
?、赾pul——reset Address EPCS_CONTROLLER
Exception Address sdram-3/sl
③cpu2——reset Address onchip_memory-0
Exception Address onchip_memory-0
?、軐⒄麄€硬件編譯成功;
⑤將memery_test編譯,進(jìn)行Flash測試,測試成功轉(zhuǎn)下一步;
⑥分別編譯new-nios1和newnios2的工程;
⑦重新進(jìn)行硬件的編譯;
?、鄬of文件下載到EPCS中去;
?、醤ewnios1和new-nios2的程序下載分別指定為0、1或1、2;
?、庵匦律想妴?。
方案三
指導(dǎo)思想:將2個CPU的程序均下載到EPCS中,硬件配置在EPCS中。
?、偈紫仍?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/SOPC">SOPCbuilder中將2個作CPU如下配置:
cpu1——reset Address EPCS_CONTROLLER
Exception Address sdram-3/sl
cpu2——reset Address onchip_memory-0
Exception Address onchip_memory-0
這代表將CPU的程序在EPCS中進(jìn)行存儲,而程序運(yùn)行在SDRAM中;而CPU_0的存儲和運(yùn)行都在片上存儲器中。
?、谙葘?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/SOPC">SOPC進(jìn)行編譯,成功后選擇“Exit”,硬件提示是否進(jìn)行升級,選擇“yes”,進(jìn)行升級,然后將整個硬件全編譯。
③硬件編譯通過后,通過SOPC Builder打開IDE,在IDE下分別編譯newnios1和newnios2的工程,由于第2個CPU的程序在內(nèi)部存儲器,則生成一個以內(nèi)部存儲器為名稱的hex文件。
?、苤匦逻M(jìn)行硬件的編譯,會發(fā)現(xiàn)硬件將HEX文件當(dāng)作一個部件,編到整個硬件中了。編輯完畢后,查看SOF和pof的大小,其實(shí)都沒什么變化,但時間修改了。
?、堇妹钚兄噶睿?/p>
sof2flash--epcs--input=new.sof--output=my1.flash,
該命令將new.sof轉(zhuǎn)換成EPCS中存儲的格式;將POF文件下載到EPCS中去。
Elf2flash--epcs--after=my1.flash--input=newniosl.elf--output=my2.flash
?、尴旅嬗?種處理方法都可以下載成功。
第1種方法:將另一個只有CPU的工程(sof)下載到EP2C20中(QuartusII無法在下載過程中識別2個CPU),然后利用以下命令:
Nios2-flash-programmer--epcs--base=0x02900800 my1.flash
Nios2-flash-programmer--epcs--base=0x02900800 my2.flash
重新上電,就可以了
第2種方法:將instance參數(shù)帶上,方法同上,進(jìn)行Flash文件的轉(zhuǎn)換,然后將整個工程sof下載到硬件中。
利用命令:
Nios2-flash-programmer--epcs--base=0x02900800--instance 1 my1.flash
Nios2-flash-programmer--epcs--base=0x02900800--instance 1 my2.flash
注意,instance后面的參數(shù)為1。如果為0,就會出現(xiàn)錯誤:no EPCS register found。如果是2,則會發(fā)生如下情況:
There are no niosII processors available which match the value specified,please check your PLD……
?、咧匦律想妴蛹纯?。
2.2命令行在EPCS中的寫入過程
?、賹of文件下載到FPGA中,并將sof文件轉(zhuǎn)換成.flash燒寫中間格式,使用命令:
sof2flash--epcs--input=./new.sof--output=my1.flash
然后用.flash文件燒寫epcs--base項為nios2工程中epcs在avalon總線中的地址位:
nios2--flash-programmer--epcs--instance=1--base=0x02900800 my1.flash
②將elf文件也轉(zhuǎn)換為.flash格式,并且要加入一些參數(shù)。--after是后來刷寫的內(nèi)容,不會沖掉前面的數(shù)據(jù),使用命令:
elf2flash--epcs--after=my1.flash--input=newniosl.elf--output=my2.flash
燒寫:nios2-flash-programmer--epcs--instance=1--base=0x02900800 my2.flash
③重新上電啟動。
3 小 結(jié)
本文結(jié)合視頻點(diǎn)播服務(wù)器的設(shè)計,闡述了雙NiosII軟核嵌入到FPGA并通過SOPC技術(shù)將IP核嵌入并構(gòu)建系統(tǒng)的過程及方法,充分發(fā)揮FPGA的高速優(yōu)勢,提供系統(tǒng)性能。其創(chuàng)新點(diǎn)是,將雙NiosII軟核應(yīng)用到嵌入式系統(tǒng)中,通過IP核的設(shè)計實(shí)現(xiàn)底層驅(qū)動,提高系統(tǒng)集成度,充分發(fā)揮SOPC技術(shù)的優(yōu)勢。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論