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

Второе ядро Raspberry Pi 2040

Добавлено: 19 авг 2022, 18:28
Dryundel
ecoins писал(а): 19 авг 2022, 17:46 Прекрасно, когда присутствует теоретик, который все может объяснить... мьютекс...
Это как к старику-пастуху лектор приезжает и читает лекцию "Как пасти баранов".
Вот оно как? :D
Ладно, видимо придется пастуху-профессионалу объяснить простыми словами что такое мьютекс.
Тока пожалуй не здесь.
Открыл специально для пастухов тему. Теоретическую. Я же вроде как теперь теоретик. :)
.
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
Это можно решить блоком закрывашкой

Код: Выделить всё

}
void blok_zakr(){
а в конце открывающего добавить

Код: Выделить всё

blok_zakr();

Второе ядро Raspberry Pi 2040

Добавлено: 28 авг 2022, 09:51
Dryundel
Phazz писал(а): 28 авг 2022, 08:54 Dryundel, Есть одна проблема с блоками в PRO редакторе. В них можно указать выполнение кода в конце LOOP, получится код перепрыгнет из первого ядра на второе.
Да, действительно проблема. Об этом я не подумал. :smile37:
Значит надо искать другой вариант.

Отправлено спустя 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
Написал в личку, попозже попробую выложить простой проект.