新闻中心

EEPW首页>消费电子>设计应用> 双Nios II软核在嵌入式系统中的应用

双Nios II软核在嵌入式系统中的应用

作者:中国海洋大学 綦声波 田学文 时间:2008-05-16 来源:《单片机与嵌入式系统应用》 收藏

2 程序下载

本文引用地址://m.amcfsurvey.com/article/82696.htm

2.1 方案确定

  下面是对2个CPU的写入探讨。

方案一

  指导思想:将硬件配置信息和cpu2写入EPCS中,将CPU的程序写入Flash中。具体步骤:

  ①CFI_FLASH的3个时间改为50、160、50;

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

  ③cpu2——reset Address onchip_memory-0
      Exception Address onchip_memory-0;

  ④将整个硬件编译成功;

  ⑤将memery-test编译,进行Flash测试,测试成功转下一步;

  ⑥分别编译newniosl和newnios2的工程;

  ⑦将整个硬件进行二次编译,此时pof文件中已经包含了newnios2的程序;

  ⑧将pof文件下载到EPCS中去;

  ⑨将硬件工程换成只有一个CPU的,将newniosl的程序下载到CFI_FLASH中去;

  ⑩重新上电启动。

  方案二

  指导思想:将2个CPU的程序均下载到Flash中,硬件配置在EPCS中。

  ①CFI_FLASH的3个时间改为50、160、50;

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

  ③cpu2——reset Address onchip_memory-0
     Exception Address onchip_memory-0

  ④将整个硬件编译成功;

  ⑤将memery_test编译,进行Flash测试,测试成功转下一步;

  ⑥分别编译new-nios1和newnios2的工程;

  ⑦重新进行硬件的编译;

  ⑧将pof文件下载到EPCS中去;

  ⑨newnios1和new-nios2的程序下载分别指定为0、1或1、2;

  ⑩重新上电启动。

 方案三

  指导思想:将2个CPU的程序均下载到EPCS中,硬件配置在EPCS中。

  ①首先在builder中将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中进行存储,而程序运行在SDRAM中;而CPU_0的存储和运行都在片上存储器中。

  ②先将进行编译,成功后选择“Exit”,硬件提示是否进行升级,选择“yes”,进行升级,然后将整个硬件全编译。

  ③硬件编译通过后,通过Builder打开IDE,在IDE下分别编译newnios1和newnios2的工程,由于第2个CPU的程序在内部存储器,则生成一个以内部存储器为名称的hex文件。

  ④重新进行硬件的编译,会发现硬件将HEX文件当作一个部件,编到整个硬件中了。编辑完毕后,查看SOF和pof的大小,其实都没什么变化,但时间修改了。

  ⑤利用命令行指令:

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

  该命令将new.sof转换成EPCS中存储的格式;将POF文件下载到EPCS中去。

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

  ⑥下面有2种处理方法都可以下载成功。

  第1种方法:将另一个只有CPU的工程(sof)下载到EP2C20中(QuartusII无法在下载过程中识别2个CPU),然后利用以下命令:

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

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

  重新上电,就可以了

  第2种方法:将instance参数带上,方法同上,进行Flash文件的转换,然后将整个工程sof下载到硬件中。

  利用命令:

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

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

  注意,instance后面的参数为1。如果为0,就会出现错误:no EPCS register found。如果是2,则会发生如下情况:

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

  ⑦重新上电启动即可。

2.2命令行在EPCS中的写入过程

  ①将sof文件下载到中,并将sof文件转换成.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文件也转换为.flash格式,并且要加入一些参数。--after是后来刷写的内容,不会冲掉前面的数据,使用命令:

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

  烧写:nios2-flash-programmer--epcs--instance=1--base=0x02900800 my2.flash

  ③重新上电启动。

 3 小 结

  本文结合服务器的设计,阐述了双NiosII软核嵌入到并通过SOPC技术将IP核嵌入并构建系统的过程及方法,充分发挥的高速优势,提供系统性能。其创新点是,将双NiosII软核应用到系统中,通过IP核的设计实现底层驱动,提高系统集成度,充分发挥SOPC技术的优势。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭