这些单片机也能运行 Rust 啦!

随着 Rust 的快速发展,Rust 在嵌入式中的支持越来越丰富。目前已经有非常多的 Rust 嵌入式项目和 Rust 单片机外设支持库。理论上来说,目前大部分的 ARM、RISC-V 单片机 都能运行 Rust,但大部分单片机官方没有编写Rust 外设库,因此用户暂时无法直接开发 Rust 应用。本文将介绍几个已经支持 Rust 外设库的常用单片机,包括 STM、 ESP、 AVR 、NRF等单片机,目前已经可以使用 Rust 来开发这些单片机的嵌入式应用。

常见的单片机

STM32 (ST Microelectronics)

STM32 系列的微控制器拥有所有微控制器中最丰富的 Rust 支持。stm32-rs仓库包含适用于各种 STM32 微控制器的 Rust PAC crate,stm32-rs主页包含所有系列的外设驱动支持包。截至 2024 年 6 月,拥有 1.2K 星,目前仓库更新比较活跃。仓库地址:https://github.com/stm32-rs/stm32-rs

Atmel AVR

Rahix/avr-hal 是适用于 ATmega AVR(包括 Arduino、ATmega、ATtiny)的流行第 3 方 Rust HAL 库,截止目前已经有1.2K星,更新比较活跃。仓库地址:https://github.com/Rahix/avr-hal

下载和调试需要安装[ravedude](https://github.com/Rahix/avr-hal/tree/main/ravedude)工具,可以使用cargo run,然后连接串口显示打印的消息。手上有 Arduno AVR 系列的开源板可以试试。在 https://blog.logrocket.com/complete-guide-running-rust-arduino/ 上有一个关于让 Rust 在 Arduino Uno(使用 ATmega328P 微控制器)上工作的教程。基于该教程,大约 5 分钟即可构建一个LED 灯的 Rust 工程以及完成烧录。

Atmel SAM

atsamd-rs/atsamd GitHub 存储库提供了各种 crate,用于使用 Rust 处理基于 Atmel samd11、samd21、samd51 和 Same5x 的单片机。该存储库提供 PAC(外围访问包)和更高级别的 HAL(硬件抽象层)。HAL 实现由embedded-hal 项目指定的 trait。目前已有 538 颗星。仓库地址:https://github.com/atsamd-rs/atsamd

MSP430 (Texas Instruments)

GitHub 存储库 japaric/msp430-rtfm 上有一个可用于 MSP430 MCU 的 RTFM(Real-Time For the Masses,RTIC 的旧名称)版本,最近一次提交已经是 7 年前了。仓库地址:https://github.com/japaric/msp430-rtfm

ESP32 (Espressif Systems)

作为物联网产业的领先方案商,乐鑫 对目前主流的 ESP32 单片机都做了 Rust 驱动支持,所有系列的单片机驱动库支持 embassy 异步操作,仓库包括非常丰富的教程文档。官方仓库:https://github.com/esp-rs,如果想入门嵌入式 Rust,从 Esp32 系列单片机入门是个不错的方向。高质量教程:https://docs.esp-rs.org/book/

Nordic nRF

nrf-rs/nrf-hal 仓库为 nRF51、nRF52 和 nRF91 系列微控制器提供 Rust HAL库。手上有 micro:bit v2主板的可以玩玩 nrf-rust。embassy 对 NRF 的单片机支持非常高。想深入学习 embassy 操作系统的可以从这个单片机开始。仓库地址:https://github.com/nrf-rs/nrf-hal

RP2040

rp-rs/rp-hal 仓库提供了高质量的 RP2040 Rust 代码,同时支持 embassy,国外使用的挺多。仓库地址:https://github.com/rp-rs/rp-hal

PSoC

PSOC6 系列的单片机Rust 仓库看起来不太活跃。仓库地址:https://github.com/psoc-rs/psoc6-hal

BL(博流)

BL602 的单片机目前由 Sipeed公司维护,仓库地址:https://github.com/sipeed/bl602-hal

GD32(兆易)

目前 GD32 只有一款 Risc-V 内核的单片机和 F1 系列的单片机有 Rust 外设库,看起来都并非官方支持。V系列仓库地址为:https://github.com/gd32v-rust

F1 系列仓库地址:https://github.com/gd32-rust/gd32f1x0-hal

Swm341(华芯微特)

作为低成本显示的单片机,SWM341 目前有一个非官方的外设支持包,仓库地址为:https://github.com/hysonglet/synwit_hal_common,目前已经成功移植 Slint Rust GUI 框架。仓库暂未公开,等完善后将开放。

WCH(沁恒微)

WCH 目前对 Rust 的支持比较好,甚至也支持 embassy 异步操作系统。仓库地址:https://github.com/ch32-rs

其他

目前也有其他单片机开始支持 Rust,如 NXP,瑞萨、XMC 等,有兴趣的可以查阅:https://github.com/rust-embedded/awesome-embedded-rust

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 2
收藏 3
关注 15
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧