關於Quartus II 13.0對應開發NIOS II軟件程序時報錯Symbol 'NULL' could not be resolved問題的解決方法


關於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的筒子幫我驗證一下,有不同意見的請一定記得告訴我哦。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM