驱动进阶1

 在写简单的字符设备驱动的时候以上内容正是我们编码的思路

但实际设备驱动开发的工作中驱动程序是分层的,(软件分层的思想)

 

 linux2.6版本以后建立了设备模型,驱动就越来越采用平台设备驱动机制实现

内核引入程序框架思想:代码的可重用,可维护,可伸缩。

 内核采用分层架构:(总线设备驱动)也就是平台设备驱动

 

 

 

 

 

 查看arch/arm/plat-samsung/Dev-i2c0.c中的代码,可以知道:

 里面包含的内容有

 

 

在arch/arm/plat-samsuang/mach-s3c2440/mach-smdk2440.c,其中包含的内容有

其中_initdata函数的功能是设置设备的初始化参数,比方说LCD设备的屏幕大小,类型等等。

smdk2440_machine_init函数的作用是添加设备,所以移植驱动的时候需要在这里加上内容 ,例如;


在Drivers/i2c/ic-core.h (核心层)

在Drivers/i2c/i2c-core.c  (核心层)

在Drivers/i2c-dev.c (底层)

在Drivers/boardinfo.c  (底层,板极信息一般代表的是内容)

在Drivers/buses/下是具体设备的驱动  例如:i2c-gpio.c

 

 


 当然这个驱动很简单啦,呵呵。

 

 


    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/God-boy1/p/3708108.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值