docs: 错误码传播审计收口并删除该文档(E-xx 转历史编号族)

本次会话先后销项与关闭:
- E-61 SD2506 清 INTAF:原实现只读取 CTR1,而按手册 ARST=0 时读操作
  不清标志,属空操作;改为读-改-写 CTR1,并按手册订正 CTR1 位宏
  (INTAF/INTDF/BLF 位置,ARST 归 CTR3)
- E-16 cfg_file:新增 CFG_FILE_MAX_NAME_LEN(段名/键名 ≤15),注册时
  拒绝超长键名;s_gen_document 两处 snprintf 改检查式;补 TC-CFG-024
  用例(主机单测 149→151 PASSED)
- E-23 TC704:PHASE7_MULTI_COUNT 8→5(并发上限 = 8 − 3 个常驻监听),
  accept 失败分支加网络代次检查(网络重建即重建监听)
- E-26(UDP)按“保留 API + 文档定案”关闭;E-30 评估为不必要后关闭;
  N-4(ACCEPT 决定不实施)关闭

审计文档剩余 5 项 P2 + 2 项监督,经用户裁定“都不重要”后整体删除:
- 删除 docs/问题记录/错误码传播审计.md(634 行)
- 九类缺陷模式表迁入 docs/编号规范.md §4.2.1(PAT-01~09)
- E-xx 转为纯历史编号族:编号规范 §4.1 属主改“无(原属主已删除)”,
  §4.3 保持冻结;全仓 26 处引用按“保留编号、去悬空文档名”处理
- 顺带修正 N-4 收口遗留:排期详述 C1 才是 E-25/E-27/E-28 的承载处
  (审计 §4 曾误写为登记簿);README 两处 C1 旧名改回“net 层跨上下文收口”

一并提交此前遗留的体系层评审报告 2026-10-14 复核 WIP(六维评分复核、
未闭环 Top 5→3、三区水位实测刷新)。

校验:Keil 构建 0 错误 0 警告(Code=212344);check_doc_links
--sections-strict 与 --all(142 文档)通过;内存双台账刷新后均 PASS。
This commit is contained in:
2026-10-15 07:39:38 +08:00
parent 803f7717ed
commit 506eccc68f
40 changed files with 514 additions and 1142 deletions
+1 -1
View File
@@ -21,7 +21,7 @@
- **recv 挂起(pending)已落地**:`net_recv` 阻塞不占 netTask——登记挂起请求 + 每轮 tick 唤醒
- **send 挂起已落地**:`net_send` 快路径有界自旋(`NET_SEND_SPIN_MS` = 2ms),超预算登记
挂起 send,由 `net_send_pending_tick` 按主循环节拍分块推进;netTask 最坏停滞由 1s 压到 2ms
- **ACCEPT 尚未挂起化**(调用方轮询问题,不是队头阻塞)→ `docs/任务规划/登记簿.md` N-4
- **ACCEPT 决定不挂起化(2026-10-15)**(调用方轮询问题,不是队头阻塞;pending 化收益仅 RPC 开销与抖动)
- 架构细节:`docs/网络/Net层阻塞模型架构设计.md`
### 周期对账自愈(TRAP-NET-17 修复;对账与监听重建合一)
+17 -7
View File
@@ -496,22 +496,32 @@ int sd2506_set_alarm(const sd2506_time_t *p_time, uint8_t mask) {
* 函数功能:清除闹钟中断标志
* 入口参数:无
* 返回值:0-成功,-2=I2C 错误 int
* 限定条件:sd2506_init() 已调用成功;ARST=1 时自动清除 INTAF
* 函数说明:读取 CTR1 即可清除 INTAF 标志
* 限定条件:sd2506_init() 已调用成功
* 函数说明:ARST 位于 CTR3(11H) bit7,本驱动从未写 CTR3 → ARST=0,
* 故读 CTR1 不会自动清 INTAF(手册 L519/L523),须手动写 CTR1 将 INTAF 置 0;
* 写 0FH 须在写允许窗口内且保持 WRTC2/WRTC3=1(手册 L521),
* 故写入值取写允许态 0xFF 清 INTAF 位后的 0xDF。
* return: 0=OK, -2=I2C error
* note: reading CTR1 clears INTAF
*/
int sd2506_clear_alarm(void) {
int ret = 0;
uint8_t val = 0;
int ret_off = 0;
/* 读取 CTR1, ARST=1 时自动清除 INTAF */
ret = sd2506_read_reg(SD2506_REG_CTR1, &val);
/* 写 0FH 须在写允许窗口内(手册 L519),且 WRTC2/WRTC3 必须保持 1(L521) */
ret = sd2506_write_enable();
if (ret != SD2506_OK) {
return ret;
}
return SD2506_OK;
ret = sd2506_write_reg(SD2506_REG_CTR1,
(uint8_t)(SD2506_CTR1_WRITE_ON & (uint8_t)~SD2506_CTR1_INTAF));
ret_off = sd2506_write_disable();
if (ret == SD2506_OK) {
ret = ret_off;
}
return ret;
}
/*
+11 -7
View File
@@ -85,11 +85,14 @@ extern "C" {
/* ======================== 控制位定义 ======================== */
/* 控制寄存器 1 (0FH) */
#define SD2506_CTR1_ARST (1U << 5) /* 自动复位使能 */
#define SD2506_CTR1_INTAF (1U << 3) /* 报警中断标志 */
#define SD2506_CTR1_INTDF (1U << 2) /* 倒计时中断标志 */
#define SD2506_CTR1_BLF (1U << 0) /* 电池欠压标志 */
/* 控制寄存器 1 (0FH):bit7=WRTC3 bit6=OSF bit5=INTAF bit4=INTDF bit3=BLF
* bit2=WRTC2 bit1=PMF bit0=RTCF(手册寄存器总表) */
#define SD2506_CTR1_INTAF (1U << 5) /* 报警中断标志 */
#define SD2506_CTR1_INTDF (1U << 4) /* 倒计时中断标志 */
#define SD2506_CTR1_BLF (1U << 3) /* 电池欠压标志 */
/* 控制寄存器 3 (11H) */
#define SD2506_CTR3_ARST (1U << 7) /* 自动复位使能(ARST=1 时读 CTR1 自动清 INTAF/INTDF/BLF) */
/* 控制寄存器 2 (10H) */
#define SD2506_CTR2_INTAE (1U << 5) /* 报警中断允许 */
@@ -267,11 +270,12 @@ int sd2506_write_sram(uint8_t addr, const uint8_t *p_buf, uint8_t len);
int sd2506_set_alarm(const sd2506_time_t *p_time, uint8_t mask);
/*
* 函数功能:清除报警中断标志
* 函数功能:清除报警中断标志 INTAF
* 入口参数:无
* 返回值:0 - 成功,-2 - I2C 通信错误
* 限定条件:sd2506_init() 已调用
* 函数说明:读取 CTR1 自动清除 INTAF (ARST=1 时)
* 函数说明:ARST(CTR3 bit7) 未启用,读 CTR1 不清 INTAF;本函数经写允许窗口
* 手动写 CTR1 将 INTAF 置 0
*/
int sd2506_clear_alarm(void);
+1 -1
View File
@@ -11,7 +11,7 @@
* 2026-07-17 王建锋 创建初始版本,参考 AD7606 并行驱动及 TPAFE5160 手册
* 2026-07-17 王建锋 增加 EXTI 中断读取模式
* 2026-09-20 王建锋 V0.1 引脚适配(引脚值随 main.h 宏,驱动逻辑不变)
* 2026-10-10 王建锋 消费者接入前置修复(错误码传播审计 E-44 / E-45 / E-58):
* 2026-10-10 王建锋 消费者接入前置修复(历史审计 E-44 / E-45 / E-58,属主文档已删除):
* FRSTDATA 数据有效性校验 + 帧序号取代就绪电平标志 +
* 原子快照 API;移除会撕裂的 get_buf/data_ready/clear_ready
*/