平时一般都使用字符设备框架来编写简单的IO读写驱动,如果遇到复杂的总线设备时, 仅有字符设备框架是应付不过来的,复用性也很难保证,不符合linux的设计思想。比如,SPI总线挂载了多个设备时,这些设备的驱动实现就需要用到驱动分离的思想,为此linux内核提供了platform机制
一,驱动分离思想:linux内核分离思想
1,描述
我们点亮LED实验中的驱动,到底是IO驱动还是LED的驱动呢?暂时结合起来看作是IO_LED驱动,这时候又用到按键设备,又有了IO_KEY驱动, 要使用蜂鸣器,就会出现IO_BUZZER驱动,每多一个设备,就会多一个IO_XXX驱动。这些IO_XXX驱动中,IO的部分几乎是一样的,为了保证代码的简洁,把IO的部分单独拎出来,写成一个IO驱动,然后设备的驱动就只剩下设备自身的内容,只需要调用IO驱动中的接口即可。
linux的一大卖点是方便移植,现在需要在其他的硬件平台上运行使用返些设备驱动又会发成什么情况呢。不同厂家SOC上的GPIO底层的实现都有所差别,那每出现一个新的SOC&#