国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

嵌入式培訓機構(gòu)四個月實訓課程筆記(完整版)-Linux ARM驅(qū)動編程第五天-ARM Linux編程之設備節(jié)點 (物聯(lián)技術666)

這篇具有很好參考價值的文章主要介紹了嵌入式培訓機構(gòu)四個月實訓課程筆記(完整版)-Linux ARM驅(qū)動編程第五天-ARM Linux編程之設備節(jié)點 (物聯(lián)技術666)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

鏈接:https://pan.baidu.com/s/1hOBKyRom-4EZMBpFn1H9kQ?pwd=1688
提取碼:1688

?Linux設備節(jié)點

設備管理是linux中比較基礎的東西,但是由于Linux智能程度的越來越高,Udev的使用越來越廣泛,使得越來越多的Linux新用戶對 /dev 目錄下的東西變得不再熟悉。有時候遇見問題就會變得抓狂

本文是我在寫作《DIY 一個基于LFS的實用 Mini-LAPP 服務器》過程中整理的資料,拿出來與大家共享

Linux 中的設備有2種類型:字符設備(無緩沖且只能順序存取)、塊設備(有緩沖且可以隨機存取)。每個字符設備和塊設備都必須有主、次設備號,主設備號相同的設備是同類設備(使用同一個驅(qū)動程序)。這些設備中,有些設備是對實際存在的物理硬件的抽象,而有些設備則是內(nèi)核自身提供的功能(不依賴于特定的物理硬件,又稱為"虛擬設備")。每個設備在 /dev 目錄下都有一個對應的文件(節(jié)點)??梢酝ㄟ^ cat /proc/devices 命令查看當前已經(jīng)加載的設備驅(qū)動程序的主設備號。內(nèi)核能夠識別的所有設備都記錄在原碼樹下的 Documentation/devices.txt 文件中。在 /dev 目錄下除了字符設備和塊設備節(jié)點之外還通常還會存在:FIFO管道、Socket、軟/硬連接、目錄。這些東西沒有主/次設備號。

Linux內(nèi)核所能識別的所有設備都記錄在/dev/下

而內(nèi)核原碼樹中的 Documentation/devices.txt 可能不是最新版本。

了解這些設備的最基本要求就是對 每個設備文件的含義了如指掌,下面就醫(yī)列表的形式列出常見的設備文件以及相應的含義(比較偏僻的就省略了):

----------------------------------------------------------------------

主設備號 設備類型

次設備號=文件名 簡要說明

----------------------------------------------------------------------

0 未命名設備(例如:掛載的非設備)

0 = 未空設備號保留

1 char 內(nèi)存設備

1 = /dev/mem 直接存取物理內(nèi)存

2 = /dev/kmem 存取經(jīng)過內(nèi)核虛擬之后的內(nèi)存

3 = /dev/null 空設備。任何寫入都將被直接丟棄,任何讀取都將得到EOF。

4 = /dev/port 存取 I/O 端口

5 = /dev/zero 零字節(jié)源,只能讀取到無限多的零字節(jié)。

7 = /dev/full 滿設備。任何寫入都將失敗,并把errno設為ENOSPC以表示沒有剩余空間。

8 = /dev/random 隨機數(shù)發(fā)生器。完全由用戶的輸入來產(chǎn)生隨機數(shù)。

如果用戶停止所有動作,則停止產(chǎn)生新的隨機數(shù)。

9 = /dev/urandom 更快,但是不夠安全的隨機數(shù)發(fā)生器。盡可能由用戶的輸入來產(chǎn)生隨機數(shù),

如果用戶停止所有動作,則把已經(jīng)產(chǎn)生的隨機數(shù)做為種子來產(chǎn)生新的隨機數(shù)。

10 = /dev/aio 異步 I/O 通知接口

11 = /dev/kmsg 任何對該文件的寫入都將作為 printk 的輸出

1 block RAM disk

0 = /dev/ram0 第1個 RAM disk (initrd只能使用ram0)

1 = /dev/ram1 第2個 RAM disk

...

200 = /dev/ram200 第200個 RAM disk

4 char TTY(終端)設備

0 = /dev/tty0 當前虛擬控制臺

1 = /dev/tty1 第1個虛擬控制臺

...

63 = /dev/tty63 第63個虛擬控制臺

4 block 如果根文件系統(tǒng)以是以只讀方式掛載的,那么就不可能創(chuàng)建真正的設備節(jié)點,

此時就使用該設備作為動態(tài)分配的主(major)設備的別名

0 = /dev/root

5 char 其他 TTY 設備

0 = /dev/tty 當前 TTY 設備

1 = /dev/console 系統(tǒng)控制臺

2 = /dev/ptmx 所有 PTY master 的復用器

7 char 虛擬控制臺捕捉設備(這些設備既允許讀也允許寫)

0 = /dev/vcs 當前虛擬控制臺(vc)的文本內(nèi)容

1 = /dev/vcs1 tty1 的文本內(nèi)容

...

63 = /dev/vcs63 tty63 的文本內(nèi)容

128 = /dev/vcsa 當前虛擬控制臺(vc)的文本/屬性內(nèi)容

129 = /dev/vcsa1 tty1 的文本/屬性內(nèi)容

...

191 = /dev/vcsa63 tty63 的文本/屬性內(nèi)容

7 block 回環(huán)設備(用一個普通的磁盤文件來模擬一個塊設備)

對回環(huán)設備的綁定由 mount(8) 或 losetup(8) 處理

0 = /dev/loop0 第1個回環(huán)設備

1 = /dev/loop1 第2個回環(huán)設備

...

8 block SCSI 磁盤(0-15)

0 = /dev/sda 第1個 SCSI 磁盤(整個磁盤)

16 = /dev/sdb 第2個 SCSI 磁盤(整個磁盤)

32 = /dev/sdc 第3個 SCSI 磁盤(整個磁盤)

...

240 = /dev/sdp 第16個 SCSI 磁盤(整個磁盤)

分區(qū)表示方法如下(以第3個 SCSI 磁盤為例)

33 = /dev/sdc1 第1個分區(qū)

34 = /dev/sdc2 第2個分區(qū)

...

47 = /dev/sdc15 第15個分區(qū)

對于Linux/i386來說,分區(qū)1-4是主分區(qū),5-15是邏輯分區(qū)。

9 block Metadisk(RAID)設備

0 = /dev/md0 第1組 metadisk

1 = /dev/md1 第2組 metadisk

...

metadisk 驅(qū)動用于將同一個文件系統(tǒng)分割到多個物理磁盤上。

10 char 非串口鼠標,各種雜項設備和特性

1 = /dev/psaux PS/2鼠標

131 = /dev/temperature 機器內(nèi)部溫度

134 = /dev/apm_bios APM(高級電源管理) BIOS

135 = /dev/rtc 實時時鐘(Real Time Clock)

144 = /dev/nvram 非易失配置 RAM

162 = /dev/smbus 系統(tǒng)管理總線(System Management Bus)

164 = /dev/ipmo Intel的智能平臺管理(Intelligent Platform Management)接口

173 = /dev/ipmikcs 智能平臺管理(Intelligent Platform Management)接口

175 = /dev/agpgart AGP圖形地址重映射表(Graphics Address Remapping Table)

182 = /dev/perfctr 性能監(jiān)視計數(shù)器

183 = /dev/hwrng 通用硬件隨機數(shù)發(fā)生器

184 = /dev/cpu/microcode CPU微代碼更新接口

186 = /dev/atomicps 進程狀態(tài)數(shù)據(jù)的原子快照

188 = /dev/smbusbios SMBus(系統(tǒng)管理總線) BIOS

200 = /dev/net/tun TAP/TUN 網(wǎng)絡設備(TAP/TUN以軟件的方式實現(xiàn)了網(wǎng)絡設備)

TAP模擬了以太網(wǎng)幀(第二層),TUN模擬了IP包(第三層)。

202 = /dev/emd/ctl 增強型 Metadisk RAID (EMD) 控制器

220 = /dev/mptctl Message passing technology (MPT) control

223 = /dev/input/uinput 用戶層輸入設備驅(qū)動支持

227 = /dev/mcelog X86_64 Machine Check Exception driver

228 = /dev/hpet HPET driver

229 = /dev/fuse Fuse(用戶空間的虛擬文件系統(tǒng))

231 = /dev/snapshot 系統(tǒng)內(nèi)存快照

232 = /dev/kvm 基于內(nèi)核的虛構(gòu)機(基于AMD SVM和Intel VT硬件虛擬技術)

11 block SCSI CD-ROM 設備

0 = /dev/scd0 第1個 SCSI CD-ROM

1 = /dev/scd1 第2個 SCSI CD-ROM

...

13 char 核心輸入設備

32 = /dev/input/mouse0 第1個鼠標

33 = /dev/input/mouse1 第2個鼠標

...

62 = /dev/input/mouse30 第31個鼠標

63 = /dev/input/mice 所有鼠標的統(tǒng)一

64 = /dev/input/event0 第1個事件隊列

65 = /dev/input/event1 第2個事件隊列

...

95 = /dev/input/event1 第32個事件隊列

21 char 通用 SCSI 設備(通常是SCSI光驅(qū))

0 = /dev/sg0 第1個通用 SCSI 設備

1 = /dev/sg1 第2個通用 SCSI 設備

...

29 char 通用幀緩沖(frame buffer)設備

0 = /dev/fb0 第1個幀緩沖設備

1 = /dev/fb1 第2個幀緩沖設備

...

31 = /dev/fb31 第32個幀緩沖設備

30 char iBCS-2 兼容設備

0 = /dev/socksys 套接字訪問接口

1 = /dev/spx SVR3 本地 X 接口

32 = /dev/inet/ip 網(wǎng)絡訪問接口

33 = /dev/inet/icmp

34 = /dev/inet/ggp

35 = /dev/inet/ipip

36 = /dev/inet/tcp

37 = /dev/inet/egp

38 = /dev/inet/pup

39 = /dev/inet/udp

40 = /dev/inet/idp

41 = /dev/inet/rawip

此外,iBCS-2 還需要下面的連接必須存在

/dev/ip -> /dev/inet/ip

/dev/icmp -> /dev/inet/icmp

/dev/ggp -> /dev/inet/ggp

/dev/ipip -> /dev/inet/ipip

/dev/tcp -> /dev/inet/tcp

/dev/egp -> /dev/inet/egp

/dev/pup -> /dev/inet/pup

/dev/udp -> /dev/inet/udp

/dev/idp -> /dev/inet/idp

/dev/rawip -> /dev/inet/rawip

/dev/inet/arp -> /dev/inet/udp

/dev/inet/rip -> /dev/inet/udp

/dev/nfsd -> /dev/socksys

/dev/X0R -> /dev/null

36 char Netlink 支持

0 = /dev/route 路由, 設備更新, kernel to user

3 = /dev/fwmonitor Firewall packet 復制

59 char sf 防火墻模塊

0 = /dev/firewall 與 sf 內(nèi)核模塊通信

65 block SCSI 磁盤(16-31)

0 = /dev/sdq 第17個 SCSI 磁盤(整個磁盤)

16 = /dev/sdr 第18個 SCSI 磁盤(整個磁盤)

32 = /dev/sds 第19個 SCSI 磁盤(整個磁盤)

...

240 = /dev/sdaf 第32個 SCSI 磁盤(整個磁盤)

66 block SCSI 磁盤(32-47)

0 = /dev/sdag 第33個 SCSI 磁盤(整個磁盤)

16 = /dev/sdah 第34個 SCSI 磁盤(整個磁盤)

32 = /dev/sdai 第35個 SCSI 磁盤(整個磁盤)

...

240 = /dev/sdav 第48個 SCSI 磁盤(整個磁盤)

89 char I2C 總線接口

0 = /dev/i2c-0 第1個 I2C 適配器

1 = /dev/i2c-1 第2個 I2C 適配器

...

98 block 用戶模式下的虛擬塊設備(分區(qū)處理方式與 SCSI 磁盤相同)

0 = /dev/ubda 第1個用戶模式塊設備

16 = /dev/udbb 第2個用戶模式塊設備

...

103 block 審計(Audit)設備

0 = /dev/audit 審計(Audit)設備

128-135 char Unix98 PTY master

這些設備不應當存在設備節(jié)點,而應當通過 /dev/ptmx 接口訪問。

136-143 char Unix98 PTY slave

這些設備節(jié)點是自動生成的(伴有適當?shù)臋?quán)限和模式),不能手動創(chuàng)建。

方法是通過使用適當?shù)?mount 選項(通常是:mode=0620,gid=<"tty"組的gid>)

將 devpts 文件系統(tǒng)掛載到 /dev/pts 目錄即可。

0 = /dev/pts/0 第1個 Unix98 PTY slave

1 = /dev/pts/1 第2個 Unix98 PTY slave

...

153 block Enhanced Metadisk RAID (EMD) 存儲單元(分區(qū)處理方式與 SCSI 磁盤相同)

0 = /dev/emd/0 第1個存儲單元

1 = /dev/emd/0p1 第1個存儲單元的第1個分區(qū)

2 = /dev/emd/0p2 第1個存儲單元的第2個分區(qū)

...

15 = /dev/emd/0p15 第1個存儲單元的第15個分區(qū)

16 = /dev/emd/1 第2個存儲單元

32 = /dev/emd/2 第3個存儲單元

...

240 = /dev/emd/15 第16個存儲單元

180 char USB 字符設備

96 = /dev/usb/hiddev0 第1個USB人機界面設備(鼠標/鍵盤/游戲桿/手寫版等人操作計算機的設備)

...

111 = /dev/usb/hiddev15 第16個USB人機界面設備

180 block USB 塊設備(U盤之類)

0 = /dev/uba 第1個USB 塊設備

8 = /dev/ubb 第2個USB 塊設備

16 = /dev/ubc 第3個USB 塊設備

...

192 char 內(nèi)核 profiling 接口

0 = /dev/profile Profiling 控制設備

1 = /dev/profile0 CPU 0 的 Profiling 設備

2 = /dev/profile1 CPU 1 的 Profiling 設備

...

193 char 內(nèi)核事件跟蹤接口

0 = /dev/trace 跟蹤控制設備

1 = /dev/trace0 CPU 0 的跟蹤設備

2 = /dev/trace1 CPU 1 的跟蹤設備

...

195 char Nvidia 圖形設備(比如顯卡)

0 = /dev/nvidia0 第1個 Nvidia 卡

1 = /dev/nvidia1 第2個 Nvidia 卡

...

255 = /dev/nvidiactl Nvidia 卡控制設備

202 char 特定于CPU模式的寄存器(model-specific register,MSR)

0 = /dev/cpu/0/msr CPU 0 的 MSRs

1 = /dev/cpu/1/msr CPU 1 的 MSRs

...

203 char CPU CPUID 信息

0 = /dev/cpu/0/cpuid CPU 0 的 CPUID

1 = /dev/cpu/1/cpuid CPU 1 的 CPUID

...

===================================================================

這部分詳細說明一些應該或可能存在于 /dev 目錄之外的文件。

鏈接最好使用與這里完全相同的格式(絕對路徑或相對路徑)。

究竟是使用硬鏈接(hard)還是軟連接(symbolic)取決于不同的設備。

必須的鏈接

必須在所有的系統(tǒng)上都存在這些連接:

鏈接 目標 鏈接類型 簡要說明

/dev/fd /proc/self/fd symbolic 文件描述府

/dev/stdin fd/0 symbolic 標準輸入文件描述府

/dev/stdout fd/1 symbolic 標準輸出文件描述符

/dev/stderr fd/2 symbolic 標準錯誤文件描述符

/dev/nfsd socksys symbolic 僅為 iBCS-2 所必須

/dev/X0R null symbolic 僅為 iBCS-2 所必須

[注意] /dev/X0R 是 <字母 X>-<數(shù)字 0>-<字母 R>

推薦的鏈接

推薦在所有的系統(tǒng)上都存在這些連接:

鏈接 目標 鏈接類型 簡要說明

/dev/core /proc/kcore symbolic 為了向后兼容

/dev/ramdisk ram0 symbolic 為了向后兼容

/dev/ftape qft0 symbolic 為了向后兼容

/dev/bttv0 video0 symbolic 為了向后兼容

/dev/radio radio0 symbolic 為了向后兼容

/dev/i2o* /dev/i2o/* symbolic 為了向后兼容

/dev/scd? sr? hard 代替 SCSI CD-ROM 的名字

本地定義的鏈接

下面的鏈接很可能需要根據(jù)機器的實際硬件配置創(chuàng)建其中的一部分甚至全部。

這些鏈接僅僅是為了迎合習慣用法,它們既非必須也非推薦。

鏈接 目標 鏈接類型 簡要說明

/dev/mouse mouse port symbolic 當前鼠標

/dev/tape tape device symbolic 當前磁帶

/dev/cdrom CD-ROM device symbolic 當前CD-ROM

/dev/cdwriter CD-writer symbolic 當前CD-writer

/dev/scanner scanner symbolic 當前掃描儀

/dev/modem modem port symbolic 當前調(diào)制解調(diào)器

/dev/root root device symbolic 當前根文件系統(tǒng)所在設備

/dev/swap swap device symbolic 當前swap所在設備

/dev/modem 不應當用于能夠同時支持呼入和呼出的modem,因為往往會導致鎖文件問題。

如果存在 /dev/modem ,那么它應當指向一個恰當?shù)闹?TTY 設備。

對于SCSI設備,

/dev/tape 和 /dev/cdrom 應該分別指向"cooked"設備 /dev/st* 和 /dev/sr* ;

而 /dev/cdwriter 和 /dev/scanner 應當分別指向恰當?shù)?/dev/sg* 。

/dev/mouse 可以指向一個主串行 TTY 設備、一個硬件鼠標、

或者一個對應鼠標驅(qū)動程序的套接字(例如 /dev/gpmdata)。

套接字和管道

持久套接字和命名管道可以存在于 /dev 中。常見的有:

/dev/printer socket lpd 本地套接字

/dev/log socket syslog 本地套接字

/dev/gpmdata socket gpm 鼠標多路復用器(multiplexer)

/dev/gpmctl socket (LFS-LiveCD中出現(xiàn))

/dev/initctl fifo pipe init 監(jiān)聽它并從中獲取信息(用戶與 init 進程交互的通道)

掛載點

以下名稱被保留用于掛載特殊的文件系統(tǒng)。

這些特殊的文件系統(tǒng)只提供內(nèi)核界面而不提供標準的設備節(jié)點。

/dev/pts devpts PTY slave 文件系統(tǒng)

/dev/shm tmpfs 提供對 POSIX 共享內(nèi)存的直接訪問

===================================================================

終端(或TTY)設備是一種特殊的字符設備。終端設備是可以在會話中扮演控制終端角色的任何設備,

包括:虛擬控制臺、串行接口(已廢棄)、偽終端(PTY)。

所有的終端設備共享一個通用的功能集合:line discipline,

它既包含通用的終端 line discipline 也包含SLIP和PPP模式。

所有的終端設備的命名都很相似。這部分內(nèi)容將解釋命名規(guī)則和各種類型的TTY(終端)的使用。

需要注意的是這些命名習慣包含了幾個歷史遺留包袱。

其中的一些是Linux所特有的,另一些則是繼承自其他系統(tǒng),

還有一些反映了Linux在成長過程中拋棄了原來借用自其它系統(tǒng)的一些習慣。

井號(#)在設備名里表示一個無前導零的十進制數(shù)。

虛擬控制臺(Virtual console)和控制臺設備(console device)

虛擬控制臺是在系統(tǒng)視頻監(jiān)視器上全屏顯示的終端。

虛擬控制臺被命名為編號從 /dev/tty1 開始的 /dev/tty# 。

/dev/tty0 是當前虛擬控制臺。

/dev/tty0 用于在不能使用幀緩沖設備(/dev/fb*)的機器上存取系統(tǒng)視頻卡,

注意,不要將 /dev/console 用于此目的。

/dev/console 由內(nèi)核管理,系統(tǒng)消息將被發(fā)送到這里。

單用戶模式下必須允許 login 使用 /dev/console 。

串行接口(已廢棄)

這里所說的"串行接口"是指 RS-232 串行接口和任何模擬這種接口的設備,

不管是在硬件(例如調(diào)制解調(diào)器)還是在軟件(例如ISDN驅(qū)動)中模擬。

在linux中的每一個串行接口都有兩個設備名:

主設備或呼入(callin)設備、交替設備或呼出(callout)設備。

設備類型之間使用字母的大小寫進行區(qū)分。

比如,對于任意字母X,"tty"設備名為 /dev/ttyX# ,而"cu"設備名則為 /dev/cux# 。

由于歷史原因,/dev/ttyS# 和 /dev/ttyC# 分別等價于 /dev/cua# 和 /dev/cub# 。

名稱 /dev/ttyQ# 和 /dev/cuq# 被保留為本地使用。

偽終端(PTY)

偽終端用于創(chuàng)建登陸會話或提供其它功能,

比如通過 TTY line discipline (包括SLIP或者PPP功能)來處理任意的數(shù)據(jù)生成。

每一個 PTY 都有一個master端和一個slave端。按照 System V/Unix98 的 PTY 命名方案,

所有master端共享同一個 /dev/ptmx 設備節(jié)點(打開它內(nèi)核將自動給出一個未分配的PTY),

所有slave端都位于 /dev/pts 目錄下,名為 /dev/pts/# (內(nèi)核會根據(jù)需要自動生成和刪除它們)。

一旦master端被打開,相應的slave設備就可以按照與 TTY 設備完全相同的方式使用。

master設備與slave設備之間通過內(nèi)核進行連接,等價于擁有 TTY 功能的雙向管道(pipe)。

===============================

你可能會很奇怪,為什么沒有 /dev/hda 這樣的設備,難道不常用么?

原因在于從 2.6.19 開始,內(nèi)核引入了新的ATA驅(qū)動,將SATA/IDE硬盤同意使用 /dev/sd? 來表示了,所以 /dev/hd? 就沒有存在的必要了

自動節(jié)點的添加:

自學驅(qū)動以來,一直都是在加載模塊后采用手動創(chuàng)建節(jié)點,雖然這個過程比較簡單,畢竟還是有點麻煩,尤其是在調(diào)試模塊的時候。

#insmod module_name.ko

#mknod /dev/module_name c MAJOR MINOR

#

在2.4里設備文件采用的是devfs,在2.6里已經(jīng)用udev取代devfs,為解決上面那樣手動創(chuàng)建節(jié)點的麻煩,我們可以在程序里加上創(chuàng)建節(jié)點這項,如下:

以字符設備char_dev為例,在驅(qū)動初始化的代碼里調(diào)用class_create為該設備創(chuàng)建一個class,再為每個設備調(diào)用 class_device_create創(chuàng)建對應的設備,這樣的module被加載時,undev daemon就會自動在/dev下創(chuàng)建char_dev設備文件。大概方法如下:

struct class *myclass = class_create(THIS_MODULE, “char_dev”);

class_device_create(myclass, NULL, MKDEV(major_num, 0), NULL, “char_dev”);

當然,在exit函數(shù)中要把創(chuàng)建的class移除:

class_destory(&xxx_dev->cdev);

class_device_desotry(my_class,MKDEV(major_num,0));

下面介紹下函數(shù)class_creat和class_device_creat的原型:

class_create()

-------------------------------------------------

linux-2.6.22/include/linux/device.h

struct class *class_create(struct module *owner, const char *name)

??? class_create - create a struct class structure

??? @owner: pointer to the module that is to "own" this struct class

??? @name: pointer to a string for the name of this class.

在/sys/class/下創(chuàng)建類目錄

class_device_create()

-------------------------------------------------

linux-2.6.22/include/linux/device.h

struct class_device *class_device_creat(struct class??????? *cls,

???????????????????????????????????????? struct class_device *parent,

???????????????????????????????????????? dev_t?????????????? devt,

???????????????????????????????????????? struct device?????? *device,

???????????????????????????????????????? const char????????? *fmt, ...)

??? class_device_create - creates a class device and registers it with sysfs

??? @cls: pointer to the struct class that this device should be registered to.

??? @parent: pointer to the parent struct class_device of this new device, if any.

??? @devt: the dev_t for the char device to be added.

??? @device: a pointer to a struct device that is assiociated with this class device.

??? @fmt: string for the class device's name

void class_destroy(struct class *cls);/*銷毀/sys/class下的類?? */

void class_device_destroy(struct class *cls, dev_t devt);?? /*銷毀一個類設備*/

參數(shù)含義同上

補充:

在Linux2.6中,針對上面的這個問題不同的版本有些修改,使用前要先查看下/.../include/linux/device.h里的函數(shù)聲明,如我用的是Linux2.6.29,里面就沒有class_device_create函數(shù),而直接使用device_create就可以了,而在之前的版本如Linux2.6.15,里面就要用class_device_create函數(shù)文章來源地址http://www.zghlxwxcb.cn/news/detail-834844.html

到了這里,關于嵌入式培訓機構(gòu)四個月實訓課程筆記(完整版)-Linux ARM驅(qū)動編程第五天-ARM Linux編程之設備節(jié)點 (物聯(lián)技術666)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包