• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Rust для ESP32C3

nikolz

Well-known member
Захотелось собрать примеры Bare-metal ESP32C3.
Примеры на zig работают, но нет примеров с Deepsleep.
Решил собрать примеры на Rust.
но проблемы с установкой RUST для Windows.(см картинку)
Кто знает как решить проблемы.
В инете проблема указана, а решения нет.
Поделитесь опытом установки RUST для ESP32
1747827593758.png
 

pvvx

Активный участник сообщества
> Примеры на zig работают, но нет примеров с Deepsleep.

Кто такой "zig"?
И есть куча примеров со sleep в ESP-IDF. И их можно включить в любой другой проект.
Зачем лишний код в виде Rust?
Rust — язык программирования, которым пользуются для написания приложений, кода для высоконагруженных серверов и блокчейна.
В конечном счете, выбор между Rust и C++ зависит от конкретных требований вашего проекта. Если вы ставите во главу угла безопасность, опыт разработчика и современные концепции программирования, Rust — сильный претендент . Однако для чистой производительности, больших существующих кодовых баз и устоявшихся библиотек C++ остается доминирующей силой.
 

pvvx

Активный участник сообщества
Для ESP не годится ни C++ ни Rust, ни даже чистый СИ, если используется HEAP. Это гарантированный сбой работы системы в сложных проектах, когда HEAP не в 100 раз превышает по сумме все объемы запросов памяти всех сразу процедур. Если HEAP 1МБ и проект мигания светодиодом с отключенными сообщениями отладки, тогда критическая дефрагментация HEAP может и не произойти.
У ESP нет MMU с виртуализацией RAM. По этому все промышленные или более серьезные проекты с SoC не имеющими MMU с виртуализацией адресов используют только статические буфера в RAM.
 

pvvx

Активный участник сообщества
И вам уже десяток постов накалакал, почему в ESP32-C3 deep-sleep не выгоден по соображениям производительности и потребления в сферах WiFi/BLE/Zigbee. Получить выгоду от deep-sleep возможно только в случае использования на длительных периодах, что не входит в штатную работу (тайминги) WiFi/BLE/Zigbee. Т.е. только с потерей или отключением связи на длительный период и нового соединения после.

В других случаях применяется простой sleep, без отключения всего в SoC.
По этому таких примеров с deep-sleep нет. Возможно что такие примеры есть у извращенцев, которые что-то шарят в программировании, но не в hard-ware.
 

nikolz

Well-known member
И вам уже десяток постов накалакал, почему в ESP32-C3 deep-sleep не выгоден по соображениям производительности и потребления в сферах WiFi/BLE/Zigbee. Получить выгоду от deep-sleep возможно только в случае использования на длительных периодах, что не входит в штатную работу (тайминги) WiFi/BLE/Zigbee. Т.е. только с потерей или отключением связи на длительный период и нового соединения после.

В других случаях применяется простой sleep, без отключения всего в SoC.
По этому таких примеров с deep-sleep нет. Возможно что такие примеры есть у извращенцев, которые что-то шарят в программировании, но не в hard-ware.
Да Вы написали много. Но зачем?
Я спросил конкретный вопрос.
А вы поплыли.
все что есть в esp-idf я уже протестил. Результаты показал.
-------------------
Отвечаю на ваш вопрос: Zig - это язык программирования а-ля СИ.
-------------------
Отвечаю на ваш вопрос. Примеры в ESP-idf не устраивают так как хочу bare metal на ESP32, аналогично тому, который использую на ESP8266 на основе rboot. Для этого нашел лишь вариант на Rust и ZIG.
 

pvvx

Активный участник сообщества
Каким образом другой язык программирования изменит время старта SoC и заполнит кэш процессора после deep-sleep?

При этом наиболее контролируемым языком после ASM является СИ. Контролируемым по производительности и используемых ресурсах.
 
Сверху Снизу