【recovery】android使用串口打印recovery调试日志

1、应用背景:

        调试android recovery时,由于recovery默认的日志是存储到/cache相关文件夹下的文件中的,所以每次只能在升级完成后重启系统后才能看到相关的调试日志信息,这对调试带来很大的不变,如有的时候recovery操作失败导致系统无法启动时,无法看到相关的日志,因此这时候可以使用本文中提供的方法将相关日志从调试串口输出,直接用串口在升级过程中查看日志。

2、实现思路

实现思路比较简单,就是将原来打印日志的函数封装,然后需要时直接将日志从串口输出;

3、代码实现

(1)、日志输出

将写日志的函数直接放到一个独立的头文件中,这样需要用的文件直接包含这个头文件就行了。如下为本文中提供的头文件源码:

#ifndef _LANDSEM_RECOVERY_LOG_H
   #define _LANDSEM_RECOVERY_LOG_H

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdarg.h>
   
#define  USE_UART_DEBUG   0
#if USE_UART_DEBUG
   #define DEBUG_UART_PORT  "/dev/ttyS0"
#endif
   
static int landsem_dbg_log(const char *fmt, ...) {
   int ret;
   va_list ap;
   va_start(ap, fmt);
#if USE_UART_DEBUG
   FILE *tty_out = fopen(DEBUG_UART_PORT, "w+");
   if(NULL != tty_out)	{
	  ret = vfprintf(tty_out, fmt, ap);
	  fclose(tty_out);
	  tty_out = NULL;
   }
   else {
	   ret = vfprintf(stdout, fmt, ap);
   }
#else
   ret = vfprintf(stdout, fmt, ap);
#endif
   va_end(ap);
   return ret;
}
#endif   
需要从串口输出调试日志时仅仅需要打开宏定义USE_UART_DEBUG即可,关闭时输出到stdout中。

(2)、修改调用

替换需要输出日志的地方的代码,直接使用上面头文件中的方法打印调试日志即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值