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