cancel
Showing results for 
Search instead for 
Did you mean: 

How to use STM32F407 FSMC memory ?

MHass.2
Associate III

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....

1 ACCEPTED SOLUTION

Accepted Solutions

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

View solution in original post

1 REPLY 1

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