嵌入式架構有多重要?

                                                                             嵌入式架構有多重要?


架構設計的目的:

1.應用的代碼邏輯清晰,且避免重複造輪子。
2.如果沒有好的架構,移植將會是一件很痛苦的事情,因此一個好的架構設計,方便軟件的移植。
3.最大限度地複用。
4.高內聚低耦合。

設計思路:

原則上來說,是不會在主程序裏直接寫功能語句的(喂狗指令除外)。一個好的主程序結構應該通過子程序去調用具體功能模塊,這是程序模塊化的要求。在這種模塊化的程序結構中,主程序僅僅是執行調度功能,負責輪流調用功能模塊程序。主程序每循環一圈,所有的功能模塊都被調用一次(參見圖3.2:模塊化程序結構)。顯然,採用了這種結構後,各個模塊之間的相互獨立性較強。我們可以像搭積木一樣,很方便地增加或減少主程序調用的模塊,即功能模塊化設計、分層設計。

 

 模塊化設計:將收集到的需求,進行歸類,總結和分析,將這些需求概括爲一個個單獨的功能,每一個功能,做成一個單獨的功能模塊。

分層設計一句話不好直接表達,其主要體現在一下幾方面:

1.功能模塊對外調用的模塊封裝成一個個API,將底層驅動做個API以供功能模塊調用。(各個功能模塊可以獨立編譯(如通信模塊純ANSI C,可在任意平臺複用),或者調用驅動層接口(日誌庫模塊調用了驅動讀寫Flash),總而言之,言而總之,封裝出各個功能獨立的可複用的功能模塊。)
2.API分爲驅動層API和應用層API,而不是所有程序都調用驅動層API。(整個應用中都調用驅動層API會導致應用中驅動調用隨處可見,無法移植和最大限度的複用)

總體分 硬件驅動層-->功能模塊層-->業務邏輯層-->應用層

總體結構示意框圖:

 

說明:

1.層與層之間不能跨層調用。
2.模塊與模塊各自獨立,無依賴關係。
3.模塊提供統一的接口供上層調用,模塊的內外接口分明。
4.模塊的功能只能增,不能改。
5.各個功能模塊層也還可以進行繼續分層,比如接口層、驅動層、硬件層。

(3)模塊層次說明

 

硬件驅動層

硬件驅動層包含板載硬件資源正常運行所需的所有驅動程序並提供API給功能模塊調用。

 

功能模塊層

功能模塊層包括實現具體功能的函數,通過調用驅動層API實現相應功能,同時提供可調用的API給業務邏輯層。

 

業務邏輯層

業務邏輯層包括產品整體功能的各個業務流程,通過調用功能模塊層的API實現。

 

應用層

應用層將各個業務邏輯進行整合調用,完成整個產品的功能。

(4)優勢

如果驅動變動了,或者換不同平臺,只需更改驅動層,應用層不受影響。

如果功能模塊變動了,只需升級相應的功能模塊,其他的模塊不受影響,應用層也不受影響。

按照這種邏輯設計好之後,主要的工作就是在業務邏輯層。應用層則爲程序的總體流程和框架,主要調用業務邏輯層實現不同的功能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章