[Dprglist] gcc compiler/linker question - how to force code at given memory location?
Clayton Timmons
ctimmons at ieee.org
Thu Jan 30 12:56:09 PST 2020
I'm searching for an answer to a simple question. My friend Google tried
to help but so far Google hasn't given me a good answer. I'm hoping some
savvy DPRG member probably has the wisdom I seek.
I'm using a microchip processor writing code in C. The code consists of
several C source files which are compiled into object code then linked
together. Something like this simplified example.
gcc -c foo.c <<< compile C code into object file
gcc -c bar.c <<< compile C code into object file
gcc foo.o bar.o -o foobar.cof <<< link all object files together
The final output is in cof format which is converted to hex format used by
the programmer. There is a map file created by the linker which allows me
to see where all the C functions end up in memory, something like this.
External Symbols in Program Memory (by address):
. . .
0x003b18 _foo
. . .
0x003e1e _bar
My question is - How can I force the linker to put a specific function at
a specific location? Say I want the function bar to start at 0x004000.
There should be some compiler or linker directives to accomplish that.
Any help is appreciated.
-Clay Timmons-
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.dprg.org/pipermail/dprglist-dprg.org/attachments/20200130/99e71270/attachment.html>
More information about the DPRGlist
mailing list