Question
CCM section & ''section `.bss' will not fit in region `ram'''
Posted on April 18, 2014 at 04:12
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 ishttps://svn.code.sf.net/p/rusefi/code/trunk/firmware/config/system/STM32F407xG_CCM.ld
I am using CodeSourcery and I am declaring the field likestatic 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