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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux驅(qū)動(dòng)框架以及概述

嵌入式開(kāi)發(fā)愛(ài)好者 ? 來(lái)源:嵌入式開(kāi)發(fā)愛(ài)好者 ? 2023-09-10 09:22 ? 次閱讀

一、驅(qū)動(dòng)程序三種基本類(lèi)型

字符設(shè)備(Char Device)

塊設(shè)備(Block Device)

網(wǎng)絡(luò)設(shè)備(Net Device)

二、設(shè)備驅(qū)動(dòng)程序功能

對(duì)設(shè)備初始化和釋放

把數(shù)據(jù)從內(nèi)核傳送到硬件和從硬件讀取數(shù)據(jù)

讀取應(yīng)用程序傳送給設(shè)備文件的數(shù)據(jù)和回送應(yīng)用程序請(qǐng)求的數(shù)據(jù)

檢測(cè)和處理設(shè)備出現(xiàn)的錯(cuò)誤

訪問(wèn)特定硬件:

訪問(wèn)特定硬件就是訪問(wèn)物理地址(如處理器內(nèi)設(shè)備的寄存器、外設(shè)的地址映射)。然而由于MMU的內(nèi)存映射以及對(duì)操作系統(tǒng)的保護(hù),運(yùn)行在用戶(hù)態(tài)的應(yīng)用程序一般不能直接訪問(wèn)硬件地址。因此需要驅(qū)動(dòng)程序作為應(yīng)用程序和訪問(wèn)硬件之間的媒介。

三、驅(qū)動(dòng)程序的內(nèi)核模塊機(jī)制(開(kāi)發(fā)模式)

靜態(tài)編譯、動(dòng)態(tài)加載

Linux提供了一種內(nèi)核模塊機(jī)制。一個(gè)模塊被編譯成單獨(dú)的內(nèi)核模塊后,一開(kāi)始可以不編譯到整個(gè)內(nèi)核中,當(dāng)內(nèi)核需要加入該模塊的時(shí)候,不需要重新編譯整個(gè)內(nèi)核,只需要將該內(nèi)核模塊插入(加載)到正在運(yùn)行的內(nèi)核中。同樣,也可以從正在運(yùn)行的內(nèi)核中卸載。

Linux設(shè)備驅(qū)動(dòng)可以使用兩種方式被編譯和加載:

直接編譯到Linux內(nèi)核,隨Linux啟動(dòng)時(shí)加載,隨時(shí)可以使用該驅(qū)動(dòng)程序;

編譯成一個(gè)可加載和刪除的模塊,用insmod加載,rmmod刪除。

67d6a8b4-4f2a-11ee-a25d-92fbcf53809c.png

四、驅(qū)動(dòng)程序框架

三個(gè)主要部分

1、設(shè)備初始化/釋放

負(fù)責(zé)對(duì)設(shè)備進(jìn)行初始化和釋放

初始化檢測(cè)所要驅(qū)動(dòng)的硬件設(shè)備是否存在、能否正常工作。如果設(shè)備正常,則對(duì)設(shè)備及相關(guān)驅(qū)動(dòng)程序

需要的軟件狀態(tài)進(jìn)行配置/初始化。

2、上半部分:服務(wù)于文件系統(tǒng)I/O

負(fù)責(zé):通過(guò)文件系統(tǒng)從應(yīng)用程序讀取數(shù)據(jù),把數(shù)據(jù)通過(guò)文件系統(tǒng)回送給應(yīng)用程序(文件系統(tǒng)層<->設(shè)備驅(qū)動(dòng)層)

這部分由文件系統(tǒng)相關(guān)的系統(tǒng)調(diào)用執(zhí)行,和調(diào)用進(jìn)程屬于同一個(gè)進(jìn)程,具有調(diào)用進(jìn)程的運(yùn)行環(huán)境,只是由用戶(hù)態(tài)變成了內(nèi)核態(tài)。

3、下半部分:服務(wù)于硬件設(shè)備的I/O

負(fù)責(zé):把數(shù)據(jù)從內(nèi)核傳送到硬件,從硬件讀取數(shù)據(jù)到內(nèi)核(設(shè)備驅(qū)動(dòng)曾<->硬件層)

這部分可以通過(guò)中斷方式實(shí)現(xiàn),對(duì)于多數(shù)設(shè)備可以提高CPU處理效率。

這部分也可以不通過(guò)中斷方式實(shí)現(xiàn),只要能完成設(shè)備驅(qū)動(dòng)層和硬件之間的數(shù)據(jù)通信即可。

680ae4b2-4f2a-11ee-a25d-92fbcf53809c.png

1、字符設(shè)備驅(qū)動(dòng)程序框架

68301afc-4f2a-11ee-a25d-92fbcf53809c.png

2、塊設(shè)備驅(qū)動(dòng)程序框架

68537f6a-4f2a-11ee-a25d-92fbcf53809c.png

3、網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序框架

686f983a-4f2a-11ee-a25d-92fbcf53809c.png

審核編輯:彭菁

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2777

    瀏覽量

    49202
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7233

    瀏覽量

    90853
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7037

    瀏覽量

    124810
  • 硬件
    +關(guān)注

    關(guān)注

    11

    文章

    3448

    瀏覽量

    67074
  • Linux驅(qū)動(dòng)
    +關(guān)注

    關(guān)注

    0

    文章

    43

    瀏覽量

    10158

原文標(biāo)題:Linux系統(tǒng)中驅(qū)動(dòng)框架基本概述

文章出處:【微信號(hào):嵌入式開(kāi)發(fā)愛(ài)好者,微信公眾號(hào):嵌入式開(kāi)發(fā)愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux之PWM驅(qū)動(dòng)

    本文主要講述了Linux的PWM驅(qū)動(dòng)框架、實(shí)現(xiàn)方法、驅(qū)動(dòng)添加方法和調(diào)試方法。
    發(fā)表于 05-25 09:19 ?820次閱讀
    <b class='flag-5'>Linux</b>之PWM<b class='flag-5'>驅(qū)動(dòng)</b>

    linux驅(qū)動(dòng)框架是什么

    編寫(xiě)linux驅(qū)動(dòng)先看一下驅(qū)動(dòng)框架是什么樣子的。驅(qū)動(dòng)編寫(xiě)和應(yīng)用層編寫(xiě)有什么區(qū)別呢?
    發(fā)表于 07-26 08:14

    Linux下的UART驅(qū)動(dòng)框架詳解

    Linux下的UART驅(qū)動(dòng)框架
    發(fā)表于 12-22 07:18

    Linux 驅(qū)動(dòng) = 軟件框架 + 硬件操作

    ??Linux 驅(qū)動(dòng) = 軟件框架 + 硬件操作??驅(qū)動(dòng)程序依賴(lài)于 Linux 內(nèi)核,你為開(kāi)發(fā)板 A 開(kāi)發(fā)
    發(fā)表于 12-17 07:11

    想要駕馭Linux驅(qū)動(dòng)開(kāi)發(fā),必須深刻理解Linux總線設(shè)備驅(qū)動(dòng)框架

    想要駕馭Linux驅(qū)動(dòng)開(kāi)發(fā),必須深刻理解Linux總線設(shè)備驅(qū)動(dòng)框架。之所以會(huì)形成這樣的框架,主要
    的頭像 發(fā)表于 03-22 11:08 ?1.1w次閱讀
    想要駕馭<b class='flag-5'>Linux</b><b class='flag-5'>驅(qū)動(dòng)</b>開(kāi)發(fā),必須深刻理解<b class='flag-5'>Linux</b>總線設(shè)備<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>框架</b>

    Linux DMA Engine框架的介紹

    此會(huì)話(huà)描述如何從設(shè)備驅(qū)動(dòng)程序在Linux中使用DMA。 這包括內(nèi)存分配,緩存控制和DMA設(shè)備控制。 詳細(xì)介紹了Linux DMA Engine框架。
    的頭像 發(fā)表于 11-23 06:29 ?6610次閱讀

    你對(duì)Linux總線設(shè)備驅(qū)動(dòng)框架是否了解

    Linux的設(shè)備驅(qū)動(dòng)模型,或者說(shuō),Linux的設(shè)備驅(qū)動(dòng)框架,都是同一個(gè)意思。應(yīng)該這樣理解,(Linux
    發(fā)表于 05-05 15:13 ?835次閱讀

    如何使用Linux內(nèi)核實(shí)現(xiàn)USB驅(qū)動(dòng)程序框架

    Linux內(nèi)核提供了完整的USB驅(qū)動(dòng)程序框架。USB總線采用樹(shù)形結(jié)構(gòu),在一條總線上只能有唯一的主機(jī)設(shè)備。 Linux內(nèi)核從主機(jī)和設(shè)備兩個(gè)角度觀察USB總線結(jié)構(gòu)。本節(jié)介紹
    發(fā)表于 11-06 17:59 ?20次下載
    如何使用<b class='flag-5'>Linux</b>內(nèi)核實(shí)現(xiàn)USB<b class='flag-5'>驅(qū)動(dòng)</b>程序<b class='flag-5'>框架</b>

    OpenHarmony系統(tǒng)HDF驅(qū)動(dòng)框架概述

    OpenHarmony系統(tǒng)HDF驅(qū)動(dòng)框架概述 OpenAtom OpenHarmony(以下簡(jiǎn)稱(chēng)“OpenHarmony”)系統(tǒng) HDF 驅(qū)動(dòng)框架
    的頭像 發(fā)表于 09-03 09:29 ?4559次閱讀

    OpenHarmony HDF 驅(qū)動(dòng)框架概述及加載過(guò)程分析

    OpenHarmony系統(tǒng) HDF驅(qū)動(dòng)框架概述 OpenAtom OpenHarmony(以下簡(jiǎn)稱(chēng)“OpenHarmony”)系統(tǒng) HDF 驅(qū)動(dòng)框架
    的頭像 發(fā)表于 09-03 09:32 ?3952次閱讀
    OpenHarmony HDF <b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>框架</b><b class='flag-5'>概述</b>及加載過(guò)程分析

    嵌入式Linux驅(qū)動(dòng)開(kāi)發(fā)從基礎(chǔ)到框架

    想講好嵌入式Linux驅(qū)動(dòng)開(kāi)發(fā)并不容易,各位業(yè)界大神最基礎(chǔ)的字符驅(qū)動(dòng)到中斷并發(fā)再到驅(qū)動(dòng)框架、應(yīng)用層調(diào)用。但是總覺(jué)得業(yè)界寫(xiě)的書(shū)都是點(diǎn)到為止,
    發(fā)表于 11-01 16:58 ?15次下載
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>驅(qū)動(dòng)</b>開(kāi)發(fā)從基礎(chǔ)到<b class='flag-5'>框架</b>

    看看Linux為相機(jī)提供的驅(qū)動(dòng)框架

    ? V4L2 (Video Linux Two),是為支持Linux內(nèi)核設(shè)計(jì)的驅(qū)動(dòng)框架驅(qū)動(dòng)框架
    的頭像 發(fā)表于 08-07 16:03 ?3638次閱讀
    看看<b class='flag-5'>Linux</b>為相機(jī)提供的<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>框架</b>

    Linux的PWM驅(qū)動(dòng)框架及實(shí)現(xiàn)方法

    本文主要講述了Linux的PWM驅(qū)動(dòng)框架、實(shí)現(xiàn)方法、驅(qū)動(dòng)添加方法和調(diào)試方法。
    的頭像 發(fā)表于 05-14 15:24 ?1727次閱讀
    <b class='flag-5'>Linux</b>的PWM<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>框架</b>及實(shí)現(xiàn)方法

    Linux驅(qū)動(dòng)分析之RTC框架

    當(dāng)Linux內(nèi)核啟動(dòng)時(shí),它會(huì)從RTC中讀取時(shí)間與日期,作為基準(zhǔn)值。然后通過(guò)軟件來(lái)維護(hù)系統(tǒng)時(shí)間和日期。Linux系統(tǒng)中提供了RTC核心層,對(duì)于驅(qū)動(dòng)開(kāi)發(fā)者而言,操作起來(lái)就變得很簡(jiǎn)單了。我們來(lái)看看整體
    的頭像 發(fā)表于 05-26 15:12 ?1165次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>驅(qū)動(dòng)</b>分析之RTC<b class='flag-5'>框架</b>

    Linux Regmap 驅(qū)動(dòng)框架

    1、regmap 框架結(jié)構(gòu) regmap 驅(qū)動(dòng)框架如下圖所示: regmap 框架分為三層: ①、底層物理總線:regmap 就是對(duì)不同的物理總線進(jìn)行封裝,目前 regmap 支持的物
    的頭像 發(fā)表于 07-06 17:29 ?1324次閱讀
    <b class='flag-5'>Linux</b> Regmap <b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>框架</b>
    主站蜘蛛池模板: 一区二区三区四区在线观看视频 | 日本天天色 | 人人添人人澡人人澡人人人爽 | 欧美黄色免费看 | 黄色一级视频欧美 | 四虎国产精品免费入口 | 国产精品三级在线 | 国产男女交性视频播放免费bd | 精品啪啪 | 午夜精品视频 | 精品噜噜噜噜久久久久久久久 | 亚洲一区二区黄色 | 站长工具天天爽视频 | 久久久久女人精品毛片九一 | 经典三级一区二区三区视频 | 999国产精品| 午夜影院色| 亚洲午夜在线观看 | 欧美日韩高清一区 | 国产精品天天影视久久综合网 | caoporn97人人做人人爱最新 | 日本特级黄色录像 | 色狠狠综合 | 私色综合网 | 免费视频淫片aa毛片 | 天天操天天射天天操 | 久久婷婷综合五月一区二区 | 华人黄网站大全 | 成人涩涩网站 | 老司机亚洲精品影院在线观看 | 天天舔天天射 | 亚洲酒色1314狠狠做 | 午夜精品久久久久久 | 深夜国产成人福利在线观看女同 | 天天爱天天操天天射 | 久久9精品| 欧美性黑人极品hd网站 | 亚洲 欧洲 日韩 | 2021国产成人精品久久 | 天天狠天天天天透在线 | 日韩在线天堂免费观看 |