【RealMCU】瑞昱官方LOG信息保存及解析,DebugAnalyzer自动化接收脚本(不需要用到ROM.trace文件)

【RealMCU】瑞昱官方LOG信息保存及解析,DebugAnalyzer自动化接收脚本(不需要用到ROM.trace文件)

以Realtek RTL87xx为例 对使用瑞昱官方LOG接口的数据进行获取并解析

文章目录

瑞昱SDK输出LOG信息

在程序中添加 #include <trace.h>,在需要的地方,以下的打印函数即可实现。

c 复制代码
APP_PRINT_ERROR0
APP_PRINT_INFO0

通过这两个接口 即可实现函log打印 并通过芯片log口输出

默认波特率为2000000

输出的数据是加密的 需要配合ROM.trace和app.trace通过瑞昱上位机DebugAnalyzer使用进行解析

app.trace是编译产生的 ROM.trace根据不同芯片其文件也不一样 瑞昱不开源

瑞昱上位机DebugAnalyzer

见资源绑定

c 复制代码
https://download.csdn.net/download/weixin_53403301/92634702

打开 DebugAnalyzer.exe 上位机

配置要抓log的项目,只需把它(App.trace)添加进来即可。

该文件是keil编译产生的 瑞昱官方的例程中有编译方法。

点击start后 即可接收log信息并解码为对应消息

接收文件解析:虚拟串口法

LOG信息可能在一些情况下无法接入上位机 但是能以二进制的形式存放在本地

那么就可以通过虚拟串口的方式 让上位机帮助我们来解析文件

下载com0com工具并安装

c 复制代码
https://sourceforge.net/projects/com0com/

安装后的文件:

并且会生成一对虚拟串口

该虚拟串口互相之间耦合

可以在setupg.exe中进行配置、添加、删除

配置好后,即可使用这一对串口

使用串口终端工具 如sscom5.13.1等

即可添加要发送的二进制文件 并设置连续发送

同样 瑞昱上位机端配置为相对的串口 我这里是COM14

两端都打开串口后 即可开始发送

解析结果:

点击右上角的log保存 即可生成解析后的log记录文件

瑞昱上位机shell脚本

通过shell命令:

(注意路径中最好不要有中文)

bash 复制代码
DebugAnalyser.exe  [-j0] | [-fs] | 
[-sp port_name] | [-reopen cnt]
[-br baudrate] |
[-aa app_trace_path] | [-fp output_dir] 

如:

c 复制代码
DebugAnalyzer.exe -j0 --fs -sp COM14 -reopen 3 -br 2000000 -aa "D:\app.trace" -fp "D:\soc_log"

可以实现脚本控制

参数说明如下:

Arguments Description
-j0 If set, don't Show UI
-fs Capture log from serial port
-sp port_name Set serial port name
-br baudrate Set serial port baud rate Default value: 2000000
-reopen cnt If the serial communication fails unexpectedly during log capture, try reopening it cnt times
-aa app_trace_path Set ARM App trace file app_trace_path should be enclosed in double quotes
-fp output_dir Set log file export path output_dir should be enclosed in double quotes

运行后 相当于原上位机按下start按键

串口发送后数据就会存下:

自动化接收解析脚本

放置在程序同目录下,同时需要建立auto_log目录,并放置app.trace文件

最好不要有中文路径

下载链接:

c 复制代码
https://download.csdn.net/download/weixin_53403301/92634779

shell脚本:

c 复制代码
@echo off
setlocal enabledelayedexpansion

:: Set current directory
set "CURRENT_DIR=%~dp0"
set "CURRENT_DIR=%CURRENT_DIR:~0,-1%"

:: Check required files and directories
set "APP_TRACE_FILE=%CURRENT_DIR%\app.trace"
set "DEBUG_ANALYZER=%CURRENT_DIR%\DebugAnalyzer.exe"
set "AUTO_LOG_DIR=%CURRENT_DIR%\auto_log"

echo Checking required files and directories...
echo.

:: Check app.trace file
if exist "%APP_TRACE_FILE%" (
    echo [OK] app.trace file exists
    echo    Absolute path: %APP_TRACE_FILE%
) else (
    echo [ERROR] app.trace file not found
    echo    Expected path: %APP_TRACE_FILE%
    pause
    exit /b 1
)

:: Check DebugAnalyzer.exe file
if exist "%DEBUG_ANALYZER%" (
    echo [OK] DebugAnalyzer.exe file exists
    echo    Absolute path: %DEBUG_ANALYZER%
) else (
    echo [ERROR] DebugAnalyzer.exe file not found
    echo    Expected path: %DEBUG_ANALYZER%
    pause
    exit /b 1
)

:: Check auto_log directory
if exist "%AUTO_LOG_DIR%\" (
    echo [OK] auto_log directory exists
    echo    Absolute path: %AUTO_LOG_DIR%
) else (
    echo [WARNING] auto_log directory not found
    echo    Expected path: %AUTO_LOG_DIR%
    echo Creating auto_log directory...
    mkdir "%AUTO_LOG_DIR%"
    if errorlevel 1 (
        echo Failed to create directory
        pause
        exit /b 1
    )
    echo [OK] auto_log directory created successfully
)

echo.

:: Get available COM port list
echo Scanning available COM ports...
echo ========================================
echo Available COM ports:
echo.

set "PORT_FOUND=0"
for /f "skip=1 tokens=1" %%a in ('wmic path Win32_SerialPort get DeviceID') do (
    if not "%%a"=="" (
        echo    %%a
        set "PORT_FOUND=1"
    )
)

if "!PORT_FOUND!"=="0" (
    echo    No COM ports found
)

echo ========================================
echo.

:: Prompt for COM port input
set /p "COM_PORT=Enter COM port (e.g., COM14): "
echo %COM_PORT%

echo.
echo ========================================
echo Configuration summary:
echo    COM Port: %COM_PORT%
echo    App Trace File: %APP_TRACE_FILE%
echo    Output Directory: %AUTO_LOG_DIR%
echo ========================================
echo.

:: Build and execute command
set "CMD=%DEBUG_ANALYZER% -j0 -fs -sp %COM_PORT% -reopen 3 -br 2000000 -aa "%APP_TRACE_FILE%" -fp "%AUTO_LOG_DIR%""

echo Command to execute:
echo %CMD%
echo.

echo.
echo Starting DebugAnalyzer...
echo.

:: Execute command
start "DebugAnalyzer - COM Port %COM_PORT%" /wait cmd /k "%CMD%"

echo.
echo DebugAnalyzer window opened. You can monitor the output in the new window.
echo To stop DebugAnalyzer, close the new window or press Ctrl+C in that window.
echo.

pause

运行效果

输入COM14 会打开一个新窗口 如果执行有错误 会在新窗口中输出

虚拟串口发送:

生成log文件:

相关推荐
voipmaker3 小时前
GB28181 对接踩坑实录:注册不上、目录不全、流卡顿,一次说清(附 2022 版变更清单)
物联网·音视频·实时音视频·信息与通信·iot·gb28181·国标gb28181
吠品3 小时前
智谱开源 ZCode 之后,真正的考试才开始
单片机·嵌入式硬件·1024程序员节
ZhuoAIStage4 小时前
舞台工艺多专业审图提速:用 AI 智能体编排 A+B+C+G 四段读图流水线
人工智能·自动化·工作流编排·舞台工艺·审图智能体
Chery11405 小时前
高速ADC与精密DAC怎么选?DP9230D与DP8532D应用解析
嵌入式硬件·物联网·射频工程
海绵宝宝的月光宝盒6 小时前
14-AutoCAD-阵列命令应用与案例实战(AR)
经验分享·笔记·自动化·课程设计·制造·学习方法·cad
小李不想当小白8 小时前
SPI通信外设与W25Q64 (硬件SPI)(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
LCG米8 小时前
STM32驱动W5500以太网模块实测:TCP吞吐瓶颈定位、TX指针回绕陷阱与断线重连保活落地
stm32·单片机·嵌入式硬件·tcp/ip
螺丝钉tina9 小时前
[Playwright][08] Upload 模块自动化:如何设计真实业务测试用例?
运维·自动化·测试用例
创界工坊工作室10 小时前
63-基于STC89C52霍尔传感器的智能化电能表设计
stm32·单片机·嵌入式硬件·51单片机·proteus
智购科技自动售货机厂家11 小时前
让AI经营自动售货机:从Project Vend看工具权限与业务规则~YH
大数据·服务器·单片机·嵌入式硬件·深度学习