Lazy loaded image
🥳嵌入式Linux开发
IIC 驱动专题03 - 设备驱动 at24.c 源码分析
Words 494Read Time 2 min
2025-4-16
2025-4-16
type
date
slug
category
icon
password
 
参考资料
  • Linux内核文档:
    • Documentation\i2c\instantiating-devices.rst
    • Documentation\i2c\writing-clients.rst
  • Linux内核驱动程序示例:
    • drivers\misc\eeprom\at24.c

驱动编写流程

我来解释一下Linux I2C驱动程序的编写流程,以at24.c为例:
  1. 定义驱动基本信息
    1. 定义设备ID匹配表
      1. 定义私有数据结构
        1. 实现probe函数
          1. 实现读写函数
            1. 注册驱动模块
              主要流程说明:
              1. 驱动框架:
                  • 定义i2c_driver结构体
                  • 实现probe/remove等回调函数
                  • 定义设备ID匹配表
              1. 设备操作:
                  • 定义私有数据结构保存设备信息
                  • 实现读写函数处理具体的I2C通信
                  • 使用mutex保护并发访问
              1. 资源管理:
                  • probe中分配资源
                  • remove中释放资源
                  • 使用devm_系列函数自动管理资源
              1. 特色功能:
                  • 支持SMBus和I2C两种传输模式
                  • 支持页写入提高性能
                  • 支持多地址芯片访问
              这个驱动展示了标准Linux I2C驱动的基本框架和最佳实践。编写新的I2C驱动时可以参考这个模式。
               
              上一篇
              模板设计模式:让你的代码结构更清晰
              下一篇
              Guide to Linux System

              Comments
              Loading...