linux设备驱动程序这本书怎么阅读

拿到书完全不知道怎么看啊,看完可以写个鼠标驱动吗?

个人认为最好先学学linux kernel 框架及API,驱动写得多了感觉真的很空,linux本身将驱动框架层层规范导致初学看着难,其实就是调用kernel API进行各种ops跳转,互斥控制,通知等,最后怼到HW Reg和IRQ上。(了解rtos驱动就知道操作HW其实很直接,linux驱动各种烦)

    必须有个arm开发板,配套有kernel和datasheet,公版linux看出花来也没用

    学习如何编写ko,编译及insmod

    学习字符驱动的编写cdev,知道sysfs怎么回事,和驱动的关系

    学习如何通过sysfs或 dev下节点与驱动交互

    照着datasheet看一些简单驱动eg. gpio led,uart ... ,

    (其实最简单的是ARM Generic Timer,也没驱动但是一个很直观且能操作并能产生中断的HW,需看armv7或v8手册,提醒如果开发板arm版本过低可能不支持)

    照书上写的方法去仿照写这些驱动

    然后就不停的debug

PS. 保证看完这本书基本驱动编写的概念能建立,写鼠标驱动就想太多了

追问

鼠标驱动这么难?有什么书介绍硬件协议的吗,比如usb、iic、spi之类等等?

温馨提示:内容为网友见解,仅供参考
第1个回答  2021-05-08

「秒懂百科」一分钟读懂《LINUX设备驱动程序》

相似回答