nios eclipse提示LED_PIO_BASE没有声明,怎么回事?

这是因为名字不一致引起的比如,在生成SOPC系统时,双击PIO(Parallel I/O)(在Avalon Modules -> Other 下),为系统添加输出接口,你没有把该组件改名成LED_PIO,而是保留了原始的名字:PIO_0;但你又通过IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led);这个函数肯定是你从别人的工程复制过来的,来向该组件写入数据,就会导致上述错误。

打开Qsys,open?之前的.qsys文件,发现确实pio IP核没有改名字,所以在eclipse中system.h头文件,打开可以发现

 

#define ALT_MODULE_CLASS_pio_0 altera_avalon_pio
#define PIO_0_BASE 0x1800

是这样的,所以这就解释了这一系列问题。

解决办法:1.可以修改sopc系统,为该PIO改名为LED_PIO ;(这个比较麻烦,还得另外构建一遍nios,不推荐)

2.IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE , led);这样就行了,把LED_PIO_BASE改为PIO_0_BASE

posted @ 2018-11-26 12:10  张嫣然  阅读(406)  评论(0编辑  收藏  举报
友情链接:http://www.taidai-tj.com/ | http://www.ai200808.com/ | http://wh.xhd.cn/