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

Создание задач для использования обоих ядер ESP32

Блоки с разделением на ESP32/ESP8266 а так же совместные
tema
Сержант
Сообщения: 190
Зарегистрирован: 21.09.2020{, 12:31}
Репутация: 8
Имя: tema

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

#21

Сообщение tema » 09.10.2023{, 07:51}

JonyBest писал(а):
31.08.2021{, 11:18}
Спасибо за блоки!!!
Перенёс на ядро 0 весь WEB и MQTT. Отклик почти мгновенный. Работает шустренько. На скорость работы яра 1 влияния не оказывают.
Но... от нестабильности ESP32 избавиться не получилось. ESP32 перегружается хаотично, может и пару суток отработать, может и за полчаса перегрузиться...
В любом случае, это шаг вперед!
какой веб?
если можно проект.
очень интересно!

skrickis
Рядовой
Сообщения: 86
Зарегистрирован: 05.02.2017{, 12:02}
Репутация: 9

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

#22

Сообщение skrickis » 10.10.2023{, 17:31}

aidar_i писал(а):
26.08.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 работает
Вложения
1.flp
(93.64 КБ) 17 скачиваний
ESP32-S3 UART 0.jpg
2.jpg
1.png

Аватара пользователя
ivanpost
Сержант
Сообщения: 140
Зарегистрирован: 24.09.2016{, 22:26}
Репутация: 4
Откуда: Тольятти
Имя: Иван
Контактная информация:

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

#23

Сообщение ivanpost » 08.01.2024{, 10:11}

Можно ли стандартный Web-интерфейс настройки перенести на 0 ядро? Как это сделать?

ivansidor012
Сержант
Сообщения: 279
Зарегистрирован: 10.09.2020{, 14:37}
Репутация: 43
Имя: Иван

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

#24

Сообщение ivansidor012 » 08.01.2024{, 16:07}

ivanpost, только вручную переносить код перед компиляцией

WildCat
Лейтенант
Сообщения: 426
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 48
Имя: Михаил

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

#25

Сообщение WildCat » 19.02.2024{, 02:35}

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

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

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

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

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

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

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

Либо я что-то не так делаю

aidar_i
Полковник
Сообщения: 3130
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 677
Откуда: Уфа
Имя: Айдар
Контактная информация:

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

#26

Сообщение aidar_i » 19.02.2024{, 10:33}

skrickis писал(а):
10.10.2023{, 17:31}
aidar_i писал(а):
26.08.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.02.2024{, 02:35}
Попробовал.
Результаты странные.
.......
Непонятно почему так, и как-то бессмысленно получается. Общая производительность падает на порядок.

Либо я что-то не так делаю
Я не экспериментировал с такими блоками, попробуйте диспетчер перенести в 1 ядро.

WildCat
Лейтенант
Сообщения: 426
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 48
Имя: Михаил

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

#27

Сообщение WildCat » 19.02.2024{, 13:36}

aidar_i писал(а):
19.02.2024{, 10:37}
попробуйте диспетчер перенести в 1 ядро.
Диспетчер в обоих ядрах

ivansidor012
Сержант
Сообщения: 279
Зарегистрирован: 10.09.2020{, 14:37}
Репутация: 43
Имя: Иван

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

#28

Сообщение ivansidor012 » 20.02.2024{, 21:50}

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

на одном - веб, а на другом диспетчер - и будет щастье)

WildCat
Лейтенант
Сообщения: 426
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 48
Имя: Михаил

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

#29

Сообщение WildCat » 20.02.2024{, 22:43}

ivansidor012 писал(а):
20.02.2024{, 21:50}
а зачем в обоих?

на одном - веб, а на другом диспетчер - и будет щастье)
А как проверить, что общая производительность выросла?
И у меня нет веб в проекте, другие цели.

ivansidor012
Сержант
Сообщения: 279
Зарегистрирован: 10.09.2020{, 14:37}
Репутация: 43
Имя: Иван

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

#30

Сообщение ivansidor012 » 21.02.2024{, 09:29}

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

Отправлено спустя 4 минуты 12 секунд:
имхо два ядра там только для разделения веба и остального кода - в этом случае задержки/прерывания при открытии напримнр веб страницы, не будут влиять тайминги кода на другом ядре

ecoins
Полковник
Сообщения: 2946
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 454
Откуда: Шатура
Имя: Энвер

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

#31

Сообщение ecoins » 21.02.2024{, 11:04}

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

В блоках есть две реализации диспетчера - для простоты используйте тот который приложил к сообщениям.
Каждый из диспетчеров можно поместить в любое ядро и они будут работать независимо друг от друга.

WildCat
Лейтенант
Сообщения: 426
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 48
Имя: Михаил

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

#32

Сообщение WildCat » 21.02.2024{, 15:21}

ecoins писал(а):
21.02.2024{, 11:04}
В блоках есть две реализации диспетчера - для простоты используйте тот который приложил к сообщениям.
Хорошо, спасибо. Попробую

Ответить

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