络达开发---串口日志&日志过滤

平台:AB1565M

SDK版本:V2.11.0

开发环境:windows10


采用官方ATK中的日志工具可以通过硬件物理串口来实时查看芯片中软件的运行日志。如下图所示,其实该ATK工具为一若干个工具的集合,其中如图红线圈起来的即为实时查看日志的子工具。

点击上面的LoggintTool后,会切换到如下图所示的日志操作界面。其实日志的监听采用的是Wireshark来实现的,下图的这个界面是用来对日志监听进行相关的配置。

图中,Get LogFilter Info和SetLogFilter Info当工具连接到板子中运行的程序后,用来配置日志的过滤和使能,默认所有的日志都是打开的,即所有代码中内建的日志都会输出来。

用GetLogFilter按钮来获取系统支持的日志模块,然后我们来关闭不希望看到的日志,并用按钮SetLogFilterInfo来关闭,这样在芯片中的程序便不会再输出来,即Wireshark中也不会再显示这些被关闭的日志。

SDK中,默认是从UART0口输出日志的,板子上有物理UART0接口,并且默认的波特率是3Mbps,而普通 的USB转串口设备是支持不了这么高的波特率的,这样的话就会导致日志出来有丢失和错误。因此,如果手上没有支持这么高波特率的设备的话,可以通过降低SDK中的波特率来实现。

波特率的修改位置是:

bta_sdk\mcu\project\ab1565_ab1568_evk\apps\headset_ghp\inc\boards\ab1565_evk\serial_port_assignment.h

修改为下图的方式,即可把波特率由原来默认的3Mbps改为921600bps;下段代码,把3000000的波特率采取 了注释的方式来禁止3Mbps;

/*This port only for system initial period syslog output port, And USB Port cannot assign to it.
* Because USB not work in this period.
*
* ####MUST BE UART PORT####*/
#define     CONFIG_SYSLOG_INIT_STAGE_PORT       HAL_UART_0

/* This port is for task running period syslog output port. This Port can be USB or UART types
* If your want use USB port, must be define  MTK_USB_ENABLED  in file( such as:
* ./GCC/feature_ab1552_evb.mk).*/
#ifdef MTK_PORT_SERVICE_ENABLE
#define     CONFIG_SYSLOG_RUNNING_STAGE_PORT    SERIAL_PORT_DEV_UART_0 //SERIAL_PORT_DEV_USB_COM1
#else
#define     CONFIG_SYSLOG_RUNNING_STAGE_PORT    HAL_UART_0
#endif

//#ifdef HAL_UART_FEATURE_3M_BAUDRATE
//#define     CONFIG_SYSLOG_BAUDRATE      HAL_UART_BAUDRATE_3000000
//#else
#define     CONFIG_SYSLOG_BAUDRATE      HAL_UART_BAUDRATE_921600
//#endif

同时,从下面的两行代码也可以知道,日志的输出接口采用的是UART_0;

#define     CONFIG_SYSLOG_INIT_STAGE_PORT       HAL_UART_0

#define     CONFIG_SYSLOG_RUNNING_STAGE_PORT    SERIAL_PORT_DEV_UART_0 

在查看日志的时候,需要把ATK中默认的3Mbps也改为921600,否则在连接后是无法获取 日志过滤的配置,会提示如下图所示的错误,这个错误提示,有三种可能 :

  1. 配置的串口波特率和SDK中的不一至;
  2. 波特率配置一至,但USB转串口支持不到这么高的波特率;
  3. 日志所加载的debug文件和芯片中下载的固件不是同一个编译生成的文件;

 连接的波特率设置如下图所示,并且设置好并且连接到设备(设备需要开机),就会得到Log Module Filter表中所示的内容,可以在这里来打开和关闭不需要的日志输出,这样在wareshark中就不会再显示那些被关闭的日志了。

如下图所示,为笔者添加的ble服务的专用的日志:

log_create_module(GHP, PRINT_LEVEL_INFO);

在下图中的Off/On即可以用来打开或关闭日志的输出,后面的Info/Debug等用来设置日志输出的级别,因为同一个日志模块(如GHP)可以支持不同级别的日志输出。

log_create_module(GHP, PRINT_LEVEL_INFO);

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值