驱动 内核 程序

驱动操作硬件,程序操作驱动。。驱动就是抽象出的统一接口,每种硬件实现自己的驱动。


最开计算机没有驱动,程序直接串口,io,底层操作硬件。  ,但是要,a打印机,换成b打印机呢,由于硬件设备参数不一致,难道要重新修改,编译系统代码?就抽象出驱动接口,每种硬件实现自己的访问代码。。。驱动就是一个软件,访问硬件的软件。驱动就是统一的一个接口,,,这样,更换设备时候,程序只要安装相应驱动,因为驱动的访问接口是一致的,所以,不用重新编写代码,更换实现的驱动代码


驱动只是用于外部设备,是需要更换和不固定的,所以要不同的操作程序。 固定的直接写死了就行了。直接操作就可以的。不用分层,分层是为了,同样代码可以调用不同的硬件。


简言之,,驱动就是针对某种型号硬件,实现了统一抽象接口的函数代码。 驱动实现了分层的概念。。底层向上层提供统一接口,自己实现这个接口(针对特定型号硬件,返回接口定义的要求)

jni其实就是c函数库,也是一个开发环境。。就是指可以被java调用的c库,  应用操作驱动就可以操作硬件,驱动也就是函数,驱动如何与硬件交互呢?硬件在主机内存中有个映射内存,驱动程序直接操作这个内存既可以操作硬件。


只有安装了驱动,才能在系统dev文件夹中发现设备。


理论上讲,Android框架中的c库是linux应用层,这个层次是操作驱动函数的。

遍历dev的设备,找到gps设备,分析jni层既可以了,每一层就是实现一些函数。


硬件插入主机,会被系统检测到,会在内存中建立io映射,会提示安装驱动。只有驱动才能操作映射到主机内存的硬件内存,可以被应用程序使用,

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值