我平时创建新的Nios II工程时,都是选择从空模板创建app+bsp工程(图1、图2)。
有时候,我直接从其他工程里或文件夹复制c,然后直接粘贴到我的app工程里。图3所示的main.c,就是我直接拖过来的。代码(代码1)很简单,但是编译却出现报错(图4)。
代码1 main.c
#include "system.h" #include "altera_avalon_pio_regs.h" int main(void) { while(1) { IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE, 0x55); } return 0; }
图4的意思就是讲,我的c没有main()入口。我就奇了怪。双击打开markfile看看,原来的SRCS的列表都是空(图5)。
我把main.c手动加入SRCS列表中。刷新一下工程,发现一个现象(图6),看,main.c左边的图标的右上角的那个圆,亮了;对比一下图3。
我重新编译工程,成功(图7)。
那么如果发现有的c或h文件,没有亮,怎么办呢?
- 手动修改makefile;
- 单击该文件,在弹出的菜单中,选择Add to Nios II Build(图8)。
想要去除不想引用的文件,可单击发亮的c或h文件,选择Remove from Nios II Build。
虽然乏味可陈,但是让我明白了两件事情:
- 如果出现图3所示错误,先查看makefile,找找main()所在的文件是否被引用。
- 可用手动切换某c或h是否需要引用到工程中。