linux设备驱动的难点重点

Linux设备驱的学习是一项浩繁的工程

l  编写linux设备驱动要求工程师有非常好的硬件基础,懂得SRAM,FLASH,SDRAM,磁盘的读写方式,UART,IIC,USB等设备的接口以及轮询,中断,DMA原理,PCI总线的工作方式以及CPU的内存管理单元(MMU)等。

l  非常好的C语言基础,能够灵活运用C语言的结构体,指针,函数指针及内存动态申请和释放等。

l  Linux内核基础,虽然并不要求工程师对各个部分由深入研究,至少要明白驱动与内核的接口。尤其是对于块设备,网络设备,flash设备,串口设备等复杂设备,内核定义的驱动体系构架本身就非常复杂。

l  非常好的多任务并发控制和同步基础,因为在驱动中会大量使用自旋锁,互斥,信号量等待队列等并发与同步机制。

你可能感兴趣的:(linux设备驱动的难点重点)