Страница 2 из 2
Второе ядро Raspberry Pi 2040
Добавлено: 19 авг 2022, 18:28
Dryundel
ecoins писал(а): 19 авг 2022, 17:46
Прекрасно, когда присутствует теоретик, который все может объяснить... мьютекс...
Это как к старику-пастуху лектор приезжает и читает лекцию "Как пасти баранов".
Вот оно как?
Ладно, видимо придется пастуху-профессионалу объяснить простыми словами что такое мьютекс.
Тока пожалуй не здесь.
Открыл специально для пастухов тему. Теоретическую. Я же вроде как теперь теоретик.

.
viewtopic.php?f=21&t=8179&p=116594#p116594
Второе ядро Raspberry Pi 2040
Добавлено: 19 авг 2022, 20:59
ecoins
Запустил еще раз второе ядро на RP2040.
Одна простая задача - вычисление циклов loop1() в сек.
Получилось >400тыс. в сек. Удивительно, даже надо перепроверить...
Второе ядро можно использовать, но...
Нельзя просто использовать одни и те же интерфейсы(например i2c.0) одновременно.
А вот использовать другую шину i2c.1 можно. У нас на тестовой плате она даже выделена на отдельную группу пинов.
И наши библиотеки уже под это заточены. И еще они позволяют изменять скорость шин i2c, SPI.
В совокупности с этим можно получать любопытные результаты.
Будем пробовать и выкладывать тесты.
Второе ядро Raspberry Pi 2040
Добавлено: 28 авг 2022, 08:54
Phazz
[ref=#ff8000]Dryundel[/ref], Есть одна проблема с блоками в PRO редакторе. В них можно указать выполнение кода в конце LOOP, получится код перепрыгнет из первого ядра на второе.
photo_2022-08-28_10-51-40.jpg
Это можно решить блоком закрывашкой
а в конце открывающего добавить
Второе ядро Raspberry Pi 2040
Добавлено: 28 авг 2022, 09:51
Dryundel
Phazz писал(а): 28 авг 2022, 08:54
Dryundel, Есть одна проблема с блоками в PRO редакторе. В них можно указать выполнение кода в конце LOOP, получится код перепрыгнет из первого ядра на второе.
Да, действительно проблема. Об этом я не подумал.
Значит надо искать другой вариант.
Отправлено спустя 8 минут 4 секунды:
Phazz писал(а): 28 авг 2022, 08:54
Это можно решить блоком закрывашкой
Не понял как это поможет. Давай образец исправленного блока. Посмотрим.
Второе ядро Raspberry Pi 2040
Добавлено: 28 авг 2022, 11:39
Phazz
[ref=#ff8000]Dryundel[/ref],
2022-08-28 13-36-57 FLProg-7.4.6.png
2ядра+ПБ.flp
Второе ядро Raspberry Pi 2040
Добавлено: 28 авг 2022, 19:38
Dryundel
[ref=#808080]Phazz[/ref], хитро конечно и может даже сработать. Доберусь до компа посмотрю внимательней. Спасибо за идею.
Отправлено спустя 7 часов 42 минуты 14 секунд:
Версия блока обновлена. Исправлен баг.
Теперь это пара блоков.
Скачать в первом посте
Отдельная благодарность [ref=#808080]Phazz[/ref], за отличную идею.
Второе ядро Raspberry Pi 2040
Добавлено: 05 июл 2023, 16:10
ARTEMM
добрый день с вашими блоками выдает ошибку Arduino: 1.8.15 (Windows 7), Плата:"Raspberry Pi Pico, 2MB (no FS), 133 MHz, Small (-Os) (standard), Disabled, Disabled, Disabled, Disabled, None, Pico SDK, IPv4 Only, Default (UF2)"
pr3:45:12: error: expected constructor, destructor, or type conversion before ';' token
45 | end_Loop()
| ^
C:\TEMP\flprog\pr3\pr3.ino: In function 'void loop()':
pr3:15:5: error: 'end_Loop' was not declared in this scope
15 | end_Loop();
| ^~~~~~~~
C:\TEMP\flprog\pr3\pr3.ino: At global scope:
pr3:45:1: error: ISO C++ forbids declaration of 'end_Loop' with no type [-fpermissive]
45 | end_Loop()
| ^~~~~~~~
C:\TEMP\flprog\pr3\pr3.ino: In function 'int end_Loop()':
pr3:70:1: error: no return statement in function returning non-void [-Werror=return-type]
70 | }
| ^
cc1plus.exe: some warnings being treated as errors
exit status 1
expected constructor, destructor, or type conversion before ';' token
фл прог версия 7.3.8
Второе ядро Raspberry Pi 2040
Добавлено: 05 июл 2023, 16:34
Phazz
[ref]ARTEMM[/ref], проект бы увидеть
Второе ядро Raspberry Pi 2040
Добавлено: 05 июл 2023, 19:49
ARTEMM
Проэкт как таковой и нету у меня была плата и решил ее сравнить с есп 32 в проекте на первой стартовый на второй семетричный генератор и на третьем финишный блок
Отправлено спустя 1 минуту 16 секунд:
А генератор встроенный блок не пб
Второе ядро Raspberry Pi 2040
Добавлено: 05 июл 2023, 20:20
Phazz
[ref]ARTEMM[/ref], пофиксил
Второе ядро Raspberry Pi 2040
Добавлено: 06 июл 2023, 12:29
ARTEMM
спасибо заработало поэкспементиреую отпишусь
Второе ядро Raspberry Pi 2040
Добавлено: 17 фев 2024, 04:19
WildCat
ecoins писал(а): 19 авг 2022, 16:39
Появление "Диспетчера" не решило проблемы, поскольку любая "тормозящая" задача может свести на нет результаты оптимизации по времени - например АЦП, почти все библиотеки работы с внешними устройствами, и даже алгоритм преобразования
float в int от FLProg в ModBus и пр.(последнее в контроллерах AVR очень тормозит).
Интересный момент.
Сейчас как раз занимаюсь разработкой нового устройства и выбираю контроллер.
А данный момент остановился на Мега 2560, отлаживаю узлы.
Сейчас датчик ds18b20, pt1000. Передаю данные по modbus в другой контроллер.
При добавлении блока измерения переменного тока (трансформатор тока) на библиотеке EmonLib производительность упала на порядок (с 4600 циклов до 500). И да, там весь набор из цитаты выше: float to int, 1wire, АЦП, modbus.
Задумался…
Мега нужна из-за большого количества входов-выходов и большого количества UART (нужно несколько для коммуникаций с доп модулями и внешним пультом по modbus).
Может стоит рассмотреть вариант rp2040?
Но к него всего 2 UART (
Вы для работы с двумя ядрами на rp2040 используете блоки из этой темы, и свои?
Второе ядро Raspberry Pi 2040
Добавлено: 17 фев 2024, 09:47
ecoins
WildCat писал(а): 17 фев 2024, 04:19
Но к него всего 2 UART (
Можно (и мы сделали, через PIO) USB + UARTx6.
WildCat писал(а): 17 фев 2024, 04:19
Вы для работы с двумя ядрами на rp2040 используете блоки из этой темы, и свои?
Свои.
WildCat писал(а): 17 фев 2024, 04:19
При добавлении блока измерения переменного тока (трансформатор тока) на библиотеке EmonLib производительность упала на порядок (с 4600 циклов до 500). И да, там весь набор из цитаты выше: float to int, 1wire, АЦП, modbus.
Эти задачи хорошо перенести во второе ядро.
Еще поддерживает Ethernet, в варианте Raspberry Pi Pico - W - дополнительно Wi-Fi.
У нас есть стенды для RP2040.
Сделали опытные образцы ПЛК - 12 дискретных входов(развязка), 12 дискретных выходов(развязка), RS485 x 2 (развязка), i2c(развязка), порт UART под Nextion (развязка), дополнительно UARTx3; питание 220 ADC/24 DC.
В небольшом корпусе с прозрачной крышкой.
Сейчас запустили на изготовление платы с доработкой.
Второе ядро Raspberry Pi 2040
Добавлено: 17 фев 2024, 13:33
WildCat
ecoins писал(а): 17 фев 2024, 09:47Свои.
Можете поделиться блоком с примером применения?
Второе ядро Raspberry Pi 2040
Добавлено: 17 фев 2024, 13:38
ecoins
WildCat писал(а): 17 фев 2024, 13:33
Можете поделиться блоком с примером применения?
Переключение на второе ядро?
Он в библиотеке блоков.
Примеры для RP2040 выкладывал, там этот блок применен.
Если не найдете, то подскажу или выложу.
Второе ядро Raspberry Pi 2040
Добавлено: 17 фев 2024, 13:43
WildCat
ecoins писал(а): 17 фев 2024, 13:38
Он в библиотеке блоков.
С какой версии? У меня сейчас в активном использовании от марта прошлого года.
Новые библиотеки и блоки еще не ставил, т.к Вы написали, что новые не совместимы со старыми, а у меня есть большой работающий проект, где старые библиотеки.
Если не трудно, скинете пример проекта, на форуме непонятно где искать
Второе ядро Raspberry Pi 2040
Добавлено: 17 фев 2024, 14:40
ecoins
Написал в личку, попозже попробую выложить простой проект.