# 嵌入式的基础知识与产线构建 **Repository Path**: rabbitc999/STM32_PROGRAM ## Basic Information - **Project Name**: 嵌入式的基础知识与产线构建 - **Description**: 本仓库提供《嵌入式工程师的基础知识与产线构建》培训教程的完整 LaTeX 源码 和配套 STM32/嵌入式 C 语言示例代码。 教程涵盖嵌入式 C 语言强化、任务调度、状态机、轻量级协程、串口 FIFO、面向对象设计、菜单系统、内存池、命令解析器、脚本运行、参数存储及 HardFault 调试等实战内容。 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-08 - **Last Updated**: 2026-09-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 嵌入式工程师的荒野与产线 · 示例代码与文档 本仓库提供《嵌入式工程师的基础知识与产线构建》培训教程的完整 LaTeX 源码和配套 STM32/嵌入式 C 语言示例代码。 教程涵盖嵌入式 C 语言强化、任务调度、状态机、轻量级协程、串口 FIFO、面向对象设计、菜单系统、内存池、命令解析器、脚本运行、参数存储及 HardFault 调试等实战内容。 --- ## 仓库结构 ```text . ├── Book/ │ ├── chapters/ # 教程各章节 LaTeX 源文件 │ ├── figure/ # 教程图片 │ ├── colorful.cls # 文档类 │ └── book.tex # 主文档(编译入口) ├── Chapter-embed-basic/ ~ Chapter-memory-hardfault/ # 对应章节示例代码 ├── Appendix-board-bsp/ # 附录一:开发板与 BSP 框架 ├── README.md # 本文件 ├── AGENTS.md # 代码规范与协作指南 ├── LICENSE.code # 示例代码许可证(MIT) ├── LICENSE.docs # 教程文档许可证(GPL-3.0) └── .gitignore ``` > 部分代码目录带有 `Untested_` 前缀,表示尚未在作者开发板上完成验证,欢迎读者移植测试并提交反馈。 --- ## 教程章节与代码对照 | 章节 | 主要内容 | 代码目录 | |------|----------|----------| | 第 1 章 | 嵌入式 C 语言基础 | `Chapter-embed-basic` | | 第 2 章 | 任务调度与状态机编程 | `Chapter-task-state-machine` | | 第 3 章 | 轻量级协作式任务调度器 | `Chapter-simple-task` | | 第 4 章 | 串口通信与 FIFO 缓冲区 | `Chapter-serial-fifo` | | 第 5 章 | 内存分配与内存池 | `Chapter-memory-alloc` | | 第 6 章 | 用户参数存储 | `Chapter-param-store` | | 第 7 章 | C 语言实现面向对象特性 | `Chapter-c-oop` | | 第 8 章 | 单片机用户界面 | `Chapter-ui-system` | | 第 9 章 | 字符串命令解析器 | `Chapter-command-parser` | | 第 10 章 | 单片机脚本运行功能 | `Chapter-script-engine` | | 第 11 章 | 增强版协程调度器 | `Chapter-coroutine-scheduler` | | 第 12 章 | HardFault 分析与处理 | `Chapter-memory-hardfault` | | 第 13 章 | PID 控制器设计 | `Chapter-pid-control` | | 第 14 章 | FFT 频谱分析 | `Chapter-fft` | | 第 15 章 | 数字滤波器设计 | `Chapter-filter` | | 第 16 章 | Linux 简单查询手册与转行建议 | `Chapter-linux` | | 第 17 章 | 如何应对紧急的交期 | `Chapter-deadline-ai` | | 第 18 章 | 关于本书与作者 | `Chapter-about-author` | | 第 19 章 | 从备份文件夹到分支闸门 | `Chapter-branch-pipeline` | | 第 20 章 | 36 块的产线 | `Chapter-parser-production-line` | | 附录 A | 开发板与 BSP 框架 | `Appendix-board-bsp` | | 附录 B | Python 语法转换器与动态类型解析 | `Chapter-script-engine`(同第 10 章) | | 附录 C | 深入理解协程任务管理器 | `Chapter-coroutine-scheduler`(同第 11 章) | | 附录 D | AGENTS.md 设计详解 | `Book/`(文档) | | 附录 E | 教程的实现代码在哪里获得 | 本仓库 | | 附录 F | 作者项目纪实 | 本仓库 | | 附录 G | 学习方法:从新手到专家的路径 | `Book/`(文档) | | 附录 H | 各章习题参考答案与提示 | `Book/`(文档) | --- ## 编译教程(PDF) 本地编译需要 **TeX Live** 并支持 **XeLaTeX** 与中文环境: ```bash cd Book xelatex book.tex xelatex book.tex # 第二次编译生成正确目录与引用 ``` 已编译的 `Book/book.pdf` 可直接阅读,但以仓库源码为最新版本。 --- ## 开发环境 - **教程正文**:TeX Live + XeLaTeX - **STM32 示例**:Keil MDK、STM32CubeIDE 或 GCC ARM 工具链(部分项目提供 Makefile) - **PC 端示例**:`gcc` 编译 `main.c` 即可运行 - **代码规范**:详见 `AGENTS.md` --- ## 代码规范摘要 - 注释、文档与说明使用**中文**; - 代码文件:小写下划线命名(`my_file.c`); - 章节/代码目录:`Chapter-章节名称`(如 `Chapter-embed-basic/`); - 函数命名:`模块名_功能名`(如 `uart_send`); - 结构体/枚举/联合体类型:`_T` 后缀; - 全局变量:`g_` 前缀,静态全局:`s_` 前缀; - 指针判空必须显式:`ptr != NULL`。 完整规则请阅读 `AGENTS.md`。 ## 开源协议(双重许可) 本仓库采用**双许可证**模式,以兼顾代码复用便利性与文档自由传播: - **示例代码**(位于 `Chapter-*/`、`Appendix-board-bsp/` 等目录下的 `.c`、`.h`、`.s`、`.ld` 等源文件) → 使用 **MIT License**(详见 [`LICENSE.code`](./LICENSE.code))。 允许自由使用、修改、分发,仅需保留版权声明。 - **教程正文**(位于 `Book/chapters/` 目录及 `Book/book.tex` 等 LaTeX 文档) → 使用 **GNU General Public License v3.0**(详见 [`LICENSE.docs`](./LICENSE.docs))。 文档衍生作品需遵守 GPL-3.0 条款。 - **其他文件**(如 `README.md`、`AGENTS.md`)属于项目说明,原则上遵循上述对应协议,或按作者另行声明。 > 请读者在复制、修改或再发布时,注意区分代码与文档的许可要求。 --- ## 贡献与反馈 欢迎提交 Issue 或 Pull Request。 提交代码前请确保符合 `AGENTS.md` 中的编码规范。 --- ## 致谢 感谢所有参与本教程编写、测试与改进的开发者。 希望这份材料能帮助更多嵌入式工程师掌握高级编程技巧。