標籤:sof 定義 方法 stdin 簡便 檔案下載 總結 沒有 錯誤提示
本文記錄了在使用NIOS中遇到的一些問題和相關的原因分析及解決辦法,做個總結方便以後查閱。也希望可以幫到有同樣問題的攻城獅。本文長期更新,遇到了就寫下。
本人使用軟體版本:QuartusII 13.0sp1,NIOS13.0sp1
[TIPS]NIOS工程的一些基本設定
這裡簡單的介紹一下自己在使用NIOS中我常有的一些操作,用來保證整個使用過程中錯誤的警報數量減少。
- Qsys中,自訂IP核,在Tools中Option添加V檔案所在路徑
- NIOS中,Project->Properities中添加include 路徑,防止出現include後變數尋找不到的情況
- 在下載ELF程式時,Run Config鐘勾選兩個ignore選項框
[ERROR]Qsys添加自訂IP核時綜合錯誤
很多時候我們都需要使用自訂的IP核來完成我們所需要的操作,操作步驟就是在New Components->Files中添加了編寫好的V檔案然後進行綜合。
- 錯誤產生現象:彈出錯誤提示框,綜合失敗。
- 錯誤原因定位:編寫的V檔案存在語法錯誤。
- 對應修改處理:檢查編寫的V檔案,找出錯誤所在。當工程不大的時候,可以使用一個簡便方法,將編寫的V檔案設定為頂層TOP檔案然後編譯,根據提示錯誤變更,編譯通過後再去Qsys中就不會有錯誤產生啦。
[ERROR]NIOS程式ELF檔案下載失敗
- 錯誤產生現象:下載SOF檔案後下載ELF檔案失敗
- 錯誤原因定位:Qsys中NIOS核時鐘的檢查
- 對應修改處理:檢查修改Qsys中NIOS核的時鐘,將其改正為正確值。
[ERROR]片上RAM資源不足
- 錯誤產生現象:在NIOS中編譯失敗,提示改錯誤
- 錯誤原因定位:
- 對應修改處理:
- 檢查Qsys中On-Chip RAM的配置空間是否設定過小,如果是將其調大(最大數值可以再QuartusII中看器件資訊得知)。
- 如果Qsys中的資源足夠仍編譯不通過,開啟BSP Editor,勾選
enable_small_library、忘記了後面補充,囧。
[ERROR]NIOS中斷持續觸發
- 錯誤產生現象:程式下載後持續觸發中斷
- 錯誤原因定位:
- 進入中斷後,需要跳出中斷方可
- Qsys中NIOS核的選擇類型是否正確,選擇精簡型即可
- 對應修改處理:
- 在執行完操作後跳出中斷,即為中斷訊號(可以通過讀或寫寄存器的方式)
- Qsys中NIOS核選擇精簡型即可,複雜型的需要額外考慮一些知識,暫時還沒有使用情境
[ERROR]NIOS下載固化後重新上電程式未能正常運行
- 錯誤產生現象:elf和sof檔案固化下載後斷電重啟程式未能正常運行,線上寫入NIOS後正常,再次固化斷電重啟仍然異常。
- 錯誤原因定位:
- 疑似NIOS中的輸出printf()造成了一些寄存器的阻塞,但未能實際確定是此原因
- 最終定位為BSP Editor中仍然為JTAG模式造成了該異常
- 對應修改處理:
- 將BSP Editor中的stderr、stdin、stdout由jtag_uart更改為none,然後重建bsp檔案再次編譯工程即可,這裡一定要記得再次編譯工程。
[原創]NIOS小知識總結