谁能阐明这个话题?
#1 楼
Rust使用LLVM工具链,该工具链是用于将LLVM的中间表示(IR)编译为特定于平台的代码的一组程序。该过程的工作原理如下:Rust Code -> Rust Compiler -> LLVM IR -> Back-end -> Platform-specific code
(Front-end)
当前,ESP32使用的Xtensa架构没有后端。不幸的是,这意味着您无法为ESP32编译Rust代码。您确实在您的问题中说过安装,但我想您不是那个意思,而是,您想在ESP32上运行Rust代码,而不是在那里安装Rust编译器。
如果您真的迫切需要使用Rust,从理论上讲,您可以使用LLVM C后端,它转换LLVM IR-> C,然后使用Espressif提供的工具链编译为ESP32机器代码。但是,这将很困难,甚至可能根本不起作用。在这种情况下,您会发现硬着头皮使用C容易得多,这很可惜,因为Rust是一种很棒的语言,但是其嵌入式支持目前不如C。
评论
您是否知道其他任何支持Rust的硬件板?是的,就像您说的那样,我只想在设备上运行Rust程序,并且我当然不希望在那里有编译器!
–sparkr
17年9月19日在17:37
@sparkr此处提供了Rust支持的受支持平台和体系结构的列表;这些平台大多数是x86,x86-64或各种ARM体系结构。我想所有这些功能都比您想要的要强大得多(并且价格昂贵),因此确实会限制Rust的选择。但是,值得注意的是,TI MSP430被列为“第3层”支持的设备,因此Rust可能就可以工作了。不过,从我个人的经验来看,还是不能说的,因为我还没有将Rust用于嵌入式应用程序。
–Aurora0001♦
17年9月19日在17:42
现在有一个社区支持的rustc分支来支持Xtensa拱mabez.dev/blog/posts/esp32-rust
–蒂姆·麦克纳马拉(Tim McNamara)
19年11月20日在20:53
#2 楼
Xtensa刚刚发布了正式的ESP32 / Espressif LLVM后端和clang前端。在此处查看其公告:https://esp32.com/viewtopic.php?p=38466
回购:https:// github.com/espressif/llvm-xtensa&https://github.com/espressif/clang-xtensa
由于rust基于LLVM,因此新的ESP32 LLVM后端应有助于使Rust更支持ESP32。该公告甚至暗示了将来对Rust的支持。
评论
嗨,欢迎来到IoT.SE!我鼓励您编辑此答案以使其更完整。从目前的角度来看,它基本上只是一系列带有最少说明的链接,看起来更像是评论,而不是完整的答案。最好仅提供链接以更详细地解释答案。谢谢!
–anonymous2♦
19年2月19日在23:59
只是更新,先前的LLVM-xtensa项目已移至github.com/espressif/llvm-project
– alanionita
20年8月23日在21:41
评论
看看github.com/emosenkis/esp-rs