Biu~笔记:高通蓝牙ADK(9)--Log小技巧

     “工欲善其事必先利其器”,Biu~大家好, 今天小编带大家磨刀,正所谓“磨刀不误砍柴工”,当你提着40米的大刀,你可以笑看先跑39米的对手,可见工具的重要性。

Debug是程序猿的必修课,是程序猿的必杀技,是程序猿的40米大刀。不会debug的程序猿不配穿格仔衫,不会debug的程序猿不配拥有光头,而会debug的程序猿光头的速度会比普通人快几倍。

       新版本的pydbg加入了两个设备同时打印功能,不是那种分开打印,而是把log打印到同一个界面中,这大大方便了程序猿查看和对比log,挺高工作效率。那么如何去使用这个功能呢?

       首先,这个功能在MDE中是可以使用,我们只需要接上需要打印log的设备,到MDE右下角的这个小圈圈去刷新识别到设备








当有两个设备时,就可以开始打印了,打开pydbg,并开始运行

点击开始后,就会有个弹窗出来,选择OK

这时窗口就可以对这两个设备写指令了,但这个指令和之前的指令不一样,毕竟有两个设备了,一样就傻傻分不清了。这里面的设备用A和B区分,A是第一个设备,也就是右下角显示的那个


对A写指令就在原来的指令前缀多加一个A,B也如此,例如:

原来是apps1.live_log(),现在就是apps1A. live_log()


       如两个一起打log是apps1AB. live_log()吗?
       当然不是啦~

       是用system.apps1.live_log(),输入之后就能清楚看到A和B的log

       Tips:当前的log是有等级的,换句话说就是log根据等级限制来决定哪些log要打印,这个等级在logging.h中的DEFAULT_LOG_LEVEL设置,对应的等级在中debug_log_level_t定义。那如果我已经打印了呢,要重新烧程序?不需要。只需要在pydbg中输入apps1.fw.gbl.debug_log_level__global.value = 5 即可改变,再用apps1.fw.gbl.debug_log_level__global就能看到是否已经修改。如果是接了两个设备的,记得指令修改一下前缀。

       本篇再说另外一个技巧,很多人想打印开机时的log,但往往手速没有当年快了,总是来不及输指令。这里默认有个暂停的功能,让你准备好了再继续工作

在工程中加入INIT_DEBUG 宏定义即可

里面的函数,实际就是在等一个pydbg的指令,让这个while循环跳出来,apps1.fw.env.vars['appInitDebugWait'].set_value(0)输入之后,系统就开始正常工作了。记得不用debug时,关闭这个,不然开不了机都不知道怎么回事。

 

       如想要了解别的基本debug功能,可以回看“Biu~笔记:高通蓝牙ADK6.x(3)-- Pydbg常用功能(点我(*^▽^*))”。以上是本期博文的全部内容,如有疑问请在博文下方评论留言,或者有什么想了解的都可以留言,我会尽量安排上(o´ω`o)و。谢谢大家浏览,我们下期再见。

 

 

多看文档,多上官网

多看文档,多上官网

多看文档,多上官网 

 

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论

melodydiy

melodydiy

2023年1月3日
博主,请问高通的fw_live_log怎么显示几点几分几秒,而不是秒数?
Biu~

Biu~

2020年9月25日
即将有新干货,敬请期待
Biu~

Biu~

2020年9月14日
这位朋友,出现这个问题一般是工程和耳机上的代码对应不上,或者pydbg有文件有问题,你单个是否可以?
Gavin

Gavin

2020年9月9日
請問一下, 我按照你的步驟連接兩台3046, 想要同時看兩台log, 在pydbg 輸入system.apps1.live_log()後, 卻產生 system.apps1.live_log() Traceback (most recent call last): File "", line 1, in File "C:\qtil\ADK_Toolkit_1.1.0.63_x64\tools\python27\lib\site-packages\csr\dev\tools\core_command_set_manager.py", line 76, in _wrapped_command for structured_result in command(*args, **kwargs): File "C:\qtil\ADK_Toolkit_1.1.0.63_x64\tools\python27\lib\site-packages\csr\dev\hw\system\system.py", line 652, in _live_log reader=self.reader): File "C:\qtil\ADK_Toolkit_1.1.0.63_x64\tools\python27\lib\site-packages\csr\dev\hw\system\system.py", line 457, in reader self._reader = self._set_up_component_system("fw.debug_log.reader") File "C:\qtil\ADK_Toolkit_1.1.0.63_x64\tools\python27\lib\site-packages\csr\dev\hw\system\system.py", line 475, in _set_up_component_system self._parent_devices) File "C:\qtil\ADK_Toolkit_1.1.0.63_x64\tools\python27\lib\site-packages\csr\dev\hw\system\system.py", line 385, in __init__ attr_value = getattr(first_obj, attr) File "C:\qtil\ADK_Toolkit_1.1.0.63_x64\tools\python27\lib\site-packages\csr\dev\fw\firmware_component.py", line 137, in env return self.__env AttributeError: 'DebugLogReader' object has no attribute '_FirmwareComponent__env' 這有可能是怎麼回事?
Biu~

Biu~

2020年9月8日
有没有人想看离线debug的
Biu~

Biu~

2020年9月4日
没时间解释了,快上车
Carrie

Carrie

2020年8月21日
小编小编,快带我去磨刀
Carrie

Carrie

2020年8月21日
小编小编,快带我去磨刀