電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 1780|回復(fù): 0
收起左側(cè)

學(xué)嵌入式開發(fā)需要什么基礎(chǔ)_嵌入式軟件系統(tǒng)必須具有良好的可裁剪性

[復(fù)制鏈接]

2607

主題

2607

帖子

7472

積分

高級(jí)會(huì)員

Rank: 5Rank: 5

積分
7472
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-7-23 12:08:14 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
學(xué)嵌入式開發(fā)需要什么基礎(chǔ)_嵌入式軟件系統(tǒng)必須具有良好的可裁剪性,   

公司在研發(fā)嵌入式產(chǎn)品過程中,產(chǎn)品的功能會(huì)不斷的添加和更新,產(chǎn)品的型號(hào)也會(huì)越來越多。這時(shí)產(chǎn)品的軟件研發(fā)團(tuán)隊(duì)就需要考慮是在原有的軟件版本上修改還是全新開發(fā)。從研發(fā)成本上考慮會(huì)考慮基于原有軟件上修改。原有軟件上功能會(huì)越來越多,但一款產(chǎn)品可能只需要其中部分功能,這就要求嵌入式軟件系統(tǒng)具有良好可裁剪性。嵌入式系統(tǒng)提供良好的裁剪性,有利于產(chǎn)品開發(fā)團(tuán)隊(duì)做出更多差異化的產(chǎn)品和低成本的產(chǎn)品(裁剪后的軟件系統(tǒng)通常也降低了對(duì)硬件的要求)。

嵌入式系統(tǒng)的可裁減性,必須在嵌入式系統(tǒng)設(shè)計(jì)中引入子系統(tǒng)和塊的概念,只有在頂層設(shè)計(jì)時(shí)明確了子系統(tǒng)和模塊。可裁減性才能夠落地。分層設(shè)計(jì)做到位,子系統(tǒng)及模塊間的依賴關(guān)系越明確,耦合越少則裁減實(shí)施起來越簡(jiǎn)單。

靜態(tài)編譯時(shí)主要是通過條件編譯宏來控制。為每個(gè)特性定義一個(gè)編譯宏,當(dāng)一款產(chǎn)品的特性確定后,在編譯時(shí)只打開特定特性的編譯開關(guān),這樣無(wú)關(guān)的特性代碼就不會(huì)參與編譯,有效的減少靜態(tài)編譯出來的軟件包體積。此方法的缺陷是必須重新編譯代碼,同時(shí)降低了代碼可維護(hù)性。

動(dòng)態(tài)庫(kù)將各個(gè)功能模型分別編譯成動(dòng)態(tài)庫(kù),由主進(jìn)程根據(jù)產(chǎn)品的功能需要加載需要的動(dòng)態(tài)庫(kù)。這種方法需要主進(jìn)程從產(chǎn)品的規(guī)格文件獲取需要加載的動(dòng)態(tài)庫(kù),并按動(dòng)態(tài)庫(kù)要求的順序依次打開。此方法的優(yōu)點(diǎn)是不用重新編譯,缺陷是實(shí)現(xiàn)起來復(fù)雜。

控制函數(shù)流程,實(shí)現(xiàn)功能控制類似靜態(tài)編譯,只不過是將靜態(tài)編譯時(shí)的編譯宏改成全局變量判斷。這些全局變量應(yīng)該在主進(jìn)程啟動(dòng)時(shí)從規(guī)格文件獲取特性并加載在全局變量中,通過這些特性全局變量控制函數(shù)(業(yè)務(wù))流程,達(dá)到功能裁減的目的。此方法是前面兩種方法的折中,實(shí)現(xiàn)簡(jiǎn)單也不需要重新編譯代碼。但軟件包體積沒有減小。

通常在一個(gè)項(xiàng)目中不會(huì)只使用其中一種方法,而是會(huì)根據(jù)不同場(chǎng)景在不同的層次上同時(shí)使用上述方法。

fqj

發(fā)表回復(fù)

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表