高階字元驅動程式操作之poll(實踐篇)

2021-05-23 23:44:55 字數 856 閱讀 2171

1. scull.h 驅動程式由scullpipe改過來的

2. poll.c

3. makefile

4. poll_testw.c 帶引數,0表示開啟第一裝置,1表示開啟第二個裝置

5. poll_testr.c

6. makefile

7. 開始測試

裝載驅動程式

sudo insmod ./poll.ko

檢視主裝置號,這裡假設為251

cat /proc/devices

建立裝置節點

sudo mknod /dev/poll_pipe0 c 251 0

sudo mknod /dev/poll_pipe1 c 251 1

更改許可權

sudo chgrp staff /dev/poll_pipe[0-1]

sudo chmod 664 /dev/poll_pipe[0-1]

在第乙個終端開啟讀程式,程式阻塞在poll函式

sudo ./poll_testr.o

在第二個終端開啟帶引數為0的寫程式

sudo ./poll_testw.o 0

結果:第二個終端列印:write 24 bytes to polltest

第乙個終端列印:read hello, character driver! from polltest0

接著在第二個終端開啟引數為1的寫程式

sudo ./poll_testw.o 1

結果:第二個終端列印:write 24 bytes to polltest

第乙個終端列印:read hello, character driver! from polltest1

字元裝置驅動程式之按鍵 poll機制

本節裡我們在按鍵中斷機制的基礎上新增了poll機制來優化程式 我們知道,應用程式中的open read write函式會呼叫核心裡的sys open sys read sys write函式,而核心裡的這些函式又會對應到驅動程式裡的.open read write函式。我們的poll機制也不例外,使...

linux 驅動程式 高階字元驅動程式

ioctl方法 驅動程式的原型實現 int ioctl struct inode inode,struct file filp,unsigned int cmd,unsigned long arg ioctl 命令選擇 位段結構 number direction ioc read ioc write...

poll驅動程式示例

1 驅動 include include include include include include include include include define queue count 256 int readqcount 0 int readqhead 0 int readqtail 0 c...