《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 嵌入式系統(tǒng)工程師怎樣才能不落伍,,這些新的方法論你必須知曉

嵌入式系統(tǒng)工程師怎樣才能不落伍,,這些新的方法論你必須知曉

2017-05-28
關(guān)鍵詞: 嵌入式 工程師 不落伍 方法論

不斷增加的復(fù)雜性和異質(zhì)化正在衍生出一些新的方法,能夠避免在設(shè)計周期結(jié)束時出現(xiàn)意外,。

在一個系統(tǒng)中,,硬件的表現(xiàn)是否優(yōu)秀取決于運行在其上的軟件,。隨著系統(tǒng)復(fù)雜性的增加,總是軟件在拖后腿,。

縮小硬件和軟件差距的方法是不斷改進軟件開發(fā)的方法,。在把軟件部署運行在硬件上之前,確保軟件升級都進行了驗證和測試,并進行之前芯片制造商開發(fā)硬件時進行的同類的詳細檢查,。

5929256a445b6-thumb.jpg

試圖將軟件開發(fā)過程提前并不是什么新主意,。多年來,業(yè)界開發(fā)了一系列的方法解決這個問題,。比如敏捷軟件開發(fā)方法,,它試圖通過兩個或更多的軟件開發(fā)者同時進行同一個代碼的開發(fā)來降低錯誤。此外還包括持續(xù)集成方法,,它是從另外一個角度解決這個問題的,,這個方法的本質(zhì)是,將代碼持續(xù)不斷地加入共享的代碼庫或開發(fā)分支中,,進行頻繁的自動構(gòu)建,,以在早期發(fā)現(xiàn)和驗證問題。

Mentor嵌入式部門產(chǎn)品管理總監(jiān)Warren Kurisu說:“越來越多的開發(fā)團隊正在使用持續(xù)集成方法作為簡化整體開發(fā)流程的手段,,并避免在開發(fā)集成階段出現(xiàn)令人討厭的意外,。基于模型的設(shè)計方法通過模擬和自動代碼生成進行了大量的工作,,可以支持這種方法過程,。”

通過持續(xù)集成,,可以在構(gòu)建硬件設(shè)備的同時,,構(gòu)建一個單純從概念出發(fā)的數(shù)字映像。在這種方法的加持下,,多個更加獨立的團隊可以同時開發(fā),,這時,更好地踐行持續(xù)集成概念就變成了各個團隊的代碼“何時”準備好集成進系統(tǒng)的問題,。

“多團隊同時開發(fā)的方法是對持續(xù)集成模式的一種認可,,這種方法使開發(fā)商能夠更早地對設(shè)計進行驗證,并允許開發(fā)人員根據(jù)數(shù)字映像模型驗證其代碼和測試系統(tǒng)配置,?!盞urisu說?!芭e一個簡單的例子吧,,比如Linux進程。這種架構(gòu)設(shè)計使應(yīng)用程序開發(fā)人員能夠在其桌面開發(fā)系統(tǒng)上創(chuàng)建應(yīng)用程序,,只要它們遵守Linux編程模型,,這些應(yīng)用程序就可以在最終階段順利集成,甚至可以在系統(tǒng)部署后加載,。如果系統(tǒng)架構(gòu)師需要更嚴格的分離模型,,則可以使用獨立的執(zhí)行環(huán)境,如Linux容器或Docker容器。這種模式不僅適用于Linux,,實時操作系統(tǒng)也和Linux進程很像,,包括一個允許代碼分離的進程模型?!?/p>

一旦在進程或分區(qū)中運行的代碼就緒,,就可以將其納入到連續(xù)集成工作流中。雖然這似乎是一個顯而易見的步驟,,但它的效果很好,,可以很快地將各種異構(gòu)組件融合在一起。

“例如,,集成了四核ARM Cortex-A53內(nèi)核,、Cortex-R5內(nèi)核和FPGA架構(gòu),并具有可實現(xiàn)功能分離的多個電源層的Xilinx UltraScale + MPSoC,,”Kurisu說,?!翱梢灶A(yù)計的情景是多個開發(fā)團隊同時為這個SoC編寫代碼,,一個團隊在應(yīng)用內(nèi)核上開發(fā)Linux,一個團隊在實時內(nèi)核上開發(fā)安全應(yīng)用程序,,另一個團隊在FPGA架構(gòu)上實現(xiàn)算法,。在總體架構(gòu)上,這些應(yīng)用可以通過已定義的接口進行通信,。一方面,,這些獨立團隊自身可能會使用持續(xù)集成方法來構(gòu)建在其內(nèi)核上運行的代碼,另一方面,,當(dāng)系統(tǒng)所有內(nèi)核上的代碼都就緒后,,主要的集成工作就會開始。和上面一樣,,持續(xù)集成的問題就是進行全系統(tǒng)集成的代碼何時準備就緒,。”

基礎(chǔ)問題

系統(tǒng)的復(fù)雜性一直在穩(wěn)步增長,,部分原因是沒有人確定虛擬/增強現(xiàn)實,、汽車、醫(yī)療,、工業(yè)物聯(lián)網(wǎng)和深度學(xué)習(xí)等各種新興市場需要什么樣的芯片或功能,。在這種情況下,一種常見的方法是將多個類型的處理器和功能集成在一顆芯片上,,通過軟件把各個組件融合在一起,,這比將所有組件放入各個分立的ASIC中更便宜。

Aldec硬件部總經(jīng)理Zibi Zalewski表示:“最終配置是根據(jù)目標(biāo)市場或客戶要求創(chuàng)建的?!白酉到y(tǒng)的可擴展性使您可以快速增加系統(tǒng)規(guī)模和復(fù)雜性?,F(xiàn)在,把一個系統(tǒng)從雙核擴展到四核不算什么大問題,,沒有適當(dāng)?shù)墓ぞ卟攀钦嬲膯栴}所在,。此外,硬件部分不再是決定項目的主要元素,,系統(tǒng)復(fù)雜性主要來自于軟件層,。所以不單單是晶體管數(shù)量問題,還包括功能要求,?!?/p>

這與系統(tǒng)整體質(zhì)量有直接的關(guān)系,最終是衡量創(chuàng)建該系統(tǒng)的各種方法的有效性,。

ARM模型技術(shù)總監(jiān)Bill Neifert說:“評估質(zhì)量時,,挑戰(zhàn)在于它不僅僅涉及芯片的質(zhì)量。它衡量的是整個系統(tǒng),,會衍生出區(qū)段問題,。每個設(shè)計中都有你關(guān)心的東西,但對于汽車,、工業(yè)和企業(yè)計算而言,,關(guān)心對象又有所不同。一些涉及不同的硬件,,另外一些則是相同硬件上的不同應(yīng)用,。如果您正在處理需要記錄和證據(jù)的安全相關(guān)問題,你需要關(guān)心的就是軟件過程和底層硬件,。記住,,你能證明到什么程度,質(zhì)量就是什么水平,?!?/p>

最大限度降低意外
不管選擇的方法有多好,總會有一些錯誤發(fā)生,。所以,,這里的目標(biāo)是盡量減少項目開發(fā)最終階段的意外,記住,,沒有任何一種方法能夠完全消除意外,。
“當(dāng)您編寫應(yīng)用程序時,您真的必須在真實的目標(biāo)上運行一下它,,因為您可能沒有正確地分配內(nèi)存,,或者您可能只有只能在ARM上使用的二進制庫,,而很多人卻試圖在x86上測試嵌入式系統(tǒng),“Imperas Software首席執(zhí)行官Simon Davidmann說,?!癑enkins是一個經(jīng)常被提及的開源自動化服務(wù)器,代碼可以在ARM,、MIPS或瑞薩處理器上運行,,不需要任何管理工作,在幾分鐘之內(nèi)就可以得到一個“測試通過”的結(jié)果,。你可以把Jenkins看做運行對象,,你可以說,'這是我的機器,。我有四臺機器可以運行測試',,其他人也可以共享Jenkins資源。它可以簡化最簡單的程序,,即便你的程序只有一個只包含一個算法的文件,,它也允許你構(gòu)建工程并運行,當(dāng)你修改了代碼,,它可以自動化地充分測試并記錄,。當(dāng)然,您必須了解Jenkins的產(chǎn)品如何工作或模擬器的工作原理,,但是只需要幾千美元,,您就能獲得可以非常有效地進行編譯,、構(gòu)建,、測試和驗證的系統(tǒng)?!?/p>

Synopsys的MetaWare產(chǎn)品經(jīng)理Allen Watson說:“我們生產(chǎn)的軟件是允許人們開發(fā)軟件的工具,。我們的客戶使用我們的工具編寫嵌入式軟件,但同時我們的工具本身也是軟件,。雖然有一些差異,,但歸根結(jié)底我們和客戶們都在編寫軟件,這是一個非常復(fù)雜的軟件,。我們自己也在小組內(nèi)采用持續(xù)集成方法,,沒有其它方法能夠替代這種開發(fā)方式。我們有多個開發(fā)人員編寫同一個產(chǎn)品的軟件,,但他們承擔(dān)不同的任務(wù),。通常,他們先寫自己的代碼,,在本地進行一些單元測試,,準備好后,,就把代碼并到軟件的主線開發(fā)分支上。

但是,,并不是每個人都認可這個概念,。Uniquify營銷副總裁Graham Bell認為,重點應(yīng)該是反復(fù)性而不是持續(xù)集成,。

“持續(xù)意味著不間斷地繼續(xù)下去,,而反復(fù)意味著活動之間可以暫停,”他說,?!爱?dāng)然,嵌入式軟件的集成工作會反復(fù)經(jīng)歷一系列的集成-測試 - 修改活動,,直到特征漂移結(jié)束或者bug數(shù)量達到了設(shè)計簽收級別,。這就是這個過程中暫停的地方。隨著設(shè)計從硅虛擬原型轉(zhuǎn)移到硬件原型,,最終再轉(zhuǎn)移到消費者手中的產(chǎn)品,,這種集成循環(huán)會一再發(fā)生。有些人可能會認為,,集成工作的這些階段現(xiàn)在是重疊的,,因為各個設(shè)計團隊需要盡早獲得有關(guān)工作設(shè)計的知識,以加速自己工作的設(shè)計簽收,。如果是這種情況,,那么也許我們可以說,這些同步進行的工作正在導(dǎo)致嵌入式軟件的持續(xù)整合,?!?/p>

這不僅僅是定義上的分歧,它影響著基礎(chǔ)方法論,。和支持反復(fù)整合的企業(yè)相比,,支持持續(xù)整合的企業(yè)數(shù)量增長更多。

Austemper設(shè)計系統(tǒng)公司首席執(zhí)行官Sanjay Pillay認為,,持續(xù)集成是實現(xiàn)最佳上市時間的唯一途徑,。“目前復(fù)雜的SoC及其開發(fā)時間表無法通過使用硬件-固件-軟件的串行開發(fā)方法來實現(xiàn),。工程團隊現(xiàn)在必須包括硬件開發(fā)人員和嵌入式軟件設(shè)計人員,,而且軟件設(shè)計人員的數(shù)量往往超過硬件設(shè)計人員。他們一起開始這個項目,,并在整個項目周期中并肩協(xié)作,。”

但是,,隨著設(shè)計中異構(gòu)組件的數(shù)量不斷增多,,持續(xù)集成也只是簡化開發(fā)流程的其中一個選擇,。

Mentor的Kurisu說:“人們可以爭辯說,今天最先進的軟件和硬件不再需要持續(xù)集成方法,。但是我認為,,基于模型的設(shè)計實際上激發(fā)了持續(xù)集成方法的活力,并放大了這種方法的作用,?!?/p>

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。