# K1 设备日志导出(J-Link RTT) ## 用途 固件运行时将启动/关机、触摸、按键、UI 切换、异常等事件写入 RAM 环形缓冲(约 4KB / 32 条),并通过 SEGGER RTT 实时输出。现场复现问题后,用 J-Link 一键导出日志文件发回分析。 ## 前置条件 - J-Link 调试器 + SWD 连接设备 - Python 3.8+ - 依赖:`pip install pylink-square` - 已烧录包含 `app_log` 模块的固件 ## 操作步骤 1. 设备上电,复现问题(例如模式选择页触摸无响应)。 2. PC 连接 J-Link,**不要**随意 Reset(会丢失 RAM 日志;若必须复位,请先导出或复现后再导出)。 3. 在项目 `tools` 目录执行: ```bash python rtt_log_dump.py --out problem.log ``` 4. 将生成的 `problem.log` 发送给研发分析。 ## 其他 RTT 命令(RTT Viewer 终端输入) | 命令 | 说明 | |------|------| | `log dump` | 导出 RAM 中全部历史日志 | | `log clear` | 清空 RAM 日志 | | `log status` | 查看 boot 次数、条数、溢出、当前 UI 页 | | `log level D` | 开启 Debug 级(含触摸细节);`I` 仅 Info 以上 | | `sys reset` | MCU 软件复位(自动重新开机,**RAM 日志会丢失**) | 或通过脚本(**复位后脚本会自动 `go()` 释放 CPU,避免 J-Link 停核黑屏**): ```bash python rtt_reset.py ``` 若固件较旧无 `sys reset`,脚本会自动用 J-Link 硬件复位兜底。 ## 日志格式 ``` [tick_ms][LVL][CAT] message key=val ... ``` 类别 CAT:`BOOT` `PWR` `UI` `TP` `KEY` `MSG` `NVM` `TASK` `ERR` `ADC` ## 配套工具 - 屏幕截图:`python rtt_lcd_capture.py --out screen.png` - 日志导出:`python rtt_log_dump.py --out problem.log` - 远程复位:`python rtt_reset.py` ## 触摸问题排查要点 导出后重点 grep: - `[TP]` — raw/cal 坐标、irq 状态 - `[MSG] id=12` — 触摸消息是否发出 - `[UI] mode_select miss` — UI 命中测试是否失败 ## 已验证(2026-08-31) 烧录:`cspybat` + `C:\Temp\k1flash\YNGJ-GT1-M.out` 下载,J-Link reset/run 后约 4s 开机。 日志导出示例(`python rtt_log_dump.py --out test.log`): ``` [00185][I][BOOT] app_log init boot=1 [00224][I][NVM ] init ok ver=2 [00224][I][BOOT] main init done ui=Idle [00224][I][PWR ] auto power_on [00401][I][PWR ] periph ready send POWER_ON [00500][I][MSG ] id=0 hi=0 lo=0 ```