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 打赏 收藏 转发到动态 举报
写回复
用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-----类设备是什么东西,内核的机制吗?

4,468

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧