Добрый день, помогите понять в чем разница между линковкой проекта с помощью объектных файлов и линковки проекта с этими же объектными файлами, но запакованными в статическую библиотеку? В обоих случаях, проект собирается без ошибок, но в прошивке со статическими библиотеками контроллер сваливается в exception.

Например:
Код
> ~/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-g++ -o .pioenvs/esp01_8266/firmware.elf -nostdlib -Wl,--no-check-section -u call_user_start -Wl,-static -T ~/.platformio/packages/ldscripts/script.ld .pioenvs/esp01_8266/src/piomain.o -L~/.platformio/packages/sdk-esp8266/lib -L.pioenvs/esp01_8266 -Wl,--start-group .pioenvs/esp01_8266/libESP8266WebServer.a .pioenvs/esp01_8266/libESP8266WiFi.a -lpp -lmain -lwpa -llwip -lnet80211 -lphy -lhal  -lgcc -lc -Wl,--end-group


Если заменить библиотеки ".pioenvs/esp01_8266/libESP8266WebServer.a ", ".pioenvs/esp01_8266/libESP8266WiFi.a" на соответствующие объектные файлы прошивка работает:

Код
~/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-g++ -o .pioenvs/esp01_8266/firmware.elf -nostdlib -Wl,--no-check-section -u call_user_start -Wl,-static -T ~/.platformio/packages/ldscripts/esp8266.ld .pioenvs/esp01_8266/src/piomain.o -L~/.platformio/packages/sdk-esp8266/lib -L.pioenvs/esp01_8266 -Wl,--start-group .pioenvs/esp01_8266/ESP8266WebServer/ESP8266WebServer.o .pioenvs/esp01_8266/ESP8266WiFi/ESP8266WiFi.o .pioenvs/esp01_8266/ESP8266WiFi/WiFiClient.o .pioenvs/esp01_8266/ESP8266WiFi/WiFiServer.o .pioenvs/esp01_8266/ESP8266WiFi/WiFiUdp.o  -lpp -lmain -lwpa -llwip -lnet80211 -lphy -lhal -lgcc -lc -Wl,--end-group


Заранее спасибо!