(原創) Qsys或RTL做修改後,Nios II SBT該如何面對新的硬體? (SOC) (Nios II) (Qsys)
Abstract
SOPC最可貴之處就是它的彈性,所以儘管已經建立了Nios II SBT project,你還可以去更改FPGA的RTL或者Qsys的架構與IP,此時Nios II SBT project該做哪些步驟才能反映出更改過的硬體架構呢?是該Generate BSP?還是該BSP Editor?或者該Build Project?其執行順序又是如何呢?
Introduction
使用環境:Windows XP SP3 + VirtualBox 4.1.2 + Quartus II 11.0
自從使用Nios II SBT,每次Qsys或者FPGA的RTL做修改後,就一直猶豫到底要只執行Build Project就好?還是要先Clean Project?還是必須先執行Generate BSP?那BSP Editor也要執行嗎?因為有時總會有些不可預期的錯誤產生,一直到我看到[1] Nios II Software Build Tools的p.4-30的Revising Your BSP章節,所有的疑問才豁然開朗。建議你也完整的看一下[1] Nios II Software Build Tools的Revising Your BSP章節。本文只是個人理解下的總結,不能取代Altera的官方資料。
Generate BSP:其執行流程如下:
值得注意的是Generate BSP會重新根據*.sopcinfo去產生drivers /HAL,也就是說若你在Qsys移除了某個IP,Generate BSP會自動幫你刪除drivers / HAL相關的檔案,且你之前若手動對drivers / HAL的C code做了修改,Generate BSP也會重新覆蓋過去,所以不建議手動去修改drivers / HAL的C code,應該由Generate BSP自動去產生即可。
BSP Editor:修改settings.bsp的設定,主要是偏韌體方面的設定。
Clean Project:相當於make clean,會將所有的object files刪除,由於若你在Qsys刪除某個IP,在Generate BSP會刪除該IP的drivers / HAL檔案,卻不會刪除該IP的object files,因此必須手動用Clean Project刪除。
Build Project:相當於make all,會重新根據Makefile編譯所有檔案。
Conclusion
大部分的人都知道最後是Clean Project與Build Project,這點問題不大,但Generate BSP與BSP Editor該誰先執行呢?答案是應先執行Generate BSP再執行BSP Editor,因為若先執行BSP Editor,你所做的設定是根據舊*.sopcinfo的settings.bsp所做的設定,並無法反映出最新的硬體,所以必須先執行Generate BSP後,先產生出反應最新硬體的settings.bsp,然後再執行BSP Editor。
總結其流程如下:
See Also
(原創) 如何解決目錄改變時,Nios II project無法編譯的問題? (SOC) (Nios II) (DE2-70)
Reference
[1] Nios II Software Build Tools
[2] Nios II Software Build Tools Reference
全文完。