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

精選匯總 | 嵌入式軟件設計與開發

精選匯總 | 嵌入式軟件基礎知識

評論