Rust 在嵌入式开发中表现如何?

Rust是新兴的系统开发语言,嵌入式系统也是Rust应用的目标之一。多个厂商的芯片、板子已有对应的Rust支持库,功能齐全;代码分享平台和产业界已有一…
关注者
149
被浏览
271,029

11 个回答

目前正在实验用Rust在stm32上写os(项目刚刚开始,还没啥代码)

GitHub地址

比较爽的地方:

  1. 调库方便,相比C语言装库要调一堆构建选项配好几种构建工具,有一个统一的 cargo 来管理这些问题显得非常方便,很多原来我宁可手写的东西(比如堆内存管理)现在我都可以选择调库了(alloc-cortex-m
  2. hal抽象层次较高,举一个调主时钟频率的例子,用C语言hal写要算一堆参数设置好几个寄存器,还要调flash的latency(我掉过坑),rust的hal只需要sysclk(72.mhz())即可,当然如果你习惯了使用C的hal,那确实需要一些时间来适应

比较不爽的地方:

  1. 写一些需要手动设置寄存器的中断处理的时候(例如上下文切换的sv),绝对不能使用hal提供的方案,也不能在处理函数中调用rust函数(例如用hal提供的开临界区函数),也不能用普通的#[no_mangle]函数,而是必须用特别的#[naked]函数,否则寄存器的值一定会被破坏,当然本来这些函数习惯上也会用汇编编写,但看到hal提供了却用不了还是挺难受的
  2. 资料相对C较少(当然这个事情也得靠我们每一个用户去改变)

总之,个人认为,在部分非关键场合及教学场合下的嵌入式开发,已经可以考虑开始使用Rust。

另:今年嵌入式课的大作业就决定拿Rust写了。

我就是个菜鸡,一没经验二没设备……

搞 Rust 嵌入式的最新进展是按照知乎上的教程成功运行走马灯。

这学期有嵌入式的课,我准备造一台 NumWorks 然后用 Rust 写应用,到时候再补充这个回答吧。