不同芯片上的相同Linux驱动程序
发布时间:2020-12-13 23:52:22 所属栏目:Linux 来源:网络整理
导读:我是 Linux驱动程序开发的新手.我想知道Linux驱动程序在不同芯片上的工作原理.例如,同样的uart驱动程序在allwinner和sitara socs上工作吗?allwinner和sitara socs是否有相同的uart外围设备? 解决方法 基本上如何工作是基于分层概念,如下图所示. 内核源是分
我是
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闪存驱动程序保持不变. 通过这种方法,设备的相同设备驱动程序可以在不同的系统中使用,而不依赖于硬件规范. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |