今天调试linux驱动时遇到了一些问题,现记录下来以便以后查阅和与大家分享我的心得。
我们在做linux驱动开发时往往会遇到这样的一个问题,即多个兼容的设备需要一个相同的驱动,此时我们可以复制两份驱动以供两个设备分别使用,但显然这样做是违背软件工程原则的,linux驱动的开发者已经为我们想到了这一点,linux内核的解决方式如下。
1.第一种情况是两个兼容的设备挂接在同一个总线上,如mcp2515和mcp2510,这种情况下linux中是通过platform_driver中的id_table中的name来区分的。
2.第二种情况是两个完全相同的设备,需要挂接在同一个总线上,如两个完全相同的e2prom,这种情况下是通过platform_device中的id来区分的。
Linux驱动开发:设备区分与优化策略
本文探讨了在Linux驱动开发中遇到的问题及解决方案,重点阐述了如何通过平台_driver中的id_table和platform_device中的id来区分兼容设备,以避免冗余代码并遵循软件工程原则。
856

被折叠的 条评论
为什么被折叠?



