使用Generic Trace Support打印调试信息
来源:互联网 发布:湖南软件职业学院地图 编辑:程序博客网 时间:2024/05/17 09:31
使用Codec Engine开发Davinci系统,最令人头痛的莫过于调试。由于evm6446开发过程分成DSP端和GPP端,因此我们无法使用IDE下的调试工具对程序进行跟踪调试。为此,TI在Codec Engine中提供了一套名为Generic Trace Support 的模块,专门用来打印Debug信息。
Generic Trace Support一览
要在终端上打印DEBUG信息,很简单。只需要在执行命令前加上CE_DEBUG=n,n=1,2,3即可:
在代码中使用Generic Trace Support
首先,我们要定义一个GT_Mask对象,GT_Mask是用来描述GT模块的对象,它的定义如下:
- typedef struct {
- String modName;
- UInt8 *flags;
- } GT_Mask;
我们在程序中可以这样定义:
- GT_Mask curMask = {0,0};
然后,调用初始化函数:
- GT_create(&curMask, "snowwaft");
- GT_set("zz=01234567");
上面的代码,我们给curMask设定了名字:snowwaft,将它的级别设为0-7(有关级别,后面会描述)。
当完成以上工作后,我们就可以使用GT模块来输出信息了:
- GT_0trace(curMask, GT_2CLASS, "main> Welcome to DSP server's main()./n");
屏幕会输出如下结果:
[DSP] @0x000001a2:[T:0x00000000] snowwaft – main> Welcome to DSP server’s main().
关于GT_*trace宏
以上我们使用GT_0trace宏来输出信息,同样的,我们还可以使用以下宏:
- GT_0trace( mask, classId, format )
- GT_1trace( mask, classId, format, arg1 )
- GT_2trace( mask, classId, format, arg1, arg2 )
- GT_3trace( mask, classId, format, arg1, arg2, arg3 )
- GT_4trace( mask, classId, format, arg1, arg2, arg3, arg4 )
- GT_5trace( mask, classId, format, arg1, arg2, arg3, arg4, arg5 )
- GT_6trace( mask, classId, format, arg1, arg2, arg3, arg4, arg5, arg6 )
这些宏分别定义了输出1个、2个、……、6个参数的使用方式,例如,我们需要输出两个参数:
- GT_2trace(curMask, GT_2CLASS, "App-> Decode frame %d (0x%x)/n",p1,p2);
关于GT_*CLASS宏
在GT_*trace宏里,第二个参数为classId,这个参数是什么用的呢?某些时候,我们在打印Trace信息的时候,有可能希望只打印某些级别的信息,而不打印其他级别的信息,因此,我们指定classID。
在GT Module里一共定义了7中级别:
- #define GT_1CLASS ((UInt8)0x02)
- #define GT_2CLASS ((UInt8)0x04)
- #define GT_3CLASS ((UInt8)0x08)
- #define GT_4CLASS ((UInt8)0x10)
- #define GT_5CLASS ((UInt8)0x20)
- #define GT_6CLASS ((UInt8)0x40)
- #define GT_7CLASS ((UInt8)0x80)
这7种级别分别表示:
- GT_1CLASS : 纯粹的Debug信息
- GT_2CLASS : 由开发人员指定,告诉使用人员这这条信息可能有用
- GT_3CLASS : 进入某个模块
- GT_4CLASS : 由开发人员指定,告诉使用人员这是比较重要的信息
- GT_5CLASS : 标记
- GT_6CLASS : 警告
- GT_7CLASS : 错误
不难理解,为什么我们要在GT_set是制定:snowwaft=01234567,这表示,对于snowwaft这个GT_Mask,我们关心的信息包括以上所有部分,而0,则表示进入、退出某个函数的报告。
小节
使用GT_Mask,可以在DSP端和ARM端间打印信息,这在一定程度上方便了我们调试信息。
- 使用Generic Trace Support打印调试信息
- Generic Trace Support一览
- bcb2010打印调试信息用TRACE
- 使用adb logcat 打印 trace信息
- iOS小技巧14- 调试bug技巧-打印XCode的 Stack Trace信息
- linux中使用backtrace打印调试信息
- ARM 使用调试接口输出打印信息
- mfc vs2008 Debug调试下 TRACE语句打印的调试信息并没有在输出窗口的解决办法
- Windows下调试信息 TRACE OutputDebugString
- (转)ns2输出调试信息及trace
- 解决FlashDevelop调试不输出trace信息
- ns2输出调试信息及trace
- VC调试信息输出 TRACE宏
- vxworks打印调试信息
- Qt 打印调试信息
- JNI打印调试信息
- 打印调试信息
- JNI 调试打印信息
- 《编程之美》1.9:高效率的安排见面会的一个解法
- DhtmlxTree控件实现右键菜单的方法
- 《那些年啊,那些事——一个程序员的奋斗史》——02
- Android 开源项目列表
- 使用JNA调用本地方法
- 使用Generic Trace Support打印调试信息
- 【转】 获取Android SDK 源代码并在Eclipse中关联查看的方法(for sdk2.3)
- winCE与本地电脑之间的文件传递
- EXISTS、IN、NOT EXISTS、NOT IN的区别与性能分析
- android apkbuilder.bat批处理
- 对dhtmlXTree进行的一个小扩展
- Android 软件安装程序(*.apk)的结构分析、反编译以及汉化
- scala解决生兔子问题
- 并查集学习