- 1、本文档共54页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用Generic Trace Support打印调试信息
使用Generic Trace Support打印调试信息(转)使用Generic Trace Support打印调试信息
Posted by? HYPERLINK /Snowwaft/?author=2 \o 由 snowwaft 发表 snowwaft?on 27 十月, 2008
3 comments
This item was filled under [? HYPERLINK /Snowwaft/?cat=5 \o 查看 工作 的全部文章 工作?]
使用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模块的对象,它的定义如下:
c代码:
typedef struct {
String modName;
UInt8 *flags;
} GT_Mask;
我们在程序中可以这样定义:
c代码:
GT_Mask curMask = {0,0};
然后,调用初始化函数:
c代码:
GT_create(amp;curMask, snowwaft);
GT_set(zz;
上面的代码,我们给curMask设定了名字:snowwaft,将它的级别设为0-7(有关级别,后面会描述)。
当完成以上工作后,我们就可以使用GT模块来输出信息了:
c代码:
GT_0trace(curMask, GT_2CLASS, maingt; Welcome to DSP servers main().\n);
屏幕会输出如下结果:
[DSP] @0×000001a2:[T:0 snowwaft - main Welcome to DSP server’s main().
关于GT_*trace宏
以上我们使用GT_0trace宏来输出信息,同样的,我们还可以使用以下宏:
c代码:
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个参数的使用方式,例如,我们需要输出两个参数:
c代码:
GT_2trace(curMask, GT_2CLASS, App-gt; Decode frame %d (0x%x)\n,p1,p2);
关于GT_*CLASS宏
在GT_*trace宏里,第二个参数为classId,这个参数是什么用的呢?某些时候,我们在打印Trace信息的时候,有可能希望只打印某些级别的信息,而不打印其他级别的信息,因此,我们指定classID。
在GT Module里一共定义了7中级别:
c代码:
#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 :
文档评论(0)