3.1 KiB
3.1 KiB
TCP2UART 当前交接 Prompt
1. 用途
本文件不再承担“项目从零编码任务说明”的职责,而是作为当前工程的交接入口 Prompt使用。
长期有效的工程知识、调试经验和现状说明,已经分别固化到其它文档,不再全部堆在本文件中。
2. 接手后先读什么
请按以下顺序阅读:
交接清单.md—— 当前状态、接下来要做什么、怎么做工程调试指南.md—— 已固化的调试经验与当前工程真实边界项目技术实现.md—— 架构、任务模型、协议模型项目需求说明.mdAT固件使用手册.md
3. 当前工程一句话状态
当前项目已从早期 bring-up 阶段推进到 full-task 运行期调试阶段;DIAG_TASK_ISOLATION=1 稳定,DIAG_TASK_ISOLATION=0 仍会卡死,但故障边界已被多轮 discriminator 推进到 enabled 的 netconn_* 路径。当前在 STM32F103RCT6 上的 RAM/heap 余量过低,已被认定为调试噪声的主要来源之一,因此推荐下一阶段先切到 pin2pin 的 STM32F103RDT6 再继续分析。
4. 下一位 agent 的当前目标
请不要把当前任务理解成“立刻继续加逻辑修补”。当前更重要的是:
- 完成
STM32F103RCT6 -> STM32F103RDT6目标切换 - 使用真实 Keil 日志重新确认构建成功
- 在新器件上复测当前代码基线
- 比较:
- 故障是否消失
- 是否明显后移
- 是否仍停在相同 enabled path
- 只有拿到新器件上的第一轮 RTT / heap / HWM 证据后,再决定下一步最小化改动
5. 工作约束
- 构建真值以
MDK-ARM/build_capture.txt、TCP2UART.build_log.htm、.map为准 - 不要再把 viewer 当作当前构建真值
- 不要忽视
DIAG_TASK_ISOLATION=1 正常、=0 异常这个前提 - 在新器件的第一轮复测前,避免继续做大范围代码改动
- 每次只做一个能明显改变故障边界的最小改动,并保留 RTT 证据
6. 可直接复制给下一位 agent 的起始 Prompt
请先阅读:`交接清单.md`、`工程调试指南.md`、`项目技术实现.md`。
当前项目是 STM32F103 + FreeRTOS + lwIP + CH390 的 TCP↔UART 透传工程。此前在 `STM32F103RCT6` 上调试时,`DIAG_TASK_ISOLATION=1` 稳定,`DIAG_TASK_ISOLATION=0` 仍会卡死,但故障边界已被多轮 discriminator 推进到 enabled 的 `netconn_*` 路径。当前最关键的资源事实是:在 `RCT6` 上 full-task 创建完四个 TCP 任务后,FreeRTOS heap 只剩约 944 bytes,静态 RAM 也已逼近物理上限,因此当前推荐先切换到 pin2pin 的 `STM32F103RDT6`,保持现有代码基线基本不变,先完成第一轮换片复测,再根据新器件上的 RTT、free/min heap 和 enabled `S1/C1` 行为决定下一步。
你的当前目标不是立刻修完所有问题,而是:
1. 完成 `RCT6 -> RDT6` 目标切换;
2. 用真实 Keil 日志确认构建通过;
3. 在新器件上复测当前代码,判断故障是否消失、后移或保持原状;
4. 仅在拿到新器件上的第一轮 RTT 后,再继续做最小化的下一步判别。