在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

RT-Thread的I/O設備模型與分類

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

RT- Thread 的I/O設備模型(簡稱“設備模型”)是建立在內核對象模型基礎之上的,設備被認為是一類對象,被納入對象管理的范疇。

每個設備對象都是由基對象派生而來的,每個具體設備都可以繼承其父類對象的屬性,并派出其私有屬性。

1.jpg

設備的對象struct rt_device的具體定義如下所示:

strcut rt_device{
struct rt_object parent; /內核對象基類*/
enum rt_device_classe_type type; / 設備類型 /
rt_uint16_t flag; / 設備參數 /
rt_uint16_t open_flag; / 設備打開標志 /
rt_uint8_t ref_count; / 設備被引用的次數 /
rt_uint8_t device_id; / 設備ID,范圍為0-255 /
/ 數據收發回調函數 /
rt_err_t (*rx_indicate)(rt_device_t dev, rt_size_t size);
rt_err_t (*tx_complete)(rt_device_t dev, void *buffer);
const struct rt_device_ops *ops; / 設備操作方法 /
/ 設備的私有數據 /
void *user_data;
};
typedef struct rt_device *rt_device_t;
}

rt_device_class_type用于RT-Thread對設備進行分類,在每類設備執行注冊后,系統會將它他們注冊為相應類別的設備。rt_device_class_type類型枚舉如下。

enum rt_device_class_type
{
RT_Device_class_char = 0, /* 字符設備 /
RT_Device_class_Block, /
塊設備 /
RT_Device_class_NetIf, /
網絡設備 /
RT_Device_class_MTD, /
MTD設備 /
RT_Device_class_CAN, /
CAN設備 /
RT_Device_class_RTC, /
RTC設備 /
RT_Device_class_Sound, /
聲音設備 /
RT_Device_class_Graphic, /
圖形設備 /
RT_Device_class_I2CBUS, /
I2C設備 /
RT_Device_class_USBDevice, /
USB從設備 /
RT_Device_class_USBHost, /
USB主設備 /
RT_Device_class_SPIBUS, /
SPI總線設備 /
RT_Device_class_SPIDevice, /
SPI設備 /
RT_Device_class_SDIO, /
SDIO總線設備 /
RT_Device_class_PM, /
低功耗設備 /
RT_Device_class_Pipe, /
管道設備 /
RT_Device_class_Portal, /
雙向管理設備 /
RT_Device_class_Timer, /
定時器設備 /
RT_Device_class_Miscellaneous, /
雜項設備 /
RT_Device_class_Sensor, /
傳感器設備 /
RT_Device_class_Touch, /
觸摸設備 /
RT_Device_class_Unknown /
未知設備 */
};

其中,字符設備、塊設備是常用的設備類型,它們的分類依據是設備與系統之間的數據傳輸處理方式。字符設備允許非結構化的數據傳輸,通常數據傳輸采用串行的形式,每次一字節。字符設備通常是一些簡單設備,如串口、按鍵。

塊設備每次傳輸一個數據塊,例如每次傳輸512字節數據。這個數據塊大小是硬件強制性要求的,數據塊可能使用某類數據接口或某些強制性的傳輸協議,否則就可能發生錯誤。因此,有時塊設備驅動程序進行讀/寫操作時必須執行附加的工作。

當系統服務需要進行大理數據的寫操作時,設備驅動程序必須將數據劃分為多個包,每個包采用設備指定的數據尺寸。而在實際操作中,最后一部分數據尺寸有可能小于正的設備塊盡尺寸。最后需要處理“小塊”的操作。

今天主要學習了設備對象結構體rt_device,里面包含的對象結構,還有學習了rt_device的分類枚舉rt_device_class_type。里面定義了0-21的對象。

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

    關注

    53

    文章

    8271

    瀏覽量

    147068
  • 串口設備
    +關注

    關注

    0

    文章

    16

    瀏覽量

    8616
  • RT-Thread
    +關注

    關注

    31

    文章

    1305

    瀏覽量

    40386
收藏 人收藏

    評論

    相關推薦

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

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

    RT-Thread記錄(十一、UART設備—源碼解析)

    一文帶你深入理解 RT-Thread I/O 設備模型 — UART 設備源碼分析。
    的頭像 發表于 07-01 11:24 ?5620次閱讀
    <b class='flag-5'>RT-Thread</b>記錄(十一、UART<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><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><b class='flag-5'>模型</b>之PIN<b class='flag-5'>設備</b>)

    基于RT-Thread的SPI通訊

    驅動層的驅動。(rt-thread設備 I/O 模型設備管理層、
    的頭像 發表于 08-22 09:28 ?1788次閱讀

    RT-Thread內核簡介

    RT-Thread 內核簡介前言1、RT-Thread 的架構2、RT-Thread 的內核3、RT-Thread 內核功能部分線程調度時鐘管理線程間同步線程間通信內存管理
    發表于 08-06 07:44

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

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

    RT-Thread AI kit開源:輕松實現一鍵部署AI模型RT-Thread

    RT-AK 是 RT-Thread 團隊為 RT-Thread 實時操作系統所開發的 AI 套件,能夠一鍵將 AI 模型部署到 RT-Thread
    發表于 01-25 18:18 ?3次下載
    <b class='flag-5'>RT-Thread</b> AI kit開源:輕松實現一鍵部署AI<b class='flag-5'>模型</b>至 <b class='flag-5'>RT-Thread</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文檔_RT-Thread SMP 介紹與移植

    RT-Thread文檔_RT-Thread SMP 介紹與移植
    發表于 02-22 18:31 ?9次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> SMP 介紹與移植

    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><b class='flag-5'>模型</b>

    RT-Thread文檔_I2C 總線設備

    RT-Thread文檔_I2C 總線設備
    發表于 02-22 18:35 ?0次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>I</b>2C 總線<b class='flag-5'>設備</b>

    RT-Thread文檔_SPI 設備

    RT-Thread文檔_SPI 設備
    發表于 02-22 18:36 ?2次下載
    <b class='flag-5'>RT-Thread</b>文檔_SPI <b class='flag-5'>設備</b>

    RT-Thread文檔_Pulse Encoder 設備

    RT-Thread文檔_Pulse Encoder 設備
    發表于 02-22 18:39 ?1次下載
    <b class='flag-5'>RT-Thread</b>文檔_Pulse Encoder <b class='flag-5'>設備</b>
    主站蜘蛛池模板: 午夜小视频在线 | 久久永久视频 | 天天爽夜夜爽一区二区三区 | 男女交性特一级 | 最新版天堂中文在线官网 | 日本不卡高清视频 | 玖玖爱在线播放 | 在线a亚洲老鸭窝天堂新地址 | 国产成人三级 | 黄色一级视频欧美 | 午夜丁香婷婷 | 六月婷婷网 | 天天噜噜色 | 亚洲欧洲一区二区三区在线 | 又色又爽的视频 | 性色视频在线 | 干成人网 | 日韩成人黄色 | 黄色v片| 欧美涩色| 欧美一级免费片 | 草久久久久| 日韩一级特黄毛片在线看 | 午夜男人的天堂 | 亚洲一区二区三区不卡视频 | 2021久久精品99精品久久 | 最新国产你懂的在线网址 | 国产午夜精品片一区二区三区 | 免费高清在线观看a网站 | 成年人激情视频 | 国模人体一区二区三区 | 黄色日屁 | 日本三级在线视频 | 狠狠干综合 | 二级特黄绝大片免费视频大片 | 亚洲黄色官网 | 精品免费视在线观看 | 久久成人国产精品青青 | 欧美性色欧美a在线观看 | 国产三级精品播放 | 狂捣猛撞侍卫攻双性王爷受 |