新聞中心

EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 雙Nios II軟核在嵌入式系統(tǒng)中的應(yīng)用

雙Nios II軟核在嵌入式系統(tǒng)中的應(yīng)用

作者:中國(guó)海洋大學(xué) 綦聲波 田學(xué)文 時(shí)間:2008-05-16 來(lái)源:《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》 收藏

  2 程序下載

本文引用地址:http://butianyuan.cn/article/82696.htm

  2.1 方案確定

  下面是對(duì)2個(gè)CPU的寫入探討。

  方案一

  指導(dǎo)思想:將硬件配置信息和cpu2寫入EPCS中,將CPU的程序?qū)懭隖lash中。具體步驟:

 ?、貱FI_FLASH的3個(gè)時(shí)間改為50、160、50;

  ②cpul——reset Address CFI_FLASH
      Exception Address sdram-3/sl;

 ?、踓pu2——reset Address onchip_memory-0
      Exception Address onchip_memory-0;

 ?、軐⒄麄€(gè)硬件編譯成功;

  ⑤將memery-test編譯,進(jìn)行Flash測(cè)試,測(cè)試成功轉(zhuǎn)下一步;

  ⑥分別編譯newniosl和newnios2的工程;

  ⑦將整個(gè)硬件進(jìn)行二次編譯,此時(shí)pof文件中已經(jīng)包含了newnios2的程序;

 ?、鄬of文件下載到EPCS中去;

  ⑨將硬件工程換成只有一個(gè)CPU的,將newniosl的程序下載到CFI_FLASH中去;

 ?、庵匦律想妴?dòng)。

  方案二

  指導(dǎo)思想:將2個(gè)CPU的程序均下載到Flash中,硬件配置在EPCS中。

 ?、貱FI_FLASH的3個(gè)時(shí)間改為50、160、50;

  ②cpul——reset Address EPCS_CONTROLLER
     Exception Address sdram-3/sl

 ?、踓pu2——reset Address onchip_memory-0
     Exception Address onchip_memory-0

 ?、軐⒄麄€(gè)硬件編譯成功;

  ⑤將memery_test編譯,進(jìn)行Flash測(cè)試,測(cè)試成功轉(zhuǎn)下一步;

 ?、薹謩e編譯new-nios1和newnios2的工程;

  ⑦重新進(jìn)行硬件的編譯;

  ⑧將pof文件下載到EPCS中去;

  ⑨newnios1和new-nios2的程序下載分別指定為0、1或1、2;

  ⑩重新上電啟動(dòng)。

  方案三

  指導(dǎo)思想:將2個(gè)CPU的程序均下載到EPCS中,硬件配置在EPCS中。

 ?、偈紫仍?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/SOPC">SOPCbuilder中將2個(gè)作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)行存儲(chǔ),而程序運(yùn)行在SDRAM中;而CPU_0的存儲(chǔ)和運(yùn)行都在片上存儲(chǔ)器中。

  ②先將進(jìn)行編譯,成功后選擇“Exit”,硬件提示是否進(jìn)行升級(jí),選擇“yes”,進(jìn)行升級(jí),然后將整個(gè)硬件全編譯。

 ?、塾布幾g通過(guò)后,通過(guò) Builder打開(kāi)IDE,在IDE下分別編譯newnios1和newnios2的工程,由于第2個(gè)CPU的程序在內(nèi)部存儲(chǔ)器,則生成一個(gè)以內(nèi)部存儲(chǔ)器為名稱的hex文件。

 ?、苤匦逻M(jìn)行硬件的編譯,會(huì)發(fā)現(xiàn)硬件將HEX文件當(dāng)作一個(gè)部件,編到整個(gè)硬件中了。編輯完畢后,查看SOF和pof的大小,其實(shí)都沒(méi)什么變化,但時(shí)間修改了。

  ⑤利用命令行指令:

  sof2flash--epcs--input=new.sof--output=my1.flash,

  該命令將new.sof轉(zhuǎn)換成EPCS中存儲(chǔ)的格式;將POF文件下載到EPCS中去。

  Elf2flash--epcs--after=my1.flash--input=newniosl.elf--output=my2.flash

 ?、尴旅嬗?種處理方法都可以下載成功。

  第1種方法:將另一個(gè)只有CPU的工程(sof)下載到EP2C20中(QuartusII無(wú)法在下載過(guò)程中識(shí)別2個(gè)CPU),然后利用以下命令:

  2-flash-programmer--epcs--base=0x02900800 my1.flash

  2-flash-programmer--epcs--base=0x02900800 my2.flash

  重新上電,就可以了

  第2種方法:將instance參數(shù)帶上,方法同上,進(jìn)行Flash文件的轉(zhuǎn)換,然后將整個(gè)工程sof下載到硬件中。

  利用命令:

  2-flash-programmer--epcs--base=0x02900800--instance 1 my1.flash

  Nios2-flash-programmer--epcs--base=0x02900800--instance 1 my2.flash

  注意,instance后面的參數(shù)為1。如果為0,就會(huì)出現(xiàn)錯(cuò)誤:no EPCS register found。如果是2,則會(huì)發(fā)生如下情況:

  There are no niosII processors available which match the value specified,please check your PLD……

 ?、咧匦律想妴?dòng)即可。

  2.2命令行在EPCS中的寫入過(guò)程

 ?、賹of文件下載到中,并將sof文件轉(zhuǎn)換成.flash燒寫中間格式,使用命令:

  sof2flash--epcs--input=./new.sof--output=my1.flash

  然后用.flash文件燒寫epcs--base項(xiàng)為nios2工程中epcs在avalon總線中的地址位:

  nios2--flash-programmer--epcs--instance=1--base=0x02900800 my1.flash

 ?、趯lf文件也轉(zhuǎn)換為.flash格式,并且要加入一些參數(shù)。--after是后來(lái)刷寫的內(nèi)容,不會(huì)沖掉前面的數(shù)據(jù),使用命令:

  elf2flash--epcs--after=my1.flash--input=newniosl.elf--output=my2.flash
 
  燒寫:nios2-flash-programmer--epcs--instance=1--base=0x02900800 my2.flash

 ?、壑匦律想妴?dòng)。

  3 小 結(jié)

  本文結(jié)合服務(wù)器的設(shè)計(jì),闡述了雙NiosII軟核嵌入到并通過(guò)SOPC技術(shù)將IP核嵌入并構(gòu)建系統(tǒng)的過(guò)程及方法,充分發(fā)揮的高速優(yōu)勢(shì),提供系統(tǒng)性能。其創(chuàng)新點(diǎn)是,將雙NiosII軟核應(yīng)用到系統(tǒng)中,通過(guò)IP核的設(shè)計(jì)實(shí)現(xiàn)底層驅(qū)動(dòng),提高系統(tǒng)集成度,充分發(fā)揮SOPC技術(shù)的優(yōu)勢(shì)。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

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

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉