Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1749380
  • 博文数量: 143
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1462
  • 用 户 组: 普通用户
  • 注册时间: 2016-08-23 11:14
文章分类

全部博文(143)

文章存档

2022年(3)

2021年(13)

2020年(21)

2019年(8)

2018年(28)

2017年(7)

2016年(63)

我的朋友

分类: 嵌入式

2016-09-03 14:13:39

摘要:一般的子系统架构都被划分为3层:核心层、总线层、设备层。具体的代码实现,请参考具体的子系统架构和实现,这里仅仅笼统的小结一下,总线驱动和设备驱动的区别和关系,使开发人员有有最起码的认识。
总线驱动和设备驱动的关系?
  总线驱动:在linux驱动架构中,几乎不需要驱动开发人员再添加bus,因为linux内核几乎集成所有总线bus,如usb、pci、i2c等等,并且总线bus中的(与特定硬件相关的代码)已由芯片提供商编写完成。例如TI davinci平台i2c总线bus与硬件相关的代码在内核目录/drivers/i2c/buses下的i2c-davinci.c源文件中;而三星的s3c-2440平台i2c总线bus为/drivers/i2c/buses/i2c-s3c2410.c。
  设备驱动:与特定设备相关的就需要驱动工程师来实现了。
  两者关系:如拿i2c来说,linux内核和芯片提供商已经为我们的驱动程序提供了i2c驱动的框架,以及框架底层与硬件相关的代码的实现。一般情况下,对驱动开发人员来讲,剩下的就是针对挂载在i2c两线上的i2c设备,编写具体的设备驱动了,这里的设备是指soc外部挂载的设备,并不包含集成在soc内部的设备,如i2c控制器,反而集成在soc内部设备的驱动可以理解为总线驱动。
阅读(2705) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~