main
- 重构为三角色协作:人+Arch AI+执行AI - 新增 Excel 寄存器表格解析工具,自动生成测试代码 - 新增串口日志分析工具,自动生成测试报告 - 完善项目文档:AGENTS.md、README.md - 创建自动化测试架构设计文档 - 添加示例测试任务 P01-001
ErrLens MCU芯片自动化测试项目
项目目标
基于芯片手册和 Excel 寄存器表格,通过运行软件的方式配合 JTAG 调试工具和串口工具,自动验证芯片实际功能是否与文档描述一致。
核心特性
- ✅ Excel 寄存器表格解析 → 自动生成寄存器定义头文件
- ✅ 自动生成测试代码 → 寄存器读写测试、功能验证
- ✅ JTAG 自动化下载 + 运行
- ✅ 串口日志监控 + 自动分析
- ✅ 测试结果自动验证 + 报告生成
- ✅ "人+Arch AI+执行AI" 协作模式
目录结构
.
├── AGENTS.md # AI角色定义+权限约定+工作流
├── README.md
├── .gitignore
├── .ai/ # AI协作核心配置
│ ├── config/
│ │ ├── architect.json # Arch AI 配置
│ │ ├── executor.json # 执行AI 配置
│ │ └── workflow.json # 工作流配置
│ └── prompts/
│ ├── architecture/ # 架构设计提示词模板
│ └── execution/ # 执行提示词模板
├── docs/ # 全局文档 (Arch AI 编写,执行AI 只读)
│ ├── 00_芯片资料/ # 芯片资料(Excel寄存器表、手册)
│ │ ├── registers/ # Excel寄存器表格
│ │ └── datasheet/ # 芯片手册
│ ├── 01_测试需求/ # 芯片功能需求分析
│ ├── 02_测试架构/ # 测试架构设计和编译器方案
│ ├── 03_开发规范/ # 开发规范和最佳实践
│ └── 04_变更日志/ # 变更记录
├── tools/ # 测试工具 (Arch AI 和执行AI 可写)
│ ├── jtag/ # JTAG调试工具脚本
│ └── uart/ # 串口监控工具脚本
├── projects/ # 芯片测试项目
│ ├── P01_chip_test/ # 主芯片测试项目
│ │ ├── demo/ # 串口printf Demo工程(起点)
│ │ ├── src/ # 测试固件代码 (执行AI 可写)
│ │ ├── tests/ # 测试用例 (执行AI 可写)
│ │ ├── docs/ # 项目文档 (执行AI 可写)
│ │ └── ENVIRONMENT.md # 项目级环境准备
│ └── P02_ext_test/ # 扩展测试项目
│ ├── src/
│ ├── tests/
│ ├── docs/
│ └── ENVIRONMENT.md
├── review/ # 交接中心
│ ├── active/ # 活跃任务
│ │ ├── P01-001/ # 项目1-任务1
│ │ │ ├── task.md # 任务描述
│ │ │ ├── acceptance.md # 验收标准
│ │ │ ├── impact.md # 变更影响范围
│ │ │ └── feedback/ # 反馈记录
│ │ │ └── round1.md
│ │ └── ...
│ └── archived/ # 已完成任务(按季度归档)
│ └── 2026-Q2/
├── shared/ # 共享资源 (Arch AI 可写,执行AI 只读)
│ ├── scripts/ # 共享脚本
│ │ └── parse_registers.py # Excel寄存器表格解析工具
│ ├── templates/ # 固件代码模板
│ └── utils/ # 工具函数
├── reports/ # 统一报告 (执行AI 可写)
│ ├── test-results/ # 测试结果报告
│ └── quality-reports/ # 质量分析报告
└── .github/ # CI/CD配置
└── workflows/
团队角色
| 角色 | 是谁 | 干什么 | 不干什么 |
|---|---|---|---|
| 人类负责人 | 你 | 下指令、审阅、做决策、定验收标准 | 不写代码、不执行测试 |
| Arch AI | Claude/TRAE/元宝等 | 需求分析、测试架构设计、编译器选择、JTAG调试流程设计 | 不直接执行硬件测试 |
| 执行AI | Claude/TRAE/扣子等 | 写测试固件、编译下载、JTAG调试、串口监控、写测试报告 | 不修改测试架构、不动 shared/ |
工作流程
0. 准备输入资源(前置步骤)
- 将 Excel 寄存器表格 放入
docs/00_芯片资料/registers/ - 将 串口 printf Demo 工程 放入
projects/P01_chip_test/demo/
1-4. 正式工作流程
- Arch AI 解析 Excel 寄存器表格,分析芯片功能需求,制定测试规划,输出
docs/01_测试需求/和review/active/P01-001/task.md - Arch AI 设计测试架构,选择编译器,规划JTAG/串口调试流程,输出
docs/02_测试架构/、acceptance.md、impact.md - 执行AI 读取任务描述和验收标准,基于 Demo 工程扩展测试功能,配置环境,通过JTAG下载执行,收集串口日志,写
feedback/round1.md - 你审一眼测试报告,确认任务完成或要求修复
- 有问题 → 执行AI 修复 → 回到步骤3(round2)
- 通过 → 你确认 → 任务关闭,报告归档到
reports/
编译器支持
| 编译器 | 版本要求 | 适用场景 |
|---|---|---|
| Arm Clang | >= 18.0.0 | 高性能开发 |
| Keil MDK (AC6) | >= 6.18 | 工业级应用 |
| Arm GCC | >= 12.0.0 | 开源生态 |
调试方式
- JTAG/SWD: 下载固件、单步调试
- 串口: 监控日志输出、查看测试结果
任务状态流转
TODO → IN_PROGRESS → REVIEW → DONE → ARCHIVED(移入archived/季度目录)
task.md 中添加状态字段:
status: TODO | IN_PROGRESS | REVIEW | DONE | ARCHIVED
参考文档
| 文件 | 说明 |
|---|---|
| AGENTS.md | AI角色定义与权限约定 |
| docs/02_测试架构/automated_test_architecture.md | 自动化测试架构详细设计 |
| workflow.json | 工作流配置 |
| P01-001 任务 | 示例任务单 |
快速开始:自动化测试
0. 准备输入资源
# 1. 将 Excel 寄存器表格放入
# docs/00_芯片资料/registers/
# 2. 将 Demo 工程放入
# projects/P01_chip_test/demo/
1. 解析寄存器表格,生成测试代码
cd /home/ydp/work/errlens
python3 shared/scripts/parse_registers.py
输出:
projects/P01_chip_test/inc/registers.h- 寄存器定义projects/P01_chip_test/src/registers_test.c- 自动生成的测试代码projects/P01_chip_test/tests/registers_spec.json- 测试描述
2. 编译测试固件
# 使用 Arm GCC
cd projects/P01_chip_test
make
3. JTAG 下载并运行
cd /home/ydp/work/errlens
# 脚本待完善: ./tools/jtag/flash.sh
# 或使用 pyocd:
pyocd flash projects/P01_chip_test/build/firmware.hex
4. 监控串口并捕获日志
# 脚本待完善: ./tools/uart/monitor.sh -o test_log.txt
# 或使用 minicom 记录日志
minicom -D /dev/ttyUSB0 -b 115200 -C test_log.txt
5. 分析日志,生成报告
python3 shared/scripts/analyze_log.py test_log.txt -o test_report.txt
查看报告:cat test_report.txt
快速开始
# 克隆仓库
git clone <repository-url>
cd errlens
# 阅读协作规则
cat AGENTS.md
# 查看当前任务
ls -la review/active/
版本历史
| 版本 | 日期 | 说明 |
|---|---|---|
| v2.0 | 2026-05-22 | 重构为MCU芯片测试架构,三角色:人+Arch AI+执行AI |
| v1.0 | 2026-05-22 | 初始版本,完成目录结构设计 |
Description
Languages
TypeScript
92%
JavaScript
3.2%
Python
2.7%
CSS
1.6%
HTML
0.3%
Other
0.2%