• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Управление с выключателя

pvvx

Активный участник сообщества
да, такое смотрели, точнее Mi Band 2, но зарядки на неделю максимум
Отключите экран. И у SoC там другие задачи. Программируйте правильно.
Это вам не ваши евро-спекули, "микротика есть такое", "Техаса".
И жрут они по причине RTOS. Выкинуть RTOS и будет пахать - АКБ там от 100mA до 500, потребление в спячке - 2..4 мкА на SoC + 2 на ключи и чип зарядки АКБ, много кушает сенсорная кнопка - выкусить кусачками :). Ну и сам акселерометр - тут уж какой и как пользовать... Т.е. вполне можно растянуть на несколько месяцев
 

sL0n1k

Member
Не хочу полемизировать на тему RTOS, но должен все же отметить, что
я был так же скептически настроен по отношению к RTOS до недавнего времени, в смысле "неэкономного потребления".
По этой причине мы достаточно долго "исповедовали идеологию" coroutines (c++20 в том числе), но время показало, что я ошибался ))
 

pvvx

Активный участник сообщества
Не хочу полемизировать на тему RTOS, но должен все же отметить, что
я был так же скептически настроен по отношению к RTOS до недавнего времени, в смысле "неэкономного потребления".
По этой причине мы достаточно долго "исповедовали идеологию" coroutines (c++20 в том числе), но время показало, что я ошибался ))
Пример в студию.
Замеры показывают, что вы ещё раз ошиблись. Назначенные события лишний раз пробуждают SoC - а это до 60% лишнего потребления.
Синхронно с таймингом BLE RTOS не умеет работать.
А если выкинуть из RTOS всё, чтобы сделать синхронно - то нафиг он вообще нужен? Память жрать на десяток стеков? Или тормозить при переключении задач?
 

pvvx

Активный участник сообщества
Завтра вы скажите, что с fork()/vfork() меньше потребление и быстрее работает :) :) :)

Время выполнения пустого fork()/vfork(), из старых замеров:
Omega2, OpenWRT : 758.9 / 733.6 us
NanoPi-R1, H3, FriendlyWrt, 1.008GHz : 540.3 / 472.8 us
NanoPi-NEO-Core, H5, FriendlyWrt, Ubuntu 16.04.6 LTS 4.14.0 : 328.8 / 314.3 us
NanoPi-R5S, FriendlyWrt, 2GHz : 320.6 / 282.1 us
Ryzen7 1700, docker 4 ядра, Ubuntu 18.04 : 172.5 / 83.5 us
mc200(MIPS 4KEc), очень старый OpenWRT, 200MHz : 2954.9 / 548.6 us
 

sL0n1k

Member
Не все так просто когда у вас три ядра: m0 + m3/4 + sensors controller. Причем на m0 крутится только BLE, m4 очень быстрый,
а sensors controller со сверхнизким потреблением со своей системой команд и предназначен для периферии (типа i2c, serial, gpio)

Это не управляется без RTOS, а с RTOS работает также долго как и на одном cortex m0.
Это из практики, но правда модули разных вендоров.

Но тему эту предлагаю не развивать далее))
 

pvvx

Активный участник сообщества
Укажите хоть одну причину использования RTOS для BLE датчика кнопки.

Наводящие вопросы:
  1. Для содержания heap с дефрагментацией
  2. Для статического распределения памяти, чтобы её не хватило.
  3. Для замены механизма распределения по времени тайминга BLE учитывающего время восстановления при пробуждении SoC и дискретом в мкс
  4. Чтобы не писать свой распределитель памяти, когда всё находится в большом по объему стеке и места там всегда хватает на всё при активном пробуждении SoC, без всяких дефрагментации, т.к. сразу чип уснет и очистит всю не retention память.
  5. ...
 

pvvx

Активный участник сообщества
Не все так просто когда у вас три ядра: m0 + m3/4 + sensors controller. Причем на m0 крутится только BLE, m4 очень быстрый,
а sensors controller со сверхнизким потреблением со своей системой команд и предназначен для периферии (типа i2c, serial, gpio)

Это не управляется без RTOS, а с RTOS работает также долго как и на одном cortex m0.
Это из практики, но правда модули разных вендоров.

Но тему эту предлагаю не развивать далее))
Почему вы взяли Intel i9-13900k для кнопки с BLE?
Там код в кеш влезет, частоту ядер на 2.4ГГц - один чип всё :)
Или прогнулись под вендора? Он хоть платит за использование его чипов?
 

sL0n1k

Member
Почему вы взяли Intel i9-13900k для кнопки с BLE?
Там код в кеш влезет, частоту ядер на 2.4ГГц - один чип всё :)
берем что дают - безысходность ))
то что на одном cortex m0 - мне стало не доступно, полный бан во всех странах с исключением из комъюнити
 

pvvx

Активный участник сообщества
Не все так просто когда у вас три ядра: m0 + m3/4 + sensors controller. Причем на m0 крутится только BLE, m4 очень быстрый,
m0+m33+WiFi+BLE = древний Realtek
Average 1 мА при соединении с AP WiFi2/5ГГц (графики и замеры представлены где-то на форуме). C BLE не лучшие показатели - он заточен на WiFi.
полный бан во всех странах с исключением из комъюнити
А почему вы их сразу не послали? Пущай вымирают.
 

nikolz

Well-known member
Отключите экран. И у SoC там другие задачи. Программируйте правильно.
Это вам не ваши евро-спекули, "микротика есть такое", "Техаса".
И жрут они по причине RTOS. Выкинуть RTOS и будет пахать - АКБ там от 100mA до 500, потребление в спячке - 2..4 мкА на SoC + 2 на ключи и чип зарядки АКБ, много кушает сенсорная кнопка - выкусить кусачками :). Ну и сам акселерометр - тут уж какой и как пользовать... Т.е. вполне можно растянуть на несколько месяцев
Напоминает "кашу из топора" и паяльник уже нужен.
Вы забыли спросить уровень знаний у того, кому это советуете.
 

pvvx

Активный участник сообщества
Напоминает "кашу из топора" и паяльник уже нужен.
sL0n1k - спрашивал акселерометр c BLE - остальные чипы выкусываются кусачками, а программа заливается по OTA и паяльник действительно не нужен :p
Вы забыли спросить уровень знаний у того, кому это советуете.
Нажимать кнопки умеют и обезянки...
 
Сверху Снизу