Sid
Гм
Sid
У меня все модули 100000 с чем то
Andrew
хм может не пропаяно что то
Sid
в общем в терминале при ребуте он должен что нибудь написать
Andrew
ниче не пишет
Andrew
еще есть мысль что питание отдельно подать а не от ftdi
Sid
с ftdi у меня только еспкам но проблем не было
Andy
еще есть мысль что питание отдельно подать а не от ftdi
Если питается от пина 3v3out , то точно надо переключить. Он может отдавать не больше 5 mA
Denis
921600 же должно?
115200 попробуй
Andrew
помню с esp8266 такая балалайка была, когда переключил на отдельный источник, все стало прошиваться
Andrew
115200 бод пробовал
Andrew
вечером отпишусь о результатах, спасибо всем)
Ruslan
камрады, кто в secureboot соображает?
Andrew
с отдельным питанием не заработала прошивка ESP32(
Laboratory
нажимал
Нажать и удерживать, пока не начнется прошивка
Laboratory
Кнопка BOOT
Andrew
Короче проблема была в непропае ножки Tx на Espшке, всем еще раз спасибо
Andrew
Пропаял ноги, все ок стало
Andrew
Шьется, на терминал все выводит
SetPf
Подскажите, как архитектурно правильно создавать таск для экземпляра класса?
SetPf
И как это вообще отдельно делается и делается ли...
Andrew
ухх...а подскажите плиз, если esp32 в ребут постоянно уходит, куда копать?
Andrew
Выкидывать, брак?
Andrew
Мм. понял
Andrew
А чем питаете? Какие подводные? Мне надо ее будет на площадке установить напротив счетчика света, чтобы не выходя из дома показания смотреть.
Andrew
...для начала
romanetz
Оверкилл, конечно )
romanetz
Но беспроблемный зато
romanetz
Нам уже воткнули, всей улице
Andrew
Хм...неа)
Andrew
А по конденсаторам? какие? 0.1 как стандарт? или лучше 0.010 мкф? (в Хорвиц и Уилл читал...)
Andy
Подскажите, как архитектурно правильно создавать таск для экземпляра класса?
эмм, task для экземпляра класса? task во freeRtos сущность, экземпляр класса вроде как ООП сущность. Неперескающиеся множества по моему - ООП и ОС :)
SetPf
эмм, task для экземпляра класса? task во freeRtos сущность, экземпляр класса вроде как ООП сущность. Неперескающиеся множества по моему - ООП и ОС :)
Ммм ну если необходимо внутри объекта организовать обработку информации раз в определенный период.
SetPf
Можно конечно возиметь некий обработчик, который будет дергать методы в этих объектах
romanetz
Ну так в чём трабл, объект однажды создался и существует всё время
SetPf
Но как то переусложнено если объектов пара штук
romanetz
Или хочется создавать и удалять их постоянно?
SetPf
Ну он и так существует все время - нужно метод дергать в нем периодично
romanetz
Вся ардуина так работает )
SetPf
Как?
romanetz
Создаём экземпляры объектов глобальные (Serial там или Wire), а потом в тасках их дёргаем
romanetz
loop внутри фриртосного таска крутится
SetPf
Да, это я понимаю. Но как то хочется это под капот убрать.
romanetz
Что именно?
SetPf
Создание таска под обработку объектов
SetPf
Если переодическая обработка неразрывно связанна с ним, почему бы ее внутрь не убрать
SetPf
Ну либо в фабричный метод
romanetz
Ну убери
SetPf
Так я и спрашиваю как архитектурно правильнее будет сделать.
SetPf
Убрать тоже по разному можно =\
romanetz
Фриртос - он чисто сишный и "глобальный"
romanetz
Кагбе в ногу себе не стрельнуть😜
Andy
Т.к. во FreeRTOS под каждую задачу свой стек отводится, то в том числе поэтому сильно не рекомендуется использовать глобальные переменные и прочую фигню. Особенно на многоядерных чипах. Общение между тасками с помощью очередей, семафоров и т.п.
Ivansuper
Я тут себе костылил подобную обертку под таск в классе и могу одно порекомендовать -- ничего из состояния не декларировать в классе, а описать структурой, которую отдельно через new аллоцируешь, после чего ссылку на структуру сохраняешь и в классе, и в таске. Там же хранишь средство уведомления таска о вызове деструктора класса. Когда деструктор вызывается, таск об этом узнает, удаляет из памяти структуру переданную в нее и завершает себя сама
Ivansuper
Может кто лучше делал, но пока пришел к такому варианту инкапсуляции тасков
Ivansuper
Правда на МК часто создавать и удалять их все равно не приходится да и не стоит в принципе
Slava
https://www.yapfiles.ru/show/2405909/1e26aa6dfb873e5436f0add3b76afef4.mp4.html
Slava
интересно, Гайвер сможет повторить?
romanetz
А таски - из её кучи
romanetz
Т.е., тут ещё такой момент, какую часть памяти под кучу freertos выделяем
SetPf
1. 1 таск на объект, в конструкторе создается таск на статичный метод класса, в качестве контекста передавать указатель на экземпляр и контекст. В статичном методе можно уже в зависимости от контекста вызывать разные методы. 2. Таск делается на класс целиком, ссылки на экземпляры в статик массиве класса. Таск перебирает экземпляры и делает что они хотят.
SetPf
Без статик метода насколько я понимаю никак быть не может (только вне класса делать функцию, что еще худший вариант).
Ivansuper
Должен
SetPf
Ну а что ему мешает?
Ivansuper
Два ядра как минимум
SetPf
Поподробнее можно?
Ivansuper
Если одно ядро, то там при выполнении деструктора можно вызвать удаление таска с теоретической гарантией не продолжения его выполнения. На двух ядрах ты пока выполняешь деструктор со второго может таск пользоваться экземпляром
Ivansuper
Возникает реальная параллельность выполнения
SetPf
А если сделать деструктор приватным.
Ivansuper
: )