對于傳統(tǒng)的智能邊緣軟件開發(fā),那一定少不了硬件的支持。如果放在以前,那你可能就要按部就班的來,選擇硬件方案-設計產品原型-調試硬件-在硬件上進行軟件開發(fā),這一套流程下來,不說最后到底能不能成功,就說所花費的時間,是很多初創(chuàng)企業(yè)等待不起的。更不湊巧的是,目前全球缺芯嚴重,加上本身的電子系統(tǒng)越來越復雜,假如又涉及到不同硬件平臺上的軟件開發(fā),每一個硬件平臺的搭建都是大成本、費時費力的支出,尤其對于初創(chuàng)公司來說,這無疑是雪上加霜。往細了說,傳統(tǒng)智能邊緣軟件開發(fā)從選擇設計硬件開始就面臨著幾大難點。
第一,開發(fā)生命周期長。在設計團隊確定的情況下,若所設計的智能邊緣設備采用的硬件方案涉及到還沒有上市或者已經上市但是成本太高的器件,比如說前兩年英偉達RTX3090系列的顯卡,無論是考慮到硬件成本還是硬件平臺搭建難度,都不可能滿足團隊中每個成員的使用,這種掣肘延長了整個開發(fā)生命周期。
第二,精度差、速度慢。在無法獲取精準硬件的情況下,可能很多團隊用類似的硬件去實現軟件開發(fā),勉強滿足正在開發(fā)的系統(tǒng),但是很多產品都是需要非常精準的作業(yè),比如制造業(yè)中需要準確無誤地執(zhí)行100多萬次任務的工業(yè)機器人,這是絕不允許湊合的?;蛘哌€有團隊可能會想到了某種形式的模擬或者仿真來解決硬件的問題,這是可行的。但是應用場景對仿真模型的精度有著特定的要求。例如,如果你正在開發(fā)基于英特爾特定SoC芯片,而你無法獲得這款芯片,就可以在仿真x86系統(tǒng)上進行開發(fā)和測試,或者在相似設備上進行較普通的x86開發(fā)。你可能會發(fā)現一些缺陷,或者錯誤地認為你的設計是可靠的——一旦你能在真實的電路板上進行開發(fā),很可能發(fā)現以前做的工作都白費了,白白浪費時間。
第三,無損測試以及多臺設備測試麻煩。在硬件平臺上測試基本上時無法做到無損,此外如果有多臺甚至一群設備系統(tǒng)。而且每個設備都將處于不同的環(huán)境中,或者需要執(zhí)行不同的操作,但仍然聯網或甚至完全依賴于網絡,又該怎么辦?如果用幾十臺、幾百臺或上千臺設備建立一個實驗環(huán)境,在其中運行測試肯定更不容易。實體實驗室尚且如此,但如果你在網絡環(huán)境中工作,挑戰(zhàn)就遠不止于此。你需要花費大量的時間在將要部署的環(huán)境中測試每一部分硬件。速度是另一個問題。當你面對著包含多個組件的物理測試實驗室,你實際完成一次測試需要多久的時間?如果你需要非常頻繁地進行部署,那么你真的可以每月、每周、每天進行多次測試嗎?
遇到這些難點,到底該如何解?打破硬件限制,答案是Simics。
Simics也就是風河的模擬仿真軟件,模擬仿真技術允許你使用任意多個設備來設置完整的環(huán)境,不受任何限制,它的主要功能包括:
- 添加了三個快速啟動平臺,即ARM、Intel和PowerPC,可快速模擬主流的目標架構。
- 可模擬整個目標系統(tǒng)包括處理器、設備、所有電路板和子系統(tǒng)。
- 可運行與物理系統(tǒng)完全相同的軟件。
- 所有團隊成員都可以訪問虛擬系統(tǒng),也包括生態(tài)系統(tǒng)合作伙伴。
- 可對整個系統(tǒng)進行分析和調試,而非某一塊參考版。
- 通過正向或逆向的運行提高調試效率。
- 整個開發(fā)團隊都可共享系統(tǒng)和虛擬硬件的狀態(tài)。
- 可從上一次保存的記錄點開始繼續(xù)執(zhí)行操作。
- 在系統(tǒng)穩(wěn)健性測試中進行故障導入。 通過創(chuàng)建腳本自動執(zhí)行人工步驟和重復任務。
- 可與現有的軟件開發(fā)環(huán)境和自動化流程進行集成,也可以由風河公司提供支持。
- 集成物理環(huán)境模擬器,創(chuàng)建完整的系統(tǒng)模擬,也可以由風河公司提供支持。
- 提供基于Eclipse的Simics、C/C++源代碼調試器,或標準軟件工具組。
- 可以使用Wind River 提供的預裝虛擬平臺,也可以自行搭建或由風河公司為你搭建所需平臺。
正如你所見到的,相比在物理設備上進行測試,采用Simics Simulation可以做到更靈活,既降低時間和資金成本,同時也不會限制你的全面測試能力。從一開始就采用高精度模型,無需等待供應商提供硬件,也免除了工程師因為沒有硬件而等待的時間,而且讓你在項目截止日期前有足夠的時間運行所需的全部測試,讓這些測試實現自動化。如果一個模擬模型被破壞了,只需按下按鈕,就會立即重新創(chuàng)建起來。更有意義的是,可以自動設置并再次運行,這樣你就可以直接查看結果。如果需要測試網絡,只需添加任意數量的組件,這基本上是復制粘貼之類的簡單操作。根據你的應用場景,你甚至可以連接到其他網絡或物理設備,并將其包括在測試工作中。
所以,總結下來,使用Simics的好處有:
1、在虛擬環(huán)境中開發(fā)軟件:Simics能夠滿足DevOps和持續(xù)開發(fā)實踐對訪問、自動化和協作方面的要求,通過虛擬平臺和開發(fā)模擬,軟件開發(fā)人員在開發(fā)過程中無需關注物理硬件及其限制。
2、通過訪問、協作和自動化加快產品開發(fā)速度:Simics有助于提高開發(fā)和測試效率,通過無限制地訪問Simics虛擬硬件平臺,團隊成員能夠實時優(yōu)化和持續(xù)更新,快速進行設計、開發(fā)和測試,以完成系統(tǒng)建設。
3、優(yōu)化系統(tǒng)開發(fā):Simics讓你能夠同時操作、查看和控制系統(tǒng)中所有的參考板和處理器。Simics 虛擬平臺比實體硬件更易于設置和管理,且可以通過無數個參考版來測試擴展性。
4、按需提供的虛擬實驗室:通過Simics,整個開發(fā)團隊都能隨時隨地獲得一個虛擬的實驗室,而且是一個完整的系統(tǒng)而不是某個部分,這樣每個開發(fā)人員都能基于整個系統(tǒng)來思考、設計方案與開發(fā)。對于一些需要對目標硬件做各種不同配置的開發(fā)人員,Simics虛擬平臺能幫他們輕而易舉地實現多種組件配置,這一功能在兼容性測試和客戶的特定條件測試中特別有用。
5、對整個產品生命周期的支持:Simics 對產品的整個生命周期都能提供支持,從設計直到后期產品部署和維護(包括設計階段、應用程序開發(fā)階段、集成與測試階段、產品交付階段、系統(tǒng)維護階段)。