cancel
Showing results for 
Search instead for 
Did you mean: 

What is meaning of the " region `RAM' overflowed by 4240 bytes" error while compiling ASC source code with STM32Cube.IDE?

ChipHead
Associate III

........... Omission. ..............................

=cortex-m4 -std=c99 -g3 -DSTM32L475xx -DUSE_HAL_DRIVER -DUSE_STM32L475E_IOT01 -DPRIORITY_RTOS -DARM_MATH_CM4 -D__FPU_PRESENT=1 -c -O2 -ffunction-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/BSP/B-L475E-IOT01/stm32l475e_iot01_env_sensors.d" -MT"Drivers/BSP/B-L475E-IOT01/stm32l475e_iot01_env_sensors.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Drivers/BSP/B-L475E-IOT01/stm32l475e_iot01_env_sensors.o" @"Drivers/BSP/B-L475E-IOT01/stm32l475e_iot01_env_sensors.c_includes.args"

arm-none-eabi-gcc "C:/Users/invain/Desktop/e4ds-stm-cube-ai/quest01/en.fp-ai-sensing1/STM32CubeFunctionPack_SENSING1_V4.0.3/Drivers/BSP/B-L475E-IOT01/stm32l475e_iot01_motion_sensors.c" -mcpu=cortex-m4 -std=c99 -g3 -DSTM32L475xx -DUSE_HAL_DRIVER -DUSE_STM32L475E_IOT01 -DPRIORITY_RTOS -DARM_MATH_CM4 -D__FPU_PRESENT=1 -c -O2 -ffunction-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/BSP/B-L475E-IOT01/stm32l475e_iot01_motion_sensors.d" -MT"Drivers/BSP/B-L475E-IOT01/stm32l475e_iot01_motion_sensors.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Drivers/BSP/B-L475E-IOT01/stm32l475e_iot01_motion_sensors.o" @"Drivers/BSP/B-L475E-IOT01/stm32l475e_iot01_motion_sensors.c_includes.args"

arm-none-eabi-gcc "C:/Users/invain/Desktop/e4ds-stm-cube-ai/quest01/en.fp-ai-sensing1/STM32CubeFunctionPack_SENSING1_V4.0.3/Drivers/BSP/B-L475E-IOT01/stm32l475e_iot01_qspi.c" -mcpu=cortex-m4 -std=c99 -g3 -DSTM32L475xx -DUSE_HAL_DRIVER -DUSE_STM32L475E_IOT01 -DPRIORITY_RTOS -DARM_MATH_CM4 -D__FPU_PRESENT=1 -c -O2 -ffunction-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/BSP/B-L475E-IOT01/stm32l475e_iot01_qspi.d" -MT"Drivers/BSP/B-L475E-IOT01/stm32l475e_iot01_qspi.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Drivers/BSP/B-L475E-IOT01/stm32l475e_iot01_qspi.o" @"Drivers/BSP/B-L475E-IOT01/stm32l475e_iot01_qspi.c_includes.args"

arm-none-eabi-gcc -o "B-L475E-IOT01A.elf" @"objects.list" -l:NetworkRuntime410_CM4_GCC.a -larm_cortexM4lf_math -mcpu=cortex-m4 -T"../LinkerScript.ld" --specs=nosys.specs -Wl,-Map="B-L475E-IOT01A.map" -Wl,--gc-sections -static -L../../../../../../../Middlewares/ST/STM32_AI_Library/lib -L../../../../../../../Drivers/CMSIS/Lib/GCC --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -u _printf_float -Wl,--start-group -lc -lm -Wl,--end-group

c:\st\stm32cubeide_1.10.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.0.202111181127\tools\arm-none-eabi\bin\ld.exe: B-L475E-IOT01A.elf section `._user_heap_stack' will not fit in region `RAM'

c:\st\stm32cubeide_1.10.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.0.202111181127\tools\arm-none-eabi\bin\ld.exe: region `RAM' overflowed by 4240 bytes

collect2.exe: error: ld returned 1 exit status

make[1]: *** [makefile:81: B-L475E-IOT01A.elf] Error 1

make: *** [makefile:74: all] Error 2

"make all" terminated with exit code 2. Build might be incomplete.

17:55:54 Build Failed. 4 errors, 0 warnings. (took 3m:15s.970ms)

2 REPLIES 2

It means, that you have too many variables to fit into RAM.

Have a look at the mapfile (B-L475E-IOT01A.map) to see how RAM is occupied.

JW

ChipHead
Associate III

Please try to change the mininum size of heap and stack as following:

  • File name: LinkerScript.ld

0693W00000Uo2kzQAB.png 

BRs,

Geunsik Lim.