关于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)这一部分,例如,我的系统中报错如下所示:

 

提示我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

如下图所示:

 

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

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

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

 

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

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

  1. 初次使用Quartus II 13.0的疑惑及解决方法

    初次接触Quartus II 13.0,遇到了很多的问题,把问题总结如下: 1.Quartus II 13.0的安装及破解 下载地址:http://t.cn/Rh2TFcz,密码是:g3gc (参考贴 ...

  2. Quartus II 13.0 sp1的官方下载页面

    今天为了下个ModelSim跑到网上去找下载资源,清一色的百度网盘,下载速度60k/s,简直有病,于是跑到Intel官网上把连接挖出来了,供各位直接下载 实测使用IDM多线程下载速度可以轻松上到数MB ...

  3. 【Android】13.0 UI开发(四)——列表控件RecyclerView的横向布局排列实现

    1.0 新建项目,由于ListView的局限性,RecyclerView是一种很好取代ListView的控件,可以灵活实现多种布局. 2.0 新建项目RecyclerviewTest,目录如下: 3. ...

  4. 〖Linux〗Qt5.2.0+gsoap开发Android的NDK程序遇到错误的解决

    1.  error: cannot convert ‘int*’ to ‘hostent**’ for argument ‘5’ to.. 原因分析: 缺少的宏定义,导致使用了错误的函数原型. 被调用 ...

  5. mono 3.4.0 make install的时候出现"找不到 Microsoft.Portable.Common.targets 文件”的错误提示解决方法

    如果在这时就进行配置安装Mono的话,会在make阶段得到一个“找不到 Microsoft.Portable.Common.targets 文件”的错误提示, 所以需要先进行如下处理: #> c ...

  6. 开发win8 metro monogame,显示pubcenter广告时会使游戏卡住的问题的解决方法。

    开发win8 metro游戏,使用monogame,并且还加上pubcenter广告,但是在x64的机子上遇到了问题,广告一出,游戏卡死.经过一系列的判断,发现monogame一直在update和dr ...

  7. vue2.0动态绑定图片src属性值初始化时报错

    在vue2.0中,经常会使用类似这样的语法 v-bind:src = " imgUrl "(缩写 :src = " imgUrl "),看一个案例 <te ...

  8. Jmeter4.0分布式测试时启动Jmeter.server时报错

       最近又开始研究Jmeter,将新版本4.0下载下来体验,准备远程分布式测试,又出现一些问题,废话不多说,直入主题把! Windows 系统启动Jmeter 4.0的JmeterServer.ba ...

  9. android4.0以上访问网络不能在主线程中进行以及在线程中操作UI的解决方法

    MONO 调用一个线程操作UI 然后报Only the original thread that created a view hierarchy can touch its views.错误 goo ...

随机推荐

  1. 查看python的路径

    >>> import sys >>> sys.path

  2. asmdisk opened & asmdisk cached

    ASMDISK OPENED - Disk is present in the storage system and is being accessed by Automatic Storage Ma ...

  3. 使用Java创建RESTful Web Service

    REST是REpresentational State Transfer的缩写(一般中文翻译为表述性状态转移).2000年Roy Fielding博士在他的博士论文“Architectural Sty ...

  4. oracle和sql server的区别(1)

    A.instance和database 1.从oracle的角度来说,每个instance对应一个database.有时候多个instance对应一个database(比如rac环境).有自己的Sys ...

  5. JavaScript----marquee滚动标签 图片无缝滚动 插入百度地图

    页面的自动滚动效果,可由javascript来实现, 但是有一个html标签 - <marquee></marquee>可以实现多种滚动效果,无需js控制. 使用marquee ...

  6. "数学口袋精灵"bug的发现及单元测试

    1.项目内容: 团队项目:二次开发 至此,我们有了初步的与人合作经验,接下来投入到更大的团队中去. 也具备了一定的个人能力,能将自己的代码进行测试.接下来尝试在别人已有的基础上进行开发. 上一界51冯 ...

  7. php setcookie(name, value, expires, path, domain, secure) 参数详解

    setcookie() 定义一个和其余的 HTTP 标头一起发送的 cookie.和其它标头一样,cookie 必须在脚本的任何其它输出之前发送(这是协议限制).这 需要将本函数的调用放到任何输出之前 ...

  8. spark小技巧-mapPartitions

    与map方法类似,map是对rdd中的每一个元素进行操作,而mapPartitions(foreachPartition)则是对rdd中的每个分区的迭代器进行操作.如果在map过程中需要频繁创建额外的 ...

  9. Mac配置环境变量(Java,Android,Gradle,Maven,Hosts)

    JAVA_HOME 配置环境变量 # 使用vim打开.bash_profile文件,加入java环境变量 $ vim .bash_profile export JAVA_HOME=$(/usr/lib ...

  10. BackgroundWorker的使用

    一个程序中需要进行大量的运算,并且需要在运算过程中支持用户一定的交互,为了获得更好的用户体验,使用BackgroundWorker来完成这一功能.   基本操作: bgw.RunWorkerAsync ...