I am trying to benchmark data transfers between DDR and internal memory.
I am trying to get specific buffers in IRAM, but not getting anywhere.
If I declare a buffer of unsigned chars:
uint8_T mybuff[1000] = {0};
Looking at the .map file it shows that this has been placed in .far (Which is in DDR)
I added the following to my .cfg file
Program.sectMap[".far:_mybuff"] = new Program.SectionSpec();
Program.sectMap[".far:_mybuff"] = "IRAM";
II have tried various combinations (trying to also place code in different sections), but the .map file was not affected at all (except for the date).
In the .xdl file I get:
SECTIONS
{
.text: load >> DDR3_RAM
.stack: load > DDR3_RAM
.bss: load > DDR3_RAM
.cinit: load > DDR3_RAM
.pinit: load > DDR3_RAM
.const: load >> DDR3_RAM
.data: load >> DDR3_RAM
.switch: load >> DDR3_RAM
.sysmem: load > DDR3_RAM
.far: load >> DDR3_RAM
.args: load > DDR3_RAM align = 0x4, fill = 0 {_argsize = 0x0; }
.cio: load >> DDR3_RAM
.far:_mybuff: load >> IRAM
.vecs: load >> DDR3_RAM
xdc.meta: load >> DDR3_RAM, type = COPY
}
So it is getting in this file, but is not affecting the memory location.
Any help would be appreciated.