Quote:
Originally Posted by byteit101
I am having an extremely odd issue: If I compile the C++ ZomB sources to an out file, ftp it to the cRIO as ZomB.out, and add it to startupdlls, using DBPacket mode will prevent IsDisabled() (and presumably IsEnabled()) from changing, and only Disabled will execute. On the other hand, if I take the exact same source files, and compile them with the main file, making one out file, everything works! Source files attached.
|
This sounds like a symbol-name collision in the ZomB code. VxWorks uses a dynamic loading mechanism wherein symbols may be loaded multiple times into the symbol table from multiple applications. When a symbol is searched, it takes the first symbol in the table that is encountered. However, the linker will resolve to potentially a different symbol by the same name. Hence, the linked symbol is different (at a different location in memory) than the "loaded" symbol.
So, I'd look for a symbol name clash between the two images. You can use the "nm-ppc" facility from the DOS command line or the
lkup "symbolname" facility from the VxWorks shell (the RS-232 terminal or the "host shell" -- the "->i" button on the menu bar).
HTH,
Mike