軟件開發人員對硬件開發板又愛又恨。一方面,它們使軟件變得栩栩如生。另一方面,它們可能會讓人頭疼,特別是因為開發計劃取決于它們的可用性。開發板對軟件調試和分析行為的有限可見性通常迫使開發人員使用更復雜的方法。有時它們根本不像開發人員期望的那樣工作。虛擬硬件平臺可以通過快速執行軟件來幫助解決開發人員的挫敗感,從而縮短開發周期。
復雜的多核平臺(例如用于設計蜂窩基站的平臺)越來越多地為軟件開發人員帶來挑戰,這也加劇了他們傾向于鄙視硬件開發板的原因。
替代開發方法
在最初的硬件規范之后,開發團隊考慮使用與初步硬件設計略有相似的參考開發板。沒有任何設計外設或 DDR RAM 控制器與開發板匹配;但是,當時沒有其他可用的東西。一旦最終硬件可用,開發人員將不得不盲目地編寫然后修改軟件,因為他們沒有參考板上的所有硬件組件。這是他們認為可以用來完成工作的唯一方法。
然后,開發團隊遇到了用于軟件開發的虛擬平臺,這是一種模擬硬件模型并以接近實時的速度執行軟件的技術。盡管開發人員對這個概念很感興趣,但由于對用于創建虛擬硬件平臺的建模技術和方法缺乏了解,他們有所保留。開發人員想知道閃存模型是否與通用閃存接口/可擴展命令集兼容,以及新的 MAC 控制器功能是否足以為開發驅動程序提供先機。由于為 ASIC 選擇的 ARM 內核沒有使用完整的 ARM 指令集,因此開發人員希望虛擬硬件平臺能夠捕獲內核嘗試的非法指令,并捕獲和報告非法寄存器寫入。
隨著團隊開始項目,很明顯有些擔憂是沒有根據的。他們很快了解到建模使用稱為 SystemC 的標準語言、專門為建模硬件而設計的 C++ 子集以及稱為事務級建模的方法。SystemC 中的概念對開發人員來說非常自然。因此,在這個項目中對閃光燈進行建模不是問題。
使用這項技術保存了會話之間的修改。盡管本案例中的特定內核沒有建模,但開發人員仍然可以控制仿真并在出現非法指令時停止執行,這是他們通過使用工具命令語言 (Tcl) 腳本功能完成的。
在初始建模期間,開發人員發現軟件和建模團隊之間的溝通對于了解使用虛擬硬件平臺可以實現什么至關重要。他們了解到,他們需要考慮虛擬硬件平臺建模本身,并注意外圍模型及其支持的功能。開發虛擬硬件平臺涉及 IP 和工具供應商之間的交互。經過幾周的建模,開發人員開始使用虛擬硬件平臺開始軟件開發。
快速反饋,模擬
最初的軟件開發任務是開發 Linux 支持包和 U-Boot 監視器。從一開始,虛擬硬件平臺就提供了寶貴的反饋,使開發人員能夠確定他們是否走在正確的軌道上。開發板支持包開發的初始假設中的疏忽很快就被捕獲并解決了。
一個具體問題涉及先進的高性能總線控制器。必須包括在初始引導期間交換閃存和 DDR RAM 的支持。虛擬平臺快速幫助開發人員識別和糾正跳轉的設置方式,這是虛擬平臺中的一個簡單功能,但需要 JTAG 工具才能在物理硬件中捕獲它。在平臺中完成的建模使開發人員不僅可以檢測代碼,還可以檢測平臺。如果需要,虛擬硬件平臺提供了任何和所有外圍設備狀態的視圖,而不會影響操作。
在軟件開發過程中,CoWare 的 Virtual Platform Analyzer(圖 1)允許開發人員觀察和控制虛擬硬件平臺,并使用它來有效地跟蹤發起方對外圍塊的訪問。特別是,斷點可以放置在外設塊訪問上,并且可以通過 Tcl 應用程序編程接口使用特定的調試消息。相同的 Tcl 腳本功能還使開發人員能夠使虛擬硬件平臺適應他們的開發需求,從而通過模擬與時序相關的配置來驗證固件中硬件配置的編程,而無需模型是時間準確的。因此,該團隊享受了快速的仿真速度,并且無需等待物理硬件。
圖1
對代碼的寶貴見解
在該項目中,與使用物理硬件相比,使用虛擬硬件平臺將開發周期縮短了 33%。虛擬硬件平臺提供了硅前軟件開發測試環境。此外,其獨特的調試和分析能力使其優于物理硬件上提供的類似調試和分析能力。
鑒于該項目的成功,很明顯虛擬硬件平臺可以顯著提高軟件開發團隊的生產力。隨著多核平臺開發的快速增長,虛擬硬件平臺提供的可見性水平可以讓應用程序開發人員深入了解他們以前在沒有專門設備的情況下無法看到的代碼。
因此,開發人員應考慮使用虛擬硬件平臺來糾正代碼。這樣做的價值遠遠超過了最初的建模投資。從 CoWare 等虛擬硬件平臺技術供應商處獲得的交流、教育、專業知識和其他優勢可以減輕任何擔憂。
要欣賞這項技術,請考慮白盒測試與黑盒測試的優勢。使硬件設置日志級別允許開發人員記錄操作系統和應用程序執行的各種訪問。設計人員還可以將硬件斷點設置在寄存器訪問上,直至位級別,直觀地驗證中斷和其他離散信號的變化狀態,并通過設置硬件觀察點和斷點等 Tcl 腳本程序擴展虛擬硬件平臺的功能。最重要的是,開發人員可以在他們的工作站上完成所有這些工作,而無需復雜的硬件設置、電纜和不穩定的硬件板。
不再等待硬件
虛擬硬件平臺為開發人員帶來了光明的未來,免除了他們等待硬件可用性的痛苦,并提供了硬件開發板無法提供的調試功能。虛擬硬件平臺對于這十年及以后的軟件開發人員來說,絕對是經過生產力驗證的、可用于生產的工具。
審核編輯:郭婷
-
控制器
+關注
關注
112文章
16390瀏覽量
178442 -
寄存器
+關注
關注
31文章
5357瀏覽量
120592 -
C++
+關注
關注
22文章
2110瀏覽量
73696
發布評論請先 登錄
相關推薦
評論