Closed fkemps closed 2 years ago
Hi, I have similar problem under Debian 10 (Buster)
Consolidate compiler generated dependencies of target RS41ng.elf
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/bmp280_handler.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/aprs/aprs.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_packet_v1.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_packet_v2.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/config.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/ubxg6010/ubxg6010.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/pwm.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/system.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/log.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/main.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_aprs.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_cw.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_fsq.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_horus_v1.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_horus_v2.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_jtencode.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_wspr.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_si4032.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_si5351.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/syscalls/syscalls.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/telemetry.c.o
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/template.c.o
[ 1%] Linking CXX executable RS41ng.elf
/usr/lib/gcc/arm-none-eabi/7.3.1/../../../arm-none-eabi/bin/ld: RS41ng.elf section .text' will not fit in region
rom'
/usr/lib/gcc/arm-none-eabi/7.3.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 3120 bytes
collect2: error: ld returned 1 exit status
make[2]: [src/CMakeFiles/RS41ng.elf.dir/build.make:1073: src/RS41ng.elf] Error 1
make[1]: [CMakeFiles/Makefile2:117: src/CMakeFiles/RS41ng.elf.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
Also similar case on Ubuntu 20.04 / WSL here:
Scanning dependencies of target RS41ng.elf
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/bmp280_handler.c.o
[ 2%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/aprs/aprs.c.o
[ 3%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_packet_v1.c.o
[ 5%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_packet_v2.c.o
[ 6%] Building C object src/CMakeFiles/RS41ng.elf.dir/config.c.o
[ 7%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/ubxg6010/ubxg6010.c.o
[ 8%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/pwm.c.o
[ 10%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/system.c.o
[ 11%] Building C object src/CMakeFiles/RS41ng.elf.dir/log.c.o
[ 12%] Building C object src/CMakeFiles/RS41ng.elf.dir/main.c.o
[ 13%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio.c.o
[ 15%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_aprs.c.o
[ 16%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_cw.c.o
[ 17%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_fsq.c.o
[ 18%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_horus_v1.c.o
[ 20%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_horus_v2.c.o
[ 21%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_jtencode.c.o
[ 22%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_wspr.c.o
[ 24%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_si4032.c.o
[ 25%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_si5351.c.o
[ 26%] Building C object src/CMakeFiles/RS41ng.elf.dir/syscalls/syscalls.c.o
[ 27%] Building C object src/CMakeFiles/RS41ng.elf.dir/telemetry.c.o
[ 29%] Building C object src/CMakeFiles/RS41ng.elf.dir/template.c.o
[ 30%] Linking CXX executable RS41ng.elf
/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: RS41ng.elf section `.text' will not fit in region `rom'
/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 856 bytes
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/RS41ng.elf.dir/build.make:999: src/RS41ng.elf] Error 1
make[1]: *** [CMakeFiles/Makefile2:143: src/CMakeFiles/RS41ng.elf.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
I am thinking there's not enough space to fit on the MCU, and there's just a small enough difference for some people to have overflows. I removed references to jtencode and I got a successful compilation. I don't plan to use the Si5351 so I would've seen no difference with my operations.
Yes, this is indeed the case, the compiled app doesn't fit in the small flash space of RS41. It is not possible to enable all features at the same time. You can use config.h
to disable some of them, e.g. modes/sensors/5351.
Also, manually removing unused entries in radio_transmit_schedule
list on radio.c
can help to shrink the app
This will need some additional docs and config switches for easier configuration, so I'm leaving the issue still open.
The options for enabling/disabling specific modes now also remove compiled code accordingly, so that the firmware will become smaller when disabling modes.
The default config without Si5351 should always produce a binary that fits the sonde flash memory.
Hello,
While building RS41ng I run in
region from" overflowed by 4 bytes
error message while linking. Platform is Ubuntu 20.04.2 LTS.Any hint how to solve?