platform-espressif32 icon indicating copy to clipboard operation
platform-espressif32 copied to clipboard

Compiling Size compared to Arduino

Open alvarolb opened this issue 5 years ago • 8 comments

Hi, I have been compiling both with Arduino IDE and Platformio, and I started to notice binary size differences.

When compiling a basic sketch with just setup and loop, like;:

void setup() {
}

void loop() {
}

The Arduino (with ESP32 1.0.1 installed) generates the following output:

Sketch uses 157952 bytes (12%) of program storage space. Maximum is 1310720 bytes.
Global variables use 10652 bytes (3%) of dynamic memory, leaving 284260 bytes for local variables. Maximum is 294912 bytes.

When compiling the same code with [email protected]

DATA:    [          ]   4.1% (used 13396 bytes from 327680 bytes)
PROGRAM: [=         ]  13.5% (used 176861 bytes from 1310720 bytes)

And compiling the same code with platform [email protected]

DATA:    [          ]   3.9% (used 12616 bytes from 327680 bytes)
PROGRAM: [=         ]  14.6% (used 191493 bytes from 1310720 bytes)

It is even more noticeable with large projects, i.e.:

Sketch uses 837570 bytes (63%) of program storage space. Maximum is 1310720 bytes.
Global variables use 39056 bytes (13%) of dynamic memory, leaving 255856 bytes for local variables. Maximum is 294912 bytes.

vs

DATA:    [=         ]  11.8% (used 38768 bytes from 327680 bytes)
PROGRAM: [========  ]  75.9% (used 995099 bytes from 1310720 bytes)

So, there is a huge difference between environments. Not sure if it is related to a different SDK configuration, or Platformio using different libraries... I have tried to disable all logs and assertions from sdkconfig.h, but it does not work at all.

Any hint? Thanks!

alvarolb avatar Jan 30 '19 09:01 alvarolb

I too am facing the same issue, after updating to latest AtmelAVR updates, my program has increased over 100%. Now I cannot upload the code to my Arduino. Someone please help!

kratuvid avatar Jun 07 '19 10:06 kratuvid

I am a 'me too' I am afraid. Got a project with 98% in use on a ESP32 in Arduino IDE, in PlatformIO (as Extension installed in VS Code) I get to 1.6 Megabytes 125% (!). So, where is the slack produced? I can only imagine it must be unused libraries linked as dead code. I have a problem to solve using the space, but even using another partition layout rules out the use of OTA, which is a big shame. So something is a bit slugish with memory. Having worked with the Nano and Mega, where every byte counts, this seems to be completely out of control. The Question: What in the setup makes the ESP32 under Platformio so hungry for Flash-space, and more importantly then, what to do about it? In Verbose mode I see loads of stuff being compiled. I am clueless to know what actually went into my binary. There seem to be a python script for the ESP-IDF to disassemble the .elf file but I do not know how to do that within the PlatformIO environment. It would be very good to have listing in -v verbose mode to understand what was linked into the final binary.

Ideas, pointers, hints? All is welcome! PS: At this point I am using the VS Code as an editor which with the coloring of the code and the darker background is giant leap forward from the archaic Arduino IDE (so cute though, could be called Notepad+!). So I then copy from VS Code into the Arduino IDE to produce the binary and upload it. But in fact I do not want to be found dead while still doing that in 2019, but that is what I have to do to have a binary that works on the platform.

===== Arduino IDE: =========== Sketch uses 1292702 bytes (98%) of program storage space. Maximum is 1310720 bytes. Global variables use 66828 bytes (22%) of dynamic memory, leaving 228084 bytes for local variables. Maximum is 294912 bytes.

==== PlatformIO inside VSCode: ======= DATA: [== ] 21.0% (used 68936 bytes from 327680 bytes) PROGRAM: [==========] 123.8% (used 1623294 bytes from 1310720 bytes) esptool.py v2.6

Memory Usage -> http://bit.ly/pio-memory-usageError: The program size (1623294 bytes) is greater than maximum allowed (1310720 bytes)

Summary of the issue in one line: Arduino-Binary 1292702 bytes (98%) <==> Platformio_Binary 1623294 bytes (123.8%) !!!!!

More detailed:

C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\newlib C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\nghttp C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\nvs_flash C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\openssl C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\protobuf-c C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\protocomm C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\pthread C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\sdmmc C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\smartconfig_ack C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\soc C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\spi_flash C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\spiffs C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\tcp_transport C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\tcpip_adapter C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\ulp C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\vfs C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\wear_levelling C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\wifi_provisioning C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\wpa_supplicant C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\xtensa-debug-module C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp32-camera C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp-face C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\fb_gfx C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\cores\esp32 C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\variants\m5stack_core_esp32 c:\users\pierre.platformio\packages\toolchain-xtensa32\bin../lib/gcc/xtensa-esp32-elf/5.2.0/include c:\users\pierre.platformio\packages\toolchain-xtensa32\bin../lib/gcc/xtensa-esp32-elf/5.2.0/include-fixed c:\users\pierre.platformio\packages\toolchain-xtensa32\bin../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/include c:\users\pierre.platformio\packages\toolchain-xtensa32\bin../xtensa-esp32-elf/sysroot/usr/include End of search list. GNU C99 (crosstool-NG crosstool-ng-1.22.0-80-g6c4433a5) version 5.2.0 (xtensa-esp32-elf) compiled by GNU C version 6.3.0 20170516, GMP version 6.0.0, MPFR version 3.1.3, MPC version 1.0.3 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: f8c150667b22ef24be0575fd93addc63 COLLECT_GCC_OPTIONS='-o' '.pioenvs\m5stack-core-esp32\FrameworkArduino\wiring_shift.c.o' '-c' '-std=gnu99' '-Wno-old-style-declaration' '-w' '-v' '-Os' '-Wall' '-nostdlib' '-Wpointer-arith' '-Wno-error=unused-but-set-variable' '-Wno-error=unused-variable' '-mlongcalls' '-ffunction-sections' '-fdata-sections' '-fstrict-volatile-bitfields' '-Wno-error=deprecated-declarations' '-Wno-error=unused-function' '-Wno-unused-parameter' '-Wno-sign-compare' '-fstack-protector' '-fexceptions' '-D' 'PLATFORMIO=30607' '-D' 'ARDUINO_M5Stack_Core_ESP32' '-D' 'ESP32' '-D' 'ESP_PLATFORM' '-D' 'F_CPU=240000000L' '-D' 'HAVE_CONFIG_H' '-D' 'MBEDTLS_CONFIG_FILE="mbedtls/esp_config.h"' '-D' 'ARDUINO=10805' '-D' 'ARDUINO_ARCH_ESP32' '-D' 'ARDUINO_VARIANT="m5stack_core_esp32"' '-D' 'ARDUINO_BOARD="M5Stack Core ESP32"' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\config' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\app_trace' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\app_update' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\asio' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\bootloader_support' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\bt' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\coap' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\console' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\driver' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp-tls' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp32' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_adc_cal' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_event' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_http_client' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_http_server' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_https_ota' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_ringbuf' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\ethernet' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\expat' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\fatfs' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\freemodbus' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\freertos' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\heap' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\idf_test' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\jsmn' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\json' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\libsodium' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\log' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\lwip' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\mbedtls' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\mdns' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\micro-ecc' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\mqtt' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\newlib' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\nghttp' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\nvs_flash' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\openssl' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\protobuf-c' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\protocomm' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\pthread' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\sdmmc' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\smartconfig_ack' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\soc' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\spi_flash' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\spiffs' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\tcp_transport' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\tcpip_adapter' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\ulp' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\vfs' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\wear_levelling' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\wifi_provisioning' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\wpa_supplicant' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\xtensa-debug-module' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp32-camera' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp-face' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\fb_gfx' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\cores\esp32' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\variants\m5stack_core_esp32' c:/users/pierre/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/as.exe --traditional-format --longcalls -o .pioenvs\m5stack-core-esp32\FrameworkArduino\wiring_shift.c.o D:\Users\Pierre\Temp\AppData\Local\Temp\cchLNale.s COMPILER_PATH=c:/users/pierre/.platformio/packages/toolchain-xtensa32/bin/../libexec/gcc/xtensa-esp32-elf/5.2.0/;c:/users/pierre/.platformio/packages/toolchain-xtensa32/bin/../libexec/gcc/;c:/users/pierre/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ LIBRARY_PATH=c:/users/pierre/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/;c:/users/pierre/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/;c:/users/pierre/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/lib/;c:/users/pierre/.platformio/packages/toolchain-xtensa32/bin/../xtensa-esp32-elf/sysroot/lib/;c:/users/pierre/.platformio/packages/toolchain-xtensa32/bin/../xtensa-esp32-elf/sysroot/usr/lib/ COLLECT_GCC_OPTIONS='-o' '.pioenvs\m5stack-core-esp32\FrameworkArduino\wiring_shift.c.o' '-c' '-std=gnu99' '-Wno-old-style-declaration' '-w' '-v' '-Os' '-Wall' '-nostdlib' '-Wpointer-arith' '-Wno-error=unused-but-set-variable' '-Wno-error=unused-variable' '-mlongcalls' '-ffunction-sections' '-fdata-sections' '-fstrict-volatile-bitfields' '-Wno-error=deprecated-declarations' '-Wno-error=unused-function' '-Wno-unused-parameter' '-Wno-sign-compare' '-fstack-protector' '-fexceptions' '-D' 'PLATFORMIO=30607' '-D' 'ARDUINO_M5Stack_Core_ESP32' '-D' 'ESP32' '-D' 'ESP_PLATFORM' '-D' 'F_CPU=240000000L' '-D' 'HAVE_CONFIG_H' '-D' 'MBEDTLS_CONFIG_FILE="mbedtls/esp_config.h"' '-D' 'ARDUINO=10805' '-D' 'ARDUINO_ARCH_ESP32' '-D' 'ARDUINO_VARIANT="m5stack_core_esp32"' '-D' 'ARDUINO_BOARD="M5Stack Core ESP32"' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\config' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\app_trace' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\app_update' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\asio' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\bootloader_support' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\bt' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\coap' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\console' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\driver' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp-tls' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp32' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_adc_cal' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_event' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_http_client' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_http_server' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_https_ota' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_ringbuf' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\ethernet' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\expat' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\fatfs' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\freemodbus' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\freertos' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\heap' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\idf_test' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\jsmn' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\json' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\libsodium' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\log' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\lwip' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\mbedtls' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\mdns' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\micro-ecc' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\mqtt' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\newlib' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\nghttp' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\nvs_flash' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\openssl' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\protobuf-c' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\protocomm' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\pthread' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\sdmmc' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\smartconfig_ack' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\soc' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\spi_flash' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\spiffs' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\tcp_transport' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\tcpip_adapter' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\ulp' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\vfs' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\wear_levelling' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\wifi_provisioning' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\wpa_supplicant' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\xtensa-debug-module' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp32-camera' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp-face' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\fb_gfx' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\cores\esp32' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\variants\m5stack_core_esp32' -heapsize=131072 Compiler executable checksum: 866bbe3466f64d6eb8ddac865872a52a COLLECT_GCC_OPTIONS='-o' '.pioenvs\m5stack-core-esp32\FrameworkArduino\main.cpp.o' '-c' '-fno-rtti' '-std=gnu++11' '-w' '-v' '-Os' '-Wall' '-nostdlib' '-Wpointer-arith' '-Wno-error=unused-but-set-variable' '-Wno-error=unused-variable' '-mlongcalls' '-ffunction-sections' '-fdata-sections' '-fstrict-volatile-bitfields' '-Wno-error=deprecated-declarations' '-Wno-error=unused-function' '-Wno-unused-parameter' '-Wno-sign-compare' '-fstack-protector' '-fexceptions' '-D' 'PLATFORMIO=30607' '-D' 'ARDUINO_M5Stack_Core_ESP32' '-D' 'ESP32' '-D' 'ESP_PLATFORM' '-D' 'F_CPU=240000000L' '-D' 'HAVE_CONFIG_H' '-D' 'MBEDTLS_CONFIG_FILE="mbedtls/esp_config.h"' '-D' 'ARDUINO=10805' '-D' 'ARDUINO_ARCH_ESP32' '-D' 'ARDUINO_VARIANT="m5stack_core_esp32"' '-D' 'ARDUINO_BOARD="M5Stack Core ESP32"' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\config' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\app_trace' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\app_update' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\asio' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\bootloader_support' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\bt' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\coap' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\console' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\driver' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp-tls' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp32' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_adc_cal' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_event' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_http_client' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_http_server' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_https_ota' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_ringbuf' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\ethernet' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\expat' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\fatfs' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\freemodbus' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\freertos' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\heap' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\idf_test' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\jsmn' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\json' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\libsodium' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\log' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\lwip' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\mbedtls' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\mdns' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\micro-ecc' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\mqtt' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\newlib' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\nghttp' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\nvs_flash' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\openssl' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\protobuf-c' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\protocomm' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\pthread' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\sdmmc' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\smartconfig_ack' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\soc' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\spi_flash' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\spiffs' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\tcp_transport' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\tcpip_adapter' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\ulp' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\vfs' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\wear_levelling' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\wifi_provisioning' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\wpa_supplicant' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\xtensa-debug-module' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp32-camera' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp-face' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\fb_gfx' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\cores\esp32' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\variants\m5stack_core_esp32' c:/users/pierre/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/as.exe --traditional-format --longcalls -o .pioenvs\m5stack-core-esp32\FrameworkArduino\main.cpp.o D:\Users\Pierre\Temp\AppData\Local\Temp\ccN3OYv6.s COMPILER_PATH=c:/users/pierre/.platformio/packages/toolchain-xtensa32/bin/../libexec/gcc/xtensa-esp32-elf/5.2.0/;c:/users/pierre/.platformio/packages/toolchain-xtensa32/bin/../libexec/gcc/;c:/users/pierre/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ LIBRARY_PATH=c:/users/pierre/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/;c:/users/pierre/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/;c:/users/pierre/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/lib/;c:/users/pierre/.platformio/packages/toolchain-xtensa32/bin/../xtensa-esp32-elf/sysroot/lib/;c:/users/pierre/.platformio/packages/toolchain-xtensa32/bin/../xtensa-esp32-elf/sysroot/usr/lib/ COLLECT_GCC_OPTIONS='-o' '.pioenvs\m5stack-core-esp32\FrameworkArduino\main.cpp.o' '-c' '-fno-rtti' '-std=gnu++11' '-w' '-v' '-Os' '-Wall' '-nostdlib' '-Wpointer-arith' '-Wno-error=unused-but-set-variable' '-Wno-error=unused-variable' '-mlongcalls' '-ffunction-sections' '-fdata-sections' '-fstrict-volatile-bitfields' '-Wno-error=deprecated-declarations' '-Wno-error=unused-function' '-Wno-unused-parameter' '-Wno-sign-compare' '-fstack-protector' '-fexceptions' '-D' 'PLATFORMIO=30607' '-D' 'ARDUINO_M5Stack_Core_ESP32' '-D' 'ESP32' '-D' 'ESP_PLATFORM' '-D' 'F_CPU=240000000L' '-D' 'HAVE_CONFIG_H' '-D' 'MBEDTLS_CONFIG_FILE="mbedtls/esp_config.h"' '-D' 'ARDUINO=10805' '-D' 'ARDUINO_ARCH_ESP32' '-D' 'ARDUINO_VARIANT="m5stack_core_esp32"' '-D' 'ARDUINO_BOARD="M5Stack Core ESP32"' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\config' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\app_trace' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\app_update' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\asio' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\bootloader_support' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\bt' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\coap' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\console' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\driver' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp-tls' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp32' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_adc_cal' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_event' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_http_client' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_http_server' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_https_ota' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp_ringbuf' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\ethernet' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\expat' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\fatfs' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\freemodbus' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\freertos' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\heap' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\idf_test' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\jsmn' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\json' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\libsodium' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\log' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\lwip' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\mbedtls' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\mdns' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\micro-ecc' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\mqtt' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\newlib' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\nghttp' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\nvs_flash' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\openssl' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\protobuf-c' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\protocomm' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\pthread' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\sdmmc' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\smartconfig_ack' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\soc' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\spi_flash' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\spiffs' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\tcp_transport' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\tcpip_adapter' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\ulp' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\vfs' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\wear_levelling' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\wifi_provisioning' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\wpa_supplicant' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\xtensa-debug-module' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp32-camera' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\esp-face' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\tools\sdk\include\fb_gfx' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\cores\esp32' '-I' 'C:\Users\Pierre.platformio\packages\framework-arduinoespressif32\variants\m5stack_core_esp32' Archiving .pioenvs\m5stack-core-esp32\libFrameworkArduino.a Linking .pioenvs\m5stack-core-esp32\firmware.elf Retrieving maximum program size .pioenvs\m5stack-core-esp32\firmware.elf Building .pioenvs\m5stack-core-esp32\firmware.bin Checking size .pioenvs\m5stack-core-esp32\firmware.elf Memory Usage -> http://bit.ly/pio-memory-usageError: The program size (1623294 bytes) is greater than maximum allowed (1310720 bytes)

pierreverbakel avatar Jun 07 '19 21:06 pierreverbakel

Switching to esp32 version sky rocketed the size of my .bin file three times. Are there any opinions on this for why is this happening? I have the exact same code running on one esp8266 and one esp32 but a 3x difference in size. The only fix for continuing OTA uploads is by rethinking the partitions on the device. Has anyone got to fix it?

CriPstian avatar Jul 08 '20 12:07 CriPstian

It's very important thing to be fixed! I just had compiled a similar code to Arduino IDE which yielded a difference of +400kB !!

What's going wrong here ?

HamzaHajeir avatar Jul 26 '20 06:07 HamzaHajeir

Switching to esp32 version sky rocketed the size of my .bin file three times. Are there any opinions on this for why is this happening? I have the exact same code running on one esp8266 and one esp32 but a 3x difference in size. The only fix for continuing OTA uploads is by rethinking the partitions on the device. Has anyone got to fix it?

@CriPstian To be accurate : ESP32 Arduino core is build on top of RTOS, RTOS is built on top of HAL, So it's like 3 huge layers on top of each others. That lets the binary code goes 800k+ for a blank arduino sketch.

But the issue is that the same code on same target is different between building on Arduino IDE and PlatformIO IDE.

HamzaHajeir avatar Jul 27 '20 13:07 HamzaHajeir

This issue has been automatically marked as stale because it has not had recent activity. Please provide more details or it will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Jul 30 '22 18:07 stale[bot]

Anyone got any solutions? I'm facing a similar issue where the exact same code (and same libs) have different sizes: Arduino IDE:

20092 bytes (65%)

platformio:

Error: The program size (36472 bytes) is greater than maximum allowed (30720 bytes)
Flash: [==========]  118.7% (used 36472 bytes from 30720 bytes)

davidgiga1993 avatar Aug 05 '22 05:08 davidgiga1993

Hi

Double check libs and core versions, beside compilation defines, and lastly compilation flags.

On Fri, Aug 5, 2022, 08:50 David @.***> wrote:

Anyone got any solutions? I'm facing a similar issue where the exact same code (and same libs) have different sizes: Arduino IDE:

20092 bytes (65%)

platformio:

Error: The program size (36472 bytes) is greater than maximum allowed (30720 bytes) Flash: [==========] 118.7% (used 36472 bytes from 30720 bytes)

— Reply to this email directly, view it on GitHub https://github.com/platformio/platform-espressif32/issues/157#issuecomment-1206069469, or unsubscribe https://github.com/notifications/unsubscribe-auth/AH3O7J6SEY6WJWN2AON5MR3VXSTR3ANCNFSM4GTHEOKQ . You are receiving this because you commented.Message ID: @.***>

HamzaHajeir avatar Aug 05 '22 08:08 HamzaHajeir

This issue has been automatically marked as stale because it has not had recent activity. Please provide more details or it will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Sep 08 '22 22:09 stale[bot]

In Feb 2024 this has still not been resolved. Project with all freshly updated libraries and core for ESP32, transferred to PlatformIO, yields this: Arduino (v1.8): 1040501 bytes. PlatformIO: 1325369 bytes. That is approx. +30% or +280kB of the precious space that must be taken away from my file system. Not good.

Tried with all sorts of -O switches for the compiler, but the google search reveals that -Os should be already active on both platforms. Without positive results.

aly-fly avatar Feb 11 '24 15:02 aly-fly

@aly-fly Which core used for ArduinoIDE and which Platform for Platformio? I do not see any relevant size difference comparing core 2.0.14 and platform 6.5.0 (= core 2.0.14 too)

Jason2866 avatar Feb 11 '24 17:02 Jason2866

It is weird. In one simple project I used "Import Arduino" function. Moved local libraries to the .\lib folder. And got size difference listed above. Another, complex project, I manually created the PIO project and manually moved all files into the .\src folder. Here the compiled code is about the same size. Then, made empty projects in both and got about the same code size. PIO.ini file has same contents on both projects, and partitions are the same too. Core and Libraries are the most recent in all cases. I have no clue why this happened. Maybe the "import arduino" makes something strange in the background.

aly-fly avatar Feb 12 '24 09:02 aly-fly

Following. this is a huge resource issue.

ramiss avatar Feb 13 '24 04:02 ramiss

@ramiss try to follow my steps. I was able to get same code size.

aly-fly avatar Feb 13 '24 08:02 aly-fly

@ramiss try to follow my steps. I was able to get same code size.

I'm confused by your steps and your outcomes. Are you saying you moved 3rd party libraries under the \lib folder to get smaller binary or larger binary? You mentioned the Import Arduino but then I don't see a step to influence that side of it.

ramiss avatar Feb 13 '24 16:02 ramiss

I manually created the PIO project and manually moved all source files into the .\src folder. External libraries are defined in platformio.ini and downloaded before compilation by PIO. .\lib folder is empty.

aly-fly avatar Feb 14 '24 10:02 aly-fly

I'm new to PIO, thought I would give it a go - have an Arduino Leonardo project that uses 99% of memory, cut and paste the code into PIO, installed dependent libraries, and it compiles to 112% of memory i.e. not enough now! Checked compiler flags, the important ones all seem the same. I'm not knowledgable in C++/GCC etc. to really understand all the flags and what's going on.

Tried what I think @aly-fly suggested - manually created a new project (completely empty), copied over .\src folder (main.cpp), copied over the platformio.ini, PIO downloaded all the library files etc. - compiled and, file size still the same larger 112%

From what I can tell, arduino ide is using avr-g++.exe 7.3.0 and PIO is also referencing avr 7.3.0

Also tried removing all PIO library references, copying over the libraries the Arduino IDE is using directly into the PIO project folder with my code and using those instead (so are identical) - still compiles to 112%.

Similar...

  • https://community.platformio.org/t/trying-to-reduce-espressif32-and-espressif8266-build-size-to-match-arduino-studio/27690/9
  • https://github.com/platformio/platform-espressif32/issues/791
  • https://github.com/espressif/arduino-esp32/issues/6687

Last link seems to indicate its something PIO need to fix

ITheP avatar Mar 06 '24 00:03 ITheP