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:
@@ -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 修复;对账与监听重建合一)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user