平台总线

平台总线

真实的计算机系统中,通常各种总线的代码都编写好了,一般不需要我们去创建,比如i2c,pci,usb这些总线,但是在嵌入式领域,有很多的外设都是直接连接到cpu的前端总线上的。
平台总线_第1张图片
平台总线_第2张图片
pc中多数外设都没有直接连到cpu的前端总线上
但是在嵌入式领域,有很多简单的外设是直接连到cpu的(前端)总线上的。
为了表示这种和cpu直接相连的前端总线,Linux内核中发明了一种虚拟总线称为平台总线。
所以在嵌入式领域,很多的外设都是连接到平台总线上的,因此需要编写平台驱动。
所以经常要编写的简单外设驱动,都是平台驱动。
平台总线已经编写好了,我们需要编写平台驱动和平台总线。

如何编写平台设备和平台驱动

内核中用struct platform_device来表示平台设备,他是从struct device继承来的
所以当我们添加注册了平台设备后,在/sys是能看到对应的目录的。
内核中用struct platform_driver来表示平台驱动,他是从struct device_driver继承来的。
所以当我们添加注册了平台驱动后,在/sys是能看到对应的目录的。
平台总线已经编写好了,他要负责匹配平台设备和平台驱动的匹配工作。
以前的原始驱动是将设备的硬件信息编码到驱动中,这样一旦硬件信息有变,就需要修改驱动。要将设备和驱动分离,尽量让驱动和硬件无关。

你可能感兴趣的:(驱动)