K1Guitar/tools/LOG_README.md

80 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
```