02 · C 语言与编译
嵌入式 Linux 的主要开发语言仍是 C。本模块覆盖从 C 语言核心特性、指针内存管理、数据结构,到 GCC 编译过程、Makefile/CMake 构建系统、GDB 调试。
子主题
| 文件 | 内容 | 必学程度 |
|---|---|---|
| 01-c-fundamentals.md | C 语言基础与进阶(关键字、运算符、类型、控制流、函数) | ★★★ |
| 02-pointer-and-memory.md | 指针、数组、字符串、内存布局、对齐 | ★★★ |
| 03-c-advanced.md | C 高级特性(预处理、位运算、volatile/restrict、函数指针、回调、复合字面量) | ★★★ |
| 04-data-structures.md | 嵌入式常用数据结构(链表、队列、哈希表、红黑树、二叉树) | ★★★ |
| 05-gcc-compilation.md | GCC 编译过程(预处理、编译、汇编、链接;ELF 文件结构) | ★★★ |
| 06-cross-compilation.md | 交叉编译工具链(arm-linux-gcc、sysroot) | ★★★ |
| 07-build-system.md | Makefile 与 CMake(autotools、meson 简介) | ★★★ |
| 08-gdb-debugging.md | GDB 调试(断点、watch、core dump、远程调试) | ★★★ |
学习目标
完成本模块后,你应该能够:
- 熟练使用 C 语言进行嵌入式编程,理解指针、内存布局
- 理解 GCC 编译过程的四个阶段,能分析 ELF 文件
- 配置和使用交叉编译工具链
- 编写复杂 Makefile 和 CMakeLists.txt
- 使用 GDB 调试用户程序、core dump、内核(kgdb)
推荐资源
- 书籍:《C 程序设计语言》(K&R)、《C 专家编程》、《C 陷阱与缺陷》
- 在线:cppreference.com、c-faq.com
- 实验:自己写一个 mini shell、一个哈希表、一个链表库
进入下一模块
03-linux-app/README.md — Linux 系统与应用开发