原帖:http://www.cnblogs.com/oomusou/archive/2012/01/03/revising_bsp.html
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:其執行流程如下:
![修改RTL或sopc、Qsys后,如何在Nios <wbr>EDS工程中反映新的硬件呢 revise004](https://i-blog.csdnimg.cn/blog_migrate/4f0321dba6ec0d19dcf72ff01b581e3d.gif)
值得注意的是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。
總結其流程如下:
①在bsp文件夹右键-》nios II-> generate bsp
②
右键点击BSP——>NIOS II——>BSP editor进入BSP editor界面。 点击File——>New BSP 设置好sopcinfo的路径,以及BSP target directory的路径,点击OK回到BSP editor,点击右下脚的Generate,生成BSP,关闭BSP editor,返回到NIOS II中
③clean project
④build project