熟悉处理器的性能 如:处理器的体系结构、汇编语言、工作模式、异常处理等。
掌握驱动目标硬件的工作原理和通讯协议 如:串口控制器、显卡控制器、硬件编解码、存储卡控制器、I2C通讯、SPI通讯、USB通讯、SDIO通讯、I2S通讯、PCI通讯等。
编写驱动的前提就是要了解设备的操作方法。
掌握硬件的控制方法 如:轮询、中断、DMA
良好的GNU C语言编程基础
良好的LInux操作系统概念
掌握Linux内核中设备驱动的编写接口
字符设备的cdev,块设备的gendisk,网络设备的net_device,以及基于这些接口的framebuffer设备的fb_info、tmd设备的mtd_info、usb设备的usb_driver、mmc设备的mmc_host等。