之前沒有接觸過驅(qū)動開發(fā)的人,看到“設備框架”這個名詞可能會感到迷茫。大家不妨先思考這樣一個問題:“為什么不同廠家、不同價格、不同形狀的鼠標,插到電腦上之后都能正常工作?“這是因為各家生產(chǎn)的鼠標者遵循同一套標準,操作系統(tǒng)只要按照這個標準去操作鼠標就可以得到它想要的效果。
“設備框架”就是針對某一類外設,抽象出來一套統(tǒng)一的操作方法以及接入標準。有了這一層抽象,框架上層的應用要訪問外設(比如攝像頭)是,就不用關(guān)具體的廠家或者產(chǎn)地了。只要按照框架提供的操作方法,就可以控制攝像頭拍照、攝像了。這套設備框架也為生產(chǎn)廠家提供了方便,他們不需要關(guān)心應用具體會怎么使用,只要按照設備框架提供的接入標準設計產(chǎn)品,生產(chǎn)出來就可以在市面上銷售了。
在嵌入式領(lǐng)域,RT- Thread了提供了這樣的一層抽象,用于屏蔽嵌入式上的硬件差異,為應用層提供統(tǒng)一的操作方法,也為底層提供統(tǒng)一的接入標準。
應用程序通過I/O設備管理接口獲得正確的設備驅(qū)動,然后通過這個設備驅(qū)動與底層I/O硬件設備進行數(shù)據(jù)(或控制)交互。
I/O設備管理層實現(xiàn)了對設備驅(qū)動的封裝。應用程序通過I/O設備層提供的標準接口訪問底層設備,因此設備驅(qū)動程序的升級、更替不會對上層就用產(chǎn)生影響。這種方式使得設備的硬件操作相關(guān)的代碼能夠獨立于應用程序而存在,雙方只需要關(guān)注各自的功能實現(xiàn),從而降低了代碼的耦合性、復雜性,提高了系統(tǒng)的可靠性。I/O設備管理層所飲食的I/O設備管理接口有rt_thread_findopenreadwritecloseregister等。
設備驅(qū)動框架層是對同類硬件設備驅(qū)動的抽象,將不同廠家的同類硬件設備驅(qū)動中相同的部分抽取出來,將不同部分留出接口,由驅(qū)動程序?qū)崿F(xiàn)。
設備驅(qū)動層是一組驅(qū)使硬件設備工作的程序,實現(xiàn)了訪問硬件設備的功能,它負責創(chuàng)建和注冊I/O設備。設備驅(qū)動層注冊設備有以下兩種方式。
第一種方式,
使用I/O設備管理層接口直接注冊,在設備驅(qū)動文件中通過rt_device_register()接口注冊到I/O設備管理器中。這種方式是針對操作邏輯簡單的設備,可以不經(jīng)過設備驅(qū)動框架層,直接將設備注冊到I/O設備管理器中。
1)設備驅(qū)動根據(jù)設備模型定義,創(chuàng)建出具體硬件訪問能力的設備實例,將該設備通過rt_device_register接口注冊到I/O設備管理器中。
2)應用程序通過rt_device_find()找到設備,然后使用I/O設備管理接口來該問硬件。
第二種方式
通過設備驅(qū)動框架層提供的注冊函數(shù)進行注冊,注冊函數(shù)一般命名為rt_hw_xx_register(),設備驅(qū)動框架層的注冊函數(shù)又調(diào)用了I/O設備管理接口的注冊函數(shù)rt_device_register(),從而進行設備注冊。此種注冊方式是針對一些不能使用I/O設備管理接口完成操作的設備,如看門狗等。看門狗設備注冊的主要步驟如下。
1)看門狗設備驅(qū)動程序根據(jù)看門狗設備模型定義,創(chuàng)建出具備硬件訪問能力的看門狗設備實例,并將該看門狗設備通過rt_hw_watchdog_register()接口注冊到看門狗設備驅(qū)動框架中。
2)看門狗設備驅(qū)動框架通過rt_device_register()接口將看門狗設備注冊到I/O設備管理器中。
3)應用程序通過rt_device_find()接口查找到設備,然后使用I/O設備管理接口來該問看門狗硬件。
看門狗設備注冊與使用序.
-
驅(qū)動器
+關(guān)注
關(guān)注
54文章
8711瀏覽量
150316 -
看門狗
+關(guān)注
關(guān)注
10文章
584瀏覽量
71884 -
RT-Thread
+關(guān)注
關(guān)注
32文章
1424瀏覽量
42139
發(fā)布評論請先 登錄
基于RT-Thread的RoboMaster電控框架設計
RT-Thread設備驅(qū)動開發(fā)指南基礎(chǔ)篇—以先楫bsp的hwtimer設備為例

RT-Thread 的 IO 設備模型框架是由哪些部分組成的呢
詳解RT-Thread I2C設備驅(qū)動框架及相關(guān)函數(shù)
詳細講解RT-Thread I2C設備驅(qū)動框架及相關(guān)函數(shù)

評論