|
Linux驱动编写据我现在的学习,发现写Linux驱动有两种方式。
第一种是先写Linux的设备树,然后再在内核里写驱动模块,比如利用Linux的platform驱动框架编写SPI接口的屏幕驱动,用make modules编译进内核。
第二种是根据厂商开发好了的系统驱动资源,比如像I2C, UART, SPI, GPIO等等,根据他们在文件系统中的路径,一般在/dev 路径下的某个硬件资源,来像写Linux应用程序一样来编写驱动。比如我现在要写一个SPI接口的屏幕的驱动,我直接对/dev路径下的SPI文件里的内容进行读写操作,CS片选对/dev路径下的GPIO进行读写操作最终也可以完成驱动的编写。
问:这两种方式有什么区别,在工作中每种写驱动的方式都运用到哪种场合?