Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

嵌入式 C 语言 TDD 练习脚手架 (2025版)

基于: James Grenning 的著作《测试驱动的嵌入式 C 语言开发》 环境适配: MSYS2 UCRT64 + GCC + CppUTest 状态: 纯净版 (已清除剧透代码,开箱即用)

🎯 这是什么?

这是一个为练习嵌入式 TDD 专门准备的纯净脚手架。 原书的配套代码包含了所有章节的“最终答案”,不仅容易剧透,而且在现代编译环境下(如 VS Code + GCC)存在大量构建错误。

本仓库解决了这些痛点:

  • 构建系统修复: 修正了 Makefile,完美支持 MSYS2/MinGW64 环境。
  • 无剧透模式: src/LedDriver.c 等实现文件已被清空,等待你亲手实现。
  • 零干扰: 移除了 t0-t3 等与当前练习无关的遗留文件夹。

这就好比一张空白试卷,你只需要按照书本的节奏,填入你的代码。

🛠️ 预备工作

  1. 安装 MSYS2 UCRT64。
  2. 安装 GCC & Make: pacman -S mingw-w64-ucrt-x86_64-gcc make
  3. 安装 CppUTest 并设置 CPPUTEST_HOME 环境变量。
    • (详细的图文搭建教程:[这里填你那篇 SOP 博客的链接])

🚀 如何开始

1. 编译项目

在当前目录下打开终端:

make -f MakefileCppUTest.mk
  • 预期结果: 编译成功,但测试 失败 (FAIL)。
  • 原因: 因为 LedDriver.c 是空的。这正是你的工作!

2. TDD 循环 (The Cycle)

  1. 打开 tests/LedDriver/LedDriverTest.cpp。
  2. 编写你的第一个测试 (例如 TEST(LedDriver, LedsOffAfterCreate)).
  3. 运行 make ... -> 红条 (Red)。
  4. 打开 src/LedDriver/LedDriver.c。
  5. 实现逻辑。
  6. 运行 make ... -> 绿条 (Green)。

📂 目录结构

  • src/: 产品代码 (你写 C 代码的地方)。
  • tests/: 测试代码 (你写 C++ 测试用例的地方)。
  • mocks/: 硬件模拟层 (已配置好)。
  • MakefileCppUTest.mk: 构建脚本。

Happy Coding! 愿解耦与你同在。

About

A modern, clean-slate starter kit for James Grenning's TDD book. MSYS2/GCC ready.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages