• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь PlatformIO и нативный SDK

condemil

New member
PlatformIO убирает необходимость самому собирать тулчейн чем очень удобен для более быстрого вхождения. У меня получилось написать, собрать, прошить и запустить простой пример с использованием библиотек от проекта ардуино (framework = arduino в platformio.ini), но при попытке использовать нативный SDK устройство выдаёт:

[inline]Fatal exception (0): epc1=0x40240655, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
[/inline]

Может кто-то уже сталкивался с таким поведением или знает в чем может бы проблема.

Накиданный мной пример состоит из пустого файла [inline]user_config.h[/inline] и [inline]user_main.c[/inline] со следующем содержанием:

Код:
#include "ets_sys.h"
#include "osapi.h"

void user_init(void)
{
    os_printf("SDK version:%s\n", system_get_sdk_version());
}
 

Victor

Administrator
Команда форума
в чем может бы проблема
Первое, что приходит на ум
Код:
void user_rf_pre_init(void)
{
}
Не думаю, что сейчас это хорошая затея (на мой субъективный взгляд)
PlatformIO с ESP8266 через Arduino IDE core. Arduino IDE быстро развивается и не думаю, что в PlatformIO так же оперативно все обновляют.
 

condemil

New member
Добавлять функцию [inline]user_rf_pre_init[/inline] также пробовал, это не дало каких-либо изменений.

Я не совсем понял Вашу мысль про PlatformIO. Если Вы про то, что можно использовать SDK из проекта Arduino, то как бы Вы собирали проект? Если через makefile, то это нужно разбираться с процессом сборки под ESP8266 что уже не является быстрым стартом с нативным SDK.
 

Victor

Administrator
Команда форума

condemil

New member
В их понятиях Framework это набор библиотек, которые будут собраны и добавлены к проекту

Например, при запуске без [inline]framework = arduino[/inline] будет выполнено следующее:

Код:
ph $ platformio run

[Sat Jun 27 14:00:28 2015] Processing esp01 (platform: espressif, upload_port: /dev/cu.SLAB_USBtoUART, board: esp01, targets: upload)

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

xtensa-lx106-elf-gcc -o .pioenvs/esp01/src/user_main.o -c -std=c99 -Wpointer-arith -Wno-implicit-function-declaration -Wl,-EL -fno-inline-functions -nostdlib -Os -mlongcalls -mtext-section-literals -falign-functions=4 -U__STRICT_ANSI__ -MMD -DF_CPU=80000000L -D__ets__ -DICACHE_FLASH -DARDUINO_ESP8266_ESP01 -DARDUINO_ARCH_ESP8266 -DESP8266 -DPLATFORMIO=020102 -I/Users/ph/.platformio/packages/sdk-esp8266/include -Isrc src/user_main.c

xtensa-lx106-elf-gcc -o .pioenvs/esp01/firmware.elf -nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static -T /Users/ph/.platformio/packages/sdk-esp8266/ld/eagle.app.v6.ld .pioenvs/esp01/src/user_main.o -L/Users/ph/.platformio/packages/sdk-esp8266/lib -L.pioenvs/esp01 -Wl,--start-group -lc -lgcc -lphy -lpp -lnet80211 -llwip -lwpa -lmain -ljson -lupgrade -lsmartconfig -lat -lssl -Wl,--end-group

/Users/ph/.platformio/packages/tool-esptool/esptool -eo .pioenvs/esp01/firmware.elf -bo .pioenvs/esp01/firmware_00000.bin -bm qio -bf 40 -bz 512K -bs .text -bs .data -bs .rodata -bc -ec -eo .pioenvs/esp01/firmware.elf -es .irom0.text .pioenvs/esp01/firmware_10000.bin -ec -v
Так что Arduino IDE не используется если этого не требуется
 

Ivan Kravets

New member
PlatformIO убирает необходимость самому собирать тулчейн чем очень удобен для более быстрого вхождения. У меня получилось написать, собрать, прошить и запустить простой пример с использованием библиотек от проекта ардуино (framework = arduino в platformio.ini), но при попытке использовать нативный SDK устройство выдаёт:

[inline]Fatal exception (0): epc1=0x40240655, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
[/inline]

Может кто-то уже сталкивался с таким поведением или знает в чем может бы проблема.

Накиданный мной пример состоит из пустого файла [inline]user_config.h[/inline] и [inline]user_main.c[/inline] со следующем содержанием:

Код:
#include "ets_sys.h"
#include "osapi.h"

void user_init(void)
{
    os_printf("SDK version:%s\n", system_get_sdk_version());
}
Здравствуйте!

Откройте, пожалуйста, новый "тикет" здесь https://github.com/platformio/platformio/issues
В понедельник разберемся.

Спасибо за использование http://platformio.org
 
Сверху Снизу