2 years, 11 months ago.

What dose this error means? Mbed compilation error

My board is NUCLEO_F030R8. Old MBED works just fine. When I update to the new version it doesn't compile. It seems that F030R8 is not widely use? am I wrong?

include the mbed library with this snippet


Error: No space in execution regions with .ANY selector matching main.NUCLEO_F030R8.o(t._ZN4mbed8CallbackIFvvEE13function_callIPS1_EEvPKv).
Error: No space in execution regions with .ANY selector matching retarget.o(i.__aeabi_atexit).
Error: No space in execution regions with .ANY selector matching rtc_api.o(i.rtc_isenabled).
Error: No space in execution regions with .ANY selector matching FileBase.o(i._ZN4mbed8FileBase11getPathTypeEv).
Error: No space in execution regions with .ANY selector matching FileBase.o(i._ZN4mbed8FileBase7getNameEv).
Error: No space in execution regions with .ANY selector matching FilePath.o(i._ZN4mbed8FilePath8fileNameEv).
Error: No space in execution regions with .ANY selector matching Stream.o(i._ZN4mbed6Stream4flenEv).
Error: No space in execution regions with .ANY selector matching Stream.o(i._ZN4mbed6Stream5closeEv).
Error: No space in execution regions with .ANY selector matching Stream.o(i._ZN4mbed6Stream5lseekEli).
Error: No space in execution regions with .ANY selector matching Stream.o(i._ZN4mbed6Stream6isattyEv).
Error: No space in execution regions with .ANY selector matching hguard.o(.text).
Error: No space in execution regions with .ANY selector matching FATFileHandle.NUCLEO_F030R8.o(i._ZN4mbed10FileHandle4lockEv).
Error: No space in execution regions with .ANY selector matching FATFileHandle.NUCLEO_F030R8.o(i._ZN4mbed10FileHandle6unlockEv).
Error: No space in execution regions with .ANY selector matching main.NUCLEO_F030R8.o(t._ZN4mbed8CallbackIFvvEE13function_dtorIPS1_EEvPv).
Error: No space in execution regions with .ANY selector matching retarget.o(i.mbed_main).
Error: No space in execution regions with .ANY selector matching stm32f0xx_hal.o(i.HAL_MspInit).
Error: No space in execution regions with .ANY selector matching stm32f0xx_hal_rtc.o(i.HAL_RTC_MspInit).
Error: No space in execution regions with .ANY selector matching stm32f0xx_hal_spi.o(i.HAL_SPI_ErrorCallback).
...
Error: Not enough information to list the image map

This link might have the answer .. but I am not really convinced how people develop mbed. It is a library for small flash memory Micro-controller .. Why don't they think about that?

https://developer.mbed.org/forum/helloworld/topic/17062/

posted by Mariwan J. 20 Feb 2017

1 Answer

2 years, 11 months ago.

Not most popular, but also not unused like some others.

What it means is that you don't have enough memory for your program. I believe flash memory, but not 100% sure. If you compile it with the old library, how much flash (and SRAM) are you using? If that is 98%, then it is likely the new one just got a bit bigger. If it is 40% something is wrong.

At the moment, the flash is 52.1 k, code flash is 46.8k and ram is 2k The SD-Card library make it too big. Only that library take about 30k of the flash. The sd-card library didn't work with the updated mbed for about 3 weeks ago. Now I tried to test it again after someone here in the forum said that he/she fixed the bug. Now I cannot compile it at all. It must be bug, new bug

posted by Mariwan J. 01 Feb 2017

I compared original on LPC11u24 (since that works on early mbed libs), and latest one. In general SDFileSystem is a large lib, but it seems it indeed increased in space. Or the mbed lib. It could for example be that they changed the C lib from small one to regular one for the F030 since it has a reasonable amount of flash memory. But I don't know if you can call it a bug, but for sure irritating the overhead increased.

posted by Erik Olieman 01 Feb 2017