内核中I2C体系结构-最强学习笔记!

内核中I2C体系结构-最强学习笔记!

ID:39569709

大小:899.00 KB

页数:31页

时间:2019-07-06

内核中I2C体系结构-最强学习笔记!_第1页
内核中I2C体系结构-最强学习笔记!_第2页
内核中I2C体系结构-最强学习笔记!_第3页
内核中I2C体系结构-最强学习笔记!_第4页
内核中I2C体系结构-最强学习笔记!_第5页
资源描述:

《内核中I2C体系结构-最强学习笔记!》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、内核中I2C体系结构1.总体框架21.1I2C体系结构总体框图:21.2组成部分:21.3重要文件:31.4重要函数接口与结构体3结构体:3函数:3各结构体的作用与它们之间的关系31.5i2c子系统的初始化函数的执行先后顺序42.I2C核心42.1i2c_init()函数42.1.1i2c总线的注册52.1.2i2c驱动注册62.1.3i2c_init()函数总结63.总线驱动73.1I2Cplatform_device初始化---smdk2440_machine_init()73.1.1s3c_i2c_set_platdata83.1.2i2c_register_board_inf

2、o93.1.3platform_add_devices103.2I2Cplatform_drive适配器驱动初始化---i2c_adap_s3c_init()103.3platform_bus总线113.4总线设备和总线驱动初始化总结:113.5probe函数——adapter_device和client_device的注册12总结164,设备驱动174.1i2c_dev_init()174.1.1register_chardev174.1.2i2c_add_drive注册i2c_driver(i2cdev_driver)18总结i2c_dev_init():205,i2c子系统通信

3、方法205.1open设备/dev/i2c-0205.2write215.3i2cdev_ioctl275.2.1I2C_SLAVE/I2C_SLAVE_FORCE275.2.2I2C_RDWR276,I2C子系统总结:29附录:30说明:内核版本:2.6.32I2C设备:E2PROM(at24c02)/************************************************跳过此内容不影响整体框架学习************************************************/(标号)上下文相互提到1.总体框架1.1I2C体系结构总体

4、框图:  从i2c驱动架构图中可以看出,linux内核对i2c架构抽象了一个叫核心层core的中间件,它分离了设备驱动devicedriver和硬件控制的实现细节(如操作i2c的寄存器),core层不但为上面的设备驱动提供封装后的内核注册函数,而且还为小面的硬件事件提供注册接口(也就是i2c总线注册接口),可以说core层起到了承上启下的作用。1.2组成部分:Linux的I2C体系结构分为3个组成部分:I2C设备驱动:提供策略,定义描述具体设备的i2c_client和可能的私有数据结构。是对I2C硬件体系结构中设备端的实现,设备一般挂接在受CPU控制的I2C适配器上,通过I2C适配器

5、与CPU交换数据。主要数据结构:i2c_driver,i2c_client  I2C框架层:i2c.h和i2c-core.c为其主体框架代码,提供了核心数据结构的定义、i2c适配器驱动和设备驱动的注册、注销管理等;i2c-dev.c用于创建i2c适配器的/dev/i2c-%d设备节点,提供i2c设备的用户空间访问方法等。I2C总线驱动:提供硬件操作能力。i2c/busses/目录下,如i2c-msm.c。描述i2c_adapter数据结构及其具体总线通信,,适配器可由CPU控制,甚至可以直接集成在CPU内部。I2C控制驱动(总线驱动)在芯片(S3C2410)生产出来的时候生产厂商就已

6、经写好了,且永远不变(1类芯片对应1种控制器驱动,控制器驱动就是去操作各种寄存器的值,实现标准I2C时序)1.3重要文件:i2c-core.c实现I2C核心功能以及/proc/bus/i2c*接口。 i2c-dev.c通用设备驱动。创建i2c适配器的/dev/i2c-%d设备节点(MAJOR=89,MINOR=0-255)每一个I2C适配器都被分配一个client。  Busses包含I2C总线的驱动,如S3C2410,S3C2440的控制器驱动i2c-s3c2410.cAlgos实现I2C总线适配器的algorithm.1.4重要函数接口与结构体结构体:Structi2c_adap

7、ter//描述一个i2c控制器Structi2c_driver//描述一个i2c设备驱动Structi2c_client//描述一个i2c设备(e2prom)Structi2c_msg//描述一个i2c消息结构体structi2c_algorithm//描述一个i2c算法structbus_typei2c_bus_type//用于管理的i2c_bus总线structs3c24xx_i2ci2c//i2c_adapters的algo_data类似私有信息。封

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。