nios - 2常见问题解答

发布时间 : 星期六 文章nios - 2常见问题解答更新完毕开始阅读

1.NIOS能做浮点运算么?

答:NIOS可以进行浮点运算,完全可以替代MCU,时钟可以跑到100Mhz,比ARM7还要快,ARM7时钟一般为72Mhz左右。

2.NIOS是否可以不使用SDRAM和并行FLASH?

答:首先说明一下,SDRAM是用来运行程序的,FLASH是用来存储程序代码的(SDRAM掉电丢失,FLASH则不会),每次上电的时候,都需要将FLASH中的程序代码放到SDRAM中,然后再运行。FPGA内部的memory(onchip memory)比较小,跑比较大的程序就很难了,所以我们外扩了SDRAM,以便比较大的程序运行。当然,我们也可以将并行的FLASH换成串行的FLASH,而且这样可以节省很多引脚。其实EPCS1(4,16...)就是串行FLASH,所以我们可以利用它来存储代码,至于如何设置,我后面通过博客形式来给大家讲解。

3.我的Quartus II编译硬件时没有错误,但是在下载程序的时候去出现以下错误的信息? Info: Started Programmer operation at Thu May 06 01:39:46 2010 Error: Application Nios2 on 127.0.0.1 is using the target device Error: Operation failed

Info: Ended Programmer operation at Thu May 06 01:39:46 2010 不明白这是什么意思,时好时坏?

答:这种情况出现在JTAG模式下,你在使用NIOS下的JTAG功能(比如利用BLASTER进行在线仿真),同时你又想下载*.sof文件(就是在JTAG模式下下载程序)。简单说就是你的JTAG已经被占用了。解决办法就是关闭你正在使用的JTAG功能,然后再下载*.sof文件。初学者经常会犯这样的错误,一定要注意。 4.

答:1.安装最好装在默认目录下,即:X:\\altera目录下,如果自行指定目录的目录中含有空格或者汉字,在新建工程时,会出现如下错误提示:

No project template folders found in $sopc_kit_nios/examples/software.

2.工程的存放地址不要有中文,也不要有空格,不然建立工程时可能出现如下错误提示: The software setting(STF)file associated with this project is damaged.This may be fixed by copying your source files into a new c/c++ application project.For more details see the error log.

这个问题还是NiosII IDE对中文字符支持不好引起的,把目录名都改成英文而且不要有空格就没有问题了。

5.Using cable \ Pausing target processor: not responding. Resetting and trying again: FAILED Leaving target processor paused

答:我遇到这种问题是因为忘记将NIOS软核的复位(RESET)添加引脚了,或者是因为你所添加的引脚不是对应按键也能导致这种问题的发生。

6.请问一下使用EPCS4来保存程序,如何通过fpga加载到sdram里? 答:如何使用EPCSX保存程序请看我最新发表的博文,地址:

http://www.cnblogs.com/kingst/archive/2010/05/09/1730835.html

如何通过FPGA加载到SDRAM,这个过程是NIOS内部完成的,不需要我们来控制。

7. 怎样在TCL脚本分配管脚 source .tcl 有点问题: # source stratix_pin_assign.tcl

couldn't read file \

答: From the Tools menu select Tcl Scripts, and then from the project folder choose the setup script for your particular development board, and click Run.

8.D:\\TEST\\nios_sst60下载时出现错误:

Error: Can't configure device. Expected JTAG ID code 0x020010DD for device 1, but found JTAG ID code 0x020B40DD. 答:SOPC所选器件和开发板上的不一致。

9.在NOIS II中Bulid例程hello_world都出现了错误,错误提示为:

gdrive/c/altera/kits/nios2/components/altera_nios2/HAL/src/alt_busy_sleep.c:68: error: parse error before '/' token等错误全部由alt_busy_sleep.c引起,都是关于括号不匹配的问题,而alt_busy_sleep.c是IDE中的一个默认程序。这个错误同样出现在D:\\TEST\\DE2Project\\software\\nios2.

答:找到system.h文件,里面有个关于系统时钟频率的设置项,应该是没有赋值,你手动赋值。比如你用50MHZ的时钟,就设成50000000

如果总是出现上述问题,可能和软件有关系,建议重新安装软件。注意quartus和NIOS安装版本一定要相同,不能混装。

10.这个错误是什么原因引起,把那个sdk_arm删除后,又提示另一个地方出错。 答:运行NIOS II IDE,点Project->Clear,重新Builde,应该可以解决问题。

11.在SOPC中Generate出现如下错误是怎么回事? Error: Generator program for module 'epcs_controller' did NOT run successfully. 只要在SOPC中加入epcs_controller就会出现此错误,无法生成一个元件。

答:可能和软件有关系,建议重新安装软件(这个问题是我刚学NIOS遇到的最头痛的一个问题,问题的原因是Quartus和Nios安装的版本不一致)。

12.在Nios II IDE中,怎样打开一个已经存在的工程?每次新建工程比较麻烦。 答:指定一个Nios II IDE的工作目录,就打开了那个目录下存在的工程。另外,在Nios II中是可以建立多个工程的。

13.在Quartus II 中编译出现如下错误怎么办?

Error: Can't place pins assigned to pin location Pin_AE24 (IOC_X65_Y2_N2) 答:按F1可以查看帮助,出现这样的错误的原因是:

CAUSE: You assigned two or more pins to the specified location, but the Fitter

cannot place all the pins in that location.删除这个管脚即可。有一种比较简便的方法,就是在工程目录中找到一个后缀为QSF的管脚配置文件,查找Pin_AE24删除那行语句就行了。

14.如何在NIOS II IDE 下跟踪查看变量的定义或者函数的定义?

答:按住CTRL键,鼠标移动到变量或者函数名的地方,就可以发现这些地方高亮显示,单击就可以进入到变量或者函数定义的地方。

15. 在count_binary.c有这样一段程序,它是如何操作的? unsigned int data = segments[hex & 15] | (segments[(hex >> 4) & 15] << 8)

答:segments[hex & 15]显示个位0~F;(segments[(hex >> 4) & 15] << 8)显示十位数0~F,个位0~F,然后十位加一。

16.这个错误是由什么引起?

答:提示LED_PIO_BASE没有声明,这是因为名字不一致引起的比如,在生成SOPC系统时,双击PIO(Parallel I/O)(在Avalon Modules -> Other 下),为系统添加输出接口,你没有把该组件改名成LED_PIO,而是保留了原始的名字:PIO_0;但你又通过

IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led);来向该组件写入数据,就会导致上述错误。解决办法:1.可以修改sopc系统,为该PIO改名为LED_PIO ;2.在hello_led.c的前面给LED_PIO_BASE赋值,如#define LED_PIO_BASE 0x00001800,后面的这个地址要与SOPC中的地址对应。

17. 如何在NIOS II中驱动外部芯片或设备?

答:在开发过程中,我们经常会使用外接一些芯片,或外接一些实用电路,比如AD芯片、串并转换芯片等等,那么如何在NIOS II中去使用这些芯片呢? 我们在开发中会有多个选择: 1.如果这个芯片是使用数据和地址总线的,并且补线时没有足够的单独引脚,那么这个芯片必须挂接在tri_stat总线上,这种用法和我们以往单片机或MCU 类似,在SOPC Builder中直接定义用户逻辑,如果有额外的控制引脚,就需要用PIO来驱动,虽然公用数据地址线节省了引脚,但做控制时序费劲了。

2.如果这个芯片单独使用数据和地址,那么我们会直接做成Avalone总线的Slave设备,在Sopc Builder中自己定义component。需要写HDL模块,自己定控制、状态、数据寄存器和控制位定义,这种方式控制灵活,易于实现复杂的控制时序。

3.在Quartus II 工程中画电路模块(或用HDL写电路模块),这种方式是独立于SOPC定义的模块之外的,做一个纯电路的处理模块,有时候会比较容易实现某些灵活的处理。

18.在SOPC添加Avalon Trisatate Bridge时,提示有如下错误,该如何解决? Tri state bridge/tristate master requires a slave of type Avalon

联系合同范文客服:xxxxx#qq.com(#替换为@)