K1Guitar/tools/LOG_README.md

70 lines
2.0 KiB
Markdown
Raw Normal View History

# 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 以上 |
## 日志格式
```
[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`
## 触摸问题排查要点
导出后重点 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
```