驱动进阶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