cancel
Showing results for 
Search instead for 
Did you mean: 

stm32f415 increase 64k RAM data

ludovic Wiart
Associate II
Posted on September 12, 2017 at 16:52

Hi,

I'm using STM32F415 with treadX OS and Netxduo

When I want to allocate some data, it crash when I'm over 64 Kb

I have try to configure OPENOCD with this configuration but no changes:

configure -work-area-phys 0x20000000 -work-area-size 0x15000 -work-area-backup 0

Ludo

#sram #stm32f4 #memory #openocd
14 REPLIES 14
Posted on September 13, 2017 at 12:33

Ok thanks for this information

When you ask to move the statics in CCM, you means .bss ?

I have try to move .bss in CCM

.bss : /* Zero initialised memory used for zero initialised variables */

{

link_bss_location = ALIGN(., 4);

*(.bss*)

*(COMMON)

link_bss_end = .;

. = ALIGN(., 4);

}> CCMSRAM AT>SRAM :bss

I have 20 Kb more but UART receiver doesn't work

Posted on September 13, 2017 at 12:40

UART receiver doesn't work

DMA-based? DMA can't reach CCM in F4xx; DMA buffers have to be in SRAM1/SRAM2.

OTOH, stack ought to be located in CCM.

JW

Posted on September 14, 2017 at 13:53

Yes it is. 

If I want to move Heap  PROVIDE( _eheap = ALIGN( ORIGIN( CCM_SRAM ) + LENGTH( CCM_SRAM ) - 8, 8 ) );

Same problem.

Have you an other solution ?

Is it possible to move all data except DMA value ?

Posted on September 14, 2017 at 13:58

Here is a small

http://www.openstm32.org/Using+CCM+Memory?structure=Documentation

on using the CCM memory with STM32 and GCC for different purposes.
Posted on September 14, 2017 at 17:30

Thanks but I have already follow this process but I haven't '_estack' i my ld script

and I don't know how to move all data in CCM except DMA.