1. 课程导学与开发环境搭建

各位同学好,我是你们这门课的主讲。在嵌入式这行摸爬滚打了十几年,从最早的裸机开发到后来接触各种实时系统,踩过的坑确实不少。今天咱们开始第一讲,先把路铺好。

这门课到底讲什么?说白了,就是教你怎么把RT-Thread这个实时系统,跟STM32的外设驱动结合起来。不是单纯讲理论,是真正能跑在板子上的东西。

1.1 课程目标与适用人群

先说说这门课的目标。我希望你学完之后,能独立完成一个带实时系统的嵌入式项目。具体来说:

  • 掌握RT-Thread内核机制:任务调度、信号量、消息队列这些核心概念,得真正理解
  • 学会外设驱动移植:GPIO、UART、SPI、I2C这些常用外设,怎么从裸机驱动改成RT-Thread驱动框架
  • 能独立调试:遇到问题知道怎么定位,而不是盲目改代码

什么人适合学这门课?我建议你满足以下条件:

条件 说明
有C语言基础 指针、结构体、链表这些得熟练
用过STM32 至少做过一个裸机项目,知道怎么点灯、串口通信
对RTOS感兴趣 不需要有经验,但得有学习的热情
我的建议:如果你刚学完STM32基础,别急着上手RT-Thread。先把裸机开发练扎实,不然后面会吃力。

1.2 学习路径规划

这门课一共30章,我把它分成了四个阶段。你想想看,盖房子得先打地基,学东西也一样。

课程学习路径规划 阶段一 环境搭建与基础 阶段二 内核机制实战 阶段三 外设驱动移植 阶段四 综合项目实战 第1-5章 工具链安装 硬件认识 第一个工程 第6-12章 任务创建与调度 同步与通信 内存管理 第13-24章 GPIO/UART/SPI I2C/Timer/ADC DMA/ETH 第25-30章 传感器数据采集 WiFi通信 综合调试 学习建议:每章结束后,务必在开发板上验证代码 理论 + 实践 = 真正掌握

核心原则:每章学完,一定要在开发板上跑一遍代码。光看不练,等于白学。

1.3 开发工具安装

工欲善其事,必先利其器。咱们先把开发环境搭好。我个人习惯用STM32CubeMX生成初始化代码,然后用Keil MDK编译调试。RT-Thread这边,用Studio或者Env工具链都行。

STM32CubeMX安装

这个工具是ST官方出的,用来配置芯片引脚和时钟。安装步骤很简单:

  1. 去ST官网下载最新版STM32CubeMX(需要注册账号)
  2. 运行安装包,一路Next就行
  3. 安装完成后,打开软件,它会提示你安装固件包
  4. 选择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。安装步骤:

  1. 从RT-Thread官网下载Studio安装包
  2. 运行安装,选择SDK管理,下载RT-Thread源码
  3. 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)
  • 杜邦线若干(备用)

好了,第一讲的内容就这些。工具装好,板子准备好,咱们下节课就开始动手了。