上一篇介绍了应用程序访问驱动程序的内核实现的具体过程,那么应用程序和驱动程序是如何实现配对的呢?这就是设备号的作用。
首先,建立驱动程序时,我们会在驱动程序中动态或静态的分配主设备号。其中,静态分配在其他驱动已经占用静态设置的设备号的时候容易申请失败,而动态分配有内核进行分配,不会出现这种情况,所以动态分配使用较多。
当分配好设备号时,编译后将驱动安装在开发板内核后,通过cat /proc/devices 查看内核给这个驱动模块分配的设备号,然后通过mknod /dev/设备文件名 c 设备号 次设备号 命令来创建设备文件,此时设备文件已经通过设备号与驱动程序建立了连接。下一步,写应用程序的时候,应用程序会对设备文件进行操作,这样应用程序就与设备文件建立了连接的大桥。
从而实现应用程序与驱动模块的一一对应。