第1课时:Rust简介与环境搭建
文章目录
- 第1课时:Rust简介与环境搭建
-
- 一、课程目标
- 二、课程重难点
- 三、课程内容
-
- [3.1 Rust简介](#3.1 Rust简介)
-
- [3.1.1 Rust是什么](#3.1.1 Rust是什么)
- [3.1.2 Rust核心优势(贴合嵌入式场景)](#3.1.2 Rust核心优势(贴合嵌入式场景))
- [3.1.3 Rust在STM32中的应用场景](#3.1.3 Rust在STM32中的应用场景)
- [3.2 Rust工具链安装](#3.2 Rust工具链安装)
-
- [3.2.1 准备工作](#3.2.1 准备工作)
- [3.2.2 执行安装命令](#3.2.2 执行安装命令)
- [3.2.3 安装过程配置](#3.2.3 安装过程配置)
- [3.2.4 环境生效与验证](#3.2.4 环境生效与验证)
- [3.3 STM32 Rust开发环境适配](#3.3 STM32 Rust开发环境适配)
-
- [3.3.1 安装嵌入式工具链组件](#3.3.1 安装嵌入式工具链组件)
- [3.3.2 调试环境配置](#3.3.2 调试环境配置)
- [3.4 实战演示:运行第一个Rust程序](#3.4 实战演示:运行第一个Rust程序)
- 四、课堂示例(可直接复制运行)
-
- [示例1:基础Hello World程序(验证基础环境)](#示例1:基础Hello World程序(验证基础环境))
- 示例2:验证嵌入式工具链(STM32适配测试)
- 五、课后作业(巩固练习)
- 六、课程总结
- 七、课程关键词(重点记忆)
本课时作为基于STM32的Rust编程基础的开篇,核心围绕Rust简介与开发环境搭建展开,为后续学习奠定基础。首先介绍了Rust语言的核心定位与优势,明确其作为系统级语言,凭借内存安全、无GC、零成本抽象等特性,非常适配STM32嵌入式开发场景,能有效解决传统C/C++开发中的内存漏洞问题,同时保留高性能,适合工业控制、IoT等嵌入式应用。
实操部分重点讲解了Rust官方工具链的全平台安装方法,通过统一的官方脚本,无需复杂配置即可完成rustup、rustc、cargo的安装,同时详细说明环境生效的方法和验证步骤,确保每个学员都能完成基础环境搭建。针对STM32嵌入式开发,补充了交叉编译工具链和调试工具的安装,适配Cortex-M3内核的STM32F103开发板,讲解了ST-Link调试器的连接与验证方法,完成嵌入式开发环境的适配。
通过实战演示运行Hello World程序,让学员直观感受Rust开发的便捷性,同时布置课后作业,巩固环境搭建的核心步骤,培养问题排查能力。本课时的重点是掌握环境搭建的流程和验证方法,难点在于Windows系统环境变量生效和调试工具的配置,学员需重点关注安装过程中的提示信息,及时解决遇到的问题。通过本课时的学习,学员已具备Rust基础开发环境和STM32适配环境,为后续Rust语法学习和STM32外设实操做好了充分准备。
一、课程目标
-
了解Rust语言的核心定位、优势及嵌入式应用场景,明确学习意义
-
掌握Rust官方工具链(rustup、rustc、cargo)的全平台安装方法
-
完成STM32 Rust开发环境的适配(工具补充、调试环境配置)
-
验证环境搭建成功,运行第一个基础Rust程序,建立学习信心
二、课程重难点
-
重点:Rust工具链安装(全平台通用)、STM32开发环境适配
-
难点:Windows系统环境变量生效、STM32调试工具(probe-rs)配置
三、课程内容
3.1 Rust简介
3.1.1 Rust是什么
Rust是一门静态强类型、无GC(垃圾回收)、专注于内存安全、零成本抽象、无畏并发的系统级编程语言,由Graydon Hoare于2006年发起,后由Mozilla赞助,2015年发布1.0稳定版,目前由Rust基金会独立治理。
核心设计目标:解决C/C++的内存安全问题(如野指针、缓冲区溢出、数据竞争),同时保留接近C/C++的高性能,无需GC即可实现内存安全,适配嵌入式、系统开发、区块链等场景。
3.1.2 Rust核心优势(贴合嵌入式场景)
-
内存安全:通过所有权、借用、生命周期三大机制,编译期杜绝内存漏洞,降低嵌入式设备死机、数据错乱风险
-
零成本抽象:高级语法编译后与底层代码性能一致,不增加额外开销,适配STM32等资源有限的嵌入式设备
-
无GC:编译期管理内存,无运行时GC停顿,适合硬实时、低功耗嵌入式场景(如工业控制、IoT设备)
-
与C/C++无缝互操作:可增量替换STM32现有C/C++代码,无需推倒重来,降低迁移成本
-
工具链完善:cargo(包管理)、probe-rs(嵌入式调试)、defmt(嵌入式日志),提升开发效率
3.1.3 Rust在STM32中的应用场景
-
工业控制:STM32单片机的控制逻辑、外设驱动开发,保证高稳定性和安全性
-
IoT设备:低功耗传感器节点、数据采集模块,无GC特性适配长续航需求
-
安全关键场景:医疗设备、汽车电子(如ECU),编译期安全检查降低故障风险
-
高性能场景:STM32的高速外设控制、数据处理,零成本抽象提升运行效率
3.2 Rust工具链安装
核心工具链组成:rustup(版本管理器)、rustc(编译器)、cargo(包管理器),统一通过官方脚本安装,避免手动配置环境变量的繁琐操作。
3.2.1 准备工作
-
Windows:打开PowerShell(管理员模式或普通模式均可),确保网络通畅,关闭杀毒软件(避免拦截安装脚本)
-
macOS:打开终端,确保已安装Xcode Command Line Tools(输入xcode-select --install可安装)
-
Linux:打开终端,确保已安装curl(输入sudo apt install curl -y,Ubuntu/Debian系统)
3.2.2 执行安装命令
⚠️ 注意:不要手动下载安装包,仅使用以下官方脚本,自动适配系统并安装。
- Windows(PowerShell输入):
cmd
bitsadmin /transfer rustup-init https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe %temp%\rustup-init.exe && %temp%\rustup-init.exe
- macOS / Linux(终端输入):
bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
3.2.3 安装过程配置
运行命令后,终端会出现如下选项,直接输入"1"并回车,全程默认安装即可(新手无需自定义配置):
bash
1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
安装过程约3-5分钟(取决于网络速度),安装完成后会提示"Rust is installed now. Great!"。
3.2.4 环境生效与验证
- 环境生效:安装完成后,关闭当前终端,重新打开一个新终端(环境变量自动生效,无需手动配置)。
可选(手动生效):
-
macOS/Linux:终端输入
source $HOME/.cargo/env -
Windows:无需手动操作,重启PowerShell即可
- 验证安装:输入以下两条命令,若能显示版本号,说明Rust工具链安装成功(版本号可能不同,不影响使用):
bash
rustc --version
cargo --version
成功示例:
bash
rustc 1.94.0
cargo 1.94.0
3.3 STM32 Rust开发环境适配
在基础Rust环境上,补充嵌入式开发所需工具,适配STM32单片机(以STM32F103为例)。
3.3.1 安装嵌入式工具链组件
终端输入以下命令,安装STM32所需的交叉编译工具链和调试工具:
bash
rustup target add thumbv7m-none-eabi # 适配STM32F103等Cortex-M3内核
cargo install cargo-flash cargo-embed probe-rs-cli # 烧录、调试工具
3.3.2 调试环境配置
-
硬件准备:STM32开发板(如STM32F103C8T6)、USB转串口模块、SWD调试器(如ST-Link)
-
驱动安装:Windows系统需安装ST-Link驱动(可从ST官网下载),macOS/Linux无需额外安装驱动
-
验证调试工具:将ST-Link连接开发板和电脑,终端输入
probe-rs list,若能识别到调试器,说明配置成功。
3.4 实战演示:运行第一个Rust程序
通过简单程序验证环境,为后续STM32开发铺垫。
bash
# 1. 创建基础Rust项目
cargo new hello_rust
cd hello_rust
# 2. 运行程序
cargo run
运行成功后,终端输出 Hello, world!,说明基础环境完全正常。
四、课堂示例(可直接复制运行)
示例1:基础Hello World程序(验证基础环境)
rust
// src/main.rs
fn main() {
// 打印基础信息,适配终端输出
println!("Hello, Rust!");
println!("Rust工具链版本:rustc 1.94.0");
println!("准备开启STM32 Rust编程之旅!");
}
运行命令:cargo run,查看终端输出结果。
示例2:验证嵌入式工具链(STM32适配测试)
bash
# 查看已安装的交叉编译目标
rustup target list --installed
# 验证probe-rs调试工具
probe-rs list
预期结果:能看到 thumbv7m-none-eabi 和连接的ST-Link调试器。
五、课后作业(巩固练习)
-
- 完成全平台Rust工具链安装,截图保存
rustc --version和cargo --version的运行结果。
- 完成全平台Rust工具链安装,截图保存
-
- 安装STM32适配工具(cross、cargo-flash、probe-rs),截图保存
probe-rs list的运行结果(连接ST-Link)。
- 安装STM32适配工具(cross、cargo-flash、probe-rs),截图保存
-
- 创建并运行示例1的Hello World程序,修改打印内容为"STM32 Rust第1课时作业",截图保存运行结果。
-
- 记录安装过程中遇到的问题(如环境生效失败、调试器识别不到),尝试自行排查并记录解决方法。
六、课程总结
-
核心知识点:Rust语言定位、核心优势(内存安全、无GC、零成本抽象),STM32应用场景。
-
实操重点:Rust工具链安装(全平台通用命令)、环境生效验证、STM32嵌入式工具补充配置。
-
关键结论:Rust工具链是嵌入式开发的基础,STM32适配需补充交叉编译和调试工具,环境验证是后续实操的前提。
七、课程关键词(重点记忆)
-
Rust工具链、rustup、cargo
-
STM32 Rust适配、probe-rs
-
交叉编译、调试环境
-
Hello World、环境验证