Topic : LX51 / Reference Map and Overlays

Forum : 8051

Original Post
Post Information Post
January 8, 2008 - 6:22am
Guest

I have a small-model application which uses indirect calls. LX51 can't map the call tree through these and so doesn't overlay.

The first question would why LX51 can't trace the calls. Or, to turn the question around, how does the linker trace indirect calls? The call structure is something like:

A function table:

(const code * const code funcList[])(void)
{
funcA(),
funcB()
etc
};

is embedded in a struct

const code StructA =
{
funcList,
etc
};

which is called via a library function

main()
{
lib_func(&StructA)
}

So there are a least 2 levels of indirection. The indirection also proceeds via a library call. So maybe that's why LX51 can't parse it.

The 2nd question concerns the Reference Map. When I add a call reference "OL(calling_segment ! called_segment)" to the linker command line, the reference doesn't show up in the map file. Is this correct? Did LX51 actually use the directive but doesn't display the link?

regards Steven Pruzina