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
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步