Skip to main content
AAgar.2
Associate III
June 18, 2020
Solved

Combining RAM Memory Map/Memory Allocation?

  • June 18, 2020
  • 1 reply
  • 961 views

The STM32H743 has various ram blocks available as shown below:

DTCMRAM - 128kB

ITCMRAM - 64kB

RAM_D1 - 512kB

RAM_D2 - 288kB

RAM_D3 - 64kB

1) Is it possible to combining (or a subset) of these ram block and use them as one big ram?

2) Alternatively is it possible to place particular memory in a particular ram block? For example allocating a RAM_D3 to a static byte array buffer?

This topic has been closed for replies.
Best answer by Tesla DeLorean

Seem to recall some are contiguous, or have alternate mappings which are. Doesn't the RM an DS cover this?

Usually you manage data placement via scatter file or linker script, depending on tools.

Some memories have specific uses and connectivity. Check the Bus Matrix diagrams to confirm things will blend..

For dynamic memory you could presumably describe the memory arena to the allocator, starting as the available blocks, and then allocate/free

Have specialized pools, based on use/interaction expectations, with say DMA, screen buffer, etc.

Make sure you enable the memory clocks early, in the Reset Handler

Use tools that do the unpacking seamlessly. In GNU/GCC you're going to have to execute the expectations created in the linker script with your own code in startup.s

1 reply

Tesla DeLorean
Tesla DeLoreanBest answer
Guru
June 18, 2020

Seem to recall some are contiguous, or have alternate mappings which are. Doesn't the RM an DS cover this?

Usually you manage data placement via scatter file or linker script, depending on tools.

Some memories have specific uses and connectivity. Check the Bus Matrix diagrams to confirm things will blend..

For dynamic memory you could presumably describe the memory arena to the allocator, starting as the available blocks, and then allocate/free

Have specialized pools, based on use/interaction expectations, with say DMA, screen buffer, etc.

Make sure you enable the memory clocks early, in the Reset Handler

Use tools that do the unpacking seamlessly. In GNU/GCC you're going to have to execute the expectations created in the linker script with your own code in startup.s

Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..