最近項(xiàng)目有點(diǎn)多,總結(jié)一下目前接觸的軟件架構(gòu)中的幾個分類,個人拙見,大家可以相互學(xué)習(xí)。
1. 分層設(shè)計(jì)
分層設(shè)計(jì),就是把整個流程要做的事情按照模塊化各自的特征,進(jìn)行功能的分層,是和硬件寄存器打交道的,還是完全脫離硬件和業(yè)務(wù)打交道的。
一般來說,個人總結(jié)有幾個原則:接口是上下級調(diào)用,很少跨層調(diào)用。即第4層的代碼一般不會直接去第1/2層調(diào)用接口,非要用的話,就從第3層透傳封裝一下。同層級的模塊間盡量避免相互調(diào)用,需要的數(shù)據(jù)都是通過高一層的接口獲取再下傳
MCU程序:單片機(jī)程序就是一個程序驅(qū)動硬件,實(shí)現(xiàn)一個具體功能,代碼特點(diǎn)就是從底到高,基本所有層都會涉及,所以對單片機(jī)程序進(jìn)行分層,相對來說會比較完整。5層軟件架構(gòu)
1.硬件驅(qū)動層
2.功能模塊層
3.應(yīng)用接口層
4.業(yè)務(wù)邏輯層
5.應(yīng)用層
6層軟件架構(gòu)
1.HAL硬件抽象層
2.OSL操作系統(tǒng)層
3.HDL硬件驅(qū)動層
4.FML功能模塊層
5.BLL業(yè)務(wù)邏輯層
6.APL應(yīng)用層
功能模塊層是按照項(xiàng)目需求提取出來的功能,需要硬件抽象層和硬件驅(qū)動層的硬件支持才能實(shí)現(xiàn),功能模塊層根據(jù)項(xiàng)目的功能需求改變而改變,而硬件抽象層和硬件驅(qū)動層則是項(xiàng)目需求書中的功耗等硬件相關(guān)的需求變動而改變,當(dāng)然,若子功能的增加而硬件不支持,則也需更換硬件驅(qū)動。比如項(xiàng)目中的數(shù)據(jù)儲存功能,硬件支持有AT24C02、W25Q128和芯片本身的FLASH,都可以支持?jǐn)?shù)據(jù)儲存功能,即使后期因?yàn)楣幕蚬?jié)約成本等問題,硬件的更換也不影響數(shù)據(jù)儲存功能的實(shí)現(xiàn)(前提規(guī)劃好標(biāo)準(zhǔn)規(guī)范的API函數(shù)定義)且避免了重寫該功能代碼所帶來的各種問題,保證了該功能的穩(wěn)定性。
裸機(jī)上跑操作系統(tǒng)需要考慮系統(tǒng)調(diào)度間的問題,內(nèi)存消耗,內(nèi)存踐踏,內(nèi)存泄漏,看門狗喂狗等操作。
審核編輯:湯梓紅
-
單片機(jī)
+關(guān)注
關(guān)注
6067文章
44992瀏覽量
650605 -
嵌入式
+關(guān)注
關(guān)注
5152文章
19675瀏覽量
317665 -
軟件架構(gòu)
+關(guān)注
關(guān)注
0文章
64瀏覽量
10499
發(fā)布評論請先 登錄
強(qiáng)烈呼吁版主分類整理封裝庫
嵌入式軟件開發(fā)中的程序架構(gòu)
嵌入式C語言的相關(guān)資料分享
為何要進(jìn)行嵌入式軟件架構(gòu)設(shè)計(jì)?如何設(shè)計(jì)?
決定嵌入式系統(tǒng)軟件架構(gòu)的因素和架構(gòu)的影響
嵌入式軟件架構(gòu)設(shè)計(jì)的相關(guān)資料分享
嵌入式工作有哪些分類?
嵌入式開發(fā)中常用的軟件架構(gòu)

嵌入式軟件配置的分類

精選匯總 | 嵌入式軟件設(shè)計(jì)與開發(fā)

精選匯總 | 嵌入式軟件基礎(chǔ)知識

評論