Bjo*_*orn 68 c hardware assembly drivers
我想学习如何编写设备驱动程序,因为我觉得它很有趣.我使用的是Mac OS X Macbook,但我也有一台Ubuntu机器(在Mac Min上运行).我对C非常熟悉,目前正在读这本书.我在网上找到了一些链接,比如Mac Dev Center.我这样做是因为它会很有趣.我认为,由于我编写的软件,硬件的运行会让人感到非常满意.
我想我想要的是一些提示或建议和指导,有没有人知道没有驱动程序的设备列表,或者我可以为已经支持的东西编写驱动程序(更喜欢前者所以我实际上提供价值).什么是开始使用的好设备?我咬的比我咬得多吗?我不怕低级编程或汇编或需要付出任何努力.我真的很喜欢挑战!
jsc*_*ier 35
对于Linux,您可能会考虑购买O'Reilly Linux设备驱动程序书或在线阅读PDF.在我看来,这是关于这个主题的更好的文本之一.
Linux内核模块编程指南是另一个很好的资源.
您可能还想特别在Linux内核上学习一本书.我为此找到了Robert Love的Linux内核开发(第2版)的副本(途中第3版).
And*_*gor 27
编写设备驱动程序可能非常简单,或者几乎可以任意复杂化.例如,我参与了一个项目,我们花了将近六年的时间来解决设备驱动程序中的一个错误.当然,我们在寻找它时清除了许多其他错误......代码得到了极大的改进.该修复程序原来是一个八行补丁,保守地花费了大约一百万美元.
但是,作为一个侧面项目,我在一周内从芯片数据表中写了一个以太网驱动程序,并花了一周的时间来调试它.从那以后就不需要触摸它了.
一般来说,没有办法说出司机会做多少工作; GPU驱动程序可能耗资数亿美元,单个LED的驱动程序最多只需要几个小时的工作时间.
如果您想进行 Linux 设备驱动程序开发,则必须阅读O'Reilly 免费提供的《Linux Device Drivers, Third Edition》一书。
为了找到您可以为其编写驱动程序的不受支持的硬件部分,请在Linux 邮件列表上询问。也许是一些 USB 3.0 设备?;)