树莓派驱动认知

驱动认知

在这里插入图片描述

12  之间 发生了什么事情 
因为 linux 一切皆是文件
比如 鼠标 led 设备这些 文件本质 就是存放数据的 并且数据会产生一种结果 产生结果之前会让某些软件/硬件工作。

问题一

如果 open=("/dev/pin5",0777);
open 函数 打开了一个pin5 引脚 但不知道属于哪个硬件 

问题一 引出的新认知

在这里插入图片描述

231 是主设备号  
0 是次设备号 
比如 主设备号:华为 vivo oppo
次设备号 :华为1 华为2 华为3 

1 用户态进入内核态引出的两个概念

用户态的open 函数进入到内核态会触发一次软中断 软中断会发生系统调用
调用sys_open 但 sys_open 不可以直接让open 使用 就是下面讲的虚拟文件系统 和文件系统

2 文件系统 和虚拟文件系统vfs

在这里插入图片描述

比如 root目录存放的是 文件1 文件2 但是文件2不一定是属于root目录的 其他也是 并且它会root目录下的规则 
文件的错开存放的
和 window 的不一样  目录底下是啥 那么全部都是属于他的 而且不会乱跑
 vsf就是对各种文件系统的一个抽象,它对各种文件系统提供了一个通用的接口
 比如 就是 让 open函数 可以用sys_open函数

全部思路

在这里插入图片描述
拿 open 函数来说

1 在 上层的open 进入 内核态 会触发软中断 
2 软中断 会发生 系统调用 调用sys_call
3  sys_call根据设备 找到设备号 sys_open 
4 用一个虚拟文件系统让sys_open 提供给open使用 
5 sys_open 会去调用 底层的 pin4_open 
6 pin4_open 会加载到驱动链表中 
7 最后实现运行效果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值