日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

嵌入式软件分层

發(fā)布時間:2025/6/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 嵌入式软件分层 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
首先需要說明為什么要分層?這樣做會有什么好處?
? ?解耦:通過代碼分層實現(xiàn)“高內(nèi)聚”和“低耦合”,每個層、模塊間在功能上獨立
? ?擴展性/可維護性強:因為各層及模塊間功能相互獨立,沒有嚴格依賴關(guān)系,所以它的擴展性/可維護性比較強
? ?移植性:每一層都實現(xiàn)指定功能,與其他模塊通過指定接口建立聯(lián)系,所以移植起來比較方便
? ?問題簡單化:通過功能逐步細化,可以把復(fù)雜的功能簡單化,簡化代碼實現(xiàn)
? ?復(fù)用性強:因為各模塊功能相互獨立且可相互調(diào)用,所以代碼復(fù)用性較強

三層架構(gòu)介紹
? ?三層架構(gòu)是一個比較典型的分層思想,它們分別是:表現(xiàn)層(UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問層(DAL)。
? ?表現(xiàn)層: 實現(xiàn)了和用戶交互的功能,比如一些數(shù)據(jù)或者界面的交互
? ?業(yè)務(wù)邏輯層:這是整個系統(tǒng)的核心,所有的邏輯判斷以及數(shù)據(jù)處理都在這一層實現(xiàn)
? ?數(shù)據(jù)訪問層:實現(xiàn)了數(shù)據(jù)存儲和讀取,比如數(shù)據(jù)庫的增、刪、查、改

由三層架構(gòu)設(shè)計嵌入式分層
? ?嵌入式開發(fā)的核心就是芯片,它提供固定的片內(nèi)資源共開發(fā)者使用。而且它具有一個很重要的特點就是,不隨項目的需求變動而變動。所以應(yīng)將其作為最底層,為上層提供基礎(chǔ)支持。我們將其命名為 硬件抽象層(Hardware Abstract Layer)
? ?芯片有了當(dāng)然還不夠,通常我們會在片外擴展一些功能模塊來滿足具體的項目需求,例如:傳感器、鍵盤、LCD屏、片外存儲等。這一層的特點是,隨項目的變動而以模塊為單位動態(tài)增減。這一層的運作需要芯片內(nèi)部資源的支持,所以應(yīng)處于硬件抽象層之上,并為上層調(diào)用。我們將其命名為擴展外設(shè)層(Expand Peripherals Layer)
? ?根據(jù)嵌入式產(chǎn)品的特點和三層架構(gòu)的結(jié)合分析,可得到嵌入式代碼框架分層結(jié)構(gòu)如下:
? ? ? ? ? ? ? ? ? ? ? ? * * * * * * * * * * * * * * * * * * * *
? ? ? ? ? ? ? ? ? ? ? ? * ? ? ? ? ? ? ? ?應(yīng)用接口層 ? ? ? ? ? ? *
? ? ? ? ? ? ? ? ? ? ? ? * * * * * * * * * * * * * * * * * * * *
? ? ? ? ? ? ? ? ? ? ? ? * ? ? ? ? ? ? ? ?邏輯處理層 ? ? ? ? ? ? *
? ? ? ? ? ? ? ? ? ? ? ? * * * * * * * * * * * * * * * * * * * * ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? * ? ? ? ? * ? ? ? ? ?擴展外設(shè)層 ? ? ? ?*
? ? ? ? ? ? ? ? ? ? ? ? * ? ? ? ? * * * * * * * * * * * * * * * *
? ? ? ? ? ? ? ? ? ? ? ? * ? ? ? ? ? ? ? ?硬件抽象層 ? ? ? ? ? ? *
? ? ? ? ? ? ? ? ? ? ? ? * * * * * * * * * * * * * * * * * * * *

硬件抽象層:屏蔽對SFR的操作細節(jié),為上層提供簡單、清晰的應(yīng)用接口
擴展外設(shè)層:根據(jù)項目需求可以動態(tài)增加或去掉這一層的功能模塊單元
note:硬件抽象層和擴展外設(shè)層包括了整個系統(tǒng)涉及到的硬件單元模塊,我們在封裝這部分模塊功能接口時需要嚴格區(qū)分它們之間的界限。每個單元之間都必須做到完全獨立的狀態(tài),分別實現(xiàn)模塊需要對外提供的最基本的功能接口。如果在整個系統(tǒng)中模塊之間有相互調(diào)用的邏輯,必須通過上層代碼“間接”調(diào)用,避免底層模塊之間的耦合
邏輯處理層:整個系統(tǒng)的邏輯/數(shù)據(jù)處理都在這里,是整個系統(tǒng)的核心。這層的效率和穩(wěn)定性也直接影響了系統(tǒng)性能,所以無論是概要設(shè)計/詳細設(shè)計/代碼實現(xiàn),每個環(huán)節(jié)都需要著重處理這部分。
應(yīng)用接口層:負責(zé)和應(yīng)用層成交互,提供功能接口。

設(shè)計原則:
1.下層只需為上層提供調(diào)用接口,不能有邏輯上耦合關(guān)系。另外在調(diào)用下層接口時,也最好通過異步調(diào)用方式解耦
2.每一層或每一個功能模塊都要以“高內(nèi)聚”、“低耦合”為理念
3.下層接口需要對上層屏蔽自己的實現(xiàn)細節(jié)

4.下層為上層提供調(diào)用接口,且是單向調(diào)用。也就是說只能上層應(yīng)用調(diào)用下層接口


總結(jié)

以上是生活随笔為你收集整理的嵌入式软件分层的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。