cancel
Showing results for 
Search instead for 
Did you mean: 

Combining RAM Memory Map/Memory Allocation?

AAgar.2
Associate III

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?

1 ACCEPTED SOLUTION

Accepted Solutions

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
Up vote any posts that you find helpful, it shows what's working..

View solution in original post

1 REPLY 1

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
Up vote any posts that you find helpful, it shows what's working..