1. 课程导学与开发环境搭建
各位同学好,我是你们这门课的主讲。在嵌入式这行摸爬滚打了十几年,从最早的裸机开发到后来接触各种实时系统,踩过的坑确实不少。今天咱们开始第一讲,先把路铺好。
这门课到底讲什么?说白了,就是教你怎么把RT-Thread这个实时系统,跟STM32的外设驱动结合起来。不是单纯讲理论,是真正能跑在板子上的东西。
1.1 课程目标与适用人群
先说说这门课的目标。我希望你学完之后,能独立完成一个带实时系统的嵌入式项目。具体来说:
- 掌握RT-Thread内核机制:任务调度、信号量、消息队列这些核心概念,得真正理解
- 学会外设驱动移植:GPIO、UART、SPI、I2C这些常用外设,怎么从裸机驱动改成RT-Thread驱动框架
- 能独立调试:遇到问题知道怎么定位,而不是盲目改代码
什么人适合学这门课?我建议你满足以下条件:
| 条件 | 说明 |
|---|---|
| 有C语言基础 | 指针、结构体、链表这些得熟练 |
| 用过STM32 | 至少做过一个裸机项目,知道怎么点灯、串口通信 |
| 对RTOS感兴趣 | 不需要有经验,但得有学习的热情 |
我的建议:如果你刚学完STM32基础,别急着上手RT-Thread。先把裸机开发练扎实,不然后面会吃力。
1.2 学习路径规划
这门课一共30章,我把它分成了四个阶段。你想想看,盖房子得先打地基,学东西也一样。
核心原则:每章学完,一定要在开发板上跑一遍代码。光看不练,等于白学。
1.3 开发工具安装
工欲善其事,必先利其器。咱们先把开发环境搭好。我个人习惯用STM32CubeMX生成初始化代码,然后用Keil MDK编译调试。RT-Thread这边,用Studio或者Env工具链都行。
STM32CubeMX安装
这个工具是ST官方出的,用来配置芯片引脚和时钟。安装步骤很简单:
- 去ST官网下载最新版STM32CubeMX(需要注册账号)
- 运行安装包,一路Next就行
- 安装完成后,打开软件,它会提示你安装固件包
- 选择STM32F4系列,下载对应的HAL库
注意:固件包下载可能比较慢,建议用手机热点或者换个时间段试试。我曾经在客户现场演示时,因为没提前下载固件包,结果现场等了半小时...从那以后我都是提前准备好。
Keil MDK安装
Keil MDK是ARM的IDE,咱们用来编译和调试代码。
- 版本选择:建议用MDK 5.38或更高版本
- 安装步骤:运行安装包,选择安装路径(不要有中文)
- 破解:这个我就不多说了,大家懂的都懂
- 安装器件包:打开Keil,点击Pack Installer,安装STM32F4系列的DFP包
RT-Thread Studio与Env工具链
RT-Thread Studio是官方IDE,集成了编辑、编译、下载功能。Env是命令行工具,适合喜欢用脚本的老手。
| 工具 | 适用场景 | 特点 |
|---|---|---|
| RT-Thread Studio | 新手、图形化操作 | 集成度高,开箱即用 |
| Env工具链 | 老手、自动化构建 | 灵活,适合批量编译 |
我建议刚开始用Studio,等熟悉了再尝试Env。安装步骤:
- 从RT-Thread官网下载Studio安装包
- 运行安装,选择SDK管理,下载RT-Thread源码
- Env工具链在Studio安装目录下就有,也可以单独下载
小技巧:安装路径不要有空格和中文,否则编译时会报一些莫名其妙的错误。我遇到过好几次,最后发现是路径问题。
1.4 硬件平台介绍
咱们用的板子是正点原子的STM32F407探索者开发板。为什么选这块板子?
- 主控:STM32F407ZGT6,Cortex-M4内核,带FPU
- 资源丰富:1MB Flash,192KB SRAM,各种外设接口齐全
- 性价比高:淘宝上两百多块,适合学习
板子上集成了这些外设:
| 外设 | 接口 | 用途 |
|---|---|---|
| LED | GPIO | 状态指示 |
| 按键 | GPIO | 用户输入 |
| 串口 | USART1/USART2 | 调试通信 |
| SPI Flash | SPI1 | 数据存储 |
| I2C EEPROM | I2C1 | 参数保存 |
| 以太网 | RMII | 网络通信 |
嗯,这里要注意一点。板子上的晶振是8MHz,但STM32F407内部PLL可以倍频到168MHz。咱们后面配置时钟时会用到。
硬件准备清单:
- STM32F407探索者开发板 × 1
- USB数据线(安卓口) × 1
- J-Link或ST-Link调试器 × 1(板载有ST-Link)
- 杜邦线若干(备用)
好了,第一讲的内容就这些。工具装好,板子准备好,咱们下节课就开始动手了。