"高通项目开发"
高通项目开发是一种基于高通平台的开发方式,旨在解决高通平台的一些死机等异常情况的debug定位问题。在高通项目开发中,TRACE32调试工具发挥着重要作用。TRACE32可以调试静态模块,也可以调试动态模块,但这里主要介绍如何调试静态模块。
首先,若希望通过TRACE32调试的话,在编译设备软件的时候,必须保证打开-g的开关,这样才能编译出带调试信息的软件版本。在高通发布的2120软件版本中,打开-g开关的方法是在KPXZL.cmd中将USE_NO_DEBUG定义改为no。USE_NO_DEBUG默认是yes,并且在此cmd文件中定义了两次,BUG一个,记得全改或删掉一个USE_NO_DEBUG定义。
编译完成后必须将带调试信息的软件下载到设备上,可以通过TRACE32或者QPST下载。通过QPST下载的速度比较快,因为QPST下载时设备工作载80MHz模式下,是全速运行的;而载TRACE32下载时,设备是工作载20MHz模式下,是节电模式。
调试前需要将符号表加载到系统中,在trace32命令行输入命令可加载符号表,大致过程如下:
cdbuild\ms11
domjload_sym.cmmKPXZL----仅下载符号表
domjnload.cmmKPZL----下载软件以及符号表
通过上面的脚本下载完符号表后,系统会自动停留在tmc_init处,tmc任务是手机软件的主入口,在tmc之下主要是操作系统层面的东西,从tmc_init开始执行手机相关的功能。
现在你可以任意设置断点,设置断点可以有几种类型,主要使用的有两种:Soft和on-chip。On-chip总是可以设置成功的,但数量有限,例如说3个,这个数量估计和TRACE-ICP仿真器有关。Soft类型断点只能设置已经存储在RAM中的代码,对于有些代码尚未加载到RAM中,你是不能设置soft类型的断点的。TRACE32会提示断点无法设置。
如果在调试窗口无法看到C语言代码,有几个方面的原因可以导致:正在运行的代码是不带调试信息的,这个时候需要检查编译时-g开关有没有打开;另外有些模块是高通预先编译的,高通一般也会提供DEBUG版本的。
高通项目开发中TRACE32调试工具的使用非常重要,需要正确地配置和使用TRACE32,以便更好地debug和解决高通平台的一些死机等异常情况。