CCM ( core coupled memory ) on stm32f4

ChibiOS public support forum for topics related to the STMicroelectronics STM32 family of micro-controllers.

Moderator: RoccoMarco

Post Reply
jscott
Posts: 129
Joined: Tue Jul 03, 2012 3:50 pm

CCM ( core coupled memory ) on stm32f4

Post 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
User avatar
Giovanni
Site Admin
Posts: 14892
Joined: Wed May 27, 2009 8:48 am
Has thanked: 1202 times
Been thanked: 996 times

Re: CCM ( core coupled memory ) on stm32f4

Post by Giovanni »

jscott
Posts: 129
Joined: Tue Jul 03, 2012 3:50 pm

Re: CCM ( core coupled memory ) on stm32f4

Post 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
Post Reply