原创 【博客大赛】解决Quartus II 13.0开发套件开发nios II软件时Symbol 'NULL' could not be resolved错误

2015-5-21 21:23 3334 18 19 分类: FPGA/CPLD 文集: FPGA深入学习

关于Quartus II 13.0对应开发NIOS II软件程序时报错Symbol 'NULL' could not be resolved问题的解决方法。

近期在评估使用NIOS II处理器进行项目的开发,我使用的软件是Quartus II 13.0的版本,一路下来,在Qsys系统中搭建NIOS II片上系统,在Quartus II中建立工程文件等等过程,没有太多的问题,这里暂且不表。只是在NIOS II Software build tools for Eclipse中进行软件开发时,一个非常让人不解的问题就是:我在工程向导中创建一个Hello World的模版工程,然后编译下载运行都没问题。然后关闭NIOS II Software build tools for Eclipse软件,再次打开时,结果就冒出一大堆错误,错误描述如下:

alt_sys_init.c这个文件中,报错Symbol 'NULL' could not be resolved,此报错主要集中在分配设备存储(Allocate the device storage)这一部分,例如,我的系统中报错如下所示:

20150521172340905.jpg

提示我NULL未定义。可是NULL明明是在stddef.h这样一个标准头文件中明确定义了的,怎么还会发生这种情况呢?

另外,由于本系统中使用到了UART IP,所以系统在自动生成时也提供了对应的驱动,打开一个驱动程序“altera_avalon_uart_write.c”,发现同样有报错的地方,这里主要提示:Symbol 'O_NONBLOCK' could not be resolved,其它文件中也有类似的提示,这就让人很是纳闷了。O_NONBLOCK这个宏定义明明是在 sys/_default_fcntl.h这个文件中定义了的,为什么总是说找不到呢?

参考网上的方法,说是需要手动添加包头文件包含路径,怀着试一试的心态,我打开了bsp工程的选项对话框(选中XXX_bsp工程,单击右键,选中properties),在打开的对话框中,切换到C/C++ general选项下的paths and Symbols选项栏,选择GUN C,在里面添加了三个路径

/hello_bsp/HAL/inc/os

/hello_bsp/HAL/inc/priv

/hello_bsp/HAL/inc/sys

 

如下图所示:

20150521172417393.jpg

添加完成之后点击Apply,此时会弹出如下对话框:

20150521172451132.jpg

点击YES即可,然后点击OK关闭设置窗口。

此时对XXX_bsp工程执行Clean操作,然后build。待build完成之后,再次打开前面提到的报错的若干文件,发现没有了报错信息,关闭NIOS II Software build tools for Eclipse软件,然后再打开,都没有再出现这种报错信息,因此问题成功解决。

 

反思这个问题出现的原因,应该是Altera在升级该开发环境时,对HAL/inc文件夹下原本的文件进行了重新分组,建立了三个新的文件夹osprivsys,将以前的文件分别存在了这三个文件夹下,而在开发环境中并未对此进行设置说明,导致出错。这里仅个人猜测,与quartus ii 9.0软件自带的nios ii ide一经对比即可知晓,小梅哥电脑上硬盘空间告急,就不去装9.0来进行对比了,希望各位熟悉9.0的筒子帮我验证一下,有不同意见的请一定记得告诉我哦。

小梅哥

2015年5月21日于北京至芯科技

文章评论1条评论)

登录后参与讨论

用户1725062 2015-6-5 12:04

小梅哥,我现在也被这个问题苦恼着。按照这个做法不行哦,添加了上述三个路径,然后对BSP工程clean project》Build project,重启Nios II之后还是老样子。要不您发个邮箱,我把工程发给你,您试试看

dreamfly123123 2014-4-9 20:15

不好意思。有时间我把图片补上

用户403664 2014-4-8 16:28

嘿,图片挂了呢
相关推荐阅读
小梅哥 2019-09-04 22:10
小梅哥FPGA时序分析笔记(6.2)深入现象看本质——庖丁解牛之FPGA内数据传输模型
通过上一节,我们了解了FPGA内部数据的传输形式,接下来我们就可以根据上一节的内容来总结一下FPGA内部的数据传输模型了。 时钟和数据传输路径 通过上一节内容中,我绘制的那个FPGA内部数据在逻辑...
小梅哥 2019-09-01 21:28
小梅哥FPGA时序分析笔记(6.1)深入现象看本质——庖丁解牛之FPGA可编程原理
上一次发博客,已经是2个月前了,这中间两个月,干了件很有意义的事情,尤其是对于自己来说,感觉学到了非常多的知识和经验,每天都很忙,忙到没时间逛网站博客,终于忙完闲下来了,连载的事情可不能忘,终于可以书...
小梅哥 2019-07-02 08:57
小梅哥FPGA时序分析笔记(五)I/O约束显神威——深入龙潭
大家一定对我上一节的突然结尾表示一脸茫然:我是来学习时序约束的,然后你告诉我时序约束里面IO约束很重要,然我又跟着你的文章继续往下看,本以为你就要讲如何进行IO约束了,结果呢,你一个取反时钟就把我们打...
小梅哥 2019-06-30 11:07
小梅哥FPGA时序分析笔记(四)I/O时序定成败——化险为夷
小梅哥FPGA时序分析从遥望到领悟系列没有遇见过I/O时序问题,没有通过I/O约束方式实际解决过I/O时序问题,就很难明白I/O约束的重要性,也很难相信各种EDA软件真的有那么的傻白甜。 我遇到的最...
小梅哥 2019-06-22 10:32
小梅哥FPGA时序分析笔记(三)时钟约束真重要——事实说话
小梅哥FPGA时序分析从遥望到领悟系列以前,那是在以前,经常有网友(原谅我行文动不动就是网友说,网友问,毕竟我是卖开发板的,正面接触学FPGA的网友相对多一些,所以这些也都是事实存在的事情)问我:小梅...
小梅哥 2019-06-21 10:33
小梅哥FPGA时序分析笔记(二)时钟质量是生命——初遇时序
小梅哥FPGA时序分析从遥望到领悟系列第一次遇到时序问题并通过相应的手段解决问题,算是2年前做百兆以太网图像传输的时候了吧。当时遇到的问题为:同一个工程,每次编译结果的效果都不一样,有的时候编译了,下...
我要评论
1
18
关闭 站长推荐上一条 /2 下一条