社区
Linux_Kernel
帖子详情
kernel中关于i2c处的问题,大家指教。
unbutun
2008-05-13 05:45:46
the I2C core,
I2C driver,
I2C algorithm ,
I2C chip drivers,
i2c adapter,
i2c client
之间都是什么关系,都是做什么用的?和硬件中哪一部分对应?
...全文
339
18
打赏
收藏
kernel中关于i2c处的问题,大家指教。
the I2C core, I2C driver, I2C algorithm , I2C chip drivers, i2c adapter, i2c client 之间都是什么关系,都是做什么用的?和硬件中哪一部分对应?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
unbutun
2008-05-19
打赏
举报
回复
能先解释下这个吗?
kobject到底是做什么的,为什么会存在这么个东西,他是什么的抽象,他在驱动结构中起什么作用?
好像子系统结构体就代表子系统,driver就代表driver,device就代表device,bus就代表bus一样。
那么kobject到底是做什么的?起什么作用,在机制中为什么会存在它?
谢谢了!!!!!!!!!!!!!!!!!
unbutun
2008-05-16
打赏
举报
回复
能先解释下这个吗?
kobject到底是做什么的,为什么会存在这么个东西,他是什么的抽象,他在驱动结构中起什么作用?
好像子系统结构体就代表子系统,driver就代表driver,device就代表device,bus就代表bus一样。
那么kobject到底是做什么的?起什么作用,在机制中为什么会存在它?
谢谢了!!!!!!!!!!!!!!!!!
pottichu
2008-05-16
打赏
举报
回复
理解书上的东西需要一个过程.
一遍不懂再读二遍,再找些相关资料来看.
有天你会有种豁然开朗的感觉.
别人的支字片语不会比书上说得更清楚,更系统.
unbutun
2008-05-16
打赏
举报
回复
kobject到底是做什么的,为什么会存在这么个东西,他是什么的抽象,他在驱动结构中起什么作用?
好像子系统结构体就代表子系统,driver就代表driver,device就代表device,bus就代表bus一样。
那么kobject到底是做什么的?起什么作用,在机制中为什么会存在它?
unbutun
2008-05-16
打赏
举报
回复
首先感谢大侠这几天的指导。
我看了驱动的代码,看了这个十四章。但是感觉里面的结构体互相之间调用、还有每个结构体都是做什么的也不是很清楚。
请问我要怎么做才能捋清思路呢?
可以的话请回答一下上面的问题。
谢谢了。
可以加分。
unbutun
2008-05-16
打赏
举报
回复
看了那个14章的东西,但还不是很清楚。
存在以下问题:
每个 kset 必须属于一个子系统. 子系统成员关系帮助建立 kset 的位置在层次中, 但是, 更重要的, 子系统的 rwsem 旗标用来串行化对 kset 的内部链表的存取. 这个成员关系由在 struct kset 中的 subsys 指针所表示. 因此, 可以从 kset 的结构找到每个 kset 的包含子系统, 但是却无法直接从子系统结构发现多个包含在子系统中的 kset.
-------------------------------------这个rwsem 旗标----是什么,信号量?怎么串行化的?
有许多其他的 struct device 成员只对设备核心代码感兴趣. 但是, 这些成员值得了解:
struct kobject kobj;
代表这个设备并且连接它到层次中的 kobject. 注意, 作为一个通用的规则, device->kobj->parent 等同于 device->parent->kobj.
--------------------这两个指的是parent还是那个设备?
kobjet kset到底是做什么用的,看了有总线、设备、驱动的结构体,那么kobjet和kset是做什么的?
总线、设备、驱动-----------设备结构体到底有什么用?为什么在设备和驱动内都有kobjet、kset结构体?
unbutun
2008-05-15
打赏
举报
回复
请问驱动程序模型是怎么回事?要看什么书或什么东西才能知道,我看过linux device driver但是好像没有说整体架构的东西,都是module、ioctl、read、write什么的。我知道要写一个驱动程序就是写那些read、ioctl几个函数,实现底层的通信。
不知道我要怎么知道这些整体架构的东西,还有驱动模型?
问题2:请问在oss音频驱动中调用的i2c的函数,和在应用层调用的函数有什么区别,还有我在别的驱动中调用的i2c的函数和本身我写的i2c的read write ioctl有什么区别?
谢谢大侠了。小弟初学,指教了!!!!!!!!!!
o(∩_∩)o...哈哈!
pottichu
2008-05-15
打赏
举报
回复
http://www.deansys.com/doc/ldd3/ch14.html
pottichu
2008-05-14
打赏
举报
回复
给你两个建议
1. 弄清楚 linux 驱动模型
2. 找本单片机的书简单看一下,有点硬件基础,这些东西很快你就明白了。
驱动的作用无非就是读取寄存器中的数据,或者去模仿串行总线的时序。
另外,驱动本身是很简单的东西, 但linux 的驱动模型把它复杂化了,
但正因为有了驱动模型, 驱动变得容易管理,容易分类,有层次感。
unbutun
2008-05-14
打赏
举报
回复
就是想问:从上层我开始想给一个i2c总线上的设备通信开始,我到驱动里找了哪些相关的结构体和设备,然后怎么通过通信法则把消息传出去的.
还有就是在从模式下,我怎么接受到主模式的消息,以及怎么通过接收他的消息做工作的,怎么受控于主机的.
-----------------以上希望从驱动的结构体、驱动的函数,穿一下,谢谢了.
unbutun
2008-05-14
打赏
举报
回复
还有就是i2c的硬件之间通信的整个过程,是怎么走的,搜了一下,没找到这类的.大家是否能够说一下,或者给个链接.
谢谢了.
unbutun
2008-05-14
打赏
举报
回复
上面老兄给的东西我也大概过了一边,但是现在条理、思路还不清。
i2c driver i2c client i2c adapter 这些都是做什么的?对应硬件的哪一部分?i2c client是做什么的,i2c的从设备不是从i2c总线上去找的单片机吗?
i2c驱动的整体结构是什么样的?是怎么和i2c原理联系起来的?也就是说各个结构是怎么对应实际的i2c通信的,是怎么实现i2c整套的东西的,现在看得很乱,弄不清。
-----------------以上的问题是否能够和实际的i2c设备和之间通信原理,还有就是基本的i2c组成这些东西联系起来说一下,感觉现在很模糊
谢谢大家了,解决了问题,可以另开贴给分,谢谢了。
pottichu
2008-05-14
打赏
举报
回复
i2c_client 就代表一个 i2c 从器件.
I2C algorithm 代表一个 板子上的 i2c 主器件.
i2c driver 代表一个驱动程序.
你还想知道什么?
不弄明白 驱动模型,你就继续云里雾里吧!
pottichu
2008-05-14
打赏
举报
回复
Linux I2C核心、总线与设备驱动
http://blog.csdn.net/pottichu/archive/2007/12/29/2003229.aspx
unbutun
2008-05-14
打赏
举报
回复
是否能够解释下我的问题,单片机、寄存器什么的我都看过,我想知道这几个之间关系和怎么和硬件联系起来的,如果知道的话,请指点一下。
我的问题好像也不是很难,大家谁指点下,引引路 。
谢谢了!!!!!!!!!!!!
unbutun
2008-05-14
打赏
举报
回复
I2C chip drivers,
i2c client
这两个呢?
ten bit address mode------------------10位模式是怎么回事?
complete(&adap->dev_released);-----------------?
struct class-----类设备是什么东西,内核的机制吗?
还有i2c device就是i2c设备吗?对应i2c adapter吗?
dxing_1983
2008-05-13
打赏
举报
回复
i2c_driver: BUS可能连接了数个能识别I2C协议的设备. i2c_driver提供对这些设备的控制.
用adapter表示1条I2C BUS. 如果有多个I2C BUS, 用多个adapter数据结构表示.
algorithm: 对I2C BUS的操作算法.
unbutun
2008-05-13
打赏
举报
回复
I2C chip drivers----------------chip的这个是做什么的?
还有i2c device是什么东西,在kernel里?
ten bit address mode------------------10位模式是怎么回事?
complete(&adap->dev_released);-----------------?
struct class-----类设备是什么东西,内核的机制吗?
i2c
_smbus_read_byte ()/
i2c
_smbus_write_byte()/
i2c
_smbus_read_byte_data ()/
i2c
_smbus_write_byte_data
Name
i2c
_smbus_read_byte — SMBus “receive byte” protocol Synopsis s32 fsfunc
i2c
_smbus_read_byte ( const struct
i2c
_client * client); Arguments client Handle to sl
Openwrt环境下
I2C
操作
一、 环境介绍 软件环境:openwrt稳定发行版 barrier_breaker 硬件环境:主控芯片 MT7620n eeprom 24c02 本文主要介绍,在openwrt环境下使用mt7620n芯片内置
i2c
模块操作eeprom 的方法。 二、 添加内核支持 #cd barrier_breaker/ #makemenuconfig
I2C
驱动分析,好文!!
登录 | 注册 小雷的学习空间 用硬件包围软件 最终实现软硬通吃 目录视图摘要视图订阅 Linux
I2C
驱动完全分析(二) 标签: clinuxstructalgorithmtable 2011-05-01 18:17 14323人阅读
I2C
子系统分析
本文以s3c2440的
I2C
子系统为例, 分析其代码实现 本人学习驱动不久, 如有瑕疵纰漏, 欢迎
指教
, 谢谢 从硬件的角度看,
I2C
子系统由总线适配器和挂在总线上的设备组成 因此, 很容易想到, Linux的
I2C
子系统至少要提供: 总线上设备的支持, 以及其驱动 总线适配器的支持, 以及其驱动 1. S3C2440的
I2C
总线作为一个平台设
linux
i2c
驱动开发
网上介绍
i2c
总线的资料比较多,但是
Linux_Kernel
4,468
社区成员
17,459
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章