I am designing an application to run on the Si Labs C8051F046 MCU with uVision 3. Yesterday I created a new project, but forgot to include one of the source modules. This produced a line during the link in the Output Window:
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
============================================================ Gary Lynch | To send mail, change no$pam in lynchg@no$pam.com | my domain name to stacoenergy
On 5/10/06 8:16:52; A.W. Neil wrote: > > Why must you ignore them? > > Have you not just proved the folly of ignoring warnings?! > Several reasons:
This interacts with an idiosyncracy of BL51 to make it jump to the (erroneous) conclusion my functions are calling themselves recursively. The linker is not making any erroneus conclusions. It tries to construct a calling tree for your functions, but fails as soon as function pointers come into play since the Linker has absolutely no idea what values the function pointers will have during run-time. It therefore makes the right decision by not considering those functions for overlaying. Don't blame the linker for perfectly expected behavior.
I also find it extremely difficult to review the list of warnings (accurately) in that little slit that passes for an output window. Have you tried resizing the output window ? Works fine for me ...
"Have you tried resizing the output window ? Works fine for me ... " All the Linker messages are saved in the Linker Listing file (the "Map" file). Just as the compiler messages are in the compiler listing files. I think the build window content is also saved to a file - maybe .plg ? You can also copy-&-paste from the output window. With Windows XP, you could probably even get it to read the warnings to you out loud...
With Windows XP, you could probably even get it to read the warnings to you out loud... Doing this at your workplace without headphones would amount to severe Wally-esque behavior.
I think the build window content is also saved to a file - maybe .plg ? Yep. In HTML, no less.