Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
14 years ago

Dynamic Memory Allocation in OnChip-Ram

Hello,

I am looking for a possibility to dynamically allocate memory in OnChip-RAM,

while heap is in external RAM.

Has anyone experiences regarding this topic?

4 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Basically no, if You're talking about malloc(). Why not to use direct addressing?

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Yes Socrates, I'm talking about malloc().

    The thing is, that I want to improve the LwIp-Stack and there some structures (e.g. ethernetif, pbuf) allocated dynamically.

    As a workaround I did allocate the memory statically, but I think for a better structural design it would be nicer to allocate those structures dynamically at internal RAM.

    Maybe a solution could be to reassign the heap to internal RAM, then malloc(), and then put the Heap back to external RAM. But the LwIp malloc-function saves and uses the lowest free block for allocation, which is always in external Ram.

    Sure, I know that I could write my own malloc(), but I wanted to know if someone knows an easier or more common way.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    For embedded use it is actually better to avoid malloc() - except maybe at startup. That way you don't suddenly run out of memory in some important code path.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Or suffer from memory fragmentation. In my experience you have to be VERY careful with dynamic memory allocation in embedded applications.