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

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