Chciałbym zbudować bramę, która będzie korzystała z ESP32. Powinno to połączyć się z portem ModBus TCP czujnika. W tym celu chciałbym zastosować implementację Modbus Rust, która już istnieje. Ale jest bardzo mało informacji na temat tego, jak mogę uruchomić kod Rust na ESP32.
Czy ktoś może rzucić nieco światła na ten temat?
Odpowiedzi:
Rust wykorzystuje zestaw narzędzi LLVM , który jest zestawem programów służących do kompilacji pośredniej reprezentacji LLVM (IR) w kodzie specyficznym dla platformy. Proces działa trochę tak:
Obecnie nie ma zaplecza dla architektury Xtensa używanej przez ESP32. To niestety oznacza, że nie można skompilować kodu Rust dla ESP32 . W swoim pytaniu powiedziałeś „ zainstaluj” , ale zakładam, że nie miałeś na myśli tego - raczej chcesz uruchomić kod Rust na ESP32, a nie instalować tam kompilatora Rust.
Jeśli naprawdę chcesz używać Rust, teoretycznie możesz użyć Backend LLVM C , który konwertuje LLVM IR -> C, a następnie użyć łańcucha narzędzi dostarczonego przez Espressif do skompilowania do kodu maszynowego ESP32. Jednak będzie to trudne , a może nawet nie działa w ogóle. O wiele łatwiej będzie ci ugryźć pocisk i użyć C w tym przypadku, co jest wstydem, ponieważ Rust jest świetnym językiem, ale jego wbudowane wsparcie nie jest obecnie tak dobre, jak C.
źródło
Xtensa wydała właśnie oficjalny backend ESP32 / Espressif LLVM i clang. Zobacz ich ogłoszenie tutaj: https://esp32.com/viewtopic.php?p=38466 Repos: https://github.com/espressif/llvm-xtensa & https://github.com/espressif/clang-xtensa As rdza jest oparta na LLVM, ten nowy backend LLVM ESP32 powinien pomóc w zwiększeniu prawdopodobieństwa rdzy dla ESP32. Ogłoszenie wskazuje nawet na przyszłe wsparcie Rust.
źródło
Jak powiedziała Aurora0001, obecnie nie można uruchomić Rust na ESP32 (lub starszym ESP8266).
Istnieje bardzo podobny układ, RTL8710, który jest zalecany do użycia w sytuacjach, w których chciałbyś użyć ESP32, ale chcesz użyć Rust.
Oto strona internetowa, na której ktoś przeprowadza konfigurację.
źródło