第1课时:Rust简介与环境搭建
文章目录
- 第1课时:Rust简介与环境搭建
- 一、课程目标
- 二、课程重难点
- 三、课程内容
- 3.1 Rust简介
- 3.1.1 Rust是什么
- 3.1.2 Rust核心优势(贴合嵌入式场景)
- 3.1.3 Rust在STM32中的应用场景
- 3.2 Rust工具链安装
- 3.2.1 准备工作
- 3.2.2 执行安装命令
- 3.2.3 安装过程配置
- 3.2.4 环境生效与验证
- 3.3 STM32 Rust开发环境适配
- 3.3.1 安装嵌入式工具链组件
- 3.3.2 调试环境配置
- 3.4 实战演示:运行第一个Rust程序
- 四、课堂示例(可直接复制运行)
- 示例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输入):
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(终端输入):
curl--proto'=https'--tlsv1.2-sSfhttps://sh.rustup.rs|sh3.2.3 安装过程配置
运行命令后,终端会出现如下选项,直接输入“1”并回车,全程默认安装即可(新手无需自定义配置):
1)Proceed with installation(default)2)Customize installation3)Cancel installation安装过程约3-5分钟(取决于网络速度),安装完成后会提示“Rust is installed now. Great!”。
3.2.4 环境生效与验证
- 环境生效:安装完成后,关闭当前终端,重新打开一个新终端(环境变量自动生效,无需手动配置)。
可选(手动生效):
macOS/Linux:终端输入
source $HOME/.cargo/envWindows:无需手动操作,重启PowerShell即可
- 验证安装:输入以下两条命令,若能显示版本号,说明Rust工具链安装成功(版本号可能不同,不影响使用):
rustc--versioncargo--version成功示例:
rustc1.94.0cargo1.94.03.3 STM32 Rust开发环境适配
在基础Rust环境上,补充嵌入式开发所需工具,适配STM32单片机(以STM32F103为例)。
3.3.1 安装嵌入式工具链组件
终端输入以下命令,安装STM32所需的交叉编译工具链和调试工具:
rustup targetaddthumbv7m-none-eabi# 适配STM32F103等Cortex-M3内核cargoinstallcargo-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开发铺垫。
# 1. 创建基础Rust项目cargonew hello_rustcdhello_rust# 2. 运行程序cargorun运行成功后,终端输出Hello, world!,说明基础环境完全正常。
四、课堂示例(可直接复制运行)
示例1:基础Hello World程序(验证基础环境)
// src/main.rsfnmain(){// 打印基础信息,适配终端输出println!("Hello, Rust!");println!("Rust工具链版本:rustc 1.94.0");println!("准备开启STM32 Rust编程之旅!");}运行命令:cargo run,查看终端输出结果。
示例2:验证嵌入式工具链(STM32适配测试)
# 查看已安装的交叉编译目标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、环境验证