linux设备驱动程序,当然就和英语名子driver所表示的意思一样,就是一个下层插口和芯片之间的转换程序,下层插口,对一类设备,例如网路设备来说,是统一的,不管哪些网卡,都支持网路设备的一套插口函数。
而具体各类网卡的不同之处,彰显在,所采用的芯片上,同样发一个网路数据包,不同的网卡须要操作的寄存器定义完全不一样。
所以,驱动开发的第一步,把所开发的设备的下层的设备类型,和下面的芯片指南熟悉了,就成功了50%
常用到的linux设备类型有字符设备,网路设备,储存设备,framebuffer等。
再须要了解的就是总线的知识了,就是弄明白设备芯片是通过哪些方法接入系统的,这样cpu才可以用程序操作到芯片里的寄存器,进而控制设备。
常见的总线有pci,usb,i2c,spi等,其实假如这个设备的功能是集成在cpu上的,也就是和cpu做在一个芯片上的,则不会涉及到这种标准的总线,用cpu数据指南中,指定的地址就可以直接操作设备。
开发设备驱动程序,给芯片厂家开发和给系统集成厂家开发,工作的内容重点不同。
给芯片厂家开发,须要依照芯片的数据指南,从头写一个驱动程序,再和芯片设计工程师一起调试,测试芯片功能没有问题就可以了。
假如给系统集成厂家开发,集成厂家从芯片厂采购芯片,稍稍复杂的芯片linux服务器系统,芯片厂家还会提供demo板,以及事例驱动程序,只须要搞明白,当前的电路板系统设计和demo板有什么细节差异,之后在事例驱动程序基础上做相应的更改就可以了,通常不须要从头写驱动程序。
linux设备驱动程序这个工作要求熟悉linuxkernel方面的插口,例如显存分配linux 设备驱动程序suse linux,中断服务程序插口,bottomhalf插口linux 设备驱动程序,dmacontroller插口等。
设备驱动开发,薪资没有算法开发高,而且由于要从事这个工作,须要的知识储备比通常的下层软件开发多,所以薪水平均也应当比下层软件开发稍稍高些。
本文原创地址://gulass.cn/srljlsbqdcxc.html编辑:刘遄,审核员:暂无