romanetz
в линуксах всякие tmpfs есть для этого, виндузятники должны страдать )
SetPf
Ок, попробуем.
SetPf
Я ща глянул там бин директория выглядит так на гите
SetPf
SetPf
Либусб и либфтди вероятно никак не возможно внутрь запихать, так что похоже оно по умолчанию - минимальный вариант.
Dr Zlo
Кто тут смыслит в консольках. Я вот хочу шить ESP чрез JTAG без подтягивания зависимостей. Всяких esp-idf и вот всей этой огромной хрени что оно с собой тянет.
Да, тебе надо ручками собрать все зависимости и прочее в папочку и сделать из этого портабл приложение
SetPf
Да, тебе надо ручками собрать все зависимости и прочее в папочку и сделать из этого портабл приложение
Вообще разве вот этот exe + dll не является ли всеми зависимостями (если бы были где то рядом бы лежали?)
Dr Zlo
SetPf
ketbul
Не. Там скрипт будет, который все запустит с нужными командами. Просто хочется что бы опеноцд там как exe какой был, со всеми зависимостями внутри.
Exe не со всеми зависимостями внутри) для винды самое простое положить рядом и посмотреть на что ругнется
ketbul
Если он умеет
ketbul
В консольке запустить и посмотреть чего просит)
ketbul
https://github.com/ntfreak/openocd
ketbul
============================ Quickstart for the impatient ============================ If you have a popular board then just start OpenOCD with its config, e.g.: openocd -f board/stm32f4discovery.cfg If you are connecting a particular adapter with some specific target, you need to source both the jtag interface and the target configs, e.g.: openocd -f interface/ftdi/jtagkey2.cfg -c "transport select jtag" \ -f target/ti_calypso.cfg openocd -f interface/stlink.cfg -c "transport select hla_swd" \ -f target/stm32l0.cfg After OpenOCD startup, connect GDB with (gdb) target extended-remote localhost:3333
Dr Zlo
В офф ветке емнип нет есп32
SetPf
Уточняю еще более вопрос. У ESP_IDF должен как-либо быть прописан PATH? При дефолтной установке прописывается ESP_TOOLS
SetPf
Но вот к самому фреймворку - нет.
Konstantin
Кто сталкивался купил nodemcu v3 а на ней wifi не работает, брак может быть?
Danny
Брак может быть легко, но важно понять, точно ли не работает. Может к роутеру не так подключаешься, или на роутере самом косяки
Danny
Или поднимаешь сеть не так
Konstantin
Как ты понял, что он не работает?
Две esp залил одинаковый код на одной как тд раздаёт, вторая нет
Danny
Предложу ещё проверить, корректно ли залил прошивку на вторую, если да, получается брак.
Konstantin
Работает все кроме Wi-Fi
Danny
Работает все кроме Wi-Fi
Недопаяли где-то может быть
Slava
Работает все кроме Wi-Fi
Наверно судьба говорит, что нужно покупать есп32 🤔
Konstantin
Konstantin
Мне в магазине дали новую и эту оставили, думал может как то оживить
Void
Мне в магазине дали новую и эту оставили, думал может как то оживить
Если терять нечего снимай экран с неё, а там может чего и увидим, вдруг чего не хватает явно.
Void
Я уже снял
Кинься фоткой.
Konstantin
Konstantin
Konstantin
Кинься фоткой.
Что скажете?
Void
Ну есть места где явно что то не установлено. но я в этих кастратах не силен. Глянуть бы рабочие потраха. И что то какая то фигня на последней ноге.
Void
Void
Konstantin
Непонятно что там
Konstantin
Void
Исключительно предположение - нет обвязки кондеров на антену (чего то не хватает.)
Void
Void
Void
esp8266_hardware_design_guidelines_en.pdf
Void
Вот эту доку надо хорошенько проанализировать.
Евгений
Вот какая пришла мне... но работает
Евгений
Sid
На esp32 прошить можно?
GK
убейте спаммера, плз
Void
убейте спаммера, плз
Не надо истерик. Не красит.
Х
Вот какая пришла мне... но работает
Говно эти вемосы, у них связь сильно хуже по моему опыту.
Евгений
Говно эти вемосы, у них связь сильно хуже по моему опыту.
Может, хз. Но есп01 ловит точно дальше чем мой телефон. А антену можно и допаять, тут в соседней группе показывали как
Евгений
И экран желательно от наводок. Хотя ест платы которые без экранчика норм.
Вот она ловит хз откуда, где телефон уже пепеходит на интернет отсимки
Х
У меня есть мнение, что китайцы не заморачивались пересчётом антенны под покрытие маской и сделали обычный рисунок как для без маски и это ухудшило характеристики.
Вот она ловит хз откуда, где телефон уже пепеходит на интернет отсимки
Хорошая статья хоть и корткая. https://habr.com/ru/post/368863/
Alexey D.
Вопосик: есть функиця start_xxx в которую надо передать конфигурацию некоторого объекта xxx_t (конфигурация типа struct xxx_config_t) Функция внутри себя инициализирует некоторый объект типа struct xxx_t который имеет кучу служебных полей, в том числе xxx_config_t cfg. Получившийся xxx_t дальше таскается в виде указателя по функциям. Собственно вопрос: чтобы не делать динамическое выделение памяти внутри start_xxx, как правильно создать объект xxx_t ? Вариант создать глобальную переменную xxx_t xxx_object , затем задать xxx_object.cfg.param1 = 1; xxx_object.cfg.param2 = 2; xxx_object.cfg.param3 = 3 и передавать в start_xxx ссылку сразу на объект мне не очень нравится. Верно же я понимаю что если я просто верну из функции start_xxx указатель на переменную которую я объявлю внутри функции start_xxx , то у меня нет гарантий что эта область не затрется?
Dmytro
Вопосик: есть функиця start_xxx в которую надо передать конфигурацию некоторого объекта xxx_t (конфигурация типа struct xxx_config_t) Функция внутри себя инициализирует некоторый объект типа struct xxx_t который имеет кучу служебных полей, в том числе xxx_config_t cfg. Получившийся xxx_t дальше таскается в виде указателя по функциям. Собственно вопрос: чтобы не делать динамическое выделение памяти внутри start_xxx, как правильно создать объект xxx_t ? Вариант создать глобальную переменную xxx_t xxx_object , затем задать xxx_object.cfg.param1 = 1; xxx_object.cfg.param2 = 2; xxx_object.cfg.param3 = 3 и передавать в start_xxx ссылку сразу на объект мне не очень нравится. Верно же я понимаю что если я просто верну из функции start_xxx указатель на переменную которую я объявлю внутри функции start_xxx , то у меня нет гарантий что эта область не затрется?
Ну обычно в инициализатор передаётся конфиг и плюс буффер для хранения внутренних штук (в вашем случае XXX_t)
Dmytro
Посмотрите как во фриртос статические очереди, к примеру, создаются. Или статическое что угодно
Alexey D.
Спасибо
Anton
всё, блин, кажись я таки разобрался в чём было дело с клиентскими хттп запросами, от чего зависали
Anton
вот типичный кусок из примера как должен исполняться асинхронный запрос, думаю, что синхронный внутри похоже устроен: while (1) { err = esp_http_client_perform(client); if (err != ESP_ERR_HTTP_EAGAIN) { break; } }
Anton
и вот внезапно этот цикл может стать бесконечным. просто постоянно возвращается ESP_ERR_HTTP_EAGAIN и всё тут
Anton
while (1) { так только мудаки делают
тебе ссылку на кусок esp-idf дать?
Slava
тебе ссылку на кусок esp-idf дать?
нет, сочувствую тебе, сколько времени ты потерял?
Anton
ну хз, несколько вечеров
Slava
https://github.com/m5stack/M5EPD смотрите какая лялька появилась, но цена 😭
Anton
вот кусок из компонента, который, скорее всего, некорректный для моего случая: if ((err = esp_http_client_connect(client)) != ESP_OK) { if (client->is_async && err == ESP_ERR_HTTP_CONNECTING) { return ESP_ERR_HTTP_EAGAIN; } return err; }
Slava
ну хз, несколько вечеров
ну и как таких программистов называть?
Anton
client->is_async && err == ESP_ERR_HTTP_CONNECTING — тут, скорее всего, неверная обработка ошибки
Anton
а вообще, было бы правильно пользоваться параметром таймаута на операцию то...
Anton
ну и как таких программистов называть?
я однажды плавающий баг в программе 6 недель искал. бывает...
Anton
и, кстати, фишку, изза которой я его искал, исправили в стандарте STL после с++11
Anton
короче, пример пока что поменял на: struct timeval now; gettimeofday(&now, 0); uint64_t ustart = now.tv_sec * 1000 + now.tv_usec / 1000; uint64_t unow = ustart; while (unow < ustart + 5000) { err = esp_http_client_perform(client); if (err != ESP_ERR_HTTP_EAGAIN) { break; } gettimeofday(&now, 0); unow = now.tv_sec * 1000 + now.tv_usec / 1000; }
Anton
ну и как таких программистов называть?
но вот щас я реально подзадолбался ловить, баг вылазит произвольно, иногда спустя сутки, хотя запросы делаются ежеминутно