AnsweredAssumed Answered

CCM section & "section `.bss' will not fit in region `ram'"

Question asked by belomutskiy.andrey on Apr 18, 2014
Latest reply on Apr 28, 2014 by belomutskiy.andrey
My fields do not fit in the primary RAM region so I am trying to put some of the fields into CCM but something is not going right.

My .ld file is https://svn.code.sf.net/p/rusefi/code/trunk/firmware/config/system/STM32F407xG_CCM.ld

I am using CodeSourcery and I am declaring the field like
static char pendingBuffer[OUTPUT_BUFFER] __attribute__((section(".ccm")));
it works like that, but once I change it to
static char pendingBuffer[10000 + OUTPUT_BUFFER] __attribute__((section(".ccm")));

I get an error message
c:/program files (x86)/codesourcery/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/bin/ld.exe: rusefi.elf section `.bss' will not fit in region `ram'
c:/program files (x86)/codesourcery/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/bin/ld.exe: region `ram' overflowed by 6408 bytes

But why 'ram' and not 'ccmram'? Because 'bss' goes into 'ram'?

I know that the attribute does something, because all the fields with ccm attribute are not appearing in my .map file. https://svn.code.sf.net/p/rusefi/code/trunk/firmware_binary/rusefi.map

So, what do I do wrong, what should I be doing to get into the ccm memory region?
Why the fields with ccm attribues are not in the .map file is a different question.

My makefile and the code are available at https://svn.code.sf.net/p/rusefi/code/trunk/firmware/

Outcomes