一套完整的、系统化的嵌入式现代 C++ 开发教程
本项目创建于 2025-12-13,作者 Charliechen。
本项目隶属于组织 Awesome-Embedded-Learning-Studio 的文档教程。
这是一套完整的、系统化的嵌入式 C++ 开发教程,专注于在资源受限的环境中发挥 C++ 的最大优势。本教程不是简单的语法介绍,而是深入探讨如何在嵌入式系统中高效使用 C++,包括性能优化、内存管理、硬件交互等核心主题。
点击这里,获取更好的阅读体验👉 静态网页部署
完成本教程后,您将能够:
- ✅ 掌握 C++ 在嵌入式系统中的性能优化技术
- ✅ 理解零开销抽象和编译期编程
- ✅ 学会使用现代 C++ 特性提升代码质量
- ✅ 掌握硬件抽象和驱动程序开发
- ✅ 构建可测试、可维护的嵌入式软件架构
为了更好地学习本教程,建议您具备以下知识:
- ✔️ 熟悉 C 语言编程
- ✔️ 了解基本的数据结构和算法
- ✔️ 有一定的嵌入式开发经验
- ✔️ 了解基本的电子电路知识
- tutorial/ - 教程 Markdown 文件,包含系统化的学习内容
- codes_and_assets/ - 示例代码、硬件电路图、PCB 文件等资源
- 阅读 tutorial/index.md 了解教程结构
- 按照章节顺序学习,从 Chapter 0 开始
- 参考示例代码加深理解
- 完成章节练习巩固知识
每篇文章都带有标签,方便按主题查找:
- 📚 概念类:RAII、移动语义、零开销抽象、编译期计算
- ⚙️ 语言特性:constexpr、lambda、CRTP、concepts、coroutine
- 🧠 智能指针:unique_ptr、shared_ptr、intrusive_ptr
- 📦 容器:array、span、循环缓冲区、侵入式容器
- 🔒 类型安全:variant、optional、expected、enum class
- ⚡ 函数式:function、lambda、ranges、invoke
- 🔗 并发:atomic、mutex、memory_order、无锁
- 🟢 beginner - 入门级,适合初学者
- 🟡 intermediate - 中级,需要一定基础
- 🔴 advanced - 高级,深入探讨
- 160+ 代码文件 - 所有示例代码独立可编译
- 44 个 CMake 项目 - 开箱即用的构建配置
- 133 个 Snippets 引用 - 文档与代码同步更新
代码位于 codes_and_assets/examples/,按章节组织:
codes_and_assets/examples/
├── chapter02/ # 零开销抽象
├── chapter03/ # 内存与对象管理
├── chapter05/ # 内存管理策略
├── chapter06/ # RAII与智能指针
├── chapter07/ # 容器与数据结构
├── chapter08/ # 类型安全
├── chapter09/ # 函数式特性
└── chapter10/ # 并发与原子
- 自动上一篇/下一篇导航
- 相关文章推荐
- 前置知识提示
- 预计阅读时间
以下内容仍在持续完善中:
下一步,我们将会进行的——
- 📌 上位机现代C++特性体验与代码实战(完善中)
- 📌 使用基于C++的STM32开发与实战指南(开发中),
- 📌 对于手头没有STM32的朋友,提供Docker(我了解到有Renode这个东西,有空试一下)
本项目提供了一套完整的开发工具链,便于贡献者参与:
# 初始化开发环境
bash scripts/mkdoc_setup_local_dependency.sh
# 本地预览
bash scripts/local_preview.sh
# 安装 pre-commit hooks(可选)
bash scripts/setup_precommit.sh
# 验证文章元数据
python3 scripts/validate_frontmatter.py
# 检查链接有效性
python3 scripts/check_links.py
# 查看统计信息
python3 scripts/analyze_frontmatter.py| 脚本 | 功能 |
|---|---|
mkdoc_setup_local_dependency.sh |
安装 MkDocs 依赖 |
local_preview.sh |
启动本地预览服务器 |
setup_precommit.sh |
安装 pre-commit hooks |
validate_frontmatter.py |
验证文章 frontmatter |
check_links.py |
检查内部链接 |
analyze_frontmatter.py |
分析教程统计信息 |
我们欢迎任何形式的贡献!
- Fork 本仓库
- 创建特性分支 (
git switch -c feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
(PS,如果您遇到了问题,欢迎随时联系工作室邮箱!)
嘿!我知道光顾仓库的大佬们有点子的,如果您——
- 📝 修正错别字和语法错误
- 💡 提出改进建议
- 🔧 提交代码改进
- 📖 完善文档
- 🐛 报告 Bug
欢迎速速PR!在这里 GitHub Issues 中提交问题。
本项目参考了以下优秀资源:
- modern-cpp-tutorial - 现代C++教程
- CPlusPlusThings - C++ 那些事
- CppCon - C++ 会议演讲
- C++ Reference - C++ 在线参考文档
- GitHub Issues:提交问题
- Email:[email protected]
本项目采用 MIT License 开源协议。
让嵌入式开发更现代、更高效、更优雅
用 C++ 重新定义嵌入式编程体验