韦东山70天驱动笔记(1)

p5、2.1字符设备驱动回顾与数据流程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
驱动到硬件,通过ioremap()函数把无论地址映射到虚拟地址
在这里插入图片描述
五个步骤写驱动程序
在这里插入图片描述

在这里插入图片描述
p6、入口出口细讲
第一个驱动程序
在这里插入图片描述
在这里插入图片描述
如果不想用init_module()这个函数,可以改,如下,
不过下面的注释就需要改成下图所示,这样才能认识这个入口
在这里插入图片描述
_exit()只要在编进内核的时候才有意义,其它时候无意义
在这里插入图片描述
p7、字符设备调用关系实验
按照5步骤写驱动
在这里插入图片描述

`make
sudo insmod hello_drv.ko
cat /proc/devices(查看驱动设备号)

通过设备节点访问

sudo mknod /dev/xyz(name)  c(类型)  241(主设备)  0(次设备)
ls -l /dev/xyz
sudo ./hello_drv_test -r

驱动里面的open并不是必须的

在这里插入图片描述

注意这里把设备节点改成了xyz,和hello没有任何关系
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
成功打开了文件,但是写和读失败
在这里插入图片描述

继续写驱动程序,实现应用层调用
在这里插入图片描述

在这里插入图片描述

make
sudo rmmod hello_drv(先卸载,因为用用下面用make新生成的驱动程序)
sudo insmod hello_drv.ko
dmesg(查看)

在这里插入图片描述

sudo ./hello_drv_test -r
sudo ./hello_drv_test -w  sdfd

在这里插入图片描述
以上,调用的流程就打通了
p8、数据交互
在这里插入图片描述这里的头文件还有其它的,注意,以下没有全部包含
在这里插入图片描述
下面的asm要改成linux,要保护它的顶层文件
在这里插入图片描述
在这里插入图片描述

应用层和驱动层之间用copy_to_user/copy_from_user访问
在这里插入图片描述
先切换到root用户
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值