Files
ai_soc_sw/.ai/knowledge/patterns.md
T

53 lines
1.9 KiB
Markdown
Raw Normal View History

# 可复用模式
## 目的
记录开发过程中发现的可持续复用的模式和做法。
---
## P-001: 测试→LL→HAL 提炼路径
**上下文**: 每个功能单元从寄存器测试到最终 SDK 驱动的演进
**问题**: 测试代码和 SDK 驱动如何衔接,避免重复劳动
**方案**: 三步提炼路径:
1. **寄存器测试代码** → 直接操作寄存器地址和位域,验证功能正确性
2. **LL 层提炼** → 将测试中的寄存器操作封装为内联函数+宏,零开销
3. **HAL 层封装** → 在 LL 层之上加句柄+状态机+回调,高抽象可移植
**关键约束**: 测试代码必须结构化(用宏封装寄存器操作,不用硬编码地址),否则提炼成本极高
**何时用**: 每个功能单元完成后
**何时不用**: 纯软件功能(无寄存器操作)
---
## P-002: 勘误驱动规避
**上下文**: 芯片 bring-up 中发现的硅缺陷
**问题**: 如何让 SDK 驱动自动规避已知勘误
**方案**:
1. 勘误记录在 Test/errata/ 中,结构化格式(影响外设、触发条件、规避方法)
2. LL 层代码中在受影响操作处加 workaround 注释
3. HAL 层代码中自动执行规避逻辑(对调用方透明)
**何时用**: 发现勘误后立即记录,LL/HAL 代码同步更新
**何时不用**: 确认无硅缺陷的功能
---
## P-003: 跨 AI 上下文交接
**上下文**: 不同 AI 可能在不同时间、不同平台介入同一项目
**问题**: 如何确保任何 AI 随时能接手
**方案**:
1. AGENTS.md 是通用上下文锚点
2. dashboard.md 记录当前状态,任何 AI 读到即知全貌
3. task 文件自包含(输入/输出/约束/验收),不依赖对话历史
4. Git commit 记录所有变更,Git 是唯一的历史来源
**核心原则**: 对话是易失的,文件是持久的。每个判断产生后立即写入文件。
**何时用**: 每次 AI 会话
**何时不用**: 无(这是基础模式,始终适用)