CHAPTER 02 / FIELD GUIDE
单片机里面有什么
从电脑上的源代码走到引脚电平。
四层对象不要混淆
| 对象 | 在本课中是什么 | 作用 |
|---|---|---|
| 芯片 / SoC | ESP32-S3 | 执行程序,带 GPIO、定时器等外设 |
| 模组 | ESP32-S3-WROOM-1-N8R8 | 集成芯片及相关存储、射频电路 |
| 开发板 | DevKitC-1 | 提供供电、USB、按键和排针 |
| 框架 / SDK | ESP-IDF | 驱动、系统服务和构建工具 |
程序在哪里运行
你的电脑运行编译器,把 C 代码变成适合 S3 的机器指令。烧录工具通过 USB 路径把固件写进 Flash。复位后,芯片的启动代码寻找并启动应用,最终调用 app_main。不是电脑每执行一行 C,就遥控芯片执行一行。
源代码 .c编译 / 链接固件 .binFlash启动 → app_main
Flash 断电后保留程序;RAM 保存运行中的变量、栈和缓冲区,断电不保留。PSRAM 是额外的外部 RAM,使用前需要对应配置;它不能替代掉电保存配置的 NVS。
外设为什么重要
CPU 负责决策,外设负责专门工作。GPIO 读写电平;PWM 外设按节奏切换引脚;ADC 把电压转成数值。使用 PWM 时,CPU 不必在每一个波形边沿都运行代码。稍后把屏幕刷新和电机控制分开,也是在分配责任。
纸上实验
- 写下“源文件保存”“编译”“烧录”“复位”四个动作。
- 假设只修改电脑里的文件但不烧录,预测板子会运行哪个版本。
- 假设重新插电,预测普通变量与 Flash 中程序各会怎样。
停下来想一想
代码里 count 从 0 加到 100,拔电后再上电,它会从 100 继续吗?
查看推导与答案
普通 RAM 变量会重新初始化。若要继续,需要主动把状态保存到非易失存储,并在启动时读取。不能每次加一就无节制写 Flash。
本章验收
本章一手资料
卡住时可以直接向我提问:附上章节号、工程名、接线和第一条错误日志。