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

版权声明:本文为博主原创文章,未经博主允许不得转载。欢迎联系我qq2488890051 https://blog.csdn.net/kangkanglhb88008/article/details/83714559

这是因为名字不一致引起的比如,在生成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头文件,打开可以发现

/*
 * pio_0 configuration
 *
 */

#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

猜你喜欢

转载自blog.csdn.net/kangkanglhb88008/article/details/83714559
今日推荐