cancel
Showing results for 
Search instead for 
Did you mean: 

How to use RAM_D2 and RAM_D3 in STM32H743

NGune.1
Associate III

Hi,

My RAM_D1 is almost full, mainly because of LTDC frame buffer, etc., I need to use RAM_D2 and RAM_D3 for my variables, arrays and other staff. I am using RTOS CMSIS v2.

There are a few posts about using RAM_D2 and RAM_D3 in H743, in the forum, but all of them are about solving specific problems or about completing a missing configuration lines, etc. But these don't make any sense for the people, like me, who even don't know where to start, what has to be done, for what...

As I understood from the previous posts; it is neither a straightforward procedure, nor a basic thing to configure in the MX, for example. (don't even understand why... If RAM_D1 is usable without doing anything, why I can't just use other RAMs? They are put in the hardware for what, if it is "nearly impossible" to properly configure to use? :) ) 

What I would like to know; is there a document which explains what to do to use RAM_D2 and RAM_D3, step-by-step, from the beginning to the end? Otherwise those pieces of information like provided in the previous posts are not helpful. If there is no such document, could someone (may be from ST) provide a step-by step procedure?

Many thanks.

Namik

 

1 ACCEPTED SOLUTION

Accepted Solutions
SofLit
ST Employee

Hello @NGune.1 ,

First, have a look at the application note AN4891 "STM32H72x, STM32H73x, and single-core STM32H74x/75x
system architecture and performance"  to understand the usage of each memory and its accessibility. Especially the sections 2.5.2 Embedded RAM and 5.1 Software memory partitioning. For performance subject, read other sections.

Second, regarding this question:


@NGune.1 wrote:

What I would like to know; is there a document which explains what to do to use RAM_D2 and RAM_D3, step-by-step, from the beginning to the end?


There is no document that explains step by step for this specific request. All you need is to manage that by linker file.

You need to declare new regions for your variables in the linker file and that depends on the toolchain you are using.

There is package attached to The application note called X-CUBE-PERF-H7 where you can inspire from several linkers files for IAR, KEIL and GCC.

Hope it helps.

 

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

View solution in original post

2 REPLIES 2
SofLit
ST Employee

Hello @NGune.1 ,

First, have a look at the application note AN4891 "STM32H72x, STM32H73x, and single-core STM32H74x/75x
system architecture and performance"  to understand the usage of each memory and its accessibility. Especially the sections 2.5.2 Embedded RAM and 5.1 Software memory partitioning. For performance subject, read other sections.

Second, regarding this question:


@NGune.1 wrote:

What I would like to know; is there a document which explains what to do to use RAM_D2 and RAM_D3, step-by-step, from the beginning to the end?


There is no document that explains step by step for this specific request. All you need is to manage that by linker file.

You need to declare new regions for your variables in the linker file and that depends on the toolchain you are using.

There is package attached to The application note called X-CUBE-PERF-H7 where you can inspire from several linkers files for IAR, KEIL and GCC.

Hope it helps.

 

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

Hi SofLit,

By carefully inspecting the examples given in the X-CUBE-PERF-H7, I managed to use RAM_D2 in H743.

Thanks for your suggestion.