https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104692
Bug ID: 104692
Summary: Constant data at fixed address
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: henrique.coser at tex dot com.br
Target Milestone: ---
Hello,
I need a help. I'm trying to solve a problem for weeks.
I have a embeded software that is a boot loader. It puts the boot load version
at a specific address.
My memmory starts at 0x400000 with 0x1400 size. My constant version string
value must be placed @0x401000 with 8bytes length.
If I place this const value into a section like this:
const unsigned char Version[8] __attribute__ ((section (".bootversion"))) =
"V1.0.1a";
I got this error:
section .bootversion LMA [00401000,00401007] overlaps section .text LMA
[00400000,00401013]collect2.exe(0,0): error: ld returned 1 exit status
I have already tried to split flash memmory using linker script but it does not
worked.
I wish to find something like "automatic" split.
For example, this code was compiled using ARM Keil. With ARM Keil I have the
attribute that makes all the magic :
const unsigned char Version[8] __attribute__((at(0x0401000))) = "V1.0.1a";
I dont know if is possible to have something as pratical as ARM Keil attribute
in GCC.
I really need make this thing work.
If this is not the best channel to ask, please, could you recommend me one?
Thank you very much!