Linux内核中的I2C驱动分析
4星 · 超过85%的资源 需积分: 10 14 浏览量
更新于2024-11-15
2
收藏 472KB DOC 举报
"i2c源代码情景分析((beta2))"
本文档深入剖析了I2C(Inter-Integrated Circuit)总线的源代码实现,主要关注于i2c-2.9.1包以及针对PXA处理器的i2c适配器补丁。通过对源代码的详细解析,文档旨在揭示I2C核心数据结构之间的关系,以及如何安装、卸载驱动程序,特别是针对PXA255处理器的i2c适配器和LTC3445设备驱动。
第1章介绍了I2C核心数据结构之间的关系,这是理解I2C工作原理的关键。章节涵盖了如何组织和操作这些数据结构,以便有效地管理和通信。
第2章深入到i2c-core.c的初始化过程,包括`i2c_init`和`i2cproc_init`函数。`i2c_init`负责设置全局环境,而`i2cproc_init`则涉及系统日志和调试信息的初始化。
第3章关注于PXA255的i2c适配器驱动程序的安装和卸载。`pxa_i2c`数据结构描述了适配器特性,`i2c_adap_pxa_init`用于初始化适配器,`i2c_add_adapter`和`i2c_del_adapter`分别用于添加和删除适配器。`i2c_adap_pxa_exit`则负责在系统关闭时清理资源。
第4章详述了LTC3445驱动程序的安装和卸载,包括`ltc3445_init`、`i2c_add_driver`、`i2c_probe`、`i2c_check_functionality`等函数。`i2c_smbus_xfer`和`i2c_transfer`处理I2C传输,而`ltc3445_detect_client`和`ltc3445_cleanup`则涉及设备检测和清理工作。`i2c_del_driver`和`ltc3445_detach_client`用于移除驱动和设备。
第5章讲解了与PXA255 i2c适配器相关的底层代码,如`i2c_pxa_reset`、`i2c_pxa_abort`等,它们处理硬件级别的错误和复位。`i2c_pxa_xfer`和`i2c_pxa_do_xfer`管理实际的数据传输,`i2c_pxa_start_message`启动消息传输,`i2c_pxa_handler`、`i2c_pxa_irq_txempty`和`i2c_pxa_irq_rxfull`则处理中断事件。
第6章介绍了i2c-dev的初始化,`i2c_dev_init`和`i2cdev_attach_adapter`是这一部分的核心函数,它们使得用户空间可以访问I2C设备。
第7章探讨了I2C框架提供的设备访问方法,如`i2cdev_open`、`i2cdev_ioctl`、`i2cdev_read`等。这些函数允许应用程序通过标准的文件操作接口进行I2C通信,如`i2c_master_recv`用于读取从设备接收到的数据。
这份文档提供了一个全面的视角,揭示了Linux内核中I2C子系统的内部工作机制,对于开发者理解和调试I2C驱动程序非常有帮助。通过学习这些源代码分析,读者可以更深入地了解I2C协议的实现细节,并能更好地处理与I2C设备的交互。
113 浏览量
2009-07-26 上传
257 浏览量
点击了解资源详情
点击了解资源详情
2008-01-09 上传
108 浏览量
点击了解资源详情
113 浏览量
nice_cchone
- 粉丝: 0
- 资源: 7
最新资源
- 常见网络命令使用!!!
- 用C#实现的电子商务的文档
- proteus7.1+keil8.08
- 《AVR单片机的GCC软件设计》.pdf
- PLC控制电冰箱的灯光大小
- 全国计算机等级考试四级数据库工程师教程 课后答案
- 单片机基础教程-入门级
- 基于索引的SQL语句优化之降龙十八掌
- 如何在局域网安装Redmine(原创)
- 计算机网络答案 谢希仁
- E:\ATA认证复习题\70-228SQL Server 2000企业版的安装、配置和管理模.pdf
- Flex 性能简评:Flex 和 JavaServer Pages 应用程序的比较
- linux下的调试工具-GDB
- 2009软件设计师考试大纲
- ExtJS 最新实用简明教程
- FAT32文件系统中文版