本篇博客搭建了一个Rust嵌入式开发的基础环境,不同的芯片,只需要在此基础上安装对应的toolchaintarget即可,由于是Windows环境,为了最完美的兼容和适配,我们选择MSVC而不是GNU,这是长期实践下来比较完美的方案,若你是新手,无脑照抄即可。

安装Rust

若使用国内的网络直连,安装Rust时可能会耗费大量时间在下载环节,所以先配置一下代理(合理合法,免费使用)。

  • 浏览器搜索并打开rsproxy.cn,可以看到其主页介绍的用法是Linux/MAC系统下的常用方式,我们侧重介绍如何在Windows系统下配置,Windows 10/Windows 11均可。

  • 按下键盘上的Win键,输入edit environment variables for your account/环境变量,打开环境变量编辑页面。 图上是已经配置好的效果,具体操作方法如下

    • 点击Edit/编辑,将RUSTUP_DIST_SERVERhttps://rsproxy.cn,依次填入相应位置
    • 如法炮制,再将RUSTUP_UPDATE_ROOThttps://rsproxy.cn/rustup填入相应位置
  • 安装Rust

    • Rust Installer,点击直接下载
    • 下载完成后,双击打开即可
    • 输入1,按下回车(Enter),之后的弹窗继续点击Yes
    • 继续点击Continue
    • 点击Install
    • 等待进度条跑完
    • 完成
    • 完成以上步骤之后,Rust Installer会继续引导我们完成接下来的步骤
      • 可以看到,已经识别到了host, toolchain等信息
    • 现在输入2,并且按下回车(Enter)确认
    • 继续回车(Enter
    • 输入nightly,继续回车(Enter
    • 接下来一直点回车(Enter)即可,以下是安装过程,耐心等待即可
    • 命令行窗口提示:Rust is installed now. Great!,则说明安装成功
    • 按下回车(Enter)即可
    • 打开Visual Studio Installer,安装一些必备组件,之后编译项目或者工具的时候需要用到,点击Modify
    • 勾选Desktop development with C++,点击Modify,之后的弹窗点击Yes即可
    • 等待进度条跑满(下载速度能到100MB/s,使用SSD的情况下,估计两分钟就完成了)
    • 安装完成会再次回到这个界面,关闭即可
  • 若只是安装Rust,并且只是用标准库(无法做嵌入式开发),则完成以上步骤即可,但Rust嵌入式会频繁使用到crates.io的一些crate(理解成其他语言的库/模块),所以还需要配置拉取rsproxy提供的镜像(一分钟更新一次,可以近似理解为不会过时),具体操作步骤如下

    • 按下Win+E,打开资源管理器,进入C盘下的user目录,进入当前用户目录(我的是Admin,顺便一提,用户名最好是英文或者数字,不要用中文或者夹杂一些其他符号),继续进入.cargo目录,如果顺利,你当前的PWD应该类似是这样的:C:\Users\Admin\.cargo,紧接着复制rsproxy主页代码块里的配置文件
    • 在当前目录下(C:\Users\Admin\.cargo)新建一个config.toml文件,将以下toml配置,粘贴进去(可以新建一个config.txt文件,将内容粘贴进去后,再将后缀更改为toml即可)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
[source.crates-io]
replace-with = 'rsproxy-sparse'
[source.rsproxy]
registry = "https://rsproxy.cn/crates.io-index"
[source.rsproxy-sparse]
registry = "sparse+https://rsproxy.cn/index/"
[registries.rsproxy]
index = "https://rsproxy.cn/crates.io-index"
[net]
git-fetch-with-cli = true   

安装实用工具

  • 代码编辑软件和插件
    • 软件
      • 选用vscode作为编辑器足矣
        • 至于nvimzed或者是其余的editor/IDE,并不适合新手入门,而且vscode也不算过时
    • 插件
      • rust-lang.rust-analyzer:提供Rust LSP,当前最优秀的Rust语言服务器,vscode + RA的好用程度远超JetBrains家的RustRover
      • fill-labs.dependi:帮助管理crate,更直观的看到当前工程下crate的版本信息
      • tamasfe.even-better-toml:提供toml语法高亮和补全
      • probe-rs.probe-rs-debugger:调试服务器
        • 以上所有插件,直接复制名称,粘贴在vscode的插件市场的搜索栏里,回车搜索,点击安装即可
  • 安装交叉编译工具链和下常用工具
    • 打开命令行,输入以下命令,并按下回车(Enter),按照顺序执行即可
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 请自行查阅数据手册确定自己的芯片架构和硬件浮点支持

# Cortex-M0 和 Cortex-M0+(无硬件浮点)
rustup target add thumbv6m-none-eabi

# Cortex-M3(无硬件浮点)
rustup target add thumbv7m-none-eabi

# Cortex-M4(无硬件浮点)和 Cortex-M7(无硬件浮点)
rustup target add thumbv7em-none-eabi

# Cortex-M4F(带硬件浮点)和 Cortex-M7F(带硬件浮点)
rustup target add thumbv7em-none-eabihf

# 安装 cargo-binstall,用于快速安装已打包的工具
cargo install cargo-binstall

# 安装二进制工具(如 objdump/size 等)
cargo install cargo-binutils

# 安装 probe-rs 相关调试工具(后续用于烧录/调试)
# 执行完之后,会要求输入yes/no,输入yes,回车即可
cargo binstall probe-rs-tools
  • 安装以上工具时,会先拉取依赖的crate,再进行编译,CPU会瞬间跑满,风扇起飞,给出一个执行cargo install cargo-binstall的参考

综上,搭建了一个基础的Rust嵌入式开发环境,之后的教程主要使用STM32, ESP32, RP2040 Pico, RP2350 Pico2MCU进行演示。

至此,若只开发STM32常用芯片(STM32F1xx, STM32F4xx, STM32H7xx, STM32G4xx),则以上环境配置足矣,若还要继续开发其他架构的芯片,例如Cortex M33架构,则需要安装其他的交叉编译工具(若是想要提前尝鲜,也可求助LLM)。至于RP 2040/235X Pico(2)ESP32的开发环境,会分别各自单开一篇博客来讲,若是复用到本篇博客,我也会详细注明。

Rust本身就是一门反复入门,不断卸载重装的语言,若是学习过程让你感觉到吃力,不舒服,你想继续回归C/C++嵌入式,请按照以下步骤完成卸载。


卸载Rust嵌入式开发环境

  • 卸载Rust及工具链

    • 打开CMD/Powershell,输入以下命令,并且回车(Enter)确认
    1
    
    rustup self uninstall
    

    • 继续输入y,按下回车(Enter
    • 命令行出现以下结果,则说明卸载成功
  • 卸载Visual Studio Community

    • 打开geek uninstaller,若是没有,请自行搜索安装
    • 找到Visual Studio Community,右键,点击Uninstall
    • 在弹出的Visual Studio Installer窗口点击OK
    • 片刻等待之后,卸载完成
    • 继续卸载Build Tools,点击Uninstall,继续点击OK
    • 出现以下界面,则完成卸载
    • 再次回到geek uninstaller,会自动弹窗清理无用注册表,点击Finish即可

完成以上步骤之后,Rust嵌入式开发便与你再无交集,恭喜脱离苦海。

视频版本,可以点击跳转到Bilibili观看

视频录制的时间可能有些早,但是内容完全一样,若是视频无法复现,可以先按照博客的图文进行操作,若还是失败,可以在视频平台给我私信。