欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

Linux應(yīng)用層控制外設(shè)的兩種不同的方式

jf_94171069 ? 來源:jf_94171069 ? 作者:jf_94171069 ? 2024-10-05 19:03 ? 次閱讀

01

sysfs文件系統(tǒng)控制外設(shè)(linux4.8開始廢棄)

眾所周知,linux下一切皆文件,那么應(yīng)用層如何控制硬件層,同樣是通過 文件I/O的方式來實(shí)現(xiàn)的,那、么應(yīng)用層控制硬件層通常有兩種方式:

1、/dev/ 目錄下為各設(shè)備節(jié)點(diǎn),通過對這些設(shè)備文件的I/O操作可以實(shí)現(xiàn)對底層硬件的操作

2、sysfs 文件系統(tǒng)的主要功能是對系統(tǒng)設(shè)備進(jìn)行管理,它可以產(chǎn)生一個(gè)包含所有系統(tǒng)硬件層次的視圖,而 sysfs 文件系統(tǒng)掛載在 /sys 目錄下

wKgaomb4z66AfgSGAAEBbuY4Cyc846.jpg

一、sys目錄架構(gòu)

進(jìn)入到 sys 目錄下,可以看到如下文件:

包括 block、bus、class、dev、devices、firmware、fs、kernel、

modules、power 等

二、sys 目錄介紹

sysfs 是一個(gè)基于內(nèi)存的文件系統(tǒng),同 devfs 、 proc 文件系統(tǒng)一樣,稱為虛擬文件系統(tǒng);它的作用是將內(nèi)核信息以文件的方式提供給應(yīng)用層使用。

sysfs 文件系統(tǒng)的主要功能便是對系統(tǒng)設(shè)備進(jìn)行管理,它可以產(chǎn)生一個(gè)包含所有系統(tǒng)硬件層次的視圖。

sysfs 文件系統(tǒng)掛載在 /sys 目錄下,

/sys/devices:

這是系統(tǒng)中所有設(shè)備存放的目錄,也就是系統(tǒng)中的所有設(shè)備在 sysfs 中的呈現(xiàn)、表達(dá),也是 sysfs 管理設(shè)備的最重要的目錄結(jié)構(gòu)。

/sys/block:

塊設(shè)備的存放目錄,這是一個(gè)過時(shí)的接口,按照 sysfs 的設(shè)計(jì)理念,系統(tǒng)所有的設(shè)備都存放在/sys/devices 目錄下,所以/sys/block 目錄下的文件通常是鏈接到/sys/devices 目錄下的文件。

/sys/bus:

這是系統(tǒng)中的所有設(shè)備按照總線類型分類放置的目錄結(jié)構(gòu),/sys/devices 目錄下每一種設(shè)備都是掛在某種總線下的,譬如 i2c 設(shè)備掛在 I2C 總線下。同樣,/sys/bus 目錄下的文件通常也是鏈接到了/sys/devices 目錄。

/sys/class:

這是系統(tǒng)中的所有設(shè)備按照其功能分類放置的目錄結(jié)構(gòu),同樣該目錄下的文件也是鏈接到了/sys/devices 目錄。按照設(shè)備的功能劃分組織在/sys/class 目錄下,譬如/sys/class/leds目錄中存放了所有的 LED 設(shè)備,/sys/class/input 目錄中存放了所有的輸入類設(shè)備。

/sys/dev:

這是按照設(shè)備號(hào)的方式放置的目錄結(jié)構(gòu),同樣該目錄下的文件也是鏈接到了/sys/devices 目錄。該目錄下有很多以主設(shè)備號(hào):次設(shè)備號(hào)(major:minor)命名的文件,這些文件都是鏈接文件,鏈接到/sys/devices 目錄下對應(yīng)的設(shè)備。

/sys/firmware:

描述了內(nèi)核中的固件。

/sys/fs:

用于描述系統(tǒng)中所有文件系統(tǒng),包括文件系統(tǒng)本身和按文件系統(tǒng)分類存放的已掛載點(diǎn)。

/sys/kernel:

這里是內(nèi)核中所有可調(diào)參數(shù)的位置。

/sys/module:

這里有系統(tǒng)中所有模塊的信息。

/sys/power:

這里是系統(tǒng)中電源選項(xiàng),有一些屬性可以用于控制整個(gè)系統(tǒng)的電源狀態(tài)。

td {white-space:nowrap;border:1px solid #dee0e3;font-size:10pt;font-style:normal;font-weight:normal;vertical-align:middle;word-break:normal;word-wrap:normal;}

block 塊設(shè)備的存放目錄,這是一個(gè)過時(shí)的接口,按照sysfs的設(shè)計(jì)理念,系統(tǒng)所有的設(shè)備都存放在/sys/devides目錄下,所以/sys/block目錄下的文件通常是鏈接到/sys/devices目錄下的文件
bus 這是系統(tǒng)中的所有設(shè)備按照總線類型分類放置的目錄結(jié)構(gòu),/sys/devices 目錄下每一種設(shè)備都是掛在某種總線下的,譬如 i2c 設(shè)備掛在 I2C 總線下。同樣,/sys/bus 目錄下的文件通常也是鏈接到了/sys/devices 目錄。
class 這是系統(tǒng)中的所有設(shè)備按照其功能分類放置的目錄結(jié)構(gòu),同樣該目錄下的文件也是鏈接到了/sys/devices 目錄。按照設(shè)備的功能劃分組織在/sys/class 目錄下,譬如/sys/class/leds目錄中存放了所有的 LED 設(shè)備,/sys/class/input 目錄中存放了所有的輸入類設(shè)備。
dev 這是按照設(shè)備號(hào)的方式放置的目錄結(jié)構(gòu),同樣該目錄下的文件也是鏈接到了/sys/devices 目錄。該目錄下有很多以主設(shè)備號(hào):次設(shè)備號(hào) (major:minor) 命名的文件,這些文件都是鏈接文件,鏈接到/sys/devices 目錄下對應(yīng)的設(shè)備。
devices 這是系統(tǒng)中所有設(shè)備存放的目錄,也就是系統(tǒng)中的所有設(shè)備在 sysfs 中的呈現(xiàn)、表達(dá),也是 sysfs 管理設(shè)備的最重要的目錄結(jié)構(gòu)。
firmware 描述了內(nèi)核中的固件。
fs 用于描述系統(tǒng)中所有文件系統(tǒng),包括文件系統(tǒng)本身和按文件系統(tǒng)分類存放的已掛載點(diǎn)。
kernel 這里是內(nèi)核中所有可調(diào)參數(shù)的位置。
module 包含當(dāng)前系統(tǒng)中已加載的模塊,包括編譯到內(nèi)核和編譯成模塊(.ko)的驅(qū)動(dòng)
power 這里是系統(tǒng)中電源選項(xiàng),有一些屬性可以用于控制整個(gè)系統(tǒng)的電源狀態(tài)。

上表顯示的便是 sysfs 文件系統(tǒng)中的目錄,包括 block 、 bus 、 class 、 dev 、 devices 、 firmware 、 fs 、 kernel 、 modules、 power 等,每個(gè)目錄下又有許多文件或子目錄,對這些目錄的說明如所示:

Linux 內(nèi)核中為了盡量降低驅(qū)動(dòng)開發(fā)者難度以及接口標(biāo)準(zhǔn)化,就出現(xiàn)了設(shè)備驅(qū)動(dòng)框架的概念; Linux 針對各種常見的設(shè)備進(jìn)行分類,譬如 LED 類設(shè)備、輸入類設(shè)備、 FrameBuffer 類設(shè)備、 video 類設(shè)備、 PWM 設(shè)備等等,并為每一種類型的設(shè)備設(shè)計(jì)了一套成熟的、標(biāo)準(zhǔn)的、典型的驅(qū)動(dòng)實(shí)現(xiàn)的框架,這個(gè)就叫做設(shè)備驅(qū)動(dòng)框架。設(shè)備驅(qū)動(dòng)框架為驅(qū)動(dòng)開發(fā)和應(yīng)用層提供了一套統(tǒng)一的接口規(guī)范,譬如對 LED 類設(shè)備來說,內(nèi)核提供了 LED 設(shè)備驅(qū)動(dòng)框架,驅(qū)動(dòng)工程師編寫 LED 驅(qū)動(dòng)時(shí),使用 LED 驅(qū)動(dòng)框架來開發(fā)自己的 LED 驅(qū)動(dòng)程序,這樣做的好處就在于,能夠?qū)ι蠈討?yīng)用層提供統(tǒng)一、標(biāo)準(zhǔn)化的接口、同時(shí)又降低了驅(qū)動(dòng)開發(fā)工程師的難度。

02

Libgpiod庫控制外設(shè)

包括字符設(shè)備文件和塊設(shè)備文件,設(shè)備文件便是各種硬件設(shè)備向應(yīng)用層提供的一個(gè)接口,應(yīng)用層通過對設(shè)備文件的 I/O 操作來操控硬件設(shè)備,譬如 LCD 顯示屏、串口、按鍵、攝像頭等等,所以設(shè)備文件其實(shí)是與硬件設(shè)備相互對應(yīng)的。設(shè)備文件通常在/dev/ 目錄下,我們也把/dev 目錄下的文件稱為設(shè)備節(jié)點(diǎn)。

libgpiod是用于與linux GPIO交互的C庫和工具,從 linux 4.8 后,官方不推薦使用 GPIO sysfs 接口,libgpiod庫封裝了 ioctl 調(diào)用和簡單的API接口。

與sysfs方式相比,libgpiod可以保證所有分配的資源,在關(guān)閉文件描述符后得到完全釋放,并且擁有sysfs方式接口中不存在的功能(如時(shí)間輪詢,一次設(shè)置/讀取多個(gè)gpio值)。此外libgpiod還包含一組命令行工具,允許用戶使用腳本對gpio進(jìn)行個(gè)性化操作。

目前有六個(gè)命令行工具可用

gpiodetect:列舉所有的gpio芯片以及它們名字,標(biāo)簽和io數(shù)目

gpioinfo:列舉所有g(shù)pio芯片以及它們的名字,制造商,方向,激活狀態(tài),附加標(biāo)志等

gpioget:獲取特定gpio引腳的當(dāng)前值

active-high是高電平 值為1 active-low是低電平 值為0

gpioset :設(shè)置特定的當(dāng)前值

gpiofind :獲取gpiochip的name和offset eg:gpiofind GPIO26 是加上line的名字

gpiomon : 監(jiān)視特定io上的特定事件

本文章源自奇跡物聯(lián)開源的物聯(lián)網(wǎng)應(yīng)用知識(shí)庫Cellular IoT Wiki,更多技術(shù)干貨歡迎關(guān)注收藏Wiki:Cellular IoT Wiki 知識(shí)庫(https://rckrv97mzx.feishu.cn/wiki/wikcnBvAC9WOkEYG5CLqGwm6PHf)

歡迎同學(xué)們走進(jìn)AmazIOT知識(shí)庫的世界!

這里是為物聯(lián)網(wǎng)人構(gòu)建的技術(shù)應(yīng)用百科,以便幫助你更快更簡單的開發(fā)物聯(lián)網(wǎng)產(chǎn)品

Cellular IoT Wiki初心:

在我們長期投身于蜂窩物聯(lián)網(wǎng) ODM/OEM 解決方案的實(shí)踐過程中,一直被物聯(lián)網(wǎng)技術(shù)碎片化與產(chǎn)業(yè)資源碎片化的問題所困擾。從產(chǎn)品定義、芯片選型,到軟硬件研發(fā)和測試,物聯(lián)網(wǎng)技術(shù)的碎片化以及產(chǎn)業(yè)資源的碎片化,始終對團(tuán)隊(duì)的產(chǎn)品開發(fā)交付質(zhì)量和效率形成制約。為了減少因物聯(lián)網(wǎng)碎片化而帶來的重復(fù)開發(fā)工作,我們著手對物聯(lián)網(wǎng)開發(fā)中高頻應(yīng)用的技術(shù)知識(shí)進(jìn)行沉淀管理,并基于 Bloom OS 搭建了不同平臺(tái)的 RTOS 應(yīng)用生態(tài)。后來我們發(fā)現(xiàn),很多物聯(lián)網(wǎng)產(chǎn)品開發(fā)團(tuán)隊(duì)都面臨著相似的困擾,于是,我們決定向全體物聯(lián)網(wǎng)行業(yè)開發(fā)者開放奇跡物聯(lián)內(nèi)部沉淀的應(yīng)用技術(shù)知識(shí)庫 Wiki,期望能為更多物聯(lián)網(wǎng)產(chǎn)品開發(fā)者減輕一些重復(fù)造輪子的負(fù)擔(dān)。

Cellular IoT Wiki沉淀的技術(shù)內(nèi)容方向如下:

wKgaombqoM2AYL2RAAQrZ8e-uz8392.jpg

奇跡物聯(lián)的業(yè)務(wù)服務(wù)范圍:基于自研的NB-IoT、Cat1、Cat4等物聯(lián)網(wǎng)模組,為客戶物聯(lián)網(wǎng)ODM/OEM解決方案服務(wù)。我們的研發(fā)技術(shù)中心在石家莊,PCBA生產(chǎn)基地分布在深圳、石家莊、北京三個(gè)工廠,滿足不同區(qū)域&不同量產(chǎn)規(guī)模&不同產(chǎn)品開發(fā)階段的生產(chǎn)制造任務(wù)。跟傳統(tǒng)PCBA工廠最大的區(qū)別是我們只服務(wù)物聯(lián)網(wǎng)行業(yè)客戶。

連接我們,和10000+物聯(lián)網(wǎng)開發(fā)者一起 降低技術(shù)和成本門檻

讓蜂窩物聯(lián)網(wǎng)應(yīng)用更簡單~~

哈哈你終于滑到最重要的模塊了,

千萬不!要!劃!走!忍住沖動(dòng)!~

歡迎加入飛書“開源技術(shù)交流群”,隨時(shí)找到我們哦~

點(diǎn)擊鏈接如何加入奇跡物聯(lián)技術(shù)話題群(https://rckrv97mzx.feishu.cn/docx/Xskpd1cFQo7hu9x5EuicbsjTnTf)可以獲取加入技術(shù)話題群攻略

Hey 物聯(lián)網(wǎng)從業(yè)者,

你是否有了解過奇跡物聯(lián)的官方公眾號(hào)“eSIM物聯(lián)工場”呢?

這里是奇跡物聯(lián)的物聯(lián)網(wǎng)應(yīng)用技術(shù)開源wiki主陣地,歡迎關(guān)注公眾號(hào),不迷路~

及時(shí)獲得最新物聯(lián)網(wǎng)應(yīng)用技術(shù)沉淀發(fā)布

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

    關(guān)注

    87

    文章

    11350

    瀏覽量

    210463
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3060

    瀏覽量

    74353
  • 文件系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    287

    瀏覽量

    19989
收藏 人收藏

    評論

    相關(guān)推薦

    兩種采樣方式

    兩種采樣方式.....................................
    發(fā)表于 08-08 15:04

    請問小車轉(zhuǎn)向兩種方式有什么優(yōu)缺點(diǎn)?

    我知道的小車轉(zhuǎn)向常見的有兩種方式,一是通過舵機(jī)控制轉(zhuǎn)向,另一是通過控制
    發(fā)表于 05-21 02:37

    SQL語句的兩種嵌套方式

    一般情況下,SQL語句是嵌套在宿主語言(如C語言)中的。有兩種嵌套方式:1.調(diào)用接口(CLI):提供一些庫,庫中的函數(shù)和方法實(shí)現(xiàn)SQL的調(diào)用2.直接嵌套SQL:在代碼中嵌套SQL語句,提交給預(yù)處理器,將SQL語句轉(zhuǎn)換成對宿主語
    發(fā)表于 05-23 08:51

    linux配置mysql的兩種方式

    兩種方式:a、$ find / -name mysql–print 查看是否有mysql文件夾b、$ netstat -a –n 查看是否打開3306端口
    發(fā)表于 07-26 07:46

    Linux實(shí)現(xiàn)輸入?yún)?shù)求和的兩種方式

    Linux實(shí)現(xiàn)輸入?yún)?shù)求和(兩種方式
    發(fā)表于 03-26 11:44

    【學(xué)習(xí)打卡】OpenHarmony的應(yīng)用層說明

    通過應(yīng)用層實(shí)現(xiàn)控制與其他設(shè)備的通信。它是一抽象服務(wù),并且它將應(yīng)用程序的其余部分與傳輸過程相屏蔽。應(yīng)用層位于所有
    發(fā)表于 07-14 08:44

    電力操作電源兩種控制方式的比較

    電力操作電源兩種控制方式的比較   1引言 開關(guān)電源是一個(gè)閉環(huán)的自動(dòng)控制系統(tǒng),開關(guān)電源的控制環(huán)節(jié)的設(shè)計(jì)是其設(shè)計(jì)
    發(fā)表于 07-10 08:43 ?1424次閱讀
    電力操作電源<b class='flag-5'>兩種</b><b class='flag-5'>控制</b><b class='flag-5'>方式</b>的比較

    逆變器的兩種電流型控制方式

    逆變器的兩種電流型控制方式 摘要:研究分析了逆變器的兩種雙環(huán)瞬時(shí)反饋控制方式
    發(fā)表于 07-10 11:21 ?4064次閱讀
    逆變器的<b class='flag-5'>兩種</b>電流型<b class='flag-5'>控制</b><b class='flag-5'>方式</b>

    學(xué)會(huì)處理Linux內(nèi)核訪問外設(shè)I/O資源的方式

    Linux內(nèi)核訪問外設(shè)I/O內(nèi)存資源的方式兩種:動(dòng)態(tài)映射(ioremap)和靜態(tài)映射(map_desc)。
    發(fā)表于 05-05 13:54 ?530次閱讀

    單片機(jī)常用的兩種延時(shí)控制方式

    單片機(jī)中常用的延時(shí)控制方式兩種。一是采用編程的方式達(dá)到延時(shí)的目的,另一方法則是通過單片機(jī)中
    發(fā)表于 07-17 10:22 ?6155次閱讀
    單片機(jī)常用的<b class='flag-5'>兩種</b>延時(shí)<b class='flag-5'>控制</b><b class='flag-5'>方式</b>

    linux spi應(yīng)用層驅(qū)動(dòng)以及回環(huán)測試代碼

    linux spi應(yīng)用層驅(qū)動(dòng)以及回環(huán)測試代碼
    發(fā)表于 10-22 15:47 ?2次下載

    嵌入式Linux應(yīng)用層開發(fā)教程(一)基本概念

    1 應(yīng)用層與驅(qū)動(dòng)要想學(xué)習(xí)嵌入式Linux應(yīng)用層的開發(fā),首先要區(qū)分好應(yīng)用層和驅(qū)動(dòng)之間的關(guān)系。我
    發(fā)表于 11-01 17:59 ?14次下載
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>應(yīng)用層</b>開發(fā)教程(一)基本概念

    星三角的兩種控制方式

    今天給大家展示一下星三角的兩種控制控制方式的電路圖,PLC 控制方式以三菱PLC 為例
    發(fā)表于 05-05 15:53 ?706次閱讀
    星三角的<b class='flag-5'>兩種</b><b class='flag-5'>控制</b><b class='flag-5'>方式</b>

    Linux中LED驅(qū)動(dòng)的應(yīng)用層控制

    今天,我們就站在巨人的肩膀上,利用內(nèi)核開發(fā)者已經(jīng)寫好的驅(qū)動(dòng)來實(shí)現(xiàn)我們想要的功能。 應(yīng)用層控制 除了可以在shell中通過 echo 、 cat 的方式控制Led,我們也可以在寫一個(gè)
    的頭像 發(fā)表于 09-27 11:09 ?592次閱讀

    Linux應(yīng)用層操作寄存器

    --- > [*] /dev/mem virtual device support Linux應(yīng)用層操作寄存器 除了直接使用devmem,我們也可以在Linux應(yīng)用層自己實(shí)現(xiàn)一個(gè)de
    的頭像 發(fā)表于 10-08 15:16 ?1316次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>應(yīng)用層</b>操作寄存器