android分层学习笔记(五)

在android系统中,以上几个小节文章中,把它的分层做了一些简单的描述,接下就是内核驱动相关的内容。这是一个自由的世界,当然很复杂。也正是因为自由,才可以构建不同的操作系统世界,android是其中之一。不管android是不是传统意义上的linux上的操作系统,它毕竟实现了一些很有用的东西。

     对于内核这里不想详细展开,毕竟自己的功底也有限。单说一些简单的驱动。事实上,自己所接触的驱动颇为简单,无外乎管脚的控制。下面以一个简单char驱动来说明android底层的东西,其实就是linux驱动内容:

 

对于驱动开发,那么肯定是要看“ Linux 设备驱动程序第三版 2.6 ”( LDDP )这本书了。目前已经是 2.6 版本了,有中文版本。

       看完这本书,再看以下例子,你会觉得非常简单。不看那本书,按照以下例子,当然也可以写一个简单的驱动程序,需要注意的下面的例子是字符驱动。

       linux 下驱动有一个框架,一般来说完成以下几个函数就可以了。

xxx_read(struct file *filp, char __user *buff, size_t count, loff_t *offp)

xxx_write(struct file *filp, const char __user *buff, size_t count, loff_t *offp)

xxx_open(struct inode *inode, struct file *filp)

xxx_release(struct inode *inode, struct file *filp)

xxx_ioctl(struct inode *inode, struct file *file,

                                   unsigned int cmd, unsigned long arg)

static int __init xxx_init(void)

static void __exit xxx_exit(void)

 

module_init(xxx_init);

module_exit(xxx_exit);

 

       实际应用中,字符驱动 write/read 函数很少用到。一般也可以不实现,可以由 ioctl 函数来实现。

       驱动与应用程序接口函数对应,看驱动函数的名字就知道了。

       xxx_read  <---> read

xxx_write  <---> write

xxx_open  <---> open

xxx_release  <---> close

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值