阅读:1936回复:7
vxworks下驱动的初始化例程
在vxworks下编写驱动程序时,会有一个初始化例程,这个例程是不是应该有一个明确的名字,否则怎么知道执行那个例程。例如,linux下是init_module()。
本人感觉vxworks下的驱动的思路与linux下驱动的思路很像。 |
|
|
沙发#
发布于:2003-08-06 15:44
应该没有这样的例程,因为在vxworks中,所有的函数都是可以在shell下执行的。驱动程序是被编译成.o文件,然后被包含到vxworks中的。而驱动的执行是由vxworks的初始化程序调用的。实际上什么程序都可以被vxworks的初始化程序调用,你只要修改一下syslib.c文件,把你的函数调用加在里面适当的地方就行了。
|
|
|
板凳#
发布于:2003-08-06 16:53
应该没有这样的例程,因为在vxworks中,所有的函数都是可以在shell下执行的。驱动程序是被编译成.o文件,然后被包含到vxworks中的。而驱动的执行是由vxworks的初始化程序调用的。实际上什么程序都可以被vxworks的初始化程序调用,你只要修改一下syslib.c文件,把你的函数调用加在里面适当的地方就行了。 谢谢你,沙漠之鹰;沙漠里的鹰应该是高傲而孤独的;虽然还是不太清楚,但是有了一些理解。我是不是可以这样理解,我可以将我要初始化的内容放到一个函数(或叫例程)里,这个函数位于syslib.c中,在这个例程里进行初始化,例如,调用iosDrvInstall(),来建立用户调用函数的驱动接口。 谢谢,以后还请多支持! |
|
|
地板#
发布于:2003-08-06 17:13
还有一个问题:如何将修改好的syslib.c加入到内核。是不是将其做成模块,即syslib.o文件,将上一次加入的syslib.o卸载,将修改后的syslib.o载入。
我又按linux的思路来考虑了。不好意思,vxworks总共才看了一个星期,很多概念还没有建立。 |
|
|
地下室#
发布于:2003-08-06 21:45
再问一下,是不是一个驱动就有一个syslib.c文件!
|
|
|
5楼#
发布于:2003-08-09 08:41
按照我的理解,应该不是。
我编写驱动函数地时候,从来没有考虑过这些东西。首先将物理驱动编写好,所谓的物理驱动就是和硬件直接打交道的那种。然后根据物理类型,将它和相应的函数(例程)绑定,例如:该设备是块设备,就调用块设备的例程,在例程中用回调函数调用你的驱动就万事OK了。 |
|
|
6楼#
发布于:2003-08-11 17:28
按照我的理解,应该不是。 我在编程向导上看到需使用iosdrvinstall和iosdevadd将驱动和设备添加到I/O系统,请问seven这两个函数在那里调用? |
|
|
7楼#
发布于:2003-08-15 08:42
在BSP或驱动程序里注册。具体可参看“20分请教驱动与设备的注册”这个论题。也可以请教“沙漠之鹰”。
|
|
|