Skip to main content
MHass.2
Associate II
April 28, 2021
Solved

How to use STM32F407 FSMC memory ?

  • April 28, 2021
  • 1 reply
  • 1696 views

Hi,

I'm working in a project that contains large data need to be processed by using stm32f407 Disc1. I facing issue with RAM overflow so, I need to use external ram by using FSMC.

what is the large size of external ram that I can use it? , Is this external ram is used as internal one? and when I define and declare an array, Is this array will be stored automatically into this ram ?

Thanks....

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

Depending on the decode region figure 256MB or 64MB blocks. Static memories of that size are likely to be very expensive.

External RAM will be slower, often quite significantly, and there's no caching.

Going to use a lot of pins, figure your opportunities on the STM32F407G-DISC1 are pretty limited.

Some of the later model F4 support SDRAM, better cost/density and pin utilization.

Usage will be however you direct the compiler and linker.

You have to tell the Linker about the memory it can use, and the section naming (see Linker Scripts and Scatter Files)

You can use #pragma and __attribute__ type directives to use particular memory pools from the Compiler.

Your startup.s code needs to bring up the external memory, peripheral, pins, etc before you can use it.

1 reply

Tesla DeLorean
Tesla DeLoreanBest answer
Guru
April 28, 2021

Depending on the decode region figure 256MB or 64MB blocks. Static memories of that size are likely to be very expensive.

External RAM will be slower, often quite significantly, and there's no caching.

Going to use a lot of pins, figure your opportunities on the STM32F407G-DISC1 are pretty limited.

Some of the later model F4 support SDRAM, better cost/density and pin utilization.

Usage will be however you direct the compiler and linker.

You have to tell the Linker about the memory it can use, and the section naming (see Linker Scripts and Scatter Files)

You can use #pragma and __attribute__ type directives to use particular memory pools from the Compiler.

Your startup.s code needs to bring up the external memory, peripheral, pins, etc before you can use it.

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