1、VxWorks设备驱动结构
首先在终端输入iosFdShow,此命令用来显示已经打开的设备信息。
- fd 是设备描述符,open函数返回以后供read, write等函数使用。
- name 设备的名字。
- drv 对应的驱动程序索引。
在终端输入 devs:
- drv 对应上一幅图中的drv。
- name 设备名称。
在终端输入iosDrvShow
可以看到,该表通过drv索引到7个函数。
以上就是vxworks设备驱动程序的三张表。这三张表是怎么生成的呢?首先我们来看一下驱动创建的过程:
这里要用到两个函数iosDrvInstall和iosDevAdd。在vxworks的bsp文件中执行iosDrvInstall,会返回一个drv,这个drv就是上面三张表中的drv。也就是说,每次向内核添加一个驱动时,内核就会返回一个设备驱动的索引。
在来看一下 iosDevAdd (DEV_HDR * pDevHdr, const char * name, int drvnum)函数。调用该函数需要传入三个参数,drvnum是iosDrvInstall返回的,name就是设备的名字。重点来分析下DEV_HDR * pDevHdr,该结构用来创建设备列表。该结构在