高级字符驱动程序操作之休眠(实践篇)

1. scull_pipe.c

 

 

 

2. Makefile

 

 

3. pipe_testr.c 从pipe0读取8个字节

 

 

4. pipe_testw 向pipe0写入24个字节

 

 

5. Makefile

 

 

6. 测试

 

装载驱动模块

sudo insmod ./scull_pipe.ko

 

查看主设备号,假设为251

cat /proc/devices

 

建立设备节点

sudo mknod /dev/pipe0 c 251 0

 

更改权限

sudo chgrp staff /dev/pipe0

sudo chmod 664 /dev/pipe0

 

开启四个终端

 

分别在终端1,2,3 运行三个pipe_testr.o

现在没有数据,全部进入休眠

 

在终端4运行pipe_testw.o

终端4打印

Write 24 bytes to scull

首先运行在终端1的读进程被唤醒 打印

Read 8 bytes from scull
Read "Hello, C" from scull

接着运行在终端2的读进程被唤醒 打印

Read 8 bytes from scull
Read "haracter" from scull

最后运行在终端3的读进程被唤醒 打印

Read 8 bytes from scull
Read " driver!" from scull  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值