Я хотел бы построить устройство шлюза, которое будет использовать ESP32. Это должно подключиться к порту ModBus TCP датчика. Для этой цели я бы хотел использовать реализацию Modbus Rust, которая уже существует. Но есть очень мало информации о том, как я мог бы запустить код Rust на ESP32.
Может кто-нибудь пролить свет на эту тему?
Ответы:
В Rust используется набор инструментов LLVM , представляющий собой набор программ, используемых для компиляции промежуточного представления (IR) LLVM в специфичный для платформы код. Процесс работает примерно так:
В настоящее время не существует серверной части для архитектуры Xtensa, используемой ESP32. К сожалению, это означает, что вы не можете скомпилировать код Rust для ESP32 . Вы сказали « установить» в своем вопросе, но я предполагаю, что вы не имели в виду это, скорее, вы хотите запускать код Rust на ESP32, а не устанавливать там компилятор Rust.
Если вы действительно хотите использовать Rust, теоретически вы можете использовать LLVM C Backend , который преобразует LLVM IR -> C, а затем использовать набор инструментов, предоставленный Espressif, для компиляции в машинный код ESP32. Тем не менее, это будет сложно , и может даже не работать вообще. Вам будет гораздо проще прикусить пулю и использовать C в этом случае, что обидно, потому что Rust - отличный язык, но его встроенная поддержка не так хороша, как у C на данный момент.
источник
Xtensa только что выпустила официальный бэкэнд ESP32 / Espressif LLVM и Clang. Смотрите их объявление здесь: https://esp32.com/viewtopic.php?p=38466 Repos: https://github.com/espressif/llvm-xtensa & https://github.com/espressif/clang-xtensa As ржавчина основана на LLVM, этот новый бэкэнд ESP32 LLVM должен помочь повысить поддержку Rust для ESP32. Объявление даже намекает на эту будущую поддержку Rust.
источник
Как сказал Aurora0001, в настоящее время вы не можете запустить Rust на ESP32 (или на более старой ESP8266).
Есть очень похожий чип, RTL8710, который рекомендуется использовать в ситуациях, когда вы используете ESP32, но хотите использовать Rust.
Вот сайт, где кто-то проходит через их настройки.
источник