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.

overlapping sections : .printf and .DDR2$heap

Hello folks

When I'm linking my DSP/BIOS / DSPlink project, I see that sometimes the .printf and .DDR2$heap section are overlapping in the *.map file:

tconf-generated linker script (excerpt):

...
       GROUP {
         .const: align = 0x8 {}
         .printf (COPY): {}
        } > DDR2

        .args: align=4 fill=0 {
            *(.args)
            . += 0x80;
        } > DDR2

        .stack: {
            GBL_stackbeg = .;
            *(.stack)
            GBL_stackend = GBL_stackbeg + 0x1000 - 1;
            _HWI_STKBOTTOM = GBL_stackbeg + 0x1000 - 4 & ~7;
            _HWI_STKTOP = GBL_stackbeg;
        } > DDR2

        .DDR2$heap: {
            DDR2$B = .;
            _DDR2_base = .;
            DDR2$L = 0x20000;
            _DDR2_length = 0x20000;
            . += 0x20000;
        } > DDR2
...

 

 

resulting *.map file (excerpt):

...
.printf    0    87b4492c    0000003f     COPY SECTION
                  87b4492c    0000003f     libdspbios-dsplink.r64P (.printf)

.DDR2$heap
*          0    87b4492c    00020000     UNINITIALIZED
                  87b4492c    00020000     --HOLE--

.stack     0    87b64930    00001000     UNINITIALIZED
                  87b64930    00001000     --HOLE--
...

*.out file (excerpt, using ofd6x):

 

...
    23 .printf                   0x87b4492c 0x87b4492c     0x3f     1   N
    24 .args                     0x87b66c8c 0x87b66c8c     0x80     4   Y
    25 .stack                    0x87b64930 0x87b64930   0x1000     8   Y
    26 .DDR2$heap                0x87b4492c 0x87b4492c  0x20000     1   Y
...

 

I know that the .printf is not loaded to the target, but I feel a bit uncomfortable with the idea that it overlaps with the heap. Does DSPLink handle this correctly when it loads the target? Before I start providing full linker script/map file/BIOS *.tcf file contents I'd like to know if this is an issue at all or if it's known and intended behaviour of the linker.

As I said, it happens only sometimes. As my source code is changing, the artifact comes and goes away.

My platform is a DM6446, and the versions are

  bios 5.32.04

  dsplink 1.60

  cgt 6.1.13

 

Cheers,

Sam