日期:2014-05-16  浏览次数:20604 次

编写Linux设备驱动的技术基础
Linux 设备驱动的学习是一项浩大的工程,读者需要首先掌握以下基础。
1. 编写 Linux 设备驱动要求工程师具有良好的硬件基础,懂得 SRAM、Flash、SDRAM、磁盘的读写方式,UART、I2C、USB 等设备的接口,轮询、中断、DMA 的原理,PCI 总线的工作方式以及 CPU 的内存管理单元(MMU)等。
2.编写 Linux 设备驱动要求工程师具有良好的 C 语言基础,能灵活地运用 C 语言的结构体、指针、函数指针及内存动态申请和释放等。
3.编写 Linux 设备驱动要求工程师具有一定的 Linux 内核基础,虽然并不要求工程师对内核各个部分有深入的研究,但至少要了解设备驱动与内核的接口,尤其是对于块设备、网络设备、Flash 设备、串口设备等复杂设备。
4.编写 Linux 设备驱动要求工程师具有良好的多任务并发控制和同步的基础,因为在设备驱动中会大量使用自旋锁、互斥、信号量、等待队列等并发与同步机制。