衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

RT-Thread設備驅動開發之二I/O設備框架

冬至子 ? 來源:Lu_盼盼 ? 作者:Lu_盼盼 ? 2023-10-12 10:26 ? 次閱讀

之前沒有接觸過驅動開發的人,看到“設備框架”這個名詞可能會感到迷茫。大家不妨先思考這樣一個問題:“為什么不同廠家、不同價格、不同形狀的鼠標,插到電腦上之后都能正常工作?“這是因為各家生產的鼠標者遵循同一套標準,操作系統只要按照這個標準去操作鼠標就可以得到它想要的效果。

“設備框架”就是針對某一類外設,抽象出來一套統一的操作方法以及接入標準。有了這一層抽象,框架上層的應用要訪問外設(比如攝像頭)是,就不用關具體的廠家或者產地了。只要按照框架提供的操作方法,就可以控制攝像頭拍照、攝像了。這套設備框架也為生產廠家提供了方便,他們不需要關心應用具體會怎么使用,只要按照設備框架提供的接入標準設計產品,生產出來就可以在市面上銷售了。

嵌入式領域,RT- Thread了提供了這樣的一層抽象,用于屏蔽嵌入式上的硬件差異,為應用層提供統一的操作方法,也為底層提供統一的接入標準。

應用程序通過I/O設備管理接口獲得正確的設備驅動,然后通過這個設備驅動與底層I/O硬件設備進行數據(或控制)交互。

I/O設備管理層實現了對設備驅動的封裝。應用程序通過I/O設備層提供的標準接口訪問底層設備,因此設備驅動程序的升級、更替不會對上層就用產生影響。這種方式使得設備的硬件操作相關的代碼能夠獨立于應用程序而存在,雙方只需要關注各自的功能實現,從而降低了代碼的耦合性、復雜性,提高了系統的可靠性。I/O設備管理層所飲食的I/O設備管理接口有rt_thread_findopenreadwritecloseregister等。

設備驅動框架層是對同類硬件設備驅動的抽象,將不同廠家的同類硬件設備驅動中相同的部分抽取出來,將不同部分留出接口,由驅動程序實現。

設備驅動層是一組驅使硬件設備工作的程序,實現了訪問硬件設備的功能,它負責創建和注冊I/O設備。設備驅動層注冊設備有以下兩種方式。

第一種方式,

使用I/O設備管理層接口直接注冊,在設備驅動文件中通過rt_device_register()接口注冊到I/O設備管理器中。這種方式是針對操作邏輯簡單的設備,可以不經過設備驅動框架層,直接將設備注冊到I/O設備管理器中。

1)設備驅動根據設備模型定義,創建出具體硬件訪問能力的設備實例,將該設備通過rt_device_register接口注冊到I/O設備管理器中。

2)應用程序通過rt_device_find()找到設備,然后使用I/O設備管理接口來該問硬件。

第二種方式

通過設備驅動框架層提供的注冊函數進行注冊,注冊函數一般命名為rt_hw_xx_register(),設備驅動框架層的注冊函數又調用了I/O設備管理接口的注冊函數rt_device_register(),從而進行設備注冊。此種注冊方式是針對一些不能使用I/O設備管理接口完成操作的設備,如看門狗等。看門狗設備注冊的主要步驟如下。

1)看門狗設備驅動程序根據看門狗設備模型定義,創建出具備硬件訪問能力的看門狗設備實例,并將該看門狗設備通過rt_hw_watchdog_register()接口注冊到看門狗設備驅動框架中。

2)看門狗設備驅動框架通過rt_device_register()接口將看門狗設備注冊到I/O設備管理器中。

3)應用程序通過rt_device_find()接口查找到設備,然后使用I/O設備管理接口來該問看門狗硬件。

看門狗設備注冊與使用序.

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 驅動器
    +關注

    關注

    53

    文章

    8271

    瀏覽量

    147061
  • 看門狗
    +關注

    關注

    10

    文章

    566

    瀏覽量

    70949
  • RT-Thread
    +關注

    關注

    31

    文章

    1305

    瀏覽量

    40386
收藏 人收藏

    評論

    相關推薦

    RT-Thread記錄(十、全面認識 I/O 設備模型)

    學完 RT-Thread 內核,從本文開始熟悉了解 RT-Thread I/O 設備管理相關知識。
    的頭像 發表于 06-30 10:38 ?4260次閱讀
    <b class='flag-5'>RT-Thread</b>記錄(十、全面認識 <b class='flag-5'>I</b>/<b class='flag-5'>O</b> <b class='flag-5'>設備</b>模型)

    RT-Thread記錄(十四、I/O 設備模型之ADC設備

    我曾經考慮過把 RT-Thread 常用的設備都寫完,其實通過前面的《全面認識 RT-Thread I/O
    的頭像 發表于 07-04 12:28 ?4498次閱讀
    <b class='flag-5'>RT-Thread</b>記錄(十四、<b class='flag-5'>I</b>/<b class='flag-5'>O</b> <b class='flag-5'>設備</b>模型之ADC<b class='flag-5'>設備</b>)

    RT-Thread記錄(十二、UART設備—使用測試)

    從 UART 設備開始學會使用 RT-Thread I/O 設備模型
    的頭像 發表于 07-02 12:42 ?5105次閱讀
    <b class='flag-5'>RT-Thread</b>記錄(十二、UART<b class='flag-5'>設備</b>—使用測試)

    RT-Thread記錄(十三、I/O 設備模型之PIN設備

    講完UART設備之后,我們已經熟悉RT-Thread I/O 設備模型了,回頭看看基本的 PIN 設備
    的頭像 發表于 07-03 11:28 ?4923次閱讀
    <b class='flag-5'>RT-Thread</b>記錄(十三、<b class='flag-5'>I</b>/<b class='flag-5'>O</b> <b class='flag-5'>設備</b>模型之PIN<b class='flag-5'>設備</b>)

    基于RT-Thread的RoboMaster電控框架設計

    由于 RT-Thread 穩定高效的內核,豐富的文檔教程,積極活躍的社區氛圍,以及設備驅動框架、Kconfig、Scons、日志系統、海量的軟件包……很難不選擇
    發表于 09-06 15:21 ?746次閱讀

    RT-Thread設備驅動開發指南基礎篇—以先楫bsp的hwtimer設備為例

    RT-Thread設備驅動開發指南》書籍是RT-thread官方出品撰寫,系統講解RT-thread
    的頭像 發表于 02-20 16:01 ?1809次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>設備</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>指南基礎篇—以先楫bsp的hwtimer<b class='flag-5'>設備</b>為例

    RT-Thread 的 IO 設備模型框架是由哪些部分組成的呢

    RT-ThreadI/O 設備模型框架是由哪些部分組成的呢?接下來由小編給大家詳細介紹一下。1、R
    發表于 03-11 18:17

    詳解RT-Thread I2C設備驅動框架及相關函數

    摘要本應用筆記以驅動 I2C 接口的 6 軸傳感器 MPU6050 為例,說明了如何使用 I2C 設備驅動接口
    發表于 10-25 12:02

    詳細講解RT-Thread I2C設備驅動框架及相關函數

    本應用筆記以驅動I2C接口的6軸傳感器MPU6050為例,說明了如何使用I2C設備驅動接口開發
    的頭像 發表于 03-29 10:52 ?2.1w次閱讀
    詳細講解<b class='flag-5'>RT-Thread</b> <b class='flag-5'>I</b>2C<b class='flag-5'>設備</b><b class='flag-5'>驅動</b><b class='flag-5'>框架</b>及相關函數

    RT-Thread設備模型框架及創建注冊設備的實現

    RT-Thread設備模型框架及創建注冊設備的實現方式介紹如下:
    的頭像 發表于 05-28 10:38 ?2232次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>設備</b>模型<b class='flag-5'>框架</b>及創建注冊<b class='flag-5'>設備</b>的實現

    RT-Thread文檔_I/O 設備模型

    RT-Thread文檔_I/O 設備模型
    發表于 02-22 18:31 ?0次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>I</b>/<b class='flag-5'>O</b> <b class='flag-5'>設備</b>模型

    淺析RT-Thread設備驅動框架

    RT-Thread 設備框架屬于組件和服務層,是基于 RT-Thread 內核之上的上層軟件。設備框架
    的頭像 發表于 08-07 15:39 ?2079次閱讀

    基于 RT-Thread 的 RoboMaster 電控框架(一)

    由于 RT-Thread 穩定高效的內核,豐富的文檔教程,積極活躍的社區氛圍,以及設備驅動框架、Kconfig、Scons、日志系統、海量的軟件包……很難不選擇
    的頭像 發表于 09-19 19:55 ?816次閱讀

    基于RT-Thread的RoboMaster電控框架

    由于 RT-Thread 穩定高效的內核,豐富的文檔教程,積極活躍的社區氛圍,以及設備驅動框架、Kconfig、Scons、日志系統、海量的軟件包
    的頭像 發表于 09-20 15:16 ?809次閱讀

    RT-Thread設備驅動開發指南》基礎篇--以先楫bsp的hwtimer設備為例

    一、概述(一)RT-Thread設備驅動RT-Thread設備驅動
    的頭像 發表于 02-24 08:16 ?1835次閱讀
    《<b class='flag-5'>RT-Thread</b><b class='flag-5'>設備</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>指南》基礎篇--以先楫bsp的hwtimer<b class='flag-5'>設備</b>為例
    注册百家乐官网送彩金| 利来国际娱乐| 百家乐太阳城菲律宾| 棋牌休闲游戏| 百家乐最佳打| 盈得利百家乐官网娱乐城| 百家乐官网技巧发布| 大发888新澳博| 百家乐桌颜色可定制| 百家乐官网在线洗码| 和顺县| 皇冠现金网怎么样| 电脑百家乐玩| 百家乐2号干扰| 澳门百家乐官网| 江西省| 博彩优惠| 香港百家乐的玩法技巧和规则 | 鲁甸县| 大发888娱乐场开户| 全景网百家乐的玩法技巧和规则| 24山九宫飞星详解| 高科技百家乐官网牌具| 百家乐官网攻略投注法| 现金百家乐游戏| 太阳城娱乐场| 百家乐gamble| 做生意什么花风水好| 百家乐官网双人操作分析仪| 百家乐官网赢新全讯网| 牌九娱乐城| 大发888官网e世博备用网址| 百家乐有没有破解之法| 百家乐视频游戏盗号| 爱拼百家乐官网的玩法技巧和规则 | 百家乐佛牌| 百家乐官网怎么才能包赢| 百家乐官网下注稳赢法| 莫力| 皇家金堡娱乐| 百乐坊娱乐城官网|