Simics工具如何實(shí)現(xiàn)模擬特定硬件設(shè)計(jì)并用軟件完成測(cè)試
不久前召開(kāi)的2013年風(fēng)河(Wind River)中國(guó)開(kāi)發(fā)者大會(huì)重點(diǎn)探討并展現(xiàn)了物聯(lián)網(wǎng)領(lǐng)域的主要趨勢(shì)、挑戰(zhàn)和機(jī)會(huì),會(huì)上還著重介紹了風(fēng)河Simics全系統(tǒng)軟件模擬工具。風(fēng)河調(diào)試工具及生命周期解決方案副總裁Michel Genard在接受本刊記者采訪(fǎng)時(shí)表示,Simics是一個(gè)全系統(tǒng)軟件模擬工具,可供軟件開(kāi)發(fā)者模擬硬件,并可模擬任何規(guī)模和復(fù)雜度的電子系統(tǒng),可以幫助工程師突破傳統(tǒng)的產(chǎn)品開(kāi)發(fā)和測(cè)試流程。
Simics工具的產(chǎn)生
Michel Genard介紹說(shuō),近年來(lái),由于電子系統(tǒng)日益復(fù)雜且對(duì)系統(tǒng)間的互換要求不斷提高,例如,有些電子系統(tǒng)大多使用異構(gòu)多處理器和多核處理器來(lái)運(yùn)行多個(gè)軟件棧和操作系統(tǒng),有時(shí)這些系統(tǒng)還會(huì)作為大型系統(tǒng)的一部分,通過(guò)總線(xiàn)、背板、局域網(wǎng)或因特網(wǎng)進(jìn)行互聯(lián)。而傳統(tǒng)的開(kāi)發(fā)工具和流程在面對(duì)這些系統(tǒng)的調(diào)試、集成和測(cè)試時(shí)就顯得力不從心。風(fēng)河根據(jù)市場(chǎng)需求開(kāi)發(fā)的Simics全系統(tǒng)軟件模擬工具可幫助開(kāi)發(fā)人員從根本上提高系統(tǒng)開(kāi)發(fā)、調(diào)試和測(cè)試的效率,從而大大改善包括產(chǎn)品上市時(shí)間、成本、產(chǎn)品質(zhì)量在內(nèi)的一些重要的業(yè)務(wù)指標(biāo)。
Simics工具實(shí)現(xiàn)的功能
Michel Genard向記者詳細(xì)介紹了Simics工具的功能,Simics工具優(yōu)勢(shì)主要體現(xiàn)在:一是可模擬完整的系統(tǒng)。風(fēng)河Simics可為軟件開(kāi)發(fā)人員把整個(gè)目標(biāo)硬件平臺(tái)模擬出來(lái)。無(wú)論該硬件是一個(gè)獨(dú)立的處理器,還是一個(gè)大型的、復(fù)雜的、互聯(lián)的、多個(gè)電子系統(tǒng),均可通過(guò)一個(gè)虛擬平臺(tái)把目標(biāo)硬件的各種功能操作模擬完成,使得未經(jīng)修改的目標(biāo)軟件(BSP、固件、實(shí)際操作系統(tǒng)、中間件和應(yīng)用程序)能完全按它在真實(shí)硬件平臺(tái)上運(yùn)行的方式在虛擬的平臺(tái)上運(yùn)行,開(kāi)發(fā)者不必?fù)?dān)心模擬部分和實(shí)際部分有什么誤差(圖1)。
圖1:Simics與單元測(cè)試。
二是能加快產(chǎn)品開(kāi)發(fā)速度。Simics模擬工具可完成電路板設(shè)計(jì)、系統(tǒng)集成、系統(tǒng)測(cè)試等環(huán)節(jié),在實(shí)體硬件之前就可開(kāi)始工作。Simics還支持協(xié)同平臺(tái)開(kāi)發(fā),讓所有開(kāi)發(fā)人員能夠共享整個(gè)虛擬系統(tǒng)和它的狀態(tài),從而提高效率并加快軟件的開(kāi)發(fā)和測(cè)試。
三是優(yōu)化系統(tǒng)開(kāi)發(fā)。傳統(tǒng)的開(kāi)發(fā)工具只能解決單個(gè)參考板上的故障,要在多個(gè)參考板組成的系統(tǒng)中查找錯(cuò)誤就會(huì)變得非常復(fù)雜。例如,使用傳統(tǒng)調(diào)試工具停止運(yùn)行某塊參考板時(shí),系統(tǒng)中的其他參考板仍然會(huì)繼續(xù)執(zhí)行任務(wù),這樣就讓實(shí)現(xiàn)故障隔離幾乎成為不可能的事情。Simics可讓工程師們同時(shí)操作、查看和控制系統(tǒng)中所有的參考板。任何正向、逆向的單步執(zhí)行都可應(yīng)用于整個(gè)系統(tǒng)而非某一部分,還可以先創(chuàng)建整個(gè)系統(tǒng)的檢查點(diǎn)或快照再共享給其他開(kāi)發(fā)人員,這樣整個(gè)設(shè)計(jì)團(tuán)隊(duì)都可以看到整個(gè)系統(tǒng)的狀態(tài),從而繼續(xù)無(wú)斷點(diǎn)執(zhí)行原有操作。Simics虛擬平臺(tái)比實(shí)體硬件更易于設(shè)置和管理,且可以通過(guò)復(fù)制部分系統(tǒng)來(lái)測(cè)試擴(kuò)展性。Simics甚至可以模擬幾百個(gè)參考板和處理器組成的系統(tǒng),在上面運(yùn)行所有的目標(biāo)軟件。
四是攻克全系統(tǒng)目標(biāo)硬件管理和系統(tǒng)集成系統(tǒng)的開(kāi)發(fā)、調(diào)試、集成和測(cè)試過(guò)程中面臨的最大困難,即缺少目標(biāo)硬件。以往設(shè)計(jì)工程師都是使用一些替代方案,例如使用評(píng)估板或基于PC主機(jī)的開(kāi)發(fā)。有了Simics之后,整個(gè)開(kāi)發(fā)團(tuán)隊(duì)都能獲得一個(gè)虛擬的目標(biāo)硬件系統(tǒng),而且是一個(gè)完整的系統(tǒng),使每個(gè)開(kāi)發(fā)人員都能基于整個(gè)系統(tǒng)對(duì)設(shè)計(jì)方案進(jìn)行修改與開(kāi)發(fā)。Simics虛擬平臺(tái)還能幫助他們實(shí)現(xiàn)多種組件配置,這一功能在兼容性測(cè)試和客戶(hù)的特定條件測(cè)試中至關(guān)重要。同時(shí),Simics對(duì)整個(gè)產(chǎn)品生命周期都能提供支持,從系統(tǒng)定義到后期產(chǎn)品維護(hù)。五是Simics工具可支持多種目標(biāo)架構(gòu)。Michel Genard強(qiáng)調(diào),Simics工具不是僅為某一家開(kāi)發(fā)的,而是面向和支持整個(gè)市場(chǎng),例如支持Power、Intel、ARM、MIPS、TI等等。
應(yīng)用案例
Michel Genard舉了一個(gè)在衛(wèi)星系統(tǒng)使用的案例,出現(xiàn)的問(wèn)題是,太空中老化的衛(wèi)星系統(tǒng)需要用軟件補(bǔ)丁來(lái)彌補(bǔ)硬件缺陷,而在地面上很難創(chuàng)建修補(bǔ)用的軟件補(bǔ)丁,因?yàn)槿鄙賹?shí)際硬件。而采用Simics工具的解決方案可仿真系統(tǒng)硬件,并模擬硬件的退化程序來(lái)測(cè)試軟件。在上傳補(bǔ)丁之前,能夠在地面上用仿真平臺(tái)進(jìn)行完整的測(cè)試(單元測(cè)試和系統(tǒng)測(cè)試)。Michel Genard表示,Simics工具已在眾多客戶(hù)和應(yīng)用領(lǐng)域得到廣泛應(yīng)用,根據(jù)客戶(hù)的反饋,使用Simics工具后,調(diào)試時(shí)間可節(jié)省35%,運(yùn)行成本可減少50%,產(chǎn)品上市時(shí)間可縮短66%。