KB: Overflow of uint32_t array

Question:
I am facing an overflow of DRAM memory when trying to store 1500 uint32_t elements in array using RSL10. What can I do about this?

Example: uint32_t temperature_ram_retention[1500];

image

Answer:
You can increase your DRAM memory section in sections.ld to solve this issue. From the original:

To this modified version:

1 Like

If you don’t need the DSP for your application, then you’d better merge the DRAM and DRAM_DSP so that the Cortex M3 can access a continuous bloc of 72K of RAM.

1 Like

Hello, how can I merge DRAM and DRAM_DSP?

Thanks

This way:

MEMORY
{
  ROM  (r) : ORIGIN = 0x00000000, LENGTH = 4K
  FLASH (xrw) : ORIGIN = 0x00100000, LENGTH = 380K
  PRAM (xrw) : ORIGIN = 0x00200000, LENGTH = 32K
  DRAM (xrw) : ORIGIN = 0x20000000, LENGTH = 72K
  DRAM_BB (xrw) : ORIGIN = 0x20012000, LENGTH = 16K
}

Note that DRAM_DSP has completely disappeared (which isn’t a problem if you don’t use LPDSP32!

1 Like