Forgive me if this is a FAQ but I am trying to link my application to
vxworks such that the application will run on bootup.
I have included my startup code in usrConfig.c by defining the macro
USER_APPL_INIT and have defined INCLUDE_USER_APPL. This code compiles
correctly when I rebuild VXWorks. The startup code consists of a call
to taskSpawn to start my own start up code in a routine called
My application is compiled and linked to an object module which I have
linked using the method described in WindRiver's Vxworks course notes,
i.e. in the target makefile I have added it to the MACH_EXTRA
The problem is that the link fails in the following manner.
ldppc -X -N -e _sysInit -Ttext 00100000 \
-o vxWorks dataSegPad.o vxWorks.tmp ctdt.o
vxWorks.tmp: In function `usrRoot':
vxWorks.tmp(.text+0x45d6e): undefined reference to `startTask'
vxWorks.tmp(.text+0x45d72): undefined reference to `startTask'
make.exe: *** [vxWorks] Error 0x1
I also tried removing the MACH_EXTRA declaration and instead placing my
module in the 'Added Modules' section on the BSP configuration dialog.
This gives the same result.
My feeling is that there is a cyclic dependancy here, my object file
links to Vxworks modules (it can't avoid that) and now we are telling
Vxworks to link to my object file. I cannot see a way to avoid this
situation so how does one get around this problem?
I am running Tornado 1.0 on Windows NT4, the target system is a Force
Sent via Deja.com http://www.deja.com/
Before you buy.