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

UDK: Запрос/обсуждение нового функционала

CHERTS

Moderator
Команда форума
Если у Вас есть предложения по внедрению нового функционала или хотите обсудить существующий в UDK, то пишите в данной теме.

Внимание: Оффтоп будет удаляться, пожалуйста, придерживайтесь темы! Спасибо!
 

nikolz

Well-known member
Добрый день,
В качестве предложения по развитию.
Было бы замечательно драйверы периферии выделить в единственный каталог для всех примеров,
чтобы не копировать их из примера в пример. (каталоги driver и include/driver)
спасибо.
 

CHERTS

Moderator
Команда форума
Добрый день,
В качестве предложения по развитию.
Было бы замечательно драйверы периферии выделить в единственный каталог для всех примеров,
чтобы не копировать их из примера в пример. (каталоги driver и include/driver)
спасибо.

Так можно было бы сделать, если бы эти драйвера нормально работали, большинство примеров я не проверял в работе с периферией, т.к. у меня нет этой периферии.
Я проверял только факт компиляции без ошибок, о чем пишу в changelog.txt (changelog_ru.txt).

Список непроверенных примеров: esp8266_ili9341, esp8266_pcd8544, EspLightNode, i2c_24xx16, i2c_bh1750, i2c_bmp180, i2c_hd44780, i2c_htu21d, i2c_ina219, i2c_sht21, lpd6803

В ближайшее время проверю на реальном оборудовании: i2c_bh1750, i2c_bmp180

Примеры, проверенные с реальными датчиками: 1wire_ds18b20, i2c_24xx32, dht11_22, dht11, dht22_thingspeak
 

nikolz

Well-known member
Добрый день,
CHERTS
Дело в том, что как раз при отладке или модификации драйвера важно чтобы была одна копия,
а то потом приходится исправлять все копии.
Можно было бы просто указать что драйвер еще не тестировался в комменте к драйверу.
Спасибо
 

CHERTS

Moderator
Команда форума
Дело в том, что как раз при отладке или модификации драйвера важно чтобы была одна копия,
а то потом приходится исправлять все копии.
Можно было бы просто указать что драйвер еще не тестировался в комменте к драйверу.
Спасибо
95% драйверов писал не я, они взяты с github, логично предположить, что авторы на github эти драйвера возможно тестировали, а может и нет, они об этом не пишут.
Например мой драйвер i2c_24xx32 был написан исходя из примера i2c_24xx16 , с исправлениями в соответствии с документацией на чип ATMEL AT24C512, в результате написания тестов на чтение-запись EEPROM блоками был найден баг в библиотеке i2c_24xx16.c от zarya, баг я конечно подправил в своей i2c_24xx32.c, но если бы я не тестировал свой i2c_24xx32 на реальном оборудовании, я бы этот баг и не нашел. Из чего я делаю выводы, что многие писатели драйверов не тестировали свои наработки на реальном оборудовании, либо тестировали, но не полностью и не с пристрастием, ну и как обычно не читали или плохо читали спецификации на чипы под которые писали драйвера.
Поэтому нужно все тестировать на реальном железе и только потом включать в свой проект.

Проект DevKit открытый, все исходники лежат на github, я буду только рад если кто-то начнет тестировать все примеры на реальном оборудовании, исправит баги и скомпонует все в одну библиотеку, но пока таких добровольцев нет, а у меня на все нехватает времени.
 

nikolz

Well-known member
CHERTS,
благодарю за ответ.
Планирую тестировать и писать новые,
но хотелось бы не копировать их в разные проекты а собирать в одном каталоге.
В результате была бы библиотека драйверов.
Спасибо
 

CHERTS

Moderator
Команда форума
Планирую тестировать и писать новые,
но хотелось бы не копировать их в разные проекты а собирать в одном каталоге.
В результате была бы библиотека драйверов.
Я только ЗА такой подход, если напишите драйвера под разное оборудование, то я готов включить их в DevKit. Можно выделить отдельный каталог под это дело, например C:\Espressif\ESP8266_SDK\third_party и складывать туда доп. библиотеки.
C:\Espressif\ESP8266_SDK\third_party\lib - для файлов библиотек (*.a)
C:\Espressif\ESP8266_SDK\third_party\include - для заголовочных файлов (*.h)
C:\Espressif\ESP8266_SDK\third_party\src - для исходников
и уже писать примеры в C:\Espressif\examples\ которые бы использовали эти каталоги, модификация Makefile будет минимальна.

В общем пишите и проверяйте драйвера, ну и выкладывайте.
 

pvvx

Активный участник сообщества
[
Планирую тестировать и писать новые,
но хотелось бы не копировать их в разные проекты а собирать в одном каталоге.
В результате была бы библиотека драйверов.
А многим эта свалка не нужна - данные драйвера узкоспециализированы и заточены на одну тупенькую системную организацию. Я вот запользую полностью всю аппаратную часть и желаю работать с периферией по прерываниям. Но это не обеспечивает ни один из выложенных драйверов :)
Так что я вообще за разделение UDK на части. Примеры, SDK и траслятор надо раздельными, чтобы не переставляло всё на свете при обновлении. А то каждый раз приходиться распаковывать и муторно вспоминать, что копировать и/или изменить/дополнить из старой папки.
 

CHERTS

Moderator
Команда форума
[А многим эта свалка не нужна - данные драйвера узкоспециализированы и заточены на одну тупенькую системную организацию. Я вот запользую полностью всю аппаратную часть и желаю работать с периферией по прерываниям. Но это не обеспечивает ни один из выложенных драйверов :)
Так что я вообще за разделение UDK на части. Примеры, SDK и траслятор надо раздельными, чтобы не переставляло всё на свете при обновлении. А то каждый раз приходиться распаковывать и муторно вспоминать, что копировать и/или изменить/дополнить из старой папки.
Можно ставить новый DevKit поверх старого, только старые хвосты будут оставаться, а так все будет рабочее. А для своих проектов нужно создать отдельную папку, например у меня это c:\Espressif\project, она не удаляется при удалении DevKit
 

pvvx

Активный участник сообщества
Можно ставить новый DevKit поверх старого, только старые хвосты будут оставаться, а так все будет рабочее. А для своих проектов нужно создать отдельную папку, например у меня это c:\Espressif\project, она не удаляется при удалении DevKit
А папка с C:\Espressif\ESP8266_SDK переписывается, а там SDK0.9.6, а не 0.9.5 и переписываются все *.h и другие файлы. Примеры меня не интересуют :) В итоге всё пришлось перетащить в проект и инсталляция переписывает только компилятор (остальное не требуется). Вот его бы отдельно и надо.
 

CHERTS

Moderator
Команда форума
А папка с C:\Espressif\ESP8266_SDK переписывается, а там SDK0.9.6, а не 0.9.5 и переписываются все *.h и другие файлы
Что мешает создать папку c:\Espressif\ESP8266_SDK_096 по аналогии как лежит папка _094 и подправить в Makefile 1 строку? По моему это проще чем городить огород со сложным Makefile и тащить в проекте кучу лишних библиотек и *.h файлов.
 

pvvx

Активный участник сообщества
Что мешает создать папку c:\Espressif\ESP8266_SDK_096 по аналогии как лежит папка _094 и подправить в Makefile 1 строку? По моему это проще чем городить огород со сложным Makefile и тащить в проекте кучу лишних библиотек и *.h файлов.
Это очень сложно, т.к. потом не стыканется у других. Придется держать кучу проектов - один для своей конфиги, а другой для народу...
Та всё равно у вас не полный SDK - без PDF и Eclipse тоже не заточена на lx106 - отсутствуют конфигураторы и не подлинкованы хелпы, да много ещё чего... В итоге безразлично - надо всегда эти огрызки руками разгребать...
Лучше бы сказали чё за C:\Espressif\xtensa-lx106-elf\lib\ldscripts и кем это редактировать. В полной версии их много и ими выбирается конфига линковщика... eagle.app.v6.ld - это один из файлов такого каталога (бывший elf32xtensa.xbn)... Нужно для автоконфигуратора.
Ваш кусок - это выдранный из C:\usr\xtensa\XtDevTools\install\builds\RC-2010.1-win32\lx106\xtensa-elf\lib\linux\ldscripts
 
Последнее редактирование:

CHERTS

Moderator
Команда форума
Это очень сложно, т.к. потом не стыканется у других. Придется держать кучу проектов - один для своей конфиги, а другой для народу...
Прстенькая инструкция из 2 строк и все стыканется и ни какой кучи проектов для себя и других если все унифицировать, делов то на 10 минут, могу привести весь ваш проект к унифицированному виду.

Та всё равно у вас не полный SDK - без PDF и Eclipse тоже не заточена на lx106 - отсутствуют конфигураторы и не подлинкованы хелпы, да много ещё чего...
Не полный, зато бесплатный в отличии от версии от Espressif которые хотят NDA и кучу денег, странная у них вообще позиция.
 

pvvx

Активный участник сообщества
Не полный, зато бесплатный в отличии от версии от Espressif которые хотят NDA и кучу денег, странная у них вообще позиция.
Вы ошибаетесь - у них нету оболочки для SDK. Они скоро вашей будут пользоваться, т.е. продавать её будут. :)
Прстенькая инструкция из 2 строк и все стыканется и ни какой кучи проектов для себя и других если все унифицировать, делов то на 10 минут, могу привести весь ваш проект к унифицированному виду.
Хочу - но у меня проектов уже много и везде всё разное, c разными сегментами загрузки, а вот скрипт линковщика для трансляции луниха на ESP8266 мне не нужен.
 
Последнее редактирование:

CHERTS

Moderator
Команда форума
Вы ошибаетесь - у них нету оболочки для SDK.
Хммм, а та что в инете гуляет с левыми лицензиями чья? Я просто её даже и не пробовал, ибо платная, а подсаживаться на ворованные лицензии не вижу смысла, потом себе дороже выйдет.
 

pvvx

Активный участник сообщества
Хммм, а та что в инете гуляет с левыми лицензиями чья? Я просто её даже и не пробовал, ибо платная, а подсаживаться на ворованные лицензии не вижу смысла, потом себе дороже выйдет.
А смотреть её никто не запрещал. Там обычная древняя версия xtensa. В ней нет ESP8266 и от неё все пользуют только консольный компилятор. Линковшик у Espressif тоже ручками в командной строке :)

Try our SDK Software Development Toolkit for 15 days absolutely free. http://ip.cadence.com/ipportfolio/tensilica-ip
 
Последнее редактирование:

nikolz

Well-known member
pvvx,
[А многим эта свалка не нужна - данные драйвера узкоспециализированы и заточены на одну тупенькую системную организацию. Я вот запользую полностью всю аппаратную часть и желаю работать с периферией по прерываниям. Но это не обеспечивает ни один из выложенных драйверов :)
Так что я вообще за разделение UDK на части. Примеры, SDK и траслятор надо раздельными, чтобы не переставляло всё на свете при обновлении. А то каждый раз приходиться распаковывать и муторно вспоминать, что копировать и/или изменить/дополнить из старой папки.
Добрый день,
Я тоже буду делать по-возможности все с прерываниями,
так как ресурсы процессора позволяют работать с большим числом датчиков.
Да и задачи, которые я хочу решить немного сложнее чем общеизвестные задачи умного дома.
Но пока я не нашел нормальной документации по данному механизму в ESP и нахожусь на стадии поиска и изучения.
--------------------------------
Но вопрос, который я задал каcается не конкретного драйвера,
а общих принципов построения программных комплексов для проектирования микропроцессорных систем.
Копировать в каждый проект даже один драйвер UART - это излишество.
--------------------------------------------
Полагаю, что любой модуль, общий для множества проектов, должен быть в SDK в одном месте и в одном экземпляре.
Тогда легко его модернизировать.
Но как говорится "Дареному коню в зубы не смотрят".
Поэтому благодарю за существующее решение.
 

pvvx

Активный участник сообщества
Но вопрос, который я задал каcается не конкретного драйвера,
а общих принципов построения программных комплексов для проектирования микропроцессорных систем.
Копировать в каждый проект даже один драйвер UART - это излишество.
По этому и надо примеры для детей в один пакет, а среду в другой :) А счас всё в куче.
Но, данный UDK, рассчитан для "игры" в нажатие кнопки "компиле". Его ставят поиграть - после поиска как нажать кнопку копиляции, обычно, пишут на форумы что что-то там не компилится. На этом игра для большинства заканчивается. Больше вопросов по нему ни у кого нет и не встречается на форумах, да нет ни одного рабочего и сопровождаемого проекта на нем в gitхабе :)
ИМХО Связано это причиной отсутствия автоматического конфигуратора проекта под SDK. В итоге это не DevKit, а просто раздельные копилятор и базовая Eclipse, ещё и eclipse-cpp-luna-SR1-win32, а не SR2.
 
Последнее редактирование:
Сверху Снизу