This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello,
I’m using CCSv5 with compiler versión 6.0.2.
I added a header file with 4000 defines in my project and this .h was included in other files where some constants structures use them. This .h has the protection for only be taken into account once.
With all this, I get this error:
Errors (2 items):
#10010 errors encountered during linking;
#10099-D run placement fails for object
This error is a problem with ram length. CCSv5 shows me that RAM necessary is bigger than RAM available. However, RAM length was enough before including this header file, and defines don’t use RAM memory.
Before adding this file, the variables stored in RAM occupied a size, but after this problem, the .map generated doesn't have all this variables. The RAM length showed in .map is shorter; it stops in position where bios has located the variable CLK_HTIMEPERLTIME.
This problem appears and disappears if I change some includes to .h files, but I don’t know why, which is the reason of the error and how to solve it properly.
I would appreciate some help.
Thanks,
Nerea
Wait, sorry, that last answer isn't really on point.
Please show the full text of the linker diagnostic. Copy it from the Console view, not the Problems view.
Thanks and regards,
-George
Thank you for the answer, this is the text of the linker diagnostic:
<Linking>
"./aee0000cfg.cmd", line 367: error #10099-D: run placement fails for object
".ebss", size 0x12ce9 (page 1). Available ranges:
L47SARAM size: 0x6000 unused: 0x51bb max hole: 0x51b8
error #10010: errors encountered during linking; "ee0000__.out" not built
>> Compilation failure
gmake: *** [ee0000__.out] Error 1
gmake: Target `main-build' not remade because of errors.
**** Build Finished ****
I have only add a file with #defines and before this, I had much unused space in RAM.
Thanks,
Nerea
Something is causing your .ebss section to be very large. Please look in the map file at the .ebss section. You will see all the input files which contribute to it. Is there one file that has a much bigger .ebss section than all the rest? What is going on with that file? Note the .ebss section contains the definition of the far global and static variables.
Thanks and regards,
-George
Thanks George. Due to this problem, I’m not able to see all the .ebss input files and the contributions of each one.
.ebss 1 00000000 00012ce9 FAILED TO ALLOCATE
As this .ebss has failed in the allocation, the others sections are now located were .ebss should be.
In the map file, I can see the location of all the RAM variables and I notice that I have a jump on the addressing of these variables:
0x0000ae34 _TickSec_swi
0x0000ae34 TickSec_swi
0x0000ae48 SWI_A_TABEND
0x0000c34f _CLK_PRD
0x0000c34f CLK_PRD
0x0000c350 _CLK_COUNTSPMS
0x0000c350 CLK_COUNTSPMS
0x0000c350 CLK_HTIMEPERLTIME
0x00010294 _var1
0x00010295 _var2
0x00010296 _var3
¿Which could be the reason of this huge jump?
Thanks,
Nerea
Nerea Portillo said:Due to this problem, I’m not able to see all the .ebss input files and the contributions of each one.
.ebss 1 00000000 00012ce9 FAILED TO ALLOCATE
Ah, sorry. I should have thought of that. See which memory range .ebss is going into. Just for the sake of making the link succeed, increase the size of that memory range. Don't try to run the resulting executable. Just look at the map file and see which file is causing .ebss to be so large.
Thanks and regards,
-George
Thanks George. I have moved this .ebss section to other bigger data memory and I have seen a file with a huge length. Now, I know in which file I have the problem but this file doesn’t use any of the 4000 defines I have included…
What I have seen is that this file with the problem includes one header file which includes the header file with all this defines. If I delete this last include I solve the problem but I don’t know why....
With this, I have the problem: With this, I don’t have the problem:
Thanks,
Nerea
I am unable to reproduce this problem. I'd appreciate if you would submit FileWithThisHugeEbssLength.c, preprocessed like this, along with all the compiler options used.
Thanks and regards,
-George