• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Ошибки при сборке примеров в UDK

Alex

Member
UDK собран на Win7 x64

Возможно стоит собрать компилятор на x86 системе, займусь этим на сл.неделе. Просто нет под руками x86
У меня все сегодня установлено на чистую Win 7 64. Все файлы скачаны по вашим ссылкам и установлены по Вашей инструкции.
ошибка с floating осталась.
 

sharikov

Active member
У меня все сегодня установлено на чистую Win 7 64. Все файлы скачаны по вашим ссылкам и установлены по Вашей инструкции.
ошибка с floating осталась.
Аналогично только установлено на два компьютера: один Win7 64bit, другой Win7 32bit. float одинаково не работает на обоих.
 

Ondreyk

New member
Вот тут про эту проблему говорится, как я понимаю: http://stackoverflow.com/questions/5124949/how-to-disable-gcc-warning-floating-constant-exceeds-range-and-floating-const .
Правильно я понимаю что, там речь идет всего лишь об переводе статуса ошибки в статус предупреждения?
Пробовал убрать флаг Werror в Makefile, да сыплется куча предупреждений, но сама проблема не решается ведь? Или там о другом?

После комента Werror, компилятор крашится сошибкой либо, завершает компиляцию с ошибкой
Код:
c_math.c:110:9: warning: floating constant truncated to zero [-Woverflow]
         w2 -= 0.0625;
         ^
c_math.c:115:9: internal compiler error: Segmentation fault
 

nikolz

Well-known member
UDK (esp_iot_sdk_v1.3.0_15_08_08 )
на XP
собирает примеры,
кроме esp_mesh_sdk_app_light,
без ошибок.
-----------------------
а вот
UDK ( esp_iot_sdk_v1.5.0_15_11_27)
на XP
уже дает ошибки в пяти примерах.
-------------------------
 
Последнее редактирование:

Ondreyk

New member
Получилось собрать проекты после самостоятельно пересборки xtensa. Правда достигнуть Done в сборке xtensa не получилось, но проекты с ней все равно собираются отлично. Я даже последний git nodemcu-frimware c ветки master смог собрать (не без мелких правок конечно).
 
Последнее редактирование:

CHERTS

Moderator
Команда форума
Получилось собрать проекты после самостоятельно пересборки xtensa
На какой ОС пересобирали компилятор, разрядность ОС?

P.S. Если возьмете текущий свежий build-xtensa-lx106-elf.sh (я его буквально вчера пофиксил), то с ним компилятор собирается от и до без ошибок до Done
 

CHERTS

Moderator
Команда форума
Вобщем такс...
Поставил только что на VirtualBox - Windows 7 x86 + SP1, далее MinGW + нужные пакеты с помощью моего же скрипта как описано в п.5-6 вот тут

Кстате! Внимание
, не так давно товарищи из MinGW сделали обновление базового компилятора, раньше ставился gcc 4.7.x, а сейчас ставится 5.3.0, в связи с этим я переписал install-mingw-package.bat чтобы он стягивал актуальный архив с кэшем пакетов mingw с моего сайта, в принципе кэш и не нужен, но я столкнулся буквально вчера с проблемой, что некоторые пакеты для mingw не смогли скачаться с сервера mingw, скачались пустышки с ошибками, и mingw-get успешно их пережевал и сказал, что все ОК, все пакеты проинсталлировались, на деле вышло, что в среде mingw не оказалось таких базовых программ как mkdir и прочее, а так же оказался неполным perl, а он жизненно важен для сборки gcc. Так что лучше не ставить доп.пакеты с помощью моего скрипта, но в нем кэш для свежей версии mingw с gcc 5.3, то есть по нормальному нужно удалить всю папку C:\MinGW и поставить MinGW заново.

Идем дальше, Windows 7 x86 + SP1, далее MinGW, python-2.7.12, далее ставлю мой UDK 2.1.0, открываю Коммадную строку (в папке C:\Espressif\ есть ярлык "Командная строка Unofficial Development Kit for Espressif ESP8266"), Eclipse мне пока не нужен, в командной строке перехожу по примерам, зашел в те примеры на которые были ошибки у nikolz - esp8266_ili9341, i2c_bmp180, i2c_htu21d и пр. и никаких ошибок floating constant truncated to zero при сборке, все успешно собирается.

Вот такие пироги. Так что дело не в ОС и не в UDK, дело скорее всего... даже не знаю в чем, я грешу на MinGW...

Снесите MinGW и поставьте заново как описано у меня в п.5-6 вот тут
 

Ondreyk

New member
Код:
Имя узла:                         *
Название ОС:                      Microsoft Windows 7 Профессиональная
Версия ОС:                        6.1.7601 Service Pack 1 сборка 7601
Изготовитель ОС:                  Microsoft Corporation
Параметры ОС:                     Изолированная рабочая станция
Сборка ОС:                        Multiprocessor Free
Зарегистрированный владелец:      **
Зарегистрированная организация:   ***
Код продукта:                     ***
Дата установки:                   18.04.2015, 14:08:10
Время загрузки системы:           03.09.2016, 0:08:01
Изготовитель системы:             Gigabyte Technology Co., Ltd.
Модель системы:                   P31-DS3L
Тип системы:                      x64-based PC
Процессор(ы):                     Число процессоров - 1.
                                  [01]: Intel64 Family 6 Model 15 Stepping 11 GenuineIntel ~2333 МГц
Версия BIOS:                      Award Software International, Inc. F10A, 30.07.2008
 
Последнее редактирование:

sharikov

Active member
Так что дело не в ОС и не в UDK, дело скорее всего... даже не знаю в чем, я грешу на MinGW...
Снесите MinGW и поставьте заново как описано у меня в п.5-6 вот тут
SysGCC исправно компилирует float на той же машине где проблемный UDK (т.е MinGW одинаковый). На float падает CC1.exe с диагнозом "segmentation fault". Проверьте системные зависимости при сборке, может библиотеки не те.
Я бы с радостью ушел на SysGCC (или на любой другой работающий компилятор) да "свалка" pvvx гвоздями прибита к библиотекам UDK а в SysGCC библиотеки отличаются из-за чего проект не собирается. Примеры основанные на чистом SDK собираются.
 

Alex

Member
Переставил MinGW. Все та же проблема. Вопрос к тем у кого такой проблемы нет. Windows часом не английская версия?

Setting environment for using Unofficial Development Kit for Espressif ESP8266 t
ools.

C:\Espressif\examples\ESP8266>cd i2c_bmp180

C:\Espressif\examples\ESP8266\i2c_bmp180>make
CC driver/i2c_bmp180.c
driver/i2c_bmp180.c: In function 'BMP180_CalcAltitude':
driver/i2c_bmp180.c:299:2: error: floating constant truncated to zero [-Werror=o
verflow]
return (int32_t)(pow(((float)MYALTITUDE/44330)+1,5.255F)*pressure);
^
cc1.exe: all warnings being treated as errors
make: *** [build/driver/i2c_bmp180.o] Error 1

C:\Espressif\examples\ESP8266\i2c_bmp180>
 
Последнее редактирование:

Alex

Member
Вообщем поменял я файл cc1.exe на файл из версии UDK 209. И все пучком :)
 

pvvx

Активный участник сообщества
Переставил MinGW. Все та же проблема. Вопрос к тем у кого такой проблемы нет. Windows часом не английская версия?
Русская WIN7 'Максимальная' x64, ставилась при появлении (не переставлялась, прошла все обновления - захламлена по самое...) Ошибок с float нет.
Может беда с региональными установки всяких разделителей? Ну там запятая или точка....
 

Alex

Member
Странно все это однако.

Setting environment for using Unofficial Development Kit for Espressif ESP8266 t
ools.

C:\Espressif\examples\ESP8266>cd i2c_BMP180

C:\Espressif\examples\ESP8266\i2c_bmp180>make clean

C:\Espressif\examples\ESP8266\i2c_bmp180>make
CC driver/i2c.c
CC driver/i2c_bmp180.c
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

C:\Espressif\examples\ESP8266\i2c_bmp180>
 

nikolz

Well-known member
Странно все это однако.

Setting environment for using Unofficial Development Kit for Espressif ESP8266 t
ools.

C:\Espressif\examples\ESP8266>cd i2c_BMP180

C:\Espressif\examples\ESP8266\i2c_bmp180>make clean

C:\Espressif\examples\ESP8266\i2c_bmp180>make
CC driver/i2c.c
CC driver/i2c_bmp180.c
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

C:\Espressif\examples\ESP8266\i2c_bmp180>
Немного поспешил с ответом.
Осталось два примера с ошибками:
esp8266_ili9341
rboot
 

nikolz

Well-known member
ошибка esp8266_ili9341 удаляется заменой cc1plus, так как этот пример сделан на C+
Т е если взять трансляторы из версии
xtensa-lx106-elf\libexec\gcc\xtensa-lx106-elf\5.1.0
и поставить их в
xtensa-lx106-elf\libexec\gcc\xtensa-lx106-elf\5.2.0
то ОШИБОК нет в sp8266_ili9341
-----------------------
т е причина ошибок gcc\xtensa-lx106-elf\5.2.0
остался пример rboot с ошибкой
 
Последнее редактирование:
Сверху Снизу