惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Last Week in AI
Last Week in AI
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
MongoDB | Blog
MongoDB | Blog
云风的 BLOG
云风的 BLOG
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
J
Java Code Geeks
WordPress大学
WordPress大学
T
The Blog of Author Tim Ferriss
V
Visual Studio Blog
小众软件
小众软件
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
IT之家
IT之家
Vercel News
Vercel News
C
Check Point Blog
Google DeepMind News
Google DeepMind News
月光博客
月光博客
D
DataBreaches.Net
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
Y
Y Combinator Blog
Hugging Face - Blog
Hugging Face - Blog

博客园 - 真 OO无双

(轉貼) Bit Twiddling Hacks (SOC) (Verilog) (C) (筆記) 如何移除VirtualBox所遺留下的驅動程式? (SOC) (VirtualBox) (筆記) always block內省略else所代表的電路 (SOC) (Verilog) (原創) 如何在Qsys Subsystem使用Interrupt? (SOC) (Nios II) (Qsys) (原創) 如何解決目錄改變時,Nios II project無法編譯的問題? (SOC) (Nios II) (DE2-70) (原創) Qsys Generation Tab的Simulation設定的意義 (SOC) (Nios II) (Qsys) (筆記) 如何寫入binary file某個byte連續n byte的值? (C/C++) (C) (筆記) 如何寫入binary file某個byte的值? (C/C++) (C) (筆記) 如何讀取binary file某個byte連續n byte的值? (C/C++) (C) (筆記) 如何讀取binary file某個byte的值? (C/C++) (C) (原創) Altera Technology Roadshow 2011 Taipei (SOC) (Quartus II) (Nios II) (Qsys) (原創) 如何在安裝SELinux的環境執行Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (筆記) 如何得知Quartus II最新版到底修改了哪些東西? (SOC) (Quartus II) (Nios II) (SOPC Builder) (Qsys) (筆記) Qsys resource整理 (SOC) (Nios II) (Qsys) (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox) (筆記) 如何在RedHat Linux安裝VirtualBox Guest Additions? (SOC) (Linux) (RedHat) (VirtualBox) (筆記) 常用設定暫存器值的編程技巧 (SOC) (C/C++) (C) (Verilog) (原創) Quartus II安裝新觀念:如何將Quartus II安裝在VirtualBox內? (SOC) (Quartus II) (VirtualBox) (筆記) $dispaly()、$strobe()、$monitor() 、$fwrite()與blocking / nonblocking的關係 (SOC) (Verilog) (Debussy) (Verdi)
(原創) Qsys或RTL做修改後,Nios II SBT該如何面對新的硬體? ...
真 OO无双 · 2012-01-03 · via 博客园 - 真 OO无双

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 ToolsRevising Your BSP章節。本文只是個人理解下的總結,不能取代Altera的官方資料。

Generate BSP:其執行流程如下:

revise004

值得注意的是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。

總結其流程如下:

revise006  

See Also
(原創) 如何解決目錄改變時,Nios II project無法編譯的問題? (SOC) (Nios II) (DE2-70)

Reference
[1] Nios II Software Build Tools
[2] Nios II Software Build Tools Reference

全文完。