Использование 2х ядер ESP32

Блоки с разделением на ESP32/ESP8266 а так же совместные
tema
Сержант
Сообщения: 215
Зарегистрирован: 21 сен 2020, 12:31
Имя: tema
Благодарил (а): 29 раз
Поблагодарили: 1 раз

Использование 2х ядер ESP32

Сообщение tema »

JonyBest писал(а): 31 авг 2021, 11:18 Спасибо за блоки!!!
Перенёс на ядро 0 весь WEB и MQTT. Отклик почти мгновенный. Работает шустренько. На скорость работы яра 1 влияния не оказывают.
Но... от нестабильности ESP32 избавиться не получилось. ESP32 перегружается хаотично, может и пару суток отработать, может и за полчаса перегрузиться...
В любом случае, это шаг вперед!
какой веб?
если можно проект.
очень интересно!
skrickis
Сержант
Сообщения: 159
Зарегистрирован: 05 фев 2017, 12:02
Благодарил (а): 3 раза
Поблагодарили: 16 раз

Использование 2х ядер ESP32

Сообщение skrickis »

aidar_i писал(а): 26 авг 2021, 22:30 Плата ESP32 оснащена двумя 32-битными микропроцессорами Xtensa LX6 – ядром 0 и ядром 1. То есть, это 2-ядерная плата
вопрос к автору
у меня плата ESP32-S3-dev kit v1.3 загрузил ваш проект оба диода моргает но не работает UART 0
если перегрузить контролёр то UART 0 выдаёт в то что на фото 2 и выходы D2 D4 отключаются до следующей перезагрузки :( это связано с контроллером???

простой проект на ESP32- S3 UART 0 работает
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
ivanpost
Сержант
Сообщения: 203
Зарегистрирован: 24 сен 2016, 22:26
Откуда: Тольятти
Имя: Иван
Благодарил (а): 3 раза
Поблагодарили: 8 раз
Контактная информация:

Использование 2х ядер ESP32

Сообщение ivanpost »

Можно ли стандартный Web-интерфейс настройки перенести на 0 ядро? Как это сделать?
ivansidor012
Лейтенант
Сообщения: 310
Зарегистрирован: 10 сен 2020, 14:37
Имя: Иван
Благодарил (а): 3 раза
Поблагодарили: 5 раз

Использование 2х ядер ESP32

Сообщение ivansidor012 »

[ref]ivanpost[/ref], только вручную переносить код перед компиляцией
WildCat
Лейтенант
Сообщения: 556
Зарегистрирован: 04 июн 2022, 04:14
Имя: Михаил
Благодарил (а): 4 раза
Поблагодарили: 9 раз

Использование 2х ядер ESP32

Сообщение WildCat »

Попробовал.
Результаты странные.

Тестовый скетч из нескольких простых плат:
Датчик ds18b20, чтение аналогового входа с последующей мат обработкой (float, integer), вывод в modbus пары переменных.

Без блоков разделения задач по ядрам быстродействие около 20+ тыс ц/с.

Переношу диспетчер экоинс, отправку в UART, датчик Т и аналоговый вход в ядро 0. Modbus в проекте остается, но уже после блока закрывашки 0 ядра. То есть, формально не задействован.
Быстродействие 100 ц/с.

Вношу передачу modbus в ядро 1.

Быстродействие ядра 0: 1375 ц/с, ядра 1: 1440 ц/с.
Причем ядро 1 включается через 5с.

Непонятно почему так, и как-то бессмысленно получается. Общая производительность падает на порядок.

Либо я что-то не так делаю
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 12 раз
Поблагодарили: 100 раз
Контактная информация:

Использование 2х ядер ESP32

Сообщение aidar_i »

skrickis писал(а): 10 окт 2023, 17:31
aidar_i писал(а): 26 авг 2021, 22:30 Плата ESP32 оснащена двумя 32-битными микропроцессорами Xtensa LX6 – ядром 0 и ядром 1. То есть, это 2-ядерная плата
вопрос к автору
у меня плата ESP32-S3-dev kit v1.3 загрузил ваш проект оба диода моргает но не работает UART 0
если перегрузить контролёр то UART 0 выдаёт в то что на фото 2 и выходы D2 D4 отключаются до следующей перезагрузки :( это связано с контроллером???

простой проект на ESP32- S3 UART 0 работает
У меня нет такой платы. Поэтому ничего не могу ответить, хотя должен работать.

Отправлено спустя 3 минуты 41 секунду:
WildCat писал(а): 19 фев 2024, 02:35 Попробовал.
Результаты странные.
.......
Непонятно почему так, и как-то бессмысленно получается. Общая производительность падает на порядок.

Либо я что-то не так делаю
Я не экспериментировал с такими блоками, попробуйте диспетчер перенести в 1 ядро.
WildCat
Лейтенант
Сообщения: 556
Зарегистрирован: 04 июн 2022, 04:14
Имя: Михаил
Благодарил (а): 4 раза
Поблагодарили: 9 раз

Использование 2х ядер ESP32

Сообщение WildCat »

aidar_i писал(а): 19 фев 2024, 10:37 попробуйте диспетчер перенести в 1 ядро.
Диспетчер в обоих ядрах
ivansidor012
Лейтенант
Сообщения: 310
Зарегистрирован: 10 сен 2020, 14:37
Имя: Иван
Благодарил (а): 3 раза
Поблагодарили: 5 раз

Использование 2х ядер ESP32

Сообщение ivansidor012 »

WildCat писал(а): 19 фев 2024, 13:36 Диспетчер в обоих ядрах
а зачем в обоих?

на одном - веб, а на другом диспетчер - и будет щастье)
WildCat
Лейтенант
Сообщения: 556
Зарегистрирован: 04 июн 2022, 04:14
Имя: Михаил
Благодарил (а): 4 раза
Поблагодарили: 9 раз

Использование 2х ядер ESP32

Сообщение WildCat »

ivansidor012 писал(а): 20 фев 2024, 21:50 а зачем в обоих?

на одном - веб, а на другом диспетчер - и будет щастье)
А как проверить, что общая производительность выросла?
И у меня нет веб в проекте, другие цели.
ivansidor012
Лейтенант
Сообщения: 310
Зарегистрирован: 10 сен 2020, 14:37
Имя: Иван
Благодарил (а): 3 раза
Поблагодарили: 5 раз

Использование 2х ядер ESP32

Сообщение ivansidor012 »

aidar_i писал(а): 19 фев 2024, 10:37 как проверить, что общая производительность выросла?
замерить кол-во циклов, время цикла

Отправлено спустя 4 минуты 12 секунд:
имхо два ядра там только для разделения веба и остального кода - в этом случае задержки/прерывания при открытии напримнр веб страницы, не будут влиять тайминги кода на другом ядре
ecoins
Полковник
Сообщения: 3992
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 136 раз
Поблагодарили: 148 раз

Использование 2х ядер ESP32

Сообщение ecoins »

WildCat писал(а): 19 фев 2024, 13:36 Диспетчер в обоих ядрах
С диспетчерами на два ядра требуется некоторая аккуратность - они должны быть независимы или ... Для RP2040 предусмотрено, чтобы один диспетчер обслуживал два ядра с расчетом производительности по обоим ядрам.
Возможно Вы получили некорректные результаты....

В блоках есть две реализации диспетчера - для простоты используйте тот который приложил к сообщениям.
Каждый из диспетчеров можно поместить в любое ядро и они будут работать независимо друг от друга.
1.A.Диспетчер_задач_многоядерных_CORE_(Code_-_Professional).zip
У вас нет необходимых прав для просмотра вложений в этом сообщении.
WildCat
Лейтенант
Сообщения: 556
Зарегистрирован: 04 июн 2022, 04:14
Имя: Михаил
Благодарил (а): 4 раза
Поблагодарили: 9 раз

Использование 2х ядер ESP32

Сообщение WildCat »

ecoins писал(а): 21 фев 2024, 11:04 В блоках есть две реализации диспетчера - для простоты используйте тот который приложил к сообщениям.
Хорошо, спасибо. Попробую
Аватара пользователя
Imran
Сержант
Сообщения: 248
Зарегистрирован: 08 ноя 2017, 20:53
Имя: Имран
Благодарил (а): 16 раз
Поблагодарили: 1 раз

Использование 2х ядер ESP32

Сообщение Imran »

[ref=#ff8000]aidar_i[/ref], обясните рожалуйста что я не правильно понял ? котроллер просто завис и нечего непроисходит.

Вот проект
У вас нет необходимых прав для просмотра вложений в этом сообщении.
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 12 раз
Поблагодарили: 100 раз
Контактная информация:

Использование 2х ядер ESP32

Сообщение aidar_i »

Imran писал(а): 27 май 2024, 16:30 [ref=#ff8000]aidar_i[/ref], обясните рожалуйста что я не правильно понял ? котроллер просто завис и нечего непроисходит.

Вот проект
Сходу: дисплей уберите с 0 ядра. Так же пользовательские блоки с новым редактором вставляют коды не туда , куда нужно.
Нулевое ядро особо не перегружайте. Основной тяжелый код должен на первом ядре работать.

Отправлено спустя 1 час 8 минут 11 секунд:
Немного изменил блоки дисплея и UPD. Перенес плату с дисплеем в 1 ядро. Сейчас расположение блоков в коде правильно. Может и заработает.
WR32_UPD_SPM_1.9.1.rar
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Imran
Сержант
Сообщения: 248
Зарегистрирован: 08 ноя 2017, 20:53
Имя: Имран
Благодарил (а): 16 раз
Поблагодарили: 1 раз

Использование 2х ядер ESP32

Сообщение Imran »

aidar_i писал(а): 27 май 2024, 19:41 Может и заработает
у вас компиляция прошла ? у меня выдает вот такую ошибку

[spoiler]
Screenshot_5.png
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 12 раз
Поблагодарили: 100 раз
Контактная информация:

Использование 2х ядер ESP32

Сообщение aidar_i »

Imran писал(а): 29 май 2024, 12:11
aidar_i писал(а): 27 май 2024, 19:41 Может и заработает
у вас компиляция прошла ? у меня выдает вот такую ошибку

[spoiler] Screenshot_5.png [/spoiler]
Штатные функции оказались внутри второй задачи, нужно последнюю фигурную скобку в скетче вырезать и поставить после второй задачи. Позже попробую что то сделать этим
Аватара пользователя
Imran
Сержант
Сообщения: 248
Зарегистрирован: 08 ноя 2017, 20:53
Имя: Имран
Благодарил (а): 16 раз
Поблагодарили: 1 раз

Использование 2х ядер ESP32

Сообщение Imran »

[ref=#ff8000]aidar_i[/ref], можно ли так ? , какую то часть задать под 1 ядро, а другую часть не трогать вообще, будет ли не тронутая часть по умолчанию на ядре 0 ?
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 12 раз
Поблагодарили: 100 раз
Контактная информация:

Использование 2х ядер ESP32

Сообщение aidar_i »

Imran писал(а): 30 май 2024, 13:01 [ref=#ff8000]aidar_i[/ref], можно ли так ? , какую то часть задать под 1 ядро, а другую часть не трогать вообще, будет ли не тронутая часть по умолчанию на ядре 0 ?
Так нельзя, попробуйте наоборот ядро 0, задайте, а что не вошло туда будет в 1 ядре.
Но с этими блоками так сделать невозможно.
Ответить

Вернуться в «Блоки для ESP32/ESP8266»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя