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

UDK: Общие баги/глюки/проблемы

DarkSide

New member
В ветке master на github уже новый скрипт сборки компилятора версии 5.2, но он пока в стадии тестирования.
Да, я знаю. Именно с его сборкой у меня были проблемы, которые решились выкачиванием всех зависимостей не с Крымского IP. Сейчас компилятор собран и работает. Никаких проблем за пару дней использования замечено не было.
 

roadfox

New member
Коллеги, доброго времени суток!
Родной проект "at" в 2.0.9 из "коробки" не собирается. Для успешной сборки в Makefile строка библиотек должна выглядеть так:
# libraries used in this project, mainly provided by the SDK
LIBS = c gcc hal phy pp net80211 lwip wpa main json upgrade smartconfig at crypto

Далее не по теме, но может кто знает рецепт
Заменив проект "at" более свежим из ESP8266_NONOS_SDK_V1.5.2_16_01_29 и заменив файлы SDK в UDK 2.0.9,
дополнив Makefile:

# libraries used in this project, mainly provided by the SDK
LIBS = c gcc hal phy pp net80211 lwip wpa main json upgrade smartconfig at crypto airkiss wps ssl

а так же увеличив объем памяти в eagle.app.v6.ld:

org = 0x40240000, len = 0x0fc000

проект собирается и работает все, кроме WPS
При команде WPS проц ребутится секунды через две-три.
При этом прошивка из SDK работает без проблем.
В чем может быть трабла?
 

RRRLock

New member
Добрый день. Столкнулся с проблемой прошивки ESP8266.
Плата ESP-07.
Все выводы соединил как на схеме.
При запуске цели flash выдает следующие ошибки:

Traceback (most recent call last):
File "esptool.py", line 567, in <module>
File "esptool.py", line 160, in connect
Exception: Failed to connect
C:/Espressif/examples/hello_world/Makefile:220: recipe for target 'flash' failed
mingw32-make.exe: *** [flash] Error 255

Внес изменения в файл esptool.py как описано в статье Работа с ESP8266: Собираем компилятор и пишем первую прошивку. Не помогло.
 
Последнее редактирование:

RRRLock

New member
Вопрос связанный с Eclipse и UDK.
Можно ли воспользоваться отладчиком для проверки своей прошивки? Как я понял, такая возможность отсутствует ввиду отсутствия интерфейса JTAG. Или же как-то можно отлаживаться через UART ?
 
Последнее редактирование:

CHERTS

Moderator
Команда форума
Вопрос связанный с Eclipse и UDK.
Можно ли воспользоваться отладчиком для проверки своей прошивки? Как я понял, такая возможность отсутствует ввиду отсутствия интерфейса JTAG. Или же как-то можно отлаживаться через UART ?
По JTAG вам сюда
 

NutsXXXL

New member
Замечание о том зачем вообще нужен mingw...
мне изначально не понравилось что в udk этот mingw ставиться с кучей всего
но в нем есть такая полезная шутка как sh.exe
для меня было такое открытие - если есть sh.exe то make.exe его вызывает для выполнения команд из makefile
а если нет - то вызывает через интерпретатор windows, который имеет некоторые отличия от sh.exe:

- не работает set -e
- нельзя разделять команды ;
- mkdir вызывается встроенный в винду и в нем не работают некоторые ключи

в результате makefile от exppressif генерируют кучу ошибок в строчках типа
set -e; make -C subdir1; make -C subdir2;
mkdir -p name;

а стоит добавить в path файл sh.exe и происходит великое чудо - все работает. проврил несколько раз.

@vphys если я правильно понял то в tootchain от sysprogs утилиты sh.exe штатно нет ? (я изначально им проект пытался собрать) как тогда он вообще работает :)
 

Sanya_kv

New member
Очень долго разбирался с проблемой прошивки:
Код:
load 0x40100000, len 30600, room 16
tail 8
chksum 0xef
load 0x33333333, len 858993459, room 0
flash read err, ets_unpack_flash_code
ets_main.c
Проблема возникала даже в простом примере Hello World
Источник ошибки в разных регистрах значений параметров в Makefile:
# SPI_MODE: qio, qout, dio, dout
SPI_MODE ?= dio

При этом далее по тексту:
ifeq ($(SPI_MODE), DIO)
в результате flashimageoptions был равен -ff 40m -fm qio -fs 32m вместо -ff 40m -fm dio -fs 32m
т.к. режим spi falsh был dio возникала данная ошибка.

Для исключения в дальнейшем проблем необходимо в примерах привести значения параметров к одному регистру.
 

-VenoM-

New member
Ребята, прошу помощи с
GitHub - CHERTS/esp8266-noolite: Example using ESP8266 and nooLite MT1132
Скачал, при компиле выдаёт:

C:/esp8266-noolite-master/Makefile:187: recipe for target 'build/app.out' failed
process_begin: CreateProcess(NULL, c:/Espressif/utils/ESP8266/esptool.exe elf2image build/app.out -ofirmware/ -ff 40m -fm qio -fs 4m, ...) failed.
make (e=2): Не удается найти указанный файл.

mingw32-make.exe: *** [build/app.out] Error 2

Какой не может найти файл - непонятно. При двойном клике на ошибку кидает на строку 187 $(vecho) "LD $@"
Сборка компилятора вся автора статьи. Предыдущий проект работал, а тут увы:(((
Работа с ESP8266: Пишем прошивку для управления системой nooLite
 

-VenoM-

New member
Спасибо, вы оказались правы. Хотя... в старом makefile всё работало именно так:
[HASHTAG]#ESPTOOL[/HASHTAG] ?= $(SDK_TOOLS)/esptool.exe
Заменил эту строку на подробный путь:
ESPTOOL ?=C:\Espressif\utils\esptool.exe

И оно компильнулось.

P.S. Пишу под PIC, понадобилось сделать удалёнку (проц общается с ESP8266 по SPI, ESP шлёт данные на сервак). Всегда материл microchip, но по сравнению с китай-процом они просто боги удобства отладки:))). Однако альтернативы нет с готовым WIFI-стеком, тем более за эти деньги. Так что буду дальше проламывать головой стену.
 

-VenoM-

New member
Вот всё что выдаёт при компиляции с ошибкой:

Код:
16:43:21 **** Build of configuration Default for project esp8266-noolite ****
mingw32-make.exe -f C:/esp8266-noolite-master/Makefile flash
CC driver/uart.c
CC user/utils.c
CC user/wifi.c
CC user/noolite_config_server.c
CC user/user_main.c
CC user/noolite_control_server.c
CC user/flash_param.c
CC user/noolite_platform.c
AR build/app_app.a
LD build/app.out
------------------------------------------------------------------------------
Section info:

build/app.out:     file format elf32-xtensa-le

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .data         000007b4  3ffe8000  3ffe8000  000000e0  2**4
                  CONTENTS, ALLOC, LOAD, DATA
  1 .rodata       00001724  3ffe87b8  3ffe87b8  00000898  2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  2 .bss          00006448  3ffe9ee0  3ffe9ee0  00001fc0  2**4
                  ALLOC
  3 .text         00006e0a  40100000  40100000  00001fbc  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  4 .irom0.text   0002f714  40240000  40240000  00008dd0  2**4
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
------------------------------------------------------------------------------
C:/esp8266-noolite-master/Makefile:189: recipe for target 'build/app.out' failed
process_begin: CreateProcess(NULL, c:/Espressif/utils/ESP8266/esptool.exe elf2image build/app.out -ofirmware/ -ff 40m -fm qio -fs 4m, ...) failed.
make (e=2): Не удается найти указанный файл.

mingw32-make.exe: *** [build/app.out] Error 2

При успешной компиляции, с подробным путём к
esptool.exe

Код:
16:48:28 **** Build of configuration Default for project esp8266-noolite ****
mingw32-make.exe -f C:/esp8266-noolite-master/Makefile all
CC driver/uart.c
CC user/utils.c
CC user/wifi.c
CC user/noolite_config_server.c
CC user/user_main.c
CC user/noolite_control_server.c
CC user/flash_param.c
CC user/noolite_platform.c
AR build/app_app.a
LD build/app.out
------------------------------------------------------------------------------
Section info:

build/app.out:     file format elf32-xtensa-le

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .data         000007b4  3ffe8000  3ffe8000  000000e0  2**4
                  CONTENTS, ALLOC, LOAD, DATA
  1 .rodata       00001724  3ffe87b8  3ffe87b8  00000898  2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  2 .bss          00006448  3ffe9ee0  3ffe9ee0  00001fc0  2**4
                  ALLOC
  3 .text         00006e0a  40100000  40100000  00001fbc  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  4 .irom0.text   0002f714  40240000  40240000  00008dd0  2**4
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
------------------------------------------------------------------------------
   Section|                   Description| Start (hex)|   End (hex)|Used space
------------------------------------------------------------------------------
      data|        Initialized Data (RAM)|    3FFE8000|    3FFE87B4|    1972
    rodata|           ReadOnly Data (RAM)|    3FFE87B8|    3FFE9EDC|    5924
       bss|      Uninitialized Data (RAM)|    3FFE9EE0|    3FFF0328|   25672
      text|          Uncached Code (IRAM)|    40100000|    40106E0A|   28170
irom0_text|             Cached Code (SPI)|    40240000|    4026F714|  194324
------------------------------------------------------------------------------
Entry Point : 40100004 call_user_start()
Total Used RAM : 33568
Free RAM : 48352
Free IRam : 4598 or 20982 if 48k IRam
------------------------------------------------------------------------------
Generate 0x00000.bin and 0x40000.bin successully in folder firmware.
0x00000.bin-------->0x00000
0x40000.bin-------->0x40000
Done
 

sharikov

Active member
v2.1.0 Beta (24.05.2016)
компилятор падает на объявлении констант при компиляции вычислений с плавающей точкой (float)
винда пишет "прекращена работа программы "cc1.exe"
в консоли сообщения:
error: floating constant truncated to zero [-Werror=overflow]
 

nikolz

Well-known member
Добрый день,
Проблема с новой сборкой UDK 2.2
Ставлю в common_nonos.mk
В (TARGET_OUT): $(APP_AR)
для вывода информации о распределении памяти следующую строку, которая работает в предыдущем UDK:
$(Q) $(ESPTOOL) elf2image $(TARGET_OUT) -o$(FW_BASE)/ $(flashimageoptions)
получаю ошибку:
12:43:57 **** Build of configuration Default for project 1wire_ds18b20 ****
mingw32-make.exe -f C:/Espressif/examples/ESP8266/1wire_ds18b20/Makefile all
CC driver/uart.c
CC driver/ds18b20.c
CC user/user_main.c
AR build/app_app.a
LD build/app.out
Run objcopy, please wait...
Traceback (most recent call last):
File "esptool.py", line 26, in <module>
File "serial\__init__.pyo", line 27, in <module>
File "serial\serialwin32.pyo", line 15, in <module>
File "serial\win32.pyo", line 182, in <module>
File "ctypes\__init__.pyo", line 375, in __getattr__
File "ctypes\__init__.pyo", line 380, in __getitem__
AttributeError: function 'CancelIoEx' not found
../common_nonos.mk:230: recipe for target 'build/app.out' failed
mingw32-make.exe: *** [build/app.out] Error 255

12:44:03 Build Finished (took 5s.468ms)
Как исправить?
Спасибо
 

CHERTS

Moderator
Команда форума
Как исправить?
Спасибо
Error on Python serial import

Проблема в pyserial под WinXP, если фиксы для исправления этой беды не внесли в pyserial, то вот они
fix CancelIoEx not found on old windows versions (2003, XP) · WorldException/pyserial@c4dd5a2 · GitHub

Добавлено:
Данные фиксы в pyserial не внесены, так что чтобы решить проблему нужно делать это самостоятельно, я внесу изменения в свою сборку в 2.2.1 (релиз сегодня-завтра)
 

vicvladol

New member
Доброго, всем, времени суток!

Устанавливал UDK по статье с geektimes.ru
Обстановка:
Win7 x64;
UDK 2.2.1
Делал все по инструкци, кроме одного: ставил все на диск Е (на С с местом напряженка).
Все пути, где только нашел, исправил. Проблему с вызовом при сборке проекта встроенных команд mkdir, mv и rm решил.
Мучаю проект hello_world. Получаю в консоли следующее:

Код:
18:32:16 **** Build of configuration Default for project hello_world ****
mingw32-make.exe -f E:/Espressif/examples/ESP8266/hello_world/Makefile all
"CC driver/uart.c"
"CC user/user_main.c"
"AR build/app_app.a"
"LD build/app.out"
"Run objcopy, please wait..."
"objcopy done"
"Run gen_appbin.exe"
���⥬� �� 㤠���� ���� 㪠����� ����.
no entry point!!
/usr/bin/mv: cannot stat `eagle.app.flash.bin': No such file or directory
../common_nonos.mk:230: recipe for target 'build/app.out' failed
mingw32-make.exe: *** [build/app.out] Error 1

18:32:20 Build Finished (took 4s.304ms)
Аьбракадабра после строки "Run gen_appbin.exe" - это так и выводится. Добавил в eclipse.ini сточку
-Dfile.encoding=UTF-8
не помогло. Мои сообщения, которые я сам пытался выводить, стали русскими, а эта сторока понятней не стала.

Очевидно, что вызов
e:/Espressif/utils/ESP8266/gen_appbin.exe build/app.out 0 0 0 2 0
не находит какой-то entry point, ну и далее по списку...

Вопрос: Как с этим бороться, куда копать?
 

businka

New member
Устанавливал UDK по статье с geektimes.ru
Обстановка:
Win7 x64;
UDK 2.2.1
Делал все по инструкци, ставил на С.
Мучаю проект hello_world. Получаю в консоли следующее:
Код:
14:42:07 **** Build of configuration Default for project hello_world ****
mingw32-make.exe -f C:/Espressif/examples/ESP8266/hello_world/Makefile all
CC driver/uart.c
CC user/user_main.c
AR build/app_app.a
LD build/app.out
Run objcopy, please wait...
objcopy done
Run gen_appbin.exe
No boot needed.
Generate eagle.flash.bin and eagle.irom0text.bin successully in folder firmware
eagle.flash.bin-------->0x00000
eagle.irom0text.bin---->0x10000
Done
на девайс заливается но hello world не наблюдается. в c++ совсем новичек. помигите плз.

при комприляции на flesh разве такая строка должна быть
mingw32-make.exe -f C:/Espressif/examples/ESP8266/hello_world/Makefile flash
c:/Espressif/utils/ESP8266/esptool.exe -p COM4 -b 115200 write_flash -ff 40m -fm qio -fs 8m 0x00000 firmware/eagle.flash.bin 0x10000 firmware/eagle.irom0text.bin

напрягает последние два названия бинарников и их адреса, не такие как в примере
и на видио собирается оно через esptools.py. может в этом косяк?
пробую на nodemcu . не знаю имеет это значение или нет
 
Последнее редактирование:
Сверху Снизу