Commit Graph

86 Commits

Author SHA1 Message Date
wandering1 e0b02d397c 修复 P2 全部 10 项:错误传播/竞态/门控/文档失真
待办池 docs/待处理内容.md §3.2 的 10 个 P2 全部闭环;逐项落代码 + 注释说明。

P2-1  cfg_file: 受管键行超 CFG_LINE_TEST_MAX 拒绝保存(防重复键行)
P2-2  ch395f: DMA 失败传播状态 + 锁存通道故障 + 读不拷不可信数据
P2-7  net_select: LISTENING 不再恒判可读(消除 select 忙轮询地雷)
P2-8  time_sync: 核实 L3 pending 改写已闭环(net_recv_to 分片 + 总预算)
P2-9  sys_log: 挂载改幂等 + 卷锁,defaultTask 2s 重试建 /log
P2-10 sys_log: s_read_raw 纳入卷锁 try(读者/写者 unlink 互斥)
P2-11 net_task: RECONFIG 改 osEventFlagsWait 原子取走 + 清除
P2-12 app_cfg: APP_*_ENABLE 如实标注为未接线占位,删“开关”说法
P2-13 freertos: 产品构建 vTaskDelete(testTask) 回收 8KB CCM 栈
P2-15 download.bat: 先删旧日志 + 增“未产出日志”判定

P2-13 用 USER CODE 区回收而非生成区 #if 门控:生成区改动会被 CubeMX
重生成覆盖,本方案重生成不丢。P2-12 因产品定义 B0 未定、APP_NET_ENABLE
无单一接线点,按修复建议备选(删“开关”说法)处理。

验证:@build 0 错 0 警;主机单测 watchdog 39/39 + sys_clock 100/100 +
cfg_file 149/149(新增 TC-CFG-044);pre-commit --all-files 17/17。
2026-10-04 08:30:30 +08:00
wandering1 029437be89 台架执行《实机测试实施指南》步骤 3~7 并闭环
步骤 3/4(IWDG V2/V4/V5 + 堆低水位 S11):
- V2 任务饿死 stall 后 ≤2.5s IWDG 复位;V4 关中断死循环 ~4.9s 稳定复位;
  V5 30min 120×FTP 全 PASS、零 IWDG 复位。堆告警全程未触发(min_ever=4728B)。
- task_watchdog.c:stall 证据写盘会经 nand_ftl_wd_feed 喂狗 → 增 s_stall_evidenced
  每次 stall 仅取一次证据,避免"取证据"本身阻止复位。
- default_task.c:堆低水位告警(HEAP_LOW_WATER_B=3072)。

步骤 5(GD5F 错误通道 S9):gd5f2gq5ue.c/.h + nand_ftl.c 错误码统一为 int32_t 并
全量检查返回值;套件回归 16/16 PASSED。
- test/run_all_suites.py:--forbidden 改为按套件覆盖(GD5F 用 "HardFault;assert")——
  TC-GD5F-704 故意触发 [ERR] 回落轮询,统一默认值会误判 FAIL。

步骤 6(网络稳定性):7.1 正常路径 ✅(V5 证据);7.2 N-2 丢弃可观测性代码已具备、
49s 静默在 V5 未复现(降级低风险观察项);7.3 N-3 待 PC peer。

步骤 7(工程卫生):
- S5:新增 test-cppcheck 钩子(仅 warning,排除模拟器桩)。
- S4:新增 scripts/check_test_traceability.py(默认仅告警)。
- 待核实项 TEST_SUITE_SELECTED 实机核实 = 死代码(无使用点);RTC 套件实际正常执行,
  真缺口 = 缺套件级汇总行 → sd2506_test_task.c 补 === RTC Tests: N/M PASSED === 并
  修正 Phase 级汇总累计问题;test_config.h 补齐 RTC 并注释"当前无引用"。

验证:产品 @build 0/0;pre-commit --all-files 17/17 Passed;
run_all_suites.py --suites RTC → PASS。
文档:实机测试实施指南 / SD2506_Test_Guide / 待处理内容 / 测试与架构改进建议 同步。
2026-10-04 00:35:06 +08:00
wandering1 1780e5320b 实施A2/A3/A4并通过真机验证:net_task失败重试自检、ch395f有限超时故障锁存、remo_send短写阻断;@test 7/7,A1含配置持久化闭环 2026-10-03 09:05:57 +08:00
wandering1 3cc08f5d53 实机测试规划改造为执行判据说明:删除一次性台架窗口状态(§0.5取证记录)与规划框架,A1~A4代码状态按代码核对改写,16处外部引用重指向模块文档 2026-10-02 23:46:27 +08:00
wandering1 930215f81a 修复IWDG超时未配置与dhara resume回滚:看门狗误复位与复位后写入全部丢失,台架全量自检PASS 2026-10-02 20:48:30 +08:00
wandering1 7feeea6c56 实现独立看门狗:CubeMX 配置 IWDG + 任务心跳位图,恢复三处被覆盖定制
经 CubeMX 图形界面启用 IWDG(Prescaler=64 / Reload=1249,标称 2498ms /
最坏 1701ms),并落地心跳位图判定、各任务埋点、RCC_CSR 复位原因上报与
configASSERT 改造。重生成覆盖的既有定制已全部恢复。

P0(开机死循环):HAL_IWDG_Init() 内部立即启动看门狗,而 CubeMX 把
MX_IWDG_Init() 插在 app_main_init() 之前——该段 NAND/RTC/ADC 初始化耗时
数秒无喂狗点,按 2.5s 超时必然复位。改 Src/iwdg.c 为只填参数不启动,
启动移交 task_wd_start(),由 defaultTask 在存储 bring-up 完成后调用。

恢复的三处定制(重生成覆盖):
- Src/stm32f4xx_it.c:HardFault_Handler 崩溃现场采集被打回空 while(1)
- Inc/FreeRTOSConfig.h:栈溢出检测与堆失败钩子两个宏被整块删除
- Src/freertos.c:三处任务栈实测记录中文注释丢失(数值未丢)

新增:
- App/util/task_watchdog.{c,h}:心跳位图 + 抽样判定 + IWDG 延后启动
- time_sync.c 长等待切片:net_recv_to 单次可睡满 30s 预算,切成 200ms 片
- Src/main.c 复位原因锁存(读后即清 RMVF,防残留误判)

埋点:defaultTask(唯一喂狗者)/ netTask(含 PHY 等待循环)/ uiTask /
timeSyncTask。ftpTask 首期剔除掩码,待二期改 lftpd。

门禁:build 0 错误 0 警告;pre-commit 10 钩子全通过;Flash +2956B / RAM +40B。
2026-09-29 07:22:04 +08:00
wandering1 22559365b9 整理 App 与 test 目录:按职责分子目录并同步全库引用 2026-09-26 12:52:39 +08:00
wandering1 39bd06adea 为自建代码目录补齐 README,建立目录级导航体系
- 新增 26 份目录 README:App/(+log,task,util,protocol)、Drivers/BSP/(+8子系统)、
  Src/、Inc/、scripts/、tools/(+6子工具)、test/、MDK-ARM/、simulator/(+sim,tests)
- 每份含:定位、文件清单表、关键约束/陷阱、指向 docs 权威文档
- 第三方库与生成代码目录排除(CMSIS/HAL/Middlewares/Lib/SDL2)
- docs/文档规范.md 新增 §1.1b 代码目录 README 约定;根 README 目录结构加入说明
2026-09-26 12:25:36 +08:00
wandering1 d0cbeb6b5b 控制台日志实现迁出HAL生成文件至App/log并新增设计说明;defaultTask任务体迁至App/task,freertos.c恢复纯CubeMX接线形态 2026-09-25 01:32:09 +08:00
wandering1 894b51feb3 移除 P0-a 验收探针(台架验收完成),开机省去 60ms 状态轮询与证据行 2026-09-22 12:03:11 +08:00
wandering1 06d4064366 修复 P0-a 重传周期 200ms 与 P0-b per-recv 日志,台架重锁 M2/M3 基线并复验 2026-09-22 11:36:16 +08:00
wandering1 e5733b3454 链路时延M1-M3收尾:Phase12-14基线与生产路径Δ实测、D10/E-02/D17修复、D20定位与硬化、文档整理 2026-09-22 06:12:40 +08:00
wandering1 5cb7614959 修复net公开API错误码被覆盖致UI推流连上即断(改用通知值回传,单连接EOF不关监听) 2026-09-21 04:46:47 +08:00
wandering1 bbdd059e25 修复就绪屏障位被消费致FTP永不监听;新增栈可观测(水位探针+静态调用图报告)并补FTP实测 2026-09-21 04:26:52 +08:00
wandering1 6f51c62a9e 串口输出禁中文:syslog 中文描述改 ASCII(MCU 6 处 + 模拟器 6 处) 2026-09-20 02:45:27 +08:00
wandering1 1817fe792f 就绪屏障与配置引擎重构,新增串口助手、V0.0网表分析报告及芯片手册,同步更新文档 2026-09-15 21:13:20 +08:00
wandering1 9eb1bd63b4 运行/自检记录与待机屏:sys_log定长64B日志引擎(/log/*.log,FTP可直下)+记录页x2+待机屏+密码错误提示;字体122字/217字形 2026-09-14 19:05:00 +08:00
wandering1 4515ee4c80 修复了网络参数的保存逻辑 2026-09-10 14:21:07 +08:00
wandering1 2b80d34e74 增加网络配置界面 2026-09-10 11:36:33 +08:00
wandering1 02c10fa5ef 修复Yoda条件(常量右置)与函数定义括号同行
- net_select.c/net_socket.c 共 62 处 Yoda 条件改为常量在右(规范 6.3.1)

- 11 个文件 58 处函数定义左大括号由换行改为与右括号同行(规范 4.4.2)
2026-09-01 16:57:34 +08:00
wandering1 bb76cfd779 修复规范矛盾并定案5项规则,保护宏统一XXX_H
规则定案:常量在右(a>5)、保护宏XXX_H(禁双下划线)、
头文件常量用#define、存储类前缀(g_/s_)优先、允许void返回值
全库32个.h头文件保护宏 __XXX_H → XXX_H 改名(字节级替换)
S1检查规则同步更新(拒绝双下划线),Inc/gpio.h 反向验证被正确拦截
规范示例矛盾修复:K&R括号、标准类型、变量初始化、命名常量、注释字段补全
2026-09-01 16:07:00 +08:00
wandering1 2b66f96d01 新增代码规范检查钩子(规范V1.0 可机械校验项)并修复存量违规
新增 scripts/check_coding_standard.py + coding-standard 钩子(S1~S9:
头文件保护宏、文件头注释、宏大写、_t 后缀、switch default、
禁 strcpy/sprintf/goto/Tab、函数注释)
修复存量违规:NET_* 字节序宏大写化、net_fd_set 等类型加 _t 后缀、
net_inet_ntoa 的 sprintf 改 snprintf、补 4 处函数注释与 ui_task.c 文件头
docs/代码规范/pre-commit使用说明.md:新增 2.8 节,修正失效文档路径
2026-09-01 15:41:25 +08:00
wandering1 ae8b1aead5 清理全库行尾空格与文件尾换行(pre-commit 自动修复基线) 2026-09-01 10:24:50 +08:00
wandering1 71c41fabb9 开启了192k 所有RAM 2026-08-30 15:38:40 +08:00
wandering1 e2f199c6bf LVGL 库提交 2026-08-30 08:57:07 +08:00
wandering1 26c9098630 启动顺序管理 2026-08-29 11:10:08 +08:00
wandering1 7bc616cf9b 整理了main 函数 2026-08-29 09:45:54 +08:00
wandering1 ad154b2f7e 时间同步已经完成 2026-08-28 16:42:44 +08:00
wandering1 db64e6acf4 网络主要内容测试完成 2026-08-26 13:54:52 +08:00
wandering1 572313d430 CH395F 硬件测试完毕 2026-08-24 16:16:18 +08:00
wandering1 c2fb2d9359 构建测试 2026-08-22 19:53:24 +08:00
wandering1 b0feaff5ac 修改测试 2026-07-22 11:14:22 +08:00
wandering1 02963441b5 初始创建FTP服务器 2026-07-21 22:08:11 +08:00
wandering1 fd13ad0e06 修改网络的初始化,异步支持问题 2026-07-21 01:22:09 +08:00
wandering1 01ad5e476f 增加文件系统 2026-07-21 00:30:59 +08:00
wandering1 e862009bcd 修复多连接的问题 2026-07-19 15:27:49 +08:00