S3C2440驱动简析——I2C驱动(2)

本文深入解析Linux内核中的I2C驱动,主要关注`i2c_dev_init`和`i2c_dev_exit`函数。`i2c_dev_init`涉及字符设备注册、类创建和设备驱动注册;`i2c_dev_exit`则是对应的清理过程。文章详细介绍了这两个函数内部涉及的关键步骤,如`register_chrdev`、`class_create`、`i2c_add_driver`等,以及它们在驱动程序初始化和退出时的作用。
摘要由CSDN通过智能技术生成

     紧接上一篇博文的I2C主要数据结构的介绍,现在就让我们真正地进入I2C驱动的代码里面,领略一下这个稍微复杂点点的驱动。由于代码已经有一定长度,再也不能像之前那样整段copy,然后直接分析了。为了鄙人以后能够更好地翻阅自己的笔记,也为了比我更菜的小菜鸟考虑(应该没有的,呵呵),这次还是采取按照代码逻辑顺序,讲到哪,代码就贴到哪~ go go go~~~

 

     看到i2c-dev.c 600多行的驱动代码,对于一般初学者来说还是够呛的,不过没关系,咱们谨记看驱动程序,第一要务找到入口和出口!__init 和 __exit 代码如下:

 

 

i2c_dev_init :

这个初始函数主要做了三件事。

1.res = register_chrdev(I2C_MAJOR, "i2c", &i2cdev_fops);

  显然,这里注册一个字符设备,并且链接到用户空间的操作函数所在的结构体i2cdev_fops。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值