嵌入式系统
嵌入式系统不是“在小电脑上写 C”。它是一个持续接触物理世界的计算系统:电源让器件工作,传感器把物理量变成信号,处理器读取并计算,执行器改变环境,测量工具帮助我们判断真实设备是否符合预期。
text
物理世界 → 电压/电流/时序 → 输入外设 → MCU 与固件
→ 通信/控制 → 输出外设 → 新的物理状态1
2
2
适合谁
主线默认读者有数学与线性代数基础、会使用电脑,但不要求学过电路、焊接或单片机。课程先用手算和浏览器虚拟实验建立可测量的心智模型,再引入开发板、示波器、RTOS 和具体芯片。
唯一学习主线
| 章 | 核心问题 | 状态 |
|---|---|---|
| 0 | 电、信号与测量:万用表究竟在测什么 | 可学习 |
| 1 | 数字逻辑与计算机组成:处理器怎样表示和执行信息 | 可学习 |
| 2 | MCU 与裸机固件:代码怎样从复位运行到控制引脚 | 可学习 |
| 3 | 外设与通信:GPIO、ADC、PWM、UART、I²C、SPI 怎样工作 | 可学习 |
| 4 | 中断、DMA 与实时性:事件怎样按时被处理 | 可学习 |
| 5 | RTOS:并发任务怎样共享处理器和资源 | 可学习 |
| 6 | 原理图、PCB 与硬件边界:固件怎样落到可靠硬件上 | 可学习 |
| 7 | 调试、升级与设备可靠性:系统怎样失败和恢复 | 可学习 |
| 扩展 | 嵌入式 Linux、机器人、边缘智能 | 专题分支 |
主线顺序不能随意交换:不知道电平和测量,就无法可靠判断 GPIO;不知道时序,就看不懂总线;不知道中断和共享状态,就难以理解 RTOS。
软件对象与物理对象必须对应
| 软件里看到的对象 | 硬件上对应什么 | 常用证据 |
|---|---|---|
0 / 1 | 某个容差范围内的低/高电压 | 万用表、示波器 |
| 寄存器位 | 外设内部的一组触发器或控制状态 | 数据手册、调试器 |
延时 1 ms | 时钟计数与调度产生的真实时间 | 示波器、逻辑分析仪 |
| 驱动返回成功 | 软件流程完成,不保证外部器件真的响应 | 状态寄存器、总线波形 |
| 温度、距离等数值 | 传感器电信号经过采样和换算的结果 | 原始 ADC 值、标定数据 |
实验策略
- 第 0–1 章使用浏览器虚拟实验,不要求购买硬件;
- MCU 章节固定使用 Pico RP2040 点灯工程,同时保留与厂商无关的原理解释;
- 每次实验记录板卡版本、供电、引脚、工具链、固件提交和观察工具;
- 代码输出、寄存器值和真实波形至少形成两种相互独立的证据。
当前第 0–7 章的“可学习”描述概念与模拟课;Pico 提供具体板级操作教程,但未完成真实硬件测量。请分别记录概念、模拟、构建和板级实操状态,不能用浏览器结果代替板级通过。
专栏边界
- 芯片、外设、固件、电路、PCB 和设备集成归入本专栏;
- 与设备无关的操作系统和分布式基础归入系统工程;
- 模型训练归入智能算法,端侧推理和传感器部署保留在这里;
- 本专栏教的是可迁移原理,不把某块开发板的 API 手册当成完整课程。
当前学习入口
从第 0 章:电、信号与测量开始,按章节顺序一直完成到第 7 章。每章都含概念、实验、速查和验收;浏览器实验建立模型,真实硬件结论仍需板卡与仪器复核。
完整依赖、建设状态和专题分支见嵌入式知识地图。