BUG: Sketch compiled under Platform is MORE BIGGER than expected

Hi
this is under arduino 1.8.19:
Flash: 11622 byte (37%) Max 30720 byte.
RAM: 1777 byte (86%) Free 271 byte

This under PlatformIO
RAM: [====Error: The program size (39434 bytes) is greater than maximum allowed (30720 bytes)
====*** [checkprogsize] Explicit exit, status 1
= ] 87.4% (used 1789 bytes from 2048 bytes)
Flash: [==========] 128.4% (used 39434 bytes from 30720 bytes)

[env:nanoatmega328]
platform = atmelavr
board = nanoatmega328
framework = arduino


How it is possible???


We can only start exploring that when we know the full code, the exact Arduino IDE configuration (tools menu), the exact Arduino IDE core version and all libraries with their exact used version.

Hi
here a link for download project:

The same code with same library under arduino ide 1.8.19 compile well

Please reply me soon

With the PlatformIO project you upload and building it I get

>pio run
Processing nanoatmega328 (platform: atmelavr; board: nanoatmega328; framework: arduino)
------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/atmelavr/nanoatmega328.html
PLATFORM: Atmel AVR (4.0.0) > Arduino Nano ATmega328
HARDWARE: ATMEGA328P 16MHz, 2KB RAM, 30KB Flash
DEBUG: Current (avr-stub) On-board (avr-stub, simavr)
PACKAGES:
 - framework-arduino-avr @ 5.1.0
 - toolchain-atmelavr @ 1.70300.191015 (7.3.0)
[...]
Linking .pio\build\nanoatmega328\firmware.elf
Checking size .pio\build\nanoatmega328\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [========= ]  86.8% (used 1777 bytes from 2048 bytes)
Flash: [====      ]  37.8% (used 11622 bytes from 30720 bytes)
Building .pio\build\nanoatmega328\firmware.hex
============================================= [SUCCESS] Took 3.81 seconds =============================================

Which are the exact number of used bytes in RAM and Flash like you have in the Arduino IDE

Did you remove the .pio folder and press build again to get a clean rebuild?

Hi just done but don’t work…

Processing nanoatmega328 (platform: atmelavr; board: nanoatmega328; framework: arduino)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Library Manager: Installing pololu/PololuOLED @ 2.0.0
Unpacking  [####################################]  100%
Library Manager: PololuOLED@2.0.0 has been installed!
Library Manager: Installing robtillaart/ADS1X15 @ 0.3.8
Unpacking  [####################################]  100%
Library Manager: ADS1X15@0.3.8 has been installed!
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/atmelavr/nanoatmega328.html
PLATFORM: Atmel AVR (4.0.1) > Arduino Nano ATmega328
HARDWARE: ATMEGA328P 16MHz, 2KB RAM, 30KB Flash
DEBUG: Current (avr-stub) External (avr-stub, simavr)
PACKAGES:
 - framework-arduino-avr @ 5.1.0
 - toolchain-atmelavr @ 1.70300.191015 (7.3.0)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 7 compatible libraries
Scanning dependencies...
Dependency Graph
|-- PololuOLED @ 2.0.0
|-- ADS1X15 @ 0.3.8
|   |-- Wire @ 1.0
Building in debug mode
Compiling .pio\build\nanoatmega328\src\main.cpp.o
Compiling .pio\build\nanoatmega328\liba8f\PololuOLED\font.cpp.o
Compiling .pio\build\nanoatmega328\libd58\Wire\Wire.cpp.o
Compiling .pio\build\nanoatmega328\libd58\Wire\utility\twi.c.o
Compiling .pio\build\nanoatmega328\lib27d\ADS1X15\ADS1X15.cpp.o
Archiving .pio\build\nanoatmega328\libFrameworkArduinoVariant.a
Compiling .pio\build\nanoatmega328\FrameworkArduino\CDC.cpp.o
Compiling .pio\build\nanoatmega328\FrameworkArduino\HardwareSerial.cpp.o
Compiling .pio\build\nanoatmega328\FrameworkArduino\HardwareSerial0.cpp.o
Compiling .pio\build\nanoatmega328\FrameworkArduino\HardwareSerial1.cpp.o
Compiling .pio\build\nanoatmega328\FrameworkArduino\HardwareSerial2.cpp.o
Compiling .pio\build\nanoatmega328\FrameworkArduino\HardwareSerial3.cpp.o
Compiling .pio\build\nanoatmega328\FrameworkArduino\IPAddress.cpp.o
Compiling .pio\build\nanoatmega328\FrameworkArduino\PluggableUSB.cpp.o
Compiling .pio\build\nanoatmega328\FrameworkArduino\Print.cpp.o
Compiling .pio\build\nanoatmega328\FrameworkArduino\Stream.cpp.o
Compiling .pio\build\nanoatmega328\FrameworkArduino\Tone.cpp.o
Archiving .pio\build\nanoatmega328\liba8f\libPololuOLED.a
Compiling .pio\build\nanoatmega328\FrameworkArduino\USBCore.cpp.o
Archiving .pio\build\nanoatmega328\libd58\libWire.a
Compiling .pio\build\nanoatmega328\FrameworkArduino\WInterrupts.c.o
Archiving .pio\build\nanoatmega328\lib27d\libADS1X15.a
Compiling .pio\build\nanoatmega328\FrameworkArduino\WMath.cpp.o
Compiling .pio\build\nanoatmega328\FrameworkArduino\WString.cpp.o
Compiling .pio\build\nanoatmega328\FrameworkArduino\abi.cpp.o
Compiling .pio\build\nanoatmega328\FrameworkArduino\hooks.c.o
Compiling .pio\build\nanoatmega328\FrameworkArduino\main.cpp.o
Compiling .pio\build\nanoatmega328\FrameworkArduino\new.cpp.o
Compiling .pio\build\nanoatmega328\FrameworkArduino\wiring.c.o
Compiling .pio\build\nanoatmega328\FrameworkArduino\wiring_analog.c.o
Compiling .pio\build\nanoatmega328\FrameworkArduino\wiring_digital.c.o
Compiling .pio\build\nanoatmega328\FrameworkArduino\wiring_pulse.S.o
Compiling .pio\build\nanoatmega328\FrameworkArduino\wiring_pulse.c.o
Compiling .pio\build\nanoatmega328\FrameworkArduino\wiring_shift.c.o
Archiving .pio\build\nanoatmega328\libFrameworkArduino.a
Linking .pio\build\nanoatmega328\firmware.elf
Checking size .pio\build\nanoatmega328\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [=====Error: The program size (39434 bytes) is greater than maximum allowed (30720 bytes)
===*** [checkprogsize] Explicit exit, status 1
= ]  87.4% (used 1789 bytes from 2048 bytes)
Flash: [==========]  128.4% (used 39434 bytes from 30720 bytes)
```

Why build in debug mode? Turning off optimizations will lead to a much bigger code size. Are you building using the “Start Debugging” button using the regular Build project task? Do you have any build_type = debug statement in the platformio.ini (docs)?

1 Like