本目录是嵌入式 Linux 系统化学习的知识库与实践笔记。
每个子目录对应一个学习主题,从硬件基础到内核驱动再到系统构建与上层应用,由浅入深。
🔌 硬件基础
从电路、ARM 架构、寄存器手册到常见外设(GPIO/UART/I2C/SPI)。
🛠️ C 语言与编译
C 基础、指针/内存、数据结构、GCC 编译、交叉编译、Makefile/CMake、GDB 调试。
- C 语言初识:从 Hello World 走进 C 的世界
- 指针与内存管理
- C 语言高级特性
- 数据结构(嵌入式视角)
- GCC 编译过程
- 交叉编译
- 构建系统:Makefile 与 CMake
- GDB 调试
🐧 Linux 应用开发
Shell、系统调用、进程/线程、IPC(管道/消息队列/共享内存/信号)、Socket、守护进程。
⚙️ Linux 内核与驱动
内核框架、调度/内存/VFS、中断、同步、设备树、字符/块/网络驱动、I2C/SPI、DMA、调试。
- Linux 内核概览
- 内核模块
- 进程调度
- 内存管理
- 虚拟文件系统(VFS)
- 中断与异常
- 内核同步
- 设备树(Device Tree)
- 字符设备驱动
- 块设备驱动
- 网络设备驱动
- Platform 驱动模型
- DMA 与缓存一致性
- I2C 驱动
- SPI 驱动
- Pinctrl 与 GPIO 子系统
- 电源管理
- 内核调试
📦 系统构建与 Bootloader
U-Boot、内核移植、rootfs、BusyBox、Buildroot、Yocto、OpenWrt、OTA、从零构建。
- 系统启动流程
- U-Boot
- Linux 内核移植与裁剪
- 根文件系统(rootfs)
- BusyBox
- Buildroot
- Yocto / OpenEmbedded
- OpenWrt
- OTA 与固件升级
- 从零构建一个嵌入式 Linux 系统
📡 用户界面与通信
Framebuffer、Qt、LVGL、TCP/IP、Socket、HTTP/MQTT/CoAP、Wi-Fi/BLE、Web 后端。
- Linux Framebuffer
- Qt for Embedded Linux
- LVGL(轻量级 GUI)
- GTK 应用开发(简述)
- GUI 选型对比
- TCP/IP 协议栈
- Socket API 详解
- 应用层协议
- 无线技术
- 嵌入式 Web 后端
🚀 高级主题
实时 Linux、安全启动、SELinux、perf/ftrace/eBPF、电源管理、系统调优、Yocto 产品化。
- 实时 Linux
- 安全启动
- SELinux 与 AppArmor
- 性能分析
- 电源管理(高级)
- 跟踪技术(ftrace / eBPF)
- 系统裁剪与启动优化
- eBPF 在嵌入式 Linux 的应用
- Yocto 产品化
🧪 实践项目
QEMU 环境、字符驱动、I2C 传感器、网络摄像头、IoT 网关、HVAC、智能音箱、AMP 多核。
- QEMU + Buildroot 调试环境
- 项目:字符设备驱动 - LED 与按键
- 项目:I2C 传感器驱动
- 项目:网络摄像头
- 项目:物联网网关
- 项目:工业 HVAC 控制器
- 项目:智能音箱
- 项目:异构多核(A7 Linux + M4 RTOS)
📚 参考资料
推荐书籍、社区网站、开发板选型、工具清单、开源项目参考。