- 准备工作
调试前,需要先编译出左右两侧的固件,并分别烧录进去。然后重新上电,可以在充电状态测试,也者非充电状态;耳机重烧录后,首次会进行相互配对,配对成功后会有语音提示,可以从耳机中听到。
编写控制台下的调试脚本,可以采用USB接口调试,也可以采用TRBI200进行调试,两个脚本略有不同。将该脚本类型设为bat文件,并放置在工程所在目录下,笔者采用的是QCC3040,所以bat文件存放路径为:DevCode\earbud\workspace\QCC3040-AA_DEV-BRD-R2-AA\ pydbg_earbud_session.bat
内容如下所示:
:: Change variables for your system
set ELFDIR=D:\Work\PrjTWS\DevCode\earbud\workspace\QCC3040-AA_DEV-BRD-R2-AA\depend_debug_qcc514x_qcc304x
set TOOLS=D:\ProgramFiles\Qualcomm\ADK_Toolkit_1.0.1.19_x64\apps\fw\tools
set PYTHONDIR=D:\ProgramFiles\Qualcomm\ADK_Toolkit_1.0.1.19_x64\tools\python27
set DEVICE1=114
set DEVICE2=118
start cmd.exe "/k %PYTHONDIR%\python %TOOLS%\pydbg.py -d usb:%DEVICE1%,usb:%DEVICE2% -f apps1:%ELFDIR%\earbud.elf"
start cmd.exe "/k %PYTHONDIR%\python %TOOLS%\pydbg.py -d usb:%DEVICE1%,usb:%DEVICE2% -f apps1:%ELFDIR%\earbud.elf"
:: for TRBI200 debuger;
::set DEVICE1=102
::set DEVICE2=180210
::start cmd.exe "/k %PYTHONDIR%\python %TOOLS%\pydbg.py -d usb:%DEVICE1%,trb:scar:%DEVICE2% -f apps1:%ELFDIR%\earbud.elf"
::start cmd.exe "/k %PYTHONDIR%\python %TOOLS%\pydbg.py -d
- Pydbg调试
两个earbud和电脑 连接好并被正常识别出来后,运行上述bat文件,会产生两个cmd控制窗口,我们用其中一个来实时显示系统运行日志,另一个用来输入调试指令,
显示实时日志的指令为:system.apps1.live_log()
前面为A表示 右侧,B表示左侧的日志。
然后我们可以在指令输入窗口通过输入以下指令来让耳机进入取出电池盒并进入手机配对状态:
apps1A.fw.call.appTestPhyStateOutOfCaseEvent()
apps1B.fw.call.appTestPhyStateOutOfCaseEvent()
- 常用调试指令
apps1A.fw.call.appSmIsInCase()
apps1B.fw.call.appSmIsInCase()
apps1A.fw.call.appSmIsOutOfCase()
apps1A.fw.call.appSmIsInEar()
apps1A.fw.call.appTestIsPeerPaired()
apps1A.fw.call.appTestIsPairingInProgress()
apps1A.fw.call.appSmGetState()
apps1A.fw.call.appTestFactoryReset()
apps1B.fw.call.appTestFactoryReset()
battery:
apps1.fw.call.appTestGetBatteryVoltage()
apps1.fw.call.appTestBatteryStateIsOk()
apps1.fw.call.appTestBatteryStateIsLow()
apps1.fw.call.appTestBatteryStateIsCritical()
apps1.fw.call.appTestBatteryStateIsTooLow()
apps1.fw.call.appTestBatteryFilterResponseTimeMs()
paring:
apps1.fw.call.appTestPairHandset()
apps1.fw.call.appTestDeleteHandset()
apps1.fw.call.appTestPairPeer()
apps1.fw.call.appTestDeletePeer()
apps1.fw.call.appTestGetPeerAddr()
apps1.fw.call.appTestIsPairingInProgress()
apps1.fw.call.appTestIsHandsetConnected()
以下为搞自其它网友:https://blog.csdn.net/wzz4420381/article/details/106773005
修复 live_log故障:
UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xbb in position 0: ordinal not in range(128)
1. 修 改 C:\qtil\qcc514x-qcc304x-src-1-0_qtil_standard_oem_earbud\adk\tools\packages\tabs\pydbg_tab.py
# Python 2 and 3
from __future__ import print_function
import os
import sys
from xml.etree import ElementTree
import argparse
import glob
from workspace_parse.workspace import Workspace
# 插入下述代码
import sys
reload(sys)
sys.setdefaultencoding('gbk')
2. 修改 C:\qtil\ADK_Toolkit_1.0.1.8_x64\apps\fw\tools\pydbg.py
import os
import sys
import sys
reload(sys)
sys.setdefaultencoding('gbk')
>>修复 acat 故障
python: can’t open file ‘C:/qtil/qcc514x-qcc304x-src-1-0_qtil_standard_oem_earbud/adk/bin/qcc514x_qcc304x/audio/tools/acat/ACAT.py’:
[Errno 2] No such file or directory ), 修 改 C:\qtil\qcc514x-qcc304x-src-1-
0_qtil_standard_oem_earbud\adk\tools\extensions\acat_tab\ext.xml,修改完成后,关闭 qmde 再打开。
>打开 win10 cmd 的 ANSI 配色功能
ANSI 转义字符显示为乱码[1m [35m] ,从 cmd.exe 输入(也可以在 PowerShell 中使用):reg add HKCU\Console /v VirtualTerminalLevel /t REG_DWORD /d 1