- 博客(13)
- 资源 (6)
- 收藏
- 关注
原创 OFN鼠标驱动(十一) -- I2C驱动的总结
在分析完drivers\base\文件夹下的内容之后,我们对驱动的基本操作已经有了一个大概的印象,现在,我们再重新复习一遍IIC设备的注册过程,用一个实例来将这条线融会贯通,同样的,用我们熟悉的ds1337为例来说说明,这一章的内容就比较散了,将会跳转在几大文件之间,所以要看明白这一章的内容,那么前面的东西就得先消化消化了。 其实驱动的注册过程,在网上以probe函数的调用过程为关键字做搜
2011-12-22 22:49:22
871
原创 drivers\base文件分析笔记的WORD原始文件打包下载地址
资源地址:http://download.csdn.net/detail/longyue0917/3953384
2011-12-22 00:32:55
680
原创 drivers\base\init.c
前面分析的9个文件,都是为这个文件服务的,这个文件负责调用驱动的初试化代码 //驱动初始化void __init driver_init(void){ //这些初始化主要是几个子系统的注册 devices_init(); //设备初始化(core.c) buses_init();
2011-12-22 00:25:45
754
原创 drivers\base\firmware.c
小结:1、 声明firmware_subsys子系统2、 这个文件也就三个函数,注册,反注册,初始化(直接调用注册函数) @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@函数列表: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
2011-12-22 00:25:02
736
原创 drivers\base\cpu.c
小结: 1、struct sys_device结构体是struct sysdev_class结构体的容器 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@函数列表: int __devinit register_cpu(struct cpu *cpu, int num)CPU注册 struct
2011-12-22 00:24:10
1201
原创 drivers\base\platform.c
小结: 1、通过文件名可以看出,这个文件是和平台有关的函数2、声明了结构体struct platform_object,作为platform_device平台设备的载体 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@函数列表: @@@@@ 平台资源的操作模块struct resource
2011-12-22 00:23:31
2824
原创 drivers\base\class.c
小结: 这个文件中,声明了类子系统class_subsys,作为所有类kobject的kset声明了class_obj_subsys子系统,作为所有类设备kobject的kset类设备class_device的父类是class,或则说,class是一个容器,里面包含了很多class_device @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
2011-12-18 10:24:11
989
原创 drivers\base\driver.c
小结: 本文件主要是负责驱动的操作 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@函数列表: int driver_for_each_device(struct device_driver * drv, struct device * start, void * data,
2011-12-18 10:23:14
1041
原创 drivers\base\dd.c
小结: 文件的一开始就指出了这个文件的作用:The core device/driver interactions 在阅读代码之前,建议先看看http://bbs.chinaunix.net/thread-2010492-1-1.html首先要明确一个概念:一个设备只能对应一个驱动,一个驱动可以挂上很多设备,所以驱动有一个链表,上面挂着支持的设备: 这个文件的代
2011-12-18 10:22:36
1622
原创 drivers\base\bus.c
小结: 1、热插拔模块:这个模块的函数主要实现的是驱动和设备的绑定,解除,以及驱动的自动探测等功能 2、看本代码前最好先看一次/lib/klist.c,否则代码中关于klist和node的操作会把你绕晕 3、bus的模型:Ø 系统一启动就会自动执行buses_init来注册总线子系统(bus_subsys),这个子系统设置了总线的过滤,show,st
2011-12-18 10:16:44
1582
原创 drivers\base\sys.c
小结: 从sysdev_shutdown函数的实现,我们可以大概的分析一下驱动的层次模式如下:1、最顶层的是system_subsys,所有的cls都挂载在他的链表中2、每一个cls有一个驱动链表,这个驱动链表又可以按sysdev进行一个分组,但是分组只是为了管理方便,驱动还是挂载在cls下的。3、分组虽然只是管理,但是驱动的一些函数执行,比如shutdown,resume等,
2011-12-18 10:15:26
1906
原创 drivers\base\core.c
文件小结:读完这个文件的代码,其实这个文件实现的最关键的代码就是device_add函数,这个函数之前的所有函数都是为这个函数服务的。而这个函数之后的函数则很简单,基本和这个函数互相映衬了。而device_add函数在后面分析平台设备的时候,平台设备的添加platform_device_add函数则主要调用了该函数 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
2011-12-18 10:14:23
1501
原创 \lib\klist.c
小结: 下面这个图应该能说明全部问题 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@函数列表: void klist_init初始化klist,主要操作是挂空k->k_list,初始化k_lock锁,挂上get和put函数 void klist_add_head(struct klist_node
2011-12-11 15:25:30
1431
ffmpeg1.2 pcm编码mp3,h264+mp4合并分解配置
2015-07-01
STM32学习笔记(SD/FATFS/GUI/UCOS)
2011-08-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人