• 招生咨詢熱線:4008-569-579 
  • 手機版
    用手機掃描二維碼直達商品手機版
招生咨詢熱線
4008-569-579
機構(gòu)主頁 > 培訓(xùn)資料 > 嵌入式開發(fā):設(shè)計嵌入式軟件架構(gòu)的5個步驟—步驟2
機構(gòu)主頁 > 培訓(xùn)資料>嵌入式開發(fā):設(shè)計嵌入式軟件架構(gòu)的5個步驟—步驟2

嵌入式開發(fā):設(shè)計嵌入式軟件架構(gòu)的5個步驟—步驟2

來源:廣州達內(nèi)教育        時間:2023-05-30        熱度:37℃        返回列表

上一篇文章討論了設(shè)計嵌入式軟件架構(gòu)的五個步驟的第一步驟,我們探討了在嵌入式開發(fā)中將嵌入式軟件系統(tǒng)視為兩種架構(gòu)的好處獨立于硬件的應(yīng)用業(yè)務(wù)架構(gòu)和依賴于硬件的實時架構(gòu)。

 

在今天的帖子中,我們將探索設(shè)計嵌入式軟件架構(gòu)的第二步識別和跟蹤數(shù)據(jù)資產(chǎn)。

 

當團隊一起設(shè)計他們的嵌入式軟件時,工程師有兩種傾向;首先,他們想從第一天就進入硬件領(lǐng)域。工程師們表現(xiàn)得好像與硬件交互的底層代碼就是最終產(chǎn)品,一刻也不能浪費。不幸的是,這是嵌入式軟件開發(fā)的過時觀點。在大多數(shù)系統(tǒng)中,真正的價值在于應(yīng)用程序代碼,即體系結(jié)構(gòu)中與硬件無關(guān)的部分。

 

第二,工程師們幾乎立即開始拋出圍繞中斷、消息傳遞、RTOS交互等設(shè)計模式的架構(gòu)思想。雖然集思廣益并讓想法得到評估是很好的,但是如何知道什么架構(gòu)概念和設(shè)計模式在第一天就與設(shè)計問題相匹配呢?答案是你沒有!

 

一旦嵌入式開發(fā)團隊完成了第一步,分離軟件架構(gòu),設(shè)計嵌入式軟件架構(gòu)的第二步就是識別和跟蹤系統(tǒng)中的數(shù)據(jù)資產(chǎn)。數(shù)據(jù)資產(chǎn)是系統(tǒng)用來幫助其執(zhí)行功能的任何數(shù)據(jù)。例如,嵌入式系統(tǒng)可能有如下數(shù)據(jù)資產(chǎn)

加密密鑰

唯一的標識號

像素地圖

控制器狀態(tài)

 

更多的數(shù)據(jù)資產(chǎn)進入一個系統(tǒng),當我們將一切歸結(jié)為設(shè)計和構(gòu)建實時嵌入式系統(tǒng)時,我們所做的核心工作是管理數(shù)據(jù)。

 

嵌入式軟件設(shè)計的首要原則

現(xiàn)代嵌入式軟件設(shè)計的首要原則是數(shù)據(jù)決定設(shè)計我們可以為完成給定的任務(wù)創(chuàng)建各種令人興奮和獨特的架構(gòu)。然而,最有效的架構(gòu)是圍繞系統(tǒng)數(shù)據(jù)資產(chǎn)設(shè)計的架構(gòu)。這是因為所有無關(guān)緊要的垃圾,因為它是最新和最偉大的,或者因為我們認為它是優(yōu)雅的,所以經(jīng)常會被丟棄。

 

當我們關(guān)注數(shù)據(jù)時,體系結(jié)構(gòu)可能會過度關(guān)注它應(yīng)該如何處理數(shù)據(jù)。事實證明,只能對數(shù)據(jù)進行一些操作。首先,系統(tǒng)可以輸入數(shù)據(jù)。例如,用戶可以按下按鈕或通過通信接口接收串行數(shù)據(jù)。第二,系統(tǒng)可以輸出數(shù)據(jù)。例如,向顯示器顯示像素圖或驅(qū)動電機。第三,系統(tǒng)可以處理數(shù)據(jù)。例如,可能串行數(shù)據(jù)以分組格式進入系統(tǒng),然后進行解碼。進行處理以驗證數(shù)據(jù)包,然后解壓縮存儲的數(shù)據(jù)。最后,系統(tǒng)可以將數(shù)據(jù)存儲在易失性或非易失性存儲器中。

 

識別數(shù)據(jù)資產(chǎn)和可以在數(shù)據(jù)上執(zhí)行的操作可以極大地幫助嵌入式開發(fā)團隊設(shè)計其嵌入式軟件架構(gòu)。數(shù)據(jù)資產(chǎn)就像向架構(gòu)師揮舞的紅旗,表明設(shè)計中的架構(gòu)需求。不幸的是,太多的團隊忽略了數(shù)據(jù),而是在了解他們試圖用系統(tǒng)解決的數(shù)據(jù)問題之前追逐現(xiàn)代設(shè)計模式。

 

以數(shù)據(jù)為中心的架構(gòu)意味著什么?

許多嵌入式軟件開發(fā)人員會覺得數(shù)據(jù)決定設(shè)計這個想法有點奇怪。這很令人驚訝,因為在面向?qū)ο缶幊讨?,我們專注于?chuàng)建對象,這些對象是數(shù)據(jù)的集合,并對這些數(shù)據(jù)進行操作。老實說,以數(shù)據(jù)為中心的架構(gòu)設(shè)計觀點并不新鮮。然而,從數(shù)據(jù)的角度來看架構(gòu)有很多優(yōu)點。

首先,以數(shù)據(jù)為中心的架構(gòu)方法非常適合那些系統(tǒng)存在安全問題的團隊。如果對保護的嵌入式系統(tǒng)感興趣,必須執(zhí)行威脅模型安全分析(TMSA)。這種分析要求開發(fā)人員識別系統(tǒng)中的各種數(shù)據(jù)資產(chǎn),并確定他們需要的保護級別。TMSA需要在設(shè)計系統(tǒng)架構(gòu)之前執(zhí)行,這意味著數(shù)據(jù)決定的架構(gòu)所需的許多細節(jié)已經(jīng)可用。

 

第二,識別數(shù)據(jù)資產(chǎn)可以幫助我們確定如何在組件級別分解系統(tǒng)。假設(shè)我們是優(yōu)秀的架構(gòu)師,并遵循單一責任原則(SRP)。在這種情況下,很有可能我們識別的每個數(shù)據(jù)資產(chǎn)都將被包裝在它的模塊中,并具有對其進行操作的功能。

 

第三,跟蹤各種數(shù)據(jù)資產(chǎn)如何交互可以開始提示系統(tǒng)在應(yīng)用程序級別的架構(gòu)。例如,在嵌入式開發(fā)中,假設(shè)我可以看到輸入到系統(tǒng)中的數(shù)據(jù)及其與處理數(shù)據(jù)的速率相比的高頻率。在這種情況下,我可以開始將交互與接收數(shù)據(jù)的輸入活動和處理數(shù)據(jù)的活動綁定。在早期的架構(gòu)階段,我不會選擇是使用中斷、緩沖區(qū)還是直接內(nèi)存訪問(DMA)來接收高頻數(shù)據(jù)輸入。我只想把問題解決,等到有必要時再做最后決定。我不會立即跳出來說處理活動是一項RTOS任務(wù)。該活動可能是一項任務(wù)或其他內(nèi)容?,F(xiàn)在說還為時過早。雖然工程師經(jīng)常努力盡快鎖定盡可能多的細節(jié),但優(yōu)秀的軟件架構(gòu)師會盡可能長時間地推遲決策,以最大限度地提高靈活性。

 

結(jié)論

設(shè)計嵌入式軟件架構(gòu)的第二步是識別和跟蹤系統(tǒng)中的數(shù)據(jù)資產(chǎn)。對于一個通常專注于硬件的嵌入式軟件工程師來說,過度關(guān)注數(shù)據(jù)似乎有些奇怪。改變我們思維模式的一個方法是修改嵌入式軟件的定義,使其:

嵌入式軟件是為確定性運行而設(shè)計和構(gòu)建的代碼,通常有實時期限,通過各種形式的輸入、處理、輸出和存儲來管理數(shù)據(jù)。

 

強大的嵌入式軟件架構(gòu)允許數(shù)據(jù)決定設(shè)計。在嵌入式開發(fā)中,識別數(shù)據(jù),然后跟蹤它如何與系統(tǒng)中的其他數(shù)據(jù)交互,可以幫助軟件架構(gòu)師看到架構(gòu)是如何出現(xiàn)的。架構(gòu)圖通常從30,000英尺的高處開始,提示組件和任務(wù)可能有意義的地方。然而,在這個階段,我們只想識別數(shù)據(jù)資產(chǎn)和它們所涉及的操作。

電話咨詢

電話咨詢

咨詢電話:
4008-569-579
回到頂部

回到頂部