开源一套正在建设的现代 C++ 教程!

开源一套正在建设的现代 C++ 教程!

🚀开源一套正在建设的现代 C++ 教程!

笔者吐槽:靠有点像卖课的,但真不是,笔者纯出于兴趣维护的。笔者想了想,有时候光看各种各样的文章。显得太零碎。亮出来代码示例吧,显得太冗余。那为什么不专门维护一个仓库好好做这个事情呢?

所以笔者决定,试试看利用Github仓库托管一下。

TL;DR

好的教程都有TL;DR,一句话——这边请:

GitHub Pages: 点击访问,获得更好更加流畅的阅读体验(嘶,Github静态网页有可能访问速度比较慢,如果有朋友有需求,可以尝试看看下面的仓库克隆下来本地预览)

啥,想看看原仓库,在这里:

👉:Awesome-Embedded-Learning-Studio/Tutorial_AwesomeModernCPP: 现代 C++ 嵌入式(MCU/Linux)开发完整教程,深入讲解 C++11–C++23、零开销抽象、RAII 与性能优化!

现在正在想办法看看支持模拟机和真机实战确保代码可靠。(别喷别喷,方案真没想好,感兴趣的话朋友随意在评论区提意见,小的速速核时是否可行!)

所有的文章还会持续的在公众号,知乎和ZEEKLOG上进行同步!请各位放心(含泪干活中)


项目介绍

Tutorial_AwesomeModernCPP 是一套完整的、系统化的嵌入式现代 C++ 开发教程。不计划只停留在简单的语法介绍,因为那样,我们更应该去看CPPReference。而是尝试探讨如何在嵌入式系统中高效使用 C++,涵盖性能优化、内存管理、硬件交互等核心主题。

🌟 项目亮点

1️⃣ 系统化的知识体系

教程从零开始,循序渐进地构建知识体系:

Chapter 0: 前言与基础 ──────┐ Chapter 1: 构建工具链 │ Chapter 2: 零开销抽象 ├── 核心基础 Chapter 3: 内存与对象管理 │ Chapter 4: 编译期计算 ─┘ │ ├─→ Chapter 5: 内存管理策略 ├─→ Chapter 6: RAII 与智能指针 ├─→ Chapter 7: 容器与数据结构 ├─→ Chapter 8: 类型安全与工具类型 ├─→ Chapter 9: 函数式编程特性 └─→ Chapter 10: 并发与原子操作 
2️⃣ 完整的代码示例
  • 160+ 可独立编译的代码文件
  • 44 个 CMake 项目
  • 涵盖 STM32、Linux 等多种平台
  • 每个示例都有详细注释
// 示例:RAII 管理 GPIO 引脚classGPIOPin{public:GPIOPin(uint8_t pin, GPIODir dir)noexcept{hal_gpio_config(pin_, dir);}~GPIOPin()noexcept{// 自动恢复引脚状态hal_gpio_config(pin_, GPIODir::Input);}// 禁止拷贝,允许移动GPIOPin(const GPIOPin&)=delete;// ...};
3️⃣ 现代化的学习体验
  • 🏷️ 标签分类 - 按主题快速查找相关内容
  • 📊 难度分级 - beginner / intermediate / advanced
  • 🔍 智能导航 - 自动推荐相关文章
  • ⏱️ 阅读时间 - 帮助规划学习进度

核心内容预览

📚 零开销抽象

教你如何在嵌入式环境中安全使用 C++ 的抽象能力,而不产生额外的运行时开销。

🧠 RAII 与智能指针

资源自动管理是 C++ 的杀手锏。在嵌入式场景下,RAII 可以让你的外设管理更安全、更简洁。

📦 嵌入式友好的容器

std::arraystd::span、循环缓冲区…掌握这些工具,告别裸数组操作。

⚡ 编译期编程

constexprconsteval、模板元编程…把计算从运行时转移到编译时,零开销!

🔗 并发与原子

在多核 MCU 上编写安全的高效代码,掌握 std::atomic 和内存模型。


如何开始学习

🌐 在线阅读

教程已部署为静态网站,方便随时访问:

GitHub Pages: 点击访问

💻 本地运行

哈?你说想本地跑起来吗?

# 克隆仓库git clone https://github.com/Awesome-Embedded-Learning-Studio/Tutorial_AwesomeModernCPP.git cd Tutorial_AwesomeModernCPP # 安装依赖并启动预览bash scripts/mkdoc_setup_local_dependency.sh bash scripts/local_preview.sh # 打开浏览器访问 http://127.0.0.1:8000

📖 学习建议

  1. 按顺序学习 - 教程设计循序渐进,建议从 Chapter 0 开始
  2. 动手实践 - 每个示例代码都可以独立编译运行
  3. 参考标签 - 遇到问题时,通过标签系统查找相关内容
  4. 循序渐进 - 根据难度等级选择适合的内容

适用人群

人群收益
嵌入式 C 开发者掌握现代 C++,提升代码质量
C++ 初学者了解 C++ 在嵌入式中的正确用法
嵌入式工程师学习资源受限环境下的最佳实践
计算机专业学生系统学习嵌入式 C++ 开发

开源贡献

本项目由 Awesome Embedded Learning Studio 维护,采用 MIT 协议开源。我们欢迎任何形式的贡献:

  • 📝 修正错别字和语法错误(别骂了别骂了,真是笔误)
  • 💡 提出改进建议(仓库有些CI流程,但是笔者不太熟悉CI,其他地方都可以随意Issue)
  • 🔧 提交代码改进(一些代码示例并不好,或者写法非常不规范,笔者也是C++刚学没太久,希望各位前辈批评!)
  • 📖 完善文档(有一些笔者必须指出是AI写,我审核修改的,肯定有不完美的地方,欢迎批评!)
  • 🐛 报告 Bug(Issue,请,速速修我)

仓库地址: https://github.com/Awesome-Embedded-Learning-Studio/Tutorial_AwesomeModernCPP


结语

每一次写文章都要纠结一会结语。那就这样——

换一种更新的方式,理解现代C++。也让嵌入式开发更现代、更高效、更优雅!

私货时间

到这里就可以溜了各位,下面是笔者的真私货

Read more

大疆无人机固件自由下载工具:DankDroneDownloader完整使用指南

大疆无人机固件自由下载工具:DankDroneDownloader完整使用指南 【免费下载链接】DankDroneDownloaderA Custom Firmware Download Tool for DJI Drones Written in C# 项目地址: https://gitcode.com/gh_mirrors/da/DankDroneDownloader 你是否曾经为无法获取大疆无人机历史固件版本而烦恼?当厂商移除旧版固件后,你就失去了选择权。DankDroneDownloader正是为解决这一痛点而生,让你重新掌握无人机固件的下载自由。 什么是DankDroneDownloader? DankDroneDownloader是一款专为大疆无人机设计的定制固件下载工具,基于C#和.NET 9.0框架开发。它打破了厂商对固件版本的限制,让你能够自由下载任意历史版本的固件。 核心优势: * 完整的历史固件版本库 * 简洁易用的用户界面 * 支持Windows应用程序直接运行 * 优化的应用体积和性能 为什么需要DankDroneDownloader

By Ne0inhk
LazyLLM 测评 | 低代码颠覆 AI 开发!代码专家智能体进阶模块实战

LazyLLM 测评 | 低代码颠覆 AI 开发!代码专家智能体进阶模块实战

摘要: LazyLLM 是商汤大装置推出的开源低代码框架,作为构建和优化多 Agent 应用的一站式开发框架,覆盖应用搭建、数据准备、模型部署、微调、评测等全流程开发环节,提供丰富的工具支持。其以模块化设计打破传统开发壁垒,通过数据流驱动重构开发逻辑,能让开发者用极简代码实现工业级复杂 AI 应用,摆脱冗余编码束缚,聚焦核心业务场景,降低 AI 应用构建成本并支持持续迭代优化。堪称 AI 开发者的 “效率神器”,其技术普惠理念为 AI 开发领域带来新的实践范式,推动了更高效的开发模式。本文将以Python编程为切入点,带你深入了解LazyLLM框架。 LazyLLM 是构建和优化多 Agent 应用的一站式开发工具,为应用开发过程中的全部环节(包括应用搭建、数据准备、模型部署、模型微调、评测等)提供了大量的工具,协助开发者用极低的成本构建 AI 应用,并可以持续地迭代优化效果。 LazyLLM作为商汤大装置推出的开源低代码框架,简直是AI开发者的“效率神器”

By Ne0inhk
【数学建模】用代码搞定无人机烟幕:怎么挡导弹最久?

【数学建模】用代码搞定无人机烟幕:怎么挡导弹最久?

前言:欢迎各位光临本博客,这里小编带你直接手撕**,文章并不复杂,愿诸君耐其心性,忘却杂尘,道有所长!!!! **🔥个人主页:IF’Maxue-ZEEKLOG博客 🎬作者简介:C++研发方向学习者 📖**个人专栏: 《C语言》 《C++深度学习》 《Linux》 《数据结构》 《数学建模》** ⭐️人生格言:生活是默默的坚持,毅力是永久的享受。不破不立,远方请直行! 文章目录 * 一、先搞懂:我们要解决啥问题? * 二、核心计算:代码怎么判断“烟幕有没有用”? * 1. 先算单个烟幕的“有效时间段” * 2. 合并重叠的时间段(避免重复计算) * 3. 只算“导弹到达前”的有效时间 * 三、代码优化:加了2个实用功能,结果直接看 * 1. 跑完直接显示“最优遮蔽时长”

By Ne0inhk

FPGA中XADC IP核驱动开发实战案例分享

FPGA中XADC IP核驱动开发实战:从原理到工业级温控系统实现 在一块长期运行的FPGA板卡上,你有没有遇到过这样的场景?系统突然重启、逻辑行为异常,排查良久才发现是芯片结温过高导致内部供电不稳。更糟糕的是,没有提前预警机制,故障发生时已经来不及响应。 如果你正在设计高密度计算、边缘AI或工业控制类设备,这种“热失控”风险绝非危言耸听。而解决它的关键,并不一定需要外接温度传感器——你的FPGA本身就藏着一个“体温计”,它就是 XADC (Xilinx Analog-to-Digital Converter)。 今天,我们就以Zynq-7000平台为例,深入剖析如何利用FPGA内部集成的XADC模块,构建一套完整、可靠、响应迅速的片上温度监控与保护系统。不仅讲清楚怎么用,更要讲明白背后的工程逻辑和调试技巧。 为什么选择XADC?从“加个ADC”说起 在传统方案中,要监测FPGA温度,通常的做法是: * 外挂一颗I²C接口的数字温度传感器(如TMP102); * 占用PCB空间、增加BOM成本、引入额外焊点故障点; * 数据需通过总线读取,延迟高,难以实现实时响应。

By Ne0inhk