调试蓝牙驱动中,作为hci_qcomm_init由调用后,主文件bthci_qcomm_linux.cpp不能输出其中的printf语句,换为LOGE后可以输出。
分析可能:
Printf属于linux应用的打印机制,在androd系统当中没有对应的输出机制,只有在终端下执行时才能回显出来。
LOGE属于android专门定义的机制Android logger,专门打印除kernel外的所有应用的log输出。
据说:
Android提供了一个小工具,叫做logwrapper,用来处理上面提到的情况,使用方法就是将可执行文件的路径作为logwrapper的参数,比如你可以在init.rc中这样写:
service adbd /system/bin/logwrapper /sbin/adbd
disabled
验证了不好使啊,/system/bin/hci_qcomm_init
还是得找时间好好研究下logwrapper和logger代码,看看android如何封装的
注意:
使用时andorid.mk中需要加入
LOCAL_SHARED_LIBRARIES += \ libcutils libutils
LOCAL_LDLIBS += -llog
*.c文件中需要引用
#include "utils/Log.h"
本文探讨了在Android系统中调试蓝牙驱动遇到的问题,即在bthci_qcomm_linux.cpp文件中的printf语句无法输出,而替换为LOGE则可以正常工作。文章分析了原因,并介绍了logwrapper工具的使用方法。

1300

被折叠的 条评论
为什么被折叠?



