Hello,
Since the TI compiler is currently not compatible with the A15 core, the used tool-chain for it is the gnu based tool-chain.
When compiling the A15 there are several symbols which the tool-chain have some assumptions about and seems that they need to be set properly.
for example the end symbol is expected to indicate the start of the HEAP and it is assumed that the stack section immediately follows it (follows the heap).
I noticed on the map file that there is a section called .ARM.exidx , can someone please a simple explanation as to what this is and if there are any assumptions as to its location that are needed to be taken into consideration?
Are there any other special symbols for the core/tool-chain that i should be aware of and take care of (at list from linker point of view - memory allocation to make sure they will not cause memory corruption )?
also on my map file i see
.ARM.exidx 0x40324028 0x8
.ARM.exidx 0x40324028 0x8 C:/..../gcc-arm-none-eabi-4_9-2015q3/lib/gcc/arm-none-eabi/4.9.3/fpu\libgcc.a(_divdi3.o)
.ARM.exidx 0x40324030 0x0 C:/..../gcc-arm-none-eabi-4_9-2015q3/lib/gcc/arm-none-eabi/4.9.3/fpu/libgcc.a(_udivdi3.o)
0x8 (size before relaxing)
can you explain what does it mean when it says size before relaxing? does it actually take memory space or not?
I have also seen section with zero size, in this case why are they shown at all on the map file - i use --gc-sections so they should be thrown out and in that case why the map file still lists them (not under the discarded section but under the regular allocated sections part).
Thanks