ESP32'de Rust ile çalışma


19

ESP32'yi kullanacak bir ağ geçidi cihazı oluşturmak istiyorum. Bu, bir Sensörün ModBus TCP portuna bağlanmalıdır. Bu amaçla, zaten var olan Modbus Rust uygulamasını kullanmak istiyorum. Ama nasıl ESP32 üzerinde çalışan Rust kodu alabilirim hakkında çok az bilgi var.

Herkes bu konuya ışık tutabilir mi?


Yanıtlar:


12

Rust, LLVM'nin ara sunumunu (IR) platforma özgü koda derlemek için kullanılan bir dizi program olan LLVM araç zincirini kullanır . Süreç şöyle çalışır:

Rust Code -> Rust Compiler -> LLVM IR -> Back-end -> Platform-specific code
             (Front-end)

Şu anda, ESP32 tarafından kullanılan Xtensa mimarisi için bir arka uç yoktur . Bu maalesef ESP32 için Rust kodunu derleyemeyeceğiniz anlamına gelir . Sen diyelim ki yüklemek sorunuzu, ama demek istemedim varsayalım - bunun yerine, Pas derleyici kurmayın, ESP32 üzerinde Pas kod çalıştırmasına orada istiyorum.

Eğer Rust kullanmak gerçekten umutsuz iseniz, teoride kullanabilirsiniz LLVM C Arka Ucu LLVM IR dönüştürür, -> C, sonra kullanmak Espressif tarafından sağlanan toolchain ESP32 makine koduna derlemek için. Ancak, bu zor olacak ve hiç işe yaramayabilir. Mermi ısırmak ve bu durumda C'yi kullanmak çok daha kolay bulacaksınız, bu utanç verici, çünkü Rust harika bir dil, ancak gömülü desteği şu anda C kadar iyi değil.


Rust'u destekleyen diğer Donanım kartlarından haberdar mısınız? Evet, dediğin gibi Rust programlarını cihazda çalıştırmak istiyorum ve kesinlikle orada bir derleyici istemiyorum!
sparkr

@sparkr Rust'un desteklediği desteklenen platformların ve mimarilerin listesi burada mevcuttur ; bu platformların çoğu ya x86, x86-64 ya da çeşitli ARM mimarileri. Tüm bunların istediğinizden çok daha yetenekli (ve pahalı) olduğunu düşünüyorum, bu yüzden Rust ile seçeneklerinizi gerçekten sınırlıyor. Bununla birlikte, TI MSP430 , 'Tier 3' destekli bir cihaz olarak listelenmiştir, bu nedenle Rust hemen hemenhakkında olabilir . Rust'u henüz gömülü uygulamalar için kullanmadığım için kişisel deneyimlerimden konuşamıyorum.
Aurora0001

Xtensa kemerini desteklemek için topluluk destekli bir rustc çatalı var. Mabez.dev/blog/posts/esp32-rust
Tim McNamara

13

Xtensa yeni bir ESP32 / Espressif LLVM arka ucu ve clang ön ucu yayınladı. Duyurularına buradan bakın: https://esp32.com/viewtopic.php?p=38466 Depolar: https://github.com/espressif/llvm-xtensa & https://github.com/espressif/clang-xtensa As pas LLVM'ye dayanmaktadır, bu yeni ESP32 LLVM arka ucu ESP32 için Rust desteğinin daha muhtemel hale gelmesine yardımcı olmalıdır. Duyuru, gelecekteki Rust desteğine bile işaret ediyor.


Hey, IoT.SE'ye hoş geldiniz! Daha eksiksiz hale getirmek için bu cevabı düzenlemenizi tavsiye ederim . Temelde, asgari açıklama ile sadece bir dizi bağlantıdır ve tam bir cevaptan ziyade bir yorum gibi görünür. Cevabı daha ayrıntılı olarak ve sadece referans linkleriyle açıklamak çok daha iyi olurdu. Teşekkürler!
Anonim2

8

Aurora0001'in dediği gibi, Rust'u şu anda bir ESP32'de (veya daha eski ESP8266'da) çalıştıramazsınız.

ESP32 kullanacağınız ancak Rust kullanmak istediğiniz durumlarda kullanılması tavsiye edilen çok benzer bir çip olan RTL8710 var.

İşte birinin kurulumlarını yaptığı bir web sitesi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.