Страница 2 из 2

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

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

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

Добавлено: 10 окт 2023, 17:31
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 работает

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

Добавлено: 08 янв 2024, 10:11
ivanpost
Можно ли стандартный Web-интерфейс настройки перенести на 0 ядро? Как это сделать?

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

Добавлено: 08 янв 2024, 16:07
ivansidor012
[ref]ivanpost[/ref], только вручную переносить код перед компиляцией

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

Добавлено: 19 фев 2024, 02:35
WildCat
Попробовал.
Результаты странные.

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

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

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

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

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

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

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

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

Добавлено: 19 фев 2024, 10:37
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 ядро.

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

Добавлено: 19 фев 2024, 13:36
WildCat
aidar_i писал(а): 19 фев 2024, 10:37 попробуйте диспетчер перенести в 1 ядро.
Диспетчер в обоих ядрах

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

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

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

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

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

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

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

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

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

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

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

В блоках есть две реализации диспетчера - для простоты используйте тот который приложил к сообщениям.
Каждый из диспетчеров можно поместить в любое ядро и они будут работать независимо друг от друга.
1.A.Диспетчер_задач_многоядерных_CORE_(Code_-_Professional).zip

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

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

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

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

Вот проект

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

Добавлено: 27 май 2024, 19:41
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

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

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

[spoiler]
Screenshot_5.png
[/spoiler]

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

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

[spoiler] Screenshot_5.png [/spoiler]
Штатные функции оказались внутри второй задачи, нужно последнюю фигурную скобку в скетче вырезать и поставить после второй задачи. Позже попробую что то сделать этим

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

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

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

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