<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于UC/OS-II的嵌入式構件系統設計

基于UC/OS-II的嵌入式構件系統設計

作者: 時(shí)間:2011-01-12 來(lái)源:網(wǎng)絡(luò ) 收藏


硬件抽象層實(shí)現硬件的驅動(dòng)、I/O控制,可以用于同一種硬件平臺的很多應用中。OS層主要用于與操作相關(guān)的操作,包括任務(wù)的創(chuàng )建、消息的創(chuàng )建等。通信層實(shí)現數據的傳遞、數據格式的轉換。

用戶(hù)接口層提供與底層應用相關(guān)的基本操作函數、對外接口函數,實(shí)現上下層之間的互操作。應用層位于頂層,用于實(shí)現用戶(hù)的應用程序。用戶(hù)無(wú)需關(guān)心底層的硬件結構,直接使用用戶(hù)接口層提供的基本操作函數,即可編程實(shí)現自己需要的功能。

層(即)的接口是所包含的接口的組合。分層接口從上層看是透明的,對下層則是不透明的。在層接口處定義的僅對整個(gè)層次結構中該層或者該層之上的構件可見(jiàn)。只要符合一定的條件,每一層都可實(shí)現相當程度的復用,只需要替換相關(guān)的構件即可。

這里,特別要提到“原型”的概念。在各個(gè)層中,每個(gè)垂直切片僅實(shí)現與切片的目的相關(guān)的部分。這種實(shí)現方案稱(chēng)為“迭代式原型(iterative prototyping)”,每個(gè)切片稱(chēng)為一個(gè)“原型(prototype)”。實(shí)現原型時(shí),每個(gè)原型都在其前驅所實(shí)現的特性的基礎上進(jìn)行構造。原型的序列根據邏輯上特性的優(yōu)先順序來(lái)確定。本體系結構引入原型的概念,每個(gè)原型包含來(lái)自各層的一個(gè)或者多個(gè)構件,后面的原型構造于先前原型所提供的服務(wù)的基礎上。每個(gè)原型將實(shí)現一種特定的功能,逐漸增加功能,最終實(shí)現用戶(hù)應用程序。

分層的結構保持了頂層與低層很好的一致性,實(shí)現了橫向分離;同時(shí),原型的引用使得各層間的連接更為緊密,縱向相連,從而得到集成度更高、更可靠的系統。

3 構件系統的實(shí)現

3.1 鍵盤(pán)構件系統的實(shí)現

構件從本質(zhì)上來(lái)說(shuō),大部分的工作就是對輸入/輸出部分進(jìn)行處理。其構件主要有鍵盤(pán)、前向通道的處理(如A/D處理)、后向通道的處理(如D/A處理)、USB控制、網(wǎng)絡(luò )控制、液晶顯示等。輸入/輸出軟件的代碼占據了整個(gè)操作系統的相當部分,對操作系統來(lái)說(shuō),這部分的重要性是不言而喻的。其中,鍵盤(pán)更是嵌入式應用程序最常用的器件,因此本文以鍵盤(pán)為例,依據上述體系結構構建了鍵盤(pán)應用模型,配置實(shí)現了鍵盤(pán)功能。

圖2為鍵盤(pán)構件系統分層體系結構。每層左邊顯示的“棒棒糖”形狀表示層的接口,接口是一組可以從外部訪(fǎng)問(wèn)的類(lèi)和對象。虛線(xiàn)箭頭表示的是依賴(lài)關(guān)系,每層都依賴(lài)于其下一層的包,且構件與構件之間也存在著(zhù)依賴(lài)關(guān)系。上層調用位于下層具體一些的層次中的服務(wù),這種單向依賴(lài)使得可以在不同的上下文中使用相同的服務(wù),而無(wú)需考慮服務(wù)的實(shí)現方式。同時(shí),由于低一些的層中提供了定義良好的接口集合,可以用不同的底層實(shí)現來(lái)替換它們,這樣,整個(gè)構件系統就能更方便地移植到其他的物理環(huán)境中。

2.gif
另外,圖2中的寬箭頭表明了數據的傳遞方向,數據在硬件抽象層取得后,逐級向上層傳遞,經(jīng)過(guò)層層處理、轉換,最終到達應用層,被用戶(hù)程序所用。而此處,數據的傳輸過(guò)程其實(shí)也是一個(gè)原型的形成過(guò)程,即最終實(shí)現了一鍵盤(pán)響應處理任務(wù)。
3.2 構件生成集成環(huán)境的實(shí)現

構件系統體系結構,本文擬開(kāi)發(fā)了一構件生成集成環(huán)境,如圖3所示。該環(huán)境可以實(shí)現構件系統的自配置、自拼接、源代碼自生成,結構清晰,使用簡(jiǎn)便。隨后在該集成環(huán)境上,配置鍵盤(pán)構件系統,自動(dòng)生成源代碼,并在博創(chuàng )ARM300實(shí)驗平臺上實(shí)現了鍵盤(pán)響應,很好地驗證了此體系結構的可行性及優(yōu)越性。
結語(yǔ)

本文擴展了通用軟件構件的概念,提出了適用于嵌入式系統的構件模型;并在此基礎上了嵌入式軟件6層體系結構,采用了分層的結構,實(shí)現了橫向分離,而“原型”的引用使得各層縱向相連。此體系結構不僅實(shí)現了軟硬件分離,同時(shí)也實(shí)現了功能的分離,有利于實(shí)現穩定性好的嵌入式系統。最后,本文在鍵盤(pán)應用實(shí)例中驗證了其可行性。隨著(zhù)嵌入式系統的硬件發(fā)展,以及構件的軟件設計方法自身的不斷完善,構件的軟件設計方法必將是未來(lái)的發(fā)展方向。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>