Skip to content

我们想做一个横跨 MCU 与嵌入式 Linux 的开源学习工作室

这不是一份“我们已经完成了一切”的公告。

更像是整理了一次工作台:把过去做过的教程、开发板实验、模拟器、系统项目和踩坑记录重新摆好,然后认真回答一个问题——AELS 到底想做什么?

我们的答案是:

尝试把 Modern C++ 带进真实的嵌入式学习过程,从 MCU 一路走到嵌入式 Linux。

从一些很普通的问题开始

很多嵌入式学习,都从点亮一颗 LED 开始。

接下来可能是按键、中断、串口和 RTOS,也可能转向 U-Boot、Linux、设备树和 rootfs。资料并不少,但它们往往分散在不同芯片、不同工具链和不同年代的工程习惯中。

学过一个例程,不一定知道下一步去哪;跑通一个厂商 SDK,也不一定知道它为什么这样组织。

AELS 最初的许多项目,其实都来自这些朴素的问题:

  • 学完 C 之后,怎样进入真实的嵌入式工程?
  • Modern C++ 能不能用于资源受限设备,而不只是桌面程序?
  • MCU、RTOS、嵌入式 Linux 和系统软件之间,有没有一条连贯的学习路线?
  • 模拟器跑通、代码编译通过和真板工作,分别能证明什么?
  • 一个失败结论被推翻以后,是否值得把过程也保留下来?

我们没有一个一次性完成的答案,所以建立了一个开放的工作室,边做、边学、边验证。

我们怎样看待 Modern C++

我们不认为 C++ 应该替代 C。

寄存器、启动代码、Linux 内核、许多厂商 SDK 和驱动接口仍然离不开 C。理解指针、内存布局、ABI 和硬件时序,也是学习嵌入式无法绕开的基础。

但当工程从一个例程逐渐长大,开始出现资源所有权、任务生命周期、错误传播、组件边界和多平台复用时,我们希望继续追问:

  • RAII 能否让外设和系统资源的生命周期更清楚?
  • constexpr 和模板能否在编译期完成一部分检查?
  • 类型系统能否减少寄存器、单位和状态之间的误用?
  • 在关闭异常、限制堆使用的环境里,Modern C++ 还能留下哪些真正有价值的能力?
  • 抽象是否真的零成本,能否通过汇编、体积和延迟证明?

因此,Modern C++ 在 AELS 不是一组需要炫耀的语法,而是一场长期的工程尝试。

C 帮助我们理解硬件,Modern C++ 帮助我们组织逐渐复杂的系统。

两条主要的平台路线

目前,工作室以 MCU 和嵌入式 Linux 为两条主要平台路线。

在 MCU 一侧,我们从 STM32F1 进入最基础的启动、寄存器、异常和外设,也围绕 ESP32-S3 理解 ESP-IDF、双核 RTOS、无线、USB 和现代 MCU SDK。

模拟器和 Host 测试帮助我们观察软件机制;最终仍回到开发板,验证电气、时序、功耗、无线和真实外设。

在嵌入式 Linux 一侧,我们从 i.MX6ULL 建立完整入门链路,也在 H618 和 Rockchip 平台上继续探索 mainline、U-Boot、设备树、驱动、Buildroot、OpenWrt、媒体和产品化。

不同平台可以共享知识和方法,但不会因为放在同一个组织里,就假装它们拥有相同的工具链、ABI、镜像或硬件结论。

除此之外,Cinux、CFBox、micro-forge、lightroot、CFDesktop 等项目,继续尝试把课程里的知识带进模拟器、操作系统、Unix 工具、rootfs 和桌面产品。

为什么叫“学习工作室”

我们没有打算把 AELS 做成一套封闭的标准答案。

“工作室”意味着这里允许实验、讨论和调整;“工坊”意味着最后不能只停在概念和幻灯片上。

有些项目已经在真实硬件上运行,有些正在建设,有些目前只有路线规划。我们希望诚实地区分这些状态:

  • 规划说明将来想教什么;
  • 代码和构建说明工程已经走到哪里;
  • 测试、日志和真板记录说明一个结论究竟被证明到了哪一层。

成功路径值得整理,走错的路也值得保留。因为真实工程并不是从正确答案直接抵达正确答案。

重新整理路线,只是一个开始

最近,我们重新整理了 AELS 的整体学习地图

它不要求每个人完成相同的全部课程,也不要求先学 MCU 才能进入 Linux。它希望提供的是一个清楚的入口:

  • 初学者知道从哪里开始;
  • 有经验的人可以直接进入对应平台;
  • 想学习 Modern C++、系统软件、GUI 或操作系统的人,能找到继续深入的方向;
  • 每个自治仓库知道自己负责什么,也知道什么不应该由自己承担。

这张地图不是完成清单,而是接下来共同建设的坐标系。

欢迎来到这张工作台

如果你刚开始学习嵌入式,希望这张路线能帮你少绕一些没有必要的弯路。

如果你已经有工程经验,也欢迎审视我们的边界、指出错误,或者补充真实平台上的验证结果。

AELS 仍然是一间不大的开源学习工作室。我们会继续尝试 Modern C++,继续在 MCU 与嵌入式 Linux 之间搭桥,也继续把代码真正运行起来。

不用一次学完所有东西。

选择一条感兴趣的路线,从一个能够被验证的小项目开始,就很好。

接下来去哪里

Built with VitePress