K1Guitar/tools/LOG_README.md

2.3 KiB
Raw Permalink Blame 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 目录执行:
python rtt_log_dump.py --out problem.log
  1. 将生成的 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 停核黑屏

python rtt_reset.py

若固件较旧无 sys reset,脚本会自动用 J-Link 硬件复位兜底。

日志格式

[tick_ms][LVL][CAT] message key=val ...

类别 CATBOOT 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