Неверная прошивка с использованием статических библиотек

Я работаю на PlatformIO выпуск № 119 и пытаюсь собрать прошивку для ESP8266 SoC и у меня странная проблема.
Могу ли я попросить вас помочь мне понять, в чем разница между связыванием проекта с несколькими объектными файлами и связыванием проекта с этими объектными файлами, которые заархивированы в статической библиотеке (lib.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/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» на файлы * .obj, прошивка будет работать.

~/.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

П.С .: В обоих случаях прошивка компилируется хорошо, без ошибок компоновщика. Однако на устройстве работает только второй подход (с * .objs вместо lib.a).

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]