Page 1 of 1

CCM ( core coupled memory ) on stm32f4

Posted: Sun Feb 16, 2014 3:00 pm
by jscott
I am working on dumping everything out of the DMA accessible memory that I can to maximize DMA speed.

In my makefile I have switched the section that was:

Code: Select all

# Define linker script file here
LDSCRIPT= $(PORTLD)/STM32F407xG.ld
#LDSCRIPT= $(PORTLD)/STM32F407xG_CCM.ld


to read

Code: Select all

# Define linker script file here
#LDSCRIPT= $(PORTLD)/STM32F407xG.ld
LDSCRIPT= $(PORTLD)/STM32F407xG_CCM.ld


Now Chibios puts its stacks and such into the CCM :D :D

I have also moved some data frequently accessed data buffers
to CCM using something like:

Code: Select all

#define intoCCM  __attribute__((section(".ccmbuf")))  __attribute__((aligned(4)))

Code: Select all

volatile framebuffer_t framebuffer[STRINGS][LEDS] intoCCM;


It looks like things are working right because in my .map file I now find:

Code: Select all

 *(.ccmbuf)
 .ccmbuf        0x10000968      0x200 build/obj/lightshow.o
                0x10000968                framebuffer
                0x10000b68                PROVIDE (_cmm_end, .)


HOWEVER ( you just knew there had to be a catch... )

While linking I get this odd message that I have not been able to figure out what it means...

Code: Select all

Linking build/ch.elf
c:/chibistudio/tools/gnu tools arm embedded/4.7 2013q2/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/bin/ld.exe: warning: section `.ccm' type changed to PROGBITS
Creating build/ch.bin


Anyone got an idea just what this means??? Is it a problem??

Thanks
-John Scott

Re: CCM ( core coupled memory ) on stm32f4

Posted: Sun Feb 16, 2014 3:07 pm
by Giovanni

Re: CCM ( core coupled memory ) on stm32f4

Posted: Sun Feb 16, 2014 5:54 pm
by jscott
I found this information of what the "nobits" and "progbits" do. It may not be complete, but it tells us we don't need to worry about that warning.

From:
http://psomas.wordpress.com/2011/02/25/ ... nel-macro/

3) When using the section attribute on a variable, in order to change the section it belongs, you cannot change the section’s type to nobits, it’ll be progbits by default. progbits means that the section will actually get space allocated inside the executable(like text and data sections), in contrast to nobits sections like bss for example.


-John Scott