Go to Post you know you're going to meet someone important, so you put on your robotics team shirt. - NorviewsVeteran [more]
Home
Go Back   Chief Delphi > Technical > Programming > C/C++
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
 
 
Thread Tools Rate Thread Display Modes
Prev Previous Post   Next Post Next
  #4   Spotlight this post!  
Unread 01-01-2011, 20:15
taichichuan's Avatar
taichichuan taichichuan is offline
Software Mentor
AKA: Mike Anderson
FRC #0116 (Epsilon Delta)
Team Role: Mentor
 
Join Date: Feb 2010
Rookie Year: 2010
Location: Herndon, VA
Posts: 328
taichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud of
Send a message via AIM to taichichuan
Re: oddest linking issue

OK. I've got my Workbench running in front of me now. Go to workbench and select Project->Open Workbench Development Shell. This may present you with a couple of options ("Wind River Workbench 3.0" and "Wind River VxWorks 6.3"). Select the Workbench 3.0 option and you'll get a DOS command box.

Next execute: "wrenv -p vxworks-6.3". This sets up your search path so you can run the GNU tools from the command line. In fact, via makefiles, you could compiler your code from here as well, but I digress.

CD to the location where your code was compiled. E.g., for a program called SimpleTemplate, the directory would be something like:

c:\windriver\workspace\SimpleTemplate\PPC603gnu\Si mpleTemplate\Debug\

And the program of interest would be SimpleTemplate.out.

Next, run "nmppc SimpleTemplate.out | less". Hopefully, your WRS environment has "less" in the search path. The output of this program is a list of all of the symbols in the program. You're looking for the "IsEnabled" and "IsDisabled" symbols. You can search for the symbol using the "/ IsDisabled" command. Look here: http://sourceware.org/binutils/docs/binutils/nm.html for more info on nm.

My quick look shows these symbols as "weak" symbols. This means that if they're linked with a defined version (as would be the case of linking with the main code), then the main code's symbol would take precedence. On the other hand, if the object is loaded during the boot sequence, then there will be two versions of the symbol. One from the ZomB code and one from the main WPILib.

So, what needs to be done is to ensure that the ZomB code uses the WPILib versions of those symbols. This is typically done by making the ZomB reference an "external" reference via the "extern" keyword and making sure that the WPILib version of the symbol is loaded into memory before the ZomB code is loaded. This can be dome by simply changing the order in which the code is loaded.

HTH,

Mike
Reply With Quote
 


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
The oddest error code_lacky Programming 12 30-01-2008 03:01
LINKING ERRORS!!! AHepperla Programming 4 19-01-2008 10:00
linking error Turdmoe Technical Discussion 2 27-01-2007 19:01
Error Linking for '05 RC Jon236 Programming 2 12-02-2006 14:30
A linking problem T Shap Programming 6 15-01-2006 00:23


All times are GMT -5. The time now is 13:37.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi