Je voudrais construire un périphérique de passerelle qui utilisera l'ESP32. Cela devrait se connecter au port TCP ModBus d'un capteur. Pour cela, je souhaite utiliser l'implémentation Modbus Rust, qui existe déjà. Mais il y a très peu d'informations sur la façon dont je pourrais faire fonctionner le code Rust sur l'ESP32.
Quelqu'un peut-il faire la lumière sur ce sujet?
Réponses:
Rust utilise la chaîne d'outils LLVM , qui est un ensemble de programmes utilisés pour compiler la représentation intermédiaire (IR) de LLVM en code spécifique à la plate-forme. Le processus fonctionne un peu comme ceci:
Actuellement, il n'y a pas de backend pour l'architecture Xtensa utilisée par l'ESP32. Cela signifie malheureusement que vous ne pouvez pas compiler le code Rust pour l'ESP32 . Vous avez dit installer dans votre question, mais je suppose que vous ne vouliez pas dire cela - plutôt, vous voulez exécuter du code Rust sur l'ESP32, pas y installer le compilateur Rust.
Si vous êtes vraiment désespéré d'utiliser Rust, vous pourriez, en théorie, utiliser le backend LLVM C , qui convertit LLVM IR -> C, puis utiliser la chaîne d'outils fournie par Espressif pour compiler en code machine ESP32. Cependant, cela sera difficile et pourrait même ne pas fonctionner du tout. Vous trouverez beaucoup plus facile de mordre la balle et d'utiliser C dans ce cas, ce qui est dommage, car Rust est un excellent langage, mais son support intégré n'est pas aussi bon que les C pour le moment.
la source
Xtensa vient de publier un backend officiel et un frontal clang ESP32 / Espressif LLVM. Voir leur annonce ici: https://esp32.com/viewtopic.php?p=38466 Repos: https://github.com/espressif/llvm-xtensa & https://github.com/espressif/clang-xtensa As rust est basé sur LLVM, ce nouveau backend ESPL LLVM devrait aider à rendre la prise en charge de Rust pour ESP32 plus probable. L'annonce fait même allusion à ce futur support de Rust.
la source
Comme l'a dit Aurora0001, vous ne pouvez pas exécuter Rust sur un ESP32 actuellement (ou l'ancien ESP8266).
Il existe une puce très similaire, la RTL8710, qui est recommandée pour une utilisation dans des situations où vous utiliseriez un ESP32, mais souhaitez utiliser Rust.
Voici un site Web où quelqu'un parcourt sa configuration.
la source