ove*_*ord 3 linux linux-device-driver linux-kernel
我是Linux驱动程序开发的新手.我想知道Linux驱动程序在不同芯片上的工作原理.例如,同样的uart驱动程序在allwinner和sitara socs上工作吗?allwinner和sitara socs是否有相同的uart外围设备?
基本上如何工作是基于分层概念,如下图所示.
内核源是分层的,因此我们不必为每个系统反复写入它并增加其可用性.
这背后的方法是,架构师在底层依赖代码,然后是总线驱动程序层(SPI,I2C等),然后是适配器或设备驱动程序.
因此,如果一块电路板使用公司A的NAND闪存通过SPI或任何类似的接口,我们可以在任何给定电路板上使用相同的设备驱动程序A-NAND Flash,无论SPI存在什么,但只需要关注SPI总线驱动程序应作为平台驱动程序存在.
在探测时,SPI将通过NAND Flash的地址访问设备驱动程序.这里SPI驱动程序知道如何与SPI设备进行通信,NAND闪存驱动程序继续告诉SPI驱动程序要转移到NAND闪存,SPI负责如何传输.在此SPI平台驱动程序可能因不同平台而异,但NAND闪存驱动程序保持不变.
通过这种方法,设备的相同设备驱动程序可以在不同的系统中使用,而不依赖于硬件规范.
| 归档时间: |
|
| 查看次数: |
202 次 |
| 最近记录: |