feat: 项目架构重构 - hwd32h757芯片成片测试及SDK开发

- 从errlens模板(3角色)重构为1人+Arch AI+Worker AI(2角色)
- 去掉review仓库/QA AI/Dev AI分离,Worker AI统一负责开发+测试
- 新增33个功能单元目录(Test/cases/),按P0-P6七阶段bring-up
- 新增SDK驱动层骨架(Drivers/CMSIS/HAL_Driver/BSP)
- Arch AI/Worker AI角色不绑定特定AI平台,任何AI可随时接手
- 5个ADR:测试驱动SDK演进、HAL/LL双层、分阶段bring-up、单仓库、角色可替换
- 参考errlens的分层信息架构:dashboard→card→task,token预算控制
This commit is contained in:
2026-05-27 16:37:52 +08:00
parent 6c09a9b6d4
commit 3d43cd87d5
97 changed files with 645 additions and 4143 deletions
+41
View File
@@ -0,0 +1,41 @@
# 架构决策记录 (ADR)
## ADR-001: 测试驱动 SDK 演进
- 日期: 2026-05-27
- 状态: 已采纳
- 决策: 寄存器测试是 SDK 的第一用户,测试代码直接演进为 LL 层驱动
- 理由: bring-up 阶段的核心产出是验证寄存器功能,测试代码天然包含了对寄存器的精确操作逻辑,提炼为 LL 层零浪费
- 影响: Test/cases/ 的代码质量要求等同于 SDK 代码;每个功能单元的测试代码必须结构化,便于后续提炼
## ADR-002: HAL/LL 双层架构,参考 STM32CubeH7
- 日期: 2026-05-27
- 状态: 已采纳
- 决策: 采用与 STM32CubeH7 一致的 HAL/LL 双层架构,包括句柄模式、弱回调、模块化编译
- 理由: STM32CubeH7 是经过大规模验证的工业级 SDK 架构,HAL/LL 双层兼顾了可移植性和性能,开发者社区熟悉度高
- 影响: 驱动代码必须遵循 HAL/LL 分层;HAL 用句柄+状态机+回调,LL 用内联函数直操寄存器;编译体积由 hal_conf.h 宏开关控制
## ADR-003: 33 个功能单元分 7 阶段 bring-up
- 日期: 2026-05-27
- 状态: 已采纳
- 决策: 按 bring-up 逻辑将 33 个功能单元分为 P0-P6 七个阶段,P0-P1 串行,P2-P6 可按需并行
- 理由: 芯片 bring-up 有天然依赖——必须先能跑(P0),才能有调试输出(P1),然后才能测其他外设。但模拟、定时器、存储、高速接口之间没有强依赖,可以并行
- 影响: 任务编号用 D{阶段号}-{序号},阶段切换需人类确认
## ADR-004: 1 人 + 2 AI 单仓库协作
- 日期: 2026-05-27
- 状态: 已采纳
- 决策: 采用 1 人 + Arch AI + Worker AI 的协作模式,单仓库,不需要 review 仓库
- 理由: 嵌入式项目文件数少但精度高,Arch AI 和 Worker AI 在同一仓库操作更直接。测试包含在 Worker AI 职责内,不需要独立 QA AI
- 影响: 去掉 errlens 的 review/ 目录和 QA AI 角色;Worker AI 同时负责开发和测试
## ADR-005: Arch AI 角色可由任何 AI 担当
- 日期: 2026-05-27
- 状态: 已采纳
- 决策: Arch AI 和 Worker AI 不是绑定到某个特定 AI 平台的角色定义,而是职责定义。任何 AI(扣子、Claude Code、DeepSeek 等)读到 card.md 即可担当
- 理由: 实际使用中不同场景适合不同 AI——架构讨论用扣子对话,代码执行用 Claude Code 终端,快速查询用 DeepSeek CLI。强制绑定单一平台会降低效率
- 影响: card.md 必须自包含,不假设读它的 AI 有任何前置上下文;AGENTS.md 是通用上下文锚点