最近項(xiàng)目有點(diǎn)多,總結(jié)一下目前接觸的軟件架構(gòu)中的幾個(gè)分類,個(gè)人拙見(jiàn),大家可以相互學(xué)習(xí)。
1. 分層設(shè)計(jì)
分層設(shè)計(jì),就是把整個(gè)流程要做的事情按照模塊化各自的特征,進(jìn)行功能的分層,是和硬件寄存器打交道的,還是完全脫離硬件和業(yè)務(wù)打交道的。
一般來(lái)說(shuō),個(gè)人總結(jié)有幾個(gè)原則:接口是上下級(jí)調(diào)用,很少跨層調(diào)用。即第4層的代碼一般不會(huì)直接去第1/2層調(diào)用接口,非要用的話,就從第3層透?jìng)鞣庋b一下。同層級(jí)的模塊間盡量避免相互調(diào)用,需要的數(shù)據(jù)都是通過(guò)高一層的接口獲取再下傳
MCU程序:單片機(jī)程序就是一個(gè)程序驅(qū)動(dòng)硬件,實(shí)現(xiàn)一個(gè)具體功能,代碼特點(diǎn)就是從底到高,基本所有層都會(huì)涉及,所以對(duì)單片機(jī)程序進(jìn)行分層,相對(duì)來(lái)說(shuō)會(huì)比較完整。5層軟件架構(gòu)
1.硬件驅(qū)動(dòng)層
2.功能模塊層
3.應(yīng)用接口層
4.業(yè)務(wù)邏輯層
5.應(yīng)用層
6層軟件架構(gòu)
1.HAL硬件抽象層
2.OSL操作系統(tǒng)層
3.HDL硬件驅(qū)動(dòng)層
4.FML功能模塊層
5.BLL業(yè)務(wù)邏輯層
6.APL應(yīng)用層

功能模塊層是按照項(xiàng)目需求提取出來(lái)的功能,需要硬件抽象層和硬件驅(qū)動(dòng)層的硬件支持才能實(shí)現(xiàn),功能模塊層根據(jù)項(xiàng)目的功能需求改變而改變,而硬件抽象層和硬件驅(qū)動(dòng)層則是項(xiàng)目需求書中的功耗等硬件相關(guān)的需求變動(dòng)而改變,當(dāng)然,若子功能的增加而硬件不支持,則也需更換硬件驅(qū)動(dòng)。比如項(xiàng)目中的數(shù)據(jù)儲(chǔ)存功能,硬件支持有AT24C02、W25Q128和芯片本身的FLASH,都可以支持?jǐn)?shù)據(jù)儲(chǔ)存功能,即使后期因?yàn)楣幕蚬?jié)約成本等問(wèn)題,硬件的更換也不影響數(shù)據(jù)儲(chǔ)存功能的實(shí)現(xiàn)(前提規(guī)劃好標(biāo)準(zhǔn)規(guī)范的API函數(shù)定義)且避免了重寫該功能代碼所帶來(lái)的各種問(wèn)題,保證了該功能的穩(wěn)定性。
裸機(jī)上跑操作系統(tǒng)需要考慮系統(tǒng)調(diào)度間的問(wèn)題,內(nèi)存消耗,內(nèi)存踐踏,內(nèi)存泄漏,看門狗喂狗等操作。
審核編輯:湯梓紅
-
單片機(jī)
+關(guān)注
關(guān)注
6076文章
45500瀏覽量
670649 -
嵌入式
+關(guān)注
關(guān)注
5200文章
20458瀏覽量
334306 -
軟件架構(gòu)
+關(guān)注
關(guān)注
0文章
64瀏覽量
10642
發(fā)布評(píng)論請(qǐng)先 登錄
強(qiáng)烈呼吁版主分類整理封裝庫(kù)
嵌入式C語(yǔ)言的相關(guān)資料分享
為何要進(jìn)行嵌入式軟件架構(gòu)設(shè)計(jì)?如何設(shè)計(jì)?
決定嵌入式系統(tǒng)軟件架構(gòu)的因素和架構(gòu)的影響
嵌入式軟件架構(gòu)設(shè)計(jì)的相關(guān)資料分享
嵌入式系統(tǒng)的特點(diǎn)、分類、發(fā)展和應(yīng)用
嵌入式工作有哪些分類?
嵌入式開發(fā)中常用的軟件架構(gòu)
嵌入式軟件配置的分類
精選匯總 | 嵌入式軟件設(shè)計(jì)與開發(fā)
精選匯總 | 嵌入式軟件基礎(chǔ)知識(shí)
嵌入式軟件架構(gòu)的設(shè)計(jì)中分類整理
評(píng)論