我用GenCodecPkg生成了codec package,用GenServer生成了server package。我发现server中已经开启了trace功能,也就是可以使用GT_*trace,而Codec中就没有。我想在Codec中使用GT_*trace调试算法,该怎么做?
comeback:
我很好奇,大家难道都不用调试Codec Engine中的算法吗?
Amob:
回复 comeback:
你可以在ccs中调试好算法,然后就不需要在CE中再去麻烦了 我都是这样的
TH Wang:
回复 comeback:
你好 comeback,
我也是在服务器端添加了自己的codec package,想要添加trace调试工程。
我也在E2E上发帖询问
我的帖子:http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/t/243171.aspx
你是否成功在codec中成功使用trace打印了呢?
TH Wang:
回复 Amob:
你好 Amob,
我使用的结构是ARM调用DSP端,让DSP完成相应的运算工作。算法已经没有问题并已编译成.lib库文件加到codec package被.x64P服务程序包含。
应用程序已开启trace功能的,可以接收到正常地trace打印语句,但是codec代码中添加的trace打印语句没有打印。
请问你这方面有调试的经验么?
Amob:
回复 TH Wang:
你 codec里的打印是在dsp里运行的,这个trace是打印不出来的,所以我说要在codec里调试就要返回到CCS里跟踪了。另外,你的算法lib库你用什么方式加进去的?是加到c6accel模块里的么?
TH Wang:
回复 Amob:
你好, Amob
http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/p/243171/850748.aspx#850748
有人回复了我,在codec中打开trace是可以的。之前在别人帮我在DM6467上调试过。
lib库我是在confilg.bld里或者link.cmd文件中添加的,在编译server的时候就会编译进去。
c6accel这个模块我不是很熟悉,也一直没有研究过这个模块,我都是用向导生成package。
Amob:
回复 TH Wang:
哦,关于codec的trace你试试看,如能真打印出信息来那最好了,呵呵,我也试试。
然后关于如何使用lib库,我也是在config.bld和link.cmd里试过,编译也可以编译进去,但是调用的时候总是找不到的,你若要是在codec里成功调用了lib里的函数,方便的话写个过程给我看一下,我用6467T,调用时总是找不到这个lib库,然后只能采用c6的模块来解决了,先谢谢你~
comeback:
回复 TH Wang:
诸位,我不知道大家生成Codec package的步骤是怎样的。我用的是GenCodecPkg,从源代码生成codec。我本想在codec中使用GT_*trace,参考http://processors.wiki.ti.com/index.php/Printing_in_stubs_and_skeletons,但始终没有成功。因为GenCodecPkg生成的工程不是CCS工程,而是普通的eclipse工程,直接在源代码中添加GT_*trace,编译无法通过。后来想了个办法,先自己建立codec的CCS工程,再添加GT_*trace,编译生成lib库,然后在GenCodecPkg生成的算法框架中使用该lib库,这样就可以使用GT_*trace打印信息了。
TH Wang:
回复 Amob:
你好,Amob
在config.bld中按照手册添加识别库的时候我也遇到过找不到lib库中函数的问题,而在link.cmd文件中添加lib库后没有遇到类似的问题。究其原因还是需要跟踪二种方式的内部流程,我暂时还没有看那方面。
在server package中link.cmd文件中直接添加引用库的路径和库文件名 “$(ABSOLUTE_PATH)/$(LIB_NAME)”
然后直接在codec package中C文件中调用就可以了。
关于C6,添加算法的确需要用到这个模块,不过我这边的做法没有一个直观的印象,你用的是什么方法?
TH Wang:
回复 comeback:
你好, comeback
CCS编译成库之后可以使用TRACE功能了? 那么还是说明打开方式或配置可能不对。
我在E2E上问了一下,如下是回复:
感觉应该是TI也发现这个trace功能是差强人意,但是在2.X版本应该是可行的,好像还是用法不对或者CODEC ENGINE不完整。
我现在调试基本是在里面加了很多判断,通过返回值来检查BUFFER是否传递正确。虽然很麻烦,但也是种方法了。