硬件知识
简单来说,驱动就是编写程序按照我们的逻辑去调用硬件的功能去完成我们的要求。既然要跟硬件打交道,那你就必须精通硬件知识。如果你是电子专业出身的,那这个要求对你来说无足轻重。因为你已经掌握了编写驱动的必要条件之一。如果你不是专业出身,那对不起了,你需要补充一下数字电子学和模拟电子学的知识。数字电子学和模拟电子学的知识对于我们以后调试驱动程序非常重要。因为驱动是软件和硬件的结合,所以在调试驱动的时候,有时候我们需要调试硬件来完成驱动的功能。
C

C语言被称为“神语言”,作为开发嵌入式驱动应用最为广泛的语言,当然是最佳选择。当然,也有人用汇编语言来开发驱动,但是其效率可想而知。现在开发驱动最常用的语言就是C语言。所以C语言是开发驱动的必备条件之一。庆幸的是,我们学计算机的时候,大多数人学的第一门编程语言就是C语言,所以我们已经具备了这个条件。
操作系统知识
驱动程序有两种,一种是没有操作系统的驱动程序,直接用C语言对硬件进行编程。一种是带有操作系统的驱动程序,需要结合操作系统的接口来编写才能正常使用。后者是我们用得最多的驱动程序,就业需求也最多。所以要写驱动程序,首先要掌握操作系统的知识。嵌入式驱动程序多采用Linux系统,所以精通Linux操作系统就成为开发嵌入式驱动程序的必要条件,但不是唯一条件。除了Linux系统外,wince等其他操作系统下的驱动程序也可以开发,但并不是主流。