NO.24 · 嵌入式开发
嵌入式学习路线图:9 个仓库串成一条从电路到系统的主线
一个不存放课程文件的索引仓库——把分散在 9 个独立仓库中的嵌入式笔记按「语言 → 硬件 → 系统」三阶段串联,给出可执行的阅读路径与统一的仓库约定。
九门课、九个仓库,如果只是平铺在 GitHub 首页,它们就只是一堆孤立的资料。这个索引仓库做了一件事:给它们排一个顺序,让「先学什么、后学什么、为什么是这个顺序」有一个明确的答案。
它是什么
这是一个索引仓库,不存放课程文件本身。它把分散在 9 个独立仓库中的嵌入式课程笔记,按一条从语言基础到系统开发的主线串联起来,形成一条可执行的阅读路径。每个仓库只负责一个明确的知识域,可以单独克隆、单独阅读,也可以按编号顺序推进。
目标写得很清楚:读得懂数据手册、点亮一颗芯片、交付一版固件。
三个阶段,九门课
1 | 基础 ──> 硬件 ──> 系统 |
| 编号 | 仓库 | 内容 |
|---|---|---|
| 01 | c-systems-programming-handbook | C 核心语法、指针、预处理器、自定义类型、动态内存与文件操作 |
| 02 | data-structures-and-algorithms | 数组、链表、栈、队列,查找、排序与复杂度分析 |
| 03 | analog-circuits-and-components | 电学基础、电阻电容电感、二极管/三极管/MOS 管与典型电路 |
| 04 | digital-logic-and-computer-organization | 逻辑门、触发器、冯诺依曼模型、指令集、总线与引导流程 |
| 05 | schematic-and-pcb-design | 嘉立创 EDA 原理图、PCB 布局布线、封装设计与焊接 |
| 06 | stm32-mcu-development-notes | GPIO、中断、定时器、DMA、ADC、SPI、CAN、以太网与低功耗 |
| 07 | freertos-learning-notes | 任务调度、内核移植、队列、信号量、事件组与内存管理 |
| 08 | linux-shell-regex-notes | Ubuntu 系统管理、Shell 脚本与正则表达式 |
| 09 | linux-application-development-notes | GCC 工具链、文件 I/O、进程线程、IPC、Socket 与 epoll |
顺序不是课程表本身,而是依赖关系:没有指针和内存模型,看不懂寄存器位域;不理解触发器,就理解不了定时器与中断;没跑过裸机,RTOS 的调度器只是黑盒;不熟悉系统调用,Linux 应用层就只在背 API。
统一的仓库约定
九个仓库遵循同一套结构,便于批量阅读与检索:
1 | repository/ |
约定里有一条边界值得借鉴:README 只做索引与学习建议,完整定义、图示与示例以 docs/ 中的文档为准。也就是说,索引不复制正文,避免同一份知识在两处维护、两处过期。每个仓库末尾还有一段「关键词」,列出覆盖的技术术语,方便搜索时定位。
文档同时提供 PDF 与 DOCX:PDF 用于在线预览,DOCX 用于批注和摘录——同一内容的两种消费方式。
一个值得记住的细节
这个仓库本身没有一行代码,但它可能是整个体系里最有价值的一个——因为它回答的是「路径」问题。资料越多,路径越稀缺:九个仓库各自都完整,但没有排序时,新人面对的是九扇没有门牌的门。
把「阅读顺序」单独做成一个版本化的仓库,还有一个隐性好处:路线图和课程仓库可以独立演进。课程内容更新不影响路线,路线调整也不需要动任何一门课的正文。